@dialpad/dialtone-vue 3.9.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2924,15 +2924,17 @@ const button_group_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(butto
2924
2924
  ;// CONCATENATED MODULE: ./components/button_group/index.js
2925
2925
 
2926
2926
 
2927
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=d0659498
2927
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=83040a60
2928
2928
 
2929
- const comboboxvue_type_template_id_d0659498_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2930
- const comboboxvue_type_template_id_d0659498_hoisted_2 = {
2929
+ const comboboxvue_type_template_id_83040a60_hoisted_1 = ["aria-expanded", "aria-controls", "aria-owns"];
2930
+ const comboboxvue_type_template_id_83040a60_hoisted_2 = {
2931
2931
  "data-qa": "dt-combobox-input-wrapper"
2932
2932
  };
2933
- function comboboxvue_type_template_id_d0659498_render(_ctx, _cache, $props, $setup, $data, $options) {
2933
+ function comboboxvue_type_template_id_83040a60_render(_ctx, _cache, $props, $setup, $data, $options) {
2934
2934
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
2935
2935
 
2936
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
2937
+
2936
2938
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
2937
2939
  role: "combobox",
2938
2940
  "aria-expanded": $props.showList.toString(),
@@ -2940,7 +2942,7 @@ function comboboxvue_type_template_id_d0659498_render(_ctx, _cache, $props, $set
2940
2942
  "aria-owns": $props.listId,
2941
2943
  "aria-haspopup": "listbox",
2942
2944
  onKeydown: [_cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEscapeKey'), ["stop"]), ["esc"])), _cache[4] || (_cache[4] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEnterKey'), ["exact"]), ["enter"])), _cache[5] || (_cache[5] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onUpKey'), ["stop", "prevent"]), ["up"])), _cache[6] || (_cache[6] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onDownKey'), ["stop", "prevent"]), ["down"])), _cache[7] || (_cache[7] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onHomeKey'), ["stop", "prevent"]), ["home"])), _cache[8] || (_cache[8] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEndKey'), ["stop", "prevent"]), ["end"]))]
2943
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_d0659498_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
2945
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_83040a60_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
2944
2946
  inputProps: $options.inputProps
2945
2947
  })]), $props.showList ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
2946
2948
  key: 0,
@@ -2955,16 +2957,22 @@ function comboboxvue_type_template_id_d0659498_render(_ctx, _cache, $props, $set
2955
2957
  onMousemoveCapture: _cache[2] || (_cache[2] = function () {
2956
2958
  return $options.onMouseHighlight && $options.onMouseHighlight(...arguments);
2957
2959
  })
2958
- }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2960
+ }, [$data.isLoading && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2959
2961
  key: 0
2960
- }, $options.listProps)), null, 16)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
2961
- key: 1,
2962
+ }, $options.listProps)), null, 16)) : $data.isListEmpty && !$props.listRenderedOutside ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
2963
+ key: 1
2964
+ }, $options.listProps, {
2965
+ message: $props.emptyStateMessage
2966
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
2967
+ key: 2,
2962
2968
  listProps: $options.listProps,
2963
2969
  opened: $options.onOpen,
2964
- clearHighlightIndex: $options.clearHighlightIndex
2965
- })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_d0659498_hoisted_1);
2970
+ clearHighlightIndex: $options.clearHighlightIndex,
2971
+ isLoading: $data.isLoading,
2972
+ isListEmpty: $data.isListEmpty
2973
+ })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 40, comboboxvue_type_template_id_83040a60_hoisted_1);
2966
2974
  }
2967
- ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=d0659498
2975
+ ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=83040a60
2968
2976
 
2969
2977
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
2970
2978
  /* harmony default export */ const dom = ({
@@ -3267,22 +3275,20 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
3267
3275
  this.setHighlightIndex(this._itemsLength() - 1);
3268
3276
  },
3269
3277
 
3270
- async setHighlightIndex(num) {
3278
+ setHighlightIndex(num) {
3271
3279
  this[indexKey] = num;
3272
3280
  this[idKey] = this._getItemId(num);
3273
3281
 
3274
3282
  if (this._itemsLength() && afterHighlightMethod) {
3275
- await this.$nextTick();
3276
3283
  this[afterHighlightMethod](num);
3277
3284
  }
3278
3285
  },
3279
3286
 
3280
- async setHighlightId(id) {
3287
+ setHighlightId(id) {
3281
3288
  this[idKey] = id;
3282
3289
  this[indexKey] = this._getItemIndex(id);
3283
3290
 
3284
3291
  if (this._itemsLength() && afterHighlightMethod) {
3285
- await this.$nextTick();
3286
3292
  this[afterHighlightMethod](this._getItemIndex(id));
3287
3293
  }
3288
3294
  },
@@ -4265,14 +4271,61 @@ const skeleton_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(skeletonv
4265
4271
  const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_loading_listvue_type_script_lang_js, [['render',combobox_loading_listvue_type_template_id_07d9971d_render]])
4266
4272
 
4267
4273
  /* harmony default export */ const combobox_loading_list = (combobox_loading_list_exports_);
4274
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112
4275
+
4276
+ const combobox_empty_listvue_type_template_id_85c21112_hoisted_1 = {
4277
+ class: "d-p0",
4278
+ "data-qa": "dt-combobox-empty-list"
4279
+ };
4280
+ function combobox_empty_listvue_type_template_id_85c21112_render(_ctx, _cache, $props, $setup, $data, $options) {
4281
+ const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-list-item");
4282
+
4283
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("ol", combobox_empty_listvue_type_template_id_85c21112_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_list_item, {
4284
+ class: "d-d-flex d-jc-center",
4285
+ role: "option",
4286
+ "navigation-type": "arrow-keys"
4287
+ }, {
4288
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.message), 1)]),
4289
+ _: 1
4290
+ })]);
4291
+ }
4292
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=template&id=85c21112
4293
+
4294
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4295
+
4296
+ /* harmony default export */ const combobox_empty_listvue_type_script_lang_js = ({
4297
+ name: 'ComboboxEmptyList',
4298
+ components: {
4299
+ DtListItem: list_item
4300
+ },
4301
+ props: {
4302
+ message: {
4303
+ type: String,
4304
+ required: true
4305
+ }
4306
+ }
4307
+ });
4308
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue?vue&type=script&lang=js
4309
+
4310
+ ;// CONCATENATED MODULE: ./components/combobox/combobox_empty-list.vue
4311
+
4312
+
4313
+
4314
+
4315
+ ;
4316
+ const combobox_empty_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_empty_listvue_type_script_lang_js, [['render',combobox_empty_listvue_type_template_id_85c21112_render]])
4317
+
4318
+ /* harmony default export */ const combobox_empty_list = (combobox_empty_list_exports_);
4268
4319
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=script&lang=js
4269
4320
 
4270
4321
 
4271
4322
 
4323
+
4272
4324
  /* harmony default export */ const comboboxvue_type_script_lang_js = ({
4273
4325
  name: 'DtCombobox',
4274
4326
  components: {
4275
- ComboboxLoadingList: combobox_loading_list
4327
+ ComboboxLoadingList: combobox_loading_list,
4328
+ ComboboxEmptyList: combobox_empty_list
4276
4329
  },
4277
4330
  mixins: [keyboard_list_navigation({
4278
4331
  indexKey: 'highlightIndex',
@@ -4343,6 +4396,14 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4343
4396
  loading: {
4344
4397
  type: Boolean,
4345
4398
  default: false
4399
+ },
4400
+
4401
+ /**
4402
+ * Message to show when the list is empty
4403
+ */
4404
+ emptyStateMessage: {
4405
+ type: String,
4406
+ default: ''
4346
4407
  }
4347
4408
  },
4348
4409
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -4352,7 +4413,9 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4352
4413
  // If the list is rendered at the root, rather than as a child
4353
4414
  // of this component, this is the ref to that dom element. Set
4354
4415
  // by the onOpen method.
4355
- outsideRenderedListRef: null
4416
+ outsideRenderedListRef: null,
4417
+ isListEmpty: undefined,
4418
+ isLoading: undefined
4356
4419
  };
4357
4420
  },
4358
4421
 
@@ -4403,20 +4466,35 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4403
4466
  watch: {
4404
4467
  showList(showList) {
4405
4468
  // When the list's visibility changes reset the highlight index.
4406
- this.$nextTick(function () {
4407
- if (!this.listRenderedOutside) {
4408
- this.setInitialHighlightIndex();
4409
- this.$emit('opened', showList);
4410
- }
4411
- });
4469
+ if (!this.listRenderedOutside) {
4470
+ this.setInitialHighlightIndex();
4471
+ this.$emit('opened', showList);
4472
+ }
4412
4473
 
4413
4474
  if (!showList && this.outsideRenderedListRef) {
4414
4475
  this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);
4415
4476
  this.outsideRenderedListRef = null;
4477
+ this.isListEmpty = undefined;
4416
4478
  }
4479
+ },
4480
+
4481
+ loading(isLoading) {
4482
+ this.isListEmpty = undefined;
4483
+ this.isLoading = isLoading;
4484
+ this.$nextTick(() => {
4485
+ this.isListEmpty = this.checkItemsLength();
4486
+ this.setInitialHighlightIndex();
4487
+ });
4417
4488
  }
4418
4489
 
4419
4490
  },
4491
+
4492
+ async mounted() {
4493
+ this.isLoading = this.loading;
4494
+ await this.$nextTick();
4495
+ this.isListEmpty = this.checkItemsLength();
4496
+ },
4497
+
4420
4498
  methods: {
4421
4499
  onMouseHighlight(e) {
4422
4500
  if (this.loading) return;
@@ -4445,7 +4523,7 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4445
4523
  },
4446
4524
 
4447
4525
  onEnterKey() {
4448
- if (this.loading) return;
4526
+ if (this.loading || this.isListEmpty) return;
4449
4527
 
4450
4528
  if (this.highlightIndex >= 0) {
4451
4529
  this.$emit('select', this.highlightIndex);
@@ -4464,24 +4542,30 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4464
4542
  this.$emit('opened', open);
4465
4543
 
4466
4544
  if (open) {
4545
+ this.isListEmpty = this.checkItemsLength();
4467
4546
  this.setInitialHighlightIndex();
4468
4547
  }
4469
4548
  },
4470
4549
 
4471
4550
  onKeyValidation(e, eventHandler) {
4472
- if (!this.showList || !this.getListElement()) {
4473
- return;
4474
- }
4475
-
4551
+ if (!this.showList || !this.getListElement()) return;
4476
4552
  this[eventHandler](e);
4477
4553
  },
4478
4554
 
4479
4555
  setInitialHighlightIndex() {
4480
- if (this.showList) {
4556
+ if (!this.showList) return;
4557
+ this.$nextTick(() => {
4481
4558
  // When the list's is shown, reset the highlight index.
4482
4559
  // If the list is loading, set to -1
4483
4560
  this.setHighlightIndex(this.loading ? -1 : 0);
4484
- }
4561
+ });
4562
+ },
4563
+
4564
+ checkItemsLength() {
4565
+ if (!this.showList) return undefined;
4566
+ const list = this.getListElement();
4567
+ const options = list === null || list === void 0 ? void 0 : list.querySelectorAll("[role=\"option\"]");
4568
+ return (options === null || options === void 0 ? void 0 : options.length) === 0;
4485
4569
  }
4486
4570
 
4487
4571
  }
@@ -4494,7 +4578,7 @@ const combobox_loading_list_exports_ = /*#__PURE__*/(0,exportHelper/* default */
4494
4578
 
4495
4579
 
4496
4580
  ;
4497
- const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_d0659498_render]])
4581
+ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_83040a60_render]])
4498
4582
 
4499
4583
  /* harmony default export */ const combobox = (combobox_exports_);
4500
4584
  ;// CONCATENATED MODULE: ./components/combobox/index.js
@@ -15533,19 +15617,22 @@ const root_layout_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(root_l
15533
15617
  ;// CONCATENATED MODULE: ./components/root_layout/index.js
15534
15618
 
15535
15619
 
15536
- ;// 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=b000d074
15620
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=37048598
15537
15621
 
15538
- const combobox_with_popovervue_type_template_id_b000d074_hoisted_1 = ["id"];
15539
- const combobox_with_popovervue_type_template_id_b000d074_hoisted_2 = ["onMouseleave", "onFocusout"];
15540
- function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache, $props, $setup, $data, $options) {
15622
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_1 = ["id"];
15623
+ const combobox_with_popovervue_type_template_id_37048598_hoisted_2 = ["onMouseleave", "onFocusout"];
15624
+ function combobox_with_popovervue_type_template_id_37048598_render(_ctx, _cache, $props, $setup, $data, $options) {
15541
15625
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
15542
15626
 
15627
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
15628
+
15543
15629
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
15544
15630
 
15545
15631
  const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-combobox");
15546
15632
 
15547
15633
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_combobox, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15548
15634
  ref: "combobox",
15635
+ loading: $props.loading,
15549
15636
  "show-list": $data.isListShown,
15550
15637
  "on-beginning-of-list": $props.onBeginningOfList,
15551
15638
  "on-end-of-list": $props.onEndOfList,
@@ -15571,19 +15658,21 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15571
15658
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
15572
15659
  inputProps: inputProps,
15573
15660
  onInput: $options.handleDisplayList
15574
- })], 40, combobox_with_popovervue_type_template_id_b000d074_hoisted_1)];
15661
+ })], 40, combobox_with_popovervue_type_template_id_37048598_hoisted_1)];
15575
15662
  }),
15576
15663
  list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
15577
15664
  let {
15578
15665
  opened,
15579
15666
  listProps,
15580
- clearHighlightIndex
15667
+ clearHighlightIndex,
15668
+ isLoading,
15669
+ isListEmpty
15581
15670
  } = _ref2;
15582
15671
  return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_popover, {
15583
15672
  ref: "popover",
15584
15673
  open: $data.isListShown,
15585
15674
  "onUpdate:open": _cache[6] || (_cache[6] = $event => $data.isListShown = $event),
15586
- "hide-on-click": true,
15675
+ "hide-on-click": $props.showList === null,
15587
15676
  "max-height": $props.maxHeight,
15588
15677
  "max-width": $props.maxWidth,
15589
15678
  offset: $props.popoverOffset,
@@ -15606,14 +15695,16 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15606
15695
  clearHighlightIndex;
15607
15696
  $options.onFocusOut;
15608
15697
  }
15609
- }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15698
+ }, [isLoading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15610
15699
  key: 0
15700
+ }, listProps)), null, 16)) : isListEmpty ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
15701
+ key: 1
15611
15702
  }, listProps, {
15612
- class: [$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]
15613
- }), null, 16, ["class"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15614
- key: 1,
15703
+ message: $props.emptyStateMessage
15704
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
15705
+ key: 2,
15615
15706
  listProps: listProps
15616
- })], 42, combobox_with_popovervue_type_template_id_b000d074_hoisted_2)]),
15707
+ })], 42, combobox_with_popovervue_type_template_id_37048598_hoisted_2)]),
15617
15708
  _: 2
15618
15709
  }, [_ctx.$slots.header ? {
15619
15710
  name: "headerContent",
@@ -15631,24 +15722,26 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15631
15722
  return $options.onFocusOut && $options.onFocusOut(...arguments);
15632
15723
  })
15633
15724
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 544)])
15634
- } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "onOpened"])];
15725
+ } : undefined]), 1032, ["open", "hide-on-click", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "onOpened"])];
15635
15726
  }),
15636
15727
  _: 3
15637
- }, 16, ["show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15728
+ }, 16, ["loading", "show-list", "on-beginning-of-list", "on-end-of-list", "list-aria-label", "list-id"]);
15638
15729
  }
15639
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=b000d074
15730
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=37048598
15640
15731
 
15641
15732
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
15642
15733
 
15643
15734
 
15644
15735
 
15645
15736
 
15737
+
15646
15738
  /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
15647
15739
  name: 'DtRecipeComboboxWithPopover',
15648
15740
  components: {
15649
15741
  DtCombobox: combobox,
15650
15742
  DtPopover: popover,
15651
- ComboboxLoadingList: combobox_loading_list
15743
+ ComboboxLoadingList: combobox_loading_list,
15744
+ ComboboxEmptyList: combobox_empty_list
15652
15745
  },
15653
15746
  props: {
15654
15747
  /**
@@ -15787,6 +15880,14 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15787
15880
  loading: {
15788
15881
  type: Boolean,
15789
15882
  default: false
15883
+ },
15884
+
15885
+ /**
15886
+ * Message to show when the list is empty
15887
+ */
15888
+ emptyStateMessage: {
15889
+ type: String,
15890
+ default: ''
15790
15891
  }
15791
15892
  },
15792
15893
  emits: ['select', 'escape', 'highlight', 'opened'],
@@ -15827,13 +15928,7 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15827
15928
 
15828
15929
  },
15829
15930
  methods: {
15830
- async handleDisplayList(value) {
15831
- if (this.isListShown) {
15832
- // After the list is updated, hightlight the first item
15833
- await this.$nextTick();
15834
- this.$refs.combobox.setInitialHighlightIndex();
15835
- }
15836
-
15931
+ handleDisplayList(value) {
15837
15932
  if (!this.hasSuggestionList) {
15838
15933
  if (value) {
15839
15934
  // Displays the list after the user has typed anything
@@ -15923,7 +16018,7 @@ function combobox_with_popovervue_type_template_id_b000d074_render(_ctx, _cache,
15923
16018
 
15924
16019
 
15925
16020
  ;
15926
- const combobox_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_with_popovervue_type_script_lang_js, [['render',combobox_with_popovervue_type_template_id_b000d074_render]])
16021
+ const combobox_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(combobox_with_popovervue_type_script_lang_js, [['render',combobox_with_popovervue_type_template_id_37048598_render]])
15927
16022
 
15928
16023
  /* harmony default export */ const combobox_with_popover = (combobox_with_popover_exports_);
15929
16024
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/index.js