zignal-stencil-library 1.1.108 → 1.1.110

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 (201) hide show
  1. package/dist/cjs/autocomplete-address_43.cjs.entry.js +162 -70
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/quick-message-app.cjs.entry.js +1 -1
  4. package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
  5. package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
  6. package/dist/collection/api/index.js +10 -0
  7. package/dist/collection/api/index.js.map +1 -1
  8. package/dist/collection/api/type.js.map +1 -1
  9. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  10. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  11. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  12. package/dist/collection/components/autocomplete-select/autocomplete-select.js +4 -3
  13. package/dist/collection/components/autocomplete-select/autocomplete-select.js.map +1 -1
  14. package/dist/collection/components/channel-box/channel-box.css +1 -1
  15. package/dist/collection/components/chat-app/chat-app.css +1 -1
  16. package/dist/collection/components/chat-header/chat-header.css +1 -1
  17. package/dist/collection/components/chat-input/chat-input.css +1 -1
  18. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  19. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  20. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  21. package/dist/collection/components/dialog-editor/dialog-editor.js +43 -26
  22. package/dist/collection/components/dialog-editor/dialog-editor.js.map +1 -1
  23. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  24. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  25. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  26. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  27. package/dist/collection/components/menu-list/menu-list.css +1 -1
  28. package/dist/collection/components/message-box/message-box.css +1 -1
  29. package/dist/collection/components/message-content/message-content.css +1 -1
  30. package/dist/collection/components/message-item/message-item.css +1 -1
  31. package/dist/collection/components/message-media/message-media.css +1 -1
  32. package/dist/collection/components/profile-history/profile-history.css +1 -1
  33. package/dist/collection/components/profile-info/profile-info.css +1 -1
  34. package/dist/collection/components/profile-info/profile-info.js +30 -7
  35. package/dist/collection/components/profile-info/profile-info.js.map +1 -1
  36. package/dist/collection/components/profile-info/user-info-section.js +3 -3
  37. package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
  38. package/dist/collection/components/profile-media/profile-media.css +1 -1
  39. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  40. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  41. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  42. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  43. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  44. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  45. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  46. package/dist/collection/components/search-box/search-box.css +1 -1
  47. package/dist/collection/components/status-badge/status-badge.css +1 -1
  48. package/dist/collection/components/tag-list/tag-list.css +1 -1
  49. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  50. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  51. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  52. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  53. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  54. package/dist/components/autocomplete-address.js +1 -1
  55. package/dist/components/autocomplete-multiple-select.js +1 -1
  56. package/dist/components/autocomplete-select.js +1 -1
  57. package/dist/components/channel-box.js +1 -1
  58. package/dist/components/chat-app.js +39 -39
  59. package/dist/components/chat-app.js.map +1 -1
  60. package/dist/components/chat-header.js +1 -1
  61. package/dist/components/chat-input.js +1 -1
  62. package/dist/components/checkbox-list.js +1 -1
  63. package/dist/components/dialog-bill-editor.js +1 -1
  64. package/dist/components/dialog-editor.js +1 -1
  65. package/dist/components/dialog-preview-media.js +1 -1
  66. package/dist/components/dialog-search.js +1 -1
  67. package/dist/components/menu-chat-channel.js +1 -1
  68. package/dist/components/menu-chat-type.js +1 -1
  69. package/dist/components/menu-list.js +1 -1
  70. package/dist/components/message-box.js +1 -1
  71. package/dist/components/message-content.js +1 -1
  72. package/dist/components/message-item.js +1 -1
  73. package/dist/components/message-media.js +1 -1
  74. package/dist/components/{p-Ccj7ZvvK.js → p-2nxqY6Yv.js} +5 -5
  75. package/dist/components/{p-Ccj7ZvvK.js.map → p-2nxqY6Yv.js.map} +1 -1
  76. package/dist/components/{p-DAJSCmgW.js → p-34NvdAct.js} +7 -7
  77. package/dist/components/{p-DAJSCmgW.js.map → p-34NvdAct.js.map} +1 -1
  78. package/dist/components/{p-C8sMXVQq.js → p-8c8Dr0ZV.js} +17 -17
  79. package/dist/components/{p-C8sMXVQq.js.map → p-8c8Dr0ZV.js.map} +1 -1
  80. package/dist/components/{p-OWJ6K2wG.js → p-B0F3Fpbq.js} +3 -3
  81. package/dist/components/{p-OWJ6K2wG.js.map → p-B0F3Fpbq.js.map} +1 -1
  82. package/dist/components/{p-DwuMPddw.js → p-B5dJsgfS.js} +3 -3
  83. package/dist/components/{p-DwuMPddw.js.map → p-B5dJsgfS.js.map} +1 -1
  84. package/dist/components/{p-Y4bwbrrH.js → p-BAcE386V.js} +3 -3
  85. package/dist/components/{p-Y4bwbrrH.js.map → p-BAcE386V.js.map} +1 -1
  86. package/dist/components/{p-DljLeu-a.js → p-BQ0yCCV6.js} +3 -3
  87. package/dist/components/{p-DljLeu-a.js.map → p-BQ0yCCV6.js.map} +1 -1
  88. package/dist/components/{p-B7zGFbN-.js → p-BQwk0OCD.js} +8 -8
  89. package/dist/components/{p-B7zGFbN-.js.map → p-BQwk0OCD.js.map} +1 -1
  90. package/dist/components/{p-DHIfeK5t.js → p-BTItt0Vn.js} +44 -22
  91. package/dist/components/p-BTItt0Vn.js.map +1 -0
  92. package/dist/components/{p-BPsdb11S.js → p-BfwDQevk.js} +4 -4
  93. package/dist/components/{p-BPsdb11S.js.map → p-BfwDQevk.js.map} +1 -1
  94. package/dist/components/{p-DYdoQzC_.js → p-BtVgKal4.js} +12 -12
  95. package/dist/components/p-BtVgKal4.js.map +1 -0
  96. package/dist/components/{p-UQeKOohc.js → p-COFzcZWg.js} +5 -5
  97. package/dist/components/{p-UQeKOohc.js.map → p-COFzcZWg.js.map} +1 -1
  98. package/dist/components/{p-BAzVPNK5.js → p-CZjMEPqi.js} +43 -26
  99. package/dist/components/p-CZjMEPqi.js.map +1 -0
  100. package/dist/components/{p-yWKuwcuj.js → p-Ca9LbW-0.js} +13 -3
  101. package/dist/components/p-Ca9LbW-0.js.map +1 -0
  102. package/dist/components/{p-ByiI7Ajt.js → p-Cav9Xvhc.js} +4 -4
  103. package/dist/components/{p-ByiI7Ajt.js.map → p-Cav9Xvhc.js.map} +1 -1
  104. package/dist/components/{p-I6OpXVSo.js → p-CoklAWrF.js} +19 -19
  105. package/dist/components/{p-I6OpXVSo.js.map → p-CoklAWrF.js.map} +1 -1
  106. package/dist/components/{p-SzF52WI_.js → p-Csg2zfWF.js} +5 -5
  107. package/dist/components/{p-SzF52WI_.js.map → p-Csg2zfWF.js.map} +1 -1
  108. package/dist/components/{p-Cy8tIb9N.js → p-D-KXyaWT.js} +5 -5
  109. package/dist/components/{p-Cy8tIb9N.js.map → p-D-KXyaWT.js.map} +1 -1
  110. package/dist/components/{p-DfliSGzR.js → p-D6cBz4be.js} +10 -10
  111. package/dist/components/{p-DfliSGzR.js.map → p-D6cBz4be.js.map} +1 -1
  112. package/dist/components/{p-fgCarGlO.js → p-DBgHNduI.js} +3 -3
  113. package/dist/components/{p-fgCarGlO.js.map → p-DBgHNduI.js.map} +1 -1
  114. package/dist/components/{p-DkIGNUBw.js → p-DHFOACHm.js} +3 -3
  115. package/dist/components/{p-DkIGNUBw.js.map → p-DHFOACHm.js.map} +1 -1
  116. package/dist/components/{p-CPkaDKfY.js → p-DLUy8rmx.js} +10 -10
  117. package/dist/components/{p-CPkaDKfY.js.map → p-DLUy8rmx.js.map} +1 -1
  118. package/dist/components/{p-Dpsv8GQT.js → p-DOx_fYz_.js} +8 -8
  119. package/dist/components/{p-Dpsv8GQT.js.map → p-DOx_fYz_.js.map} +1 -1
  120. package/dist/components/{p-BS58cdKA.js → p-DQjjDohc.js} +3 -3
  121. package/dist/components/{p-BS58cdKA.js.map → p-DQjjDohc.js.map} +1 -1
  122. package/dist/components/{p-BC4IEk7S.js → p-DT1e8U5J.js} +8 -8
  123. package/dist/components/{p-BC4IEk7S.js.map → p-DT1e8U5J.js.map} +1 -1
  124. package/dist/components/{p-epmh-mLu.js → p-DXliIvkR.js} +3 -3
  125. package/dist/components/{p-epmh-mLu.js.map → p-DXliIvkR.js.map} +1 -1
  126. package/dist/components/{p-BpoDbaWl.js → p-Drdp5Euh.js} +3 -3
  127. package/dist/components/{p-BpoDbaWl.js.map → p-Drdp5Euh.js.map} +1 -1
  128. package/dist/components/{p-CbIBIyOU.js → p-DyI3f7kr.js} +3 -3
  129. package/dist/components/{p-CbIBIyOU.js.map → p-DyI3f7kr.js.map} +1 -1
  130. package/dist/components/{p-C-1HPyA3.js → p-GrnK0v_A.js} +3 -3
  131. package/dist/components/{p-C-1HPyA3.js.map → p-GrnK0v_A.js.map} +1 -1
  132. package/dist/components/{p-BPSZx5dO.js → p-UWiH2uHw.js} +46 -3
  133. package/dist/components/p-UWiH2uHw.js.map +1 -0
  134. package/dist/components/{p-Cy3ui5kA.js → p-WYN1j0PL.js} +7 -6
  135. package/dist/components/p-WYN1j0PL.js.map +1 -0
  136. package/dist/components/{p-BhBbacui.js → p-Zye2AvZI.js} +3 -3
  137. package/dist/components/{p-BhBbacui.js.map → p-Zye2AvZI.js.map} +1 -1
  138. package/dist/components/p-a3QvEULN.js +61 -0
  139. package/dist/components/{p-BffroZpQ.js.map → p-a3QvEULN.js.map} +1 -1
  140. package/dist/components/{p-B6jEqC8_.js → p-a8Ave0b1.js} +3 -3
  141. package/dist/components/{p-B6jEqC8_.js.map → p-a8Ave0b1.js.map} +1 -1
  142. package/dist/components/{p-CwAnuyXt.js → p-aG9sejEo.js} +4 -4
  143. package/dist/components/{p-CwAnuyXt.js.map → p-aG9sejEo.js.map} +1 -1
  144. package/dist/components/{p-B0CigBRk.js → p-b7Sv1iEG.js} +3 -3
  145. package/dist/components/{p-B0CigBRk.js.map → p-b7Sv1iEG.js.map} +1 -1
  146. package/dist/components/{p-B7rxQVG9.js → p-eM9QTWv9.js} +3 -3
  147. package/dist/components/{p-B7rxQVG9.js.map → p-eM9QTWv9.js.map} +1 -1
  148. package/dist/components/{p-CAXY__EG.js → p-rShdvhEn.js} +3 -3
  149. package/dist/components/{p-CAXY__EG.js.map → p-rShdvhEn.js.map} +1 -1
  150. package/dist/components/{p-i0kt6Dyr.js → p-tAmACNBr.js} +7 -7
  151. package/dist/components/{p-i0kt6Dyr.js.map → p-tAmACNBr.js.map} +1 -1
  152. package/dist/components/{p-edlq2pPS.js → p-uDj0XDfv.js} +3 -3
  153. package/dist/components/{p-edlq2pPS.js.map → p-uDj0XDfv.js.map} +1 -1
  154. package/dist/components/p-xc8pAQt4.js +81 -0
  155. package/dist/components/{p-X5zHTifT.js.map → p-xc8pAQt4.js.map} +1 -1
  156. package/dist/components/profile-history.js +1 -1
  157. package/dist/components/profile-info.js +1 -1
  158. package/dist/components/profile-media.js +1 -1
  159. package/dist/components/profile-tabs.js +1 -1
  160. package/dist/components/quick-message-add-template.js +1 -1
  161. package/dist/components/quick-message-app.js +6 -6
  162. package/dist/components/quick-message-app.js.map +1 -1
  163. package/dist/components/quick-message-file.js +1 -1
  164. package/dist/components/quick-message-image.js +1 -1
  165. package/dist/components/quick-message-modal.js +1 -1
  166. package/dist/components/quick-message-template.js +1 -1
  167. package/dist/components/search-box.js +1 -1
  168. package/dist/components/status-badge.js +1 -1
  169. package/dist/components/summarize-message-section.js +1 -1
  170. package/dist/components/tag-list.js +1 -1
  171. package/dist/components/tag-or-status-item.js +1 -1
  172. package/dist/components/tag-popper.js +1 -1
  173. package/dist/components/typography-clamp.js +1 -1
  174. package/dist/components/user-info-section.js +1 -1
  175. package/dist/components/z-avatar.js +1 -1
  176. package/dist/components/z-dialog.js +1 -1
  177. package/dist/esm/autocomplete-address_43.entry.js +162 -70
  178. package/dist/esm/loader.js +1 -1
  179. package/dist/esm/quick-message-app.entry.js +1 -1
  180. package/dist/esm/quick-message-app.entry.js.map +1 -1
  181. package/dist/esm/zignal-stencil-library.js +1 -1
  182. package/dist/types/api/index.d.ts +1 -0
  183. package/dist/types/api/type.d.ts +4 -0
  184. package/dist/types/components/profile-info/profile-info.d.ts +1 -0
  185. package/dist/zignal-stencil-library/{p-b6d59cd4.entry.js → p-35a45709.entry.js} +168 -168
  186. package/dist/zignal-stencil-library/p-35a45709.entry.js.map +1 -0
  187. package/dist/zignal-stencil-library/p-b3cbf3e3.entry.js +2 -0
  188. package/dist/zignal-stencil-library/{p-237d490f.entry.js.map → p-b3cbf3e3.entry.js.map} +1 -1
  189. package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
  190. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  191. package/package.json +1 -1
  192. package/dist/components/p-BAzVPNK5.js.map +0 -1
  193. package/dist/components/p-BPSZx5dO.js.map +0 -1
  194. package/dist/components/p-BffroZpQ.js +0 -61
  195. package/dist/components/p-Cy3ui5kA.js.map +0 -1
  196. package/dist/components/p-DHIfeK5t.js.map +0 -1
  197. package/dist/components/p-DYdoQzC_.js.map +0 -1
  198. package/dist/components/p-X5zHTifT.js +0 -81
  199. package/dist/components/p-yWKuwcuj.js.map +0 -1
  200. package/dist/zignal-stencil-library/p-237d490f.entry.js +0 -2
  201. package/dist/zignal-stencil-library/p-b6d59cd4.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"p-BPsdb11S.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","showErrorDialog"],"sources":["src/components/quick-message-template/quick-message-template.css?tag=quick-message-template","src/components/quick-message-template/quick-message-template.tsx"],"sourcesContent":[".quick-message-template__card {\n box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);\n}\n\n.quick-message-template__button-action {\n color: var(--quick-modal-primary);\n}\n\n.quick-message-template__toggle {\n border: 1px solid rgba(148, 163, 184, 0.4);\n}\n\n.quick-message-template__dialog-overlay {\n position: absolute;\n inset: 0;\n background: rgba(15, 23, 42, 0.35);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 70;\n padding: 16px;\n}\n\n.quick-message-template__dialog {\n width: min(440px, 100%);\n border-radius: 16px;\n box-shadow: 0 20px 45px rgba(17, 24, 39, 0.22);\n border: 1px solid rgba(148, 163, 184, 0.25);\n display: flex;\n flex-direction: column;\n max-height: min(440px, 100%);\n}\n\n.quick-message-template__dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 18px 20px 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.28);\n}\n\n.quick-message-template__dialog-header h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 0;\n}\n\n.quick-message-template__dialog-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9999px;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px 20px;\n overflow-y: auto;\n}\n\n.quick-message-template__input,\n.quick-message-template__textarea {\n border-radius: 12px;\n border-width: 1px;\n padding: 10px 14px;\n font-size: 14px;\n resize: none;\n}\n\n.quick-message-template__textarea {\n min-height: 100px;\n}\n\n.quick-message-template__dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px 20px;\n border-top: 1px solid rgba(148, 163, 184, 0.18);\n}\n\n.quick-message-template__dialog-button {\n border-radius: 9999px;\n font-weight: 600;\n font-size: 13px;\n padding: 10px 18px;\n border: none;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-button--ghost {\n background: transparent;\n color: rgba(100, 116, 139, 1);\n}\n\n.quick-message-template__dialog-button--primary {\n background: var(--quick-modal-primary);\n color: #fff;\n box-shadow: 0 10px 25px var(--quick-modal-primary-shadow);\n}\n\n.quick-message-template__dialog-button--primary:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n box-shadow: none;\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport dayjs from 'dayjs';\nimport { createQuickMessageTemplate, deleteQuickMessageTemplate, getQuickMessageTemplates, updateQuickMessageTemplate } from '../../api/quick-message';\nimport { QuickMessageTemplate as QuickMessageTemplateModel, QuickMessageTemplateContent } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport type { TemplateSelectionMode } from '../quick-message-modal/template-selection';\nimport { DIALOG_TYPE, openDialog, handleError as showErrorDialog } from '../../store/dialog';\n\n@Component({\n tag: 'quick-message-template',\n styleUrl: 'quick-message-template.css',\n})\nexport class QuickMessageTemplateComponent {\n @Prop() handleClose?: () => void;\n @Prop() value?: string | QuickMessageTemplateModel[];\n @Prop() isMaster: boolean = false;\n\n @State() private searchTemplate = '';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private showAddTemplateDialog = false;\n @State() private editingTemplate?: QuickMessageTemplateModel;\n @State() private dialogMode: TemplateSelectionMode = 'create';\n @State() private isLoading = false;\n @State() private isLoadingMore = false;\n @State() private isSavingTemplate = false;\n @State() private deletingTemplateId?: string;\n @State() private templatePendingDelete?: QuickMessageTemplateModel;\n @State() private totalTemplates = 0;\n @State() private totalPages = 0;\n\n private page = 1;\n private readonly pageSize = 10;\n private readonly loadMoreThreshold = 160;\n private currentSearch = '';\n private scrollContainer?: HTMLDivElement;\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) sendTemplate!: EventEmitter<QuickMessageTemplateModel>;\n\n componentWillLoad() {\n this.syncTemplatesFromProp(this.value);\n }\n\n async componentDidLoad() {\n await this.fetchTemplates({ reset: true });\n }\n\n componentDidRender() {\n this.autoLoadMoreIfNeeded();\n }\n\n @Watch('value')\n protected handleValueChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.syncTemplatesFromProp(newValue);\n }\n\n private syncTemplatesFromProp(value?: string | QuickMessageTemplateModel[]) {\n if (value === undefined || value === null) {\n this.setTemplates([], false);\n return;\n }\n\n const parsed = this.parseTemplateValue(value);\n this.setTemplates(parsed, false);\n }\n\n private mergeWithExistingState(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (this.templates.length === 0) {\n return fetched;\n }\n\n const expandedMap = new Map(this.templates.map(template => [template.id, template.isExpanded ?? false]));\n\n return fetched.map(template => ({\n ...template,\n isExpanded: expandedMap.get(template.id) ?? template.isExpanded ?? false,\n }));\n }\n\n private appendTemplates(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (fetched.length === 0) {\n return [...this.templates];\n }\n\n const next = [...this.templates];\n const indexMap = new Map(next.map((template, index) => [template.id, index]));\n\n fetched.forEach(template => {\n const existingIndex = indexMap.get(template.id);\n if (existingIndex !== undefined) {\n next[existingIndex] = {\n ...template,\n isExpanded: next[existingIndex].isExpanded ?? false,\n };\n return;\n }\n\n next.push({ ...template, isExpanded: template.isExpanded ?? false });\n indexMap.set(template.id, next.length - 1);\n });\n\n return next;\n }\n\n private async fetchTemplates({ search, reset = true }: { search?: string; reset?: boolean } = {}) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n return;\n }\n\n if (reset ? this.isLoading : this.isLoadingMore) {\n return;\n }\n\n const normalizedSearch = search !== undefined ? search : this.currentSearch;\n const trimmedSearch = normalizedSearch?.trim() ?? '';\n const nextPage = reset ? 1 : this.page + 1;\n\n if (search !== undefined) {\n this.searchTemplate = normalizedSearch ?? '';\n }\n\n if (reset) {\n this.isLoading = true;\n } else {\n this.isLoadingMore = true;\n }\n\n try {\n const response = await getQuickMessageTemplates({\n search: trimmedSearch ? trimmedSearch : undefined,\n page: nextPage,\n limit: this.pageSize,\n });\n\n const normalized = this.cloneTemplates(response.templates || []);\n const nextTemplates = reset ? this.mergeWithExistingState(normalized) : this.appendTemplates(normalized);\n\n this.page = response.page > 0 ? response.page : nextPage;\n const resolvedTotalPages = response.total_pages > 0 ? response.total_pages : nextTemplates.length > 0 ? 1 : 0;\n this.totalPages = resolvedTotalPages;\n this.totalTemplates = response.total;\n this.currentSearch = trimmedSearch;\n\n this.setTemplates(nextTemplates);\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to fetch templates');\n } finally {\n if (reset) {\n this.isLoading = false;\n } else {\n this.isLoadingMore = false;\n }\n }\n }\n\n private async loadMoreTemplates() {\n if (this.isLoading || this.isLoadingMore) {\n return;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return;\n }\n\n await this.fetchTemplates({ reset: false });\n }\n\n private handleScroll(event: Event) {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(target);\n }\n\n private async handleSearchSubmit(event?: Event) {\n event?.preventDefault();\n await this.fetchTemplates({ search: this.searchTemplate, reset: true });\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchTemplate = value;\n\n if (!value.trim() && this.currentSearch && !this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private clearSearch() {\n if (!this.searchTemplate && !this.currentSearch) {\n return;\n }\n\n this.searchTemplate = '';\n\n if (!this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private parseTemplateValue(value: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (typeof value === 'string') {\n try {\n const deserialized = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(deserialized);\n } catch (error: unknown) {\n console.warn('[quick-message-template] Failed to parse templates value', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n };\n });\n\n return {\n ...template,\n contents: normalizedContents,\n };\n });\n }\n\n private setTemplates(next: QuickMessageTemplateModel[], shouldEmit = true) {\n this.templates = next;\n if (shouldEmit) {\n const payload = this.cloneTemplates(next);\n this.templatesChange.emit(payload);\n }\n }\n\n private canAttemptLoadMore(): boolean {\n if (this.isLoading || this.isLoadingMore) {\n return false;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return false;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return false;\n }\n\n return true;\n }\n\n private triggerLoadMoreIfNeeded(container: HTMLElement) {\n if (!this.canAttemptLoadMore()) {\n return;\n }\n\n const remaining = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (remaining < this.loadMoreThreshold) {\n void this.loadMoreTemplates();\n }\n }\n\n private autoLoadMoreIfNeeded() {\n if (!this.scrollContainer) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(this.scrollContainer);\n }\n\n private toggleTemplateExpansion(id: string) {\n this.setTemplates(this.templates.map(template => (template.id === id ? { ...template, isExpanded: !template.isExpanded } : template)));\n }\n\n private filterTemplates(): QuickMessageTemplateModel[] {\n const search = this.currentSearch.trim().toLowerCase();\n if (!search) return this.templates;\n return this.templates.filter(template => template.title.toLowerCase().includes(search));\n }\n\n private handleTemplateAction(template: QuickMessageTemplateModel, mode: TemplateSelectionMode) {\n if (mode === 'create' || mode === 'edit' || mode === 'edit-send') {\n this.openTemplateDialog(template, mode);\n return;\n }\n if (mode === 'send') {\n const clonedTemplate: QuickMessageTemplateModel = {\n ...template,\n contents: (template.contents || []).map(content => ({\n ...content,\n buttons: [...(content.buttons || [])],\n menu_list: (content.menu_list || []).map(menu => ({\n ...menu,\n buttons: [...(menu.buttons || [])],\n })),\n })),\n };\n\n const processedTemplate = this.processTemplate(clonedTemplate);\n\n this.closeTemplateDialog();\n this.handleClose?.();\n this.sendTemplate.emit(processedTemplate);\n }\n }\n\n private renderTemplateContent(content: QuickMessageTemplateContent, theme: string) {\n switch (content.type) {\n case 'text':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class={`z-text-${theme} whitespace-pre-line text-sm leading-relaxed`}>{content.text}</p>\n </div>\n );\n case 'button':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class={`z-text-${theme} whitespace-pre-line text-sm leading-relaxed`}>{content.text}</p>\n <div class=\"flex flex-col gap-1.5\">\n {content.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {content.buttons.map(button => (\n <div\n class={`flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm z-background-primary-${theme} truncate`}\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n case 'image':\n return <div class=\"flex flex-wrap gap-3\">{content.file_url && this.renderImageMedia(content.file_url, theme)}</div>;\n case 'menu_list':\n return (\n <div class=\"flex gap-3 overflow-x-auto pb-1\">\n {content.menu_list.map(menu => (\n <div class={`flex w-[240px] shrink-0 flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm z-border-primary-${theme} z-background-${theme}`} key={menu.id}>\n <div class={`relative h-[160px] border-b-[1.5px] z-border-primary-${theme} overflow-hidden`}>\n {menu.file_url ? (\n <img src={menu.file_url} alt={menu.title} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n ) : (\n <div class={`flex h-full w-full items-center justify-center z-background-${theme} z-text-gray-${theme} opacity-60`}>\n <Icon name=\"Image\" addClass=\"size-10\" />\n </div>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-4 py-4\">\n {menu.title && <div class=\"text-sm font-semibold leading-snug\">{menu.title}</div>}\n {menu.description && <div class={`text-xs leading-snug z-text-gray-${theme}`}>{menu.description}</div>}\n\n {menu.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {menu.buttons.map(button => (\n <div\n class={`flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm z-background-primary-${theme}`}\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n case 'video':\n return (\n <video src={content.file_url} class=\"h-[220px] object-cover rounded-xl\" controls>\n <track kind=\"captions\" src=\"\" label=\"English\" />\n </video>\n );\n default:\n return null;\n }\n }\n\n private renderImageMedia(fileUrl: string, theme: string) {\n return <img src={fileUrl} alt=\"\" class={`h-[200px] w-[200px] rounded-xl border object-cover z-border-${theme}`} loading=\"lazy\" />;\n }\n\n private closeTemplateDialog() {\n this.showAddTemplateDialog = false;\n this.editingTemplate = undefined;\n this.dialogMode = 'edit';\n this.isSavingTemplate = false;\n }\n\n private openTemplateDialog(template?: QuickMessageTemplateModel, mode: TemplateSelectionMode = 'edit') {\n this.editingTemplate = template ? { ...template } : undefined;\n this.dialogMode = mode;\n this.showAddTemplateDialog = true;\n this.isSavingTemplate = false;\n }\n\n private processTemplate(template: QuickMessageTemplateModel) {\n // remove empty menuList\n template.contents = template.contents.map(content => {\n if (content.type === 'menu_list') {\n content.menu_list = content.menu_list.filter(menu => menu.buttons.length > 0 || menu.file_url || menu.title || menu.description);\n }\n return content;\n });\n\n // remove empty content\n template.contents = template.contents.filter(content => content.text || content.buttons.length > 0 || content.file_url || content.menu_list.length > 0);\n\n return template;\n }\n\n private upsertTemplate(template: QuickMessageTemplateModel, { closeDialog = true }: { closeDialog?: boolean } = {}) {\n const withMeta: QuickMessageTemplateModel = {\n ...template,\n isExpanded: this.editingTemplate?.id === template.id ? this.editingTemplate.isExpanded : true,\n };\n\n const exists = this.templates.some(item => item.id === withMeta.id);\n const nextTemplates = exists ? this.templates.map(item => (item.id === withMeta.id ? withMeta : item)) : [...this.templates, withMeta];\n\n this.setTemplates(nextTemplates);\n\n if (closeDialog) {\n this.closeTemplateDialog();\n }\n }\n\n private async handleTemplateSave(template: QuickMessageTemplateModel) {\n if (this.isSavingTemplate) {\n return;\n }\n\n const cloned = this.cloneTemplates([template]);\n const workingTemplate = cloned[0];\n if (!workingTemplate) {\n return;\n }\n\n const processedTemplate = this.processTemplate(workingTemplate);\n const isNewTemplate = !processedTemplate.id || processedTemplate.id.startsWith('template-');\n\n if (!isNewTemplate) {\n try {\n this.isSavingTemplate = true;\n const updated = await updateQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([updated]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to update template');\n } finally {\n this.isSavingTemplate = false;\n }\n return;\n }\n\n try {\n this.isSavingTemplate = true;\n const created = await createQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([created]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to create template');\n } finally {\n this.isSavingTemplate = false;\n }\n }\n\n private requestDeleteTemplate(template: QuickMessageTemplateModel) {\n if (!template?.id || this.deletingTemplateId) {\n return;\n }\n\n this.templatePendingDelete = template;\n const t = useTranslation();\n const title = t('quick_message.delete_template_title');\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.WARNING,\n title,\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog: () => {\n this.confirmDeleteTemplate();\n },\n onCloseDialog: () => {\n this.templatePendingDelete = undefined;\n },\n });\n }\n\n private async confirmDeleteTemplate() {\n const template = this.templatePendingDelete;\n if (!template?.id || this.deletingTemplateId) {\n this.templatePendingDelete = undefined;\n return;\n }\n\n this.deletingTemplateId = template.id;\n this.templatePendingDelete = undefined;\n\n try {\n await deleteQuickMessageTemplate(template.id);\n const remaining = this.templates.filter(item => item.id !== template.id);\n this.setTemplates(remaining);\n this.totalTemplates = Math.max(0, this.totalTemplates - 1);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to delete template');\n } finally {\n this.deletingTemplateId = undefined;\n }\n }\n\n render() {\n const theme = configStore.get('theme');\n const t = useTranslation();\n const filteredTemplates = this.filterTemplates();\n const showBottomSpinner = (this.isLoading && filteredTemplates.length > 0) || this.isLoadingMore;\n\n return (\n <Host class=\"relative flex min-h-0 flex-1 flex-col gap-2\">\n <form class=\"relative w-full\" onSubmit={event => this.handleSearchSubmit(event)}>\n <input\n type=\"text\"\n class={`w-full border z-border-divider-${theme} text-sm px-4 py-2 rounded-lg ring-primary focus:outline-none focus:border-primary z-background-${theme} z-text-${theme}`}\n placeholder={t('quick_message.search_template')}\n value={this.searchTemplate}\n onInput={event => this.handleSearchInput(event)}\n autoComplete=\"off\"\n />\n {this.searchTemplate && (\n <button type=\"button\" class=\"absolute inset-y-0 right-3 flex items-center text-xs opacity-70 transition-opacity hover:opacity-100\" onClick={() => this.clearSearch()}>\n <Icon name=\"X\" addClass=\"size-4\" />\n </button>\n )}\n </form>\n\n <div class=\"flex items-center gap-2\">\n <div class={`inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold text-white z-background-primary-${theme}`}>ZIGNAL</div>\n <div class={`inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold z-text-primary-${theme} border z-border-primary-${theme}`}>ZWIZ.AI</div>\n </div>\n\n <div\n class=\"flex flex-1 flex-col gap-3 overflow-y-auto\"\n ref={el => {\n this.scrollContainer = el ? (el as HTMLDivElement) : undefined;\n }}\n onScroll={event => this.handleScroll(event)}\n >\n <button\n class={`inline-flex items-center justify-center gap-2 rounded-xl border-[1.5px] border-dashed px-4 py-2 z-text-primary-${theme} cursor-pointer`}\n type=\"button\"\n onClick={() => this.openTemplateDialog(undefined, 'create')}\n >\n <Icon name=\"Plus\" addClass=\"size-4\" />\n <span class=\"text-sm\">{t('quick_message.add_template')}</span>\n </button>\n\n {this.isLoading && filteredTemplates.length === 0 ? (\n <div class=\"flex flex-1 items-center justify-center py-10 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-6 animate-spin\" />\n </div>\n ) : (\n <div class=\"flex flex-col gap-3\">\n {filteredTemplates.length === 0 && <div class=\"py-10 text-center text-sm text-slate-500\">{t('quick_message.template_empty')}</div>}\n\n {filteredTemplates.map(template => {\n const lastUpdatedAt = template.last_updated_at || template.created_at || new Date();\n const formattedDate = dayjs(lastUpdatedAt).tz().format('DD/MM/YYYY HH:mm');\n const rawLastUpdatedBy = template.last_updated_by ?? template.created_by ?? '';\n const displayUpdatedBy = typeof rawLastUpdatedBy === 'string' && rawLastUpdatedBy.trim().length > 0 ? rawLastUpdatedBy : '-';\n\n return (\n <div\n class={`quick-message-template__card z-border-primary-${theme} rounded-2xl border-[1.5px] px-4 py-4 shadow-[0_8px_24px_rgba(15,23,42,0.08)]`}\n key={template.id}\n >\n <div class=\"flex flex-col sm:flex-row items-start gap-3 sm:min-w-0\">\n <div class=\"flex-1 flex flex-col gap-1.5 w-full overflow-hidden\">\n <div class=\"text-base font-semibold truncate\" title={template.title}>\n {template.title}\n </div>\n <div class={`text-[11px] z-text-gray-${theme}`}>{t('quick_message.updated_at').replace('{date}', formattedDate).replace('{by}', displayUpdatedBy)}</div>\n </div>\n <div class=\"flex gap-4 flex-row items-center self-end\">\n {this.isMaster && <button type=\"button\" onClick={() => this.handleTemplateAction(template, 'edit')} aria-label={t('edit')}>\n <Icon name=\"Pencil\" addClass={`size-4 cursor-pointer z-text-primary-${theme}`} />\n </button>}\n {this.isMaster && <button\n type=\"button\"\n aria-label={t('delete')}\n onClick={() => this.requestDeleteTemplate(template)}\n disabled={Boolean(this.deletingTemplateId)}\n class={`${this.deletingTemplateId ? 'opacity-60 cursor-not-allowed' : 'cursor-pointer'}`}\n >\n {this.deletingTemplateId === template.id ? (\n <Icon name=\"Loader2\" addClass={`size-4 animate-spin z-text-primary-${theme}`} />\n ) : (\n <Icon name=\"Trash2\" addClass={`size-4 z-text-primary-${theme}`} />\n )}\n </button>}\n {!this.isMaster && (\n <button\n type=\"button\"\n class={`inline-flex items-center justify-center rounded-full border px-4 py-2 text-xs font-semibold cursor-pointer z-border-primary-${theme} z-text-primary-${theme}`}\n onClick={() => this.handleTemplateAction(template, 'edit-send')}\n >\n {t('quick_message.edit_before_send')}\n </button>\n )}\n {!this.isMaster && (\n <button\n type=\"button\"\n class={`inline-flex items-center justify-center rounded-full px-4 py-2 text-xs font-semibold text-white cursor-pointer z-background-primary-${theme}`}\n onClick={() => this.handleTemplateAction(template, 'send')}\n >\n {t('quick_message.send_now')}\n </button>\n )}\n <button\n type=\"button\"\n class=\"quick-message-template__toggle inline-flex h-9 w-9 items-center justify-center rounded-full cursor-pointer\"\n onClick={() => this.toggleTemplateExpansion(template.id)}\n >\n <Icon name={template.isExpanded ? 'ChevronUp' : 'ChevronDown'} />\n </button>\n </div>\n </div>\n {template.isExpanded && (\n <div class=\"mt-4 flex flex-col gap-2\">\n {template.contents.map(content => (\n <div key={content.id} class={`border z-border-${theme} rounded-xl p-4`}>\n {this.renderTemplateContent(content, theme)}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n {showBottomSpinner && (\n <div class=\"flex justify-center py-4 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-5 animate-spin\" />\n </div>\n )}\n </div>\n\n {this.showAddTemplateDialog && (\n <quick-message-add-template\n handleClose={() => this.closeTemplateDialog()}\n handleSave={template => this.handleTemplateSave(template)}\n handleSend={template => this.handleTemplateAction(template, 'send')}\n initialTemplate={this.editingTemplate}\n mode={this.dialogMode}\n isSaving={this.isSavingTemplate}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-BfwDQevk.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","showErrorDialog"],"sources":["src/components/quick-message-template/quick-message-template.css?tag=quick-message-template","src/components/quick-message-template/quick-message-template.tsx"],"sourcesContent":[".quick-message-template__card {\n box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);\n}\n\n.quick-message-template__button-action {\n color: var(--quick-modal-primary);\n}\n\n.quick-message-template__toggle {\n border: 1px solid rgba(148, 163, 184, 0.4);\n}\n\n.quick-message-template__dialog-overlay {\n position: absolute;\n inset: 0;\n background: rgba(15, 23, 42, 0.35);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 70;\n padding: 16px;\n}\n\n.quick-message-template__dialog {\n width: min(440px, 100%);\n border-radius: 16px;\n box-shadow: 0 20px 45px rgba(17, 24, 39, 0.22);\n border: 1px solid rgba(148, 163, 184, 0.25);\n display: flex;\n flex-direction: column;\n max-height: min(440px, 100%);\n}\n\n.quick-message-template__dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 18px 20px 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.28);\n}\n\n.quick-message-template__dialog-header h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 0;\n}\n\n.quick-message-template__dialog-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9999px;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px 20px;\n overflow-y: auto;\n}\n\n.quick-message-template__input,\n.quick-message-template__textarea {\n border-radius: 12px;\n border-width: 1px;\n padding: 10px 14px;\n font-size: 14px;\n resize: none;\n}\n\n.quick-message-template__textarea {\n min-height: 100px;\n}\n\n.quick-message-template__dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px 20px;\n border-top: 1px solid rgba(148, 163, 184, 0.18);\n}\n\n.quick-message-template__dialog-button {\n border-radius: 9999px;\n font-weight: 600;\n font-size: 13px;\n padding: 10px 18px;\n border: none;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-button--ghost {\n background: transparent;\n color: rgba(100, 116, 139, 1);\n}\n\n.quick-message-template__dialog-button--primary {\n background: var(--quick-modal-primary);\n color: #fff;\n box-shadow: 0 10px 25px var(--quick-modal-primary-shadow);\n}\n\n.quick-message-template__dialog-button--primary:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n box-shadow: none;\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport dayjs from 'dayjs';\nimport { createQuickMessageTemplate, deleteQuickMessageTemplate, getQuickMessageTemplates, updateQuickMessageTemplate } from '../../api/quick-message';\nimport { QuickMessageTemplate as QuickMessageTemplateModel, QuickMessageTemplateContent } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport type { TemplateSelectionMode } from '../quick-message-modal/template-selection';\nimport { DIALOG_TYPE, openDialog, handleError as showErrorDialog } from '../../store/dialog';\n\n@Component({\n tag: 'quick-message-template',\n styleUrl: 'quick-message-template.css',\n})\nexport class QuickMessageTemplateComponent {\n @Prop() handleClose?: () => void;\n @Prop() value?: string | QuickMessageTemplateModel[];\n @Prop() isMaster: boolean = false;\n\n @State() private searchTemplate = '';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private showAddTemplateDialog = false;\n @State() private editingTemplate?: QuickMessageTemplateModel;\n @State() private dialogMode: TemplateSelectionMode = 'create';\n @State() private isLoading = false;\n @State() private isLoadingMore = false;\n @State() private isSavingTemplate = false;\n @State() private deletingTemplateId?: string;\n @State() private templatePendingDelete?: QuickMessageTemplateModel;\n @State() private totalTemplates = 0;\n @State() private totalPages = 0;\n\n private page = 1;\n private readonly pageSize = 10;\n private readonly loadMoreThreshold = 160;\n private currentSearch = '';\n private scrollContainer?: HTMLDivElement;\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) sendTemplate!: EventEmitter<QuickMessageTemplateModel>;\n\n componentWillLoad() {\n this.syncTemplatesFromProp(this.value);\n }\n\n async componentDidLoad() {\n await this.fetchTemplates({ reset: true });\n }\n\n componentDidRender() {\n this.autoLoadMoreIfNeeded();\n }\n\n @Watch('value')\n protected handleValueChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.syncTemplatesFromProp(newValue);\n }\n\n private syncTemplatesFromProp(value?: string | QuickMessageTemplateModel[]) {\n if (value === undefined || value === null) {\n this.setTemplates([], false);\n return;\n }\n\n const parsed = this.parseTemplateValue(value);\n this.setTemplates(parsed, false);\n }\n\n private mergeWithExistingState(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (this.templates.length === 0) {\n return fetched;\n }\n\n const expandedMap = new Map(this.templates.map(template => [template.id, template.isExpanded ?? false]));\n\n return fetched.map(template => ({\n ...template,\n isExpanded: expandedMap.get(template.id) ?? template.isExpanded ?? false,\n }));\n }\n\n private appendTemplates(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (fetched.length === 0) {\n return [...this.templates];\n }\n\n const next = [...this.templates];\n const indexMap = new Map(next.map((template, index) => [template.id, index]));\n\n fetched.forEach(template => {\n const existingIndex = indexMap.get(template.id);\n if (existingIndex !== undefined) {\n next[existingIndex] = {\n ...template,\n isExpanded: next[existingIndex].isExpanded ?? false,\n };\n return;\n }\n\n next.push({ ...template, isExpanded: template.isExpanded ?? false });\n indexMap.set(template.id, next.length - 1);\n });\n\n return next;\n }\n\n private async fetchTemplates({ search, reset = true }: { search?: string; reset?: boolean } = {}) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n return;\n }\n\n if (reset ? this.isLoading : this.isLoadingMore) {\n return;\n }\n\n const normalizedSearch = search !== undefined ? search : this.currentSearch;\n const trimmedSearch = normalizedSearch?.trim() ?? '';\n const nextPage = reset ? 1 : this.page + 1;\n\n if (search !== undefined) {\n this.searchTemplate = normalizedSearch ?? '';\n }\n\n if (reset) {\n this.isLoading = true;\n } else {\n this.isLoadingMore = true;\n }\n\n try {\n const response = await getQuickMessageTemplates({\n search: trimmedSearch ? trimmedSearch : undefined,\n page: nextPage,\n limit: this.pageSize,\n });\n\n const normalized = this.cloneTemplates(response.templates || []);\n const nextTemplates = reset ? this.mergeWithExistingState(normalized) : this.appendTemplates(normalized);\n\n this.page = response.page > 0 ? response.page : nextPage;\n const resolvedTotalPages = response.total_pages > 0 ? response.total_pages : nextTemplates.length > 0 ? 1 : 0;\n this.totalPages = resolvedTotalPages;\n this.totalTemplates = response.total;\n this.currentSearch = trimmedSearch;\n\n this.setTemplates(nextTemplates);\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to fetch templates');\n } finally {\n if (reset) {\n this.isLoading = false;\n } else {\n this.isLoadingMore = false;\n }\n }\n }\n\n private async loadMoreTemplates() {\n if (this.isLoading || this.isLoadingMore) {\n return;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return;\n }\n\n await this.fetchTemplates({ reset: false });\n }\n\n private handleScroll(event: Event) {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(target);\n }\n\n private async handleSearchSubmit(event?: Event) {\n event?.preventDefault();\n await this.fetchTemplates({ search: this.searchTemplate, reset: true });\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchTemplate = value;\n\n if (!value.trim() && this.currentSearch && !this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private clearSearch() {\n if (!this.searchTemplate && !this.currentSearch) {\n return;\n }\n\n this.searchTemplate = '';\n\n if (!this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private parseTemplateValue(value: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (typeof value === 'string') {\n try {\n const deserialized = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(deserialized);\n } catch (error: unknown) {\n console.warn('[quick-message-template] Failed to parse templates value', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n };\n });\n\n return {\n ...template,\n contents: normalizedContents,\n };\n });\n }\n\n private setTemplates(next: QuickMessageTemplateModel[], shouldEmit = true) {\n this.templates = next;\n if (shouldEmit) {\n const payload = this.cloneTemplates(next);\n this.templatesChange.emit(payload);\n }\n }\n\n private canAttemptLoadMore(): boolean {\n if (this.isLoading || this.isLoadingMore) {\n return false;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return false;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return false;\n }\n\n return true;\n }\n\n private triggerLoadMoreIfNeeded(container: HTMLElement) {\n if (!this.canAttemptLoadMore()) {\n return;\n }\n\n const remaining = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (remaining < this.loadMoreThreshold) {\n void this.loadMoreTemplates();\n }\n }\n\n private autoLoadMoreIfNeeded() {\n if (!this.scrollContainer) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(this.scrollContainer);\n }\n\n private toggleTemplateExpansion(id: string) {\n this.setTemplates(this.templates.map(template => (template.id === id ? { ...template, isExpanded: !template.isExpanded } : template)));\n }\n\n private filterTemplates(): QuickMessageTemplateModel[] {\n const search = this.currentSearch.trim().toLowerCase();\n if (!search) return this.templates;\n return this.templates.filter(template => template.title.toLowerCase().includes(search));\n }\n\n private handleTemplateAction(template: QuickMessageTemplateModel, mode: TemplateSelectionMode) {\n if (mode === 'create' || mode === 'edit' || mode === 'edit-send') {\n this.openTemplateDialog(template, mode);\n return;\n }\n if (mode === 'send') {\n const clonedTemplate: QuickMessageTemplateModel = {\n ...template,\n contents: (template.contents || []).map(content => ({\n ...content,\n buttons: [...(content.buttons || [])],\n menu_list: (content.menu_list || []).map(menu => ({\n ...menu,\n buttons: [...(menu.buttons || [])],\n })),\n })),\n };\n\n const processedTemplate = this.processTemplate(clonedTemplate);\n\n this.closeTemplateDialog();\n this.handleClose?.();\n this.sendTemplate.emit(processedTemplate);\n }\n }\n\n private renderTemplateContent(content: QuickMessageTemplateContent, theme: string) {\n switch (content.type) {\n case 'text':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class={`z-text-${theme} whitespace-pre-line text-sm leading-relaxed`}>{content.text}</p>\n </div>\n );\n case 'button':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class={`z-text-${theme} whitespace-pre-line text-sm leading-relaxed`}>{content.text}</p>\n <div class=\"flex flex-col gap-1.5\">\n {content.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {content.buttons.map(button => (\n <div\n class={`flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm z-background-primary-${theme} truncate`}\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n case 'image':\n return <div class=\"flex flex-wrap gap-3\">{content.file_url && this.renderImageMedia(content.file_url, theme)}</div>;\n case 'menu_list':\n return (\n <div class=\"flex gap-3 overflow-x-auto pb-1\">\n {content.menu_list.map(menu => (\n <div class={`flex w-[240px] shrink-0 flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm z-border-primary-${theme} z-background-${theme}`} key={menu.id}>\n <div class={`relative h-[160px] border-b-[1.5px] z-border-primary-${theme} overflow-hidden`}>\n {menu.file_url ? (\n <img src={menu.file_url} alt={menu.title} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n ) : (\n <div class={`flex h-full w-full items-center justify-center z-background-${theme} z-text-gray-${theme} opacity-60`}>\n <Icon name=\"Image\" addClass=\"size-10\" />\n </div>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-4 py-4\">\n {menu.title && <div class=\"text-sm font-semibold leading-snug\">{menu.title}</div>}\n {menu.description && <div class={`text-xs leading-snug z-text-gray-${theme}`}>{menu.description}</div>}\n\n {menu.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {menu.buttons.map(button => (\n <div\n class={`flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm z-background-primary-${theme}`}\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n case 'video':\n return (\n <video src={content.file_url} class=\"h-[220px] object-cover rounded-xl\" controls>\n <track kind=\"captions\" src=\"\" label=\"English\" />\n </video>\n );\n default:\n return null;\n }\n }\n\n private renderImageMedia(fileUrl: string, theme: string) {\n return <img src={fileUrl} alt=\"\" class={`h-[200px] w-[200px] rounded-xl border object-cover z-border-${theme}`} loading=\"lazy\" />;\n }\n\n private closeTemplateDialog() {\n this.showAddTemplateDialog = false;\n this.editingTemplate = undefined;\n this.dialogMode = 'edit';\n this.isSavingTemplate = false;\n }\n\n private openTemplateDialog(template?: QuickMessageTemplateModel, mode: TemplateSelectionMode = 'edit') {\n this.editingTemplate = template ? { ...template } : undefined;\n this.dialogMode = mode;\n this.showAddTemplateDialog = true;\n this.isSavingTemplate = false;\n }\n\n private processTemplate(template: QuickMessageTemplateModel) {\n // remove empty menuList\n template.contents = template.contents.map(content => {\n if (content.type === 'menu_list') {\n content.menu_list = content.menu_list.filter(menu => menu.buttons.length > 0 || menu.file_url || menu.title || menu.description);\n }\n return content;\n });\n\n // remove empty content\n template.contents = template.contents.filter(content => content.text || content.buttons.length > 0 || content.file_url || content.menu_list.length > 0);\n\n return template;\n }\n\n private upsertTemplate(template: QuickMessageTemplateModel, { closeDialog = true }: { closeDialog?: boolean } = {}) {\n const withMeta: QuickMessageTemplateModel = {\n ...template,\n isExpanded: this.editingTemplate?.id === template.id ? this.editingTemplate.isExpanded : true,\n };\n\n const exists = this.templates.some(item => item.id === withMeta.id);\n const nextTemplates = exists ? this.templates.map(item => (item.id === withMeta.id ? withMeta : item)) : [...this.templates, withMeta];\n\n this.setTemplates(nextTemplates);\n\n if (closeDialog) {\n this.closeTemplateDialog();\n }\n }\n\n private async handleTemplateSave(template: QuickMessageTemplateModel) {\n if (this.isSavingTemplate) {\n return;\n }\n\n const cloned = this.cloneTemplates([template]);\n const workingTemplate = cloned[0];\n if (!workingTemplate) {\n return;\n }\n\n const processedTemplate = this.processTemplate(workingTemplate);\n const isNewTemplate = !processedTemplate.id || processedTemplate.id.startsWith('template-');\n\n if (!isNewTemplate) {\n try {\n this.isSavingTemplate = true;\n const updated = await updateQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([updated]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to update template');\n } finally {\n this.isSavingTemplate = false;\n }\n return;\n }\n\n try {\n this.isSavingTemplate = true;\n const created = await createQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([created]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to create template');\n } finally {\n this.isSavingTemplate = false;\n }\n }\n\n private requestDeleteTemplate(template: QuickMessageTemplateModel) {\n if (!template?.id || this.deletingTemplateId) {\n return;\n }\n\n this.templatePendingDelete = template;\n const t = useTranslation();\n const title = t('quick_message.delete_template_title');\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.WARNING,\n title,\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog: () => {\n this.confirmDeleteTemplate();\n },\n onCloseDialog: () => {\n this.templatePendingDelete = undefined;\n },\n });\n }\n\n private async confirmDeleteTemplate() {\n const template = this.templatePendingDelete;\n if (!template?.id || this.deletingTemplateId) {\n this.templatePendingDelete = undefined;\n return;\n }\n\n this.deletingTemplateId = template.id;\n this.templatePendingDelete = undefined;\n\n try {\n await deleteQuickMessageTemplate(template.id);\n const remaining = this.templates.filter(item => item.id !== template.id);\n this.setTemplates(remaining);\n this.totalTemplates = Math.max(0, this.totalTemplates - 1);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to delete template');\n } finally {\n this.deletingTemplateId = undefined;\n }\n }\n\n render() {\n const theme = configStore.get('theme');\n const t = useTranslation();\n const filteredTemplates = this.filterTemplates();\n const showBottomSpinner = (this.isLoading && filteredTemplates.length > 0) || this.isLoadingMore;\n\n return (\n <Host class=\"relative flex min-h-0 flex-1 flex-col gap-2\">\n <form class=\"relative w-full\" onSubmit={event => this.handleSearchSubmit(event)}>\n <input\n type=\"text\"\n class={`w-full border z-border-divider-${theme} text-sm px-4 py-2 rounded-lg ring-primary focus:outline-none focus:border-primary z-background-${theme} z-text-${theme}`}\n placeholder={t('quick_message.search_template')}\n value={this.searchTemplate}\n onInput={event => this.handleSearchInput(event)}\n autoComplete=\"off\"\n />\n {this.searchTemplate && (\n <button type=\"button\" class=\"absolute inset-y-0 right-3 flex items-center text-xs opacity-70 transition-opacity hover:opacity-100\" onClick={() => this.clearSearch()}>\n <Icon name=\"X\" addClass=\"size-4\" />\n </button>\n )}\n </form>\n\n <div class=\"flex items-center gap-2\">\n <div class={`inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold text-white z-background-primary-${theme}`}>ZIGNAL</div>\n <div class={`inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold z-text-primary-${theme} border z-border-primary-${theme}`}>ZWIZ.AI</div>\n </div>\n\n <div\n class=\"flex flex-1 flex-col gap-3 overflow-y-auto\"\n ref={el => {\n this.scrollContainer = el ? (el as HTMLDivElement) : undefined;\n }}\n onScroll={event => this.handleScroll(event)}\n >\n <button\n class={`inline-flex items-center justify-center gap-2 rounded-xl border-[1.5px] border-dashed px-4 py-2 z-text-primary-${theme} cursor-pointer`}\n type=\"button\"\n onClick={() => this.openTemplateDialog(undefined, 'create')}\n >\n <Icon name=\"Plus\" addClass=\"size-4\" />\n <span class=\"text-sm\">{t('quick_message.add_template')}</span>\n </button>\n\n {this.isLoading && filteredTemplates.length === 0 ? (\n <div class=\"flex flex-1 items-center justify-center py-10 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-6 animate-spin\" />\n </div>\n ) : (\n <div class=\"flex flex-col gap-3\">\n {filteredTemplates.length === 0 && <div class=\"py-10 text-center text-sm text-slate-500\">{t('quick_message.template_empty')}</div>}\n\n {filteredTemplates.map(template => {\n const lastUpdatedAt = template.last_updated_at || template.created_at || new Date();\n const formattedDate = dayjs(lastUpdatedAt).tz().format('DD/MM/YYYY HH:mm');\n const rawLastUpdatedBy = template.last_updated_by ?? template.created_by ?? '';\n const displayUpdatedBy = typeof rawLastUpdatedBy === 'string' && rawLastUpdatedBy.trim().length > 0 ? rawLastUpdatedBy : '-';\n\n return (\n <div\n class={`quick-message-template__card z-border-primary-${theme} rounded-2xl border-[1.5px] px-4 py-4 shadow-[0_8px_24px_rgba(15,23,42,0.08)]`}\n key={template.id}\n >\n <div class=\"flex flex-col sm:flex-row items-start gap-3 sm:min-w-0\">\n <div class=\"flex-1 flex flex-col gap-1.5 w-full overflow-hidden\">\n <div class=\"text-base font-semibold truncate\" title={template.title}>\n {template.title}\n </div>\n <div class={`text-[11px] z-text-gray-${theme}`}>{t('quick_message.updated_at').replace('{date}', formattedDate).replace('{by}', displayUpdatedBy)}</div>\n </div>\n <div class=\"flex gap-4 flex-row items-center self-end\">\n {this.isMaster && <button type=\"button\" onClick={() => this.handleTemplateAction(template, 'edit')} aria-label={t('edit')}>\n <Icon name=\"Pencil\" addClass={`size-4 cursor-pointer z-text-primary-${theme}`} />\n </button>}\n {this.isMaster && <button\n type=\"button\"\n aria-label={t('delete')}\n onClick={() => this.requestDeleteTemplate(template)}\n disabled={Boolean(this.deletingTemplateId)}\n class={`${this.deletingTemplateId ? 'opacity-60 cursor-not-allowed' : 'cursor-pointer'}`}\n >\n {this.deletingTemplateId === template.id ? (\n <Icon name=\"Loader2\" addClass={`size-4 animate-spin z-text-primary-${theme}`} />\n ) : (\n <Icon name=\"Trash2\" addClass={`size-4 z-text-primary-${theme}`} />\n )}\n </button>}\n {!this.isMaster && (\n <button\n type=\"button\"\n class={`inline-flex items-center justify-center rounded-full border px-4 py-2 text-xs font-semibold cursor-pointer z-border-primary-${theme} z-text-primary-${theme}`}\n onClick={() => this.handleTemplateAction(template, 'edit-send')}\n >\n {t('quick_message.edit_before_send')}\n </button>\n )}\n {!this.isMaster && (\n <button\n type=\"button\"\n class={`inline-flex items-center justify-center rounded-full px-4 py-2 text-xs font-semibold text-white cursor-pointer z-background-primary-${theme}`}\n onClick={() => this.handleTemplateAction(template, 'send')}\n >\n {t('quick_message.send_now')}\n </button>\n )}\n <button\n type=\"button\"\n class=\"quick-message-template__toggle inline-flex h-9 w-9 items-center justify-center rounded-full cursor-pointer\"\n onClick={() => this.toggleTemplateExpansion(template.id)}\n >\n <Icon name={template.isExpanded ? 'ChevronUp' : 'ChevronDown'} />\n </button>\n </div>\n </div>\n {template.isExpanded && (\n <div class=\"mt-4 flex flex-col gap-2\">\n {template.contents.map(content => (\n <div key={content.id} class={`border z-border-${theme} rounded-xl p-4`}>\n {this.renderTemplateContent(content, theme)}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n {showBottomSpinner && (\n <div class=\"flex justify-center py-4 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-5 animate-spin\" />\n </div>\n )}\n </div>\n\n {this.showAddTemplateDialog && (\n <quick-message-add-template\n handleClose={() => this.closeTemplateDialog()}\n handleSave={template => this.handleTemplateSave(template)}\n handleSend={template => this.handleTemplateAction(template, 'send')}\n initialTemplate={this.editingTemplate}\n mode={this.dialogMode}\n isSaving={this.isSavingTemplate}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}