zignal-stencil-library 1.1.109 → 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 +269 -163
- 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/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/autocomplete-select/autocomplete-select.js +4 -3
- package/dist/collection/components/autocomplete-select/autocomplete-select.js.map +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-editor/dialog-editor.js +42 -25
- package/dist/collection/components/dialog-editor/dialog-editor.js.map +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 +27 -42
- 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-DGF1OMnC.js → p--gZqhhLL.js} +5 -5
- package/dist/components/{p-DGF1OMnC.js.map → p--gZqhhLL.js.map} +1 -1
- package/dist/components/{p-LUMkIl0L.js → p-3jt5iBgO.js} +7 -7
- package/dist/components/{p-LUMkIl0L.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-Cq3trT50.js → p-8qMMsvE2.js} +6 -6
- package/dist/components/{p-Cq3trT50.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--O1ZEUbW.js → p-B7CuMj9y.js} +6 -6
- package/dist/components/{p--O1ZEUbW.js.map → p-B7CuMj9y.js.map} +1 -1
- package/dist/components/{p-DBulpvHu.js → p-BNblLfcs.js} +24 -32
- package/dist/components/p-BNblLfcs.js.map +1 -0
- package/dist/components/{p-BxtUL608.js → p-BOrhSlbo.js} +6 -6
- package/dist/components/p-BOrhSlbo.js.map +1 -0
- package/dist/components/{p-Cr7gI0aa.js → p-Bj6H7JrX.js} +4 -4
- package/dist/components/{p-Cr7gI0aa.js.map → p-Bj6H7JrX.js.map} +1 -1
- package/dist/components/{p-CAzwNTwH.js → p-Bo_qpOg-.js} +5 -5
- package/dist/components/{p-CAzwNTwH.js.map → p-Bo_qpOg-.js.map} +1 -1
- package/dist/components/{p-Db2KItIV.js → p-BrKDVlCP.js} +10 -4
- 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-D3TCeN-_.js → p-C-hvo0Uo.js} +17 -15
- package/dist/components/p-C-hvo0Uo.js.map +1 -0
- package/dist/components/{p-DKZZLjoB.js → p-C0MuZqgR.js} +4 -4
- package/dist/components/{p-DKZZLjoB.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-V8jogkYH.js.map → p-C7n7EjKD.js.map} +1 -1
- package/dist/components/{p-BLIkH1Mo.js → p-C9OqpwzA.js} +49 -63
- 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-DVnAr27s.js → p-CBGDhDhT.js} +6 -6
- package/dist/components/{p-DVnAr27s.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-CQYTqV0b.js → p-CH39HrFZ.js} +7 -7
- package/dist/components/{p-CQYTqV0b.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-xDz70z-M.js → p-CeHDqun7.js} +5 -5
- package/dist/components/{p-xDz70z-M.js.map → p-CeHDqun7.js.map} +1 -1
- package/dist/components/{p-C6_QUEmP.js → p-CgTZtTmT.js} +25 -25
- package/dist/components/p-CgTZtTmT.js.map +1 -0
- package/dist/components/{p-lh6oIsdX.js → p-CjdpcyF4.js} +15 -15
- package/dist/components/{p-lh6oIsdX.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-fbMxRrBR.js → p-Cw5rK8nZ.js} +6 -6
- package/dist/components/{p-fbMxRrBR.js.map → p-Cw5rK8nZ.js.map} +1 -1
- package/dist/components/{p-Cl7hIV7X.js → p-Cy-sLMQG.js} +6 -6
- package/dist/components/{p-Cl7hIV7X.js.map → p-Cy-sLMQG.js.map} +1 -1
- package/dist/components/{p-Bz_ZwZP1.js → p-D-3sn9sH.js} +9 -8
- package/dist/components/p-D-3sn9sH.js.map +1 -0
- package/dist/components/{p-BVEUC5lT.js → p-D-75lLYc.js} +9 -7
- package/dist/components/p-D-75lLYc.js.map +1 -0
- package/dist/components/{p-BsAFeM-5.js → p-DCmuKByr.js} +12 -12
- package/dist/components/{p-BsAFeM-5.js.map → p-DCmuKByr.js.map} +1 -1
- package/dist/components/{p-DozNuTlX.js → p-DG0KCn3k.js} +45 -28
- package/dist/components/p-DG0KCn3k.js.map +1 -0
- package/dist/components/{p-DI7kfodM.js → p-DGC5KYEl.js} +19 -19
- package/dist/components/{p-DI7kfodM.js.map → p-DGC5KYEl.js.map} +1 -1
- package/dist/components/{p-D4jpzhhj.js → p-DHM0YbIt.js} +6 -6
- package/dist/components/{p-D4jpzhhj.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-Bi4p_UFq.js → p-Dv5lS2bl.js} +10 -10
- package/dist/components/{p-Bi4p_UFq.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-BPSZx5dO.js → p-UWiH2uHw.js} +46 -3
- package/dist/components/p-UWiH2uHw.js.map +1 -0
- package/dist/components/{p-B8KaZkC1.js → p-XunATCgp.js} +13 -13
- package/dist/components/{p-B8KaZkC1.js.map → p-XunATCgp.js.map} +1 -1
- package/dist/components/{p-BvfI15a9.js → p-av8MQL9x.js} +8 -8
- package/dist/components/{p-BvfI15a9.js.map → p-av8MQL9x.js.map} +1 -1
- package/dist/components/{p-DagQghge.js → p-drInZwO0.js} +7 -7
- package/dist/components/{p-DagQghge.js.map → p-drInZwO0.js.map} +1 -1
- package/dist/components/{p-C2y4A6PK.js → p-htsjbc2A.js} +5 -5
- package/dist/components/{p-C2y4A6PK.js.map → p-htsjbc2A.js.map} +1 -1
- package/dist/components/{p-VAINz5I8.js → p-kbTcbS6Y.js} +29 -29
- package/dist/components/{p-VAINz5I8.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-DkAZFStQ.js.map → p-mVYojO3m.js.map} +1 -1
- package/dist/components/{p-Bfsq37ia.js → p-maYXfa3o.js} +6 -6
- package/dist/components/{p-Bfsq37ia.js.map → p-maYXfa3o.js.map} +1 -1
- package/dist/components/{p-CTSEDIyo.js → p-p3q1OJSb.js} +12 -12
- package/dist/components/{p-CTSEDIyo.js.map → p-p3q1OJSb.js.map} +1 -1
- package/dist/components/{p-BcvqaW9a.js → p-tkW40LmD.js} +9 -9
- package/dist/components/{p-BcvqaW9a.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-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 +269 -163
- 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/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-605cf9fb.entry.js → p-4976f186.entry.js} +2 -2
- 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-d9b292e2.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/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-BAcE386V.js.map +0 -1
- package/dist/components/p-BLIkH1Mo.js.map +0 -1
- package/dist/components/p-BPSZx5dO.js.map +0 -1
- package/dist/components/p-BVEUC5lT.js.map +0 -1
- package/dist/components/p-BxtUL608.js.map +0 -1
- package/dist/components/p-Bz_ZwZP1.js.map +0 -1
- package/dist/components/p-C6_QUEmP.js.map +0 -1
- package/dist/components/p-D3TCeN-_.js.map +0 -1
- package/dist/components/p-DBulpvHu.js.map +0 -1
- package/dist/components/p-DE1veeiP.js +0 -116
- package/dist/components/p-DE1veeiP.js.map +0 -1
- package/dist/components/p-Db2KItIV.js.map +0 -1
- package/dist/components/p-DkAZFStQ.js +0 -161
- package/dist/components/p-DozNuTlX.js.map +0 -1
- package/dist/components/p-LsQYRhK6.js.map +0 -1
- package/dist/components/p-V8jogkYH.js +0 -61
- package/dist/components/p-a8Ave0b1.js.map +0 -1
- package/dist/esm/dayjs-9U43dXkE.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-d9b292e2.entry.js.map +0 -1
- /package/dist/zignal-stencil-library/{p-605cf9fb.entry.js.map → p-4976f186.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-C9OqpwzA.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/func.ts","src/components/internal-component/about-section.tsx","src/components/internal-component/tag-section.tsx","src/components/internal-component/associated-users-section.tsx","src/components/internal-component/merge-user-view.tsx","src/components/internal-component/context-section.tsx","src/components/profile-info/profile-info.css?tag=profile-info","src/components/profile-info/profile-info.tsx"],"sourcesContent":["import { UserAddress } from '../components';\n\nexport const getAddressAsText = (address?: UserAddress | null) => {\n if (!address) return '';\n\n const addressStr = [];\n if (address?.address) addressStr.push(address.address);\n if (address?.province) addressStr.push(address.province);\n if (address?.district) addressStr.push(address.district);\n if (address?.sub_district) addressStr.push(address.sub_district);\n if (address?.zip_code) addressStr.push(address.zip_code);\n return addressStr.join(', ');\n};\n\n\nexport const isUrl = (value: string) => {\n try {\n new URL(value)\n\n return true;\n } catch {\n return false;\n }\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, UserAddress } from '../../store/type';\nimport { displayDate } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { getAddressAsText } from '../../utils/func';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { getChatChannelPictureUrl } from '../../store/chat';\n\ninterface AboutSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n onOpenDialogEditor: (params: { label: string; field: string; value: string | string[] | UserAddress; type?: 'input' | 'textarea' | 'address' }) => void;\n}\n\nexport const AboutSection: FunctionalComponent<AboutSectionProps> = ({ user, readOnly = false, activeTabIndex, onOpenDialogEditor }) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3\">\n <span class={`z-text-${theme}`}>{t('about')}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('channel')}</span>\n </div>\n <div class=\"col-span-2\">\n <div class=\"profile-info-connection-wrapper\">\n <span class={`text-sm z-text-${theme}`}>{user.channel === 'zignal' ? 'Zignal' : selectedChat.connection.name}</span>\n <img\n src={getChatChannelPictureUrl(selectedChat)}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n </div>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('email')}</span>\n </div>\n <div class=\"col-span-2 profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>{user.email ? (Array.isArray(user.email) ? user.email.join(', ') : user.email) : '-'}</span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={() => onOpenDialogEditor({ label: 'Email', field: 'email', value: user.email })} />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('phone_no')}</span>\n </div>\n <div class=\"col-span-2 profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.phone_number ? (Array.isArray(user.phone_number) ? user.phone_number.join(', ') : user.phone_number) : '-'}\n </span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Phone no.', field: 'phone_number', value: user.phone_number })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('address')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-pre-line z-text-${theme}`}>{getAddressAsText(user.address) || '-'}</span>\n {!readOnly && activeTabIndex === 0 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Address', field: 'address', value: user.address, type: 'address' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('gender')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-capitalize z-text-${theme}`}>{user.gender ? user.gender : '-'}</span>\n {!readOnly && activeTabIndex === 1 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Gender', field: 'gender', value: user.gender, type: 'input' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('locale')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`text-sm z-text-${theme}`}>{user.locale}</span>\n {!readOnly && activeTabIndex === 1 && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Locale', field: 'locale', value: user.locale, type: 'input' })}\n />\n )}\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('register_date')}</span>\n </div>\n <div class=\"col-span-2\">\n <span class={`text-sm z-text-${theme}`}>{displayDate(user.created_at)}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('last_active_date')}</span>\n </div>\n <div class=\"col-span-2\">\n <span class={`text-sm z-text-${theme}`}>{displayDate(user.last_active_at)}</span>\n </div>\n\n <div class=\"col-span-1\">\n <span class={`text-sm z-text-gray-${theme}`}>{t('note')}</span>\n </div>\n <div class=\"profile-info-content-wrapper-baseline\">\n <span class={`profile-info-pre-line z-text-${theme}`}>{user.note ? user.note : '-'}</span>\n {!readOnly && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => onOpenDialogEditor({ label: 'Note', field: 'note', value: user.note, type: 'textarea' })}\n />\n )}\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TTagOrStatusItem } from '../../store/type';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { ZTagOrStatusItem } from './z-tag-or-status-item';\nimport { ZButton } from './z-button';\nimport { handleGetUserTags } from '../../store/chat';\nimport { configStore, selectedChatStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditTag: boolean;\n isAddTag: boolean;\n tagItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[];\n onEditTag: () => void;\n onCloseTag: () => void;\n onSaveUserTags: () => void;\n onSetIsAddTag: (value: boolean) => void;\n onDeleteTag: (tagId: string) => void;\n onAddTag: (tag: TTagOrStatusItem) => void;\n onCreateUserTag: (name: string) => Promise<TTagOrStatusItem>;\n}\n\nexport const TagSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditTag,\n isAddTag,\n tagItems,\n onEditTag,\n onCloseTag,\n onSaveUserTags,\n onSetIsAddTag,\n onDeleteTag,\n onAddTag,\n onCreateUserTag,\n}) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>{t('tag')}</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditTag ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseTag} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserTags} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditTag} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditTag ? (\n <div class=\"col-span-3\">\n <div class=\"profile-info-box-wrapper flex-wrap\">\n {tagItems.length > 0 &&\n tagItems\n .filter(({ isDelete }) => !isDelete)\n .sort((a, b) => a.item.sequence - b.item.sequence)\n .map(tag => <ZTagOrStatusItem item={tag.item} onDelete={() => onDeleteTag(tag.item.id)} />)}\n </div>\n {selectedChatStore.get('isSyncingTag') && (\n <div class=\"profile-info-status-wrapper\">\n <status-badge status=\"loading\" label={t('chat_tab.syncing_tag')} />\n </div>\n )}\n <div class=\"mt-2\">\n {isAddTag ? (\n <autocomplete-select\n referenceSelector=\"profile-tag\"\n type=\"tag\"\n selectedIds={tagItems.filter(({ isDelete }) => !isDelete).map(({ item }) => item.id)}\n fetchItems={handleGetUserTags}\n createItem={name => onCreateUserTag(name).then(res => res)}\n onSelecting={item => onAddTag(item.detail)}\n />\n ) : (\n <ZButton variant=\"outlined\" fullWidth label={`+ ${t('profile_tab.add_tag')}`} onClick={() => onSetIsAddTag(true)} />\n )}\n </div>\n </div>\n ) : (\n <div class=\"col-span-3\">\n <div class=\"profile-info-box-wrapper flex-wrap\">\n {user.tags && user.tags.length > 0 ? (\n user.tags\n .sort((a, b) => a.sequence - b.sequence)\n .map(tag => <tag-or-status-item item={tag} expandText chatId={`profile-status-${selectedChat.id}-${readOnly ? 'readonly' : ''}`} />)\n ) : (\n <span class={`text-sm z-text-gray-${theme}`}>{t('profile_tab.tag_empty')}</span>\n )}\n </div>\n {selectedChatStore.get('isSyncingTag') && (\n <div class=\"profile-info-status-bottom-wrapper\">\n <status-badge status=\"loading\" label={t('chat_tab.syncing_tag')} />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h, JSX } from '@stencil/core';\nimport { AssociatedUser, UserItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore, responsiveStore, selectedChatStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\n\ninterface AssociatedUsersSectionProps {\n associatedUsers: AssociatedUser[];\n isOpenDrawer: boolean;\n tempDrawerUser: UserItem;\n onJumpToChat: (user: AssociatedUser) => void;\n onViewProfile: (user: AssociatedUser) => void;\n onUnlinkUser: (user: AssociatedUser) => void;\n onSetIsOpenDrawer: (value: boolean) => void;\n renderUserInfo: (user: UserItem, readOnly: boolean) => JSX.Element;\n}\n\nexport const AssociatedUsersSection: FunctionalComponent<AssociatedUsersSectionProps> = ({\n associatedUsers,\n isOpenDrawer,\n tempDrawerUser,\n onJumpToChat,\n onViewProfile,\n onUnlinkUser,\n onSetIsOpenDrawer,\n renderUserInfo,\n}) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const isMobile = responsiveStore.get('isMobile');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n return (\n <div class={`profile-info-user-wrapper pt-2 gap-y-1`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme}`}>{t('profile_tab.related_user')}</span>\n </div>\n\n <div class={`col-span-3 w-full`}>\n {associatedUsers.map((userItem, index) => {\n const isSelected = userItem.id === selectedChat.user.id;\n const backgroundClass = theme === 'dark' ? 'z-background-dark' : 'z-background-light';\n const textClass = theme === 'dark' ? 'z-text-dark' : 'z-text-light';\n\n return (\n <div\n key={index}\n class={`profile-info-associated-user-wrapper ${isSelected ? 'bg-pink-100' : backgroundClass} z-border-divider-${theme} ${isSelected ? 'text-black' : textClass}`}\n >\n <div class=\"profile-info-box-wrapper w-full\">\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${userItem.channel === 'zignal' ? `${theme}-zignal` : userItem.channel}.png`}\n alt=\"agent avatar\"\n class=\"size-5 rounded-full\"\n loading=\"lazy\"\n />\n <span class={`profile-info-capitalize truncate w-1/2`} title={userItem.connection?.name || ''}>\n {userItem.connection?.name}\n </span>\n <z-avatar pictureUrl={userItem.picture_url} size=\"small\" />\n <span class={`profile-info-capitalize truncate w-1/2`} title={userItem.name || ''}>\n {userItem.name}\n </span>\n\n <div class=\"profile-info-associated-user-action-wrapper\">\n {!isSelected && (\n <ZIconButton\n variant=\"none\"\n iconName=\"MessageSquareText\"\n addClassIcon={`size-4 z-text-primary-${theme}`}\n noPaddingY\n onClick={() => onJumpToChat(userItem)}\n />\n )}\n {!isSelected && (\n <ZIconButton\n variant=\"none\"\n iconName=\"UserSearch\"\n addClassIcon={`size-4 z-text-primary-${theme}`}\n noPaddingY\n onClick={() => onViewProfile(userItem)}\n />\n )}\n <ZIconButton variant=\"none\" iconName=\"Unlink\" addClassIcon={`size-4 z-text-primary-${theme}`} noPaddingY onClick={() => onUnlinkUser(userItem)} />\n </div>\n </div>\n </div>\n );\n })}\n </div>\n <div class={`profile-info-drawer-backdrop z-width-${isMobile ? '100' : '25'} ${isOpenDrawer ? 'opacity-100 pointer-events-auto' : 'opacity-0 pointer-events-none'}`} onClick={() => onSetIsOpenDrawer(false)} />\n <div class={`profile-info-drawer-wrapper z-width-${isMobile ? '100' : '25'} z-background-${theme} ${isOpenDrawer ? 'translate-y-0' : 'translate-y-full'}`}>\n <div class=\"profile-info-drawer-content scroll-container\">\n <div class=\"profile-info-drawer-content-close\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon={`size-4 z-text-${theme}`} onClick={() => onSetIsOpenDrawer(false)} />\n </div>\n <div class={'mt-2'}></div>\n {tempDrawerUser && renderUserInfo(tempDrawerUser, true)}\n </div>\n </div>\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from './z-icon-button';\nimport { ZButton } from './z-button';\nimport { Icon } from './icon';\nimport { MatchDecision } from '../../api/type';\nimport { configStore, userStore } from '../../store/store';\nimport { getAddressAsText } from '../../utils/func';\n\ninterface MergeUserViewProps {\n mergeIndex: number;\n onClose: () => void;\n onPrevMergeUser: () => void;\n onNextMergeUser: () => void;\n onActionMergeUser: (decision: MatchDecision) => void;\n}\n\nexport const MergeUserView: FunctionalComponent<MergeUserViewProps> = ({ mergeIndex, onClose, onPrevMergeUser, onNextMergeUser, onActionMergeUser }) => {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const user = userStore.get('user');\n\n return (\n <div class=\"z-animate-width\">\n <div class={`profile-info-compare-wrapper z-text-${theme}`}>\n <ZIconButton variant=\"none\" iconName=\"ChevronLeft\" onClick={onClose} />\n <span>{t('profile_tab.compare_user')}</span>\n </div>\n <div class=\"profile-info-compare-remark-wrapper\">\n <span class={`profile-info-compare-remark z-text-gray-${theme} `}>*{t('profile_tab.compare_user_info')}</span>\n </div>\n {user.match_users && user.match_users.length > 0 && (\n <div>\n <div class=\"profile-info-match-user-wrapper\">\n {/* Prev Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronLeft\"\n addClassIcon={`size-8 ${mergeIndex === 0 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onPrevMergeUser}\n />\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n return (\n <div class=\"profile-info-match-user-container\">\n <div class=\"profile-info-match-user-box\">\n {/* Current User */}\n <div class=\"relative\">\n <z-avatar pictureUrl={user.picture_url} size=\"full\" isNotRound />\n <div class=\"profile-info-avatar-box-merge\">\n <ZButton\n maxWidth=\"max-w-32\"\n label={user.name}\n endIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${user.channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n </div>\n </div>\n {/* Match User */}\n <div class=\"relative\">\n <z-avatar pictureUrl={matchUser.user.picture_url} size=\"full\" isNotRound />\n <div class=\"profile-info-avatar-box-merge\">\n <ZButton\n maxWidth=\"max-w-32\"\n label={matchUser.user.name}\n endIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${matchUser?.channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n </div>\n </div>\n </div>\n <div class={`m-2 z-text-${theme}`}>\n <p class=\"font-semibold\">{t('profile_tab.ai_summary')}</p>\n <span class=\"profile-info-pre-line\">\n {matchUser.reason} {t('profile_tab.prob')} {matchUser.confidence}% {t('profile_tab.same_user')}\n </span>\n </div>\n <div class=\"profile-info-match-user-action-wrapper\">\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('no')}\n startIcon={<Icon name=\"X\" addClass=\"size-5 text-red-700\" />}\n onClick={() => onActionMergeUser('reject')}\n />\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('profile_tab.merge_user')}\n startIcon={<Icon name=\"Check\" addClass=\"size-5 text-green-700\" />}\n onClick={() => onActionMergeUser('merge')}\n />\n </div>\n </div>\n );\n })()}\n {/* Next Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronRight\"\n addClassIcon={`size-8 ${mergeIndex === user.match_users.length - 1 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onNextMergeUser}\n />\n </div>\n <p class={`font-semibold mx-4 z-text-${theme}`}>{t('profile_tab.compare_table')}</p>\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n const fields = [\n { label: t('channel'), key: 'channel' },\n { label: t('email'), key: 'email' },\n { label: t('phone_no'), key: 'phone_number' },\n { label: t('address'), key: 'address' },\n { label: t('gender'), key: 'gender' },\n ];\n return (\n <div class=\"profile-info-match-user-name-wrapper scroll-container\">\n <table class=\"profile-info-match-user-table\">\n <thead class=\"profile-info-match-user-table-header\">\n <tr>\n <th>{t('name')}</th>\n <th>{user.name}</th>\n <th>{matchUser.user.name}</th>\n </tr>\n </thead>\n <tbody>\n {fields.map(({ label, key }, index) => {\n let value = user[key];\n let comparedValue = matchUser.user[key];\n if (key === 'channel') {\n comparedValue = matchUser[key];\n }\n if (key === 'address') {\n value = getAddressAsText(user[key]);\n comparedValue = getAddressAsText(matchUser[key]);\n }\n return (\n <tr key={index}>\n <td class={`z-text-${theme}`}>\n <p class=\"profile-info-match-user-table-label\">{label}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{value || '-'}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{comparedValue || '-'}</p>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n );\n })()}\n </div>\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TContextItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditContext: boolean;\n context?: TContextItem;\n onEditContext: () => void;\n onCloseContext: () => void;\n onSaveUserContexts: () => void;\n onContextSelecting: (context: TContextItem) => void;\n // onRemoveContext: () => void;\n onCreateUserContext: (name: string) => Promise<TContextItem>;\n}\n\nexport const ContextSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditContext,\n context,\n onEditContext,\n onCloseContext,\n onSaveUserContexts,\n onContextSelecting,\n // onRemoveContext,\n onCreateUserContext,\n}) => {\n const theme = configStore.get('theme');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>บริบทของบทสนทนา</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseContext} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserContexts} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditContext} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper\">\n <autocomplete-select\n value={user.context?.id === context?.id ? user.context?.name : ''}\n fetchItems={() => Promise.resolve([{\n id: '1',\n name: 'ส่งต่อแอดมิน'\n }])}\n createItem={name => onCreateUserContext(name)}\n onSelecting={item => onContextSelecting(item.detail)}\n referenceSelector=\"profile-context\"\n />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.context ? user.context.name : '-'}\n </span>\n </div>\n )}\n </div>\n </div>\n );\n};\n",":host {\n display: block;\n}\n\n.profile-info-user-wrapper {\n @apply grid grid-flow-row-dense grid-cols-3 grid-rows-1 w-full p-4 mb-2\n}\n\n.profile-info-avatar-wrapper {\n @apply col-span-1 my-auto mr-1\n}\n\n.profile-info-avatar-box {\n @apply relative w-full text-center\n}\n\n.profile-info-avatar-badge {\n @apply absolute bottom-[-2px] right-[-2px];\n}\n\n.profile-info-name-wrapper {\n @apply col-span-2 flex flex-col\n}\n\n.profile-info-box-wrapper {\n @apply flex flex-row gap-1 items-center\n}\n\n.profile-info-nickname {\n @apply font-semibold text-base\n}\n\n.profile-info-summarize-wrapper {\n @apply col-span-3 flex flex-row items-center justify-between mt-2\n}\n\n.profile-info-summarize-text {\n @apply col-span-3 mt-1\n}\n\n.profile-info-connection-wrapper {\n @apply flex items-center space-x-1\n}\n\n.profile-info-avatar {\n @apply size-4 rounded-full\n}\n\n.profile-info-content-wrapper-baseline {\n @apply col-span-2 flex flex-row gap-1 items-baseline-last\n}\n\n.profile-info-pre-line {\n @apply text-sm whitespace-pre-line\n}\n\n.profile-info-capitalize {\n @apply text-sm capitalize\n}\n\n.profile-info-tag-wrapper {\n @apply col-span-3 w-full max-h-60 overflow-y-auto\n}\n\n.profile-info-status-wrapper {\n @apply w-fit mt-2 mx-auto\n}\n\n.profile-info-status-bottom-wrapper {\n @apply w-fit mt-4 mx-auto\n}\n\n.profile-info-avatar-box-merge {\n @apply mt-[-40px] flex justify-center\n}\n\n.profile-info {\n @apply relative h-full\n}\n\n.profile-info-compare-wrapper {\n @apply flex flex-row items-center pt-3 mt-[-16px] text-sm\n}\n\n.profile-info-compare-remark-wrapper {\n @apply px-3 pb-3\n}\n\n.profile-info-compare-remark {\n @apply text-xs whitespace-pre-line\n}\n\n.profile-info-match-user-wrapper {\n @apply flex flex-row items-center justify-between mb-3\n}\n\n.profile-info-match-user-container {\n @apply rounded-xl shadow-md w-full my-2 overflow-clip\n}\n\n.profile-info-match-user-box {\n @apply grid grid-cols-2 mb-2\n}\n\n.profile-info-match-user-action-wrapper {\n @apply flex flex-row items-center justify-around\n}\n\n.profile-info-match-user-name-wrapper {\n @apply rounded-xl my-2 mx-4 overflow-x-auto overflow-y-hidden\n}\n\n.profile-info-match-user-table {\n @apply table-auto w-full text-sm\n}\n\n.profile-info-match-user-table-header {\n @apply bg-pink-100 h-10 shadow-sm\n}\n\n.profile-info-match-user-table-label {\n @apply ml-2 mt-2 whitespace-nowrap\n}\n\n.profile-info-match-user-table-value {\n @apply ml-2 mt-2 whitespace-pre-line\n}\n\n.profile-info-match-user-suggest-wrapper {\n @apply flex flex-row items-center justify-between p-3 mt-[-16px] mb-2 text-sm text-white\n}\n\n.profile-info-match-user-suggest-button {\n @apply text-xs underline cursor-pointer\n}\n\n.profile-info-match-user-suggest-user-wrapper {\n @apply flex border-2 rounded-full overflow-hidden w-fit mx-auto p-0.5 mb-1\n}\n\n.profile-info-associated-user-wrapper {\n @apply flex flex-row gap-1 px-2 py-1 items-center border-b-[0.5px] rounded-xs\n}\n\n.profile-info-associated-user-action-wrapper {\n @apply flex flex-row items-center justify-end w-full\n}\n\n.profile-info-drawer-backdrop {\n @apply fixed inset-0 bg-black/40 !left-auto right-0 transition-opacity duration-300\n}\n\n.profile-info-drawer-wrapper {\n @apply fixed right-0 bottom-0 rounded-t-2xl shadow-lg transition-transform duration-300\n}\n\n.profile-info-drawer-content {\n @apply p-2 relative overflow-y-auto max-h-[90vh]\n}\n\n.profile-info-drawer-content-close {\n @apply absolute top-2 right-2\n}\n\n.profile-info-bill {\n @apply col-span-3 mx-auto mt-2\n}\n\n.profile-info-bill-icon {\n @apply rotate-180 size-2 fill-current\n}\n\n.profile-info-jump-chat-sign {\n @apply flex flex-row items-center justify-center gap-4\n}\n\n.profile-info-section-wrapper {\n @apply border-b-[0.5px] pt-0 min-h-20 relative\n}\n\n.profile-info-refresh-user-button {\n @apply absolute -top-2 right-2\n}","import { Component, Host, State, h } from '@stencil/core';\nimport { configStore, selectedChatStore, statusesStore, userStore } from '../../store/store';\nimport { /*createUserContext,*/ createUserStatus, createUserTag, getUser, mergeUser, unlinkUser, updateUser } from '../../api';\nimport { ZButton } from '../internal-component/z-button';\nimport { AssociatedUser, BillingItem, ChannelType, MatchUserItem, TChatItem, TContextItem, TTagOrStatusItem, UserAddress, UserItem } from '../../store/type';\nimport { getRandomHexColor, useTranslation } from '../../utils/utils';\nimport { MatchDecision } from '../../api/type';\nimport { leaveRoom } from '../../utils/socket';\nimport { getChatPicture, handleGetChat } from '../../store/chat';\nimport { closeDialog, DIALOG_TYPE, handleError, openDialog } from '../../store/dialog';\nimport { serviceUpdateChatItem } from '../../store/message';\nimport { AboutSection } from '../internal-component/about-section';\nimport { TagSection } from '../internal-component/tag-section';\nimport { AssociatedUsersSection } from '../internal-component/associated-users-section';\nimport { MergeUserView } from '../internal-component/merge-user-view';\nimport { ContextSection } from '../internal-component/context-section';\nimport { Icon } from '../internal-component/icon';\n\ntype ShowDialog = {\n open: boolean;\n type?: 'input' | 'textarea' | 'address';\n label?: string;\n field?: string;\n value?: string | string[] | UserAddress;\n};\n\n@Component({\n tag: 'profile-info',\n styleUrl: 'profile-info.css',\n})\nexport class ProfileInfo {\n private disposeListener: () => void;\n\n @State() isLoading = false;\n @State() isEditStatus = false;\n @State() statusId?: string;\n @State() isEditTag = false;\n @State() isAddTag = false;\n @State() isMerge = false;\n @State() isOpenDrawer = false;\n @State() tempDrawerUser: UserItem = null;\n @State() mergeIndex = 0;\n @State() tempUser: UserItem = null;\n @State() activeTabIndex = 0;\n @State() tagItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[] = [];\n @State() showDialog: ShowDialog = { open: false };\n @State() matchUsers: MatchUserItem[] = [];\n @State() associatedUsers: AssociatedUser[] = [];\n @State() isEditContext = false;\n @State() context?: TContextItem;\n @State() isEditSummarizeMessage = false;\n @State() summarizeMessageItems: {\n item: TTagOrStatusItem;\n isAdd?: boolean;\n isDelete?: boolean;\n }[] = [];\n\n private prevSelectedChat: TChatItem | null = null;\n\n private tabs() {\n const t = useTranslation();\n return [{ label: t('profile_tab.profile_this_chat') }, { label: t('profile_tab.merged_profile') }];\n }\n\n private resetState() {\n this.isEditStatus = false;\n this.statusId = undefined;\n this.isEditTag = false;\n this.isAddTag = false;\n this.isMerge = false;\n this.isOpenDrawer = false;\n this.tempDrawerUser = null;\n this.mergeIndex = 0;\n this.tempUser = null;\n this.activeTabIndex = 0;\n this.associatedUsers = [];\n this.tagItems = [];\n this.isEditContext = false;\n this.context = undefined;\n this.isEditSummarizeMessage = false;\n this.summarizeMessageItems = [];\n this.prevSelectedChat = null;\n userStore.reset();\n }\n\n async componentWillLoad() {\n this.disposeListener = selectedChatStore.onChange('selectedChat', async newChat => {\n if (!newChat) {\n this.resetState();\n return;\n }\n if (newChat.id !== this.prevSelectedChat?.id) {\n this.resetState();\n const type = newChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: newChat.channel, id: newChat[type].id, sessionId: newChat.id });\n this.prevSelectedChat = newChat;\n }\n });\n }\n\n private async loadUser({ type, channel, id, sessionId }:\n {\n type?: \"user\" | \"group\"\n channel: ChannelType\n id: string\n sessionId?: string\n }\n ) {\n try {\n this.isLoading = true;\n const user = await getUser({ type, channel, id, sessionId });\n userStore.set('user', user);\n this.statusId = user.status?.id;\n this.context = user.context;\n this.tagItems = user.tags.map(tag => ({ item: tag }));\n this.summarizeMessageItems = user.summarize_messages?.map(tag => ({ item: tag })) || [];\n this.matchUsers = user.match_users;\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n tags: user.tags,\n summarize_messages: user.summarize_messages,\n },\n });\n await this.loadAssociatedUsers(user);\n } catch (error: unknown) {\n handleError(error, 'Failed to load user');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async loadAssociatedUsers(user: UserItem) {\n try {\n this.isLoading = true;\n if (user.zignal_user_id) {\n const zignalUser = await getUser({ channel: 'zignal', id: user.zignal_user_id });\n this.tempUser = zignalUser;\n this.associatedUsers = zignalUser.associated_users;\n } else {\n this.associatedUsers = [];\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to load associated users');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserStatus(name: string) {\n try {\n this.isLoading = true;\n const userStatuses = await createUserStatus({ name, color: getRandomHexColor() });\n return userStatuses;\n } catch (error) {\n handleError(error, 'Failed to createUserStatus');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserTag(name: string) {\n try {\n this.isLoading = true;\n const userTags = await createUserTag({ name, color: getRandomHexColor() });\n return userTags;\n } catch (error: unknown) {\n handleError(error, 'Failed to create user tag');\n } finally {\n this.isLoading = false;\n }\n }\n\n private async createNewUserContext(name: string) {\n try {\n this.isLoading = true;\n const userContexts = {\n id: new Date().getTime().toString(),\n name\n } //await createUserContext({ name });\n return userContexts;\n } catch (error: unknown) {\n handleError(error, 'Failed to create user context');\n } finally {\n this.isLoading = false;\n }\n }\n\n disconnectedCallback() {\n this.disposeListener?.();\n }\n\n render() {\n const t = useTranslation();\n const selectedChat = selectedChatStore.get('selectedChat');\n const user = userStore.get('user');\n const theme = configStore.get('theme');\n const type = selectedChat?.type === 'group' ? 'group' : 'user';\n\n const handleOpenDialogEditor = async ({ label, field, value, type = 'input' }: Omit<ShowDialog, 'open'>) => {\n this.showDialog = { open: true, type, label, field, value };\n };\n\n const handleCloseDialogEditor = () => {\n this.showDialog = { open: false };\n };\n\n const handleEditStatus = () => {\n this.isEditStatus = true;\n };\n\n const handleCloseStatus = () => {\n this.isEditStatus = false;\n };\n\n const handleEditTag = () => {\n this.isEditTag = true;\n };\n\n const handleCloseTag = () => {\n this.isEditTag = false;\n this.tagItems = this.tagItems\n .filter(({ isAdd }) => !isAdd)\n .map(item => ({\n ...item,\n isDelete: undefined,\n isAdd: undefined,\n }));\n };\n\n const handleEditContext = () => {\n this.isEditContext = true;\n };\n\n const handleCloseContext = () => {\n this.isEditContext = false;\n };\n\n const handleEditSummarizeMessage = () => {\n this.isEditSummarizeMessage = true;\n };\n\n const handleCloseSummarizeMessage = () => {\n this.isEditSummarizeMessage = false;\n this.summarizeMessageItems = this.summarizeMessageItems\n .filter(({ isAdd }) => !isAdd)\n .map(item => ({\n ...item,\n isDelete: undefined,\n isAdd: undefined,\n }));\n };\n\n const isAllowEmpty = (field: string) => {\n return ['email', 'phone_number', 'address', 'gender', 'locale', 'note', 'status_id', 'nickname'].includes(field);\n };\n\n const handleUpdateUser = async (field: string, value: string | string[]) => {\n try {\n this.isLoading = true;\n const updateValue = isAllowEmpty(field) ? (value ? value : null) : value\n const updateObject = { [field]: field === 'nickname' && updateValue === null ? '' : updateValue };\n const userResponse = await updateUser({\n type,\n channel: user.channel,\n id: user.id,\n ...updateObject,\n });\n\n if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n userStore.set('user', {\n ...userStore.get('user'),\n ...(field === 'status_id'\n ? {\n status: statusesStore.get('statuses').find(status => status.id === value),\n }\n : updateObject),\n });\n }\n } catch (error) {\n handleError(error, 'Failed to UpdateUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleRemoveStatus = () => {\n this.statusId = undefined;\n };\n\n // const handleRemoveContext = () => {\n // this.context = undefined;\n // };\n\n const handleSaveDialogEditor = async (field: string, value: string) => {\n await handleUpdateUser(field, value);\n handleCloseDialogEditor();\n };\n\n const handleCreateBill = async (value: BillingItem) => {\n alert('Create billing item: ' + JSON.stringify(value));\n // await handleUpdateUser(field, value);\n };\n\n const handleSaveUserStatus = async () => {\n await handleUpdateUser('status_id', this.statusId);\n handleCloseStatus();\n };\n\n const handleSaveUserTags = async () => {\n try {\n this.isLoading = true;\n\n const addTagIds = [];\n const removeTagIds = [];\n for (const item of this.tagItems) {\n if (item?.isAdd) {\n addTagIds.push(item.item.id);\n } else if (item?.isDelete) {\n removeTagIds.push(item.item.id);\n }\n }\n\n const userResponse = await updateUser({\n type,\n channel: selectedChat.channel,\n id: user.id,\n add_tag_ids: addTagIds.length > 0 ? addTagIds : undefined,\n remove_tag_ids: removeTagIds.length > 0 ? removeTagIds : undefined,\n });\n\n if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n\n handleCloseTag();\n } catch (error) {\n handleError(error, 'Failed to UpdateUserTags');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleSaveUserContext = async () => {\n // await handleUpdateUser('context_id', this.context);\n\n userStore.set('user', {\n ...userStore.get('user'),\n ...({\n context: this.context,\n }),\n });\n\n handleCloseContext();\n };\n\n const handleSaveUserSummarizeMessages = async (detail: { item: TTagOrStatusItem; isAdd?: boolean; isDelete?: boolean; }[]) => {\n try {\n this.isLoading = true;\n\n // const addSummarizeMessageIds = [];\n // const removeSummarizeMessageIds = [];\n // for (const item of this.summarizeMessageItems) {\n // if (item?.isAdd) {\n // addSummarizeMessageIds.push(item.item.id);\n // } else if (item?.isDelete) {\n // removeSummarizeMessageIds.push(item.item.id);\n // }\n // }\n this.summarizeMessageItems = detail;\n userStore.set('user', {\n ...userStore.get('user'),\n ...({\n summarize_messages: detail.map(item => item.item),\n })\n })\n // const userResponse = await updateUser({\n // channel: selectedChat.channel,\n // userId: user.id,\n // add_tag_ids: addSummarizeMessageIds.length > 0 ? addSummarizeMessageIds : undefined,\n // remove_tag_ids: removeSummarizeMessageIds.length > 0 ? removeSummarizeMessageIds : undefined,\n // });\n\n // if (['user-updated', 'group-updated'].includes(userResponse.code)) {\n // await this.loadUser(selectedChat.channel, user.id, selectedChat.id);\n // }\n\n handleCloseSummarizeMessage();\n } catch (error) {\n handleError(error, 'Failed to UpdateUserSummarizeMessages');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handlePrevMergeUser = () => {\n const prevIndex = this.mergeIndex - 1;\n if (prevIndex >= 0 && prevIndex <= this.matchUsers.length - 1) {\n this.mergeIndex = prevIndex;\n }\n };\n\n const handleNextMergeUser = () => {\n const nextIndex = this.mergeIndex + 1;\n if (nextIndex <= this.matchUsers.length - 1) {\n this.mergeIndex = nextIndex;\n }\n };\n\n const handleActionMergeUser = async (matchDecision: MatchDecision) => {\n try {\n this.isLoading = true;\n\n const mergeResponse = await mergeUser({\n matchUserId: this.matchUsers[this.mergeIndex].id,\n matchDecision,\n });\n\n if (['match-user-merged', 'match-user-rejected'].includes(mergeResponse.code)) {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n await this.loadUser({ type, channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n\n if (this.matchUsers.length === 1) {\n this.isMerge = false;\n await handleSelectTab(1);\n }\n } catch (error) {\n handleError(error, 'Failed to MergeUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleSelectTab = async (index: number) => {\n if (this.activeTabIndex === index) return;\n this.activeTabIndex = index;\n if (this.tempUser !== null) {\n const tempUser = userStore.get('user');\n userStore.set('user', this.tempUser);\n this.statusId = this.tempUser.status?.id;\n this.context = this.tempUser.context;\n this.tagItems = this.tempUser.tags.map(tag => ({ item: tag }));\n this.tempUser = tempUser;\n }\n handleCloseStatus();\n handleCloseTag();\n handleCloseContext();\n };\n\n const handleJumpToChat = ({ session_id: sessionId }: AssociatedUser) => {\n const customSign = <div class=\"profile-info-jump-chat-sign\">\n <z-avatar pictureUrl={getChatPicture(selectedChat)} />\n <Icon name=\"ArrowRight\" addClass='size-8' />\n <z-avatar\n pictureUrl={getChatPicture({\n ...selectedChat,\n user: {\n ...selectedChat.user,\n picture_url: this.associatedUsers.find(associatedUser => associatedUser.session_id === sessionId)?.picture_url || ''\n }\n })}\n />\n </div>;\n\n const onSubmitDialog = async () => {\n try {\n const selectedChat = selectedChatStore.get('selectedChat');\n if (selectedChat && selectedChat.id !== sessionId) {\n this.isLoading = true;\n leaveRoom(selectedChat.id);\n const chat = await handleGetChat(sessionId);\n selectedChatStore.set('selectedChat', chat);\n } else {\n return;\n }\n } catch (error) {\n handleError(error, 'Failed to jump Chat');\n } finally {\n this.isLoading = false;\n }\n };\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.CUSTOM,\n customSign,\n title: 'คุณต้องการสลับไปยังแชทอื่นใช่หรือไม่',\n contentCustom: 'เมื่อยืนยัน ระบบจะพาคุณไปยังแชทที่เลือก หากต้องการกลับมาแชทนี้ คุณจะต้องเลือกแชทนี้ใหม่อีกครั้ง',\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog,\n onCloseDialog: closeDialog,\n });\n };\n\n const handleViewProfile = async ({ channel, id, session_id: sessionId }: AssociatedUser) => {\n try {\n this.isLoading = true;\n const user = await getUser({ channel, id, sessionId });\n this.tempDrawerUser = user;\n this.isOpenDrawer = true;\n } catch (error) {\n handleError(error, 'Failed to load View User');\n } finally {\n this.isLoading = false;\n }\n };\n\n const handleUnlinkUser = async ({ channel, id: userId }: AssociatedUser) => {\n try {\n this.isLoading = true;\n const unlinkResponse = await unlinkUser({\n zignalUserId: user.zignal_user_id,\n channel,\n userId,\n });\n\n if (unlinkResponse.code === 'user-unlinked') {\n await this.loadUser({ channel: selectedChat.channel, id: user.id, sessionId: selectedChat.id });\n }\n } catch (error) {\n handleError(error, 'Failed to unlinkUser');\n } finally {\n this.isLoading = false;\n }\n };\n\n const renderUserInfo = (_user: UserItem, readOnly: boolean = false) => {\n return (\n <div>\n <user-info-section\n user={_user}\n readOnly={readOnly}\n isEditStatus={this.isEditStatus}\n statusId={this.statusId}\n onOpenDialogEditor={event => handleOpenDialogEditor(event.detail)}\n onEditStatus={() => handleEditStatus()}\n onCloseStatus={() => handleCloseStatus()}\n onRemoveStatus={() => handleRemoveStatus()}\n onSaveUserStatus={() => handleSaveUserStatus()}\n onStatusSelecting={event => (this.statusId = event.detail)}\n onCreateUserStatusRequest={(event) => {\n this.createNewUserStatus(event.detail.name).then(result => {\n event.detail.callback(result);\n });\n }}\n onCreateBill={(event) => handleCreateBill(event.detail)}\n onSyncUser={() => {\n const type = selectedChat.type === 'group' ? 'group' : 'user';\n this.loadUser({\n type,\n channel: selectedChat.channel,\n id: _user.id,\n sessionId: selectedChat.id\n })\n }}\n />\n\n <AboutSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n onOpenDialogEditor={handleOpenDialogEditor}\n />\n\n <TagSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditTag={this.isEditTag}\n isAddTag={this.isAddTag}\n tagItems={this.tagItems}\n onEditTag={handleEditTag}\n onCloseTag={handleCloseTag}\n onSaveUserTags={handleSaveUserTags}\n onSetIsAddTag={value => (this.isAddTag = value)}\n onDeleteTag={tagId => {\n this.tagItems = this.tagItems.map(item =>\n item.item.id === tagId\n ? {\n ...item,\n isDelete: true,\n isAdd: false,\n }\n : item,\n );\n }}\n onAddTag={tag => {\n this.tagItems = [\n ...this.tagItems,\n {\n item: tag,\n isAdd: true,\n isDelete: undefined,\n },\n ];\n }}\n onCreateUserTag={name => this.createNewUserTag(name)}\n />\n\n <ContextSection\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditContext={this.isEditContext}\n context={this.context}\n onEditContext={handleEditContext}\n onCloseContext={handleCloseContext}\n // onRemoveContext={handleRemoveContext}\n onSaveUserContexts={handleSaveUserContext}\n onContextSelecting={context => (this.context = context)}\n onCreateUserContext={name => this.createNewUserContext(name)}\n />\n\n <summarize-message-section\n user={_user}\n readOnly={readOnly}\n activeTabIndex={this.activeTabIndex}\n isEditSummarizeMessage={this.isEditSummarizeMessage}\n summarizeMessageItems={this.summarizeMessageItems}\n onEditSummarizeMessage={handleEditSummarizeMessage}\n onCancelSummarizeMessage={handleCloseSummarizeMessage}\n onSaveUserSummarizeMessage={(event) => handleSaveUserSummarizeMessages(event.detail)}\n />\n </div>\n );\n };\n\n return (\n <Host>\n {selectedChat && user && (\n <div class=\"z-animate-width profile-info\">\n {this.isMerge ? (\n <MergeUserView\n mergeIndex={this.mergeIndex}\n onClose={() => (this.isMerge = false)}\n onPrevMergeUser={handlePrevMergeUser}\n onNextMergeUser={handleNextMergeUser}\n onActionMergeUser={handleActionMergeUser}\n />\n ) : (\n <div class=\"z-animate-width relative\">\n {this.matchUsers && this.matchUsers.length > 0 && (\n <div class={`profile-info-match-user-suggest-wrapper z-background-primary-${theme}`}>\n <div class={`profile-info-box-wrapper`}>\n <span>{t('profile_tab.match_user')}</span>\n <div class=\"relative\">\n <z-avatar size=\"small\" pictureUrl={this.matchUsers[0].user.picture_url} />\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${this.matchUsers[0].channel}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar absolute -bottom-0.5 -right-0.5\"\n loading=\"lazy\"\n />\n </div>\n </div>\n <span class=\"profile-info-match-user-suggest-button\" onClick={() => (this.isMerge = true)}>\n {`${t('profile_tab.view_data')} >`}\n </span>\n </div>\n )}\n\n {(user.zignal_user_id || this.tempUser !== null) && (\n <div class={`profile-info-match-user-suggest-user-wrapper z-border-primary-${theme}`}>\n {this.tabs().map(({ label }, index) => (\n <ZButton\n label={label}\n onClick={() => handleSelectTab(index)}\n variant={this.activeTabIndex === index ? 'primary' : 'text'}\n startIcon={\n <img\n src={`https://zwizai-platform.s3.ap-southeast-1.amazonaws.com/zignal-package/${index === 0 ? selectedChat.channel : `${theme}-zignal`}.png`}\n alt=\"agent avatar\"\n class=\"profile-info-avatar\"\n loading=\"lazy\"\n />\n }\n />\n ))}\n </div>\n )}\n\n {renderUserInfo(user)}\n\n {this.associatedUsers && this.associatedUsers.length > 0 && (\n <AssociatedUsersSection\n associatedUsers={this.associatedUsers}\n isOpenDrawer={this.isOpenDrawer}\n tempDrawerUser={this.tempDrawerUser}\n onJumpToChat={handleJumpToChat}\n onViewProfile={handleViewProfile}\n onUnlinkUser={handleUnlinkUser}\n onSetIsOpenDrawer={value => (this.isOpenDrawer = value)}\n renderUserInfo={renderUserInfo}\n />\n )}\n\n {this.showDialog.open && (\n <div class=\"dialog-backdrop\">\n <dialog-editor\n label={this.showDialog.label}\n dialogType={this.showDialog.type}\n field={this.showDialog.field}\n value={this.showDialog.value}\n allowEmpty={isAllowEmpty(this.showDialog.field)}\n onCancel={handleCloseDialogEditor}\n onSave={(event: any) => handleSaveDialogEditor(this.showDialog.field, event?.detail)}\n />\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as axios } from './p-
|
|
2
|
-
import { c as configStore } from './p-
|
|
3
|
-
import { a as apiService } from './p-
|
|
4
|
-
import { B as BASE_URL } from './p-
|
|
1
|
+
import { a as axios } from './p-C2YAe0Ke.js';
|
|
2
|
+
import { c as configStore } from './p-x8gJGTdZ.js';
|
|
3
|
+
import { a as apiService } from './p-l6ffmvGW.js';
|
|
4
|
+
import { B as BASE_URL } from './p-DwRMNFnU.js';
|
|
5
5
|
|
|
6
6
|
const getChats = async (params) => {
|
|
7
7
|
const { connectionIds, lastAnswerByIds, statusIds, tagIds, ...rest } = params;
|
|
@@ -311,7 +311,7 @@ const syncUser = async (params) => {
|
|
|
311
311
|
throw new Error('Failed to syncUser');
|
|
312
312
|
};
|
|
313
313
|
|
|
314
|
-
export { getUserStatuses as a, getUserTags as b, getChats as c, syncTags as d, sendMessage as e, getMessageMedia as f, getChat as g, getActivityLogs as h, unReadMessage as i, getChatMessages as j,
|
|
315
|
-
//# sourceMappingURL=p-
|
|
314
|
+
export { getUserStatuses as a, getUserTags as b, getChats as c, syncTags as d, sendMessage as e, getMessageMedia as f, getChat as g, getActivityLogs as h, unReadMessage as i, getChatMessages as j, syncUser as k, getUser as l, createUserStatus as m, createUserTag as n, mergeUser as o, unlinkUser as p, updateUser as q, readMessage as r, syncMessage as s, translateChatMessage as t, updateChat as u, getReplyTokenInfo as v };
|
|
315
|
+
//# sourceMappingURL=p-CB09ePCJ.js.map
|
|
316
316
|
|
|
317
|
-
//# sourceMappingURL=p-
|
|
317
|
+
//# sourceMappingURL=p-CB09ePCJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-Ca9LbW-0.js","mappings":"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","names":[],"sources":["src/api/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { configStore } from '../store/store';\nimport { apiService, apiServiceSso } from '../utils/axios';\nimport { BASE_URL } from '../utils/constant';\nimport * as Types from './type';\n\nexport {\n createQuickMessageTemplate,\n createQuickMessageLibraryFiles,\n deleteQuickMessageTemplate,\n getQuickMessageLibraryFiles,\n getQuickMessageTemplates,\n updateQuickMessageLibraryFileName,\n updateQuickMessageTemplate,\n} from './quick-message';\n\n/**\n * @deprecated use '@Props' memberList instead\n */\nexport const getProfileMembers = async (request: { page_number: number; page_size: number }) => {\n const businessId = configStore.get('businessId');\n const { data, status } = await apiServiceSso().get<Types.GetProfileMembersResponse>(`/api/channel/profile/${businessId}/member`, { params: request });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getProfileMembers');\n};\n\nexport const getChats = async (params: Types.GetChatsParams) => {\n const { connectionIds, lastAnswerByIds, statusIds, tagIds, ...rest } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n const { data, status } = await apiService().get<Types.GetChatsResponse>(`api/${businessId}/${shopId}/chat`, {\n params: {\n ...rest,\n connection_id: connectionIds && connectionIds.length === configStore.get('connectionList').length ? undefined : connectionIds,\n last_answer_by_id: lastAnswerByIds && lastAnswerByIds.length === configStore.get('memberList').length ? undefined : lastAnswerByIds,\n status_id: statusIds,\n tag_id: tagIds,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChats');\n};\n\nexport const getChat = async (params: Types.GetChatParams) => {\n const { sessionId } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetChatResponse>(`api/${businessId}/${shopId}/chat/${sessionId}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChat');\n};\n\nexport const updateChat = async (params: Types.UpdateChatParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, ...rest } = params;\n const { data, status } = await apiService().patch<Types.UpdateChatResponse>(`api/${businessId}/${shopId}/chat/${sessionId}`, rest);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const translateChatMessage = async (params: Types.TranslateChatMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, text, messageIds } = params;\n const { data, status } = await apiService().post<Types.TranslateChatMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/translate`, {\n text,\n message_ids: messageIds,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const getChatMessages = async (params: Types.GetChatMessagesParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, startMessageId, ...rest } = params;\n const { data, status } = await apiService().get<Types.GetChatMessagesResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/message`, {\n params: {\n start_message_id: startMessageId,\n ...rest,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChatMessages');\n};\n\nexport const sendMessage = async (params: Types.SendMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, messages } = params;\n const { data, status } = await apiService().post<Types.SendMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/send-message`, {\n messages: messages?.map(({ mimeType, replyMessageId, buttons, menu_list, ...rest }) => ({\n ...rest,\n mime_type: mimeType,\n reply_message_id: replyMessageId,\n buttons: buttons?.map(({ action_type, text, action }) => ({ alt_text: text, action_type, text, action: action ?? undefined })),\n menu_list: menu_list?.map(({ file_url, title, description, buttons }) => ({ file_url, title, description, buttons: buttons?.map(({ action_type, text, action }) => ({ action_type, text, action: action ?? undefined })), })),\n })),\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to sendMessage');\n};\n\nexport const readMessage = async (params: Types.ReadMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.ReadMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/read`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to readMessage');\n};\n\nexport const unReadMessage = async (params: Types.ReadMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/mark-as-unread`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to unReadMessage');\n};\n\nexport const getMessageMedia = async (params: Types.GetImageParams): Promise<string | null> => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, sessionId, messageId } = params;\n\n const url = `${BASE_URL}/api/${businessId}/${shopId}/${channel}/${sessionId}/${messageId}/content`;\n\n let attempts = 0;\n const maxRetries = 3;\n\n while (attempts < maxRetries) {\n try {\n const response = await axios.get(url, {\n responseType: 'blob',\n });\n const blobUrl = URL.createObjectURL(response.data);\n return blobUrl;\n } catch (error: unknown) {\n attempts++;\n if (attempts >= maxRetries) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch image';\n console.error(`Failed to fetch image after ${maxRetries} attempts`, errorMessage);\n return null;\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n return null;\n};\n\n//Waiting for resolve expired attachments from facebook eg. attachments?.find((item) => item.type === 'video'|'image')?.payload.url;\nexport const getMessageAttachment = async (params: Types.GetImageParams): Promise<string | null> => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, sessionId, messageId } = params;\n\n const url = `${BASE_URL}/api/${businessId}/${shopId}/${channel}/${sessionId}/${messageId}/attachment`;\n\n let attempts = 0;\n const maxRetries = 3;\n\n while (attempts < maxRetries) {\n try {\n const response = await axios.get(url, {\n responseType: 'blob',\n });\n const blobUrl = URL.createObjectURL(response.data);\n return blobUrl;\n } catch (error: unknown) {\n attempts++;\n if (attempts >= maxRetries) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch attachment';\n console.error(`Failed to fetch attachment after ${maxRetries} attempts`, errorMessage);\n return null;\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n return null;\n};\n\nexport const getUser = async (params: Types.GetUserParams) => {\n const { type = 'user', channel, id, sessionId } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n let route = `user/${channel}/${id}`;\n if (type === 'group') {\n route = `${channel}/group/${id}`\n }\n const { data, status } = await apiService().get<Types.GetUserResponse>(`api/${businessId}/${shopId}/${route}`, { params: { session_id: sessionId } });\n\n if (status === 200) {\n let addressFormat = null\n if (data.address && Object.keys(data.address).length > 0) {\n addressFormat = {\n address: data.address?.address || '',\n province: data.address?.province || '',\n district: data.address?.district || '',\n sub_district: data.address?.sub_district || data.address?.subdistrict || '',\n zip_code: data.address?.zip_code || '',\n }\n }\n\n return {\n ...data, address: addressFormat\n };\n }\n\n throw new Error('Failed to getUser');\n};\n\nexport const getActivityLogs = async (params: Types.GetActivityLogParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { type = 'user', channel, id } = params;\n let route = `user/${channel}/${id}/activity-log`;\n if (type === 'group') {\n route = `${channel}/group/${id}/activity_logs`\n }\n const { data, status } = await apiService().get<Types.GetActivityLogsResponse>(`api/${businessId}/${shopId}/${route}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getActivityLogs');\n};\n\nexport const updateUser = async (params: Types.UpdateUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { type = 'user', channel, id } = params;\n let _channel = channel;\n if (type === 'group') {\n _channel = 'line';\n }\n let route = `user/${_channel}/${id}`;\n if (type === 'group') {\n route = `${_channel}/group/${id}`\n }\n const { data, status } = await apiService().patch<Types.UpdateUserResponse>(`api/${businessId}/${shopId}/${route}`, {\n nickname: params.nickname,\n email: params.email,\n phone_number: params.phone_number,\n address: params.address,\n gender: params.gender,\n locale: params.locale,\n note: params.note,\n status_id: params.status_id,\n add_tag_ids: params.add_tag_ids,\n remove_tag_ids: params.remove_tag_ids,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const mergeUser = async (params: Types.MergeUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { matchUserId, matchDecision } = params;\n const { data, status } = await apiService().post<Types.MergeUserResponse>(`api/${businessId}/${shopId}/user/merge`, {\n match_user_id: matchUserId,\n match_decision: matchDecision,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to mergeUser');\n};\n\nexport const unlinkUser = async (params: Types.UnlinkUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { zignalUserId, channel, userId } = params;\n const { data, status } = await apiService().request<Types.UnlinkUserResponse>({\n method: 'DELETE',\n url: `api/${businessId}/${shopId}/user/unlink`,\n data: {\n zignal_user_id: zignalUserId,\n channel: channel,\n user_id: userId,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to unlinkUser');\n};\n\nexport const getUserStatuses = async () => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetUserStatusesResponse>(`api/${businessId}/${shopId}/user/status`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getUserStatuses');\n};\n\nexport const createUserStatus = async (params: Types.CreateUserStatusParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserStatusResponse>(`api/${businessId}/${shopId}/user/status`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserStatus');\n};\n\nexport const getUserTags = async () => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetUserTagsResponse>(`api/${businessId}/${shopId}/user/tag`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getUserTags');\n};\n\nexport const createUserTag = async (params: Types.CreateUserTagParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserTagResponse>(`api/${businessId}/${shopId}/user/tag`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserTag');\n};\n\nexport const createUserContext = async (params: Types.CreateUserContextParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserContextResponse>(`api/${businessId}/${shopId}/user/context`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserContext');\n};\n\nexport const getReplyTokenInfo = async (params: Types.GetReplyTokenInfoParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().get<Types.GetReplyTokenInfoResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/reply-token-info`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getReplyTokenInfo');\n};\n\nexport const syncMessage = async (params: Types.SyncMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/sync-message`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncMessage');\n};\n\nexport const syncTags = async (params: Types.SyncTagsParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/sync-tag`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncTags');\n};\n\nexport const syncUser = async (params: Types.SyncUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, id } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/user/${channel}/${id}/sync`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncUser');\n};\n"],"version":3}
|
|
1
|
+
{"file":"p-CB09ePCJ.js","mappings":"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","names":[],"sources":["src/api/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { configStore } from '../store/store';\nimport { apiService, apiServiceSso } from '../utils/axios';\nimport { BASE_URL } from '../utils/constant';\nimport * as Types from './type';\n\nexport {\n createQuickMessageTemplate,\n createQuickMessageLibraryFiles,\n deleteQuickMessageTemplate,\n getQuickMessageLibraryFiles,\n getQuickMessageTemplates,\n updateQuickMessageLibraryFileName,\n updateQuickMessageTemplate,\n} from './quick-message';\n\n/**\n * @deprecated use '@Props' memberList instead\n */\nexport const getProfileMembers = async (request: { page_number: number; page_size: number }) => {\n const businessId = configStore.get('businessId');\n const { data, status } = await apiServiceSso().get<Types.GetProfileMembersResponse>(`/api/channel/profile/${businessId}/member`, { params: request });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getProfileMembers');\n};\n\nexport const getChats = async (params: Types.GetChatsParams) => {\n const { connectionIds, lastAnswerByIds, statusIds, tagIds, ...rest } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n const { data, status } = await apiService().get<Types.GetChatsResponse>(`api/${businessId}/${shopId}/chat`, {\n params: {\n ...rest,\n connection_id: connectionIds && connectionIds.length === configStore.get('connectionList').length ? undefined : connectionIds,\n last_answer_by_id: lastAnswerByIds && lastAnswerByIds.length === configStore.get('memberList').length ? undefined : lastAnswerByIds,\n status_id: statusIds,\n tag_id: tagIds,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChats');\n};\n\nexport const getChat = async (params: Types.GetChatParams) => {\n const { sessionId } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetChatResponse>(`api/${businessId}/${shopId}/chat/${sessionId}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChat');\n};\n\nexport const updateChat = async (params: Types.UpdateChatParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, ...rest } = params;\n const { data, status } = await apiService().patch<Types.UpdateChatResponse>(`api/${businessId}/${shopId}/chat/${sessionId}`, rest);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const translateChatMessage = async (params: Types.TranslateChatMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, text, messageIds } = params;\n const { data, status } = await apiService().post<Types.TranslateChatMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/translate`, {\n text,\n message_ids: messageIds,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const getChatMessages = async (params: Types.GetChatMessagesParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, startMessageId, ...rest } = params;\n const { data, status } = await apiService().get<Types.GetChatMessagesResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/message`, {\n params: {\n start_message_id: startMessageId,\n ...rest,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getChatMessages');\n};\n\nexport const sendMessage = async (params: Types.SendMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId, messages } = params;\n const { data, status } = await apiService().post<Types.SendMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/send-message`, {\n messages: messages?.map(({ mimeType, replyMessageId, buttons, menu_list, ...rest }) => ({\n ...rest,\n mime_type: mimeType,\n reply_message_id: replyMessageId,\n buttons: buttons?.map(({ action_type, text, action }) => ({ alt_text: text, action_type, text, action: action ?? undefined })),\n menu_list: menu_list?.map(({ file_url, title, description, buttons }) => ({ file_url, title, description, buttons: buttons?.map(({ action_type, text, action }) => ({ action_type, text, action: action ?? undefined })), })),\n })),\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to sendMessage');\n};\n\nexport const readMessage = async (params: Types.ReadMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.ReadMessageResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/read`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to readMessage');\n};\n\nexport const unReadMessage = async (params: Types.ReadMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/mark-as-unread`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to unReadMessage');\n};\n\nexport const getMessageMedia = async (params: Types.GetImageParams): Promise<string | null> => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, sessionId, messageId } = params;\n\n const url = `${BASE_URL}/api/${businessId}/${shopId}/${channel}/${sessionId}/${messageId}/content`;\n\n let attempts = 0;\n const maxRetries = 3;\n\n while (attempts < maxRetries) {\n try {\n const response = await axios.get(url, {\n responseType: 'blob',\n });\n const blobUrl = URL.createObjectURL(response.data);\n return blobUrl;\n } catch (error: unknown) {\n attempts++;\n if (attempts >= maxRetries) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch image';\n console.error(`Failed to fetch image after ${maxRetries} attempts`, errorMessage);\n return null;\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n return null;\n};\n\n//Waiting for resolve expired attachments from facebook eg. attachments?.find((item) => item.type === 'video'|'image')?.payload.url;\nexport const getMessageAttachment = async (params: Types.GetImageParams): Promise<string | null> => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, sessionId, messageId } = params;\n\n const url = `${BASE_URL}/api/${businessId}/${shopId}/${channel}/${sessionId}/${messageId}/attachment`;\n\n let attempts = 0;\n const maxRetries = 3;\n\n while (attempts < maxRetries) {\n try {\n const response = await axios.get(url, {\n responseType: 'blob',\n });\n const blobUrl = URL.createObjectURL(response.data);\n return blobUrl;\n } catch (error: unknown) {\n attempts++;\n if (attempts >= maxRetries) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to fetch attachment';\n console.error(`Failed to fetch attachment after ${maxRetries} attempts`, errorMessage);\n return null;\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n }\n\n return null;\n};\n\nexport const getUser = async (params: Types.GetUserParams) => {\n const { type = 'user', channel, id, sessionId } = params;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n let route = `user/${channel}/${id}`;\n if (type === 'group') {\n route = `${channel}/group/${id}`\n }\n const { data, status } = await apiService().get<Types.GetUserResponse>(`api/${businessId}/${shopId}/${route}`, { params: { session_id: sessionId } });\n\n if (status === 200) {\n let addressFormat = null\n if (data.address && Object.keys(data.address).length > 0) {\n addressFormat = {\n address: data.address?.address || '',\n province: data.address?.province || '',\n district: data.address?.district || '',\n sub_district: data.address?.sub_district || data.address?.subdistrict || '',\n zip_code: data.address?.zip_code || '',\n }\n }\n\n return {\n ...data, address: addressFormat\n };\n }\n\n throw new Error('Failed to getUser');\n};\n\nexport const getActivityLogs = async (params: Types.GetActivityLogParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { type = 'user', channel, id } = params;\n let route = `user/${channel}/${id}/activity-log`;\n if (type === 'group') {\n route = `${channel}/group/${id}/activity_logs`\n }\n const { data, status } = await apiService().get<Types.GetActivityLogsResponse>(`api/${businessId}/${shopId}/${route}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getActivityLogs');\n};\n\nexport const updateUser = async (params: Types.UpdateUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { type = 'user', channel, id } = params;\n let _channel = channel;\n if (type === 'group') {\n _channel = 'line';\n }\n let route = `user/${_channel}/${id}`;\n if (type === 'group') {\n route = `${_channel}/group/${id}`\n }\n const { data, status } = await apiService().patch<Types.UpdateUserResponse>(`api/${businessId}/${shopId}/${route}`, {\n nickname: params.nickname,\n email: params.email,\n phone_number: params.phone_number,\n address: params.address,\n gender: params.gender,\n locale: params.locale,\n note: params.note,\n status_id: params.status_id,\n add_tag_ids: params.add_tag_ids,\n remove_tag_ids: params.remove_tag_ids,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateUser');\n};\n\nexport const mergeUser = async (params: Types.MergeUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { matchUserId, matchDecision } = params;\n const { data, status } = await apiService().post<Types.MergeUserResponse>(`api/${businessId}/${shopId}/user/merge`, {\n match_user_id: matchUserId,\n match_decision: matchDecision,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to mergeUser');\n};\n\nexport const unlinkUser = async (params: Types.UnlinkUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { zignalUserId, channel, userId } = params;\n const { data, status } = await apiService().request<Types.UnlinkUserResponse>({\n method: 'DELETE',\n url: `api/${businessId}/${shopId}/user/unlink`,\n data: {\n zignal_user_id: zignalUserId,\n channel: channel,\n user_id: userId,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to unlinkUser');\n};\n\nexport const getUserStatuses = async () => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetUserStatusesResponse>(`api/${businessId}/${shopId}/user/status`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getUserStatuses');\n};\n\nexport const createUserStatus = async (params: Types.CreateUserStatusParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserStatusResponse>(`api/${businessId}/${shopId}/user/status`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserStatus');\n};\n\nexport const getUserTags = async () => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().get<Types.GetUserTagsResponse>(`api/${businessId}/${shopId}/user/tag`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getUserTags');\n};\n\nexport const createUserTag = async (params: Types.CreateUserTagParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserTagResponse>(`api/${businessId}/${shopId}/user/tag`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserTag');\n};\n\nexport const createUserContext = async (params: Types.CreateUserContextParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { data, status } = await apiService().post<Types.CreateUserContextResponse>(`api/${businessId}/${shopId}/user/context`, params);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createUserContext');\n};\n\nexport const getReplyTokenInfo = async (params: Types.GetReplyTokenInfoParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().get<Types.GetReplyTokenInfoResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/reply-token-info`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getReplyTokenInfo');\n};\n\nexport const syncMessage = async (params: Types.SyncMessageParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/sync-message`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncMessage');\n};\n\nexport const syncTags = async (params: Types.SyncTagsParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { sessionId } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/chat/${sessionId}/sync-tag`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncTags');\n};\n\nexport const syncUser = async (params: Types.SyncUserParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const { channel, id } = params;\n const { data, status } = await apiService().post<Types.BaseResponse>(`api/${businessId}/${shopId}/user/${channel}/${id}/sync`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to syncUser');\n};\n"],"version":3}
|