@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.
@@ -1168,6 +1168,7 @@ __webpack_require__.d(__webpack_exports__, {
1168
1168
  "TOOLTIP_DIRECTIONS": () => (/* reexport */ TOOLTIP_DIRECTIONS),
1169
1169
  "TOOLTIP_HIDE_ON_CLICK_VARIANTS": () => (/* reexport */ TOOLTIP_HIDE_ON_CLICK_VARIANTS),
1170
1170
  "TOOLTIP_KIND_MODIFIERS": () => (/* reexport */ TOOLTIP_KIND_MODIFIERS),
1171
+ "TOOLTIP_STICKY_VALUES": () => (/* reexport */ TOOLTIP_STICKY_VALUES),
1171
1172
  "USER_STATUS_COLOR_MODIFIERS": () => (/* reexport */ USER_STATUS_COLOR_MODIFIERS),
1172
1173
  "VALIDATION_MESSAGE_TYPES": () => (/* reexport */ VALIDATION_MESSAGE_TYPES),
1173
1174
  "codeToEmojiData": () => (/* reexport */ codeToEmojiData),
@@ -3234,9 +3235,9 @@ var button_group_component = normalizeComponent(
3234
3235
  ;// CONCATENATED MODULE: ./components/button_group/index.js
3235
3236
 
3236
3237
 
3237
- ;// 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&
3238
- 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()])}
3239
- var comboboxvue_type_template_id_0f032a37_staticRenderFns = []
3238
+ ;// 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&
3239
+ 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()])}
3240
+ var comboboxvue_type_template_id_7535857e_staticRenderFns = []
3240
3241
 
3241
3242
 
3242
3243
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
@@ -3536,22 +3537,20 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3536
3537
  this.setHighlightIndex(this._itemsLength() - 1);
3537
3538
  },
3538
3539
 
3539
- async setHighlightIndex(num) {
3540
+ setHighlightIndex(num) {
3540
3541
  this[indexKey] = num;
3541
3542
  this[idKey] = this._getItemId(num);
3542
3543
 
3543
3544
  if (this._itemsLength() && afterHighlightMethod) {
3544
- await this.$nextTick();
3545
3545
  this[afterHighlightMethod](num);
3546
3546
  }
3547
3547
  },
3548
3548
 
3549
- async setHighlightId(id) {
3549
+ setHighlightId(id) {
3550
3550
  this[idKey] = id;
3551
3551
  this[indexKey] = this._getItemIndex(id);
3552
3552
 
3553
3553
  if (this._itemsLength() && afterHighlightMethod) {
3554
- await this.$nextTick();
3555
3554
  this[afterHighlightMethod](this._getItemIndex(id));
3556
3555
  }
3557
3556
  },
@@ -4693,6 +4692,62 @@ var combobox_loading_list_component = normalizeComponent(
4693
4692
  )
4694
4693
 
4695
4694
  /* harmony default export */ const combobox_loading_list = (combobox_loading_list_component.exports);
4695
+ ;// 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&
4696
+ 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)}
4697
+ var combobox_empty_listvue_type_template_id_85c21112_staticRenderFns = []
4698
+
4699
+
4700
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40[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&
4701
+ //
4702
+ //
4703
+ //
4704
+ //
4705
+ //
4706
+ //
4707
+ //
4708
+ //
4709
+ //
4710
+ //
4711
+ //
4712
+ //
4713
+ //
4714
+ //
4715
+ //
4716
+
4717
+ /* harmony default export */ const combobox_empty_listvue_type_script_lang_js_ = ({
4718
+ name: 'ComboboxEmptyList',
4719
+ components: {
4720
+ DtListItem: list_item
4721
+ },
4722
+ props: {
4723
+ message: {
4724
+ type: String,
4725
+ required: true
4726
+ }
4727
+ }
4728
+ });
4729
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js&
4730
+ /* harmony default export */ const combobox_combobox_empty_listvue_type_script_lang_js_ = (combobox_empty_listvue_type_script_lang_js_);
4731
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue
4732
+
4733
+
4734
+
4735
+
4736
+
4737
+ /* normalize component */
4738
+ ;
4739
+ var combobox_empty_list_component = normalizeComponent(
4740
+ combobox_combobox_empty_listvue_type_script_lang_js_,
4741
+ combobox_empty_listvue_type_template_id_85c21112_render,
4742
+ combobox_empty_listvue_type_template_id_85c21112_staticRenderFns,
4743
+ false,
4744
+ null,
4745
+ null,
4746
+ null
4747
+
4748
+ )
4749
+
4750
+ /* harmony default export */ const combobox_empty_list = (combobox_empty_list_component.exports);
4696
4751
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40[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&
4697
4752
  //
4698
4753
  //
@@ -4734,13 +4789,22 @@ var combobox_loading_list_component = normalizeComponent(
4734
4789
  //
4735
4790
  //
4736
4791
  //
4792
+ //
4793
+ //
4794
+ //
4795
+ //
4796
+ //
4797
+ //
4798
+ //
4799
+
4737
4800
 
4738
4801
 
4739
4802
 
4740
4803
  /* harmony default export */ const comboboxvue_type_script_lang_js_ = ({
4741
4804
  name: 'DtCombobox',
4742
4805
  components: {
4743
- ComboboxLoadingList: combobox_loading_list
4806
+ ComboboxLoadingList: combobox_loading_list,
4807
+ ComboboxEmptyList: combobox_empty_list
4744
4808
  },
4745
4809
  mixins: [keyboard_list_navigation({
4746
4810
  indexKey: 'highlightIndex',
@@ -4811,6 +4875,14 @@ var combobox_loading_list_component = normalizeComponent(
4811
4875
  loading: {
4812
4876
  type: Boolean,
4813
4877
  default: false
4878
+ },
4879
+
4880
+ /**
4881
+ * Message to show when the list is empty
4882
+ */
4883
+ emptyStateMessage: {
4884
+ type: String,
4885
+ default: 'No matches found.'
4814
4886
  }
4815
4887
  },
4816
4888
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -4820,7 +4892,9 @@ var combobox_loading_list_component = normalizeComponent(
4820
4892
  // If the list is rendered at the root, rather than as a child
4821
4893
  // of this component, this is the ref to that dom element. Set
4822
4894
  // by the onOpen method.
4823
- outsideRenderedListRef: null
4895
+ outsideRenderedListRef: null,
4896
+ isListEmpty: undefined,
4897
+ isLoading: undefined
4824
4898
  };
4825
4899
  },
4826
4900
 
@@ -4871,20 +4945,35 @@ var combobox_loading_list_component = normalizeComponent(
4871
4945
  watch: {
4872
4946
  showList(showList) {
4873
4947
  // When the list's visibility changes reset the highlight index.
4874
- this.$nextTick(function () {
4875
- if (!this.listRenderedOutside) {
4876
- this.setInitialHighlightIndex();
4877
- this.$emit('opened', showList);
4878
- }
4879
- });
4948
+ if (!this.listRenderedOutside) {
4949
+ this.setInitialHighlightIndex();
4950
+ this.$emit('opened', showList);
4951
+ }
4880
4952
 
4881
4953
  if (!showList && this.outsideRenderedListRef) {
4882
4954
  this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);
4883
4955
  this.outsideRenderedListRef = null;
4956
+ this.isListEmpty = undefined;
4884
4957
  }
4958
+ },
4959
+
4960
+ loading(isLoading) {
4961
+ this.isListEmpty = undefined;
4962
+ this.isLoading = isLoading;
4963
+ this.$nextTick(() => {
4964
+ this.isListEmpty = this.checkItemsLength();
4965
+ this.setInitialHighlightIndex();
4966
+ });
4885
4967
  }
4886
4968
 
4887
4969
  },
4970
+
4971
+ async mounted() {
4972
+ this.isLoading = this.loading;
4973
+ await this.$nextTick();
4974
+ this.isListEmpty = this.checkItemsLength();
4975
+ },
4976
+
4888
4977
  methods: {
4889
4978
  onMouseHighlight(e) {
4890
4979
  if (this.loading) return;
@@ -4896,9 +4985,9 @@ var combobox_loading_list_component = normalizeComponent(
4896
4985
  },
4897
4986
 
4898
4987
  getListElement() {
4899
- var _this$outsideRendered;
4988
+ var _this$outsideRendered, _this$$refs$listWrapp;
4900
4989
 
4901
- return (_this$outsideRendered = this.outsideRenderedListRef) !== null && _this$outsideRendered !== void 0 ? _this$outsideRendered : this.$refs.listWrapper.querySelector("#".concat(this.listId));
4990
+ 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));
4902
4991
  },
4903
4992
 
4904
4993
  clearHighlightIndex() {
@@ -4913,7 +5002,7 @@ var combobox_loading_list_component = normalizeComponent(
4913
5002
  },
4914
5003
 
4915
5004
  onEnterKey() {
4916
- if (this.loading) return;
5005
+ if (this.loading || this.isListEmpty) return;
4917
5006
 
4918
5007
  if (this.highlightIndex >= 0) {
4919
5008
  this.$emit('select', this.highlightIndex);
@@ -4932,24 +5021,30 @@ var combobox_loading_list_component = normalizeComponent(
4932
5021
  this.$emit('opened', open);
4933
5022
 
4934
5023
  if (open) {
5024
+ this.isListEmpty = this.checkItemsLength();
4935
5025
  this.setInitialHighlightIndex();
4936
5026
  }
4937
5027
  },
4938
5028
 
4939
5029
  onKeyValidation(e, eventHandler) {
4940
- if (!this.showList || !this.getListElement()) {
4941
- return;
4942
- }
4943
-
5030
+ if (!this.showList || !this.getListElement()) return;
4944
5031
  this[eventHandler](e);
4945
5032
  },
4946
5033
 
4947
5034
  setInitialHighlightIndex() {
4948
- if (this.showList) {
5035
+ if (!this.showList) return;
5036
+ this.$nextTick(() => {
4949
5037
  // When the list's is shown, reset the highlight index.
4950
5038
  // If the list is loading, set to -1
4951
5039
  this.setHighlightIndex(this.loading ? -1 : 0);
4952
- }
5040
+ });
5041
+ },
5042
+
5043
+ checkItemsLength() {
5044
+ if (!this.showList) return undefined;
5045
+ const list = this.getListElement();
5046
+ const options = list === null || list === void 0 ? void 0 : list.querySelectorAll("[role=\"option\"]");
5047
+ return (options === null || options === void 0 ? void 0 : options.length) === 0;
4953
5048
  }
4954
5049
 
4955
5050
  }
@@ -4966,8 +5061,8 @@ var combobox_loading_list_component = normalizeComponent(
4966
5061
  ;
4967
5062
  var combobox_component = normalizeComponent(
4968
5063
  combobox_comboboxvue_type_script_lang_js_,
4969
- comboboxvue_type_template_id_0f032a37_render,
4970
- comboboxvue_type_template_id_0f032a37_staticRenderFns,
5064
+ comboboxvue_type_template_id_7535857e_render,
5065
+ comboboxvue_type_template_id_7535857e_staticRenderFns,
4971
5066
  false,
4972
5067
  null,
4973
5068
  null,
@@ -4987,8 +5082,8 @@ return [_c('ul',{ref:"listWrapper",class:['d-ps-relative', 'd-px0', _vm.DROPDOWN
4987
5082
  var dropdownvue_type_template_id_02d3f006_staticRenderFns = []
4988
5083
 
4989
5084
 
4990
- ;// 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&
4991
- 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":{
5085
+ ;// 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&
5086
+ 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":{
4992
5087
  'aria-expanded': _vm.isOpen.toString(),
4993
5088
  'aria-controls': _vm.id,
4994
5089
  'aria-haspopup': _vm.role,
@@ -4999,7 +5094,7 @@ var popovervue_type_template_id_97535496_render = function () {var _vm=this;var
4999
5094
  'd-popover__content',
5000
5095
  _vm.POPOVER_PADDING_CLASSES[_vm.padding],
5001
5096
  _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)}
5002
- var popovervue_type_template_id_97535496_staticRenderFns = []
5097
+ var popovervue_type_template_id_9802b6fc_staticRenderFns = []
5003
5098
 
5004
5099
 
5005
5100
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
@@ -9402,6 +9497,7 @@ const getArrowDetected = fn => ({
9402
9497
 
9403
9498
 
9404
9499
  const BASE_TIPPY_DIRECTIONS = ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'];
9500
+ const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];
9405
9501
  const tippy_utils_createTippy = (anchorElement, options) => {
9406
9502
  const {
9407
9503
  contentElement
@@ -9409,6 +9505,7 @@ const tippy_utils_createTippy = (anchorElement, options) => {
9409
9505
  };
9410
9506
  delete options.contentElement;
9411
9507
  return tippy_esm(anchorElement, { ...options,
9508
+ plugins: [sticky],
9412
9509
  render: () => getContentWrapper(contentElement)
9413
9510
  });
9414
9511
  };
@@ -9423,7 +9520,7 @@ const getPopperOptions = function () {
9423
9520
  modifiers: [{
9424
9521
  name: 'flip',
9425
9522
  options: {
9426
- fallbackPlacements: fallbackPlacements,
9523
+ fallbackPlacements,
9427
9524
  boundary
9428
9525
  }
9429
9526
  }, {
@@ -9484,6 +9581,7 @@ const POPOVER_HEADER_FOOTER_PADDING_CLASSES = {
9484
9581
  const POPOVER_ROLES = ['dialog', 'menu', 'listbox', 'tree', 'grid'];
9485
9582
  const POPOVER_CONTENT_WIDTHS = [null, 'anchor'];
9486
9583
  const POPOVER_INITIAL_FOCUS_STRINGS = ['none', 'dialog', 'first'];
9584
+ const POPOVER_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
9487
9585
  const POPOVER_DIRECTIONS = [...BASE_TIPPY_DIRECTIONS];
9488
9586
  ;// 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&
9489
9587
  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)])}
@@ -10203,6 +10301,21 @@ var popover_header_footer_component = normalizeComponent(
10203
10301
  default: 'bottom-end'
10204
10302
  },
10205
10303
 
10304
+ /**
10305
+ * If the popover sticks to the anchor. This is usually not needed, but can be needed
10306
+ * if the reference element's position is animating, or to automatically update the popover
10307
+ * position in those cases the DOM layout changes the reference element's position.
10308
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
10309
+ * checks the "popper" rect for changes.
10310
+ */
10311
+ sticky: {
10312
+ type: [Boolean, String],
10313
+ default: false,
10314
+ validator: sticky => {
10315
+ return POPOVER_STICKY_VALUES.includes(sticky);
10316
+ }
10317
+ },
10318
+
10206
10319
  /**
10207
10320
  * Determines maximum height for the popover before overflow.
10208
10321
  * Possible units rem|px|em
@@ -10316,14 +10429,20 @@ var popover_header_footer_component = normalizeComponent(
10316
10429
 
10317
10430
  offset(offset) {
10318
10431
  this.tip.setProps({
10319
- offset: offset
10432
+ offset
10433
+ });
10434
+ },
10435
+
10436
+ sticky(sticky) {
10437
+ this.tip.setProps({
10438
+ sticky
10320
10439
  });
10321
10440
  },
10322
10441
 
10323
10442
  fallbackPlacements(fallbackPlacements) {
10324
10443
  this.tip.setProps({
10325
10444
  popperOptions: getPopperOptions({
10326
- fallbackPlacements: fallbackPlacements,
10445
+ fallbackPlacements,
10327
10446
  hasHideModifierEnabled: true
10328
10447
  })
10329
10448
  });
@@ -10376,6 +10495,7 @@ var popover_header_footer_component = normalizeComponent(
10376
10495
  contentElement: this.popoverContentEl,
10377
10496
  placement: this.placement,
10378
10497
  offset: this.offset,
10498
+ sticky: this.sticky,
10379
10499
  appendTo: document.body,
10380
10500
  interactive: true,
10381
10501
  trigger: 'manual',
@@ -10597,8 +10717,8 @@ var popovervue_type_style_index_0_lang_less_ = __webpack_require__(230);
10597
10717
 
10598
10718
  var popover_component = normalizeComponent(
10599
10719
  popover_popovervue_type_script_lang_js_,
10600
- popovervue_type_template_id_97535496_render,
10601
- popovervue_type_template_id_97535496_staticRenderFns,
10720
+ popovervue_type_template_id_9802b6fc_render,
10721
+ popovervue_type_template_id_9802b6fc_staticRenderFns,
10602
10722
  false,
10603
10723
  null,
10604
10724
  null,
@@ -15726,15 +15846,15 @@ var toggle_component = normalizeComponent(
15726
15846
  /* harmony default export */ const toggle = (toggle_component.exports);
15727
15847
  ;// CONCATENATED MODULE: ./components/toggle/index.js
15728
15848
 
15729
- ;// 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&
15730
- var tooltipvue_type_template_id_06e65b4f_render = function () {
15849
+ ;// 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&
15850
+ var tooltipvue_type_template_id_662e4cf7_render = function () {
15731
15851
  var _obj;
15732
15852
  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:[
15733
15853
  'd-tooltip',
15734
15854
  ("d-tooltip__arrow-tippy--" + _vm.currentPlacement),
15735
15855
  ( _obj = {}, _obj[ _vm.TOOLTIP_KIND_MODIFIERS.inverted ] = _vm.inverted, _obj ),
15736
15856
  _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)}
15737
- var tooltipvue_type_template_id_06e65b4f_staticRenderFns = []
15857
+ var tooltipvue_type_template_id_662e4cf7_staticRenderFns = []
15738
15858
 
15739
15859
 
15740
15860
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip_constants.js
@@ -15749,6 +15869,7 @@ const TOOLTIP_KIND_MODIFIERS = {
15749
15869
  inverted: "d-tooltip--inverted",
15750
15870
  hide: "d-tooltip--hide"
15751
15871
  };
15872
+ const TOOLTIP_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
15752
15873
  const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15753
15874
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40[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&
15754
15875
  //
@@ -15858,6 +15979,21 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15858
15979
 
15859
15980
  },
15860
15981
 
15982
+ /**
15983
+ * If the tooltip sticks to the anchor. This is usually not needed, but can be needed
15984
+ * if the reference element's position is animating, or to automatically update the popover
15985
+ * position in those cases the DOM layout changes the reference element's position.
15986
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
15987
+ * checks the "popper" rect for changes.
15988
+ */
15989
+ sticky: {
15990
+ type: [Boolean, String],
15991
+ default: false,
15992
+ validator: sticky => {
15993
+ return TOOLTIP_STICKY_VALUES.includes(sticky);
15994
+ }
15995
+ },
15996
+
15861
15997
  /**
15862
15998
  * Additional css classes for the tooltip content element.
15863
15999
  * Can accept all of String, Object, and Array, i.e. has the
@@ -15919,6 +16055,7 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15919
16055
  interactive: false,
15920
16056
  trigger: 'manual',
15921
16057
  placement: this.placement,
16058
+ sticky: this.sticky,
15922
16059
  popperOptions: getPopperOptions({
15923
16060
  fallbackPlacements: this.fallbackPlacements,
15924
16061
  hasHideModifierEnabled: true,
@@ -15949,6 +16086,12 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
15949
16086
  } else {
15950
16087
  this.tip.hide();
15951
16088
  }
16089
+ },
16090
+
16091
+ sticky(sticky) {
16092
+ this.tip.setProps({
16093
+ sticky
16094
+ });
15952
16095
  }
15953
16096
 
15954
16097
  },
@@ -16069,8 +16212,8 @@ var tooltipvue_type_style_index_0_lang_less_ = __webpack_require__(213);
16069
16212
 
16070
16213
  var tooltip_component = normalizeComponent(
16071
16214
  tooltip_tooltipvue_type_script_lang_js_,
16072
- tooltipvue_type_template_id_06e65b4f_render,
16073
- tooltipvue_type_template_id_06e65b4f_staticRenderFns,
16215
+ tooltipvue_type_template_id_662e4cf7_render,
16216
+ tooltipvue_type_template_id_662e4cf7_staticRenderFns,
16074
16217
  false,
16075
16218
  null,
16076
16219
  null,
@@ -16705,15 +16848,17 @@ var root_layout_component = normalizeComponent(
16705
16848
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
16706
16849
 
16707
16850
 
16708
- ;// 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&
16709
- 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){
16851
+ ;// 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&
16852
+ 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){
16710
16853
  var inputProps = ref.inputProps;
16711
16854
  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){
16712
16855
  var opened = ref.opened;
16713
16856
  var listProps = ref.listProps;
16714
16857
  var clearHighlightIndex = ref.clearHighlightIndex;
16715
- 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))}
16716
- var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16858
+ var isLoading = ref.isLoading;
16859
+ var isListEmpty = ref.isListEmpty;
16860
+ 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))}
16861
+ var combobox_with_popovervue_type_template_id_65a49163_staticRenderFns = []
16717
16862
 
16718
16863
 
16719
16864
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40[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&
@@ -16809,6 +16954,13 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16809
16954
  //
16810
16955
  //
16811
16956
  //
16957
+ //
16958
+ //
16959
+ //
16960
+ //
16961
+ //
16962
+ //
16963
+
16812
16964
 
16813
16965
 
16814
16966
 
@@ -16818,7 +16970,8 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16818
16970
  components: {
16819
16971
  DtCombobox: combobox,
16820
16972
  DtPopover: popover,
16821
- ComboboxLoadingList: combobox_loading_list
16973
+ ComboboxLoadingList: combobox_loading_list,
16974
+ ComboboxEmptyList: combobox_empty_list
16822
16975
  },
16823
16976
  props: {
16824
16977
  /**
@@ -16934,6 +17087,14 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16934
17087
  default: () => [0, 4]
16935
17088
  },
16936
17089
 
17090
+ /**
17091
+ * If the popover sticks to the input.
17092
+ */
17093
+ popoverSticky: {
17094
+ type: [Boolean, String],
17095
+ default: false
17096
+ },
17097
+
16937
17098
  /**
16938
17099
  * Displays the list when the combobox is focused, before the user has typed anything.
16939
17100
  * When this is enabled the list will not close after selection.
@@ -16949,6 +17110,14 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16949
17110
  loading: {
16950
17111
  type: Boolean,
16951
17112
  default: false
17113
+ },
17114
+
17115
+ /**
17116
+ * Message to show when the list is empty
17117
+ */
17118
+ emptyStateMessage: {
17119
+ type: String,
17120
+ default: 'No matches found.'
16952
17121
  }
16953
17122
  },
16954
17123
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -16989,13 +17158,7 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
16989
17158
 
16990
17159
  },
16991
17160
  methods: {
16992
- async handleDisplayList(value) {
16993
- if (this.isListShown) {
16994
- // After the list is updated, hightlight the first item
16995
- await this.$nextTick();
16996
- this.$refs.combobox.setInitialHighlightIndex();
16997
- }
16998
-
17161
+ handleDisplayList(value) {
16999
17162
  if (!this.hasSuggestionList) {
17000
17163
  if (value) {
17001
17164
  // Displays the list after the user has typed anything
@@ -17089,8 +17252,8 @@ var combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns = []
17089
17252
  ;
17090
17253
  var combobox_with_popover_component = normalizeComponent(
17091
17254
  combobox_with_popover_combobox_with_popovervue_type_script_lang_js_,
17092
- combobox_with_popovervue_type_template_id_0ce1b850_render,
17093
- combobox_with_popovervue_type_template_id_0ce1b850_staticRenderFns,
17255
+ combobox_with_popovervue_type_template_id_65a49163_render,
17256
+ combobox_with_popovervue_type_template_id_65a49163_staticRenderFns,
17094
17257
  false,
17095
17258
  null,
17096
17259
  null,