@dialpad/dialtone-vue 3.145.1 → 3.146.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{dropdown-oA-_Gotg.js → dropdown-6HXkh24e.js} +40 -45
- package/dist/chunks/{dropdown-oA-_Gotg.js.map → dropdown-6HXkh24e.js.map} +1 -1
- package/dist/chunks/{dropdown-p-Azgwov.js → dropdown-QNvAb160.js} +40 -45
- package/dist/chunks/{dropdown-p-Azgwov.js.map → dropdown-QNvAb160.js.map} +1 -1
- package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
- package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
- package/dist/chunks/{icon_constants-QYpmdE0R.js → icon_constants-bvhFNOPu.js} +3 -2
- package/dist/chunks/icon_constants-bvhFNOPu.js.map +1 -0
- package/dist/chunks/{icon_constants-Dy4MEUJL.js → icon_constants-gIQj4mf7.js} +3 -2
- package/dist/chunks/icon_constants-gIQj4mf7.js.map +1 -0
- package/dist/chunks/{index-b_MgDylR.js → index-T15rAIdX.js} +71 -84
- package/dist/chunks/{index-4qgKeErp.js.map → index-T15rAIdX.js.map} +1 -1
- package/dist/chunks/{index-GVD15GIB.js → index-dfdrE-3M.js} +3 -12
- package/dist/chunks/{index-GVD15GIB.js.map → index-dfdrE-3M.js.map} +1 -1
- package/dist/chunks/{index-lu2o2f4r.js → index-fEp0B-5Z.js} +3 -12
- package/dist/chunks/{index-lu2o2f4r.js.map → index-fEp0B-5Z.js.map} +1 -1
- package/dist/chunks/{index-4qgKeErp.js → index-ouh7Bvm-.js} +71 -84
- package/dist/chunks/{index-b_MgDylR.js.map → index-ouh7Bvm-.js.map} +1 -1
- package/dist/chunks/{input-NmYDD5bn.js → input-HIysg24t.js} +3 -9
- package/dist/chunks/{input-ttnte8zB.js.map → input-HIysg24t.js.map} +1 -1
- package/dist/chunks/{input-ttnte8zB.js → input-dLLo3Wtg.js} +3 -9
- package/dist/chunks/{input-NmYDD5bn.js.map → input-dLLo3Wtg.js.map} +1 -1
- package/dist/chunks/{input_group-jWnq2DJT.js → input_group-hV1WT2it.js} +4 -2
- package/dist/chunks/{input_group-M-D25pOJ.js.map → input_group-hV1WT2it.js.map} +1 -1
- package/dist/chunks/{input_group-M-D25pOJ.js → input_group-rE6nhye8.js} +4 -2
- package/dist/chunks/{input_group-jWnq2DJT.js.map → input_group-rE6nhye8.js.map} +1 -1
- package/dist/chunks/{keyboard_list_navigation-ScXhrxya.js → keyboard_list_navigation-YIqTuw1W.js} +6 -5
- package/dist/chunks/{keyboard_list_navigation-fJnl_Iox.js.map → keyboard_list_navigation-YIqTuw1W.js.map} +1 -1
- package/dist/chunks/{keyboard_list_navigation-fJnl_Iox.js → keyboard_list_navigation-x3D6RcC7.js} +6 -5
- package/dist/chunks/{keyboard_list_navigation-ScXhrxya.js.map → keyboard_list_navigation-x3D6RcC7.js.map} +1 -1
- package/dist/chunks/link_constants-AfTWrr-n.js.map +1 -1
- package/dist/chunks/link_constants-x8NwdqmA.js.map +1 -1
- package/dist/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
- package/dist/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
- package/dist/chunks/{modal-XOr4kiNZ.js → modal-8X6poIZW.js} +4 -2
- package/dist/chunks/{modal-XOr4kiNZ.js.map → modal-8X6poIZW.js.map} +1 -1
- package/dist/chunks/{modal-VgxXAQFP.js → modal-OaWxzqNt.js} +4 -2
- package/dist/chunks/{modal-VgxXAQFP.js.map → modal-OaWxzqNt.js.map} +1 -1
- package/dist/chunks/{notice_action-WTucGhvr.js → notice_action-3ed0uIMN.js} +40 -61
- package/dist/chunks/{notice_action-p-ePanW_.js.map → notice_action-3ed0uIMN.js.map} +1 -1
- package/dist/chunks/{notice_action-p-ePanW_.js → notice_action-e08Lw5W6.js} +40 -61
- package/dist/chunks/{notice_action-WTucGhvr.js.map → notice_action-e08Lw5W6.js.map} +1 -1
- package/dist/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
- package/dist/chunks/notice_constants-UXo9e3bS.js.map +1 -1
- package/dist/chunks/{popover_constants-WsOUIY-m.js → popover_constants-6YkPPbnk.js} +26 -47
- package/dist/chunks/{popover_constants-XnGWXaxX.js.map → popover_constants-6YkPPbnk.js.map} +1 -1
- package/dist/chunks/{popover_constants-XnGWXaxX.js → popover_constants-h9MD6WUt.js} +26 -47
- package/dist/chunks/{popover_constants-WsOUIY-m.js.map → popover_constants-h9MD6WUt.js.map} +1 -1
- package/dist/chunks/{sr_only_close_button-3EdsV-dH.js → sr_only_close_button-Ji3Zlts6.js} +4 -4
- package/dist/chunks/{sr_only_close_button-3EdsV-dH.js.map → sr_only_close_button-Ji3Zlts6.js.map} +1 -1
- package/dist/chunks/{sr_only_close_button-xGrHFjwA.js → sr_only_close_button-gKr0Vlbz.js} +4 -4
- package/dist/chunks/{sr_only_close_button-xGrHFjwA.js.map → sr_only_close_button-gKr0Vlbz.js.map} +1 -1
- package/dist/chunks/stack_constants-HraCekPm.js.map +1 -1
- package/dist/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
- package/dist/chunks/{tab-qc3f42Yp.js → tab-X7IvNGTl.js} +46 -49
- package/dist/chunks/{tab-qc3f42Yp.js.map → tab-X7IvNGTl.js.map} +1 -1
- package/dist/chunks/{tab-RTDgnD9-.js → tab-aD6t0MNo.js} +46 -49
- package/dist/chunks/{tab-RTDgnD9-.js.map → tab-aD6t0MNo.js.map} +1 -1
- package/dist/common/constants.cjs.map +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/dates.cjs +3 -1
- package/dist/common/dates.cjs.map +1 -1
- package/dist/common/dates.js +3 -1
- package/dist/common/dates.js.map +1 -1
- package/dist/common/emoji.cjs +1 -1
- package/dist/common/emoji.js +1 -1
- package/dist/common/mixins.cjs +3 -3
- package/dist/common/mixins.js +3 -3
- package/dist/common/utils.cjs +11 -45
- package/dist/common/utils.cjs.map +1 -1
- package/dist/common/utils.js +11 -45
- package/dist/common/utils.js.map +1 -1
- package/dist/common/validators.cjs.map +1 -1
- package/dist/common/validators.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.cjs +12 -12
- package/dist/dialtone-vue.js +12 -12
- package/dist/lib/attachment-carousel.cjs +87 -108
- package/dist/lib/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel.js +87 -108
- package/dist/lib/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar.cjs +56 -88
- package/dist/lib/avatar.cjs.map +1 -1
- package/dist/lib/avatar.js +56 -88
- package/dist/lib/avatar.js.map +1 -1
- package/dist/lib/badge.cjs +15 -31
- package/dist/lib/badge.cjs.map +1 -1
- package/dist/lib/badge.js +15 -31
- package/dist/lib/badge.js.map +1 -1
- package/dist/lib/banner.cjs +38 -56
- package/dist/lib/banner.cjs.map +1 -1
- package/dist/lib/banner.js +38 -56
- package/dist/lib/banner.js.map +1 -1
- package/dist/lib/breadcrumbs.cjs +25 -36
- package/dist/lib/breadcrumbs.cjs.map +1 -1
- package/dist/lib/breadcrumbs.js +25 -36
- package/dist/lib/breadcrumbs.js.map +1 -1
- package/dist/lib/button-group.cjs +2 -7
- package/dist/lib/button-group.cjs.map +1 -1
- package/dist/lib/button-group.js +2 -7
- package/dist/lib/button-group.js.map +1 -1
- package/dist/lib/button.cjs +44 -69
- package/dist/lib/button.cjs.map +1 -1
- package/dist/lib/button.js +44 -69
- package/dist/lib/button.js.map +1 -1
- package/dist/lib/callbar-button-with-popover.cjs +68 -81
- package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/lib/callbar-button-with-popover.js +68 -81
- package/dist/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/lib/callbar-button.cjs +32 -45
- package/dist/lib/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button.js +32 -45
- package/dist/lib/callbar-button.js.map +1 -1
- package/dist/lib/callbox.cjs +38 -57
- package/dist/lib/callbox.cjs.map +1 -1
- package/dist/lib/callbox.js +38 -57
- package/dist/lib/callbox.js.map +1 -1
- package/dist/lib/card.cjs +13 -33
- package/dist/lib/card.cjs.map +1 -1
- package/dist/lib/card.js +13 -33
- package/dist/lib/card.js.map +1 -1
- package/dist/lib/checkbox-group.cjs +2 -5
- package/dist/lib/checkbox-group.cjs.map +1 -1
- package/dist/lib/checkbox-group.js +2 -5
- package/dist/lib/checkbox-group.js.map +1 -1
- package/dist/lib/checkbox.cjs +41 -45
- package/dist/lib/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox.js +41 -45
- package/dist/lib/checkbox.js.map +1 -1
- package/dist/lib/chip.cjs +38 -53
- package/dist/lib/chip.cjs.map +1 -1
- package/dist/lib/chip.js +38 -53
- package/dist/lib/chip.js.map +1 -1
- package/dist/lib/codeblock.cjs +4 -6
- package/dist/lib/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock.js +4 -6
- package/dist/lib/codeblock.js.map +1 -1
- package/dist/lib/collapsible.cjs +62 -76
- package/dist/lib/collapsible.cjs.map +1 -1
- package/dist/lib/collapsible.js +62 -76
- package/dist/lib/collapsible.js.map +1 -1
- package/dist/lib/combobox-multi-select.cjs +75 -88
- package/dist/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select.js +75 -88
- package/dist/lib/combobox-multi-select.js.map +1 -1
- package/dist/lib/combobox-with-popover.cjs +77 -85
- package/dist/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/lib/combobox-with-popover.js +77 -85
- package/dist/lib/combobox-with-popover.js.map +1 -1
- package/dist/lib/combobox.cjs +3 -3
- package/dist/lib/combobox.js +3 -3
- package/dist/lib/contact-centers-row.cjs +65 -89
- package/dist/lib/contact-centers-row.cjs.map +1 -1
- package/dist/lib/contact-centers-row.js +65 -89
- package/dist/lib/contact-centers-row.js.map +1 -1
- package/dist/lib/contact-info.cjs +58 -73
- package/dist/lib/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info.js +58 -73
- package/dist/lib/contact-info.js.map +1 -1
- package/dist/lib/contact-row.cjs +37 -47
- package/dist/lib/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row.js +37 -47
- package/dist/lib/contact-row.js.map +1 -1
- package/dist/lib/datepicker.cjs +267 -263
- package/dist/lib/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker.js +267 -263
- package/dist/lib/datepicker.js.map +1 -1
- package/dist/lib/description-list.cjs +9 -14
- package/dist/lib/description-list.cjs.map +1 -1
- package/dist/lib/description-list.js +9 -14
- package/dist/lib/description-list.js.map +1 -1
- package/dist/lib/dropdown.cjs +6 -6
- package/dist/lib/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown.js +6 -6
- package/dist/lib/dropdown.js.map +1 -1
- package/dist/lib/editor.cjs +312 -249
- package/dist/lib/editor.cjs.map +1 -1
- package/dist/lib/editor.js +312 -249
- package/dist/lib/editor.js.map +1 -1
- package/dist/lib/emoji-picker.cjs +387 -419
- package/dist/lib/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker.js +387 -419
- package/dist/lib/emoji-picker.js.map +1 -1
- package/dist/lib/emoji-row.cjs +59 -69
- package/dist/lib/emoji-row.cjs.map +1 -1
- package/dist/lib/emoji-row.js +59 -69
- package/dist/lib/emoji-row.js.map +1 -1
- package/dist/lib/emoji-text-wrapper.cjs +13 -12
- package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/lib/emoji-text-wrapper.js +13 -12
- package/dist/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/emoji.cjs +19 -23
- package/dist/lib/emoji.cjs.map +1 -1
- package/dist/lib/emoji.js +19 -23
- package/dist/lib/emoji.js.map +1 -1
- package/dist/lib/empty-state.cjs +20 -30
- package/dist/lib/empty-state.cjs.map +1 -1
- package/dist/lib/empty-state.js +20 -30
- package/dist/lib/empty-state.js.map +1 -1
- package/dist/lib/feed-item-row.cjs +43 -74
- package/dist/lib/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row.js +43 -74
- package/dist/lib/feed-item-row.js.map +1 -1
- package/dist/lib/feed-pill.cjs +45 -55
- package/dist/lib/feed-pill.cjs.map +1 -1
- package/dist/lib/feed-pill.js +45 -55
- package/dist/lib/feed-pill.js.map +1 -1
- package/dist/lib/general-row.cjs +115 -165
- package/dist/lib/general-row.cjs.map +1 -1
- package/dist/lib/general-row.js +115 -165
- package/dist/lib/general-row.js.map +1 -1
- package/dist/lib/group-row.cjs +7 -9
- package/dist/lib/group-row.cjs.map +1 -1
- package/dist/lib/group-row.js +7 -9
- package/dist/lib/group-row.js.map +1 -1
- package/dist/lib/grouped-chip.cjs +27 -48
- package/dist/lib/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip.js +27 -48
- package/dist/lib/grouped-chip.js.map +1 -1
- package/dist/lib/hovercard.cjs +25 -33
- package/dist/lib/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard.js +25 -33
- package/dist/lib/hovercard.js.map +1 -1
- package/dist/lib/icon.cjs +1 -1
- package/dist/lib/icon.cjs.map +1 -1
- package/dist/lib/icon.js +1 -1
- package/dist/lib/icon.js.map +1 -1
- package/dist/lib/illustration.cjs +2 -1
- package/dist/lib/illustration.cjs.map +1 -1
- package/dist/lib/illustration.js +2 -1
- package/dist/lib/illustration.js.map +1 -1
- package/dist/lib/image-viewer.cjs +62 -66
- package/dist/lib/image-viewer.cjs.map +1 -1
- package/dist/lib/image-viewer.js +62 -66
- package/dist/lib/image-viewer.js.map +1 -1
- package/dist/lib/input-group.cjs +15 -19
- package/dist/lib/input-group.cjs.map +1 -1
- package/dist/lib/input-group.js +15 -19
- package/dist/lib/input-group.js.map +1 -1
- package/dist/lib/input.cjs +76 -104
- package/dist/lib/input.cjs.map +1 -1
- package/dist/lib/input.js +76 -104
- package/dist/lib/input.js.map +1 -1
- package/dist/lib/item-layout.cjs +10 -27
- package/dist/lib/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout.js +10 -27
- package/dist/lib/item-layout.js.map +1 -1
- package/dist/lib/ivr-node.cjs +80 -89
- package/dist/lib/ivr-node.cjs.map +1 -1
- package/dist/lib/ivr-node.js +80 -89
- package/dist/lib/ivr-node.js.map +1 -1
- package/dist/lib/keyboard-shortcut.cjs +26 -31
- package/dist/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut.js +26 -31
- package/dist/lib/keyboard-shortcut.js.map +1 -1
- package/dist/lib/lazy-show.cjs +6 -8
- package/dist/lib/lazy-show.cjs.map +1 -1
- package/dist/lib/lazy-show.js +6 -8
- package/dist/lib/lazy-show.js.map +1 -1
- package/dist/lib/link.cjs +2 -7
- package/dist/lib/link.cjs.map +1 -1
- package/dist/lib/link.js +2 -7
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/list-item-group.cjs +7 -14
- package/dist/lib/list-item-group.cjs.map +1 -1
- package/dist/lib/list-item-group.js +7 -14
- package/dist/lib/list-item-group.js.map +1 -1
- package/dist/lib/list-item.cjs +24 -25
- package/dist/lib/list-item.cjs.map +1 -1
- package/dist/lib/list-item.js +24 -25
- package/dist/lib/list-item.js.map +1 -1
- package/dist/lib/message-input.cjs +227 -264
- package/dist/lib/message-input.cjs.map +1 -1
- package/dist/lib/message-input.js +227 -264
- package/dist/lib/message-input.js.map +1 -1
- package/dist/lib/modal.cjs +59 -99
- package/dist/lib/modal.cjs.map +1 -1
- package/dist/lib/modal.js +59 -99
- package/dist/lib/modal.js.map +1 -1
- package/dist/lib/notice.cjs +33 -46
- package/dist/lib/notice.cjs.map +1 -1
- package/dist/lib/notice.js +33 -46
- package/dist/lib/notice.js.map +1 -1
- package/dist/lib/pagination.cjs +49 -61
- package/dist/lib/pagination.cjs.map +1 -1
- package/dist/lib/pagination.js +49 -61
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/popover.cjs +133 -156
- package/dist/lib/popover.cjs.map +1 -1
- package/dist/lib/popover.js +134 -157
- package/dist/lib/popover.js.map +1 -1
- package/dist/lib/presence.cjs +9 -17
- package/dist/lib/presence.cjs.map +1 -1
- package/dist/lib/presence.js +9 -17
- package/dist/lib/presence.js.map +1 -1
- package/dist/lib/radio-group.cjs +1 -1
- package/dist/lib/radio-group.cjs.map +1 -1
- package/dist/lib/radio-group.js +1 -1
- package/dist/lib/radio-group.js.map +1 -1
- package/dist/lib/radio.cjs +34 -41
- package/dist/lib/radio.cjs.map +1 -1
- package/dist/lib/radio.js +34 -41
- package/dist/lib/radio.js.map +1 -1
- package/dist/lib/rich-text-editor.cjs +292 -288
- package/dist/lib/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor.js +292 -288
- package/dist/lib/rich-text-editor.js.map +1 -1
- package/dist/lib/root-layout.cjs +24 -39
- package/dist/lib/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout.js +24 -39
- package/dist/lib/root-layout.js.map +1 -1
- package/dist/lib/scrollbar-directive.cjs.map +1 -1
- package/dist/lib/scrollbar-directive.js.map +1 -1
- package/dist/lib/scroller.cjs +100 -83
- package/dist/lib/scroller.cjs.map +1 -1
- package/dist/lib/scroller.js +100 -83
- package/dist/lib/scroller.js.map +1 -1
- package/dist/lib/select-menu.cjs +40 -67
- package/dist/lib/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu.js +40 -67
- package/dist/lib/select-menu.js.map +1 -1
- package/dist/lib/settings-menu-button.cjs +10 -16
- package/dist/lib/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button.js +10 -16
- package/dist/lib/settings-menu-button.js.map +1 -1
- package/dist/lib/skeleton.cjs +74 -93
- package/dist/lib/skeleton.cjs.map +1 -1
- package/dist/lib/skeleton.js +74 -93
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/split-button.cjs +68 -74
- package/dist/lib/split-button.cjs.map +1 -1
- package/dist/lib/split-button.js +68 -74
- package/dist/lib/split-button.js.map +1 -1
- package/dist/lib/stack.cjs +18 -26
- package/dist/lib/stack.cjs.map +1 -1
- package/dist/lib/stack.js +18 -26
- package/dist/lib/stack.js.map +1 -1
- package/dist/lib/tabs.cjs +3 -7
- package/dist/lib/tabs.cjs.map +1 -1
- package/dist/lib/tabs.js +3 -7
- package/dist/lib/tabs.js.map +1 -1
- package/dist/lib/time-pill.cjs.map +1 -1
- package/dist/lib/time-pill.js.map +1 -1
- package/dist/lib/toast.cjs +35 -51
- package/dist/lib/toast.cjs.map +1 -1
- package/dist/lib/toast.js +35 -51
- package/dist/lib/toast.js.map +1 -1
- package/dist/lib/toggle.cjs +24 -34
- package/dist/lib/toggle.cjs.map +1 -1
- package/dist/lib/toggle.js +24 -34
- package/dist/lib/toggle.js.map +1 -1
- package/dist/lib/tooltip-directive.cjs +26 -19
- package/dist/lib/tooltip-directive.cjs.map +1 -1
- package/dist/lib/tooltip-directive.js +26 -19
- package/dist/lib/tooltip-directive.js.map +1 -1
- package/dist/lib/tooltip.cjs +21 -32
- package/dist/lib/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip.js +22 -33
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/lib/top-banner-info.cjs +8 -23
- package/dist/lib/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info.js +8 -23
- package/dist/lib/top-banner-info.js.map +1 -1
- package/dist/lib/unread-pill.cjs +8 -11
- package/dist/lib/unread-pill.cjs.map +1 -1
- package/dist/lib/unread-pill.js +8 -11
- package/dist/lib/unread-pill.js.map +1 -1
- package/dist/lib/validation-messages.cjs +14 -17
- package/dist/lib/validation-messages.cjs.map +1 -1
- package/dist/lib/validation-messages.js +14 -17
- package/dist/lib/validation-messages.js.map +1 -1
- package/dist/types/components/button/button.vue.d.ts +1 -1
- package/dist/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
- package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
- package/dist/types/components/icon/icon.vue.d.ts +2 -2
- package/dist/types/components/icon/icon_constants.d.ts +1 -1
- package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/types/components/illustration/illustration_constants.d.ts +1 -1
- package/dist/types/components/illustration/illustration_constants.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts +21 -0
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/types/components/input/input.vue.d.ts +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +1 -1
- package/dist/types/components/notice/notice.vue.d.ts +1 -1
- package/dist/types/components/radio/radio.vue.d.ts +1 -1
- package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
- package/dist/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
- package/dist/types/components/tabs/tab.vue.d.ts +1 -1
- package/dist/types/components/toast/toast.vue.d.ts +2 -2
- package/dist/types/components/tooltip/tooltip.vue.d.ts +1 -1
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
- package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/package.json +3 -2
- package/dist/chunks/icon_constants-Dy4MEUJL.js.map +0 -1
- package/dist/chunks/icon_constants-QYpmdE0R.js.map +0 -1
package/dist/lib/emoji-row.js
CHANGED
|
@@ -4,26 +4,25 @@ import { DtTooltip } from "./tooltip.js";
|
|
|
4
4
|
import { DtButton } from "./button.js";
|
|
5
5
|
import { DtEmoji } from "./emoji.js";
|
|
6
6
|
import { DtEmojiTextWrapper as _sfc_main$1 } from "./emoji-text-wrapper.js";
|
|
7
|
-
import "../chunks/popover_constants-
|
|
7
|
+
import "../chunks/popover_constants-6YkPPbnk.js";
|
|
8
8
|
import "tippy.js";
|
|
9
9
|
import "../common/utils.js";
|
|
10
10
|
import "../common/constants.js";
|
|
11
11
|
import "../chunks/link_constants-AfTWrr-n.js";
|
|
12
|
-
import "../chunks/index-
|
|
12
|
+
import "../chunks/index-dfdrE-3M.js";
|
|
13
13
|
import "@dialpad/dialtone-emojis";
|
|
14
14
|
import "./skeleton.js";
|
|
15
|
-
import "../chunks/icon_constants-
|
|
15
|
+
import "../chunks/icon_constants-gIQj4mf7.js";
|
|
16
16
|
import "@dialpad/dialtone-icons/icons.json";
|
|
17
|
-
const REACTIONS_ATTRIBUTES = [
|
|
18
|
-
"emojiUnicodeOrShortname",
|
|
19
|
-
"isSelected",
|
|
20
|
-
"ariaLabel",
|
|
21
|
-
"tooltip",
|
|
22
|
-
"num"
|
|
23
|
-
];
|
|
17
|
+
const REACTIONS_ATTRIBUTES = ["emojiUnicodeOrShortname", "isSelected", "ariaLabel", "tooltip", "num"];
|
|
24
18
|
const _sfc_main = {
|
|
25
19
|
name: "DtRecipeEmojiRow",
|
|
26
|
-
components: {
|
|
20
|
+
components: {
|
|
21
|
+
DtTooltip,
|
|
22
|
+
DtButton,
|
|
23
|
+
DtEmoji,
|
|
24
|
+
DtEmojiTextWrapper: _sfc_main$1
|
|
25
|
+
},
|
|
27
26
|
mixins: [],
|
|
28
27
|
props: {
|
|
29
28
|
/**
|
|
@@ -42,10 +41,7 @@ const _sfc_main = {
|
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
},
|
|
45
|
-
emits: [
|
|
46
|
-
"emoji-clicked",
|
|
47
|
-
"emoji-hovered"
|
|
48
|
-
],
|
|
44
|
+
emits: ["emoji-clicked", "emoji-hovered"],
|
|
49
45
|
methods: {
|
|
50
46
|
emojiClicked(reaction) {
|
|
51
47
|
this.$emit("emoji-clicked", reaction.emojiUnicodeOrShortname);
|
|
@@ -58,66 +54,60 @@ const _sfc_main = {
|
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
56
|
};
|
|
61
|
-
const _hoisted_1 = {
|
|
57
|
+
const _hoisted_1 = {
|
|
58
|
+
class: "dt-emoji-row"
|
|
59
|
+
};
|
|
62
60
|
const _hoisted_2 = ["reaction"];
|
|
63
|
-
const _hoisted_3 = {
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
const _hoisted_3 = {
|
|
62
|
+
"aria-hidden": "true"
|
|
63
|
+
};
|
|
64
|
+
const _hoisted_4 = {
|
|
65
|
+
class: "dt-emoji-row__emoji"
|
|
66
|
+
};
|
|
67
|
+
const _hoisted_5 = {
|
|
68
|
+
class: "dt-emoji-row__reaction-number"
|
|
69
|
+
};
|
|
66
70
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
67
71
|
const _component_dt_emoji_text_wrapper = resolveComponent("dt-emoji-text-wrapper");
|
|
68
72
|
const _component_dt_emoji = resolveComponent("dt-emoji");
|
|
69
73
|
const _component_dt_button = resolveComponent("dt-button");
|
|
70
74
|
const _component_dt_tooltip = resolveComponent("dt-tooltip");
|
|
71
|
-
return openBlock(), createElementBlock("span", _hoisted_1, [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
createVNode(_component_dt_emoji_text_wrapper, { size: "200" }, {
|
|
108
|
-
default: withCtx(() => [
|
|
109
|
-
createTextVNode(toDisplayString(reaction.tooltip), 1)
|
|
110
|
-
]),
|
|
111
|
-
_: 2
|
|
112
|
-
}, 1024)
|
|
113
|
-
])
|
|
114
|
-
]),
|
|
115
|
-
_: 2
|
|
116
|
-
}, 1032, ["onShown"])
|
|
117
|
-
], 8, _hoisted_2);
|
|
118
|
-
}), 128)),
|
|
119
|
-
renderSlot(_ctx.$slots, "picker")
|
|
120
|
-
]);
|
|
75
|
+
return openBlock(), createElementBlock("span", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList($props.reactions, (reaction) => {
|
|
76
|
+
return openBlock(), createElementBlock("span", {
|
|
77
|
+
key: reaction.unicodeOutput,
|
|
78
|
+
reaction
|
|
79
|
+
}, [createVNode(_component_dt_tooltip, {
|
|
80
|
+
class: "dt-emoji-row__tooltip",
|
|
81
|
+
"content-class": "d-wmx464",
|
|
82
|
+
sticky: "popper",
|
|
83
|
+
onShown: (shown) => $options.emojiHovered(reaction, shown)
|
|
84
|
+
}, {
|
|
85
|
+
anchor: withCtx(({
|
|
86
|
+
attrs
|
|
87
|
+
}) => [createVNode(_component_dt_button, {
|
|
88
|
+
importance: "clear",
|
|
89
|
+
size: "sm",
|
|
90
|
+
"data-qa": "feed-item-reaction-button",
|
|
91
|
+
class: normalizeClass(["dt-emoji-row__reaction", reaction.isSelected ? "dt-emoji-row__reaction--selected" : ""]),
|
|
92
|
+
"aria-label": reaction.ariaLabel,
|
|
93
|
+
attrs,
|
|
94
|
+
onClick: ($event) => $options.emojiClicked(reaction)
|
|
95
|
+
}, {
|
|
96
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_4, [createVNode(_component_dt_emoji, {
|
|
97
|
+
size: "200",
|
|
98
|
+
code: reaction.emojiUnicodeOrShortname
|
|
99
|
+
}, null, 8, ["code"])]), createElementVNode("span", _hoisted_5, toDisplayString(reaction.num), 1)]),
|
|
100
|
+
_: 2
|
|
101
|
+
}, 1032, ["class", "aria-label", "attrs", "onClick"])]),
|
|
102
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_3, [createVNode(_component_dt_emoji_text_wrapper, {
|
|
103
|
+
size: "200"
|
|
104
|
+
}, {
|
|
105
|
+
default: withCtx(() => [createTextVNode(toDisplayString(reaction.tooltip), 1)]),
|
|
106
|
+
_: 2
|
|
107
|
+
}, 1024)])]),
|
|
108
|
+
_: 2
|
|
109
|
+
}, 1032, ["onShown"])], 8, _hoisted_2);
|
|
110
|
+
}), 128)), renderSlot(_ctx.$slots, "picker")]);
|
|
121
111
|
}
|
|
122
112
|
const emoji_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
123
113
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-row.js","sources":["../../recipes/conversation_view/emoji_row/emoji_row_constants.js","../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["export const REACTIONS_ATTRIBUTES = [\n 'emojiUnicodeOrShortname',\n 'isSelected',\n 'ariaLabel',\n 'tooltip',\n 'num',\n];\n\nexport default {\n REACTIONS_ATTRIBUTES,\n};\n","<template>\n <span class=\"dt-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n :reaction=\"reaction\"\n >\n <dt-tooltip\n class=\"dt-emoji-row__tooltip\"\n content-class=\"d-wmx464\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"200\">\n {{ reaction.tooltip }}\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"['dt-emoji-row__reaction', reaction.isSelected ? 'dt-emoji-row__reaction--selected' : '']\"\n :aria-label=\"reaction.ariaLabel\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"dt-emoji-row__emoji\">\n <dt-emoji\n size=\"200\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"dt-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '../../../components/button';\nimport { DtTooltip } from '../../../components/tooltip';\nimport { DtEmoji } from '../../../components/emoji';\nimport { DtEmojiTextWrapper } from '../../../components/emoji_text_wrapper';\n\nexport default {\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n mixins: [],\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined ?? false);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-emoji-row {\n display: flex;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n\n &__tooltip {\n display: inline-block;\n }\n\n &__reaction {\n --emoji-item-color-inset-shadow: transparent;\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-default);\n --emoji-item-color-background: var(--dt-action-color-background-muted-hover);\n\n padding: var(--dt-space-300) var(--dt-space-400);\n border-radius: var(--dt-size-radius-pill);\n border: 0;\n color: var(--emoji-item-color-foreground);\n background-color: var(--emoji-item-color-background);\n box-shadow: inset 0 0 0 var(--dt-size-border-150) var(--emoji-item-color-inset-shadow);\n height: var(--dt-size-550);\n\n &.dt-emoji-row__picker {\n padding: var(--dt-space-200) var(--dt-space-350);\n }\n\n &:hover {\n --emoji-item-color-inset-shadow: var(--dt-color-border-subtle);\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-hover);\n }\n\n &:active {\n --emoji-item-color-background: var(--dt-action-color-background-muted-active);\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-active);\n\n transform: scale(.98);\n }\n\n &--selected {\n --emoji-item-color-inset-shadow: var(--dt-color-border-brand);\n --emoji-item-color-foreground: var(--dt-color-link-primary);\n --emoji-item-color-background: var(--dt-action-color-background-base-hover);\n\n .dt-emoji-row__reaction-number {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &:hover {\n --emoji-item-color-inset-shadow: var(--dt-color-border-brand-strong);\n --emoji-item-color-foreground: var(--dt-color-link-primary-hover);\n }\n\n &:active {\n --emoji-item-color-background: var(--dt-action-color-background-base-active);\n }\n }\n }\n\n &__emoji {\n margin-right: var(--dt-space-300);\n display: inline-flex;\n }\n\n &__reaction-number {\n // set font properties individually to change line height,\n // as font shorthand property will override line-height.\n font-weight: var(--dt-typography-body-sm-font-weight);\n font-size: var(--dt-typography-body-sm-font-size);\n font-family: var(--dt-typography-body-sm-font-family);\n line-height: var(--dt-font-line-height-100);\n font-variant: tabular-nums;\n }\n}\n</style>\n"],"names":["DtEmojiTextWrapper","_openBlock","_createElementBlock","_Fragment","_renderList","_createVNode","_withCtx","_normalizeClass","_createElementVNode","_toDisplayString","_createTextVNode","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"emoji-row.js","sources":["../../recipes/conversation_view/emoji_row/emoji_row_constants.js","../../recipes/conversation_view/emoji_row/emoji_row.vue"],"sourcesContent":["export const REACTIONS_ATTRIBUTES = [\n 'emojiUnicodeOrShortname',\n 'isSelected',\n 'ariaLabel',\n 'tooltip',\n 'num',\n];\n\nexport default {\n REACTIONS_ATTRIBUTES,\n};\n","<template>\n <span class=\"dt-emoji-row\">\n <span\n v-for=\"reaction in reactions\"\n :key=\"reaction.unicodeOutput\"\n :reaction=\"reaction\"\n >\n <dt-tooltip\n class=\"dt-emoji-row__tooltip\"\n content-class=\"d-wmx464\"\n sticky=\"popper\"\n @shown=\"(shown) => emojiHovered(reaction, shown)\"\n >\n <span aria-hidden=\"true\">\n <dt-emoji-text-wrapper size=\"200\">\n {{ reaction.tooltip }}\n </dt-emoji-text-wrapper>\n </span>\n <template #anchor=\"{ attrs }\">\n <dt-button\n importance=\"clear\"\n size=\"sm\"\n data-qa=\"feed-item-reaction-button\"\n :class=\"['dt-emoji-row__reaction', reaction.isSelected ? 'dt-emoji-row__reaction--selected' : '']\"\n :aria-label=\"reaction.ariaLabel\"\n :attrs=\"attrs\"\n @click=\"emojiClicked(reaction)\"\n >\n <span class=\"dt-emoji-row__emoji\">\n <dt-emoji\n size=\"200\"\n :code=\"reaction.emojiUnicodeOrShortname\"\n />\n </span>\n <span class=\"dt-emoji-row__reaction-number\">\n {{ reaction.num }}\n </span>\n </dt-button>\n </template>\n </dt-tooltip>\n </span>\n <!-- @slot Slot for emoji picker component, including the anchor. -->\n <slot name=\"picker\" />\n </span>\n</template>\n\n<script>\nimport { REACTIONS_ATTRIBUTES } from './emoji_row_constants.js';\nimport { DtButton } from '../../../components/button';\nimport { DtTooltip } from '../../../components/tooltip';\nimport { DtEmoji } from '../../../components/emoji';\nimport { DtEmojiTextWrapper } from '../../../components/emoji_text_wrapper';\n\nexport default {\n name: 'DtRecipeEmojiRow',\n\n components: { DtTooltip, DtButton, DtEmoji, DtEmojiTextWrapper },\n\n mixins: [],\n\n props: {\n /**\n * Provide an array of reaction objects to be shown.\n */\n reactions: {\n type: Array,\n default: () => [],\n validator: (reactions) => {\n for (const reaction of reactions) {\n const validInput = REACTIONS_ATTRIBUTES.every((attribute) => reaction[attribute] !== undefined ?? false);\n if (!validInput) return false;\n }\n return true;\n },\n },\n },\n\n emits: [\n 'emoji-clicked',\n 'emoji-hovered',\n ],\n\n methods: {\n emojiClicked (reaction) {\n this.$emit('emoji-clicked', reaction.emojiUnicodeOrShortname);\n },\n\n emojiHovered (reaction, state) {\n this.$emit('emoji-hovered', {\n reaction: reaction.emojiUnicodeOrShortname,\n state,\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-emoji-row {\n display: flex;\n flex-wrap: wrap;\n gap: var(--dt-space-300);\n\n &__tooltip {\n display: inline-block;\n }\n\n &__reaction {\n --emoji-item-color-inset-shadow: transparent;\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-default);\n --emoji-item-color-background: var(--dt-action-color-background-muted-hover);\n\n padding: var(--dt-space-300) var(--dt-space-400);\n border-radius: var(--dt-size-radius-pill);\n border: 0;\n color: var(--emoji-item-color-foreground);\n background-color: var(--emoji-item-color-background);\n box-shadow: inset 0 0 0 var(--dt-size-border-150) var(--emoji-item-color-inset-shadow);\n height: var(--dt-size-550);\n\n &.dt-emoji-row__picker {\n padding: var(--dt-space-200) var(--dt-space-350);\n }\n\n &:hover {\n --emoji-item-color-inset-shadow: var(--dt-color-border-subtle);\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-hover);\n }\n\n &:active {\n --emoji-item-color-background: var(--dt-action-color-background-muted-active);\n --emoji-item-color-foreground: var(--dt-action-color-foreground-muted-active);\n\n transform: scale(.98);\n }\n\n &--selected {\n --emoji-item-color-inset-shadow: var(--dt-color-border-brand);\n --emoji-item-color-foreground: var(--dt-color-link-primary);\n --emoji-item-color-background: var(--dt-action-color-background-base-hover);\n\n .dt-emoji-row__reaction-number {\n font-weight: var(--dt-font-weight-bold);\n }\n\n &:hover {\n --emoji-item-color-inset-shadow: var(--dt-color-border-brand-strong);\n --emoji-item-color-foreground: var(--dt-color-link-primary-hover);\n }\n\n &:active {\n --emoji-item-color-background: var(--dt-action-color-background-base-active);\n }\n }\n }\n\n &__emoji {\n margin-right: var(--dt-space-300);\n display: inline-flex;\n }\n\n &__reaction-number {\n // set font properties individually to change line height,\n // as font shorthand property will override line-height.\n font-weight: var(--dt-typography-body-sm-font-weight);\n font-size: var(--dt-typography-body-sm-font-size);\n font-family: var(--dt-typography-body-sm-font-family);\n line-height: var(--dt-font-line-height-100);\n font-variant: tabular-nums;\n }\n}\n</style>\n"],"names":["REACTIONS_ATTRIBUTES","_sfc_main","name","components","DtTooltip","DtButton","DtEmoji","DtEmojiTextWrapper","mixins","props","reactions","type","Array","default","validator","reaction","validInput","every","attribute","undefined","emits","methods","emojiClicked","$emit","emojiUnicodeOrShortname","emojiHovered","state","_hoisted_1","class","_hoisted_3","_hoisted_4","_hoisted_5","_openBlock","_createElementBlock","_Fragment","_renderList","$props","key","unicodeOutput","_createVNode","_component_dt_tooltip","sticky","onShown","shown","$options","anchor","_withCtx","attrs","_component_dt_button","importance","size","_normalizeClass","isSelected","ariaLabel","onClick","$event","_createElementVNode","_component_dt_emoji","code","_toDisplayString","num","_component_dt_emoji_text_wrapper","_createTextVNode","tooltip","_renderSlot","_ctx","$slots"],"mappings":";;;;;;;;;;;;;;;;AAAaA,MAAAA,uBAAuB,CAClC,2BACA,cACA,aACA,WACA,KAAK;ACgDP,MAAKC,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,YAAY;AAAA,IAAEC;AAAAA,IAAWC;AAAAA,IAAUC;AAAAA,IAASC,oBAAAA;AAAAA,EAAoB;AAAA,EAEhEC,QAAQ,CAAE;AAAA,EAEVC,OAAO;AAAA;AAAA;AAAA;AAAA,IAILC,WAAW;AAAA,MACTC,MAAMC;AAAAA,MACNC,SAASA,MAAM,CAAE;AAAA,MACjBC,WAAYJ,eAAc;AACxB,mBAAWK,YAAYL,WAAW;AAChC,gBAAMM,aAAahB,qBAAqBiB,MAAOC,eAAcH,SAASG,SAAS,MAAMC,MAAkB;AACvG,cAAI,CAACH;AAAY,mBAAO;AAAA,QAC1B;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACD;AAAA,EAEDI,OAAO,CACL,iBACA,eAAe;AAAA,EAGjBC,SAAS;AAAA,IACPC,aAAcP,UAAU;AACtB,WAAKQ,MAAM,iBAAiBR,SAASS,uBAAuB;AAAA,IAC7D;AAAA,IAEDC,aAAcV,UAAUW,OAAO;AAC7B,WAAKH,MAAM,iBAAiB;AAAA,QAC1BR,UAAUA,SAASS;AAAAA,QACnBE;AAAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;AA7FQ,MAAAC,aAAA;AAAA,EAAAC,OAAM;AAAc;;AAYd,MAAAC,aAAA;AAAA,EAAA,eAAY;AAAM;AAed,MAAAC,aAAA;AAAA,EAAAF,OAAM;AAAqB;AAM3B,MAAAG,aAAA;AAAA,EAAAH,OAAM;AAA+B;;;;;;AAjCrD,SAAAI,UAAA,GAAAC,mBA0CO,QA1CPN,YA0CO,mBAzCLM,mBAsCOC,UAAA,MAAAC,WArCcC,OAAS1B,WAArBK,cAAQ;wBADjBkB,mBAsCO,QAAA;AAAA,MApCJI,KAAKtB,SAASuB;AAAAA,MACdvB;AAAAA,QAEDwB,YAgCaC,uBAAA;AAAA,MA/BXZ,OAAM;AAAA,MACN,iBAAc;AAAA,MACda,QAAO;AAAA,MACNC,SAAQC,WAAUC,sBAAa7B,UAAU4B,KAAK;AAAA;MAOpCE,QAAMC,QACf,CAkBY;AAAA,QAnBOC;AAAAA,MAAK,MAAA,CACxBR,YAkBYS,sBAAA;AAAA,QAjBVC,YAAW;AAAA,QACXC,MAAK;AAAA,QACL,WAAQ;AAAA,QACPtB,OAAKuB,eAAA,CAAA,0BAA6BpC,SAASqC,aAAU,qCAAA,EAAA,CAAA;AAAA,QACrD,cAAYrC,SAASsC;AAAAA,QACrBN;AAAAA,QACAO,SAAKC,YAAEX,SAAYtB,aAACP,QAAQ;AAAA;yBAE7B,MAKO,CALPyC,mBAKO,QALP1B,YAKO,CAJLS,YAGEkB,qBAAA;AAAA,UAFAP,MAAK;AAAA,UACJQ,MAAM3C,SAASS;AAAAA,iCAGpBgC,mBAEO,QAFPzB,YACK4B,gBAAA5C,SAAS6C,GAAG,GAAA,CAAA,CAAA;;;uBAtBrB,MAIO,CAJPJ,mBAIO,QAJP3B,YAIO,CAHLU,YAEwBsB,kCAAA;AAAA,QAFDX,MAAK;AAAA,MAAK,GAAA;AAAA,yBAC/B,MAAsB,CAAnBY,gBAAAH,gBAAA5C,SAASgD,OAAO,GAAA,CAAA,CAAA;;;;;aA2B3BC,WAAsBC,KAAAC,QAAA,QAAA,CAAA;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const common_emoji = require("../chunks/index-
|
|
3
|
+
const common_emoji = require("../chunks/index-fEp0B-5Z.js");
|
|
4
4
|
const vue = require("vue");
|
|
5
|
-
const icon_constants = require("../chunks/icon_constants-
|
|
5
|
+
const icon_constants = require("../chunks/icon_constants-bvhFNOPu.js");
|
|
6
6
|
const lib_emoji = require("./emoji.cjs");
|
|
7
7
|
require("@dialpad/dialtone-emojis");
|
|
8
8
|
require("@dialpad/dialtone-icons/icons.json");
|
|
@@ -50,9 +50,14 @@ const _sfc_main = {
|
|
|
50
50
|
const items = textContent.split(regexp);
|
|
51
51
|
return items.filter((item) => item.trim() !== "").map((item) => {
|
|
52
52
|
if (replaceList.includes(item)) {
|
|
53
|
-
return vue.h(lib_emoji.DtEmoji, {
|
|
53
|
+
return vue.h(lib_emoji.DtEmoji, {
|
|
54
|
+
code: item,
|
|
55
|
+
size: this.size
|
|
56
|
+
});
|
|
54
57
|
}
|
|
55
|
-
return vue.h("span", {
|
|
58
|
+
return vue.h("span", {
|
|
59
|
+
class: "d-emoji-text-wrapper__text"
|
|
60
|
+
}, item);
|
|
56
61
|
});
|
|
57
62
|
},
|
|
58
63
|
/**
|
|
@@ -90,14 +95,10 @@ const _sfc_main = {
|
|
|
90
95
|
},
|
|
91
96
|
render() {
|
|
92
97
|
const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];
|
|
93
|
-
return vue.h(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
class: "d-emoji-text-wrapper"
|
|
98
|
-
},
|
|
99
|
-
this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map((VNode) => this.searchVNodes(VNode))
|
|
100
|
-
);
|
|
98
|
+
return vue.h(this.elementType, {
|
|
99
|
+
"data-qa": "emoji-text-wrapper",
|
|
100
|
+
class: "d-emoji-text-wrapper"
|
|
101
|
+
}, this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map((VNode) => this.searchVNodes(VNode)));
|
|
101
102
|
}
|
|
102
103
|
};
|
|
103
104
|
exports.DtEmojiTextWrapper = _sfc_main;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-text-wrapper.cjs","sources":["../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n\n const regexp = new RegExp(`(${replaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent (VNode) {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["DtEmoji","ICON_SIZE_MODIFIERS","h","findShortCodes","findEmojis"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"emoji-text-wrapper.cjs","sources":["../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n\n const regexp = new RegExp(`(${replaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent (VNode) {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtEmoji","props","elementType","type","String","default","size","validator","t","Object","keys","ICON_SIZE_MODIFIERS","includes","data","loadingEmojiJson","created","methods","replaceDtEmojis","replaceList","textContent","length","regexp","RegExp","join","items","split","filter","item","trim","map","h","code","class","searchVNodes","VNode","searchCodes","children","innerHTML","Array","isArray","VNodeChild","replaceVueComponentVNodeContent","shortcodes","findShortCodes","emojis","findEmojis","render","defaultSlotContent","$slots"],"mappings":";;;;;;;;;;AAUA,MAAKA,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,YAAY;AAAA,IACVC,SAAAA,UAAAA;AAAAA,EACD;AAAA,EAEDC,OAAO;AAAA;AAAA;AAAA;AAAA,IAILC,aAAa;AAAA,MACXC,MAAMC;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDC,MAAM;AAAA,MACJH,MAAMC;AAAAA,MACNC,SAAS;AAAA,MACTE,WAAYC,OAAMC,OAAOC,KAAKC,eAAAA,mBAAmB,EAAEC,SAASJ,CAAC;AAAA,IAC/D;AAAA,EACD;AAAA,EAEDK,OAAQ;AACN,WAAO;AAAA,MACLC,kBAAkB;AAAA;EAErB;AAAA,EAED,MAAMC,UAAW;AACf,SAAKD,mBAAmB;AAAA,EACzB;AAAA,EAEDE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKPC,gBAAiBC,aAAaC,aAAa;AACzC,UAAI,CAACD,YAAYE;AAAQ,eAAOD;AAEhC,YAAME,SAAS,IAAIC,OAAO,IAAIJ,YAAYK,KAAK,GAAG,CAAC,KAAK,GAAG;AAC3D,YAAMC,QAAQL,YAAYM,MAAMJ,MAAM;AAEtC,aAAOG,MACJE,OAAOC,UAAQA,KAAKC,KAAI,MAAO,EAAE,EACjCC,IAAKF,UAAS;AACb,YAAIT,YAAYN,SAASe,IAAI,GAAG;AAC9B,iBAAOG,IAAAA,EAAE9B,UAAAA,SAAS;AAAA,YAAE+B,MAAMJ;AAAAA,YAAMrB,MAAM,KAAKA;AAAAA,UAAK,CAAC;AAAA,QACnD;AACA,eAAOwB,IAAAA,EAAE,QAAQ;AAAA,UAAEE,OAAO;AAAA,QAA8B,GAAEL,IAAI;AAAA,MAChE,CAAC;AAAA,IACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAODM,aAAcC,OAAO;;AACnB,UAAI,OAAOA,UAAU;AAAU,eAAO,KAAKC,YAAYD,KAAK;AAC5D,UAAI,OAAOA,MAAM/B,SAAS;AAAU,eAAO,KAAKgC,YAAYD,MAAME,QAAQ;AAC1E,WAAIF,WAAMjC,UAANiC,mBAAaG;AAAW,eAAO,KAAKJ,aAAaC,MAAMjC,MAAMoC,SAAS;AAE1E,YAAMD,WAAWE,MAAMC,QAAQL,MAAME,QAAQ,IAAIF,MAAME,WAAW,CAACF,MAAME,QAAQ;AACjF,aAAON,IAAC,EAACI,MAAM/B,MAAM+B,MAAMjC,OAAOmC,SAASP,IAAIW,gBAAc,KAAKP,aAAaO,UAAU,CAAC,CAAC;AAAA,IAC5F;AAAA;AAAA,IAGDC,gCAAiCP,OAAO;AAAA,IAEvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAODC,YAAahB,aAAa;AACxB,YAAMuB,aAAaC,4BAAexB,WAAW;AAC7C,YAAMyB,SAASC,wBAAW1B,WAAW;AAErC,YAAMD,cAAc,CAAC,GAAGwB,YAAY,GAAGE,MAAM;AAC7C,UAAI1B,YAAYE,WAAW;AAAG,eAAOD;AACrC,aAAO,KAAKF,gBAAgBC,aAAaC,WAAW;AAAA,IACtD;AAAA,EACD;AAAA,EAED2B,SAAU;AACR,UAAMC,qBAAqB,KAAKC,OAAO3C,UAAU,KAAK2C,OAAO3C,QAAU,IAAE;AACzE,WAAOyB,IAAC,EACN,KAAK5B,aACL;AAAA,MACE,WAAW;AAAA,MACX8B,OAAO;AAAA,IACR,GACD,KAAKlB,mBACDiC,qBACAA,mBAAmBlB,IAAIK,WAAS,KAAKD,aAAaC,KAAK,CAAC,CAC9D;AAAA,EACF;AACF;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { findShortCodes, findEmojis } from "../chunks/index-
|
|
1
|
+
import { findShortCodes, findEmojis } from "../chunks/index-dfdrE-3M.js";
|
|
2
2
|
import { h } from "vue";
|
|
3
|
-
import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-
|
|
3
|
+
import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-gIQj4mf7.js";
|
|
4
4
|
import { DtEmoji } from "./emoji.js";
|
|
5
5
|
import "@dialpad/dialtone-emojis";
|
|
6
6
|
import "@dialpad/dialtone-icons/icons.json";
|
|
@@ -48,9 +48,14 @@ const _sfc_main = {
|
|
|
48
48
|
const items = textContent.split(regexp);
|
|
49
49
|
return items.filter((item) => item.trim() !== "").map((item) => {
|
|
50
50
|
if (replaceList.includes(item)) {
|
|
51
|
-
return h(DtEmoji, {
|
|
51
|
+
return h(DtEmoji, {
|
|
52
|
+
code: item,
|
|
53
|
+
size: this.size
|
|
54
|
+
});
|
|
52
55
|
}
|
|
53
|
-
return h("span", {
|
|
56
|
+
return h("span", {
|
|
57
|
+
class: "d-emoji-text-wrapper__text"
|
|
58
|
+
}, item);
|
|
54
59
|
});
|
|
55
60
|
},
|
|
56
61
|
/**
|
|
@@ -88,14 +93,10 @@ const _sfc_main = {
|
|
|
88
93
|
},
|
|
89
94
|
render() {
|
|
90
95
|
const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];
|
|
91
|
-
return h(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
class: "d-emoji-text-wrapper"
|
|
96
|
-
},
|
|
97
|
-
this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map((VNode) => this.searchVNodes(VNode))
|
|
98
|
-
);
|
|
96
|
+
return h(this.elementType, {
|
|
97
|
+
"data-qa": "emoji-text-wrapper",
|
|
98
|
+
class: "d-emoji-text-wrapper"
|
|
99
|
+
}, this.loadingEmojiJson ? defaultSlotContent : defaultSlotContent.map((VNode) => this.searchVNodes(VNode)));
|
|
99
100
|
}
|
|
100
101
|
};
|
|
101
102
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-text-wrapper.js","sources":["../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n\n const regexp = new RegExp(`(${replaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent (VNode) {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"emoji-text-wrapper.js","sources":["../../components/emoji_text_wrapper/emoji_text_wrapper.vue"],"sourcesContent":["<script>\nimport { DtEmoji } from '../emoji';\nimport { findEmojis, findShortCodes } from '@/common/emoji';\nimport { h } from 'vue';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants';\n\n/**\n * Wrapper to find and replace shortcodes like :smile: or unicode chars such as 😄 with our custom Emojis implementation.\n * @see https://dialtone.dialpad.com/components/emoji_text_wrapper.html\n */\nexport default {\n name: 'DtEmojiTextWrapper',\n\n components: {\n DtEmoji,\n },\n\n props: {\n /**\n * Element type (tag name) to use for the wrapper.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * The icon size to render the emojis at: 100 to 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n },\n\n data () {\n return {\n loadingEmojiJson: true,\n };\n },\n\n async created () {\n this.loadingEmojiJson = false;\n },\n\n methods: {\n /**\n * Replaces the valid codes from the text content with a DtEmoji component.\n * @returns {Array<VNode|string>}\n */\n replaceDtEmojis (replaceList, textContent) {\n if (!replaceList.length) return textContent;\n\n const regexp = new RegExp(`(${replaceList.join('|')})`, 'g');\n const items = textContent.split(regexp);\n\n return items\n .filter(item => item.trim() !== '')\n .map((item) => {\n if (replaceList.includes(item)) {\n return h(DtEmoji, { code: item, size: this.size });\n }\n return h('span', { class: 'd-emoji-text-wrapper__text' }, item);\n });\n },\n\n /**\n * Recursively search the Vue virtual DOM to find text\n * @param VNode\n * @returns {VNode|*}\n */\n searchVNodes (VNode) {\n if (typeof VNode === 'string') return this.searchCodes(VNode);\n if (typeof VNode.type === 'symbol') return this.searchCodes(VNode.children);\n if (VNode.props?.innerHTML) return this.searchVNodes(VNode.props.innerHTML);\n\n const children = Array.isArray(VNode.children) ? VNode.children : [VNode.children];\n return h(VNode.type, VNode.props, children.map(VNodeChild => this.searchVNodes(VNodeChild)));\n },\n\n // TODO: Find a way to crawl vue components\n replaceVueComponentVNodeContent (VNode) {\n //\n },\n\n /**\n * Find codes in text.\n * @param textContent string\n * @returns {Array<VNode|string>|string}\n */\n searchCodes (textContent) {\n const shortcodes = findShortCodes(textContent);\n const emojis = findEmojis(textContent);\n\n const replaceList = [...shortcodes, ...emojis];\n if (replaceList.length === 0) return textContent;\n return this.replaceDtEmojis(replaceList, textContent);\n },\n },\n\n render () {\n const defaultSlotContent = this.$slots.default ? this.$slots.default() : [];\n return h(\n this.elementType,\n {\n 'data-qa': 'emoji-text-wrapper',\n class: 'd-emoji-text-wrapper',\n },\n this.loadingEmojiJson\n ? defaultSlotContent\n : defaultSlotContent.map(VNode => this.searchVNodes(VNode)),\n );\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtEmoji","props","elementType","type","String","default","size","validator","t","Object","keys","ICON_SIZE_MODIFIERS","includes","data","loadingEmojiJson","created","methods","replaceDtEmojis","replaceList","textContent","length","regexp","RegExp","join","items","split","filter","item","trim","map","h","code","class","searchVNodes","VNode","searchCodes","children","innerHTML","Array","isArray","VNodeChild","replaceVueComponentVNodeContent","shortcodes","findShortCodes","emojis","findEmojis","render","defaultSlotContent","$slots"],"mappings":";;;;;;;;AAUA,MAAKA,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,YAAY;AAAA,IACVC;AAAAA,EACD;AAAA,EAEDC,OAAO;AAAA;AAAA;AAAA;AAAA,IAILC,aAAa;AAAA,MACXC,MAAMC;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDC,MAAM;AAAA,MACJH,MAAMC;AAAAA,MACNC,SAAS;AAAA,MACTE,WAAYC,OAAMC,OAAOC,KAAKC,mBAAmB,EAAEC,SAASJ,CAAC;AAAA,IAC/D;AAAA,EACD;AAAA,EAEDK,OAAQ;AACN,WAAO;AAAA,MACLC,kBAAkB;AAAA;EAErB;AAAA,EAED,MAAMC,UAAW;AACf,SAAKD,mBAAmB;AAAA,EACzB;AAAA,EAEDE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKPC,gBAAiBC,aAAaC,aAAa;AACzC,UAAI,CAACD,YAAYE;AAAQ,eAAOD;AAEhC,YAAME,SAAS,IAAIC,OAAO,IAAIJ,YAAYK,KAAK,GAAG,CAAC,KAAK,GAAG;AAC3D,YAAMC,QAAQL,YAAYM,MAAMJ,MAAM;AAEtC,aAAOG,MACJE,OAAOC,UAAQA,KAAKC,KAAI,MAAO,EAAE,EACjCC,IAAKF,UAAS;AACb,YAAIT,YAAYN,SAASe,IAAI,GAAG;AAC9B,iBAAOG,EAAE9B,SAAS;AAAA,YAAE+B,MAAMJ;AAAAA,YAAMrB,MAAM,KAAKA;AAAAA,UAAK,CAAC;AAAA,QACnD;AACA,eAAOwB,EAAE,QAAQ;AAAA,UAAEE,OAAO;AAAA,QAA8B,GAAEL,IAAI;AAAA,MAChE,CAAC;AAAA,IACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAODM,aAAcC,OAAO;;AACnB,UAAI,OAAOA,UAAU;AAAU,eAAO,KAAKC,YAAYD,KAAK;AAC5D,UAAI,OAAOA,MAAM/B,SAAS;AAAU,eAAO,KAAKgC,YAAYD,MAAME,QAAQ;AAC1E,WAAIF,WAAMjC,UAANiC,mBAAaG;AAAW,eAAO,KAAKJ,aAAaC,MAAMjC,MAAMoC,SAAS;AAE1E,YAAMD,WAAWE,MAAMC,QAAQL,MAAME,QAAQ,IAAIF,MAAME,WAAW,CAACF,MAAME,QAAQ;AACjF,aAAON,EAAEI,MAAM/B,MAAM+B,MAAMjC,OAAOmC,SAASP,IAAIW,gBAAc,KAAKP,aAAaO,UAAU,CAAC,CAAC;AAAA,IAC5F;AAAA;AAAA,IAGDC,gCAAiCP,OAAO;AAAA,IAEvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAODC,YAAahB,aAAa;AACxB,YAAMuB,aAAaC,eAAexB,WAAW;AAC7C,YAAMyB,SAASC,WAAW1B,WAAW;AAErC,YAAMD,cAAc,CAAC,GAAGwB,YAAY,GAAGE,MAAM;AAC7C,UAAI1B,YAAYE,WAAW;AAAG,eAAOD;AACrC,aAAO,KAAKF,gBAAgBC,aAAaC,WAAW;AAAA,IACtD;AAAA,EACD;AAAA,EAED2B,SAAU;AACR,UAAMC,qBAAqB,KAAKC,OAAO3C,UAAU,KAAK2C,OAAO3C,QAAU,IAAE;AACzE,WAAOyB,EACL,KAAK5B,aACL;AAAA,MACE,WAAW;AAAA,MACX8B,OAAO;AAAA,IACR,GACD,KAAKlB,mBACDiC,qBACAA,mBAAmBlB,IAAIK,WAAS,KAAKD,aAAaC,KAAK,CAAC,CAC9D;AAAA,EACF;AACF;"}
|
package/dist/lib/emoji.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const common_emoji = require("../chunks/index-
|
|
3
|
+
const common_emoji = require("../chunks/index-fEp0B-5Z.js");
|
|
4
4
|
const vue = require("vue");
|
|
5
5
|
const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
|
|
6
6
|
const lib_skeleton = require("./skeleton.cjs");
|
|
7
|
-
const icon_constants = require("../chunks/icon_constants-
|
|
7
|
+
const icon_constants = require("../chunks/icon_constants-bvhFNOPu.js");
|
|
8
8
|
require("@dialpad/dialtone-emojis");
|
|
9
9
|
require("@dialpad/dialtone-icons/icons.json");
|
|
10
10
|
const _sfc_main = {
|
|
@@ -131,27 +131,23 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
131
131
|
const _component_dt_skeleton = vue.resolveComponent("dt-skeleton");
|
|
132
132
|
return vue.openBlock(), vue.createElementBlock("span", {
|
|
133
133
|
class: vue.normalizeClass(["d-emoji d-icon", $options.emojiSize])
|
|
134
|
-
}, [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}, null, 42, _hoisted_1), [
|
|
152
|
-
[vue.vShow, !$data.imgLoading]
|
|
153
|
-
])
|
|
154
|
-
], 2);
|
|
134
|
+
}, [vue.withDirectives(vue.createVNode(_component_dt_skeleton, {
|
|
135
|
+
offset: 0,
|
|
136
|
+
class: vue.normalizeClass(["d-icon", $options.emojiSize]),
|
|
137
|
+
"shape-option": {
|
|
138
|
+
shape: "circle",
|
|
139
|
+
size: "100%"
|
|
140
|
+
}
|
|
141
|
+
}, null, 8, ["class"]), [[vue.vShow, $data.imgLoading && $props.showSkeleton]]), vue.withDirectives(vue.createElementVNode("img", {
|
|
142
|
+
ref: "emojiImg",
|
|
143
|
+
class: vue.normalizeClass(["d-icon", $options.emojiSize, $props.imgClass]),
|
|
144
|
+
"aria-label": $options.emojiLabel,
|
|
145
|
+
alt: $options.emojiAlt,
|
|
146
|
+
title: $options.emojiLabel,
|
|
147
|
+
src: $options.emojiSrc,
|
|
148
|
+
onLoad: _cache[0] || (_cache[0] = (...args) => $options.imageLoaded && $options.imageLoaded(...args)),
|
|
149
|
+
onError: _cache[1] || (_cache[1] = (...args) => $options.imageErrored && $options.imageErrored(...args))
|
|
150
|
+
}, null, 42, _hoisted_1), [[vue.vShow, !$data.imgLoading]])], 2);
|
|
155
151
|
}
|
|
156
152
|
const DtEmoji = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
157
153
|
exports.DtEmoji = DtEmoji;
|
package/dist/lib/emoji.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji.cjs","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji d-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["DtSkeleton","ICON_SIZE_MODIFIERS","customEmojiAssetUrl","emojiImageUrlSmall","emojiFileExtensionSmall","emojiImageUrlLarge","emojiFileExtensionLarge","stringToUnicode","codeToEmojiData","_createElementBlock","_createVNode","_vShow","_createElementVNode","_normalizeClass"],"mappings":";;;;;;;;;AAuCA,
|
|
1
|
+
{"version":3,"file":"emoji.cjs","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji d-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtSkeleton","props","code","type","String","required","size","default","validator","t","Object","keys","ICON_SIZE_MODIFIERS","includes","imgClass","Array","ariaLabel","showSkeleton","Boolean","data","emojiData","imgLoading","computed","emojiDataValid","emojiSrc","custom","customEmojiAssetUrl","key","extension","emojiImageUrlSmall","emojiFileExtensionSmall","emojiImageUrlLarge","emojiFileExtensionLarge","emojiAlt","undefined","unicode_output","stringToUnicode","emojiLabel","emojiSize","watch","handler","getEmojiData","immediate","methods","codeToEmojiData","imageLoaded","imageErrored","_createElementBlock","class","$options","_createVNode","_component_dt_skeleton","offset","shape","_vShow","$data","$props","_createElementVNode","ref","_normalizeClass","alt","title","src","onLoad","args","onError"],"mappings":"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"}
|
package/dist/lib/emoji.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { customEmojiAssetUrl, emojiImageUrlSmall, emojiFileExtensionSmall, emojiImageUrlLarge, emojiFileExtensionLarge, stringToUnicode, codeToEmojiData } from "../chunks/index-
|
|
1
|
+
import { customEmojiAssetUrl, emojiImageUrlSmall, emojiFileExtensionSmall, emojiImageUrlLarge, emojiFileExtensionLarge, stringToUnicode, codeToEmojiData } from "../chunks/index-dfdrE-3M.js";
|
|
2
2
|
import { resolveComponent, openBlock, createElementBlock, normalizeClass, withDirectives, createVNode, vShow, createElementVNode } from "vue";
|
|
3
3
|
import { _export_sfc } from "../chunks/_plugin-vue_export-helper-caHeSgYY.js";
|
|
4
4
|
import { DtSkeleton } from "./skeleton.js";
|
|
5
|
-
import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-
|
|
5
|
+
import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-gIQj4mf7.js";
|
|
6
6
|
import "@dialpad/dialtone-emojis";
|
|
7
7
|
import "@dialpad/dialtone-icons/icons.json";
|
|
8
8
|
const _sfc_main = {
|
|
@@ -129,27 +129,23 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
129
129
|
const _component_dt_skeleton = resolveComponent("dt-skeleton");
|
|
130
130
|
return openBlock(), createElementBlock("span", {
|
|
131
131
|
class: normalizeClass(["d-emoji d-icon", $options.emojiSize])
|
|
132
|
-
}, [
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}, null, 42, _hoisted_1), [
|
|
150
|
-
[vShow, !$data.imgLoading]
|
|
151
|
-
])
|
|
152
|
-
], 2);
|
|
132
|
+
}, [withDirectives(createVNode(_component_dt_skeleton, {
|
|
133
|
+
offset: 0,
|
|
134
|
+
class: normalizeClass(["d-icon", $options.emojiSize]),
|
|
135
|
+
"shape-option": {
|
|
136
|
+
shape: "circle",
|
|
137
|
+
size: "100%"
|
|
138
|
+
}
|
|
139
|
+
}, null, 8, ["class"]), [[vShow, $data.imgLoading && $props.showSkeleton]]), withDirectives(createElementVNode("img", {
|
|
140
|
+
ref: "emojiImg",
|
|
141
|
+
class: normalizeClass(["d-icon", $options.emojiSize, $props.imgClass]),
|
|
142
|
+
"aria-label": $options.emojiLabel,
|
|
143
|
+
alt: $options.emojiAlt,
|
|
144
|
+
title: $options.emojiLabel,
|
|
145
|
+
src: $options.emojiSrc,
|
|
146
|
+
onLoad: _cache[0] || (_cache[0] = (...args) => $options.imageLoaded && $options.imageLoaded(...args)),
|
|
147
|
+
onError: _cache[1] || (_cache[1] = (...args) => $options.imageErrored && $options.imageErrored(...args))
|
|
148
|
+
}, null, 42, _hoisted_1), [[vShow, !$data.imgLoading]])], 2);
|
|
153
149
|
}
|
|
154
150
|
const DtEmoji = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
155
151
|
export {
|
package/dist/lib/emoji.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji.js","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji d-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createVNode","_vShow","_createElementVNode","_normalizeClass"],"mappings":";;;;;;;AAuCA,
|
|
1
|
+
{"version":3,"file":"emoji.js","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji d-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtSkeleton","props","code","type","String","required","size","default","validator","t","Object","keys","ICON_SIZE_MODIFIERS","includes","imgClass","Array","ariaLabel","showSkeleton","Boolean","data","emojiData","imgLoading","computed","emojiDataValid","emojiSrc","custom","customEmojiAssetUrl","key","extension","emojiImageUrlSmall","emojiFileExtensionSmall","emojiImageUrlLarge","emojiFileExtensionLarge","emojiAlt","undefined","unicode_output","stringToUnicode","emojiLabel","emojiSize","watch","handler","getEmojiData","immediate","methods","codeToEmojiData","imageLoaded","imageErrored","_createElementBlock","class","$options","_createVNode","_component_dt_skeleton","offset","shape","_vShow","$data","$props","_createElementVNode","ref","_normalizeClass","alt","title","src","onLoad","args","onError"],"mappings":"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"}
|