zignal-stencil-library 1.1.116 → 1.1.117

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/cjs/autocomplete-address_43.cjs.entry.js +81 -83
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/quick-message-app.cjs.entry.js +2 -2
  4. package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
  5. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  6. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  7. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  8. package/dist/collection/components/channel-box/channel-box.css +1 -1
  9. package/dist/collection/components/chat-app/chat-app.css +1 -1
  10. package/dist/collection/components/chat-header/chat-header.css +1 -1
  11. package/dist/collection/components/chat-input/chat-input.css +1 -1
  12. package/dist/collection/components/chat-input/chat-input.js +19 -2
  13. package/dist/collection/components/chat-input/chat-input.js.map +1 -1
  14. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  15. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  16. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  17. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  18. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  19. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  20. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  21. package/dist/collection/components/menu-list/menu-list.css +1 -1
  22. package/dist/collection/components/message-box/message-box.css +1 -1
  23. package/dist/collection/components/message-content/message-content.css +1 -1
  24. package/dist/collection/components/message-item/message-item.css +1 -1
  25. package/dist/collection/components/message-media/message-media.css +1 -1
  26. package/dist/collection/components/profile-history/profile-history.css +1 -1
  27. package/dist/collection/components/profile-info/profile-info.css +1 -1
  28. package/dist/collection/components/profile-info/profile-info.js +1 -5
  29. package/dist/collection/components/profile-info/profile-info.js.map +1 -1
  30. package/dist/collection/components/profile-info/user-info-section.js +4 -40
  31. package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
  32. package/dist/collection/components/profile-media/profile-media.css +1 -1
  33. package/dist/collection/components/profile-media/profile-media.js +1 -1
  34. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  35. package/dist/collection/components/profile-tabs/profile-tabs.js +2 -2
  36. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  37. package/dist/collection/components/quick-message-add-template/quick-message-add-template.js +3 -3
  38. package/dist/collection/components/quick-message-add-template/quick-message-text-content.js +1 -1
  39. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  40. package/dist/collection/components/quick-message-app/quick-message-app.js +1 -1
  41. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  42. package/dist/collection/components/quick-message-file/quick-message-file.js +1 -1
  43. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  44. package/dist/collection/components/quick-message-image/quick-message-image.js +1 -1
  45. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  46. package/dist/collection/components/quick-message-modal/quick-message-modal.js +1 -1
  47. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  48. package/dist/collection/components/quick-message-template/quick-message-template.js +2 -2
  49. package/dist/collection/components/search-box/search-box.css +1 -1
  50. package/dist/collection/components/search-box/search-box.js +1 -1
  51. package/dist/collection/components/status-badge/status-badge.css +1 -1
  52. package/dist/collection/components/status-badge/status-badge.js +2 -2
  53. package/dist/collection/components/tag-list/tag-list.css +1 -1
  54. package/dist/collection/components/tag-list/tag-list.js +1 -1
  55. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  56. package/dist/collection/components/tag-or-status-item/tag-or-status-item.js +2 -2
  57. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  58. package/dist/collection/components/tag-popper/tag-popper.js +2 -2
  59. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  60. package/dist/collection/components/typography-clamp/typography-clamp.js +2 -2
  61. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  62. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  63. package/dist/components/autocomplete-address.js +1 -1
  64. package/dist/components/autocomplete-multiple-select.js +1 -1
  65. package/dist/components/autocomplete-select.js +1 -1
  66. package/dist/components/channel-box.js +1 -1
  67. package/dist/components/chat-app.js +39 -39
  68. package/dist/components/chat-app.js.map +1 -1
  69. package/dist/components/chat-header.js +1 -1
  70. package/dist/components/chat-input.js +1 -1
  71. package/dist/components/checkbox-list.js +1 -1
  72. package/dist/components/dialog-bill-editor.js +1 -1
  73. package/dist/components/dialog-editor.js +1 -1
  74. package/dist/components/dialog-preview-media.js +1 -1
  75. package/dist/components/dialog-search.js +1 -1
  76. package/dist/components/menu-chat-channel.js +1 -1
  77. package/dist/components/menu-chat-type.js +1 -1
  78. package/dist/components/menu-list.js +1 -1
  79. package/dist/components/message-box.js +1 -1
  80. package/dist/components/message-content.js +1 -1
  81. package/dist/components/message-item.js +1 -1
  82. package/dist/components/message-media.js +1 -1
  83. package/dist/components/{p-CSkfRQtS.js → p-5OHiIxaz.js} +3 -3
  84. package/dist/components/{p-CSkfRQtS.js.map → p-5OHiIxaz.js.map} +1 -1
  85. package/dist/components/{p-Cr-0I2xN.js → p-6CelJU7F.js} +35 -12
  86. package/dist/components/p-6CelJU7F.js.map +1 -0
  87. package/dist/components/{p-B1RKHUot.js → p-BELvHCsL.js} +4 -4
  88. package/dist/components/{p-B1RKHUot.js.map → p-BELvHCsL.js.map} +1 -1
  89. package/dist/components/{p-VTk01ISU.js → p-BE_X2kYP.js} +7 -7
  90. package/dist/components/{p-VTk01ISU.js.map → p-BE_X2kYP.js.map} +1 -1
  91. package/dist/components/{p-BzdWH-_8.js → p-BFJj-d_l.js} +9 -9
  92. package/dist/components/{p-BzdWH-_8.js.map → p-BFJj-d_l.js.map} +1 -1
  93. package/dist/components/{p-BAweennY.js → p-BKmfoPzS.js} +3 -3
  94. package/dist/components/{p-BAweennY.js.map → p-BKmfoPzS.js.map} +1 -1
  95. package/dist/components/{p-CzDxe_x4.js → p-BTCTQ7My.js} +5 -5
  96. package/dist/components/{p-CzDxe_x4.js.map → p-BTCTQ7My.js.map} +1 -1
  97. package/dist/components/{p-CpgDVXmW.js → p-BTUnGFPc.js} +3 -3
  98. package/dist/components/{p-CpgDVXmW.js.map → p-BTUnGFPc.js.map} +1 -1
  99. package/dist/components/{p-d8YtVMw5.js → p-BTbfL51Y.js} +12 -34
  100. package/dist/components/p-BTbfL51Y.js.map +1 -0
  101. package/dist/components/{p-Bp_rFl7K.js → p-BWB7LHud.js} +3 -3
  102. package/dist/components/{p-Bp_rFl7K.js.map → p-BWB7LHud.js.map} +1 -1
  103. package/dist/components/{p-C3R9nkWN.js → p-Bfw16jOT.js} +5 -5
  104. package/dist/components/{p-C3R9nkWN.js.map → p-Bfw16jOT.js.map} +1 -1
  105. package/dist/components/{p-DoCFaFaQ.js → p-CRyNwVba.js} +4 -4
  106. package/dist/components/{p-DoCFaFaQ.js.map → p-CRyNwVba.js.map} +1 -1
  107. package/dist/components/{p-BM4Ua5-N.js → p-CUhMBEa2.js} +15 -25
  108. package/dist/components/p-CUhMBEa2.js.map +1 -0
  109. package/dist/components/{p-D1EL33Bi.js → p-CdYfVWot.js} +3 -3
  110. package/dist/components/{p-D1EL33Bi.js.map → p-CdYfVWot.js.map} +1 -1
  111. package/dist/components/{p-_hY7uItY.js → p-CefW_o78.js} +26 -20
  112. package/dist/components/p-CefW_o78.js.map +1 -0
  113. package/dist/components/{p-EjjWZm5d.js → p-CkPTNqHJ.js} +3 -3
  114. package/dist/components/{p-EjjWZm5d.js.map → p-CkPTNqHJ.js.map} +1 -1
  115. package/dist/components/{p-X9vPOzlJ.js → p-CnV_yE5W.js} +5 -5
  116. package/dist/components/{p-X9vPOzlJ.js.map → p-CnV_yE5W.js.map} +1 -1
  117. package/dist/components/{p-DnIf4FK6.js → p-D3NjmnKd.js} +5 -5
  118. package/dist/components/{p-DnIf4FK6.js.map → p-D3NjmnKd.js.map} +1 -1
  119. package/dist/components/{p-Dgofy5Fu.js → p-D3TGftLh.js} +4 -4
  120. package/dist/components/{p-Dgofy5Fu.js.map → p-D3TGftLh.js.map} +1 -1
  121. package/dist/components/{p-B7BslHf0.js → p-D3WlL1rW.js} +20 -26
  122. package/dist/components/p-D3WlL1rW.js.map +1 -0
  123. package/dist/components/{p-DVSDKb-D.js → p-D8eTfJZf.js} +4 -4
  124. package/dist/components/{p-DVSDKb-D.js.map → p-D8eTfJZf.js.map} +1 -1
  125. package/dist/components/{p-DE4Zm7LV.js → p-DCAMeqDc.js} +7 -7
  126. package/dist/components/{p-DE4Zm7LV.js.map → p-DCAMeqDc.js.map} +1 -1
  127. package/dist/components/{p-B89bWwU_.js → p-DDeYr_sL.js} +5 -5
  128. package/dist/components/{p-B89bWwU_.js.map → p-DDeYr_sL.js.map} +1 -1
  129. package/dist/components/{p-B_GWvyYU.js → p-DGwVIJPy.js} +9 -9
  130. package/dist/components/{p-B_GWvyYU.js.map → p-DGwVIJPy.js.map} +1 -1
  131. package/dist/components/{p-B1V9VErz.js → p-DQWAQWII.js} +3 -3
  132. package/dist/components/{p-B1V9VErz.js.map → p-DQWAQWII.js.map} +1 -1
  133. package/dist/components/{p-DmRTlqwE.js → p-DTNTQFNE.js} +4 -4
  134. package/dist/components/{p-DmRTlqwE.js.map → p-DTNTQFNE.js.map} +1 -1
  135. package/dist/components/{p-7-3PdG9Y.js → p-DUmyJQUj.js} +5 -5
  136. package/dist/components/{p-7-3PdG9Y.js.map → p-DUmyJQUj.js.map} +1 -1
  137. package/dist/components/{p-Da9RXTtk.js → p-DfcbpClO.js} +4 -4
  138. package/dist/components/{p-Da9RXTtk.js.map → p-DfcbpClO.js.map} +1 -1
  139. package/dist/components/{p-DO76MORH.js → p-DjYh7dPy.js} +6 -6
  140. package/dist/components/{p-DO76MORH.js.map → p-DjYh7dPy.js.map} +1 -1
  141. package/dist/components/{p-DLSvB-0m.js → p-DxXTYS09.js} +3 -3
  142. package/dist/components/{p-DLSvB-0m.js.map → p-DxXTYS09.js.map} +1 -1
  143. package/dist/components/{p-crfVJB0O.js → p-FZ4qr4hV.js} +7 -7
  144. package/dist/components/{p-crfVJB0O.js.map → p-FZ4qr4hV.js.map} +1 -1
  145. package/dist/components/{p-CUHQjytl.js → p-IQ2DK0av.js} +3 -3
  146. package/dist/components/{p-CUHQjytl.js.map → p-IQ2DK0av.js.map} +1 -1
  147. package/dist/components/{p-BbqPrAEc.js → p-JsLne1Lv.js} +8 -8
  148. package/dist/components/{p-BbqPrAEc.js.map → p-JsLne1Lv.js.map} +1 -1
  149. package/dist/components/{p-ntIdjTzb.js → p-YIFa1aJ8.js} +3 -3
  150. package/dist/components/{p-ntIdjTzb.js.map → p-YIFa1aJ8.js.map} +1 -1
  151. package/dist/components/{p-BpWedVb5.js → p-hqt-EuIZ.js} +3 -3
  152. package/dist/components/{p-BpWedVb5.js.map → p-hqt-EuIZ.js.map} +1 -1
  153. package/dist/components/{p-DQlSm0KH.js → p-jMBuXhz4.js} +5 -5
  154. package/dist/components/{p-DQlSm0KH.js.map → p-jMBuXhz4.js.map} +1 -1
  155. package/dist/components/{p-DNJTF7lX.js → p-vxD1v4cV.js} +4 -4
  156. package/dist/components/{p-DNJTF7lX.js.map → p-vxD1v4cV.js.map} +1 -1
  157. package/dist/components/{p-D90zqoSq.js → p-yxrOVv38.js} +3 -3
  158. package/dist/components/{p-D90zqoSq.js.map → p-yxrOVv38.js.map} +1 -1
  159. package/dist/components/profile-history.js +1 -1
  160. package/dist/components/profile-info.js +1 -1
  161. package/dist/components/profile-media.js +1 -1
  162. package/dist/components/profile-tabs.js +1 -1
  163. package/dist/components/quick-message-add-template.js +1 -1
  164. package/dist/components/quick-message-app.js +8 -8
  165. package/dist/components/quick-message-file.js +1 -1
  166. package/dist/components/quick-message-image.js +1 -1
  167. package/dist/components/quick-message-modal.js +1 -1
  168. package/dist/components/quick-message-template.js +1 -1
  169. package/dist/components/quick-message-text-content.js +1 -1
  170. package/dist/components/search-box.js +1 -1
  171. package/dist/components/status-badge.js +1 -1
  172. package/dist/components/summarize-message-section.js +1 -1
  173. package/dist/components/tag-list.js +1 -1
  174. package/dist/components/tag-or-status-item.js +1 -1
  175. package/dist/components/tag-popper.js +1 -1
  176. package/dist/components/typography-clamp.js +1 -1
  177. package/dist/components/user-info-section.js +1 -1
  178. package/dist/components/z-avatar.js +1 -1
  179. package/dist/components/z-dialog.js +1 -1
  180. package/dist/esm/autocomplete-address_43.entry.js +81 -83
  181. package/dist/esm/loader.js +1 -1
  182. package/dist/esm/quick-message-app.entry.js +2 -2
  183. package/dist/esm/zignal-stencil-library.js +1 -1
  184. package/dist/types/components/chat-input/chat-input.d.ts +2 -0
  185. package/dist/types/components/profile-info/user-info-section.d.ts +1 -3
  186. package/dist/types/components.d.ts +0 -2
  187. package/dist/zignal-stencil-library/{p-02ee9d21.entry.js → p-cb2b35c1.entry.js} +2 -2
  188. package/dist/zignal-stencil-library/{p-e1c64da7.entry.js → p-eb9ff640.entry.js} +3 -3
  189. package/dist/zignal-stencil-library/p-eb9ff640.entry.js.map +1 -0
  190. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  191. package/package.json +2 -2
  192. package/dist/components/p-B7BslHf0.js.map +0 -1
  193. package/dist/components/p-BM4Ua5-N.js.map +0 -1
  194. package/dist/components/p-Cr-0I2xN.js.map +0 -1
  195. package/dist/components/p-_hY7uItY.js.map +0 -1
  196. package/dist/components/p-d8YtVMw5.js.map +0 -1
  197. package/dist/zignal-stencil-library/p-e1c64da7.entry.js.map +0 -1
  198. /package/dist/zignal-stencil-library/{p-02ee9d21.entry.js.map → p-cb2b35c1.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"profile-info.js","sourceRoot":"","sources":["../../../src/components/profile-info/profile-info.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
1
+ {"version":3,"file":"profile-info.js","sourceRoot":"","sources":["../../../src/components/profile-info/profile-info.tsx"],"names":[],"mappings":"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","sourcesContent":["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, 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 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 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"]}
@@ -3,8 +3,6 @@ import { displayDate } from "../../utils/dayjs";
3
3
  import { useTranslation } from "../../utils/utils";
4
4
  import { ZIconButton } from "../internal-component/z-icon-button";
5
5
  import { ZTagOrStatusItem } from "../internal-component/z-tag-or-status-item";
6
- import { ZButton } from "../internal-component/z-button";
7
- import { Icon } from "../internal-component/icon";
8
6
  import { getChatPicture, handleGetUserStatuses } from "../../store/chat";
9
7
  import { configStore, selectedChatStore } from "../../store/store";
10
8
  import { syncUser } from "../../api";
@@ -22,24 +20,12 @@ export class UserInfoSection {
22
20
  saveUserStatus;
23
21
  statusSelecting;
24
22
  createUserStatusRequest;
25
- createBill;
26
23
  syncUser;
27
- showDialogBill = false;
28
24
  isSyncUserLoading = false;
29
25
  render() {
30
26
  const t = useTranslation();
31
27
  const theme = configStore.get('theme');
32
28
  const selectedChat = selectedChatStore.get('selectedChat');
33
- const handleOpenDialogBillEditor = () => {
34
- this.showDialogBill = true;
35
- };
36
- const handleCloseDialogBillEditor = () => {
37
- this.showDialogBill = false;
38
- };
39
- const handleCreateDialogBillEditor = (value) => {
40
- this.createBill.emit(value);
41
- this.showDialogBill = false;
42
- };
43
29
  const handleSyncUser = async (isLoadUserOnly) => {
44
30
  try {
45
31
  this.isSyncUserLoading = true;
@@ -62,11 +48,11 @@ export class UserInfoSection {
62
48
  this.isSyncUserLoading = false;
63
49
  }
64
50
  };
65
- return (h(Fragment, { key: '8582662ac07c9790ad4ef228ba3ab5685dcc6124' }, selectedChat.type === 'user' &&
66
- h("div", { key: 'f3c3f8a8e44816cefe5cd4f987456dc9188f3dd2', class: "profile-info-refresh-user-button" }, h(ZIconButton, { key: 'ac9a5bdbee767353b5642ce9d8a21f5b826730ba', variant: "text", iconName: "RotateCw", addClassIcon: "size-4", isLoading: this.isSyncUserLoading, onClick: () => handleSyncUser(this.user.channel === 'zignal'), noPaddingY: true })), h("div", { key: '31bb94e9bc0a4daa80a86124b1eb366295a34ca5', class: `profile-info-user-wrapper profile-info-section-wrapper z-border-divider-${theme}` }, h("div", { key: '553af1f68a0428c60d56928dd05de7557b839c32', class: "profile-info-avatar-wrapper" }, h("div", { key: '2737547b53ab2c2a02df39a46c1f1720ade52c33', class: "profile-info-avatar-box" }, h("z-avatar", { key: 'f0ce7646c89a6b191048f09e3c6ecedb0706c694', pictureUrl: getChatPicture(selectedChat) }), selectedChat.type === 'group' &&
67
- h("div", { key: '9b96f709428da3aca67bd5c6d0c95e2d7523ad0e', class: "profile-info-avatar-badge" }, h("z-avatar", { key: '47276813e9d3d77cb7c711cf2a5236f0e68ee7c8', size: "x-small" })))), h("div", { key: '9a0b649c6e5da7141bd4dacd6012486d3d9c872e', class: "profile-info-name-wrapper" }, h("span", { key: 'c5c290e0ed2d90c1c54e5d414d940b3308b0a6bf', class: `text-base z-text-${theme}` }, this.user.name), h("div", { key: 'ae7837969e1b7b891e97ec4e75e052f88d81f9c6', class: "profile-info-box-wrapper" }, h("span", { key: 'bf08ac4ad35515c4e91ca9b59272a2e3714605ea', class: `profile-info-nickname z-text-${theme}` }, this.user.nickname || '-'), !this.readOnly && (h(ZIconButton, { key: 'caefe72e362495da51ddc5269fd6a37547e545ba', variant: "text", iconName: "Pencil", addClassIcon: "size-4", onClick: () => this.openDialogEditor.emit({ label: 'Nickname', field: 'nickname', value: this.user.nickname }) }))), this.isEditStatus ? (h("div", { class: "profile-info-box-wrapper" }, this.user.status && this.user.status?.id === this.statusId ? (h(ZTagOrStatusItem, { item: this.user.status, onDelete: () => this.removeStatus.emit() })) : (h("autocomplete-select", { value: this.user.status?.id === this.statusId ? this.user.status?.name : '', fetchItems: handleGetUserStatuses, createItem: name => new Promise(resolve => {
51
+ return (h(Fragment, { key: '7eb05b14520852aeb7d9a554f0ea25f1615fedf8' }, selectedChat.type === 'user' &&
52
+ h("div", { key: '9c0cb4951a677e89ae6a880e72604f30ae766170', class: "profile-info-refresh-user-button" }, h(ZIconButton, { key: '73e52693aebf758bcaace4490f50ca485e60d09e', variant: "text", iconName: "RotateCw", addClassIcon: "size-4", isLoading: this.isSyncUserLoading, onClick: () => handleSyncUser(this.user.channel === 'zignal'), noPaddingY: true })), h("div", { key: 'b2bd47c8ac9686c0129e5ea669263cef71826bf8', class: `profile-info-user-wrapper profile-info-section-wrapper z-border-divider-${theme}` }, h("div", { key: '6129fa553067703cc9f61bed207642706304f994', class: "profile-info-avatar-wrapper" }, h("div", { key: '2042ceb2c28f9fd165a1451157e28698a90be3c2', class: "profile-info-avatar-box" }, h("z-avatar", { key: 'd39febea16cb17ec7a1cd082a12ffe4e1d556300', pictureUrl: getChatPicture(selectedChat) }), selectedChat.type === 'group' &&
53
+ h("div", { key: '24020d0cc9ef8b776d4aec62fcf0a3d192499432', class: "profile-info-avatar-badge" }, h("z-avatar", { key: '6b76ebc1bbd7fb3246f163200cbbbe6f20a5ac9c', size: "x-small" })))), h("div", { key: '508ef965fd1f3963e178bc6a9d5c7e62ff9bba9b', class: "profile-info-name-wrapper" }, h("span", { key: 'eb486f929c7f99151fe10b628283b221c78a71c0', class: `text-base z-text-${theme}` }, this.user.name), h("div", { key: '2f370707a9f93665525a8f32e9a2a129e6873dfb', class: "profile-info-box-wrapper" }, h("span", { key: '83125e99a72cf0b352e66a5ea608e63546a8e307', class: `profile-info-nickname z-text-${theme}` }, this.user.nickname || '-'), !this.readOnly && (h(ZIconButton, { key: '93388e035ac4791034036ed87e6f645dd55caae2', variant: "text", iconName: "Pencil", addClassIcon: "size-4", onClick: () => this.openDialogEditor.emit({ label: 'Nickname', field: 'nickname', value: this.user.nickname }) }))), this.isEditStatus ? (h("div", { class: "profile-info-box-wrapper" }, this.user.status && this.user.status?.id === this.statusId ? (h(ZTagOrStatusItem, { item: this.user.status, onDelete: () => this.removeStatus.emit() })) : (h("autocomplete-select", { value: this.user.status?.id === this.statusId ? this.user.status?.name : '', fetchItems: handleGetUserStatuses, createItem: name => new Promise(resolve => {
68
54
  this.createUserStatusRequest.emit({ name, callback: resolve });
69
- }), onSelecting: item => this.statusSelecting.emit(item.detail.id), referenceSelector: "profile-status" })), h(ZIconButton, { variant: "text", iconName: "X", addClassIcon: "size-4", onClick: () => this.closeStatus.emit() }), h(ZIconButton, { variant: "text", iconName: "Save", addClassIcon: "size-4", onClick: () => this.saveUserStatus.emit() }))) : (h("div", { class: "profile-info-box-wrapper" }, h("span", { class: `text-sm z-text-${theme}` }, t('status'), "\u00A0:\u00A0", this.user.status ? (h("tag-or-status-item", { item: this.user.status, chatId: `profile-status-${selectedChat.id}-${this.readOnly ? 'readonly' : ''}` })) : ('-')), !this.readOnly && h(ZIconButton, { variant: "text", iconName: "Pencil", addClassIcon: "size-4", onClick: () => this.editStatus.emit() })))), this.user.summarized_message && (h("div", { key: '25cbb0c8aa4f4261684246d8c2b2188f3dc6229e', class: "col-span-3" }, h("div", { key: 'e71ce68bea9cc54f58d521f450a39a6852b4530d', class: "profile-info-summarize-wrapper" }, h("span", { key: 'c687b5344c93e75618fec8f89d5d45f2a5b0bbab', class: `profile-info-box-wrapper z-text-${theme}` }, t('profile_tab.ai_summary'), summarizeIcon), h("span", { key: 'e8ccfb4a952aba6e4f19af6675383d7d63804f28', class: `text-xs z-text-gray-${theme}` }, t('profile_tab.last_update'), " ", displayDate(this.user.summarized_message.created_at))), h("div", { key: '97d0e14381c5b24c80e946730e1e0af689f45405', class: "profile-info-summarize-text" }, h("typography-clamp", { key: '7e9a1b2f7c3329537de6ea85c51697cf5a3aaf35', text: this.user.summarized_message.text })))), (configStore.get('connectionList').find((connection) => connection.id === selectedChat.connection.id)?.type === 'zwiz') && (h("div", { key: 'f835d518dec9f362512cdf42ea5e7fad0820d01a', class: "profile-info-bill" }, h(ZButton, { key: 'a3e8f84aced1812953f9de2db48ba052c40aa32a', label: "\u0E40\u0E1B\u0E34\u0E14\u0E1A\u0E34\u0E25", title: "\u0E40\u0E1B\u0E34\u0E14\u0E1A\u0E34\u0E25", startIcon: h(Icon, { name: "ShoppingCart", addClass: "size-5 fill-current" }), endIcon: h(Icon, { name: "Triangle", addClass: "profile-info-bill-icon" }), onClick: () => handleOpenDialogBillEditor() }))), this.showDialogBill && (h("div", { key: '1ba53955a4effe08ea7146329b7729e15d927b78', class: "dialog-backdrop" }, h("dialog-bill-editor", { key: 'a2bc2a2582dcac04d5286c5d2bb508cacd8e181d', onCancel: handleCloseDialogBillEditor, onCreate: (event) => handleCreateDialogBillEditor(event?.detail) }))))));
55
+ }), onSelecting: item => this.statusSelecting.emit(item.detail.id), referenceSelector: "profile-status" })), h(ZIconButton, { variant: "text", iconName: "X", addClassIcon: "size-4", onClick: () => this.closeStatus.emit() }), h(ZIconButton, { variant: "text", iconName: "Save", addClassIcon: "size-4", onClick: () => this.saveUserStatus.emit() }))) : (h("div", { class: "profile-info-box-wrapper" }, h("span", { class: `text-sm z-text-${theme}` }, t('status'), "\u00A0:\u00A0", this.user.status ? (h("tag-or-status-item", { item: this.user.status, chatId: `profile-status-${selectedChat.id}-${this.readOnly ? 'readonly' : ''}` })) : ('-')), !this.readOnly && h(ZIconButton, { variant: "text", iconName: "Pencil", addClassIcon: "size-4", onClick: () => this.editStatus.emit() })))), this.user.summarized_message && (h("div", { key: '3c3160dda5d2742070c84e2e2128194e7d9e52ba', class: "col-span-3" }, h("div", { key: '87efbbc69696830adc46dae300664425d0c223d6', class: "profile-info-summarize-wrapper" }, h("span", { key: '9fd327f5848578263b3e18117180a4edff7280b3', class: `profile-info-box-wrapper z-text-${theme}` }, t('profile_tab.ai_summary'), summarizeIcon), h("span", { key: '48ea22e647887b0411f0b2fd089dbff33e9e7f1f', class: `text-xs z-text-gray-${theme}` }, t('profile_tab.last_update'), " ", displayDate(this.user.summarized_message.created_at))), h("div", { key: '10098f800561b07f5404e73516393598aa35bd23', class: "profile-info-summarize-text" }, h("typography-clamp", { key: '36f5f91e30e133a847fbeaa2ff608ac745442f5c', text: this.user.summarized_message.text })))))));
70
56
  }
71
57
  static get is() { return "user-info-section"; }
72
58
  static get originalStyleUrls() {
@@ -166,7 +152,6 @@ export class UserInfoSection {
166
152
  }
167
153
  static get states() {
168
154
  return {
169
- "showDialogBill": {},
170
155
  "isSyncUserLoading": {}
171
156
  };
172
157
  }
@@ -282,27 +267,6 @@ export class UserInfoSection {
282
267
  }
283
268
  }
284
269
  }
285
- }, {
286
- "method": "createBill",
287
- "name": "createBill",
288
- "bubbles": true,
289
- "cancelable": true,
290
- "composed": true,
291
- "docs": {
292
- "tags": [],
293
- "text": ""
294
- },
295
- "complexType": {
296
- "original": "BillingItem",
297
- "resolved": "{ id?: string; event: BillingItemEvent; amount?: string; currency?: string; auto_create_order?: boolean; }",
298
- "references": {
299
- "BillingItem": {
300
- "location": "import",
301
- "path": "../../store/type",
302
- "id": "src/store/type.ts::BillingItem"
303
- }
304
- }
305
- }
306
270
  }, {
307
271
  "method": "syncUser",
308
272
  "name": "syncUser",
@@ -1 +1 @@
1
- {"version":3,"file":"user-info-section.js","sourceRoot":"","sources":["../../../src/components/profile-info/user-info-section.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h, Event, EventEmitter, Fragment } from '@stencil/core';\nimport { BillingItem, UserItem, TTagOrStatusItem } from '../../store/type';\nimport { displayDate } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from '../internal-component/z-icon-button';\nimport { ZTagOrStatusItem } from '../internal-component/z-tag-or-status-item';\nimport { ZButton } from '../internal-component/z-button';\nimport { Icon } from '../internal-component/icon';\nimport { getChatPicture, handleGetUserStatuses } from '../../store/chat';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { syncUser } from '../../api';\nimport { handleError } from '../../store/dialog';\nimport { summarizeIcon } from '../../utils/icon-svg';\n\n@Component({\n tag: 'user-info-section',\n styleUrl: 'profile-info.css',\n})\nexport class UserInfoSection {\n @Prop() user: UserItem;\n @Prop() readOnly?: boolean = false;\n @Prop() isEditStatus: boolean;\n @Prop() statusId?: string;\n\n @Event() openDialogEditor: EventEmitter<{ label: string; field: string; value: string }>;\n @Event() editStatus: EventEmitter<void>;\n @Event() closeStatus: EventEmitter<void>;\n @Event() removeStatus: EventEmitter<void>;\n @Event() saveUserStatus: EventEmitter<void>;\n @Event() statusSelecting: EventEmitter<string>;\n @Event() createUserStatusRequest: EventEmitter<{ name: string; callback: (value: TTagOrStatusItem) => void }>;\n @Event() createBill: EventEmitter<BillingItem>;\n @Event() syncUser: EventEmitter<void>;\n\n @State() showDialogBill: boolean = false;\n @State() isSyncUserLoading = false;\n\n render() {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n const handleOpenDialogBillEditor = () => {\n this.showDialogBill = true;\n };\n\n const handleCloseDialogBillEditor = () => {\n this.showDialogBill = false;\n };\n\n const handleCreateDialogBillEditor = (value: BillingItem) => {\n this.createBill.emit(value);\n this.showDialogBill = false;\n };\n\n const handleSyncUser = async (isLoadUserOnly?: boolean) => {\n try {\n this.isSyncUserLoading = true;\n if (!isLoadUserOnly) {\n const id = this.user.id;\n const channel = this.user.channel;\n const response = await syncUser({ channel, id });\n\n if (response.code === 'user-synced') {\n this.syncUser.emit();\n }\n } else {\n this.syncUser.emit();\n }\n } catch (error) {\n handleError(error, 'Failed to SyncUser');\n } finally {\n this.isSyncUserLoading = false;\n }\n };\n\n return (\n <Fragment>\n {selectedChat.type === 'user' &&\n <div class=\"profile-info-refresh-user-button\">\n <ZIconButton\n variant=\"text\"\n iconName=\"RotateCw\"\n addClassIcon=\"size-4\"\n isLoading={this.isSyncUserLoading}\n onClick={() => handleSyncUser(this.user.channel === 'zignal')}\n noPaddingY\n />\n </div>\n }\n <div class={`profile-info-user-wrapper profile-info-section-wrapper z-border-divider-${theme}`}>\n\n <div class=\"profile-info-avatar-wrapper\">\n <div class=\"profile-info-avatar-box\">\n <z-avatar pictureUrl={getChatPicture(selectedChat)} />\n {selectedChat.type === 'group' &&\n <div class=\"profile-info-avatar-badge\">\n <z-avatar size=\"x-small\" />\n </div>\n }\n </div>\n </div>\n <div class=\"profile-info-name-wrapper\">\n <span class={`text-base z-text-${theme}`}>{this.user.name}</span>\n <div class=\"profile-info-box-wrapper\">\n <span class={`profile-info-nickname z-text-${theme}`}>{this.user.nickname || '-'}</span>\n {!this.readOnly && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => this.openDialogEditor.emit({ label: 'Nickname', field: 'nickname', value: this.user.nickname })}\n />\n )}\n </div>\n {this.isEditStatus ? (\n <div class=\"profile-info-box-wrapper\">\n {this.user.status && this.user.status?.id === this.statusId ? (\n <ZTagOrStatusItem item={this.user.status} onDelete={() => this.removeStatus.emit()} />\n ) : (\n <autocomplete-select\n value={this.user.status?.id === this.statusId ? this.user.status?.name : ''}\n fetchItems={handleGetUserStatuses}\n createItem={name => new Promise<TTagOrStatusItem>(resolve => {\n this.createUserStatusRequest.emit({ name, callback: resolve });\n })}\n onSelecting={item => this.statusSelecting.emit(item.detail.id)}\n referenceSelector=\"profile-status\"\n />\n )}\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={() => this.closeStatus.emit()} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={() => this.saveUserStatus.emit()} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {t('status')}&nbsp;:&nbsp;\n {this.user.status ? (\n <tag-or-status-item item={this.user.status} chatId={`profile-status-${selectedChat.id}-${this.readOnly ? 'readonly' : ''}`} />\n ) : (\n '-'\n )}\n </span>\n {!this.readOnly && <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={() => this.editStatus.emit()} />}\n </div>\n )}\n </div>\n\n {this.user.summarized_message && (\n <div class=\"col-span-3\">\n <div class=\"profile-info-summarize-wrapper\">\n <span class={`profile-info-box-wrapper z-text-${theme}`}>\n {t('profile_tab.ai_summary')}\n {summarizeIcon}\n </span>\n <span class={`text-xs z-text-gray-${theme}`}>\n {t('profile_tab.last_update')} {displayDate(this.user.summarized_message.created_at)}\n </span>\n </div>\n <div class=\"profile-info-summarize-text\">\n <typography-clamp text={this.user.summarized_message.text} />\n </div>\n </div>\n )}\n\n {(configStore.get('connectionList').find((connection) => connection.id === selectedChat.connection.id)?.type === 'zwiz') && (\n <div class=\"profile-info-bill\">\n <ZButton\n label=\"เปิดบิล\"\n title=\"เปิดบิล\"\n startIcon={<Icon name=\"ShoppingCart\" addClass=\"size-5 fill-current\" />}\n endIcon={<Icon name=\"Triangle\" addClass=\"profile-info-bill-icon\" />}\n onClick={() => handleOpenDialogBillEditor()}\n />\n </div>\n )}\n\n {this.showDialogBill && (\n <div class=\"dialog-backdrop\">\n <dialog-bill-editor onCancel={handleCloseDialogBillEditor} onCreate={(event) => handleCreateDialogBillEditor(event?.detail)} />\n </div>\n )}\n </div>\n </Fragment>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"user-info-section.js","sourceRoot":"","sources":["../../../src/components/profile-info/user-info-section.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h, Event, EventEmitter, Fragment } from '@stencil/core';\nimport { UserItem, TTagOrStatusItem } from '../../store/type';\nimport { displayDate } from '../../utils/dayjs';\nimport { useTranslation } from '../../utils/utils';\nimport { ZIconButton } from '../internal-component/z-icon-button';\nimport { ZTagOrStatusItem } from '../internal-component/z-tag-or-status-item';\nimport { getChatPicture, handleGetUserStatuses } from '../../store/chat';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { syncUser } from '../../api';\nimport { handleError } from '../../store/dialog';\nimport { summarizeIcon } from '../../utils/icon-svg';\n\n@Component({\n tag: 'user-info-section',\n styleUrl: 'profile-info.css',\n})\nexport class UserInfoSection {\n @Prop() user: UserItem;\n @Prop() readOnly?: boolean = false;\n @Prop() isEditStatus: boolean;\n @Prop() statusId?: string;\n\n @Event() openDialogEditor: EventEmitter<{ label: string; field: string; value: string }>;\n @Event() editStatus: EventEmitter<void>;\n @Event() closeStatus: EventEmitter<void>;\n @Event() removeStatus: EventEmitter<void>;\n @Event() saveUserStatus: EventEmitter<void>;\n @Event() statusSelecting: EventEmitter<string>;\n @Event() createUserStatusRequest: EventEmitter<{ name: string; callback: (value: TTagOrStatusItem) => void }>;\n @Event() syncUser: EventEmitter<void>;\n\n @State() isSyncUserLoading = false;\n\n render() {\n const t = useTranslation();\n const theme = configStore.get('theme');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n const handleSyncUser = async (isLoadUserOnly?: boolean) => {\n try {\n this.isSyncUserLoading = true;\n if (!isLoadUserOnly) {\n const id = this.user.id;\n const channel = this.user.channel;\n const response = await syncUser({ channel, id });\n\n if (response.code === 'user-synced') {\n this.syncUser.emit();\n }\n } else {\n this.syncUser.emit();\n }\n } catch (error) {\n handleError(error, 'Failed to SyncUser');\n } finally {\n this.isSyncUserLoading = false;\n }\n };\n\n return (\n <Fragment>\n {selectedChat.type === 'user' &&\n <div class=\"profile-info-refresh-user-button\">\n <ZIconButton\n variant=\"text\"\n iconName=\"RotateCw\"\n addClassIcon=\"size-4\"\n isLoading={this.isSyncUserLoading}\n onClick={() => handleSyncUser(this.user.channel === 'zignal')}\n noPaddingY\n />\n </div>\n }\n <div class={`profile-info-user-wrapper profile-info-section-wrapper z-border-divider-${theme}`}>\n\n <div class=\"profile-info-avatar-wrapper\">\n <div class=\"profile-info-avatar-box\">\n <z-avatar pictureUrl={getChatPicture(selectedChat)} />\n {selectedChat.type === 'group' &&\n <div class=\"profile-info-avatar-badge\">\n <z-avatar size=\"x-small\" />\n </div>\n }\n </div>\n </div>\n <div class=\"profile-info-name-wrapper\">\n <span class={`text-base z-text-${theme}`}>{this.user.name}</span>\n <div class=\"profile-info-box-wrapper\">\n <span class={`profile-info-nickname z-text-${theme}`}>{this.user.nickname || '-'}</span>\n {!this.readOnly && (\n <ZIconButton\n variant=\"text\"\n iconName=\"Pencil\"\n addClassIcon=\"size-4\"\n onClick={() => this.openDialogEditor.emit({ label: 'Nickname', field: 'nickname', value: this.user.nickname })}\n />\n )}\n </div>\n {this.isEditStatus ? (\n <div class=\"profile-info-box-wrapper\">\n {this.user.status && this.user.status?.id === this.statusId ? (\n <ZTagOrStatusItem item={this.user.status} onDelete={() => this.removeStatus.emit()} />\n ) : (\n <autocomplete-select\n value={this.user.status?.id === this.statusId ? this.user.status?.name : ''}\n fetchItems={handleGetUserStatuses}\n createItem={name => new Promise<TTagOrStatusItem>(resolve => {\n this.createUserStatusRequest.emit({ name, callback: resolve });\n })}\n onSelecting={item => this.statusSelecting.emit(item.detail.id)}\n referenceSelector=\"profile-status\"\n />\n )}\n <ZIconButton variant=\"text\" iconName=\"X\" addClassIcon=\"size-4\" onClick={() => this.closeStatus.emit()} />\n <ZIconButton variant=\"text\" iconName=\"Save\" addClassIcon=\"size-4\" onClick={() => this.saveUserStatus.emit()} />\n </div>\n ) : (\n <div class=\"profile-info-box-wrapper\">\n <span class={`text-sm z-text-${theme}`}>\n {t('status')}&nbsp;:&nbsp;\n {this.user.status ? (\n <tag-or-status-item item={this.user.status} chatId={`profile-status-${selectedChat.id}-${this.readOnly ? 'readonly' : ''}`} />\n ) : (\n '-'\n )}\n </span>\n {!this.readOnly && <ZIconButton variant=\"text\" iconName=\"Pencil\" addClassIcon=\"size-4\" onClick={() => this.editStatus.emit()} />}\n </div>\n )}\n </div>\n\n {this.user.summarized_message && (\n <div class=\"col-span-3\">\n <div class=\"profile-info-summarize-wrapper\">\n <span class={`profile-info-box-wrapper z-text-${theme}`}>\n {t('profile_tab.ai_summary')}\n {summarizeIcon}\n </span>\n <span class={`text-xs z-text-gray-${theme}`}>\n {t('profile_tab.last_update')} {displayDate(this.user.summarized_message.created_at)}\n </span>\n </div>\n <div class=\"profile-info-summarize-text\">\n <typography-clamp text={this.user.summarized_message.text} />\n </div>\n </div>\n )}\n </div>\n </Fragment>\n );\n }\n}\n"]}