@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
@@ -174,15 +174,15 @@ var component = Object(componentNormalizer["a" /* default */])(
174
174
  "use strict";
175
175
  __webpack_require__.r(__webpack_exports__);
176
176
 
177
- // 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&
177
+ // 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&
178
178
  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:{
179
179
  'bx--overflow-menu-options__option--disabled': _vm.disabled,
180
180
  'bx--overflow-menu-options__option--danger': _vm.danger,
181
- },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)])}
181
+ },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)])])}
182
182
  var staticRenderFns = []
183
183
 
184
184
 
185
- // CONCATENATED MODULE: ./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=cb256cee&
185
+ // CONCATENATED MODULE: ./src/components/cv-overflow-menu/cv-overflow-menu-item.vue?vue&type=template&id=661dad8b&
186
186
 
187
187
  // 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&
188
188
  //
@@ -207,6 +207,8 @@ var staticRenderFns = []
207
207
  //
208
208
  //
209
209
  //
210
+ //
211
+ //
210
212
 
211
213
  /* harmony default export */ var cv_overflow_menu_itemvue_type_script_lang_js_ = ({
212
214
  name: 'CvOverflowMenuItem',
@@ -259,14 +261,14 @@ var component = Object(componentNormalizer["a" /* default */])(
259
261
  "use strict";
260
262
  __webpack_require__.r(__webpack_exports__);
261
263
 
262
- // 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&
263
- 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:{
264
+ // 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&
265
+ 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:{
264
266
  'bx--date-picker-container': ['single', 'range'].includes(_vm.kind),
265
267
  },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()])])}
266
268
  var staticRenderFns = []
267
269
 
268
270
 
269
- // CONCATENATED MODULE: ./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=79ff851d&
271
+ // CONCATENATED MODULE: ./src/components/cv-date-picker/cv-date-picker.vue?vue&type=template&id=ad82b8da&
270
272
 
271
273
  // EXTERNAL MODULE: ./node_modules/flatpickr/dist/flatpickr.js
272
274
  var flatpickr = __webpack_require__("cf06");
@@ -476,6 +478,7 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
476
478
  return {
477
479
  dataValue: '',
478
480
  dataOptions: {},
481
+ isInvalid: false,
479
482
  };
480
483
  },
481
484
  watch: {
@@ -524,13 +527,6 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
524
527
  }
525
528
  }
526
529
  },
527
- isInvalid() {
528
- return (
529
- this.$slots['invalid-message'] !== undefined ||
530
- (this.invalidMessage && this.invalidMessage.length) ||
531
- (this.invalidDateMessage && this.invalidDateMessage.length)
532
- );
533
- },
534
530
  isRange() {
535
531
  return this.kind === 'range';
536
532
  },
@@ -539,6 +535,14 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
539
535
  },
540
536
  },
541
537
  methods: {
538
+ checkSlots() {
539
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
540
+ this.isInvalid = !!(
541
+ this.$slots['invalid-message'] ||
542
+ (this.invalidMessage && this.invalidMessage.length) ||
543
+ (this.invalidDateMessage && this.invalidDateMessage.length)
544
+ );
545
+ },
542
546
  initFlatpickr() {
543
547
  if (['single', 'range'].includes(this.kind)) {
544
548
  // no need to call set value as it's done through getOptions
@@ -646,6 +650,7 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
646
650
  },
647
651
  mounted() {
648
652
  this.initFlatpickr();
653
+ this.checkSlots();
649
654
  // this.cal.setDate([Date.now(), Date.now()]);
650
655
  // setTimeout(() => {
651
656
  // let curDate = new Date();
@@ -654,6 +659,9 @@ l10n_default.a.en.weekdays.shorthand.forEach((day, index) => {
654
659
  // this.cal.setDate([curDate, anotherDate], true);
655
660
  // }, 2000);
656
661
  },
662
+ beforeUpdate() {
663
+ this.checkSlots();
664
+ },
657
665
  beforeDestroy() {
658
666
  if (this.cal) {
659
667
  this.cal.destroy();
@@ -676,7 +684,7 @@ var componentNormalizer = __webpack_require__("2877");
676
684
 
677
685
  var component = Object(componentNormalizer["a" /* default */])(
678
686
  cv_date_picker_cv_date_pickervue_type_script_lang_js_,
679
- cv_date_pickervue_type_template_id_79ff851d_render,
687
+ cv_date_pickervue_type_template_id_ad82b8da_render,
680
688
  staticRenderFns,
681
689
  false,
682
690
  null,
@@ -830,23 +838,23 @@ var component = Object(componentNormalizer["a" /* default */])(
830
838
  "use strict";
831
839
  __webpack_require__.r(__webpack_exports__);
832
840
 
833
- // 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&
841
+ // 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&
834
842
  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)}
835
843
  var staticRenderFns = []
836
844
 
837
845
 
838
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=7ca58e87&
846
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-row.vue?vue&type=template&id=c9eec754&
839
847
 
840
- // 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&
841
- 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({
848
+ // 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&
849
+ 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({
842
850
  rowValue: _vm.value,
843
851
  menuIndex: index,
844
852
  menuLabel: item,
845
853
  })}}},[_vm._v(_vm._s(item))])}),1)],1):_vm._e()],2)}
846
- var _cv_data_table_row_innervue_type_template_id_0262ba02_staticRenderFns = []
854
+ var _cv_data_table_row_innervue_type_template_id_434f21c4_staticRenderFns = []
847
855
 
848
856
 
849
- // CONCATENATED MODULE: ./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=0262ba02&
857
+ // CONCATENATED MODULE: ./src/components/cv-data-table/_cv-data-table-row-inner.vue?vue&type=template&id=434f21c4&
850
858
 
851
859
  // EXTERNAL MODULE: ./src/components/cv-checkbox/cv-checkbox.vue + 4 modules
852
860
  var cv_checkbox = __webpack_require__("eade");
@@ -921,8 +929,15 @@ var _16 = __webpack_require__("7c7c");
921
929
  dataChecked: this.checked,
922
930
  dataExpanded: this.expanded,
923
931
  dataSomeExpandingRows: this.someExpandingRows,
932
+ hasOverflowMenu: false,
924
933
  };
925
934
  },
935
+ mounted: function() {
936
+ this.checkSlots();
937
+ },
938
+ beforeUpdate() {
939
+ this.checkSlots();
940
+ },
926
941
  watch: {
927
942
  checked() {
928
943
  this.dataChecked = this.checked;
@@ -938,9 +953,6 @@ var _16 = __webpack_require__("7c7c");
938
953
  isCvDataTableRow() {
939
954
  return true;
940
955
  },
941
- hasOverflowMenu() {
942
- return (this.overflowMenu && this.overflowMenu.length) || this.$slots['overflow-menu'];
943
- },
944
956
  hasBatchActions() {
945
957
  return this.$parent.$parent.hasBatchActions;
946
958
  },
@@ -949,6 +961,10 @@ var _16 = __webpack_require__("7c7c");
949
961
  },
950
962
  },
951
963
  methods: {
964
+ checkSlots() {
965
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
966
+ this.hasOverflowMenu = !!((this.overflowMenu && this.overflowMenu.length) || this.$slots['overflow-menu']);
967
+ },
952
968
  onChange() {
953
969
  this.$parent.$parent.onRowCheckChange(this.value, this.dataChecked);
954
970
  },
@@ -977,8 +993,8 @@ var componentNormalizer = __webpack_require__("2877");
977
993
 
978
994
  var component = Object(componentNormalizer["a" /* default */])(
979
995
  cv_data_table_cv_data_table_row_innervue_type_script_lang_js_,
980
- _cv_data_table_row_innervue_type_template_id_0262ba02_render,
981
- _cv_data_table_row_innervue_type_template_id_0262ba02_staticRenderFns,
996
+ _cv_data_table_row_innervue_type_template_id_434f21c4_render,
997
+ _cv_data_table_row_innervue_type_template_id_434f21c4_staticRenderFns,
982
998
  false,
983
999
  null,
984
1000
  null,
@@ -1030,7 +1046,7 @@ var uid_mixin = __webpack_require__("fceb");
1030
1046
  },
1031
1047
  data() {
1032
1048
  return {
1033
- dataExpandable: this.$slots.expandedContent !== undefined,
1049
+ dataExpandable: false,
1034
1050
  dataSomeExpandingRows: false,
1035
1051
  dataExpanded: this.expanded,
1036
1052
  };
@@ -1043,10 +1059,12 @@ var uid_mixin = __webpack_require__("fceb");
1043
1059
  },
1044
1060
  },
1045
1061
  mounted() {
1062
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1063
+ this.dataExpandable = !!this.$slots.expandedContent;
1046
1064
  this.$parent.$emit('cv:mounted', this);
1047
1065
  },
1048
1066
  updated() {
1049
- this.dataExpandable = this.$slots.expandedContent !== undefined;
1067
+ this.dataExpandable = !!this.$slots.expandedContent;
1050
1068
  },
1051
1069
  beforeDestroy() {
1052
1070
  this.$parent.$emit('cv:beforeDestroy', this);
@@ -1129,12 +1147,12 @@ var cv_data_table_row_component = Object(componentNormalizer["a" /* default */])
1129
1147
  "use strict";
1130
1148
  __webpack_require__.r(__webpack_exports__);
1131
1149
 
1132
- // 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&
1133
- 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)])}
1150
+ // 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&
1151
+ 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)])}
1134
1152
  var staticRenderFns = []
1135
1153
 
1136
1154
 
1137
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=833931ec&
1155
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-menu.vue?vue&type=template&id=d79b4eb0&
1138
1156
 
1139
1157
  // EXTERNAL MODULE: ./node_modules/@carbon/icons-vue/es/chunk-75bb93d0.js
1140
1158
  var chunk_75bb93d0 = __webpack_require__("74ae");
@@ -1242,11 +1260,19 @@ var cv_side_nav_icon = __webpack_require__("8fd3");
1242
1260
  data() {
1243
1261
  return {
1244
1262
  expanded: false,
1263
+ hasNavIcon: false,
1245
1264
  };
1246
1265
  },
1266
+ mounted() {
1267
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1268
+ this.hasNavIcon = !!this.$slots['nav-icon'];
1269
+ },
1270
+ beforeUpdate() {
1271
+ this.hasNavIcon = !!this.$slots['nav-icon'];
1272
+ },
1247
1273
  computed: {
1248
1274
  hasIcon() {
1249
- return this.$slots['nav-icon'] !== undefined;
1275
+ return !!this.$slots['nav-icon'];
1250
1276
  },
1251
1277
  },
1252
1278
  methods: {
@@ -1271,7 +1297,7 @@ var componentNormalizer = __webpack_require__("2877");
1271
1297
 
1272
1298
  var component = Object(componentNormalizer["a" /* default */])(
1273
1299
  cv_ui_shell_cv_side_nav_menuvue_type_script_lang_js_,
1274
- cv_side_nav_menuvue_type_template_id_833931ec_render,
1300
+ cv_side_nav_menuvue_type_template_id_d79b4eb0_render,
1275
1301
  staticRenderFns,
1276
1302
  false,
1277
1303
  null,
@@ -1580,7 +1606,7 @@ var component = Object(componentNormalizer["a" /* default */])(
1580
1606
  "use strict";
1581
1607
  __webpack_require__.r(__webpack_exports__);
1582
1608
 
1583
- // 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&
1609
+ // 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&
1584
1610
  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:[
1585
1611
  'bx--label',
1586
1612
  {
@@ -1589,7 +1615,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
1589
1615
  var staticRenderFns = []
1590
1616
 
1591
1617
 
1592
- // CONCATENATED MODULE: ./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=02be530e&
1618
+ // CONCATENATED MODULE: ./src/components/cv-text-area/cv-text-area.vue?vue&type=template&id=7b295f82&
1593
1619
 
1594
1620
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
1595
1621
  var uid_mixin = __webpack_require__("fceb");
@@ -1649,6 +1675,18 @@ var _16 = __webpack_require__("f47d");
1649
1675
  label: String,
1650
1676
  value: String,
1651
1677
  },
1678
+ data() {
1679
+ return {
1680
+ isHelper: false,
1681
+ isInvalid: false,
1682
+ };
1683
+ },
1684
+ mounted() {
1685
+ this.checkSlots();
1686
+ },
1687
+ beforeUpdate() {
1688
+ this.checkSlots();
1689
+ },
1652
1690
  computed: {
1653
1691
  // Bind listeners at the component level to the embedded input element and
1654
1692
  // add our own input listener to service the v-model. See:
@@ -1659,11 +1697,12 @@ var _16 = __webpack_require__("f47d");
1659
1697
  input: event => this.$emit('input', event.target.value),
1660
1698
  };
1661
1699
  },
1662
- isInvalid() {
1663
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
1664
- },
1665
- isHelper() {
1666
- return this.$slots['helper-text'] || (this.helperText && this.helperText.length);
1700
+ },
1701
+ methods: {
1702
+ checkSlots() {
1703
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
1704
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
1705
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
1667
1706
  },
1668
1707
  },
1669
1708
  });
@@ -2292,7 +2331,7 @@ var component = Object(componentNormalizer["a" /* default */])(
2292
2331
  "use strict";
2293
2332
  __webpack_require__.r(__webpack_exports__);
2294
2333
 
2295
- // 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&
2334
+ // 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&
2296
2335
  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:{
2297
2336
  'cv-select': !_vm.formItem,
2298
2337
  'bx--select--inline': _vm.inline,
@@ -2303,7 +2342,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
2303
2342
  var staticRenderFns = []
2304
2343
 
2305
2344
 
2306
- // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=template&id=d8e334c8&
2345
+ // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=template&id=c4569fdc&
2307
2346
 
2308
2347
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
2309
2348
  var uid_mixin = __webpack_require__("fceb");
@@ -2415,7 +2454,11 @@ var _16 = __webpack_require__("f47d");
2415
2454
  delete this.$attrs.multiple;
2416
2455
  },
2417
2456
  data() {
2418
- return { dataValue: undefined };
2457
+ return {
2458
+ dataValue: undefined,
2459
+ isHelper: false,
2460
+ isInvalid: false,
2461
+ };
2419
2462
  },
2420
2463
  mounted() {
2421
2464
  // this is needed to ensure selected for an option when no value is supplied
@@ -2427,6 +2470,10 @@ var _16 = __webpack_require__("f47d");
2427
2470
  }
2428
2471
  }
2429
2472
  }
2473
+ this.checkSlots();
2474
+ },
2475
+ beforeUpdate() {
2476
+ this.checkSlots();
2430
2477
  },
2431
2478
  watch: {
2432
2479
  value() {
@@ -2451,16 +2498,17 @@ var _16 = __webpack_require__("f47d");
2451
2498
  input: event => this.$emit('input', event.target.value),
2452
2499
  };
2453
2500
  },
2454
- isInvalid() {
2455
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
2456
- },
2457
- isHelper() {
2458
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
2459
- },
2460
2501
  internalValue() {
2461
2502
  return this.dataValue ? this.dataValue : this.value;
2462
2503
  },
2463
2504
  },
2505
+ methods: {
2506
+ checkSlots() {
2507
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
2508
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
2509
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
2510
+ },
2511
+ },
2464
2512
  });
2465
2513
 
2466
2514
  // CONCATENATED MODULE: ./src/components/cv-select/cv-select.vue?vue&type=script&lang=js&
@@ -2578,12 +2626,12 @@ var component = Object(componentNormalizer["a" /* default */])(
2578
2626
  "use strict";
2579
2627
  __webpack_require__.r(__webpack_exports__);
2580
2628
 
2581
- // 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&
2629
+ // 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&
2582
2630
  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)}
2583
2631
  var staticRenderFns = []
2584
2632
 
2585
2633
 
2586
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=5adee54a&
2634
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-action.vue?vue&type=template&id=8a6cb3f0&
2587
2635
 
2588
2636
  // 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&
2589
2637
  //
@@ -2597,7 +2645,7 @@ var staticRenderFns = []
2597
2645
  name: 'cv-data-table-action',
2598
2646
  mounted() {
2599
2647
  // ensure SVG has
2600
- this.$el.children[0].classList.add('class="bx--toolbar-action__icon');
2648
+ this.$el.children[0].classList.add('bx--toolbar-action__icon');
2601
2649
  },
2602
2650
  });
2603
2651
 
@@ -3720,16 +3768,16 @@ var component = Object(componentNormalizer["a" /* default */])(
3720
3768
  "use strict";
3721
3769
  __webpack_require__.r(__webpack_exports__);
3722
3770
 
3723
- // 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&
3771
+ // 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&
3724
3772
  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:{
3725
3773
  'bx--list-box--light': _vm.theme === 'light',
3726
3774
  'bx--combo-box--expanded': _vm.open,
3727
3775
  'bx--combo-box--disabled bx--list-box--disabled': _vm.$attrs.disabled,
3728
- },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()])}
3776
+ },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()])}
3729
3777
  var staticRenderFns = []
3730
3778
 
3731
3779
 
3732
- // CONCATENATED MODULE: ./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=7fe3cf66&
3780
+ // CONCATENATED MODULE: ./src/components/cv-combo-box/cv-combo-box.vue?vue&type=template&id=25b02a2f&
3733
3781
 
3734
3782
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
3735
3783
  var theme_mixin = __webpack_require__("d43c");
@@ -3887,6 +3935,8 @@ var uid_mixin = __webpack_require__("fceb");
3887
3935
  dataValue: this.value,
3888
3936
  dataHighlighted: null,
3889
3937
  dataFilter: null,
3938
+ isHelper: false,
3939
+ isInvalid: false,
3890
3940
  };
3891
3941
  },
3892
3942
  model: {
@@ -3912,17 +3962,12 @@ var uid_mixin = __webpack_require__("fceb");
3912
3962
  mounted() {
3913
3963
  this.filter = this.value;
3914
3964
  this.highlighted = this.value ? this.value : this.highlight; // override highlight with value if provided
3915
- console.warn(
3916
- `${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.`
3917
- );
3965
+ this.checkSlots();
3966
+ },
3967
+ beforeUpdate() {
3968
+ this.checkSlots();
3918
3969
  },
3919
3970
  computed: {
3920
- isInvalid() {
3921
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
3922
- },
3923
- isHelper() {
3924
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
3925
- },
3926
3971
  highlighted: {
3927
3972
  get() {
3928
3973
  return this.dataHighlighted;
@@ -3954,11 +3999,18 @@ var uid_mixin = __webpack_require__("fceb");
3954
3999
  },
3955
4000
  },
3956
4001
  methods: {
4002
+ checkSlots() {
4003
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
4004
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
4005
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
4006
+ },
3957
4007
  clearFilter() {
4008
+ this.internalUpdateValue('');
3958
4009
  this.filter = '';
3959
4010
  this.$refs.input.focus();
3960
4011
  this.doOpen(true);
3961
4012
  this.updateOptions();
4013
+ this.$emit('change', this.dataValue);
3962
4014
  },
3963
4015
  checkHighlightPosition(newHiglight) {
3964
4016
  if (this.$refs.list && this.$refs.option) {
@@ -3999,7 +4051,7 @@ var uid_mixin = __webpack_require__("fceb");
3999
4051
  }
4000
4052
  },
4001
4053
  updateOptions() {
4002
- if (this.autoFilter) {
4054
+ if (this.autoFilter && this.filter) {
4003
4055
  const escFilter = this.filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
4004
4056
  const pat = new RegExp(escFilter, 'iu');
4005
4057
  this.dataOptions = this.options.filter(opt => pat.test(opt.label)).slice(0);
@@ -4670,6 +4722,7 @@ var map = {
4670
4722
  "./cv-tile/cv-tile.vue": "5106",
4671
4723
  "./cv-time-picker/cv-time-picker.vue": "89b6",
4672
4724
  "./cv-toast-notification/cv-toast-notification.vue": "95a6",
4725
+ "./cv-toggle/cv-toggle-skeleton.vue": "68c3",
4673
4726
  "./cv-toggle/cv-toggle.vue": "f154",
4674
4727
  "./cv-toolbar/cv-toolbar-divider.vue": "25b6",
4675
4728
  "./cv-toolbar/cv-toolbar-option.vue": "4c37",
@@ -6622,8 +6675,8 @@ var virtual_CheckmarkFilled16 = {
6622
6675
  "use strict";
6623
6676
  __webpack_require__.r(__webpack_exports__);
6624
6677
 
6625
- // 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&
6626
- 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:{
6678
+ // 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&
6679
+ 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:{
6627
6680
  'bx--number--light': _vm.theme === 'light',
6628
6681
  'bx--number--helpertext': _vm.isHelper,
6629
6682
  'cv-number-input': !_vm.formItem,
@@ -6631,7 +6684,7 @@ var cv_number_inputvue_type_template_id_77eb2092_render = function () {var _vm=t
6631
6684
  var staticRenderFns = []
6632
6685
 
6633
6686
 
6634
- // CONCATENATED MODULE: ./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=77eb2092&
6687
+ // CONCATENATED MODULE: ./src/components/cv-number-input/cv-number-input.vue?vue&type=template&id=76d16536&
6635
6688
 
6636
6689
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
6637
6690
  var uid_mixin = __webpack_require__("fceb");
@@ -6828,8 +6881,16 @@ var _cv_wrapper = __webpack_require__("5d36");
6828
6881
  data() {
6829
6882
  return {
6830
6883
  internalValue: this.valueAsString(this.value),
6884
+ isHelper: false,
6885
+ isInvalid: false,
6831
6886
  };
6832
6887
  },
6888
+ mounted() {
6889
+ this.checkSlots();
6890
+ },
6891
+ beforeUpdate() {
6892
+ this.checkSlots();
6893
+ },
6833
6894
  watch: {
6834
6895
  value() {
6835
6896
  this.internalValue = this.valueAsString(this.value);
@@ -6852,14 +6913,13 @@ var _cv_wrapper = __webpack_require__("5d36");
6852
6913
  }
6853
6914
  return intVal;
6854
6915
  },
6855
- isInvalid() {
6856
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
6857
- },
6858
- isHelper() {
6859
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
6860
- },
6861
6916
  },
6862
6917
  methods: {
6918
+ checkSlots() {
6919
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
6920
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
6921
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
6922
+ },
6863
6923
  doUp() {
6864
6924
  this.internalValue = `${this.internalIntValue + 1}`;
6865
6925
  this.emitValue();
@@ -6899,7 +6959,7 @@ var componentNormalizer = __webpack_require__("2877");
6899
6959
 
6900
6960
  var component = Object(componentNormalizer["a" /* default */])(
6901
6961
  cv_number_input_cv_number_inputvue_type_script_lang_js_,
6902
- cv_number_inputvue_type_template_id_77eb2092_render,
6962
+ cv_number_inputvue_type_template_id_76d16536_render,
6903
6963
  staticRenderFns,
6904
6964
  false,
6905
6965
  null,
@@ -6918,7 +6978,7 @@ var component = Object(componentNormalizer["a" /* default */])(
6918
6978
  "use strict";
6919
6979
  __webpack_require__.r(__webpack_exports__);
6920
6980
 
6921
- // 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&
6981
+ // 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&
6922
6982
  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:{
6923
6983
  'bx--multi-select__wrapper--inline bx--list-box__wrapper--inline': _vm.inline,
6924
6984
  'bx--multi-select__wrapper--inline--invalid bx--list-box__wrapper--inline--invalid': _vm.inline && _vm.isInvalid,
@@ -6931,11 +6991,11 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
6931
6991
  'bx--multi-select--inline bx--list-box--inline': _vm.inline,
6932
6992
  'bx--multi-select--selected': _vm.dataValue.length > 0,
6933
6993
  'bx--combo-box': _vm.filterable,
6934
- },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()])}
6994
+ },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()])}
6935
6995
  var staticRenderFns = []
6936
6996
 
6937
6997
 
6938
- // CONCATENATED MODULE: ./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=9188ed7c&
6998
+ // CONCATENATED MODULE: ./src/components/cv-multi-select/cv-multi-select.vue?vue&type=template&id=a6c6d852&
6939
6999
 
6940
7000
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
6941
7001
  var theme_mixin = __webpack_require__("d43c");
@@ -7091,6 +7151,7 @@ var cv_tag = __webpack_require__("603b");
7091
7151
  //
7092
7152
  //
7093
7153
  //
7154
+ //
7094
7155
 
7095
7156
 
7096
7157
 
@@ -7160,6 +7221,8 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7160
7221
  dataValue: '',
7161
7222
  dataHighlighted: null,
7162
7223
  dataFilter: '',
7224
+ isHelper: false,
7225
+ isInvalid: false,
7163
7226
  };
7164
7227
  },
7165
7228
  model: {
@@ -7186,17 +7249,12 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7186
7249
  },
7187
7250
  mounted() {
7188
7251
  this.highlighted = this.value ? this.value : this.highlight; // override highlight with value if provided
7189
- console.warn(
7190
- `${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.`
7191
- );
7252
+ this.checkSlots();
7253
+ },
7254
+ beforeUpdate() {
7255
+ this.checkSlots();
7192
7256
  },
7193
7257
  computed: {
7194
- isInvalid() {
7195
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
7196
- },
7197
- isHelper() {
7198
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
7199
- },
7200
7258
  highlighted: {
7201
7259
  get() {
7202
7260
  return this.dataHighlighted;
@@ -7232,6 +7290,11 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7232
7290
  },
7233
7291
  },
7234
7292
  methods: {
7293
+ checkSlots() {
7294
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
7295
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
7296
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
7297
+ },
7235
7298
  clearFilter() {
7236
7299
  this.filter = '';
7237
7300
  this.$refs.input.focus();
@@ -7360,8 +7423,16 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7360
7423
  if (this.disabled) {
7361
7424
  ev.preventDefault();
7362
7425
  } else {
7363
- this.doOpen(!this.open);
7364
- this.inputOrButtonFocus();
7426
+ if (this.open) {
7427
+ this.inputOrButtonFocus();
7428
+ // done this way round otherwise will auto open on focus.
7429
+ this.$nextTick(() => {
7430
+ this.doOpen(false);
7431
+ });
7432
+ } else {
7433
+ this.doOpen(true);
7434
+ this.inputOrButtonFocus();
7435
+ }
7365
7436
  }
7366
7437
  },
7367
7438
  clearValues() {
@@ -7398,6 +7469,11 @@ const selectionFeedbackOptions = ['top-after-reopen', 'top', 'fixed'];
7398
7469
  inputFocus() {
7399
7470
  this.doOpen(true);
7400
7471
  },
7472
+ otherKey(ev) {
7473
+ if (!['Escape', 'ArrowUp', 'ArrowDown', 'Enter'].includes(ev.code)) {
7474
+ console.log(ev.code);
7475
+ }
7476
+ },
7401
7477
  },
7402
7478
  });
7403
7479
 
@@ -7534,6 +7610,72 @@ var component = Object(componentNormalizer["a" /* default */])(
7534
7610
 
7535
7611
  /***/ }),
7536
7612
 
7613
+ /***/ "68c3":
7614
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
7615
+
7616
+ "use strict";
7617
+ __webpack_require__.r(__webpack_exports__);
7618
+
7619
+ // 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&
7620
+ 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"})])])}
7621
+ var staticRenderFns = []
7622
+
7623
+
7624
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=template&id=c0690bde&
7625
+
7626
+ // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
7627
+ var uid_mixin = __webpack_require__("fceb");
7628
+
7629
+ // 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&
7630
+ //
7631
+ //
7632
+ //
7633
+ //
7634
+ //
7635
+ //
7636
+ //
7637
+ //
7638
+ //
7639
+ //
7640
+ //
7641
+
7642
+
7643
+ /* harmony default export */ var cv_toggle_skeletonvue_type_script_lang_js_ = ({
7644
+ name: 'CvToggleSkeleton',
7645
+ mixins: [uid_mixin["a" /* default */]],
7646
+ props: {
7647
+ label: { type: String, default: 'Toggle is loading' },
7648
+ },
7649
+ });
7650
+
7651
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue?vue&type=script&lang=js&
7652
+ /* harmony default export */ var cv_toggle_cv_toggle_skeletonvue_type_script_lang_js_ = (cv_toggle_skeletonvue_type_script_lang_js_);
7653
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
7654
+ var componentNormalizer = __webpack_require__("2877");
7655
+
7656
+ // CONCATENATED MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue
7657
+
7658
+
7659
+
7660
+
7661
+
7662
+ /* normalize component */
7663
+
7664
+ var component = Object(componentNormalizer["a" /* default */])(
7665
+ cv_toggle_cv_toggle_skeletonvue_type_script_lang_js_,
7666
+ render,
7667
+ staticRenderFns,
7668
+ false,
7669
+ null,
7670
+ null,
7671
+ null
7672
+
7673
+ )
7674
+
7675
+ /* harmony default export */ var cv_toggle_skeleton = __webpack_exports__["default"] = (component.exports);
7676
+
7677
+ /***/ }),
7678
+
7537
7679
  /***/ "6e60":
7538
7680
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7539
7681
 
@@ -7683,12 +7825,12 @@ var component = Object(componentNormalizer["a" /* default */])(
7683
7825
  "use strict";
7684
7826
  __webpack_require__.r(__webpack_exports__);
7685
7827
 
7686
- // 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&
7687
- 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)}
7828
+ // 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&
7829
+ 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)}
7688
7830
  var staticRenderFns = []
7689
7831
 
7690
7832
 
7691
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=d8af9fe4&
7833
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=template&id=2cd43eb0&
7692
7834
 
7693
7835
  // EXTERNAL MODULE: ./src/components/cv-data-table/cv-data-table.vue + 11 modules
7694
7836
  var cv_data_table = __webpack_require__("def8");
@@ -7728,6 +7870,19 @@ const DEFAULTS = {
7728
7870
  hasExpandables: Boolean,
7729
7871
  rows: { type: Number, default: DEFAULTS.ROWS },
7730
7872
  },
7873
+ data() {
7874
+ return {
7875
+ hasActions: false,
7876
+ hasHelperText: false,
7877
+ hasBatchActions: false,
7878
+ };
7879
+ },
7880
+ mounted() {
7881
+ this.checkSlots();
7882
+ },
7883
+ beforeUpdate() {
7884
+ this.checkSlots();
7885
+ },
7731
7886
  computed: {
7732
7887
  data() {
7733
7888
  return [...Array(Math.max(this.rows, 1))].map(item => Array(this.cols.length).fill(''));
@@ -7736,6 +7891,14 @@ const DEFAULTS = {
7736
7891
  return typeof this.columns !== 'number' ? this.columns : Array(Math.max(this.columns, 1)).fill('');
7737
7892
  },
7738
7893
  },
7894
+ methods: {
7895
+ checkSlots() {
7896
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
7897
+ this.hasBatchActions = !!this.$slots['batch-actions'];
7898
+ this.hasHelperText = !!this.$slots['helper-text'];
7899
+ this.hasActions = !!this.$slots['actions'];
7900
+ },
7901
+ },
7739
7902
  });
7740
7903
 
7741
7904
  // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table-skeleton.vue?vue&type=script&lang=js&
@@ -7828,7 +7991,7 @@ module.exports = virtual_Error20;
7828
7991
  "use strict";
7829
7992
  __webpack_require__.r(__webpack_exports__);
7830
7993
 
7831
- // 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&
7994
+ // 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&
7832
7995
  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:{
7833
7996
  'bx--dropdown--light': _vm.theme === 'light',
7834
7997
  'bx--dropdown--up': _vm.up,
@@ -7840,7 +8003,7 @@ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._sel
7840
8003
  var staticRenderFns = []
7841
8004
 
7842
8005
 
7843
- // CONCATENATED MODULE: ./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=082fde71&
8006
+ // CONCATENATED MODULE: ./src/components/cv-dropdown/cv-dropdown.vue?vue&type=template&id=4dec4c59&
7844
8007
 
7845
8008
  // EXTERNAL MODULE: ./src/mixins/theme-mixin.js
7846
8009
  var theme_mixin = __webpack_require__("d43c");
@@ -7979,6 +8142,8 @@ var chevron_down = __webpack_require__("fa89");
7979
8142
  return {
7980
8143
  open: false,
7981
8144
  dataValue: this.value,
8145
+ isHelper: false,
8146
+ isInvalid: false,
7982
8147
  };
7983
8148
  },
7984
8149
  created() {
@@ -7993,6 +8158,10 @@ var chevron_down = __webpack_require__("fa89");
7993
8158
  }
7994
8159
  });
7995
8160
  this.internalValue = this.internalValue; // forces update of value
8161
+ this.checkSlots();
8162
+ },
8163
+ beforeUpdate() {
8164
+ this.checkSlots();
7996
8165
  },
7997
8166
  model: {
7998
8167
  prop: 'value',
@@ -8004,12 +8173,6 @@ var chevron_down = __webpack_require__("fa89");
8004
8173
  },
8005
8174
  },
8006
8175
  computed: {
8007
- isInvalid() {
8008
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
8009
- },
8010
- isHelper() {
8011
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
8012
- },
8013
8176
  internalValue: {
8014
8177
  get() {
8015
8178
  return this.dataValue;
@@ -8055,6 +8218,11 @@ var chevron_down = __webpack_require__("fa89");
8055
8218
  },
8056
8219
  },
8057
8220
  methods: {
8221
+ checkSlots() {
8222
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
8223
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
8224
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
8225
+ },
8058
8226
  onCvMount(srcComponent) {
8059
8227
  if (srcComponent.internalSelected) {
8060
8228
  this.internalValue = srcComponent.value;
@@ -9058,8 +9226,8 @@ var component = Object(componentNormalizer["a" /* default */])(
9058
9226
  "use strict";
9059
9227
  __webpack_require__.r(__webpack_exports__);
9060
9228
 
9061
- // 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&
9062
- 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:[
9229
+ // 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&
9230
+ 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:[
9063
9231
  'bx--label',
9064
9232
  {
9065
9233
  'bx--label--disabled': _vm.$attrs.disabled !== undefined && _vm.$attrs.disabled,
@@ -9067,7 +9235,7 @@ var cv_text_inputvue_type_template_id_7ecbba34_render = function () {var _vm=thi
9067
9235
  var staticRenderFns = []
9068
9236
 
9069
9237
 
9070
- // CONCATENATED MODULE: ./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=7ecbba34&
9238
+ // CONCATENATED MODULE: ./src/components/cv-text-input/cv-text-input.vue?vue&type=template&id=6fac295a&
9071
9239
 
9072
9240
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
9073
9241
  var uid_mixin = __webpack_require__("fceb");
@@ -9261,8 +9429,16 @@ var virtual_ViewOff16 = {
9261
9429
  return {
9262
9430
  dataPasswordVisible: this.isPassword && this.passwordVisible,
9263
9431
  dataType: this.type,
9432
+ isHelper: false,
9433
+ isInvalid: false,
9264
9434
  };
9265
9435
  },
9436
+ mounted: function() {
9437
+ this.checkSlots();
9438
+ },
9439
+ beforeUpdate() {
9440
+ this.checkSlots();
9441
+ },
9266
9442
  watch: {
9267
9443
  passwordVisible() {
9268
9444
  if (this.passwordVisible !== this.dataPasswordVisible) {
@@ -9283,12 +9459,6 @@ var virtual_ViewOff16 = {
9283
9459
  input: event => this.$emit('input', event.target.value),
9284
9460
  };
9285
9461
  },
9286
- isInvalid() {
9287
- return this.$slots['invalid-message'] !== undefined || (this.invalidMessage && this.invalidMessage.length);
9288
- },
9289
- isHelper() {
9290
- return this.$slots['helper-text'] || (this.helperText && this.helperText.length);
9291
- },
9292
9462
  isPassword() {
9293
9463
  return this.type === 'password';
9294
9464
  },
@@ -9300,6 +9470,11 @@ var virtual_ViewOff16 = {
9300
9470
  },
9301
9471
  },
9302
9472
  methods: {
9473
+ checkSlots() {
9474
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
9475
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
9476
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
9477
+ },
9303
9478
  togglePasswordVisibility() {
9304
9479
  const currentValue = this.$refs.input.value;
9305
9480
  this.dataPasswordVisible = !this.dataPasswordVisible;
@@ -9327,7 +9502,7 @@ var componentNormalizer = __webpack_require__("2877");
9327
9502
 
9328
9503
  var component = Object(componentNormalizer["a" /* default */])(
9329
9504
  cv_text_input_cv_text_inputvue_type_script_lang_js_,
9330
- cv_text_inputvue_type_template_id_7ecbba34_render,
9505
+ cv_text_inputvue_type_template_id_6fac295a_render,
9331
9506
  staticRenderFns,
9332
9507
  false,
9333
9508
  null,
@@ -9362,12 +9537,12 @@ const STATES = {
9362
9537
  "use strict";
9363
9538
  __webpack_require__.r(__webpack_exports__);
9364
9539
 
9365
- // 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&
9366
- 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)}
9540
+ // 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&
9541
+ 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)}
9367
9542
  var staticRenderFns = []
9368
9543
 
9369
9544
 
9370
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=b334136e&
9545
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-header.vue?vue&type=template&id=6fa80848&
9371
9546
 
9372
9547
  // 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&
9373
9548
  //
@@ -9398,8 +9573,16 @@ var staticRenderFns = []
9398
9573
  return {
9399
9574
  panelControllers: [],
9400
9575
  panels: [],
9576
+ hasGlobalHeader: false,
9401
9577
  };
9402
9578
  },
9579
+ mounted() {
9580
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
9581
+ this.hasGlobalHeader = !!this.$slots['header-global'];
9582
+ },
9583
+ beforeUpdate() {
9584
+ this.hasGlobalHeader = !!this.$slots['header-global'];
9585
+ },
9403
9586
  computed: {
9404
9587
  isCvHeader() {
9405
9588
  return true;
@@ -9753,12 +9936,12 @@ var component = Object(componentNormalizer["a" /* default */])(
9753
9936
  "use strict";
9754
9937
  __webpack_require__.r(__webpack_exports__);
9755
9938
 
9756
- // 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&
9939
+ // 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&
9757
9940
  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()])}
9758
9941
  var staticRenderFns = []
9759
9942
 
9760
9943
 
9761
- // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=508ebf05&
9944
+ // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=template&id=0cac4b32&
9762
9945
 
9763
9946
  // EXTERNAL MODULE: ./src/mixins/uid-mixin.js
9764
9947
  var uid_mixin = __webpack_require__("fceb");
@@ -9855,13 +10038,18 @@ var cv_select_option = __webpack_require__("18a2");
9855
10038
  timezones: { type: Array, default: () => [] },
9856
10039
  timezonesSelectLabel: { type: String, default: 'Select time zone' },
9857
10040
  },
10041
+ data() {
10042
+ return {
10043
+ isInvalid: false,
10044
+ };
10045
+ },
10046
+ mounted() {
10047
+ this.checkSlots();
10048
+ },
10049
+ beforeUpdate() {
10050
+ this.checkSlots();
10051
+ },
9858
10052
  computed: {
9859
- isInvalid() {
9860
- return (
9861
- (this.$slots['invalid-message'] && this.$slots['invalid-message'].length) ||
9862
- (this.invalidMessage && this.invalidMessage.length > 0)
9863
- );
9864
- },
9865
10053
  validAmpm() {
9866
10054
  let result = this.ampm;
9867
10055
  if (!['AM', 'PM'].includes(this.ampm)) {
@@ -9886,6 +10074,12 @@ var cv_select_option = __webpack_require__("18a2");
9886
10074
  return result;
9887
10075
  },
9888
10076
  },
10077
+ methods: {
10078
+ checkSlots() {
10079
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
10080
+ this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
10081
+ },
10082
+ },
9889
10083
  });
9890
10084
 
9891
10085
  // CONCATENATED MODULE: ./src/components/cv-time-picker/cv-time-picker.vue?vue&type=script&lang=js&
@@ -10605,12 +10799,12 @@ var component = Object(componentNormalizer["a" /* default */])(
10605
10799
  "use strict";
10606
10800
  __webpack_require__.r(__webpack_exports__);
10607
10801
 
10608
- // 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&
10609
- 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)}
10802
+ // 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&
10803
+ 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)}
10610
10804
  var staticRenderFns = []
10611
10805
 
10612
10806
 
10613
- // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=48351e63&
10807
+ // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=template&id=0b6e711b&
10614
10808
 
10615
10809
  // EXTERNAL MODULE: ./src/mixins/link-mixin.js
10616
10810
  var link_mixin = __webpack_require__("c5a1");
@@ -10655,6 +10849,14 @@ var _cv_side_nav_link_text = __webpack_require__("f516");
10655
10849
  active: Boolean,
10656
10850
  icon: Object,
10657
10851
  },
10852
+ data() {
10853
+ return {
10854
+ hasNavIcon: this.$slots['nav-icon'],
10855
+ };
10856
+ },
10857
+ beforeUpdate() {
10858
+ this.hasNavIcon = !!this.$slots['nav-icon'];
10859
+ },
10658
10860
  });
10659
10861
 
10660
10862
  // CONCATENATED MODULE: ./src/components/cv-ui-shell/cv-side-nav-link.vue?vue&type=script&lang=js&
@@ -11662,21 +11864,18 @@ var cv_accordion_skeleton_component = Object(componentNormalizer["a" /* default
11662
11864
  "use strict";
11663
11865
  __webpack_require__.r(__webpack_exports__);
11664
11866
 
11665
- // 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&
11666
- 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:{
11867
+ // 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&
11868
+ 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:{
11667
11869
  'bx--tabs__nav-item--selected': _vm.selectedId == tab.uid,
11668
11870
  'bx--tabs__nav-item--disabled': _vm.disabledTabs.indexOf(tab.uid) !== -1,
11669
- },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)])}
11871
+ },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)])}
11670
11872
  var staticRenderFns = []
11671
11873
 
11672
11874
 
11673
- // CONCATENATED MODULE: ./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=9b386630&
11674
-
11675
- // EXTERNAL MODULE: ./src/components/cv-dropdown/cv-dropdown.vue + 4 modules
11676
- var cv_dropdown = __webpack_require__("71cc");
11875
+ // CONCATENATED MODULE: ./src/components/cv-tabs/cv-tabs.vue?vue&type=template&id=8ead6792&
11677
11876
 
11678
- // EXTERNAL MODULE: ./src/components/cv-dropdown/cv-dropdown-item.vue + 4 modules
11679
- var cv_dropdown_item = __webpack_require__("140e");
11877
+ // EXTERNAL MODULE: ./node_modules/@carbon/icons-vue/es/chevron--down/index.js
11878
+ var chevron_down = __webpack_require__("fa89");
11680
11879
 
11681
11880
  // 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&
11682
11881
  //
@@ -11733,21 +11932,27 @@ var cv_dropdown_item = __webpack_require__("140e");
11733
11932
  //
11734
11933
  //
11735
11934
  //
11736
-
11935
+ //
11936
+ //
11937
+ //
11938
+ //
11737
11939
 
11738
11940
 
11739
11941
 
11740
11942
  /* harmony default export */ var cv_tabsvue_type_script_lang_js_ = ({
11741
11943
  name: 'CvTabs',
11742
- components: { CvDropdown: cv_dropdown["default"], CvDropdownItem: cv_dropdown_item["default"] },
11743
11944
  props: {
11744
11945
  noDefaultToFirst: Boolean,
11745
11946
  },
11947
+ components: { ChevronDownGlyph: chevron_down["a" /* default */] },
11746
11948
  data() {
11747
11949
  return {
11748
11950
  tabs: [],
11749
11951
  selectedId: undefined,
11750
11952
  disabledTabs: [],
11953
+ open: false,
11954
+ lastDisplayProp: undefined,
11955
+ // data is open
11751
11956
  };
11752
11957
  },
11753
11958
  created() {
@@ -11758,13 +11963,59 @@ var cv_dropdown_item = __webpack_require__("140e");
11758
11963
  this.$on('cv:disabled', srcComponent => this.onCvDisabled(srcComponent));
11759
11964
  this.$on('cv:enabled', srcComponent => this.onCvEnabled(srcComponent));
11760
11965
  },
11966
+ mounted() {},
11761
11967
  computed: {
11762
11968
  triggerStyleOverride() {
11763
11969
  // <style carbon tweaks - DO NOT USE STYLE TAG as it causes SSR issues
11764
11970
  return { padding: 0 };
11765
11971
  },
11972
+ currentTabLabel() {
11973
+ const index = this.tabs.findIndex(tab => tab.uid === this.selectedId);
11974
+
11975
+ return index > -1 ? this.tabs[index].label : '';
11976
+ },
11766
11977
  },
11767
11978
  methods: {
11979
+ onFocusin(ev) {
11980
+ if (ev.target.classList.contains('bx--tabs__nav-link') || ev.target.classList.contains('bx--tabs-trigger')) {
11981
+ // record display prop state
11982
+ this.lastDisplayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11983
+ } else {
11984
+ this.lastDisplayProp = undefined;
11985
+ }
11986
+ },
11987
+ onFocusout(ev) {
11988
+ // works with onFocusin to determine whether focus needs to be set to a tab or trigger
11989
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11990
+ if (ev.relatedTarget) {
11991
+ if (
11992
+ ev.relatedTarget.classList.contains('bx--tabs__nav-link') ||
11993
+ ev.relatedTarget.classList.contains('bx--tabs-trigger')
11994
+ ) {
11995
+ return; // no need to do anything - focus is going somewhere
11996
+ } else {
11997
+ this.open = false;
11998
+ }
11999
+ } else {
12000
+ if (this.lastDisplayProp && this.lastDisplayProp !== displayProp) {
12001
+ if (displayProp === 'none') {
12002
+ // focus on selected tab
12003
+ const currentTabLink = this.$refs.link.find(link => link.getAttribute('aria-controls') === this.selectedId);
12004
+ if (currentTabLink) {
12005
+ currentTabLink.focus();
12006
+ }
12007
+ } else {
12008
+ this.$refs.trigger.focus();
12009
+ }
12010
+ } else {
12011
+ this.open = false;
12012
+ }
12013
+ }
12014
+ },
12015
+ onWindowResize() {
12016
+ // check whether trigger is displayed
12017
+ this.dataDropdownShown = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display') !== 'none';
12018
+ },
11768
12019
  onDropChange(val) {
11769
12020
  this.onTabClick(val);
11770
12021
  },
@@ -11807,6 +12058,12 @@ var cv_dropdown_item = __webpack_require__("140e");
11807
12058
  }
11808
12059
  }
11809
12060
 
12061
+ this.open = false;
12062
+ if (this.$refs.trigger) {
12063
+ // following code build sometimes trigger is not yet available
12064
+ this.$refs.trigger.focus();
12065
+ }
12066
+
11810
12067
  this.$emit('tab-selected', newIndex);
11811
12068
  }
11812
12069
  }
@@ -11847,64 +12104,115 @@ var cv_dropdown_item = __webpack_require__("140e");
11847
12104
  isAllTabsDisabled() {
11848
12105
  return this.disabledTabs.length === this.tabs.length;
11849
12106
  },
11850
- moveLeft() {
12107
+ onTabEnter(id) {
12108
+ // const newIndex = this.tabs.findIndex(tab => tab.uid === id);
12109
+
12110
+ this.onTabClick(id);
12111
+ this.$refs.trigger.focus();
12112
+ },
12113
+ onClick() {
12114
+ this.open = !this.open;
12115
+ },
12116
+ onEsc() {
12117
+ this.open = false;
12118
+ },
12119
+ onUp() {
11851
12120
  if (this.isAllTabsDisabled()) {
11852
12121
  return;
11853
12122
  }
11854
- let newId;
11855
- let newIndex;
11856
12123
 
11857
- if (this.selectedId) {
11858
- newIndex = this.tabs.indexOf(this.selectedId);
11859
- }
12124
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11860
12125
 
11861
- if (newIndex > 0) {
11862
- newIndex--;
11863
- } else {
11864
- newIndex = this.tabs.length - 1;
12126
+ if (displayProp !== 'none') {
12127
+ const el = document.activeElement;
12128
+ let id;
12129
+ if (el.classList.contains('bx--tabs__nav-link')) {
12130
+ id = el.getAttribute('aria-controls');
12131
+ } else {
12132
+ id = this.selectedId;
12133
+ }
12134
+
12135
+ const newIndex = this.move(id, false);
12136
+ this.$refs.link[newIndex].focus();
11865
12137
  }
11866
- newId = this.tabs[newIndex].uid;
12138
+ },
12139
+ onDown() {
12140
+ if (this.isAllTabsDisabled()) {
12141
+ return;
12142
+ }
12143
+
12144
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
11867
12145
 
11868
- while (this.disabledTabs.indexOf(newId) !== -1) {
11869
- if (newIndex > 0) {
11870
- newIndex--;
12146
+ if (displayProp !== 'none') {
12147
+ if (!this.open) {
12148
+ this.open = true;
11871
12149
  } else {
11872
- newIndex = this.tabs.length - 1;
12150
+ const el = document.activeElement;
12151
+ let id;
12152
+ if (el.classList.contains('bx--tabs__nav-link')) {
12153
+ id = el.getAttribute('aria-controls');
12154
+ } else {
12155
+ id = this.selectedId;
12156
+ }
12157
+
12158
+ const newIndex = this.move(id, true);
12159
+ this.$refs.link[newIndex].focus();
11873
12160
  }
11874
- newId = this.tabs[newIndex].uid;
11875
12161
  }
11876
- this.onTabClick(newId);
11877
- this.$refs.link[newIndex].focus();
11878
12162
  },
11879
- moveRight() {
12163
+ onLeft() {
11880
12164
  if (this.isAllTabsDisabled()) {
11881
12165
  return;
11882
12166
  }
11883
- let newId;
11884
- let newIndex;
11885
12167
 
11886
- if (this.selectedId) {
11887
- newIndex = this.tabs.indexOf(this.selectedId);
12168
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
12169
+ if (displayProp === 'none') {
12170
+ const newIndex = this.move(this.selectedId, false);
12171
+ const newId = this.tabs[newIndex].uid;
12172
+
12173
+ this.onTabClick(newId);
12174
+ this.$refs.link[newIndex].focus();
11888
12175
  }
12176
+ },
12177
+ move(id, next) {
12178
+ let newIndex;
12179
+ let newId;
11889
12180
 
11890
- if (newIndex < this.tabs.length - 1) {
11891
- newIndex++;
11892
- } else {
11893
- newIndex = 0;
12181
+ newIndex = this.tabs.findIndex(tab => tab.uid === id);
12182
+
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;
11894
12188
  }
11895
- newId = this.tabs[newIndex].uid;
11896
12189
 
11897
- while (this.disabledTabs.indexOf(newIndex) !== -1) {
11898
- if (newIndex < this.tabs.length - 1) {
11899
- newIndex++;
11900
- } else {
11901
- newIndex = 0;
12190
+ newId = this.tabs[newIndex].uid;
12191
+ while (newId === this.selectedId || this.disabledTabs.indexOf(newId) !== -1) {
12192
+ if (newIndex > -1) {
12193
+ newIndex = next ? newIndex + 1 : newIndex - 1;
12194
+ }
12195
+ if (newIndex < 0 || newIndex >= this.tabs.length) {
12196
+ newIndex = next ? 0 : this.tabs.length - 1;
11902
12197
  }
11903
12198
  newId = this.tabs[newIndex].uid;
11904
12199
  }
11905
12200
 
11906
- this.onTabClick(newId);
11907
- this.$refs.link[newIndex].focus();
12201
+ return newIndex;
12202
+ },
12203
+ onRight() {
12204
+ if (this.isAllTabsDisabled()) {
12205
+ return;
12206
+ }
12207
+
12208
+ const displayProp = window.getComputedStyle(this.$refs.trigger).getPropertyValue('display');
12209
+ if (displayProp === 'none') {
12210
+ const newIndex = this.move(this.selectedId, true);
12211
+ const newId = this.tabs[newIndex].uid;
12212
+
12213
+ this.onTabClick(newId);
12214
+ this.$refs.link[newIndex].focus();
12215
+ }
11908
12216
  },
11909
12217
  selected(index) {
11910
12218
  let selItem = this.tabs[index ? index : -1];
@@ -18595,15 +18903,15 @@ const options = ['light'];
18595
18903
  "use strict";
18596
18904
  __webpack_require__.r(__webpack_exports__);
18597
18905
 
18598
- // 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&
18906
+ // 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&
18599
18907
  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:{
18600
18908
  'is-visible': _vm.dataVisible,
18601
18909
  'bx--modal--danger': _vm.kind === 'danger',
18602
- },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}})])])}
18910
+ },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}})])])}
18603
18911
  var staticRenderFns = []
18604
18912
 
18605
18913
 
18606
- // CONCATENATED MODULE: ./src/components/cv-modal/cv-modal.vue?vue&type=template&id=3b14aed5&
18914
+ // CONCATENATED MODULE: ./src/components/cv-modal/cv-modal.vue?vue&type=template&id=0dbb9336&
18607
18915
 
18608
18916
  // EXTERNAL MODULE: ./src/components/cv-button/cv-button.vue + 4 modules
18609
18917
  var cv_button = __webpack_require__("cea0");
@@ -18683,12 +18991,6 @@ var _16 = __webpack_require__("5416");
18683
18991
  //
18684
18992
  //
18685
18993
  //
18686
- //
18687
- //
18688
- //
18689
- //
18690
- //
18691
- //
18692
18994
 
18693
18995
 
18694
18996
 
@@ -18715,12 +19017,20 @@ var _16 = __webpack_require__("5416");
18715
19017
  return {
18716
19018
  dataVisible: false,
18717
19019
  scrollable: false,
19020
+ hasFooter: false,
19021
+ hasHeaderLabel: false,
19022
+ hasPrimary: false,
19023
+ hasSecondary: false,
18718
19024
  };
18719
19025
  },
18720
19026
  mounted() {
18721
19027
  if (this.visible) {
18722
19028
  this.show();
18723
19029
  }
19030
+ this.checkSlots();
19031
+ },
19032
+ beforeUpdate() {
19033
+ this.checkSlots();
18724
19034
  },
18725
19035
  watch: {
18726
19036
  visible(val) {
@@ -18742,15 +19052,19 @@ var _16 = __webpack_require__("5416");
18742
19052
  secondaryKind() {
18743
19053
  return 'secondary';
18744
19054
  },
18745
- hasFooter() {
18746
- return this.$slots['primary-button'] || this.$slots['secondary-button'];
18747
- },
18748
19055
  },
18749
19056
  model: {
18750
19057
  event: 'modelEvent',
18751
19058
  prop: 'visible',
18752
19059
  },
18753
19060
  methods: {
19061
+ checkSlots() {
19062
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
19063
+ this.hasFooter = !!(this.$slots['primary-button'] || this.$slots['secondary-button']);
19064
+ this.hasHeaderLabel = !!this.$slots.label;
19065
+ this.hasSecondary = !!this.$slots['secondary-button'];
19066
+ this.hasPrimary = !!this.$slots['primary-button'];
19067
+ },
18754
19068
  focusBeforeContent() {
18755
19069
  if (this.$slots['primary-button']) {
18756
19070
  this.$refs.primary.$el.focus();
@@ -19325,8 +19639,8 @@ var cv_code_snippet_component = Object(componentNormalizer["a" /* default */])(
19325
19639
  "use strict";
19326
19640
  __webpack_require__.r(__webpack_exports__);
19327
19641
 
19328
- // 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&
19329
- 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:{
19642
+ // 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&
19643
+ 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:{
19330
19644
  'bx--toolbar-search-container-active': _vm.searchActive || _vm.searchValue.length > 0,
19331
19645
  'bx--toolbar-search-container-persistent': !_vm.expandingSearch,
19332
19646
  'bx--toolbar-search-container-expandable': _vm.expandingSearch,
@@ -19338,7 +19652,7 @@ return [(_vm.$scopedSlots['of-n-pages'])?_vm._t("of-n-pages",null,{"scope":scope
19338
19652
  var staticRenderFns = []
19339
19653
 
19340
19654
 
19341
- // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=82e1fb12&
19655
+ // CONCATENATED MODULE: ./src/components/cv-data-table/cv-data-table.vue?vue&type=template&id=8bf15364&
19342
19656
 
19343
19657
  // 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&
19344
19658
  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)}
@@ -19811,6 +20125,10 @@ var chevron_right_16 = __webpack_require__("7c7c");
19811
20125
  order: 'none',
19812
20126
  }))
19813
20127
  : this.columns,
20128
+ hasBatchActions: false,
20129
+ hasActions: false,
20130
+ hasToolbar: false,
20131
+ isHelper: false,
19814
20132
  batchActive: false,
19815
20133
  headingChecked: false,
19816
20134
  dataRowsSelected: this.rowsSelected,
@@ -19839,17 +20157,16 @@ var chevron_right_16 = __webpack_require__("7c7c");
19839
20157
  },
19840
20158
  mounted() {
19841
20159
  this.updateRowsSelected();
20160
+ this.checkSlots();
20161
+ },
20162
+ beforeUpdate() {
20163
+ this.checkSlots();
19842
20164
  },
19843
20165
  computed: {
19844
- hasBatchActions() {
19845
- return this.$slots['batch-actions'];
19846
- },
19847
20166
  hasTableHeader() {
19848
20167
  return this.title || this.isHelper;
19849
20168
  },
19850
- hasToolbar() {
19851
- return this.$slots.actions || this.$listeners.search || this.$slots['batch-actions'];
19852
- },
20169
+
19853
20170
  hasExpandables() {
19854
20171
  return this.registeredRows.some(item => item.expandable);
19855
20172
  },
@@ -19893,11 +20210,15 @@ var chevron_right_16 = __webpack_require__("7c7c");
19893
20210
  selectedRows() {
19894
20211
  return this.dataRowsSelected;
19895
20212
  },
19896
- isHelper() {
19897
- return this.$slots['helper-text'] !== undefined || (this.helperText && this.helperText.length);
19898
- },
19899
20213
  },
19900
20214
  methods: {
20215
+ checkSlots() {
20216
+ // NOTE: this.$slots is not reactive so needs to be managed on beforeUpdate
20217
+ this.hasBatchActions = !!this.$slots['batch-actions'];
20218
+ this.hasActions = !!this.$slots.actions;
20219
+ this.hasToolbar = !!(this.$slots.actions || this.$listeners.search || this.$slots['batch-actions']);
20220
+ this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
20221
+ },
19901
20222
  onCvMount(row) {
19902
20223
  this.registeredRows.push(row);
19903
20224
  row.$on('cv:expanded-change', this.onCvExpandedChange);
@@ -20048,7 +20369,7 @@ var chevron_right_16 = __webpack_require__("7c7c");
20048
20369
 
20049
20370
  var cv_data_table_component = Object(componentNormalizer["a" /* default */])(
20050
20371
  cv_data_table_cv_data_tablevue_type_script_lang_js_,
20051
- cv_data_tablevue_type_template_id_82e1fb12_render,
20372
+ cv_data_tablevue_type_template_id_8bf15364_render,
20052
20373
  staticRenderFns,
20053
20374
  false,
20054
20375
  null,
@@ -22387,10 +22708,14 @@ var cv_toast_notification = __webpack_require__("95a6");
22387
22708
  // EXTERNAL MODULE: ./src/components/cv-toggle/cv-toggle.vue + 4 modules
22388
22709
  var cv_toggle = __webpack_require__("f154");
22389
22710
 
22711
+ // EXTERNAL MODULE: ./src/components/cv-toggle/cv-toggle-skeleton.vue + 4 modules
22712
+ var cv_toggle_skeleton = __webpack_require__("68c3");
22713
+
22390
22714
  // CONCATENATED MODULE: ./src/components/cv-toggle/index.js
22391
22715
 
22392
22716
 
22393
22717
 
22718
+
22394
22719
  // EXTERNAL MODULE: ./src/components/cv-toolbar/cv-toolbar.vue + 4 modules
22395
22720
  var cv_toolbar = __webpack_require__("15ec");
22396
22721
 
@@ -22693,6 +23018,7 @@ const components = ctx.keys().map(ctx);
22693
23018
  /* concated harmony reexport CvTimePicker */__webpack_require__.d(__webpack_exports__, "CvTimePicker", function() { return cv_time_picker["default"]; });
22694
23019
  /* concated harmony reexport CvToastNotification */__webpack_require__.d(__webpack_exports__, "CvToastNotification", function() { return cv_toast_notification["default"]; });
22695
23020
  /* concated harmony reexport CvToggle */__webpack_require__.d(__webpack_exports__, "CvToggle", function() { return cv_toggle["default"]; });
23021
+ /* concated harmony reexport CvToggleSkeleton */__webpack_require__.d(__webpack_exports__, "CvToggleSkeleton", function() { return cv_toggle_skeleton["default"]; });
22696
23022
  /* concated harmony reexport CvToolbar */__webpack_require__.d(__webpack_exports__, "CvToolbar", function() { return cv_toolbar["default"]; });
22697
23023
  /* concated harmony reexport CvToolbarTitle */__webpack_require__.d(__webpack_exports__, "CvToolbarTitle", function() { return cv_toolbar_title["default"]; });
22698
23024
  /* concated harmony reexport CvToolbarSearch */__webpack_require__.d(__webpack_exports__, "CvToolbarSearch", function() { return cv_toolbar_search["default"]; });