@dialpad/dialtone-vue 2.16.0 → 2.17.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.
@@ -1186,6 +1186,7 @@ __webpack_require__.d(__webpack_exports__, {
1186
1186
  "TOOLTIP_DIRECTIONS": () => (/* reexport */ TOOLTIP_DIRECTIONS),
1187
1187
  "TOOLTIP_HIDE_ON_CLICK_VARIANTS": () => (/* reexport */ TOOLTIP_HIDE_ON_CLICK_VARIANTS),
1188
1188
  "TOOLTIP_KIND_MODIFIERS": () => (/* reexport */ TOOLTIP_KIND_MODIFIERS),
1189
+ "TOOLTIP_STICKY_VALUES": () => (/* reexport */ TOOLTIP_STICKY_VALUES),
1189
1190
  "USER_STATUS_COLOR_MODIFIERS": () => (/* reexport */ USER_STATUS_COLOR_MODIFIERS),
1190
1191
  "VALIDATION_MESSAGE_TYPES": () => (/* reexport */ VALIDATION_MESSAGE_TYPES),
1191
1192
  "codeToEmojiData": () => (/* reexport */ codeToEmojiData),
@@ -3252,9 +3253,9 @@ var button_group_component = normalizeComponent(
3252
3253
  ;// CONCATENATED MODULE: ./components/button_group/index.js
3253
3254
 
3254
3255
 
3255
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/combobox/combobox.vue?vue&type=template&id=0f032a37&
3256
- var comboboxvue_type_template_id_0f032a37_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.stopPropagation();return _vm.onKeyValidation($event, 'onEscapeKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.onKeyValidation($event, 'onEnterKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onUpKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onDownKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"home",undefined,$event.key,undefined)){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onHomeKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"end",undefined,$event.key,undefined)){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onEndKey')}]}},[_c('div',{attrs:{"data-qa":"dt-combobox-input-wrapper"}},[_vm._t("input",null,{"inputProps":_vm.inputProps})],2),(_vm.showList)?_c('div',{ref:"listWrapper",attrs:{"data-qa":"dt-combobox-list-wrapper"},on:{"mouseleave":_vm.clearHighlightIndex,"focusout":_vm.clearHighlightIndex,"!mousemove":function($event){return _vm.onMouseHighlight.apply(null, arguments)}}},[(_vm.loading)?_c('combobox-loading-list',_vm._b({},'combobox-loading-list',_vm.listProps,false)):_vm._t("list",null,{"listProps":_vm.listProps,"opened":_vm.onOpen,"clearHighlightIndex":_vm.clearHighlightIndex})],2):_vm._e()])}
3257
- var comboboxvue_type_template_id_0f032a37_staticRenderFns = []
3256
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/combobox/combobox.vue?vue&type=template&id=7535857e&
3257
+ var comboboxvue_type_template_id_7535857e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }$event.stopPropagation();return _vm.onKeyValidation($event, 'onEscapeKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.onKeyValidation($event, 'onEnterKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onUpKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onDownKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"home",undefined,$event.key,undefined)){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onHomeKey')},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"end",undefined,$event.key,undefined)){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.onKeyValidation($event, 'onEndKey')}]}},[_c('div',{attrs:{"data-qa":"dt-combobox-input-wrapper"}},[_vm._t("input",null,{"inputProps":_vm.inputProps})],2),(_vm.showList)?_c('div',{ref:"listWrapper",attrs:{"data-qa":"dt-combobox-list-wrapper"},on:{"mouseleave":_vm.clearHighlightIndex,"focusout":_vm.clearHighlightIndex,"!mousemove":function($event){return _vm.onMouseHighlight.apply(null, arguments)}}},[(_vm.isLoading && !_vm.listRenderedOutside)?_c('combobox-loading-list',_vm._b({},'combobox-loading-list',_vm.listProps,false)):(_vm.isListEmpty && !_vm.listRenderedOutside)?_c('combobox-empty-list',_vm._b({attrs:{"message":_vm.emptyStateMessage}},'combobox-empty-list',_vm.listProps,false)):_vm._t("list",null,{"listProps":_vm.listProps,"opened":_vm.onOpen,"clearHighlightIndex":_vm.clearHighlightIndex,"isLoading":_vm.isLoading,"isListEmpty":_vm.isListEmpty})],2):_vm._e()])}
3258
+ var comboboxvue_type_template_id_7535857e_staticRenderFns = []
3258
3259
 
3259
3260
 
3260
3261
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
@@ -3554,22 +3555,20 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3554
3555
  this.setHighlightIndex(this._itemsLength() - 1);
3555
3556
  },
3556
3557
 
3557
- async setHighlightIndex(num) {
3558
+ setHighlightIndex(num) {
3558
3559
  this[indexKey] = num;
3559
3560
  this[idKey] = this._getItemId(num);
3560
3561
 
3561
3562
  if (this._itemsLength() && afterHighlightMethod) {
3562
- await this.$nextTick();
3563
3563
  this[afterHighlightMethod](num);
3564
3564
  }
3565
3565
  },
3566
3566
 
3567
- async setHighlightId(id) {
3567
+ setHighlightId(id) {
3568
3568
  this[idKey] = id;
3569
3569
  this[indexKey] = this._getItemIndex(id);
3570
3570
 
3571
3571
  if (this._itemsLength() && afterHighlightMethod) {
3572
- await this.$nextTick();
3573
3572
  this[afterHighlightMethod](this._getItemIndex(id));
3574
3573
  }
3575
3574
  },
@@ -4711,6 +4710,62 @@ var combobox_loading_list_component = normalizeComponent(
4711
4710
  )
4712
4711
 
4713
4712
  /* harmony default export */ const combobox_loading_list = (combobox_loading_list_component.exports);
4713
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112&
4714
+ var combobox_empty_listvue_type_template_id_85c21112_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ol',{staticClass:"d-p0",attrs:{"data-qa":"dt-combobox-empty-list"}},[_c('dt-list-item',{staticClass:"d-d-flex d-jc-center",attrs:{"role":"option","navigation-type":"arrow-keys"}},[_c('span',[_vm._v(_vm._s(_vm.message))])])],1)}
4715
+ var combobox_empty_listvue_type_template_id_85c21112_staticRenderFns = []
4716
+
4717
+
4718
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-80[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js&
4719
+ //
4720
+ //
4721
+ //
4722
+ //
4723
+ //
4724
+ //
4725
+ //
4726
+ //
4727
+ //
4728
+ //
4729
+ //
4730
+ //
4731
+ //
4732
+ //
4733
+ //
4734
+
4735
+ /* harmony default export */ const combobox_empty_listvue_type_script_lang_js_ = ({
4736
+ name: 'ComboboxEmptyList',
4737
+ components: {
4738
+ DtListItem: list_item
4739
+ },
4740
+ props: {
4741
+ message: {
4742
+ type: String,
4743
+ required: true
4744
+ }
4745
+ }
4746
+ });
4747
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js&
4748
+ /* harmony default export */ const combobox_combobox_empty_listvue_type_script_lang_js_ = (combobox_empty_listvue_type_script_lang_js_);
4749
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue
4750
+
4751
+
4752
+
4753
+
4754
+
4755
+ /* normalize component */
4756
+ ;
4757
+ var combobox_empty_list_component = normalizeComponent(
4758
+ combobox_combobox_empty_listvue_type_script_lang_js_,
4759
+ combobox_empty_listvue_type_template_id_85c21112_render,
4760
+ combobox_empty_listvue_type_template_id_85c21112_staticRenderFns,
4761
+ false,
4762
+ null,
4763
+ null,
4764
+ null
4765
+
4766
+ )
4767
+
4768
+ /* harmony default export */ const combobox_empty_list = (combobox_empty_list_component.exports);
4714
4769
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-80[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/combobox/combobox.vue?vue&type=script&lang=js&
4715
4770
  //
4716
4771
  //
@@ -4752,13 +4807,22 @@ var combobox_loading_list_component = normalizeComponent(
4752
4807
  //
4753
4808
  //
4754
4809
  //
4810
+ //
4811
+ //
4812
+ //
4813
+ //
4814
+ //
4815
+ //
4816
+ //
4817
+
4755
4818
 
4756
4819
 
4757
4820
 
4758
4821
  /* harmony default export */ const comboboxvue_type_script_lang_js_ = ({
4759
4822
  name: 'DtCombobox',
4760
4823
  components: {
4761
- ComboboxLoadingList: combobox_loading_list
4824
+ ComboboxLoadingList: combobox_loading_list,
4825
+ ComboboxEmptyList: combobox_empty_list
4762
4826
  },
4763
4827
  mixins: [keyboard_list_navigation({
4764
4828
  indexKey: 'highlightIndex',
@@ -4829,6 +4893,14 @@ var combobox_loading_list_component = normalizeComponent(
4829
4893
  loading: {
4830
4894
  type: Boolean,
4831
4895
  default: false
4896
+ },
4897
+
4898
+ /**
4899
+ * Message to show when the list is empty
4900
+ */
4901
+ emptyStateMessage: {
4902
+ type: String,
4903
+ default: 'No matches found.'
4832
4904
  }
4833
4905
  },
4834
4906
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -4838,7 +4910,9 @@ var combobox_loading_list_component = normalizeComponent(
4838
4910
  // If the list is rendered at the root, rather than as a child
4839
4911
  // of this component, this is the ref to that dom element. Set
4840
4912
  // by the onOpen method.
4841
- outsideRenderedListRef: null
4913
+ outsideRenderedListRef: null,
4914
+ isListEmpty: undefined,
4915
+ isLoading: undefined
4842
4916
  };
4843
4917
  },
4844
4918
 
@@ -4889,20 +4963,35 @@ var combobox_loading_list_component = normalizeComponent(
4889
4963
  watch: {
4890
4964
  showList(showList) {
4891
4965
  // When the list's visibility changes reset the highlight index.
4892
- this.$nextTick(function () {
4893
- if (!this.listRenderedOutside) {
4894
- this.setInitialHighlightIndex();
4895
- this.$emit('opened', showList);
4896
- }
4897
- });
4966
+ if (!this.listRenderedOutside) {
4967
+ this.setInitialHighlightIndex();
4968
+ this.$emit('opened', showList);
4969
+ }
4898
4970
 
4899
4971
  if (!showList && this.outsideRenderedListRef) {
4900
4972
  this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);
4901
4973
  this.outsideRenderedListRef = null;
4974
+ this.isListEmpty = undefined;
4902
4975
  }
4976
+ },
4977
+
4978
+ loading(isLoading) {
4979
+ this.isListEmpty = undefined;
4980
+ this.isLoading = isLoading;
4981
+ this.$nextTick(() => {
4982
+ this.isListEmpty = this.checkItemsLength();
4983
+ this.setInitialHighlightIndex();
4984
+ });
4903
4985
  }
4904
4986
 
4905
4987
  },
4988
+
4989
+ async mounted() {
4990
+ this.isLoading = this.loading;
4991
+ await this.$nextTick();
4992
+ this.isListEmpty = this.checkItemsLength();
4993
+ },
4994
+
4906
4995
  methods: {
4907
4996
  onMouseHighlight(e) {
4908
4997
  if (this.loading) return;
@@ -4914,9 +5003,9 @@ var combobox_loading_list_component = normalizeComponent(
4914
5003
  },
4915
5004
 
4916
5005
  getListElement() {
4917
- var _this$outsideRendered;
5006
+ var _this$outsideRendered, _this$$refs$listWrapp;
4918
5007
 
4919
- return (_this$outsideRendered = this.outsideRenderedListRef) !== null && _this$outsideRendered !== void 0 ? _this$outsideRendered : this.$refs.listWrapper.querySelector("#".concat(this.listId));
5008
+ return (_this$outsideRendered = this.outsideRenderedListRef) !== null && _this$outsideRendered !== void 0 ? _this$outsideRendered : (_this$$refs$listWrapp = this.$refs.listWrapper) === null || _this$$refs$listWrapp === void 0 ? void 0 : _this$$refs$listWrapp.querySelector("#".concat(this.listId));
4920
5009
  },
4921
5010
 
4922
5011
  clearHighlightIndex() {
@@ -4931,7 +5020,7 @@ var combobox_loading_list_component = normalizeComponent(
4931
5020
  },
4932
5021
 
4933
5022
  onEnterKey() {
4934
- if (this.loading) return;
5023
+ if (this.loading || this.isListEmpty) return;
4935
5024
 
4936
5025
  if (this.highlightIndex >= 0) {
4937
5026
  this.$emit('select', this.highlightIndex);
@@ -4950,24 +5039,30 @@ var combobox_loading_list_component = normalizeComponent(
4950
5039
  this.$emit('opened', open);
4951
5040
 
4952
5041
  if (open) {
5042
+ this.isListEmpty = this.checkItemsLength();
4953
5043
  this.setInitialHighlightIndex();
4954
5044
  }
4955
5045
  },
4956
5046
 
4957
5047
  onKeyValidation(e, eventHandler) {
4958
- if (!this.showList || !this.getListElement()) {
4959
- return;
4960
- }
4961
-
5048
+ if (!this.showList || !this.getListElement()) return;
4962
5049
  this[eventHandler](e);
4963
5050
  },
4964
5051
 
4965
5052
  setInitialHighlightIndex() {
4966
- if (this.showList) {
5053
+ if (!this.showList) return;
5054
+ this.$nextTick(() => {
4967
5055
  // When the list's is shown, reset the highlight index.
4968
5056
  // If the list is loading, set to -1
4969
5057
  this.setHighlightIndex(this.loading ? -1 : 0);
4970
- }
5058
+ });
5059
+ },
5060
+
5061
+ checkItemsLength() {
5062
+ if (!this.showList) return undefined;
5063
+ const list = this.getListElement();
5064
+ const options = list === null || list === void 0 ? void 0 : list.querySelectorAll("[role=\"option\"]");
5065
+ return (options === null || options === void 0 ? void 0 : options.length) === 0;
4971
5066
  }
4972
5067
 
4973
5068
  }
@@ -4984,8 +5079,8 @@ var combobox_loading_list_component = normalizeComponent(
4984
5079
  ;
4985
5080
  var combobox_component = normalizeComponent(
4986
5081
  combobox_comboboxvue_type_script_lang_js_,
4987
- comboboxvue_type_template_id_0f032a37_render,
4988
- comboboxvue_type_template_id_0f032a37_staticRenderFns,
5082
+ comboboxvue_type_template_id_7535857e_render,
5083
+ comboboxvue_type_template_id_7535857e_staticRenderFns,
4989
5084
  false,
4990
5085
  null,
4991
5086
  null,
@@ -5005,8 +5100,8 @@ return [_c('ul',{ref:"listWrapper",class:['d-ps-relative', 'd-px0', _vm.DROPDOWN
5005
5100
  var dropdownvue_type_template_id_02d3f006_staticRenderFns = []
5006
5101
 
5007
5102
 
5008
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=97535496&
5009
- var popovervue_type_template_id_97535496_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--modal-opened': _vm.modal && _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor"},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"wheel":function (e) { return (_vm.isOpen && _vm.modal) && e.preventDefault(); },"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
5103
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=9802b6fc&
5104
+ var popovervue_type_template_id_9802b6fc_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--modal-opened': _vm.modal && _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor"},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"wheel":function (e) { return (_vm.isOpen && _vm.modal) && e.preventDefault(); },"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
5010
5105
  'aria-expanded': _vm.isOpen.toString(),
5011
5106
  'aria-controls': _vm.id,
5012
5107
  'aria-haspopup': _vm.role,
@@ -5017,7 +5112,7 @@ var popovervue_type_template_id_97535496_render = function () {var _vm=this;var
5017
5112
  'd-popover__content',
5018
5113
  _vm.POPOVER_PADDING_CLASSES[_vm.padding],
5019
5114
  _vm.contentClass ],attrs:{"data-qa":"dt-popover-content"}},[_vm._t("content",null,{"close":_vm.closePopover})],2),(_vm.$slots.footerContent)?_c('popover-header-footer',{ref:"popover__footer",class:_vm.POPOVER_HEADER_FOOTER_PADDING_CLASSES[_vm.padding],attrs:{"type":"footer","content-class":_vm.footerClass},scopedSlots:_vm._u([{key:"content",fn:function(){return [_vm._t("footerContent",null,{"close":_vm.closePopover})]},proxy:true}],null,true)}):_vm._e()],1)],1)],1)}
5020
- var popovervue_type_template_id_97535496_staticRenderFns = []
5115
+ var popovervue_type_template_id_9802b6fc_staticRenderFns = []
5021
5116
 
5022
5117
 
5023
5118
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
@@ -9420,6 +9515,7 @@ const getArrowDetected = fn => ({
9420
9515
 
9421
9516
 
9422
9517
  const BASE_TIPPY_DIRECTIONS = ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'];
9518
+ const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];
9423
9519
  const tippy_utils_createTippy = (anchorElement, options) => {
9424
9520
  const {
9425
9521
  contentElement
@@ -9427,6 +9523,7 @@ const tippy_utils_createTippy = (anchorElement, options) => {
9427
9523
  };
9428
9524
  delete options.contentElement;
9429
9525
  return tippy_esm(anchorElement, { ...options,
9526
+ plugins: [sticky],
9430
9527
  render: () => getContentWrapper(contentElement)
9431
9528
  });
9432
9529
  };
@@ -9441,7 +9538,7 @@ const getPopperOptions = function () {
9441
9538
  modifiers: [{
9442
9539
  name: 'flip',
9443
9540
  options: {
9444
- fallbackPlacements: fallbackPlacements,
9541
+ fallbackPlacements,
9445
9542
  boundary
9446
9543
  }
9447
9544
  }, {
@@ -9502,6 +9599,7 @@ const POPOVER_HEADER_FOOTER_PADDING_CLASSES = {
9502
9599
  const POPOVER_ROLES = ['dialog', 'menu', 'listbox', 'tree', 'grid'];
9503
9600
  const POPOVER_CONTENT_WIDTHS = [null, 'anchor'];
9504
9601
  const POPOVER_INITIAL_FOCUS_STRINGS = ['none', 'dialog', 'first'];
9602
+ const POPOVER_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
9505
9603
  const POPOVER_DIRECTIONS = [...BASE_TIPPY_DIRECTIONS];
9506
9604
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/lazy_show/lazy_show.vue?vue&type=template&id=9ffa4e8c&
9507
9605
  var lazy_showvue_type_template_id_9ffa4e8c_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',_vm._g({attrs:{"name":_vm.transition,"appear":_vm.appear}},_vm.$listeners),[_c('div',_vm._g({directives:[{name:"show",rawName:"v-show",value:(_vm.show),expression:"show"}]},_vm.$listeners),[(_vm.initialized)?_vm._t("default"):_vm._e()],2)])}
@@ -10221,6 +10319,21 @@ var popover_header_footer_component = normalizeComponent(
10221
10319
  default: 'bottom-end'
10222
10320
  },
10223
10321
 
10322
+ /**
10323
+ * If the popover sticks to the anchor. This is usually not needed, but can be needed
10324
+ * if the reference element's position is animating, or to automatically update the popover
10325
+ * position in those cases the DOM layout changes the reference element's position.
10326
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
10327
+ * checks the "popper" rect for changes.
10328
+ */
10329
+ sticky: {
10330
+ type: [Boolean, String],
10331
+ default: false,
10332
+ validator: sticky => {
10333
+ return POPOVER_STICKY_VALUES.includes(sticky);
10334
+ }
10335
+ },
10336
+
10224
10337
  /**
10225
10338
  * Determines maximum height for the popover before overflow.
10226
10339
  * Possible units rem|px|em
@@ -10334,14 +10447,20 @@ var popover_header_footer_component = normalizeComponent(
10334
10447
 
10335
10448
  offset(offset) {
10336
10449
  this.tip.setProps({
10337
- offset: offset
10450
+ offset
10451
+ });
10452
+ },
10453
+
10454
+ sticky(sticky) {
10455
+ this.tip.setProps({
10456
+ sticky
10338
10457
  });
10339
10458
  },
10340
10459
 
10341
10460
  fallbackPlacements(fallbackPlacements) {
10342
10461
  this.tip.setProps({
10343
10462
  popperOptions: getPopperOptions({
10344
- fallbackPlacements: fallbackPlacements,
10463
+ fallbackPlacements,
10345
10464
  hasHideModifierEnabled: true
10346
10465
  })
10347
10466
  });
@@ -10394,6 +10513,7 @@ var popover_header_footer_component = normalizeComponent(
10394
10513
  contentElement: this.popoverContentEl,
10395
10514
  placement: this.placement,
10396
10515
  offset: this.offset,
10516
+ sticky: this.sticky,
10397
10517
  appendTo: document.body,
10398
10518
  interactive: true,
10399
10519
  trigger: 'manual',
@@ -10615,8 +10735,8 @@ var popovervue_type_style_index_0_lang_less_ = __webpack_require__(532);
10615
10735
 
10616
10736
  var popover_component = normalizeComponent(
10617
10737
  popover_popovervue_type_script_lang_js_,
10618
- popovervue_type_template_id_97535496_render,
10619
- popovervue_type_template_id_97535496_staticRenderFns,
10738
+ popovervue_type_template_id_9802b6fc_render,
10739
+ popovervue_type_template_id_9802b6fc_staticRenderFns,
10620
10740
  false,
10621
10741
  null,
10622
10742
  null,
@@ -15744,15 +15864,15 @@ var toggle_component = normalizeComponent(
15744
15864
  /* harmony default export */ const toggle = (toggle_component.exports);
15745
15865
  ;// CONCATENATED MODULE: ./components/toggle/index.js
15746
15866
 
15747
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/tooltip/tooltip.vue?vue&type=template&id=06e65b4f&
15748
- var tooltipvue_type_template_id_06e65b4f_render = function () {
15867
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/tooltip/tooltip.vue?vue&type=template&id=662e4cf7&
15868
+ var tooltipvue_type_template_id_662e4cf7_render = function () {
15749
15869
  var _obj;
15750
15870
  var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{"data-qa":"dt-tooltip-container"}},[_c('div',{ref:"anchor",attrs:{"data-qa":"dt-tooltip-anchor"},on:{"focusin":_vm.onEnterAnchor,"focusout":_vm.onLeaveAnchor,"mouseenter":_vm.onEnterAnchor,"mouseleave":_vm.onLeaveAnchor,"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }return _vm.onLeaveAnchor.apply(null, arguments)}}},[_vm._t("anchor")],2),_c('dt-lazy-show',{ref:"content",class:[
15751
15871
  'd-tooltip',
15752
15872
  ("d-tooltip__arrow-tippy--" + _vm.currentPlacement),
15753
15873
  ( _obj = {}, _obj[ _vm.TOOLTIP_KIND_MODIFIERS.inverted ] = _vm.inverted, _obj ),
15754
15874
  _vm.contentClass ],attrs:{"id":_vm.id,"show":_vm.isShown && (!!_vm.message.trim() || !!_vm.$slots.default),"role":"tooltip","aria-hidden":"false","data-qa":"dt-tooltip","appear":"","transition":_vm.transition},on:{"after-leave":_vm.onLeaveTransitionComplete,"after-enter":_vm.onEnterTransitionComplete}},[_vm._t("default",function(){return [_vm._v(" "+_vm._s(_vm.message)+" ")]})],2)],1)}
15755
- var tooltipvue_type_template_id_06e65b4f_staticRenderFns = []
15875
+ var tooltipvue_type_template_id_662e4cf7_staticRenderFns = []
15756
15876
 
15757
15877
 
15758
15878
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip_constants.js
@@ -15767,6 +15887,7 @@ const TOOLTIP_KIND_MODIFIERS = {
15767
15887
  inverted: "d-tooltip--inverted",
15768
15888
  hide: "d-tooltip--hide"
15769
15889
  };
15890
+ const TOOLTIP_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
15770
15891
  const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15771
15892
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-80[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/tooltip/tooltip.vue?vue&type=script&lang=js&
15772
15893
  //
@@ -15876,6 +15997,21 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15876
15997
 
15877
15998
  },
15878
15999
 
16000
+ /**
16001
+ * If the tooltip sticks to the anchor. This is usually not needed, but can be needed
16002
+ * if the reference element's position is animating, or to automatically update the popover
16003
+ * position in those cases the DOM layout changes the reference element's position.
16004
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
16005
+ * checks the "popper" rect for changes.
16006
+ */
16007
+ sticky: {
16008
+ type: [Boolean, String],
16009
+ default: false,
16010
+ validator: sticky => {
16011
+ return TOOLTIP_STICKY_VALUES.includes(sticky);
16012
+ }
16013
+ },
16014
+
15879
16015
  /**
15880
16016
  * Additional css classes for the tooltip content element.
15881
16017
  * Can accept all of String, Object, and Array, i.e. has the
@@ -15937,6 +16073,7 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15937
16073
  interactive: false,
15938
16074
  trigger: 'manual',
15939
16075
  placement: this.placement,
16076
+ sticky: this.sticky,
15940
16077
  popperOptions: getPopperOptions({
15941
16078
  fallbackPlacements: this.fallbackPlacements,
15942
16079
  hasHideModifierEnabled: true,
@@ -15967,6 +16104,12 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15967
16104
  } else {
15968
16105
  this.tip.hide();
15969
16106
  }
16107
+ },
16108
+
16109
+ sticky(sticky) {
16110
+ this.tip.setProps({
16111
+ sticky
16112
+ });
15970
16113
  }
15971
16114
 
15972
16115
  },
@@ -16087,8 +16230,8 @@ var tooltipvue_type_style_index_0_lang_less_ = __webpack_require__(228);
16087
16230
 
16088
16231
  var tooltip_component = normalizeComponent(
16089
16232
  tooltip_tooltipvue_type_script_lang_js_,
16090
- tooltipvue_type_template_id_06e65b4f_render,
16091
- tooltipvue_type_template_id_06e65b4f_staticRenderFns,
16233
+ tooltipvue_type_template_id_662e4cf7_render,
16234
+ tooltipvue_type_template_id_662e4cf7_staticRenderFns,
16092
16235
  false,
16093
16236
  null,
16094
16237
  null,
@@ -16723,15 +16866,17 @@ var root_layout_component = normalizeComponent(
16723
16866
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
16724
16867
 
16725
16868
 
16726
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=0ce1b850&
16727
- var combobox_with_popovervue_type_template_id_0ce1b850_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-combobox',_vm._g({ref:"combobox",attrs:{"show-list":_vm.isListShown,"on-beginning-of-list":_vm.onBeginningOfList,"on-end-of-list":_vm.onEndOfList,"list-aria-label":_vm.listAriaLabel,"list-rendered-outside":true,"list-id":_vm.listId,"data-qa":"dt-combobox"},scopedSlots:_vm._u([{key:"input",fn:function(ref){
16869
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=65a49163&
16870
+ var combobox_with_popovervue_type_template_id_65a49163_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-combobox',_vm._g({ref:"combobox",attrs:{"loading":_vm.loading,"show-list":_vm.isListShown,"on-beginning-of-list":_vm.onBeginningOfList,"on-end-of-list":_vm.onEndOfList,"list-aria-label":_vm.listAriaLabel,"list-rendered-outside":true,"list-id":_vm.listId,"data-qa":"dt-combobox"},scopedSlots:_vm._u([{key:"input",fn:function(ref){
16728
16871
  var inputProps = ref.inputProps;
16729
16872
  return [_c('div',{ref:"input",attrs:{"id":_vm.externalAnchor},on:{"focusin":_vm.onFocusIn,"focusout":_vm.onFocusOut,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }return _vm.openOnArrowKeyPress($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }return _vm.openOnArrowKeyPress($event)}]}},[_vm._t("input",null,{"inputProps":inputProps,"onInput":_vm.handleDisplayList})],2)]}},{key:"list",fn:function(ref){
16730
16873
  var opened = ref.opened;
16731
16874
  var listProps = ref.listProps;
16732
16875
  var clearHighlightIndex = ref.clearHighlightIndex;
16733
- return [_c('dt-popover',{ref:"popover",attrs:{"open":_vm.isListShown,"hide-on-click":true,"max-height":_vm.maxHeight,"max-width":_vm.maxWidth,"offset":_vm.popoverOffset,"placement":"bottom-start","padding":"none","role":"listbox","external-anchor":_vm.externalAnchor,"content-width":_vm.contentWidth,"content-tabindex":null,"modal":false,"auto-focus":false},on:{"update:open":function($event){_vm.isListShown=$event},"opened":function($event){return opened($event, arguments[1]);}},scopedSlots:_vm._u([{key:"headerContent",fn:function(){return [(_vm.$slots.header)?_c('div',{ref:"header",on:{"focusout":_vm.onFocusOut}},[_vm._t("header")],2):_vm._e()]},proxy:true},{key:"content",fn:function(){return [_c('div',{ref:"listWrapper",class:[_vm.DROPDOWN_PADDING_CLASSES[_vm.padding], _vm.listClass],on:{"mouseleave":clearHighlightIndex,"focusout":function($event){clearHighlightIndex; _vm.onFocusOut;}}},[(_vm.loading)?_c('combobox-loading-list',_vm._b({class:[_vm.DROPDOWN_PADDING_CLASSES[_vm.padding], _vm.listClass]},'combobox-loading-list',listProps,false)):_vm._t("list",null,{"listProps":listProps})],2)]},proxy:true},{key:"footerContent",fn:function(){return [(_vm.$slots.footer)?_c('div',{ref:"footer",on:{"focusout":_vm.onFocusOut}},[_vm._t("footer")],2):_vm._e()]},proxy:true}],null,true)})]}}],null,true)},_vm.comboboxListeners))}
16734
- var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16876
+ var isLoading = ref.isLoading;
16877
+ var isListEmpty = ref.isListEmpty;
16878
+ return [_c('dt-popover',{ref:"popover",attrs:{"open":_vm.isListShown,"hide-on-click":_vm.showList === null,"max-height":_vm.maxHeight,"max-width":_vm.maxWidth,"offset":_vm.popoverOffset,"sticky":_vm.popoverSticky,"placement":"bottom-start","padding":"none","role":"listbox","external-anchor":_vm.externalAnchor,"content-width":_vm.contentWidth,"content-tabindex":null,"modal":false,"auto-focus":false},on:{"update:open":function($event){_vm.isListShown=$event},"opened":function($event){return opened($event, arguments[1]);}},scopedSlots:_vm._u([{key:"headerContent",fn:function(){return [(_vm.$slots.header)?_c('div',{ref:"header",on:{"focusout":_vm.onFocusOut}},[_vm._t("header")],2):_vm._e()]},proxy:true},{key:"content",fn:function(){return [_c('div',{ref:"listWrapper",class:[_vm.DROPDOWN_PADDING_CLASSES[_vm.padding], _vm.listClass],on:{"mouseleave":clearHighlightIndex,"focusout":function($event){clearHighlightIndex; _vm.onFocusOut;}}},[(isListEmpty)?_c('combobox-empty-list',_vm._b({attrs:{"message":_vm.emptyStateMessage}},'combobox-empty-list',listProps,false)):(isLoading)?_c('combobox-loading-list',_vm._b({},'combobox-loading-list',listProps,false)):_vm._t("list",null,{"listProps":listProps})],2)]},proxy:true},{key:"footerContent",fn:function(){return [(_vm.$slots.footer)?_c('div',{ref:"footer",on:{"focusout":_vm.onFocusOut}},[_vm._t("footer")],2):_vm._e()]},proxy:true}],null,true)})]}}],null,true)},_vm.comboboxListeners))}
16879
+ var combobox_with_popovervue_type_template_id_65a49163_staticRenderFns = []
16735
16880
 
16736
16881
 
16737
16882
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-80[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js&
@@ -16827,6 +16972,13 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16827
16972
  //
16828
16973
  //
16829
16974
  //
16975
+ //
16976
+ //
16977
+ //
16978
+ //
16979
+ //
16980
+ //
16981
+
16830
16982
 
16831
16983
 
16832
16984
 
@@ -16836,7 +16988,8 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16836
16988
  components: {
16837
16989
  DtCombobox: combobox,
16838
16990
  DtPopover: popover,
16839
- ComboboxLoadingList: combobox_loading_list
16991
+ ComboboxLoadingList: combobox_loading_list,
16992
+ ComboboxEmptyList: combobox_empty_list
16840
16993
  },
16841
16994
  props: {
16842
16995
  /**
@@ -16952,6 +17105,14 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16952
17105
  default: () => [0, 4]
16953
17106
  },
16954
17107
 
17108
+ /**
17109
+ * If the popover sticks to the input.
17110
+ */
17111
+ popoverSticky: {
17112
+ type: [Boolean, String],
17113
+ default: false
17114
+ },
17115
+
16955
17116
  /**
16956
17117
  * Displays the list when the combobox is focused, before the user has typed anything.
16957
17118
  * When this is enabled the list will not close after selection.
@@ -16967,6 +17128,14 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16967
17128
  loading: {
16968
17129
  type: Boolean,
16969
17130
  default: false
17131
+ },
17132
+
17133
+ /**
17134
+ * Message to show when the list is empty
17135
+ */
17136
+ emptyStateMessage: {
17137
+ type: String,
17138
+ default: 'No matches found.'
16970
17139
  }
16971
17140
  },
16972
17141
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -17007,13 +17176,7 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
17007
17176
 
17008
17177
  },
17009
17178
  methods: {
17010
- async handleDisplayList(value) {
17011
- if (this.isListShown) {
17012
- // After the list is updated, hightlight the first item
17013
- await this.$nextTick();
17014
- this.$refs.combobox.setInitialHighlightIndex();
17015
- }
17016
-
17179
+ handleDisplayList(value) {
17017
17180
  if (!this.hasSuggestionList) {
17018
17181
  if (value) {
17019
17182
  // Displays the list after the user has typed anything
@@ -17107,8 +17270,8 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
17107
17270
  ;
17108
17271
  var combobox_with_popover_component = normalizeComponent(
17109
17272
  combobox_with_popover_combobox_with_popovervue_type_script_lang_js_,
17110
- combobox_with_popovervue_type_template_id_0ce1b850_render,
17111
- combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns,
17273
+ combobox_with_popovervue_type_template_id_65a49163_render,
17274
+ combobox_with_popovervue_type_template_id_65a49163_staticRenderFns,
17112
17275
  false,
17113
17276
  null,
17114
17277
  null,