zignal-stencil-library 1.1.110 → 1.1.112
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/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
- package/dist/cjs/autocomplete-address_43.cjs.entry.js +185 -137
- package/dist/cjs/{dayjs-Dssqvl2P.js → dayjs-Fs60i07x.js} +3 -3
- package/dist/cjs/dayjs-Fs60i07x.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/quick-message-app.cjs.entry.js +3 -3
- package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
- package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
- package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
- package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
- package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
- package/dist/collection/components/channel-box/channel-box.css +1 -1
- package/dist/collection/components/chat-app/chat-app.css +1 -1
- package/dist/collection/components/chat-app/chat-app.js +1 -1
- package/dist/collection/components/chat-app/chat-app.js.map +1 -1
- package/dist/collection/components/chat-header/chat-header.css +1 -1
- package/dist/collection/components/chat-input/chat-input.css +1 -1
- package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
- package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
- package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
- package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
- package/dist/collection/components/dialog-search/dialog-search.css +1 -1
- package/dist/collection/components/internal-component/merge-user-view.js +1 -1
- package/dist/collection/components/internal-component/merge-user-view.js.map +1 -1
- package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
- package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
- package/dist/collection/components/menu-list/menu-list.css +1 -1
- package/dist/collection/components/menu-list/menu-list.js +23 -2
- package/dist/collection/components/menu-list/menu-list.js.map +1 -1
- package/dist/collection/components/message-box/message-box.css +1 -1
- package/dist/collection/components/message-content/message-content.css +1 -1
- package/dist/collection/components/message-item/message-item.css +1 -1
- package/dist/collection/components/message-item/message-item.js +4 -2
- package/dist/collection/components/message-item/message-item.js.map +1 -1
- package/dist/collection/components/message-media/message-media.css +1 -1
- package/dist/collection/components/profile-history/profile-history.css +1 -1
- package/dist/collection/components/profile-history/profile-history.js +14 -22
- package/dist/collection/components/profile-history/profile-history.js.map +1 -1
- package/dist/collection/components/profile-info/profile-info.css +1 -1
- package/dist/collection/components/profile-info/profile-info.js +21 -38
- package/dist/collection/components/profile-info/profile-info.js.map +1 -1
- package/dist/collection/components/profile-info/user-info-section.js +48 -5
- package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
- package/dist/collection/components/profile-media/profile-media.css +1 -1
- package/dist/collection/components/profile-media/profile-media.js +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.js +6 -6
- package/dist/collection/components/profile-tabs/profile-tabs.js.map +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.js +3 -3
- package/dist/collection/components/quick-message-add-template/quick-message-text-content.js +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.js +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.js +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.js +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.js +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.js +3 -3
- package/dist/collection/components/search-box/search-box.css +1 -1
- package/dist/collection/components/search-box/search-box.js +1 -1
- package/dist/collection/components/status-badge/status-badge.css +1 -1
- package/dist/collection/components/status-badge/status-badge.js +2 -2
- package/dist/collection/components/tag-list/tag-list.css +1 -1
- package/dist/collection/components/tag-list/tag-list.js +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.js +2 -2
- package/dist/collection/components/tag-popper/tag-popper.css +1 -1
- package/dist/collection/components/tag-popper/tag-popper.js +2 -2
- package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
- package/dist/collection/components/typography-clamp/typography-clamp.js +2 -2
- package/dist/collection/components/z-avatar/z-avatar.css +1 -1
- package/dist/collection/components/z-avatar/z-avatar.js +8 -2
- package/dist/collection/components/z-avatar/z-avatar.js.map +1 -1
- package/dist/collection/components/z-dialog/z-dialog.css +1 -1
- package/dist/collection/store/chat.js +6 -1
- package/dist/collection/store/chat.js.map +1 -1
- package/dist/collection/store/message.js +38 -6
- package/dist/collection/store/message.js.map +1 -1
- package/dist/collection/store/store.js +1 -1
- package/dist/collection/store/store.js.map +1 -1
- package/dist/components/autocomplete-address.js +1 -1
- package/dist/components/autocomplete-multiple-select.js +1 -1
- package/dist/components/autocomplete-select.js +1 -1
- package/dist/components/channel-box.js +1 -1
- package/dist/components/chat-app.js +48 -48
- package/dist/components/chat-app.js.map +1 -1
- package/dist/components/chat-header.js +1 -1
- package/dist/components/chat-input.js +1 -1
- package/dist/components/checkbox-list.js +1 -1
- package/dist/components/dialog-bill-editor.js +1 -1
- package/dist/components/dialog-editor.js +1 -1
- package/dist/components/dialog-preview-media.js +1 -1
- package/dist/components/dialog-search.js +1 -1
- package/dist/components/menu-chat-channel.js +1 -1
- package/dist/components/menu-chat-type.js +1 -1
- package/dist/components/menu-list.js +1 -1
- package/dist/components/message-box.js +1 -1
- package/dist/components/message-content.js +1 -1
- package/dist/components/message-item.js +1 -1
- package/dist/components/message-media.js +1 -1
- package/dist/components/{p-BfwDQevk.js → p-2QReMzO8.js} +15 -15
- package/dist/components/{p-BfwDQevk.js.map → p-2QReMzO8.js.map} +1 -1
- package/dist/components/{p-BAcE386V.js → p-5S7W_s42.js} +44 -12
- package/dist/components/p-5S7W_s42.js.map +1 -0
- package/dist/components/{p-7VwG3GTl.js → p-5z3Oz7nB.js} +4 -4
- package/dist/components/{p-7VwG3GTl.js.map → p-5z3Oz7nB.js.map} +1 -1
- package/dist/components/{p-Bb01kTl4.js → p-B6HiV-kQ.js} +3 -3
- package/dist/components/{p-Bb01kTl4.js.map → p-B6HiV-kQ.js.map} +1 -1
- package/dist/components/p-BB1RB9Dr.js +35 -0
- package/dist/components/{p-DBgHNduI.js.map → p-BB1RB9Dr.js.map} +1 -1
- package/dist/components/{p-GrnK0v_A.js → p-BLQ37Esu.js} +7 -7
- package/dist/components/{p-GrnK0v_A.js.map → p-BLQ37Esu.js.map} +1 -1
- package/dist/components/p-BLnHiJOJ.js +127 -0
- package/dist/components/p-BLnHiJOJ.js.map +1 -0
- package/dist/components/{p-xc8pAQt4.js → p-BQHu9-yW.js} +4 -4
- package/dist/components/{p-xc8pAQt4.js.map → p-BQHu9-yW.js.map} +1 -1
- package/dist/components/{p-DOx_fYz_.js → p-Bc8NC50u.js} +10 -10
- package/dist/components/{p-DOx_fYz_.js.map → p-Bc8NC50u.js.map} +1 -1
- package/dist/components/{p-DT1e8U5J.js → p-BdEkTr1V.js} +12 -12
- package/dist/components/{p-DT1e8U5J.js.map → p-BdEkTr1V.js.map} +1 -1
- package/dist/components/p-BlPbmOUJ.js +145 -0
- package/dist/components/p-BlPbmOUJ.js.map +1 -0
- package/dist/components/p-BpgguOkG.js +55 -0
- package/dist/components/{p-Zye2AvZI.js.map → p-BpgguOkG.js.map} +1 -1
- package/dist/components/p-Bt-g4GxB.js +113 -0
- package/dist/components/{p-rShdvhEn.js.map → p-Bt-g4GxB.js.map} +1 -1
- package/dist/components/{p-COFzcZWg.js → p-Bvoo3LWo.js} +6 -6
- package/dist/components/{p-COFzcZWg.js.map → p-Bvoo3LWo.js.map} +1 -1
- package/dist/components/{p-C0an_Y-_.js → p-C-YLmbpA.js} +4 -4
- package/dist/components/{p-C0an_Y-_.js.map → p-C-YLmbpA.js.map} +1 -1
- package/dist/components/{p-Dhuf9YNy.js → p-C2YAe0Ke.js} +3 -3
- package/dist/components/{p-Dhuf9YNy.js.map → p-C2YAe0Ke.js.map} +1 -1
- package/dist/components/{p-BQ0yCCV6.js → p-C4fbtLks.js} +5 -5
- package/dist/components/{p-BQ0yCCV6.js.map → p-C4fbtLks.js.map} +1 -1
- package/dist/components/{p-Csg2zfWF.js → p-C5i_qaws.js} +9 -9
- package/dist/components/{p-Csg2zfWF.js.map → p-C5i_qaws.js.map} +1 -1
- package/dist/components/{p-Bfvlw-rF.js → p-C7MtMQaw.js} +3 -3
- package/dist/components/{p-Bfvlw-rF.js.map → p-C7MtMQaw.js.map} +1 -1
- package/dist/components/{p-Ca9LbW-0.js → p-CB09ePCJ.js} +7 -7
- package/dist/components/{p-Ca9LbW-0.js.map → p-CB09ePCJ.js.map} +1 -1
- package/dist/components/{p-BEYgWj6b.js → p-CDPdfHLJ.js} +3 -3
- package/dist/components/{p-BEYgWj6b.js.map → p-CDPdfHLJ.js.map} +1 -1
- package/dist/components/p-CO0rmAnj.js +79 -0
- package/dist/components/{p-Drdp5Euh.js.map → p-CO0rmAnj.js.map} +1 -1
- package/dist/components/{p-uDj0XDfv.js → p-CRUuP7NU.js} +5 -5
- package/dist/components/{p-uDj0XDfv.js.map → p-CRUuP7NU.js.map} +1 -1
- package/dist/components/p-CS9zOcMw.js +126 -0
- package/dist/components/{p-aG9sejEo.js.map → p-CS9zOcMw.js.map} +1 -1
- package/dist/components/{p-a8Ave0b1.js → p-CZRPZKJ-.js} +11 -6
- package/dist/components/p-CZRPZKJ-.js.map +1 -0
- package/dist/components/{p-Cav9Xvhc.js → p-CZnSKQhh.js} +6 -6
- package/dist/components/{p-Cav9Xvhc.js.map → p-CZnSKQhh.js.map} +1 -1
- package/dist/components/{p-BQwk0OCD.js → p-C_gF8T8r.js} +12 -12
- package/dist/components/{p-BQwk0OCD.js.map → p-C_gF8T8r.js.map} +1 -1
- package/dist/components/{p-D5PoL4hp.js → p-CbjDD_ZV.js} +4 -4
- package/dist/components/{p-D5PoL4hp.js.map → p-CbjDD_ZV.js.map} +1 -1
- package/dist/components/{p-DHFOACHm.js → p-Cbmk_g-R.js} +5 -5
- package/dist/components/{p-DHFOACHm.js.map → p-Cbmk_g-R.js.map} +1 -1
- package/dist/components/{p-DeqB7qmW.js → p-CbwYwjdH.js} +3 -3
- package/dist/components/{p-DeqB7qmW.js.map → p-CbwYwjdH.js.map} +1 -1
- package/dist/components/{p-DXliIvkR.js → p-CiMfB3dP.js} +8 -8
- package/dist/components/{p-DXliIvkR.js.map → p-CiMfB3dP.js.map} +1 -1
- package/dist/components/p-CqgrsdCk.js +124 -0
- package/dist/components/p-CqgrsdCk.js.map +1 -0
- package/dist/components/{p-CaKYRiqR.js → p-CtIwL686.js} +4 -4
- package/dist/components/{p-CaKYRiqR.js.map → p-CtIwL686.js.map} +1 -1
- package/dist/components/{p-DTALiLAZ.js → p-D0EnDE_o.js} +4 -4
- package/dist/components/{p-DTALiLAZ.js.map → p-D0EnDE_o.js.map} +1 -1
- package/dist/components/{p-BTItt0Vn.js → p-DD6xErUJ.js} +43 -59
- package/dist/components/p-DD6xErUJ.js.map +1 -0
- package/dist/components/{p-CZjMEPqi.js → p-DFb_40q7.js} +7 -7
- package/dist/components/{p-CZjMEPqi.js.map → p-DFb_40q7.js.map} +1 -1
- package/dist/components/p-DIX7oTZv.js +112 -0
- package/dist/components/{p-DQjjDohc.js.map → p-DIX7oTZv.js.map} +1 -1
- package/dist/components/{p-2nxqY6Yv.js → p-DJ2KkdwP.js} +6 -6
- package/dist/components/{p-2nxqY6Yv.js.map → p-DJ2KkdwP.js.map} +1 -1
- package/dist/components/{p-C0WNBAqe.js → p-DRC94y7I.js} +5 -5
- package/dist/components/{p-C0WNBAqe.js.map → p-DRC94y7I.js.map} +1 -1
- package/dist/components/p-DUHqYYmX.js +161 -0
- package/dist/components/p-DUHqYYmX.js.map +1 -0
- package/dist/components/{p-D-KXyaWT.js → p-DXwuZde7.js} +6 -6
- package/dist/components/{p-D-KXyaWT.js.map → p-DXwuZde7.js.map} +1 -1
- package/dist/components/{p-CoklAWrF.js → p-DakbQEWw.js} +29 -29
- package/dist/components/{p-CoklAWrF.js.map → p-DakbQEWw.js.map} +1 -1
- package/dist/components/p-DdQFGe5w.js +225 -0
- package/dist/components/p-DdQFGe5w.js.map +1 -0
- package/dist/components/{p-b7Sv1iEG.js → p-DkfO3Url.js} +13 -13
- package/dist/components/{p-b7Sv1iEG.js.map → p-DkfO3Url.js.map} +1 -1
- package/dist/components/p-DtADJshZ.js +101 -0
- package/dist/components/p-DtADJshZ.js.map +1 -0
- package/dist/components/{p-DyI3f7kr.js → p-Dtzhm5Pa.js} +7 -7
- package/dist/components/{p-DyI3f7kr.js.map → p-Dtzhm5Pa.js.map} +1 -1
- package/dist/components/{p-DKrfS1S5.js → p-DwRMNFnU.js} +3 -3
- package/dist/components/{p-DKrfS1S5.js.map → p-DwRMNFnU.js.map} +1 -1
- package/dist/components/p-HxECzi7b.js +161 -0
- package/dist/components/{p-34NvdAct.js.map → p-HxECzi7b.js.map} +1 -1
- package/dist/components/p-KedgTCA1.js +61 -0
- package/dist/components/{p-a3QvEULN.js.map → p-KedgTCA1.js.map} +1 -1
- package/dist/components/{p-WYN1j0PL.js → p-L97C6UYO.js} +5 -5
- package/dist/components/{p-WYN1j0PL.js.map → p-L97C6UYO.js.map} +1 -1
- package/dist/components/{p-Khnj_GHE.js → p-PLHiwThd.js} +3 -3
- package/dist/components/{p-Khnj_GHE.js.map → p-PLHiwThd.js.map} +1 -1
- package/dist/components/{p-COEdIJkP.js → p-l6ffmvGW.js} +5 -5
- package/dist/components/{p-COEdIJkP.js.map → p-l6ffmvGW.js.map} +1 -1
- package/dist/components/{p-D1eldCje.js → p-m4eaolum.js} +4 -4
- package/dist/components/{p-D1eldCje.js.map → p-m4eaolum.js.map} +1 -1
- package/dist/components/{p-D6cBz4be.js → p-odaejdwA.js} +19 -19
- package/dist/components/{p-D6cBz4be.js.map → p-odaejdwA.js.map} +1 -1
- package/dist/components/p-sa3XE9PE.js +148 -0
- package/dist/components/p-sa3XE9PE.js.map +1 -0
- package/dist/components/{p-LsQYRhK6.js → p-x8gJGTdZ.js} +3 -3
- package/dist/components/p-x8gJGTdZ.js.map +1 -0
- package/dist/components/profile-history.js +1 -1
- package/dist/components/profile-info.js +1 -1
- package/dist/components/profile-media.js +1 -1
- package/dist/components/profile-tabs.js +1 -1
- package/dist/components/quick-message-add-template.js +1 -1
- package/dist/components/quick-message-app.js +13 -13
- package/dist/components/quick-message-app.js.map +1 -1
- package/dist/components/quick-message-button-content.js +1 -1
- package/dist/components/quick-message-file.js +1 -1
- package/dist/components/quick-message-image-content.js +1 -1
- package/dist/components/quick-message-image.js +1 -1
- package/dist/components/quick-message-menu-list-content.js +1 -1
- package/dist/components/quick-message-modal.js +1 -1
- package/dist/components/quick-message-template.js +1 -1
- package/dist/components/quick-message-text-content.js +1 -1
- package/dist/components/quick-message-video-content.js +1 -1
- package/dist/components/search-box.js +1 -1
- package/dist/components/status-badge.js +1 -1
- package/dist/components/summarize-message-section.js +1 -1
- package/dist/components/tag-list.js +1 -1
- package/dist/components/tag-or-status-item.js +1 -1
- package/dist/components/tag-popper.js +1 -1
- package/dist/components/typography-clamp.js +1 -1
- package/dist/components/user-info-section.js +1 -1
- package/dist/components/z-avatar.js +1 -1
- package/dist/components/z-dialog.js +1 -1
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
- package/dist/esm/autocomplete-address_43.entry.js +185 -137
- package/dist/esm/{dayjs-9U43dXkE.js → dayjs-CBRfzh5w.js} +4 -4
- package/dist/esm/dayjs-CBRfzh5w.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/quick-message-app.entry.js +3 -3
- package/dist/esm/quick-message-app.entry.js.map +1 -1
- package/dist/esm/zignal-stencil-library.js +1 -1
- package/dist/types/components/menu-list/menu-list.d.ts +3 -2
- package/dist/types/components/profile-history/profile-history.d.ts +1 -0
- package/dist/types/components/profile-info/profile-info.d.ts +2 -2
- package/dist/types/components/profile-info/user-info-section.d.ts +2 -0
- package/dist/types/components/z-avatar/z-avatar.d.ts +1 -1
- package/dist/types/components.d.ts +12 -2
- package/dist/types/store/store.d.ts +1 -1
- package/dist/zignal-stencil-library/{p-35a45709.entry.js → p-2fcff9fe.entry.js} +64 -64
- package/dist/zignal-stencil-library/p-2fcff9fe.entry.js.map +1 -0
- package/dist/zignal-stencil-library/p-4b0cf474.entry.js +2 -0
- package/dist/zignal-stencil-library/{p-b3cbf3e3.entry.js.map → p-4b0cf474.entry.js.map} +1 -1
- package/dist/zignal-stencil-library/p-CZlSuaCa.js +2 -0
- package/dist/zignal-stencil-library/p-CZlSuaCa.js.map +1 -0
- package/dist/zignal-stencil-library/p-DQuL1Twl.js.map +1 -1
- package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.css +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/dayjs-Dssqvl2P.js.map +0 -1
- package/dist/components/p-34NvdAct.js +0 -161
- package/dist/components/p-8c8Dr0ZV.js +0 -148
- package/dist/components/p-8c8Dr0ZV.js.map +0 -1
- package/dist/components/p-B0F3Fpbq.js +0 -127
- package/dist/components/p-B0F3Fpbq.js.map +0 -1
- package/dist/components/p-B5dJsgfS.js +0 -122
- package/dist/components/p-B5dJsgfS.js.map +0 -1
- package/dist/components/p-BAcE386V.js.map +0 -1
- package/dist/components/p-BTItt0Vn.js.map +0 -1
- package/dist/components/p-BtVgKal4.js +0 -116
- package/dist/components/p-BtVgKal4.js.map +0 -1
- package/dist/components/p-DBgHNduI.js +0 -35
- package/dist/components/p-DLUy8rmx.js +0 -223
- package/dist/components/p-DLUy8rmx.js.map +0 -1
- package/dist/components/p-DQjjDohc.js +0 -112
- package/dist/components/p-Drdp5Euh.js +0 -79
- package/dist/components/p-LsQYRhK6.js.map +0 -1
- package/dist/components/p-Zye2AvZI.js +0 -55
- package/dist/components/p-a3QvEULN.js +0 -61
- package/dist/components/p-a8Ave0b1.js.map +0 -1
- package/dist/components/p-aG9sejEo.js +0 -126
- package/dist/components/p-eM9QTWv9.js +0 -95
- package/dist/components/p-eM9QTWv9.js.map +0 -1
- package/dist/components/p-rShdvhEn.js +0 -113
- package/dist/components/p-tAmACNBr.js +0 -169
- package/dist/components/p-tAmACNBr.js.map +0 -1
- package/dist/esm/dayjs-9U43dXkE.js.map +0 -1
- package/dist/zignal-stencil-library/p-35a45709.entry.js.map +0 -1
- package/dist/zignal-stencil-library/p-DO7BhE7i.js +0 -2
- package/dist/zignal-stencil-library/p-DO7BhE7i.js.map +0 -1
- package/dist/zignal-stencil-library/p-b3cbf3e3.entry.js +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as readMessage, i as unReadMessage, j as getChatMessages, t as translateChatMessage } from './p-
|
|
2
|
-
import { a as chatsStore, s as selectedChatStore, m as messagesStore, c as configStore } from './p-
|
|
3
|
-
import { M as MESSAGE_PAGE_LIMIT } from './p-
|
|
1
|
+
import { r as readMessage, i as unReadMessage, j as getChatMessages, t as translateChatMessage } from './p-CB09ePCJ.js';
|
|
2
|
+
import { a as chatsStore, s as selectedChatStore, m as messagesStore, c as configStore } from './p-x8gJGTdZ.js';
|
|
3
|
+
import { M as MESSAGE_PAGE_LIMIT } from './p-DwRMNFnU.js';
|
|
4
4
|
import { d as dayjs } from './p-B_5_ahYE.js';
|
|
5
|
-
import { h as handleError } from './p-
|
|
5
|
+
import { h as handleError } from './p-C2YAe0Ke.js';
|
|
6
6
|
|
|
7
7
|
const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
|
|
8
8
|
|
|
@@ -442,14 +442,46 @@ function handleMapReadMessage() {
|
|
|
442
442
|
setTimeout(() => {
|
|
443
443
|
const reads = messagesStore.get('reads');
|
|
444
444
|
const messages = messagesStore.get('messages');
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
445
|
+
if (messages.length === 0 || reads.length === 0) {
|
|
446
|
+
messagesStore.set('readsMap', {});
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
const readsMap = {};
|
|
450
|
+
const sortedMessages = [...messages]
|
|
451
|
+
.map(msg => ({
|
|
452
|
+
id: msg.id,
|
|
453
|
+
timestamp: dayjs(msg.message_at).valueOf()
|
|
454
|
+
}))
|
|
455
|
+
.sort((a, b) => a.timestamp - b.timestamp);
|
|
456
|
+
const validReads = reads
|
|
457
|
+
.filter(read => read.read_at)
|
|
458
|
+
.map(read => ({
|
|
459
|
+
reader: read,
|
|
460
|
+
timestamp: dayjs(read.read_at).valueOf()
|
|
461
|
+
}))
|
|
462
|
+
.sort((a, b) => a.timestamp - b.timestamp);
|
|
463
|
+
if (validReads.length === 0) {
|
|
464
|
+
messagesStore.set('readsMap', {});
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
467
|
+
const assignedReadIndices = new Set();
|
|
468
|
+
for (let i = sortedMessages.length - 1; i >= 0; i--) {
|
|
469
|
+
const message = sortedMessages[i];
|
|
470
|
+
const applicableReads = [];
|
|
471
|
+
for (let j = 0; j < validReads.length; j++) {
|
|
472
|
+
if (assignedReadIndices.has(j))
|
|
473
|
+
continue;
|
|
474
|
+
if (validReads[j].timestamp > message.timestamp) {
|
|
475
|
+
applicableReads.push(validReads[j].reader);
|
|
476
|
+
assignedReadIndices.add(j);
|
|
451
477
|
}
|
|
452
478
|
}
|
|
479
|
+
if (applicableReads.length > 0) {
|
|
480
|
+
readsMap[message.id] = applicableReads;
|
|
481
|
+
}
|
|
482
|
+
if (assignedReadIndices.size === validReads.length) {
|
|
483
|
+
break;
|
|
484
|
+
}
|
|
453
485
|
}
|
|
454
486
|
messagesStore.set('readsMap', readsMap);
|
|
455
487
|
}, 300);
|
|
@@ -744,6 +776,6 @@ function getMessagePicture(sender, item) {
|
|
|
744
776
|
}
|
|
745
777
|
|
|
746
778
|
export { serviceUnReadMessage as a, serviceUpdateMessageItems as b, serviceUpdateChatItem as c, scrollBottomMessage as d, storeTranslation as e, getMessagePicture as f, getTranslation as g, scrollToMessage as h, handleGetChatMessages as i, initDB as j, getOrFetchTranslation as k, handleMapReadMessage as l, serviceReadMessage as s };
|
|
747
|
-
//# sourceMappingURL=p-
|
|
779
|
+
//# sourceMappingURL=p-5S7W_s42.js.map
|
|
748
780
|
|
|
749
|
-
//# sourceMappingURL=p-
|
|
781
|
+
//# sourceMappingURL=p-5S7W_s42.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-5S7W_s42.js","mappings":"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","names":[],"sources":["../../node_modules/idb/build/index.js","src/store/message.ts"],"sourcesContent":["const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst transactionDoneMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n // This mapping exists in reverseTransformCache but doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(this.request);\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nconst advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];\nconst methodMap = {};\nconst advanceResults = new WeakMap();\nconst ittrProxiedCursorToOriginalProxy = new WeakMap();\nconst cursorIteratorTraps = {\n get(target, prop) {\n if (!advanceMethodProps.includes(prop))\n return target[prop];\n let cachedFunc = methodMap[prop];\n if (!cachedFunc) {\n cachedFunc = methodMap[prop] = function (...args) {\n advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));\n };\n }\n return cachedFunc;\n },\n};\nasync function* iterate(...args) {\n // tslint:disable-next-line:no-this-assignment\n let cursor = this;\n if (!(cursor instanceof IDBCursor)) {\n cursor = await cursor.openCursor(...args);\n }\n if (!cursor)\n return;\n cursor = cursor;\n const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);\n ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);\n // Map this double-proxy back to the original, so other cursor methods work.\n reverseTransformCache.set(proxiedCursor, unwrap(cursor));\n while (cursor) {\n yield proxiedCursor;\n // If one of the advancing methods was not called, call continue().\n cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());\n advanceResults.delete(proxiedCursor);\n }\n}\nfunction isIteratorProp(target, prop) {\n return ((prop === Symbol.asyncIterator &&\n instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor])) ||\n (prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore])));\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get(target, prop, receiver) {\n if (isIteratorProp(target, prop))\n return iterate;\n return oldTraps.get(target, prop, receiver);\n },\n has(target, prop) {\n return isIteratorProp(target, prop) || oldTraps.has(target, prop);\n },\n}));\n\nexport { deleteDB, openDB, unwrap, wrap };\n","import { openDB, DBSchema, IDBPDatabase } from 'idb';\nimport { getChatMessages, readMessage, translateChatMessage, unReadMessage } from '../api';\nimport { chatsStore, configStore, messagesStore, selectedChatStore } from './store';\nimport { MESSAGE_PAGE_LIMIT } from '../utils/constant';\nimport {\n ChannelType,\n ChatMessageItem,\n ChatMessageReader,\n ChatMessageTemplateAction,\n ChatSender,\n MessageAttachmentPayloadButton,\n QuickMessageTemplateButton,\n QuickMessageTemplateMenuListItem,\n TChatItem,\n} from './type';\nimport dayjs from 'dayjs';\nimport { handleError } from './dialog';\n\ninterface TranslatedMessage {\n business_id: string;\n shop_id: string;\n chat_id: string;\n message_id: string;\n translated_text: string;\n created_at?: number;\n}\n\ninterface TranslationDB extends DBSchema {\n translations: {\n key: string; // `${business_id}-${shop_id}-${chat_id}-${message_id}`\n value: TranslatedMessage;\n };\n}\n\nlet dbPromise: Promise<IDBPDatabase<TranslationDB>>;\n\nexport function initDB() {\n dbPromise = openDB<TranslationDB>('TranslationsDB', 1, {\n upgrade(db) {\n if (!db.objectStoreNames.contains('translations')) {\n db.createObjectStore('translations');\n }\n },\n });\n}\n\nfunction makeKey({ chat_id, message_id }: { chat_id: string; message_id: string }) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n return `${businessId}-${shopId}-${chat_id}-${message_id}`;\n}\n\nexport async function getTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n const db = await dbPromise;\n\n const keys = message_ids.map(message_id => makeKey({ chat_id, message_id }));\n\n const results = await Promise.all(keys.map(key => db.get('translations', key)));\n\n return results.filter((item): item is NonNullable<typeof item> => !!item);\n}\n\nexport async function storeTranslation(data: { chat_id: string; message_id: string; translated_text: string }) {\n const db = await dbPromise;\n const { chat_id, message_id } = data;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const key = makeKey({ chat_id, message_id });\n\n await db.put(\n 'translations',\n {\n ...data,\n business_id: businessId,\n shop_id: shopId,\n created_at: Date.now(),\n },\n key,\n );\n}\n\nexport async function getTranslationsByChat({ business_id, shop_id, chat_id }: { business_id: string; shop_id: string; chat_id: string }) {\n const db = await dbPromise;\n const tx = db.transaction('translations', 'readonly');\n const store = tx.objectStore('translations');\n\n const all: any[] = [];\n let cursor = await store.openCursor();\n while (cursor) {\n if (cursor.value.business_id === business_id && cursor.value.shop_id === shop_id && cursor.value.chat_id === chat_id) {\n all.push(cursor.value);\n }\n cursor = await cursor.continue();\n }\n return all;\n}\n\nasync function fetchAndStoreTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n try {\n const translatedResponse = await translateChatMessage({\n sessionId: chat_id,\n messageIds: message_ids,\n });\n\n for (const message of translatedResponse?.messages || []) {\n await storeTranslation({\n chat_id,\n message_id: message.id,\n translated_text: message.text,\n });\n }\n\n return translatedResponse;\n } catch (error: unknown) {\n handleError(error, 'Failed to Translate Chat Message');\n }\n}\n\nexport async function getOrFetchTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n if (message_ids.length === 0) return { messages: [] };\n\n const cachedTranslations = await getTranslation({ chat_id, message_ids });\n if (cachedTranslations.length > 0) {\n const transformedTranslations = cachedTranslations.map(item => ({\n id: item.message_id,\n text: item.translated_text,\n }));\n return { messages: transformedTranslations };\n }\n return fetchAndStoreTranslation({ chat_id, message_ids });\n}\n\nexport async function handleGetChatMessages({ startMessageId, next, prev, isNewer = false }: { startMessageId?: string; next?: string; prev?: string; isNewer?: boolean }) {\n const loadedKeys = messagesStore.get('loadedKeys');\n if ((next && loadedKeys.has(next)) || (prev && loadedKeys.has(prev))) return;\n\n const selectedChat = selectedChatStore.get('selectedChat');\n\n const {\n messages,\n reads,\n next: nextKey,\n prev: prevKey,\n } = await getChatMessages({\n sessionId: selectedChat.id,\n limit: MESSAGE_PAGE_LIMIT,\n next: startMessageId ? undefined : next,\n prev,\n startMessageId,\n });\n if (!messages.length) return;\n let translatedMessages = messages;\n const translationSettings = configStore.get('translationSettings');\n\n if (translationSettings.is_auto && selectedChat.language !== translationSettings.target_language && !translationSettings.exclude_languages.includes(selectedChat.language)) {\n const translatedResponse = await getOrFetchTranslation({\n chat_id: selectedChat.id,\n message_ids: messages.filter(item => item.text).map(item => item.id),\n });\n\n const translatedMap = new Map((translatedResponse?.messages ?? []).map(m => [m.id, m.text]));\n\n translatedMessages = messages.map(item => ({\n ...item,\n translatedText: translatedMap.get(item.id) ?? item.translatedText,\n }));\n }\n const isJumpMessage = Boolean(startMessageId);\n serviceUpdateMessageItems({ updateMessages: translatedMessages, clearMessages: isJumpMessage });\n\n messagesStore.set('reads', reads);\n const keys = { next: nextKey, prev: prevKey };\n messagesStore.set(isNewer ? 'newer' : 'older', keys);\n messagesStore.set('jumpMessageId', startMessageId);\n if (next || prev) {\n messagesStore.set('loadedKeys', new Set([...loadedKeys, next, prev]));\n }\n\n if (isJumpMessage && keys.prev && translatedMessages.length < MESSAGE_PAGE_LIMIT) {\n console.log('Load more automatic');\n await handleGetChatMessages({ prev: keys.prev, isNewer });\n }\n\n setTimeout(() => {\n handleMapReadMessage();\n }, 300);\n}\n\nexport function serviceUpdateMessageItems({\n updateMessages,\n clearSending = false,\n clearMessages = false,\n}: {\n updateMessages: ChatMessageItem[];\n clearSending?: boolean;\n clearMessages?: boolean;\n}) {\n const selectedChat = selectedChatStore.get('selectedChat');\n const channel = selectedChat?.channel;\n\n const mappedUpdateMessages = updateMessages\n .map(item => mapTemplateContent(item, channel))\n .filter((item): item is ChatMessageItem => Boolean(item));\n\n if (!mappedUpdateMessages.length) return;\n const messages = clearMessages ? [] : messagesStore.get('messages');\n\n let newMessages: ChatMessageItem[] = [];\n let oldMessages: ChatMessageItem[] = [];\n\n if (mappedUpdateMessages.length > 1 && dayjs(mappedUpdateMessages[0].message_at).isAfter(dayjs(mappedUpdateMessages[mappedUpdateMessages.length - 1].message_at))) {\n newMessages = mappedUpdateMessages.reverse();\n } else {\n newMessages = mappedUpdateMessages;\n }\n\n if (messages.length > 1 && dayjs(messages[0].message_at).isAfter(dayjs(messages[messages.length - 1].message_at))) {\n oldMessages = messages.reverse();\n } else {\n oldMessages = messages;\n }\n\n let mergedMessages: ChatMessageItem[] = [];\n if (newMessages.length && oldMessages.length && dayjs(newMessages[0].message_at).isAfter(oldMessages[0].message_at)) {\n mergedMessages = [...oldMessages, ...newMessages];\n } else {\n mergedMessages = [...newMessages, ...oldMessages];\n }\n\n const filteredMessages = clearSending ? mergedMessages.filter(item => !item.isSending) : mergedMessages;\n\n const uniqueMessages = Array.from(new Map(filteredMessages.map(m => [m.id, m])).values());\n\n messagesStore.set('messages', uniqueMessages);\n}\n\nexport function handleMapReadMessage() {\n setTimeout(() => {\n const reads = messagesStore.get('reads');\n const messages = messagesStore.get('messages');\n\n if (messages.length === 0 || reads.length === 0) {\n messagesStore.set('readsMap', {});\n return;\n }\n\n const readsMap: Record<string, ChatMessageReader[]> = {};\n\n const sortedMessages = [...messages]\n .map(msg => ({\n id: msg.id,\n timestamp: dayjs(msg.message_at).valueOf()\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n\n const validReads = reads\n .filter(read => read.read_at)\n .map(read => ({\n reader: read,\n timestamp: dayjs(read.read_at).valueOf()\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n\n if (validReads.length === 0) {\n messagesStore.set('readsMap', {});\n return;\n }\n\n const assignedReadIndices = new Set<number>();\n\n for (let i = sortedMessages.length - 1; i >= 0; i--) {\n const message = sortedMessages[i];\n const applicableReads: ChatMessageReader[] = [];\n\n for (let j = 0; j < validReads.length; j++) {\n if (assignedReadIndices.has(j)) continue;\n\n if (validReads[j].timestamp > message.timestamp) {\n applicableReads.push(validReads[j].reader);\n assignedReadIndices.add(j);\n }\n }\n\n if (applicableReads.length > 0) {\n readsMap[message.id] = applicableReads;\n }\n\n if (assignedReadIndices.size === validReads.length) {\n break;\n }\n }\n\n messagesStore.set('readsMap', readsMap);\n }, 300);\n}\n\nexport async function serviceReadMessage(sessionId: string) {\n const { last_read_at } = await readMessage({ sessionId });\n if (last_read_at) {\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n mark_as_unread: false,\n unread_count: 0,\n updated_at: last_read_at,\n },\n });\n return true;\n }\n return false;\n}\n\nexport async function serviceUnReadMessage(sessionId: string) {\n const { code } = await unReadMessage({ sessionId });\n if (code === 'chat-marked-as-unread') {\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n mark_as_unread: true,\n },\n });\n return true;\n }\n return false;\n}\n\nexport function serviceUpdateChatItem({ chatId, updateValue }: { chatId: string; updateValue: Partial<TChatItem> }) {\n const chats = chatsStore.get('chats');\n const idx = chats.findIndex(chat => chat.id === chatId);\n\n if (idx !== -1) {\n const updatedChats = [\n ...chats.slice(0, idx),\n {\n ...chats[idx],\n ...updateValue,\n },\n ...chats.slice(idx + 1),\n ];\n chatsStore.set('chats', updatedChats);\n }\n}\n\nexport function scrollBottomMessage(chatId: string) {\n setTimeout(() => {\n const messageContainer = document.getElementById(`message-box-${chatId}`);\n if (messageContainer) {\n messageContainer.scrollTop = messageContainer.scrollHeight;\n }\n }, 100);\n}\n\nexport function scrollToMessage(messageId: string) {\n const messageElement = document.getElementById(`message-${messageId}`);\n if (messageElement) {\n messageElement.scrollIntoView({ behavior: 'smooth' });\n }\n\n const messageContentElement = document.getElementById(`message-content-${messageId}`);\n if (messageContentElement) {\n messageContentElement.focus();\n }\n\n return Boolean(messageElement);\n}\n\n\n\nfunction generateTemplateId(prefix: string) {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return `${prefix}-${crypto.randomUUID()}`;\n }\n return `${prefix}-${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`;\n}\n\nfunction createTemplateButton({\n actionType,\n text,\n action,\n sequence,\n}: {\n actionType: QuickMessageTemplateButton['action_type'];\n text?: string | null;\n action?: string | null;\n sequence?: number;\n}): QuickMessageTemplateButton {\n const button: QuickMessageTemplateButton = {\n id: generateTemplateId('btn'),\n action_type: actionType,\n };\n\n const trimmedText = text?.trim();\n if (trimmedText) {\n button.text = trimmedText;\n }\n\n const trimmedAction = action?.trim();\n if (trimmedAction) {\n button.action = trimmedAction;\n }\n\n if (typeof sequence === 'number') {\n button.sequence = sequence;\n }\n\n return button;\n}\n\nfunction createMenuListItem({\n fileUrl,\n title,\n description,\n buttons,\n sequence,\n}: {\n fileUrl?: string | null;\n title?: string | null;\n description?: string | null;\n buttons: QuickMessageTemplateButton[];\n sequence?: number;\n}): QuickMessageTemplateMenuListItem {\n const menuItem: QuickMessageTemplateMenuListItem = {\n id: generateTemplateId('menu'),\n buttons,\n };\n\n const trimmedFileUrl = fileUrl?.trim();\n if (trimmedFileUrl) {\n menuItem.file_url = trimmedFileUrl;\n }\n\n const trimmedTitle = title?.trim();\n if (trimmedTitle) {\n menuItem.title = trimmedTitle;\n }\n\n const trimmedDescription = description?.trim();\n if (trimmedDescription) {\n menuItem.description = trimmedDescription;\n }\n\n if (typeof sequence === 'number') {\n menuItem.sequence = sequence;\n }\n\n return menuItem;\n}\n\nfunction mapLineActionType(label?: string | null): QuickMessageTemplateButton['action_type'] {\n switch (label) {\n case 'url':\n return 'url';\n case 'tel':\n return 'tel';\n default:\n return 'text';\n }\n}\n\nfunction mapLineTemplateActions(actions?: ChatMessageTemplateAction[] | null): QuickMessageTemplateButton[] {\n if (!actions || actions.length === 0) {\n return [];\n }\n\n return actions\n .map((action, index) =>\n createTemplateButton({\n actionType: mapLineActionType(action?.label),\n text: action?.label ?? action?.text ?? '',\n action: action?.uri ?? undefined,\n sequence: index + 1,\n }),\n )\n .filter(button => Boolean(button.text || button.action));\n}\n\nfunction mapMetaActionType(type?: string | null): QuickMessageTemplateButton['action_type'] {\n switch (type) {\n case 'web_url':\n return 'url';\n case 'phone_number':\n return 'tel';\n default:\n return 'text';\n }\n}\n\nfunction mapMetaPayloadButtons(buttons?: MessageAttachmentPayloadButton[] | null): QuickMessageTemplateButton[] {\n if (!buttons || buttons.length === 0) {\n return [];\n }\n\n return buttons\n .map((button, index) =>\n createTemplateButton({\n actionType: mapMetaActionType(button?.type),\n text: button?.title ?? '',\n action: button?.payload ?? button?.url ?? undefined,\n sequence: index + 1,\n }),\n )\n .filter(button => Boolean(button.text || button.action));\n}\n\nfunction processButtonContent({\n message,\n channel,\n}: {\n message: ChatMessageItem;\n channel?: ChannelType | null;\n}): { buttons: QuickMessageTemplateButton[]; text?: string } {\n if (!channel) {\n return { buttons: [] };\n }\n\n switch (channel) {\n case 'line': {\n const template = message.template;\n if (template?.type === 'buttons') {\n return {\n buttons: mapLineTemplateActions(template.actions),\n text: template.text ?? message.text,\n };\n }\n break;\n }\n case 'facebook':\n case 'instagram': {\n const attachments = message.attachments ?? [];\n const buttons: QuickMessageTemplateButton[] = [];\n let templateText: string | undefined;\n for (const attachment of attachments) {\n if (attachment.type !== 'template') continue;\n const payload = attachment.payload;\n if (payload?.template_type !== 'button') continue;\n buttons.push(...mapMetaPayloadButtons(payload.buttons));\n if (!templateText && payload.text) {\n templateText = payload.text;\n }\n }\n return { buttons, text: templateText };\n }\n default:\n break;\n }\n\n return { buttons: [] };\n}\n\nfunction processMenuListContent({\n message,\n channel,\n}: {\n message: ChatMessageItem;\n channel?: ChannelType | null;\n}): QuickMessageTemplateMenuListItem[] {\n if (!channel) {\n return [];\n }\n\n switch (channel) {\n case 'line': {\n const template = message.template;\n if (!template) {\n return [];\n }\n\n if (template.type === 'carousel' || template.type === 'image_carousel') {\n const columns = template.columns ?? [];\n return columns\n .map((column, index) => {\n const buttons = mapLineTemplateActions(column?.actions);\n const menuItem = createMenuListItem({\n fileUrl: column?.thumbnailImageUrl,\n title: column?.title,\n description: column?.text,\n buttons,\n sequence: index + 1,\n });\n if (menuItem.buttons.length === 0 && !menuItem.file_url && !menuItem.title && !menuItem.description) {\n return null;\n }\n return menuItem;\n })\n .filter((menuItem): menuItem is QuickMessageTemplateMenuListItem => menuItem !== null);\n }\n break;\n }\n case 'facebook':\n case 'instagram': {\n const attachments = message.attachments ?? [];\n const menuList: QuickMessageTemplateMenuListItem[] = [];\n let sequence = 0;\n for (const attachment of attachments) {\n if (attachment.type !== 'template') continue;\n const payload = attachment.payload;\n if (payload?.template_type !== 'generic') continue;\n const elements = payload.elements ?? [];\n for (const element of elements) {\n sequence += 1;\n const buttons = mapMetaPayloadButtons(element?.buttons);\n const menuItem = createMenuListItem({\n fileUrl: element?.image_url,\n title: element?.title,\n description: element?.subtitle,\n buttons,\n sequence,\n });\n if (menuItem.buttons.length === 0 && !menuItem.file_url && !menuItem.title && !menuItem.description) {\n continue;\n }\n menuList.push(menuItem);\n }\n }\n return menuList;\n }\n default:\n break;\n }\n\n return [];\n}\n\nfunction mapTemplateContent(message: ChatMessageItem, channel?: ChannelType | null): ChatMessageItem | null {\n const hasTemplateData =\n Boolean(message.template) || Boolean(message.attachments?.some(attachment => attachment.type === 'template'));\n\n const selectedChannel = channel ?? selectedChatStore.get('selectedChat')?.channel;\n if (!selectedChannel) {\n return hasTemplateData ? null : message;\n }\n\n if (!hasTemplateData) {\n return message;\n }\n\n const { buttons, text: buttonText } = processButtonContent({ message, channel: selectedChannel });\n const menuList = processMenuListContent({ message, channel: selectedChannel });\n\n const hasButtons = buttons.length > 0;\n const hasMenuList = menuList.length > 0;\n\n if (!hasButtons && !hasMenuList) {\n return null;\n }\n\n const nextMessage: ChatMessageItem = {\n ...message,\n text: message.text || buttonText || '',\n type: hasMenuList ? 'menu_list' : hasButtons ? 'button' : message.type,\n };\n\n nextMessage.buttons = hasButtons ? buttons : undefined;\n nextMessage.menu_list = hasMenuList ? menuList : undefined;\n\n return nextMessage;\n}\n\nexport function getMessagePicture(sender: ChatSender, item: TChatItem) {\n if (item.type === 'user') {\n return item.user?.picture_url || '';\n }\n if (item.type === 'group') {\n return sender.picture_url || item?.group?.picture_url || '';\n }\n return '';\n}\n"],"version":3}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-D_ltSEZy.js';
|
|
2
|
-
import { c as configStore } from './p-
|
|
2
|
+
import { c as configStore } from './p-x8gJGTdZ.js';
|
|
3
3
|
import { u as useTranslation } from './p-GPPFvEYq.js';
|
|
4
4
|
import { I as Icon } from './p-CErcZoEr.js';
|
|
5
|
-
import { Q as QuickMessageTemplateButtonList, a as QuickMessageTemplateButtonDialog } from './p-
|
|
5
|
+
import { Q as QuickMessageTemplateButtonList, a as QuickMessageTemplateButtonDialog } from './p-CbwYwjdH.js';
|
|
6
6
|
|
|
7
7
|
const QuickMessageMenuListContentComponent = /*@__PURE__*/ proxyCustomElement(class QuickMessageMenuListContentComponent extends H {
|
|
8
8
|
constructor(registerHost) {
|
|
@@ -253,6 +253,6 @@ function defineCustomElement() {
|
|
|
253
253
|
defineCustomElement();
|
|
254
254
|
|
|
255
255
|
export { QuickMessageMenuListContentComponent as Q, defineCustomElement as d };
|
|
256
|
-
//# sourceMappingURL=p-
|
|
256
|
+
//# sourceMappingURL=p-5z3Oz7nB.js.map
|
|
257
257
|
|
|
258
|
-
//# sourceMappingURL=p-
|
|
258
|
+
//# sourceMappingURL=p-5z3Oz7nB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-7VwG3GTl.js","mappings":";;;;;;MAWa,oCAAoC,iBAAAA,kBAAA,CAAA,MAAA,oCAAA,SAAAC,CAAA,CAAA;;;;;;;;AACvC,IAAA,OAAO;IACP,WAAW,GAAW,EAAE;IACxB,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B,cAAc,GAAW,EAAE;IAC3B,oBAAoB,GAAW,EAAE;IACjC,cAAc,GAAW,CAAC;IAC1B,mBAAmB,GAAW,EAAE;AAEE,IAAA,aAAa;IAEtC,kBAAkB,GAAG,KAAK;AAC1B,IAAA,kBAAkB;IAClB,iBAAiB,GAAW,EAAE;IAC9B,kBAAkB,GAAW,EAAE;IAC/B,gBAAgB,GAAqC,MAAM;AAC3D,IAAA,eAAe;IACf,UAAU,GAAuC,EAAE;IAE5D,UAAU,GAAiD,EAAE;AAE7D,IAAA,WAAW,CAAC,MAA4C,EAAA;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;;QAGF,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;AAClD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;;AAG9B,IAAA,cAAc,CAAC,OAA0F,EAAA;AAC/G,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;;QAGF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACjD,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;;IAGpC,UAAU,CAAC,MAAc,EAAE,OAAqF,EAAA;AACtH,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,IACvB,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AACf,YAAA,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE;AACtB,gBAAA,OAAO,IAAI;;AAGb,YAAA,MAAM,KAAK,GAAqC;AAC9C,gBAAA,GAAG,IAAI;gBACP,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;aACnC;AAED,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC;SACtB,CAAC,CACH;;IAGc,aAAa,GAAG,MAAK;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACvD,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YAClC;;AAGF,QAAA,MAAM,OAAO,GAAqC;AAChD,YAAA,EAAE,EAAE,CAAQ,KAAA,EAAA,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAE,CAAA;AAC5D,YAAA,OAAO,EAAE,EAAE;SACZ;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC;AACnD,KAAC;AAEO,IAAA,gBAAgB,CAAC,MAAc,EAAA;QACrC,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;AACtE,QAAA,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;IAGhB,WAAW,CAAC,MAAc,EAAE,SAA0B,EAAA;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,IAAG;AAC1B,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;AAChE,YAAA,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,gBAAA,OAAO,KAAK;;AAGd,YAAA,MAAM,WAAW,GAAG,SAAS,KAAK,MAAM,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;YAC9E,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE;AAClD,gBAAA,OAAO,KAAK;;AAGd,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;AACrG,YAAA,OAAO,SAAS;AAClB,SAAC,CAAC;;IAGI,YAAY,CAAC,MAAc,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;IAG/C,kBAAkB,CAAC,MAAc,EAAE,WAAmB,EAAA;AAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;;AAGrD,IAAA,iBAAiB,CAAC,MAAc,EAAA;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE;;IAG1B,iBAAiB,CAAC,MAAc,EAAE,KAAY,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,QAAA,MAAM,CAAC,GAAG,cAAc,EAAE;QAE1B,IAAI,CAAC,IAAI,EAAE;YACT;;QAGF,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,+BAA+B,CAAC,EAAE;AACtF,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;YAChB;;AAGF,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,MAAgB;YACnC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE;AAC7D,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE;AAClB,SAAC;AACD,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;;AAGpB,IAAA,iBAAiB,CAAC,MAAc,EAAA;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE;;IAGvD,gBAAgB,CAAC,MAAc,EAAE,MAAmC,EAAA;AAC1E,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,EAAE;QACjC,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE;QAC3C,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,WAAW,IAAI,MAAM;AACrD,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE;AACtE,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;IAGxB,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM;;AAGxB,IAAA,mBAAmB,CAAC,IAAsC,EAAA;AAChE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;;;IAIxB,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B;;QAGF,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB;AACxC,QAAA,MAAM,WAAW,GAAG,UAAU,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAEtF,QAAA,IAAI,CAAC,KAAK,KAAK,UAAU,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE;YACrD;;AAGF,QAAA,MAAM,MAAM,GAA+B;YACzC,EAAE,EAAE,IAAI,CAAC,eAAe,IAAI,CAAe,YAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAE,CAAA;AAC3F,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,MAAM,EAAE,WAAW;SACpB;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAG;AAC9C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;iBAC1F;;YAGH,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AACzC,gBAAA,OAAO,IAAI;;AAGb,YAAA,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE;AACnD,SAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;;IAGlB,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACrD;;QAGF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,KAAK;AAChD,YAAA,GAAG,IAAI;YACP,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC;AACnF,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE;;AAGlB,IAAA,iBAAiB,CAAC,MAAc,EAAE,QAAgB,EAAE,SAAwB,EAAA;AAClF,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,IAAG;AAC7B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AAClC,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;AACxE,YAAA,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,gBAAA,OAAO,IAAI;;AAGb,YAAA,MAAM,WAAW,GAAG,SAAS,KAAK,IAAI,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;YAC5E,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE;AACpD,gBAAA,OAAO,IAAI;;AAGb,YAAA,MAAM,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC;YAChC,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YAE7G,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE;AAC1C,SAAC,CAAC;;IAGI,cAAc,CAAC,IAAsC,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa,EAAE,CAAoC,EAAA;AAC9I,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC9B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACtC,QAAA,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC;AAC3B,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC;AAElC,QAAA,MAAM,WAAW,GAAG,CAAoB,iBAAA,EAAA,KAAK,EAAE;AAC/C,QAAA,MAAM,gBAAgB,GAAG,CAAkB,eAAA,EAAA,KAAK,EAAE;AAClD,QAAA,MAAM,aAAa,GAAG,CAAe,YAAA,EAAA,KAAK,EAAE;AAC5C,QAAA,MAAM,eAAe,GAAG,CAAgB,aAAA,EAAA,KAAK,EAAE;QAE/C,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iCAAiC,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAA,EACvD,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,4FAA4F,WAAW,CAAA,CAAA,EAAI,eAAe,CAAE,CAAA,EAAA,EACtI,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,0FAA0F,EAAA,EACnG,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,6CAA6C,EAAA,EACrD,CAAC,OAAO,KACP,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,gGAAgG,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAI,CAAA,EAAA,eAAe,CAAuG,qGAAA,CAAA,EAAA,YAAA,EAClP,CAAC,CAAC,yBAAyB,CAAC,EACxC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAA,EAEhD,CAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAG,CAAA,CACtC,CACV,EACA,CAAC,MAAM,KACN,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,CAAgG,6FAAA,EAAA,KAAK,mBAAmB,KAAK,CAAA,CAAA,EAAI,eAAe,CAAuG,qGAAA,CAAA,EAAA,YAAA,EAClP,CAAC,CAAC,0BAA0B,CAAC,EACzC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAA,EAEhD,CAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,QAAQ,EAAA,CAAG,CACvC,CACV,CACG,EACN,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,CAAiG,8FAAA,EAAA,KAAK,CAAuG,qGAAA,CAAA,EACpN,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EACjC,YAAA,EAAA,CAAC,CAAC,QAAQ,CAAC,EAAA,EAEvB,CAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAG,CAAA,CACjC,CACL,EACN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,6DAA6D,WAAW,CAAA,CAAE,EAAA,EACpF,CACE,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,SAAS,EAChB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAsB,CAAC,EAC9D,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EACzD,CAAA,EACD,IAAI,CAAC,QAAQ,IACZ,EAAC,QAAQ,EAAA,IAAA,EACP,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,MAAM,EAAG,CAAA,EAC9H,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,8HAA8H,EAAA,EACvI,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,gIAAgI,EACtI,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,EAE9C,CAAC,CAAA,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAG,CAAA,EACvC,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,CAAC,CAAC,4BAA4B,CAAC,CAAQ,CACvC,EACT,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,8HAA8H,EACpI,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,EAE9C,CAAC,CAAA,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAG,CAAA,EACxC,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,CAAC,CAAC,QAAQ,CAAC,CAAQ,CACnB,CACL,CACG,KAEX,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,CAA2F,wFAAA,EAAA,gBAAgB,IAAI,eAAe,CAAA,eAAA,CAAiB,EACtJ,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,EAE9C,CAAC,CAAA,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAG,CAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,qCAAqC,EAAA,QAAI,CAAC,CAAC,yBAAyB,CAAC,CAAQ,EACzF,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,uBAAuB,aAAa,CAAA,CAAE,EAAA,EAAG,CAAC,CAAC,+BAA+B,CAAC,CAAQ,CACzF,CACV,CACG,EAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,+BAA+B,EAAA,EACxC,CAAA,CAAA,KAAA,EAAA,IAAA,EACE,CACE,CAAA,UAAA,EAAA,EAAA,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,CAAC,CAAC,+BAA+B,CAAC,EAC/C,KAAK,EAAC,+GAA+G,EACrH,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAG,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC,EACzF,CAAA,EACF,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,sBAAsB,aAAa,CAAA,CAAE,EAAA,EAC9C,KAAK,CAAC,MAAM,OAAG,IAAI,CAAC,cAAc,CAC/B,CACF,EAEN,CAAA,CAAA,KAAA,EAAA,IAAA,EACE,CACE,CAAA,UAAA,EAAA,EAAA,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,IAAI,CAAC,oBAAoB,EACpC,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,CAAC,CAAC,qCAAqC,CAAC,EACrD,KAAK,EAAC,iGAAiG,EACvG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAG,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC,EAC/F,CAAA,EACF,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,CAAsB,mBAAA,EAAA,aAAa,CAAE,CAAA,EAAA,EAC9C,WAAW,CAAC,MAAM,OAAG,IAAI,CAAC,oBAAoB,CAC3C,CACF,EAEN,CAAA,CAAC,8BAA8B,EAC7B,EAAA,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,cAAc,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAC7C,aAAa,EAAE,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAC/D,WAAW,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EACjD,eAAe,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,EAC9F,SAAS,EAAC,qBAAqB,EAC/B,WAAW,EAAC,MAAM,EAAA,CAClB,CACE,CACF,EAEL,KAAK,IAAI,CAAG,CAAA,GAAA,EAAA,EAAA,KAAK,EAAC,uCAAuC,IAAE,KAAK,CAAK,CAClE;;IAIV,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,IAAI;;QAGb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,QAAA,MAAM,CAAC,GAAG,cAAc,EAAE;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;QAE1C,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,+CAA+C,EAAA,EACxD,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EACpF,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,KAC9B,CACE,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,CAAA,iIAAA,EAAoI,CAAoB,iBAAA,EAAA,KAAK,CAAE,CAAA,CAAA,CAAA,EAAI,CAAkB,eAAA,EAAA,KAAK,CAAE,CAAA,CAAA,CAAA,EAAI,CAAgB,aAAA,EAAA,KAAK,CAAE,CAAA,CAAA,eAAA,CAAiB,EAC/O,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAA,EAEnC,CAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAA,CAAG,CAC/B,CACV,CACG,EAEN,CAAA,CAAC,gCAAgC,EAAA,EAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,EACjC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAC7B,WAAW,EAAE,IAAI,CAAC,kBAAkB,EACpC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAC7C,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,EACvD,aAAa,EAAE,KAAK,KAAK,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,EACzD,kBAAkB,EAAE,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAC1D,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,EACvC,MAAM,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EACrC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,GAAG,SAAS,EAC5E,CAAA,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-menu-list-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Fragment, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateButton, QuickMessageTemplateButtonAction, QuickMessageTemplateContent, QuickMessageTemplateMenuListItem } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport { QuickMessageTemplateButtonList } from './quick-message-template-button-list';\nimport { QuickMessageTemplateButtonDialog } from './quick-message-template-button-dialog';\n\n@Component({\n tag: 'quick-message-menu-list-content',\n})\nexport class QuickMessageMenuListContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxMenuList: number = 10;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n @Prop() maxTitleLength: number = 80;\n @Prop() maxDescriptionLength: number = 80;\n @Prop() maxButtonCount: number = 3;\n @Prop() maxButtonNameLength: number = 20;\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private isButtonDialogOpen = false;\n @State() private buttonDialogMenuId?: string;\n @State() private buttonDialogLabel: string = '';\n @State() private buttonDialogAction: string = '';\n @State() private buttonDialogType: QuickMessageTemplateButtonAction = 'text';\n @State() private editingButtonId?: string;\n @State() private menuErrors: Record<string, string | undefined> = {};\n\n private fileInputs: Record<string, HTMLInputElement | undefined> = {};\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private updateMenuList(updater: (menus: QuickMessageTemplateMenuListItem[]) => QuickMessageTemplateMenuListItem[]) {\n if (!this.content) {\n return;\n }\n\n const currentMenus = this.content.menu_list || [];\n const nextMenus = updater(currentMenus);\n this.emitContent({ menu_list: nextMenus });\n }\n\n private updateMenu(menuId: string, updater: (menu: QuickMessageTemplateMenuListItem) => QuickMessageTemplateMenuListItem) {\n this.updateMenuList(menus =>\n menus.map(menu => {\n if (menu.id !== menuId) {\n return menu;\n }\n\n const draft: QuickMessageTemplateMenuListItem = {\n ...menu,\n buttons: [...(menu.buttons || [])],\n };\n\n return updater(draft);\n }),\n );\n }\n\n private readonly handleAddMenu = () => {\n const totalMenus = this.content?.menu_list?.length || 0;\n if (totalMenus >= this.maxMenuList) {\n return;\n }\n\n const newMenu: QuickMessageTemplateMenuListItem = {\n id: `menu-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n buttons: [],\n };\n\n this.updateMenuList(menus => [...menus, newMenu]);\n };\n\n private handleDeleteMenu(menuId: string) {\n this.updateMenuList(menus => menus.filter(menu => menu.id !== menuId));\n const { [menuId]: _, ...rest } = this.menuErrors;\n this.menuErrors = rest;\n }\n\n private reorderMenu(menuId: string, direction: 'prev' | 'next') {\n this.updateMenuList(menus => {\n const currentIndex = menus.findIndex(menu => menu.id === menuId);\n if (currentIndex === -1) {\n return menus;\n }\n\n const targetIndex = direction === 'prev' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= menus.length) {\n return menus;\n }\n\n const nextMenus = [...menus];\n [nextMenus[currentIndex], nextMenus[targetIndex]] = [nextMenus[targetIndex], nextMenus[currentIndex]];\n return nextMenus;\n });\n }\n\n private setMenuTitle(menuId: string, title: string) {\n this.updateMenu(menuId, menu => ({ ...menu, title }));\n }\n\n private setMenuDescription(menuId: string, description: string) {\n this.updateMenu(menuId, menu => ({ ...menu, description }));\n }\n\n private handleSelectImage(menuId: string) {\n this.fileInputs[menuId]?.click();\n }\n\n private handleImageChange(menuId: string, event: Event) {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n const t = useTranslation();\n\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.menuErrors = { ...this.menuErrors, [menuId]: t('quick_message.image_too_large') };\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.updateMenu(menuId, menu => ({ ...menu, file_url: url }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n input.value = '';\n };\n reader.readAsDataURL(file);\n }\n\n private handleRemoveImage(menuId: string) {\n this.updateMenu(menuId, menu => ({ ...menu, file_url: undefined }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n }\n\n private openButtonDialog(menuId: string, button?: QuickMessageTemplateButton) {\n this.buttonDialogMenuId = menuId;\n this.editingButtonId = button?.id;\n this.buttonDialogLabel = button?.text || '';\n this.buttonDialogType = button?.action_type || 'text';\n this.buttonDialogAction = button && button.action ? button.action : '';\n this.isButtonDialogOpen = true;\n }\n\n private closeButtonDialog() {\n this.isButtonDialogOpen = false;\n this.buttonDialogMenuId = undefined;\n this.editingButtonId = undefined;\n this.buttonDialogLabel = '';\n this.buttonDialogAction = '';\n this.buttonDialogType = 'text';\n }\n\n private setButtonDialogType(type: QuickMessageTemplateButtonAction) {\n this.buttonDialogType = type;\n if (type === 'text') {\n this.buttonDialogAction = '';\n }\n }\n\n private handleButtonSave() {\n if (!this.buttonDialogMenuId) {\n return;\n }\n\n const label = this.buttonDialogLabel.trim();\n const actionType = this.buttonDialogType;\n const actionValue = actionType === 'text' ? undefined : this.buttonDialogAction.trim();\n\n if (!label || (actionType !== 'text' && !actionValue)) {\n return;\n }\n\n const button: QuickMessageTemplateButton = {\n id: this.editingButtonId || `menu-button-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n action_type: actionType,\n text: label,\n action: actionValue,\n };\n\n this.updateMenu(this.buttonDialogMenuId, menu => {\n const buttons = menu.buttons || [];\n\n if (this.editingButtonId) {\n return {\n ...menu,\n buttons: buttons.map(current => (current.id === this.editingButtonId ? button : current)),\n };\n }\n\n if (buttons.length >= this.maxButtonCount) {\n return menu;\n }\n\n return { ...menu, buttons: [...buttons, button] };\n });\n\n this.closeButtonDialog();\n }\n\n private handleDeleteButton() {\n if (!this.buttonDialogMenuId || !this.editingButtonId) {\n return;\n }\n\n this.updateMenu(this.buttonDialogMenuId, menu => ({\n ...menu,\n buttons: (menu.buttons || []).filter(button => button.id !== this.editingButtonId),\n }));\n\n this.closeButtonDialog();\n }\n\n private reorderMenuButton(menuId: string, buttonId: string, direction: 'up' | 'down') {\n this.updateMenu(menuId, menu => {\n const buttons = menu.buttons || [];\n const currentIndex = buttons.findIndex(button => button.id === buttonId);\n if (currentIndex === -1) {\n return menu;\n }\n\n const targetIndex = direction === 'up' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= buttons.length) {\n return menu;\n }\n\n const nextButtons = [...buttons];\n [nextButtons[currentIndex], nextButtons[targetIndex]] = [nextButtons[targetIndex], nextButtons[currentIndex]];\n\n return { ...menu, buttons: nextButtons };\n });\n }\n\n private renderMenuCard(menu: QuickMessageTemplateMenuListItem, index: number, total: number, theme: string, t: ReturnType<typeof useTranslation>) {\n const title = menu.title || '';\n const description = menu.description || '';\n const buttons = menu.buttons || [];\n const error = this.menuErrors[menu.id];\n const isFirst = index === 0;\n const isLast = index === total - 1;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n const backgroundClass = `z-background-${theme}`;\n\n return (\n <div class=\"relative flex shrink-0 flex-col\" key={menu.id}>\n <div class={`relative flex w-[250px] flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm ${borderClass} ${backgroundClass}`}>\n <div class=\"pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center justify-between\">\n <div class=\"flex items-center gap-2 pointer-events-auto\">\n {!isFirst && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_left')}\n onClick={() => this.reorderMenu(menu.id, 'prev')}\n >\n <Icon name=\"ChevronLeft\" addClass=\"size-4\" />\n </button>\n )}\n {!isLast && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_right')}\n onClick={() => this.reorderMenu(menu.id, 'next')}\n >\n <Icon name=\"ChevronRight\" addClass=\"size-4\" />\n </button>\n )}\n </div>\n <button\n type=\"button\"\n class={`pointer-events-auto inline-flex h-8 w-8 items-center justify-center rounded-full z-background-${theme} text-red-500 shadow focus:outline-none focus:ring-2 focus:ring-red-200 cursor-pointer hover:bg-white`}\n onClick={() => this.handleDeleteMenu(menu.id)}\n aria-label={t('remove')}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n </button>\n </div>\n <div class={`group relative h-[180px] overflow-hidden border-b-[1.5px] ${borderClass}`}>\n <input\n type=\"file\"\n accept=\"image/*\"\n class=\"hidden\"\n ref={el => (this.fileInputs[menu.id] = el as HTMLInputElement)}\n onChange={event => this.handleImageChange(menu.id, event)}\n />\n {menu.file_url ? (\n <Fragment>\n <img src={menu.file_url} alt={menu.title || t('quick_message.add_image')} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-slate-700 shadow\"\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-4\" />\n <span>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-red-500 shadow\"\n onClick={() => this.handleRemoveImage(menu.id)}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span>{t('remove')}</span>\n </button>\n </div>\n </Fragment>\n ) : (\n <button\n type=\"button\"\n class={`flex h-full w-full flex-col items-center justify-center gap-2 border-0 px-4 text-center ${primaryTextClass} ${backgroundClass} cursor-pointer`}\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-12\" />\n <span class=\"text-sm font-semibold leading-tight\">+ {t('quick_message.add_image')}</span>\n <span class={`text-xs font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-2 py-2\">\n <div>\n <textarea\n value={title}\n maxLength={this.maxTitleLength}\n rows={2}\n placeholder={t('quick_message.type_title_here')}\n class=\"w-full resize-none border-0 bg-transparent text-sm font-semibold leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuTitle(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {title.length}/{this.maxTitleLength}\n </div>\n </div>\n\n <div>\n <textarea\n value={description}\n maxLength={this.maxDescriptionLength}\n rows={2}\n placeholder={t('quick_message.type_description_here')}\n class=\"w-full resize-none border-0 bg-transparent text-xs leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuDescription(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {description.length}/{this.maxDescriptionLength}\n </div>\n </div>\n\n <QuickMessageTemplateButtonList\n theme={theme}\n buttons={buttons}\n maxButtonCount={this.maxButtonCount}\n addButtonLabel={t('quick_message.add_button')}\n onButtonClick={button => this.openButtonDialog(menu.id, button)}\n onAddButton={() => this.openButtonDialog(menu.id)}\n onReorderButton={(buttonId, direction) => this.reorderMenuButton(menu.id, buttonId, direction)}\n listClass=\"flex flex-col gap-2\"\n buttonClass=\"px-3\"\n />\n </div>\n </div>\n\n {error && <p class=\"mt-2 text-xs font-medium text-red-500\">{error}</p>}\n </div>\n );\n }\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const menus = this.content.menu_list || [];\n\n return (\n <div class=\"flex flex-col gap-3 items-end overflow-x-auto\">\n <div class=\"flex max-w-full gap-3 pb-2\">\n {menus.map((menu, index) => this.renderMenuCard(menu, index, menus.length, theme, t))}\n {menus.length < this.maxMenuList && (\n <button\n type=\"button\"\n class={`flex h-[280px] w-[200px] shrink-0 items-center justify-center rounded-[18px] border-[1.5px] border-dashed text-2xl font-semibold ${`z-border-primary-${theme}`} ${`z-text-primary-${theme}`} ${`z-background-${theme}`} cursor-pointer`}\n onClick={() => this.handleAddMenu()}\n >\n <Icon name=\"Plus\" addClass=\"size-8\" />\n </button>\n )}\n </div>\n\n <QuickMessageTemplateButtonDialog\n theme={theme}\n isOpen={this.isButtonDialogOpen}\n isEditing={!!this.editingButtonId}\n label={this.buttonDialogLabel}\n actionValue={this.buttonDialogAction}\n actionType={this.buttonDialogType}\n maxButtonNameLength={this.maxButtonNameLength}\n onLabelInput={value => (this.buttonDialogLabel = value)}\n onActionInput={value => (this.buttonDialogAction = value)}\n onActionTypeChange={type => this.setButtonDialogType(type)}\n onClose={() => this.closeButtonDialog()}\n onSave={() => this.handleButtonSave()}\n onDelete={this.editingButtonId ? () => this.handleDeleteButton() : undefined}\n />\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-5z3Oz7nB.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-menu-list-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Fragment, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateButton, QuickMessageTemplateButtonAction, QuickMessageTemplateContent, QuickMessageTemplateMenuListItem } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport { QuickMessageTemplateButtonList } from './quick-message-template-button-list';\nimport { QuickMessageTemplateButtonDialog } from './quick-message-template-button-dialog';\n\n@Component({\n tag: 'quick-message-menu-list-content',\n})\nexport class QuickMessageMenuListContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxMenuList: number = 10;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n @Prop() maxTitleLength: number = 80;\n @Prop() maxDescriptionLength: number = 80;\n @Prop() maxButtonCount: number = 3;\n @Prop() maxButtonNameLength: number = 20;\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private isButtonDialogOpen = false;\n @State() private buttonDialogMenuId?: string;\n @State() private buttonDialogLabel: string = '';\n @State() private buttonDialogAction: string = '';\n @State() private buttonDialogType: QuickMessageTemplateButtonAction = 'text';\n @State() private editingButtonId?: string;\n @State() private menuErrors: Record<string, string | undefined> = {};\n\n private fileInputs: Record<string, HTMLInputElement | undefined> = {};\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private updateMenuList(updater: (menus: QuickMessageTemplateMenuListItem[]) => QuickMessageTemplateMenuListItem[]) {\n if (!this.content) {\n return;\n }\n\n const currentMenus = this.content.menu_list || [];\n const nextMenus = updater(currentMenus);\n this.emitContent({ menu_list: nextMenus });\n }\n\n private updateMenu(menuId: string, updater: (menu: QuickMessageTemplateMenuListItem) => QuickMessageTemplateMenuListItem) {\n this.updateMenuList(menus =>\n menus.map(menu => {\n if (menu.id !== menuId) {\n return menu;\n }\n\n const draft: QuickMessageTemplateMenuListItem = {\n ...menu,\n buttons: [...(menu.buttons || [])],\n };\n\n return updater(draft);\n }),\n );\n }\n\n private readonly handleAddMenu = () => {\n const totalMenus = this.content?.menu_list?.length || 0;\n if (totalMenus >= this.maxMenuList) {\n return;\n }\n\n const newMenu: QuickMessageTemplateMenuListItem = {\n id: `menu-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n buttons: [],\n };\n\n this.updateMenuList(menus => [...menus, newMenu]);\n };\n\n private handleDeleteMenu(menuId: string) {\n this.updateMenuList(menus => menus.filter(menu => menu.id !== menuId));\n const { [menuId]: _, ...rest } = this.menuErrors;\n this.menuErrors = rest;\n }\n\n private reorderMenu(menuId: string, direction: 'prev' | 'next') {\n this.updateMenuList(menus => {\n const currentIndex = menus.findIndex(menu => menu.id === menuId);\n if (currentIndex === -1) {\n return menus;\n }\n\n const targetIndex = direction === 'prev' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= menus.length) {\n return menus;\n }\n\n const nextMenus = [...menus];\n [nextMenus[currentIndex], nextMenus[targetIndex]] = [nextMenus[targetIndex], nextMenus[currentIndex]];\n return nextMenus;\n });\n }\n\n private setMenuTitle(menuId: string, title: string) {\n this.updateMenu(menuId, menu => ({ ...menu, title }));\n }\n\n private setMenuDescription(menuId: string, description: string) {\n this.updateMenu(menuId, menu => ({ ...menu, description }));\n }\n\n private handleSelectImage(menuId: string) {\n this.fileInputs[menuId]?.click();\n }\n\n private handleImageChange(menuId: string, event: Event) {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n const t = useTranslation();\n\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.menuErrors = { ...this.menuErrors, [menuId]: t('quick_message.image_too_large') };\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.updateMenu(menuId, menu => ({ ...menu, file_url: url }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n input.value = '';\n };\n reader.readAsDataURL(file);\n }\n\n private handleRemoveImage(menuId: string) {\n this.updateMenu(menuId, menu => ({ ...menu, file_url: undefined }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n }\n\n private openButtonDialog(menuId: string, button?: QuickMessageTemplateButton) {\n this.buttonDialogMenuId = menuId;\n this.editingButtonId = button?.id;\n this.buttonDialogLabel = button?.text || '';\n this.buttonDialogType = button?.action_type || 'text';\n this.buttonDialogAction = button && button.action ? button.action : '';\n this.isButtonDialogOpen = true;\n }\n\n private closeButtonDialog() {\n this.isButtonDialogOpen = false;\n this.buttonDialogMenuId = undefined;\n this.editingButtonId = undefined;\n this.buttonDialogLabel = '';\n this.buttonDialogAction = '';\n this.buttonDialogType = 'text';\n }\n\n private setButtonDialogType(type: QuickMessageTemplateButtonAction) {\n this.buttonDialogType = type;\n if (type === 'text') {\n this.buttonDialogAction = '';\n }\n }\n\n private handleButtonSave() {\n if (!this.buttonDialogMenuId) {\n return;\n }\n\n const label = this.buttonDialogLabel.trim();\n const actionType = this.buttonDialogType;\n const actionValue = actionType === 'text' ? undefined : this.buttonDialogAction.trim();\n\n if (!label || (actionType !== 'text' && !actionValue)) {\n return;\n }\n\n const button: QuickMessageTemplateButton = {\n id: this.editingButtonId || `menu-button-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n action_type: actionType,\n text: label,\n action: actionValue,\n };\n\n this.updateMenu(this.buttonDialogMenuId, menu => {\n const buttons = menu.buttons || [];\n\n if (this.editingButtonId) {\n return {\n ...menu,\n buttons: buttons.map(current => (current.id === this.editingButtonId ? button : current)),\n };\n }\n\n if (buttons.length >= this.maxButtonCount) {\n return menu;\n }\n\n return { ...menu, buttons: [...buttons, button] };\n });\n\n this.closeButtonDialog();\n }\n\n private handleDeleteButton() {\n if (!this.buttonDialogMenuId || !this.editingButtonId) {\n return;\n }\n\n this.updateMenu(this.buttonDialogMenuId, menu => ({\n ...menu,\n buttons: (menu.buttons || []).filter(button => button.id !== this.editingButtonId),\n }));\n\n this.closeButtonDialog();\n }\n\n private reorderMenuButton(menuId: string, buttonId: string, direction: 'up' | 'down') {\n this.updateMenu(menuId, menu => {\n const buttons = menu.buttons || [];\n const currentIndex = buttons.findIndex(button => button.id === buttonId);\n if (currentIndex === -1) {\n return menu;\n }\n\n const targetIndex = direction === 'up' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= buttons.length) {\n return menu;\n }\n\n const nextButtons = [...buttons];\n [nextButtons[currentIndex], nextButtons[targetIndex]] = [nextButtons[targetIndex], nextButtons[currentIndex]];\n\n return { ...menu, buttons: nextButtons };\n });\n }\n\n private renderMenuCard(menu: QuickMessageTemplateMenuListItem, index: number, total: number, theme: string, t: ReturnType<typeof useTranslation>) {\n const title = menu.title || '';\n const description = menu.description || '';\n const buttons = menu.buttons || [];\n const error = this.menuErrors[menu.id];\n const isFirst = index === 0;\n const isLast = index === total - 1;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n const backgroundClass = `z-background-${theme}`;\n\n return (\n <div class=\"relative flex shrink-0 flex-col\" key={menu.id}>\n <div class={`relative flex w-[250px] flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm ${borderClass} ${backgroundClass}`}>\n <div class=\"pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center justify-between\">\n <div class=\"flex items-center gap-2 pointer-events-auto\">\n {!isFirst && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_left')}\n onClick={() => this.reorderMenu(menu.id, 'prev')}\n >\n <Icon name=\"ChevronLeft\" addClass=\"size-4\" />\n </button>\n )}\n {!isLast && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_right')}\n onClick={() => this.reorderMenu(menu.id, 'next')}\n >\n <Icon name=\"ChevronRight\" addClass=\"size-4\" />\n </button>\n )}\n </div>\n <button\n type=\"button\"\n class={`pointer-events-auto inline-flex h-8 w-8 items-center justify-center rounded-full z-background-${theme} text-red-500 shadow focus:outline-none focus:ring-2 focus:ring-red-200 cursor-pointer hover:bg-white`}\n onClick={() => this.handleDeleteMenu(menu.id)}\n aria-label={t('remove')}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n </button>\n </div>\n <div class={`group relative h-[180px] overflow-hidden border-b-[1.5px] ${borderClass}`}>\n <input\n type=\"file\"\n accept=\"image/*\"\n class=\"hidden\"\n ref={el => (this.fileInputs[menu.id] = el as HTMLInputElement)}\n onChange={event => this.handleImageChange(menu.id, event)}\n />\n {menu.file_url ? (\n <Fragment>\n <img src={menu.file_url} alt={menu.title || t('quick_message.add_image')} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-slate-700 shadow\"\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-4\" />\n <span>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-red-500 shadow\"\n onClick={() => this.handleRemoveImage(menu.id)}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span>{t('remove')}</span>\n </button>\n </div>\n </Fragment>\n ) : (\n <button\n type=\"button\"\n class={`flex h-full w-full flex-col items-center justify-center gap-2 border-0 px-4 text-center ${primaryTextClass} ${backgroundClass} cursor-pointer`}\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-12\" />\n <span class=\"text-sm font-semibold leading-tight\">+ {t('quick_message.add_image')}</span>\n <span class={`text-xs font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-2 py-2\">\n <div>\n <textarea\n value={title}\n maxLength={this.maxTitleLength}\n rows={2}\n placeholder={t('quick_message.type_title_here')}\n class=\"w-full resize-none border-0 bg-transparent text-sm font-semibold leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuTitle(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {title.length}/{this.maxTitleLength}\n </div>\n </div>\n\n <div>\n <textarea\n value={description}\n maxLength={this.maxDescriptionLength}\n rows={2}\n placeholder={t('quick_message.type_description_here')}\n class=\"w-full resize-none border-0 bg-transparent text-xs leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuDescription(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {description.length}/{this.maxDescriptionLength}\n </div>\n </div>\n\n <QuickMessageTemplateButtonList\n theme={theme}\n buttons={buttons}\n maxButtonCount={this.maxButtonCount}\n addButtonLabel={t('quick_message.add_button')}\n onButtonClick={button => this.openButtonDialog(menu.id, button)}\n onAddButton={() => this.openButtonDialog(menu.id)}\n onReorderButton={(buttonId, direction) => this.reorderMenuButton(menu.id, buttonId, direction)}\n listClass=\"flex flex-col gap-2\"\n buttonClass=\"px-3\"\n />\n </div>\n </div>\n\n {error && <p class=\"mt-2 text-xs font-medium text-red-500\">{error}</p>}\n </div>\n );\n }\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const menus = this.content.menu_list || [];\n\n return (\n <div class=\"flex flex-col gap-3 items-end overflow-x-auto\">\n <div class=\"flex max-w-full gap-3 pb-2\">\n {menus.map((menu, index) => this.renderMenuCard(menu, index, menus.length, theme, t))}\n {menus.length < this.maxMenuList && (\n <button\n type=\"button\"\n class={`flex h-[280px] w-[200px] shrink-0 items-center justify-center rounded-[18px] border-[1.5px] border-dashed text-2xl font-semibold ${`z-border-primary-${theme}`} ${`z-text-primary-${theme}`} ${`z-background-${theme}`} cursor-pointer`}\n onClick={() => this.handleAddMenu()}\n >\n <Icon name=\"Plus\" addClass=\"size-8\" />\n </button>\n )}\n </div>\n\n <QuickMessageTemplateButtonDialog\n theme={theme}\n isOpen={this.isButtonDialogOpen}\n isEditing={!!this.editingButtonId}\n label={this.buttonDialogLabel}\n actionValue={this.buttonDialogAction}\n actionType={this.buttonDialogType}\n maxButtonNameLength={this.maxButtonNameLength}\n onLabelInput={value => (this.buttonDialogLabel = value)}\n onActionInput={value => (this.buttonDialogAction = value)}\n onActionTypeChange={type => this.setButtonDialogType(type)}\n onClose={() => this.closeButtonDialog()}\n onSave={() => this.handleButtonSave()}\n onDelete={this.editingButtonId ? () => this.handleDeleteButton() : undefined}\n />\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h } from './p-D_ltSEZy.js';
|
|
2
|
-
import { c as configStore } from './p-
|
|
2
|
+
import { c as configStore } from './p-x8gJGTdZ.js';
|
|
3
3
|
import { u as useTranslation } from './p-GPPFvEYq.js';
|
|
4
4
|
import { I as Icon } from './p-CErcZoEr.js';
|
|
5
5
|
|
|
@@ -83,6 +83,6 @@ function defineCustomElement() {
|
|
|
83
83
|
defineCustomElement();
|
|
84
84
|
|
|
85
85
|
export { QuickMessageImageContentComponent as Q, defineCustomElement as d };
|
|
86
|
-
//# sourceMappingURL=p-
|
|
86
|
+
//# sourceMappingURL=p-B6HiV-kQ.js.map
|
|
87
87
|
|
|
88
|
-
//# sourceMappingURL=p-
|
|
88
|
+
//# sourceMappingURL=p-B6HiV-kQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-B6HiV-kQ.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-image-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateContent } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\n\n@Component({\n tag: 'quick-message-image-content',\n})\nexport class QuickMessageImageContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private errorMessage?: string;\n\n private fileInput?: HTMLInputElement;\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private readonly handleSelectClick = () => {\n this.fileInput?.click();\n };\n\n private readonly handleFileChange = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.errorMessage = useTranslation()('quick_message.image_too_large');\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.emitContent({ file_url: url });\n this.errorMessage = undefined;\n input.value = '';\n };\n reader.readAsDataURL(file);\n };\n\n private readonly handleRemoveImage = () => {\n this.emitContent({ file_url: '' });\n this.errorMessage = undefined;\n };\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const preview = this.content.file_url;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n\n return (\n <div class=\"flex justify-end\">\n <div class=\"max-w-xs h-[220px] aspect-square\">\n <input type=\"file\" accept=\"image/*\" class=\"hidden\" ref={el => (this.fileInput = el as HTMLInputElement)} onChange={this.handleFileChange} />\n\n {preview ? (\n <div class={`group h-[220px] relative w-full overflow-hidden rounded-[18px] border-[1.5px] z-background-${theme} shadow-sm ${borderClass}`}>\n <img src={preview} alt=\"preview-message-image\" class=\"h-[220px] w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-slate-700 shadow cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-4 z-text-${theme}`} />\n <span class={`z-text-${theme}`}>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-red-500 shadow cursor-pointer`}\n onClick={this.handleRemoveImage}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span class=\"text-red-500\">{t('remove')}</span>\n </button>\n </div>\n </div>\n ) : (\n <button\n type=\"button\"\n class={`flex w-full flex-col items-center justify-center gap-2 rounded-[18px] border-[1.5px] border-current z-background-${theme} px-8 py-12 text-center shadow-sm transition-colors hover:z-background-${theme} ${borderClass} cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-12 ${primaryTextClass}`} />\n <span class={`text-base font-semibold leading-tight ${primaryTextClass}`}>+ {t('quick_message.add_image')}</span>\n <span class={`text-[13px] font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n\n {this.errorMessage && <p class=\"mt-2 text-xs text-red-500\">{this.errorMessage}</p>}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h, a as Host } from './p-D_ltSEZy.js';
|
|
2
|
+
|
|
3
|
+
const profileMediaCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-x-reverse:0;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-drop-shadow-alpha:100%;--tw-border-style:solid;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-space-x-reverse:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-space-y-reverse:0;--tw-leading:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--container-xl:36rem;--color-yellow-300:oklch(90.5% .182 98.111);--container-3xs:16rem;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--container-md:28rem;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--color-slate-500:oklch(55.4% .046 257.417);--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--color-yellow-500:oklch(79.5% .184 86.047);--container-xs:20rem;--container-sm:24rem;--color-red-700:oklch(50.5% .213 27.518);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-pink-100:oklch(94.8% .028 342.258);--font-weight-semibold:600;--font-weight-bold:700;--animate-spin:spin 1s linear infinite;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-medium:500;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-primary-dark:#b50f30;--color-secondary-dark:#fff;--color-background-dark:#23292d}}@layer base{::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-meridiem-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);border-color:oklch(54.6% .245 262.881);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}select{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple],[size]:where(select:not([size=\"1\"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;color:oklch(54.6% .245 262.881);print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-color:oklch(55.1% .027 264.364);border-width:1px;display:inline-block;flex-shrink:0;height:1rem;padding:0;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E\")}[type=radio]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.dialog-backdrop{align-items:center;background-color:#0006;display:flex;inset:calc(var(--spacing)*0);justify-content:center;position:fixed;z-index:50}@supports (color:color-mix(in lab,red,red)){.dialog-backdrop{background-color:color-mix(in oklab,var(--color-black)40%,transparent);background-color:color-mix(in srgb,#00040%,transparent)}}.chat-item{border-radius:var(--radius-xl);cursor:pointer;margin-block:calc(var(--spacing)*1);margin-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);align-items:flex-start;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:flex;position:relative}:where(.chat-item>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-pin{position:absolute;right:-12px;top:calc(var(--spacing)*1)}.chat-item .chat-item-pin-icon{fill:currentColor;height:calc(var(--spacing)*3);rotate:45deg;width:calc(var(--spacing)*3)}.chat-item .chat-item-content-container{display:flex;flex-direction:row;width:100%}:where(.chat-item .chat-item-content-container>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-avatar-wrapper{align-self:center;flex-shrink:0;position:relative}.chat-item .chat-item-avatar-badge{bottom:-2px;position:absolute;right:-2px}.chat-item .chat-item-content-wrapper{min-height:calc(var(--spacing)*18);width:100%}.chat-item .chat-item-content-main{align-items:center;display:flex}:where(.chat-item .chat-item-content-main>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}.chat-item .chat-item-content-main-image{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.chat-item .chat-item-content-main-name{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-main-time{color:var(--color-gray-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-secondary{align-items:flex-start;display:flex;flex-direction:row;width:100%}.chat-item .chat-item-content-secondary-nickname{font-size:var(--text-base);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-base--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{color:var(--color-gray-600);font-size:var(--text-sm);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-sm--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-unread{background-color:var(--color-primary);border-radius:3.40282e+38px;color:var(--color-white);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-unread-mark{display:inline-block;height:calc(var(--spacing)*2.5);width:calc(var(--spacing)*2.5)}.chat-item .chat-item-content-unread-count{padding-block:calc(var(--spacing)*.5);padding-inline:calc(var(--spacing)*2)}.z-icon-button{cursor:pointer;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-icon-button:focus{--tw-outline-style:none;outline-style:none}.z-icon-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-icon-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-icon-button-disabled{cursor:not-allowed;opacity:.5}.z-button{cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button:focus{--tw-outline-style:none;outline-style:none}.z-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px;color:var(--color-primary)}.z-button-disabled{cursor:not-allowed;opacity:.5}.z-button-text{margin-inline:calc(var(--spacing)*2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.z-input-area-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input-area-input,.z-input-area-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input-area-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-area-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input,.z-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-radius:3.40282e+38px;border-width:1px;width:100%}.z-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-select-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-tag-or-status-item{align-items:center;border-radius:var(--radius-2xl);gap:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:inline-flex}.z-tag-or-status-item .z-tag-or-status-item-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));max-width:calc(var(--spacing)*20)}.z-tag-or-status-item .z-tag-or-status-item-icon{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-context-input{align-items:center;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{border-bottom-left-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{border-bottom-right-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:2}.z-context-input-value:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-text-with-link{color:var(--color-blue-600);text-decoration-line:underline}}@layer utilities{.hidden{display:none}.hidden\\!{display:none!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.scroll-container::-webkit-scrollbar{background:#0000001a;height:8px;width:8px}.scroll-container:active::-webkit-scrollbar,.scroll-container:hover::-webkit-scrollbar{background:#0003}.scroll-container:active::-webkit-scrollbar-thumb,.scroll-container:hover::-webkit-scrollbar-thumb{background:#0006;border-radius:4px}.z-text-light{color:var(--color-black)}.z-text-dark{color:var(--color-white)}.z-text-primary-light{color:var(--color-primary)}.z-text-primary-dark{color:var(--color-primary-dark)}.z-text-gray-light{color:var(--color-gray-500)}.z-text-gray-dark{color:var(--color-gray-300)}.z-text-background-light{color:var(--color-background)}.z-text-background-dark{color:var(--color-background-dark)}.z-border-light{border-color:var(--color-black)}.z-border-dark{border-color:var(--color-white)}.z-border-primary-light{border-color:var(--color-primary)}.z-border-primary-dark{border-color:var(--color-primary-dark)}.z-border-divider-light{border-color:var(--color-gray-400)}.z-border-divider-dark{border-color:var(--color-gray-300)}.z-search-input-background-light{background-color:var(--color-gray-200)}.z-search-input-background-dark{background-color:var(--color-gray-500)}.z-chat-input-background-light{background-color:var(--color-white)}.z-chat-input-background-dark{background-color:var(--color-gray-700)}.z-placeholder-light::placeholder{color:var(--color-gray-500)}.z-placeholder-dark::placeholder{color:var(--color-gray-200)}.z-background-primary-light{background-color:var(--color-primary)}.z-background-primary-dark{background-color:var(--color-primary-dark)}.z-background-light{background-color:var(--color-background)}.z-background-dark{background-color:var(--color-background-dark)}.z-paper-light{background-color:var(--color-gray-100)}.z-paper-dark{background-color:var(--color-gray-700)}.z-bg-gray-light{background-color:var(--color-gray-500)}.z-bg-gray-dark{background-color:var(--color-gray-300)}.z-width-100{width:100%}.z-width-90{width:90%}.z-width-75{width:75%}.z-width-50{width:50%}.z-width-25{width:25%}.z-width-0{width:0}.z-animate-width{transition-duration:.5s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.z-animate-grid-template-cols{transition:grid-template-rows .5s}[type=checkbox]{background-color:var(--color-gray-300);border-color:var(--color-gray-300);border-radius:4px;cursor:pointer}[type=checkbox]:checked,[type=checkbox]:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);border-radius:4px;cursor:pointer}[type=checkbox]:focus{offset:0;outline-offset:0;--tw-ring-color:var(--color-primary);outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-cols-1{grid-template-columns:1fr}.grid-cols-1_3{grid-template-columns:1fr 3fr}.grid-cols-1_2_1{grid-template-columns:1fr 2fr 1fr}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.relative{position:relative}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.rotate-45{rotate:45deg}.text-blue-500{color:var(--color-blue-500)}.text-green-500{color:var(--color-green-500)}.container{width:100%}.\\!hidden{display:none!important}.bg-pink-100{background-color:var(--color-pink-100)}.text-black{color:var(--color-black)}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}.visible{visibility:visible}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mx-auto{margin-inline:auto}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.p-4{padding:calc(var(--spacing)*4)}.px-4{padding-inline:calc(var(--spacing)*4)}.pt-4{padding-top:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.mb-2{margin-bottom:calc(var(--spacing)*2)}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.absolute{position:absolute}.right-full{right:100%}.-bottom-2{bottom:calc(var(--spacing)*-2)}.left-full{left:100%}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.flex{display:flex}.size-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.rounded-full{border-radius:3.40282e+38px}.bg-yellow-300{background-color:var(--color-yellow-300)}.text-left{text-align:left}.text-right{text-align:right}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.mt-1{margin-top:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.size-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.max-w-3xs{max-width:var(--container-3xs)}.max-w-sm{max-width:var(--container-sm)}.cursor-pointer{cursor:pointer}.resize{resize:both}.rounded-br-\\[0\\]{border-bottom-right-radius:0}.rounded-bl-\\[0\\]{border-bottom-left-radius:0}.bg-black{background-color:var(--color-black)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-2{padding-block:calc(var(--spacing)*2)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.col-span-3{grid-column:span 3/span 3}.mt-2{margin-top:calc(var(--spacing)*2)}.w-full{width:100%}.flex-wrap{flex-wrap:wrap}.gap-y-1{row-gap:calc(var(--spacing)*1)}.border-b-\\[0\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:.5px}.fill-current{fill:currentColor}.pt-2{padding-top:calc(var(--spacing)*2)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.whitespace-nowrap{white-space:nowrap}.size-42{height:calc(var(--spacing)*42);width:calc(var(--spacing)*42)}.h-20{height:calc(var(--spacing)*20)}.w-42{width:calc(var(--spacing)*42)}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.inset-0{inset:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-3{bottom:calc(var(--spacing)*3)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-\\[80\\]{z-index:80}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.contents{display:contents}.grid{display:grid}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-12{height:calc(var(--spacing)*12);width:calc(var(--spacing)*12)}.size-14{height:calc(var(--spacing)*14);width:calc(var(--spacing)*14)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\\[180px\\]{height:180px}.h-\\[220px\\]{height:220px}.h-\\[280px\\]{height:280px}.h-full{height:100%}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-\\[200px\\]{width:200px}.w-\\[250px\\]{width:250px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[18px\\]{border-radius:18px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-\\[1\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:1.5px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-current{border-color:currentColor}.border-red-500{border-color:var(--color-red-500)}.bg-slate-900\\/40{background-color:#0f172b66}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\\/60{background-color:#0f172b99}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/60{background-color:color-mix(in oklab,var(--color-slate-900)60%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/90{background-color:color-mix(in srgb,#fff90%,transparent);background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-16{padding-right:calc(var(--spacing)*16)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\\[13px\\]{font-size:13px}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-red-500{color:var(--color-red-500)}.text-slate-700{color:var(--color-slate-700)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-primary{--tw-ring-color:var(--color-primary)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all,.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-0:focus,.focus\\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-red-200:focus{--tw-ring-color:var(--color-red-200)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-slate-200:focus{--tw-ring-color:var(--color-slate-200)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}}@keyframes spin{to{transform:rotate(1turn)}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.col-span-full{grid-column:1/-1}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.h-16{height:calc(var(--spacing)*16)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-16{width:calc(var(--spacing)*16)}.min-w-0{min-width:calc(var(--spacing)*0)}.-translate-y-1\\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.auto-rows-auto{grid-auto-rows:auto}.content-start{align-content:flex-start}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.overflow-y-auto{overflow-y:auto}.border-transparent{border-color:#0000}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.pr-9{padding-right:calc(var(--spacing)*9)}.break-words{overflow-wrap:break-word}.text-gray-400{color:var(--color-gray-400)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.h-10{height:calc(var(--spacing)*10)}.w-10{width:calc(var(--spacing)*10)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.h-\\[160px\\]{height:160px}.h-\\[200px\\]{height:200px}.w-\\[240px\\]{width:240px}.shrink-0{flex-shrink:0}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.py-1{padding-block:calc(var(--spacing)*1)}.py-10{padding-block:calc(var(--spacing)*10)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.whitespace-pre-line{white-space:pre-line}.text-slate-500{color:var(--color-slate-500)}.opacity-70{opacity:.7}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0f172a14)}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.text-yellow-500{color:var(--color-yellow-500)}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.m-2{margin:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.w-1\\/2{width:50%}.max-w-32{max-width:calc(var(--spacing)*32)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%}.text-green-700{color:var(--color-green-700)}.text-primary{color:var(--color-primary)}.text-red-700{color:var(--color-red-700)}.capitalize{text-transform:capitalize}.opacity-100{opacity:1}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components{.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-input,.z-input-area-input,.z-input-area-label,.z-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@layer utilities{.focus\\:ring-0:focus,.focus\\:ring-2:focus,.shadow,.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}:host{display:block}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@media (forced-colors:active){[type=checkbox]:checked,[type=radio]:checked{appearance:auto}[type=checkbox]:indeterminate{appearance:auto}[type=checkbox]:checked,[type=checkbox]:indeterminate,[type=radio]:checked{appearance:auto}}@media (hover:hover){.hover\\:brightness-110:hover,.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:brightness-110:hover,.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}@media screen and (min-width:0){.z-max-height{height:calc(100vh - 56px)}}@media screen and (min-width:600px){.z-max-height{height:calc(100vh - 64px)}}@media (min-width:40rem){.container{max-width:40rem}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:min-w-0{min-width:calc(var(--spacing)*0)}.sm\\:flex-row{flex-direction:row}}@media (min-width:48rem){.container{max-width:48rem}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.container{max-width:64rem}.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}@media not all and (min-width:40rem){.max-sm\\:hidden{display:none}}";
|
|
4
|
+
|
|
5
|
+
const ProfileMedia = /*@__PURE__*/ proxyCustomElement(class ProfileMedia extends H {
|
|
6
|
+
constructor(registerHost) {
|
|
7
|
+
super();
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
render() {
|
|
13
|
+
return h(Host, { key: '26b1f4c814275ab00281da28ba016d98a76af940' }, "Media");
|
|
14
|
+
}
|
|
15
|
+
static get style() { return profileMediaCss; }
|
|
16
|
+
}, [256, "profile-media"]);
|
|
17
|
+
function defineCustomElement() {
|
|
18
|
+
if (typeof customElements === "undefined") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const components = ["profile-media"];
|
|
22
|
+
components.forEach(tagName => { switch (tagName) {
|
|
23
|
+
case "profile-media":
|
|
24
|
+
if (!customElements.get(tagName)) {
|
|
25
|
+
customElements.define(tagName, ProfileMedia);
|
|
26
|
+
}
|
|
27
|
+
break;
|
|
28
|
+
} });
|
|
29
|
+
}
|
|
30
|
+
defineCustomElement();
|
|
31
|
+
|
|
32
|
+
export { ProfileMedia as P, defineCustomElement as d };
|
|
33
|
+
//# sourceMappingURL=p-BB1RB9Dr.js.map
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=p-BB1RB9Dr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-BB1RB9Dr.js","mappings":";;AAAA,MAAM,eAAe,GAAG,+5+CAA+5+C;;MCM16+C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;IACvB,MAAM,GAAA;AACJ,QAAA,OAAO,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,OAAA,CAAa;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/profile-media/profile-media.css?tag=profile-media","src/components/profile-media/profile-media.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'profile-media',\n styleUrl: 'profile-media.css',\n})\nexport class ProfileMedia {\n render() {\n return <Host>Media</Host>;\n }\n}\n"],"version":3}
|