@carbon/vue 2.18.0-canary.0 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/carbon-vue.common.js +520 -194
  3. package/dist/carbon-vue.common.js.map +1 -1
  4. package/dist/carbon-vue.umd.js +520 -194
  5. package/dist/carbon-vue.umd.js.map +1 -1
  6. package/dist/carbon-vue.umd.min.js +3 -3
  7. package/dist/carbon-vue.umd.min.js.map +1 -1
  8. package/package.json +2 -2
  9. package/src/components/cv-combo-box/cv-combo-box.vue +15 -11
  10. package/src/components/cv-data-table/_cv-data-table-row-inner.vue +11 -3
  11. package/src/components/cv-data-table/cv-data-table-action.vue +1 -1
  12. package/src/components/cv-data-table/cv-data-table-row.vue +4 -2
  13. package/src/components/cv-data-table/cv-data-table-skeleton.vue +24 -3
  14. package/src/components/cv-data-table/cv-data-table.vue +17 -10
  15. package/src/components/cv-date-picker/cv-date-picker.vue +13 -7
  16. package/src/components/cv-dropdown/cv-dropdown.vue +11 -6
  17. package/src/components/cv-modal/cv-modal.vue +18 -12
  18. package/src/components/cv-multi-select/cv-multi-select.vue +27 -11
  19. package/src/components/cv-number-input/cv-number-input.vue +13 -6
  20. package/src/components/cv-overflow-menu/cv-overflow-menu-item.vue +3 -1
  21. package/src/components/cv-select/cv-select.vue +16 -7
  22. package/src/components/cv-tabs/cv-tabs.vue +160 -51
  23. package/src/components/cv-text-area/cv-text-area.vue +18 -5
  24. package/src/components/cv-text-input/cv-text-input.vue +13 -6
  25. package/src/components/cv-time-picker/cv-time-picker.vue +17 -6
  26. package/src/components/cv-toggle/cv-toggle-skeleton.vue +21 -0
  27. package/src/components/cv-toggle/index.js +2 -1
  28. package/src/components/cv-ui-shell/cv-header.vue +9 -1
  29. package/src/components/cv-ui-shell/cv-side-nav-link.vue +9 -1
  30. package/src/components/cv-ui-shell/cv-side-nav-menu.vue +9 -1
  31. package/src/index.js +2 -2
@@ -165,15 +165,15 @@ var component = Object(componentNormalizer["a" /* default */])(
165
165
  "use strict";
166
166
  __webpack_require__.r(__webpack_exports__);
167
167
 
168
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=cb256cee&
168
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=661dad8b&
169
169
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:"cv-overflow-menu-item bx--overflow-menu-options__option",class:{
170
170
  'bx--overflow-menu-options__option--disabled': _vm.disabled,
171
171
  'bx--overflow-menu-options__option--danger': _vm.danger,
172
- },on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}}},[_c('button',_vm._g({staticClass:"bx--overflow-menu-options__btn",attrs:{"type":"button","data-floating-menu-primary-focus":_vm.primaryFocus,"disabled":_vm.disabled},on:{"click":_vm.onClick}},_vm.$listeners),[_vm._t("default")],2)])}
172
+ },on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}}},[_c('button',_vm._g({staticClass:"bx--overflow-menu-options__btn",attrs:{"type":"button","data-floating-menu-primary-focus":_vm.primaryFocus,"disabled":_vm.disabled},on:{"click":_vm.onClick}},_vm.$listeners),[_c('span',{staticClass:"bx--overflow-menu-options__option-content"},[_vm._t("default")],2)])])}
173
173
  var staticRenderFns = []
174
174
 
175
175
 
176
- // CONCATENATED MODULE: ./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=cb256cee&
176
+ // CONCATENATED MODULE: ./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=661dad8b&
177
177
 
178
178
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=script&lang=js&
179
179
  //
@@ -198,6 +198,8 @@ var staticRenderFns = []
198
198
  //
199
199
  //
200
200
  //
201
+ //
202
+ //
201
203
 
202
204
  /* harmony default export */ var cv_overflow_menu_itemvue_type_script_lang_js_ = ({
203
205
  name: 'CvOverflowMenuItem',
@@ -250,14 +252,14 @@ var component = Object(componentNormalizer["a" /* default */])(
250
252
  "use strict";
251
253
  __webpack_require__.r(__webpack_exports__);
252
254
 
253
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=79ff851d&
254
- var cv_date_pickervue_type_template_id_79ff851d_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-wrapper',{staticClass:"cv-date-picker bx--form-item",attrs:{"tag-type":_vm.formItem ? 'div' : ''}},[_c('div',{ref:"date-picker",staticClass:"bx--date-picker",class:[_vm.kindClasses, { 'bx--date-picker--light': _vm.theme === 'light', 'cv-date-pciker': !_vm.formItem }],attrs:{"data-date-picker":['single', 'range'].includes(_vm.kind),"data-date-picker-type":_vm.kind}},[_c('div',{class:{
255
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=ad82b8da&
256
+ var cv_date_pickervue_type_template_id_ad82b8da_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-wrapper',{staticClass:"cv-date-picker bx--form-item",attrs:{"tag-type":_vm.formItem ? 'div' : ''}},[_c('div',{ref:"date-picker",staticClass:"bx--date-picker",class:[_vm.kindClasses, { 'bx--date-picker--light': _vm.theme === 'light', 'cv-date-pciker': !_vm.formItem }],attrs:{"data-date-picker":['single', 'range'].includes(_vm.kind),"data-date-picker-type":_vm.kind}},[_c('div',{class:{
255
257
  'bx--date-picker-container': ['single', 'range'].includes(_vm.kind),
256
258
  },on:{"change":_vm.onChange}},[_c('label',{staticClass:"bx--label",attrs:{"for":(_vm.uid + "-input-1")}},[_vm._v(_vm._s(_vm.getDateLabel))]),_c('div',{staticClass:"bx--date-picker-input__wrapper"},[_c('input',{ref:"date",staticClass:"bx--date-picker__input",attrs:{"data-invalid":_vm.isInvalid,"type":"text","id":(_vm.uid + "-input-1"),"pattern":_vm.pattern,"placeholder":_vm.placeholder,"data-date-picker-input":"","data-date-picker-input-from":_vm.kind === 'range'}}),(['single', 'range'].includes(_vm.kind))?_c('Calendar16',{staticClass:"bx--date-picker__icon",attrs:{"data-date-picker-icon":""},on:{"click":function($event){return _vm.cal.open()}}}):_vm._e()],1),(_vm.isInvalid)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage || _vm.invalidDateMessage))])],2):_vm._e()]),(_vm.kind === 'range')?_c('div',{class:{ 'bx--date-picker-container': _vm.kind === 'range' }},[_c('label',{staticClass:"bx--label",attrs:{"for":(_vm.uid + "-input-2")}},[_vm._v(_vm._s(_vm.getDateEndLabel))]),_c('div',{staticClass:"bx--date-picker-input__wrapper"},[_c('input',{ref:"todate",staticClass:"bx--date-picker__input",attrs:{"type":"text","id":(_vm.uid + "-input-2"),"pattern":_vm.pattern,"placeholder":_vm.placeholder,"data-date-picker-input":"","data-date-picker-input-to":_vm.kind === 'range'}}),_c('Calendar16',{staticClass:"bx--date-picker__icon",attrs:{"data-date-picker-icon":""},on:{"click":function($event){return _vm.openTodateCal()}}})],1)]):_vm._e()])])}
257
259
  var staticRenderFns = []
258
260
 
259
261
 
260
- // CONCATENATED MODULE: ./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=79ff851d&
262
+ // CONCATENATED MODULE: ./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=ad82b8da&
261
263
 
262
264
  // EXTERNAL MODULE: ./node_modules/flatpickr/dist/flatpickr.js
263
265
  var flatpickr = __webpack_require__("cf06");
@@ -467,6 +469,7 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
467
469
  return {
468
470
  dataValue: '',
469
471
  dataOptions: {},
472
+ isInvalid: false,
470
473
  };
471
474
  },
472
475
  watch: {
@@ -515,13 +518,6 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
515
518
  }
516
519
  }
517
520
  },
518
- isInvalid() {
519
- return (
520
- this.$slots['invalid-message'] !== undefined ||
521
- (this.invalidMessage && this.invalidMessage.length) ||
522
- (this.invalidDateMessage && this.invalidDateMessage.length)
523
- );
524
- },
525
521
  isRange() {
526
522
  return this.kind === 'range';
527
523
  },
@@ -530,6 +526,14 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
530
526
  },
531
527
  },
532
528
  methods: {
529
+ checkSlots() {
530
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
531
+ this.isInvalid = !!(
532
+ this.$slots['invalid-message'] ||
533
+ (this.invalidMessage && this.invalidMessage.length) ||
534
+ (this.invalidDateMessage && this.invalidDateMessage.length)
535
+ );
536
+ },
533
537
  initFlatpickr() {
534
538
  if (['single', 'range'].includes(this.kind)) {
535
539
  // no need to call set value as it's done through getOptions
@@ -637,6 +641,7 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
637
641
  },
638
642
  mounted() {
639
643
  this.initFlatpickr();
644
+ this.checkSlots();
640
645
  // this.cal.setDate([Date.now(), Date.now()]);
641
646
  // setTimeout(() => {
642
647
  // let curDate = new Date();
@@ -645,6 +650,9 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
645
650
  // this.cal.setDate([curDate, anotherDate], true);
646
651
  // }, 2000);
647
652
  },
653
+ beforeUpdate() {
654
+ this.checkSlots();
655
+ },
648
656
  beforeDestroy() {
649
657
  if (this.cal) {
650
658
  this.cal.destroy();
@@ -667,7 +675,7 @@ var componentNormalizer = __webpack_require__("2877");
667
675
 
668
676
  var component = Object(componentNormalizer["a" /* default */])(
669
677
  cv_date_picker_cv_date_pickervue_type_script_lang_js_,
670
- cv_date_pickervue_type_template_id_79ff851d_render,
678
+ cv_date_pickervue_type_template_id_ad82b8da_render,
671
679
  staticRenderFns,
672
680
  false,
673
681
  null,
@@ -821,23 +829,23 @@ var component = Object(componentNormalizer["a" /* default */])(
821
829
  "use strict";
822
830
  __webpack_require__.r(__webpack_exports__);
823
831
 
824
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=7ca58e87&
832
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=c9eec754&
825
833
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.someExpandingRows)?_c('tbody',{staticClass:"cv-data-table-row cv-data-table-row--expandable"},[_c('cv-data-table-row-inner',_vm._g(_vm._b({ref:"row",attrs:{"expanding-row":_vm.dataExpandable,"some-expanding-rows":"","expanded":_vm.dataExpanded},on:{"expanded-change":_vm.onExpandedChange}},'cv-data-table-row-inner',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2),(_vm.dataExpandable)?_c('tr',{staticClass:"bx--expandable-row bx--expandable-row--hidden",attrs:{"data-child-row":""}},[_c('td',{attrs:{"colspan":"9999"}},[_c('div',{staticClass:"bx--child-row-inner-container"},[_vm._t("expandedContent")],2)])]):_vm._e()],1):_c('cv-data-table-row-inner',_vm._g(_vm._b({ref:"row",staticClass:"cv-data-table-row"},'cv-data-table-row-inner',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2)}
826
834
  var staticRenderFns = []
827
835
 
828
836
 
829
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=7ca58e87&
837
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=c9eec754&
830
838
 
831
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=0262ba02&
832
- var _cv_data_table_row_innervue_type_template_id_0262ba02_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:"cv-data-table-row-inner",class:{ 'bx--parent-row': _vm.expandingRow, 'bx--expandable-row': _vm.dataExpanded }},[(_vm.dataSomeExpandingRows)?_c('td',{staticClass:"bx--table-expand",attrs:{"data-previous-value":_vm.dataExpanded ? 'collapsed' : 'expanded'}},[(_vm.expandingRow)?_c('button',{staticClass:"bx--table-expand__button",attrs:{"type":"button"},on:{"click":_vm.toggleExpand}},[_c('ChevronRight16',{staticClass:"bx--table-expand__svg"})],1):_vm._e()]):_vm._e(),(_vm.hasBatchActions)?_c('td',{staticClass:"bx--table-column-checkbox"},[_c('cv-checkbox',{ref:"rowChecked",attrs:{"form-item":false,"value":_vm.value},on:{"change":_vm.onChange},model:{value:(_vm.dataChecked),callback:function ($$v) {_vm.dataChecked=$$v},expression:"dataChecked"}})],1):_vm._e(),_vm._t("default"),(_vm.hasOverflowMenu)?_c('td',{staticClass:"bx--table-column-menu"},[_c('cv-overflow-menu',{attrs:{"flip-menu":""}},_vm._l((_vm.overflowMenu),function(item,index){return _c('cv-overflow-menu-item',{key:("" + index),on:{"click":function($event){return _vm.onMenuItemClick({
839
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=434f21c4&
840
+ var _cv_data_table_row_innervue_type_template_id_434f21c4_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:"cv-data-table-row-inner",class:{ 'bx--parent-row': _vm.expandingRow, 'bx--expandable-row': _vm.dataExpanded }},[(_vm.dataSomeExpandingRows)?_c('td',{staticClass:"bx--table-expand",attrs:{"data-previous-value":_vm.dataExpanded ? 'collapsed' : 'expanded'}},[(_vm.expandingRow)?_c('button',{staticClass:"bx--table-expand__button",attrs:{"type":"button"},on:{"click":_vm.toggleExpand}},[_c('ChevronRight16',{staticClass:"bx--table-expand__svg"})],1):_vm._e()]):_vm._e(),(_vm.hasBatchActions)?_c('td',{staticClass:"bx--table-column-checkbox"},[_c('cv-checkbox',{ref:"rowChecked",attrs:{"form-item":false,"value":_vm.value},on:{"change":_vm.onChange},model:{value:(_vm.dataChecked),callback:function ($$v) {_vm.dataChecked=$$v},expression:"dataChecked"}})],1):_vm._e(),_vm._t("default"),(_vm.hasOverflowMenu)?_c('td',{staticClass:"bx--table-column-menu"},[_c('cv-overflow-menu',{attrs:{"flip-menu":""}},_vm._l((_vm.overflowMenu),function(item,index){return _c('cv-overflow-menu-item',{key:("" + index),on:{"click":function($event){return _vm.onMenuItemClick({
833
841
  rowValue: _vm.value,
834
842
  menuIndex: index,
835
843
  menuLabel: item,
836
844
  })}}},[_vm._v(_vm._s(item))])}),1)],1):_vm._e()],2)}
837
- var _cv_data_table_row_innervue_type_template_id_0262ba02_staticRenderFns = []
845
+ var _cv_data_table_row_innervue_type_template_id_434f21c4_staticRenderFns = []
838
846
 
839
847
 
840
- // CONCATENATED MODULE: ./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=0262ba02&
848
+ // CONCATENATED MODULE: ./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=434f21c4&
841
849
 
842
850
  // EXTERNAL MODULE: ./src/components/cv-checkbox/cv-checkbox.vue + 4 modules
843
851
  var cv_checkbox = __webpack_require__("eade");
@@ -912,8 +920,15 @@ var _16 = __webpack_require__("7c7c");
912
920
  dataChecked: this.checked,
913
921
  dataExpanded: this.expanded,
914
922
  dataSomeExpandingRows: this.someExpandingRows,
923
+ hasOverflowMenu: false,
915
924
  };
916
925
  },
926
+ mounted: function() {
927
+ this.checkSlots();
928
+ },
929
+ beforeUpdate() {
930
+ this.checkSlots();
931
+ },
917
932
  watch: {
918
933
  checked() {
919
934
  this.dataChecked = this.checked;
@@ -929,9 +944,6 @@ var _16 = __webpack_require__("7c7c");
929
944
  isCvDataTableRow() {
930
945
  return true;
931
946
  },
932
- hasOverflowMenu() {
933
- return (this.overflowMenu && this.overflowMenu.length) || this.$slots['overflow-menu'];
934
- },
935
947
  hasBatchActions() {
936
948
  return this.$parent.$parent.hasBatchActions;
937
949
  },
@@ -940,6 +952,10 @@ var _16 = __webpack_require__("7c7c");
940
952
  },
941
953
  },
942
954
  methods: {
955
+ checkSlots() {
956
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
957
+ this.hasOverflowMenu = !!((this.overflowMenu && this.overflowMenu.length) || this.$slots['overflow-menu']);
958
+ },
943
959
  onChange() {
944
960
  this.$parent.$parent.onRowCheckChange(this.value, this.dataChecked);
945
961
  },
@@ -968,8 +984,8 @@ var componentNormalizer = __webpack_require__("2877");
968
984
 
969
985
  var component = Object(componentNormalizer["a" /* default */])(
970
986
  cv_data_table_cv_data_table_row_innervue_type_script_lang_js_,
971
- _cv_data_table_row_innervue_type_template_id_0262ba02_render,
972
- _cv_data_table_row_innervue_type_template_id_0262ba02_staticRenderFns,
987
+ _cv_data_table_row_innervue_type_template_id_434f21c4_render,
988
+ _cv_data_table_row_innervue_type_template_id_434f21c4_staticRenderFns,
973
989
  false,
974
990
  null,
975
991
  null,
@@ -1021,7 +1037,7 @@ var uid_mixin = __webpack_require__("fceb");
1021
1037
  },
1022
1038
  data() {
1023
1039
  return {
1024
- dataExpandable: this.$slots.expandedContent !== undefined,
1040
+ dataExpandable: false,
1025
1041
  dataSomeExpandingRows: false,
1026
1042
  dataExpanded: this.expanded,
1027
1043
  };
@@ -1034,10 +1050,12 @@ var uid_mixin = __webpack_require__("fceb");
1034
1050
  },
1035
1051
  },
1036
1052
  mounted() {
1053
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1054
+ this.dataExpandable = !!this.$slots.expandedContent;
1037
1055
  this.$parent.$emit('cv:mounted', this);
1038
1056
  },
1039
1057
  updated() {
1040
- this.dataExpandable = this.$slots.expandedContent !== undefined;
1058
+ this.dataExpandable = !!this.$slots.expandedContent;
1041
1059
  },
1042
1060
  beforeDestroy() {
1043
1061
  this.$parent.$emit('cv:beforeDestroy', this);
@@ -1120,12 +1138,12 @@ var cv_data_table_row_component = Object(componentNormalizer["a" /* default */])
1120
1138
  "use strict";
1121
1139
  __webpack_require__.r(__webpack_exports__);
1122
1140
 
1123
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=833931ec&
1124
- var cv_side_nav_menuvue_type_template_id_833931ec_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:"cv-side-nav-menu bx--side-nav__item",class:{ 'bx--side-nav__item--active': _vm.active, 'bx--side-nav__item--icon': _vm.hasIcon }},[_c('button',{staticClass:"bx--side-nav__submenu",attrs:{"aria-haspopup":"true","aria-expanded":_vm.expanded ? 'true' : 'false',"role":"menuitem","type":"button"},on:{"click":_vm.doToggle,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.preventDefault();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.doToggle($event)}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.preventDefault();return _vm.doToggle($event)}}},[(_vm.hasIcon)?_c('cv-side-nav-icon',[_vm._t("nav-icon")],2):_vm._e(),_c('span',{staticClass:"bx--side-nav__submenu-title"},[_vm._v(_vm._s(_vm.title))]),_c('cv-side-nav-icon',{staticClass:"bx--side-nav__submenu-chevron",attrs:{"small":"","aria-label":_vm.expanded ? 'collapse nav menu' : 'expand nav menu'}},[_c('ChevronDown20',{staticClass:"cv-side-nav-menu__chevron-svg"})],1)],1),_c('ul',{ref:"menu",staticClass:"bx--side-nav__menu",attrs:{"role":"menu"}},[_vm._t("default")],2)])}
1141
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=d79b4eb0&
1142
+ var cv_side_nav_menuvue_type_template_id_d79b4eb0_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:"cv-side-nav-menu bx--side-nav__item",class:{ 'bx--side-nav__item--active': _vm.active, 'bx--side-nav__item--icon': _vm.hasIcon }},[_c('button',{staticClass:"bx--side-nav__submenu",attrs:{"aria-haspopup":"true","aria-expanded":_vm.expanded ? 'true' : 'false',"role":"menuitem","type":"button"},on:{"click":_vm.doToggle,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.preventDefault();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.doToggle($event)}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.preventDefault();return _vm.doToggle($event)}}},[(_vm.hasIcon)?_c('cv-side-nav-icon',[_vm._t("nav-icon")],2):_vm._e(),_c('span',{staticClass:"bx--side-nav__submenu-title"},[_vm._v(_vm._s(_vm.title))]),_c('cv-side-nav-icon',{staticClass:"bx--side-nav__submenu-chevron",attrs:{"small":"","aria-label":_vm.expanded ? 'collapse nav menu' : 'expand nav menu'}},[_c('ChevronDown20',{staticClass:"cv-side-nav-menu__chevron-svg"})],1)],1),_c('ul',{ref:"menu",staticClass:"bx--side-nav__menu",attrs:{"role":"menu"}},[_vm._t("default")],2)])}
1125
1143
  var staticRenderFns = []
1126
1144
 
1127
1145
 
1128
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=833931ec&
1146
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=d79b4eb0&
1129
1147
 
1130
1148
  // EXTERNAL MODULE: ./node_modules/@carbon/icons-vue/es/chunk-75bb93d0.js
1131
1149
  var chunk_75bb93d0 = __webpack_require__("74ae");
@@ -1233,11 +1251,19 @@ var cv_side_nav_icon = __webpack_require__("8fd3");
1233
1251
  data() {
1234
1252
  return {
1235
1253
  expanded: false,
1254
+ hasNavIcon: false,
1236
1255
  };
1237
1256
  },
1257
+ mounted() {
1258
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1259
+ this.hasNavIcon = !!this.$slots['nav-icon'];
1260
+ },
1261
+ beforeUpdate() {
1262
+ this.hasNavIcon = !!this.$slots['nav-icon'];
1263
+ },
1238
1264
  computed: {
1239
1265
  hasIcon() {
1240
- return this.$slots['nav-icon'] !== undefined;
1266
+ return !!this.$slots['nav-icon'];
1241
1267
  },
1242
1268
  },
1243
1269
  methods: {
@@ -1262,7 +1288,7 @@ var componentNormalizer = __webpack_require__("2877");
1262
1288
 
1263
1289
  var component = Object(componentNormalizer["a" /* default */])(
1264
1290
  cv_ui_shell_cv_side_nav_menuvue_type_script_lang_js_,
1265
- cv_side_nav_menuvue_type_template_id_833931ec_render,
1291
+ cv_side_nav_menuvue_type_template_id_d79b4eb0_render,
1266
1292
  staticRenderFns,
1267
1293
  false,
1268
1294
  null,
@@ -1571,7 +1597,7 @@ var component = Object(componentNormalizer["a" /* default */])(
1571
1597
  "use strict";
1572
1598
  __webpack_require__.r(__webpack_exports__);
1573
1599
 
1574
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=02be530e&
1600
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=7b295f82&
1575
1601
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-text-area bx--form-item"},[_c('label',{class:[
1576
1602
  'bx--label',
1577
1603
  {
@@ -1580,7 +1606,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
1580
1606
  var staticRenderFns = []
1581
1607
 
1582
1608
 
1583
- // CONCATENATED MODULE: ./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=02be530e&
1609
+ // CONCATENATED MODULE: ./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=7b295f82&
1584
1610
 
1585
1611
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
1586
1612
  var uid_mixin = __webpack_require__("fceb");
@@ -1640,6 +1666,18 @@ var _16 = __webpack_require__("f47d");
1640
1666
  label: String,
1641
1667
  value: String,
1642
1668
  },
1669
+ data() {
1670
+ return {
1671
+ isHelper: false,
1672
+ isInvalid: false,
1673
+ };
1674
+ },
1675
+ mounted() {
1676
+ this.checkSlots();
1677
+ },
1678
+ beforeUpdate() {
1679
+ this.checkSlots();
1680
+ },
1643
1681
  computed: {
1644
1682
  // Bind listeners at the component level to the embedded input element and
1645
1683
  // add our own input listener to service the v-model. See:
@@ -1650,11 +1688,12 @@ var _16 = __webpack_require__("f47d");
1650
1688
  input: event => this.$emit('input', event.target.value),
1651
1689
  };
1652
1690
  },
1653
- isInvalid() {
1654
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
1655
- },
1656
- isHelper() {
1657
- return this.$slots['helper-text'] || (this.helperText && this.helperText.length);
1691
+ },
1692
+ methods: {
1693
+ checkSlots() {
1694
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1695
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
1696
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
1658
1697
  },
1659
1698
  },
1660
1699
  });
@@ -2283,7 +2322,7 @@ var component = Object(componentNormalizer["a" /* default */])(
2283
2322
  "use strict";
2284
2323
  __webpack_require__.r(__webpack_exports__);
2285
2324
 
2286
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-select/cv-select.vue?vue&type=template&id=d8e334c8&
2325
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-select/cv-select.vue?vue&type=template&id=c4569fdc&
2287
2326
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-wrapper',{staticClass:"cv-select bx--form-item",attrs:{"tag-type":_vm.formItem ? 'div' : ''}},[_c('div',{staticClass:"bx--select",class:{
2288
2327
  'cv-select': !_vm.formItem,
2289
2328
  'bx--select--inline': _vm.inline,
@@ -2294,7 +2333,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
2294
2333
  var staticRenderFns = []
2295
2334
 
2296
2335
 
2297
- // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=template&id=d8e334c8&
2336
+ // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=template&id=c4569fdc&
2298
2337
 
2299
2338
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
2300
2339
  var uid_mixin = __webpack_require__("fceb");
@@ -2406,7 +2445,11 @@ var _16 = __webpack_require__("f47d");
2406
2445
  delete this.$attrs.multiple;
2407
2446
  },
2408
2447
  data() {
2409
- return { dataValue: undefined };
2448
+ return {
2449
+ dataValue: undefined,
2450
+ isHelper: false,
2451
+ isInvalid: false,
2452
+ };
2410
2453
  },
2411
2454
  mounted() {
2412
2455
  // this is needed to ensure selected for an option when no value is supplied
@@ -2418,6 +2461,10 @@ var _16 = __webpack_require__("f47d");
2418
2461
  }
2419
2462
  }
2420
2463
  }
2464
+ this.checkSlots();
2465
+ },
2466
+ beforeUpdate() {
2467
+ this.checkSlots();
2421
2468
  },
2422
2469
  watch: {
2423
2470
  value() {
@@ -2442,16 +2489,17 @@ var _16 = __webpack_require__("f47d");
2442
2489
  input: event => this.$emit('input', event.target.value),
2443
2490
  };
2444
2491
  },
2445
- isInvalid() {
2446
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
2447
- },
2448
- isHelper() {
2449
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
2450
- },
2451
2492
  internalValue() {
2452
2493
  return this.dataValue ? this.dataValue : this.value;
2453
2494
  },
2454
2495
  },
2496
+ methods: {
2497
+ checkSlots() {
2498
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
2499
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
2500
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
2501
+ },
2502
+ },
2455
2503
  });
2456
2504
 
2457
2505
  // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=script&lang=js&
@@ -2569,12 +2617,12 @@ var component = Object(componentNormalizer["a" /* default */])(
2569
2617
  "use strict";
2570
2618
  __webpack_require__.r(__webpack_exports__);
2571
2619
 
2572
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=5adee54a&
2620
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=8a6cb3f0&
2573
2621
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',_vm._g({staticClass:"bx--overflow-menu bx--toolbar-action",attrs:{"type":"button"}},_vm.$listeners),[_vm._t("default")],2)}
2574
2622
  var staticRenderFns = []
2575
2623
 
2576
2624
 
2577
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=5adee54a&
2625
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=8a6cb3f0&
2578
2626
 
2579
2627
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-action.vue?vue&type=script&lang=js&
2580
2628
  //
@@ -2588,7 +2636,7 @@ var staticRenderFns = []
2588
2636
  name: 'cv-data-table-action',
2589
2637
  mounted() {
2590
2638
  // ensure SVG has
2591
- this.$el.children[0].classList.add('class="bx--toolbar-action__icon');
2639
+ this.$el.children[0].classList.add('bx--toolbar-action__icon');
2592
2640
  },
2593
2641
  });
2594
2642
 
@@ -3711,16 +3759,16 @@ var component = Object(componentNormalizer["a" /* default */])(
3711
3759
  "use strict";
3712
3760
  __webpack_require__.r(__webpack_exports__);
3713
3761
 
3714
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=7fe3cf66&
3762
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=25b02a2f&
3715
3763
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-combo-box bx--list-box__wrapper",on:{"focusout":_vm.onFocusOut}},[(_vm.title)?_c('label',{staticClass:"bx--label",class:{ 'bx--label--disabled': _vm.$attrs.disabled },attrs:{"for":_vm.uid}},[_vm._v("\n "+_vm._s(_vm.title)+"\n ")]):_vm._e(),(_vm.isHelper)?_c('div',{staticClass:"bx--form__helper-text",class:{ 'bx--form__helper-text--disabled': _vm.$attrs.disabled }},[_vm._t("helper-text",[_vm._v(_vm._s(_vm.helperText))])],2):_vm._e(),_c('div',_vm._b({staticClass:"bx--combo-box bx--list-box",class:{
3716
3764
  'bx--list-box--light': _vm.theme === 'light',
3717
3765
  'bx--combo-box--expanded': _vm.open,
3718
3766
  'bx--combo-box--disabled bx--list-box--disabled': _vm.$attrs.disabled,
3719
- },attrs:{"role":"listbox","tabindex":"-1","data-invalid":_vm.isInvalid},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onDown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onUp($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}],"click":_vm.onClick}},'div',_vm.$attrs,false),[(_vm.isInvalid)?_c('WarningFilled16',{staticClass:"bx--list-box__invalid-icon"}):_vm._e(),_c('div',{ref:"button",staticClass:"bx--list-box__field",attrs:{"role":"button","aria-haspopup":"true","aria-expanded":_vm.open,"aria-owns":_vm.uid,"aria-controls":_vm.uid,"tabindex":"-1","type":"button","aria-label":_vm.open ? 'close menu' : 'open menu',"data-toggle":"true"}},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.filter),expression:"filter"}],ref:"input",staticClass:"bx--text-input",attrs:{"aria-controls":_vm.uid,"aria-autocomplete":"list","role":"combobox","aria-expanded":_vm.open,"autocomplete":"off","placeholder":"Filter"},domProps:{"value":(_vm.filter)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.filter=$event.target.value},_vm.onInput],"focus":_vm.inputFocus,"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.inputClick($event)}}}),(_vm.filter)?_c('div',{staticClass:"bx--list-box__selection",attrs:{"role":"button","tabindex":"0","title":"Clear filter"},on:{"click":function($event){$event.stopPropagation();return _vm.clearFilter($event)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)}}},[_c('Close16')],1):_vm._e(),_c('div',{staticClass:"bx--list-box__menu-icon",class:{ 'bx--list-box__menu-icon--open': _vm.open },attrs:{"role":"button"}},[_c('chevron-down-16',{attrs:{"aria-label":_vm.open ? 'Close menu' : 'Open menu'}})],1)]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.open),expression:"open"}],ref:"list",staticClass:"bx--list-box__menu",attrs:{"id":_vm.uid,"role":"listbox"}},_vm._l((_vm.dataOptions),function(item,index){return _c('div',{key:("combo-box-" + index),ref:"option",refInFor:true,staticClass:"bx--list-box__menu-item",class:{ 'bx--list-box__menu-item--highlighted': _vm.highlighted === item.value },on:{"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onItemClick(item.value)},"mousemove":function($event){return _vm.onMousemove(item.value)},"mousedown":function($event){$event.preventDefault();}}},[_c('div',{staticClass:"bx--list-box__menu-item__option"},[_vm._v(_vm._s(item.label))])])}),0)],1),(_vm.isInvalid)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage))])],2):_vm._e()])}
3767
+ },attrs:{"role":"listbox","tabindex":"-1","data-invalid":_vm.isInvalid},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onDown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onUp($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}],"click":_vm.onClick}},'div',_vm.$attrs,false),[(_vm.isInvalid)?_c('WarningFilled16',{staticClass:"bx--list-box__invalid-icon"}):_vm._e(),_c('div',{ref:"button",staticClass:"bx--list-box__field",attrs:{"role":"button","aria-haspopup":"true","aria-expanded":_vm.open,"aria-owns":_vm.uid,"aria-controls":_vm.uid,"tabindex":"-1","type":"button","aria-label":_vm.open ? 'close menu' : 'open menu',"data-toggle":"true"}},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.filter),expression:"filter"}],ref:"input",staticClass:"bx--text-input",attrs:{"aria-controls":_vm.uid,"aria-autocomplete":"list","role":"combobox","aria-expanded":_vm.open,"autocomplete":"off","placeholder":_vm.label},domProps:{"value":(_vm.filter)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.filter=$event.target.value},_vm.onInput],"focus":_vm.inputFocus,"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.inputClick($event)}}}),(_vm.filter)?_c('div',{staticClass:"bx--list-box__selection",attrs:{"role":"button","tabindex":"0","title":"Clear filter"},on:{"click":function($event){$event.stopPropagation();return _vm.clearFilter($event)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)}}},[_c('Close16')],1):_vm._e(),_c('div',{staticClass:"bx--list-box__menu-icon",class:{ 'bx--list-box__menu-icon--open': _vm.open },attrs:{"role":"button"}},[_c('chevron-down-16',{attrs:{"aria-label":_vm.open ? 'Close menu' : 'Open menu'}})],1)]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.open),expression:"open"}],ref:"list",staticClass:"bx--list-box__menu",attrs:{"id":_vm.uid,"role":"listbox"}},_vm._l((_vm.dataOptions),function(item,index){return _c('div',{key:("combo-box-" + index),ref:"option",refInFor:true,staticClass:"bx--list-box__menu-item",class:{ 'bx--list-box__menu-item--highlighted': _vm.highlighted === item.value },on:{"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onItemClick(item.value)},"mousemove":function($event){return _vm.onMousemove(item.value)},"mousedown":function($event){$event.preventDefault();}}},[_c('div',{staticClass:"bx--list-box__menu-item__option"},[_vm._v(_vm._s(item.label))])])}),0)],1),(_vm.isInvalid)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage))])],2):_vm._e()])}
3720
3768
  var staticRenderFns = []
3721
3769
 
3722
3770
 
3723
- // CONCATENATED MODULE: ./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=7fe3cf66&
3771
+ // CONCATENATED MODULE: ./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=25b02a2f&
3724
3772
 
3725
3773
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
3726
3774
  var theme_mixin = __webpack_require__("d43c");
@@ -3878,6 +3926,8 @@ var uid_mixin = __webpack_require__("fceb");
3878
3926
  dataValue: this.value,
3879
3927
  dataHighlighted: null,
3880
3928
  dataFilter: null,
3929
+ isHelper: false,
3930
+ isInvalid: false,
3881
3931
  };
3882
3932
  },
3883
3933
  model: {
@@ -3903,17 +3953,12 @@ var uid_mixin = __webpack_require__("fceb");
3903
3953
  mounted() {
3904
3954
  this.filter = this.value;
3905
3955
  this.highlighted = this.value ? this.value : this.highlight; // override highlight with value if provided
3906
- console.warn(
3907
- `${this.$vnode.componentOptions.Ctor.extendOptions.name} - Under review. This component isn't quite ready. Hopefully no features will get broken but this cannot be guarenteed.`
3908
- );
3956
+ this.checkSlots();
3957
+ },
3958
+ beforeUpdate() {
3959
+ this.checkSlots();
3909
3960
  },
3910
3961
  computed: {
3911
- isInvalid() {
3912
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
3913
- },
3914
- isHelper() {
3915
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
3916
- },
3917
3962
  highlighted: {
3918
3963
  get() {
3919
3964
  return this.dataHighlighted;
@@ -3945,11 +3990,18 @@ var uid_mixin = __webpack_require__("fceb");
3945
3990
  },
3946
3991
  },
3947
3992
  methods: {
3993
+ checkSlots() {
3994
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
3995
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
3996
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
3997
+ },
3948
3998
  clearFilter() {
3999
+ this.internalUpdateValue('');
3949
4000
  this.filter = '';
3950
4001
  this.$refs.input.focus();
3951
4002
  this.doOpen(true);
3952
4003
  this.updateOptions();
4004
+ this.$emit('change', this.dataValue);
3953
4005
  },
3954
4006
  checkHighlightPosition(newHiglight) {
3955
4007
  if (this.$refs.list && this.$refs.option) {
@@ -3990,7 +4042,7 @@ var uid_mixin = __webpack_require__("fceb");
3990
4042
  }
3991
4043
  },
3992
4044
  updateOptions() {
3993
- if (this.autoFilter) {
4045
+ if (this.autoFilter && this.filter) {
3994
4046
  const escFilter = this.filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3995
4047
  const pat = new RegExp(escFilter, 'iu');
3996
4048
  this.dataOptions = this.options.filter(opt => pat.test(opt.label)).slice(0);
@@ -4661,6 +4713,7 @@ var map = {
4661
4713
  "./cv-tile/cv-tile.vue": "5106",
4662
4714
  "./cv-time-picker/cv-time-picker.vue": "89b6",
4663
4715
  "./cv-toast-notification/cv-toast-notification.vue": "95a6",
4716
+ "./cv-toggle/cv-toggle-skeleton.vue": "68c3",
4664
4717
  "./cv-toggle/cv-toggle.vue": "f154",
4665
4718
  "./cv-toolbar/cv-toolbar-divider.vue": "25b6",
4666
4719
  "./cv-toolbar/cv-toolbar-option.vue": "4c37",
@@ -6613,8 +6666,8 @@ var virtual_CheckmarkFilled16 = {
6613
6666
  "use strict";
6614
6667
  __webpack_require__.r(__webpack_exports__);
6615
6668
 
6616
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=77eb2092&
6617
- var cv_number_inputvue_type_template_id_77eb2092_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-wrapper',{staticClass:"cv-number-input bx--form-item",attrs:{"tag-type":_vm.formItem ? 'div' : ''}},[_c('div',{staticClass:"bx--number",class:{
6669
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=76d16536&
6670
+ var cv_number_inputvue_type_template_id_76d16536_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-wrapper',{staticClass:"cv-number-input bx--form-item",attrs:{"tag-type":_vm.formItem ? 'div' : ''}},[_c('div',{staticClass:"bx--number",class:{
6618
6671
  'bx--number--light': _vm.theme === 'light',
6619
6672
  'bx--number--helpertext': _vm.isHelper,
6620
6673
  'cv-number-input': !_vm.formItem,
@@ -6622,7 +6675,7 @@ var cv_number_inputvue_type_template_id_77eb2092_render = function () {var _vm=t
6622
6675
  var staticRenderFns = []
6623
6676
 
6624
6677
 
6625
- // CONCATENATED MODULE: ./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=77eb2092&
6678
+ // CONCATENATED MODULE: ./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=76d16536&
6626
6679
 
6627
6680
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
6628
6681
  var uid_mixin = __webpack_require__("fceb");
@@ -6819,8 +6872,16 @@ var _cv_wrapper = __webpack_require__("5d36");
6819
6872
  data() {
6820
6873
  return {
6821
6874
  internalValue: this.valueAsString(this.value),
6875
+ isHelper: false,
6876
+ isInvalid: false,
6822
6877
  };
6823
6878
  },
6879
+ mounted() {
6880
+ this.checkSlots();
6881
+ },
6882
+ beforeUpdate() {
6883
+ this.checkSlots();
6884
+ },
6824
6885
  watch: {
6825
6886
  value() {
6826
6887
  this.internalValue = this.valueAsString(this.value);
@@ -6843,14 +6904,13 @@ var _cv_wrapper = __webpack_require__("5d36");
6843
6904
  }
6844
6905
  return intVal;
6845
6906
  },
6846
- isInvalid() {
6847
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
6848
- },
6849
- isHelper() {
6850
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
6851
- },
6852
6907
  },
6853
6908
  methods: {
6909
+ checkSlots() {
6910
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
6911
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
6912
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
6913
+ },
6854
6914
  doUp() {
6855
6915
  this.internalValue = `${this.internalIntValue + 1}`;
6856
6916
  this.emitValue();
@@ -6890,7 +6950,7 @@ var componentNormalizer = __webpack_require__("2877");
6890
6950
 
6891
6951
  var component = Object(componentNormalizer["a" /* default */])(
6892
6952
  cv_number_input_cv_number_inputvue_type_script_lang_js_,
6893
- cv_number_inputvue_type_template_id_77eb2092_render,
6953
+ cv_number_inputvue_type_template_id_76d16536_render,
6894
6954
  staticRenderFns,
6895
6955
  false,
6896
6956
  null,
@@ -6909,7 +6969,7 @@ var component = Object(componentNormalizer["a" /* default */])(
6909
6969
  "use strict";
6910
6970
  __webpack_require__.r(__webpack_exports__);
6911
6971
 
6912
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=9188ed7c&
6972
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=a6c6d852&
6913
6973
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-multi-select bx--multi-select__wrapper bx--list-box__wrapper",class:{
6914
6974
  'bx--multi-select__wrapper--inline bx--list-box__wrapper--inline': _vm.inline,
6915
6975
  'bx--multi-select__wrapper--inline--invalid bx--list-box__wrapper--inline--invalid': _vm.inline && _vm.isInvalid,
@@ -6922,11 +6982,11 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
6922
6982
  'bx--multi-select--inline bx--list-box--inline': _vm.inline,
6923
6983
  'bx--multi-select--selected': _vm.dataValue.length > 0,
6924
6984
  'bx--combo-box': _vm.filterable,
6925
- },attrs:{"role":"listbox","tabindex":"-1","data-invalid":_vm.isInvalid},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onDown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onUp($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}],"click":_vm.onClick}},'div',_vm.$attrs,false),[(_vm.isInvalid)?_c('WarningFilled16',{staticClass:"bx--list-box__invalid-icon"}):_vm._e(),_c('div',{ref:"button",staticClass:"bx--list-box__field",attrs:{"role":"button","aria-haspopup":"true","aria-expanded":_vm.open,"aria-owns":_vm.uid,"aria-controls":_vm.uid,"tabindex":"0","type":"button","aria-label":_vm.open ? 'close menu' : 'open menu',"data-toggle":"true"}},[_c('cv-tag',{directives:[{name:"show",rawName:"v-show",value:(_vm.dataValue.length > 0),expression:"dataValue.length > 0"}],ref:"tag",class:{ 'bx--list-box__selection--multi': _vm.filterable && _vm.dataValue.length > 0 },style:(_vm.filterableTagOverride),attrs:{"disabled":_vm.disabled,"kind":"filter","label":("" + (_vm.dataValue.length))},on:{"remove":_vm.clearValues}}),(!_vm.filterable)?_c('span',{staticClass:"bx--list-box__label"},[_vm._v(_vm._s(_vm.label))]):[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.filter),expression:"filter"}],ref:"input",staticClass:"bx--text-input",attrs:{"aria-controls":_vm.uid,"aria-autocomplete":"list","role":"combobox","aria-expanded":_vm.open,"autocomplete":"off","placeholder":"Filter"},domProps:{"value":(_vm.filter)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.filter=$event.target.value},_vm.onInput],"focus":_vm.inputFocus,"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.inputClick($event)}}}),(_vm.filter.length > 0)?_c('div',{staticClass:"bx--list-box__selection",attrs:{"role":"button","tabindex":"0","title":"Clear filter"},on:{"click":function($event){$event.stopPropagation();return _vm.clearFilter($event)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)}}},[_c('Close16')],1):_vm._e()],_c('div',{staticClass:"bx--list-box__menu-icon",class:{ 'bx--list-box__menu-icon--open': _vm.open },attrs:{"role":"button"}},[_c('chevron-down-16',{attrs:{"aria-label":_vm.open ? 'Close menu' : 'Open menu'}})],1)],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.open),expression:"open"}],ref:"list",staticClass:"bx--list-box__menu",attrs:{"id":_vm.uid,"role":"listbox"}},_vm._l((_vm.dataOptions),function(item,index){return _c('div',{key:("multi-select-" + index),ref:"option",refInFor:true,staticClass:"bx--list-box__menu-item",class:{ 'bx--list-box__menu-item--highlighted': _vm.highlighted === item.value },on:{"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onItemClick(item.value)},"mousemove":function($event){return _vm.onMousemove(item.value)},"mousedown":function($event){$event.preventDefault();}}},[_c('div',{staticClass:"bx--list-box__menu-item__option"},[_c('cv-checkbox',{staticStyle:{"pointer-events":"none"},attrs:{"tabindex":"-1","form-item":false,"value":item.value,"name":item.name,"data-test":item.name,"label":item.label},model:{value:(_vm.dataValue),callback:function ($$v) {_vm.dataValue=$$v},expression:"dataValue"}})],1)])}),0)],1),(_vm.isInvalid && !_vm.inline)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage))])],2):_vm._e()])}
6985
+ },attrs:{"role":"listbox","tabindex":"-1","data-invalid":_vm.isInvalid},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onDown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onUp($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)},_vm.otherKey],"click":_vm.onClick}},'div',_vm.$attrs,false),[(_vm.isInvalid)?_c('WarningFilled16',{staticClass:"bx--list-box__invalid-icon"}):_vm._e(),_c('div',{ref:"button",staticClass:"bx--list-box__field",attrs:{"role":"button","aria-haspopup":"true","aria-expanded":_vm.open,"aria-owns":_vm.uid,"aria-controls":_vm.uid,"tabindex":"0","type":"button","aria-label":_vm.open ? 'close menu' : 'open menu',"data-toggle":"true"}},[_c('cv-tag',{directives:[{name:"show",rawName:"v-show",value:(_vm.dataValue.length > 0),expression:"dataValue.length > 0"}],ref:"tag",class:{ 'bx--list-box__selection--multi': _vm.filterable && _vm.dataValue.length > 0 },style:(_vm.filterableTagOverride),attrs:{"disabled":_vm.disabled,"kind":"filter","label":("" + (_vm.dataValue.length))},on:{"remove":_vm.clearValues}}),(!_vm.filterable)?_c('span',{staticClass:"bx--list-box__label"},[_vm._v(_vm._s(_vm.label))]):[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.filter),expression:"filter"}],ref:"input",staticClass:"bx--text-input",attrs:{"aria-controls":_vm.uid,"aria-autocomplete":"list","role":"combobox","aria-expanded":_vm.open,"autocomplete":"off","placeholder":"Filter"},domProps:{"value":(_vm.filter)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.filter=$event.target.value},_vm.onInput],"focus":_vm.inputFocus,"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.inputClick($event)}}}),(_vm.filter.length > 0)?_c('div',{staticClass:"bx--list-box__selection",attrs:{"role":"button","tabindex":"0","title":"Clear filter"},on:{"click":function($event){$event.stopPropagation();return _vm.clearFilter($event)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();}],"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"space",32,$event.key,[" ","Spacebar"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.clearFilter($event)}}},[_c('Close16')],1):_vm._e()],_c('div',{staticClass:"bx--list-box__menu-icon",class:{ 'bx--list-box__menu-icon--open': _vm.open },attrs:{"role":"button"}},[_c('chevron-down-16',{attrs:{"aria-label":_vm.open ? 'Close menu' : 'Open menu'}})],1)],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.open),expression:"open"}],ref:"list",staticClass:"bx--list-box__menu",attrs:{"id":_vm.uid,"role":"listbox"}},_vm._l((_vm.dataOptions),function(item,index){return _c('div',{key:("multi-select-" + index),ref:"option",refInFor:true,staticClass:"bx--list-box__menu-item",class:{ 'bx--list-box__menu-item--highlighted': _vm.highlighted === item.value },on:{"click":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onItemClick(item.value)},"mousemove":function($event){return _vm.onMousemove(item.value)},"mousedown":function($event){$event.preventDefault();}}},[_c('div',{staticClass:"bx--list-box__menu-item__option"},[_c('cv-checkbox',{staticStyle:{"pointer-events":"none"},attrs:{"tabindex":"-1","form-item":false,"value":item.value,"name":item.name,"data-test":item.name,"label":item.label},model:{value:(_vm.dataValue),callback:function ($$v) {_vm.dataValue=$$v},expression:"dataValue"}})],1)])}),0)],1),(_vm.isInvalid && !_vm.inline)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage))])],2):_vm._e()])}
6926
6986
  var staticRenderFns = []
6927
6987
 
6928
6988
 
6929
- // CONCATENATED MODULE: ./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=9188ed7c&
6989
+ // CONCATENATED MODULE: ./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=a6c6d852&
6930
6990
 
6931
6991
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
6932
6992
  var theme_mixin = __webpack_require__("d43c");
@@ -7082,6 +7142,7 @@ var cv_tag = __webpack_require__("603b");
7082
7142
  //
7083
7143
  //
7084
7144
  //
7145
+ //
7085
7146
 
7086
7147
 
7087
7148
 
@@ -7151,6 +7212,8 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7151
7212
  dataValue: '',
7152
7213
  dataHighlighted: null,
7153
7214
  dataFilter: '',
7215
+ isHelper: false,
7216
+ isInvalid: false,
7154
7217
  };
7155
7218
  },
7156
7219
  model: {
@@ -7177,17 +7240,12 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7177
7240
  },
7178
7241
  mounted() {
7179
7242
  this.highlighted = this.value ? this.value : this.highlight; // override highlight with value if provided
7180
- console.warn(
7181
- `${this.$vnode.componentOptions.Ctor.extendOptions.name} - Under review. This component isn't quite ready. Hopefully no features will get broken but this cannot be guarenteed.`
7182
- );
7243
+ this.checkSlots();
7244
+ },
7245
+ beforeUpdate() {
7246
+ this.checkSlots();
7183
7247
  },
7184
7248
  computed: {
7185
- isInvalid() {
7186
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
7187
- },
7188
- isHelper() {
7189
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
7190
- },
7191
7249
  highlighted: {
7192
7250
  get() {
7193
7251
  return this.dataHighlighted;
@@ -7223,6 +7281,11 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7223
7281
  },
7224
7282
  },
7225
7283
  methods: {
7284
+ checkSlots() {
7285
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
7286
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
7287
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
7288
+ },
7226
7289
  clearFilter() {
7227
7290
  this.filter = '';
7228
7291
  this.$refs.input.focus();
@@ -7351,8 +7414,16 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7351
7414
  if (this.disabled) {
7352
7415
  ev.preventDefault();
7353
7416
  } else {
7354
- this.doOpen(!this.open);
7355
- this.inputOrButtonFocus();
7417
+ if (this.open) {
7418
+ this.inputOrButtonFocus();
7419
+ // done this way round otherwise will auto open on focus.
7420
+ this.$nextTick(() => {
7421
+ this.doOpen(false);
7422
+ });
7423
+ } else {
7424
+ this.doOpen(true);
7425
+ this.inputOrButtonFocus();
7426
+ }
7356
7427
  }
7357
7428
  },
7358
7429
  clearValues() {
@@ -7389,6 +7460,11 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7389
7460
  inputFocus() {
7390
7461
  this.doOpen(true);
7391
7462
  },
7463
+ otherKey(ev) {
7464
+ if (!['Escape', 'ArrowUp', 'ArrowDown', 'Enter'].includes(ev.code)) {
7465
+ console.log(ev.code);
7466
+ }
7467
+ },
7392
7468
  },
7393
7469
  });
7394
7470
 
@@ -7525,6 +7601,72 @@ var component = Object(componentNormalizer["a" /* default */])(
7525
7601
 
7526
7602
  /***/ }),
7527
7603
 
7604
+ /***/ "68c3":
7605
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
7606
+
7607
+ "use strict";
7608
+ __webpack_require__.r(__webpack_exports__);
7609
+
7610
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=template&id=c0690bde&
7611
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-toggle bx--form-item"},[_c('label',{staticClass:"bx--toggle__label bx--skeleton",attrs:{"for":_vm.uid,"aria-label":_vm.label ? 'Toggle is loading' : _vm.label}},[_c('span',{staticClass:"bx--toggle__label-text"}),_c('span',{staticClass:"bx--toggle__text--left"}),_c('span',{staticClass:"bx--toggle__appearance"}),_c('span',{staticClass:"bx--toggle__text--right"})])])}
7612
+ var staticRenderFns = []
7613
+
7614
+
7615
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=template&id=c0690bde&
7616
+
7617
+ // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
7618
+ var uid_mixin = __webpack_require__("fceb");
7619
+
7620
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=script&lang=js&
7621
+ //
7622
+ //
7623
+ //
7624
+ //
7625
+ //
7626
+ //
7627
+ //
7628
+ //
7629
+ //
7630
+ //
7631
+ //
7632
+
7633
+
7634
+ /* harmony default export */ var cv_toggle_skeletonvue_type_script_lang_js_ = ({
7635
+ name: 'CvToggleSkeleton',
7636
+ mixins: [uid_mixin["a" /* default */]],
7637
+ props: {
7638
+ label: { type: String, default: 'Toggle is loading' },
7639
+ },
7640
+ });
7641
+
7642
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=script&lang=js&
7643
+ /* harmony default export */ var cv_toggle_cv_toggle_skeletonvue_type_script_lang_js_ = (cv_toggle_skeletonvue_type_script_lang_js_);
7644
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
7645
+ var componentNormalizer = __webpack_require__("2877");
7646
+
7647
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue
7648
+
7649
+
7650
+
7651
+
7652
+
7653
+ /* normalize component */
7654
+
7655
+ var component = Object(componentNormalizer["a" /* default */])(
7656
+ cv_toggle_cv_toggle_skeletonvue_type_script_lang_js_,
7657
+ render,
7658
+ staticRenderFns,
7659
+ false,
7660
+ null,
7661
+ null,
7662
+ null
7663
+
7664
+ )
7665
+
7666
+ /* harmony default export */ var cv_toggle_skeleton = __webpack_exports__["default"] = (component.exports);
7667
+
7668
+ /***/ }),
7669
+
7528
7670
  /***/ "6e60":
7529
7671
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7530
7672
 
@@ -7674,12 +7816,12 @@ var component = Object(componentNormalizer["a" /* default */])(
7674
7816
  "use strict";
7675
7817
  __webpack_require__.r(__webpack_exports__);
7676
7818
 
7677
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=d8af9fe4&
7678
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-data-table',_vm._g(_vm._b({attrs:{"skeleton":"","data":_vm.data,"columns":_vm.cols}},'cv-data-table',_vm.$attrs,false),_vm.$listeners),[(_vm.$slots['helper-text'])?_c('template',{slot:"helper-text"},[_vm._t("helper-text")],2):_vm._e(),(_vm.$slots['batch-actions'])?_c('template',{slot:"batch-actions"},[_vm._t("batch-actions")],2):_vm._e(),(_vm.$slots.actions)?_c('template',{slot:"actions"},[_vm._t("actions")],2):_vm._e()],2)}
7819
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=2cd43eb0&
7820
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('cv-data-table',_vm._g(_vm._b({attrs:{"skeleton":"","data":_vm.data,"columns":_vm.cols}},'cv-data-table',_vm.$attrs,false),_vm.$listeners),[(_vm.hasBatchActions)?_c('template',{slot:"helper-text"},[_vm._t("helper-text")],2):_vm._e(),(_vm.hasBatchActions)?_c('template',{slot:"batch-actions"},[_vm._t("batch-actions")],2):_vm._e(),(_vm.hasActions)?_c('template',{slot:"actions"},[_vm._t("actions")],2):_vm._e()],2)}
7679
7821
  var staticRenderFns = []
7680
7822
 
7681
7823
 
7682
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=d8af9fe4&
7824
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=2cd43eb0&
7683
7825
 
7684
7826
  // EXTERNAL MODULE: ./src/components/cv-data-table/cv-data-table.vue + 11 modules
7685
7827
  var cv_data_table = __webpack_require__("def8");
@@ -7719,6 +7861,19 @@ const DEFAULTS = {
7719
7861
  hasExpandables: Boolean,
7720
7862
  rows: { type: Number, default: DEFAULTS.ROWS },
7721
7863
  },
7864
+ data() {
7865
+ return {
7866
+ hasActions: false,
7867
+ hasHelperText: false,
7868
+ hasBatchActions: false,
7869
+ };
7870
+ },
7871
+ mounted() {
7872
+ this.checkSlots();
7873
+ },
7874
+ beforeUpdate() {
7875
+ this.checkSlots();
7876
+ },
7722
7877
  computed: {
7723
7878
  data() {
7724
7879
  return [...Array(Math.max(this.rows, 1))].map(item => Array(this.cols.length).fill(''));
@@ -7727,6 +7882,14 @@ const DEFAULTS = {
7727
7882
  return typeof this.columns !== 'number' ? this.columns : Array(Math.max(this.columns, 1)).fill('');
7728
7883
  },
7729
7884
  },
7885
+ methods: {
7886
+ checkSlots() {
7887
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
7888
+ this.hasBatchActions = !!this.$slots['batch-actions'];
7889
+ this.hasHelperText = !!this.$slots['helper-text'];
7890
+ this.hasActions = !!this.$slots['actions'];
7891
+ },
7892
+ },
7730
7893
  });
7731
7894
 
7732
7895
  // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=script&lang=js&
@@ -7819,7 +7982,7 @@ module.exports = virtual_Error20;
7819
7982
  "use strict";
7820
7983
  __webpack_require__.r(__webpack_exports__);
7821
7984
 
7822
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=082fde71&
7985
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=4dec4c59&
7823
7986
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'bx--form-item': _vm.formItem }},[_c('div',{staticClass:"bx--dropdown__wrapper",class:{ 'bx--dropdown__wrapper--inline': _vm.inline, 'cv-dropdown': !_vm.formItem },style:(_vm.wrapperStyleOverride)},[(_vm.label)?_c('span',{staticClass:"bx--label",class:{ 'bx--label--disabled': _vm.disabled },attrs:{"id":(_vm.uid + "-label")}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")]):_vm._e(),(!_vm.inline && _vm.isHelper)?_c('div',{staticClass:"bx--form__helper-text",class:{ 'bx--form__helper-text--disabled': _vm.disabled },attrs:{"aria-disabled":_vm.disabled}},[_vm._t("helper-text",[_vm._v(_vm._s(_vm.helperText))])],2):_vm._e(),_c('div',_vm._b({staticClass:"bx--dropdown",class:{
7824
7987
  'bx--dropdown--light': _vm.theme === 'light',
7825
7988
  'bx--dropdown--up': _vm.up,
@@ -7831,7 +7994,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
7831
7994
  var staticRenderFns = []
7832
7995
 
7833
7996
 
7834
- // CONCATENATED MODULE: ./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=082fde71&
7997
+ // CONCATENATED MODULE: ./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=4dec4c59&
7835
7998
 
7836
7999
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
7837
8000
  var theme_mixin = __webpack_require__("d43c");
@@ -7970,6 +8133,8 @@ var chevron_down = __webpack_require__("fa89");
7970
8133
  return {
7971
8134
  open: false,
7972
8135
  dataValue: this.value,
8136
+ isHelper: false,
8137
+ isInvalid: false,
7973
8138
  };
7974
8139
  },
7975
8140
  created() {
@@ -7984,6 +8149,10 @@ var chevron_down = __webpack_require__("fa89");
7984
8149
  }
7985
8150
  });
7986
8151
  this.internalValue = this.internalValue; // forces update of value
8152
+ this.checkSlots();
8153
+ },
8154
+ beforeUpdate() {
8155
+ this.checkSlots();
7987
8156
  },
7988
8157
  model: {
7989
8158
  prop: 'value',
@@ -7995,12 +8164,6 @@ var chevron_down = __webpack_require__("fa89");
7995
8164
  },
7996
8165
  },
7997
8166
  computed: {
7998
- isInvalid() {
7999
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
8000
- },
8001
- isHelper() {
8002
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
8003
- },
8004
8167
  internalValue: {
8005
8168
  get() {
8006
8169
  return this.dataValue;
@@ -8046,6 +8209,11 @@ var chevron_down = __webpack_require__("fa89");
8046
8209
  },
8047
8210
  },
8048
8211
  methods: {
8212
+ checkSlots() {
8213
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
8214
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
8215
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
8216
+ },
8049
8217
  onCvMount(srcComponent) {
8050
8218
  if (srcComponent.internalSelected) {
8051
8219
  this.internalValue = srcComponent.value;
@@ -9049,8 +9217,8 @@ var component = Object(componentNormalizer["a" /* default */])(
9049
9217
  "use strict";
9050
9218
  __webpack_require__.r(__webpack_exports__);
9051
9219
 
9052
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=7ecbba34&
9053
- var cv_text_inputvue_type_template_id_7ecbba34_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-text-input bx--form-item"},[_c('label',{class:[
9220
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=6fac295a&
9221
+ var cv_text_inputvue_type_template_id_6fac295a_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-text-input bx--form-item"},[_c('label',{class:[
9054
9222
  'bx--label',
9055
9223
  {
9056
9224
  'bx--label--disabled': _vm.$attrs.disabled !== undefined && _vm.$attrs.disabled,
@@ -9058,7 +9226,7 @@ var cv_text_inputvue_type_template_id_7ecbba34_render = function () {var _vm=thi
9058
9226
  var staticRenderFns = []
9059
9227
 
9060
9228
 
9061
- // CONCATENATED MODULE: ./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=7ecbba34&
9229
+ // CONCATENATED MODULE: ./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=6fac295a&
9062
9230
 
9063
9231
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
9064
9232
  var uid_mixin = __webpack_require__("fceb");
@@ -9252,8 +9420,16 @@ var virtual_ViewOff16 = {
9252
9420
  return {
9253
9421
  dataPasswordVisible: this.isPassword && this.passwordVisible,
9254
9422
  dataType: this.type,
9423
+ isHelper: false,
9424
+ isInvalid: false,
9255
9425
  };
9256
9426
  },
9427
+ mounted: function() {
9428
+ this.checkSlots();
9429
+ },
9430
+ beforeUpdate() {
9431
+ this.checkSlots();
9432
+ },
9257
9433
  watch: {
9258
9434
  passwordVisible() {
9259
9435
  if (this.passwordVisible !== this.dataPasswordVisible) {
@@ -9274,12 +9450,6 @@ var virtual_ViewOff16 = {
9274
9450
  input: event => this.$emit('input', event.target.value),
9275
9451
  };
9276
9452
  },
9277
- isInvalid() {
9278
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
9279
- },
9280
- isHelper() {
9281
- return this.$slots['helper-text'] || (this.helperText && this.helperText.length);
9282
- },
9283
9453
  isPassword() {
9284
9454
  return this.type === 'password';
9285
9455
  },
@@ -9291,6 +9461,11 @@ var virtual_ViewOff16 = {
9291
9461
  },
9292
9462
  },
9293
9463
  methods: {
9464
+ checkSlots() {
9465
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
9466
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
9467
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
9468
+ },
9294
9469
  togglePasswordVisibility() {
9295
9470
  const currentValue = this.$refs.input.value;
9296
9471
  this.dataPasswordVisible = !this.dataPasswordVisible;
@@ -9318,7 +9493,7 @@ var componentNormalizer = __webpack_require__("2877");
9318
9493
 
9319
9494
  var component = Object(componentNormalizer["a" /* default */])(
9320
9495
  cv_text_input_cv_text_inputvue_type_script_lang_js_,
9321
- cv_text_inputvue_type_template_id_7ecbba34_render,
9496
+ cv_text_inputvue_type_template_id_6fac295a_render,
9322
9497
  staticRenderFns,
9323
9498
  false,
9324
9499
  null,
@@ -9353,12 +9528,12 @@ const STATES = {
9353
9528
  "use strict";
9354
9529
  __webpack_require__.r(__webpack_exports__);
9355
9530
 
9356
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=b334136e&
9357
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"cv-header bx--header",attrs:{"role":"banner","data-header":""}},[_vm._t("default"),(_vm.$slots['header-global'])?_c('div',{staticClass:"bx--header__global"},[_vm._t("header-global")],2):_vm._e(),_vm._t("left-panels"),_vm._t("right-panels")],2)}
9531
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=6fa80848&
9532
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"cv-header bx--header",attrs:{"role":"banner","data-header":""}},[_vm._t("default"),(_vm.hasGlobalHeader)?_c('div',{staticClass:"bx--header__global"},[_vm._t("header-global")],2):_vm._e(),_vm._t("left-panels"),_vm._t("right-panels")],2)}
9358
9533
  var staticRenderFns = []
9359
9534
 
9360
9535
 
9361
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=b334136e&
9536
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=6fa80848&
9362
9537
 
9363
9538
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-header.vue?vue&type=script&lang=js&
9364
9539
  //
@@ -9389,8 +9564,16 @@ var staticRenderFns = []
9389
9564
  return {
9390
9565
  panelControllers: [],
9391
9566
  panels: [],
9567
+ hasGlobalHeader: false,
9392
9568
  };
9393
9569
  },
9570
+ mounted() {
9571
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
9572
+ this.hasGlobalHeader = !!this.$slots['header-global'];
9573
+ },
9574
+ beforeUpdate() {
9575
+ this.hasGlobalHeader = !!this.$slots['header-global'];
9576
+ },
9394
9577
  computed: {
9395
9578
  isCvHeader() {
9396
9579
  return true;
@@ -9744,12 +9927,12 @@ var component = Object(componentNormalizer["a" /* default */])(
9744
9927
  "use strict";
9745
9928
  __webpack_require__.r(__webpack_exports__);
9746
9929
 
9747
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=508ebf05&
9930
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=0cac4b32&
9748
9931
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-time-picker bx--form-item"},[_c('div',{staticClass:"bx--time-picker",class:{ 'bx--time-picker--light': _vm.theme === 'light' },attrs:{"data-invalid":_vm.isInvalid}},[_c('div',{staticClass:"bx--time-picker__input"},[_c('label',{staticClass:"bx--label",attrs:{"for":_vm.uid}},[_vm._v(_vm._s(_vm.label))]),_c('input',_vm._b({staticClass:"bx--time-picker__input-field",attrs:{"id":_vm.uid,"type":"text","pattern":_vm.pattern,"placeholder":_vm.placeholder,"maxlength":_vm.placeholder.length,"disabled":_vm.disabled},domProps:{"value":_vm.time},on:{"input":function($event){return _vm.$emit('update:time', $event.target.value)}}},'input',_vm.$attrs,false))]),_c('cv-select',{staticClass:"bx--time-picker__select",attrs:{"form-item":false,"hide-label":"","label":_vm.ampmSelectLabel,"value":_vm.ampm,"disabled":_vm.disabled},on:{"input":function($event){return _vm.$emit('update:ampm', $event)}}},[_c('cv-select-option',{staticClass:"bx--select-option",attrs:{"value":"AM"}},[_vm._v("AM")]),_c('cv-select-option',{staticClass:"bx--select-option",attrs:{"value":"PM"}},[_vm._v("PM")])],1),(_vm.timezones.length > 0)?_c('cv-select',{staticClass:"bx--time-picker__select",attrs:{"form-item":false,"hide-label":"","label":_vm.timezonesSelectLabel,"value":_vm.validTimezone,"disabled":_vm.disabled},on:{"input":function($event){return _vm.$emit('update:timezone', $event)}}},_vm._l((_vm.timezones),function(item){return _c('cv-select-option',{key:item.value,staticClass:"bx--select-option",attrs:{"value":item.value}},[_vm._v(_vm._s(item.label))])}),1):_vm._e()],1),(_vm.isInvalid)?_c('div',{staticClass:"bx--form-requirement"},[_vm._t("invalid-message",[_vm._v(_vm._s(_vm.invalidMessage))])],2):_vm._e()])}
9749
9932
  var staticRenderFns = []
9750
9933
 
9751
9934
 
9752
- // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=508ebf05&
9935
+ // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=0cac4b32&
9753
9936
 
9754
9937
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
9755
9938
  var uid_mixin = __webpack_require__("fceb");
@@ -9846,13 +10029,18 @@ var cv_select_option = __webpack_require__("18a2");
9846
10029
  timezones: { type: Array, default: () => [] },
9847
10030
  timezonesSelectLabel: { type: String, default: 'Select time zone' },
9848
10031
  },
10032
+ data() {
10033
+ return {
10034
+ isInvalid: false,
10035
+ };
10036
+ },
10037
+ mounted() {
10038
+ this.checkSlots();
10039
+ },
10040
+ beforeUpdate() {
10041
+ this.checkSlots();
10042
+ },
9849
10043
  computed: {
9850
- isInvalid() {
9851
- return (
9852
- (this.$slots['invalid-message'] && this.$slots['invalid-message'].length) ||
9853
- (this.invalidMessage && this.invalidMessage.length > 0)
9854
- );
9855
- },
9856
10044
  validAmpm() {
9857
10045
  let result = this.ampm;
9858
10046
  if (!['AM', 'PM'].includes(this.ampm)) {
@@ -9877,6 +10065,12 @@ var cv_select_option = __webpack_require__("18a2");
9877
10065
  return result;
9878
10066
  },
9879
10067
  },
10068
+ methods: {
10069
+ checkSlots() {
10070
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
10071
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
10072
+ },
10073
+ },
9880
10074
  });
9881
10075
 
9882
10076
  // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=script&lang=js&
@@ -10596,12 +10790,12 @@ var component = Object(componentNormalizer["a" /* default */])(
10596
10790
  "use strict";
10597
10791
  __webpack_require__.r(__webpack_exports__);
10598
10792
 
10599
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=48351e63&
10600
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:"bx--side-nav__item"},[_c(_vm.tagType,_vm._g(_vm._b({tag:"component",staticClass:"cv-side-nav-item-link bx--side-nav__link",class:{ 'bx--side-nav__link--current': _vm.active }},'component',Object.assign({}, _vm.$attrs, _vm.linkProps),false),_vm.$listeners),[(_vm.$slots['nav-icon'] !== undefined)?_c('cv-side-nav-icon',{attrs:{"small":""}},[_vm._t("nav-icon")],2):_vm._e(),_c('cv-side-nav-link-text',[_vm._t("default")],2)],1)],1)}
10793
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=0b6e711b&
10794
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:"bx--side-nav__item"},[_c(_vm.tagType,_vm._g(_vm._b({tag:"component",staticClass:"cv-side-nav-item-link bx--side-nav__link",class:{ 'bx--side-nav__link--current': _vm.active }},'component',Object.assign({}, _vm.$attrs, _vm.linkProps),false),_vm.$listeners),[(_vm.hasNavIcon)?_c('cv-side-nav-icon',{attrs:{"small":""}},[_vm._t("nav-icon")],2):_vm._e(),_c('cv-side-nav-link-text',[_vm._t("default")],2)],1)],1)}
10601
10795
  var staticRenderFns = []
10602
10796
 
10603
10797
 
10604
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=48351e63&
10798
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=0b6e711b&
10605
10799
 
10606
10800
  // EXTERNAL MODULE: ./src/mixins/link-mixin.js
10607
10801
  var link_mixin = __webpack_require__("c5a1");
@@ -10646,6 +10840,14 @@ var _cv_side_nav_link_text = __webpack_require__("f516");
10646
10840
  active: Boolean,
10647
10841
  icon: Object,
10648
10842
  },
10843
+ data() {
10844
+ return {
10845
+ hasNavIcon: this.$slots['nav-icon'],
10846
+ };
10847
+ },
10848
+ beforeUpdate() {
10849
+ this.hasNavIcon = !!this.$slots['nav-icon'];
10850
+ },
10649
10851
  });
10650
10852
 
10651
10853
  // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=script&lang=js&
@@ -11653,21 +11855,18 @@ var cv_accordion_skeleton_component = Object(componentNormalizer["a" /* default
11653
11855
  "use strict";
11654
11856
  __webpack_require__.r(__webpack_exports__);
11655
11857
 
11656
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=9b386630&
11657
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-tabs"},[_c('div',_vm._g(_vm._b({staticClass:"cv-tab bx--tabs",attrs:{"data-tabs":"","role":"navigation"},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"right",39,$event.key,["Right","ArrowRight"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }$event.preventDefault();return _vm.moveRight($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"left",37,$event.key,["Left","ArrowLeft"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }$event.preventDefault();return _vm.moveLeft($event)}]}},'div',_vm.$attrs,false),_vm.$listeners),[_c('cv-dropdown',{staticClass:"bx--tabs-trigger",style:(_vm.triggerStyleOverride),attrs:{"value":("" + _vm.selectedId),"form-item":false},on:{"change":_vm.onDropChange}},_vm._l((_vm.tabs),function(tab){return _c('cv-dropdown-item',{key:("drop-" + (tab.uid)),attrs:{"value":("" + (tab.uid))}},[_vm._v(_vm._s(tab.label))])}),1),_c('ul',{staticClass:"bx--tabs__nav bx--tabs__nav--hidden",attrs:{"role":"tablist"}},_vm._l((_vm.tabs),function(tab){return _c('li',{key:tab.uid,staticClass:"cv-tabs-button bx--tabs__nav-item",class:{
11858
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=8ead6792&
11859
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-tabs",on:{"focusout":_vm.onFocusout,"focusin":_vm.onFocusin}},[_c('div',_vm._g(_vm._b({staticClass:"cv-tab bx--tabs",attrs:{"data-tabs":"","role":"navigation"},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"right",39,$event.key,["Right","ArrowRight"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }$event.preventDefault();return _vm.onRight($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"left",37,$event.key,["Left","ArrowLeft"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }$event.preventDefault();return _vm.onLeft($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onDown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onUp($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)}]}},'div',_vm.$attrs,false),_vm.$listeners),[_c('div',{ref:"trigger",staticClass:"bx--tabs-trigger",class:{ ' bx--tabs-trigger--open': _vm.open },attrs:{"tabindex":"0"},on:{"click":_vm.onClick,"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onClick($event)}}},[_c('a',{staticClass:"bx--tabs-trigger-text",attrs:{"href":"javascript:void(0)","tabindex":"-1"}},[_vm._v(_vm._s(_vm.currentTabLabel))]),_c('chevron-down-glyph')],1),_c('ul',{staticClass:"bx--tabs__nav",class:{ 'bx--tabs__nav--hidden': !_vm.open },attrs:{"role":"tablist"}},_vm._l((_vm.tabs),function(tab){return _c('li',{key:tab.uid,staticClass:"cv-tabs-button bx--tabs__nav-item",class:{
11658
11860
  'bx--tabs__nav-item--selected': _vm.selectedId == tab.uid,
11659
11861
  'bx--tabs__nav-item--disabled': _vm.disabledTabs.indexOf(tab.uid) !== -1,
11660
- },attrs:{"role":"tab","aria-selected":_vm.selectedId == tab.uid,"aria-disabled":_vm.disabledTabs.indexOf(tab.uid) !== -1}},[_c('a',{ref:"link",refInFor:true,staticClass:"bx--tabs__nav-link",attrs:{"href":"javascript:void(0)","role":"tab","aria-controls":tab.uid,"id":((tab.uid) + "-link")},on:{"click":function($event){return _vm.onTabClick(tab.uid)}}},[_vm._v(_vm._s(tab.label))])])}),0)],1),_c('div',{staticClass:"cv-tabs__panels"},[_vm._t("default")],2)])}
11862
+ },attrs:{"role":"tab","aria-selected":_vm.selectedId == tab.uid,"aria-disabled":_vm.disabledTabs.indexOf(tab.uid) !== -1}},[_c('a',{ref:"link",refInFor:true,staticClass:"bx--tabs__nav-link",attrs:{"href":"javascript:void(0)","role":"tab","aria-controls":tab.uid,"id":((tab.uid) + "-link")},on:{"click":function($event){return _vm.onTabClick(tab.uid)},"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();return _vm.onTabEnter(tab.uid)}}},[_vm._v(_vm._s(tab.label))])])}),0)]),_c('div',{staticClass:"cv-tabs__panels"},[_vm._t("default")],2)])}
11661
11863
  var staticRenderFns = []
11662
11864
 
11663
11865
 
11664
- // CONCATENATED MODULE: ./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=9b386630&
11665
-
11666
- // EXTERNAL MODULE: ./src/components/cv-dropdown/cv-dropdown.vue + 4 modules
11667
- var cv_dropdown = __webpack_require__("71cc");
11866
+ // CONCATENATED MODULE: ./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=8ead6792&
11668
11867
 
11669
- // EXTERNAL MODULE: ./src/components/cv-dropdown/cv-dropdown-item.vue + 4 modules
11670
- var cv_dropdown_item = __webpack_require__("140e");
11868
+ // EXTERNAL MODULE: ./node_modules/@carbon/icons-vue/es/chevron--down/index.js
11869
+ var chevron_down = __webpack_require__("fa89");
11671
11870
 
11672
11871
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-tabs/cv-tabs.vue?vue&type=script&lang=js&
11673
11872
  //
@@ -11724,21 +11923,27 @@ var cv_dropdown_item = __webpack_require__("140e");
11724
11923
  //
11725
11924
  //
11726
11925
  //
11727
-
11926
+ //
11927
+ //
11928
+ //
11929
+ //
11728
11930
 
11729
11931
 
11730
11932
 
11731
11933
  /* harmony default export */ var cv_tabsvue_type_script_lang_js_ = ({
11732
11934
  name: 'CvTabs',
11733
- components: { CvDropdown: cv_dropdown["default"], CvDropdownItem: cv_dropdown_item["default"] },
11734
11935
  props: {
11735
11936
  noDefaultToFirst: Boolean,
11736
11937
  },
11938
+ components: { ChevronDownGlyph: chevron_down["a" /* default */] },
11737
11939
  data() {
11738
11940
  return {
11739
11941
  tabs: [],
11740
11942
  selectedId: undefined,
11741
11943
  disabledTabs: [],
11944
+ open: false,
11945
+ lastDisplayProp: undefined,
11946
+ // data is open
11742
11947
  };
11743
11948
  },
11744
11949
  created() {
@@ -11749,13 +11954,59 @@ var cv_dropdown_item = __webpack_require__("140e");
11749
11954
  this.$on('cv:disabled', srcComponent => this.onCvDisabled(srcComponent));
11750
11955
  this.$on('cv:enabled', srcComponent => this.onCvEnabled(srcComponent));
11751
11956
  },
11957
+ mounted() {},
11752
11958
  computed: {
11753
11959
  triggerStyleOverride() {
11754
11960
  // <style carbon tweaks - DO NOT USE STYLE TAG as it causes SSR issues
11755
11961
  return { padding: 0 };
11756
11962
  },
11963
+ currentTabLabel() {
11964
+ const index = this.tabs.findIndex(tab => tab.uid === this.selectedId);
11965
+
11966
+ return index > -1 ? this.tabs[index].label : '';
11967
+ },
11757
11968
  },
11758
11969
  methods: {
11970
+ onFocusin(ev) {
11971
+ if (ev.target.classList.contains('bx--tabs__nav-link') || ev.target.classList.contains('bx--tabs-trigger')) {
11972
+ // record display prop state
11973
+ this.lastDisplayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11974
+ } else {
11975
+ this.lastDisplayProp = undefined;
11976
+ }
11977
+ },
11978
+ onFocusout(ev) {
11979
+ // works with onFocusin to determine whether focus needs to be set to a tab or trigger
11980
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11981
+ if (ev.relatedTarget) {
11982
+ if (
11983
+ ev.relatedTarget.classList.contains('bx--tabs__nav-link') ||
11984
+ ev.relatedTarget.classList.contains('bx--tabs-trigger')
11985
+ ) {
11986
+ return; // no need to do anything - focus is going somewhere
11987
+ } else {
11988
+ this.open = false;
11989
+ }
11990
+ } else {
11991
+ if (this.lastDisplayProp && this.lastDisplayProp !== displayProp) {
11992
+ if (displayProp === 'none') {
11993
+ // focus on selected tab
11994
+ const currentTabLink = this.$refs.link.find(link => link.getAttribute('aria-controls') === this.selectedId);
11995
+ if (currentTabLink) {
11996
+ currentTabLink.focus();
11997
+ }
11998
+ } else {
11999
+ this.$refs.trigger.focus();
12000
+ }
12001
+ } else {
12002
+ this.open = false;
12003
+ }
12004
+ }
12005
+ },
12006
+ onWindowResize() {
12007
+ // check whether trigger is displayed
12008
+ this.dataDropdownShown = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display') !== 'none';
12009
+ },
11759
12010
  onDropChange(val) {
11760
12011
  this.onTabClick(val);
11761
12012
  },
@@ -11798,6 +12049,12 @@ var cv_dropdown_item = __webpack_require__("140e");
11798
12049
  }
11799
12050
  }
11800
12051
 
12052
+ this.open = false;
12053
+ if (this.$refs.trigger) {
12054
+ // following code build sometimes trigger is not yet available
12055
+ this.$refs.trigger.focus();
12056
+ }
12057
+
11801
12058
  this.$emit('tab-selected', newIndex);
11802
12059
  }
11803
12060
  }
@@ -11838,64 +12095,115 @@ var cv_dropdown_item = __webpack_require__("140e");
11838
12095
  isAllTabsDisabled() {
11839
12096
  return this.disabledTabs.length === this.tabs.length;
11840
12097
  },
11841
- moveLeft() {
12098
+ onTabEnter(id) {
12099
+ // const newIndex = this.tabs.findIndex(tab => tab.uid === id);
12100
+
12101
+ this.onTabClick(id);
12102
+ this.$refs.trigger.focus();
12103
+ },
12104
+ onClick() {
12105
+ this.open = !this.open;
12106
+ },
12107
+ onEsc() {
12108
+ this.open = false;
12109
+ },
12110
+ onUp() {
11842
12111
  if (this.isAllTabsDisabled()) {
11843
12112
  return;
11844
12113
  }
11845
- let newId;
11846
- let newIndex;
11847
12114
 
11848
- if (this.selectedId) {
11849
- newIndex = this.tabs.indexOf(this.selectedId);
11850
- }
12115
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11851
12116
 
11852
- if (newIndex > 0) {
11853
- newIndex--;
11854
- } else {
11855
- newIndex = this.tabs.length - 1;
12117
+ if (displayProp !== 'none') {
12118
+ const el = document.activeElement;
12119
+ let id;
12120
+ if (el.classList.contains('bx--tabs__nav-link')) {
12121
+ id = el.getAttribute('aria-controls');
12122
+ } else {
12123
+ id = this.selectedId;
12124
+ }
12125
+
12126
+ const newIndex = this.move(id, false);
12127
+ this.$refs.link[newIndex].focus();
11856
12128
  }
11857
- newId = this.tabs[newIndex].uid;
12129
+ },
12130
+ onDown() {
12131
+ if (this.isAllTabsDisabled()) {
12132
+ return;
12133
+ }
12134
+
12135
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11858
12136
 
11859
- while (this.disabledTabs.indexOf(newId) !== -1) {
11860
- if (newIndex > 0) {
11861
- newIndex--;
12137
+ if (displayProp !== 'none') {
12138
+ if (!this.open) {
12139
+ this.open = true;
11862
12140
  } else {
11863
- newIndex = this.tabs.length - 1;
12141
+ const el = document.activeElement;
12142
+ let id;
12143
+ if (el.classList.contains('bx--tabs__nav-link')) {
12144
+ id = el.getAttribute('aria-controls');
12145
+ } else {
12146
+ id = this.selectedId;
12147
+ }
12148
+
12149
+ const newIndex = this.move(id, true);
12150
+ this.$refs.link[newIndex].focus();
11864
12151
  }
11865
- newId = this.tabs[newIndex].uid;
11866
12152
  }
11867
- this.onTabClick(newId);
11868
- this.$refs.link[newIndex].focus();
11869
12153
  },
11870
- moveRight() {
12154
+ onLeft() {
11871
12155
  if (this.isAllTabsDisabled()) {
11872
12156
  return;
11873
12157
  }
11874
- let newId;
11875
- let newIndex;
11876
12158
 
11877
- if (this.selectedId) {
11878
- newIndex = this.tabs.indexOf(this.selectedId);
12159
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
12160
+ if (displayProp === 'none') {
12161
+ const newIndex = this.move(this.selectedId, false);
12162
+ const newId = this.tabs[newIndex].uid;
12163
+
12164
+ this.onTabClick(newId);
12165
+ this.$refs.link[newIndex].focus();
11879
12166
  }
12167
+ },
12168
+ move(id, next) {
12169
+ let newIndex;
12170
+ let newId;
11880
12171
 
11881
- if (newIndex < this.tabs.length - 1) {
11882
- newIndex++;
11883
- } else {
11884
- newIndex = 0;
12172
+ newIndex = this.tabs.findIndex(tab => tab.uid === id);
12173
+
12174
+ if (newIndex > -1) {
12175
+ newIndex = next ? newIndex + 1 : newIndex - 1;
12176
+ }
12177
+ if (newIndex < 0 || newIndex >= this.tabs.length) {
12178
+ newIndex = next ? 0 : this.tabs.length - 1;
11885
12179
  }
11886
- newId = this.tabs[newIndex].uid;
11887
12180
 
11888
- while (this.disabledTabs.indexOf(newIndex) !== -1) {
11889
- if (newIndex < this.tabs.length - 1) {
11890
- newIndex++;
11891
- } else {
11892
- newIndex = 0;
12181
+ newId = this.tabs[newIndex].uid;
12182
+ while (newId === this.selectedId || this.disabledTabs.indexOf(newId) !== -1) {
12183
+ if (newIndex > -1) {
12184
+ newIndex = next ? newIndex + 1 : newIndex - 1;
12185
+ }
12186
+ if (newIndex < 0 || newIndex >= this.tabs.length) {
12187
+ newIndex = next ? 0 : this.tabs.length - 1;
11893
12188
  }
11894
12189
  newId = this.tabs[newIndex].uid;
11895
12190
  }
11896
12191
 
11897
- this.onTabClick(newId);
11898
- this.$refs.link[newIndex].focus();
12192
+ return newIndex;
12193
+ },
12194
+ onRight() {
12195
+ if (this.isAllTabsDisabled()) {
12196
+ return;
12197
+ }
12198
+
12199
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
12200
+ if (displayProp === 'none') {
12201
+ const newIndex = this.move(this.selectedId, true);
12202
+ const newId = this.tabs[newIndex].uid;
12203
+
12204
+ this.onTabClick(newId);
12205
+ this.$refs.link[newIndex].focus();
12206
+ }
11899
12207
  },
11900
12208
  selected(index) {
11901
12209
  let selItem = this.tabs[index ? index : -1];
@@ -18586,15 +18894,15 @@ const options = ['light'];
18586
18894
  "use strict";
18587
18895
  __webpack_require__.r(__webpack_exports__);
18588
18896
 
18589
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-modal/cv-modal.vue?vue&type=template&id=3b14aed5&
18897
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-modal/cv-modal.vue?vue&type=template&id=0dbb9336&
18590
18898
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-modal bx--modal",class:{
18591
18899
  'is-visible': _vm.dataVisible,
18592
18900
  'bx--modal--danger': _vm.kind === 'danger',
18593
- },attrs:{"data-modal":"","id":_vm.uid,"tabindex":"-1"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)},"click":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onExternalClick($event)}}},[_c('div',{ref:"modalDialog",staticClass:"bx--modal-container"},[_c('div',{ref:"beforeContent",staticClass:"cv-modal__before-content",staticStyle:{"position":"absolute","height":"1px","width":"1px","left":"-9999px"},attrs:{"tabindex":"0"},on:{"focus":_vm.focusBeforeContent}}),_c('div',{staticClass:"bx--modal-header"},[(_vm.$slots.label)?_c('h4',{staticClass:"bx--modal-header__label"},[_vm._t("label",[_vm._v("label (Optional)")])],2):_vm._e(),_c('h2',{staticClass:"bx--modal-header__heading"},[_vm._t("title",[_vm._v("Modal Title")])],2),_c('button',{ref:"close",staticClass:"bx--modal-close",attrs:{"type":"button"},on:{"click":_vm.onClose}},[_c('Close16',{staticClass:"bx--modal-close__icon"})],1)]),_c('div',{ref:"content",staticClass:"bx--modal-content",attrs:{"tabindex":_vm.scrollable ? 0 : undefined}},[_vm._t("content",[_c('p',[_vm._v("\n Passive modal notifications should only appear if there is an action the user needs to address immediately.\n Passive modal notifications are persistent on the screen.\n ")])])],2),(_vm.hasFooter)?_c('div',{staticClass:"bx--modal-footer"},[(this.$slots['secondary-button'])?_c('cv-button',{ref:"secondary",attrs:{"type":"button","kind":_vm.secondaryKind},on:{"click":_vm.onSecondaryClick}},[_vm._t("secondary-button",[_vm._v("Secondary button")])],2):_vm._e(),(this.$slots['primary-button'])?_c('cv-button',{ref:"primary",attrs:{"disabled":_vm.primaryButtonDisabled,"type":"button","kind":_vm.primaryKind},on:{"click":_vm.onPrimaryClick}},[_vm._t("primary-button",[_vm._v("Primary button")])],2):_vm._e()],1):_vm._e(),_c('div',{ref:"afterContent",staticClass:"cv-modal__after-content",staticStyle:{"position":"absolute","height":"1px","width":"1px","left":"-9999px"},attrs:{"tabindex":"0"},on:{"focus":_vm.focusAfterContent}})])])}
18901
+ },attrs:{"data-modal":"","id":_vm.uid,"tabindex":"-1"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.preventDefault();return _vm.onEsc($event)},"click":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onExternalClick($event)}}},[_c('div',{ref:"modalDialog",staticClass:"bx--modal-container"},[_c('div',{ref:"beforeContent",staticClass:"cv-modal__before-content",staticStyle:{"position":"absolute","height":"1px","width":"1px","left":"-9999px"},attrs:{"tabindex":"0"},on:{"focus":_vm.focusBeforeContent}}),_c('div',{staticClass:"bx--modal-header"},[(_vm.hasHeaderLabel)?_c('h4',{staticClass:"bx--modal-header__label"},[_vm._t("label",[_vm._v("label (Optional)")])],2):_vm._e(),_c('h2',{staticClass:"bx--modal-header__heading"},[_vm._t("title",[_vm._v("Modal Title")])],2),_c('button',{ref:"close",staticClass:"bx--modal-close",attrs:{"type":"button"},on:{"click":_vm.onClose}},[_c('Close16',{staticClass:"bx--modal-close__icon"})],1)]),_c('div',{ref:"content",staticClass:"bx--modal-content",attrs:{"tabindex":_vm.scrollable ? 0 : undefined}},[_vm._t("content",[_c('p',[_vm._v("\n Passive modal notifications should only appear if there is an action the user needs to address immediately.\n Passive modal notifications are persistent on the screen.\n ")])])],2),(_vm.hasFooter)?_c('div',{staticClass:"bx--modal-footer"},[(_vm.hasSecondary)?_c('cv-button',{ref:"secondary",attrs:{"type":"button","kind":_vm.secondaryKind},on:{"click":_vm.onSecondaryClick}},[_vm._t("secondary-button",[_vm._v("Secondary button")])],2):_vm._e(),(_vm.hasPrimary)?_c('cv-button',{ref:"primary",attrs:{"disabled":_vm.primaryButtonDisabled,"type":"button","kind":_vm.primaryKind},on:{"click":_vm.onPrimaryClick}},[_vm._t("primary-button",[_vm._v("Primary button")])],2):_vm._e()],1):_vm._e(),_c('div',{ref:"afterContent",staticClass:"cv-modal__after-content",staticStyle:{"position":"absolute","height":"1px","width":"1px","left":"-9999px"},attrs:{"tabindex":"0"},on:{"focus":_vm.focusAfterContent}})])])}
18594
18902
  var staticRenderFns = []
18595
18903
 
18596
18904
 
18597
- // CONCATENATED MODULE: ./src/components/cv-modal/cv-modal.vue?vue&type=template&id=3b14aed5&
18905
+ // CONCATENATED MODULE: ./src/components/cv-modal/cv-modal.vue?vue&type=template&id=0dbb9336&
18598
18906
 
18599
18907
  // EXTERNAL MODULE: ./src/components/cv-button/cv-button.vue + 4 modules
18600
18908
  var cv_button = __webpack_require__("cea0");
@@ -18674,12 +18982,6 @@ var _16 = __webpack_require__("5416");
18674
18982
  //
18675
18983
  //
18676
18984
  //
18677
- //
18678
- //
18679
- //
18680
- //
18681
- //
18682
- //
18683
18985
 
18684
18986
 
18685
18987
 
@@ -18706,12 +19008,20 @@ var _16 = __webpack_require__("5416");
18706
19008
  return {
18707
19009
  dataVisible: false,
18708
19010
  scrollable: false,
19011
+ hasFooter: false,
19012
+ hasHeaderLabel: false,
19013
+ hasPrimary: false,
19014
+ hasSecondary: false,
18709
19015
  };
18710
19016
  },
18711
19017
  mounted() {
18712
19018
  if (this.visible) {
18713
19019
  this.show();
18714
19020
  }
19021
+ this.checkSlots();
19022
+ },
19023
+ beforeUpdate() {
19024
+ this.checkSlots();
18715
19025
  },
18716
19026
  watch: {
18717
19027
  visible(val) {
@@ -18733,15 +19043,19 @@ var _16 = __webpack_require__("5416");
18733
19043
  secondaryKind() {
18734
19044
  return 'secondary';
18735
19045
  },
18736
- hasFooter() {
18737
- return this.$slots['primary-button'] || this.$slots['secondary-button'];
18738
- },
18739
19046
  },
18740
19047
  model: {
18741
19048
  event: 'modelEvent',
18742
19049
  prop: 'visible',
18743
19050
  },
18744
19051
  methods: {
19052
+ checkSlots() {
19053
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
19054
+ this.hasFooter = !!(this.$slots['primary-button'] || this.$slots['secondary-button']);
19055
+ this.hasHeaderLabel = !!this.$slots.label;
19056
+ this.hasSecondary = !!this.$slots['secondary-button'];
19057
+ this.hasPrimary = !!this.$slots['primary-button'];
19058
+ },
18745
19059
  focusBeforeContent() {
18746
19060
  if (this.$slots['primary-button']) {
18747
19061
  this.$refs.primary.$el.focus();
@@ -19316,8 +19630,8 @@ var cv_code_snippet_component = Object(componentNormalizer["a" /* default */])(
19316
19630
  "use strict";
19317
19631
  __webpack_require__.r(__webpack_exports__);
19318
19632
 
19319
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=82e1fb12&
19320
- var cv_data_tablevue_type_template_id_82e1fb12_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-data-table",style:(_vm.tableStyle)},[_c('div',{staticClass:"bx--data-table-container"},[(_vm.hasTableHeader)?_c('div',{staticClass:"bx--data-table-header"},[(_vm.title)?_c('h4',{staticClass:"bx--data-table-header__title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.isHelper)?_c('p',{staticClass:"bx--data-table-header__description"},[_vm._t("helper-text",[_vm._v(_vm._s(_vm.helperText))])],2):_vm._e()]):_vm._e(),(_vm.hasToolbar)?_c('section',{staticClass:"bx--table-toolbar"},[(_vm.batchActive)?_c('div',{style:({ minHeight: '48px', maxWidth: '0' })}):_vm._e(),(_vm.hasBatchActions)?_c('div',{staticClass:"bx--batch-actions",class:{ 'bx--batch-actions--active': _vm.batchActive },attrs:{"aria-label":_vm.actionBarAriaLabel}},[_c('div',{staticClass:"bx--action-list"},[_vm._t("batch-actions"),_c('cv-button',{staticClass:"bx--batch-summary__cancel",attrs:{"small":""},on:{"click":_vm.deselect}},[_vm._v(_vm._s(_vm.batchCancelLabel))])],2),_c('div',{staticClass:"bx--batch-summary"},[_c('p',{staticClass:"bx--batch-summary__para"},[_c('span',{attrs:{"data-items-selected":""}},[_vm._t("items-selected",[_vm._v(_vm._s(_vm.dataRowsSelected.length)+" items selected")],{"scope":{ count: _vm.dataRowsSelected.length }})],2)])])]):_vm._e(),((_vm.$slots.actions || _vm.$listeners.search) && !_vm.batchActive)?_c('div',{staticClass:"bx--toolbar-content"},[(_vm.$listeners.search)?_c('div',{ref:"searchContainer",class:{
19633
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=8bf15364&
19634
+ var cv_data_tablevue_type_template_id_8bf15364_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cv-data-table",style:(_vm.tableStyle)},[_c('div',{staticClass:"bx--data-table-container"},[(_vm.hasTableHeader)?_c('div',{staticClass:"bx--data-table-header"},[(_vm.title)?_c('h4',{staticClass:"bx--data-table-header__title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.isHelper)?_c('p',{staticClass:"bx--data-table-header__description"},[_vm._t("helper-text",[_vm._v(_vm._s(_vm.helperText))])],2):_vm._e()]):_vm._e(),(_vm.hasToolbar)?_c('section',{staticClass:"bx--table-toolbar"},[(_vm.batchActive)?_c('div',{style:({ minHeight: '48px', maxWidth: '0' })}):_vm._e(),(_vm.hasBatchActions)?_c('div',{staticClass:"bx--batch-actions",class:{ 'bx--batch-actions--active': _vm.batchActive },attrs:{"aria-label":_vm.actionBarAriaLabel}},[_c('div',{staticClass:"bx--action-list"},[_vm._t("batch-actions"),_c('cv-button',{staticClass:"bx--batch-summary__cancel",attrs:{"small":""},on:{"click":_vm.deselect}},[_vm._v(_vm._s(_vm.batchCancelLabel))])],2),_c('div',{staticClass:"bx--batch-summary"},[_c('p',{staticClass:"bx--batch-summary__para"},[_c('span',{attrs:{"data-items-selected":""}},[_vm._t("items-selected",[_vm._v(_vm._s(_vm.dataRowsSelected.length)+" items selected")],{"scope":{ count: _vm.dataRowsSelected.length }})],2)])])]):_vm._e(),((_vm.hasActions || _vm.$listeners.search) && !_vm.batchActive)?_c('div',{staticClass:"bx--toolbar-content"},[(_vm.$listeners.search)?_c('div',{ref:"searchContainer",class:{
19321
19635
  'bx--toolbar-search-container-active': _vm.searchActive || _vm.searchValue.length > 0,
19322
19636
  'bx--toolbar-search-container-persistent': !_vm.expandingSearch,
19323
19637
  'bx--toolbar-search-container-expandable': _vm.expandingSearch,
@@ -19329,7 +19643,7 @@ return [(_vm.$scopedSlots['of-n-pages'])?_vm._t("of-n-pages",null,{"scope":scope
19329
19643
  var staticRenderFns = []
19330
19644
 
19331
19645
 
19332
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=82e1fb12&
19646
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=8bf15364&
19333
19647
 
19334
19648
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a7c01c74-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/cv-data-table/_cv-data-table-heading.vue?vue&type=template&id=74d5fb50&
19335
19649
  var _cv_data_table_headingvue_type_template_id_74d5fb50_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{attrs:{"aria-sort":_vm.sortOrder}},[(_vm.sortable)?_c('button',{class:['bx--table-sort', _vm.orderClass],attrs:{"type":"button"},on:{"click":_vm.onSortClick}},[_c('cv-wrapper',{staticClass:"bx--table-header-label",attrs:{"tag-type":_vm.headingLabelTag}},[_vm._v(_vm._s(_vm.heading))]),_c('ArrowDown16',{staticClass:"bx--table-sort__icon"}),_c('Arrows16',{staticClass:"bx--table-sort__icon-unsorted"})],1):_c('cv-wrapper',{staticClass:"bx--table-header-label",attrs:{"tag-type":_vm.headingLabelTag}},[_vm._v(_vm._s(_vm.heading))])],1)}
@@ -19802,6 +20116,10 @@ var chevron_right_16 = __webpack_require__("7c7c");
19802
20116
  order: 'none',
19803
20117
  }))
19804
20118
  : this.columns,
20119
+ hasBatchActions: false,
20120
+ hasActions: false,
20121
+ hasToolbar: false,
20122
+ isHelper: false,
19805
20123
  batchActive: false,
19806
20124
  headingChecked: false,
19807
20125
  dataRowsSelected: this.rowsSelected,
@@ -19830,17 +20148,16 @@ var chevron_right_16 = __webpack_require__("7c7c");
19830
20148
  },
19831
20149
  mounted() {
19832
20150
  this.updateRowsSelected();
20151
+ this.checkSlots();
20152
+ },
20153
+ beforeUpdate() {
20154
+ this.checkSlots();
19833
20155
  },
19834
20156
  computed: {
19835
- hasBatchActions() {
19836
- return this.$slots['batch-actions'];
19837
- },
19838
20157
  hasTableHeader() {
19839
20158
  return this.title || this.isHelper;
19840
20159
  },
19841
- hasToolbar() {
19842
- return this.$slots.actions || this.$listeners.search || this.$slots['batch-actions'];
19843
- },
20160
+
19844
20161
  hasExpandables() {
19845
20162
  return this.registeredRows.some(item => item.expandable);
19846
20163
  },
@@ -19884,11 +20201,15 @@ var chevron_right_16 = __webpack_require__("7c7c");
19884
20201
  selectedRows() {
19885
20202
  return this.dataRowsSelected;
19886
20203
  },
19887
- isHelper() {
19888
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
19889
- },
19890
20204
  },
19891
20205
  methods: {
20206
+ checkSlots() {
20207
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
20208
+ this.hasBatchActions = !!this.$slots['batch-actions'];
20209
+ this.hasActions = !!this.$slots.actions;
20210
+ this.hasToolbar = !!(this.$slots.actions || this.$listeners.search || this.$slots['batch-actions']);
20211
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
20212
+ },
19892
20213
  onCvMount(row) {
19893
20214
  this.registeredRows.push(row);
19894
20215
  row.$on('cv:expanded-change', this.onCvExpandedChange);
@@ -20039,7 +20360,7 @@ var chevron_right_16 = __webpack_require__("7c7c");
20039
20360
 
20040
20361
  var cv_data_table_component = Object(componentNormalizer["a" /* default */])(
20041
20362
  cv_data_table_cv_data_tablevue_type_script_lang_js_,
20042
- cv_data_tablevue_type_template_id_82e1fb12_render,
20363
+ cv_data_tablevue_type_template_id_8bf15364_render,
20043
20364
  staticRenderFns,
20044
20365
  false,
20045
20366
  null,
@@ -22378,10 +22699,14 @@ var cv_toast_notification = __webpack_require__("95a6");
22378
22699
  // EXTERNAL MODULE: ./src/components/cv-toggle/cv-toggle.vue + 4 modules
22379
22700
  var cv_toggle = __webpack_require__("f154");
22380
22701
 
22702
+ // EXTERNAL MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue + 4 modules
22703
+ var cv_toggle_skeleton = __webpack_require__("68c3");
22704
+
22381
22705
  // CONCATENATED MODULE: ./src/components/cv-toggle/index.js
22382
22706
 
22383
22707
 
22384
22708
 
22709
+
22385
22710
  // EXTERNAL MODULE: ./src/components/cv-toolbar/cv-toolbar.vue + 4 modules
22386
22711
  var cv_toolbar = __webpack_require__("15ec");
22387
22712
 
@@ -22684,6 +23009,7 @@ const components = ctx.keys().map(ctx);
22684
23009
  /* concated harmony reexport CvTimePicker */__webpack_require__.d(__webpack_exports__, "CvTimePicker", function() { return cv_time_picker["default"]; });
22685
23010
  /* concated harmony reexport CvToastNotification */__webpack_require__.d(__webpack_exports__, "CvToastNotification", function() { return cv_toast_notification["default"]; });
22686
23011
  /* concated harmony reexport CvToggle */__webpack_require__.d(__webpack_exports__, "CvToggle", function() { return cv_toggle["default"]; });
23012
+ /* concated harmony reexport CvToggleSkeleton */__webpack_require__.d(__webpack_exports__, "CvToggleSkeleton", function() { return cv_toggle_skeleton["default"]; });
22687
23013
  /* concated harmony reexport CvToolbar */__webpack_require__.d(__webpack_exports__, "CvToolbar", function() { return cv_toolbar["default"]; });
22688
23014
  /* concated harmony reexport CvToolbarTitle */__webpack_require__.d(__webpack_exports__, "CvToolbarTitle", function() { return cv_toolbar_title["default"]; });
22689
23015
  /* concated harmony reexport CvToolbarSearch */__webpack_require__.d(__webpack_exports__, "CvToolbarSearch", function() { return cv_toolbar_search["default"]; });