zignal-stencil-library 1.1.110 → 1.1.111
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 +180 -136
- 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-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 +22 -38
- package/dist/collection/components/profile-info/profile-info.js.map +1 -1
- package/dist/collection/components/profile-info/user-info-section.js +42 -4
- 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 +47 -47
- 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-DHFOACHm.js → p--gZqhhLL.js} +5 -5
- package/dist/components/{p-DHFOACHm.js.map → p--gZqhhLL.js.map} +1 -1
- package/dist/components/p-3jt5iBgO.js +104 -0
- package/dist/components/{p-Cav9Xvhc.js.map → p-3jt5iBgO.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-COFzcZWg.js → p-8qMMsvE2.js} +6 -6
- package/dist/components/{p-COFzcZWg.js.map → p-8qMMsvE2.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-D-KXyaWT.js → p-B7CuMj9y.js} +6 -6
- package/dist/components/{p-D-KXyaWT.js.map → p-B7CuMj9y.js.map} +1 -1
- package/dist/components/{p-tAmACNBr.js → p-BNblLfcs.js} +24 -32
- package/dist/components/p-BNblLfcs.js.map +1 -0
- package/dist/components/p-BOrhSlbo.js +127 -0
- package/dist/components/p-BOrhSlbo.js.map +1 -0
- package/dist/components/{p-DBgHNduI.js → p-Bj6H7JrX.js} +4 -4
- package/dist/components/{p-DBgHNduI.js.map → p-Bj6H7JrX.js.map} +1 -1
- package/dist/components/{p-BQ0yCCV6.js → p-Bo_qpOg-.js} +5 -5
- package/dist/components/{p-BQ0yCCV6.js.map → p-Bo_qpOg-.js.map} +1 -1
- package/dist/components/p-BrKDVlCP.js +101 -0
- package/dist/components/p-BrKDVlCP.js.map +1 -0
- 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-DLUy8rmx.js → p-C-hvo0Uo.js} +17 -15
- package/dist/components/p-C-hvo0Uo.js.map +1 -0
- package/dist/components/p-C0MuZqgR.js +81 -0
- package/dist/components/{p-xc8pAQt4.js.map → p-C0MuZqgR.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-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-C7n7EjKD.js +61 -0
- package/dist/components/{p-a3QvEULN.js.map → p-C7n7EjKD.js.map} +1 -1
- package/dist/components/{p-BTItt0Vn.js → p-C9OqpwzA.js} +44 -59
- package/dist/components/p-C9OqpwzA.js.map +1 -0
- 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-CBGDhDhT.js +132 -0
- package/dist/components/{p-2nxqY6Yv.js.map → p-CBGDhDhT.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-DyI3f7kr.js → p-CH39HrFZ.js} +7 -7
- package/dist/components/{p-DyI3f7kr.js.map → p-CH39HrFZ.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-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-DeqB7qmW.js → p-CbwYwjdH.js} +3 -3
- package/dist/components/{p-DeqB7qmW.js.map → p-CbwYwjdH.js.map} +1 -1
- package/dist/components/{p-Zye2AvZI.js → p-CeHDqun7.js} +5 -5
- package/dist/components/{p-Zye2AvZI.js.map → p-CeHDqun7.js.map} +1 -1
- package/dist/components/{p-8c8Dr0ZV.js → p-CgTZtTmT.js} +25 -25
- package/dist/components/p-CgTZtTmT.js.map +1 -0
- package/dist/components/{p-BfwDQevk.js → p-CjdpcyF4.js} +15 -15
- package/dist/components/{p-BfwDQevk.js.map → p-CjdpcyF4.js.map} +1 -1
- 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-DQjjDohc.js → p-Cw5rK8nZ.js} +6 -6
- package/dist/components/{p-DQjjDohc.js.map → p-Cw5rK8nZ.js.map} +1 -1
- package/dist/components/{p-aG9sejEo.js → p-Cy-sLMQG.js} +6 -6
- package/dist/components/{p-aG9sejEo.js.map → p-Cy-sLMQG.js.map} +1 -1
- package/dist/components/{p-WYN1j0PL.js → p-D-3sn9sH.js} +5 -5
- package/dist/components/{p-WYN1j0PL.js.map → p-D-3sn9sH.js.map} +1 -1
- package/dist/components/p-D-75lLYc.js +124 -0
- package/dist/components/p-D-75lLYc.js.map +1 -0
- package/dist/components/{p-DT1e8U5J.js → p-DCmuKByr.js} +12 -12
- package/dist/components/{p-DT1e8U5J.js.map → p-DCmuKByr.js.map} +1 -1
- package/dist/components/{p-CZjMEPqi.js → p-DG0KCn3k.js} +7 -7
- package/dist/components/{p-CZjMEPqi.js.map → p-DG0KCn3k.js.map} +1 -1
- package/dist/components/{p-D6cBz4be.js → p-DGC5KYEl.js} +19 -19
- package/dist/components/{p-D6cBz4be.js.map → p-DGC5KYEl.js.map} +1 -1
- package/dist/components/{p-Drdp5Euh.js → p-DHM0YbIt.js} +6 -6
- package/dist/components/{p-Drdp5Euh.js.map → p-DHM0YbIt.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-Dnb_md64.js +140 -0
- package/dist/components/p-Dnb_md64.js.map +1 -0
- package/dist/components/{p-DOx_fYz_.js → p-Dv5lS2bl.js} +10 -10
- package/dist/components/{p-DOx_fYz_.js.map → p-Dv5lS2bl.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-DTALiLAZ.js → p-My1l3OBd.js} +4 -4
- package/dist/components/{p-DTALiLAZ.js.map → p-My1l3OBd.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-b7Sv1iEG.js → p-XunATCgp.js} +13 -13
- package/dist/components/{p-b7Sv1iEG.js.map → p-XunATCgp.js.map} +1 -1
- package/dist/components/p-av8MQL9x.js +107 -0
- package/dist/components/{p-DXliIvkR.js.map → p-av8MQL9x.js.map} +1 -1
- package/dist/components/{p-GrnK0v_A.js → p-drInZwO0.js} +7 -7
- package/dist/components/{p-GrnK0v_A.js.map → p-drInZwO0.js.map} +1 -1
- package/dist/components/{p-uDj0XDfv.js → p-htsjbc2A.js} +5 -5
- package/dist/components/{p-uDj0XDfv.js.map → p-htsjbc2A.js.map} +1 -1
- package/dist/components/{p-CoklAWrF.js → p-kbTcbS6Y.js} +29 -29
- package/dist/components/{p-CoklAWrF.js.map → p-kbTcbS6Y.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-mVYojO3m.js +161 -0
- package/dist/components/{p-34NvdAct.js.map → p-mVYojO3m.js.map} +1 -1
- package/dist/components/p-maYXfa3o.js +113 -0
- package/dist/components/{p-rShdvhEn.js.map → p-maYXfa3o.js.map} +1 -1
- package/dist/components/{p-BQwk0OCD.js → p-p3q1OJSb.js} +12 -12
- package/dist/components/{p-BQwk0OCD.js.map → p-p3q1OJSb.js.map} +1 -1
- package/dist/components/{p-Csg2zfWF.js → p-tkW40LmD.js} +9 -9
- package/dist/components/{p-Csg2zfWF.js.map → p-tkW40LmD.js.map} +1 -1
- 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 +180 -136
- 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-4976f186.entry.js +2 -0
- package/dist/zignal-stencil-library/{p-b3cbf3e3.entry.js.map → p-4976f186.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/{p-35a45709.entry.js → p-c349823b.entry.js} +64 -64
- package/dist/zignal-stencil-library/p-c349823b.entry.js.map +1 -0
- 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-2nxqY6Yv.js +0 -132
- package/dist/components/p-34NvdAct.js +0 -161
- 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-Cav9Xvhc.js +0 -104
- package/dist/components/p-DLUy8rmx.js.map +0 -1
- package/dist/components/p-DXliIvkR.js +0 -107
- package/dist/components/p-LsQYRhK6.js.map +0 -1
- package/dist/components/p-a3QvEULN.js +0 -61
- package/dist/components/p-a8Ave0b1.js.map +0 -1
- 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.map +0 -1
- package/dist/components/p-xc8pAQt4.js +0 -81
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/store/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/store/chat.ts"],"names":[],"mappings":"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","sourcesContent":["import { getChat, getChats, getUserStatuses, getUserTags } from '../api';\nimport { GetChatsParams } from '../api/type';\nimport { CHAT_PAGE_LIMIT } from '../utils/constant';\nimport { handleError } from './dialog';\nimport { chatsStore, configStore, filterChatsStore, selectedChatStore, statusesStore, tagsStore } from './store';\nimport { TChatItem } from './type';\n\nexport async function handleGetChats(params: GetChatsParams) {\n const { start, spam, ...rest } = params;\n const loadedKeys = chatsStore.get('loadedKeys');\n if (start && loadedKeys.has(start)) return;\n\n const { chats, next: nextKey } = await getChats({\n limit: CHAT_PAGE_LIMIT,\n start,\n ...rest,\n spam: spam ? spam : false,\n });\n\n let newChats: TChatItem[] = [];\n\n if (start) {\n // Scrolling Down\n newChats = [...chatsStore.get('chats'), ...chats];\n } else {\n // First load\n newChats = chats;\n }\n\n const uniqueChats = Array.from(new Map(newChats.map(m => [m.id, m])).values());\n\n chatsStore.set('chats', uniqueChats);\n chatsStore.set('next', nextKey);\n if (start) {\n chatsStore.set('loadedKeys', new Set([...loadedKeys, start]));\n }\n}\n\nexport async function handleGetChat(sessionId: string) {\n try {\n const { chat } = await getChat({ sessionId });\n if (chat.spam) {\n const filterChat = filterChatsStore.get('filterChat');\n if (!filterChat?.spam) return;\n }\n\n let _chats = structuredClone(chatsStore.get('chats'));\n const existChatIndex = _chats.findIndex(item => item.id === sessionId);\n\n if (existChatIndex !== -1 && _chats[existChatIndex].pin === chat.pin && _chats[existChatIndex].last_message_at === chat.last_message_at) {\n _chats[existChatIndex] = chat;\n chatsStore.set('chats', _chats);\n return chat;\n }\n\n if (existChatIndex !== -1) {\n _chats = _chats.filter((_, index) => index !== existChatIndex);\n }\n\n const chatTime = chat.last_message_at ? new Date(chat.last_message_at).getTime() : 0;\n let insertIndex = _chats.length;\n\n for (let i = 0; i < _chats.length; i++) {\n const currentChat = _chats[i];\n\n if (chat.pin && !currentChat.pin) {\n insertIndex = i;\n break;\n }\n\n if (!chat.pin && currentChat.pin) {\n continue;\n }\n\n const currentTime = currentChat.last_message_at ? new Date(currentChat.last_message_at).getTime() : 0;\n if (chatTime > currentTime) {\n insertIndex = i;\n break;\n }\n }\n\n _chats.splice(insertIndex, 0, chat);\n chatsStore.set('chats', _chats);\n return chat;\n } catch (error: unknown) {\n handleError(error, 'Failed to load Chat');\n }\n}\n\nexport async function handleGetUserStatuses() {\n try {\n const { statuses } = await getUserStatuses();\n statusesStore.set('statuses', statuses);\n return statuses;\n } catch (error: unknown) {\n handleError(error, 'Failed to load UserStatuses');\n }\n}\n\nexport async function handleGetUserTags() {\n try {\n const { tags } = await getUserTags();\n tagsStore.set('tags', tags);\n return tags;\n } catch (error: unknown) {\n handleError(error, 'Failed to load UserTags');\n }\n}\n\nexport function isUnread() {\n const selectedChat = selectedChatStore.get('selectedChat');\n return selectedChat?.unread_count > 0 || selectedChat.mark_as_unread;\n}\n\nexport function getChatName(item: TChatItem) {\n if (item.type === 'user') {\n return item.user?.nickname || item.user?.name || '';\n }\n if (item.type === 'group') {\n return item?.group?.name;\n }\n return '';\n}\n\nexport function getChatPicture(item: TChatItem) {\n if (item.type === 'user') {\n return item.user?.picture_url || '';\n }\n if (item.type === 'group') {\n return item?.group?.picture_url || '';\n }\n return '';\n}\n\nexport function getChatChannelPictureUrl(item: TChatItem) {\n const theme = configStore.get('theme');\n let image = '';\n if (item.channel === 'zignal') {\n image = `${theme}-zignal`;\n } else if (item.type === 'group') {\n image = 'line';\n } else {\n image = item.channel;\n }\n return `https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${image}.png`;\n}"]}
|
|
@@ -166,14 +166,46 @@ export function handleMapReadMessage() {
|
|
|
166
166
|
setTimeout(() => {
|
|
167
167
|
const reads = messagesStore.get('reads');
|
|
168
168
|
const messages = messagesStore.get('messages');
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
169
|
+
if (messages.length === 0 || reads.length === 0) {
|
|
170
|
+
messagesStore.set('readsMap', {});
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const readsMap = {};
|
|
174
|
+
const sortedMessages = [...messages]
|
|
175
|
+
.map(msg => ({
|
|
176
|
+
id: msg.id,
|
|
177
|
+
timestamp: dayjs(msg.message_at).valueOf()
|
|
178
|
+
}))
|
|
179
|
+
.sort((a, b) => a.timestamp - b.timestamp);
|
|
180
|
+
const validReads = reads
|
|
181
|
+
.filter(read => read.read_at)
|
|
182
|
+
.map(read => ({
|
|
183
|
+
reader: read,
|
|
184
|
+
timestamp: dayjs(read.read_at).valueOf()
|
|
185
|
+
}))
|
|
186
|
+
.sort((a, b) => a.timestamp - b.timestamp);
|
|
187
|
+
if (validReads.length === 0) {
|
|
188
|
+
messagesStore.set('readsMap', {});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const assignedReadIndices = new Set();
|
|
192
|
+
for (let i = sortedMessages.length - 1; i >= 0; i--) {
|
|
193
|
+
const message = sortedMessages[i];
|
|
194
|
+
const applicableReads = [];
|
|
195
|
+
for (let j = 0; j < validReads.length; j++) {
|
|
196
|
+
if (assignedReadIndices.has(j))
|
|
197
|
+
continue;
|
|
198
|
+
if (validReads[j].timestamp > message.timestamp) {
|
|
199
|
+
applicableReads.push(validReads[j].reader);
|
|
200
|
+
assignedReadIndices.add(j);
|
|
175
201
|
}
|
|
176
202
|
}
|
|
203
|
+
if (applicableReads.length > 0) {
|
|
204
|
+
readsMap[message.id] = applicableReads;
|
|
205
|
+
}
|
|
206
|
+
if (assignedReadIndices.size === validReads.length) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
177
209
|
}
|
|
178
210
|
messagesStore.set('readsMap', readsMap);
|
|
179
211
|
}, 300);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/store/message.ts"],"names":[],"mappings":"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","sourcesContent":["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 const readsMap: Map<string, ChatMessageReader[]> = new Map();\n\n for (const read of reads) {\n for (const message of messages.reverse()) {\n if (read.read_at && dayjs(read.read_at).isAfter(dayjs(message.message_at))) {\n readsMap[message.id] = [...(readsMap[message.id] || []), read];\n break;\n }\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"]}
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/store/message.ts"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAoB;IACxD,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,IAAI;IACd,mBAAmB,EAAE;QACnB,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,EAAE;KACtB;IACD,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CActC;IACA,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,IAAI,GAAG,EAAU;IAC7B,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAoB;IACxD,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,IAAI;IACd,mBAAmB,EAAE;QACnB,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,EAAE;KACtB;IACD,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CActC;IACA,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,IAAI,GAAG,EAAU;IAC7B,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAqC,EAAE,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAyC;IAC/E,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAqC;IACvE,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAiD;IACpF,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,IAAI,GAAG,EAAU;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAkC;IACpE,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAA4C;IACrF,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAA6F;IACvI,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,KAAK;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAA2D;IAC/G,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAwB;IAChE,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAsB;IAChE,MAAM,EAAE,KAAK;CACd,CAAC,CAAC","sourcesContent":["import { createStore } from '@stencil/store';\nimport * as Types from '../store/type';\nimport { GetChatMessagesResponse, GetChatsResponse, SearchChatsParams } from '../api/type';\n\nexport const configStore = createStore<Types.ConfigStore>({\n language: 'en',\n theme: 'light',\n businessId: null,\n shopId: null,\n accessToken: null,\n isProduction: false,\n timeZone: null,\n translationSettings: {\n is_auto: false,\n target_language: null,\n exclude_languages: [],\n },\n isNotConnected: false,\n connectionList: [],\n memberList: [],\n});\n\nexport const messagesStore = createStore<\n Omit<GetChatMessagesResponse, 'next' | 'prev'> & {\n loadedKeys: Set<string>;\n readsMap: Record<string, Types.ChatMessageReader[]>;\n jumpMessageId?: string;\n older?: {\n next?: string;\n prev?: string;\n };\n newer?: {\n next?: string;\n prev?: string;\n };\n }\n>({\n messages: [],\n reads: [],\n loadedKeys: new Set<string>(),\n readsMap: {},\n});\n\nexport const filterChatsStore = createStore<{ filterChat?: SearchChatsParams }>({});\n\nexport const statusesStore = createStore<{ statuses: Types.TTagOrStatusItem[] }>({\n statuses: [],\n});\n\nexport const tagsStore = createStore<{ tags: Types.TTagOrStatusItem[] }>({\n tags: [],\n});\n\nexport const chatsStore = createStore<GetChatsResponse & { loadedKeys: Set<string> }>({\n chats: [],\n loadedKeys: new Set<string>(),\n});\n\nexport const userStore = createStore<{ user: Types.UserItem | null }>({\n user: null,\n});\n\nexport const userAddressStore = createStore<{ userAddress: Types.UserAddress | null }>({\n userAddress: null,\n});\n\nexport const selectedChatStore = createStore<{ selectedChat: Types.TChatItem | null; isSyncingTag: boolean; isSyncingMessage: boolean }>({\n selectedChat: null,\n isSyncingTag: false,\n isSyncingMessage: false,\n});\n\nexport const selectedMessageToReplyStore = createStore<{ selectedMessageToReply: Types.ChatMessageItem | null }>({\n selectedMessageToReply: null,\n});\n\nexport const responsiveStore = createStore<{ isMobile: boolean }>({\n isMobile: false,\n});\n\nexport const profilePanelStore = createStore<{ isShow: boolean }>({\n isShow: false,\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AutocompleteAddress$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { A as AutocompleteAddress$1, d as defineCustomElement$1 } from './p-htsjbc2A.js';
|
|
2
2
|
|
|
3
3
|
const AutocompleteAddress = AutocompleteAddress$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AutocompleteMultipleSelect$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { A as AutocompleteMultipleSelect$1, d as defineCustomElement$1 } from './p-Bo_qpOg-.js';
|
|
2
2
|
|
|
3
3
|
const AutocompleteMultipleSelect = AutocompleteMultipleSelect$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AutocompleteSelect$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { A as AutocompleteSelect$1, d as defineCustomElement$1 } from './p-D-3sn9sH.js';
|
|
2
2
|
|
|
3
3
|
const AutocompleteSelect = AutocompleteSelect$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|