zignal-stencil-library 1.1.116 → 1.1.117
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/autocomplete-address_43.cjs.entry.js +81 -83
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/quick-message-app.cjs.entry.js +2 -2
- package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
- package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
- package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
- package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
- package/dist/collection/components/channel-box/channel-box.css +1 -1
- package/dist/collection/components/chat-app/chat-app.css +1 -1
- package/dist/collection/components/chat-header/chat-header.css +1 -1
- package/dist/collection/components/chat-input/chat-input.css +1 -1
- package/dist/collection/components/chat-input/chat-input.js +19 -2
- package/dist/collection/components/chat-input/chat-input.js.map +1 -1
- package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
- package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
- package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
- package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
- package/dist/collection/components/dialog-search/dialog-search.css +1 -1
- package/dist/collection/components/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/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-media/message-media.css +1 -1
- package/dist/collection/components/profile-history/profile-history.css +1 -1
- package/dist/collection/components/profile-info/profile-info.css +1 -1
- package/dist/collection/components/profile-info/profile-info.js +1 -5
- package/dist/collection/components/profile-info/profile-info.js.map +1 -1
- package/dist/collection/components/profile-info/user-info-section.js +4 -40
- 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 +2 -2
- 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 +2 -2
- 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-dialog/z-dialog.css +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 +39 -39
- 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-CSkfRQtS.js → p-5OHiIxaz.js} +3 -3
- package/dist/components/{p-CSkfRQtS.js.map → p-5OHiIxaz.js.map} +1 -1
- package/dist/components/{p-Cr-0I2xN.js → p-6CelJU7F.js} +35 -12
- package/dist/components/p-6CelJU7F.js.map +1 -0
- package/dist/components/{p-B1RKHUot.js → p-BELvHCsL.js} +4 -4
- package/dist/components/{p-B1RKHUot.js.map → p-BELvHCsL.js.map} +1 -1
- package/dist/components/{p-VTk01ISU.js → p-BE_X2kYP.js} +7 -7
- package/dist/components/{p-VTk01ISU.js.map → p-BE_X2kYP.js.map} +1 -1
- package/dist/components/{p-BzdWH-_8.js → p-BFJj-d_l.js} +9 -9
- package/dist/components/{p-BzdWH-_8.js.map → p-BFJj-d_l.js.map} +1 -1
- package/dist/components/{p-BAweennY.js → p-BKmfoPzS.js} +3 -3
- package/dist/components/{p-BAweennY.js.map → p-BKmfoPzS.js.map} +1 -1
- package/dist/components/{p-CzDxe_x4.js → p-BTCTQ7My.js} +5 -5
- package/dist/components/{p-CzDxe_x4.js.map → p-BTCTQ7My.js.map} +1 -1
- package/dist/components/{p-CpgDVXmW.js → p-BTUnGFPc.js} +3 -3
- package/dist/components/{p-CpgDVXmW.js.map → p-BTUnGFPc.js.map} +1 -1
- package/dist/components/{p-d8YtVMw5.js → p-BTbfL51Y.js} +12 -34
- package/dist/components/p-BTbfL51Y.js.map +1 -0
- package/dist/components/{p-Bp_rFl7K.js → p-BWB7LHud.js} +3 -3
- package/dist/components/{p-Bp_rFl7K.js.map → p-BWB7LHud.js.map} +1 -1
- package/dist/components/{p-C3R9nkWN.js → p-Bfw16jOT.js} +5 -5
- package/dist/components/{p-C3R9nkWN.js.map → p-Bfw16jOT.js.map} +1 -1
- package/dist/components/{p-DoCFaFaQ.js → p-CRyNwVba.js} +4 -4
- package/dist/components/{p-DoCFaFaQ.js.map → p-CRyNwVba.js.map} +1 -1
- package/dist/components/{p-BM4Ua5-N.js → p-CUhMBEa2.js} +15 -25
- package/dist/components/p-CUhMBEa2.js.map +1 -0
- package/dist/components/{p-D1EL33Bi.js → p-CdYfVWot.js} +3 -3
- package/dist/components/{p-D1EL33Bi.js.map → p-CdYfVWot.js.map} +1 -1
- package/dist/components/{p-_hY7uItY.js → p-CefW_o78.js} +26 -20
- package/dist/components/p-CefW_o78.js.map +1 -0
- package/dist/components/{p-EjjWZm5d.js → p-CkPTNqHJ.js} +3 -3
- package/dist/components/{p-EjjWZm5d.js.map → p-CkPTNqHJ.js.map} +1 -1
- package/dist/components/{p-X9vPOzlJ.js → p-CnV_yE5W.js} +5 -5
- package/dist/components/{p-X9vPOzlJ.js.map → p-CnV_yE5W.js.map} +1 -1
- package/dist/components/{p-DnIf4FK6.js → p-D3NjmnKd.js} +5 -5
- package/dist/components/{p-DnIf4FK6.js.map → p-D3NjmnKd.js.map} +1 -1
- package/dist/components/{p-Dgofy5Fu.js → p-D3TGftLh.js} +4 -4
- package/dist/components/{p-Dgofy5Fu.js.map → p-D3TGftLh.js.map} +1 -1
- package/dist/components/{p-B7BslHf0.js → p-D3WlL1rW.js} +20 -26
- package/dist/components/p-D3WlL1rW.js.map +1 -0
- package/dist/components/{p-DVSDKb-D.js → p-D8eTfJZf.js} +4 -4
- package/dist/components/{p-DVSDKb-D.js.map → p-D8eTfJZf.js.map} +1 -1
- package/dist/components/{p-DE4Zm7LV.js → p-DCAMeqDc.js} +7 -7
- package/dist/components/{p-DE4Zm7LV.js.map → p-DCAMeqDc.js.map} +1 -1
- package/dist/components/{p-B89bWwU_.js → p-DDeYr_sL.js} +5 -5
- package/dist/components/{p-B89bWwU_.js.map → p-DDeYr_sL.js.map} +1 -1
- package/dist/components/{p-B_GWvyYU.js → p-DGwVIJPy.js} +9 -9
- package/dist/components/{p-B_GWvyYU.js.map → p-DGwVIJPy.js.map} +1 -1
- package/dist/components/{p-B1V9VErz.js → p-DQWAQWII.js} +3 -3
- package/dist/components/{p-B1V9VErz.js.map → p-DQWAQWII.js.map} +1 -1
- package/dist/components/{p-DmRTlqwE.js → p-DTNTQFNE.js} +4 -4
- package/dist/components/{p-DmRTlqwE.js.map → p-DTNTQFNE.js.map} +1 -1
- package/dist/components/{p-7-3PdG9Y.js → p-DUmyJQUj.js} +5 -5
- package/dist/components/{p-7-3PdG9Y.js.map → p-DUmyJQUj.js.map} +1 -1
- package/dist/components/{p-Da9RXTtk.js → p-DfcbpClO.js} +4 -4
- package/dist/components/{p-Da9RXTtk.js.map → p-DfcbpClO.js.map} +1 -1
- package/dist/components/{p-DO76MORH.js → p-DjYh7dPy.js} +6 -6
- package/dist/components/{p-DO76MORH.js.map → p-DjYh7dPy.js.map} +1 -1
- package/dist/components/{p-DLSvB-0m.js → p-DxXTYS09.js} +3 -3
- package/dist/components/{p-DLSvB-0m.js.map → p-DxXTYS09.js.map} +1 -1
- package/dist/components/{p-crfVJB0O.js → p-FZ4qr4hV.js} +7 -7
- package/dist/components/{p-crfVJB0O.js.map → p-FZ4qr4hV.js.map} +1 -1
- package/dist/components/{p-CUHQjytl.js → p-IQ2DK0av.js} +3 -3
- package/dist/components/{p-CUHQjytl.js.map → p-IQ2DK0av.js.map} +1 -1
- package/dist/components/{p-BbqPrAEc.js → p-JsLne1Lv.js} +8 -8
- package/dist/components/{p-BbqPrAEc.js.map → p-JsLne1Lv.js.map} +1 -1
- package/dist/components/{p-ntIdjTzb.js → p-YIFa1aJ8.js} +3 -3
- package/dist/components/{p-ntIdjTzb.js.map → p-YIFa1aJ8.js.map} +1 -1
- package/dist/components/{p-BpWedVb5.js → p-hqt-EuIZ.js} +3 -3
- package/dist/components/{p-BpWedVb5.js.map → p-hqt-EuIZ.js.map} +1 -1
- package/dist/components/{p-DQlSm0KH.js → p-jMBuXhz4.js} +5 -5
- package/dist/components/{p-DQlSm0KH.js.map → p-jMBuXhz4.js.map} +1 -1
- package/dist/components/{p-DNJTF7lX.js → p-vxD1v4cV.js} +4 -4
- package/dist/components/{p-DNJTF7lX.js.map → p-vxD1v4cV.js.map} +1 -1
- package/dist/components/{p-D90zqoSq.js → p-yxrOVv38.js} +3 -3
- package/dist/components/{p-D90zqoSq.js.map → p-yxrOVv38.js.map} +1 -1
- 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 +8 -8
- package/dist/components/quick-message-file.js +1 -1
- package/dist/components/quick-message-image.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/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/autocomplete-address_43.entry.js +81 -83
- package/dist/esm/loader.js +1 -1
- package/dist/esm/quick-message-app.entry.js +2 -2
- package/dist/esm/zignal-stencil-library.js +1 -1
- package/dist/types/components/chat-input/chat-input.d.ts +2 -0
- package/dist/types/components/profile-info/user-info-section.d.ts +1 -3
- package/dist/types/components.d.ts +0 -2
- package/dist/zignal-stencil-library/{p-02ee9d21.entry.js → p-cb2b35c1.entry.js} +2 -2
- package/dist/zignal-stencil-library/{p-e1c64da7.entry.js → p-eb9ff640.entry.js} +3 -3
- package/dist/zignal-stencil-library/p-eb9ff640.entry.js.map +1 -0
- package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
- package/package.json +2 -2
- package/dist/components/p-B7BslHf0.js.map +0 -1
- package/dist/components/p-BM4Ua5-N.js.map +0 -1
- package/dist/components/p-Cr-0I2xN.js.map +0 -1
- package/dist/components/p-_hY7uItY.js.map +0 -1
- package/dist/components/p-d8YtVMw5.js.map +0 -1
- package/dist/zignal-stencil-library/p-e1c64da7.entry.js.map +0 -1
- /package/dist/zignal-stencil-library/{p-02ee9d21.entry.js.map → p-cb2b35c1.entry.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,b as a}from"./p-DjdYK_gt.js";export{s as setNonce}from"./p-DjdYK_gt.js";import{g as t}from"./p-DQuL1Twl.js";var i=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};i().then((async e=>{await t();return a([["p-
|
|
1
|
+
import{p as e,b as a}from"./p-DjdYK_gt.js";export{s as setNonce}from"./p-DjdYK_gt.js";import{g as t}from"./p-DQuL1Twl.js";var i=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};i().then((async e=>{await t();return a([["p-eb9ff640",[[256,"chat-app",{languagePref:[1,"language-pref"],themeMode:[1,"theme-mode"],businessId:[1,"business-id"],shopId:[1,"shop-id"],accessToken:[1,"access-token"],isProduction:[1,"is-production"],timeZone:[1,"time-zone"],translationSettings:[16,"translation-settings"],isNotConnected:[1,"is-not-connected"],connectionList:[16,"connection-list"],memberList:[16,"member-list"],nextKey:[32],isLoading:[32]},[[0,"click","handleClick"]],{languagePref:["handleLanguageChange"],themeMode:["handleThemeChange"],businessId:["handleBusinessIdChange"],shopId:["handleShopIdChange"],accessToken:["handleAccessTokenChange"],isProduction:["handleIsProductionChange"],timeZone:["handleTimeZoneChange"],translationSettings:["handleTranslationSettingsChange"],isNotConnected:["handleIsNotConnectedChange"],connectionList:["handleConnectionListChange"],memberList:["handleMemberListChange"]},null,{translationSettings:["deserializeTranslateSettingsArray"],connectionList:["deserializeTConnectionArray"],memberList:["deserializeChannelMemberArray"]}],[256,"message-box",{isInitial:[32],isLoadingTop:[32],isLoadingBottom:[32],isAtBottom:[32],replyTokenInfo:[32],showReplyTokenBanner:[32],visibleRange:[32]},[[0,"click","handleClick"]]],[256,"profile-tabs",{active:[32]}],[256,"search-box",{query:[32],showDialog:[32],isUnRead:[32],filterSet:[32]}],[256,"channel-box",{nextKey:[32],isLoading:[32]}],[256,"chat-input",{value:[32],originalText:[32],images:[32],isLoading:[32],isFileLoading:[32],isImageLoading:[32],isTranslated:[32],isTranslateLoading:[32],showQuickMessageModal:[32],isQuickMessageLoading:[32],showDialogBill:[32],isDialogBillLoading:[32]},[[16,"focusRequested","onFocusRequested"]]],[260,"profile-info",{isLoading:[32],isEditStatus:[32],statusId:[32],isEditTag:[32],isAddTag:[32],isMerge:[32],isOpenDrawer:[32],tempDrawerUser:[32],mergeIndex:[32],tempUser:[32],activeTabIndex:[32],tagItems:[32],showDialog:[32],matchUsers:[32],associatedUsers:[32],isEditContext:[32],context:[32],isEditSummarizeMessage:[32],summarizeMessageItems:[32]}],[256,"message-item",{item:[16],replyMessage:[32],isLoading:[32]}],[256,"chat-header",{isPinLoading:[32],isSpamLoading:[32],isReadLoading:[32],isPin:[32],isSpam:[32],isUnRead:[32],selectedValue:[32]}],[256,"profile-history",{isLoading:[32],logs:[32]}],[256,"tag-list",{tags:[16],chatId:[1,"chat-id"],referenceSelector:[1,"reference-selector"],visibleCount:[32]}],[256,"dialog-search",{oldFilter:[16],filter:[32]}],[256,"menu-chat-channel",{referenceSelector:[1,"reference-selector"],isOpen:[32],selected:[32]}],[256,"menu-chat-type",{referenceSelector:[1,"reference-selector"],isOpen:[32],selectedItem:[32]}],[256,"profile-media"],[256,"z-dialog"],[256,"quick-message-modal",{isZignal:[4,"is-zignal"],activeTab:[32],templates:[32],images:[32],files:[32]}],[256,"user-info-section",{user:[16],readOnly:[4,"read-only"],isEditStatus:[4,"is-edit-status"],statusId:[1,"status-id"],isSyncUserLoading:[32]}],[256,"message-content",{item:[16],isReply:[4,"is-reply"],seeTranslate:[32],isClamped:[32],showMore:[32]}],[256,"dialog-editor",{dialogType:[1,"dialog-type"],label:[1],field:[1],value:[1],allowEmpty:[4,"allow-empty"],data:[32],error:[32]}],[256,"autocomplete-multiple-select",{fetchItems:[16],selectedIds:[16],referenceSelector:[1,"reference-selector"],allItems:[32],filteredItems:[32],inputValue:[32],showDropdown:[32],loading:[32]}],[256,"checkbox-list",{itemList:[16],selected:[16]}],[256,"dialog-bill-editor",{data:[32],error:[32]}],[260,"summarize-message-section",{user:[16],readOnly:[4,"read-only"],activeTabIndex:[2,"active-tab-index"],isEditSummarizeMessage:[4,"is-edit-summarize-message"],summarizeMessageItems:[16],items:[32]}],[256,"tag-popper",{tags:[16],referenceSelector:[1,"reference-selector"],isOpen:[32]}],[256,"message-media",{item:[16],messageMediaUrl:[32],showDialog:[32],hasError:[32]}],[256,"autocomplete-address",{field:[1],value:[1],selectedValue:[1,"selected-value"],placeholder:[1],referenceSelector:[1,"reference-selector"],allItems:[32],showDropdown:[32],isLoading:[32]}],[256,"autocomplete-select",{type:[1],value:[1],fetchItems:[16],createItem:[16],selectedIds:[16],referenceSelector:[1,"reference-selector"],allItems:[32],filteredItems:[32],inputValue:[32],showDropdown:[32],loading:[32]}],[256,"status-badge",{status:[1],label:[1],padding:[1],borderWidth:[2,"border-width"],radius:[2],color:[1]}],[256,"quick-message-template",{handleClose:[16],value:[1],isMaster:[4,"is-master"],isZignal:[4,"is-zignal"],searchTemplate:[32],templates:[32],showAddTemplateDialog:[32],editingTemplate:[32],dialogMode:[32],isLoading:[32],isLoadingMore:[32],isSavingTemplate:[32],deletingTemplateId:[32],templatePendingDelete:[32],totalTemplates:[32],totalPages:[32],isSelectZignal:[32]},null,{value:["handleValueChange"]}],[256,"dialog-preview-media",{dialogType:[1,"dialog-type"],url:[1],hasError:[32]}],[256,"quick-message-file",{handleClose:[16],value:[1],isMaster:[4,"is-master"],searchFile:[32],files:[32],isLoading:[32],isLoadingMore:[32],isUploading:[32],isDeleting:[32],totalFiles:[32],totalPages:[32],renameTargetId:[32],renameName:[32],renameExtension:[32],isRenaming:[32],openMenuId:[32]},[[4,"click","handleDocumentClick"]],{value:["handleValueChange"]}],[256,"quick-message-image",{handleClose:[16],value:[1],isMaster:[4,"is-master"],searchImage:[32],images:[32],imageDisplayMode:[32],isLoading:[32],isLoadingMore:[32],isUploading:[32],isDeleting:[32],totalImages:[32],totalPages:[32],renameTargetId:[32],renameName:[32],renameExtension:[32],isRenaming:[32],openMenuId:[32]},[[4,"click","handleDocumentClick"]],{value:["handleValueChange"]}],[256,"typography-clamp",{text:[1],textColor:[1,"text-color"],lines:[2],showMore:[32],isClamped:[32]},null,{text:["onTextChange"],lines:["onLinesChange"]}],[256,"quick-message-add-template",{handleClose:[16],handleSave:[16],handleSend:[16],initialTemplate:[16],mode:[1],isSaving:[4,"is-saving"],draftTemplate:[32]},null,{initialTemplate:["handleInitialTemplateChange"]}],[256,"menu-list",{menuItems:[16],position:[1],referenceSelector:[1,"reference-selector"],iconName:[1,"icon-name"],buttonTitle:[1,"button-title"],variant:[1],noPaddingY:[4,"no-padding-y"],isOpen:[32]}],[256,"tag-or-status-item",{chatId:[1,"chat-id"],item:[16],expandText:[4,"expand-text"],isOpen:[32]}],[256,"quick-message-button-content",{content:[16],maxLength:[2,"max-length"],maxButtonCount:[2,"max-button-count"],maxButtonNameLength:[2,"max-button-name-length"],placeholder:[1],isShowCreateButtonDialog:[32],createButtonLabel:[32],createButtonAction:[32],createButtonType:[32],editingButtonId:[32]}],[256,"quick-message-image-content",{content:[16],maxFileSize:[2,"max-file-size"],errorMessage:[32]}],[256,"quick-message-menu-list-content",{content:[16],maxMenuList:[2,"max-menu-list"],maxFileSize:[2,"max-file-size"],maxTitleLength:[2,"max-title-length"],maxDescriptionLength:[2,"max-description-length"],maxButtonCount:[2,"max-button-count"],maxButtonNameLength:[2,"max-button-name-length"],isButtonDialogOpen:[32],buttonDialogMenuId:[32],buttonDialogLabel:[32],buttonDialogAction:[32],buttonDialogType:[32],editingButtonId:[32],menuErrors:[32]}],[256,"quick-message-text-content",{content:[16],maxLength:[2,"max-length"],placeholder:[1]}],[256,"quick-message-video-content",{content:[16],videoUrl:[32],isDialogOpen:[32],errorMessage:[32]}],[256,"z-avatar",{pictureUrl:[1,"picture-url"],size:[1],isNotRound:[4,"is-not-round"],hasError:[32]},null,{pictureUrl:["watchPictureUrl"]}]]],["p-cb2b35c1",[[256,"quick-message-app",{languagePref:[1,"language-pref"],themeMode:[1,"theme-mode"],templateData:[1,"template-data"],imageLibrary:[1,"image-library"],fileLibrary:[1,"file-library"],businessId:[1,"business-id"],shopId:[1,"shop-id"],accessToken:[1,"access-token"],isProduction:[8,"is-production"],timeZone:[1,"time-zone"],activeTab:[32],templates:[32],images:[32],files:[32]},null,{languagePref:["handleLanguageChange"],themeMode:["handleThemeChange"],templateData:["handleTemplateDataChange"],imageLibrary:["handleImageLibraryChange"],fileLibrary:["handleFileLibraryChange"],businessId:["handleBusinessIdChange"],shopId:["handleShopIdChange"],accessToken:["handleAccessTokenChange"],isProduction:["handleIsProductionChange"],timeZone:["handleTimeZoneChange"]}]]]],e)}));
|
|
2
2
|
//# sourceMappingURL=zignal-stencil-library.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zignal-stencil-library",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.117",
|
|
4
4
|
"description": "Zignal web component library",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -86,4 +86,4 @@
|
|
|
86
86
|
"socket.io-client": "^4.8.1",
|
|
87
87
|
"zod": "^4.0.14"
|
|
88
88
|
}
|
|
89
|
-
}
|
|
89
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-B7BslHf0.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/profile-tabs/profile-tabs.css?tag=profile-tabs","src/components/profile-tabs/profile-tabs.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.profile-tabs {\n @apply flex flex-col\n}\n\n.profile-tabs-wrapper {\n @apply w-full border-b-[0.5px]\n}\n\n.profile-tabs-list-wrapper {\n @apply flex flex-row gap-1\n}\n\n.profile-tabs-back-button-wrapper {\n @apply ml-2 my-auto\n}\n\n.profile-tabs-list {\n @apply flex space-x-8 px-4\n}\n\n.profile-tabs-item {\n @apply px-2 py-3 border-b-2 mt-auto h-[60px] cursor-pointer\n}\n\n.profile-tabs-content {\n @apply py-4 overflow-y-auto scroll-smooth h-full\n}","import { Component, Host, State, h } from '@stencil/core';\nimport { configStore, profilePanelStore, responsiveStore } from '../../store/store';\nimport { ZIconButton } from '../internal-component/z-icon-button';\nimport { useTranslation } from '../../utils/utils';\n\n@Component({\n tag: 'profile-tabs',\n styleUrl: 'profile-tabs.css',\n})\nexport class ProfileTabs {\n @State() active = 0;\n\n tabs() {\n const t = useTranslation();\n return [\n {\n label: t('info'),\n value: 'info',\n },\n // {\n // label: t('file_and_image'),\n // value: 'media',\n // },\n {\n label: t('history'),\n value: 'history',\n },\n ];\n }\n render() {\n const theme = configStore.get('theme');\n const isMobile = responsiveStore.get('isMobile');\n\n const handleBackToMessages = () => {\n profilePanelStore.reset();\n };\n\n return (\n <Host>\n <div class=\"profile-tabs z-max-height\">\n <div class={`profile-tabs-wrapper z-border-divider-${theme}`}>\n <div class=\"profile-tabs-list-wrapper\">\n {isMobile && (\n <div class=\"profile-tabs-back-button-wrapper\">\n <ZIconButton variant=\"none\" iconName=\"ChevronLeft\" onClick={handleBackToMessages} />\n </div>\n )}\n <ul role=\"tablist\" class=\"profile-tabs-list\">\n {this.tabs().map(({ label }, i) => (\n <li role=\"presentation\">\n <button\n role=\"tab\"\n data-index={i}\n onClick={() => (this.active = i)}\n class={\n 'profile-tabs-item ' +\n (this.active === i ? `z-text-primary-${theme} font-medium z-border-primary-${theme}` : `z-text-${theme} border-transparent filter hover:brightness-110`)\n }\n aria-selected={this.active === i ? 'true' : 'false'}\n >\n {label}\n </button>\n </li>\n ))}\n </ul>\n </div>\n </div>\n <div class=\"profile-tabs-content scroll-container\">\n {this.tabs().map(({ value }, i) => (\n <div id={`panel-${i}`} role=\"tabpanel\" class={this.active === i ? '' : 'hidden'}>\n {value === 'info' && <profile-info />}\n {value === 'media' && <profile-media />}\n {value === 'history' && <profile-history />}\n </div>\n ))}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-BM4Ua5-N.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 text-center w-fit\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 flex flex-row items-center justify-end w-full\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 this.loadUser({\n type: selectedChat.type === 'group' ? 'group' : 'user',\n channel: _user.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 +0,0 @@
|
|
|
1
|
-
{"file":"p-Cr-0I2xN.js","mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,YAAY,GAAG,2xxDAA2xxD;;MCuBnyxD,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;;AACZ,IAAA,eAAe;IAEd,KAAK,GAAW,EAAE;IAClB,YAAY,GAAW,EAAE;IACzB,MAAM,GAAa,EAAE;IACrB,SAAS,GAAG,KAAK;IACjB,aAAa,GAAG,KAAK;IACrB,cAAc,GAAG,KAAK;IACtB,YAAY,GAAG,KAAK;IACpB,kBAAkB,GAAG,KAAK;IAC1B,qBAAqB,GAAG,KAAK;IAC7B,qBAAqB,GAAG,KAAK;AAE7B,IAAA,IAAI;AAEL,IAAA,OAAO;IAGf,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;;IAGvB,gBAAgB,GAAA;QACd,IAAI,CAAC,YAAY,EAAE;;AAGrB,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAM,OAAO,KAAG;YAChF,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB;;AAGF,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3B,SAAC,CAAC;;AAGJ,IAAA,WAAW,GAAG,CAAC,CAAQ,KAAI;AACzB,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAA6B;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,EAAE;AACrB,KAAC;AAED,IAAA,WAAW,GAAG,CAAC,KAAqB,KAAI;AACtC,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,EAAE,KAAK;AACjD,QAAA,IAAI,CAAC,cAAc;YAAE;AAErB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAA,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC;AAC9B,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACrC,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,gBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAG;AAClB,oBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAgB;oBACzC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACxC,iBAAC;AACD,gBAAA,IAAI,IAAI;AAAE,oBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBAEpC,KAAK,CAAC,cAAc,EAAE;;;AAG5B,KAAC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,IAAI;;IAGlB,YAAY,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,QAAQ;YAAE;AAEf,QAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AAE9B,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,EAAE,CAAC;AAC9E,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU;AAChC,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU;AAEhC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;QAC5H,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,SAAS,IAAI;;IAG1C,MAAM,GAAA;QACJ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACtC,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAClE,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;QAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,wBAAwB,CAAC;QAE9E,MAAM,yBAAyB,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAA0C,KAAI;YAClG,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,QAAQ,GAAuB,EAAE;gBAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,oBAAA,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;wBAC3B,IAAI;wBACJ,QAAQ;AACR,wBAAA,MAAM,EAAE,cAAc;AACvB,qBAAA,CAAC;oBAEF,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI;wBACJ,GAAG;wBACH,IAAI,IAAI,KAAK;AACX,8BAAE;gCACA,QAAQ;gCACR,QAAQ,EAAE,IAAI,CAAC,IAAI;AACpB;8BACC,EAAE,CAAC;AACR,qBAAA,CAAC;;AAGJ,gBAAA,MAAM,WAAW,CAAC;oBAChB,SAAS,EAAE,YAAY,EAAE,EAAE;oBAC3B,QAAQ;AACT,iBAAA,CAAC;;AAEN,SAAC;AAED,QAAA,MAAM,eAAe,GAAG,CAAC,QAA4B,KAAI;YACvD,MAAM,YAAY,GAAsB,EAAE;AAC1C,YAAA,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE;AACzD,gBAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE;gBAE9B,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI;oBACJ,IAAI;AACJ,oBAAA,MAAM,EAAE;AACN,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA;AACD,oBAAA,UAAU,EAAE,WAAW;AACvB,oBAAA,UAAU,EAAE,WAAW;AACvB,oBAAA,UAAU,EAAE,WAAW;AACvB,oBAAA,aAAa,EAAE,YAAY;oBAC3B,OAAO;oBACP,SAAS;AACT,oBAAA,SAAS,EAAE,IAAI;AAChB,iBAAA,CAAC;;AAGJ,YAAA,yBAAyB,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAE3D,YAAA,MAAM,MAAM,GAAG,YAAY,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,YAAA,qBAAqB,CAAC;gBACpB,MAAM;AACN,gBAAA,WAAW,EAAE;oBACX,YAAY,EAAE,WAAW,CAAC,IAAI;oBAC9B,eAAe,EAAE,WAAW,CAAC,UAAU;AACxC,iBAAA;AACF,aAAA,CAAC;YACF,mBAAmB,CAAC,MAAM,CAAC;AAC7B,SAAC;AAED,QAAA,MAAM,0BAA0B,GAAG,OAAO,IAAY,KAAI;AACxD,YAAA,MAAM,MAAM,GAAG,YAAY,EAAE,EAAE;AAC/B,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC;AACrC,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,QAAQ,EAAE;AACR,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;wBACZ,IAAI;AACJ,wBAAA,cAAc,EAAE,YAAY,KAAK,IAAI,GAAG,SAAS,GAAG,YAAY,CAAC,EAAE;AACpE,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,MAAM,gBAAgB,CAAC;AACrB,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC1B,eAAe,EAAE,IAAI,CAAC,YAAY;AACnC,iBAAA,CAAC;;AAEN,SAAC;QAED,MAAM,UAAU,GAAG,MAAK;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AAChC,YAAA,IAAI,MAAM,KAAK,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAEtB,gBAAA,IAAI;AACF,oBAAA,eAAe,CAAC;AACd,wBAAA;AACE,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,IAAI,EAAE,MAAM;AACb,yBAAA;AACF,qBAAA,CAAC;oBACF,0BAA0B,CAAC,MAAM,CAAC;AAElC,oBAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,oBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;oBACf,2BAA2B,CAAC,KAAK,EAAE;;gBACnC,OAAO,KAAc,EAAE;AACvB,oBAAA,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC;;wBACpC;oBACR,IAAI,CAAC,YAAY,EAAE;;;AAGzB,SAAC;QAED,MAAM,iBAAiB,GAAG,MAAK;YAC7B,2BAA2B,CAAC,KAAK,EAAE;AACrC,SAAC;AAED,QAAA,MAAM,eAAe,GAAG,YAAW;AACjC,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;gBAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACtC,gBAAA,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC;oBACpD,SAAS,EAAE,YAAY,EAAE,EAAE;AAC3B,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAC;gBAEF,IAAI,kBAAkB,CAAC,IAAI,IAAI,kBAAkB,CAAC,IAAI,KAAK,YAAY,EAAE;AACvE,oBAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,oBAAA,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI;AACpC,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;oBAExB,UAAU,CAAC,MAAK;wBACd,IAAI,CAAC,gBAAgB,EAAE;qBACxB,EAAE,GAAG,CAAC;;;YAET,OAAO,KAAc,EAAE;AACvB,gBAAA,WAAW,CAAC,KAAK,EAAE,kCAAkC,CAAC;;oBAC9C;AACR,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;;AAEnC,SAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,KAAe,EAAE,IAAiB,EAAE,SAAmB,KAAI;AACpF,YAAA,IAAI;gBACF,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,IAAI,KAAK,MAAM;AAAE,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;oBAC9C,IAAI,IAAI,KAAK,OAAO;AAAE,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;gBAGlD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,QAAQ,GAAuB,EAAE;AAEvC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,wBAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;;oBAEzB,eAAe,CAAC,QAAQ,CAAC;AACzB,oBAAA,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;;YAE5C,OAAO,KAAc,EAAE;AACvB,gBAAA,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC;;oBACpC;gBACR,IAAI,CAAC,SAAS,EAAE;oBACd,IAAI,IAAI,KAAK,MAAM;AAAE,wBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;oBAC/C,IAAI,IAAI,KAAK,OAAO;AAAE,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;gBAEnD,IAAI,CAAC,YAAY,EAAE;;AAEvB,SAAC;AAED,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAI;AAC7C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzB,gBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB;;qBACK;oBACL,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,aAAa,EAAE;;;AAGrB,SAAC;QAED,MAAM,aAAa,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,UAAU,EAAE;gBAEZ,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,oBAAA,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;;;AAG7C,SAAC;AAED,QAAA,MAAM,kBAAkB,GAAG,OAAO,QAAmC,KAAI;AACvE,YAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;gBAClF;;AAGF,YAAA,MAAM,WAAW,GAAG,CAAC,GAAW,KAAK,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAErE,YAAA,MAAM,aAAa,GAAG,CAAC,OAAe,KAAiB;AACrD,gBAAA,IAAI;AACF,oBAAA,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,oBAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;AAC5B,wBAAA,OAAO,IAAI;;oBAGb,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;oBACrD,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,0BAA0B;AACzD,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;AAC/B,oBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAC5B,oBAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AAEpC,oBAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;wBAC9C,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;;AAGzC,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;AAC7C,oBAAA,MAAM,QAAQ,GAAG,CAAiB,cAAA,EAAA,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,SAAS,EAAE;AACpE,oBAAA,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gBAClD,OAAO,KAAc,EAAE;AACvB,oBAAA,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC;AACvE,oBAAA,OAAO,IAAI;;AAEf,aAAC;AAED,YAAA,MAAM,eAAe,GAAG,OAAO,MAAsB,KAAiC;gBACpF,IAAI,CAAC,MAAM,EAAE;AACX,oBAAA,OAAO,SAAS;;AAGlB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,OAAO,SAAS;;AAGlB,gBAAA,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACxD,oBAAA,OAAO,OAAO;;AAGhB,gBAAA,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC;gBACnC,IAAI,CAAC,IAAI,EAAE;AACT,oBAAA,OAAO,SAAS;;AAGlB,gBAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC;oBACnC,IAAI;oBACJ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACxC,oBAAA,MAAM,EAAE,cAAc;AACvB,iBAAA,CAAC;AAEF,gBAAA,OAAO,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;AACzC,aAAC;AAED,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;gBAEjC,MAAM,eAAe,GAAuB,EAAE;AAE9C,gBAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACvC,IAAI,CAAC,OAAO,EAAE;wBACZ;;AAGF,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;wBACjC,IAAI,CAAC,IAAI,EAAE;4BACT;;wBAGF,eAAe,CAAC,IAAI,CAAC;AACnB,4BAAA,IAAI,EAAE,MAAM;4BACZ,IAAI;AACL,yBAAA,CAAC;wBACF;;AAGF,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;wBACxD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACxD,IAAI,CAAC,QAAQ,EAAE;4BACb;;wBAGF,eAAe,CAAC,IAAI,CAAC;4BACnB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,4BAAA,GAAG,EAAE,QAAQ;AACd,yBAAA,CAAC;;AAGJ,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC7B,eAAe,CAAC,IAAI,CAAC;4BACnB,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChC,4BAAA,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,OAAO,CAAC,OAAO;AACzB,yBAAA,CAAC;;AAGJ,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;AAChC,wBAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;4BACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpD,4BAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;;wBAGzB,eAAe,CAAC,IAAI,CAAC;AACnB,4BAAA,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,yBAAA,CAAC;;;AAIN,gBAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC;;AAGF,gBAAA,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;AACrC,oBAAA,IAAI;AACF,wBAAA,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1B,wBAAA,MAAM,WAAW,CAAC;4BAChB,SAAS,EAAE,YAAY,CAAC,EAAE;4BAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC;AACpB,yBAAA,CAAC;;oBACF,OAAO,KAAc,EAAE;;wBAEvB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;AAC9C,wBAAA,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC7E,wBAAA,WAAW,CAAC,KAAK,EAAE,uCAAuC,CAAC;;;AAI/D,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;YAClC,OAAO,KAAc,EAAE;AACvB,gBAAA,WAAW,CAAC,KAAK,EAAE,uCAAuC,CAAC;;oBACnD;AACR,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;AAEtC,SAAC;QAED,eAAe,WAAW,CAAC,GAAW,EAAA;AACpC,YAAA,IAAI;AACF,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACrD,gBAAA,OAAO,QAAQ;;YACf,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;AACjD,gBAAA,OAAO,IAAI;;;QAIf,MAAM,6BAA6B,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgE,KAAI;AAC5H,YAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;gBACrE;;AAGF,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AAEjC,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,oBAAA,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;wBACd;;AAGF,oBAAA,MAAM,OAAO,GAAqB;wBAChC,IAAI;wBACJ,GAAG,EAAE,IAAI,CAAC,GAAG;qBACd;AAED,oBAAA,IAAI,IAAI,KAAK,MAAM,EAAE;wBACnB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C,wBAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;AAC5B,wBAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,IAAI,0BAA0B;;AAG3D,oBAAA,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;AAE1B,oBAAA,MAAM,WAAW,CAAC;wBAChB,SAAS,EAAE,YAAY,CAAC,EAAE;wBAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC;AACpB,qBAAA,CAAC;AAEF,oBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;;YAEpC,OAAO,KAAc,EAAE;AACvB,gBAAA,WAAW,CAAC,KAAK,EAAE,2CAA2C,CAAC;;oBACvD;AACR,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;AAEtC,SAAC;AAED,QAAA,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAI;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACzD,SAAC;AAED,QAAA,MAAM,qBAAqB,GAAG,YAAW;AACvC,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,gBAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC;oBAChC,SAAS,EAAE,YAAY,EAAE,EAAE;AAC3B,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAC;AAEF,gBAAA,IAAI,IAAI,KAAK,cAAc,EAAE;;AAE3B,oBAAA,MAAM,kBAAkB,GAAc;AACpC,wBAAA,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACxC,wBAAA,IAAI,EAAE,KAAK;qBACZ;AACD,oBAAA,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;;;YAE3D,OAAO,KAAc,EAAE;AACvB,gBAAA,WAAW,CAAC,KAAK,EAAE,mCAAmC,CAAC;;oBAC/C;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE1B,SAAC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACF,YAAY,CAAC,IAAI,IAChB,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,CAAqC,kCAAA,EAAA,KAAK,EAAE,EAAA,+TAEtD,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,uBAAuB,EAAC,OAAO,EAAE,qBAAqB,EAAA,EAAA,8DAAA,CAE3D,CACH,KAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACpB,YAAY,KAAK,IAAI,KACpB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACnC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,YAAY,EAAA,kBACR,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,GAAG,WAAW,GAAG,YAAY,EAAE,IAAI,CAAC,IAAI,EACzF,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAAE,YAAY,CAAC,IAAI,CAAO,CACxD,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAA,CAAC,WAAW,EAAC,EAAA,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,OAAO,EAAE,iBAAiB,EAAI,CAAA,CACnE,CACF,CACP,EAEA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KACrB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,2CAA2C,IACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MACxB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACnB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAClC,CAAC,CAAA,WAAW,IAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAE,MAAM,iBAAiB,CAAC,GAAG,CAAC,GAAI,CACpF,EACN,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,OAAO,EAAC,MAAM,EAAG,CAAA,CACxG,CACP,CAAC,CACE,CACP,EAED,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAElC,CAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,WAAW,EACpB,YAAY,EAAC,iBAAiB,EAC9B,OAAO,EAAE,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAC5D,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,CAAA,EACF,CAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,WAAW,EAAC,MAAM,EAAC,IAAA,EAAA,QAAQ,EAAE,KAAK,IAAI,iBAAiB,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAI,CAAA,EAGnI,CAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,iBAAiB,EAC9B,OAAO,EAAE,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAC9D,SAAS,EAAE,IAAI,CAAC,cAAc,EAC9B,CAAA,EACF,CAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,aAAa,EAChB,MAAM,EAAC,SAAS,EAChB,OAAO,EAAC,aAAa,EACrB,MAAM,EACN,IAAA,EAAA,QAAQ,EAAE,KAAK,IAAI,iBAAiB,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,EACvF,CAAA,EAGF,CAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,QAAQ,EACjB,YAAY,EAAC,iBAAiB,EAC9B,OAAO,EAAE,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAClD,SAAS,EAAE,IAAI,CAAC,qBAAqB,EACrC,CAAA,EAGF,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACf,CAAC,CAAA,WAAW,EACV,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,cAAc,EAAA,CAIpB,CACE,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,UAAA,EAAA,EACE,SAAS,EAAA,IAAA,EACT,EAAE,EAAC,eAAe,EAClB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAC9B,KAAK,EAAE,CAAsE,mEAAA,EAAA,KAAK,kBAAkB,KAAK,CAAA,QAAA,EAAW,KAAK,CAAA,CAAE,EAC3H,WAAW,EAAC,SAAS,EACrB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,EACnD,CAAA,EAED,CAAC,CAAC,YAAY,EAAE,QAAQ,KAAK,mBAAmB,CAAC,eAAe,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC1I,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACrB,YAAA,CAAC,IAAI,CAAC,YAAY,KAChB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,qCAAqC,EAAA,EAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAC,CAAA,WAAW,EAAC,EAAA,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAC,iBAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAI,CAAA,CAC5I,CACF,CACP,CACC,EAEN,CAAC,CAAA,WAAW,IAAC,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAC,iBAAiB,EAAG,CAAA,CACjG,CACF,CACP,EAEA,IAAI,CAAC,qBAAqB,KACzB,CAAA,CAAA,qBAAA,EAAA,EACE,OAAO,EAAE,OAAO,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,EACnD,cAAc,EAAE,CAAC,KAA6C,KAAK,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,EACnG,yBAAyB,EAAE,CAAC,KAAgF,KAC1G,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,EAE7C,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,EACjD,CAAA,CACH,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/chat-input/chat-input.css?tag=chat-input","src/components/chat-input/chat-input.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.chat-input-spam-wrapper {\n @apply w-full px-2 py-4 shadow-inner text-center\n}\n\n.chat-input-spam-title {\n @apply underline cursor-pointer\n}\n\n.chat-input {\n @apply w-full bg-pink-100 px-2 py-3 shadow-inner\n}\n\n.chat-input-reply-wrapper {\n @apply flex items-center justify-between space-x-1 mb-2 ml-2\n}\n\n.chat-input-reply-text {\n @apply text-xs text-gray-500 line-clamp-3\n}\n\n.chat-input-image-wrapper {\n @apply flex items-center flex-wrap space-x-1 m-2 max-h-80 overflow-y-auto\n}\n\n.chat-input-image-button {\n @apply absolute top-[-8px] right-[-8px]\n}\n\n.chat-input-file-wrapper {\n @apply flex items-end space-x-1\n}\n\n.chat-input-icon {\n @apply size-5 mb-2\n}\n\n.chat-input-textarea-wrapper {\n @apply relative flex-1\n}\n\n.chat-input-textarea-input {\n @apply flex-1 px-4 py-2 h-10 w-full rounded-2xl border-none focus:outline-none text-sm ring-primary resize-none\n}\n\n.chat-input-translate-button-wrapper {\n @apply absolute inset-y-0 right-2 flex items-center\n}","import { Component, Host, State, Event, h, EventEmitter, Listen } from '@stencil/core';\nimport { ZIconButton } from '../internal-component/z-icon-button';\nimport { configStore, messagesStore, selectedChatStore, selectedMessageToReplyStore } from '../../store/store';\nimport { sendMessage, translateChatMessage, updateChat } from '../../api';\nimport { scrollBottomMessage, serviceUpdateChatItem, serviceUpdateMessageItems, storeTranslation } from '../../store/message';\nimport { uploadFile } from '../../utils/upload';\nimport {\n ChatMessageItem,\n MessageType,\n QuickMessageLibraryFile,\n QuickMessageTemplate as QuickMessageTemplateModel,\n ReplyMessageItem,\n TChatItem,\n} from '../../store/type';\nimport dayjs from 'dayjs';\nimport { base64ToFileList } from '../../utils/utils';\nimport { handleError } from '../../store/dialog';\nimport { circleBahtIcon } from '../../utils/icon-svg';\n\n@Component({\n tag: 'chat-input',\n styleUrl: 'chat-input.css',\n})\nexport class ChatInput {\n private disposeListener: () => void;\n\n @State() value: string = '';\n @State() originalText: string = '';\n @State() images: string[] = [];\n @State() isLoading = false;\n @State() isFileLoading = false;\n @State() isImageLoading = false;\n @State() isTranslated = false;\n @State() isTranslateLoading = false;\n @State() showQuickMessageModal = false;\n @State() isQuickMessageLoading = false;\n\n @Event() send: EventEmitter<string>;\n\n private inputEl?: HTMLTextAreaElement;\n\n @Listen('focusRequested', { target: 'body' })\n onFocusRequested() {\n this.inputEl?.focus();\n }\n\n componentDidLoad() {\n this.adjustHeight();\n }\n\n async componentWillLoad() {\n this.disposeListener = selectedChatStore.onChange('selectedChat', async newChat => {\n if (!newChat) {\n this.value = '';\n this.isTranslated = false;\n return;\n }\n\n this.value = '';\n this.isTranslated = false;\n });\n }\n\n handleInput = (e: Event) => {\n const target = e.target as HTMLTextAreaElement;\n this.value = target.value;\n this.isTranslated = false;\n this.adjustHeight();\n };\n\n handlePaste = (event: ClipboardEvent) => {\n const clipboardItems = event.clipboardData?.items;\n if (!clipboardItems) return;\n\n for (let i = 0; i < clipboardItems.length; i++) {\n const item = clipboardItems[i];\n if (item.type.indexOf('image') !== -1) {\n const file = item.getAsFile();\n const reader = new FileReader();\n reader.onload = e => {\n const base64 = e.target?.result as string;\n this.images = [...this.images, base64];\n };\n if (file) reader.readAsDataURL(file);\n\n event.preventDefault();\n }\n }\n };\n\n disconnectedCallback() {\n this.disposeListener?.();\n }\n\n private adjustHeight() {\n const textarea = this.inputEl;\n if (!textarea) return;\n\n textarea.style.height = 'auto';\n\n const lineHeight = parseInt(getComputedStyle(textarea).lineHeight || '20', 10);\n const minHeight = 2 * lineHeight;\n const maxHeight = 8 * lineHeight;\n\n const newHeight = this.value.length === 0 ? minHeight : Math.min(Math.max(textarea.scrollHeight - 18, minHeight), maxHeight);\n textarea.style.height = `${newHeight}px`;\n }\n\n render() {\n const theme = configStore.get('theme');\n const translationSettings = configStore.get('translationSettings');\n const selectedChat = selectedChatStore.get('selectedChat');\n const replyMessage = selectedMessageToReplyStore.get('selectedMessageToReply');\n\n const sendingUploadFileMessages = async ({ files, type }: { files: FileList; type: MessageType }) => {\n if (files && files.length > 0) {\n const messages: ReplyMessageItem[] = [];\n\n for (const file of Array.from(files)) {\n const filename = dayjs().format('x');\n const url = await uploadFile({\n file,\n filename,\n folder: 'zignal/media',\n });\n\n messages.push({\n type,\n url,\n ...(type === 'file'\n ? {\n filename,\n mimeType: file.type,\n }\n : {}),\n });\n }\n\n await sendMessage({\n sessionId: selectedChat?.id,\n messages,\n });\n }\n };\n\n const sendingMessages = (messages: ReplyMessageItem[]) => {\n const sendMessages: ChatMessageItem[] = [];\n for (const { text, type, buttons, menu_list } of messages) {\n const currentDate = new Date();\n\n sendMessages.push({\n text,\n type,\n sender: {\n type: 'admin',\n },\n created_at: currentDate,\n updated_at: currentDate,\n message_at: currentDate,\n reply_message: replyMessage,\n buttons,\n menu_list,\n isSending: true,\n });\n }\n\n serviceUpdateMessageItems({ updateMessages: sendMessages });\n\n const chatId = selectedChat?.id;\n const lastMessage = sendMessages[sendMessages.length - 1];\n serviceUpdateChatItem({\n chatId,\n updateValue: {\n last_message: lastMessage.text,\n last_message_at: lastMessage.message_at,\n },\n });\n scrollBottomMessage(chatId);\n };\n\n const sendingTextMessagesProcess = async (text: string) => {\n const chatId = selectedChat?.id;\n const { messages } = await sendMessage({\n sessionId: chatId,\n messages: [\n {\n type: 'text',\n text,\n replyMessageId: replyMessage === null ? undefined : replyMessage.id,\n },\n ],\n });\n\n if (messages.length > 0) {\n await storeTranslation({\n chat_id: chatId,\n message_id: messages[0].id,\n translated_text: this.originalText,\n });\n }\n };\n\n const handleSend = () => {\n const _value = this.value.trim();\n if (_value !== '') {\n this.send.emit(_value);\n\n try {\n sendingMessages([\n {\n text: _value,\n type: 'text',\n },\n ]);\n sendingTextMessagesProcess(_value);\n\n this.originalText = '';\n this.value = '';\n selectedMessageToReplyStore.reset();\n } catch (error: unknown) {\n handleError(error, 'Failed to send message');\n } finally {\n this.adjustHeight();\n }\n }\n };\n\n const handleRemoveReply = () => {\n selectedMessageToReplyStore.reset();\n };\n\n const handleTranslate = async () => {\n try {\n this.isTranslateLoading = true;\n const originalText = this.value.trim();\n const translatedResponse = await translateChatMessage({\n sessionId: selectedChat?.id,\n text: originalText,\n });\n\n if (translatedResponse.text && translatedResponse.text !== originalText) {\n this.originalText = originalText;\n this.value = translatedResponse.text;\n this.isTranslated = true;\n\n setTimeout(() => {\n this.onFocusRequested();\n }, 100);\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to translate chat message');\n } finally {\n this.isTranslateLoading = false;\n }\n };\n\n const handleUploadMedia = (files: FileList, type: MessageType, noLoading?: boolean) => {\n try {\n if (!noLoading) {\n if (type === 'file') this.isFileLoading = true;\n if (type === 'image') this.isImageLoading = true;\n }\n\n if (files && files.length > 0) {\n const messages: ReplyMessageItem[] = [];\n\n for (let i = 0; i < Array.from(files).length; i++) {\n messages.push({ type });\n }\n sendingMessages(messages);\n sendingUploadFileMessages({ files, type });\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to upload media');\n } finally {\n if (!noLoading) {\n if (type === 'file') this.isFileLoading = false;\n if (type === 'image') this.isImageLoading = false;\n }\n this.adjustHeight();\n }\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n if (event.shiftKey) {\n return;\n } else {\n event.preventDefault();\n handleSendAll();\n }\n }\n };\n\n const handleSendAll = () => {\n if (!this.isLoading) {\n handleSend();\n\n const files = base64ToFileList(this.images);\n this.images = [];\n if (files.length > 0) {\n handleUploadMedia(files, 'image', true);\n }\n }\n };\n\n const handleSendTemplate = async (template: QuickMessageTemplateModel) => {\n if (this.isQuickMessageLoading || !template?.contents?.length || !selectedChat?.id) {\n return;\n }\n\n const isRemoteUrl = (url: string) => /^https?:\\/\\//i.test(url.trim());\n\n const dataUrlToFile = (dataUrl: string): File | null => {\n try {\n const [metadata, base64Data] = dataUrl.split(',');\n if (!metadata || !base64Data) {\n return null;\n }\n\n const mimeMatch = metadata.match(/data:(.*?);base64/);\n const mime = mimeMatch?.[1] ?? 'application/octet-stream';\n const binary = atob(base64Data);\n const length = binary.length;\n const bytes = new Uint8Array(length);\n\n for (let index = 0; index < length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n\n const extension = mime.split('/')[1] || 'bin';\n const filename = `quick-message-${dayjs().format('x')}.${extension}`;\n return new File([bytes], filename, { type: mime });\n } catch (error: unknown) {\n console.error('[chat-input] Failed to convert data URL to file', error);\n return null;\n }\n };\n\n const resolveMediaUrl = async (rawUrl?: string | null): Promise<string | undefined> => {\n if (!rawUrl) {\n return undefined;\n }\n\n const trimmed = rawUrl.trim();\n if (!trimmed) {\n return undefined;\n }\n\n if (isRemoteUrl(trimmed) || !trimmed.startsWith('data:')) {\n return trimmed;\n }\n\n const file = dataUrlToFile(trimmed);\n if (!file) {\n return undefined;\n }\n\n const uploadedUrl = await uploadFile({\n file,\n filename: file.name.replace(/\\s+/g, '-'),\n folder: 'zignal/media',\n });\n\n return uploadedUrl?.trim() || undefined;\n };\n\n try {\n this.isQuickMessageLoading = true;\n\n const payloadMessages: ReplyMessageItem[] = [];\n\n for (const content of template.contents) {\n if (!content) {\n continue;\n }\n\n if (content.type === 'text') {\n const text = content.text?.trim();\n if (!text) {\n continue;\n }\n\n payloadMessages.push({\n type: 'text',\n text,\n });\n continue;\n }\n\n if (content.type === 'image' || content.type === 'video') {\n const mediaUrl = await resolveMediaUrl(content.file_url);\n if (!mediaUrl) {\n continue;\n }\n\n payloadMessages.push({\n type: content.type,\n url: mediaUrl,\n });\n }\n\n if (content.type === 'button') {\n payloadMessages.push({\n text: content.text?.trim() || '',\n type: 'button',\n buttons: content.buttons,\n });\n }\n\n if (content.type === 'menu_list') {\n for (const menu of content.menu_list) {\n const fileUrl = await resolveMediaUrl(menu.file_url);\n menu.file_url = fileUrl;\n }\n\n payloadMessages.push({\n type: 'menu_list',\n menu_list: content.menu_list,\n });\n }\n }\n\n if (payloadMessages.length === 0) {\n return;\n }\n\n for (const message of payloadMessages) {\n try {\n sendingMessages([message]);\n await sendMessage({\n sessionId: selectedChat.id,\n messages: [message],\n });\n } catch (error: unknown) {\n //remove the message when error\n const messages = messagesStore.get('messages');\n messagesStore.set('messages', messages.filter(message => !message.isSending));\n handleError(error, 'Failed to send quick message template');\n }\n }\n\n this.showQuickMessageModal = false;\n } catch (error: unknown) {\n handleError(error, 'Failed to send quick message template');\n } finally {\n this.isQuickMessageLoading = false;\n }\n };\n\n async function getMimeType(url: string) {\n try {\n const response = await fetch(url, { method: 'HEAD' });\n const mimeType = response.headers.get('Content-Type');\n return mimeType;\n } catch (error) {\n console.error('Error fetching MIME type:', error);\n return null;\n }\n }\n\n const handleSendQuickMessageLibrary = async ({ type, items }: { type: 'image' | 'file'; items: QuickMessageLibraryFile[] }) => {\n if (this.isQuickMessageLoading || !selectedChat?.id || !items?.length) {\n return;\n }\n\n try {\n this.isQuickMessageLoading = true;\n\n for (const item of items) {\n if (!item?.url) {\n continue;\n }\n\n const payload: ReplyMessageItem = {\n type,\n url: item.url,\n };\n\n if (type === 'file') {\n const mimeType = await getMimeType(item.url);\n payload.filename = item.name;\n payload.mimeType = mimeType || 'application/octet-stream';\n }\n\n sendingMessages([payload]);\n\n await sendMessage({\n sessionId: selectedChat.id,\n messages: [payload],\n });\n\n this.showQuickMessageModal = false;\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to send quick message library item');\n } finally {\n this.isQuickMessageLoading = false;\n }\n };\n\n const handleRemoveImage = (index: number) => {\n this.images = this.images.filter((_, i) => i !== index);\n };\n\n const handleUnSpamChatClick = async () => {\n try {\n this.isLoading = true;\n const { code } = await updateChat({\n sessionId: selectedChat?.id,\n spam: false,\n });\n\n if (code === 'chat-updated') {\n //Requirement: No need to update chatStore waiting user refresh or click other chat\n const updateSelectedChat: TChatItem = {\n ...selectedChatStore.get('selectedChat'),\n spam: false,\n };\n selectedChatStore.set('selectedChat', updateSelectedChat);\n }\n } catch (error: unknown) {\n handleError(error, 'Failed to update chat spam status');\n } finally {\n this.isLoading = false;\n }\n };\n\n return (\n <Host>\n {selectedChat.spam ? (\n <div class={`chat-input-spam-wrapper z-bg-gray-${theme}`}>\n ไม่สามารถส่งข้อมูลได้ เนื่องจากมีการสแปมผู้ใช้รายนี้ \n <span class=\"chat-input-spam-title\" onClick={handleUnSpamChatClick}>\n ยกเลิกสแปม\n </span>\n </div>\n ) : (\n <div class=\"chat-input\">\n {replyMessage !== null && (\n <div class=\"chat-input-reply-wrapper\">\n <div class=\"text-black\">\n Replying to {replyMessage.sender.type === 'admin' ? 'your self' : selectedChat?.user.name}\n <div class=\"chat-input-reply-text\">{replyMessage.text}</div>\n </div>\n <div class=\"mb-auto\">\n <ZIconButton variant=\"text\" iconName=\"X\" onClick={handleRemoveReply} />\n </div>\n </div>\n )}\n\n {this.images.length > 0 && (\n <div class=\"chat-input-image-wrapper scroll-container\">\n {this.images.map((img, idx) => (\n <div class=\"relative\">\n <div class=\"chat-input-image-button\">\n <ZIconButton variant=\"text\" iconName=\"CircleX\" onClick={() => handleRemoveImage(idx)} />\n </div>\n <img key={idx} src={img} style={{ maxWidth: '150px', margin: '5px', borderRadius: '5px' }} loading=\"lazy\" />\n </div>\n ))}\n </div>\n )}\n\n <div class=\"chat-input-file-wrapper\">\n {/* File Input */}\n <ZIconButton\n variant=\"text\"\n iconName=\"Paperclip\"\n addClassIcon=\"chat-input-icon\"\n onClick={() => document.getElementById('fileInput')?.click()}\n isLoading={this.isFileLoading}\n />\n <input type=\"file\" id=\"fileInput\" hidden onChange={event => handleUploadMedia((event.target as HTMLInputElement).files, 'file')} />\n\n {/* Camera Input */}\n <ZIconButton\n variant=\"text\"\n iconName=\"Camera\"\n addClassIcon=\"chat-input-icon\"\n onClick={() => document.getElementById('cameraInput')?.click()}\n isLoading={this.isImageLoading}\n />\n <input\n type=\"file\"\n id=\"cameraInput\"\n accept=\"image/*\"\n capture=\"environment\"\n hidden\n onChange={event => handleUploadMedia((event.target as HTMLInputElement).files, 'image')}\n />\n\n {/* Template Input */}\n <ZIconButton\n variant=\"text\"\n iconName=\"Folder\"\n addClassIcon=\"chat-input-icon\"\n onClick={() => (this.showQuickMessageModal = true)}\n isLoading={this.isQuickMessageLoading}\n />\n\n {/* Billing Input */}\n <div class=\"mb-2\">\n <ZIconButton\n variant=\"text\"\n icon={circleBahtIcon}\n // addClassIcon=\"chat-input-icon\"\n // onClick={() => (this.showQuickMessageModal = true)}\n // isLoading={this.isQuickMessageLoading}\n />\n </div>\n <div class=\"chat-input-textarea-wrapper\">\n <textarea\n autoFocus\n id=\"message-input\"\n ref={el => (this.inputEl = el)}\n class={`chat-input-textarea-input scroll-container z-chat-input-background-${theme} z-placeholder-${theme} z-text-${theme}`}\n placeholder=\"Message\"\n value={this.value}\n onInput={this.handleInput}\n onPaste={this.handlePaste}\n onKeyDown={handleKeydown}\n disabled={this.isLoading || this.isTranslateLoading}\n />\n\n {((selectedChat?.language !== translationSettings.target_language && !translationSettings.exclude_languages.includes(selectedChat?.language)) &&\n this.value.length > 0) &&\n !this.isTranslated && (\n <div class=\"chat-input-translate-button-wrapper\">\n <div class=\"mt-auto\">\n <ZIconButton variant=\"text\" iconName=\"Languages\" onClick={handleTranslate} addClassIcon=\"chat-input-icon\" isLoading={this.isTranslateLoading} />\n </div>\n </div>\n )}\n </div>\n\n <ZIconButton variant=\"text\" iconName=\"Send\" onClick={handleSendAll} addClassIcon=\"chat-input-icon\" />\n </div>\n </div>\n )}\n\n {this.showQuickMessageModal && (\n <quick-message-modal\n onClose={() => (this.showQuickMessageModal = false)}\n onSendTemplate={(event: CustomEvent<QuickMessageTemplateModel>) => handleSendTemplate(event.detail)}\n onSendQuickMessageLibrary={(event: CustomEvent<{ type: 'image' | 'file'; items: QuickMessageLibraryFile[] }>) =>\n handleSendQuickMessageLibrary(event.detail)\n }\n isZignal={selectedChat.connection.type !== 'zwiz'}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|