@dialpad/dialtone 9.66.0 → 9.67.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.
- package/README.md +17 -0
- package/dist/tokens/doc.json +13063 -13063
- package/dist/vue2/chunks/{dropdown-YdCyJ5Dq.js → dropdown-6UoczdUY.js} +41 -77
- package/dist/vue2/chunks/{dropdown-YdCyJ5Dq.js.map → dropdown-6UoczdUY.js.map} +1 -1
- package/dist/vue2/chunks/{dropdown-mjrYu_mK.js → dropdown-pHxnQPzT.js} +41 -77
- package/dist/vue2/chunks/{dropdown-mjrYu_mK.js.map → dropdown-pHxnQPzT.js.map} +1 -1
- package/dist/vue2/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
- package/dist/vue2/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
- package/dist/vue2/chunks/{icon_constants-TdxqLsS2.js → icon_constants-Dy4MEUJL.js} +2 -3
- package/dist/vue2/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
- package/dist/vue2/chunks/{icon_constants-VEA0wI5C.js → icon_constants-QYpmdE0R.js} +2 -3
- package/dist/vue2/chunks/icon_constants-QYpmdE0R.js.map +1 -0
- package/dist/vue2/chunks/{index-i65YVk-U.js → index-ODod4Oj_.js} +13 -5
- package/dist/vue2/chunks/{index-i65YVk-U.js.map → index-ODod4Oj_.js.map} +1 -1
- package/dist/vue2/chunks/{index-NYFNZeHH.js → index-anN_sx1F.js} +13 -5
- package/dist/vue2/chunks/{index-NYFNZeHH.js.map → index-anN_sx1F.js.map} +1 -1
- package/dist/vue2/chunks/{index-mBWay1Qb.js → index-eJ-WWRdf.js} +87 -122
- package/dist/vue2/chunks/{index-mBWay1Qb.js.map → index-eJ-WWRdf.js.map} +1 -1
- package/dist/vue2/chunks/{index-DyqUqjvI.js → index-gj1jEXP4.js} +87 -122
- package/dist/vue2/chunks/{index-DyqUqjvI.js.map → index-gj1jEXP4.js.map} +1 -1
- package/dist/vue2/chunks/{input-PhJeBN6r.js → input-6kbd8Pju.js} +9 -3
- package/dist/vue2/chunks/{input-PhJeBN6r.js.map → input-6kbd8Pju.js.map} +1 -1
- package/dist/vue2/chunks/{input-Hqw33WBe.js → input-Axw-wFj2.js} +9 -3
- package/dist/vue2/chunks/{input-Hqw33WBe.js.map → input-Axw-wFj2.js.map} +1 -1
- package/dist/vue2/chunks/{input_group-pE6ec9R3.js → input_group-m3cWYUfI.js} +2 -4
- package/dist/vue2/chunks/{input_group-ZI7aVGEp.js.map → input_group-m3cWYUfI.js.map} +1 -1
- package/dist/vue2/chunks/{input_group-ZI7aVGEp.js → input_group-qVZaS5Bb.js} +2 -4
- package/dist/vue2/chunks/{input_group-pE6ec9R3.js.map → input_group-qVZaS5Bb.js.map} +1 -1
- package/dist/vue2/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
- package/dist/{vue3/chunks/keyboard_list_navigation-x3D6RcC7.js.map → vue2/chunks/keyboard_list_navigation-ScXhrxya.js.map} +1 -1
- package/dist/vue2/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
- package/dist/{vue3/chunks/keyboard_list_navigation-YIqTuw1W.js.map → vue2/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
- package/dist/vue2/chunks/link_constants-AfTWrr-n.js.map +1 -1
- package/dist/vue2/chunks/link_constants-x8NwdqmA.js.map +1 -1
- package/dist/vue2/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
- package/dist/vue2/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
- package/dist/vue2/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
- package/dist/vue2/chunks/{modal-OaWxzqNt.js.map → modal-VgxXAQFP.js.map} +1 -1
- package/dist/vue2/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
- package/dist/{vue3/chunks/modal-OaWxzqNt.js.map → vue2/chunks/modal-XOr4kiNZ.js.map} +1 -1
- package/dist/vue2/chunks/{notice_action-qQr3K2TC.js → notice_action-IRUoLX2d.js} +46 -71
- package/dist/vue2/chunks/{notice_action-qQr3K2TC.js.map → notice_action-IRUoLX2d.js.map} +1 -1
- package/dist/vue2/chunks/{notice_action-tEvvMg7Q.js → notice_action-P6uDyE9x.js} +46 -71
- package/dist/vue2/chunks/{notice_action-tEvvMg7Q.js.map → notice_action-P6uDyE9x.js.map} +1 -1
- package/dist/vue2/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
- package/dist/vue2/chunks/notice_constants-UXo9e3bS.js.map +1 -1
- package/dist/vue2/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
- package/dist/{vue3/chunks/popover_constants-6YkPPbnk.js.map → vue2/chunks/popover_constants-WsOUIY-m.js.map} +1 -1
- package/dist/{vue3/chunks/popover_constants-h9MD6WUt.js → vue2/chunks/popover_constants-XnGWXaxX.js} +47 -26
- package/dist/vue2/chunks/{popover_constants-6YkPPbnk.js.map → popover_constants-XnGWXaxX.js.map} +1 -1
- package/dist/vue2/chunks/{sr_only_close_button-IjMVfBDE.js → sr_only_close_button-81bHIpPu.js} +18 -24
- package/dist/vue2/chunks/{sr_only_close_button-IjMVfBDE.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
- package/dist/vue2/chunks/{sr_only_close_button-2Q9Ny1Nc.js → sr_only_close_button-ZaGdAHz7.js} +18 -24
- package/dist/vue2/chunks/{sr_only_close_button-2Q9Ny1Nc.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
- package/dist/vue2/chunks/stack_constants-HraCekPm.js.map +1 -1
- package/dist/vue2/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
- package/dist/vue2/chunks/{tab-79yMX6m6.js → tab-FcsV5VmK.js} +68 -86
- package/dist/vue2/chunks/{tab-muPOS7JE.js.map → tab-FcsV5VmK.js.map} +1 -1
- package/dist/vue2/chunks/{tab-muPOS7JE.js → tab-V4cb44Ry.js} +68 -86
- package/dist/vue2/chunks/{tab-79yMX6m6.js.map → tab-V4cb44Ry.js.map} +1 -1
- package/dist/vue2/common/constants.cjs.map +1 -1
- package/dist/vue2/common/constants.js.map +1 -1
- package/dist/vue2/common/dates.cjs +1 -3
- package/dist/vue2/common/dates.cjs.map +1 -1
- package/dist/vue2/common/dates.js +1 -3
- package/dist/vue2/common/dates.js.map +1 -1
- package/dist/vue2/common/emoji.cjs +1 -1
- package/dist/vue2/common/emoji.js +1 -1
- package/dist/vue2/common/mixins.cjs +3 -3
- package/dist/vue2/common/mixins.js +3 -3
- package/dist/vue2/common/utils.cjs +44 -8
- package/dist/vue2/common/utils.cjs.map +1 -1
- package/dist/vue2/common/utils.js +44 -8
- package/dist/vue2/common/utils.js.map +1 -1
- package/dist/vue2/common/validators.cjs.map +1 -1
- package/dist/vue2/common/validators.js.map +1 -1
- package/dist/vue2/component-documentation.json +1 -1
- package/dist/vue2/dialtone-vue.cjs +12 -12
- package/dist/vue2/dialtone-vue.js +12 -12
- package/dist/vue2/lib/attachment-carousel.cjs +48 -172
- package/dist/vue2/lib/attachment-carousel.cjs.map +1 -1
- package/dist/vue2/lib/attachment-carousel.js +48 -172
- package/dist/vue2/lib/attachment-carousel.js.map +1 -1
- package/dist/vue2/lib/avatar.cjs +58 -75
- package/dist/vue2/lib/avatar.cjs.map +1 -1
- package/dist/vue2/lib/avatar.js +58 -75
- package/dist/vue2/lib/avatar.js.map +1 -1
- package/dist/vue2/lib/badge.cjs +20 -31
- package/dist/vue2/lib/badge.cjs.map +1 -1
- package/dist/vue2/lib/badge.js +20 -31
- package/dist/vue2/lib/badge.js.map +1 -1
- package/dist/vue2/lib/banner.cjs +29 -53
- package/dist/vue2/lib/banner.cjs.map +1 -1
- package/dist/vue2/lib/banner.js +29 -53
- package/dist/vue2/lib/banner.js.map +1 -1
- package/dist/vue2/lib/breadcrumbs.cjs +30 -36
- package/dist/vue2/lib/breadcrumbs.cjs.map +1 -1
- package/dist/vue2/lib/breadcrumbs.js +30 -36
- package/dist/vue2/lib/breadcrumbs.js.map +1 -1
- package/dist/vue2/lib/button-group.cjs +14 -7
- package/dist/vue2/lib/button-group.cjs.map +1 -1
- package/dist/vue2/lib/button-group.js +14 -7
- package/dist/vue2/lib/button-group.js.map +1 -1
- package/dist/vue2/lib/button.cjs +62 -55
- package/dist/vue2/lib/button.cjs.map +1 -1
- package/dist/vue2/lib/button.js +62 -55
- package/dist/vue2/lib/button.js.map +1 -1
- package/dist/vue2/lib/callbar-button-with-popover.cjs +23 -91
- package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/vue2/lib/callbar-button-with-popover.js +23 -91
- package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/vue2/lib/callbar-button.cjs +33 -49
- package/dist/vue2/lib/callbar-button.cjs.map +1 -1
- package/dist/vue2/lib/callbar-button.js +33 -49
- package/dist/vue2/lib/callbar-button.js.map +1 -1
- package/dist/vue2/lib/callbox.cjs +15 -78
- package/dist/vue2/lib/callbox.cjs.map +1 -1
- package/dist/vue2/lib/callbox.js +15 -78
- package/dist/vue2/lib/callbox.js.map +1 -1
- package/dist/vue2/lib/card.cjs +23 -16
- package/dist/vue2/lib/card.cjs.map +1 -1
- package/dist/vue2/lib/card.js +23 -16
- package/dist/vue2/lib/card.js.map +1 -1
- package/dist/vue2/lib/checkbox-group.cjs +15 -3
- package/dist/vue2/lib/checkbox-group.cjs.map +1 -1
- package/dist/vue2/lib/checkbox-group.js +15 -3
- package/dist/vue2/lib/checkbox-group.js.map +1 -1
- package/dist/vue2/lib/checkbox.cjs +16 -52
- package/dist/vue2/lib/checkbox.cjs.map +1 -1
- package/dist/vue2/lib/checkbox.js +16 -52
- package/dist/vue2/lib/checkbox.js.map +1 -1
- package/dist/vue2/lib/chip.cjs +26 -58
- package/dist/vue2/lib/chip.cjs.map +1 -1
- package/dist/vue2/lib/chip.js +26 -58
- package/dist/vue2/lib/chip.js.map +1 -1
- package/dist/vue2/lib/codeblock.cjs +11 -4
- package/dist/vue2/lib/codeblock.cjs.map +1 -1
- package/dist/vue2/lib/codeblock.js +11 -4
- package/dist/vue2/lib/codeblock.js.map +1 -1
- package/dist/vue2/lib/collapsible.cjs +34 -91
- package/dist/vue2/lib/collapsible.cjs.map +1 -1
- package/dist/vue2/lib/collapsible.js +34 -91
- package/dist/vue2/lib/collapsible.js.map +1 -1
- package/dist/vue2/lib/combobox-multi-select.cjs +38 -131
- package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/vue2/lib/combobox-multi-select.js +38 -131
- package/dist/vue2/lib/combobox-multi-select.js.map +1 -1
- package/dist/vue2/lib/combobox-with-popover.cjs +39 -130
- package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/vue2/lib/combobox-with-popover.js +39 -130
- package/dist/vue2/lib/combobox-with-popover.js.map +1 -1
- package/dist/vue2/lib/combobox.cjs +3 -3
- package/dist/vue2/lib/combobox.js +3 -3
- package/dist/vue2/lib/contact-centers-row.cjs +29 -86
- package/dist/vue2/lib/contact-centers-row.cjs.map +1 -1
- package/dist/vue2/lib/contact-centers-row.js +29 -86
- package/dist/vue2/lib/contact-centers-row.js.map +1 -1
- package/dist/vue2/lib/contact-info.cjs +31 -95
- package/dist/vue2/lib/contact-info.cjs.map +1 -1
- package/dist/vue2/lib/contact-info.js +31 -95
- package/dist/vue2/lib/contact-info.js.map +1 -1
- package/dist/vue2/lib/contact-row.cjs +18 -61
- package/dist/vue2/lib/contact-row.cjs.map +1 -1
- package/dist/vue2/lib/contact-row.js +18 -61
- package/dist/vue2/lib/contact-row.js.map +1 -1
- package/dist/vue2/lib/datepicker.cjs +102 -361
- package/dist/vue2/lib/datepicker.cjs.map +1 -1
- package/dist/vue2/lib/datepicker.js +102 -361
- package/dist/vue2/lib/datepicker.js.map +1 -1
- package/dist/vue2/lib/description-list.cjs +12 -11
- package/dist/vue2/lib/description-list.cjs.map +1 -1
- package/dist/vue2/lib/description-list.js +12 -11
- package/dist/vue2/lib/description-list.js.map +1 -1
- package/dist/vue2/lib/dropdown.cjs +17 -13
- package/dist/vue2/lib/dropdown.cjs.map +1 -1
- package/dist/vue2/lib/dropdown.js +17 -13
- package/dist/vue2/lib/dropdown.js.map +1 -1
- package/dist/vue2/lib/editor.cjs +109 -409
- package/dist/vue2/lib/editor.cjs.map +1 -1
- package/dist/vue2/lib/editor.js +109 -409
- package/dist/vue2/lib/editor.js.map +1 -1
- package/dist/vue2/lib/emoji-picker.cjs +234 -512
- package/dist/vue2/lib/emoji-picker.cjs.map +1 -1
- package/dist/vue2/lib/emoji-picker.js +234 -512
- package/dist/vue2/lib/emoji-picker.js.map +1 -1
- package/dist/vue2/lib/emoji-row.cjs +31 -69
- package/dist/vue2/lib/emoji-row.cjs.map +1 -1
- package/dist/vue2/lib/emoji-row.js +31 -69
- package/dist/vue2/lib/emoji-row.js.map +1 -1
- package/dist/vue2/lib/emoji-text-wrapper.cjs +22 -14
- package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/vue2/lib/emoji-text-wrapper.js +22 -14
- package/dist/vue2/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/vue2/lib/emoji.cjs +13 -40
- package/dist/vue2/lib/emoji.cjs.map +1 -1
- package/dist/vue2/lib/emoji.js +13 -40
- package/dist/vue2/lib/emoji.js.map +1 -1
- package/dist/vue2/lib/empty-state.cjs +12 -27
- package/dist/vue2/lib/empty-state.cjs.map +1 -1
- package/dist/vue2/lib/empty-state.js +12 -27
- package/dist/vue2/lib/empty-state.js.map +1 -1
- package/dist/vue2/lib/feed-item-row.cjs +27 -106
- package/dist/vue2/lib/feed-item-row.cjs.map +1 -1
- package/dist/vue2/lib/feed-item-row.js +27 -106
- package/dist/vue2/lib/feed-item-row.js.map +1 -1
- package/dist/vue2/lib/feed-pill.cjs +35 -90
- package/dist/vue2/lib/feed-pill.cjs.map +1 -1
- package/dist/vue2/lib/feed-pill.js +35 -90
- package/dist/vue2/lib/feed-pill.js.map +1 -1
- package/dist/vue2/lib/general-row.cjs +75 -184
- package/dist/vue2/lib/general-row.cjs.map +1 -1
- package/dist/vue2/lib/general-row.js +75 -184
- package/dist/vue2/lib/general-row.js.map +1 -1
- package/dist/vue2/lib/group-row.cjs +16 -27
- package/dist/vue2/lib/group-row.cjs.map +1 -1
- package/dist/vue2/lib/group-row.js +16 -27
- package/dist/vue2/lib/group-row.js.map +1 -1
- package/dist/vue2/lib/grouped-chip.cjs +20 -68
- package/dist/vue2/lib/grouped-chip.cjs.map +1 -1
- package/dist/vue2/lib/grouped-chip.js +20 -68
- package/dist/vue2/lib/grouped-chip.js.map +1 -1
- package/dist/vue2/lib/hovercard.cjs +41 -71
- package/dist/vue2/lib/hovercard.cjs.map +1 -1
- package/dist/vue2/lib/hovercard.js +41 -71
- package/dist/vue2/lib/hovercard.js.map +1 -1
- package/dist/vue2/lib/icon.cjs +12 -10
- package/dist/vue2/lib/icon.cjs.map +1 -1
- package/dist/vue2/lib/icon.js +12 -10
- package/dist/vue2/lib/icon.js.map +1 -1
- package/dist/vue2/lib/illustration.cjs +12 -9
- package/dist/vue2/lib/illustration.cjs.map +1 -1
- package/dist/vue2/lib/illustration.js +12 -9
- package/dist/vue2/lib/illustration.js.map +1 -1
- package/dist/vue2/lib/image-viewer.cjs +23 -88
- package/dist/vue2/lib/image-viewer.cjs.map +1 -1
- package/dist/vue2/lib/image-viewer.js +23 -88
- package/dist/vue2/lib/image-viewer.js.map +1 -1
- package/dist/vue2/lib/input-group.cjs +14 -24
- package/dist/vue2/lib/input-group.cjs.map +1 -1
- package/dist/vue2/lib/input-group.js +14 -24
- package/dist/vue2/lib/input-group.js.map +1 -1
- package/dist/vue2/lib/input.cjs +47 -109
- package/dist/vue2/lib/input.cjs.map +1 -1
- package/dist/vue2/lib/input.js +47 -109
- package/dist/vue2/lib/input.js.map +1 -1
- package/dist/vue2/lib/item-layout.cjs +11 -42
- package/dist/vue2/lib/item-layout.cjs.map +1 -1
- package/dist/vue2/lib/item-layout.js +11 -42
- package/dist/vue2/lib/item-layout.js.map +1 -1
- package/dist/vue2/lib/ivr-node.cjs +47 -135
- package/dist/vue2/lib/ivr-node.cjs.map +1 -1
- package/dist/vue2/lib/ivr-node.js +47 -135
- package/dist/vue2/lib/ivr-node.js.map +1 -1
- package/dist/vue2/lib/keyboard-shortcut.cjs +23 -35
- package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/vue2/lib/keyboard-shortcut.js +23 -35
- package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
- package/dist/vue2/lib/lazy-show.cjs +11 -15
- package/dist/vue2/lib/lazy-show.cjs.map +1 -1
- package/dist/vue2/lib/lazy-show.js +11 -15
- package/dist/vue2/lib/lazy-show.js.map +1 -1
- package/dist/vue2/lib/link.cjs +15 -9
- package/dist/vue2/lib/link.cjs.map +1 -1
- package/dist/vue2/lib/link.js +15 -9
- package/dist/vue2/lib/link.js.map +1 -1
- package/dist/vue2/lib/list-item-group.cjs +11 -17
- package/dist/vue2/lib/list-item-group.cjs.map +1 -1
- package/dist/vue2/lib/list-item-group.js +11 -17
- package/dist/vue2/lib/list-item-group.js.map +1 -1
- package/dist/vue2/lib/list-item.cjs +23 -42
- package/dist/vue2/lib/list-item.cjs.map +1 -1
- package/dist/vue2/lib/list-item.js +23 -42
- package/dist/vue2/lib/list-item.js.map +1 -1
- package/dist/vue2/lib/message-input.cjs +97 -360
- package/dist/vue2/lib/message-input.cjs.map +1 -1
- package/dist/vue2/lib/message-input.js +97 -360
- package/dist/vue2/lib/message-input.js.map +1 -1
- package/dist/vue2/lib/modal.cjs +36 -94
- package/dist/vue2/lib/modal.cjs.map +1 -1
- package/dist/vue2/lib/modal.js +36 -94
- package/dist/vue2/lib/modal.js.map +1 -1
- package/dist/vue2/lib/notice.cjs +21 -40
- package/dist/vue2/lib/notice.cjs.map +1 -1
- package/dist/vue2/lib/notice.js +21 -40
- package/dist/vue2/lib/notice.js.map +1 -1
- package/dist/vue2/lib/pagination.cjs +20 -81
- package/dist/vue2/lib/pagination.cjs.map +1 -1
- package/dist/vue2/lib/pagination.js +20 -81
- package/dist/vue2/lib/pagination.js.map +1 -1
- package/dist/vue2/lib/popover.cjs +75 -194
- package/dist/vue2/lib/popover.cjs.map +1 -1
- package/dist/vue2/lib/popover.js +76 -195
- package/dist/vue2/lib/popover.js.map +1 -1
- package/dist/vue2/lib/presence.cjs +22 -23
- package/dist/vue2/lib/presence.cjs.map +1 -1
- package/dist/vue2/lib/presence.js +22 -23
- package/dist/vue2/lib/presence.js.map +1 -1
- package/dist/vue2/lib/radio-group.cjs +11 -2
- package/dist/vue2/lib/radio-group.cjs.map +1 -1
- package/dist/vue2/lib/radio-group.js +11 -2
- package/dist/vue2/lib/radio-group.js.map +1 -1
- package/dist/vue2/lib/radio.cjs +15 -47
- package/dist/vue2/lib/radio.cjs.map +1 -1
- package/dist/vue2/lib/radio.js +15 -47
- package/dist/vue2/lib/radio.js.map +1 -1
- package/dist/vue2/lib/rich-text-editor.cjs +317 -336
- package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
- package/dist/vue2/lib/rich-text-editor.js +317 -336
- package/dist/vue2/lib/rich-text-editor.js.map +1 -1
- package/dist/vue2/lib/root-layout.cjs +15 -33
- package/dist/vue2/lib/root-layout.cjs.map +1 -1
- package/dist/vue2/lib/root-layout.js +15 -33
- package/dist/vue2/lib/root-layout.js.map +1 -1
- package/dist/vue2/lib/scrollbar-directive.cjs +422 -388
- package/dist/vue2/lib/scrollbar-directive.cjs.map +1 -1
- package/dist/vue2/lib/scrollbar-directive.js +422 -388
- package/dist/vue2/lib/scrollbar-directive.js.map +1 -1
- package/dist/vue2/lib/select-menu.cjs +33 -52
- package/dist/vue2/lib/select-menu.cjs.map +1 -1
- package/dist/vue2/lib/select-menu.js +33 -52
- package/dist/vue2/lib/select-menu.js.map +1 -1
- package/dist/vue2/lib/settings-menu-button.cjs +16 -42
- package/dist/vue2/lib/settings-menu-button.cjs.map +1 -1
- package/dist/vue2/lib/settings-menu-button.js +16 -42
- package/dist/vue2/lib/settings-menu-button.js.map +1 -1
- package/dist/vue2/lib/skeleton.cjs +93 -118
- package/dist/vue2/lib/skeleton.cjs.map +1 -1
- package/dist/vue2/lib/skeleton.js +93 -118
- package/dist/vue2/lib/skeleton.js.map +1 -1
- package/dist/vue2/lib/split-button.cjs +64 -164
- package/dist/vue2/lib/split-button.cjs.map +1 -1
- package/dist/vue2/lib/split-button.js +64 -164
- package/dist/vue2/lib/split-button.js.map +1 -1
- package/dist/vue2/lib/stack.cjs +33 -21
- package/dist/vue2/lib/stack.cjs.map +1 -1
- package/dist/vue2/lib/stack.js +33 -21
- package/dist/vue2/lib/stack.js.map +1 -1
- package/dist/vue2/lib/tabs.cjs +13 -20
- package/dist/vue2/lib/tabs.cjs.map +1 -1
- package/dist/vue2/lib/tabs.js +13 -20
- package/dist/vue2/lib/tabs.js.map +1 -1
- package/dist/vue2/lib/time-pill.cjs +11 -8
- package/dist/vue2/lib/time-pill.cjs.map +1 -1
- package/dist/vue2/lib/time-pill.js +11 -8
- package/dist/vue2/lib/time-pill.js.map +1 -1
- package/dist/vue2/lib/toast.cjs +21 -42
- package/dist/vue2/lib/toast.cjs.map +1 -1
- package/dist/vue2/lib/toast.js +21 -42
- package/dist/vue2/lib/toast.js.map +1 -1
- package/dist/vue2/lib/toggle.cjs +24 -28
- package/dist/vue2/lib/toggle.cjs.map +1 -1
- package/dist/vue2/lib/toggle.js +24 -28
- package/dist/vue2/lib/toggle.js.map +1 -1
- package/dist/vue2/lib/tooltip-directive.cjs +26 -32
- package/dist/vue2/lib/tooltip-directive.cjs.map +1 -1
- package/dist/vue2/lib/tooltip-directive.js +26 -32
- package/dist/vue2/lib/tooltip-directive.js.map +1 -1
- package/dist/vue2/lib/tooltip.cjs +21 -31
- package/dist/vue2/lib/tooltip.cjs.map +1 -1
- package/dist/vue2/lib/tooltip.js +22 -32
- package/dist/vue2/lib/tooltip.js.map +1 -1
- package/dist/vue2/lib/top-banner-info.cjs +21 -18
- package/dist/vue2/lib/top-banner-info.cjs.map +1 -1
- package/dist/vue2/lib/top-banner-info.js +21 -18
- package/dist/vue2/lib/top-banner-info.js.map +1 -1
- package/dist/vue2/lib/unread-pill.cjs +12 -18
- package/dist/vue2/lib/unread-pill.cjs.map +1 -1
- package/dist/vue2/lib/unread-pill.js +12 -18
- package/dist/vue2/lib/unread-pill.js.map +1 -1
- package/dist/vue2/lib/validation-messages.cjs +16 -23
- package/dist/vue2/lib/validation-messages.cjs.map +1 -1
- package/dist/vue2/lib/validation-messages.js +16 -23
- package/dist/vue2/lib/validation-messages.js.map +1 -1
- package/dist/vue2/style.css +9 -9
- package/dist/vue2/types/common/emoji/index.d.ts +59236 -2
- package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
- package/dist/vue2/types/components/button/button.vue.d.ts +1 -1
- package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
- package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -2
- package/dist/vue2/types/components/icon/icon_constants.d.ts +1 -1
- package/dist/vue2/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/vue2/types/components/illustration/illustration.vue.d.ts +2 -2
- package/dist/vue2/types/components/illustration/illustration_constants.d.ts +1 -1
- package/dist/vue2/types/components/illustration/illustration_constants.d.ts.map +1 -1
- package/dist/vue2/types/components/input/input.vue.d.ts +3 -2
- package/dist/vue2/types/components/input/input.vue.d.ts.map +1 -1
- package/dist/vue2/types/components/modal/modal.vue.d.ts +1 -1
- package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
- package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
- package/dist/vue2/types/components/toast/toast.vue.d.ts +1 -1
- package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
- package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
- package/dist/vue3/chunks/{dropdown-6HXkh24e.js → dropdown-oA-_Gotg.js} +45 -40
- package/dist/vue3/chunks/{dropdown-6HXkh24e.js.map → dropdown-oA-_Gotg.js.map} +1 -1
- package/dist/vue3/chunks/{dropdown-QNvAb160.js → dropdown-p-Azgwov.js} +45 -40
- package/dist/vue3/chunks/{dropdown-QNvAb160.js.map → dropdown-p-Azgwov.js.map} +1 -1
- package/dist/vue3/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
- package/dist/vue3/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
- package/dist/vue3/chunks/{icon_constants-gIQj4mf7.js → icon_constants-Dy4MEUJL.js} +2 -3
- package/dist/vue3/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
- package/dist/vue3/chunks/{icon_constants-bvhFNOPu.js → icon_constants-QYpmdE0R.js} +2 -3
- package/dist/vue3/chunks/icon_constants-QYpmdE0R.js.map +1 -0
- package/dist/vue3/chunks/{index-ouh7Bvm-.js → index-4qgKeErp.js} +84 -71
- package/dist/vue3/chunks/{index-T15rAIdX.js.map → index-4qgKeErp.js.map} +1 -1
- package/dist/vue3/chunks/{index-dfdrE-3M.js → index-GVD15GIB.js} +12 -3
- package/dist/vue3/chunks/{index-dfdrE-3M.js.map → index-GVD15GIB.js.map} +1 -1
- package/dist/vue3/chunks/{index-T15rAIdX.js → index-b_MgDylR.js} +84 -71
- package/dist/vue3/chunks/{index-ouh7Bvm-.js.map → index-b_MgDylR.js.map} +1 -1
- package/dist/vue3/chunks/{index-fEp0B-5Z.js → index-lu2o2f4r.js} +12 -3
- package/dist/vue3/chunks/{index-fEp0B-5Z.js.map → index-lu2o2f4r.js.map} +1 -1
- package/dist/vue3/chunks/{input-HIysg24t.js → input-NmYDD5bn.js} +9 -3
- package/dist/vue3/chunks/{input-HIysg24t.js.map → input-NmYDD5bn.js.map} +1 -1
- package/dist/vue3/chunks/{input-dLLo3Wtg.js → input-ttnte8zB.js} +9 -3
- package/dist/vue3/chunks/{input-dLLo3Wtg.js.map → input-ttnte8zB.js.map} +1 -1
- package/dist/vue3/chunks/{input_group-rE6nhye8.js → input_group-M-D25pOJ.js} +2 -4
- package/dist/vue3/chunks/{input_group-hV1WT2it.js.map → input_group-M-D25pOJ.js.map} +1 -1
- package/dist/vue3/chunks/{input_group-hV1WT2it.js → input_group-jWnq2DJT.js} +2 -4
- package/dist/vue3/chunks/{input_group-rE6nhye8.js.map → input_group-jWnq2DJT.js.map} +1 -1
- package/dist/vue3/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
- package/dist/{vue2/chunks/keyboard_list_navigation-x3D6RcC7.js.map → vue3/chunks/keyboard_list_navigation-ScXhrxya.js.map} +1 -1
- package/dist/vue3/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
- package/dist/{vue2/chunks/keyboard_list_navigation-YIqTuw1W.js.map → vue3/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
- package/dist/vue3/chunks/link_constants-AfTWrr-n.js.map +1 -1
- package/dist/vue3/chunks/link_constants-x8NwdqmA.js.map +1 -1
- package/dist/vue3/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
- package/dist/vue3/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
- package/dist/vue3/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
- package/dist/{vue2/chunks/modal-8X6poIZW.js.map → vue3/chunks/modal-VgxXAQFP.js.map} +1 -1
- package/dist/vue3/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
- package/dist/vue3/chunks/{modal-8X6poIZW.js.map → modal-XOr4kiNZ.js.map} +1 -1
- package/dist/vue3/chunks/{notice_action-3ed0uIMN.js → notice_action-WTucGhvr.js} +61 -40
- package/dist/vue3/chunks/{notice_action-e08Lw5W6.js.map → notice_action-WTucGhvr.js.map} +1 -1
- package/dist/vue3/chunks/{notice_action-e08Lw5W6.js → notice_action-p-ePanW_.js} +61 -40
- package/dist/vue3/chunks/{notice_action-3ed0uIMN.js.map → notice_action-p-ePanW_.js.map} +1 -1
- package/dist/vue3/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
- package/dist/vue3/chunks/notice_constants-UXo9e3bS.js.map +1 -1
- package/dist/vue3/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
- package/dist/vue3/chunks/{popover_constants-h9MD6WUt.js.map → popover_constants-WsOUIY-m.js.map} +1 -1
- package/dist/{vue2/chunks/popover_constants-h9MD6WUt.js → vue3/chunks/popover_constants-XnGWXaxX.js} +47 -26
- package/dist/{vue2/chunks/popover_constants-h9MD6WUt.js.map → vue3/chunks/popover_constants-XnGWXaxX.js.map} +1 -1
- package/dist/vue3/chunks/{sr_only_close_button-Ji3Zlts6.js → sr_only_close_button-3EdsV-dH.js} +4 -4
- package/dist/vue3/chunks/{sr_only_close_button-Ji3Zlts6.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
- package/dist/vue3/chunks/{sr_only_close_button-gKr0Vlbz.js → sr_only_close_button-xGrHFjwA.js} +4 -4
- package/dist/vue3/chunks/{sr_only_close_button-gKr0Vlbz.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
- package/dist/vue3/chunks/stack_constants-HraCekPm.js.map +1 -1
- package/dist/vue3/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
- package/dist/vue3/chunks/{tab-aD6t0MNo.js → tab-RTDgnD9-.js} +49 -46
- package/dist/vue3/chunks/{tab-aD6t0MNo.js.map → tab-RTDgnD9-.js.map} +1 -1
- package/dist/vue3/chunks/{tab-X7IvNGTl.js → tab-qc3f42Yp.js} +49 -46
- package/dist/vue3/chunks/{tab-X7IvNGTl.js.map → tab-qc3f42Yp.js.map} +1 -1
- package/dist/vue3/common/constants.cjs.map +1 -1
- package/dist/vue3/common/constants.js.map +1 -1
- package/dist/vue3/common/dates.cjs +1 -3
- package/dist/vue3/common/dates.cjs.map +1 -1
- package/dist/vue3/common/dates.js +1 -3
- package/dist/vue3/common/dates.js.map +1 -1
- package/dist/vue3/common/emoji.cjs +1 -1
- package/dist/vue3/common/emoji.js +1 -1
- package/dist/vue3/common/mixins.cjs +3 -3
- package/dist/vue3/common/mixins.js +3 -3
- package/dist/vue3/common/utils.cjs +45 -11
- package/dist/vue3/common/utils.cjs.map +1 -1
- package/dist/vue3/common/utils.js +45 -11
- package/dist/vue3/common/utils.js.map +1 -1
- package/dist/vue3/common/validators.cjs.map +1 -1
- package/dist/vue3/common/validators.js.map +1 -1
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/dialtone-vue.cjs +12 -12
- package/dist/vue3/dialtone-vue.js +12 -12
- package/dist/vue3/lib/attachment-carousel.cjs +108 -87
- package/dist/vue3/lib/attachment-carousel.cjs.map +1 -1
- package/dist/vue3/lib/attachment-carousel.js +108 -87
- package/dist/vue3/lib/attachment-carousel.js.map +1 -1
- package/dist/vue3/lib/avatar.cjs +88 -56
- package/dist/vue3/lib/avatar.cjs.map +1 -1
- package/dist/vue3/lib/avatar.js +88 -56
- package/dist/vue3/lib/avatar.js.map +1 -1
- package/dist/vue3/lib/badge.cjs +31 -15
- package/dist/vue3/lib/badge.cjs.map +1 -1
- package/dist/vue3/lib/badge.js +31 -15
- package/dist/vue3/lib/badge.js.map +1 -1
- package/dist/vue3/lib/banner.cjs +56 -38
- package/dist/vue3/lib/banner.cjs.map +1 -1
- package/dist/vue3/lib/banner.js +56 -38
- package/dist/vue3/lib/banner.js.map +1 -1
- package/dist/vue3/lib/breadcrumbs.cjs +36 -25
- package/dist/vue3/lib/breadcrumbs.cjs.map +1 -1
- package/dist/vue3/lib/breadcrumbs.js +36 -25
- package/dist/vue3/lib/breadcrumbs.js.map +1 -1
- package/dist/vue3/lib/button-group.cjs +7 -2
- package/dist/vue3/lib/button-group.cjs.map +1 -1
- package/dist/vue3/lib/button-group.js +7 -2
- package/dist/vue3/lib/button-group.js.map +1 -1
- package/dist/vue3/lib/button.cjs +69 -44
- package/dist/vue3/lib/button.cjs.map +1 -1
- package/dist/vue3/lib/button.js +69 -44
- package/dist/vue3/lib/button.js.map +1 -1
- package/dist/vue3/lib/callbar-button-with-popover.cjs +81 -68
- package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/vue3/lib/callbar-button-with-popover.js +81 -68
- package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/vue3/lib/callbar-button.cjs +45 -32
- package/dist/vue3/lib/callbar-button.cjs.map +1 -1
- package/dist/vue3/lib/callbar-button.js +45 -32
- package/dist/vue3/lib/callbar-button.js.map +1 -1
- package/dist/vue3/lib/callbox.cjs +57 -38
- package/dist/vue3/lib/callbox.cjs.map +1 -1
- package/dist/vue3/lib/callbox.js +57 -38
- package/dist/vue3/lib/callbox.js.map +1 -1
- package/dist/vue3/lib/card.cjs +33 -13
- package/dist/vue3/lib/card.cjs.map +1 -1
- package/dist/vue3/lib/card.js +33 -13
- package/dist/vue3/lib/card.js.map +1 -1
- package/dist/vue3/lib/checkbox-group.cjs +5 -2
- package/dist/vue3/lib/checkbox-group.cjs.map +1 -1
- package/dist/vue3/lib/checkbox-group.js +5 -2
- package/dist/vue3/lib/checkbox-group.js.map +1 -1
- package/dist/vue3/lib/checkbox.cjs +45 -41
- package/dist/vue3/lib/checkbox.cjs.map +1 -1
- package/dist/vue3/lib/checkbox.js +45 -41
- package/dist/vue3/lib/checkbox.js.map +1 -1
- package/dist/vue3/lib/chip.cjs +53 -38
- package/dist/vue3/lib/chip.cjs.map +1 -1
- package/dist/vue3/lib/chip.js +53 -38
- package/dist/vue3/lib/chip.js.map +1 -1
- package/dist/vue3/lib/codeblock.cjs +6 -4
- package/dist/vue3/lib/codeblock.cjs.map +1 -1
- package/dist/vue3/lib/codeblock.js +6 -4
- package/dist/vue3/lib/codeblock.js.map +1 -1
- package/dist/vue3/lib/collapsible.cjs +76 -62
- package/dist/vue3/lib/collapsible.cjs.map +1 -1
- package/dist/vue3/lib/collapsible.js +76 -62
- package/dist/vue3/lib/collapsible.js.map +1 -1
- package/dist/vue3/lib/combobox-multi-select.cjs +88 -75
- package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/vue3/lib/combobox-multi-select.js +88 -75
- package/dist/vue3/lib/combobox-multi-select.js.map +1 -1
- package/dist/vue3/lib/combobox-with-popover.cjs +85 -77
- package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/vue3/lib/combobox-with-popover.js +85 -77
- package/dist/vue3/lib/combobox-with-popover.js.map +1 -1
- package/dist/vue3/lib/combobox.cjs +3 -3
- package/dist/vue3/lib/combobox.js +3 -3
- package/dist/vue3/lib/contact-centers-row.cjs +89 -65
- package/dist/vue3/lib/contact-centers-row.cjs.map +1 -1
- package/dist/vue3/lib/contact-centers-row.js +89 -65
- package/dist/vue3/lib/contact-centers-row.js.map +1 -1
- package/dist/vue3/lib/contact-info.cjs +82 -59
- package/dist/vue3/lib/contact-info.cjs.map +1 -1
- package/dist/vue3/lib/contact-info.js +82 -59
- package/dist/vue3/lib/contact-info.js.map +1 -1
- package/dist/vue3/lib/contact-row.cjs +47 -37
- package/dist/vue3/lib/contact-row.cjs.map +1 -1
- package/dist/vue3/lib/contact-row.js +47 -37
- package/dist/vue3/lib/contact-row.js.map +1 -1
- package/dist/vue3/lib/datepicker.cjs +263 -267
- package/dist/vue3/lib/datepicker.cjs.map +1 -1
- package/dist/vue3/lib/datepicker.js +263 -267
- package/dist/vue3/lib/datepicker.js.map +1 -1
- package/dist/vue3/lib/description-list.cjs +14 -9
- package/dist/vue3/lib/description-list.cjs.map +1 -1
- package/dist/vue3/lib/description-list.js +14 -9
- package/dist/vue3/lib/description-list.js.map +1 -1
- package/dist/vue3/lib/dropdown.cjs +6 -6
- package/dist/vue3/lib/dropdown.cjs.map +1 -1
- package/dist/vue3/lib/dropdown.js +6 -6
- package/dist/vue3/lib/dropdown.js.map +1 -1
- package/dist/vue3/lib/editor.cjs +249 -312
- package/dist/vue3/lib/editor.cjs.map +1 -1
- package/dist/vue3/lib/editor.js +249 -312
- package/dist/vue3/lib/editor.js.map +1 -1
- package/dist/vue3/lib/emoji-picker.cjs +419 -387
- package/dist/vue3/lib/emoji-picker.cjs.map +1 -1
- package/dist/vue3/lib/emoji-picker.js +419 -387
- package/dist/vue3/lib/emoji-picker.js.map +1 -1
- package/dist/vue3/lib/emoji-row.cjs +69 -59
- package/dist/vue3/lib/emoji-row.cjs.map +1 -1
- package/dist/vue3/lib/emoji-row.js +69 -59
- package/dist/vue3/lib/emoji-row.js.map +1 -1
- package/dist/vue3/lib/emoji-text-wrapper.cjs +12 -13
- package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/vue3/lib/emoji-text-wrapper.js +12 -13
- package/dist/vue3/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/vue3/lib/emoji.cjs +23 -19
- package/dist/vue3/lib/emoji.cjs.map +1 -1
- package/dist/vue3/lib/emoji.js +23 -19
- package/dist/vue3/lib/emoji.js.map +1 -1
- package/dist/vue3/lib/empty-state.cjs +30 -20
- package/dist/vue3/lib/empty-state.cjs.map +1 -1
- package/dist/vue3/lib/empty-state.js +30 -20
- package/dist/vue3/lib/empty-state.js.map +1 -1
- package/dist/vue3/lib/feed-item-row.cjs +74 -43
- package/dist/vue3/lib/feed-item-row.cjs.map +1 -1
- package/dist/vue3/lib/feed-item-row.js +74 -43
- package/dist/vue3/lib/feed-item-row.js.map +1 -1
- package/dist/vue3/lib/feed-pill.cjs +55 -45
- package/dist/vue3/lib/feed-pill.cjs.map +1 -1
- package/dist/vue3/lib/feed-pill.js +55 -45
- package/dist/vue3/lib/feed-pill.js.map +1 -1
- package/dist/vue3/lib/general-row.cjs +165 -115
- package/dist/vue3/lib/general-row.cjs.map +1 -1
- package/dist/vue3/lib/general-row.js +165 -115
- package/dist/vue3/lib/general-row.js.map +1 -1
- package/dist/vue3/lib/group-row.cjs +9 -7
- package/dist/vue3/lib/group-row.cjs.map +1 -1
- package/dist/vue3/lib/group-row.js +9 -7
- package/dist/vue3/lib/group-row.js.map +1 -1
- package/dist/vue3/lib/grouped-chip.cjs +48 -27
- package/dist/vue3/lib/grouped-chip.cjs.map +1 -1
- package/dist/vue3/lib/grouped-chip.js +48 -27
- package/dist/vue3/lib/grouped-chip.js.map +1 -1
- package/dist/vue3/lib/hovercard.cjs +33 -25
- package/dist/vue3/lib/hovercard.cjs.map +1 -1
- package/dist/vue3/lib/hovercard.js +33 -25
- package/dist/vue3/lib/hovercard.js.map +1 -1
- package/dist/vue3/lib/icon.cjs +1 -1
- package/dist/vue3/lib/icon.cjs.map +1 -1
- package/dist/vue3/lib/icon.js +1 -1
- package/dist/vue3/lib/icon.js.map +1 -1
- package/dist/vue3/lib/illustration.cjs +1 -2
- package/dist/vue3/lib/illustration.cjs.map +1 -1
- package/dist/vue3/lib/illustration.js +1 -2
- package/dist/vue3/lib/illustration.js.map +1 -1
- package/dist/vue3/lib/image-viewer.cjs +66 -52
- package/dist/vue3/lib/image-viewer.cjs.map +1 -1
- package/dist/vue3/lib/image-viewer.js +66 -52
- package/dist/vue3/lib/image-viewer.js.map +1 -1
- package/dist/vue3/lib/input-group.cjs +19 -15
- package/dist/vue3/lib/input-group.cjs.map +1 -1
- package/dist/vue3/lib/input-group.js +19 -15
- package/dist/vue3/lib/input-group.js.map +1 -1
- package/dist/vue3/lib/input.cjs +114 -77
- package/dist/vue3/lib/input.cjs.map +1 -1
- package/dist/vue3/lib/input.js +114 -77
- package/dist/vue3/lib/input.js.map +1 -1
- package/dist/vue3/lib/item-layout.cjs +27 -10
- package/dist/vue3/lib/item-layout.cjs.map +1 -1
- package/dist/vue3/lib/item-layout.js +27 -10
- package/dist/vue3/lib/item-layout.js.map +1 -1
- package/dist/vue3/lib/ivr-node.cjs +89 -80
- package/dist/vue3/lib/ivr-node.cjs.map +1 -1
- package/dist/vue3/lib/ivr-node.js +89 -80
- package/dist/vue3/lib/ivr-node.js.map +1 -1
- package/dist/vue3/lib/keyboard-shortcut.cjs +31 -26
- package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/vue3/lib/keyboard-shortcut.js +31 -26
- package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
- package/dist/vue3/lib/lazy-show.cjs +8 -6
- package/dist/vue3/lib/lazy-show.cjs.map +1 -1
- package/dist/vue3/lib/lazy-show.js +8 -6
- package/dist/vue3/lib/lazy-show.js.map +1 -1
- package/dist/vue3/lib/link.cjs +7 -2
- package/dist/vue3/lib/link.cjs.map +1 -1
- package/dist/vue3/lib/link.js +7 -2
- package/dist/vue3/lib/link.js.map +1 -1
- package/dist/vue3/lib/list-item-group.cjs +14 -7
- package/dist/vue3/lib/list-item-group.cjs.map +1 -1
- package/dist/vue3/lib/list-item-group.js +14 -7
- package/dist/vue3/lib/list-item-group.js.map +1 -1
- package/dist/vue3/lib/list-item.cjs +25 -24
- package/dist/vue3/lib/list-item.cjs.map +1 -1
- package/dist/vue3/lib/list-item.js +25 -24
- package/dist/vue3/lib/list-item.js.map +1 -1
- package/dist/vue3/lib/message-input.cjs +264 -227
- package/dist/vue3/lib/message-input.cjs.map +1 -1
- package/dist/vue3/lib/message-input.js +264 -227
- package/dist/vue3/lib/message-input.js.map +1 -1
- package/dist/vue3/lib/modal.cjs +99 -59
- package/dist/vue3/lib/modal.cjs.map +1 -1
- package/dist/vue3/lib/modal.js +99 -59
- package/dist/vue3/lib/modal.js.map +1 -1
- package/dist/vue3/lib/notice.cjs +46 -33
- package/dist/vue3/lib/notice.cjs.map +1 -1
- package/dist/vue3/lib/notice.js +46 -33
- package/dist/vue3/lib/notice.js.map +1 -1
- package/dist/vue3/lib/pagination.cjs +61 -49
- package/dist/vue3/lib/pagination.cjs.map +1 -1
- package/dist/vue3/lib/pagination.js +61 -49
- package/dist/vue3/lib/pagination.js.map +1 -1
- package/dist/vue3/lib/popover.cjs +156 -133
- package/dist/vue3/lib/popover.cjs.map +1 -1
- package/dist/vue3/lib/popover.js +157 -134
- package/dist/vue3/lib/popover.js.map +1 -1
- package/dist/vue3/lib/presence.cjs +17 -9
- package/dist/vue3/lib/presence.cjs.map +1 -1
- package/dist/vue3/lib/presence.js +17 -9
- package/dist/vue3/lib/presence.js.map +1 -1
- package/dist/vue3/lib/radio-group.cjs +1 -1
- package/dist/vue3/lib/radio-group.cjs.map +1 -1
- package/dist/vue3/lib/radio-group.js +1 -1
- package/dist/vue3/lib/radio-group.js.map +1 -1
- package/dist/vue3/lib/radio.cjs +41 -34
- package/dist/vue3/lib/radio.cjs.map +1 -1
- package/dist/vue3/lib/radio.js +41 -34
- package/dist/vue3/lib/radio.js.map +1 -1
- package/dist/vue3/lib/rich-text-editor.cjs +288 -292
- package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
- package/dist/vue3/lib/rich-text-editor.js +288 -292
- package/dist/vue3/lib/rich-text-editor.js.map +1 -1
- package/dist/vue3/lib/root-layout.cjs +39 -24
- package/dist/vue3/lib/root-layout.cjs.map +1 -1
- package/dist/vue3/lib/root-layout.js +39 -24
- package/dist/vue3/lib/root-layout.js.map +1 -1
- package/dist/vue3/lib/scrollbar-directive.cjs +422 -388
- package/dist/vue3/lib/scrollbar-directive.cjs.map +1 -1
- package/dist/vue3/lib/scrollbar-directive.js +422 -388
- package/dist/vue3/lib/scrollbar-directive.js.map +1 -1
- package/dist/vue3/lib/scroller.cjs +83 -100
- package/dist/vue3/lib/scroller.cjs.map +1 -1
- package/dist/vue3/lib/scroller.js +83 -100
- package/dist/vue3/lib/scroller.js.map +1 -1
- package/dist/vue3/lib/select-menu.cjs +67 -40
- package/dist/vue3/lib/select-menu.cjs.map +1 -1
- package/dist/vue3/lib/select-menu.js +67 -40
- package/dist/vue3/lib/select-menu.js.map +1 -1
- package/dist/vue3/lib/settings-menu-button.cjs +16 -10
- package/dist/vue3/lib/settings-menu-button.cjs.map +1 -1
- package/dist/vue3/lib/settings-menu-button.js +16 -10
- package/dist/vue3/lib/settings-menu-button.js.map +1 -1
- package/dist/vue3/lib/skeleton.cjs +93 -74
- package/dist/vue3/lib/skeleton.cjs.map +1 -1
- package/dist/vue3/lib/skeleton.js +93 -74
- package/dist/vue3/lib/skeleton.js.map +1 -1
- package/dist/vue3/lib/split-button.cjs +74 -68
- package/dist/vue3/lib/split-button.cjs.map +1 -1
- package/dist/vue3/lib/split-button.js +74 -68
- package/dist/vue3/lib/split-button.js.map +1 -1
- package/dist/vue3/lib/stack.cjs +26 -18
- package/dist/vue3/lib/stack.cjs.map +1 -1
- package/dist/vue3/lib/stack.js +26 -18
- package/dist/vue3/lib/stack.js.map +1 -1
- package/dist/vue3/lib/tabs.cjs +7 -3
- package/dist/vue3/lib/tabs.cjs.map +1 -1
- package/dist/vue3/lib/tabs.js +7 -3
- package/dist/vue3/lib/tabs.js.map +1 -1
- package/dist/vue3/lib/time-pill.cjs.map +1 -1
- package/dist/vue3/lib/time-pill.js.map +1 -1
- package/dist/vue3/lib/toast.cjs +51 -35
- package/dist/vue3/lib/toast.cjs.map +1 -1
- package/dist/vue3/lib/toast.js +51 -35
- package/dist/vue3/lib/toast.js.map +1 -1
- package/dist/vue3/lib/toggle.cjs +34 -24
- package/dist/vue3/lib/toggle.cjs.map +1 -1
- package/dist/vue3/lib/toggle.js +34 -24
- package/dist/vue3/lib/toggle.js.map +1 -1
- package/dist/vue3/lib/tooltip-directive.cjs +19 -26
- package/dist/vue3/lib/tooltip-directive.cjs.map +1 -1
- package/dist/vue3/lib/tooltip-directive.js +19 -26
- package/dist/vue3/lib/tooltip-directive.js.map +1 -1
- package/dist/vue3/lib/tooltip.cjs +32 -21
- package/dist/vue3/lib/tooltip.cjs.map +1 -1
- package/dist/vue3/lib/tooltip.js +33 -22
- package/dist/vue3/lib/tooltip.js.map +1 -1
- package/dist/vue3/lib/top-banner-info.cjs +23 -8
- package/dist/vue3/lib/top-banner-info.cjs.map +1 -1
- package/dist/vue3/lib/top-banner-info.js +23 -8
- package/dist/vue3/lib/top-banner-info.js.map +1 -1
- package/dist/vue3/lib/unread-pill.cjs +11 -8
- package/dist/vue3/lib/unread-pill.cjs.map +1 -1
- package/dist/vue3/lib/unread-pill.js +11 -8
- package/dist/vue3/lib/unread-pill.js.map +1 -1
- package/dist/vue3/lib/validation-messages.cjs +17 -14
- package/dist/vue3/lib/validation-messages.cjs.map +1 -1
- package/dist/vue3/lib/validation-messages.js +17 -14
- package/dist/vue3/lib/validation-messages.js.map +1 -1
- package/dist/vue3/style.css +9 -9
- package/dist/vue3/types/components/button/button.vue.d.ts +1 -1
- package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
- package/dist/vue3/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
- package/dist/vue3/types/components/icon/icon.vue.d.ts +2 -2
- package/dist/vue3/types/components/icon/icon_constants.d.ts +1 -1
- package/dist/vue3/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/vue3/types/components/illustration/illustration_constants.d.ts +1 -1
- package/dist/vue3/types/components/illustration/illustration_constants.d.ts.map +1 -1
- package/dist/vue3/types/components/input/input.vue.d.ts +3 -2
- package/dist/vue3/types/components/input/input.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/modal/modal.vue.d.ts +1 -1
- package/dist/vue3/types/components/notice/notice.vue.d.ts +1 -1
- package/dist/vue3/types/components/radio/radio.vue.d.ts +1 -1
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
- package/dist/vue3/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
- package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
- package/dist/vue3/types/components/tabs/tab.vue.d.ts +1 -1
- package/dist/vue3/types/components/toast/toast.vue.d.ts +2 -2
- package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
- package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/vue2/chunks/icon_constants-TdxqLsS2.js.map +0 -1
- package/dist/vue2/chunks/icon_constants-VEA0wI5C.js.map +0 -1
- package/dist/vue3/chunks/icon_constants-bvhFNOPu.js.map +0 -1
- package/dist/vue3/chunks/icon_constants-gIQj4mf7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"({ item, key }) in selectedItemsWithKeys\"\n ref=\"chips\"\n :key=\"key\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"$slots.header\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"$slots.footer\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport { getUniqueString } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\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 * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n ...this.$listeners,\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n selectedItemsWithKeys () {\n return this.selectedItems.map(selectedItem => ({\n item: selectedItem,\n key: getUniqueString(selectedItem),\n }));\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n async handler () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeDestroy () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":["MULTI_SELECT_SIZES","EXTRA_SMALL","SMALL","DEFAULT","CHIP_SIZES","xs","sm","md","CHIP_TOP_POSITION","_sfc_main","name","components","DtRecipeComboboxWithPopover","DtInput","DtChip","DtValidationMessages","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","description","placeholder","inputMessages","Array","validator","validationMessageValidator","showInputMessages","loading","loadingMessage","showList","listMaxHeight","selectedItems","maxSelected","Number","maxSelectedMessage","hasSuggestionList","size","t","Object","values","includes","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","collapseOnFocusOut","listMaxWidth","emits","data","value","popoverOffset","showValidationMessages","resizeWindowObserver","initialInputHeight","inputFocused","computed","inputPlaceHolder","length","chipListeners","$listeners","keyup","event","onChipKeyup","$emit","inputListeners","input","showComboboxList","onInputKeyup","click","selectedItemsWithKeys","map","selectedItem","item","key","getUniqueString","chipWrapperClass","watch","handler","initSelectedItems","$nextTick","setChipsTopPosition","getInput","revertInputPadding","getBoundingClientRect","height","setInputPadding","mounted","setInitialInputHeight","ResizeObserver","observe","document","body","beforeDestroy","unobserve","methods","comboboxHighlight","highlightIndex","setInputMinWidth","checkMaxSelected","onChipRemove","$refs","focus","onComboboxSelect","i","comboboxWithPopover","closeComboboxList","getChipButtons","chips","chip","$el","querySelector","getChips","getLastChipButton","getLastChip","getFirstChip","code","toLowerCase","navigateBetweenChips","target","id","moveFromChipToInput","selectionStart","moveFromInputToChip","blur","toLeft","from","indexOf","to","inputSlotWrapper","top","chipsWrapper","style","lastChip","left","offsetLeft","getFullWidth","paddingLeft","chipsSize","offsetTop","paddingTop","paddingBottom","el","styles","window","getComputedStyle","offsetWidth","parseInt","marginLeft","marginRight","firstChip","minWidth","handleInputFocusIn","handleInputFocusOut"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"({ item, key }) in selectedItemsWithKeys\"\n ref=\"chips\"\n :key=\"key\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"$slots.header\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"$slots.footer\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport { getUniqueString } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\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 * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n ...this.$listeners,\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n selectedItemsWithKeys () {\n return this.selectedItems.map(selectedItem => ({\n item: selectedItem,\n key: getUniqueString(selectedItem),\n }));\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n async handler () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeDestroy () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const lib_combobox = require("../chunks/index-
|
|
3
|
+
const lib_combobox = require("../chunks/index-gj1jEXP4.js");
|
|
4
4
|
const common_utils = require("../common/utils.cjs");
|
|
5
|
-
const sr_only_close_button = require("../chunks/sr_only_close_button-
|
|
5
|
+
const sr_only_close_button = require("../chunks/sr_only_close_button-ZaGdAHz7.js");
|
|
6
6
|
const _pluginVue2_normalizer = require("../chunks/_plugin-vue2_normalizer-1aBeR4AK.js");
|
|
7
7
|
const lib_popover = require("./popover.cjs");
|
|
8
8
|
const dropdown_constants = require("../chunks/dropdown_constants-2pGCXy7m.js");
|
|
9
|
-
const popover_constants = require("../chunks/popover_constants-
|
|
10
|
-
require("../chunks/keyboard_list_navigation-
|
|
9
|
+
const popover_constants = require("../chunks/popover_constants-XnGWXaxX.js");
|
|
10
|
+
require("../chunks/keyboard_list_navigation-fJnl_Iox.js");
|
|
11
11
|
require("./list-item.cjs");
|
|
12
12
|
require("../chunks/list_item_constants-EiqkqZvP.js");
|
|
13
13
|
require("./item-layout.cjs");
|
|
14
14
|
require("./icon.cjs");
|
|
15
15
|
require("@dialpad/dialtone-icons/vue2");
|
|
16
|
-
require("../chunks/icon_constants-
|
|
16
|
+
require("../chunks/icon_constants-QYpmdE0R.js");
|
|
17
17
|
require("@dialpad/dialtone-icons/icons.json");
|
|
18
18
|
require("../common/constants.cjs");
|
|
19
19
|
require("vue");
|
|
@@ -21,7 +21,7 @@ require("./skeleton.cjs");
|
|
|
21
21
|
require("./button.cjs");
|
|
22
22
|
require("../chunks/link_constants-x8NwdqmA.js");
|
|
23
23
|
require("@linusborg/vue-simple-portal");
|
|
24
|
-
require("../chunks/modal-
|
|
24
|
+
require("../chunks/modal-VgxXAQFP.js");
|
|
25
25
|
require("./lazy-show.cjs");
|
|
26
26
|
require("tippy.js");
|
|
27
27
|
const _sfc_main = {
|
|
@@ -345,132 +345,41 @@ const _sfc_main = {
|
|
|
345
345
|
};
|
|
346
346
|
var _sfc_render = function render() {
|
|
347
347
|
var _vm = this, _c = _vm._self._c;
|
|
348
|
-
return _c("dt-combobox", _vm._g({
|
|
349
|
-
ref: "
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
"
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
ref: "input",
|
|
372
|
-
attrs: {
|
|
373
|
-
"id": _vm.externalAnchor
|
|
374
|
-
},
|
|
375
|
-
on: {
|
|
376
|
-
"focusin": _vm.onFocusIn,
|
|
377
|
-
"keydown": [function($event) {
|
|
378
|
-
if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "up", 38, $event.key, ["Up", "ArrowUp"]))
|
|
379
|
-
return null;
|
|
380
|
-
return _vm.openOnArrowKeyPress($event);
|
|
381
|
-
}, function($event) {
|
|
382
|
-
if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "down", 40, $event.key, ["Down", "ArrowDown"]))
|
|
383
|
-
return null;
|
|
384
|
-
return _vm.openOnArrowKeyPress($event);
|
|
385
|
-
}]
|
|
386
|
-
}
|
|
387
|
-
}, [_vm._t("input", null, {
|
|
388
|
-
"inputProps": inputProps,
|
|
389
|
-
"onInput": _vm.handleDisplayList
|
|
390
|
-
})], 2)];
|
|
391
|
-
}
|
|
392
|
-
}, {
|
|
393
|
-
key: "list",
|
|
394
|
-
fn: function({
|
|
395
|
-
opened,
|
|
396
|
-
listProps,
|
|
397
|
-
clearHighlightIndex
|
|
398
|
-
}) {
|
|
399
|
-
return [_c("dt-popover", {
|
|
400
|
-
ref: "popover",
|
|
401
|
-
attrs: {
|
|
402
|
-
"open": _vm.isListShown,
|
|
403
|
-
"hide-on-click": false,
|
|
404
|
-
"max-height": _vm.maxHeight,
|
|
405
|
-
"max-width": _vm.maxWidth,
|
|
406
|
-
"offset": _vm.popoverOffset,
|
|
407
|
-
"sticky": _vm.popoverSticky,
|
|
408
|
-
"placement": "bottom-start",
|
|
409
|
-
"initial-focus-element": "none",
|
|
410
|
-
"padding": "none",
|
|
411
|
-
"role": "listbox",
|
|
412
|
-
"external-anchor": _vm.externalAnchor,
|
|
413
|
-
"content-width": _vm.contentWidth,
|
|
414
|
-
"content-appear": true,
|
|
415
|
-
"content-tabindex": null,
|
|
416
|
-
"modal": false,
|
|
417
|
-
"auto-focus": false,
|
|
418
|
-
"append-to": _vm.appendTo,
|
|
419
|
-
"transition": _vm.transition,
|
|
420
|
-
"visually-hidden-close-label": _vm.visuallyHiddenCloseLabel,
|
|
421
|
-
"visually-hidden-close": _vm.visuallyHiddenClose
|
|
422
|
-
},
|
|
423
|
-
on: {
|
|
424
|
-
"update:open": function($event) {
|
|
425
|
-
_vm.isListShown = $event;
|
|
426
|
-
},
|
|
427
|
-
"opened": function($event) {
|
|
428
|
-
return opened($event, arguments[1]);
|
|
429
|
-
}
|
|
430
|
-
},
|
|
431
|
-
scopedSlots: _vm._u([_vm.$slots.header ? {
|
|
432
|
-
key: "headerContent",
|
|
433
|
-
fn: function() {
|
|
434
|
-
return [_c("div", {
|
|
435
|
-
ref: "header"
|
|
436
|
-
}, [_vm._t("header")], 2)];
|
|
437
|
-
},
|
|
438
|
-
proxy: true
|
|
439
|
-
} : null, {
|
|
440
|
-
key: "content",
|
|
441
|
-
fn: function() {
|
|
442
|
-
return [_c("div", {
|
|
443
|
-
ref: "listWrapper",
|
|
444
|
-
class: [_vm.DROPDOWN_PADDING_CLASSES[_vm.padding], _vm.listClass],
|
|
445
|
-
on: {
|
|
446
|
-
"mouseleave": clearHighlightIndex,
|
|
447
|
-
"focusout": clearHighlightIndex
|
|
448
|
-
}
|
|
449
|
-
}, [_vm.loading ? _c("combobox-loading-list", _vm._b({}, "combobox-loading-list", listProps, false)) : _vm.emptyList && _vm.emptyStateMessage ? _c("combobox-empty-list", _vm._b({
|
|
450
|
-
attrs: {
|
|
451
|
-
"message": _vm.emptyStateMessage
|
|
452
|
-
}
|
|
453
|
-
}, "combobox-empty-list", listProps, false)) : _vm._t("list", null, {
|
|
454
|
-
"listProps": listProps
|
|
455
|
-
})], 2)];
|
|
456
|
-
},
|
|
457
|
-
proxy: true
|
|
458
|
-
}, _vm.$slots.footer ? {
|
|
459
|
-
key: "footerContent",
|
|
460
|
-
fn: function() {
|
|
461
|
-
return [_c("div", {
|
|
462
|
-
ref: "footer"
|
|
463
|
-
}, [_vm._t("footer")], 2)];
|
|
464
|
-
},
|
|
465
|
-
proxy: true
|
|
466
|
-
} : null], null, true)
|
|
467
|
-
})];
|
|
468
|
-
}
|
|
469
|
-
}], null, true)
|
|
470
|
-
}, _vm.comboboxListeners));
|
|
348
|
+
return _c("dt-combobox", _vm._g({ ref: "combobox", attrs: { "loading": _vm.loading, "label": _vm.label, "label-visible": _vm.labelVisible, "size": _vm.size, "description": _vm.description, "empty-list": _vm.emptyList, "empty-state-message": _vm.emptyStateMessage, "show-list": _vm.isListShown, "on-beginning-of-list": _vm.onBeginningOfList, "on-end-of-list": _vm.onEndOfList, "list-rendered-outside": true, "list-id": _vm.listId, "data-qa": "dt-combobox" }, scopedSlots: _vm._u([{ key: "input", fn: function({ inputProps }) {
|
|
349
|
+
return [_c("div", { ref: "input", attrs: { "id": _vm.externalAnchor }, on: { "focusin": _vm.onFocusIn, "keydown": [function($event) {
|
|
350
|
+
if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "up", 38, $event.key, ["Up", "ArrowUp"]))
|
|
351
|
+
return null;
|
|
352
|
+
return _vm.openOnArrowKeyPress($event);
|
|
353
|
+
}, function($event) {
|
|
354
|
+
if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "down", 40, $event.key, ["Down", "ArrowDown"]))
|
|
355
|
+
return null;
|
|
356
|
+
return _vm.openOnArrowKeyPress($event);
|
|
357
|
+
}] } }, [_vm._t("input", null, { "inputProps": inputProps, "onInput": _vm.handleDisplayList })], 2)];
|
|
358
|
+
} }, { key: "list", fn: function({ opened, listProps, clearHighlightIndex }) {
|
|
359
|
+
return [_c("dt-popover", { ref: "popover", attrs: { "open": _vm.isListShown, "hide-on-click": false, "max-height": _vm.maxHeight, "max-width": _vm.maxWidth, "offset": _vm.popoverOffset, "sticky": _vm.popoverSticky, "placement": "bottom-start", "initial-focus-element": "none", "padding": "none", "role": "listbox", "external-anchor": _vm.externalAnchor, "content-width": _vm.contentWidth, "content-appear": true, "content-tabindex": null, "modal": false, "auto-focus": false, "append-to": _vm.appendTo, "transition": _vm.transition, "visually-hidden-close-label": _vm.visuallyHiddenCloseLabel, "visually-hidden-close": _vm.visuallyHiddenClose }, on: { "update:open": function($event) {
|
|
360
|
+
_vm.isListShown = $event;
|
|
361
|
+
}, "opened": function($event) {
|
|
362
|
+
return opened($event, arguments[1]);
|
|
363
|
+
} }, scopedSlots: _vm._u([_vm.$slots.header ? { key: "headerContent", fn: function() {
|
|
364
|
+
return [_c("div", { ref: "header" }, [_vm._t("header")], 2)];
|
|
365
|
+
}, proxy: true } : null, { key: "content", fn: function() {
|
|
366
|
+
return [_c("div", { ref: "listWrapper", class: [_vm.DROPDOWN_PADDING_CLASSES[_vm.padding], _vm.listClass], on: { "mouseleave": clearHighlightIndex, "focusout": clearHighlightIndex } }, [_vm.loading ? _c("combobox-loading-list", _vm._b({}, "combobox-loading-list", listProps, false)) : _vm.emptyList && _vm.emptyStateMessage ? _c("combobox-empty-list", _vm._b({ attrs: { "message": _vm.emptyStateMessage } }, "combobox-empty-list", listProps, false)) : _vm._t("list", null, { "listProps": listProps })], 2)];
|
|
367
|
+
}, proxy: true }, _vm.$slots.footer ? { key: "footerContent", fn: function() {
|
|
368
|
+
return [_c("div", { ref: "footer" }, [_vm._t("footer")], 2)];
|
|
369
|
+
}, proxy: true } : null], null, true) })];
|
|
370
|
+
} }], null, true) }, _vm.comboboxListeners));
|
|
471
371
|
};
|
|
472
372
|
var _sfc_staticRenderFns = [];
|
|
473
|
-
var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
373
|
+
var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
374
|
+
_sfc_main,
|
|
375
|
+
_sfc_render,
|
|
376
|
+
_sfc_staticRenderFns,
|
|
377
|
+
false,
|
|
378
|
+
null,
|
|
379
|
+
null,
|
|
380
|
+
null,
|
|
381
|
+
null
|
|
382
|
+
);
|
|
474
383
|
const DtRecipeComboboxWithPopover = __component__.exports;
|
|
475
384
|
exports.DtRecipeComboboxWithPopover = DtRecipeComboboxWithPopover;
|
|
476
385
|
//# sourceMappingURL=combobox-with-popover.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-on=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n :open.sync=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened($event, arguments[1]);\"\n >\n <template\n v-if=\"$slots.header\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"$slots.footer\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\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 * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\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 * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\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 maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\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 */\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 * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\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 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$listeners,\n\n select: this.onSelect,\n\n escape: this.onEscape,\n\n highlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","size","validator","t","Object","values","LABEL_SIZES","includes","description","showList","listId","getUniqueString","listClass","Array","onBeginningOfList","Function","onEndOfList","maxHeight","maxWidth","padding","keys","DROPDOWN_PADDING_CLASSES","some","item","contentWidth","POPOVER_CONTENT_WIDTHS","openWithArrowKeys","popoverOffset","popoverSticky","hasSuggestionList","loading","emptyList","emptyStateMessage","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","emits","data","isListShown","isInputFocused","isListFocused","externalAnchor","computed","comboboxListeners","$listeners","select","onSelect","escape","onEscape","highlight","onHighlight","watch","handler","show","immediate","val","window","addEventListener","onFocusOut","removeEventListener","onOpened","methods","handleDisplayList","value","showComboboxList","closeComboboxList","highlightIndex","$emit","opened","onFocusIn","e","$refs","input","querySelector","target","popoverEl","popover","tip","popper","comboboxEl","composedPath","el","openOnArrowKeyPress"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-on=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n :open.sync=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened($event, arguments[1]);\"\n >\n <template\n v-if=\"$slots.header\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"$slots.footer\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\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 * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\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 * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\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 maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\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 */\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 * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\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 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$listeners,\n\n select: this.onSelect,\n\n escape: this.onEscape,\n\n highlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","SrOnlyCloseButtonMixin","LABEL_SIZES","getUniqueString","DROPDOWN_PADDING_CLASSES","POPOVER_CONTENT_WIDTHS","POPOVER_APPEND_TO_VALUES"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,YAAAA,aAAA;AAAA,IACA,WAAAC,YAAA;AAAA,IACA,qBAAAC,aAAA;AAAA,IACA,mBAAAC,aAAA;AAAA,EACA;AAAA,EAEA,QAAA,CAAAC,qBAAAA,sBAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,OAAAC,wBAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,eAAAC,aAAA,gBAAA;AAAA,MAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,YAAA;AACA,eAAA,OAAA,KAAAC,2CAAA,EAAA,KAAA,CAAA,SAAA,SAAA,OAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,kBAAAC,yCAAA,SAAA,YAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA,GAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,SAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA,CAAA,aAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,cAAA;AACA,eAAAC,kBAAA,yBAAA,SAAA,QAAA,KACA,oBAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,0BAAAF,mBAAA;AAAA,MACA,aAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAAD,aAAAA,gBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,oBAAA;AACA,aAAA;AAAA,QACA,GAAA,KAAA;AAAA,QAEA,QAAA,KAAA;AAAA,QAEA,QAAA,KAAA;AAAA,QAEA,WAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,UAAA;AAAA,MACA,SAAA,SAAA,MAAA;AACA,YAAA,SAAA,MAAA;AACA,eAAA,cAAA;AAAA,QACA;AAAA,MACA;AAAA,MAEA,WAAA;AAAA,IACA;AAAA,IAEA,YAAA,KAAA;AACA,UAAA,KAAA;AACA,eAAA,iBAAA,aAAA,KAAA,UAAA;AAAA,MACA,OAAA;AACA,eAAA,oBAAA,aAAA,KAAA,UAAA;AAAA,MACA;AACA,WAAA,SAAA,GAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,kBAAA,OAAA;AACA,UAAA,CAAA,KAAA,qBAAA,OAAA;AAAA,aAAA,iBAAA;AAAA,MAAA;AACA,UAAA,CAAA,KAAA,qBAAA,CAAA,OAAA;AAAA,aAAA,kBAAA;AAAA,MAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,UAAA,KAAA,YAAA,MAAA;AAAA;AAAA,MAAA;AACA,WAAA,cAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,UAAA,KAAA,YAAA,MAAA;AAAA;AAAA,MAAA;AACA,WAAA,cAAA;AAAA,IACA;AAAA,IAEA,SAAA,gBAAA;AACA,UAAA,KAAA;AAAA;AAEA,WAAA,MAAA,UAAA,cAAA;AACA,UAAA,CAAA,KAAA,mBAAA;AAEA,aAAA,kBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,WAAA,MAAA,QAAA;AACA,WAAA,kBAAA;AAAA,IACA;AAAA,IAEA,YAAA,gBAAA;AACA,UAAA,KAAA;AAAA;AAEA,WAAA,MAAA,aAAA,cAAA;AAAA,IACA;AAAA,IAEA,SAAA,QAAA;AACA,WAAA,MAAA,UAAA,MAAA;AAAA,IACA;AAAA,IAEA,UAAA,GAAA;;AACA,UAAA,KAAA,qBAAA,OAAA,UAAA,MAAA,UAAA,mBAAA,cAAA,cAAA,EAAA,QAAA;AAGA,aAAA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,WAAA,GAAA;;AAEA,YAAA,aAAA,gBAAA,MAAA,YAAA,mBAAA,QAAA,mBAAA;AACA,YAAA,aAAA,KAAA,MAAA;AAEA,WAAA,OAAA,mBAAA,mBAAA,KAAA,QAAA,CAAA,WAAA,UAAA,EAAA,SAAA,EAAA;AAAA;AAGA,WAAA,kBAAA;AAAA,IACA;AAAA,IAEA,sBAAA;AACA,UAAA,KAAA,aAAA,QAAA,KAAA,eAAA,CAAA,KAAA,mBAAA;AAAA;AAAA,MAAA;AAEA,WAAA,iBAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|