@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.
@@ -59,7 +59,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".dt-default-list-item,.dt-default-list
59
59
 
60
60
  /***/ }),
61
61
 
62
- /***/ 63:
62
+ /***/ 854:
63
63
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
64
64
 
65
65
  "use strict";
@@ -435,19 +435,19 @@ var update = add("463815e5", content, true, {"sourceMap":false,"shadowMode":fals
435
435
 
436
436
  /***/ }),
437
437
 
438
- /***/ 621:
438
+ /***/ 770:
439
439
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
440
440
 
441
441
  // style-loader: Adds some css to the DOM by adding a <style> tag
442
442
 
443
443
  // load the styles
444
- var content = __webpack_require__(63);
444
+ var content = __webpack_require__(854);
445
445
  if(content.__esModule) content = content.default;
446
446
  if(typeof content === 'string') content = [[module.id, content, '']];
447
447
  if(content.locals) module.exports = content.locals;
448
448
  // add the styles to the DOM
449
449
  var add = (__webpack_require__(402)/* ["default"] */ .Z)
450
- var update = add("51c1283c", content, true, {"sourceMap":false,"shadowMode":false});
450
+ var update = add("f006c8fc", content, true, {"sourceMap":false,"shadowMode":false});
451
451
 
452
452
  /***/ }),
453
453
 
@@ -1153,6 +1153,8 @@ __webpack_require__.d(__webpack_exports__, {
1153
1153
  "DtPopover": () => (/* reexport */ popover),
1154
1154
  "DtRadio": () => (/* reexport */ radio_radio),
1155
1155
  "DtRadioGroup": () => (/* reexport */ radio_group),
1156
+ "DtRecipeComboboxMultiSelect": () => (/* reexport */ combobox_multi_select),
1157
+ "DtRecipeComboboxWithPopover": () => (/* reexport */ combobox_with_popover),
1156
1158
  "DtRecipeContactInfo": () => (/* reexport */ contact_info),
1157
1159
  "DtRecipeTopBannerInfo": () => (/* reexport */ top_banner_info),
1158
1160
  "DtRootLayout": () => (/* reexport */ root_layout),
@@ -1246,7 +1248,7 @@ if (typeof window !== 'undefined') {
1246
1248
 
1247
1249
  // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
1248
1250
  var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(203);
1249
- ;// 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/avatar/avatar.vue?vue&type=template&id=3dcc5cfa
1251
+ ;// 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/avatar/avatar.vue?vue&type=template&id=a43ab9f6
1250
1252
 
1251
1253
  const _hoisted_1 = ["id"];
1252
1254
  function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1256,7 +1258,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1256
1258
  "data-qa": "dt-avatar"
1257
1259
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1);
1258
1260
  }
1259
- ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=3dcc5cfa
1261
+ ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=a43ab9f6
1260
1262
 
1261
1263
  ;// CONCATENATED MODULE: ./components/avatar/avatar_constants.js
1262
1264
  const AVATAR_KIND_MODIFIERS = {
@@ -1514,16 +1516,23 @@ const flushPromises = () => {
1514
1516
  const firstChild = this.$el.children[0];
1515
1517
 
1516
1518
  if (firstChild) {
1517
- this.validateElementType(firstChild);
1518
1519
  this.setKind(firstChild);
1519
1520
  this.validateImageAttrsPresence();
1520
1521
  }
1521
1522
  },
1522
1523
 
1523
1524
  setKind(element) {
1524
- if (this.isSvgType(element)) this.kind = 'icon';
1525
- if (this.isImageType(element)) this.kind = 'image';
1526
- if (this.isInitialsType(element)) this.kind = 'initials';
1525
+ if (this.isSvgType(element)) {
1526
+ this.kind = 'icon';
1527
+ return;
1528
+ }
1529
+
1530
+ if (this.isImageType(element)) {
1531
+ this.kind = 'image';
1532
+ return;
1533
+ }
1534
+
1535
+ this.kind = 'initials';
1527
1536
  },
1528
1537
 
1529
1538
  isSvgType(element) {
@@ -1538,15 +1547,6 @@ const flushPromises = () => {
1538
1547
  return (element === null || element === void 0 ? void 0 : (_element$tagName2 = element.tagName) === null || _element$tagName2 === void 0 ? void 0 : _element$tagName2.toUpperCase()) === 'IMG';
1539
1548
  },
1540
1549
 
1541
- isInitialsType(element) {
1542
- return (element === null || element === void 0 ? void 0 : element.nodeType) === Node.TEXT_NODE;
1543
- },
1544
-
1545
- validateElementType(element) {
1546
- if (this.isInitialsType(element) || this.isSvgType(element) || this.isImageType(element)) return;
1547
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.warn)('img, svg, and raw text are the only valid elements to put inside the avatar', this);
1548
- },
1549
-
1550
1550
  validateImageAttrsPresence() {
1551
1551
  if (this.kind === 'image') {
1552
1552
  // Check that default slot image required attributes are provided
@@ -3562,10 +3562,10 @@ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxv
3562
3562
  /* harmony default export */ const combobox = (combobox_exports_);
3563
3563
  ;// CONCATENATED MODULE: ./components/combobox/index.js
3564
3564
 
3565
- ;// 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/dropdown/dropdown.vue?vue&type=template&id=e86dedbc
3565
+ ;// 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/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
3566
3566
 
3567
- const dropdownvue_type_template_id_e86dedbc_hoisted_1 = ["id"];
3568
- function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $setup, $data, $options) {
3567
+ const dropdownvue_type_template_id_b0e1f8ba_hoisted_1 = ["id"];
3568
+ function dropdownvue_type_template_id_b0e1f8ba_render(_ctx, _cache, $props, $setup, $data, $options) {
3569
3569
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-popover");
3570
3570
 
3571
3571
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_dt_popover, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
@@ -3573,7 +3573,7 @@ function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $set
3573
3573
  "content-width": $props.contentWidth,
3574
3574
  open: $props.open,
3575
3575
  placement: $props.placement,
3576
- "initial-focus-element": "first",
3576
+ "initial-focus-element": $data.openedWithKeyboard ? 'first' : 'dialog',
3577
3577
  "fallback-placements": $props.fallbackPlacements,
3578
3578
  padding: "none",
3579
3579
  role: "menu",
@@ -3610,12 +3610,12 @@ function dropdownvue_type_template_id_e86dedbc_render(_ctx, _cache, $props, $set
3610
3610
  })
3611
3611
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
3612
3612
  close: close
3613
- })], 42, dropdownvue_type_template_id_e86dedbc_hoisted_1)];
3613
+ })], 42, dropdownvue_type_template_id_b0e1f8ba_hoisted_1)];
3614
3614
  }),
3615
3615
  _: 3
3616
- }, 16, ["content-width", "open", "placement", "fallback-placements", "modal", "max-height", "max-width", "onOpened", "onKeydown"]);
3616
+ }, 16, ["content-width", "open", "placement", "initial-focus-element", "fallback-placements", "modal", "max-height", "max-width", "onOpened", "onKeydown"]);
3617
3617
  }
3618
- ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=e86dedbc
3618
+ ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=b0e1f8ba
3619
3619
 
3620
3620
  ;// 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
3621
3621
 
@@ -9343,7 +9343,7 @@ const DROPDOWN_PADDING_CLASSES = {
9343
9343
 
9344
9344
 
9345
9345
  ;
9346
- const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownvue_type_script_lang_js, [['render',dropdownvue_type_template_id_e86dedbc_render]])
9346
+ const dropdown_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dropdownvue_type_script_lang_js, [['render',dropdownvue_type_template_id_b0e1f8ba_render]])
9347
9347
 
9348
9348
  /* harmony default export */ const dropdown = (dropdown_exports_);
9349
9349
  ;// CONCATENATED MODULE: ./components/dropdown/index.js
@@ -10257,15 +10257,15 @@ const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_typ
10257
10257
  ;// CONCATENATED MODULE: ./components/emoji/index.js
10258
10258
 
10259
10259
 
10260
- ;// 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=0337d4a5
10260
+ ;// 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
10261
10261
 
10262
- const inputvue_type_template_id_0337d4a5_hoisted_1 = {
10262
+ const inputvue_type_template_id_1204d99d_hoisted_1 = {
10263
10263
  ref: "container",
10264
10264
  class: "base-input",
10265
10265
  "data-qa": "dt-input"
10266
10266
  };
10267
- const inputvue_type_template_id_0337d4a5_hoisted_2 = ["aria-details"];
10268
- const inputvue_type_template_id_0337d4a5_hoisted_3 = ["id"];
10267
+ const inputvue_type_template_id_1204d99d_hoisted_2 = ["aria-details"];
10268
+ const inputvue_type_template_id_1204d99d_hoisted_3 = ["id"];
10269
10269
  const _hoisted_4 = {
10270
10270
  key: 0
10271
10271
  };
@@ -10279,23 +10279,25 @@ const _hoisted_6 = {
10279
10279
  };
10280
10280
  const _hoisted_7 = ["value", "name", "disabled", "maxlength"];
10281
10281
  const _hoisted_8 = ["value", "name", "type", "disabled", "maxlength"];
10282
- function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup, $data, $options) {
10282
+ function inputvue_type_template_id_1204d99d_render(_ctx, _cache, $props, $setup, $data, $options) {
10283
10283
  const _component_dt_validation_messages = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-validation-messages");
10284
10284
 
10285
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", inputvue_type_template_id_0337d4a5_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("label", {
10285
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", inputvue_type_template_id_1204d99d_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("label", {
10286
10286
  class: "base-input__label",
10287
10287
  "aria-details": _ctx.$slots.description || $props.description ? $options.descriptionKey : undefined,
10288
10288
  "data-qa": "dt-input-label-wrapper"
10289
10289
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "labelSlot", {}, () => [$props.label ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
10290
10290
  key: 0,
10291
+ ref: "label",
10291
10292
  "data-qa": "dt-input-label",
10292
10293
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)(['base-input__label-text', 'd-label', $data.labelSizeClasses[$props.size]])
10293
10294
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.label), 3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)]), _ctx.$slots.description || $props.description || $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
10294
10295
  key: 0,
10295
10296
  id: $options.descriptionKey,
10297
+ ref: "description",
10296
10298
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)(['base-input__description', 'd-description', 'd-fd-column', $data.descriptionSizeClasses[$props.size]]),
10297
10299
  "data-qa": "dt-input-description"
10298
- }, [_ctx.$slots.description || $props.description ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", _hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "description", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.description), 1)])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", _hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($options.validationProps.length.description), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 10, inputvue_type_template_id_0337d4a5_hoisted_3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", _hoisted_6, [_ctx.$slots.leftIcon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", {
10300
+ }, [_ctx.$slots.description || $props.description ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", _hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "description", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.description), 1)])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), $options.shouldValidateLength ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", _hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($options.validationProps.length.description), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)], 10, inputvue_type_template_id_1204d99d_hoisted_3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", _hoisted_6, [_ctx.$slots.leftIcon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", {
10299
10301
  key: 0,
10300
10302
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)($options.inputIconClasses('left')),
10301
10303
  "data-qa": "dt-input-left-icon-wrapper",
@@ -10328,7 +10330,7 @@ function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup,
10328
10330
  onFocusout: _cache[1] || (_cache[1] = function () {
10329
10331
  return $options.onBlur && $options.onBlur(...arguments);
10330
10332
  })
10331
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "rightIcon")], 34)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)])], 8, inputvue_type_template_id_0337d4a5_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_validation_messages, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
10333
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "rightIcon")], 34)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)])], 8, inputvue_type_template_id_1204d99d_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_validation_messages, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
10332
10334
  "validation-messages": $options.validationMessages,
10333
10335
  "show-messages": _ctx.showMessages,
10334
10336
  class: _ctx.messagesClass
@@ -10336,7 +10338,7 @@ function inputvue_type_template_id_0337d4a5_render(_ctx, _cache, $props, $setup,
10336
10338
  "data-qa": "dt-input-messages"
10337
10339
  }), null, 16, ["validation-messages", "show-messages", "class"])], 512);
10338
10340
  }
10339
- ;// CONCATENATED MODULE: ./components/input/input.vue?vue&type=template&id=0337d4a5
10341
+ ;// CONCATENATED MODULE: ./components/input/input.vue?vue&type=template&id=1204d99d
10340
10342
 
10341
10343
  ;// CONCATENATED MODULE: ./components/input/input_constants.js
10342
10344
  // Valid input types, any other input types (for example: 'radio' or 'checkbox') should
@@ -11239,7 +11241,7 @@ const MessagesMixin = {
11239
11241
 
11240
11242
 
11241
11243
  ;
11242
- const input_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(inputvue_type_script_lang_js, [['render',inputvue_type_template_id_0337d4a5_render]])
11244
+ const input_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(inputvue_type_script_lang_js, [['render',inputvue_type_template_id_1204d99d_render]])
11243
11245
 
11244
11246
  /* harmony default export */ const input_input = (input_exports_);
11245
11247
  ;// CONCATENATED MODULE: ./components/input/index.js
@@ -11980,9 +11982,9 @@ const list_section_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_
11980
11982
  /* harmony default export */ const list_section = (list_section_exports_);
11981
11983
  ;// CONCATENATED MODULE: ./components/list_section/index.js
11982
11984
 
11983
- ;// 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=7876bc36
11985
+ ;// 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
11984
11986
 
11985
- function list_itemvue_type_template_id_7876bc36_render(_ctx, _cache, $props, $setup, $data, $options) {
11987
+ function list_itemvue_type_template_id_237d2c10_render(_ctx, _cache, $props, $setup, $data, $options) {
11986
11988
  return (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)({
11987
11989
  id: $props.id,
11988
11990
  class: ['dt-list-item d-ls-none focus-visible', {
@@ -12008,7 +12010,7 @@ function list_itemvue_type_template_id_7876bc36_render(_ctx, _cache, $props, $se
12008
12010
  _: 3
12009
12011
  }, 16, ["id", "class", "tabindex", "role", "aria-selected"]);
12010
12012
  }
12011
- ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=template&id=7876bc36
12013
+ ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=template&id=237d2c10
12012
12014
 
12013
12015
  ;// 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/default_list_item.vue?vue&type=template&id=4c89d4ed
12014
12016
 
@@ -12136,7 +12138,7 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12136
12138
  validator: t => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t)
12137
12139
  }
12138
12140
  },
12139
- emits: ['click', 'keydown', 'mousemove', 'mouseleave'],
12141
+ emits: ['keydown', 'mousemove', 'mouseleave', 'mousedown'],
12140
12142
 
12141
12143
  data() {
12142
12144
  return {
@@ -12165,6 +12167,13 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12165
12167
 
12166
12168
  this.$emit('keydown', event);
12167
12169
  },
12170
+ mousedown: event => {
12171
+ if (!this.isFocusable) {
12172
+ event.preventDefault();
12173
+ }
12174
+
12175
+ this.$emit('mousedown', event);
12176
+ },
12168
12177
  mousemove: event => {
12169
12178
  this.onMouseHover(event);
12170
12179
  this.$emit('mousemove', event);
@@ -12203,6 +12212,8 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12203
12212
  },
12204
12213
  methods: {
12205
12214
  onClick(e) {
12215
+ // disabled as we do not want to override native click
12216
+ // eslint-disable-next-line vue/require-explicit-emits
12206
12217
  this.$emit('click', e);
12207
12218
  },
12208
12219
 
@@ -12218,9 +12229,9 @@ const default_list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(
12218
12229
  });
12219
12230
  ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=script&lang=js
12220
12231
 
12221
- // 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/list_item/list_item.vue?vue&type=style&index=0&id=7876bc36&lang=less
12222
- var list_itemvue_type_style_index_0_id_7876bc36_lang_less = __webpack_require__(621);
12223
- ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=style&index=0&id=7876bc36&lang=less
12232
+ // 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/list_item/list_item.vue?vue&type=style&index=0&id=237d2c10&lang=less
12233
+ var list_itemvue_type_style_index_0_id_237d2c10_lang_less = __webpack_require__(770);
12234
+ ;// CONCATENATED MODULE: ./components/list_item/list_item.vue?vue&type=style&index=0&id=237d2c10&lang=less
12224
12235
 
12225
12236
  ;// CONCATENATED MODULE: ./components/list_item/list_item.vue
12226
12237
 
@@ -12230,7 +12241,7 @@ var list_itemvue_type_style_index_0_id_7876bc36_lang_less = __webpack_require__(
12230
12241
  ;
12231
12242
 
12232
12243
 
12233
- const list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_itemvue_type_script_lang_js, [['render',list_itemvue_type_template_id_7876bc36_render]])
12244
+ const list_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(list_itemvue_type_script_lang_js, [['render',list_itemvue_type_template_id_237d2c10_render]])
12234
12245
 
12235
12246
  /* harmony default export */ const list_item = (list_item_exports_);
12236
12247
  ;// CONCATENATED MODULE: ./components/list_item/index.js
@@ -12570,16 +12581,31 @@ const radio_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(radiovue_typ
12570
12581
  }
12571
12582
  },
12572
12583
  emits: ['input'],
12584
+
12585
+ data() {
12586
+ return {
12587
+ internalValue: this.value
12588
+ };
12589
+ },
12590
+
12573
12591
  watch: {
12574
- /*
12575
- * watching value to support 2 way binding for slotted radios.
12576
- * need this to pass value to slotted radios if modified outside
12577
- * radio group.
12578
- */
12579
12592
  value(newValue) {
12580
- this.provideObj.selectedValue = newValue;
12581
- }
12593
+ this.internalValue = newValue;
12594
+ },
12595
+
12596
+ /*
12597
+ * watching value to support 2 way binding for slotted radios.
12598
+ * need this to pass value to slotted checkboxes if modified outside
12599
+ * radio group.
12600
+ */
12601
+ internalValue: {
12602
+ immediate: true,
12582
12603
 
12604
+ handler(newInternalValue) {
12605
+ this.provideObj.selectedValue = newInternalValue;
12606
+ }
12607
+
12608
+ }
12583
12609
  },
12584
12610
  methods: {
12585
12611
  /*
@@ -13409,27 +13435,27 @@ const checkbox_group_exports_ = checkbox_groupvue_type_script_lang_js;
13409
13435
  /* harmony default export */ const checkbox_group = (checkbox_group_exports_);
13410
13436
  ;// CONCATENATED MODULE: ./components/checkbox_group/index.js
13411
13437
 
13412
- ;// 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/chip/chip.vue?vue&type=template&id=8a56dabe
13438
+ ;// 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/chip/chip.vue?vue&type=template&id=1805ca4d
13413
13439
 
13414
- const chipvue_type_template_id_8a56dabe_hoisted_1 = {
13440
+ const chipvue_type_template_id_1805ca4d_hoisted_1 = {
13415
13441
  class: "d-chip"
13416
13442
  };
13417
- const chipvue_type_template_id_8a56dabe_hoisted_2 = {
13443
+ const chipvue_type_template_id_1805ca4d_hoisted_2 = {
13418
13444
  key: 0,
13419
13445
  "data-qa": "dt-chip-icon",
13420
13446
  class: "d-chip__icon"
13421
13447
  };
13422
- const chipvue_type_template_id_8a56dabe_hoisted_3 = {
13448
+ const chipvue_type_template_id_1805ca4d_hoisted_3 = {
13423
13449
  key: 1,
13424
13450
  "data-qa": "dt-chip-avatar"
13425
13451
  };
13426
- const chipvue_type_template_id_8a56dabe_hoisted_4 = ["id"];
13427
- function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup, $data, $options) {
13452
+ const chipvue_type_template_id_1805ca4d_hoisted_4 = ["id"];
13453
+ function chipvue_type_template_id_1805ca4d_render(_ctx, _cache, $props, $setup, $data, $options) {
13428
13454
  const _component_icon_close = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("icon-close");
13429
13455
 
13430
13456
  const _component_dt_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-button");
13431
13457
 
13432
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_1, [((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.interactive ? 'button' : 'span'), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
13458
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_1, [((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.interactive ? 'button' : 'span'), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
13433
13459
  id: $props.id,
13434
13460
  type: $props.interactive && 'button',
13435
13461
  class: $options.chipClasses(),
@@ -13437,12 +13463,12 @@ function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup,
13437
13463
  "aria-labelledby": $props.ariaLabel ? undefined : "".concat($props.id, "-content"),
13438
13464
  "aria-label": $props.ariaLabel
13439
13465
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toHandlers)($options.chipListeners)), {
13440
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [_ctx.$slots.icon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "icon")])) : _ctx.$slots.avatar ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_8a56dabe_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "avatar")])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), _ctx.$slots.default ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", {
13466
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [_ctx.$slots.icon ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "icon")])) : _ctx.$slots.avatar ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", chipvue_type_template_id_1805ca4d_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "avatar")])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true), _ctx.$slots.default ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("span", {
13441
13467
  key: 2,
13442
13468
  id: "".concat($props.id, "-content"),
13443
13469
  "data-qa": "dt-chip-label",
13444
13470
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)(['d-truncate', 'd-chip__text', $props.contentClass])
13445
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 10, chipvue_type_template_id_8a56dabe_hoisted_4)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)]),
13471
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 10, chipvue_type_template_id_1805ca4d_hoisted_4)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)]),
13446
13472
  _: 3
13447
13473
  }, 16, ["id", "type", "class", "aria-labelledby", "aria-label"])), !$props.hideClose ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_dt_button, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
13448
13474
  key: 0
@@ -13456,7 +13482,7 @@ function chipvue_type_template_id_8a56dabe_render(_ctx, _cache, $props, $setup,
13456
13482
  _: 1
13457
13483
  }, 16, ["class", "aria-label"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)("", true)]);
13458
13484
  }
13459
- ;// CONCATENATED MODULE: ./components/chip/chip.vue?vue&type=template&id=8a56dabe
13485
+ ;// CONCATENATED MODULE: ./components/chip/chip.vue?vue&type=template&id=1805ca4d
13460
13486
 
13461
13487
  ;// CONCATENATED MODULE: ./components/chip/chip_constants.js
13462
13488
  const CHIP_SIZE_MODIFIERS = {
@@ -13489,6 +13515,11 @@ const CHIP_CLOSE_BUTTON_SIZE_MODIFIERS = {
13489
13515
  */
13490
13516
  closeButtonProps: {
13491
13517
  type: Object,
13518
+ default: function () {
13519
+ return {
13520
+ ariaLabel: 'close'
13521
+ };
13522
+ },
13492
13523
  validator: props => {
13493
13524
  return !!props.ariaLabel;
13494
13525
  }
@@ -13602,7 +13633,7 @@ const CHIP_CLOSE_BUTTON_SIZE_MODIFIERS = {
13602
13633
 
13603
13634
 
13604
13635
  ;
13605
- const chip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(chipvue_type_script_lang_js, [['render',chipvue_type_template_id_8a56dabe_render]])
13636
+ const chip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(chipvue_type_script_lang_js, [['render',chipvue_type_template_id_1805ca4d_render]])
13606
13637
 
13607
13638
  /* harmony default export */ const chip = (chip_exports_);
13608
13639
  ;// CONCATENATED MODULE: ./components/chip/index.js
@@ -15208,6 +15239,868 @@ const root_layout_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(root_l
15208
15239
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
15209
15240
 
15210
15241
 
15242
+ ;// 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=6e4f62a5
15243
+
15244
+ const combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_1 = ["id"];
15245
+ const combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_2 = ["onMouseleave", "onFocusout"];
15246
+ function combobox_with_popovervue_type_template_id_6e4f62a5_render(_ctx, _cache, $props, $setup, $data, $options) {
15247
+ const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-popover");
15248
+
15249
+ const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-combobox");
15250
+
15251
+ 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)({
15252
+ ref: "combobox",
15253
+ "show-list": $data.isListShown,
15254
+ "on-beginning-of-list": $props.onBeginningOfList,
15255
+ "on-end-of-list": $props.onEndOfList,
15256
+ "list-aria-label": $props.listAriaLabel,
15257
+ "list-rendered-outside": true,
15258
+ "list-id": $props.listId,
15259
+ "data-qa": "dt-combobox"
15260
+ }, $options.comboboxListeners), {
15261
+ input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(_ref => {
15262
+ let {
15263
+ inputProps
15264
+ } = _ref;
15265
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
15266
+ id: $data.externalAnchor,
15267
+ ref: "input",
15268
+ onFocusin: _cache[0] || (_cache[0] = function () {
15269
+ return $options.onFocusIn && $options.onFocusIn(...arguments);
15270
+ }),
15271
+ onFocusout: _cache[1] || (_cache[1] = function () {
15272
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15273
+ }),
15274
+ onKeydown: [_cache[2] || (_cache[2] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)($event => $options.openOnArrowKeyPress($event), ["up"])), _cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)($event => $options.openOnArrowKeyPress($event), ["down"]))]
15275
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "input", {
15276
+ inputProps: inputProps,
15277
+ onInput: $options.handleDisplayList
15278
+ })], 40, combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_1)];
15279
+ }),
15280
+ list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(_ref2 => {
15281
+ let {
15282
+ opened,
15283
+ listProps,
15284
+ clearHighlightIndex
15285
+ } = _ref2;
15286
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_popover, {
15287
+ ref: "popover",
15288
+ open: $data.isListShown,
15289
+ "onUpdate:open": _cache[6] || (_cache[6] = $event => $data.isListShown = $event),
15290
+ "hide-on-click": true,
15291
+ "max-height": $props.maxHeight,
15292
+ "max-width": $props.maxWidth,
15293
+ offset: $props.popoverOffset,
15294
+ placement: "bottom-start",
15295
+ padding: "none",
15296
+ role: "listbox",
15297
+ "external-anchor": $data.externalAnchor,
15298
+ "content-width": $props.contentWidth,
15299
+ "content-tabindex": null,
15300
+ modal: false,
15301
+ "auto-focus": false,
15302
+ onOpened: opened
15303
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createSlots)({
15304
+ content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
15305
+ ref: "listWrapper",
15306
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
15307
+ onMouseleave: clearHighlightIndex,
15308
+ onFocusout: $event => {
15309
+ clearHighlightIndex;
15310
+ $options.onFocusOut;
15311
+ }
15312
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
15313
+ listProps: listProps
15314
+ })], 42, combobox_with_popovervue_type_template_id_6e4f62a5_hoisted_2)]),
15315
+ _: 2
15316
+ }, [_ctx.$slots.header ? {
15317
+ name: "headerContent",
15318
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
15319
+ ref: "header",
15320
+ onFocusout: _cache[4] || (_cache[4] = function () {
15321
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15322
+ })
15323
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "header")], 544)])
15324
+ } : undefined, _ctx.$slots.footer ? {
15325
+ name: "footerContent",
15326
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("div", {
15327
+ ref: "footer",
15328
+ onFocusout: _cache[5] || (_cache[5] = function () {
15329
+ return $options.onFocusOut && $options.onFocusOut(...arguments);
15330
+ })
15331
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "footer")], 544)])
15332
+ } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "external-anchor", "content-width", "onOpened"])];
15333
+ }),
15334
+ _: 3
15335
+ }, 16, ["show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15336
+ }
15337
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=6e4f62a5
15338
+
15339
+ ;// 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
15340
+
15341
+
15342
+
15343
+ /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
15344
+ name: 'DtRecipeComboboxWithPopover',
15345
+ components: {
15346
+ DtCombobox: combobox,
15347
+ DtPopover: popover
15348
+ },
15349
+ props: {
15350
+ /**
15351
+ * String to use for the list's aria-label.
15352
+ */
15353
+ listAriaLabel: {
15354
+ type: String,
15355
+ required: true
15356
+ },
15357
+
15358
+ /**
15359
+ * Determines when to show the list element and also controls the aria-expanded attribute.
15360
+ * Leaving this null will have the combobox trigger on input focus by default.
15361
+ * If you set this value, the default trigger behavior will be disabled and you can
15362
+ * control it as you need.
15363
+ */
15364
+ showList: {
15365
+ type: Boolean,
15366
+ default: null
15367
+ },
15368
+
15369
+ /**
15370
+ * Sets an ID on the list element of the component. Used by several aria attributes
15371
+ * as well as when deriving the IDs for each item.
15372
+ */
15373
+ listId: {
15374
+ type: String,
15375
+
15376
+ default() {
15377
+ return getUniqueString();
15378
+ }
15379
+
15380
+ },
15381
+
15382
+ /**
15383
+ * Additional class for the wrapper list element.
15384
+ */
15385
+ listClass: {
15386
+ type: [String, Array, Object],
15387
+ default: ''
15388
+ },
15389
+
15390
+ /**
15391
+ * A method that will be called when the selection goes past the beginning of the list.
15392
+ */
15393
+ onBeginningOfList: {
15394
+ type: Function,
15395
+ default: null
15396
+ },
15397
+
15398
+ /**
15399
+ * A method that will be called when the selection goes past the end of the list.
15400
+ */
15401
+ onEndOfList: {
15402
+ type: Function,
15403
+ default: null
15404
+ },
15405
+
15406
+ /**
15407
+ * Determines maximum height for the popover before overflow.
15408
+ * Possible units rem|px|em
15409
+ */
15410
+ maxHeight: {
15411
+ type: String,
15412
+ default: ''
15413
+ },
15414
+
15415
+ /**
15416
+ * Determines maximum width for the popover before overflow.
15417
+ * Possible units rem|px|%|em
15418
+ */
15419
+ maxWidth: {
15420
+ type: String,
15421
+ default: ''
15422
+ },
15423
+
15424
+ /**
15425
+ * Vertical padding size around the list element.
15426
+ */
15427
+ padding: {
15428
+ type: String,
15429
+ default: 'small',
15430
+ validator: padding => {
15431
+ return Object.keys(DROPDOWN_PADDING_CLASSES).some(item => item === padding);
15432
+ }
15433
+ },
15434
+
15435
+ /**
15436
+ * Width configuration for the popover content. When its value is 'anchor',
15437
+ * the popover content will have the same width as the anchor.
15438
+ */
15439
+ contentWidth: {
15440
+ type: String,
15441
+ default: null,
15442
+ validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth)
15443
+ },
15444
+
15445
+ /**
15446
+ * If the list should be shown by pressing up or down arrow key on the input element.
15447
+ * This can be set when not passing showList prop.
15448
+ */
15449
+ openWithArrowKeys: {
15450
+ type: Boolean,
15451
+ default: false
15452
+ },
15453
+
15454
+ /**
15455
+ * Displaces the popover content box from its anchor element
15456
+ * by the specified number of pixels.
15457
+ */
15458
+ popoverOffset: {
15459
+ type: Array,
15460
+ default: () => [0, 4]
15461
+ },
15462
+
15463
+ /**
15464
+ * Displays the list when the combobox is focused, before the user has typed anything.
15465
+ * When this is enabled the list will not close after selection.
15466
+ */
15467
+ hasSuggestionList: {
15468
+ type: Boolean,
15469
+ default: true
15470
+ }
15471
+ },
15472
+ emits: ['select', 'escape', 'highlight', 'opened'],
15473
+
15474
+ data() {
15475
+ return {
15476
+ DROPDOWN_PADDING_CLASSES: DROPDOWN_PADDING_CLASSES,
15477
+ isListShown: false,
15478
+ isInputFocused: false,
15479
+ isListFocused: false,
15480
+ externalAnchor: getUniqueString()
15481
+ };
15482
+ },
15483
+
15484
+ computed: {
15485
+ comboboxListeners() {
15486
+ return { ...this.$attrs,
15487
+ onSelect: this.onSelect,
15488
+ onEscape: this.onEscape,
15489
+ onHighlight: this.onHighlight
15490
+ };
15491
+ }
15492
+
15493
+ },
15494
+ watch: {
15495
+ showList: {
15496
+ handler: function (show) {
15497
+ if (show !== null) {
15498
+ this.isListShown = show;
15499
+ }
15500
+ },
15501
+ immediate: true
15502
+ },
15503
+
15504
+ isListShown(val) {
15505
+ this.onOpened(val);
15506
+ }
15507
+
15508
+ },
15509
+ methods: {
15510
+ async handleDisplayList(value) {
15511
+ if (this.isListShown) {
15512
+ // After the list is updated, hightlight the first item
15513
+ await this.$nextTick();
15514
+ this.$refs.combobox.setInitialHighlightIndex();
15515
+ }
15516
+
15517
+ if (!this.hasSuggestionList) {
15518
+ if (value) {
15519
+ // Displays the list after the user has typed anything
15520
+ this.showComboboxList();
15521
+ } else {
15522
+ this.closeComboboxList();
15523
+ }
15524
+ }
15525
+ },
15526
+
15527
+ showComboboxList() {
15528
+ if (this.showList != null) {
15529
+ return;
15530
+ }
15531
+
15532
+ this.isListShown = true;
15533
+ },
15534
+
15535
+ closeComboboxList() {
15536
+ if (this.showList != null) {
15537
+ return;
15538
+ }
15539
+
15540
+ this.isListShown = false;
15541
+ },
15542
+
15543
+ onSelect(highlightIndex) {
15544
+ this.$emit('select', highlightIndex);
15545
+
15546
+ if (!this.hasSuggestionList) {
15547
+ // we don't display the list before the user has typed anything
15548
+ this.closeComboboxList();
15549
+ }
15550
+ },
15551
+
15552
+ onEscape() {
15553
+ this.$emit('escape');
15554
+ this.closeComboboxList();
15555
+ },
15556
+
15557
+ onHighlight(highlightIndex) {
15558
+ this.$emit('highlight', highlightIndex);
15559
+ },
15560
+
15561
+ onOpened(opened) {
15562
+ this.$emit('opened', opened);
15563
+ },
15564
+
15565
+ onFocusIn(e) {
15566
+ if (this.hasSuggestionList && e && this.$refs.input.querySelector('input') === e.target) {
15567
+ // only trigger if we show suggestion list when focus and
15568
+ // it's the input specifically that was focused
15569
+ this.showComboboxList();
15570
+ }
15571
+ },
15572
+
15573
+ onFocusOut(e) {
15574
+ const comboboxRefs = ['input', 'header', 'footer', 'listWrapper'];
15575
+ const isComboboxStillFocused = comboboxRefs.some(ref => {
15576
+ var _this$$refs$ref;
15577
+
15578
+ return (_this$$refs$ref = this.$refs[ref]) === null || _this$$refs$ref === void 0 ? void 0 : _this$$refs$ref.contains(e.relatedTarget);
15579
+ });
15580
+
15581
+ if (!isComboboxStillFocused) {
15582
+ this.closeComboboxList();
15583
+ }
15584
+ },
15585
+
15586
+ openOnArrowKeyPress(e) {
15587
+ if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) {
15588
+ return;
15589
+ }
15590
+
15591
+ this.showComboboxList();
15592
+ }
15593
+
15594
+ }
15595
+ });
15596
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
15597
+
15598
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue
15599
+
15600
+
15601
+
15602
+
15603
+ ;
15604
+ 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]])
15605
+
15606
+ /* harmony default export */ const combobox_with_popover = (combobox_with_popover_exports_);
15607
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/index.js
15608
+
15609
+ ;// 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=74f7079d
15610
+
15611
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_1 = {
15612
+ ref: "inputSlotWrapper",
15613
+ class: "d-ps-relative"
15614
+ };
15615
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_2 = {
15616
+ ref: "chipsWrapper",
15617
+ class: "d-ps-absolute d-mx2"
15618
+ };
15619
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_3 = {
15620
+ ref: "header"
15621
+ };
15622
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_4 = {
15623
+ ref: "list"
15624
+ };
15625
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_5 = {
15626
+ key: 1,
15627
+ class: "d-ta-center d-py16"
15628
+ };
15629
+ const combobox_multi_selectvue_type_template_id_74f7079d_hoisted_6 = {
15630
+ ref: "footer"
15631
+ };
15632
+ function combobox_multi_selectvue_type_template_id_74f7079d_render(_ctx, _cache, $props, $setup, $data, $options) {
15633
+ const _component_dt_chip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-chip");
15634
+
15635
+ const _component_dt_input = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-input");
15636
+
15637
+ const _component_dt_validation_messages = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-validation-messages");
15638
+
15639
+ const _component_dt_recipe_combobox_with_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)("dt-recipe-combobox-with-popover");
15640
+
15641
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)(_component_dt_recipe_combobox_with_popover, {
15642
+ ref: "comboboxWithPopover",
15643
+ "list-aria-label": "listAriaLabel",
15644
+ "show-list": $props.showList,
15645
+ "max-height": $props.listMaxHeight,
15646
+ "popover-offset": $data.popoverOffset,
15647
+ "has-suggestion-list": $props.hasSuggestionList,
15648
+ "content-width": "anchor",
15649
+ onSelect: $options.onComboboxSelect
15650
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createSlots)({
15651
+ input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(_ref => {
15652
+ let {
15653
+ onInput
15654
+ } = _ref;
15655
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_74f7079d_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", combobox_multi_selectvue_type_template_id_74f7079d_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 => {
15656
+ 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)({
15657
+ ref_for: true,
15658
+ ref: "chips",
15659
+ key: item,
15660
+ class: "d-mt4 d-mx2 d-zi-base1",
15661
+ "close-button-props": {
15662
+ ariaLabel: 'close'
15663
+ }
15664
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toHandlers)($options.chipListeners), {
15665
+ onKeyup: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)($event => $options.onChipRemove(item), ["backspace"]),
15666
+ onClose: $event => $options.onChipRemove(item)
15667
+ }), {
15668
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)(item), 1)]),
15669
+ _: 2
15670
+ }, 1040, ["onKeyup", "onClose"]);
15671
+ }), 128))], 512), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_input, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)({
15672
+ ref: "input",
15673
+ modelValue: $data.value,
15674
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => $data.value = $event),
15675
+ class: "d-fl-grow1 d-mb4",
15676
+ label: $props.label,
15677
+ description: $props.description,
15678
+ placeholder: $options.inputPlaceHolder,
15679
+ "show-messages": $props.showInputMessages,
15680
+ messages: $props.inputMessages
15681
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toHandlers)($options.inputListeners), {
15682
+ onInput: onInput
15683
+ }), null, 16, ["modelValue", "label", "description", "placeholder", "show-messages", "messages", "onInput"]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(_component_dt_validation_messages, {
15684
+ "validation-messages": $props.maxSelectedMessage,
15685
+ "show-messages": $data.showValidationMessages
15686
+ }, null, 8, ["validation-messages", "show-messages"])], 512)];
15687
+ }),
15688
+ 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_74f7079d_hoisted_4, [!$props.loading ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "list", {
15689
+ key: 0
15690
+ }) : ((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_74f7079d_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toDisplayString)($props.loadingMessage), 1))], 512)]),
15691
+ _: 2
15692
+ }, [_ctx.$slots.header ? {
15693
+ name: "header",
15694
+ 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_74f7079d_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "header")], 512)])
15695
+ } : undefined, _ctx.$slots.footer ? {
15696
+ name: "footer",
15697
+ 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_74f7079d_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "footer")], 512)])
15698
+ } : undefined]), 1032, ["show-list", "max-height", "popover-offset", "has-suggestion-list", "onSelect"]);
15699
+ }
15700
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=template&id=74f7079d
15701
+
15702
+ ;// 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_multi_select/combobox_multi_select.vue?vue&type=script&lang=js
15703
+ /* eslint-disable max-lines */
15704
+
15705
+
15706
+ /* harmony default export */ const combobox_multi_selectvue_type_script_lang_js = ({
15707
+ name: 'DtRecipeComboboxMultiSelect',
15708
+ components: {
15709
+ DtRecipeComboboxWithPopover: combobox_with_popover,
15710
+ DtInput: input_input,
15711
+ DtChip: chip,
15712
+ DtValidationMessages: validation_messages
15713
+ },
15714
+ props: {
15715
+ /**
15716
+ * Label for the combobox
15717
+ */
15718
+ label: {
15719
+ type: String,
15720
+ default: null
15721
+ },
15722
+
15723
+ /**
15724
+ * Description for the combobox
15725
+ */
15726
+ description: {
15727
+ type: String,
15728
+ default: null
15729
+ },
15730
+
15731
+ /**
15732
+ * Input placeholder
15733
+ */
15734
+ placeholder: {
15735
+ type: String,
15736
+ default: 'Select one or start typing'
15737
+ },
15738
+
15739
+ /**
15740
+ * Input validation messages
15741
+ */
15742
+ inputMessages: {
15743
+ type: Array,
15744
+ default: () => [],
15745
+ validator: inputMessages => {
15746
+ return validationMessageValidator(inputMessages);
15747
+ }
15748
+ },
15749
+
15750
+ /**
15751
+ * Show input validation message
15752
+ */
15753
+ showInputMessages: {
15754
+ type: Boolean,
15755
+ default: true
15756
+ },
15757
+ // @TODO: https://dialpad.atlassian.net/browse/DP-52324
15758
+ // type: {
15759
+ // type: String,
15760
+ // values: ['input', 'select'],
15761
+ // default: 'select',
15762
+ // },
15763
+
15764
+ /**
15765
+ * Determines if the list is loading
15766
+ */
15767
+ loading: {
15768
+ type: Boolean,
15769
+ default: false
15770
+ },
15771
+
15772
+ /**
15773
+ * The message when the list is loading
15774
+ */
15775
+ loadingMessage: {
15776
+ type: String,
15777
+ default: 'loading...'
15778
+ },
15779
+
15780
+ /**
15781
+ * Determines when to show the list element and also controls the aria-expanded attribute.
15782
+ * Leaving this null will have the combobox trigger on input focus by default.
15783
+ * If you set this value, the default trigger behavior will be disabled and you can
15784
+ * control it as you need.
15785
+ */
15786
+ showList: {
15787
+ type: Boolean,
15788
+ default: null
15789
+ },
15790
+
15791
+ /**
15792
+ * Determines maximum height for the popover before overflow.
15793
+ * Possible units rem|px|em
15794
+ */
15795
+ listMaxHeight: {
15796
+ type: String,
15797
+ default: '300px'
15798
+ },
15799
+
15800
+ /**
15801
+ * The selected items
15802
+ */
15803
+ selectedItems: {
15804
+ type: Array,
15805
+ default: function () {
15806
+ return [];
15807
+ }
15808
+ },
15809
+
15810
+ /**
15811
+ * Would be the maximum number of selections you can make. 0 is unlimited
15812
+ */
15813
+ maxSelected: {
15814
+ type: Number,
15815
+ default: 0
15816
+ },
15817
+
15818
+ /**
15819
+ * Max select message when the max selections has been reached with the structure:
15820
+ * `[{"message": string, "type": VALIDATION_MESSAGE_TYPES }]`
15821
+ */
15822
+ maxSelectedMessage: {
15823
+ type: Array,
15824
+ default: function () {
15825
+ return [];
15826
+ }
15827
+ },
15828
+
15829
+ /**
15830
+ * Displays the list when the combobox is focused, before the user has typed anything.
15831
+ * When this is enabled the list will not close after selection.
15832
+ */
15833
+ hasSuggestionList: {
15834
+ type: Boolean,
15835
+ default: true
15836
+ }
15837
+ },
15838
+ emits: ['input', 'select', 'remove', 'max-selected', 'keyup'],
15839
+
15840
+ data() {
15841
+ return {
15842
+ value: '',
15843
+ popoverOffset: [0, 0],
15844
+ showValidationMessages: false,
15845
+ initialInputPadding: {},
15846
+ resizeWindowObserver: null
15847
+ };
15848
+ },
15849
+
15850
+ computed: {
15851
+ inputPlaceHolder() {
15852
+ var _this$selectedItems;
15853
+
15854
+ return ((_this$selectedItems = this.selectedItems) === null || _this$selectedItems === void 0 ? void 0 : _this$selectedItems.length) > 0 ? '' : this.placeholder;
15855
+ },
15856
+
15857
+ chipListeners() {
15858
+ return {
15859
+ keyup: event => {
15860
+ this.onChipKeyup(event);
15861
+ this.$emit('keyup', event);
15862
+ }
15863
+ };
15864
+ },
15865
+
15866
+ inputListeners() {
15867
+ return {
15868
+ input: event => {
15869
+ this.$emit('input', event);
15870
+ },
15871
+ keyup: event => {
15872
+ this.onInputKeyup(event);
15873
+ this.$emit('keyup', event);
15874
+ }
15875
+ };
15876
+ }
15877
+
15878
+ },
15879
+ watch: {
15880
+ selectedItems: {
15881
+ deep: true,
15882
+ immediate: true,
15883
+ handler: async function () {
15884
+ await this.$nextTick();
15885
+ this.setInputPadding();
15886
+ this.setInputMinWidth();
15887
+ this.checkMaxSelected();
15888
+ }
15889
+ },
15890
+
15891
+ async label() {
15892
+ await this.$nextTick(); // Adjust the chips position if label changed
15893
+
15894
+ this.setChipsTopPosition();
15895
+ },
15896
+
15897
+ async description() {
15898
+ await this.$nextTick(); // Adjust the chips position if description changed
15899
+
15900
+ this.setChipsTopPosition();
15901
+ }
15902
+
15903
+ },
15904
+
15905
+ mounted() {
15906
+ this.setChipsTopPosition(); // Recalculate chip position and input padding when resizing window
15907
+
15908
+ this.resizeWindowObserver = new ResizeObserver(() => {
15909
+ this.setChipsTopPosition();
15910
+ this.setInputPadding();
15911
+ }).observe(document.body);
15912
+ },
15913
+
15914
+ beforeUnmount() {
15915
+ var _this$resizeWindowObs;
15916
+
15917
+ (_this$resizeWindowObs = this.resizeWindowObserver) === null || _this$resizeWindowObs === void 0 ? void 0 : _this$resizeWindowObs.unobserve(document.body);
15918
+ },
15919
+
15920
+ methods: {
15921
+ onChipRemove(item) {
15922
+ this.$emit('remove', item);
15923
+ this.$refs.input.focus();
15924
+ },
15925
+
15926
+ onComboboxSelect(i) {
15927
+ this.value = '';
15928
+ this.$emit('select', i);
15929
+ },
15930
+
15931
+ getChipButtons() {
15932
+ return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));
15933
+ },
15934
+
15935
+ getChips() {
15936
+ return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);
15937
+ },
15938
+
15939
+ getLastChipButton() {
15940
+ return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];
15941
+ },
15942
+
15943
+ getLastChip() {
15944
+ return this.$refs.chips && this.getChips()[this.getChips().length - 1];
15945
+ },
15946
+
15947
+ getFirstChip() {
15948
+ return this.$refs.chips && this.getChips()[0];
15949
+ },
15950
+
15951
+ getInput() {
15952
+ var _this$$refs$input;
15953
+
15954
+ return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$refs.input;
15955
+ },
15956
+
15957
+ onChipKeyup(event) {
15958
+ var _event$code;
15959
+
15960
+ const key = (_event$code = event.code) === null || _event$code === void 0 ? void 0 : _event$code.toLowerCase();
15961
+
15962
+ if (key === 'arrowleft') {
15963
+ // Move to the previous chip
15964
+ this.navigateBetweenChips(event.target, true);
15965
+ } else if (key === 'arrowright') {
15966
+ if (event.target.id === this.getLastChipButton().id) {
15967
+ // Move to the input if it's the last chip
15968
+ this.moveFromChipToInput();
15969
+ } else {
15970
+ // Move to the next chip
15971
+ this.navigateBetweenChips(event.target, false);
15972
+ }
15973
+ }
15974
+ },
15975
+
15976
+ onInputKeyup(event) {
15977
+ var _event$code2;
15978
+
15979
+ 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,
15980
+ // press 'backspace' or 'left' focuses the last chip
15981
+
15982
+ if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {
15983
+ if (key === 'backspace' || key === 'arrowleft') {
15984
+ this.moveFromInputToChip();
15985
+ }
15986
+ }
15987
+ },
15988
+
15989
+ moveFromInputToChip() {
15990
+ this.getLastChipButton().focus();
15991
+ this.$refs.input.blur();
15992
+ this.$refs.comboboxWithPopover.closeComboboxList();
15993
+ },
15994
+
15995
+ moveFromChipToInput() {
15996
+ this.getLastChipButton().blur();
15997
+ this.$refs.input.focus();
15998
+ this.$refs.comboboxWithPopover.showComboboxList();
15999
+ },
16000
+
16001
+ navigateBetweenChips(target, toLeft) {
16002
+ const from = this.getChipButtons().indexOf(target);
16003
+ const to = toLeft ? from - 1 : from + 1;
16004
+
16005
+ if (to < 0 || to >= this.$refs.chips.length) {
16006
+ return;
16007
+ }
16008
+
16009
+ this.getChipButtons()[from].blur();
16010
+ this.getChipButtons()[to].focus();
16011
+ this.$refs.comboboxWithPopover.closeComboboxList();
16012
+ },
16013
+
16014
+ setChipsTopPosition() {
16015
+ // To place the chips in the input box
16016
+ // The chip "top" position should be the same line as the input box
16017
+ if (!this.$refs.input) {
16018
+ return;
16019
+ }
16020
+
16021
+ const input = this.getInput();
16022
+ if (!input) return;
16023
+ const inputSlotWrapper = this.$refs.inputSlotWrapper;
16024
+ const top = input.getBoundingClientRect().top - inputSlotWrapper.getBoundingClientRect().top;
16025
+ const chipsWrapper = this.$refs.chipsWrapper;
16026
+ chipsWrapper.style.top = top + 'px';
16027
+ },
16028
+
16029
+ setInputPadding() {
16030
+ const lastChip = this.getLastChip();
16031
+ const input = this.getInput();
16032
+ if (!input) return;
16033
+
16034
+ if (!lastChip) {
16035
+ // Revert padding if no chip
16036
+ this.revertInputPadding(input);
16037
+ return;
16038
+ } // Get the position of the last chip
16039
+ // The input cursor should be the same "top" as that chip and next besides it
16040
+
16041
+
16042
+ const left = lastChip.offsetLeft + this.getFullWidth(lastChip);
16043
+ input.style.paddingLeft = left + 'px'; // Chip has vertical margin. We add buffer to top center the input text
16044
+
16045
+ const top = lastChip.offsetTop + 3;
16046
+ input.style.paddingTop = top + 'px'; // TODO: refresh the tippy.js instance in the popover
16047
+ // If the new chip goes to the next line and the input box expands,
16048
+ // move the popover down to the next line. Same when chips are removed
16049
+
16050
+ this.popoverOffset = [0, 0];
16051
+ },
16052
+
16053
+ getFullWidth(el) {
16054
+ const styles = window.getComputedStyle(el);
16055
+ return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);
16056
+ },
16057
+
16058
+ revertInputPadding(input) {
16059
+ input.style.paddingLeft = '';
16060
+ input.style.paddingTop = '';
16061
+ input.style.paddingBottom = '';
16062
+ },
16063
+
16064
+ setInputMinWidth() {
16065
+ // Ensure the width of the input is "slightly bigger" than the width of a single chip
16066
+ const firstChip = this.getFirstChip();
16067
+ const input = this.getInput();
16068
+ if (!input) return;
16069
+
16070
+ if (firstChip) {
16071
+ // Add 4px buffer for typing room
16072
+ input.style.minWidth = this.getFullWidth(firstChip) + 4 + 'px';
16073
+ } else {
16074
+ input.style.minWidth = '';
16075
+ }
16076
+ },
16077
+
16078
+ checkMaxSelected() {
16079
+ if (this.maxSelected === 0) return;
16080
+
16081
+ if (this.selectedItems.length >= this.maxSelected) {
16082
+ this.showValidationMessages = true;
16083
+ this.$emit('max-selected');
16084
+ } else {
16085
+ this.showValidationMessages = false;
16086
+ }
16087
+ }
16088
+
16089
+ }
16090
+ });
16091
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue?vue&type=script&lang=js
16092
+
16093
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue
16094
+
16095
+
16096
+
16097
+
16098
+ ;
16099
+ 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]])
16100
+
16101
+ /* harmony default export */ const combobox_multi_select = (combobox_multi_select_exports_);
16102
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/index.js
16103
+
15211
16104
  ;// 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/list_items/contact_info/contact_info.vue?vue&type=template&id=7091b031
15212
16105
 
15213
16106
  const contact_infovue_type_template_id_7091b031_hoisted_1 = {
@@ -15498,6 +16391,8 @@ const top_banner_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(to
15498
16391
  /// Recipes
15499
16392
 
15500
16393
 
16394
+
16395
+
15501
16396
  // Mixins
15502
16397
 
15503
16398
  // Emoji