@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.
@@ -11,7 +11,7 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 403:
14
+ /***/ 881:
15
15
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
16
16
 
17
17
  "use strict";
@@ -107,7 +107,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".dt-list-section[tabindex=\"-1\"]:focu
107
107
 
108
108
  /***/ }),
109
109
 
110
- /***/ 559:
110
+ /***/ 500:
111
111
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
112
112
 
113
113
  "use strict";
@@ -203,7 +203,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".skeleton-placeholder{display:flex;str
203
203
 
204
204
  /***/ }),
205
205
 
206
- /***/ 791:
206
+ /***/ 775:
207
207
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
208
208
 
209
209
  "use strict";
@@ -409,7 +409,7 @@ exports.Z = (sfc, props) => {
409
409
  // style-loader: Adds some css to the DOM by adding a <style> tag
410
410
 
411
411
  // load the styles
412
- var content = __webpack_require__(403);
412
+ var content = __webpack_require__(881);
413
413
  if(content.__esModule) content = content.default;
414
414
  if(typeof content === 'string') content = [[module.id, content, '']];
415
415
  if(content.locals) module.exports = content.locals;
@@ -467,19 +467,19 @@ var update = add("06b601f1", content, true, {"sourceMap":false,"shadowMode":fals
467
467
 
468
468
  /***/ }),
469
469
 
470
- /***/ 790:
470
+ /***/ 403:
471
471
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
472
472
 
473
473
  // style-loader: Adds some css to the DOM by adding a <style> tag
474
474
 
475
475
  // load the styles
476
- var content = __webpack_require__(559);
476
+ var content = __webpack_require__(500);
477
477
  if(content.__esModule) content = content.default;
478
478
  if(typeof content === 'string') content = [[module.id, content, '']];
479
479
  if(content.locals) module.exports = content.locals;
480
480
  // add the styles to the DOM
481
481
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
482
- var update = add("fc300706", content, true, {"sourceMap":false,"shadowMode":false});
482
+ var update = add("0dcf6c93", content, true, {"sourceMap":false,"shadowMode":false});
483
483
 
484
484
  /***/ }),
485
485
 
@@ -531,19 +531,19 @@ var update = add("537a95a4", content, true, {"sourceMap":false,"shadowMode":fals
531
531
 
532
532
  /***/ }),
533
533
 
534
- /***/ 273:
534
+ /***/ 831:
535
535
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
536
536
 
537
537
  // style-loader: Adds some css to the DOM by adding a <style> tag
538
538
 
539
539
  // load the styles
540
- var content = __webpack_require__(791);
540
+ var content = __webpack_require__(775);
541
541
  if(content.__esModule) content = content.default;
542
542
  if(typeof content === 'string') content = [[module.id, content, '']];
543
543
  if(content.locals) module.exports = content.locals;
544
544
  // add the styles to the DOM
545
545
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
546
- var update = add("72197f1c", content, true, {"sourceMap":false,"shadowMode":false});
546
+ var update = add("1a0736ac", content, true, {"sourceMap":false,"shadowMode":false});
547
547
 
548
548
  /***/ }),
549
549
 
@@ -1137,6 +1137,7 @@ __webpack_require__.d(__webpack_exports__, {
1137
1137
  "DtCombobox": () => (/* reexport */ combobox),
1138
1138
  "DtDropdown": () => (/* reexport */ dropdown),
1139
1139
  "DtEmoji": () => (/* reexport */ emoji),
1140
+ "DtEmojiTextWrapper": () => (/* reexport */ emoji_text_wrapper),
1140
1141
  "DtGroupableInputMixin": () => (/* reexport */ GroupableMixin),
1141
1142
  "DtInput": () => (/* reexport */ input_input),
1142
1143
  "DtInputGroup": () => (/* reexport */ input_group_input_group),
@@ -1205,9 +1206,11 @@ __webpack_require__.d(__webpack_exports__, {
1205
1206
  "TOOLTIP_DIRECTIONS": () => (/* reexport */ TOOLTIP_DIRECTIONS),
1206
1207
  "TOOLTIP_HIDE_ON_CLICK_VARIANTS": () => (/* reexport */ TOOLTIP_HIDE_ON_CLICK_VARIANTS),
1207
1208
  "TOOLTIP_KIND_MODIFIERS": () => (/* reexport */ TOOLTIP_KIND_MODIFIERS),
1209
+ "TOOLTIP_STICKY_VALUES": () => (/* reexport */ TOOLTIP_STICKY_VALUES),
1208
1210
  "USER_STATUS_COLOR_MODIFIERS": () => (/* reexport */ USER_STATUS_COLOR_MODIFIERS),
1209
1211
  "VALIDATION_MESSAGE_TYPES": () => (/* reexport */ VALIDATION_MESSAGE_TYPES),
1210
1212
  "codeToEmojiData": () => (/* reexport */ codeToEmojiData),
1213
+ "customEmojiAssetUrl": () => (/* reexport */ customEmojiAssetUrl),
1211
1214
  "defaultEmojiAssetUrl": () => (/* reexport */ defaultEmojiAssetUrl),
1212
1215
  "emojiFileExtensionLarge": () => (/* reexport */ emojiFileExtensionLarge),
1213
1216
  "emojiFileExtensionSmall": () => (/* reexport */ emojiFileExtensionSmall),
@@ -1216,17 +1219,22 @@ __webpack_require__.d(__webpack_exports__, {
1216
1219
  "emojiJson": () => (/* reexport */ emojiJson),
1217
1220
  "emojiVersion": () => (/* reexport */ emojiVersion),
1218
1221
  "filterFormattedMessages": () => (/* reexport */ filterFormattedMessages),
1222
+ "filterValidShortCodes": () => (/* reexport */ filterValidShortCodes),
1219
1223
  "findEmojis": () => (/* reexport */ findEmojis),
1220
1224
  "findShortCodes": () => (/* reexport */ findShortCodes),
1221
1225
  "formatMessages": () => (/* reexport */ formatMessages),
1226
+ "getEmojiData": () => (/* reexport */ getEmojiData),
1222
1227
  "getEmojiJson": () => (/* reexport */ getEmojiJson),
1223
1228
  "getUniqueString": () => (/* reexport */ getUniqueString),
1224
1229
  "getValidationState": () => (/* reexport */ getValidationState),
1230
+ "setCustomEmojiJson": () => (/* reexport */ setCustomEmojiJson),
1231
+ "setCustomEmojiUrl": () => (/* reexport */ setCustomEmojiUrl),
1225
1232
  "setEmojiAssetUrlLarge": () => (/* reexport */ setEmojiAssetUrlLarge),
1226
1233
  "setEmojiAssetUrlSmall": () => (/* reexport */ setEmojiAssetUrlSmall),
1227
1234
  "shortcodeToEmojiData": () => (/* reexport */ shortcodeToEmojiData),
1228
1235
  "stringToUnicode": () => (/* reexport */ stringToUnicode),
1229
1236
  "unicodeToString": () => (/* reexport */ unicodeToString),
1237
+ "validateCustomEmojiJson": () => (/* reexport */ validateCustomEmojiJson),
1230
1238
  "validationMessageValidator": () => (/* reexport */ validationMessageValidator)
1231
1239
  });
1232
1240
 
@@ -2934,15 +2942,17 @@ const button_group_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(butto
2934
2942
  ;// CONCATENATED MODULE: ./components/button_group/index.js
2935
2943
 
2936
2944
 
2937
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
2945
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
2938
2946
 
2939
- const comboboxvue_type_template_id_1cf89689_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2940
- const comboboxvue_type_template_id_1cf89689_hoisted_2 = {
2947
+ const comboboxvue_type_template_id_83040a60_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2948
+ const comboboxvue_type_template_id_83040a60_hoisted_2 = {
2941
2949
  "data-qa": "dt-combobox-input-wrapper"
2942
2950
  };
2943
- function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $setup, $data, $options) {
2951
+ function comboboxvue_type_template_id_83040a60_render(_ctx, _cache, $props, $setup, $data, $options) {
2944
2952
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("combobox-loading-list");
2945
2953
 
2954
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("combobox-empty-list");
2955
+
2946
2956
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
2947
2957
  role: "combobox",
2948
2958
  "aria-expanded": $props.showList.toString(),
@@ -2950,7 +2960,7 @@ function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $set
2950
2960
  "aria-owns": $props.listId,
2951
2961
  "aria-haspopup": "listbox",
2952
2962
  onKeydown: [_cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onEscapeKey'), ["stop"]), ["esc"])), _cache[4] || (_cache[4] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onEnterKey'), ["exact"]), ["enter"])), _cache[5] || (_cache[5] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onUpKey'), ["stop", "prevent"]), ["up"])), _cache[6] || (_cache[6] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onDownKey'), ["stop", "prevent"]), ["down"])), _cache[7] || (_cache[7] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onHomeKey'), ["stop", "prevent"]), ["home"])), _cache[8] || (_cache[8] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)($event => $options.onKeyValidation($event, 'onEndKey'), ["stop", "prevent"]), ["end"]))]
2953
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", comboboxvue_type_template_id_1cf89689_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "input", {
2963
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", comboboxvue_type_template_id_83040a60_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "input", {
2954
2964
  inputProps: $options.inputProps
2955
2965
  })]), $props.showList ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
2956
2966
  key: 0,
@@ -2965,16 +2975,22 @@ function comboboxvue_type_template_id_1cf89689_render(_ctx, _cache, $props, $set
2965
2975
  onMousemoveCapture: _cache[2] || (_cache[2] = function () {
2966
2976
  return $options.onMouseHighlight && $options.onMouseHighlight(...arguments);
2967
2977
  })
2968
- }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
2978
+ }, [$data.isLoading && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
2969
2979
  key: 0
2970
- }, $options.listProps)), null, 16)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
2971
- key: 1,
2980
+ }, $options.listProps)), null, 16)) : $data.isListEmpty && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
2981
+ key: 1
2982
+ }, $options.listProps, {
2983
+ message: $props.emptyStateMessage
2984
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
2985
+ key: 2,
2972
2986
  listProps: $options.listProps,
2973
2987
  opened: $options.onOpen,
2974
- clearHighlightIndex: $options.clearHighlightIndex
2975
- })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_1cf89689_hoisted_1);
2988
+ clearHighlightIndex: $options.clearHighlightIndex,
2989
+ isLoading: $data.isLoading,
2990
+ isListEmpty: $data.isListEmpty
2991
+ })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_83040a60_hoisted_1);
2976
2992
  }
2977
- ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=1cf89689
2993
+ ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=83040a60
2978
2994
 
2979
2995
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
2980
2996
  /* harmony default export */ const dom = ({
@@ -3277,22 +3293,20 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3277
3293
  this.setHighlightIndex(this._itemsLength() - 1);
3278
3294
  },
3279
3295
 
3280
- async setHighlightIndex(num) {
3296
+ setHighlightIndex(num) {
3281
3297
  this[indexKey] = num;
3282
3298
  this[idKey] = this._getItemId(num);
3283
3299
 
3284
3300
  if (this._itemsLength() && afterHighlightMethod) {
3285
- await this.$nextTick();
3286
3301
  this[afterHighlightMethod](num);
3287
3302
  }
3288
3303
  },
3289
3304
 
3290
- async setHighlightId(id) {
3305
+ setHighlightId(id) {
3291
3306
  this[idKey] = id;
3292
3307
  this[indexKey] = this._getItemIndex(id);
3293
3308
 
3294
3309
  if (this._itemsLength() && afterHighlightMethod) {
3295
- await this.$nextTick();
3296
3310
  this[afterHighlightMethod](this._getItemIndex(id));
3297
3311
  }
3298
3312
  },
@@ -3351,14 +3365,18 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3351
3365
  }
3352
3366
  };
3353
3367
  });
3354
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
3368
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
3355
3369
 
3356
- function combobox_loading_listvue_type_template_id_49c938eb_render(_ctx, _cache, $props, $setup, $data, $options) {
3370
+ const combobox_loading_listvue_type_template_id_07d9971d_hoisted_1 = {
3371
+ class: "d-p0 d-mt8 d-hmx332 d-of-y-auto",
3372
+ "aria-busy": "true"
3373
+ };
3374
+ function combobox_loading_listvue_type_template_id_07d9971d_render(_ctx, _cache, $props, $setup, $data, $options) {
3357
3375
  const _component_dt_skeleton = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-skeleton");
3358
3376
 
3359
3377
  const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-list-item");
3360
3378
 
3361
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", null, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderList)(7, index => {
3379
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("ol", combobox_loading_listvue_type_template_id_07d9971d_hoisted_1, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderList)(7, index => {
3362
3380
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_list_item, {
3363
3381
  key: index,
3364
3382
  role: "option",
@@ -3374,7 +3392,7 @@ function combobox_loading_listvue_type_template_id_49c938eb_render(_ctx, _cache,
3374
3392
  }, 1024);
3375
3393
  }), 64))]);
3376
3394
  }
3377
- ;// CONCATENATED MODULE: ./components/combobox/combobox_loading-list.vue?vue&type=template&id=49c938eb
3395
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_loading-list.vue?vue&type=template&id=07d9971d
3378
3396
 
3379
3397
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
3380
3398
 
@@ -4268,17 +4286,64 @@ const skeleton_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(skeletonv
4268
4286
 
4269
4287
 
4270
4288
  ;
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_49c938eb_render]])
4289
+ 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]])
4272
4290
 
4273
4291
  /* harmony default export */ const combobox_loading_list = (combobox_loading_list_exports_);
4292
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
4293
+
4294
+ const combobox_empty_listvue_type_template_id_85c21112_hoisted_1 = {
4295
+ class: "d-p0",
4296
+ "data-qa": "dt-combobox-empty-list"
4297
+ };
4298
+ function combobox_empty_listvue_type_template_id_85c21112_render(_ctx, _cache, $props, $setup, $data, $options) {
4299
+ const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-list-item");
4300
+
4301
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("ol", combobox_empty_listvue_type_template_id_85c21112_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_list_item, {
4302
+ class: "d-d-flex d-jc-center",
4303
+ role: "option",
4304
+ "navigation-type": "arrow-keys"
4305
+ }, {
4306
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.message), 1)]),
4307
+ _: 1
4308
+ })]);
4309
+ }
4310
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112
4311
+
4312
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4313
+
4314
+ /* harmony default export */ const combobox_empty_listvue_type_script_lang_js = ({
4315
+ name: 'ComboboxEmptyList',
4316
+ components: {
4317
+ DtListItem: list_item
4318
+ },
4319
+ props: {
4320
+ message: {
4321
+ type: String,
4322
+ required: true
4323
+ }
4324
+ }
4325
+ });
4326
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4327
+
4328
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue
4329
+
4330
+
4331
+
4332
+
4333
+ ;
4334
+ 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]])
4335
+
4336
+ /* harmony default export */ const combobox_empty_list = (combobox_empty_list_exports_);
4274
4337
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=script&lang=js
4275
4338
 
4276
4339
 
4277
4340
 
4341
+
4278
4342
  /* harmony default export */ const comboboxvue_type_script_lang_js = ({
4279
4343
  name: 'DtCombobox',
4280
4344
  components: {
4281
- ComboboxLoadingList: combobox_loading_list
4345
+ ComboboxLoadingList: combobox_loading_list,
4346
+ ComboboxEmptyList: combobox_empty_list
4282
4347
  },
4283
4348
  mixins: [keyboard_list_navigation({
4284
4349
  indexKey: 'highlightIndex',
@@ -4349,6 +4414,14 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4349
4414
  loading: {
4350
4415
  type: Boolean,
4351
4416
  default: false
4417
+ },
4418
+
4419
+ /**
4420
+ * Message to show when the list is empty
4421
+ */
4422
+ emptyStateMessage: {
4423
+ type: String,
4424
+ default: ''
4352
4425
  }
4353
4426
  },
4354
4427
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -4358,7 +4431,9 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4358
4431
  // If the list is rendered at the root, rather than as a child
4359
4432
  // of this component, this is the ref to that dom element. Set
4360
4433
  // by the onOpen method.
4361
- outsideRenderedListRef: null
4434
+ outsideRenderedListRef: null,
4435
+ isListEmpty: undefined,
4436
+ isLoading: undefined
4362
4437
  };
4363
4438
  },
4364
4439
 
@@ -4409,22 +4484,38 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4409
4484
  watch: {
4410
4485
  showList(showList) {
4411
4486
  // When the list's visibility changes reset the highlight index.
4412
- this.$nextTick(function () {
4413
- if (!this.listRenderedOutside) {
4414
- this.setInitialHighlightIndex();
4415
- this.$emit('opened', showList);
4416
- }
4417
- });
4487
+ if (!this.listRenderedOutside) {
4488
+ this.setInitialHighlightIndex();
4489
+ this.$emit('opened', showList);
4490
+ }
4418
4491
 
4419
4492
  if (!showList && this.outsideRenderedListRef) {
4420
4493
  this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);
4421
4494
  this.outsideRenderedListRef = null;
4495
+ this.isListEmpty = undefined;
4422
4496
  }
4497
+ },
4498
+
4499
+ loading(isLoading) {
4500
+ this.isListEmpty = undefined;
4501
+ this.isLoading = isLoading;
4502
+ this.$nextTick(() => {
4503
+ this.isListEmpty = this.checkItemsLength();
4504
+ this.setInitialHighlightIndex();
4505
+ });
4423
4506
  }
4424
4507
 
4425
4508
  },
4509
+
4510
+ async mounted() {
4511
+ this.isLoading = this.loading;
4512
+ await this.$nextTick();
4513
+ this.isListEmpty = this.checkItemsLength();
4514
+ },
4515
+
4426
4516
  methods: {
4427
4517
  onMouseHighlight(e) {
4518
+ if (this.loading) return;
4428
4519
  const liElement = e.target.closest('li');
4429
4520
 
4430
4521
  if (liElement && this.highlightId !== liElement.id) {
@@ -4445,10 +4536,13 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4445
4536
  },
4446
4537
 
4447
4538
  afterHighlight() {
4539
+ if (this.loading) return;
4448
4540
  this.$emit('highlight', this.highlightIndex);
4449
4541
  },
4450
4542
 
4451
4543
  onEnterKey() {
4544
+ if (this.loading || this.isListEmpty) return;
4545
+
4452
4546
  if (this.highlightIndex >= 0) {
4453
4547
  this.$emit('select', this.highlightIndex);
4454
4548
  }
@@ -4466,24 +4560,30 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4466
4560
  this.$emit('opened', open);
4467
4561
 
4468
4562
  if (open) {
4563
+ this.isListEmpty = this.checkItemsLength();
4469
4564
  this.setInitialHighlightIndex();
4470
4565
  }
4471
4566
  },
4472
4567
 
4473
4568
  onKeyValidation(e, eventHandler) {
4474
- if (!this.showList || !this.getListElement() || this.loading) {
4475
- return;
4476
- }
4477
-
4569
+ if (!this.showList || !this.getListElement()) return;
4478
4570
  this[eventHandler](e);
4479
4571
  },
4480
4572
 
4481
4573
  setInitialHighlightIndex() {
4482
- if (this.showList) {
4574
+ if (!this.showList) return;
4575
+ this.$nextTick(() => {
4483
4576
  // When the list's is shown, reset the highlight index.
4484
- // If the list is in loading state, set to -1
4577
+ // If the list is loading, set to -1
4485
4578
  this.setHighlightIndex(this.loading ? -1 : 0);
4486
- }
4579
+ });
4580
+ },
4581
+
4582
+ checkItemsLength() {
4583
+ if (!this.showList) return undefined;
4584
+ const list = this.getListElement();
4585
+ const options = list === null || list === void 0 ? void 0 : list.querySelectorAll("[role=\"option\"]");
4586
+ return (options === null || options === void 0 ? void 0 : options.length) === 0;
4487
4587
  }
4488
4588
 
4489
4589
  }
@@ -4496,7 +4596,7 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4496
4596
 
4497
4597
 
4498
4598
  ;
4499
- const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_1cf89689_render]])
4599
+ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_83040a60_render]])
4500
4600
 
4501
4601
  /* harmony default export */ const combobox = (combobox_exports_);
4502
4602
  ;// CONCATENATED MODULE: ./components/combobox/index.js
@@ -4556,11 +4656,11 @@ function dropdownvue_type_template_id_b0e1f8ba_render(_ctx, _cache, $props, $set
4556
4656
  }
4557
4657
  ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
4558
4658
 
4559
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
4659
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
4560
4660
 
4561
- const popovervue_type_template_id_0656612f_hoisted_1 = ["aria-hidden"];
4562
- const popovervue_type_template_id_0656612f_hoisted_2 = ["id"];
4563
- function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setup, $data, $options) {
4661
+ const popovervue_type_template_id_582f9c98_hoisted_1 = ["aria-hidden"];
4662
+ const popovervue_type_template_id_582f9c98_hoisted_2 = ["id"];
4663
+ function popovervue_type_template_id_582f9c98_render(_ctx, _cache, $props, $setup, $data, $options) {
4564
4664
  const _component_popover_header_footer = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("popover-header-footer");
4565
4665
 
4566
4666
  const _component_dt_lazy_show = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-lazy-show");
@@ -4572,7 +4672,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4572
4672
  class: "d-modal--transparent",
4573
4673
  "aria-hidden": $props.modal && $data.isOpen ? 'false' : 'true',
4574
4674
  onClick: _cache[0] || (_cache[0] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)(() => {}, ["prevent", "stop"]))
4575
- }, null, 8, popovervue_type_template_id_0656612f_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveDynamicComponent)($props.elementType), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
4675
+ }, null, 8, popovervue_type_template_id_582f9c98_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveDynamicComponent)($props.elementType), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
4576
4676
  ref: "popover",
4577
4677
  class: ['d-popover', {
4578
4678
  'd-popover__anchor--modal-opened': $props.modal && $data.isOpen
@@ -4601,7 +4701,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4601
4701
  'aria-controls': $props.id,
4602
4702
  'aria-haspopup': $props.role
4603
4703
  }
4604
- })], 40, popovervue_type_template_id_0656612f_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
4704
+ })], 40, popovervue_type_template_id_582f9c98_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
4605
4705
  id: $props.id,
4606
4706
  ref: "content",
4607
4707
  role: $props.role,
@@ -4663,7 +4763,7 @@ function popovervue_type_template_id_0656612f_render(_ctx, _cache, $props, $setu
4663
4763
  _: 3
4664
4764
  }, 16, ["class"]))]);
4665
4765
  }
4666
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=0656612f
4766
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=582f9c98
4667
4767
 
4668
4768
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
4669
4769
  function getWindow(node) {
@@ -9115,6 +9215,7 @@ const getArrowDetected = fn => ({
9115
9215
 
9116
9216
 
9117
9217
  const BASE_TIPPY_DIRECTIONS = ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'];
9218
+ const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];
9118
9219
  const tippy_utils_createTippy = (anchorElement, options) => {
9119
9220
  const {
9120
9221
  contentElement
@@ -9122,6 +9223,7 @@ const tippy_utils_createTippy = (anchorElement, options) => {
9122
9223
  };
9123
9224
  delete options.contentElement;
9124
9225
  return tippy_esm(anchorElement, { ...options,
9226
+ plugins: [sticky],
9125
9227
  render: () => getContentWrapper(contentElement)
9126
9228
  });
9127
9229
  };
@@ -9197,6 +9299,7 @@ const POPOVER_HEADER_FOOTER_PADDING_CLASSES = {
9197
9299
  const POPOVER_ROLES = ['dialog', 'menu', 'listbox', 'tree', 'grid'];
9198
9300
  const POPOVER_CONTENT_WIDTHS = [null, 'anchor'];
9199
9301
  const POPOVER_INITIAL_FOCUS_STRINGS = ['none', 'dialog', 'first'];
9302
+ const POPOVER_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
9200
9303
  const POPOVER_DIRECTIONS = [...BASE_TIPPY_DIRECTIONS];
9201
9304
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
9202
9305
 
@@ -9565,6 +9668,21 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9565
9668
  default: 'bottom-end'
9566
9669
  },
9567
9670
 
9671
+ /**
9672
+ * If the popover sticks to the anchor. This is usually not needed, but can be needed
9673
+ * if the reference element's position is animating, or to automatically update the popover
9674
+ * position in those cases the DOM layout changes the reference element's position.
9675
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
9676
+ * checks the "popper" rect for changes.
9677
+ */
9678
+ sticky: {
9679
+ type: [Boolean, String],
9680
+ default: false,
9681
+ validator: sticky => {
9682
+ return POPOVER_STICKY_VALUES.includes(sticky);
9683
+ }
9684
+ },
9685
+
9568
9686
  /**
9569
9687
  * Determines maximum height for the popover before overflow.
9570
9688
  * Possible units rem|px|em
@@ -9678,14 +9796,20 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9678
9796
 
9679
9797
  offset(offset) {
9680
9798
  this.tip.setProps({
9681
- offset: offset
9799
+ offset
9800
+ });
9801
+ },
9802
+
9803
+ sticky(sticky) {
9804
+ this.tip.setProps({
9805
+ sticky
9682
9806
  });
9683
9807
  },
9684
9808
 
9685
9809
  fallbackPlacements(fallbackPlacements) {
9686
9810
  this.tip.setProps({
9687
9811
  popperOptions: getPopperOptions({
9688
- fallbackPlacements: fallbackPlacements,
9812
+ fallbackPlacements,
9689
9813
  hasHideModifierEnabled: true
9690
9814
  })
9691
9815
  });
@@ -9738,6 +9862,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9738
9862
  contentElement: this.popoverContentEl,
9739
9863
  placement: this.placement,
9740
9864
  offset: this.offset,
9865
+ sticky: this.sticky,
9741
9866
  appendTo: document.body,
9742
9867
  interactive: true,
9743
9868
  trigger: 'manual',
@@ -9950,9 +10075,9 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
9950
10075
  });
9951
10076
  ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=script&lang=js
9952
10077
 
9953
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.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
9954
- var popovervue_type_style_index_0_id_0656612f_lang_less = __webpack_require__(790);
9955
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=0656612f&lang=less
10078
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.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
10079
+ var popovervue_type_style_index_0_id_582f9c98_lang_less = __webpack_require__(403);
10080
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=582f9c98&lang=less
9956
10081
 
9957
10082
  ;// CONCATENATED MODULE: ./components/popover/popover.vue
9958
10083
 
@@ -9962,7 +10087,7 @@ var popovervue_type_style_index_0_id_0656612f_lang_less = __webpack_require__(79
9962
10087
  ;
9963
10088
 
9964
10089
 
9965
- const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_0656612f_render]])
10090
+ const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_582f9c98_render]])
9966
10091
 
9967
10092
  /* harmony default export */ const popover = (popover_exports_);
9968
10093
  ;// CONCATENATED MODULE: ./components/popover/index.js
@@ -10273,10 +10398,10 @@ const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownv
10273
10398
  /* harmony default export */ const dropdown = (dropdown_exports_);
10274
10399
  ;// CONCATENATED MODULE: ./components/dropdown/index.js
10275
10400
 
10276
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
10401
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
10277
10402
 
10278
- const emojivue_type_template_id_010f8b36_hoisted_1 = ["aria-label", "alt", "title", "src"];
10279
- function emojivue_type_template_id_010f8b36_render(_ctx, _cache, $props, $setup, $data, $options) {
10403
+ const emojivue_type_template_id_85307cb0_hoisted_1 = ["aria-label", "alt", "title", "src"];
10404
+ function emojivue_type_template_id_85307cb0_render(_ctx, _cache, $props, $setup, $data, $options) {
10280
10405
  const _component_dt_skeleton = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-skeleton");
10281
10406
 
10282
10407
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", {
@@ -10303,9 +10428,9 @@ function emojivue_type_template_id_010f8b36_render(_ctx, _cache, $props, $setup,
10303
10428
  onError: _cache[1] || (_cache[1] = function () {
10304
10429
  return $options.imageErrored && $options.imageErrored(...arguments);
10305
10430
  })
10306
- }, null, 42, emojivue_type_template_id_010f8b36_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_.vShow, !$data.imgLoading]]) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 2);
10431
+ }, null, 42, emojivue_type_template_id_85307cb0_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_.vShow, !$data.imgLoading]]) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 2);
10307
10432
  }
10308
- ;// CONCATENATED MODULE: ./components/emoji/emoji.vue?vue&type=template&id=010f8b36
10433
+ ;// CONCATENATED MODULE: ./components/emoji/emoji.vue?vue&type=template&id=85307cb0
10309
10434
 
10310
10435
  ;// CONCATENATED MODULE: ./components/emoji/emoji_constants.js
10311
10436
  const EMOJI_SIZES = {
@@ -10328,7 +10453,8 @@ var emoji_regex_default = /*#__PURE__*/__webpack_require__.n(emoji_regex);
10328
10453
  ;// CONCATENATED MODULE: ./common/emoji.js
10329
10454
 
10330
10455
  const emojiVersion = '6.6';
10331
- const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/'; // Used for emoji 16px and smaller
10456
+ const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/';
10457
+ let customEmojiAssetUrl = null; // Used for emoji 16px and smaller
10332
10458
 
10333
10459
  let emojiImageUrlSmall = defaultEmojiAssetUrl;
10334
10460
  let emojiFileExtensionSmall = '.png'; // Used for emoji larger than 16px
@@ -10340,6 +10466,9 @@ async function getEmojiJson() {
10340
10466
  if (emojiJson) return;
10341
10467
  emojiJson = await __webpack_require__.e(/* import() */ 370).then(__webpack_require__.t.bind(__webpack_require__, 370, 19));
10342
10468
  }
10469
+ function getEmojiData() {
10470
+ return emojiJson;
10471
+ }
10343
10472
  function setEmojiAssetUrlSmall(url) {
10344
10473
  let fileExtension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.png';
10345
10474
 
@@ -10359,6 +10488,69 @@ function setEmojiAssetUrlLarge(url) {
10359
10488
 
10360
10489
  emojiImageUrlLarge = url;
10361
10490
  emojiFileExtensionLarge = fileExtension;
10491
+ }
10492
+ function setCustomEmojiUrl(url) {
10493
+ customEmojiAssetUrl = url;
10494
+ }
10495
+ function setCustomEmojiJson(json) {
10496
+ validateCustomEmojiJson(json);
10497
+ }
10498
+ /**
10499
+ * Validate custom emoji json
10500
+ */
10501
+
10502
+ async function validateCustomEmojiJson(json) {
10503
+ await getEmojiJson();
10504
+ const customEmojiProps = ['extension', 'custom'];
10505
+ const customEmojiRequiredProps = ['name', 'category', 'shortname', 'extension', 'custom'];
10506
+ /**
10507
+ * Update single emoji properties.
10508
+ * If the property exists in emojiData, it'll add the values if the property is an array, otherwise will overwrite.
10509
+ * If not exists, will add the property to the emojiData object.
10510
+ */
10511
+
10512
+ const _updateNativeEmojiData = (emojiData, propName, propValue) => {
10513
+ if (emojiData[propName] === undefined) {
10514
+ if (!customEmojiProps.includes(propName)) {
10515
+ return;
10516
+ } // new property to add
10517
+
10518
+
10519
+ emojiData[propName] = propValue;
10520
+ } else {
10521
+ if (Array.isArray(emojiData[propName])) {
10522
+ emojiData[propName] = emojiData[propName].concat(propValue);
10523
+ } else {
10524
+ emojiData[propName] = propValue;
10525
+ }
10526
+ }
10527
+ };
10528
+
10529
+ Object.entries(json).forEach(item => {
10530
+ const [customEmojiKey, customEmojiValue] = item;
10531
+
10532
+ if (customEmojiKey in emojiJson) {
10533
+ // custom emoji exists in emoji json which means to update some data in the native emoji
10534
+ const emojiData = emojiJson[customEmojiKey];
10535
+
10536
+ for (const customEmojiPropertyName in customEmojiValue) {
10537
+ const customEmojiPropertyValue = customEmojiValue[customEmojiPropertyName];
10538
+
10539
+ _updateNativeEmojiData(emojiData, customEmojiPropertyName, customEmojiPropertyValue);
10540
+ }
10541
+ } else {
10542
+ // new custom emoji
10543
+ const _validateRequiredProps = () => customEmojiRequiredProps.every(val => {
10544
+ return customEmojiValue[val] !== undefined;
10545
+ });
10546
+
10547
+ if (_validateRequiredProps()) {
10548
+ emojiJson[customEmojiKey] = customEmojiValue;
10549
+ } else {
10550
+ console.error('The following custom emoji doesn\'t contain the required properties:', customEmojiValue);
10551
+ }
10552
+ }
10553
+ });
10362
10554
  } // recursively searches the emoji data object containing data for all emojis
10363
10555
  // and returns the object with the specified shortcode.
10364
10556
 
@@ -10383,7 +10575,7 @@ function shortcodeToEmojiData(shortcode) {
10383
10575
  }
10384
10576
 
10385
10577
  let reference;
10386
- f(emojiJson, null);
10578
+ f(getEmojiData(), null);
10387
10579
  return reference;
10388
10580
  } // Takes in an emoji unicode character(s) and converts it to an emoji string in the format the emoji data object expects
10389
10581
  // as a key. There can be multiple unicode characters in an emoji to denote the emoji itself, skin tone, gender
@@ -10433,8 +10625,11 @@ async function codeToEmojiData(code) {
10433
10625
  // @returns {string[]}
10434
10626
 
10435
10627
  function findShortCodes(textContent) {
10436
- const shortCodes = textContent.match(/:\w+:/g);
10437
- const filtered = shortCodes ? shortCodes.filter(code => shortcodeToEmojiData(code)) : [];
10628
+ const shortcodes = textContent.match(/:\w+:/g);
10629
+ return filterValidShortCodes(shortcodes);
10630
+ }
10631
+ function filterValidShortCodes(shortcodes) {
10632
+ const filtered = shortcodes ? shortcodes.filter(code => shortcodeToEmojiData(code)) : [];
10438
10633
  return new Set(filtered);
10439
10634
  } // Finds every emoji in slot text
10440
10635
  // removes duplicates
@@ -10457,7 +10652,8 @@ function findEmojis(textContent) {
10457
10652
  props: {
10458
10653
  /**
10459
10654
  * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.
10460
- * See https://emojipedia.org/joypixels/ for all supported shortcode/unicode.
10655
+ * See https://emojipedia.org/joypixels/ for all supported shortcode/unicode or the docs
10656
+ * for setting up custom emojis.
10461
10657
  */
10462
10658
  code: {
10463
10659
  type: String,
@@ -10510,8 +10706,15 @@ function findEmojis(textContent) {
10510
10706
  },
10511
10707
 
10512
10708
  emojiSrc() {
10709
+ var _this$emojiData;
10710
+
10513
10711
  if (!this.emojiDataValid) {
10514
10712
  return 'invalid';
10713
+ } // custom emoji
10714
+
10715
+
10716
+ if ((_this$emojiData = this.emojiData) !== null && _this$emojiData !== void 0 && _this$emojiData.custom) {
10717
+ return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;
10515
10718
  }
10516
10719
 
10517
10720
  if (['d-svg--size14', 'd-svg--size16'].includes(this.size)) {
@@ -10526,7 +10729,7 @@ function findEmojis(textContent) {
10526
10729
  return undefined;
10527
10730
  }
10528
10731
 
10529
- return stringToUnicode(this.emojiData.unicode_output);
10732
+ return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;
10530
10733
  },
10531
10734
 
10532
10735
  emojiLabel() {
@@ -10580,12 +10783,117 @@ function findEmojis(textContent) {
10580
10783
 
10581
10784
 
10582
10785
  ;
10583
- const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_type_script_lang_js, [['render',emojivue_type_template_id_010f8b36_render]])
10786
+ const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_type_script_lang_js, [['render',emojivue_type_template_id_85307cb0_render]])
10584
10787
 
10585
10788
  /* harmony default export */ const emoji = (emoji_exports_);
10586
10789
  ;// CONCATENATED MODULE: ./components/emoji/index.js
10587
10790
 
10588
10791
 
10792
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
10793
+
10794
+
10795
+
10796
+ /* harmony default export */ const emoji_text_wrappervue_type_script_lang_js = ({
10797
+ name: 'DtEmojiTextWrapper',
10798
+ components: {
10799
+ DtEmoji: emoji
10800
+ },
10801
+ inheritAttrs: false,
10802
+ props: {
10803
+ /**
10804
+ * The type of element to use for the wrapper.
10805
+ */
10806
+ elementType: {
10807
+ type: String,
10808
+ default: 'div'
10809
+ }
10810
+ },
10811
+
10812
+ data() {
10813
+ return {
10814
+ loadingEmojiJson: true
10815
+ };
10816
+ },
10817
+
10818
+ async created() {
10819
+ await getEmojiJson();
10820
+ this.loadingEmojiJson = false;
10821
+ },
10822
+
10823
+ methods: {
10824
+ /**
10825
+ * Replaces the valid codes from the text content with a DtEmoji component.
10826
+ * @returns {Array<VNode|string>}
10827
+ */
10828
+ replaceDtEmojis(replaceList, textContent) {
10829
+ const regexp = new RegExp("(".concat(replaceList.join('|'), ")"), 'g');
10830
+ const split = textContent.split(regexp);
10831
+ return split.map(item => {
10832
+ if (replaceList.includes(item)) {
10833
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(emoji, { ...this.$attrs,
10834
+ class: 'd-mx4 d-d-inline-block',
10835
+ code: item
10836
+ });
10837
+ }
10838
+
10839
+ return item;
10840
+ });
10841
+ },
10842
+
10843
+ /**
10844
+ * Recursively search the Vue virtual DOM to find text
10845
+ * @param VNode
10846
+ * @returns {VNode|*}
10847
+ */
10848
+ searchVNodes(VNode) {
10849
+ var _VNode$props;
10850
+
10851
+ if (typeof VNode === 'string') return this.searchCodes(VNode);
10852
+ if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);
10853
+ if ((_VNode$props = VNode.props) !== null && _VNode$props !== void 0 && _VNode$props.innerHTML) return this.searchVNodes(VNode.props.innerHTML);
10854
+ const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];
10855
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));
10856
+ },
10857
+
10858
+ // TODO: Find a way to crawl vue components
10859
+ replaceVueComponentVNodeContent(VNode) {//
10860
+ },
10861
+
10862
+ /**
10863
+ * Find codes in text.
10864
+ * @param textContent string
10865
+ * @returns {Array<VNode|string>|string}
10866
+ */
10867
+ searchCodes(textContent) {
10868
+ const shortcodes = findShortCodes(textContent);
10869
+ const emojis = findEmojis(textContent);
10870
+ const replaceList = [...shortcodes, ...emojis];
10871
+ if (replaceList.length === 0) return textContent;
10872
+ return this.replaceDtEmojis(replaceList, textContent);
10873
+ }
10874
+
10875
+ },
10876
+
10877
+ render() {
10878
+ const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];
10879
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(this.elementType, {
10880
+ 'data-qa': 'emoji-text-wrapper',
10881
+ class: this.$attrs.class
10882
+ }, this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map(VNode => this.searchVNodes(VNode)));
10883
+ }
10884
+
10885
+ });
10886
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/emoji_text_wrapper.vue?vue&type=script&lang=js
10887
+
10888
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/emoji_text_wrapper.vue
10889
+
10890
+
10891
+
10892
+ const emoji_text_wrapper_exports_ = emoji_text_wrappervue_type_script_lang_js;
10893
+
10894
+ /* harmony default export */ const emoji_text_wrapper = (emoji_text_wrapper_exports_);
10895
+ ;// CONCATENATED MODULE: ./components/emoji_text_wrapper/index.js
10896
+
10589
10897
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
10590
10898
 
10591
10899
  const inputvue_type_template_id_1204d99d_hoisted_1 = {
@@ -14406,15 +14714,15 @@ const toggle_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(togglevue_t
14406
14714
  /* harmony default export */ const toggle = (toggle_exports_);
14407
14715
  ;// CONCATENATED MODULE: ./components/toggle/index.js
14408
14716
 
14409
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
14717
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
14410
14718
 
14411
- const tooltipvue_type_template_id_044c8b20_hoisted_1 = {
14719
+ const tooltipvue_type_template_id_46955932_hoisted_1 = {
14412
14720
  "data-qa": "dt-tooltip-container"
14413
14721
  };
14414
- function tooltipvue_type_template_id_044c8b20_render(_ctx, _cache, $props, $setup, $data, $options) {
14722
+ function tooltipvue_type_template_id_46955932_render(_ctx, _cache, $props, $setup, $data, $options) {
14415
14723
  const _component_dt_lazy_show = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-lazy-show");
14416
14724
 
14417
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", tooltipvue_type_template_id_044c8b20_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
14725
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", tooltipvue_type_template_id_46955932_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
14418
14726
  ref: "anchor",
14419
14727
  "data-qa": "dt-tooltip-anchor",
14420
14728
  onFocusin: _cache[0] || (_cache[0] = function () {
@@ -14451,7 +14759,7 @@ function tooltipvue_type_template_id_044c8b20_render(_ctx, _cache, $props, $setu
14451
14759
  _: 3
14452
14760
  }, 8, ["id", "show", "transition", "class", "onAfterLeave", "onAfterEnter"])]);
14453
14761
  }
14454
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=044c8b20
14762
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=46955932
14455
14763
 
14456
14764
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip_constants.js
14457
14765
  /*
@@ -14465,6 +14773,7 @@ const TOOLTIP_KIND_MODIFIERS = {
14465
14773
  inverted: "d-tooltip--inverted",
14466
14774
  hide: "d-tooltip--hide"
14467
14775
  };
14776
+ const TOOLTIP_STICKY_VALUES = [...TIPPY_STICKY_VALUES];
14468
14777
  const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14469
14778
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=script&lang=js
14470
14779
 
@@ -14531,6 +14840,21 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14531
14840
 
14532
14841
  },
14533
14842
 
14843
+ /**
14844
+ * If the tooltip sticks to the anchor. This is usually not needed, but can be needed
14845
+ * if the reference element's position is animating, or to automatically update the popover
14846
+ * position in those cases the DOM layout changes the reference element's position.
14847
+ * `true` enables it, `reference` only checks the "reference" rect for changes and `popper` only
14848
+ * checks the "popper" rect for changes.
14849
+ */
14850
+ sticky: {
14851
+ type: [Boolean, String],
14852
+ default: false,
14853
+ validator: sticky => {
14854
+ return TOOLTIP_STICKY_VALUES.includes(sticky);
14855
+ }
14856
+ },
14857
+
14534
14858
  /**
14535
14859
  * Additional css classes for the tooltip content element.
14536
14860
  * Can accept all of String, Object, and Array, i.e. has the
@@ -14592,6 +14916,7 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14592
14916
  interactive: false,
14593
14917
  trigger: 'manual',
14594
14918
  placement: this.placement,
14919
+ sticky: this.sticky,
14595
14920
  popperOptions: getPopperOptions({
14596
14921
  fallbackPlacements: this.fallbackPlacements,
14597
14922
  hasHideModifierEnabled: true,
@@ -14622,6 +14947,12 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14622
14947
  } else {
14623
14948
  this.tip.hide();
14624
14949
  }
14950
+ },
14951
+
14952
+ sticky(sticky) {
14953
+ this.tip.setProps({
14954
+ sticky
14955
+ });
14625
14956
  }
14626
14957
 
14627
14958
  },
@@ -14727,9 +15058,9 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
14727
15058
  });
14728
15059
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=script&lang=js
14729
15060
 
14730
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.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
14731
- var tooltipvue_type_style_index_0_id_044c8b20_lang_less = __webpack_require__(273);
14732
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=044c8b20&lang=less
15061
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.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
15062
+ var tooltipvue_type_style_index_0_id_46955932_lang_less = __webpack_require__(831);
15063
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=46955932&lang=less
14733
15064
 
14734
15065
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue
14735
15066
 
@@ -14739,7 +15070,7 @@ var tooltipvue_type_style_index_0_id_044c8b20_lang_less = __webpack_require__(27
14739
15070
  ;
14740
15071
 
14741
15072
 
14742
- const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_044c8b20_render]])
15073
+ const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_46955932_render]])
14743
15074
 
14744
15075
  /* harmony default export */ const tooltip = (tooltip_exports_);
14745
15076
  ;// CONCATENATED MODULE: ./components/tooltip/index.js
@@ -15304,19 +15635,22 @@ const root_layout_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(root_l
15304
15635
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
15305
15636
 
15306
15637
 
15307
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
15638
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
15308
15639
 
15309
- const combobox_with_popovervue_type_template_id_250cf6fe_hoisted_1 = ["id"];
15310
- const combobox_with_popovervue_type_template_id_250cf6fe_hoisted_2 = ["onMouseleave", "onFocusout"];
15311
- function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache, $props, $setup, $data, $options) {
15640
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_1 = ["id"];
15641
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_2 = ["onMouseleave", "onFocusout"];
15642
+ function combobox_with_popovervue_type_template_id_37048598_render(_ctx, _cache, $props, $setup, $data, $options) {
15312
15643
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("combobox-loading-list");
15313
15644
 
15645
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("combobox-empty-list");
15646
+
15314
15647
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-popover");
15315
15648
 
15316
15649
  const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-combobox");
15317
15650
 
15318
15651
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_dt_combobox, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15319
15652
  ref: "combobox",
15653
+ loading: $props.loading,
15320
15654
  "show-list": $data.isListShown,
15321
15655
  "on-beginning-of-list": $props.onBeginningOfList,
15322
15656
  "on-end-of-list": $props.onEndOfList,
@@ -15342,22 +15676,25 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15342
15676
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "input", {
15343
15677
  inputProps: inputProps,
15344
15678
  onInput: $options.handleDisplayList
15345
- })], 40, combobox_with_popovervue_type_template_id_250cf6fe_hoisted_1)];
15679
+ })], 40, combobox_with_popovervue_type_template_id_37048598_hoisted_1)];
15346
15680
  }),
15347
15681
  list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(_ref2 => {
15348
15682
  let {
15349
15683
  opened,
15350
15684
  listProps,
15351
- clearHighlightIndex
15685
+ clearHighlightIndex,
15686
+ isLoading,
15687
+ isListEmpty
15352
15688
  } = _ref2;
15353
15689
  return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_popover, {
15354
15690
  ref: "popover",
15355
15691
  open: $data.isListShown,
15356
15692
  "onUpdate:open": _cache[6] || (_cache[6] = $event => $data.isListShown = $event),
15357
- "hide-on-click": true,
15693
+ "hide-on-click": $props.showList === null,
15358
15694
  "max-height": $props.maxHeight,
15359
15695
  "max-width": $props.maxWidth,
15360
15696
  offset: $props.popoverOffset,
15697
+ sticky: $props.popoverSticky,
15361
15698
  placement: "bottom-start",
15362
15699
  padding: "none",
15363
15700
  role: "listbox",
@@ -15368,12 +15705,7 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15368
15705
  "auto-focus": false,
15369
15706
  onOpened: opened
15370
15707
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createSlots)({
15371
- content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15372
- key: 0
15373
- }, listProps, {
15374
- class: [$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]
15375
- }), null, 16, ["class"])) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
15376
- key: 1,
15708
+ content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
15377
15709
  ref: "listWrapper",
15378
15710
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
15379
15711
  onMouseleave: clearHighlightIndex,
@@ -15381,9 +15713,16 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15381
15713
  clearHighlightIndex;
15382
15714
  $options.onFocusOut;
15383
15715
  }
15384
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
15716
+ }, [isLoading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15717
+ key: 0
15718
+ }, listProps)), null, 16)) : isListEmpty ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15719
+ key: 1
15720
+ }, listProps, {
15721
+ message: $props.emptyStateMessage
15722
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
15723
+ key: 2,
15385
15724
  listProps: listProps
15386
- })], 42, combobox_with_popovervue_type_template_id_250cf6fe_hoisted_2))]),
15725
+ })], 42, combobox_with_popovervue_type_template_id_37048598_hoisted_2)]),
15387
15726
  _: 2
15388
15727
  }, [_ctx.$slots.header ? {
15389
15728
  name: "headerContent",
@@ -15401,24 +15740,26 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15401
15740
  return $options.onFocusOut && $options.onFocusOut(...arguments);
15402
15741
  })
15403
15742
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "footer")], 544)])
15404
- } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "external-anchor", "content-width", "onOpened"])];
15743
+ } : undefined]), 1032, ["open", "hide-on-click", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "onOpened"])];
15405
15744
  }),
15406
15745
  _: 3
15407
- }, 16, ["show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15746
+ }, 16, ["loading", "show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15408
15747
  }
15409
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=250cf6fe
15748
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=37048598
15410
15749
 
15411
15750
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
15412
15751
 
15413
15752
 
15414
15753
 
15415
15754
 
15755
+
15416
15756
  /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
15417
15757
  name: 'DtRecipeComboboxWithPopover',
15418
15758
  components: {
15419
15759
  DtCombobox: combobox,
15420
15760
  DtPopover: popover,
15421
- ComboboxLoadingList: combobox_loading_list
15761
+ ComboboxLoadingList: combobox_loading_list,
15762
+ ComboboxEmptyList: combobox_empty_list
15422
15763
  },
15423
15764
  props: {
15424
15765
  /**
@@ -15534,6 +15875,14 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15534
15875
  default: () => [0, 4]
15535
15876
  },
15536
15877
 
15878
+ /**
15879
+ * If the popover sticks to the input.
15880
+ */
15881
+ popoverSticky: {
15882
+ type: [Boolean, String],
15883
+ default: false
15884
+ },
15885
+
15537
15886
  /**
15538
15887
  * Displays the list when the combobox is focused, before the user has typed anything.
15539
15888
  * When this is enabled the list will not close after selection.
@@ -15549,6 +15898,14 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15549
15898
  loading: {
15550
15899
  type: Boolean,
15551
15900
  default: false
15901
+ },
15902
+
15903
+ /**
15904
+ * Message to show when the list is empty
15905
+ */
15906
+ emptyStateMessage: {
15907
+ type: String,
15908
+ default: ''
15552
15909
  }
15553
15910
  },
15554
15911
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -15589,13 +15946,7 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15589
15946
 
15590
15947
  },
15591
15948
  methods: {
15592
- async handleDisplayList(value) {
15593
- if (this.isListShown) {
15594
- // After the list is updated, hightlight the first item
15595
- await this.$nextTick();
15596
- this.$refs.combobox.setInitialHighlightIndex();
15597
- }
15598
-
15949
+ handleDisplayList(value) {
15599
15950
  if (!this.hasSuggestionList) {
15600
15951
  if (value) {
15601
15952
  // Displays the list after the user has typed anything
@@ -15685,35 +16036,35 @@ function combobox_with_popovervue_type_template_id_250cf6fe_render(_ctx, _cache,
15685
16036
 
15686
16037
 
15687
16038
  ;
15688
- 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]])
16039
+ 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]])
15689
16040
 
15690
16041
  /* harmony default export */ const combobox_with_popover = (combobox_with_popover_exports_);
15691
16042
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/index.js
15692
16043
 
15693
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
16044
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.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
15694
16045
 
15695
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_1 = {
16046
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_1 = {
15696
16047
  ref: "inputSlotWrapper",
15697
16048
  class: "d-ps-relative"
15698
16049
  };
15699
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_2 = {
16050
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_2 = {
15700
16051
  ref: "chipsWrapper",
15701
16052
  class: "d-ps-absolute d-mx2"
15702
16053
  };
15703
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_3 = {
16054
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_3 = {
15704
16055
  ref: "header"
15705
16056
  };
15706
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_4 = {
16057
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_4 = {
15707
16058
  ref: "list"
15708
16059
  };
15709
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_5 = {
16060
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_5 = {
15710
16061
  key: 1,
15711
16062
  class: "d-ta-center d-py16"
15712
16063
  };
15713
- const combobox_multi_selectvue_type_template_id_4f85e207_hoisted_6 = {
16064
+ const combobox_multi_selectvue_type_template_id_d29708fc_hoisted_6 = {
15714
16065
  ref: "footer"
15715
16066
  };
15716
- function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache, $props, $setup, $data, $options) {
16067
+ function combobox_multi_selectvue_type_template_id_d29708fc_render(_ctx, _cache, $props, $setup, $data, $options) {
15717
16068
  const _component_dt_chip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-chip");
15718
16069
 
15719
16070
  const _component_dt_input = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-input");
@@ -15736,7 +16087,7 @@ function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache,
15736
16087
  let {
15737
16088
  onInput
15738
16089
  } = _ref;
15739
- return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_2, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderList)($props.selectedItems, item => {
16090
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_2, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderList)($props.selectedItems, item => {
15740
16091
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_dt_chip, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15741
16092
  ref_for: true,
15742
16093
  ref: "chips",
@@ -15771,19 +16122,19 @@ function combobox_multi_selectvue_type_template_id_4f85e207_render(_ctx, _cache,
15771
16122
  "show-messages": $data.showValidationMessages
15772
16123
  }, null, 8, ["validation-messages", "show-messages"])], 512)];
15773
16124
  }),
15774
- list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
16125
+ list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
15775
16126
  key: 0
15776
- }) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.loadingMessage), 1))], 512)]),
16127
+ }) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.loadingMessage), 1))], 512)]),
15777
16128
  _: 2
15778
16129
  }, [_ctx.$slots.header ? {
15779
16130
  name: "header",
15780
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "header")], 512)])
16131
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "header")], 512)])
15781
16132
  } : undefined, _ctx.$slots.footer ? {
15782
16133
  name: "footer",
15783
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_4f85e207_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "footer")], 512)])
16134
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", combobox_multi_selectvue_type_template_id_d29708fc_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "footer")], 512)])
15784
16135
  } : undefined]), 1032, ["show-list", "max-height", "popover-offset", "has-suggestion-list", "onSelect"]);
15785
16136
  }
15786
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=4f85e207
16137
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=d29708fc
15787
16138
 
15788
16139
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select_story_constants.js
15789
16140
  // The item list for default story
@@ -16000,7 +16351,7 @@ const MULTI_SELECT_SIZES = {
16000
16351
  },
16001
16352
 
16002
16353
  /**
16003
- * Max select message when the max selections has been reached with the structure:
16354
+ * Max select message when the max selections is exceeded with the structure:
16004
16355
  * `[{"message": string, "type": VALIDATION_MESSAGE_TYPES }]`
16005
16356
  */
16006
16357
  maxSelectedMessage: {
@@ -16060,10 +16411,19 @@ const MULTI_SELECT_SIZES = {
16060
16411
  return {
16061
16412
  input: event => {
16062
16413
  this.$emit('input', event);
16414
+
16415
+ if (this.hasSuggestionList) {
16416
+ this.showComboboxList();
16417
+ }
16063
16418
  },
16064
16419
  keyup: event => {
16065
16420
  this.onInputKeyup(event);
16066
16421
  this.$emit('keyup', event);
16422
+ },
16423
+ click: event => {
16424
+ if (this.hasSuggestionList) {
16425
+ this.showComboboxList();
16426
+ }
16067
16427
  }
16068
16428
  };
16069
16429
  }
@@ -16121,6 +16481,22 @@ const MULTI_SELECT_SIZES = {
16121
16481
  this.$emit('select', i);
16122
16482
  },
16123
16483
 
16484
+ showComboboxList() {
16485
+ if (this.showList != null) {
16486
+ return;
16487
+ }
16488
+
16489
+ this.$refs.comboboxWithPopover.showComboboxList();
16490
+ },
16491
+
16492
+ closeComboboxList() {
16493
+ if (this.showList != null) {
16494
+ return;
16495
+ }
16496
+
16497
+ this.$refs.comboboxWithPopover.closeComboboxList();
16498
+ },
16499
+
16124
16500
  getChipButtons() {
16125
16501
  return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));
16126
16502
  },
@@ -16182,13 +16558,13 @@ const MULTI_SELECT_SIZES = {
16182
16558
  moveFromInputToChip() {
16183
16559
  this.getLastChipButton().focus();
16184
16560
  this.$refs.input.blur();
16185
- this.$refs.comboboxWithPopover.closeComboboxList();
16561
+ this.closeComboboxList();
16186
16562
  },
16187
16563
 
16188
16564
  moveFromChipToInput() {
16189
16565
  this.getLastChipButton().blur();
16190
16566
  this.$refs.input.focus();
16191
- this.$refs.comboboxWithPopover.showComboboxList();
16567
+ this.showComboboxList();
16192
16568
  },
16193
16569
 
16194
16570
  navigateBetweenChips(target, toLeft) {
@@ -16201,7 +16577,7 @@ const MULTI_SELECT_SIZES = {
16201
16577
 
16202
16578
  this.getChipButtons()[from].blur();
16203
16579
  this.getChipButtons()[to].focus();
16204
- this.$refs.comboboxWithPopover.closeComboboxList();
16580
+ this.closeComboboxList();
16205
16581
  },
16206
16582
 
16207
16583
  setChipsTopPosition() {
@@ -16271,7 +16647,7 @@ const MULTI_SELECT_SIZES = {
16271
16647
  checkMaxSelected() {
16272
16648
  if (this.maxSelected === 0) return;
16273
16649
 
16274
- if (this.selectedItems.length >= this.maxSelected) {
16650
+ if (this.selectedItems.length > this.maxSelected) {
16275
16651
  this.showValidationMessages = true;
16276
16652
  this.$emit('max-selected');
16277
16653
  } else {
@@ -16289,7 +16665,7 @@ const MULTI_SELECT_SIZES = {
16289
16665
 
16290
16666
 
16291
16667
  ;
16292
- 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]])
16668
+ 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]])
16293
16669
 
16294
16670
  /* harmony default export */ const combobox_multi_select = (combobox_multi_select_exports_);
16295
16671
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/index.js
@@ -16580,6 +16956,7 @@ const top_banner_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(to
16580
16956
 
16581
16957
 
16582
16958
 
16959
+
16583
16960
 
16584
16961
 
16585
16962
  /// Recipes