@dialpad/dialtone-vue 3.5.0 → 3.6.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.
@@ -49,7 +49,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".dt-default-list-item,.dt-default-list
49
49
 
50
50
  /***/ }),
51
51
 
52
- /***/ 987:
52
+ /***/ 15:
53
53
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
54
54
 
55
55
  "use strict";
@@ -425,19 +425,19 @@ var update = add("c62e22ae", content, true, {"sourceMap":false,"shadowMode":fals
425
425
 
426
426
  /***/ }),
427
427
 
428
- /***/ 366:
428
+ /***/ 213:
429
429
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
430
430
 
431
431
  // style-loader: Adds some css to the DOM by adding a <style> tag
432
432
 
433
433
  // load the styles
434
- var content = __webpack_require__(987);
434
+ var content = __webpack_require__(15);
435
435
  if(content.__esModule) content = content.default;
436
436
  if(typeof content === 'string') content = [[module.id, content, '']];
437
437
  if(content.locals) module.exports = content.locals;
438
438
  // add the styles to the DOM
439
439
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
440
- var update = add("48240900", content, true, {"sourceMap":false,"shadowMode":false});
440
+ var update = add("7e5f7c46", content, true, {"sourceMap":false,"shadowMode":false});
441
441
 
442
442
  /***/ }),
443
443
 
@@ -1135,6 +1135,8 @@ __webpack_require__.d(__webpack_exports__, {
1135
1135
  "DtPopover": () => (/* reexport */ popover),
1136
1136
  "DtRadio": () => (/* reexport */ radio_radio),
1137
1137
  "DtRadioGroup": () => (/* reexport */ radio_group),
1138
+ "DtRecipeComboboxMultiSelect": () => (/* reexport */ combobox_multi_select),
1139
+ "DtRecipeComboboxWithPopover": () => (/* reexport */ combobox_with_popover),
1138
1140
  "DtRecipeContactInfo": () => (/* reexport */ contact_info),
1139
1141
  "DtRecipeTopBannerInfo": () => (/* reexport */ top_banner_info),
1140
1142
  "DtRootLayout": () => (/* reexport */ root_layout),
@@ -1228,7 +1230,7 @@ if (typeof window !== 'undefined') {
1228
1230
 
1229
1231
  ;// CONCATENATED MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
1230
1232
  const external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject = require("vue");
1231
- ;// 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/avatar/avatar.vue?vue&type=template&id=3dcc5cfa
1233
+ ;// 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/avatar/avatar.vue?vue&type=template&id=a43ab9f6
1232
1234
 
1233
1235
  const _hoisted_1 = ["id"];
1234
1236
  function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1238,7 +1240,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1238
1240
  "data-qa": "dt-avatar"
1239
1241
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1);
1240
1242
  }
1241
- ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=3dcc5cfa
1243
+ ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=a43ab9f6
1242
1244
 
1243
1245
  ;// CONCATENATED MODULE: ./components/avatar/avatar_constants.js
1244
1246
  const AVATAR_KIND_MODIFIERS = {
@@ -1496,16 +1498,23 @@ const flushPromises = () => {
1496
1498
  const firstChild = this.$el.children[0];
1497
1499
 
1498
1500
  if (firstChild) {
1499
- this.validateElementType(firstChild);
1500
1501
  this.setKind(firstChild);
1501
1502
  this.validateImageAttrsPresence();
1502
1503
  }
1503
1504
  },
1504
1505
 
1505
1506
  setKind(element) {
1506
- if (this.isSvgType(element)) this.kind = 'icon';
1507
- if (this.isImageType(element)) this.kind = 'image';
1508
- if (this.isInitialsType(element)) this.kind = 'initials';
1507
+ if (this.isSvgType(element)) {
1508
+ this.kind = 'icon';
1509
+ return;
1510
+ }
1511
+
1512
+ if (this.isImageType(element)) {
1513
+ this.kind = 'image';
1514
+ return;
1515
+ }
1516
+
1517
+ this.kind = 'initials';
1509
1518
  },
1510
1519
 
1511
1520
  isSvgType(element) {
@@ -1520,15 +1529,6 @@ const flushPromises = () => {
1520
1529
  return (element === null || element === void 0 ? void 0 : (_element$tagName2 = element.tagName) === null || _element$tagName2 === void 0 ? void 0 : _element$tagName2.toUpperCase()) === 'IMG';
1521
1530
  },
1522
1531
 
1523
- isInitialsType(element) {
1524
- return (element === null || element === void 0 ? void 0 : element.nodeType) === Node.TEXT_NODE;
1525
- },
1526
-
1527
- validateElementType(element) {
1528
- if (this.isInitialsType(element) || this.isSvgType(element) || this.isImageType(element)) return;
1529
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.warn)('img, svg, and raw text are the only valid elements to put inside the avatar', this);
1530
- },
1531
-
1532
1532
  validateImageAttrsPresence() {
1533
1533
  if (this.kind === 'image') {
1534
1534
  // Check that default slot image required attributes are provided
@@ -3544,10 +3544,10 @@ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxv
3544
3544
  /* harmony default export */ const combobox = (combobox_exports_);
3545
3545
  ;// CONCATENATED MODULE: ./components/combobox/index.js
3546
3546
 
3547
- ;// 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/dropdown/dropdown.vue?vue&type=template&id=e86dedbc
3547
+ ;// 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/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
3548
3548
 
3549
- const dropdownvue_type_template_id_e86dedbc_hoisted_1 = ["id"];
3550
- function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $setup, $data, $options) {
3549
+ const dropdownvue_type_template_id_b0e1f8ba_hoisted_1 = ["id"];
3550
+ function dropdownvue_type_template_id_b0e1f8ba_render(_ctx, _cache, $props, $setup, $data, $options) {
3551
3551
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
3552
3552
 
3553
3553
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_popover, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
@@ -3555,7 +3555,7 @@ function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $set
3555
3555
  "content-width": $props.contentWidth,
3556
3556
  open: $props.open,
3557
3557
  placement: $props.placement,
3558
- "initial-focus-element": "first",
3558
+ "initial-focus-element": $data.openedWithKeyboard ? 'first' : 'dialog',
3559
3559
  "fallback-placements": $props.fallbackPlacements,
3560
3560
  padding: "none",
3561
3561
  role: "menu",
@@ -3592,12 +3592,12 @@ function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $set
3592
3592
  })
3593
3593
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
3594
3594
  close: close
3595
- })], 42, dropdownvue_type_template_id_e86dedbc_hoisted_1)];
3595
+ })], 42, dropdownvue_type_template_id_b0e1f8ba_hoisted_1)];
3596
3596
  }),
3597
3597
  _: 3
3598
- }, 16, ["content-width", "open", "placement", "fallback-placements", "modal", "max-height", "max-width", "onOpened", "onKeydown"]);
3598
+ }, 16, ["content-width", "open", "placement", "initial-focus-element", "fallback-placements", "modal", "max-height", "max-width", "onOpened", "onKeydown"]);
3599
3599
  }
3600
- ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=e86dedbc
3600
+ ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
3601
3601
 
3602
3602
  ;// 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
3603
3603
 
@@ -9325,7 +9325,7 @@ const DROPDOWN_PADDING_CLASSES = {
9325
9325
 
9326
9326
 
9327
9327
  ;
9328
- const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownvue_type_script_lang_js, [['render',dropdownvue_type_template_id_e86dedbc_render]])
9328
+ const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownvue_type_script_lang_js, [['render',dropdownvue_type_template_id_b0e1f8ba_render]])
9329
9329
 
9330
9330
  /* harmony default export */ const dropdown = (dropdown_exports_);
9331
9331
  ;// CONCATENATED MODULE: ./components/dropdown/index.js
@@ -10239,15 +10239,15 @@ const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_typ
10239
10239
  ;// CONCATENATED MODULE: ./components/emoji/index.js
10240
10240
 
10241
10241
 
10242
- ;// 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=0337d4a5
10242
+ ;// 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
10243
10243
 
10244
- const inputvue_type_template_id_0337d4a5_hoisted_1 = {
10244
+ const inputvue_type_template_id_1204d99d_hoisted_1 = {
10245
10245
  ref: "container",
10246
10246
  class: "base-input",
10247
10247
  "data-qa": "dt-input"
10248
10248
  };
10249
- const inputvue_type_template_id_0337d4a5_hoisted_2 = ["aria-details"];
10250
- const inputvue_type_template_id_0337d4a5_hoisted_3 = ["id"];
10249
+ const inputvue_type_template_id_1204d99d_hoisted_2 = ["aria-details"];
10250
+ const inputvue_type_template_id_1204d99d_hoisted_3 = ["id"];
10251
10251
  const _hoisted_4 = {
10252
10252
  key: 0
10253
10253
  };
@@ -10261,23 +10261,25 @@ const _hoisted_6 = {
10261
10261
  };
10262
10262
  const _hoisted_7 = ["value", "name", "disabled", "maxlength"];
10263
10263
  const _hoisted_8 = ["value", "name", "type", "disabled", "maxlength"];
10264
- function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup, $data, $options) {
10264
+ function inputvue_type_template_id_1204d99d_render(_ctx, _cache, $props, $setup, $data, $options) {
10265
10265
  const _component_dt_validation_messages = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-validation-messages");
10266
10266
 
10267
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", inputvue_type_template_id_0337d4a5_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("label", {
10267
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", inputvue_type_template_id_1204d99d_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("label", {
10268
10268
  class: "base-input__label",
10269
10269
  "aria-details": _ctx.$slots.description || $props.description ? $options.descriptionKey : undefined,
10270
10270
  "data-qa": "dt-input-label-wrapper"
10271
10271
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "labelSlot", {}, () => [$props.label ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
10272
10272
  key: 0,
10273
+ ref: "label",
10273
10274
  "data-qa": "dt-input-label",
10274
10275
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['base-input__label-text', 'd-label', $data.labelSizeClasses[$props.size]])
10275
10276
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.label), 3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]), _ctx.$slots.description || $props.description || $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
10276
10277
  key: 0,
10277
10278
  id: $options.descriptionKey,
10279
+ ref: "description",
10278
10280
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['base-input__description', 'd-description', 'd-fd-column', $data.descriptionSizeClasses[$props.size]]),
10279
10281
  "data-qa": "dt-input-description"
10280
- }, [_ctx.$slots.description || $props.description ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "description", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.description), 1)])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.validationProps.length.description), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 10, inputvue_type_template_id_0337d4a5_hoisted_3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_6, [_ctx.$slots.leftIcon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
10282
+ }, [_ctx.$slots.description || $props.description ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "description", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.description), 1)])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.validationProps.length.description), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 10, inputvue_type_template_id_1204d99d_hoisted_3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_6, [_ctx.$slots.leftIcon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
10281
10283
  key: 0,
10282
10284
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)($options.inputIconClasses('left')),
10283
10285
  "data-qa": "dt-input-left-icon-wrapper",
@@ -10310,7 +10312,7 @@ function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup,
10310
10312
  onFocusout: _cache[1] || (_cache[1] = function () {
10311
10313
  return $options.onBlur && $options.onBlur(...arguments);
10312
10314
  })
10313
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "rightIcon")], 34)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])], 8, inputvue_type_template_id_0337d4a5_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_validation_messages, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
10315
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "rightIcon")], 34)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])], 8, inputvue_type_template_id_1204d99d_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_validation_messages, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
10314
10316
  "validation-messages": $options.validationMessages,
10315
10317
  "show-messages": _ctx.showMessages,
10316
10318
  class: _ctx.messagesClass
@@ -10318,7 +10320,7 @@ function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup,
10318
10320
  "data-qa": "dt-input-messages"
10319
10321
  }), null, 16, ["validation-messages", "show-messages", "class"])], 512);
10320
10322
  }
10321
- ;// CONCATENATED MODULE: ./components/input/input.vue?vue&type=template&id=0337d4a5
10323
+ ;// CONCATENATED MODULE: ./components/input/input.vue?vue&type=template&id=1204d99d
10322
10324
 
10323
10325
  ;// CONCATENATED MODULE: ./components/input/input_constants.js
10324
10326
  // Valid input types, any other input types (for example: 'radio' or 'checkbox') should
@@ -11221,7 +11223,7 @@ const MessagesMixin = {
11221
11223
 
11222
11224
 
11223
11225
  ;
11224
- const input_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(inputvue_type_script_lang_js, [['render',inputvue_type_template_id_0337d4a5_render]])
11226
+ const input_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(inputvue_type_script_lang_js, [['render',inputvue_type_template_id_1204d99d_render]])
11225
11227
 
11226
11228
  /* harmony default export */ const input_input = (input_exports_);
11227
11229
  ;// CONCATENATED MODULE: ./components/input/index.js
@@ -11962,9 +11964,9 @@ const list_section_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_
11962
11964
  /* harmony default export */ const list_section = (list_section_exports_);
11963
11965
  ;// CONCATENATED MODULE: ./components/list_section/index.js
11964
11966
 
11965
- ;// 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=7876bc36
11967
+ ;// 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
11966
11968
 
11967
- function list_itemvue_type_template_id_7876bc36_render(_ctx, _cache, $props, $setup, $data, $options) {
11969
+ function list_itemvue_type_template_id_237d2c10_render(_ctx, _cache, $props, $setup, $data, $options) {
11968
11970
  return (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)({
11969
11971
  id: $props.id,
11970
11972
  class: ['dt-list-item d-ls-none focus-visible', {
@@ -11990,7 +11992,7 @@ function list_itemvue_type_template_id_7876bc36_render(_ctx, _cache, $props, $se
11990
11992
  _: 3
11991
11993
  }, 16, ["id", "class", "tabindex", "role", "aria-selected"]);
11992
11994
  }
11993
- ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=template&id=7876bc36
11995
+ ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=template&id=237d2c10
11994
11996
 
11995
11997
  ;// 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/default_list_item.vue?vue&type=template&id=4c89d4ed
11996
11998
 
@@ -12118,7 +12120,7 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12118
12120
  validator: t => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t)
12119
12121
  }
12120
12122
  },
12121
- emits: ['click', 'keydown', 'mousemove', 'mouseleave'],
12123
+ emits: ['keydown', 'mousemove', 'mouseleave', 'mousedown'],
12122
12124
 
12123
12125
  data() {
12124
12126
  return {
@@ -12147,6 +12149,13 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12147
12149
 
12148
12150
  this.$emit('keydown', event);
12149
12151
  },
12152
+ mousedown: event => {
12153
+ if (!this.isFocusable) {
12154
+ event.preventDefault();
12155
+ }
12156
+
12157
+ this.$emit('mousedown', event);
12158
+ },
12150
12159
  mousemove: event => {
12151
12160
  this.onMouseHover(event);
12152
12161
  this.$emit('mousemove', event);
@@ -12185,6 +12194,8 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12185
12194
  },
12186
12195
  methods: {
12187
12196
  onClick(e) {
12197
+ // disabled as we do not want to override native click
12198
+ // eslint-disable-next-line vue/require-explicit-emits
12188
12199
  this.$emit('click', e);
12189
12200
  },
12190
12201
 
@@ -12200,9 +12211,9 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12200
12211
  });
12201
12212
  ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=script&lang=js
12202
12213
 
12203
- // 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/list_item/list_item.vue?vue&type=style&index=0&id=7876bc36&lang=less
12204
- var list_itemvue_type_style_index_0_id_7876bc36_lang_less = __webpack_require__(366);
12205
- ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=style&index=0&id=7876bc36&lang=less
12214
+ // 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/list_item/list_item.vue?vue&type=style&index=0&id=237d2c10&lang=less
12215
+ var list_itemvue_type_style_index_0_id_237d2c10_lang_less = __webpack_require__(213);
12216
+ ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=style&index=0&id=237d2c10&lang=less
12206
12217
 
12207
12218
  ;// CONCATENATED MODULE: ./components/list_item/list_item.vue
12208
12219
 
@@ -12212,7 +12223,7 @@ var list_itemvue_type_style_index_0_id_7876bc36_lang_less = __webpack_require__(
12212
12223
  ;
12213
12224
 
12214
12225
 
12215
- const list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_itemvue_type_script_lang_js, [['render',list_itemvue_type_template_id_7876bc36_render]])
12226
+ const list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_itemvue_type_script_lang_js, [['render',list_itemvue_type_template_id_237d2c10_render]])
12216
12227
 
12217
12228
  /* harmony default export */ const list_item = (list_item_exports_);
12218
12229
  ;// CONCATENATED MODULE: ./components/list_item/index.js
@@ -12552,16 +12563,31 @@ const radio_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(radiovue_typ
12552
12563
  }
12553
12564
  },
12554
12565
  emits: ['input'],
12566
+
12567
+ data() {
12568
+ return {
12569
+ internalValue: this.value
12570
+ };
12571
+ },
12572
+
12555
12573
  watch: {
12556
- /*
12557
- * watching value to support 2 way binding for slotted radios.
12558
- * need this to pass value to slotted radios if modified outside
12559
- * radio group.
12560
- */
12561
12574
  value(newValue) {
12562
- this.provideObj.selectedValue = newValue;
12563
- }
12575
+ this.internalValue = newValue;
12576
+ },
12577
+
12578
+ /*
12579
+ * watching value to support 2 way binding for slotted radios.
12580
+ * need this to pass value to slotted checkboxes if modified outside
12581
+ * radio group.
12582
+ */
12583
+ internalValue: {
12584
+ immediate: true,
12564
12585
 
12586
+ handler(newInternalValue) {
12587
+ this.provideObj.selectedValue = newInternalValue;
12588
+ }
12589
+
12590
+ }
12565
12591
  },
12566
12592
  methods: {
12567
12593
  /*
@@ -13391,27 +13417,27 @@ const checkbox_group_exports_ = checkbox_groupvue_type_script_lang_js;
13391
13417
  /* harmony default export */ const checkbox_group = (checkbox_group_exports_);
13392
13418
  ;// CONCATENATED MODULE: ./components/checkbox_group/index.js
13393
13419
 
13394
- ;// 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/chip/chip.vue?vue&type=template&id=8a56dabe
13420
+ ;// 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/chip/chip.vue?vue&type=template&id=1805ca4d
13395
13421
 
13396
- const chipvue_type_template_id_8a56dabe_hoisted_1 = {
13422
+ const chipvue_type_template_id_1805ca4d_hoisted_1 = {
13397
13423
  class: "d-chip"
13398
13424
  };
13399
- const chipvue_type_template_id_8a56dabe_hoisted_2 = {
13425
+ const chipvue_type_template_id_1805ca4d_hoisted_2 = {
13400
13426
  key: 0,
13401
13427
  "data-qa": "dt-chip-icon",
13402
13428
  class: "d-chip__icon"
13403
13429
  };
13404
- const chipvue_type_template_id_8a56dabe_hoisted_3 = {
13430
+ const chipvue_type_template_id_1805ca4d_hoisted_3 = {
13405
13431
  key: 1,
13406
13432
  "data-qa": "dt-chip-avatar"
13407
13433
  };
13408
- const chipvue_type_template_id_8a56dabe_hoisted_4 = ["id"];
13409
- function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup, $data, $options) {
13434
+ const chipvue_type_template_id_1805ca4d_hoisted_4 = ["id"];
13435
+ function chipvue_type_template_id_1805ca4d_render(_ctx, _cache, $props, $setup, $data, $options) {
13410
13436
  const _component_icon_close = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("icon-close");
13411
13437
 
13412
13438
  const _component_dt_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-button");
13413
13439
 
13414
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_1, [((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.interactive ? 'button' : 'span'), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
13440
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_1, [((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.interactive ? 'button' : 'span'), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
13415
13441
  id: $props.id,
13416
13442
  type: $props.interactive && 'button',
13417
13443
  class: $options.chipClasses(),
@@ -13419,12 +13445,12 @@ function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup,
13419
13445
  "aria-labelledby": $props.ariaLabel ? undefined : "".concat($props.id, "-content"),
13420
13446
  "aria-label": $props.ariaLabel
13421
13447
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)($options.chipListeners)), {
13422
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [_ctx.$slots.icon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "icon")])) : _ctx.$slots.avatar ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "avatar")])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), _ctx.$slots.default ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
13448
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [_ctx.$slots.icon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "icon")])) : _ctx.$slots.avatar ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "avatar")])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), _ctx.$slots.default ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
13423
13449
  key: 2,
13424
13450
  id: "".concat($props.id, "-content"),
13425
13451
  "data-qa": "dt-chip-label",
13426
13452
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['d-truncate', 'd-chip__text', $props.contentClass])
13427
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")], 10, chipvue_type_template_id_8a56dabe_hoisted_4)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
13453
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")], 10, chipvue_type_template_id_1805ca4d_hoisted_4)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
13428
13454
  _: 3
13429
13455
  }, 16, ["id", "type", "class", "aria-labelledby", "aria-label"])), !$props.hideClose ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_button, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
13430
13456
  key: 0
@@ -13438,7 +13464,7 @@ function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup,
13438
13464
  _: 1
13439
13465
  }, 16, ["class", "aria-label"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]);
13440
13466
  }
13441
- ;// CONCATENATED MODULE: ./components/chip/chip.vue?vue&type=template&id=8a56dabe
13467
+ ;// CONCATENATED MODULE: ./components/chip/chip.vue?vue&type=template&id=1805ca4d
13442
13468
 
13443
13469
  ;// CONCATENATED MODULE: ./components/chip/chip_constants.js
13444
13470
  const CHIP_SIZE_MODIFIERS = {
@@ -13471,6 +13497,11 @@ const CHIP_CLOSE_BUTTON_SIZE_MODIFIERS = {
13471
13497
  */
13472
13498
  closeButtonProps: {
13473
13499
  type: Object,
13500
+ default: function () {
13501
+ return {
13502
+ ariaLabel: 'close'
13503
+ };
13504
+ },
13474
13505
  validator: props => {
13475
13506
  return !!props.ariaLabel;
13476
13507
  }
@@ -13584,7 +13615,7 @@ const CHIP_CLOSE_BUTTON_SIZE_MODIFIERS = {
13584
13615
 
13585
13616
 
13586
13617
  ;
13587
- const chip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(chipvue_type_script_lang_js, [['render',chipvue_type_template_id_8a56dabe_render]])
13618
+ const chip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(chipvue_type_script_lang_js, [['render',chipvue_type_template_id_1805ca4d_render]])
13588
13619
 
13589
13620
  /* harmony default export */ const chip = (chip_exports_);
13590
13621
  ;// CONCATENATED MODULE: ./components/chip/index.js
@@ -15190,6 +15221,868 @@ const root_layout_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(root_l
15190
15221
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
15191
15222
 
15192
15223
 
15224
+ ;// 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=6e4f62a5
15225
+
15226
+ const combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_1 = ["id"];
15227
+ const combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_2 = ["onMouseleave", "onFocusout"];
15228
+ function combobox_with_popovervue_type_template_id_6e4f62a5_render(_ctx, _cache, $props, $setup, $data, $options) {
15229
+ const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
15230
+
15231
+ const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-combobox");
15232
+
15233
+ 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)({
15234
+ ref: "combobox",
15235
+ "show-list": $data.isListShown,
15236
+ "on-beginning-of-list": $props.onBeginningOfList,
15237
+ "on-end-of-list": $props.onEndOfList,
15238
+ "list-aria-label": $props.listAriaLabel,
15239
+ "list-rendered-outside": true,
15240
+ "list-id": $props.listId,
15241
+ "data-qa": "dt-combobox"
15242
+ }, $options.comboboxListeners), {
15243
+ input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref => {
15244
+ let {
15245
+ inputProps
15246
+ } = _ref;
15247
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
15248
+ id: $data.externalAnchor,
15249
+ ref: "input",
15250
+ onFocusin: _cache[0] || (_cache[0] = function () {
15251
+ return $options.onFocusIn && $options.onFocusIn(...arguments);
15252
+ }),
15253
+ onFocusout: _cache[1] || (_cache[1] = function () {
15254
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15255
+ }),
15256
+ onKeydown: [_cache[2] || (_cache[2] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["up"])), _cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["down"]))]
15257
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
15258
+ inputProps: inputProps,
15259
+ onInput: $options.handleDisplayList
15260
+ })], 40, combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_1)];
15261
+ }),
15262
+ list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
15263
+ let {
15264
+ opened,
15265
+ listProps,
15266
+ clearHighlightIndex
15267
+ } = _ref2;
15268
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_popover, {
15269
+ ref: "popover",
15270
+ open: $data.isListShown,
15271
+ "onUpdate:open": _cache[6] || (_cache[6] = $event => $data.isListShown = $event),
15272
+ "hide-on-click": true,
15273
+ "max-height": $props.maxHeight,
15274
+ "max-width": $props.maxWidth,
15275
+ offset: $props.popoverOffset,
15276
+ placement: "bottom-start",
15277
+ padding: "none",
15278
+ role: "listbox",
15279
+ "external-anchor": $data.externalAnchor,
15280
+ "content-width": $props.contentWidth,
15281
+ "content-tabindex": null,
15282
+ modal: false,
15283
+ "auto-focus": false,
15284
+ onOpened: opened
15285
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createSlots)({
15286
+ content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
15287
+ ref: "listWrapper",
15288
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
15289
+ onMouseleave: clearHighlightIndex,
15290
+ onFocusout: $event => {
15291
+ clearHighlightIndex;
15292
+ $options.onFocusOut;
15293
+ }
15294
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15295
+ listProps: listProps
15296
+ })], 42, combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_2)]),
15297
+ _: 2
15298
+ }, [_ctx.$slots.header ? {
15299
+ name: "headerContent",
15300
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
15301
+ ref: "header",
15302
+ onFocusout: _cache[4] || (_cache[4] = function () {
15303
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15304
+ })
15305
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 544)])
15306
+ } : undefined, _ctx.$slots.footer ? {
15307
+ name: "footerContent",
15308
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
15309
+ ref: "footer",
15310
+ onFocusout: _cache[5] || (_cache[5] = function () {
15311
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15312
+ })
15313
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 544)])
15314
+ } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "external-anchor", "content-width", "onOpened"])];
15315
+ }),
15316
+ _: 3
15317
+ }, 16, ["show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15318
+ }
15319
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=6e4f62a5
15320
+
15321
+ ;// 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
15322
+
15323
+
15324
+
15325
+ /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
15326
+ name: 'DtRecipeComboboxWithPopover',
15327
+ components: {
15328
+ DtCombobox: combobox,
15329
+ DtPopover: popover
15330
+ },
15331
+ props: {
15332
+ /**
15333
+ * String to use for the list's aria-label.
15334
+ */
15335
+ listAriaLabel: {
15336
+ type: String,
15337
+ required: true
15338
+ },
15339
+
15340
+ /**
15341
+ * Determines when to show the list element and also controls the aria-expanded attribute.
15342
+ * Leaving this null will have the combobox trigger on input focus by default.
15343
+ * If you set this value, the default trigger behavior will be disabled and you can
15344
+ * control it as you need.
15345
+ */
15346
+ showList: {
15347
+ type: Boolean,
15348
+ default: null
15349
+ },
15350
+
15351
+ /**
15352
+ * Sets an ID on the list element of the component. Used by several aria attributes
15353
+ * as well as when deriving the IDs for each item.
15354
+ */
15355
+ listId: {
15356
+ type: String,
15357
+
15358
+ default() {
15359
+ return getUniqueString();
15360
+ }
15361
+
15362
+ },
15363
+
15364
+ /**
15365
+ * Additional class for the wrapper list element.
15366
+ */
15367
+ listClass: {
15368
+ type: [String, Array, Object],
15369
+ default: ''
15370
+ },
15371
+
15372
+ /**
15373
+ * A method that will be called when the selection goes past the beginning of the list.
15374
+ */
15375
+ onBeginningOfList: {
15376
+ type: Function,
15377
+ default: null
15378
+ },
15379
+
15380
+ /**
15381
+ * A method that will be called when the selection goes past the end of the list.
15382
+ */
15383
+ onEndOfList: {
15384
+ type: Function,
15385
+ default: null
15386
+ },
15387
+
15388
+ /**
15389
+ * Determines maximum height for the popover before overflow.
15390
+ * Possible units rem|px|em
15391
+ */
15392
+ maxHeight: {
15393
+ type: String,
15394
+ default: ''
15395
+ },
15396
+
15397
+ /**
15398
+ * Determines maximum width for the popover before overflow.
15399
+ * Possible units rem|px|%|em
15400
+ */
15401
+ maxWidth: {
15402
+ type: String,
15403
+ default: ''
15404
+ },
15405
+
15406
+ /**
15407
+ * Vertical padding size around the list element.
15408
+ */
15409
+ padding: {
15410
+ type: String,
15411
+ default: 'small',
15412
+ validator: padding => {
15413
+ return Object.keys(DROPDOWN_PADDING_CLASSES).some(item => item === padding);
15414
+ }
15415
+ },
15416
+
15417
+ /**
15418
+ * Width configuration for the popover content. When its value is 'anchor',
15419
+ * the popover content will have the same width as the anchor.
15420
+ */
15421
+ contentWidth: {
15422
+ type: String,
15423
+ default: null,
15424
+ validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth)
15425
+ },
15426
+
15427
+ /**
15428
+ * If the list should be shown by pressing up or down arrow key on the input element.
15429
+ * This can be set when not passing showList prop.
15430
+ */
15431
+ openWithArrowKeys: {
15432
+ type: Boolean,
15433
+ default: false
15434
+ },
15435
+
15436
+ /**
15437
+ * Displaces the popover content box from its anchor element
15438
+ * by the specified number of pixels.
15439
+ */
15440
+ popoverOffset: {
15441
+ type: Array,
15442
+ default: () => [0, 4]
15443
+ },
15444
+
15445
+ /**
15446
+ * Displays the list when the combobox is focused, before the user has typed anything.
15447
+ * When this is enabled the list will not close after selection.
15448
+ */
15449
+ hasSuggestionList: {
15450
+ type: Boolean,
15451
+ default: true
15452
+ }
15453
+ },
15454
+ emits: ['select', 'escape', 'highlight', 'opened'],
15455
+
15456
+ data() {
15457
+ return {
15458
+ DROPDOWN_PADDING_CLASSES: DROPDOWN_PADDING_CLASSES,
15459
+ isListShown: false,
15460
+ isInputFocused: false,
15461
+ isListFocused: false,
15462
+ externalAnchor: getUniqueString()
15463
+ };
15464
+ },
15465
+
15466
+ computed: {
15467
+ comboboxListeners() {
15468
+ return { ...this.$attrs,
15469
+ onSelect: this.onSelect,
15470
+ onEscape: this.onEscape,
15471
+ onHighlight: this.onHighlight
15472
+ };
15473
+ }
15474
+
15475
+ },
15476
+ watch: {
15477
+ showList: {
15478
+ handler: function (show) {
15479
+ if (show !== null) {
15480
+ this.isListShown = show;
15481
+ }
15482
+ },
15483
+ immediate: true
15484
+ },
15485
+
15486
+ isListShown(val) {
15487
+ this.onOpened(val);
15488
+ }
15489
+
15490
+ },
15491
+ methods: {
15492
+ async handleDisplayList(value) {
15493
+ if (this.isListShown) {
15494
+ // After the list is updated, hightlight the first item
15495
+ await this.$nextTick();
15496
+ this.$refs.combobox.setInitialHighlightIndex();
15497
+ }
15498
+
15499
+ if (!this.hasSuggestionList) {
15500
+ if (value) {
15501
+ // Displays the list after the user has typed anything
15502
+ this.showComboboxList();
15503
+ } else {
15504
+ this.closeComboboxList();
15505
+ }
15506
+ }
15507
+ },
15508
+
15509
+ showComboboxList() {
15510
+ if (this.showList != null) {
15511
+ return;
15512
+ }
15513
+
15514
+ this.isListShown = true;
15515
+ },
15516
+
15517
+ closeComboboxList() {
15518
+ if (this.showList != null) {
15519
+ return;
15520
+ }
15521
+
15522
+ this.isListShown = false;
15523
+ },
15524
+
15525
+ onSelect(highlightIndex) {
15526
+ this.$emit('select', highlightIndex);
15527
+
15528
+ if (!this.hasSuggestionList) {
15529
+ // we don't display the list before the user has typed anything
15530
+ this.closeComboboxList();
15531
+ }
15532
+ },
15533
+
15534
+ onEscape() {
15535
+ this.$emit('escape');
15536
+ this.closeComboboxList();
15537
+ },
15538
+
15539
+ onHighlight(highlightIndex) {
15540
+ this.$emit('highlight', highlightIndex);
15541
+ },
15542
+
15543
+ onOpened(opened) {
15544
+ this.$emit('opened', opened);
15545
+ },
15546
+
15547
+ onFocusIn(e) {
15548
+ if (this.hasSuggestionList && e && this.$refs.input.querySelector('input') === e.target) {
15549
+ // only trigger if we show suggestion list when focus and
15550
+ // it's the input specifically that was focused
15551
+ this.showComboboxList();
15552
+ }
15553
+ },
15554
+
15555
+ onFocusOut(e) {
15556
+ const comboboxRefs = ['input', 'header', 'footer', 'listWrapper'];
15557
+ const isComboboxStillFocused = comboboxRefs.some(ref => {
15558
+ var _this$$refs$ref;
15559
+
15560
+ return (_this$$refs$ref = this.$refs[ref]) === null || _this$$refs$ref === void 0 ? void 0 : _this$$refs$ref.contains(e.relatedTarget);
15561
+ });
15562
+
15563
+ if (!isComboboxStillFocused) {
15564
+ this.closeComboboxList();
15565
+ }
15566
+ },
15567
+
15568
+ openOnArrowKeyPress(e) {
15569
+ if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) {
15570
+ return;
15571
+ }
15572
+
15573
+ this.showComboboxList();
15574
+ }
15575
+
15576
+ }
15577
+ });
15578
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
15579
+
15580
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue
15581
+
15582
+
15583
+
15584
+
15585
+ ;
15586
+ const combobox_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_with_popovervue_type_script_lang_js, [['render',combobox_with_popovervue_type_template_id_6e4f62a5_render]])
15587
+
15588
+ /* harmony default export */ const combobox_with_popover = (combobox_with_popover_exports_);
15589
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/index.js
15590
+
15591
+ ;// 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=74f7079d
15592
+
15593
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_1 = {
15594
+ ref: "inputSlotWrapper",
15595
+ class: "d-ps-relative"
15596
+ };
15597
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_2 = {
15598
+ ref: "chipsWrapper",
15599
+ class: "d-ps-absolute d-mx2"
15600
+ };
15601
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_3 = {
15602
+ ref: "header"
15603
+ };
15604
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_4 = {
15605
+ ref: "list"
15606
+ };
15607
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_5 = {
15608
+ key: 1,
15609
+ class: "d-ta-center d-py16"
15610
+ };
15611
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_6 = {
15612
+ ref: "footer"
15613
+ };
15614
+ function combobox_multi_selectvue_type_template_id_74f7079d_render(_ctx, _cache, $props, $setup, $data, $options) {
15615
+ const _component_dt_chip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-chip");
15616
+
15617
+ const _component_dt_input = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-input");
15618
+
15619
+ const _component_dt_validation_messages = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-validation-messages");
15620
+
15621
+ const _component_dt_recipe_combobox_with_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-recipe-combobox-with-popover");
15622
+
15623
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_recipe_combobox_with_popover, {
15624
+ ref: "comboboxWithPopover",
15625
+ "list-aria-label": "listAriaLabel",
15626
+ "show-list": $props.showList,
15627
+ "max-height": $props.listMaxHeight,
15628
+ "popover-offset": $data.popoverOffset,
15629
+ "has-suggestion-list": $props.hasSuggestionList,
15630
+ "content-width": "anchor",
15631
+ onSelect: $options.onComboboxSelect
15632
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createSlots)({
15633
+ input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref => {
15634
+ let {
15635
+ onInput
15636
+ } = _ref;
15637
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_74f7079d_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", combobox_multi_selectvue_type_template_id_74f7079d_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 => {
15638
+ 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)({
15639
+ ref_for: true,
15640
+ ref: "chips",
15641
+ key: item,
15642
+ class: "d-mt4 d-mx2 d-zi-base1",
15643
+ "close-button-props": {
15644
+ ariaLabel: 'close'
15645
+ }
15646
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)($options.chipListeners), {
15647
+ onKeyup: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.onChipRemove(item), ["backspace"]),
15648
+ onClose: $event => $options.onChipRemove(item)
15649
+ }), {
15650
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)(item), 1)]),
15651
+ _: 2
15652
+ }, 1040, ["onKeyup", "onClose"]);
15653
+ }), 128))], 512), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_input, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15654
+ ref: "input",
15655
+ modelValue: $data.value,
15656
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => $data.value = $event),
15657
+ class: "d-fl-grow1 d-mb4",
15658
+ label: $props.label,
15659
+ description: $props.description,
15660
+ placeholder: $options.inputPlaceHolder,
15661
+ "show-messages": $props.showInputMessages,
15662
+ messages: $props.inputMessages
15663
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)($options.inputListeners), {
15664
+ onInput: onInput
15665
+ }), null, 16, ["modelValue", "label", "description", "placeholder", "show-messages", "messages", "onInput"]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_validation_messages, {
15666
+ "validation-messages": $props.maxSelectedMessage,
15667
+ "show-messages": $data.showValidationMessages
15668
+ }, null, 8, ["validation-messages", "show-messages"])], 512)];
15669
+ }),
15670
+ 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_74f7079d_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15671
+ key: 0
15672
+ }) : ((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_74f7079d_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.loadingMessage), 1))], 512)]),
15673
+ _: 2
15674
+ }, [_ctx.$slots.header ? {
15675
+ name: "header",
15676
+ 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_74f7079d_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 512)])
15677
+ } : undefined, _ctx.$slots.footer ? {
15678
+ name: "footer",
15679
+ 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_74f7079d_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 512)])
15680
+ } : undefined]), 1032, ["show-list", "max-height", "popover-offset", "has-suggestion-list", "onSelect"]);
15681
+ }
15682
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=74f7079d
15683
+
15684
+ ;// 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_multi_select/combobox_multi_select.vue?vue&type=script&lang=js
15685
+ /* eslint-disable max-lines */
15686
+
15687
+
15688
+ /* harmony default export */ const combobox_multi_selectvue_type_script_lang_js = ({
15689
+ name: 'DtRecipeComboboxMultiSelect',
15690
+ components: {
15691
+ DtRecipeComboboxWithPopover: combobox_with_popover,
15692
+ DtInput: input_input,
15693
+ DtChip: chip,
15694
+ DtValidationMessages: validation_messages
15695
+ },
15696
+ props: {
15697
+ /**
15698
+ * Label for the combobox
15699
+ */
15700
+ label: {
15701
+ type: String,
15702
+ default: null
15703
+ },
15704
+
15705
+ /**
15706
+ * Description for the combobox
15707
+ */
15708
+ description: {
15709
+ type: String,
15710
+ default: null
15711
+ },
15712
+
15713
+ /**
15714
+ * Input placeholder
15715
+ */
15716
+ placeholder: {
15717
+ type: String,
15718
+ default: 'Select one or start typing'
15719
+ },
15720
+
15721
+ /**
15722
+ * Input validation messages
15723
+ */
15724
+ inputMessages: {
15725
+ type: Array,
15726
+ default: () => [],
15727
+ validator: inputMessages => {
15728
+ return validationMessageValidator(inputMessages);
15729
+ }
15730
+ },
15731
+
15732
+ /**
15733
+ * Show input validation message
15734
+ */
15735
+ showInputMessages: {
15736
+ type: Boolean,
15737
+ default: true
15738
+ },
15739
+ // @TODO: https://dialpad.atlassian.net/browse/DP-52324
15740
+ // type: {
15741
+ // type: String,
15742
+ // values: ['input', 'select'],
15743
+ // default: 'select',
15744
+ // },
15745
+
15746
+ /**
15747
+ * Determines if the list is loading
15748
+ */
15749
+ loading: {
15750
+ type: Boolean,
15751
+ default: false
15752
+ },
15753
+
15754
+ /**
15755
+ * The message when the list is loading
15756
+ */
15757
+ loadingMessage: {
15758
+ type: String,
15759
+ default: 'loading...'
15760
+ },
15761
+
15762
+ /**
15763
+ * Determines when to show the list element and also controls the aria-expanded attribute.
15764
+ * Leaving this null will have the combobox trigger on input focus by default.
15765
+ * If you set this value, the default trigger behavior will be disabled and you can
15766
+ * control it as you need.
15767
+ */
15768
+ showList: {
15769
+ type: Boolean,
15770
+ default: null
15771
+ },
15772
+
15773
+ /**
15774
+ * Determines maximum height for the popover before overflow.
15775
+ * Possible units rem|px|em
15776
+ */
15777
+ listMaxHeight: {
15778
+ type: String,
15779
+ default: '300px'
15780
+ },
15781
+
15782
+ /**
15783
+ * The selected items
15784
+ */
15785
+ selectedItems: {
15786
+ type: Array,
15787
+ default: function () {
15788
+ return [];
15789
+ }
15790
+ },
15791
+
15792
+ /**
15793
+ * Would be the maximum number of selections you can make. 0 is unlimited
15794
+ */
15795
+ maxSelected: {
15796
+ type: Number,
15797
+ default: 0
15798
+ },
15799
+
15800
+ /**
15801
+ * Max select message when the max selections has been reached with the structure:
15802
+ * `[{"message": string, "type": VALIDATION_MESSAGE_TYPES }]`
15803
+ */
15804
+ maxSelectedMessage: {
15805
+ type: Array,
15806
+ default: function () {
15807
+ return [];
15808
+ }
15809
+ },
15810
+
15811
+ /**
15812
+ * Displays the list when the combobox is focused, before the user has typed anything.
15813
+ * When this is enabled the list will not close after selection.
15814
+ */
15815
+ hasSuggestionList: {
15816
+ type: Boolean,
15817
+ default: true
15818
+ }
15819
+ },
15820
+ emits: ['input', 'select', 'remove', 'max-selected', 'keyup'],
15821
+
15822
+ data() {
15823
+ return {
15824
+ value: '',
15825
+ popoverOffset: [0, 0],
15826
+ showValidationMessages: false,
15827
+ initialInputPadding: {},
15828
+ resizeWindowObserver: null
15829
+ };
15830
+ },
15831
+
15832
+ computed: {
15833
+ inputPlaceHolder() {
15834
+ var _this$selectedItems;
15835
+
15836
+ return ((_this$selectedItems = this.selectedItems) === null || _this$selectedItems === void 0 ? void 0 : _this$selectedItems.length) > 0 ? '' : this.placeholder;
15837
+ },
15838
+
15839
+ chipListeners() {
15840
+ return {
15841
+ keyup: event => {
15842
+ this.onChipKeyup(event);
15843
+ this.$emit('keyup', event);
15844
+ }
15845
+ };
15846
+ },
15847
+
15848
+ inputListeners() {
15849
+ return {
15850
+ input: event => {
15851
+ this.$emit('input', event);
15852
+ },
15853
+ keyup: event => {
15854
+ this.onInputKeyup(event);
15855
+ this.$emit('keyup', event);
15856
+ }
15857
+ };
15858
+ }
15859
+
15860
+ },
15861
+ watch: {
15862
+ selectedItems: {
15863
+ deep: true,
15864
+ immediate: true,
15865
+ handler: async function () {
15866
+ await this.$nextTick();
15867
+ this.setInputPadding();
15868
+ this.setInputMinWidth();
15869
+ this.checkMaxSelected();
15870
+ }
15871
+ },
15872
+
15873
+ async label() {
15874
+ await this.$nextTick(); // Adjust the chips position if label changed
15875
+
15876
+ this.setChipsTopPosition();
15877
+ },
15878
+
15879
+ async description() {
15880
+ await this.$nextTick(); // Adjust the chips position if description changed
15881
+
15882
+ this.setChipsTopPosition();
15883
+ }
15884
+
15885
+ },
15886
+
15887
+ mounted() {
15888
+ this.setChipsTopPosition(); // Recalculate chip position and input padding when resizing window
15889
+
15890
+ this.resizeWindowObserver = new ResizeObserver(() => {
15891
+ this.setChipsTopPosition();
15892
+ this.setInputPadding();
15893
+ }).observe(document.body);
15894
+ },
15895
+
15896
+ beforeUnmount() {
15897
+ var _this$resizeWindowObs;
15898
+
15899
+ (_this$resizeWindowObs = this.resizeWindowObserver) === null || _this$resizeWindowObs === void 0 ? void 0 : _this$resizeWindowObs.unobserve(document.body);
15900
+ },
15901
+
15902
+ methods: {
15903
+ onChipRemove(item) {
15904
+ this.$emit('remove', item);
15905
+ this.$refs.input.focus();
15906
+ },
15907
+
15908
+ onComboboxSelect(i) {
15909
+ this.value = '';
15910
+ this.$emit('select', i);
15911
+ },
15912
+
15913
+ getChipButtons() {
15914
+ return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));
15915
+ },
15916
+
15917
+ getChips() {
15918
+ return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);
15919
+ },
15920
+
15921
+ getLastChipButton() {
15922
+ return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];
15923
+ },
15924
+
15925
+ getLastChip() {
15926
+ return this.$refs.chips && this.getChips()[this.getChips().length - 1];
15927
+ },
15928
+
15929
+ getFirstChip() {
15930
+ return this.$refs.chips && this.getChips()[0];
15931
+ },
15932
+
15933
+ getInput() {
15934
+ var _this$$refs$input;
15935
+
15936
+ return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$refs.input;
15937
+ },
15938
+
15939
+ onChipKeyup(event) {
15940
+ var _event$code;
15941
+
15942
+ const key = (_event$code = event.code) === null || _event$code === void 0 ? void 0 : _event$code.toLowerCase();
15943
+
15944
+ if (key === 'arrowleft') {
15945
+ // Move to the previous chip
15946
+ this.navigateBetweenChips(event.target, true);
15947
+ } else if (key === 'arrowright') {
15948
+ if (event.target.id === this.getLastChipButton().id) {
15949
+ // Move to the input if it's the last chip
15950
+ this.moveFromChipToInput();
15951
+ } else {
15952
+ // Move to the next chip
15953
+ this.navigateBetweenChips(event.target, false);
15954
+ }
15955
+ }
15956
+ },
15957
+
15958
+ onInputKeyup(event) {
15959
+ var _event$code2;
15960
+
15961
+ const key = (_event$code2 = event.code) === null || _event$code2 === void 0 ? void 0 : _event$code2.toLowerCase(); // If the cursor is at the start of the text,
15962
+ // press 'backspace' or 'left' focuses the last chip
15963
+
15964
+ if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {
15965
+ if (key === 'backspace' || key === 'arrowleft') {
15966
+ this.moveFromInputToChip();
15967
+ }
15968
+ }
15969
+ },
15970
+
15971
+ moveFromInputToChip() {
15972
+ this.getLastChipButton().focus();
15973
+ this.$refs.input.blur();
15974
+ this.$refs.comboboxWithPopover.closeComboboxList();
15975
+ },
15976
+
15977
+ moveFromChipToInput() {
15978
+ this.getLastChipButton().blur();
15979
+ this.$refs.input.focus();
15980
+ this.$refs.comboboxWithPopover.showComboboxList();
15981
+ },
15982
+
15983
+ navigateBetweenChips(target, toLeft) {
15984
+ const from = this.getChipButtons().indexOf(target);
15985
+ const to = toLeft ? from - 1 : from + 1;
15986
+
15987
+ if (to < 0 || to >= this.$refs.chips.length) {
15988
+ return;
15989
+ }
15990
+
15991
+ this.getChipButtons()[from].blur();
15992
+ this.getChipButtons()[to].focus();
15993
+ this.$refs.comboboxWithPopover.closeComboboxList();
15994
+ },
15995
+
15996
+ setChipsTopPosition() {
15997
+ // To place the chips in the input box
15998
+ // The chip "top" position should be the same line as the input box
15999
+ if (!this.$refs.input) {
16000
+ return;
16001
+ }
16002
+
16003
+ const input = this.getInput();
16004
+ if (!input) return;
16005
+ const inputSlotWrapper = this.$refs.inputSlotWrapper;
16006
+ const top = input.getBoundingClientRect().top - inputSlotWrapper.getBoundingClientRect().top;
16007
+ const chipsWrapper = this.$refs.chipsWrapper;
16008
+ chipsWrapper.style.top = top + 'px';
16009
+ },
16010
+
16011
+ setInputPadding() {
16012
+ const lastChip = this.getLastChip();
16013
+ const input = this.getInput();
16014
+ if (!input) return;
16015
+
16016
+ if (!lastChip) {
16017
+ // Revert padding if no chip
16018
+ this.revertInputPadding(input);
16019
+ return;
16020
+ } // Get the position of the last chip
16021
+ // The input cursor should be the same "top" as that chip and next besides it
16022
+
16023
+
16024
+ const left = lastChip.offsetLeft + this.getFullWidth(lastChip);
16025
+ input.style.paddingLeft = left + 'px'; // Chip has vertical margin. We add buffer to top center the input text
16026
+
16027
+ const top = lastChip.offsetTop + 3;
16028
+ input.style.paddingTop = top + 'px'; // TODO: refresh the tippy.js instance in the popover
16029
+ // If the new chip goes to the next line and the input box expands,
16030
+ // move the popover down to the next line. Same when chips are removed
16031
+
16032
+ this.popoverOffset = [0, 0];
16033
+ },
16034
+
16035
+ getFullWidth(el) {
16036
+ const styles = window.getComputedStyle(el);
16037
+ return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);
16038
+ },
16039
+
16040
+ revertInputPadding(input) {
16041
+ input.style.paddingLeft = '';
16042
+ input.style.paddingTop = '';
16043
+ input.style.paddingBottom = '';
16044
+ },
16045
+
16046
+ setInputMinWidth() {
16047
+ // Ensure the width of the input is "slightly bigger" than the width of a single chip
16048
+ const firstChip = this.getFirstChip();
16049
+ const input = this.getInput();
16050
+ if (!input) return;
16051
+
16052
+ if (firstChip) {
16053
+ // Add 4px buffer for typing room
16054
+ input.style.minWidth = this.getFullWidth(firstChip) + 4 + 'px';
16055
+ } else {
16056
+ input.style.minWidth = '';
16057
+ }
16058
+ },
16059
+
16060
+ checkMaxSelected() {
16061
+ if (this.maxSelected === 0) return;
16062
+
16063
+ if (this.selectedItems.length >= this.maxSelected) {
16064
+ this.showValidationMessages = true;
16065
+ this.$emit('max-selected');
16066
+ } else {
16067
+ this.showValidationMessages = false;
16068
+ }
16069
+ }
16070
+
16071
+ }
16072
+ });
16073
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=script&lang=js
16074
+
16075
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue
16076
+
16077
+
16078
+
16079
+
16080
+ ;
16081
+ const combobox_multi_select_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_multi_selectvue_type_script_lang_js, [['render',combobox_multi_selectvue_type_template_id_74f7079d_render]])
16082
+
16083
+ /* harmony default export */ const combobox_multi_select = (combobox_multi_select_exports_);
16084
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/index.js
16085
+
15193
16086
  ;// 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/list_items/contact_info/contact_info.vue?vue&type=template&id=7091b031
15194
16087
 
15195
16088
  const contact_infovue_type_template_id_7091b031_hoisted_1 = {
@@ -15480,6 +16373,8 @@ const top_banner_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(to
15480
16373
  /// Recipes
15481
16374
 
15482
16375
 
16376
+
16377
+
15483
16378
  // Mixins
15484
16379
 
15485
16380
  // Emoji