@dialpad/dialtone-vue 3.7.0 → 3.10.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.
@@ -97,7 +97,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".dt-list-section[tabindex=\"-1\"]:focu
97
97
 
98
98
  /***/ }),
99
99
 
100
- /***/ 393:
100
+ /***/ 515:
101
101
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
102
102
 
103
103
  "use strict";
@@ -193,7 +193,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".skeleton-placeholder{display:flex;str
193
193
 
194
194
  /***/ }),
195
195
 
196
- /***/ 71:
196
+ /***/ 708:
197
197
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
198
198
 
199
199
  "use strict";
@@ -457,19 +457,19 @@ var update = add("69c9bdad", content, true, {"sourceMap":false,"shadowMode":fals
457
457
 
458
458
  /***/ }),
459
459
 
460
- /***/ 675:
460
+ /***/ 683:
461
461
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
462
462
 
463
463
  // style-loader: Adds some css to the DOM by adding a <style> tag
464
464
 
465
465
  // load the styles
466
- var content = __webpack_require__(393);
466
+ var content = __webpack_require__(515);
467
467
  if(content.__esModule) content = content.default;
468
468
  if(typeof content === 'string') content = [[module.id, content, '']];
469
469
  if(content.locals) module.exports = content.locals;
470
470
  // add the styles to the DOM
471
471
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
472
- var update = add("3123c041", content, true, {"sourceMap":false,"shadowMode":false});
472
+ var update = add("85e99f52", content, true, {"sourceMap":false,"shadowMode":false});
473
473
 
474
474
  /***/ }),
475
475
 
@@ -521,19 +521,19 @@ var update = add("6f5d0b60", content, true, {"sourceMap":false,"shadowMode":fals
521
521
 
522
522
  /***/ }),
523
523
 
524
- /***/ 126:
524
+ /***/ 408:
525
525
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
526
526
 
527
527
  // style-loader: Adds some css to the DOM by adding a <style> tag
528
528
 
529
529
  // load the styles
530
- var content = __webpack_require__(71);
530
+ var content = __webpack_require__(708);
531
531
  if(content.__esModule) content = content.default;
532
532
  if(typeof content === 'string') content = [[module.id, content, '']];
533
533
  if(content.locals) module.exports = content.locals;
534
534
  // add the styles to the DOM
535
535
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
536
- var update = add("762f0436", content, true, {"sourceMap":false,"shadowMode":false});
536
+ var update = add("6d7a0b20", content, true, {"sourceMap":false,"shadowMode":false});
537
537
 
538
538
  /***/ }),
539
539
 
@@ -1119,6 +1119,7 @@ __webpack_require__.d(__webpack_exports__, {
1119
1119
  "DtCombobox": () => (/* reexport */ combobox),
1120
1120
  "DtDropdown": () => (/* reexport */ dropdown),
1121
1121
  "DtEmoji": () => (/* reexport */ emoji),
1122
+ "DtEmojiTextWrapper": () => (/* reexport */ emoji_text_wrapper),
1122
1123
  "DtGroupableInputMixin": () => (/* reexport */ GroupableMixin),
1123
1124
  "DtInput": () => (/* reexport */ input_input),
1124
1125
  "DtInputGroup": () => (/* reexport */ input_group_input_group),
@@ -1187,9 +1188,11 @@ __webpack_require__.d(__webpack_exports__, {
1187
1188
  "TOOLTIP_DIRECTIONS": () => (/* reexport */ TOOLTIP_DIRECTIONS),
1188
1189
  "TOOLTIP_HIDE_ON_CLICK_VARIANTS": () => (/* reexport */ TOOLTIP_HIDE_ON_CLICK_VARIANTS),
1189
1190
  "TOOLTIP_KIND_MODIFIERS": () => (/* reexport */ TOOLTIP_KIND_MODIFIERS),
1191
+ "TOOLTIP_STICKY_VALUES": () => (/* reexport */ TOOLTIP_STICKY_VALUES),
1190
1192
  "USER_STATUS_COLOR_MODIFIERS": () => (/* reexport */ USER_STATUS_COLOR_MODIFIERS),
1191
1193
  "VALIDATION_MESSAGE_TYPES": () => (/* reexport */ VALIDATION_MESSAGE_TYPES),
1192
1194
  "codeToEmojiData": () => (/* reexport */ codeToEmojiData),
1195
+ "customEmojiAssetUrl": () => (/* reexport */ customEmojiAssetUrl),
1193
1196
  "defaultEmojiAssetUrl": () => (/* reexport */ defaultEmojiAssetUrl),
1194
1197
  "emojiFileExtensionLarge": () => (/* reexport */ emojiFileExtensionLarge),
1195
1198
  "emojiFileExtensionSmall": () => (/* reexport */ emojiFileExtensionSmall),
@@ -1198,17 +1201,22 @@ __webpack_require__.d(__webpack_exports__, {
1198
1201
  "emojiJson": () => (/* reexport */ emojiJson),
1199
1202
  "emojiVersion": () => (/* reexport */ emojiVersion),
1200
1203
  "filterFormattedMessages": () => (/* reexport */ filterFormattedMessages),
1204
+ "filterValidShortCodes": () => (/* reexport */ filterValidShortCodes),
1201
1205
  "findEmojis": () => (/* reexport */ findEmojis),
1202
1206
  "findShortCodes": () => (/* reexport */ findShortCodes),
1203
1207
  "formatMessages": () => (/* reexport */ formatMessages),
1208
+ "getEmojiData": () => (/* reexport */ getEmojiData),
1204
1209
  "getEmojiJson": () => (/* reexport */ getEmojiJson),
1205
1210
  "getUniqueString": () => (/* reexport */ getUniqueString),
1206
1211
  "getValidationState": () => (/* reexport */ getValidationState),
1212
+ "setCustomEmojiJson": () => (/* reexport */ setCustomEmojiJson),
1213
+ "setCustomEmojiUrl": () => (/* reexport */ setCustomEmojiUrl),
1207
1214
  "setEmojiAssetUrlLarge": () => (/* reexport */ setEmojiAssetUrlLarge),
1208
1215
  "setEmojiAssetUrlSmall": () => (/* reexport */ setEmojiAssetUrlSmall),
1209
1216
  "shortcodeToEmojiData": () => (/* reexport */ shortcodeToEmojiData),
1210
1217
  "stringToUnicode": () => (/* reexport */ stringToUnicode),
1211
1218
  "unicodeToString": () => (/* reexport */ unicodeToString),
1219
+ "validateCustomEmojiJson": () => (/* reexport */ validateCustomEmojiJson),
1212
1220
  "validationMessageValidator": () => (/* reexport */ validationMessageValidator)
1213
1221
  });
1214
1222
 
@@ -2916,15 +2924,17 @@ const button_group_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(butto
2916
2924
  ;// CONCATENATED MODULE: ./components/button_group/index.js
2917
2925
 
2918
2926
 
2919
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=1cf89689
2927
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=83040a60
2920
2928
 
2921
- const comboboxvue_type_template_id_1cf89689_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2922
- const comboboxvue_type_template_id_1cf89689_hoisted_2 = {
2929
+ const comboboxvue_type_template_id_83040a60_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2930
+ const comboboxvue_type_template_id_83040a60_hoisted_2 = {
2923
2931
  "data-qa": "dt-combobox-input-wrapper"
2924
2932
  };
2925
- function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $setup, $data, $options) {
2933
+ function comboboxvue_type_template_id_83040a60_render(_ctx, _cache, $props, $setup, $data, $options) {
2926
2934
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
2927
2935
 
2936
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
2937
+
2928
2938
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
2929
2939
  role: "combobox",
2930
2940
  "aria-expanded": $props.showList.toString(),
@@ -2932,7 +2942,7 @@ function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $set
2932
2942
  "aria-owns": $props.listId,
2933
2943
  "aria-haspopup": "listbox",
2934
2944
  onKeydown: [_cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEscapeKey'), ["stop"]), ["esc"])), _cache[4] || (_cache[4] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEnterKey'), ["exact"]), ["enter"])), _cache[5] || (_cache[5] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onUpKey'), ["stop", "prevent"]), ["up"])), _cache[6] || (_cache[6] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onDownKey'), ["stop", "prevent"]), ["down"])), _cache[7] || (_cache[7] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onHomeKey'), ["stop", "prevent"]), ["home"])), _cache[8] || (_cache[8] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEndKey'), ["stop", "prevent"]), ["end"]))]
2935
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_1cf89689_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
2945
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_83040a60_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
2936
2946
  inputProps: $options.inputProps
2937
2947
  })]), $props.showList ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
2938
2948
  key: 0,
@@ -2947,16 +2957,22 @@ function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $set
2947
2957
  onMousemoveCapture: _cache[2] || (_cache[2] = function () {
2948
2958
  return $options.onMouseHighlight && $options.onMouseHighlight(...arguments);
2949
2959
  })
2950
- }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2960
+ }, [$data.isLoading && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2951
2961
  key: 0
2952
- }, $options.listProps)), null, 16)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
2953
- key: 1,
2962
+ }, $options.listProps)), null, 16)) : $data.isListEmpty && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2963
+ key: 1
2964
+ }, $options.listProps, {
2965
+ message: $props.emptyStateMessage
2966
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
2967
+ key: 2,
2954
2968
  listProps: $options.listProps,
2955
2969
  opened: $options.onOpen,
2956
- clearHighlightIndex: $options.clearHighlightIndex
2957
- })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_1cf89689_hoisted_1);
2970
+ clearHighlightIndex: $options.clearHighlightIndex,
2971
+ isLoading: $data.isLoading,
2972
+ isListEmpty: $data.isListEmpty
2973
+ })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_83040a60_hoisted_1);
2958
2974
  }
2959
- ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=1cf89689
2975
+ ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=83040a60
2960
2976
 
2961
2977
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
2962
2978
  /* harmony default export */ const dom = ({
@@ -3259,22 +3275,20 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3259
3275
  this.setHighlightIndex(this._itemsLength() - 1);
3260
3276
  },
3261
3277
 
3262
- async setHighlightIndex(num) {
3278
+ setHighlightIndex(num) {
3263
3279
  this[indexKey] = num;
3264
3280
  this[idKey] = this._getItemId(num);
3265
3281
 
3266
3282
  if (this._itemsLength() && afterHighlightMethod) {
3267
- await this.$nextTick();
3268
3283
  this[afterHighlightMethod](num);
3269
3284
  }
3270
3285
  },
3271
3286
 
3272
- async setHighlightId(id) {
3287
+ setHighlightId(id) {
3273
3288
  this[idKey] = id;
3274
3289
  this[indexKey] = this._getItemIndex(id);
3275
3290
 
3276
3291
  if (this._itemsLength() && afterHighlightMethod) {
3277
- await this.$nextTick();
3278
3292
  this[afterHighlightMethod](this._getItemIndex(id));
3279
3293
  }
3280
3294
  },
@@ -3333,14 +3347,18 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3333
3347
  }
3334
3348
  };
3335
3349
  });
3336
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_loading-list.vue?vue&type=template&id=49c938eb
3350
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_loading-list.vue?vue&type=template&id=07d9971d
3337
3351
 
3338
- function combobox_loading_listvue_type_template_id_49c938eb_render(_ctx, _cache, $props, $setup, $data, $options) {
3352
+ const combobox_loading_listvue_type_template_id_07d9971d_hoisted_1 = {
3353
+ class: "d-p0 d-mt8 d-hmx332 d-of-y-auto",
3354
+ "aria-busy": "true"
3355
+ };
3356
+ function combobox_loading_listvue_type_template_id_07d9971d_render(_ctx, _cache, $props, $setup, $data, $options) {
3339
3357
  const _component_dt_skeleton = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-skeleton");
3340
3358
 
3341
3359
  const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-list-item");
3342
3360
 
3343
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", null, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)(7, index => {
3361
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("ol", combobox_loading_listvue_type_template_id_07d9971d_hoisted_1, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)(7, index => {
3344
3362
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_list_item, {
3345
3363
  key: index,
3346
3364
  role: "option",
@@ -3356,7 +3374,7 @@ function combobox_loading_listvue_type_template_id_49c938eb_render(_ctx, _cache,
3356
3374
  }, 1024);
3357
3375
  }), 64))]);
3358
3376
  }
3359
- ;// CONCATENATED MODULE: ./components/combobox/combobox_loading-list.vue?vue&type=template&id=49c938eb
3377
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_loading-list.vue?vue&type=template&id=07d9971d
3360
3378
 
3361
3379
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/list_item/list_item.vue?vue&type=template&id=237d2c10
3362
3380
 
@@ -4250,17 +4268,64 @@ const skeleton_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(skeletonv
4250
4268
 
4251
4269
 
4252
4270
  ;
4253
- const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_loading_listvue_type_script_lang_js, [['render',combobox_loading_listvue_type_template_id_49c938eb_render]])
4271
+ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_loading_listvue_type_script_lang_js, [['render',combobox_loading_listvue_type_template_id_07d9971d_render]])
4254
4272
 
4255
4273
  /* harmony default export */ const combobox_loading_list = (combobox_loading_list_exports_);
4274
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112
4275
+
4276
+ const combobox_empty_listvue_type_template_id_85c21112_hoisted_1 = {
4277
+ class: "d-p0",
4278
+ "data-qa": "dt-combobox-empty-list"
4279
+ };
4280
+ function combobox_empty_listvue_type_template_id_85c21112_render(_ctx, _cache, $props, $setup, $data, $options) {
4281
+ const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-list-item");
4282
+
4283
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("ol", combobox_empty_listvue_type_template_id_85c21112_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_list_item, {
4284
+ class: "d-d-flex d-jc-center",
4285
+ role: "option",
4286
+ "navigation-type": "arrow-keys"
4287
+ }, {
4288
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.message), 1)]),
4289
+ _: 1
4290
+ })]);
4291
+ }
4292
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112
4293
+
4294
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4295
+
4296
+ /* harmony default export */ const combobox_empty_listvue_type_script_lang_js = ({
4297
+ name: 'ComboboxEmptyList',
4298
+ components: {
4299
+ DtListItem: list_item
4300
+ },
4301
+ props: {
4302
+ message: {
4303
+ type: String,
4304
+ required: true
4305
+ }
4306
+ }
4307
+ });
4308
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4309
+
4310
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue
4311
+
4312
+
4313
+
4314
+
4315
+ ;
4316
+ const combobox_empty_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_empty_listvue_type_script_lang_js, [['render',combobox_empty_listvue_type_template_id_85c21112_render]])
4317
+
4318
+ /* harmony default export */ const combobox_empty_list = (combobox_empty_list_exports_);
4256
4319
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=script&lang=js
4257
4320
 
4258
4321
 
4259
4322
 
4323
+
4260
4324
  /* harmony default export */ const comboboxvue_type_script_lang_js = ({
4261
4325
  name: 'DtCombobox',
4262
4326
  components: {
4263
- ComboboxLoadingList: combobox_loading_list
4327
+ ComboboxLoadingList: combobox_loading_list,
4328
+ ComboboxEmptyList: combobox_empty_list
4264
4329
  },
4265
4330
  mixins: [keyboard_list_navigation({
4266
4331
  indexKey: 'highlightIndex',
@@ -4331,6 +4396,14 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4331
4396
  loading: {
4332
4397
  type: Boolean,
4333
4398
  default: false
4399
+ },
4400
+
4401
+ /**
4402
+ * Message to show when the list is empty
4403
+ */
4404
+ emptyStateMessage: {
4405
+ type: String,
4406
+ default: ''
4334
4407
  }
4335
4408
  },
4336
4409
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -4340,7 +4413,9 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4340
4413
  // If the list is rendered at the root, rather than as a child
4341
4414
  // of this component, this is the ref to that dom element. Set
4342
4415
  // by the onOpen method.
4343
- outsideRenderedListRef: null
4416
+ outsideRenderedListRef: null,
4417
+ isListEmpty: undefined,
4418
+ isLoading: undefined
4344
4419
  };
4345
4420
  },
4346
4421
 
@@ -4391,22 +4466,38 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4391
4466
  watch: {
4392
4467
  showList(showList) {
4393
4468
  // When the list's visibility changes reset the highlight index.
4394
- this.$nextTick(function () {
4395
- if (!this.listRenderedOutside) {
4396
- this.setInitialHighlightIndex();
4397
- this.$emit('opened', showList);
4398
- }
4399
- });
4469
+ if (!this.listRenderedOutside) {
4470
+ this.setInitialHighlightIndex();
4471
+ this.$emit('opened', showList);
4472
+ }
4400
4473
 
4401
4474
  if (!showList && this.outsideRenderedListRef) {
4402
4475
  this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);
4403
4476
  this.outsideRenderedListRef = null;
4477
+ this.isListEmpty = undefined;
4404
4478
  }
4479
+ },
4480
+
4481
+ loading(isLoading) {
4482
+ this.isListEmpty = undefined;
4483
+ this.isLoading = isLoading;
4484
+ this.$nextTick(() => {
4485
+ this.isListEmpty = this.checkItemsLength();
4486
+ this.setInitialHighlightIndex();
4487
+ });
4405
4488
  }
4406
4489
 
4407
4490
  },
4491
+
4492
+ async mounted() {
4493
+ this.isLoading = this.loading;
4494
+ await this.$nextTick();
4495
+ this.isListEmpty = this.checkItemsLength();
4496
+ },
4497
+
4408
4498
  methods: {
4409
4499
  onMouseHighlight(e) {
4500
+ if (this.loading) return;
4410
4501
  const liElement = e.target.closest('li');
4411
4502
 
4412
4503
  if (liElement && this.highlightId !== liElement.id) {
@@ -4427,10 +4518,13 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4427
4518
  },
4428
4519
 
4429
4520
  afterHighlight() {
4521
+ if (this.loading) return;
4430
4522
  this.$emit('highlight', this.highlightIndex);
4431
4523
  },
4432
4524
 
4433
4525
  onEnterKey() {
4526
+ if (this.loading || this.isListEmpty) return;
4527
+
4434
4528
  if (this.highlightIndex >= 0) {
4435
4529
  this.$emit('select', this.highlightIndex);
4436
4530
  }
@@ -4448,24 +4542,30 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4448
4542
  this.$emit('opened', open);
4449
4543
 
4450
4544
  if (open) {
4545
+ this.isListEmpty = this.checkItemsLength();
4451
4546
  this.setInitialHighlightIndex();
4452
4547
  }
4453
4548
  },
4454
4549
 
4455
4550
  onKeyValidation(e, eventHandler) {
4456
- if (!this.showList || !this.getListElement() || this.loading) {
4457
- return;
4458
- }
4459
-
4551
+ if (!this.showList || !this.getListElement()) return;
4460
4552
  this[eventHandler](e);
4461
4553
  },
4462
4554
 
4463
4555
  setInitialHighlightIndex() {
4464
- if (this.showList) {
4556
+ if (!this.showList) return;
4557
+ this.$nextTick(() => {
4465
4558
  // When the list's is shown, reset the highlight index.
4466
- // If the list is in loading state, set to -1
4559
+ // If the list is loading, set to -1
4467
4560
  this.setHighlightIndex(this.loading ? -1 : 0);
4468
- }
4561
+ });
4562
+ },
4563
+
4564
+ checkItemsLength() {
4565
+ if (!this.showList) return undefined;
4566
+ const list = this.getListElement();
4567
+ const options = list === null || list === void 0 ? void 0 : list.querySelectorAll("[role=\"option\"]");
4568
+ return (options === null || options === void 0 ? void 0 : options.length) === 0;
4469
4569
  }
4470
4570
 
4471
4571
  }
@@ -4478,7 +4578,7 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4478
4578
 
4479
4579
 
4480
4580
  ;
4481
- const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_1cf89689_render]])
4581
+ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_83040a60_render]])
4482
4582
 
4483
4583
  /* harmony default export */ const combobox = (combobox_exports_);
4484
4584
  ;// CONCATENATED MODULE: ./components/combobox/index.js
@@ -4538,11 +4638,11 @@ function dropdownvue_type_template_id_b0e1f8ba_render(_ctx, _cache, $props, $set
4538
4638
  }
4539
4639
  ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
4540
4640
 
4541
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=template&id=0656612f
4641
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=template&id=582f9c98
4542
4642
 
4543
- const popovervue_type_template_id_0656612f_hoisted_1 = ["aria-hidden"];
4544
- const popovervue_type_template_id_0656612f_hoisted_2 = ["id"];
4545
- function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setup, $data, $options) {
4643
+ const popovervue_type_template_id_582f9c98_hoisted_1 = ["aria-hidden"];
4644
+ const popovervue_type_template_id_582f9c98_hoisted_2 = ["id"];
4645
+ function popovervue_type_template_id_582f9c98_render(_ctx, _cache, $props, $setup, $data, $options) {
4546
4646
  const _component_popover_header_footer = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("popover-header-footer");
4547
4647
 
4548
4648
  const _component_dt_lazy_show = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-lazy-show");
@@ -4554,7 +4654,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4554
4654
  class: "d-modal--transparent",
4555
4655
  "aria-hidden": $props.modal && $data.isOpen ? 'false' : 'true',
4556
4656
  onClick: _cache[0] || (_cache[0] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)(() => {}, ["prevent", "stop"]))
4557
- }, null, 8, popovervue_type_template_id_0656612f_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)($props.elementType), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
4657
+ }, null, 8, popovervue_type_template_id_582f9c98_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)($props.elementType), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
4558
4658
  ref: "popover",
4559
4659
  class: ['d-popover', {
4560
4660
  'd-popover__anchor--modal-opened': $props.modal && $data.isOpen
@@ -4583,7 +4683,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4583
4683
  'aria-controls': $props.id,
4584
4684
  'aria-haspopup': $props.role
4585
4685
  }
4586
- })], 40, popovervue_type_template_id_0656612f_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
4686
+ })], 40, popovervue_type_template_id_582f9c98_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
4587
4687
  id: $props.id,
4588
4688
  ref: "content",
4589
4689
  role: $props.role,
@@ -4645,7 +4745,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4645
4745
  _: 3
4646
4746
  }, 16, ["class"]))]);
4647
4747
  }
4648
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=0656612f
4748
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=582f9c98
4649
4749
 
4650
4750
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
4651
4751
  function getWindow(node) {
@@ -9097,6 +9197,7 @@ const getArrowDetected = fn => ({
9097
9197
 
9098
9198
 
9099
9199
  const BASE_TIPPY_DIRECTIONS = ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'];
9200
+ const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];
9100
9201
  const tippy_utils_createTippy = (anchorElement, options) => {
9101
9202
  const {
9102
9203
  contentElement
@@ -9104,6 +9205,7 @@ const tippy_utils_createTippy = (anchorElement, options) => {
9104
9205
  };
9105
9206
  delete options.contentElement;
9106
9207
  return tippy_esm(anchorElement, { ...options,
9208
+ plugins: [sticky],
9107
9209
  render: () => getContentWrapper(contentElement)
9108
9210
  });
9109
9211
  };
@@ -9179,6 +9281,7 @@ const POPOVER_HEADER_FOOTER_PADDING_CLASSES = {
9179
9281
  const POPOVER_ROLES = ['dialog', 'menu', 'listbox', 'tree', 'grid'];
9180
9282
  const POPOVER_CONTENT_WIDTHS = [null, 'anchor'];
9181
9283
  const POPOVER_INITIAL_FOCUS_STRINGS = ['none', 'dialog', 'first'];
9284
+ const POPOVER_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
9182
9285
  const POPOVER_DIRECTIONS = [...BASE_TIPPY_DIRECTIONS];
9183
9286
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/lazy_show/lazy_show.vue?vue&type=template&id=7659d16a
9184
9287
 
@@ -9547,6 +9650,21 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9547
9650
  default: 'bottom-end'
9548
9651
  },
9549
9652
 
9653
+ /**
9654
+ * If the popover sticks to the anchor. This is usually not needed, but can be needed
9655
+ * if the reference element's position is animating, or to automatically update the popover
9656
+ * position in those cases the DOM layout changes the reference element's position.
9657
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
9658
+ * checks the "popper" rect for changes.
9659
+ */
9660
+ sticky: {
9661
+ type: [Boolean, String],
9662
+ default: false,
9663
+ validator: sticky => {
9664
+ return POPOVER_STICKY_VALUES.includes(sticky);
9665
+ }
9666
+ },
9667
+
9550
9668
  /**
9551
9669
  * Determines maximum height for the popover before overflow.
9552
9670
  * Possible units rem|px|em
@@ -9660,14 +9778,20 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9660
9778
 
9661
9779
  offset(offset) {
9662
9780
  this.tip.setProps({
9663
- offset: offset
9781
+ offset
9782
+ });
9783
+ },
9784
+
9785
+ sticky(sticky) {
9786
+ this.tip.setProps({
9787
+ sticky
9664
9788
  });
9665
9789
  },
9666
9790
 
9667
9791
  fallbackPlacements(fallbackPlacements) {
9668
9792
  this.tip.setProps({
9669
9793
  popperOptions: getPopperOptions({
9670
- fallbackPlacements: fallbackPlacements,
9794
+ fallbackPlacements,
9671
9795
  hasHideModifierEnabled: true
9672
9796
  })
9673
9797
  });
@@ -9720,6 +9844,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9720
9844
  contentElement: this.popoverContentEl,
9721
9845
  placement: this.placement,
9722
9846
  offset: this.offset,
9847
+ sticky: this.sticky,
9723
9848
  appendTo: document.body,
9724
9849
  interactive: true,
9725
9850
  trigger: 'manual',
@@ -9932,9 +10057,9 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9932
10057
  });
9933
10058
  ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=script&lang=js
9934
10059
 
9935
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=style&index=0&id=0656612f&lang=less
9936
- var popovervue_type_style_index_0_id_0656612f_lang_less = __webpack_require__(675);
9937
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=0656612f&lang=less
10060
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=style&index=0&id=582f9c98&lang=less
10061
+ var popovervue_type_style_index_0_id_582f9c98_lang_less = __webpack_require__(683);
10062
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=582f9c98&lang=less
9938
10063
 
9939
10064
  ;// CONCATENATED MODULE: ./components/popover/popover.vue
9940
10065
 
@@ -9944,7 +10069,7 @@ var popovervue_type_style_index_0_id_0656612f_lang_less = __webpack_require__(67
9944
10069
  ;
9945
10070
 
9946
10071
 
9947
- const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_0656612f_render]])
10072
+ const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_582f9c98_render]])
9948
10073
 
9949
10074
  /* harmony default export */ const popover = (popover_exports_);
9950
10075
  ;// CONCATENATED MODULE: ./components/popover/index.js
@@ -10255,10 +10380,10 @@ const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownv
10255
10380
  /* harmony default export */ const dropdown = (dropdown_exports_);
10256
10381
  ;// CONCATENATED MODULE: ./components/dropdown/index.js
10257
10382
 
10258
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/emoji/emoji.vue?vue&type=template&id=010f8b36
10383
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/emoji/emoji.vue?vue&type=template&id=85307cb0
10259
10384
 
10260
- const emojivue_type_template_id_010f8b36_hoisted_1 = ["aria-label", "alt", "title", "src"];
10261
- function emojivue_type_template_id_010f8b36_render(_ctx, _cache, $props, $setup, $data, $options) {
10385
+ const emojivue_type_template_id_85307cb0_hoisted_1 = ["aria-label", "alt", "title", "src"];
10386
+ function emojivue_type_template_id_85307cb0_render(_ctx, _cache, $props, $setup, $data, $options) {
10262
10387
  const _component_dt_skeleton = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-skeleton");
10263
10388
 
10264
10389
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
@@ -10285,9 +10410,9 @@ function emojivue_type_template_id_010f8b36_render(_ctx, _cache, $props, $setup,
10285
10410
  onError: _cache[1] || (_cache[1] = function () {
10286
10411
  return $options.imageErrored && $options.imageErrored(...arguments);
10287
10412
  })
10288
- }, null, 42, emojivue_type_template_id_010f8b36_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.vShow, !$data.imgLoading]]) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 2);
10413
+ }, null, 42, emojivue_type_template_id_85307cb0_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.vShow, !$data.imgLoading]]) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 2);
10289
10414
  }
10290
- ;// CONCATENATED MODULE: ./components/emoji/emoji.vue?vue&type=template&id=010f8b36
10415
+ ;// CONCATENATED MODULE: ./components/emoji/emoji.vue?vue&type=template&id=85307cb0
10291
10416
 
10292
10417
  ;// CONCATENATED MODULE: ./components/emoji/emoji_constants.js
10293
10418
  const EMOJI_SIZES = {
@@ -10310,7 +10435,8 @@ var emoji_regex_default = /*#__PURE__*/__webpack_require__.n(emoji_regex);
10310
10435
  ;// CONCATENATED MODULE: ./common/emoji.js
10311
10436
 
10312
10437
  const emojiVersion = '6.6';
10313
- const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/'; // Used for emoji 16px and smaller
10438
+ const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/';
10439
+ let customEmojiAssetUrl = null; // Used for emoji 16px and smaller
10314
10440
 
10315
10441
  let emojiImageUrlSmall = defaultEmojiAssetUrl;
10316
10442
  let emojiFileExtensionSmall = '.png'; // Used for emoji larger than 16px
@@ -10322,6 +10448,9 @@ async function getEmojiJson() {
10322
10448
  if (emojiJson) return;
10323
10449
  emojiJson = await __webpack_require__.e(/* import() */ 370).then(__webpack_require__.t.bind(__webpack_require__, 370, 19));
10324
10450
  }
10451
+ function getEmojiData() {
10452
+ return emojiJson;
10453
+ }
10325
10454
  function setEmojiAssetUrlSmall(url) {
10326
10455
  let fileExtension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.png';
10327
10456
 
@@ -10341,6 +10470,69 @@ function setEmojiAssetUrlLarge(url) {
10341
10470
 
10342
10471
  emojiImageUrlLarge = url;
10343
10472
  emojiFileExtensionLarge = fileExtension;
10473
+ }
10474
+ function setCustomEmojiUrl(url) {
10475
+ customEmojiAssetUrl = url;
10476
+ }
10477
+ function setCustomEmojiJson(json) {
10478
+ validateCustomEmojiJson(json);
10479
+ }
10480
+ /**
10481
+ * Validate custom emoji json
10482
+ */
10483
+
10484
+ async function validateCustomEmojiJson(json) {
10485
+ await getEmojiJson();
10486
+ const customEmojiProps = ['extension', 'custom'];
10487
+ const customEmojiRequiredProps = ['name', 'category', 'shortname', 'extension', 'custom'];
10488
+ /**
10489
+ * Update single emoji properties.
10490
+ * If the property exists in emojiData, it'll add the values if the property is an array, otherwise will overwrite.
10491
+ * If not exists, will add the property to the emojiData object.
10492
+ */
10493
+
10494
+ const _updateNativeEmojiData = (emojiData, propName, propValue) => {
10495
+ if (emojiData[propName] === undefined) {
10496
+ if (!customEmojiProps.includes(propName)) {
10497
+ return;
10498
+ } // new property to add
10499
+
10500
+
10501
+ emojiData[propName] = propValue;
10502
+ } else {
10503
+ if (Array.isArray(emojiData[propName])) {
10504
+ emojiData[propName] = emojiData[propName].concat(propValue);
10505
+ } else {
10506
+ emojiData[propName] = propValue;
10507
+ }
10508
+ }
10509
+ };
10510
+
10511
+ Object.entries(json).forEach(item => {
10512
+ const [customEmojiKey, customEmojiValue] = item;
10513
+
10514
+ if (customEmojiKey in emojiJson) {
10515
+ // custom emoji exists in emoji json which means to update some data in the native emoji
10516
+ const emojiData = emojiJson[customEmojiKey];
10517
+
10518
+ for (const customEmojiPropertyName in customEmojiValue) {
10519
+ const customEmojiPropertyValue = customEmojiValue[customEmojiPropertyName];
10520
+
10521
+ _updateNativeEmojiData(emojiData, customEmojiPropertyName, customEmojiPropertyValue);
10522
+ }
10523
+ } else {
10524
+ // new custom emoji
10525
+ const _validateRequiredProps = () => customEmojiRequiredProps.every(val => {
10526
+ return customEmojiValue[val] !== undefined;
10527
+ });
10528
+
10529
+ if (_validateRequiredProps()) {
10530
+ emojiJson[customEmojiKey] = customEmojiValue;
10531
+ } else {
10532
+ console.error('The following custom emoji doesn\'t contain the required properties:', customEmojiValue);
10533
+ }
10534
+ }
10535
+ });
10344
10536
  } // recursively searches the emoji data object containing data for all emojis
10345
10537
  // and returns the object with the specified shortcode.
10346
10538
 
@@ -10365,7 +10557,7 @@ function shortcodeToEmojiData(shortcode) {
10365
10557
  }
10366
10558
 
10367
10559
  let reference;
10368
- f(emojiJson, null);
10560
+ f(getEmojiData(), null);
10369
10561
  return reference;
10370
10562
  } // Takes in an emoji unicode character(s) and converts it to an emoji string in the format the emoji data object expects
10371
10563
  // as a key. There can be multiple unicode characters in an emoji to denote the emoji itself, skin tone, gender
@@ -10415,8 +10607,11 @@ async function codeToEmojiData(code) {
10415
10607
  // @returns {string[]}
10416
10608
 
10417
10609
  function findShortCodes(textContent) {
10418
- const shortCodes = textContent.match(/:\w+:/g);
10419
- const filtered = shortCodes ? shortCodes.filter(code => shortcodeToEmojiData(code)) : [];
10610
+ const shortcodes = textContent.match(/:\w+:/g);
10611
+ return filterValidShortCodes(shortcodes);
10612
+ }
10613
+ function filterValidShortCodes(shortcodes) {
10614
+ const filtered = shortcodes ? shortcodes.filter(code => shortcodeToEmojiData(code)) : [];
10420
10615
  return new Set(filtered);
10421
10616
  } // Finds every emoji in slot text
10422
10617
  // removes duplicates
@@ -10439,7 +10634,8 @@ function findEmojis(textContent) {
10439
10634
  props: {
10440
10635
  /**
10441
10636
  * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.
10442
- * See https://emojipedia.org/joypixels/ for all supported shortcode/unicode.
10637
+ * See https://emojipedia.org/joypixels/ for all supported shortcode/unicode or the docs
10638
+ * for setting up custom emojis.
10443
10639
  */
10444
10640
  code: {
10445
10641
  type: String,
@@ -10492,8 +10688,15 @@ function findEmojis(textContent) {
10492
10688
  },
10493
10689
 
10494
10690
  emojiSrc() {
10691
+ var _this$emojiData;
10692
+
10495
10693
  if (!this.emojiDataValid) {
10496
10694
  return 'invalid';
10695
+ } // custom emoji
10696
+
10697
+
10698
+ if ((_this$emojiData = this.emojiData) !== null && _this$emojiData !== void 0 && _this$emojiData.custom) {
10699
+ return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;
10497
10700
  }
10498
10701
 
10499
10702
  if (['d-svg--size14', 'd-svg--size16'].includes(this.size)) {
@@ -10508,7 +10711,7 @@ function findEmojis(textContent) {
10508
10711
  return undefined;
10509
10712
  }
10510
10713
 
10511
- return stringToUnicode(this.emojiData.unicode_output);
10714
+ return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;
10512
10715
  },
10513
10716
 
10514
10717
  emojiLabel() {
@@ -10562,12 +10765,117 @@ function findEmojis(textContent) {
10562
10765
 
10563
10766
 
10564
10767
  ;
10565
- const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_type_script_lang_js, [['render',emojivue_type_template_id_010f8b36_render]])
10768
+ const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_type_script_lang_js, [['render',emojivue_type_template_id_85307cb0_render]])
10566
10769
 
10567
10770
  /* harmony default export */ const emoji = (emoji_exports_);
10568
10771
  ;// CONCATENATED MODULE: ./components/emoji/index.js
10569
10772
 
10570
10773
 
10774
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/emoji_text_wrapper/emoji_text_wrapper.vue?vue&type=script&lang=js
10775
+
10776
+
10777
+
10778
+ /* harmony default export */ const emoji_text_wrappervue_type_script_lang_js = ({
10779
+ name: 'DtEmojiTextWrapper',
10780
+ components: {
10781
+ DtEmoji: emoji
10782
+ },
10783
+ inheritAttrs: false,
10784
+ props: {
10785
+ /**
10786
+ * The type of element to use for the wrapper.
10787
+ */
10788
+ elementType: {
10789
+ type: String,
10790
+ default: 'div'
10791
+ }
10792
+ },
10793
+
10794
+ data() {
10795
+ return {
10796
+ loadingEmojiJson: true
10797
+ };
10798
+ },
10799
+
10800
+ async created() {
10801
+ await getEmojiJson();
10802
+ this.loadingEmojiJson = false;
10803
+ },
10804
+
10805
+ methods: {
10806
+ /**
10807
+ * Replaces the valid codes from the text content with a DtEmoji component.
10808
+ * @returns {Array<VNode|string>}
10809
+ */
10810
+ replaceDtEmojis(replaceList, textContent) {
10811
+ const regexp = new RegExp("(".concat(replaceList.join('|'), ")"), 'g');
10812
+ const split = textContent.split(regexp);
10813
+ return split.map(item => {
10814
+ if (replaceList.includes(item)) {
10815
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.h)(emoji, { ...this.$attrs,
10816
+ class: 'd-mx4 d-d-inline-block',
10817
+ code: item
10818
+ });
10819
+ }
10820
+
10821
+ return item;
10822
+ });
10823
+ },
10824
+
10825
+ /**
10826
+ * Recursively search the Vue virtual DOM to find text
10827
+ * @param VNode
10828
+ * @returns {VNode|*}
10829
+ */
10830
+ searchVNodes(VNode) {
10831
+ var _VNode$props;
10832
+
10833
+ if (typeof VNode === 'string') return this.searchCodes(VNode);
10834
+ if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);
10835
+ if ((_VNode$props = VNode.props) !== null && _VNode$props !== void 0 && _VNode$props.innerHTML) return this.searchVNodes(VNode.props.innerHTML);
10836
+ const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];
10837
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.h)(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));
10838
+ },
10839
+
10840
+ // TODO: Find a way to crawl vue components
10841
+ replaceVueComponentVNodeContent(VNode) {//
10842
+ },
10843
+
10844
+ /**
10845
+ * Find codes in text.
10846
+ * @param textContent string
10847
+ * @returns {Array<VNode|string>|string}
10848
+ */
10849
+ searchCodes(textContent) {
10850
+ const shortcodes = findShortCodes(textContent);
10851
+ const emojis = findEmojis(textContent);
10852
+ const replaceList = [...shortcodes, ...emojis];
10853
+ if (replaceList.length === 0) return textContent;
10854
+ return this.replaceDtEmojis(replaceList, textContent);
10855
+ }
10856
+
10857
+ },
10858
+
10859
+ render() {
10860
+ const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];
10861
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.h)(this.elementType, {
10862
+ 'data-qa': 'emoji-text-wrapper',
10863
+ class: this.$attrs.class
10864
+ }, this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map(VNode => this.searchVNodes(VNode)));
10865
+ }
10866
+
10867
+ });
10868
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/emoji_text_wrapper.vue?vue&type=script&lang=js
10869
+
10870
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/emoji_text_wrapper.vue
10871
+
10872
+
10873
+
10874
+ const emoji_text_wrapper_exports_ = emoji_text_wrappervue_type_script_lang_js;
10875
+
10876
+ /* harmony default export */ const emoji_text_wrapper = (emoji_text_wrapper_exports_);
10877
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/index.js
10878
+
10571
10879
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/input/input.vue?vue&type=template&id=1204d99d
10572
10880
 
10573
10881
  const inputvue_type_template_id_1204d99d_hoisted_1 = {
@@ -14388,15 +14696,15 @@ const toggle_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(togglevue_t
14388
14696
  /* harmony default export */ const toggle = (toggle_exports_);
14389
14697
  ;// CONCATENATED MODULE: ./components/toggle/index.js
14390
14698
 
14391
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=template&id=044c8b20
14699
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=template&id=46955932
14392
14700
 
14393
- const tooltipvue_type_template_id_044c8b20_hoisted_1 = {
14701
+ const tooltipvue_type_template_id_46955932_hoisted_1 = {
14394
14702
  "data-qa": "dt-tooltip-container"
14395
14703
  };
14396
- function tooltipvue_type_template_id_044c8b20_render(_ctx, _cache, $props, $setup, $data, $options) {
14704
+ function tooltipvue_type_template_id_46955932_render(_ctx, _cache, $props, $setup, $data, $options) {
14397
14705
  const _component_dt_lazy_show = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-lazy-show");
14398
14706
 
14399
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", tooltipvue_type_template_id_044c8b20_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
14707
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", tooltipvue_type_template_id_46955932_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
14400
14708
  ref: "anchor",
14401
14709
  "data-qa": "dt-tooltip-anchor",
14402
14710
  onFocusin: _cache[0] || (_cache[0] = function () {
@@ -14433,7 +14741,7 @@ function tooltipvue_type_template_id_044c8b20_render(_ctx, _cache, $props, $setu
14433
14741
  _: 3
14434
14742
  }, 8, ["id", "show", "transition", "class", "onAfterLeave", "onAfterEnter"])]);
14435
14743
  }
14436
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=044c8b20
14744
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=46955932
14437
14745
 
14438
14746
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip_constants.js
14439
14747
  /*
@@ -14447,6 +14755,7 @@ const TOOLTIP_KIND_MODIFIERS = {
14447
14755
  inverted: "d-tooltip--inverted",
14448
14756
  hide: "d-tooltip--hide"
14449
14757
  };
14758
+ const TOOLTIP_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
14450
14759
  const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14451
14760
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=script&lang=js
14452
14761
 
@@ -14513,6 +14822,21 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14513
14822
 
14514
14823
  },
14515
14824
 
14825
+ /**
14826
+ * If the tooltip sticks to the anchor. This is usually not needed, but can be needed
14827
+ * if the reference element's position is animating, or to automatically update the popover
14828
+ * position in those cases the DOM layout changes the reference element's position.
14829
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
14830
+ * checks the "popper" rect for changes.
14831
+ */
14832
+ sticky: {
14833
+ type: [Boolean, String],
14834
+ default: false,
14835
+ validator: sticky => {
14836
+ return TOOLTIP_STICKY_VALUES.includes(sticky);
14837
+ }
14838
+ },
14839
+
14516
14840
  /**
14517
14841
  * Additional css classes for the tooltip content element.
14518
14842
  * Can accept all of String, Object, and Array, i.e. has the
@@ -14574,6 +14898,7 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14574
14898
  interactive: false,
14575
14899
  trigger: 'manual',
14576
14900
  placement: this.placement,
14901
+ sticky: this.sticky,
14577
14902
  popperOptions: getPopperOptions({
14578
14903
  fallbackPlacements: this.fallbackPlacements,
14579
14904
  hasHideModifierEnabled: true,
@@ -14604,6 +14929,12 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14604
14929
  } else {
14605
14930
  this.tip.hide();
14606
14931
  }
14932
+ },
14933
+
14934
+ sticky(sticky) {
14935
+ this.tip.setProps({
14936
+ sticky
14937
+ });
14607
14938
  }
14608
14939
 
14609
14940
  },
@@ -14709,9 +15040,9 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14709
15040
  });
14710
15041
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=script&lang=js
14711
15042
 
14712
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=style&index=0&id=044c8b20&lang=less
14713
- var tooltipvue_type_style_index_0_id_044c8b20_lang_less = __webpack_require__(126);
14714
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=044c8b20&lang=less
15043
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=style&index=0&id=46955932&lang=less
15044
+ var tooltipvue_type_style_index_0_id_46955932_lang_less = __webpack_require__(408);
15045
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=46955932&lang=less
14715
15046
 
14716
15047
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue
14717
15048
 
@@ -14721,7 +15052,7 @@ var tooltipvue_type_style_index_0_id_044c8b20_lang_less = __webpack_require__(12
14721
15052
  ;
14722
15053
 
14723
15054
 
14724
- const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_044c8b20_render]])
15055
+ const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_46955932_render]])
14725
15056
 
14726
15057
  /* harmony default export */ const tooltip = (tooltip_exports_);
14727
15058
  ;// CONCATENATED MODULE: ./components/tooltip/index.js
@@ -15286,19 +15617,22 @@ const root_layout_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(root_l
15286
15617
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
15287
15618
 
15288
15619
 
15289
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=250cf6fe
15620
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=37048598
15290
15621
 
15291
- const combobox_with_popovervue_type_template_id_250cf6fe_hoisted_1 = ["id"];
15292
- const combobox_with_popovervue_type_template_id_250cf6fe_hoisted_2 = ["onMouseleave", "onFocusout"];
15293
- function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache, $props, $setup, $data, $options) {
15622
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_1 = ["id"];
15623
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_2 = ["onMouseleave", "onFocusout"];
15624
+ function combobox_with_popovervue_type_template_id_37048598_render(_ctx, _cache, $props, $setup, $data, $options) {
15294
15625
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
15295
15626
 
15627
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
15628
+
15296
15629
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
15297
15630
 
15298
15631
  const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-combobox");
15299
15632
 
15300
15633
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_combobox, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15301
15634
  ref: "combobox",
15635
+ loading: $props.loading,
15302
15636
  "show-list": $data.isListShown,
15303
15637
  "on-beginning-of-list": $props.onBeginningOfList,
15304
15638
  "on-end-of-list": $props.onEndOfList,
@@ -15324,22 +15658,25 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15324
15658
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
15325
15659
  inputProps: inputProps,
15326
15660
  onInput: $options.handleDisplayList
15327
- })], 40, combobox_with_popovervue_type_template_id_250cf6fe_hoisted_1)];
15661
+ })], 40, combobox_with_popovervue_type_template_id_37048598_hoisted_1)];
15328
15662
  }),
15329
15663
  list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
15330
15664
  let {
15331
15665
  opened,
15332
15666
  listProps,
15333
- clearHighlightIndex
15667
+ clearHighlightIndex,
15668
+ isLoading,
15669
+ isListEmpty
15334
15670
  } = _ref2;
15335
15671
  return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_popover, {
15336
15672
  ref: "popover",
15337
15673
  open: $data.isListShown,
15338
15674
  "onUpdate:open": _cache[6] || (_cache[6] = $event => $data.isListShown = $event),
15339
- "hide-on-click": true,
15675
+ "hide-on-click": $props.showList === null,
15340
15676
  "max-height": $props.maxHeight,
15341
15677
  "max-width": $props.maxWidth,
15342
15678
  offset: $props.popoverOffset,
15679
+ sticky: $props.popoverSticky,
15343
15680
  placement: "bottom-start",
15344
15681
  padding: "none",
15345
15682
  role: "listbox",
@@ -15350,12 +15687,7 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15350
15687
  "auto-focus": false,
15351
15688
  onOpened: opened
15352
15689
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createSlots)({
15353
- content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15354
- key: 0
15355
- }, listProps, {
15356
- class: [$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]
15357
- }), null, 16, ["class"])) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
15358
- key: 1,
15690
+ content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
15359
15691
  ref: "listWrapper",
15360
15692
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
15361
15693
  onMouseleave: clearHighlightIndex,
@@ -15363,9 +15695,16 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15363
15695
  clearHighlightIndex;
15364
15696
  $options.onFocusOut;
15365
15697
  }
15366
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15698
+ }, [isLoading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15699
+ key: 0
15700
+ }, listProps)), null, 16)) : isListEmpty ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15701
+ key: 1
15702
+ }, listProps, {
15703
+ message: $props.emptyStateMessage
15704
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15705
+ key: 2,
15367
15706
  listProps: listProps
15368
- })], 42, combobox_with_popovervue_type_template_id_250cf6fe_hoisted_2))]),
15707
+ })], 42, combobox_with_popovervue_type_template_id_37048598_hoisted_2)]),
15369
15708
  _: 2
15370
15709
  }, [_ctx.$slots.header ? {
15371
15710
  name: "headerContent",
@@ -15383,24 +15722,26 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15383
15722
  return $options.onFocusOut && $options.onFocusOut(...arguments);
15384
15723
  })
15385
15724
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 544)])
15386
- } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "external-anchor", "content-width", "onOpened"])];
15725
+ } : undefined]), 1032, ["open", "hide-on-click", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "onOpened"])];
15387
15726
  }),
15388
15727
  _: 3
15389
- }, 16, ["show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15728
+ }, 16, ["loading", "show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15390
15729
  }
15391
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=250cf6fe
15730
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=37048598
15392
15731
 
15393
15732
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
15394
15733
 
15395
15734
 
15396
15735
 
15397
15736
 
15737
+
15398
15738
  /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
15399
15739
  name: 'DtRecipeComboboxWithPopover',
15400
15740
  components: {
15401
15741
  DtCombobox: combobox,
15402
15742
  DtPopover: popover,
15403
- ComboboxLoadingList: combobox_loading_list
15743
+ ComboboxLoadingList: combobox_loading_list,
15744
+ ComboboxEmptyList: combobox_empty_list
15404
15745
  },
15405
15746
  props: {
15406
15747
  /**
@@ -15516,6 +15857,14 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15516
15857
  default: () => [0, 4]
15517
15858
  },
15518
15859
 
15860
+ /**
15861
+ * If the popover sticks to the input.
15862
+ */
15863
+ popoverSticky: {
15864
+ type: [Boolean, String],
15865
+ default: false
15866
+ },
15867
+
15519
15868
  /**
15520
15869
  * Displays the list when the combobox is focused, before the user has typed anything.
15521
15870
  * When this is enabled the list will not close after selection.
@@ -15531,6 +15880,14 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15531
15880
  loading: {
15532
15881
  type: Boolean,
15533
15882
  default: false
15883
+ },
15884
+
15885
+ /**
15886
+ * Message to show when the list is empty
15887
+ */
15888
+ emptyStateMessage: {
15889
+ type: String,
15890
+ default: ''
15534
15891
  }
15535
15892
  },
15536
15893
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -15571,13 +15928,7 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15571
15928
 
15572
15929
  },
15573
15930
  methods: {
15574
- async handleDisplayList(value) {
15575
- if (this.isListShown) {
15576
- // After the list is updated, hightlight the first item
15577
- await this.$nextTick();
15578
- this.$refs.combobox.setInitialHighlightIndex();
15579
- }
15580
-
15931
+ handleDisplayList(value) {
15581
15932
  if (!this.hasSuggestionList) {
15582
15933
  if (value) {
15583
15934
  // Displays the list after the user has typed anything
@@ -15667,35 +16018,35 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15667
16018
 
15668
16019
 
15669
16020
  ;
15670
- const combobox_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_with_popovervue_type_script_lang_js, [['render',combobox_with_popovervue_type_template_id_250cf6fe_render]])
16021
+ const combobox_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_with_popovervue_type_script_lang_js, [['render',combobox_with_popovervue_type_template_id_37048598_render]])
15671
16022
 
15672
16023
  /* harmony default export */ const combobox_with_popover = (combobox_with_popover_exports_);
15673
16024
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/index.js
15674
16025
 
15675
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=4f85e207
16026
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=d29708fc
15676
16027
 
15677
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_1 = {
16028
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_1 = {
15678
16029
  ref: "inputSlotWrapper",
15679
16030
  class: "d-ps-relative"
15680
16031
  };
15681
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_2 = {
16032
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_2 = {
15682
16033
  ref: "chipsWrapper",
15683
16034
  class: "d-ps-absolute d-mx2"
15684
16035
  };
15685
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_3 = {
16036
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_3 = {
15686
16037
  ref: "header"
15687
16038
  };
15688
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_4 = {
16039
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_4 = {
15689
16040
  ref: "list"
15690
16041
  };
15691
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_5 = {
16042
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_5 = {
15692
16043
  key: 1,
15693
16044
  class: "d-ta-center d-py16"
15694
16045
  };
15695
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_6 = {
16046
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_6 = {
15696
16047
  ref: "footer"
15697
16048
  };
15698
- function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache, $props, $setup, $data, $options) {
16049
+ function combobox_multi_selectvue_type_template_id_d29708fc_render(_ctx, _cache, $props, $setup, $data, $options) {
15699
16050
  const _component_dt_chip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-chip");
15700
16051
 
15701
16052
  const _component_dt_input = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-input");
@@ -15718,7 +16069,7 @@ function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache,
15718
16069
  let {
15719
16070
  onInput
15720
16071
  } = _ref;
15721
- return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_2, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)($props.selectedItems, item => {
16072
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_2, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)($props.selectedItems, item => {
15722
16073
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_chip, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15723
16074
  ref_for: true,
15724
16075
  ref: "chips",
@@ -15753,19 +16104,19 @@ function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache,
15753
16104
  "show-messages": $data.showValidationMessages
15754
16105
  }, null, 8, ["validation-messages", "show-messages"])], 512)];
15755
16106
  }),
15756
- list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
16107
+ list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15757
16108
  key: 0
15758
- }) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.loadingMessage), 1))], 512)]),
16109
+ }) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.loadingMessage), 1))], 512)]),
15759
16110
  _: 2
15760
16111
  }, [_ctx.$slots.header ? {
15761
16112
  name: "header",
15762
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 512)])
16113
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 512)])
15763
16114
  } : undefined, _ctx.$slots.footer ? {
15764
16115
  name: "footer",
15765
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 512)])
16116
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 512)])
15766
16117
  } : undefined]), 1032, ["show-list", "max-height", "popover-offset", "has-suggestion-list", "onSelect"]);
15767
16118
  }
15768
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=4f85e207
16119
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=d29708fc
15769
16120
 
15770
16121
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select_story_constants.js
15771
16122
  // The item list for default story
@@ -15982,7 +16333,7 @@ const MULTI_SELECT_SIZES = {
15982
16333
  },
15983
16334
 
15984
16335
  /**
15985
- * Max select message when the max selections has been reached with the structure:
16336
+ * Max select message when the max selections is exceeded with the structure:
15986
16337
  * `[{"message": string, "type": VALIDATION_MESSAGE_TYPES }]`
15987
16338
  */
15988
16339
  maxSelectedMessage: {
@@ -16042,10 +16393,19 @@ const MULTI_SELECT_SIZES = {
16042
16393
  return {
16043
16394
  input: event => {
16044
16395
  this.$emit('input', event);
16396
+
16397
+ if (this.hasSuggestionList) {
16398
+ this.showComboboxList();
16399
+ }
16045
16400
  },
16046
16401
  keyup: event => {
16047
16402
  this.onInputKeyup(event);
16048
16403
  this.$emit('keyup', event);
16404
+ },
16405
+ click: event => {
16406
+ if (this.hasSuggestionList) {
16407
+ this.showComboboxList();
16408
+ }
16049
16409
  }
16050
16410
  };
16051
16411
  }
@@ -16103,6 +16463,22 @@ const MULTI_SELECT_SIZES = {
16103
16463
  this.$emit('select', i);
16104
16464
  },
16105
16465
 
16466
+ showComboboxList() {
16467
+ if (this.showList != null) {
16468
+ return;
16469
+ }
16470
+
16471
+ this.$refs.comboboxWithPopover.showComboboxList();
16472
+ },
16473
+
16474
+ closeComboboxList() {
16475
+ if (this.showList != null) {
16476
+ return;
16477
+ }
16478
+
16479
+ this.$refs.comboboxWithPopover.closeComboboxList();
16480
+ },
16481
+
16106
16482
  getChipButtons() {
16107
16483
  return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));
16108
16484
  },
@@ -16164,13 +16540,13 @@ const MULTI_SELECT_SIZES = {
16164
16540
  moveFromInputToChip() {
16165
16541
  this.getLastChipButton().focus();
16166
16542
  this.$refs.input.blur();
16167
- this.$refs.comboboxWithPopover.closeComboboxList();
16543
+ this.closeComboboxList();
16168
16544
  },
16169
16545
 
16170
16546
  moveFromChipToInput() {
16171
16547
  this.getLastChipButton().blur();
16172
16548
  this.$refs.input.focus();
16173
- this.$refs.comboboxWithPopover.showComboboxList();
16549
+ this.showComboboxList();
16174
16550
  },
16175
16551
 
16176
16552
  navigateBetweenChips(target, toLeft) {
@@ -16183,7 +16559,7 @@ const MULTI_SELECT_SIZES = {
16183
16559
 
16184
16560
  this.getChipButtons()[from].blur();
16185
16561
  this.getChipButtons()[to].focus();
16186
- this.$refs.comboboxWithPopover.closeComboboxList();
16562
+ this.closeComboboxList();
16187
16563
  },
16188
16564
 
16189
16565
  setChipsTopPosition() {
@@ -16253,7 +16629,7 @@ const MULTI_SELECT_SIZES = {
16253
16629
  checkMaxSelected() {
16254
16630
  if (this.maxSelected === 0) return;
16255
16631
 
16256
- if (this.selectedItems.length >= this.maxSelected) {
16632
+ if (this.selectedItems.length > this.maxSelected) {
16257
16633
  this.showValidationMessages = true;
16258
16634
  this.$emit('max-selected');
16259
16635
  } else {
@@ -16271,7 +16647,7 @@ const MULTI_SELECT_SIZES = {
16271
16647
 
16272
16648
 
16273
16649
  ;
16274
- const combobox_multi_select_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_multi_selectvue_type_script_lang_js, [['render',combobox_multi_selectvue_type_template_id_4f85e207_render]])
16650
+ const combobox_multi_select_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_multi_selectvue_type_script_lang_js, [['render',combobox_multi_selectvue_type_template_id_d29708fc_render]])
16275
16651
 
16276
16652
  /* harmony default export */ const combobox_multi_select = (combobox_multi_select_exports_);
16277
16653
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/index.js
@@ -16562,6 +16938,7 @@ const top_banner_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(to
16562
16938
 
16563
16939
 
16564
16940
 
16941
+
16565
16942
 
16566
16943
 
16567
16944
  /// Recipes