zignal-stencil-library 1.1.198 → 1.1.199

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 (238) hide show
  1. package/dist/cjs/{autocomplete-address_45.cjs.entry.js → autocomplete-address_46.cjs.entry.js} +3976 -3912
  2. package/dist/cjs/create-master-data-dialog_2.cjs.entry.js +6 -6
  3. package/dist/cjs/{icon-svg-DrwTEcWs.js → icon-svg-NY7PxBdm.js} +5 -3
  4. package/dist/{esm/icon-svg-D46sQeCq.js.map → cjs/icon-svg-NY7PxBdm.js.map} +1 -1
  5. package/dist/cjs/{index-Ch26praa.js → index-CpQeT2f6.js} +16 -4
  6. package/dist/cjs/{index-Ch26praa.js.map → index-CpQeT2f6.js.map} +1 -1
  7. package/dist/cjs/{index-WaqydP_w.js → index-_LoavWWU.js} +13 -3
  8. package/dist/cjs/index-_LoavWWU.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/master-status-app.cjs.entry.js +5 -5
  12. package/dist/cjs/master-tag-app.cjs.entry.js +5 -5
  13. package/dist/cjs/quick-message-app.cjs.entry.js +3 -3
  14. package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
  15. package/dist/cjs/{store-dZyyLnWf.js → store-rSE38TZG.js} +7 -3
  16. package/dist/cjs/store-rSE38TZG.js.map +1 -0
  17. package/dist/cjs/{z-input-C-0O3vNd.js → z-input-ClQdNGrO.js} +3 -3
  18. package/dist/cjs/{z-input-C-0O3vNd.js.map → z-input-ClQdNGrO.js.map} +1 -1
  19. package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
  20. package/dist/collection/api/index.js +10 -1
  21. package/dist/collection/api/index.js.map +1 -1
  22. package/dist/collection/api/type.js.map +1 -1
  23. package/dist/collection/collection-manifest.json +1 -0
  24. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  25. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  26. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  27. package/dist/collection/components/background-jobs/background-jobs.css +1 -0
  28. package/dist/collection/components/background-jobs/background-jobs.js +65 -0
  29. package/dist/collection/components/background-jobs/background-jobs.js.map +1 -0
  30. package/dist/collection/components/channel-box/channel-box.css +1 -1
  31. package/dist/collection/components/chat-app/chat-app.css +1 -1
  32. package/dist/collection/components/chat-app/chat-app.js +12 -2
  33. package/dist/collection/components/chat-app/chat-app.js.map +1 -1
  34. package/dist/collection/components/chat-header/chat-header.css +1 -1
  35. package/dist/collection/components/chat-input/chat-input.css +1 -1
  36. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  37. package/dist/collection/components/create-master-data-dialog/create-master-data-dialog.css +1 -1
  38. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  39. package/dist/collection/components/dialog-custom-filter/dialog-custom-filter.css +1 -1
  40. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  41. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  42. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  43. package/dist/collection/components/master-data-item/master-data-item.css +1 -1
  44. package/dist/collection/components/master-status-app/master-status-app.css +1 -1
  45. package/dist/collection/components/master-tag-app/master-tag-app.css +1 -1
  46. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  47. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  48. package/dist/collection/components/menu-list/menu-list.css +1 -1
  49. package/dist/collection/components/message-box/message-box.css +1 -1
  50. package/dist/collection/components/message-content/message-content.css +1 -1
  51. package/dist/collection/components/message-item/message-item.css +1 -1
  52. package/dist/collection/components/message-media/message-media.css +1 -1
  53. package/dist/collection/components/message-media/message-media.js +3 -3
  54. package/dist/collection/components/message-media/message-media.js.map +1 -1
  55. package/dist/collection/components/profile-history/profile-history.css +1 -1
  56. package/dist/collection/components/profile-info/profile-info.css +1 -1
  57. package/dist/collection/components/profile-media/profile-media.css +1 -1
  58. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  59. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  60. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  61. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  62. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  63. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  64. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  65. package/dist/collection/components/search-box/search-box.css +1 -1
  66. package/dist/collection/components/status-badge/status-badge.css +1 -1
  67. package/dist/collection/components/tag-list/tag-list.css +1 -1
  68. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  69. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  70. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  71. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  72. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  73. package/dist/collection/components/z-tooltip/z-tooltip.css +1 -1
  74. package/dist/collection/store/job.js +8 -0
  75. package/dist/collection/store/job.js.map +1 -0
  76. package/dist/collection/store/store.js +3 -0
  77. package/dist/collection/store/store.js.map +1 -1
  78. package/dist/collection/utils/{blobCache.js → blob-cache.js} +1 -1
  79. package/dist/collection/utils/blob-cache.js.map +1 -0
  80. package/dist/collection/utils/icon-svg.js +1 -0
  81. package/dist/collection/utils/icon-svg.js.map +1 -1
  82. package/dist/components/autocomplete-address2.js +2 -2
  83. package/dist/components/autocomplete-address2.js.map +1 -1
  84. package/dist/components/autocomplete-multiple-select2.js +1 -1
  85. package/dist/components/autocomplete-multiple-select2.js.map +1 -1
  86. package/dist/components/autocomplete-select2.js +1 -1
  87. package/dist/components/autocomplete-select2.js.map +1 -1
  88. package/dist/components/axios.js +1 -1
  89. package/dist/components/background-jobs.d.ts +11 -0
  90. package/dist/components/background-jobs.js +9 -0
  91. package/dist/components/background-jobs.js.map +1 -0
  92. package/dist/components/background-jobs2.js +85 -0
  93. package/dist/components/background-jobs2.js.map +1 -0
  94. package/dist/components/channel-box2.js +1 -1
  95. package/dist/components/channel-box2.js.map +1 -1
  96. package/dist/components/chat-app.js +24 -9
  97. package/dist/components/chat-app.js.map +1 -1
  98. package/dist/components/chat-header2.js +2 -2
  99. package/dist/components/chat-header2.js.map +1 -1
  100. package/dist/components/chat-input2.js +1 -1
  101. package/dist/components/chat-input2.js.map +1 -1
  102. package/dist/components/chat.js +1 -1
  103. package/dist/components/checkbox-list2.js +1 -1
  104. package/dist/components/checkbox-list2.js.map +1 -1
  105. package/dist/components/constant.js +1 -1
  106. package/dist/components/create-master-data-dialog2.js +1 -1
  107. package/dist/components/dialog-bill-editor2.js +1 -1
  108. package/dist/components/dialog-bill-editor2.js.map +1 -1
  109. package/dist/components/dialog-custom-filter2.js +1 -1
  110. package/dist/components/dialog-custom-filter2.js.map +1 -1
  111. package/dist/components/dialog-editor2.js +2 -2
  112. package/dist/components/dialog-editor2.js.map +1 -1
  113. package/dist/components/dialog-preview-media2.js +1 -1
  114. package/dist/components/dialog-preview-media2.js.map +1 -1
  115. package/dist/components/dialog-search2.js +1 -1
  116. package/dist/components/dialog-search2.js.map +1 -1
  117. package/dist/components/dialog.js +1 -1
  118. package/dist/components/icon-svg.js +2 -1
  119. package/dist/components/icon-svg.js.map +1 -1
  120. package/dist/components/index.js +14 -2
  121. package/dist/components/index.js.map +1 -1
  122. package/dist/components/index3.js +10 -1
  123. package/dist/components/index3.js.map +1 -1
  124. package/dist/components/master-data-item2.js +1 -1
  125. package/dist/components/master-status-app.js +2 -2
  126. package/dist/components/master-tag-app.js +2 -2
  127. package/dist/components/menu-chat-channel2.js +1 -1
  128. package/dist/components/menu-chat-channel2.js.map +1 -1
  129. package/dist/components/menu-chat-type2.js +1 -1
  130. package/dist/components/menu-chat-type2.js.map +1 -1
  131. package/dist/components/menu-list2.js +1 -1
  132. package/dist/components/menu-list2.js.map +1 -1
  133. package/dist/components/message-box2.js +1 -1
  134. package/dist/components/message-box2.js.map +1 -1
  135. package/dist/components/message-content2.js +1 -1
  136. package/dist/components/message-content2.js.map +1 -1
  137. package/dist/components/message-item2.js +1 -1
  138. package/dist/components/message-item2.js.map +1 -1
  139. package/dist/components/message-media2.js +3 -3
  140. package/dist/components/message-media2.js.map +1 -1
  141. package/dist/components/profile-history2.js +1 -1
  142. package/dist/components/profile-history2.js.map +1 -1
  143. package/dist/components/profile-info2.js +3 -3
  144. package/dist/components/profile-info2.js.map +1 -1
  145. package/dist/components/profile-media2.js +1 -1
  146. package/dist/components/profile-media2.js.map +1 -1
  147. package/dist/components/profile-tabs2.js +1 -1
  148. package/dist/components/profile-tabs2.js.map +1 -1
  149. package/dist/components/quick-message-add-template2.js +1 -1
  150. package/dist/components/quick-message-add-template2.js.map +1 -1
  151. package/dist/components/quick-message-app.js +1 -1
  152. package/dist/components/quick-message-app.js.map +1 -1
  153. package/dist/components/quick-message-file2.js +1 -1
  154. package/dist/components/quick-message-file2.js.map +1 -1
  155. package/dist/components/quick-message-image2.js +1 -1
  156. package/dist/components/quick-message-image2.js.map +1 -1
  157. package/dist/components/quick-message-modal2.js +1 -1
  158. package/dist/components/quick-message-modal2.js.map +1 -1
  159. package/dist/components/quick-message-template2.js +1 -1
  160. package/dist/components/quick-message-template2.js.map +1 -1
  161. package/dist/components/search-box2.js +1 -1
  162. package/dist/components/search-box2.js.map +1 -1
  163. package/dist/components/status-badge2.js +1 -1
  164. package/dist/components/status-badge2.js.map +1 -1
  165. package/dist/components/store.js +4 -1
  166. package/dist/components/store.js.map +1 -1
  167. package/dist/components/summarize-message-section2.js +1 -1
  168. package/dist/components/summarize-message-section2.js.map +1 -1
  169. package/dist/components/tag-list2.js +1 -1
  170. package/dist/components/tag-list2.js.map +1 -1
  171. package/dist/components/tag-or-status-item2.js +1 -1
  172. package/dist/components/tag-or-status-item2.js.map +1 -1
  173. package/dist/components/tag-popper2.js +1 -1
  174. package/dist/components/tag-popper2.js.map +1 -1
  175. package/dist/components/typography-clamp2.js +1 -1
  176. package/dist/components/typography-clamp2.js.map +1 -1
  177. package/dist/components/user-info-section2.js +1 -1
  178. package/dist/components/user-info-section2.js.map +1 -1
  179. package/dist/components/z-avatar2.js +1 -1
  180. package/dist/components/z-avatar2.js.map +1 -1
  181. package/dist/components/z-dialog2.js +1 -1
  182. package/dist/components/z-dialog2.js.map +1 -1
  183. package/dist/components/z-tooltip2.js +1 -1
  184. package/dist/components/z-tooltip2.js.map +1 -1
  185. package/dist/esm/{autocomplete-address_45.entry.js → autocomplete-address_46.entry.js} +3976 -3913
  186. package/dist/esm/create-master-data-dialog_2.entry.js +6 -6
  187. package/dist/{zignal-stencil-library/icon-svg-D46sQeCq.js → esm/icon-svg-DzKoszT1.js} +5 -4
  188. package/dist/{zignal-stencil-library/icon-svg-D46sQeCq.js.map → esm/icon-svg-DzKoszT1.js.map} +1 -1
  189. package/dist/esm/{index-LGP3DVcU.js → index-DcfhcAL1.js} +16 -4
  190. package/dist/esm/{index-LGP3DVcU.js.map → index-DcfhcAL1.js.map} +1 -1
  191. package/dist/esm/{index-CGxyaXAw.js → index-Qu_EVkYn.js} +13 -4
  192. package/dist/esm/index-Qu_EVkYn.js.map +1 -0
  193. package/dist/esm/index.js +1 -1
  194. package/dist/esm/loader.js +1 -1
  195. package/dist/esm/master-status-app.entry.js +5 -5
  196. package/dist/esm/master-tag-app.entry.js +5 -5
  197. package/dist/esm/quick-message-app.entry.js +3 -3
  198. package/dist/esm/quick-message-app.entry.js.map +1 -1
  199. package/dist/{zignal-stencil-library/store-yUM2Y3GN.js → esm/store-Zgp7cw8O.js} +7 -4
  200. package/dist/esm/store-Zgp7cw8O.js.map +1 -0
  201. package/dist/esm/{z-input-CpnrmPm8.js → z-input-DmS6d53p.js} +3 -3
  202. package/dist/esm/{z-input-CpnrmPm8.js.map → z-input-DmS6d53p.js.map} +1 -1
  203. package/dist/esm/zignal-stencil-library.js +1 -1
  204. package/dist/types/api/index.d.ts +1 -0
  205. package/dist/types/api/type.d.ts +9 -0
  206. package/dist/types/components/background-jobs/background-jobs.d.ts +7 -0
  207. package/dist/types/components/chat-app/chat-app.d.ts +1 -0
  208. package/dist/types/components.d.ts +13 -0
  209. package/dist/types/store/job.d.ts +1 -0
  210. package/dist/types/store/store.d.ts +2 -1
  211. package/dist/types/utils/icon-svg.d.ts +1 -0
  212. package/dist/zignal-stencil-library/{autocomplete-address_45.entry.js → autocomplete-address_46.entry.js} +3976 -3913
  213. package/dist/zignal-stencil-library/create-master-data-dialog_2.entry.js +6 -6
  214. package/dist/{esm/icon-svg-D46sQeCq.js → zignal-stencil-library/icon-svg-DzKoszT1.js} +5 -4
  215. package/dist/{cjs/icon-svg-DrwTEcWs.js.map → zignal-stencil-library/icon-svg-DzKoszT1.js.map} +1 -1
  216. package/dist/zignal-stencil-library/{index-LGP3DVcU.js → index-DcfhcAL1.js} +16 -4
  217. package/dist/zignal-stencil-library/{index-LGP3DVcU.js.map → index-DcfhcAL1.js.map} +1 -1
  218. package/dist/zignal-stencil-library/{index-CGxyaXAw.js → index-Qu_EVkYn.js} +13 -4
  219. package/dist/zignal-stencil-library/index-Qu_EVkYn.js.map +1 -0
  220. package/dist/zignal-stencil-library/index.esm.js +1 -1
  221. package/dist/zignal-stencil-library/master-status-app.entry.js +5 -5
  222. package/dist/zignal-stencil-library/master-tag-app.entry.js +5 -5
  223. package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
  224. package/dist/zignal-stencil-library/quick-message-app.entry.js +3 -3
  225. package/dist/{esm/store-yUM2Y3GN.js → zignal-stencil-library/store-Zgp7cw8O.js} +7 -4
  226. package/dist/zignal-stencil-library/store-Zgp7cw8O.js.map +1 -0
  227. package/dist/zignal-stencil-library/{z-input-CpnrmPm8.js → z-input-DmS6d53p.js} +3 -3
  228. package/dist/zignal-stencil-library/{z-input-CpnrmPm8.js.map → z-input-DmS6d53p.js.map} +1 -1
  229. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  230. package/package.json +1 -1
  231. package/dist/cjs/index-WaqydP_w.js.map +0 -1
  232. package/dist/cjs/store-dZyyLnWf.js.map +0 -1
  233. package/dist/collection/utils/blobCache.js.map +0 -1
  234. package/dist/esm/index-CGxyaXAw.js.map +0 -1
  235. package/dist/esm/store-yUM2Y3GN.js.map +0 -1
  236. package/dist/zignal-stencil-library/index-CGxyaXAw.js.map +0 -1
  237. package/dist/zignal-stencil-library/store-yUM2Y3GN.js.map +0 -1
  238. /package/dist/types/utils/{blobCache.d.ts → blob-cache.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-dZyyLnWf.js","sources":["src/utils/utils.ts","../../node_modules/@stencil/store/dist/index.js","src/store/store.ts"],"sourcesContent":["import i18n from '../global/i18n';\n\nexport function format(first?: string, middle?: string, last?: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function useTranslation() {\n return i18n.t;\n}\n\nexport const rgbToHex = (rgb: string): string => {\n const values = rgb.match(/\\d+/g) || [];\n const hexValues = values.map(val => {\n const hex = parseInt(val, 10).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n });\n return '#' + hexValues.join('');\n};\n\nexport const calculateBrightness = (hexColor: string): number => {\n // Formula for calculating brightness: 0.299*R + 0.587*G + 0.114*B\n const r = parseInt(hexColor.substring(1, 3), 16);\n const g = parseInt(hexColor.substring(3, 5), 16);\n const b = parseInt(hexColor.substring(5, 7), 16);\n\n return 0.299 * r + 0.587 * g + 0.114 * b;\n};\n\nexport const getContrastColorHelper = (color: string, isInvert = false): string => {\n let hexColor = '#000';\n const format = color.includes('rgb') ? 'rgb' : 'hex';\n if (format === 'hex') {\n hexColor = color;\n } else if (format === 'rgb') {\n hexColor = rgbToHex(color);\n }\n\n const brightness = calculateBrightness(hexColor);\n if (isInvert) {\n return brightness > 128 ? '#fff' : '#000';\n }\n return brightness > 128 ? '#000' : '#fff';\n};\n\nexport function getRandomHexColor(): string {\n const hex = Math.floor(Math.random() * 0xffffff).toString(16);\n return `#${hex.padStart(6, '0')}`;\n}\n\nexport function base64ToFileList(base64Array: string[], filenames?: string[]): FileList {\n const dataTransfer = new DataTransfer();\n\n base64Array.forEach((base64, index) => {\n const arr = base64.split(',');\n const mimeMatch = arr[0].match(/:(.*?);/);\n const mime = mimeMatch ? mimeMatch[1] : 'image/png';\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n const fileName = filenames && filenames.length > index ? filenames[index] : `image${index}.png`;\n const file = new File([u8arr], fileName, { type: mime });\n dataTransfer.items.add(file);\n });\n\n return dataTransfer.files;\n}\n\nexport const preventInputNoneBasicNumber = (event: any) => {\n return (['e', 'E', '+', '-', 'ArrowDown'].includes(event.key) || ((event.key === 'ArrowDown') && ((parseInt(event.target.value) === 0) || (event.target.value === '')))) && event.preventDefault()\n}\n\nexport const preventInputNoneBasicNumberAndDot = (event: any) => {\n return (['e', 'E', '+', '-', '.'].includes(event.key) || ((event.key === 'ArrowDown') && ((parseInt(event.target.value) === 0) || (event.target.value === '')))) && event.preventDefault()\n}\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n // Track onChange listeners to enable removeListener functionality\n const changeListeners = new Map();\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const setHandler = (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n };\n const resetHandler = () => cb(unwrap(defaultState)[propName]);\n // Register the handlers\n const unSet = on('set', setHandler);\n const unReset = on('reset', resetHandler);\n // Track the relationship between the user callback and internal handlers\n changeListeners.set(cb, { setHandler, resetHandler, propName });\n return () => {\n unSet();\n unReset();\n changeListeners.delete(cb);\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n const removeListener = (propName, listener) => {\n const listenerInfo = changeListeners.get(listener);\n if (listenerInfo && listenerInfo.propName === propName) {\n // Remove the specific handlers that were created for this listener\n removeFromArray(handlers.set, listenerInfo.setHandler);\n removeFromArray(handlers.reset, listenerInfo.resetHandler);\n changeListeners.delete(listener);\n }\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n removeListener,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import { createStore } from '@stencil/store';\nimport * as Types from '../store/type';\nimport { GetChatMessagesResponse, GetChatsResponse, SearchChatsParams, ChatFilter, GetChatFilterConfigResponse } from '../api/type';\n\nexport const configStore = createStore<Types.ConfigStore>({\n language: 'en',\n theme: 'light',\n businessId: null,\n shopId: null,\n accessToken: null,\n isProduction: false,\n timeZone: null,\n translationSettings: {\n is_auto: false,\n target_language: null,\n exclude_languages: [],\n },\n isNotConnected: false,\n isZwiz: false,\n connectionList: [],\n memberList: [],\n});\n\nexport const messagesStore = createStore<\n Omit<GetChatMessagesResponse, 'next' | 'prev'> & {\n loadedKeys: Set<string>;\n readsMap: Record<string, Types.ChatMessageReader[]>;\n jumpMessageId?: string;\n older?: {\n next?: string;\n prev?: string;\n };\n newer?: {\n next?: string;\n prev?: string;\n };\n }\n>({\n messages: [],\n reads: [],\n loadedKeys: new Set<string>(),\n readsMap: {},\n});\n\nexport const filterChatsStore = createStore<{ filterChat?: SearchChatsParams, filterType: 'quick' | 'advanced' | 'custom', filterConfig?: GetChatFilterConfigResponse }>({\n filterType: 'quick',\n});\n\nexport const statusesStore = createStore<{ statuses: Types.TTagOrStatusItem[] }>({\n statuses: [],\n});\n\nexport const tagsStore = createStore<{ tags: Types.TTagOrStatusItem[] }>({\n tags: [],\n});\n\nexport const chatsStore = createStore<GetChatsResponse & { loadedKeys: Set<string> }>({\n chats: [],\n loadedKeys: new Set<string>(),\n});\n\nexport const userStore = createStore<{ user: Types.UserItem | null }>({\n user: null,\n});\n\nexport const userAddressStore = createStore<{ userAddress: Types.UserAddress | null }>({\n userAddress: null,\n});\n\nexport const selectedChatStore = createStore<{ selectedChat: Types.TChatItem | null; isSyncingTag: boolean; isSyncingMessage: boolean }>({\n selectedChat: null,\n isSyncingTag: false,\n isSyncingMessage: false,\n});\n\nexport const selectedMessageToReplyStore = createStore<{ selectedMessageToReply: Types.ChatMessageItem | null }>({\n selectedMessageToReply: null,\n});\n\nexport const responsiveStore = createStore<{ isMobile: boolean }>({\n isMobile: false,\n});\n\nexport const profilePanelStore = createStore<{ isShowProfile: boolean }>({\n isShowProfile: false,\n});\n\nexport const customFiltersStore = createStore<{ filters: ChatFilter[]; selectedFilter: ChatFilter | null; loading: boolean }>({\n filters: [],\n selectedFilter: null,\n loading: false,\n});\n\nexport const chatLanguageStore = createStore<{\n isEdit: boolean\n loading?: boolean\n originalLanguage?: string\n}>({\n isEdit: false\n});\n\nexport const translateStore = createStore<{ translatedMessages: Record<string, string> }>({ translatedMessages: {} });\n\nexport const chatInputStore = createStore<{ originalText: string }>({\n originalText: '',\n});"],"names":["i18n","getRenderingRef","forceUpdate"],"mappings":"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","x_google_ignoreList":[1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blobCache.js","sourceRoot":"","sources":["../../src/utils/blobCache.ts"],"names":[],"mappings":"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","sourcesContent":["import { TFileItem } from '../store/type';\n\ninterface BlobCacheEntry {\n url: string | null;\n type: TFileItem | null;\n refCount: number;\n hasError: boolean;\n}\n\nclass BlobCache {\n private cache: Map<string, BlobCacheEntry> = new Map();\n\n /**\n * Generates a cache key from media parameters\n */\n private getCacheKey(channel: string, sessionId: string, messageId: string): string {\n return `${channel}:${sessionId}:${messageId}`;\n }\n\n /**\n * Gets a cached blob URL if it exists\n */\n get(channel: string, sessionId: string, messageId: string): { url: string | null; type: TFileItem | null; hasError: boolean } | null {\n const key = this.getCacheKey(channel, sessionId, messageId);\n const entry = this.cache.get(key);\n\n if (entry) {\n // Increment reference count\n entry.refCount++;\n return { url: entry.url, type: entry.type, hasError: entry.hasError };\n }\n\n return null;\n }\n\n /**\n * Stores a blob URL in the cache\n */\n set(channel: string, sessionId: string, messageId: string, url: string, type: TFileItem): void {\n const key = this.getCacheKey(channel, sessionId, messageId);\n\n // If entry already exists, revoke the old URL before replacing\n const existingEntry = this.cache.get(key);\n if (existingEntry && existingEntry.url) {\n URL.revokeObjectURL(existingEntry.url);\n }\n\n this.cache.set(key, {\n url,\n type,\n refCount: 1,\n hasError: false,\n });\n }\n\n /**\n * Marks a media entry as having an error (failed to load)\n */\n setError(channel: string, sessionId: string, messageId: string): void {\n const key = this.getCacheKey(channel, sessionId, messageId);\n\n this.cache.set(key, {\n url: null,\n type: null,\n refCount: 1,\n hasError: true,\n });\n }\n\n /**\n * Decrements reference count and optionally revokes the blob URL\n * Returns true if the entry was removed\n */\n release(channel: string, sessionId: string, messageId: string): boolean {\n const key = this.getCacheKey(channel, sessionId, messageId);\n const entry = this.cache.get(key);\n\n if (entry) {\n entry.refCount--;\n\n // Keep the blob URL cached even if refCount reaches 0\n // This prevents re-fetching when scrolling back to the same message\n // Only revoke when explicitly cleared or cache is full\n return false;\n }\n\n return false;\n }\n\n /**\n * Clears all cached blob URLs\n */\n clear(): void {\n this.cache.forEach(entry => {\n if (entry.url) {\n URL.revokeObjectURL(entry.url);\n }\n });\n this.cache.clear();\n }\n\n /**\n * Gets the current cache size\n */\n size(): number {\n return this.cache.size;\n }\n\n /**\n * Removes least recently used entries if cache exceeds size limit\n */\n cleanup(maxSize: number = 100): void {\n if (this.cache.size <= maxSize) {\n return;\n }\n\n const entriesToRemove = this.cache.size - maxSize;\n let removed = 0;\n\n // Remove entries with lowest refCount first\n const sortedEntries = Array.from(this.cache.entries())\n .sort((a, b) => a[1].refCount - b[1].refCount);\n\n for (const [key, entry] of sortedEntries) {\n if (removed >= entriesToRemove) {\n break;\n }\n if (entry.url) {\n URL.revokeObjectURL(entry.url);\n }\n this.cache.delete(key);\n removed++;\n }\n }\n}\n\n// Export a singleton instance\nexport const blobCache = new BlobCache();\n"]}