zignal-stencil-library 1.1.113 → 1.1.114

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.
Files changed (183) hide show
  1. package/dist/cjs/autocomplete-address_43.cjs.entry.js +165 -96
  2. package/dist/cjs/quick-message-app.cjs.entry.js +1 -1
  3. package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
  4. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  5. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  6. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  7. package/dist/collection/components/channel-box/channel-box.css +1 -1
  8. package/dist/collection/components/chat-app/chat-app.css +1 -1
  9. package/dist/collection/components/chat-header/chat-header.css +1 -1
  10. package/dist/collection/components/chat-input/chat-input.css +1 -1
  11. package/dist/collection/components/chat-input/chat-input.js +1 -1
  12. package/dist/collection/components/chat-input/chat-input.js.map +1 -1
  13. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  14. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  15. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  16. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  17. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  18. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  19. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  20. package/dist/collection/components/menu-list/menu-list.css +1 -1
  21. package/dist/collection/components/message-box/message-box.css +1 -1
  22. package/dist/collection/components/message-content/message-content.css +1 -1
  23. package/dist/collection/components/message-item/message-item.css +1 -1
  24. package/dist/collection/components/message-media/message-media.css +1 -1
  25. package/dist/collection/components/profile-history/profile-history.css +1 -1
  26. package/dist/collection/components/profile-info/profile-info.css +1 -1
  27. package/dist/collection/components/profile-media/profile-media.css +1 -1
  28. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  29. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  30. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  31. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  32. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  33. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  34. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  35. package/dist/collection/components/search-box/search-box.css +1 -1
  36. package/dist/collection/components/status-badge/status-badge.css +1 -1
  37. package/dist/collection/components/tag-list/tag-list.css +1 -1
  38. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  39. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  40. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  41. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  42. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  43. package/dist/components/autocomplete-address.js +1 -1
  44. package/dist/components/autocomplete-multiple-select.js +1 -1
  45. package/dist/components/autocomplete-select.js +1 -1
  46. package/dist/components/channel-box.js +1 -1
  47. package/dist/components/chat-app.js +40 -40
  48. package/dist/components/chat-app.js.map +1 -1
  49. package/dist/components/chat-header.js +1 -1
  50. package/dist/components/chat-input.js +1 -1
  51. package/dist/components/checkbox-list.js +1 -1
  52. package/dist/components/dialog-bill-editor.js +1 -1
  53. package/dist/components/dialog-editor.js +1 -1
  54. package/dist/components/dialog-preview-media.js +1 -1
  55. package/dist/components/dialog-search.js +1 -1
  56. package/dist/components/menu-chat-channel.js +1 -1
  57. package/dist/components/menu-chat-type.js +1 -1
  58. package/dist/components/menu-list.js +1 -1
  59. package/dist/components/message-box.js +1 -1
  60. package/dist/components/message-content.js +1 -1
  61. package/dist/components/message-item.js +1 -1
  62. package/dist/components/message-media.js +1 -1
  63. package/dist/components/{p-CvyJbTb9.js → p--m50OaqR.js} +11 -11
  64. package/dist/components/{p-CvyJbTb9.js.map → p--m50OaqR.js.map} +1 -1
  65. package/dist/components/{p-nEOSV6qt.js → p-3t2ULKvn.js} +5 -5
  66. package/dist/components/{p-nEOSV6qt.js.map → p-3t2ULKvn.js.map} +1 -1
  67. package/dist/components/{p-DRC94y7I.js → p-5QPDcqLV.js} +4 -4
  68. package/dist/components/{p-DRC94y7I.js.map → p-5QPDcqLV.js.map} +1 -1
  69. package/dist/components/{p-LQISNowV.js → p-B-DQMSNH.js} +3 -3
  70. package/dist/components/{p-LQISNowV.js.map → p-B-DQMSNH.js.map} +1 -1
  71. package/dist/components/{p-Ci1wlgXw.js → p-B2u057C4.js} +3 -3
  72. package/dist/components/{p-Ci1wlgXw.js.map → p-B2u057C4.js.map} +1 -1
  73. package/dist/components/{p-BVLGLAQM.js → p-BBzb0UrZ.js} +13 -13
  74. package/dist/components/{p-BVLGLAQM.js.map → p-BBzb0UrZ.js.map} +1 -1
  75. package/dist/components/{p-DW8sC5rc.js → p-BLI0eD_8.js} +3 -3
  76. package/dist/components/{p-DW8sC5rc.js.map → p-BLI0eD_8.js.map} +1 -1
  77. package/dist/components/{p-3XaRlwMZ.js → p-BNiehTz-.js} +8 -8
  78. package/dist/components/{p-3XaRlwMZ.js.map → p-BNiehTz-.js.map} +1 -1
  79. package/dist/components/{p-Dz4G6Q1l.js → p-BQmnx9-0.js} +3 -3
  80. package/dist/components/{p-Dz4G6Q1l.js.map → p-BQmnx9-0.js.map} +1 -1
  81. package/dist/components/{p-CrvmYhih.js → p-Bbm_pPzb.js} +4 -4
  82. package/dist/components/{p-CrvmYhih.js.map → p-Bbm_pPzb.js.map} +1 -1
  83. package/dist/components/p-BnxxvUCy.js +132 -0
  84. package/dist/components/{p-DuPV1DzK.js.map → p-BnxxvUCy.js.map} +1 -1
  85. package/dist/components/{p-CB09ePCJ.js → p-BqirszEW.js} +4 -4
  86. package/dist/components/{p-CB09ePCJ.js.map → p-BqirszEW.js.map} +1 -1
  87. package/dist/components/{p-l6ffmvGW.js → p-BssEwLaN.js} +3 -3
  88. package/dist/components/{p-l6ffmvGW.js.map → p-BssEwLaN.js.map} +1 -1
  89. package/dist/components/{p-DrW4vKrV.js → p-BypBSjsX.js} +5 -5
  90. package/dist/components/{p-DrW4vKrV.js.map → p-BypBSjsX.js.map} +1 -1
  91. package/dist/components/{p-Be5X3t5w.js → p-CI0T9mG3.js} +3 -3
  92. package/dist/components/{p-Be5X3t5w.js.map → p-CI0T9mG3.js.map} +1 -1
  93. package/dist/components/{p-5S7W_s42.js → p-CYj5eGUx.js} +4 -4
  94. package/dist/components/{p-5S7W_s42.js.map → p-CYj5eGUx.js.map} +1 -1
  95. package/dist/components/{p-DuPV1DzK.js → p-CcNDN7nL.js} +37 -108
  96. package/dist/components/{p-ZXZKAhiz.js.map → p-CcNDN7nL.js.map} +1 -1
  97. package/dist/components/{p-yhRJRzUn.js → p-CeCnJD_t.js} +3 -3
  98. package/dist/components/{p-yhRJRzUn.js.map → p-CeCnJD_t.js.map} +1 -1
  99. package/dist/components/{p-DkVyQai5.js → p-Ch0k98MI.js} +8 -8
  100. package/dist/components/{p-DkVyQai5.js.map → p-Ch0k98MI.js.map} +1 -1
  101. package/dist/components/{p-sBGx8qre.js → p-Cr_TwfMc.js} +3 -3
  102. package/dist/components/{p-sBGx8qre.js.map → p-Cr_TwfMc.js.map} +1 -1
  103. package/dist/components/{p-CJAs00I8.js → p-CsRXWqtl.js} +7 -7
  104. package/dist/components/{p-CJAs00I8.js.map → p-CsRXWqtl.js.map} +1 -1
  105. package/dist/components/{p-BHr52dZJ.js → p-DEGiGqSE.js} +5 -5
  106. package/dist/components/{p-BHr52dZJ.js.map → p-DEGiGqSE.js.map} +1 -1
  107. package/dist/components/{p-CZRPZKJ-.js → p-DFGwDaxI.js} +4 -4
  108. package/dist/components/{p-CZRPZKJ-.js.map → p-DFGwDaxI.js.map} +1 -1
  109. package/dist/components/{p-BzogxNIa.js → p-DIaQ5vRT.js} +3 -3
  110. package/dist/components/{p-BzogxNIa.js.map → p-DIaQ5vRT.js.map} +1 -1
  111. package/dist/components/{p-ufmeP0E5.js → p-DQ8HPG_K.js} +11 -11
  112. package/dist/components/{p-ufmeP0E5.js.map → p-DQ8HPG_K.js.map} +1 -1
  113. package/dist/components/{p-D5h0nLE5.js → p-DTU4M_6s.js} +8 -8
  114. package/dist/components/{p-D5h0nLE5.js.map → p-DTU4M_6s.js.map} +1 -1
  115. package/dist/components/{p-CcPJkDzX.js → p-DTxusuTj.js} +3 -3
  116. package/dist/components/{p-CcPJkDzX.js.map → p-DTxusuTj.js.map} +1 -1
  117. package/dist/components/{p-Dx0yXDO_.js → p-DUEwD6QB.js} +6 -6
  118. package/dist/components/{p-Dx0yXDO_.js.map → p-DUEwD6QB.js.map} +1 -1
  119. package/dist/components/{p-Bt12179Z.js → p-DXJv_Q_2.js} +4 -4
  120. package/dist/components/{p-Bt12179Z.js.map → p-DXJv_Q_2.js.map} +1 -1
  121. package/dist/components/{p-Dvfar-8p.js → p-DYCfNJWj.js} +5 -5
  122. package/dist/components/{p-Dvfar-8p.js.map → p-DYCfNJWj.js.map} +1 -1
  123. package/dist/components/{p-B19Afqpk.js → p-DaCqDkRK.js} +17 -17
  124. package/dist/components/{p-B19Afqpk.js.map → p-DaCqDkRK.js.map} +1 -1
  125. package/dist/components/{p-F1r0ydKy.js → p-DaIrHgbG.js} +17 -17
  126. package/dist/components/{p-F1r0ydKy.js.map → p-DaIrHgbG.js.map} +1 -1
  127. package/dist/components/{p-EGKFhNRS.js → p-DaxSdUIk.js} +3 -3
  128. package/dist/components/{p-EGKFhNRS.js.map → p-DaxSdUIk.js.map} +1 -1
  129. package/dist/components/{p-DN1ugCly.js → p-DkisMbeq.js} +3 -3
  130. package/dist/components/{p-DN1ugCly.js.map → p-DkisMbeq.js.map} +1 -1
  131. package/dist/components/{p-Baq4FLMS.js → p-DmwNXkXf.js} +3 -3
  132. package/dist/components/{p-Baq4FLMS.js.map → p-DmwNXkXf.js.map} +1 -1
  133. package/dist/components/{p-CS4KatwS.js → p-DoZmi5ih.js} +3 -3
  134. package/dist/components/{p-CS4KatwS.js.map → p-DoZmi5ih.js.map} +1 -1
  135. package/dist/components/{p-ChfkflWC.js → p-Donkg0LL.js} +3 -3
  136. package/dist/components/{p-ChfkflWC.js.map → p-Donkg0LL.js.map} +1 -1
  137. package/dist/components/{p-BuZJtX19.js → p-Dp3EHSUO.js} +3 -3
  138. package/dist/components/{p-BuZJtX19.js.map → p-Dp3EHSUO.js.map} +1 -1
  139. package/dist/components/{p-BsV8XOdl.js → p-DpdkqWPQ.js} +20 -20
  140. package/dist/components/{p-BsV8XOdl.js.map → p-DpdkqWPQ.js.map} +1 -1
  141. package/dist/components/{p-B2ay8yxa.js → p-DyatyKQQ.js} +3 -3
  142. package/dist/components/{p-B2ay8yxa.js.map → p-DyatyKQQ.js.map} +1 -1
  143. package/dist/components/{p-jGwKbBta.js → p-Fr7xN81m.js} +9 -9
  144. package/dist/components/{p-jGwKbBta.js.map → p-Fr7xN81m.js.map} +1 -1
  145. package/dist/components/{p-C2YAe0Ke.js → p-Heeo8D4P.js} +128 -59
  146. package/dist/components/p-Heeo8D4P.js.map +1 -0
  147. package/dist/components/{p-C_rJguGq.js → p-aEvNkqAt.js} +5 -5
  148. package/dist/components/{p-C_rJguGq.js.map → p-aEvNkqAt.js.map} +1 -1
  149. package/dist/components/profile-history.js +1 -1
  150. package/dist/components/profile-info.js +1 -1
  151. package/dist/components/profile-media.js +1 -1
  152. package/dist/components/profile-tabs.js +1 -1
  153. package/dist/components/quick-message-add-template.js +1 -1
  154. package/dist/components/quick-message-app.js +6 -6
  155. package/dist/components/quick-message-app.js.map +1 -1
  156. package/dist/components/quick-message-file.js +1 -1
  157. package/dist/components/quick-message-image.js +1 -1
  158. package/dist/components/quick-message-modal.js +1 -1
  159. package/dist/components/quick-message-template.js +1 -1
  160. package/dist/components/search-box.js +1 -1
  161. package/dist/components/status-badge.js +1 -1
  162. package/dist/components/summarize-message-section.js +1 -1
  163. package/dist/components/tag-list.js +1 -1
  164. package/dist/components/tag-or-status-item.js +1 -1
  165. package/dist/components/tag-popper.js +1 -1
  166. package/dist/components/typography-clamp.js +1 -1
  167. package/dist/components/user-info-section.js +1 -1
  168. package/dist/components/z-avatar.js +1 -1
  169. package/dist/components/z-dialog.js +1 -1
  170. package/dist/esm/autocomplete-address_43.entry.js +165 -96
  171. package/dist/esm/quick-message-app.entry.js +1 -1
  172. package/dist/esm/quick-message-app.entry.js.map +1 -1
  173. package/dist/zignal-stencil-library/p-1a660578.entry.js +2 -0
  174. package/dist/zignal-stencil-library/{p-cdcb0c65.entry.js.map → p-1a660578.entry.js.map} +1 -1
  175. package/dist/zignal-stencil-library/{p-3cea211f.entry.js → p-548e9d88.entry.js} +168 -168
  176. package/dist/zignal-stencil-library/p-548e9d88.entry.js.map +1 -0
  177. package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
  178. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  179. package/package.json +3 -3
  180. package/dist/components/p-C2YAe0Ke.js.map +0 -1
  181. package/dist/components/p-ZXZKAhiz.js +0 -61
  182. package/dist/zignal-stencil-library/p-3cea211f.entry.js.map +0 -1
  183. package/dist/zignal-stencil-library/p-cdcb0c65.entry.js +0 -2
@@ -1 +1 @@
1
- {"file":"p-F1r0ydKy.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}&nbsp;{t('profile_tab.prob')}&nbsp;{matchUser.confidence}%&nbsp;{t('profile_tab.same_user')}\n </span>\n </div>\n <div class=\"profile-info-match-user-action-wrapper\">\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('no')}\n startIcon={<Icon name=\"X\" addClass=\"size-5 text-red-700\" />}\n onClick={() => onActionMergeUser('reject')}\n />\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('profile_tab.merge_user')}\n startIcon={<Icon name=\"Check\" addClass=\"size-5 text-green-700\" />}\n onClick={() => onActionMergeUser('merge')}\n />\n </div>\n </div>\n );\n })()}\n {/* Next Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronRight\"\n addClassIcon={`size-8 ${mergeIndex === user.match_users.length - 1 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onNextMergeUser}\n />\n </div>\n <p class={`font-semibold mx-4 z-text-${theme}`}>{t('profile_tab.compare_table')}</p>\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n const fields = [\n { label: t('channel'), key: 'channel' },\n { label: t('email'), key: 'email' },\n { label: t('phone_no'), key: 'phone_number' },\n { label: t('address'), key: 'address' },\n { label: t('gender'), key: 'gender' },\n ];\n return (\n <div class=\"profile-info-match-user-name-wrapper scroll-container\">\n <table class=\"profile-info-match-user-table\">\n <thead class=\"profile-info-match-user-table-header\">\n <tr>\n <th>{t('name')}</th>\n <th>{user.name}</th>\n <th>{matchUser.user.name}</th>\n </tr>\n </thead>\n <tbody>\n {fields.map(({ label, key }, index) => {\n let value = user[key];\n let comparedValue = matchUser.user[key];\n if (key === 'channel') {\n comparedValue = matchUser[key];\n }\n if (key === 'address') {\n value = getAddressAsText(user[key]);\n comparedValue = getAddressAsText(matchUser[key]);\n }\n return (\n <tr key={index}>\n <td class={`z-text-${theme}`}>\n <p class=\"profile-info-match-user-table-label\">{label}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{value || '-'}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{comparedValue || '-'}</p>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n );\n })()}\n </div>\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TContextItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditContext: boolean;\n context?: TContextItem;\n onEditContext: () => void;\n onCloseContext: () => void;\n onSaveUserContexts: () => void;\n onContextSelecting: (context: TContextItem) => void;\n // onRemoveContext: () => void;\n onCreateUserContext: (name: string) => Promise<TContextItem>;\n}\n\nexport const ContextSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditContext,\n context,\n onEditContext,\n onCloseContext,\n onSaveUserContexts,\n onContextSelecting,\n // onRemoveContext,\n onCreateUserContext,\n}) => {\n const theme = configStore.get('theme');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>บริบทของบทสนทนา</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseContext} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserContexts} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditContext} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper\">\n <autocomplete-select\n value={user.context?.id === context?.id ? user.context?.name : ''}\n fetchItems={() => Promise.resolve([{\n id: '1',\n name: 'ส่งต่อแอดมิน'\n }])}\n createItem={name => onCreateUserContext(name)}\n onSelecting={item => onContextSelecting(item.detail)}\n referenceSelector=\"profile-context\"\n />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.context ? user.context.name : '-'}\n </span>\n </div>\n )}\n </div>\n </div>\n );\n};\n",":host {\n display: block;\n}\n\n.profile-info-user-wrapper {\n @apply grid grid-flow-row-dense grid-cols-3 grid-rows-1 w-full p-4 mb-2\n}\n\n.profile-info-avatar-wrapper {\n @apply col-span-1 my-auto mr-1\n}\n\n.profile-info-avatar-box {\n @apply relative w-full text-center\n}\n\n.profile-info-avatar-badge {\n @apply absolute bottom-[-2px] right-[-2px];\n}\n\n.profile-info-name-wrapper {\n @apply col-span-2 flex flex-col\n}\n\n.profile-info-box-wrapper {\n @apply flex flex-row gap-1 items-center\n}\n\n.profile-info-nickname {\n @apply font-semibold text-base\n}\n\n.profile-info-summarize-wrapper {\n @apply col-span-3 flex flex-row items-center justify-between mt-2\n}\n\n.profile-info-summarize-text {\n @apply col-span-3 mt-1\n}\n\n.profile-info-connection-wrapper {\n @apply flex items-center space-x-1\n}\n\n.profile-info-avatar {\n @apply size-4 rounded-full\n}\n\n.profile-info-content-wrapper-baseline {\n @apply col-span-2 flex flex-row gap-1 items-baseline-last\n}\n\n.profile-info-pre-line {\n @apply text-sm whitespace-pre-line\n}\n\n.profile-info-capitalize {\n @apply text-sm capitalize\n}\n\n.profile-info-tag-wrapper {\n @apply col-span-3 w-full max-h-60 overflow-y-auto\n}\n\n.profile-info-status-wrapper {\n @apply w-fit mt-2 mx-auto\n}\n\n.profile-info-status-bottom-wrapper {\n @apply w-fit mt-4 mx-auto\n}\n\n.profile-info-avatar-box-merge {\n @apply mt-[-40px] flex justify-center\n}\n\n.profile-info {\n @apply relative h-full\n}\n\n.profile-info-compare-wrapper {\n @apply flex flex-row items-center pt-3 mt-[-16px] text-sm\n}\n\n.profile-info-compare-remark-wrapper {\n @apply px-3 pb-3\n}\n\n.profile-info-compare-remark {\n @apply text-xs whitespace-pre-line\n}\n\n.profile-info-match-user-wrapper {\n @apply flex flex-row items-center justify-between mb-3\n}\n\n.profile-info-match-user-container {\n @apply rounded-xl shadow-md w-full my-2 overflow-clip\n}\n\n.profile-info-match-user-box {\n @apply grid grid-cols-2 mb-2\n}\n\n.profile-info-match-user-action-wrapper {\n @apply flex flex-row items-center justify-around\n}\n\n.profile-info-match-user-name-wrapper {\n @apply rounded-xl my-2 mx-4 overflow-x-auto overflow-y-hidden\n}\n\n.profile-info-match-user-table {\n @apply table-auto w-full text-sm\n}\n\n.profile-info-match-user-table-header {\n @apply bg-pink-100 h-10 shadow-sm\n}\n\n.profile-info-match-user-table-label {\n @apply ml-2 mt-2 whitespace-nowrap\n}\n\n.profile-info-match-user-table-value {\n @apply ml-2 mt-2 whitespace-pre-line\n}\n\n.profile-info-match-user-suggest-wrapper {\n @apply flex flex-row items-center justify-between p-3 mt-[-16px] mb-2 text-sm text-white\n}\n\n.profile-info-match-user-suggest-button {\n @apply text-xs underline cursor-pointer\n}\n\n.profile-info-match-user-suggest-user-wrapper {\n @apply flex border-2 rounded-full overflow-hidden w-fit mx-auto p-0.5 mb-1\n}\n\n.profile-info-associated-user-wrapper {\n @apply flex flex-row gap-1 px-2 py-1 items-center border-b-[0.5px] rounded-xs\n}\n\n.profile-info-associated-user-action-wrapper {\n @apply flex flex-row items-center justify-end w-full\n}\n\n.profile-info-drawer-backdrop {\n @apply fixed inset-0 bg-black/40 !left-auto right-0 transition-opacity duration-300\n}\n\n.profile-info-drawer-wrapper {\n @apply fixed right-0 bottom-0 rounded-t-2xl shadow-lg transition-transform duration-300\n}\n\n.profile-info-drawer-content {\n @apply p-2 relative overflow-y-auto max-h-[90vh]\n}\n\n.profile-info-drawer-content-close {\n @apply absolute top-2 right-2\n}\n\n.profile-info-bill {\n @apply col-span-3 mx-auto mt-2\n}\n\n.profile-info-bill-icon {\n @apply rotate-180 size-2 fill-current\n}\n\n.profile-info-jump-chat-sign {\n @apply flex flex-row items-center justify-center gap-4\n}\n\n.profile-info-section-wrapper {\n @apply border-b-[0.5px] pt-0 min-h-20 relative\n}\n\n.profile-info-refresh-user-button {\n @apply 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
+ {"file":"p-DaIrHgbG.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}&nbsp;{t('profile_tab.prob')}&nbsp;{matchUser.confidence}%&nbsp;{t('profile_tab.same_user')}\n </span>\n </div>\n <div class=\"profile-info-match-user-action-wrapper\">\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('no')}\n startIcon={<Icon name=\"X\" addClass=\"size-5 text-red-700\" />}\n onClick={() => onActionMergeUser('reject')}\n />\n <ZButton\n variant=\"text\"\n textVariant=\"text\"\n label={t('profile_tab.merge_user')}\n startIcon={<Icon name=\"Check\" addClass=\"size-5 text-green-700\" />}\n onClick={() => onActionMergeUser('merge')}\n />\n </div>\n </div>\n );\n })()}\n {/* Next Button */}\n <ZIconButton\n variant=\"none\"\n iconName=\"ChevronRight\"\n addClassIcon={`size-8 ${mergeIndex === user.match_users.length - 1 ? `z-text-background-${theme}` : `z-text-primary-${theme}`}`}\n noPadding\n onClick={onNextMergeUser}\n />\n </div>\n <p class={`font-semibold mx-4 z-text-${theme}`}>{t('profile_tab.compare_table')}</p>\n {(() => {\n const matchUser = user.match_users[mergeIndex];\n const fields = [\n { label: t('channel'), key: 'channel' },\n { label: t('email'), key: 'email' },\n { label: t('phone_no'), key: 'phone_number' },\n { label: t('address'), key: 'address' },\n { label: t('gender'), key: 'gender' },\n ];\n return (\n <div class=\"profile-info-match-user-name-wrapper scroll-container\">\n <table class=\"profile-info-match-user-table\">\n <thead class=\"profile-info-match-user-table-header\">\n <tr>\n <th>{t('name')}</th>\n <th>{user.name}</th>\n <th>{matchUser.user.name}</th>\n </tr>\n </thead>\n <tbody>\n {fields.map(({ label, key }, index) => {\n let value = user[key];\n let comparedValue = matchUser.user[key];\n if (key === 'channel') {\n comparedValue = matchUser[key];\n }\n if (key === 'address') {\n value = getAddressAsText(user[key]);\n comparedValue = getAddressAsText(matchUser[key]);\n }\n return (\n <tr key={index}>\n <td class={`z-text-${theme}`}>\n <p class=\"profile-info-match-user-table-label\">{label}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{value || '-'}</p>\n </td>\n <td class={`z-text-gray-${theme}`}>\n <p class={`profile-info-match-user-table-value ${key === 'email' ? '' : 'capitalize'}`}>{comparedValue || '-'}</p>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n );\n })()}\n </div>\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { UserItem, TContextItem } from '../../store/type';\nimport { ZIconButton } from './z-icon-button';\nimport { configStore } from '../../store/store';\n\ninterface TagSectionProps {\n user: UserItem;\n readOnly?: boolean;\n activeTabIndex: number;\n isEditContext: boolean;\n context?: TContextItem;\n onEditContext: () => void;\n onCloseContext: () => void;\n onSaveUserContexts: () => void;\n onContextSelecting: (context: TContextItem) => void;\n // onRemoveContext: () => void;\n onCreateUserContext: (name: string) => Promise<TContextItem>;\n}\n\nexport const ContextSection: FunctionalComponent<TagSectionProps> = ({\n user,\n readOnly = false,\n activeTabIndex,\n isEditContext,\n context,\n onEditContext,\n onCloseContext,\n onSaveUserContexts,\n onContextSelecting,\n // onRemoveContext,\n onCreateUserContext,\n}) => {\n const theme = configStore.get('theme');\n\n return (\n <div class={`profile-info-user-wrapper border-b-[0.5px] pt-2 gap-y-1 z-border-divider-${theme}`}>\n <div class=\"col-span-3 profile-info-box-wrapper\">\n <span class={`z-text-${theme} whitespace-nowrap`}>บริบทของบทสนทนา</span>\n\n {!readOnly && activeTabIndex === 0 && (\n <slot>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={onCloseContext} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={onSaveUserContexts} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper justify-end w-full\">\n <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={onEditContext} />\n </div>\n )}\n </slot>\n )}\n </div>\n\n <div class={`profile-info-tag-wrapper scroll-container`}>\n {isEditContext ? (\n <div class=\"profile-info-box-wrapper\">\n <autocomplete-select\n value={user.context?.id === context?.id ? user.context?.name : ''}\n fetchItems={() => Promise.resolve([{\n id: '1',\n name: 'ส่งต่อแอดมิน'\n }])}\n createItem={name => onCreateUserContext(name)}\n onSelecting={item => onContextSelecting(item.detail)}\n referenceSelector=\"profile-context\"\n />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {user.context ? user.context.name : '-'}\n </span>\n </div>\n )}\n </div>\n </div>\n );\n};\n",":host {\n display: block;\n}\n\n.profile-info-user-wrapper {\n @apply grid grid-flow-row-dense grid-cols-3 grid-rows-1 w-full p-4 mb-2\n}\n\n.profile-info-avatar-wrapper {\n @apply col-span-1 my-auto mr-1\n}\n\n.profile-info-avatar-box {\n @apply relative w-full text-center\n}\n\n.profile-info-avatar-badge {\n @apply absolute bottom-[-2px] right-[-2px];\n}\n\n.profile-info-name-wrapper {\n @apply col-span-2 flex flex-col\n}\n\n.profile-info-box-wrapper {\n @apply flex flex-row gap-1 items-center\n}\n\n.profile-info-nickname {\n @apply font-semibold text-base\n}\n\n.profile-info-summarize-wrapper {\n @apply col-span-3 flex flex-row items-center justify-between mt-2\n}\n\n.profile-info-summarize-text {\n @apply col-span-3 mt-1\n}\n\n.profile-info-connection-wrapper {\n @apply flex items-center space-x-1\n}\n\n.profile-info-avatar {\n @apply size-4 rounded-full\n}\n\n.profile-info-content-wrapper-baseline {\n @apply col-span-2 flex flex-row gap-1 items-baseline-last\n}\n\n.profile-info-pre-line {\n @apply text-sm whitespace-pre-line\n}\n\n.profile-info-capitalize {\n @apply text-sm capitalize\n}\n\n.profile-info-tag-wrapper {\n @apply col-span-3 w-full max-h-60 overflow-y-auto\n}\n\n.profile-info-status-wrapper {\n @apply w-fit mt-2 mx-auto\n}\n\n.profile-info-status-bottom-wrapper {\n @apply w-fit mt-4 mx-auto\n}\n\n.profile-info-avatar-box-merge {\n @apply mt-[-40px] flex justify-center\n}\n\n.profile-info {\n @apply relative h-full\n}\n\n.profile-info-compare-wrapper {\n @apply flex flex-row items-center pt-3 mt-[-16px] text-sm\n}\n\n.profile-info-compare-remark-wrapper {\n @apply px-3 pb-3\n}\n\n.profile-info-compare-remark {\n @apply text-xs whitespace-pre-line\n}\n\n.profile-info-match-user-wrapper {\n @apply flex flex-row items-center justify-between mb-3\n}\n\n.profile-info-match-user-container {\n @apply rounded-xl shadow-md w-full my-2 overflow-clip\n}\n\n.profile-info-match-user-box {\n @apply grid grid-cols-2 mb-2\n}\n\n.profile-info-match-user-action-wrapper {\n @apply flex flex-row items-center justify-around\n}\n\n.profile-info-match-user-name-wrapper {\n @apply rounded-xl my-2 mx-4 overflow-x-auto overflow-y-hidden\n}\n\n.profile-info-match-user-table {\n @apply table-auto w-full text-sm\n}\n\n.profile-info-match-user-table-header {\n @apply bg-pink-100 h-10 shadow-sm\n}\n\n.profile-info-match-user-table-label {\n @apply ml-2 mt-2 whitespace-nowrap\n}\n\n.profile-info-match-user-table-value {\n @apply ml-2 mt-2 whitespace-pre-line\n}\n\n.profile-info-match-user-suggest-wrapper {\n @apply flex flex-row items-center justify-between p-3 mt-[-16px] mb-2 text-sm text-white\n}\n\n.profile-info-match-user-suggest-button {\n @apply text-xs underline cursor-pointer\n}\n\n.profile-info-match-user-suggest-user-wrapper {\n @apply flex border-2 rounded-full overflow-hidden w-fit mx-auto p-0.5 mb-1\n}\n\n.profile-info-associated-user-wrapper {\n @apply flex flex-row gap-1 px-2 py-1 items-center border-b-[0.5px] rounded-xs\n}\n\n.profile-info-associated-user-action-wrapper {\n @apply flex flex-row items-center justify-end w-full\n}\n\n.profile-info-drawer-backdrop {\n @apply fixed inset-0 bg-black/40 !left-auto right-0 transition-opacity duration-300\n}\n\n.profile-info-drawer-wrapper {\n @apply fixed right-0 bottom-0 rounded-t-2xl shadow-lg transition-transform duration-300\n}\n\n.profile-info-drawer-content {\n @apply p-2 relative overflow-y-auto max-h-[90vh]\n}\n\n.profile-info-drawer-content-close {\n @apply absolute top-2 right-2\n}\n\n.profile-info-bill {\n @apply col-span-3 mx-auto mt-2\n}\n\n.profile-info-bill-icon {\n @apply rotate-180 size-2 fill-current\n}\n\n.profile-info-jump-chat-sign {\n @apply flex flex-row items-center justify-center gap-4\n}\n\n.profile-info-section-wrapper {\n @apply border-b-[0.5px] pt-0 min-h-20 relative\n}\n\n.profile-info-refresh-user-button {\n @apply 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}