@dialpad/dialtone-vue 3.187.3 → 3.187.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/constants/index.cjs.map +1 -1
- package/dist/common/constants/index.js.map +1 -1
- package/dist/common/dates/index.cjs.map +1 -1
- package/dist/common/dates/index.js +3 -3
- package/dist/common/dates/index.js.map +1 -1
- package/dist/common/emoji/index.cjs.map +1 -1
- package/dist/common/emoji/index.js.map +1 -1
- package/dist/common/mixins/dom.cjs.map +1 -1
- package/dist/common/mixins/dom.js.map +1 -1
- package/dist/common/mixins/input-group.cjs.map +1 -1
- package/dist/common/mixins/input-group.js +5 -5
- package/dist/common/mixins/input-group.js.map +1 -1
- package/dist/common/mixins/input.cjs.map +1 -1
- package/dist/common/mixins/input.js.map +1 -1
- package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
- package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
- package/dist/common/mixins/modal.cjs.map +1 -1
- package/dist/common/mixins/modal.js.map +1 -1
- package/dist/common/mixins/skeleton.cjs.map +1 -1
- package/dist/common/mixins/skeleton.js.map +1 -1
- package/dist/common/utils/index.cjs.map +1 -1
- package/dist/common/utils/index.js +3 -3
- package/dist/common/utils/index.js.map +1 -1
- package/dist/common/validators/index.cjs.map +1 -1
- package/dist/common/validators/index.js.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.js +5 -5
- package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
- package/dist/lib/avatar/avatar-constants.js.map +1 -1
- package/dist/lib/avatar/avatar.cjs.map +1 -1
- package/dist/lib/avatar/avatar.js +11 -11
- package/dist/lib/avatar/avatar.js.map +1 -1
- package/dist/lib/avatar/utils.cjs.map +1 -1
- package/dist/lib/avatar/utils.js.map +1 -1
- package/dist/lib/badge/badge.cjs.map +1 -1
- package/dist/lib/badge/badge.js +12 -12
- package/dist/lib/badge/badge.js.map +1 -1
- package/dist/lib/banner/banner.cjs +1 -1
- package/dist/lib/banner/banner.cjs.map +1 -1
- package/dist/lib/banner/banner.js +7 -7
- package/dist/lib/banner/banner.js.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.js +5 -5
- package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/lib/button/button-constants.cjs.map +1 -1
- package/dist/lib/button/button-constants.js.map +1 -1
- package/dist/lib/button/button.cjs.map +1 -1
- package/dist/lib/button/button.js +22 -22
- package/dist/lib/button/button.js.map +1 -1
- package/dist/lib/button-group/button-group.cjs.map +1 -1
- package/dist/lib/button-group/button-group.js +2 -2
- package/dist/lib/button-group/button-group.js.map +1 -1
- package/dist/lib/button-group/buttons-decorator.cjs.map +1 -1
- package/dist/lib/button-group/buttons-decorator.js +2 -2
- package/dist/lib/button-group/buttons-decorator.js.map +1 -1
- package/dist/lib/callbar-button/callbar-button-constants.cjs.map +1 -1
- package/dist/lib/callbar-button/callbar-button-constants.js.map +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button/callbar-button.js +13 -13
- package/dist/lib/callbar-button/callbar-button.js.map +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +13 -13
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +13 -13
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
- package/dist/lib/callbox/callbox-constants.cjs.map +1 -1
- package/dist/lib/callbox/callbox-constants.js.map +1 -1
- package/dist/lib/callbox/callbox.cjs.map +1 -1
- package/dist/lib/callbox/callbox.js +6 -6
- package/dist/lib/callbox/callbox.js.map +1 -1
- package/dist/lib/card/card.cjs.map +1 -1
- package/dist/lib/card/card.js +4 -4
- package/dist/lib/card/card.js.map +1 -1
- package/dist/lib/checkbox/checkbox-constants.cjs.map +1 -1
- package/dist/lib/checkbox/checkbox-constants.js.map +1 -1
- package/dist/lib/checkbox/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox/checkbox.js +8 -8
- package/dist/lib/checkbox/checkbox.js.map +1 -1
- package/dist/lib/checkbox-group/checkbox-group.cjs.map +1 -1
- package/dist/lib/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
- package/dist/lib/checkbox-group/checkboxes-decorator.js +1 -1
- package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
- package/dist/lib/chip/chip-constants.cjs.map +1 -1
- package/dist/lib/chip/chip-constants.js.map +1 -1
- package/dist/lib/chip/chip.cjs.map +1 -1
- package/dist/lib/chip/chip.js +13 -13
- package/dist/lib/chip/chip.js.map +1 -1
- package/dist/lib/codeblock/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock/codeblock.js +2 -2
- package/dist/lib/codeblock/codeblock.js.map +1 -1
- package/dist/lib/collapsible/collapsible-lazy-show.cjs.map +1 -1
- package/dist/lib/collapsible/collapsible-lazy-show.js +3 -3
- package/dist/lib/collapsible/collapsible-lazy-show.js.map +1 -1
- package/dist/lib/collapsible/collapsible.cjs +1 -1
- package/dist/lib/collapsible/collapsible.cjs.map +1 -1
- package/dist/lib/collapsible/collapsible.js +18 -18
- package/dist/lib/collapsible/collapsible.js.map +1 -1
- package/dist/lib/combobox/combobox-constants.cjs.map +1 -1
- package/dist/lib/combobox/combobox-constants.js.map +1 -1
- package/dist/lib/combobox/combobox-empty-list.cjs.map +1 -1
- package/dist/lib/combobox/combobox-empty-list.js +2 -2
- package/dist/lib/combobox/combobox-empty-list.js.map +1 -1
- package/dist/lib/combobox/combobox-loading-list.cjs +1 -1
- package/dist/lib/combobox/combobox-loading-list.cjs.map +1 -1
- package/dist/lib/combobox/combobox-loading-list.js +6 -6
- package/dist/lib/combobox/combobox-loading-list.js.map +1 -1
- package/dist/lib/combobox/combobox.cjs +1 -1
- package/dist/lib/combobox/combobox.cjs.map +1 -1
- package/dist/lib/combobox/combobox.js +8 -8
- package/dist/lib/combobox/combobox.js.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-story-constants.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-story-constants.js.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.js +16 -16
- package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.js +13 -13
- package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.js +19 -19
- package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
- package/dist/lib/contact-info/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info/contact-info.js +1 -1
- package/dist/lib/contact-info/contact-info.js.map +1 -1
- package/dist/lib/contact-row/contact-row.cjs +1 -1
- package/dist/lib/contact-row/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row/contact-row.js +12 -12
- package/dist/lib/contact-row/contact-row.js.map +1 -1
- package/dist/lib/datepicker/datepicker.cjs +1 -1
- package/dist/lib/datepicker/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker/datepicker.js +139 -139
- package/dist/lib/datepicker/datepicker.js.map +1 -1
- package/dist/lib/datepicker/formatUtils.cjs.map +1 -1
- package/dist/lib/datepicker/formatUtils.js.map +1 -1
- package/dist/lib/datepicker/utils.cjs.map +1 -1
- package/dist/lib/datepicker/utils.js.map +1 -1
- package/dist/lib/description-list/description-list.cjs.map +1 -1
- package/dist/lib/description-list/description-list.js +3 -3
- package/dist/lib/description-list/description-list.js.map +1 -1
- package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
- package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-list.js +5 -5
- package/dist/lib/dropdown/dropdown-list.js.map +1 -1
- package/dist/lib/dropdown/dropdown-separator.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-separator.js +2 -2
- package/dist/lib/dropdown/dropdown-separator.js.map +1 -1
- package/dist/lib/dropdown/dropdown-story-constants.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-story-constants.js.map +1 -1
- package/dist/lib/dropdown/dropdown.cjs +1 -1
- package/dist/lib/dropdown/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown.js +3 -3
- package/dist/lib/dropdown/dropdown.js.map +1 -1
- package/dist/lib/editor/editor-constants.cjs.map +1 -1
- package/dist/lib/editor/editor-constants.js.map +1 -1
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.cjs.map +1 -1
- package/dist/lib/editor/editor.js +48 -48
- package/dist/lib/editor/editor.js.map +1 -1
- package/dist/lib/emoji/emoji.cjs.map +1 -1
- package/dist/lib/emoji/emoji.js +6 -6
- package/dist/lib/emoji/emoji.js.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker-constants.cjs.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker-constants.js.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.js +2 -2
- package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
- package/dist/lib/emoji-row/emoji-row-constants.cjs.map +1 -1
- package/dist/lib/emoji-row/emoji-row-constants.js.map +1 -1
- package/dist/lib/emoji-row/emoji-row.cjs +1 -1
- package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
- package/dist/lib/emoji-row/emoji-row.js +10 -10
- package/dist/lib/emoji-row/emoji-row.js.map +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
- package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
- package/dist/lib/empty-state/empty-state.cjs.map +1 -1
- package/dist/lib/empty-state/empty-state.js +7 -7
- package/dist/lib/feed-item-pill/feed-item-pill-constants.cjs.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill-constants.js.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.js +6 -6
- package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row-constants.cjs.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row-constants.js.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.js +56 -56
- package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
- package/dist/lib/general-row/general-row-constants.cjs.map +1 -1
- package/dist/lib/general-row/general-row-constants.js.map +1 -1
- package/dist/lib/general-row/general-row.cjs +1 -1
- package/dist/lib/general-row/general-row.cjs.map +1 -1
- package/dist/lib/general-row/general-row.js +30 -30
- package/dist/lib/general-row/general-row.js.map +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.js +35 -35
- package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
- package/dist/lib/group-row/group-row.cjs.map +1 -1
- package/dist/lib/group-row/group-row.js +3 -3
- package/dist/lib/group-row/group-row.js.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.js +14 -14
- package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
- package/dist/lib/hovercard/hovercard.cjs +1 -1
- package/dist/lib/hovercard/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard/hovercard.js +6 -6
- package/dist/lib/hovercard/hovercard.js.map +1 -1
- package/dist/lib/icon/icon-constants.cjs.map +1 -1
- package/dist/lib/icon/icon-constants.js.map +1 -1
- package/dist/lib/icon/icon.cjs.map +1 -1
- package/dist/lib/icon/icon.js +6 -6
- package/dist/lib/icon/icon.js.map +1 -1
- package/dist/lib/illustration/illustration-constants.cjs.map +1 -1
- package/dist/lib/illustration/illustration-constants.js.map +1 -1
- package/dist/lib/illustration/illustration.cjs.map +1 -1
- package/dist/lib/illustration/illustration.js +3 -3
- package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
- package/dist/lib/image-viewer/image-viewer.js +12 -12
- package/dist/lib/image-viewer/image-viewer.js.map +1 -1
- package/dist/lib/input/input-constants.cjs.map +1 -1
- package/dist/lib/input/input-constants.js.map +1 -1
- package/dist/lib/input/input.cjs.map +1 -1
- package/dist/lib/input/input.js +20 -20
- package/dist/lib/input/input.js.map +1 -1
- package/dist/lib/input-group/input-group.cjs.map +1 -1
- package/dist/lib/input-group/input-group.js +8 -8
- package/dist/lib/input-group/input-group.js.map +1 -1
- package/dist/lib/item-layout/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout/item-layout.js +13 -13
- package/dist/lib/item-layout/item-layout.js.map +1 -1
- package/dist/lib/ivr-node/ivr-node-constants.cjs.map +1 -1
- package/dist/lib/ivr-node/ivr-node-constants.js.map +1 -1
- package/dist/lib/ivr-node/ivr-node.cjs +1 -1
- package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
- package/dist/lib/ivr-node/ivr-node.js +36 -36
- package/dist/lib/ivr-node/ivr-node.js.map +1 -1
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +15 -15
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/dist/lib/lazy-show/lazy-show.cjs.map +1 -1
- package/dist/lib/lazy-show/lazy-show.js +2 -2
- package/dist/lib/lazy-show/lazy-show.js.map +1 -1
- package/dist/lib/link/link-constants.cjs.map +1 -1
- package/dist/lib/link/link-constants.js.map +1 -1
- package/dist/lib/link/link.cjs.map +1 -1
- package/dist/lib/link/link.js +5 -5
- package/dist/lib/link/link.js.map +1 -1
- package/dist/lib/list-item/list-item-constants.cjs.map +1 -1
- package/dist/lib/list-item/list-item-constants.js.map +1 -1
- package/dist/lib/list-item/list-item.cjs.map +1 -1
- package/dist/lib/list-item/list-item.js +4 -4
- package/dist/lib/list-item/list-item.js.map +1 -1
- package/dist/lib/list-item-group/list-item-group-constants.cjs.map +1 -1
- package/dist/lib/list-item-group/list-item-group-constants.js.map +1 -1
- package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
- package/dist/lib/list-item-group/list-item-group.js +5 -5
- package/dist/lib/list-item-group/list-item-group.js.map +1 -1
- package/dist/lib/loader/loader.cjs.map +1 -1
- package/dist/lib/loader/loader.js +2 -2
- package/dist/lib/loader/loader.js.map +1 -1
- package/dist/lib/message-input/last-active-nodes.cjs +1 -1
- package/dist/lib/message-input/last-active-nodes.cjs.map +1 -1
- package/dist/lib/message-input/last-active-nodes.js +22 -22
- package/dist/lib/message-input/last-active-nodes.js.map +1 -1
- package/dist/lib/message-input/message-input-button.cjs +1 -1
- package/dist/lib/message-input/message-input-button.cjs.map +1 -1
- package/dist/lib/message-input/message-input-button.js +14 -14
- package/dist/lib/message-input/message-input-button.js.map +1 -1
- package/dist/lib/message-input/message-input-constants.cjs.map +1 -1
- package/dist/lib/message-input/message-input-constants.js.map +1 -1
- package/dist/lib/message-input/message-input-link.cjs +1 -1
- package/dist/lib/message-input/message-input-link.cjs.map +1 -1
- package/dist/lib/message-input/message-input-link.js +10 -10
- package/dist/lib/message-input/message-input-link.js.map +1 -1
- package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
- package/dist/lib/message-input/message-input-topbar.js +11 -11
- package/dist/lib/message-input/message-input-topbar.js.map +1 -1
- package/dist/lib/message-input/message-input.cjs +1 -1
- package/dist/lib/message-input/message-input.cjs.map +1 -1
- package/dist/lib/message-input/message-input.js +32 -32
- package/dist/lib/message-input/message-input.js.map +1 -1
- package/dist/lib/modal/modal.cjs +1 -1
- package/dist/lib/modal/modal.cjs.map +1 -1
- package/dist/lib/modal/modal.js +14 -14
- package/dist/lib/modal/modal.js.map +1 -1
- package/dist/lib/notice/notice-action.cjs.map +1 -1
- package/dist/lib/notice/notice-action.js +1 -1
- package/dist/lib/notice/notice-action.js.map +1 -1
- package/dist/lib/notice/notice-constants.cjs.map +1 -1
- package/dist/lib/notice/notice-constants.js.map +1 -1
- package/dist/lib/notice/notice-content.cjs.map +1 -1
- package/dist/lib/notice/notice-content.js +6 -6
- package/dist/lib/notice/notice-content.js.map +1 -1
- package/dist/lib/notice/notice-icon.cjs.map +1 -1
- package/dist/lib/notice/notice-icon.js +13 -13
- package/dist/lib/notice/notice-icon.js.map +1 -1
- package/dist/lib/notice/notice.cjs.map +1 -1
- package/dist/lib/notice/notice.js +4 -4
- package/dist/lib/notice/notice.js.map +1 -1
- package/dist/lib/pagination/pagination.cjs.map +1 -1
- package/dist/lib/pagination/pagination.js +4 -4
- package/dist/lib/pagination/pagination.js.map +1 -1
- package/dist/lib/popover/popover-constants.cjs.map +1 -1
- package/dist/lib/popover/popover-constants.js.map +1 -1
- package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
- package/dist/lib/popover/popover-header-footer.js +6 -6
- package/dist/lib/popover/popover-header-footer.js.map +1 -1
- package/dist/lib/popover/popover.cjs +1 -1
- package/dist/lib/popover/popover.cjs.map +1 -1
- package/dist/lib/popover/popover.js +17 -17
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/popover/tippy-utils.cjs +1 -1
- package/dist/lib/popover/tippy-utils.cjs.map +1 -1
- package/dist/lib/popover/tippy-utils.js +16 -18
- package/dist/lib/popover/tippy-utils.js.map +1 -1
- package/dist/lib/presence/presence.cjs.map +1 -1
- package/dist/lib/presence/presence.js +4 -4
- package/dist/lib/presence/presence.js.map +1 -1
- package/dist/lib/radio/radio-constants.cjs.map +1 -1
- package/dist/lib/radio/radio-constants.js.map +1 -1
- package/dist/lib/radio/radio.cjs.map +1 -1
- package/dist/lib/radio/radio.js +13 -13
- package/dist/lib/radio/radio.js.map +1 -1
- package/dist/lib/radio-group/radio-group.cjs.map +1 -1
- package/dist/lib/radio-group/radio-group.js.map +1 -1
- package/dist/lib/radio-group/radios-decorator.cjs.map +1 -1
- package/dist/lib/radio-group/radios-decorator.js +1 -1
- package/dist/lib/radio-group/radios-decorator.js.map +1 -1
- package/dist/lib/recipes/eslint.config.cjs +2 -0
- package/dist/lib/recipes/eslint.config.cjs.map +1 -0
- package/dist/lib/recipes/eslint.config.js +12 -0
- package/dist/lib/recipes/eslint.config.js.map +1 -0
- package/dist/lib/rich-text-editor/channel-suggestion.cjs.map +1 -1
- package/dist/lib/rich-text-editor/channel-suggestion.js.map +1 -1
- package/dist/lib/rich-text-editor/mention-suggestion.cjs.map +1 -1
- package/dist/lib/rich-text-editor/mention-suggestion.js.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor-constants.cjs.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor-constants.js.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
- package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +61 -54
- package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/lib/rich-text-editor/slash-command-suggestion.cjs.map +1 -1
- package/dist/lib/rich-text-editor/slash-command-suggestion.js.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
- package/dist/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout.js +3 -3
- package/dist/lib/root-layout/root-layout.js.map +1 -1
- package/dist/lib/scrollbar-directive/scrollbar.cjs.map +1 -1
- package/dist/lib/scrollbar-directive/scrollbar.js.map +1 -1
- package/dist/lib/scroller/scroller.cjs +1 -1
- package/dist/lib/scroller/scroller.cjs.map +1 -1
- package/dist/lib/scroller/scroller.js +2 -2
- package/dist/lib/scroller/scroller.js.map +1 -1
- package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
- package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
- package/dist/lib/select-menu/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu/select-menu.js +21 -21
- package/dist/lib/select-menu/select-menu.js.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.js +3 -3
- package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
- package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
- package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-list-item.js +2 -2
- package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
- package/dist/lib/skeleton/skeleton-paragraph.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-paragraph.js +1 -1
- package/dist/lib/skeleton/skeleton-paragraph.js.map +1 -1
- package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-shape.js +5 -5
- package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
- package/dist/lib/skeleton/skeleton-text.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-text.js +7 -7
- package/dist/lib/skeleton/skeleton-text.js.map +1 -1
- package/dist/lib/skeleton/skeleton.cjs +1 -1
- package/dist/lib/skeleton/skeleton.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton.js +11 -11
- package/dist/lib/skeleton/skeleton.js.map +1 -1
- package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
- package/dist/lib/split-button/split-button-alpha.js +2 -2
- package/dist/lib/split-button/split-button-alpha.js.map +1 -1
- package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
- package/dist/lib/split-button/split-button-constants.js.map +1 -1
- package/dist/lib/split-button/split-button-omega.cjs.map +1 -1
- package/dist/lib/split-button/split-button-omega.js +2 -2
- package/dist/lib/split-button/split-button-omega.js.map +1 -1
- package/dist/lib/split-button/split-button.cjs.map +1 -1
- package/dist/lib/split-button/split-button.js +19 -19
- package/dist/lib/split-button/split-button.js.map +1 -1
- package/dist/lib/stack/stack-constants.cjs.map +1 -1
- package/dist/lib/stack/stack-constants.js.map +1 -1
- package/dist/lib/stack/stack.cjs.map +1 -1
- package/dist/lib/stack/stack.js +11 -11
- package/dist/lib/stack/stack.js.map +1 -1
- package/dist/lib/stack/utils.cjs.map +1 -1
- package/dist/lib/stack/utils.js.map +1 -1
- package/dist/lib/stack/validators.cjs.map +1 -1
- package/dist/lib/stack/validators.js +5 -5
- package/dist/lib/stack/validators.js.map +1 -1
- package/dist/lib/tab/tab-group.cjs.map +1 -1
- package/dist/lib/tab/tab-group.js +7 -7
- package/dist/lib/tab/tab-group.js.map +1 -1
- package/dist/lib/tab/tab-panel.cjs.map +1 -1
- package/dist/lib/tab/tab-panel.js +2 -2
- package/dist/lib/tab/tab-panel.js.map +1 -1
- package/dist/lib/tab/tab.cjs.map +1 -1
- package/dist/lib/tab/tab.js +2 -2
- package/dist/lib/tab/tab.js.map +1 -1
- package/dist/lib/time-pill/time-pill.cjs.map +1 -1
- package/dist/lib/time-pill/time-pill.js +2 -2
- package/dist/lib/time-pill/time-pill.js.map +1 -1
- package/dist/lib/toast/toast-constants.cjs.map +1 -1
- package/dist/lib/toast/toast-constants.js.map +1 -1
- package/dist/lib/toast/toast.cjs +1 -1
- package/dist/lib/toast/toast.cjs.map +1 -1
- package/dist/lib/toast/toast.js +12 -12
- package/dist/lib/toast/toast.js.map +1 -1
- package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
- package/dist/lib/toggle/toggle-constants.js.map +1 -1
- package/dist/lib/toggle/toggle.cjs +1 -1
- package/dist/lib/toggle/toggle.cjs.map +1 -1
- package/dist/lib/toggle/toggle.js +14 -14
- package/dist/lib/toggle/toggle.js.map +1 -1
- package/dist/lib/tooltip/tooltip-constants.cjs.map +1 -1
- package/dist/lib/tooltip/tooltip-constants.js.map +1 -1
- package/dist/lib/tooltip/tooltip.cjs +1 -1
- package/dist/lib/tooltip/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip/tooltip.js +20 -22
- package/dist/lib/tooltip/tooltip.js.map +1 -1
- package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip-directive/tooltip.js +1 -1
- package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info-constants.cjs.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info-constants.js.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info.js +2 -2
- package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
- package/dist/lib/unread-pill/unread-pill-constants.cjs.map +1 -1
- package/dist/lib/unread-pill/unread-pill-constants.js.map +1 -1
- package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
- package/dist/lib/unread-pill/unread-pill.js +7 -7
- package/dist/lib/unread-pill/unread-pill.js.map +1 -1
- package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
- package/dist/lib/validation-messages/validation-messages.js +9 -9
- package/dist/lib/validation-messages/validation-messages.js.map +1 -1
- package/dist/localization/de-DE.cjs.map +1 -1
- package/dist/localization/de-DE.js.map +1 -1
- package/dist/localization/en-US.cjs.map +1 -1
- package/dist/localization/en-US.js.map +1 -1
- package/dist/localization/es-LA.cjs.map +1 -1
- package/dist/localization/es-LA.js.map +1 -1
- package/dist/localization/fr-FR.cjs.map +1 -1
- package/dist/localization/fr-FR.js.map +1 -1
- package/dist/localization/index.cjs.map +1 -1
- package/dist/localization/index.js.map +1 -1
- package/dist/localization/it-IT.cjs.map +1 -1
- package/dist/localization/it-IT.js.map +1 -1
- package/dist/localization/ja-JP.cjs.map +1 -1
- package/dist/localization/ja-JP.js.map +1 -1
- package/dist/localization/nl-NL.cjs.map +1 -1
- package/dist/localization/nl-NL.js.map +1 -1
- package/dist/localization/pt-BR.cjs.map +1 -1
- package/dist/localization/pt-BR.js.map +1 -1
- package/dist/localization/ru-RU.cjs.map +1 -1
- package/dist/localization/ru-RU.js.map +1 -1
- package/dist/localization/zh-CN.cjs.map +1 -1
- package/dist/localization/zh-CN.js.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js +3 -3
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/shared/sr_only_close_button.cjs.map +1 -1
- package/dist/shared/sr_only_close_button.js +2 -2
- package/dist/shared/sr_only_close_button.js.map +1 -1
- package/dist/types/common/constants/index.d.ts.map +1 -1
- package/dist/types/common/dates/index.d.ts.map +1 -1
- package/dist/types/common/emoji/index.d.ts.map +1 -1
- package/dist/types/common/mixins/dom.d.ts.map +1 -1
- package/dist/types/common/mixins/input.d.ts +6 -6
- package/dist/types/common/mixins/input.d.ts.map +1 -1
- package/dist/types/common/mixins/input_group.d.ts +2 -2
- package/dist/types/common/mixins/modal.d.ts.map +1 -1
- package/dist/types/common/utils/index.d.ts.map +1 -1
- package/dist/types/components/avatar/avatar.vue.d.ts +12 -12
- package/dist/types/components/badge/badge.vue.d.ts +4 -4
- package/dist/types/components/banner/banner.vue.d.ts +1 -1
- package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs_constants.d.ts.map +1 -1
- package/dist/types/components/button/button.vue.d.ts +3 -3
- package/dist/types/components/button/button_constants.d.ts.map +1 -1
- package/dist/types/components/card/card.vue.d.ts +12 -12
- package/dist/types/components/checkbox/checkbox.vue.d.ts +6 -6
- package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +2 -2
- package/dist/types/components/chip/chip.vue.d.ts +6 -6
- package/dist/types/components/collapsible/collapsible.vue.d.ts +6 -6
- package/dist/types/components/combobox/combobox.vue.d.ts +4 -4
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +3 -3
- package/dist/types/components/datepicker/datepicker_constants.d.ts.map +1 -1
- package/dist/types/components/datepicker/formatUtils.d.ts +5 -5
- package/dist/types/components/datepicker/formatUtils.d.ts.map +1 -1
- package/dist/types/components/datepicker/modules/calendar.vue.d.ts +1 -1
- package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
- package/dist/types/components/description_list/description_list.vue.d.ts +6 -6
- package/dist/types/components/dropdown/dropdown.vue.d.ts +10 -10
- package/dist/types/components/emoji/emoji.vue.d.ts +3 -3
- package/dist/types/components/emoji_picker/emoji_picker_constants.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_selector.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_skin_selector.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +1 -1
- package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
- package/dist/types/components/empty_state/empty_state.vue.d.ts +7 -11
- package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
- package/dist/types/components/eslint.config.d.ts +8 -0
- package/dist/types/components/eslint.config.d.ts.map +1 -0
- package/dist/types/components/hovercard/hovercard.vue.d.ts +686 -11
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/types/components/input/input.vue.d.ts +8 -8
- package/dist/types/components/input_group/input_group.vue.d.ts +2 -2
- package/dist/types/components/item_layout/item_layout.vue.d.ts +1 -1
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -210
- package/dist/types/components/lazy_show/lazy_show.vue.d.ts +1 -1
- package/dist/types/components/link/link_constants.d.ts.map +1 -1
- package/dist/types/components/list_item/list_item.vue.d.ts +3 -3
- package/dist/types/components/list_item_group/list_item_group.vue.d.ts +6 -6
- package/dist/types/components/modal/modal.vue.d.ts +16 -16
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice.vue.d.ts +1 -1
- package/dist/types/components/notice/notice_icon.vue.d.ts +1 -30
- package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover.vue.d.ts +26 -26
- package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +3 -3
- package/dist/types/components/popover/tippy_utils.d.ts +2 -3
- package/dist/types/components/popover/tippy_utils.d.ts.map +1 -1
- package/dist/types/components/radio/radio.vue.d.ts +6 -6
- package/dist/types/components/radio_group/radio_group.vue.d.ts +2 -2
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +22 -22
- package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +22 -22
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +22 -22
- package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandComponent.vue.d.ts +22 -22
- package/dist/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts +1 -1
- package/dist/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +7 -12
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
- package/dist/types/components/root_layout/root_layout.vue.d.ts +15 -15
- package/dist/types/components/scroller/modules/core_scroller.vue.d.ts +26 -16
- package/dist/types/components/scroller/modules/core_scroller.vue.d.ts.map +1 -1
- package/dist/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
- package/dist/types/components/scroller/scroller.vue.d.ts +245 -12
- package/dist/types/components/scroller/scroller.vue.d.ts.map +1 -1
- package/dist/types/components/select_menu/select_menu.vue.d.ts +13 -13
- package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
- package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
- package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +4 -4
- package/dist/types/components/skeleton/skeleton-text.vue.d.ts +1 -1
- package/dist/types/components/skeleton/skeleton.vue.d.ts +1 -1
- package/dist/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts +3 -3
- package/dist/types/components/split_button/split_button.vue.d.ts +3 -3
- package/dist/types/components/tab/tab.vue.d.ts +3 -3
- package/dist/types/components/tab/tab_group.vue.d.ts +3 -3
- package/dist/types/components/tab/tab_panel.vue.d.ts +3 -3
- package/dist/types/components/tab/tab_panel.vue.d.ts.map +1 -1
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +1 -1
- package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +1 -30
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +1 -1
- package/dist/types/components/toast/toast.vue.d.ts +4 -4
- package/dist/types/components/toast/toast_constants.d.ts.map +1 -1
- package/dist/types/components/toggle/toggle.vue.d.ts +7 -7
- package/dist/types/components/tooltip/tooltip.vue.d.ts +10 -10
- package/dist/types/components/tooltip/tooltip_constants.d.ts.map +1 -1
- package/dist/types/components/validation_messages/validation_messages.vue.d.ts +0 -1
- package/dist/types/components/validation_messages/validation_messages.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +7 -7
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +7 -7
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +9 -9
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +1 -30
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/types/recipes/cards/ivr_node/ivr_node_constants.d.ts.map +1 -1
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +9 -9
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +9 -241
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/editor_constants.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +7 -36
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row_constants.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +22 -22
- package/dist/types/recipes/conversation_view/message_input/last_active_nodes.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +7 -7
- package/dist/types/recipes/eslint.config.d.ts +8 -0
- package/dist/types/recipes/eslint.config.d.ts.map +1 -0
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +1 -1
- package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -30
- package/package.json +7 -7
|
@@ -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-bind=\"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 v-model:open=\"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 @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($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=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\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=\"hasSlotContent($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, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_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 hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: 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","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","t","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_cache","_createSlots","_normalizeClass","_component_combobox_loading_list","_normalizeProps","_component_combobox_empty_list"],"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-bind=\"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 v-model:open=\"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 @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($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=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\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=\"hasSlotContent($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, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_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 hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: 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","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","t","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_cache","_createSlots","_normalizeClass","_component_combobox_loading_list","_normalizeProps","_component_combobox_empty_list"],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import _ from "../combobox/combobox-loading-list.js";
|
|
2
2
|
import C from "../combobox/combobox-empty-list.js";
|
|
3
|
-
import {
|
|
4
|
-
import { resolveComponent as r,
|
|
3
|
+
import { hasSlotContent as v, getUniqueString as g } from "../../common/utils/index.js";
|
|
4
|
+
import { resolveComponent as r, createBlock as f, openBlock as p, mergeProps as c, withCtx as l, createVNode as E, createSlots as P, createElementVNode as a, normalizeClass as A, renderSlot as d, normalizeProps as D, withKeys as y } from "vue";
|
|
5
5
|
import { _ as B } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
-
import k from "../
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import { POPOVER_CONTENT_WIDTHS as k, POPOVER_APPEND_TO_VALUES as F } from "../popover/popover-constants.js";
|
|
7
|
+
import W from "../popover/popover.js";
|
|
8
|
+
import I from "../combobox/combobox.js";
|
|
9
9
|
import { DROPDOWN_PADDING_CLASSES as S } from "../dropdown/dropdown-constants.js";
|
|
10
|
-
import {
|
|
10
|
+
import { COMBOBOX_LABEL_SIZES as M } from "../combobox/combobox-constants.js";
|
|
11
11
|
const N = {
|
|
12
12
|
compatConfig: { MODE: 3 },
|
|
13
13
|
name: "DtRecipeComboboxWithPopover",
|
|
14
14
|
components: {
|
|
15
|
-
DtCombobox:
|
|
16
|
-
DtPopover:
|
|
15
|
+
DtCombobox: I,
|
|
16
|
+
DtPopover: W,
|
|
17
17
|
ComboboxLoadingList: _,
|
|
18
18
|
ComboboxEmptyList: C
|
|
19
19
|
},
|
|
@@ -40,7 +40,7 @@ const N = {
|
|
|
40
40
|
size: {
|
|
41
41
|
type: String,
|
|
42
42
|
default: null,
|
|
43
|
-
validator: (t) => Object.values(
|
|
43
|
+
validator: (t) => Object.values(M).includes(t)
|
|
44
44
|
},
|
|
45
45
|
/**
|
|
46
46
|
* Description for the input
|
|
@@ -121,7 +121,7 @@ const N = {
|
|
|
121
121
|
contentWidth: {
|
|
122
122
|
type: String,
|
|
123
123
|
default: null,
|
|
124
|
-
validator: (t) =>
|
|
124
|
+
validator: (t) => k.includes(t)
|
|
125
125
|
},
|
|
126
126
|
/**
|
|
127
127
|
* If the list should be shown by pressing up or down arrow key on the input element.
|
|
@@ -183,7 +183,7 @@ const N = {
|
|
|
183
183
|
appendTo: {
|
|
184
184
|
type: [HTMLElement, String],
|
|
185
185
|
default: "body",
|
|
186
|
-
validator: (t) =>
|
|
186
|
+
validator: (t) => F.includes(t) || t instanceof HTMLElement
|
|
187
187
|
},
|
|
188
188
|
/**
|
|
189
189
|
* Named transition when the content display is toggled.
|
|
@@ -292,7 +292,7 @@ const N = {
|
|
|
292
292
|
}, H = ["id"], K = { ref: "header" }, T = ["onMouseleave", "onFocusout"], V = { ref: "footer" };
|
|
293
293
|
function z(t, o, e, m, i, n) {
|
|
294
294
|
const u = r("combobox-loading-list"), L = r("combobox-empty-list"), w = r("dt-popover"), x = r("dt-combobox");
|
|
295
|
-
return
|
|
295
|
+
return p(), f(x, c({
|
|
296
296
|
ref: "combobox",
|
|
297
297
|
loading: e.loading,
|
|
298
298
|
label: e.label,
|
|
@@ -359,7 +359,7 @@ function z(t, o, e, m, i, n) {
|
|
|
359
359
|
onMouseleave: b,
|
|
360
360
|
onFocusout: b
|
|
361
361
|
}, [
|
|
362
|
-
e.loading ? (
|
|
362
|
+
e.loading ? (p(), f(u, D(c({ key: 0 }, s)), null, 16)) : e.emptyList && e.emptyStateMessage ? (p(), f(L, c({ key: 1 }, s, { message: e.emptyStateMessage }), null, 16, ["message"])) : d(t.$slots, "list", {
|
|
363
363
|
key: 2,
|
|
364
364
|
listProps: s
|
|
365
365
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-with-popover.js","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-bind=\"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 v-model:open=\"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 @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($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=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\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=\"hasSlotContent($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, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_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 hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: 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","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","e","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_cache","_createSlots","_normalizeClass","_component_combobox_loading_list","_normalizeProps","_component_combobox_empty_list"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox-with-popover.js","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-bind=\"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 v-model:open=\"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 @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($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=\"[\n 'd-recipe-combobox-with-popover__list',\n DROPDOWN_PADDING_CLASSES[padding],\n listClass,\n ]\"\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=\"hasSlotContent($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, COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_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 hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: 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","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","COMBOBOX_LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","e","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_cache","_createSlots","_normalizeClass","_component_combobox_loading_list","_normalizeProps","_component_combobox_empty_list"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/utils/index.cjs"),p=require("@dialpad/dialtone-icons/vue3"),h=require("../../localization/index.cjs"),e=require("vue"),m=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),f=require("../
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/utils/index.cjs"),p=require("@dialpad/dialtone-icons/vue3"),h=require("../../localization/index.cjs"),e=require("vue"),m=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),f=require("../emoji-text-wrapper/emoji-text-wrapper.cjs"),w=require("../badge/badge.cjs"),C=require("../button/button.cjs"),v={compatConfig:{MODE:3},name:"DtRecipeContactCentersRow",components:{DtButton:C.default,DtBadge:w.default,DtEmojiTextWrapper:f.default,DtIconHeadphones:p.DtIconHeadphones,DtIconChevronDown:p.DtIconChevronDown},inheritAttrs:!1,props:{ariaLabel:{type:String,default:""},description:{type:String,required:!0},selected:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1},unreadCount:{type:String,default:null,validator(t){return t?/^\d+\+?$/.test(t):!0}}},emits:["click","click-menu"],data(){return{labelWidth:"auto",i18n:new h.DialtoneLocalization}},computed:{leftbarContactCentersRowClasses(){return["d-recipe-leftbar-row","d-recipe-leftbar-row--contact-centers",{"d-recipe-leftbar-row__unread-count":this.showUnreadCount,"d-recipe-leftbar-row--selected":this.selected}]},getAriaLabel(){const t=isNaN(this.unreadCount)?this.unreadCount:Number(this.unreadCount);return this.ariaLabel?this.ariaLabel:a.safeConcatStrings([this.description,this.i18n.$t("DIALTONE_UNREAD_MESSAGE_COUNT_TEXT",{unreadCount:t})])},contactRowListeners(){return a.extractVueListeners(this.$attrs)},showUnreadCount(){return!!this.unreadCount},menuButtonLabel(){return this.i18n.$t("DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL")}},watch:{$props:{deep:!0,async handler(){await this.$nextTick(),this.adjustLabelWidth()}}},mounted(){this.resizeObserver=new ResizeObserver(this.adjustLabelWidth),this.resizeObserver.observe(a.returnFirstEl(this.$el)),this.adjustLabelWidth()},beforeUnmount:function(){this.resizeObserver.disconnect()},methods:{removeClassStyleAttrs:a.removeClassStyleAttrs,addClassStyleAttrs:a.addClassStyleAttrs,adjustLabelWidth(){var i,r,s,l,d,c;const t=((r=(i=a.returnFirstEl(this.$el))==null?void 0:i.querySelector(".d-recipe-leftbar-row__primary"))==null?void 0:r.clientWidth)||0,o=((l=(s=a.returnFirstEl(this.$el))==null?void 0:s.querySelector(".d-recipe-leftbar-row__omega"))==null?void 0:l.clientWidth)||0,n=((c=(d=a.returnFirstEl(this.$el))==null?void 0:d.querySelector(".d-recipe-leftbar-row__alpha"))==null?void 0:c.clientWidth)||0,_=12;this.labelWidth=t-(o+n+_)+"px"}}},g=["data-qa","aria-label","title","href"],y={class:"d-recipe-leftbar-row__alpha"},N={key:0,class:"d-recipe-leftbar-row__omega"},E={class:"d-recipe-leftbar-row__action-container"},S={class:"d-recipe-leftbar-row__bottom"};function q(t,o,n,_,i,r){const s=e.resolveComponent("dt-icon-headphones"),l=e.resolveComponent("dt-emoji-text-wrapper"),d=e.resolveComponent("dt-badge"),c=e.resolveComponent("dt-icon-chevron-down"),b=e.resolveComponent("dt-button");return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:["d-recipe-leftbar-row__container",{"d-recipe-leftbar-row__container--off-duty":t.$slots.timer}]},r.addClassStyleAttrs(t.$attrs)),[e.createElementVNode("div",{class:e.normalizeClass(r.leftbarContactCentersRowClasses),"data-qa":"dt-recipe-contact-centers-row"},[e.createElementVNode("a",e.mergeProps({class:"d-recipe-leftbar-row__primary","data-qa":t.$attrs["data-qa"]??"d-recipe-leftbar-row-link","aria-label":r.getAriaLabel,title:n.description,href:t.$attrs.href??"javascript:void(0)"},r.removeClassStyleAttrs(t.$attrs),e.toHandlers(r.contactRowListeners,!0),{onClick:o[0]||(o[0]=u=>t.$emit("click",u))}),[e.createElementVNode("div",y,[e.createVNode(s,{size:"300","data-qa":"dt-recipe-leftbar-row-icon"})]),e.createElementVNode("div",{class:"d-recipe-leftbar-row__label",style:e.normalizeStyle(`flex-basis: ${i.labelWidth}`)},[e.createVNode(l,{class:"d-recipe-leftbar-row__description","data-qa":"dt-recipe-leftbar-row-description",size:"200"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.description),1)]),_:1})],4)],16,g),n.hideActions?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",N,[e.renderSlot(t.$slots,"right"),e.createElementVNode("div",E,[r.showUnreadCount?(e.openBlock(),e.createBlock(d,{key:0,class:"d-recipe-leftbar-row__unread-badge","data-qa":"dt-recipe-leftbar-row-unread-badge",kind:"count",type:"bulletin"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.unreadCount),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(b,{class:"d-recipe-leftbar-row__action","data-qa":"dt-recipe-leftbar-row-action-button","aria-label":r.menuButtonLabel,title:r.menuButtonLabel,importance:"clear",size:"xs",circle:"",onClick:o[1]||(o[1]=e.withModifiers(u=>t.$emit("click-menu",u),["stop"]))},{icon:e.withCtx(()=>[e.createVNode(c,{size:"100"})]),_:1},8,["aria-label","title"])])]))],2),e.createElementVNode("div",S,[e.renderSlot(t.$slots,"timer")])],16)}const L=m._(v,[["render",q]]);exports.default=L;
|
|
2
2
|
//# sourceMappingURL=contact-centers-row.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-centers-row.cjs","sources":["../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","omegaWidth","alphaWidth","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"ubAuFKA,EAAU,CACb,aAAc,CAAE,KAAM,CAAG,EACzB,KAAM,4BAEN,WAAY,CACV,SAAAC,EAAQ,QACR,QAAAC,EAAO,QACP,mBAAAC,EAAkB,QAClB,iBAAAC,EAAgB,iBAChB,kBAAAC,EAAiB,iBAClB,EAED,aAAc,GAEd,MAAO,CAIL,UAAW,CACT,KAAM,OACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,OACN,SAAU,EACX,EAKD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,QACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,OACN,QAAS,KACT,UAAWC,EAAO,CAChB,OAAKA,EACE,WAAW,KAAKA,CAAK,EADT,EAEpB,CACF,CACF,EAED,MAAO,CAOL,QAQA,YACD,EAED,MAAQ,CACN,MAAO,CACL,WAAY,OACZ,KAAM,IAAIC,EAAAA,qBAEb,EAED,SAAU,CACR,iCAAmC,CACjC,MAAO,CACL,uBACA,wCACA,CACE,qCAAsC,KAAK,gBAC3C,iCAAkC,KAAK,QACxC,EAEJ,EAED,cAAgB,CACd,MAAMC,EAAQ,MAAM,KAAK,WAAW,EAAI,KAAK,YAAc,OAAO,KAAK,WAAW,EAClF,OAAO,KAAK,UACR,KAAK,UACLC,oBAAkB,CAClB,KAAK,YACL,KAAK,KAAK,GAAG,qCAAsC,CAAE,YAAaD,EAAO,CAC3E,CAAC,CACJ,EAED,qBAAuB,CACrB,OAAOE,EAAmB,oBAAC,KAAK,MAAM,CACvC,EAED,iBAAmB,CACjB,MAAO,CAAC,CAAC,KAAK,WACf,EAED,iBAAmB,CACjB,OAAO,KAAK,KAAK,GAAG,gDAAgD,CACrE,CACF,EAED,MAAO,CACL,OAAQ,CACN,KAAM,GACN,MAAM,SAAW,CACf,MAAM,KAAK,YACX,KAAK,iBAAgB,CACtB,CACF,CACF,EAED,SAAW,CACT,KAAK,eAAiB,IAAI,eAAe,KAAK,gBAAgB,EAC9D,KAAK,eAAe,QAAQC,EAAa,cAAC,KAAK,GAAG,CAAC,EACnD,KAAK,iBAAgB,CACtB,EAED,cAAe,UAAY,CACzB,KAAK,eAAe,YACrB,EAED,QAAS,CACP,sBAAAC,EAAqB,sBACrB,mBAAAC,EAAkB,mBAElB,kBAAoB,iBAClB,MAAMC,IAAaH,GAAAA,EAAAA,gBAAc,KAAK,GAAG,IAAtBA,YAAAA,EAAyB,cAAc,oCAAvCA,YAAAA,EAA0E,cAAe,EACtGI,IAAaJ,GAAAA,EAAAA,gBAAc,KAAK,GAAG,IAAtBA,YAAAA,EAAyB,cAAc,kCAAvCA,YAAAA,EAAwE,cAAe,EACpGK,IAAaL,GAAAA,EAAAA,gBAAc,KAAK,GAAG,IAAtBA,YAAAA,EAAyB,cAAc,kCAAvCA,YAAAA,EAAwE,cAAe,EACpGM,EAAW,GACjB,KAAK,WAAaH,GAAcC,EAAaC,EAAaC,GAAY,IACvE,CACF,CACH,EA/OAC,EAAA,CAAA,UAAA,aAAA,QAAA,MAAA,EAsBaC,EAAA,CAAA,MAAM,6BAA6B,KAtBhD,IAAA,EA2CQ,MAAM,+BAGDC,EAAA,CAAA,MAAM,wCAAwC,EA2BlDC,EAAA,CAAA,MAAM,8BAA8B,yOAxE3C,OAAAC,YAAA,EAAAC,qBA2EM,MA3ENC,EAAAA,WA2EM,CA1EH,MAAK,mCAAkG,CAAA,4CAAAC,EAAA,OAAO,KAAK,EAI5G,EAAAC,EAAA,mBAAmBD,EAAM,MAAA,CAAA,EAAA,CAEjCE,EAAAA,mBAgEM,MAAA,CA/DH,MATPC,EAAAA,eAScF,EAA+B,+BAAA,EACvC,UAAQ,kCAERC,EAAA,mBA4BI,IA5BJH,aA4BI,CA3BF,MAAM,gCACL,UAASC,EAAM,OAAA,SAAA,GAAA,4BACf,aAAYC,EAAY,aACxB,MAAOG,EAAW,YAClB,KAAMJ,EAAM,OAAC,MAAI,oBACV,EAAAC,EAAA,sBAAsBD,EAAA,MAAM,EACpCK,EAAAA,WAA0BJ,EAAD,oBAAA,EAAA,EAAA,CACxB,QAAKK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEP,EAAK,MAAA,QAAUO,CAAM,MAE7BL,EAAA,mBAKM,MALNR,EAKM,CAJJc,EAAAA,YAGEC,EAAA,CAFA,KAAK,MACL,UAAQ,iCAGZP,EAAAA,mBAWM,MAAA,CAVJ,MAAM,8BACL,MA9BXQ,gCA8BiCC,EAAU,UAAA,EAAA,IAEjCH,EAAAA,YAMwBI,EAAA,CALtB,MAAM,oCACN,UAAQ,oCACR,KAAK,QAnCjB,QAAAC,EAAA,QAqCY,IAAiB,CArC7BC,EAAAA,gBAAAC,EAAAA,gBAqCeX,EAAW,WAAA,EAAA,CAAA,IArC1B,EAAA,OAAA,EAAA,GAAAX,CAAA,EA0CeW,EAAW,YA1C1BY,EAAA,mBAAA,GAAA,EAAA,GAyCMnB,EAAAA,YAAAC,EAAAA,mBA8BM,MA9BNmB,EA8BM,CA1BJC,aAAqBlB,EAAA,OAAA,OAAA,EACrBE,EAAA,mBAwBM,MAxBNP,EAwBM,CAtBIM,EAAe,+BADvBkB,EAQW,YAAAC,EAAA,CAvDrB,IAAA,EAiDY,MAAM,qCACN,UAAQ,qCACR,KAAK,QACL,KAAK,aApDjB,QAAAP,EAAA,QAsDY,IAAiB,CAtD7BC,EAAAA,gBAAAC,EAAAA,gBAsDeX,EAAW,WAAA,EAAA,CAAA,IAtD1B,EAAA,KAAAY,EAAA,mBAAA,GAAA,EAAA,EAwDUR,EAAAA,YAaYa,EAAA,CAZV,MAAM,+BACN,UAAQ,sCACP,aAAYpB,EAAe,gBAC3B,MAAOA,EAAe,gBACvB,WAAW,QACX,KAAK,KACL,OAAA,GACC,QAhEbK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAgB,gBAAAf,GAgEyBP,EAAK,MAAA,aAAeO,CAAM,EAAA,CAAA,MAAA,CAAA,KAE5B,eACT,IAAmC,CAAnCC,EAAAA,YAAmCe,EAAA,CAAb,KAAK,KAAK,CAAA,IAnE9C,EAAA,sCAyEIrB,EAAA,mBAEM,MAFNN,EAEM,CADJsB,aAAqBlB,EAAA,OAAA,OAAA"}
|
|
1
|
+
{"version":3,"file":"contact-centers-row.cjs","sources":["../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","omegaWidth","alphaWidth","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { addClassStyleAttrs as S, removeClassStyleAttrs as A, returnFirstEl as u, extractVueListeners as E, safeConcatStrings as N } from "../../common/utils/index.js";
|
|
2
|
+
import { DtIconChevronDown as W, DtIconHeadphones as k } from "@dialpad/dialtone-icons/vue3";
|
|
3
3
|
import { DialtoneLocalization as D } from "../../localization/index.js";
|
|
4
|
-
import { resolveComponent as i,
|
|
4
|
+
import { resolveComponent as i, createElementBlock as f, openBlock as h, mergeProps as w, createElementVNode as o, normalizeClass as T, createCommentVNode as C, toHandlers as q, createVNode as _, normalizeStyle as B, withCtx as b, createTextVNode as y, toDisplayString as v, renderSlot as L, createBlock as $, withModifiers as z } from "vue";
|
|
5
5
|
import { _ as O } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
-
import R from "../
|
|
6
|
+
import R from "../emoji-text-wrapper/emoji-text-wrapper.js";
|
|
7
7
|
import j from "../badge/badge.js";
|
|
8
|
-
import U from "../
|
|
8
|
+
import U from "../button/button.js";
|
|
9
9
|
const V = {
|
|
10
10
|
compatConfig: { MODE: 3 },
|
|
11
11
|
name: "DtRecipeContactCentersRow",
|
|
12
12
|
components: {
|
|
13
|
-
DtButton:
|
|
13
|
+
DtButton: U,
|
|
14
14
|
DtBadge: j,
|
|
15
|
-
DtEmojiTextWrapper:
|
|
16
|
-
DtIconHeadphones:
|
|
17
|
-
DtIconChevronDown:
|
|
15
|
+
DtEmojiTextWrapper: R,
|
|
16
|
+
DtIconHeadphones: k,
|
|
17
|
+
DtIconChevronDown: W
|
|
18
18
|
},
|
|
19
19
|
inheritAttrs: !1,
|
|
20
20
|
props: {
|
|
@@ -92,13 +92,13 @@ const V = {
|
|
|
92
92
|
},
|
|
93
93
|
getAriaLabel() {
|
|
94
94
|
const e = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);
|
|
95
|
-
return this.ariaLabel ? this.ariaLabel :
|
|
95
|
+
return this.ariaLabel ? this.ariaLabel : N([
|
|
96
96
|
this.description,
|
|
97
97
|
this.i18n.$t("DIALTONE_UNREAD_MESSAGE_COUNT_TEXT", { unreadCount: e })
|
|
98
98
|
]);
|
|
99
99
|
},
|
|
100
100
|
contactRowListeners() {
|
|
101
|
-
return
|
|
101
|
+
return E(this.$attrs);
|
|
102
102
|
},
|
|
103
103
|
showUnreadCount() {
|
|
104
104
|
return !!this.unreadCount;
|
|
@@ -122,8 +122,8 @@ const V = {
|
|
|
122
122
|
this.resizeObserver.disconnect();
|
|
123
123
|
},
|
|
124
124
|
methods: {
|
|
125
|
-
removeClassStyleAttrs:
|
|
126
|
-
addClassStyleAttrs:
|
|
125
|
+
removeClassStyleAttrs: A,
|
|
126
|
+
addClassStyleAttrs: S,
|
|
127
127
|
adjustLabelWidth() {
|
|
128
128
|
var n, t, s, l, d, c;
|
|
129
129
|
const e = ((t = (n = u(this.$el)) == null ? void 0 : n.querySelector(".d-recipe-leftbar-row__primary")) == null ? void 0 : t.clientWidth) || 0, r = ((l = (s = u(this.$el)) == null ? void 0 : s.querySelector(".d-recipe-leftbar-row__omega")) == null ? void 0 : l.clientWidth) || 0, a = ((c = (d = u(this.$el)) == null ? void 0 : d.querySelector(".d-recipe-leftbar-row__alpha")) == null ? void 0 : c.clientWidth) || 0, m = 12;
|
|
@@ -171,14 +171,14 @@ function G(e, r, a, m, n, t) {
|
|
|
171
171
|
size: "200"
|
|
172
172
|
}, {
|
|
173
173
|
default: b(() => [
|
|
174
|
-
|
|
174
|
+
y(v(a.description), 1)
|
|
175
175
|
]),
|
|
176
176
|
_: 1
|
|
177
177
|
})
|
|
178
178
|
], 4)
|
|
179
179
|
], 16, x),
|
|
180
|
-
a.hideActions ?
|
|
181
|
-
|
|
180
|
+
a.hideActions ? C("", !0) : (h(), f("div", M, [
|
|
181
|
+
L(e.$slots, "right"),
|
|
182
182
|
o("div", H, [
|
|
183
183
|
t.showUnreadCount ? (h(), $(d, {
|
|
184
184
|
key: 0,
|
|
@@ -188,10 +188,10 @@ function G(e, r, a, m, n, t) {
|
|
|
188
188
|
type: "bulletin"
|
|
189
189
|
}, {
|
|
190
190
|
default: b(() => [
|
|
191
|
-
|
|
191
|
+
y(v(a.unreadCount), 1)
|
|
192
192
|
]),
|
|
193
193
|
_: 1
|
|
194
|
-
})) :
|
|
194
|
+
})) : C("", !0),
|
|
195
195
|
_(g, {
|
|
196
196
|
class: "d-recipe-leftbar-row__action",
|
|
197
197
|
"data-qa": "dt-recipe-leftbar-row-action-button",
|
|
@@ -211,7 +211,7 @@ function G(e, r, a, m, n, t) {
|
|
|
211
211
|
]))
|
|
212
212
|
], 2),
|
|
213
213
|
o("div", F, [
|
|
214
|
-
|
|
214
|
+
L(e.$slots, "timer")
|
|
215
215
|
])
|
|
216
216
|
], 16);
|
|
217
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-centers-row.js","sources":["../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","_b","_a","omegaWidth","_d","_c","alphaWidth","_f","_e","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contact-centers-row.js","sources":["../../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-recipe-leftbar-row__container',\n { 'd-recipe-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"d-recipe-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'd-recipe-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"d-recipe-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-recipe-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"d-recipe-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"d-recipe-leftbar-row__description\"\n data-qa=\"dt-recipe-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"d-recipe-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"d-recipe-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"d-recipe-leftbar-row__unread-badge\"\n data-qa=\"dt-recipe-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"d-recipe-leftbar-row__action\"\n data-qa=\"dt-recipe-leftbar-row-action-button\"\n :aria-label=\"menuButtonLabel\"\n :title=\"menuButtonLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"d-recipe-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings, removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiTextWrapper } from '@/components/emoji_text_wrapper';\nimport { DtIconChevronDown, DtIconHeadphones } from '@dialpad/dialtone-icons/vue3';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n validator (value) {\n if (!value) return true;\n return /^\\d+\\+?$/.test(value);\n },\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'd-recipe-leftbar-row',\n 'd-recipe-leftbar-row--contact-centers',\n {\n 'd-recipe-leftbar-row__unread-count': this.showUnreadCount,\n 'd-recipe-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n const count = isNaN(this.unreadCount) ? this.unreadCount : Number(this.unreadCount);\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([\n this.description,\n this.i18n.$t('DIALTONE_UNREAD_MESSAGE_COUNT_TEXT', { unreadCount: count }),\n ]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n\n menuButtonLabel () {\n return this.i18n.$t('DIALTONE_CONTACT_CENTERS_ROW_MENU_BUTTON_LABEL');\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(returnFirstEl(this.$el));\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n adjustLabelWidth () {\n const labelWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = returnFirstEl(this.$el)?.querySelector('.d-recipe-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtBadge","DtEmojiTextWrapper","DtIconHeadphones","DtIconChevronDown","value","DialtoneLocalization","count","safeConcatStrings","extractVueListeners","returnFirstEl","removeClassStyleAttrs","addClassStyleAttrs","labelWidth","_b","_a","omegaWidth","_d","_c","alphaWidth","_f","_e","paddings","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_mergeProps","_ctx","$options","_createElementVNode","_normalizeClass","$props","_toHandlers","_cache","$event","_createVNode","_component_dt_icon_headphones","_normalizeStyle","$data","_component_dt_emoji_text_wrapper","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_3","_renderSlot","_createBlock","_component_dt_badge","_component_dt_button","_withModifiers","_component_dt_icon_chevron_down"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-info.cjs","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_1","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createSlots","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","_withCtx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"2QA2HKA,EAAU,CACb,aAAc,CAAE,KAAM,
|
|
1
|
+
{"version":3,"file":"contact-info.cjs","sources":["../../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"d-recipe-contact-info\"\n content-class=\"d-recipe-contact-info__content\"\n right-class=\"d-recipe-contact-info__right\"\n unstyled\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"d-recipe-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"d-recipe-contact-info__avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[\n {\n 'd-recipe-contact-info__avatar-stacked': index > 0,\n 'd-recipe-contact-info__avatar-halo': !!avatar.halo,\n },\n ]\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"avatar.icon\"\n #overlayIcon\n >\n <component :is=\"avatar.icon\" />\n </template>\n </dt-avatar>\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :seed=\"avatarSeed\"\n :color=\"avatarColor\"\n :presence=\"presence\"\n >\n <template #icon=\"{ iconSize }\">\n <!-- @slot Slot for avatar icon in a list -->\n <slot\n name=\"avatarIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n </dt-avatar>\n </button>\n </template>\n <template #default>\n <div\n class=\"d-recipe-contact-info__header\"\n data-qa=\"contact-info-header\"\n >\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div\n class=\"d-recipe-contact-info__subtitle\"\n data-qa=\"contact-info-subtitle\"\n >\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div\n class=\"d-recipe-contact-info__bottom\"\n data-qa=\"contact-info-bottom\"\n >\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_1","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createSlots","_createElementVNode","_hoisted_3","_renderSlot","_ctx","_hoisted_4","_withCtx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar","iconSize","_resolveDynamicComponent","_hoisted_5"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import g from "../item-layout/item-layout.js";
|
|
2
2
|
import h from "../avatar/avatar.js";
|
|
3
|
-
import { resolveComponent as m,
|
|
3
|
+
import { resolveComponent as m, createBlock as i, openBlock as n, createSlots as u, withCtx as o, createElementVNode as l, renderSlot as c, createElementBlock as _, Fragment as p, renderList as S, resolveDynamicComponent as k } from "vue";
|
|
4
4
|
import { _ as b } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
const C = {
|
|
6
6
|
compatConfig: { MODE: 3 },
|