@dialpad/dialtone-vue 3.120.0 → 3.120.2
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.
- package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js +11 -0
- package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js +10 -0
- package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js.map +1 -0
- package/dist/chunks/{dropdown-eWOvBvwq.js → dropdown-Hn-TeTvZ.js} +151 -104
- package/dist/chunks/{dropdown-UO3UJalk.js.map → dropdown-Hn-TeTvZ.js.map} +1 -1
- package/dist/chunks/dropdown-w8Do29L5.js +442 -0
- package/dist/chunks/{dropdown-eWOvBvwq.js.map → dropdown-w8Do29L5.js.map} +1 -1
- package/dist/chunks/dropdown_constants-2pGCXy7m.js +8 -0
- package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
- package/dist/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
- package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
- package/dist/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
- package/dist/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
- package/dist/chunks/icon_constants-QYpmdE0R.js +16 -0
- package/dist/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
- package/dist/chunks/index-4qgKeErp.js +446 -0
- package/dist/chunks/{index-b4iXYvId.js.map → index-4qgKeErp.js.map} +1 -1
- package/dist/chunks/index-b_MgDylR.js +447 -0
- package/dist/chunks/{index-6tYeqbgP.js.map → index-b_MgDylR.js.map} +1 -1
- package/dist/chunks/{input-4UQWegUk.js → input-NmYDD5bn.js} +83 -60
- package/dist/chunks/{input-0Uksk4DP.js.map → input-NmYDD5bn.js.map} +1 -1
- package/dist/chunks/input-ttnte8zB.js +295 -0
- package/dist/chunks/{input-4UQWegUk.js.map → input-ttnte8zB.js.map} +1 -1
- package/dist/chunks/input_group-M-D25pOJ.js +152 -0
- package/dist/chunks/{input_group-bBKaq3Wi.js.map → input_group-M-D25pOJ.js.map} +1 -1
- package/dist/chunks/{input_group-bBKaq3Wi.js → input_group-jWnq2DJT.js} +27 -24
- package/dist/chunks/{input_group-AS760Cp7.js.map → input_group-jWnq2DJT.js.map} +1 -1
- package/dist/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
- package/dist/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
- package/dist/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
- package/dist/chunks/{keyboard_list_navigation-F0O8nht0.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
- package/dist/chunks/link_constants-Huj7D_hm.js +22 -0
- package/dist/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
- package/dist/chunks/link_constants-nWVlXQBs.js +23 -0
- package/dist/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
- package/dist/chunks/list_item_constants-EiqkqZvP.js +13 -0
- package/dist/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
- package/dist/chunks/list_item_constants-u1xcN9Dd.js +14 -0
- package/dist/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
- package/dist/chunks/modal-VgxXAQFP.js +105 -0
- package/dist/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
- package/dist/chunks/modal-XOr4kiNZ.js +106 -0
- package/dist/chunks/{modal-VuMFkZFH.js.map → modal-XOr4kiNZ.js.map} +1 -1
- package/dist/chunks/notice_action-WTucGhvr.js +222 -0
- package/dist/chunks/{notice_action-tJfD5Qw1.js.map → notice_action-WTucGhvr.js.map} +1 -1
- package/dist/chunks/notice_action-p-ePanW_.js +223 -0
- package/dist/chunks/{notice_action-jO199emq.js.map → notice_action-p-ePanW_.js.map} +1 -1
- package/dist/chunks/notice_constants-7Qt2CQEY.js +7 -0
- package/dist/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
- package/dist/chunks/notice_constants-UXo9e3bS.js +6 -0
- package/dist/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
- package/dist/chunks/popover_constants-JwBF9h1Z.js +143 -0
- package/dist/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-JwBF9h1Z.js.map} +1 -1
- package/dist/chunks/popover_constants-Qkpb0yh2.js +144 -0
- package/dist/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
- package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js → sr_only_close_button-3EdsV-dH.js} +28 -24
- package/dist/chunks/{sr_only_close_button-iD7s1Pbj.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
- package/dist/chunks/sr_only_close_button-xGrHFjwA.js +91 -0
- package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
- package/dist/chunks/stack_constants-HraCekPm.js +15 -0
- package/dist/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
- package/dist/chunks/stack_constants-SMzMWnAQ.js +14 -0
- package/dist/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
- package/dist/chunks/tab-RTDgnD9-.js +391 -0
- package/dist/chunks/{tab-at7WWglk.js.map → tab-RTDgnD9-.js.map} +1 -1
- package/dist/chunks/tab-qc3f42Yp.js +390 -0
- package/dist/chunks/{tab-GQZFMq83.js.map → tab-qc3f42Yp.js.map} +1 -1
- package/dist/common/constants.cjs +60 -0
- package/dist/{lib → common}/constants.cjs.map +1 -1
- package/dist/{lib → common}/constants.js +25 -18
- package/dist/{lib → common}/constants.js.map +1 -1
- package/dist/common/dates.cjs +72 -0
- package/dist/{lib → common}/dates.cjs.map +1 -1
- package/dist/common/dates.js +72 -0
- package/dist/{lib → common}/dates.js.map +1 -1
- package/dist/common/emoji.cjs +163 -0
- package/dist/common/emoji.cjs.map +1 -0
- package/dist/common/emoji.js +168 -0
- package/dist/common/emoji.js.map +1 -0
- package/dist/common/mixins.cjs +17 -0
- package/dist/{lib → common}/mixins.cjs.map +1 -1
- package/dist/common/mixins.js +17 -0
- package/dist/common/utils.cjs +243 -0
- package/dist/{lib → common}/utils.cjs.map +1 -1
- package/dist/common/utils.js +243 -0
- package/dist/{lib → common}/utils.js.map +1 -1
- package/dist/common/validators.cjs +23 -0
- package/dist/{lib → common}/validators.cjs.map +1 -1
- package/dist/common/validators.js +23 -0
- package/dist/{lib → common}/validators.js.map +1 -1
- package/dist/dialtone-vue.cjs +373 -1
- package/dist/dialtone-vue.cjs.map +1 -1
- package/dist/dialtone-vue.js +328 -327
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel.cjs +345 -1
- package/dist/lib/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel.js +126 -108
- package/dist/lib/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar.cjs +447 -1
- package/dist/lib/avatar.cjs.map +1 -1
- package/dist/lib/avatar.js +135 -101
- package/dist/lib/avatar.js.map +1 -1
- package/dist/lib/badge.cjs +206 -1
- package/dist/lib/badge.cjs.map +1 -1
- package/dist/lib/badge.js +64 -48
- package/dist/lib/badge.js.map +1 -1
- package/dist/lib/banner.cjs +242 -2
- package/dist/lib/banner.cjs.map +1 -1
- package/dist/lib/banner.js +81 -71
- package/dist/lib/banner.js.map +1 -1
- package/dist/lib/breadcrumbs.cjs +150 -1
- package/dist/lib/breadcrumbs.cjs.map +1 -1
- package/dist/lib/breadcrumbs.js +60 -52
- package/dist/lib/breadcrumbs.js.map +1 -1
- package/dist/lib/button-group.cjs +41 -1
- package/dist/lib/button-group.cjs.map +1 -1
- package/dist/lib/button-group.js +15 -14
- package/dist/lib/button-group.js.map +1 -1
- package/dist/lib/button.cjs +356 -1
- package/dist/lib/button.cjs.map +1 -1
- package/dist/lib/button.js +108 -88
- package/dist/lib/button.js.map +1 -1
- package/dist/lib/callbar-button-with-popover.cjs +322 -1
- package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/lib/callbar-button-with-popover.js +101 -83
- package/dist/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/lib/callbar-button.cjs +200 -1
- package/dist/lib/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button.js +52 -45
- package/dist/lib/callbar-button.js.map +1 -1
- package/dist/lib/callbox.cjs +217 -1
- package/dist/lib/callbox.cjs.map +1 -1
- package/dist/lib/callbox.js +80 -67
- package/dist/lib/callbox.js.map +1 -1
- package/dist/lib/card.cjs +91 -1
- package/dist/lib/card.cjs.map +1 -1
- package/dist/lib/card.js +27 -27
- package/dist/lib/card.js.map +1 -1
- package/dist/lib/checkbox-group.cjs +115 -1
- package/dist/lib/checkbox-group.cjs.map +1 -1
- package/dist/lib/checkbox-group.js +34 -23
- package/dist/lib/checkbox-group.js.map +1 -1
- package/dist/lib/checkbox.cjs +156 -1
- package/dist/lib/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox.js +72 -60
- package/dist/lib/checkbox.js.map +1 -1
- package/dist/lib/chip.cjs +235 -1
- package/dist/lib/chip.cjs.map +1 -1
- package/dist/lib/chip.js +84 -67
- package/dist/lib/chip.js.map +1 -1
- package/dist/lib/codeblock.cjs +23 -2
- package/dist/lib/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock.js +13 -13
- package/dist/lib/codeblock.js.map +1 -1
- package/dist/lib/collapsible.cjs +398 -1
- package/dist/lib/collapsible.cjs.map +1 -1
- package/dist/lib/collapsible.js +123 -100
- package/dist/lib/collapsible.js.map +1 -1
- package/dist/lib/combobox-multi-select.cjs +589 -1
- package/dist/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select.js +270 -177
- package/dist/lib/combobox-multi-select.js.map +1 -1
- package/dist/lib/combobox-with-popover.cjs +452 -1
- package/dist/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/lib/combobox-with-popover.js +172 -127
- package/dist/lib/combobox-with-popover.js.map +1 -1
- package/dist/lib/combobox.cjs +18 -1
- package/dist/lib/combobox.cjs.map +1 -1
- package/dist/lib/combobox.js +9 -9
- package/dist/lib/contact-info.cjs +205 -1
- package/dist/lib/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info.js +69 -60
- package/dist/lib/contact-info.js.map +1 -1
- package/dist/lib/contact-row.cjs +246 -1
- package/dist/lib/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row.js +67 -63
- package/dist/lib/contact-row.js.map +1 -1
- package/dist/lib/datepicker.cjs +854 -1
- package/dist/lib/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker.js +585 -441
- package/dist/lib/datepicker.js.map +1 -1
- package/dist/lib/description-list.cjs +116 -1
- package/dist/lib/description-list.cjs.map +1 -1
- package/dist/lib/description-list.js +56 -24
- package/dist/lib/description-list.js.map +1 -1
- package/dist/lib/dropdown.cjs +36 -1
- package/dist/lib/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown.js +22 -21
- package/dist/lib/dropdown.js.map +1 -1
- package/dist/lib/editor.cjs +711 -1
- package/dist/lib/editor.cjs.map +1 -1
- package/dist/lib/editor.js +271 -235
- package/dist/lib/editor.js.map +1 -1
- package/dist/lib/emoji-picker.cjs +1277 -1
- package/dist/lib/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker.js +859 -569
- package/dist/lib/emoji-picker.js.map +1 -1
- package/dist/lib/emoji-row.cjs +128 -1
- package/dist/lib/emoji-row.cjs.map +1 -1
- package/dist/lib/emoji-row.js +89 -75
- package/dist/lib/emoji-row.js.map +1 -1
- package/dist/lib/emoji-text-wrapper.cjs +102 -1
- package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/lib/emoji-text-wrapper.js +42 -31
- package/dist/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/emoji.cjs +158 -1
- package/dist/lib/emoji.cjs.map +1 -1
- package/dist/lib/emoji.js +153 -6
- package/dist/lib/emoji.js.map +1 -1
- package/dist/lib/feed-item-row.cjs +296 -1
- package/dist/lib/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row.js +119 -100
- package/dist/lib/feed-item-row.js.map +1 -1
- package/dist/lib/feed-pill.cjs +173 -1
- package/dist/lib/feed-pill.cjs.map +1 -1
- package/dist/lib/feed-pill.js +70 -57
- package/dist/lib/feed-pill.js.map +1 -1
- package/dist/lib/general-row.cjs +518 -1
- package/dist/lib/general-row.cjs.map +1 -1
- package/dist/lib/general-row.js +186 -148
- package/dist/lib/general-row.js.map +1 -1
- package/dist/lib/group-row.cjs +116 -1
- package/dist/lib/group-row.cjs.map +1 -1
- package/dist/lib/group-row.js +37 -35
- package/dist/lib/group-row.js.map +1 -1
- package/dist/lib/grouped-chip.cjs +96 -1
- package/dist/lib/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip.js +51 -46
- package/dist/lib/grouped-chip.js.map +1 -1
- package/dist/lib/hovercard.cjs +223 -1
- package/dist/lib/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard.js +115 -80
- package/dist/lib/hovercard.js.map +1 -1
- package/dist/lib/icon.cjs +58 -1
- package/dist/lib/icon.cjs.map +1 -1
- package/dist/lib/icon.js +20 -20
- package/dist/lib/icon.js.map +1 -1
- package/dist/lib/image-viewer.cjs +243 -1
- package/dist/lib/image-viewer.cjs.map +1 -1
- package/dist/lib/image-viewer.js +104 -80
- package/dist/lib/image-viewer.js.map +1 -1
- package/dist/lib/input-group.cjs +91 -1
- package/dist/lib/input-group.cjs.map +1 -1
- package/dist/lib/input-group.js +41 -39
- package/dist/lib/input-group.js.map +1 -1
- package/dist/lib/input.cjs +578 -1
- package/dist/lib/input.cjs.map +1 -1
- package/dist/lib/input.js +185 -137
- package/dist/lib/input.js.map +1 -1
- package/dist/lib/item-layout.cjs +91 -1
- package/dist/lib/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout.js +45 -39
- package/dist/lib/item-layout.js.map +1 -1
- package/dist/lib/ivr-node.cjs +263 -1
- package/dist/lib/ivr-node.cjs.map +1 -1
- package/dist/lib/ivr-node.js +130 -112
- package/dist/lib/ivr-node.js.map +1 -1
- package/dist/lib/keyboard-shortcut.cjs +119 -1
- package/dist/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut.js +58 -48
- package/dist/lib/keyboard-shortcut.js.map +1 -1
- package/dist/lib/lazy-show.cjs +82 -1
- package/dist/lib/lazy-show.cjs.map +1 -1
- package/dist/lib/lazy-show.js +21 -19
- package/dist/lib/lazy-show.js.map +1 -1
- package/dist/lib/link.cjs +43 -1
- package/dist/lib/link.cjs.map +1 -1
- package/dist/lib/link.js +20 -19
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/list-item-group.cjs +67 -1
- package/dist/lib/list-item-group.cjs.map +1 -1
- package/dist/lib/list-item-group.js +24 -22
- package/dist/lib/list-item-group.js.map +1 -1
- package/dist/lib/list-item.cjs +216 -1
- package/dist/lib/list-item.cjs.map +1 -1
- package/dist/lib/list-item.js +71 -60
- package/dist/lib/list-item.js.map +1 -1
- package/dist/lib/message-input.cjs +708 -1
- package/dist/lib/message-input.cjs.map +1 -1
- package/dist/lib/message-input.js +232 -206
- package/dist/lib/message-input.js.map +1 -1
- package/dist/lib/modal.cjs +444 -2
- package/dist/lib/modal.cjs.map +1 -1
- package/dist/lib/modal.js +153 -120
- package/dist/lib/modal.js.map +1 -1
- package/dist/lib/notice.cjs +197 -1
- package/dist/lib/notice.cjs.map +1 -1
- package/dist/lib/notice.js +66 -63
- package/dist/lib/notice.js.map +1 -1
- package/dist/lib/pagination.cjs +205 -1
- package/dist/lib/pagination.cjs.map +1 -1
- package/dist/lib/pagination.js +96 -81
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/popover.cjs +1080 -1
- package/dist/lib/popover.cjs.map +1 -1
- package/dist/lib/popover.js +447 -267
- package/dist/lib/popover.js.map +1 -1
- package/dist/lib/presence.cjs +70 -1
- package/dist/lib/presence.cjs.map +1 -1
- package/dist/lib/presence.js +33 -27
- package/dist/lib/presence.js.map +1 -1
- package/dist/lib/radio-group.cjs +88 -1
- package/dist/lib/radio-group.cjs.map +1 -1
- package/dist/lib/radio-group.js +18 -18
- package/dist/lib/radio-group.js.map +1 -1
- package/dist/lib/radio.cjs +162 -1
- package/dist/lib/radio.cjs.map +1 -1
- package/dist/lib/radio.js +66 -57
- package/dist/lib/radio.js.map +1 -1
- package/dist/lib/rich-text-editor.cjs +1137 -1
- package/dist/lib/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor.js +567 -386
- package/dist/lib/rich-text-editor.js.map +1 -1
- package/dist/lib/root-layout.cjs +158 -1
- package/dist/lib/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout.js +33 -31
- package/dist/lib/root-layout.js.map +1 -1
- package/dist/lib/scroller.cjs +1090 -1
- package/dist/lib/scroller.cjs.map +1 -1
- package/dist/lib/scroller.js +668 -345
- package/dist/lib/scroller.js.map +1 -1
- package/dist/lib/select-menu.cjs +312 -1
- package/dist/lib/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu.js +124 -79
- package/dist/lib/select-menu.js.map +1 -1
- package/dist/lib/settings-menu-button.cjs +77 -1
- package/dist/lib/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button.js +31 -30
- package/dist/lib/settings-menu-button.js.map +1 -1
- package/dist/lib/skeleton.cjs +635 -1
- package/dist/lib/skeleton.cjs.map +1 -1
- package/dist/lib/skeleton.js +189 -152
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/stack.cjs +123 -1
- package/dist/lib/stack.cjs.map +1 -1
- package/dist/lib/stack.js +61 -53
- package/dist/lib/stack.js.map +1 -1
- package/dist/lib/tabs.cjs +102 -1
- package/dist/lib/tabs.cjs.map +1 -1
- package/dist/lib/tabs.js +47 -41
- package/dist/lib/tabs.js.map +1 -1
- package/dist/lib/time-pill.cjs +41 -1
- package/dist/lib/time-pill.cjs.map +1 -1
- package/dist/lib/time-pill.js +18 -14
- package/dist/lib/time-pill.js.map +1 -1
- package/dist/lib/toast.cjs +281 -1
- package/dist/lib/toast.cjs.map +1 -1
- package/dist/lib/toast.js +96 -74
- package/dist/lib/toast.js.map +1 -1
- package/dist/lib/toggle.cjs +192 -1
- package/dist/lib/toggle.cjs.map +1 -1
- package/dist/lib/toggle.js +60 -49
- package/dist/lib/toggle.js.map +1 -1
- package/dist/lib/tooltip-directive.cjs +84 -1
- package/dist/lib/tooltip-directive.cjs.map +1 -1
- package/dist/lib/tooltip-directive.js +56 -42
- package/dist/lib/tooltip-directive.js.map +1 -1
- package/dist/lib/tooltip.cjs +460 -1
- package/dist/lib/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip.js +162 -103
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/lib/top-banner-info.cjs +71 -1
- package/dist/lib/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info.js +27 -22
- package/dist/lib/top-banner-info.js.map +1 -1
- package/dist/lib/unread-pill.cjs +73 -1
- package/dist/lib/unread-pill.cjs.map +1 -1
- package/dist/lib/unread-pill.js +28 -25
- package/dist/lib/unread-pill.js.map +1 -1
- package/dist/lib/validation-messages.cjs +89 -1
- package/dist/lib/validation-messages.cjs.map +1 -1
- package/dist/lib/validation-messages.js +41 -36
- package/dist/lib/validation-messages.js.map +1 -1
- package/dist/style.css +1257 -1
- package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
- package/package.json +30 -29
- package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js +0 -2
- package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +0 -1
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js +0 -10
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js.map +0 -1
- package/dist/chunks/dropdown-UO3UJalk.js +0 -2
- package/dist/chunks/dropdown_constants-EUcDxBrX.js +0 -9
- package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
- package/dist/chunks/dropdown_constants-KHFvVI2L.js +0 -2
- package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
- package/dist/chunks/icon_constants-2S_OSQ1t.js +0 -2
- package/dist/chunks/index-6tYeqbgP.js +0 -3
- package/dist/chunks/index-IBtQ5jRJ.js +0 -2
- package/dist/chunks/index-IBtQ5jRJ.js.map +0 -1
- package/dist/chunks/index-b4iXYvId.js +0 -399
- package/dist/chunks/index-mRmwpCBG.js +0 -256
- package/dist/chunks/index-mRmwpCBG.js.map +0 -1
- package/dist/chunks/input-0Uksk4DP.js +0 -2
- package/dist/chunks/input_group-AS760Cp7.js +0 -2
- package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
- package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
- package/dist/chunks/link_constants-Kn6kP4i1.js +0 -2
- package/dist/chunks/link_constants-vIUB92L4.js +0 -16
- package/dist/chunks/list_item_constants-LTUc74pD.js +0 -13
- package/dist/chunks/list_item_constants-Tsz5CO1m.js +0 -2
- package/dist/chunks/modal-VuMFkZFH.js +0 -82
- package/dist/chunks/modal-qEzlo0Sj.js +0 -2
- package/dist/chunks/notice_action-jO199emq.js +0 -2
- package/dist/chunks/notice_action-tJfD5Qw1.js +0 -209
- package/dist/chunks/notice_constants-c--hBFQw.js +0 -6
- package/dist/chunks/notice_constants-mC6al2Dm.js +0 -2
- package/dist/chunks/popover_constants-hOEhklvr.js +0 -2
- package/dist/chunks/popover_constants-qjlEkroB.js +0 -114
- package/dist/chunks/sr_only_close_button-iD7s1Pbj.js +0 -3
- package/dist/chunks/stack_constants-m9Ickqw0.js +0 -2
- package/dist/chunks/stack_constants-u7tNqGtc.js +0 -13
- package/dist/chunks/tab-GQZFMq83.js +0 -367
- package/dist/chunks/tab-at7WWglk.js +0 -2
- package/dist/lib/constants.cjs +0 -2
- package/dist/lib/dates.cjs +0 -2
- package/dist/lib/dates.js +0 -57
- package/dist/lib/mixins.cjs +0 -2
- package/dist/lib/mixins.js +0 -17
- package/dist/lib/utils.cjs +0 -2
- package/dist/lib/utils.js +0 -171
- package/dist/lib/validators.cjs +0 -2
- package/dist/lib/validators.js +0 -12
- /package/dist/{lib → common}/mixins.js.map +0 -0
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
import { KeyboardNavigation } from "./keyboard_list_navigation-ScXhrxya.js";
|
|
2
|
+
import { getUniqueString, hasSlotContent } from "../common/utils.js";
|
|
3
|
+
import { resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, withCtx, renderSlot, normalizeClass, createElementVNode, toDisplayString, withKeys, withModifiers, createBlock, normalizeProps, mergeProps, createCommentVNode } from "vue";
|
|
4
|
+
import { _export_sfc } from "./_plugin-vue_export-helper-caHeSgYY.js";
|
|
5
|
+
import { DtListItem } from "../lib/list-item.js";
|
|
6
|
+
import { DtSkeleton } from "../lib/skeleton.js";
|
|
7
|
+
const _sfc_main$2 = {
|
|
8
|
+
name: "ComboboxLoadingList",
|
|
9
|
+
components: { DtListItem, DtSkeleton }
|
|
10
|
+
};
|
|
11
|
+
const _hoisted_1$2 = {
|
|
12
|
+
class: "d-combobox__loading-list",
|
|
13
|
+
"aria-busy": "true"
|
|
14
|
+
};
|
|
15
|
+
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16
|
+
const _component_dt_skeleton = resolveComponent("dt-skeleton");
|
|
17
|
+
const _component_dt_list_item = resolveComponent("dt-list-item");
|
|
18
|
+
return openBlock(), createElementBlock("ol", _hoisted_1$2, [
|
|
19
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(7, (index) => {
|
|
20
|
+
return createVNode(_component_dt_list_item, {
|
|
21
|
+
key: index,
|
|
22
|
+
role: "option",
|
|
23
|
+
"navigation-type": "none"
|
|
24
|
+
}, {
|
|
25
|
+
default: withCtx(() => [
|
|
26
|
+
createVNode(_component_dt_skeleton, {
|
|
27
|
+
"text-option": { type: "body" },
|
|
28
|
+
offset: 0
|
|
29
|
+
})
|
|
30
|
+
]),
|
|
31
|
+
_: 2
|
|
32
|
+
}, 1024);
|
|
33
|
+
}), 64))
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
const ComboboxLoadingList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
|
|
37
|
+
const _sfc_main$1 = {
|
|
38
|
+
name: "ComboboxEmptyList",
|
|
39
|
+
components: { DtListItem },
|
|
40
|
+
props: {
|
|
41
|
+
/**
|
|
42
|
+
* Message to display when list is empty
|
|
43
|
+
*/
|
|
44
|
+
message: {
|
|
45
|
+
type: String,
|
|
46
|
+
required: true
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Additional class name for the empty list element.
|
|
50
|
+
* Can accept all of String, Object, and Array, i.e. has the
|
|
51
|
+
* same api as Vue's built-in handling of the class attribute.
|
|
52
|
+
*/
|
|
53
|
+
itemClass: {
|
|
54
|
+
type: [String, Object, Array],
|
|
55
|
+
default: ""
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const _hoisted_1$1 = {
|
|
60
|
+
class: "d-combobox__empty-list",
|
|
61
|
+
"data-qa": "dt-combobox-empty-list"
|
|
62
|
+
};
|
|
63
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
64
|
+
const _component_dt_list_item = resolveComponent("dt-list-item");
|
|
65
|
+
return openBlock(), createElementBlock("ol", _hoisted_1$1, [
|
|
66
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
67
|
+
createVNode(_component_dt_list_item, {
|
|
68
|
+
role: "option",
|
|
69
|
+
"navigation-type": "none",
|
|
70
|
+
type: "custom",
|
|
71
|
+
class: normalizeClass(["dt-empty-list-item", $props.itemClass])
|
|
72
|
+
}, {
|
|
73
|
+
default: withCtx(() => [
|
|
74
|
+
createElementVNode("span", null, toDisplayString($props.message), 1)
|
|
75
|
+
]),
|
|
76
|
+
_: 1
|
|
77
|
+
}, 8, ["class"])
|
|
78
|
+
])
|
|
79
|
+
]);
|
|
80
|
+
}
|
|
81
|
+
const ComboboxEmptyList = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
|
|
82
|
+
const LABEL_SIZES = {
|
|
83
|
+
EXTRA_SMALL: "xs",
|
|
84
|
+
SMALL: "sm",
|
|
85
|
+
DEFAULT: "md",
|
|
86
|
+
LARGE: "lg",
|
|
87
|
+
EXTRA_LARGE: "xl"
|
|
88
|
+
};
|
|
89
|
+
const _sfc_main = {
|
|
90
|
+
name: "DtCombobox",
|
|
91
|
+
components: {
|
|
92
|
+
ComboboxLoadingList,
|
|
93
|
+
ComboboxEmptyList
|
|
94
|
+
},
|
|
95
|
+
mixins: [
|
|
96
|
+
KeyboardNavigation({
|
|
97
|
+
indexKey: "highlightIndex",
|
|
98
|
+
idKey: "highlightId",
|
|
99
|
+
listElementKey: "getListElement",
|
|
100
|
+
afterHighlightMethod: "afterHighlight",
|
|
101
|
+
beginningOfListMethod: "beginningOfListMethod",
|
|
102
|
+
endOfListMethod: "endOfListMethod",
|
|
103
|
+
activeItemKey: "activeItemEl"
|
|
104
|
+
})
|
|
105
|
+
],
|
|
106
|
+
props: {
|
|
107
|
+
/**
|
|
108
|
+
* String to use for the input label.
|
|
109
|
+
*/
|
|
110
|
+
label: {
|
|
111
|
+
type: String,
|
|
112
|
+
required: true
|
|
113
|
+
},
|
|
114
|
+
/**
|
|
115
|
+
* Determines visibility of input label.
|
|
116
|
+
* @values true, false
|
|
117
|
+
*/
|
|
118
|
+
labelVisible: {
|
|
119
|
+
type: Boolean,
|
|
120
|
+
default: true
|
|
121
|
+
},
|
|
122
|
+
/**
|
|
123
|
+
* Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
|
|
124
|
+
* @values null, xs, sm, md, lg, xl
|
|
125
|
+
*/
|
|
126
|
+
size: {
|
|
127
|
+
type: String,
|
|
128
|
+
default: null,
|
|
129
|
+
validator: (t) => Object.values(LABEL_SIZES).includes(t)
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Description for the input
|
|
133
|
+
*/
|
|
134
|
+
description: {
|
|
135
|
+
type: String,
|
|
136
|
+
default: ""
|
|
137
|
+
},
|
|
138
|
+
/**
|
|
139
|
+
* Sets an ID on the list element of the component. Used by several aria attributes
|
|
140
|
+
* as well as when deriving the IDs for each item.
|
|
141
|
+
*/
|
|
142
|
+
listId: {
|
|
143
|
+
type: String,
|
|
144
|
+
default() {
|
|
145
|
+
return getUniqueString();
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
/**
|
|
149
|
+
* A method that will be called when the selection goes past the beginning of the list.
|
|
150
|
+
*/
|
|
151
|
+
onBeginningOfList: {
|
|
152
|
+
type: Function,
|
|
153
|
+
default: null
|
|
154
|
+
},
|
|
155
|
+
/**
|
|
156
|
+
* A method that will be called when the selection goes past the end of the list.
|
|
157
|
+
*/
|
|
158
|
+
onEndOfList: {
|
|
159
|
+
type: Function,
|
|
160
|
+
default: null
|
|
161
|
+
},
|
|
162
|
+
/**
|
|
163
|
+
* Determines when to show the list element and also controls the aria-expanded attribute.
|
|
164
|
+
* @values true, false
|
|
165
|
+
*/
|
|
166
|
+
showList: {
|
|
167
|
+
type: Boolean,
|
|
168
|
+
default: false
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* If the list is rendered outside the component, like when using popover as the list wrapper.
|
|
172
|
+
* @values true, false
|
|
173
|
+
*/
|
|
174
|
+
listRenderedOutside: {
|
|
175
|
+
type: Boolean,
|
|
176
|
+
default: false
|
|
177
|
+
},
|
|
178
|
+
/**
|
|
179
|
+
* Determines when to show the skeletons and also controls aria-busy attribute.
|
|
180
|
+
* @values true, false
|
|
181
|
+
*/
|
|
182
|
+
loading: {
|
|
183
|
+
type: Boolean,
|
|
184
|
+
default: false
|
|
185
|
+
},
|
|
186
|
+
/**
|
|
187
|
+
* Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.
|
|
188
|
+
* @values true, false
|
|
189
|
+
*/
|
|
190
|
+
emptyList: {
|
|
191
|
+
type: Boolean,
|
|
192
|
+
default: false
|
|
193
|
+
},
|
|
194
|
+
/**
|
|
195
|
+
* Message to show when the list is empty
|
|
196
|
+
*/
|
|
197
|
+
emptyStateMessage: {
|
|
198
|
+
type: String,
|
|
199
|
+
default: ""
|
|
200
|
+
},
|
|
201
|
+
/**
|
|
202
|
+
* Additional class name for the empty list element.
|
|
203
|
+
* Can accept all of String, Object, and Array, i.e. has the
|
|
204
|
+
* same api as Vue's built-in handling of the class attribute.
|
|
205
|
+
*/
|
|
206
|
+
emptyStateClass: {
|
|
207
|
+
type: [String, Object, Array],
|
|
208
|
+
default: ""
|
|
209
|
+
},
|
|
210
|
+
/**
|
|
211
|
+
* Programmatically click on the active list item element when a selection
|
|
212
|
+
* comes from keyboard navigation, i.e. pressing the "Enter" key.
|
|
213
|
+
* @values true, false
|
|
214
|
+
*/
|
|
215
|
+
clickOnSelect: {
|
|
216
|
+
type: Boolean,
|
|
217
|
+
default: false
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
emits: [
|
|
221
|
+
/**
|
|
222
|
+
* Event fired when item selected
|
|
223
|
+
*
|
|
224
|
+
* @event select
|
|
225
|
+
* @type {Number}
|
|
226
|
+
*/
|
|
227
|
+
"select",
|
|
228
|
+
/**
|
|
229
|
+
* Event fired when pressing escape
|
|
230
|
+
*
|
|
231
|
+
* @event escape
|
|
232
|
+
*/
|
|
233
|
+
"escape",
|
|
234
|
+
/**
|
|
235
|
+
* Event fired when the highlight changes
|
|
236
|
+
*
|
|
237
|
+
* @event highlight
|
|
238
|
+
* @type {Number}
|
|
239
|
+
*/
|
|
240
|
+
"highlight",
|
|
241
|
+
/**
|
|
242
|
+
* Event fired when list is shown or hidden
|
|
243
|
+
*
|
|
244
|
+
* @event opened
|
|
245
|
+
* @type {Boolean}
|
|
246
|
+
*/
|
|
247
|
+
"opened"
|
|
248
|
+
],
|
|
249
|
+
data() {
|
|
250
|
+
return {
|
|
251
|
+
// If the list is rendered at the root, rather than as a child
|
|
252
|
+
// of this component, this is the ref to that dom element. Set
|
|
253
|
+
// by the onOpen method.
|
|
254
|
+
outsideRenderedListRef: null,
|
|
255
|
+
hasSlotContent
|
|
256
|
+
};
|
|
257
|
+
},
|
|
258
|
+
computed: {
|
|
259
|
+
inputProps() {
|
|
260
|
+
return {
|
|
261
|
+
label: this.label,
|
|
262
|
+
labelVisible: this.labelVisible,
|
|
263
|
+
size: this.size,
|
|
264
|
+
description: this.description,
|
|
265
|
+
role: "combobox",
|
|
266
|
+
"aria-label": this.label,
|
|
267
|
+
"aria-expanded": this.showList.toString(),
|
|
268
|
+
"aria-owns": this.listId,
|
|
269
|
+
"aria-haspopup": "listbox",
|
|
270
|
+
"aria-activedescendant": this.activeItemId,
|
|
271
|
+
"aria-controls": this.listId
|
|
272
|
+
};
|
|
273
|
+
},
|
|
274
|
+
listProps() {
|
|
275
|
+
return {
|
|
276
|
+
role: "listbox",
|
|
277
|
+
id: this.listId,
|
|
278
|
+
// The list has to be positioned relatively so that the auto-scroll can
|
|
279
|
+
// calculate the correct offset for the list items.
|
|
280
|
+
class: "d-ps-relative",
|
|
281
|
+
"aria-label": this.label
|
|
282
|
+
};
|
|
283
|
+
},
|
|
284
|
+
beginningOfListMethod() {
|
|
285
|
+
return this.onBeginningOfList || this.jumpToEnd;
|
|
286
|
+
},
|
|
287
|
+
endOfListMethod() {
|
|
288
|
+
return this.onEndOfList || this.jumpToBeginning;
|
|
289
|
+
},
|
|
290
|
+
activeItemId() {
|
|
291
|
+
if (!this.showList || this.highlightIndex < 0 || this.loading) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
return this.highlightId;
|
|
295
|
+
},
|
|
296
|
+
activeItemEl() {
|
|
297
|
+
if (!this.highlightId)
|
|
298
|
+
return "";
|
|
299
|
+
return this.getListElement().querySelector("#" + this.highlightId);
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
watch: {
|
|
303
|
+
showList(showList) {
|
|
304
|
+
if (!this.listRenderedOutside) {
|
|
305
|
+
this.setInitialHighlightIndex();
|
|
306
|
+
this.$emit("opened", showList);
|
|
307
|
+
}
|
|
308
|
+
if (!showList && this.outsideRenderedListRef) {
|
|
309
|
+
this.outsideRenderedListRef.removeEventListener("mousemove", this.onMouseHighlight);
|
|
310
|
+
this.outsideRenderedListRef = null;
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
loading(loading) {
|
|
314
|
+
this.$nextTick(() => {
|
|
315
|
+
this.setInitialHighlightIndex();
|
|
316
|
+
});
|
|
317
|
+
},
|
|
318
|
+
$props: {
|
|
319
|
+
deep: true,
|
|
320
|
+
immediate: true,
|
|
321
|
+
handler() {
|
|
322
|
+
this.validateEmptyListProps();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
created() {
|
|
327
|
+
this.validateEmptyListProps();
|
|
328
|
+
},
|
|
329
|
+
methods: {
|
|
330
|
+
onMouseHighlight(e) {
|
|
331
|
+
if (this.loading)
|
|
332
|
+
return;
|
|
333
|
+
const liElement = e.target.closest("li");
|
|
334
|
+
if (liElement && this.highlightId !== liElement.id) {
|
|
335
|
+
this.setHighlightId(liElement.id);
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
getListElement() {
|
|
339
|
+
var _a;
|
|
340
|
+
return this.outsideRenderedListRef ?? ((_a = this.$refs.listWrapper) == null ? void 0 : _a.querySelector(`#${this.listId}`));
|
|
341
|
+
},
|
|
342
|
+
clearHighlightIndex() {
|
|
343
|
+
if (this.showList) {
|
|
344
|
+
this.setHighlightIndex(-1);
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
afterHighlight() {
|
|
348
|
+
if (this.loading)
|
|
349
|
+
return;
|
|
350
|
+
this.$emit("highlight", this.highlightIndex);
|
|
351
|
+
},
|
|
352
|
+
onEnterKey() {
|
|
353
|
+
var _a;
|
|
354
|
+
if (this.loading || this.emptyList)
|
|
355
|
+
return;
|
|
356
|
+
if (this.highlightIndex >= 0) {
|
|
357
|
+
this.$emit("select", this.highlightIndex);
|
|
358
|
+
if (this.clickOnSelect) {
|
|
359
|
+
(_a = this.activeItemEl) == null ? void 0 : _a.click();
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
onEscapeKey() {
|
|
364
|
+
this.$emit("escape");
|
|
365
|
+
},
|
|
366
|
+
onOpen(open, contentRef) {
|
|
367
|
+
var _a;
|
|
368
|
+
this.outsideRenderedListRef = contentRef;
|
|
369
|
+
(_a = this.outsideRenderedListRef) == null ? void 0 : _a.addEventListener("mousemove", this.onMouseHighlight);
|
|
370
|
+
this.$emit("opened", open);
|
|
371
|
+
if (open) {
|
|
372
|
+
this.setInitialHighlightIndex();
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
onKeyValidation(e, eventHandler) {
|
|
376
|
+
if (!this.showList || !this.getListElement())
|
|
377
|
+
return;
|
|
378
|
+
this[eventHandler](e);
|
|
379
|
+
},
|
|
380
|
+
setInitialHighlightIndex() {
|
|
381
|
+
if (!this.showList)
|
|
382
|
+
return;
|
|
383
|
+
this.$nextTick(() => {
|
|
384
|
+
this.setHighlightIndex(this.loading ? -1 : 0);
|
|
385
|
+
});
|
|
386
|
+
},
|
|
387
|
+
validateEmptyListProps() {
|
|
388
|
+
if (this.$slots.emptyListItem) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
if (this.emptyList && !this.emptyStateMessage) {
|
|
392
|
+
console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
|
|
393
|
+
empty message.`);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
const _hoisted_1 = { "data-qa": "dt-combobox-input-wrapper" };
|
|
399
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
400
|
+
const _component_combobox_loading_list = resolveComponent("combobox-loading-list");
|
|
401
|
+
const _component_combobox_empty_list = resolveComponent("combobox-empty-list");
|
|
402
|
+
return openBlock(), createElementBlock("div", {
|
|
403
|
+
onKeydown: [
|
|
404
|
+
_cache[3] || (_cache[3] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEscapeKey"), ["stop"]), ["esc"])),
|
|
405
|
+
_cache[4] || (_cache[4] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEnterKey"), ["exact"]), ["enter"])),
|
|
406
|
+
_cache[5] || (_cache[5] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onUpKey"), ["stop", "prevent"]), ["up"])),
|
|
407
|
+
_cache[6] || (_cache[6] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onDownKey"), ["stop", "prevent"]), ["down"])),
|
|
408
|
+
_cache[7] || (_cache[7] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onHomeKey"), ["stop", "prevent"]), ["home"])),
|
|
409
|
+
_cache[8] || (_cache[8] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEndKey"), ["stop", "prevent"]), ["end"]))
|
|
410
|
+
]
|
|
411
|
+
}, [
|
|
412
|
+
createElementVNode("div", _hoisted_1, [
|
|
413
|
+
renderSlot(_ctx.$slots, "input", { inputProps: $options.inputProps })
|
|
414
|
+
]),
|
|
415
|
+
$props.showList ? (openBlock(), createElementBlock("div", {
|
|
416
|
+
key: 0,
|
|
417
|
+
ref: "listWrapper",
|
|
418
|
+
"data-qa": "dt-combobox-list-wrapper",
|
|
419
|
+
onMouseleave: _cache[0] || (_cache[0] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
|
|
420
|
+
onFocusout: _cache[1] || (_cache[1] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
|
|
421
|
+
onMousemoveCapture: _cache[2] || (_cache[2] = (...args) => $options.onMouseHighlight && $options.onMouseHighlight(...args))
|
|
422
|
+
}, [
|
|
423
|
+
$props.loading && !$props.listRenderedOutside ? (openBlock(), createBlock(_component_combobox_loading_list, normalizeProps(mergeProps({ key: 0 }, $options.listProps)), null, 16)) : $props.emptyList && ($props.emptyStateMessage || $data.hasSlotContent(_ctx.$slots.emptyListItem)) && !$props.listRenderedOutside ? (openBlock(), createBlock(_component_combobox_empty_list, mergeProps({ key: 1 }, $options.listProps, {
|
|
424
|
+
message: $props.emptyStateMessage,
|
|
425
|
+
"item-class": $props.emptyStateClass
|
|
426
|
+
}), {
|
|
427
|
+
default: withCtx(() => [
|
|
428
|
+
renderSlot(_ctx.$slots, "emptyListItem")
|
|
429
|
+
]),
|
|
430
|
+
_: 3
|
|
431
|
+
}, 16, ["message", "item-class"])) : renderSlot(_ctx.$slots, "list", {
|
|
432
|
+
key: 2,
|
|
433
|
+
listProps: $options.listProps,
|
|
434
|
+
opened: $options.onOpen,
|
|
435
|
+
clearHighlightIndex: $options.clearHighlightIndex
|
|
436
|
+
})
|
|
437
|
+
], 544)) : createCommentVNode("", true)
|
|
438
|
+
], 32);
|
|
439
|
+
}
|
|
440
|
+
const DtCombobox = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
441
|
+
export {
|
|
442
|
+
ComboboxEmptyList,
|
|
443
|
+
ComboboxLoadingList,
|
|
444
|
+
DtCombobox,
|
|
445
|
+
LABEL_SIZES
|
|
446
|
+
};
|
|
447
|
+
//# sourceMappingURL=index-b_MgDylR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-6tYeqbgP.js","sources":["../../components/combobox/combobox_loading-list.vue","../../components/combobox/combobox_empty-list.vue","../../components/combobox/combobox_constants.js","../../components/combobox/combobox.vue"],"sourcesContent":["<template>\n <ol\n class=\"d-combobox__loading-list\"\n aria-busy=\"true\"\n >\n <dt-list-item\n v-for=\"index in 7\"\n :key=\"index\"\n role=\"option\"\n navigation-type=\"none\"\n >\n <dt-skeleton\n :text-option=\"{ type: 'body' }\"\n :offset=\"0\"\n />\n </dt-list-item>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\nimport { DtSkeleton } from '../skeleton';\n\nexport default {\n name: 'ComboboxLoadingList',\n\n components: { DtListItem, DtSkeleton },\n};\n</script>\n","<template>\n <ol\n class=\"d-combobox__empty-list\"\n data-qa=\"dt-combobox-empty-list\"\n >\n <slot>\n <dt-list-item\n role=\"option\"\n navigation-type=\"none\"\n type=\"custom\"\n :class=\"['dt-empty-list-item', itemClass]\"\n >\n <span>{{ message }}</span>\n </dt-list-item>\n </slot>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\n\nexport default {\n name: 'ComboboxEmptyList',\n\n components: { DtListItem },\n\n props: {\n /**\n * Message to display when list is empty\n */\n message: {\n type: String,\n required: true,\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-empty-list-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--dt-font-size-200);\n line-height: var(--lh4);\n padding: var(--dt-space-300) var(--dt-space-450);\n}\n</style>\n","export const LABEL_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n LABEL_SIZES,\n};\n","<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { LABEL_SIZES } from '@/components/combobox/combobox_constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading (loading) {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if ((this.emptyList && !this.emptyStateMessage) || (!this.emptyList && this.emptyStateMessage)) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtListItem","DtSkeleton","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","index","_createVNode","_component_dt_list_item","_component_dt_skeleton","_renderSlot","_ctx","$props","_createElementVNode","LABEL_SIZES","ComboboxLoadingList","ComboboxEmptyList","KeyboardNavigation","t","getUniqueString","hasSlotContent","showList","loading","e","liElement","_a","open","contentRef","eventHandler","_cache","_withKeys","_withModifiers","$event","$options","args","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-b_MgDylR.js","sources":["../../components/combobox/combobox_loading-list.vue","../../components/combobox/combobox_empty-list.vue","../../components/combobox/combobox_constants.js","../../components/combobox/combobox.vue"],"sourcesContent":["<template>\n <ol\n class=\"d-combobox__loading-list\"\n aria-busy=\"true\"\n >\n <dt-list-item\n v-for=\"index in 7\"\n :key=\"index\"\n role=\"option\"\n navigation-type=\"none\"\n >\n <dt-skeleton\n :text-option=\"{ type: 'body' }\"\n :offset=\"0\"\n />\n </dt-list-item>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\nimport { DtSkeleton } from '../skeleton';\n\nexport default {\n name: 'ComboboxLoadingList',\n\n components: { DtListItem, DtSkeleton },\n};\n</script>\n","<template>\n <ol\n class=\"d-combobox__empty-list\"\n data-qa=\"dt-combobox-empty-list\"\n >\n <slot>\n <dt-list-item\n role=\"option\"\n navigation-type=\"none\"\n type=\"custom\"\n :class=\"['dt-empty-list-item', itemClass]\"\n >\n <span>{{ message }}</span>\n </dt-list-item>\n </slot>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\n\nexport default {\n name: 'ComboboxEmptyList',\n\n components: { DtListItem },\n\n props: {\n /**\n * Message to display when list is empty\n */\n message: {\n type: String,\n required: true,\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-empty-list-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--dt-font-size-200);\n line-height: var(--lh4);\n padding: var(--dt-space-300) var(--dt-space-450);\n}\n</style>\n","export const LABEL_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n LABEL_SIZES,\n};\n","<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { LABEL_SIZES } from '@/components/combobox/combobox_constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading (loading) {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","_createVNode","_renderSlot","_createElementVNode","_withKeys","_withModifiers","_createBlock","_mergeProps"],"mappings":"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"}
|