codicent-app-sdk 0.5.7 → 0.6.0

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 (244) hide show
  1. package/dist/cjs/components/AiInput.js +1 -1
  2. package/dist/cjs/components/AudioIcon.js +1 -1
  3. package/dist/cjs/components/ChatInput.js +1 -1
  4. package/dist/cjs/components/ChatMessage.js +1 -1
  5. package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
  6. package/dist/cjs/components/Footer.js +1 -1
  7. package/dist/cjs/components/Header.js +1 -1
  8. package/dist/cjs/components/HtmlView.js +1 -1
  9. package/dist/cjs/components/MessageInput.js +1 -1
  10. package/dist/cjs/components/MessageItem.js +1 -1
  11. package/dist/cjs/components/Profile.js +1 -1
  12. package/dist/cjs/components/Prompt.js +1 -1
  13. package/dist/cjs/components/SnapFooter.js +1 -1
  14. package/dist/cjs/components/TextHeader.js +1 -1
  15. package/dist/cjs/components/TypingIndicator.js +1 -1
  16. package/dist/cjs/components/UploadFile.js +1 -1
  17. package/dist/cjs/components/UrlProcessor.js +1 -1
  18. package/dist/cjs/components/VoiceIcon.js +1 -1
  19. package/dist/cjs/components/audit/AuditAnswerCell.d.ts +15 -0
  20. package/dist/cjs/components/audit/AuditAnswerCell.d.ts.map +1 -0
  21. package/dist/cjs/components/audit/AuditAnswerCell.js +1 -0
  22. package/dist/cjs/components/audit/AuditBulkExportDialog.d.ts +16 -0
  23. package/dist/cjs/components/audit/AuditBulkExportDialog.d.ts.map +1 -0
  24. package/dist/cjs/components/audit/AuditBulkExportDialog.js +1 -0
  25. package/dist/cjs/components/audit/AuditBulkUploadDialog.d.ts +15 -0
  26. package/dist/cjs/components/audit/AuditBulkUploadDialog.d.ts.map +1 -0
  27. package/dist/cjs/components/audit/AuditBulkUploadDialog.js +1 -0
  28. package/dist/cjs/components/audit/AuditCircularProgress.d.ts +15 -0
  29. package/dist/cjs/components/audit/AuditCircularProgress.d.ts.map +1 -0
  30. package/dist/cjs/components/audit/AuditCircularProgress.js +1 -0
  31. package/dist/cjs/components/audit/AuditFilterBar.d.ts +15 -0
  32. package/dist/cjs/components/audit/AuditFilterBar.d.ts.map +1 -0
  33. package/dist/cjs/components/audit/AuditFilterBar.js +1 -0
  34. package/dist/cjs/components/audit/AuditFilterChips.d.ts +17 -0
  35. package/dist/cjs/components/audit/AuditFilterChips.d.ts.map +1 -0
  36. package/dist/cjs/components/audit/AuditFilterChips.js +1 -0
  37. package/dist/cjs/components/audit/AuditGroupsProgress.d.ts +12 -0
  38. package/dist/cjs/components/audit/AuditGroupsProgress.d.ts.map +1 -0
  39. package/dist/cjs/components/audit/AuditGroupsProgress.js +1 -0
  40. package/dist/cjs/components/audit/AuditHorizontalProgress.d.ts +16 -0
  41. package/dist/cjs/components/audit/AuditHorizontalProgress.d.ts.map +1 -0
  42. package/dist/cjs/components/audit/AuditHorizontalProgress.js +1 -0
  43. package/dist/cjs/components/audit/AuditRequirementDialog.d.ts +16 -0
  44. package/dist/cjs/components/audit/AuditRequirementDialog.d.ts.map +1 -0
  45. package/dist/cjs/components/audit/AuditRequirementDialog.js +1 -0
  46. package/dist/cjs/components/audit/AuditRoleIndicator.d.ts +13 -0
  47. package/dist/cjs/components/audit/AuditRoleIndicator.d.ts.map +1 -0
  48. package/dist/cjs/components/audit/AuditRoleIndicator.js +1 -0
  49. package/dist/cjs/components/audit/AuditSearchBar.d.ts +13 -0
  50. package/dist/cjs/components/audit/AuditSearchBar.d.ts.map +1 -0
  51. package/dist/cjs/components/audit/AuditSearchBar.js +1 -0
  52. package/dist/cjs/components/audit/AuditSortPresets.d.ts +12 -0
  53. package/dist/cjs/components/audit/AuditSortPresets.d.ts.map +1 -0
  54. package/dist/cjs/components/audit/AuditSortPresets.js +1 -0
  55. package/dist/cjs/components/audit/AuditSummaryDashboard.d.ts +13 -0
  56. package/dist/cjs/components/audit/AuditSummaryDashboard.d.ts.map +1 -0
  57. package/dist/cjs/components/audit/AuditSummaryDashboard.js +1 -0
  58. package/dist/cjs/components/audit/AuditUnitExportDialog.d.ts +18 -0
  59. package/dist/cjs/components/audit/AuditUnitExportDialog.d.ts.map +1 -0
  60. package/dist/cjs/components/audit/AuditUnitExportDialog.js +1 -0
  61. package/dist/cjs/components/audit/AuditUnitImportDialog.d.ts +13 -0
  62. package/dist/cjs/components/audit/AuditUnitImportDialog.d.ts.map +1 -0
  63. package/dist/cjs/components/audit/AuditUnitImportDialog.js +1 -0
  64. package/dist/cjs/components/audit/AuditUnitSwitcher.d.ts +20 -0
  65. package/dist/cjs/components/audit/AuditUnitSwitcher.d.ts.map +1 -0
  66. package/dist/cjs/components/audit/AuditUnitSwitcher.js +1 -0
  67. package/dist/cjs/components/audit/index.d.ts +20 -0
  68. package/dist/cjs/components/audit/index.d.ts.map +1 -0
  69. package/dist/cjs/components/index.d.ts +1 -0
  70. package/dist/cjs/components/index.d.ts.map +1 -1
  71. package/dist/cjs/hooks/index.d.ts +12 -0
  72. package/dist/cjs/hooks/index.d.ts.map +1 -1
  73. package/dist/cjs/hooks/useAuditFilters.d.ts +17 -0
  74. package/dist/cjs/hooks/useAuditFilters.d.ts.map +1 -0
  75. package/dist/cjs/hooks/useAuditFilters.js +1 -0
  76. package/dist/cjs/hooks/useAuditManagerData.d.ts +25 -0
  77. package/dist/cjs/hooks/useAuditManagerData.d.ts.map +1 -0
  78. package/dist/cjs/hooks/useAuditManagerData.js +1 -0
  79. package/dist/cjs/hooks/useAuditManagerFilters.d.ts +16 -0
  80. package/dist/cjs/hooks/useAuditManagerFilters.d.ts.map +1 -0
  81. package/dist/cjs/hooks/useAuditManagerFilters.js +1 -0
  82. package/dist/cjs/hooks/useAuditRequirementsFilters.d.ts +17 -0
  83. package/dist/cjs/hooks/useAuditRequirementsFilters.d.ts.map +1 -0
  84. package/dist/cjs/hooks/useAuditRequirementsFilters.js +1 -0
  85. package/dist/cjs/hooks/useAuditRoleCheck.d.ts +26 -0
  86. package/dist/cjs/hooks/useAuditRoleCheck.d.ts.map +1 -0
  87. package/dist/cjs/hooks/useAuditRoleCheck.js +1 -0
  88. package/dist/cjs/hooks/useAuditState.d.ts +34 -0
  89. package/dist/cjs/hooks/useAuditState.d.ts.map +1 -0
  90. package/dist/cjs/hooks/useAuditState.js +1 -0
  91. package/dist/cjs/hooks/useAuthState.js +1 -1
  92. package/dist/cjs/hooks/useCodicentState.js +1 -1
  93. package/dist/cjs/index.js +1 -1
  94. package/dist/cjs/pages/AppFrame.js +1 -1
  95. package/dist/cjs/pages/Chat.js +1 -1
  96. package/dist/cjs/pages/Compose.js +1 -1
  97. package/dist/cjs/pages/CrmPage.js +1 -1
  98. package/dist/cjs/pages/CrmPagePersistent.js +1 -1
  99. package/dist/cjs/pages/FormAccept.js +1 -1
  100. package/dist/cjs/pages/FormInvite.js +1 -1
  101. package/dist/cjs/pages/Home.js +1 -1
  102. package/dist/cjs/pages/HtmlViewer.js +1 -1
  103. package/dist/cjs/pages/ListPage.js +1 -1
  104. package/dist/cjs/pages/Login.js +1 -1
  105. package/dist/cjs/pages/Menu.js +1 -1
  106. package/dist/cjs/pages/Purchase.js +1 -1
  107. package/dist/cjs/pages/Sales.js +1 -1
  108. package/dist/cjs/pages/Search.js +1 -1
  109. package/dist/cjs/pages/Snap.js +1 -1
  110. package/dist/cjs/types/audit.d.ts +365 -0
  111. package/dist/cjs/types/audit.d.ts.map +1 -0
  112. package/dist/cjs/types/index.d.ts +1 -0
  113. package/dist/cjs/types/index.d.ts.map +1 -1
  114. package/dist/cjs/utils/auditExport.d.ts +37 -0
  115. package/dist/cjs/utils/auditExport.d.ts.map +1 -0
  116. package/dist/cjs/utils/auditExport.js +1 -0
  117. package/dist/cjs/utils/auditUtils.d.ts +59 -0
  118. package/dist/cjs/utils/auditUtils.d.ts.map +1 -0
  119. package/dist/cjs/utils/auditUtils.js +1 -0
  120. package/dist/cjs/utils/index.d.ts +2 -0
  121. package/dist/cjs/utils/index.d.ts.map +1 -1
  122. package/dist/esm/components/AiInput.js +1 -1
  123. package/dist/esm/components/AudioIcon.js +1 -1
  124. package/dist/esm/components/ChatInput.js +1 -1
  125. package/dist/esm/components/ChatMessage.js +1 -1
  126. package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
  127. package/dist/esm/components/Footer.js +1 -1
  128. package/dist/esm/components/Header.js +1 -1
  129. package/dist/esm/components/HtmlView.js +1 -1
  130. package/dist/esm/components/MessageInput.js +1 -1
  131. package/dist/esm/components/MessageItem.js +1 -1
  132. package/dist/esm/components/Profile.js +1 -1
  133. package/dist/esm/components/Prompt.js +1 -1
  134. package/dist/esm/components/SnapFooter.js +1 -1
  135. package/dist/esm/components/TextHeader.js +1 -1
  136. package/dist/esm/components/TypingIndicator.js +1 -1
  137. package/dist/esm/components/UploadFile.js +1 -1
  138. package/dist/esm/components/UrlProcessor.js +1 -1
  139. package/dist/esm/components/VoiceIcon.js +1 -1
  140. package/dist/esm/components/audit/AuditAnswerCell.d.ts +15 -0
  141. package/dist/esm/components/audit/AuditAnswerCell.d.ts.map +1 -0
  142. package/dist/esm/components/audit/AuditAnswerCell.js +1 -0
  143. package/dist/esm/components/audit/AuditBulkExportDialog.d.ts +16 -0
  144. package/dist/esm/components/audit/AuditBulkExportDialog.d.ts.map +1 -0
  145. package/dist/esm/components/audit/AuditBulkExportDialog.js +1 -0
  146. package/dist/esm/components/audit/AuditBulkUploadDialog.d.ts +15 -0
  147. package/dist/esm/components/audit/AuditBulkUploadDialog.d.ts.map +1 -0
  148. package/dist/esm/components/audit/AuditBulkUploadDialog.js +1 -0
  149. package/dist/esm/components/audit/AuditCircularProgress.d.ts +15 -0
  150. package/dist/esm/components/audit/AuditCircularProgress.d.ts.map +1 -0
  151. package/dist/esm/components/audit/AuditCircularProgress.js +1 -0
  152. package/dist/esm/components/audit/AuditFilterBar.d.ts +15 -0
  153. package/dist/esm/components/audit/AuditFilterBar.d.ts.map +1 -0
  154. package/dist/esm/components/audit/AuditFilterBar.js +1 -0
  155. package/dist/esm/components/audit/AuditFilterChips.d.ts +17 -0
  156. package/dist/esm/components/audit/AuditFilterChips.d.ts.map +1 -0
  157. package/dist/esm/components/audit/AuditFilterChips.js +1 -0
  158. package/dist/esm/components/audit/AuditGroupsProgress.d.ts +12 -0
  159. package/dist/esm/components/audit/AuditGroupsProgress.d.ts.map +1 -0
  160. package/dist/esm/components/audit/AuditGroupsProgress.js +1 -0
  161. package/dist/esm/components/audit/AuditHorizontalProgress.d.ts +16 -0
  162. package/dist/esm/components/audit/AuditHorizontalProgress.d.ts.map +1 -0
  163. package/dist/esm/components/audit/AuditHorizontalProgress.js +1 -0
  164. package/dist/esm/components/audit/AuditRequirementDialog.d.ts +16 -0
  165. package/dist/esm/components/audit/AuditRequirementDialog.d.ts.map +1 -0
  166. package/dist/esm/components/audit/AuditRequirementDialog.js +1 -0
  167. package/dist/esm/components/audit/AuditRoleIndicator.d.ts +13 -0
  168. package/dist/esm/components/audit/AuditRoleIndicator.d.ts.map +1 -0
  169. package/dist/esm/components/audit/AuditRoleIndicator.js +1 -0
  170. package/dist/esm/components/audit/AuditSearchBar.d.ts +13 -0
  171. package/dist/esm/components/audit/AuditSearchBar.d.ts.map +1 -0
  172. package/dist/esm/components/audit/AuditSearchBar.js +1 -0
  173. package/dist/esm/components/audit/AuditSortPresets.d.ts +12 -0
  174. package/dist/esm/components/audit/AuditSortPresets.d.ts.map +1 -0
  175. package/dist/esm/components/audit/AuditSortPresets.js +1 -0
  176. package/dist/esm/components/audit/AuditSummaryDashboard.d.ts +13 -0
  177. package/dist/esm/components/audit/AuditSummaryDashboard.d.ts.map +1 -0
  178. package/dist/esm/components/audit/AuditSummaryDashboard.js +1 -0
  179. package/dist/esm/components/audit/AuditUnitExportDialog.d.ts +18 -0
  180. package/dist/esm/components/audit/AuditUnitExportDialog.d.ts.map +1 -0
  181. package/dist/esm/components/audit/AuditUnitExportDialog.js +1 -0
  182. package/dist/esm/components/audit/AuditUnitImportDialog.d.ts +13 -0
  183. package/dist/esm/components/audit/AuditUnitImportDialog.d.ts.map +1 -0
  184. package/dist/esm/components/audit/AuditUnitImportDialog.js +1 -0
  185. package/dist/esm/components/audit/AuditUnitSwitcher.d.ts +20 -0
  186. package/dist/esm/components/audit/AuditUnitSwitcher.d.ts.map +1 -0
  187. package/dist/esm/components/audit/AuditUnitSwitcher.js +1 -0
  188. package/dist/esm/components/audit/index.d.ts +20 -0
  189. package/dist/esm/components/audit/index.d.ts.map +1 -0
  190. package/dist/esm/components/index.d.ts +1 -0
  191. package/dist/esm/components/index.d.ts.map +1 -1
  192. package/dist/esm/hooks/index.d.ts +12 -0
  193. package/dist/esm/hooks/index.d.ts.map +1 -1
  194. package/dist/esm/hooks/useAuditFilters.d.ts +17 -0
  195. package/dist/esm/hooks/useAuditFilters.d.ts.map +1 -0
  196. package/dist/esm/hooks/useAuditFilters.js +1 -0
  197. package/dist/esm/hooks/useAuditManagerData.d.ts +25 -0
  198. package/dist/esm/hooks/useAuditManagerData.d.ts.map +1 -0
  199. package/dist/esm/hooks/useAuditManagerData.js +1 -0
  200. package/dist/esm/hooks/useAuditManagerFilters.d.ts +16 -0
  201. package/dist/esm/hooks/useAuditManagerFilters.d.ts.map +1 -0
  202. package/dist/esm/hooks/useAuditManagerFilters.js +1 -0
  203. package/dist/esm/hooks/useAuditRequirementsFilters.d.ts +17 -0
  204. package/dist/esm/hooks/useAuditRequirementsFilters.d.ts.map +1 -0
  205. package/dist/esm/hooks/useAuditRequirementsFilters.js +1 -0
  206. package/dist/esm/hooks/useAuditRoleCheck.d.ts +26 -0
  207. package/dist/esm/hooks/useAuditRoleCheck.d.ts.map +1 -0
  208. package/dist/esm/hooks/useAuditRoleCheck.js +1 -0
  209. package/dist/esm/hooks/useAuditState.d.ts +34 -0
  210. package/dist/esm/hooks/useAuditState.d.ts.map +1 -0
  211. package/dist/esm/hooks/useAuditState.js +1 -0
  212. package/dist/esm/hooks/useAuthState.js +1 -1
  213. package/dist/esm/hooks/useCodicentState.js +1 -1
  214. package/dist/esm/index.js +1 -1
  215. package/dist/esm/pages/AppFrame.js +1 -1
  216. package/dist/esm/pages/Chat.js +1 -1
  217. package/dist/esm/pages/Compose.js +1 -1
  218. package/dist/esm/pages/CrmPage.js +1 -1
  219. package/dist/esm/pages/CrmPagePersistent.js +1 -1
  220. package/dist/esm/pages/FormAccept.js +1 -1
  221. package/dist/esm/pages/FormInvite.js +1 -1
  222. package/dist/esm/pages/Home.js +1 -1
  223. package/dist/esm/pages/HtmlViewer.js +1 -1
  224. package/dist/esm/pages/ListPage.js +1 -1
  225. package/dist/esm/pages/Login.js +1 -1
  226. package/dist/esm/pages/Menu.js +1 -1
  227. package/dist/esm/pages/Purchase.js +1 -1
  228. package/dist/esm/pages/Sales.js +1 -1
  229. package/dist/esm/pages/Search.js +1 -1
  230. package/dist/esm/pages/Snap.js +1 -1
  231. package/dist/esm/types/audit.d.ts +365 -0
  232. package/dist/esm/types/audit.d.ts.map +1 -0
  233. package/dist/esm/types/index.d.ts +1 -0
  234. package/dist/esm/types/index.d.ts.map +1 -1
  235. package/dist/esm/utils/auditExport.d.ts +37 -0
  236. package/dist/esm/utils/auditExport.d.ts.map +1 -0
  237. package/dist/esm/utils/auditExport.js +1 -0
  238. package/dist/esm/utils/auditUtils.d.ts +59 -0
  239. package/dist/esm/utils/auditUtils.d.ts.map +1 -0
  240. package/dist/esm/utils/auditUtils.js +1 -0
  241. package/dist/esm/utils/index.d.ts +2 -0
  242. package/dist/esm/utils/index.d.ts.map +1 -1
  243. package/dist/index.d.ts +806 -1
  244. package/package.json +2 -1
@@ -20,4 +20,16 @@ export type { Schema, SchemaItem, DataSchemas } from "./useObserveDataSchemas";
20
20
  export { useOnlineStatus } from "./useOnlineStatus";
21
21
  export { useUserRoles } from "./useUserRoles";
22
22
  export type { UserRole } from "./useUserRoles";
23
+ export { useAuditState } from "./useAuditState";
24
+ export type { UseAuditStateParams, UseAuditStateResult } from "./useAuditState";
25
+ export { useAuditRoleCheck } from "./useAuditRoleCheck";
26
+ export type { UseAuditRoleCheckParams, UseAuditRoleCheckResult } from "./useAuditRoleCheck";
27
+ export { useAuditFilters } from "./useAuditFilters";
28
+ export type { UseAuditFiltersResult } from "./useAuditFilters";
29
+ export { useAuditRequirementsFilters } from "./useAuditRequirementsFilters";
30
+ export type { UseAuditRequirementsFiltersResult } from "./useAuditRequirementsFilters";
31
+ export { useAuditManagerFilters } from "./useAuditManagerFilters";
32
+ export type { UseAuditManagerFiltersResult } from "./useAuditManagerFilters";
33
+ export { useAuditManagerData } from "./useAuditManagerData";
34
+ export type { UseAuditManagerDataParams, UseAuditManagerDataResult } from "./useAuditManagerData";
23
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnG,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnG,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview Filter state hook for the main audit page (per-unit requirement list).
3
+ * @module codicent-app-sdk/hooks/useAuditFilters
4
+ * @public
5
+ */
6
+ import type { AuditAnswer, AuditFilterState, ResolvedAuditConfig } from "../types/audit";
7
+ export interface UseAuditFiltersResult {
8
+ filters: AuditFilterState;
9
+ filteredAnswers: AuditAnswer[];
10
+ availableGroups: string[];
11
+ availableCategories: string[];
12
+ availableComplianceStatuses: string[];
13
+ updateFilters: (patch: Partial<AuditFilterState>) => void;
14
+ clearFilters: () => void;
15
+ }
16
+ export declare function useAuditFilters(answers: AuditAnswer[], config: ResolvedAuditConfig): UseAuditFiltersResult;
17
+ //# sourceMappingURL=useAuditFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditFilters.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditFilters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGzF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAYD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,mBAAmB,GAAG,qBAAqB,CAkF1G"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react"),t=require("../utils/auditUtils.js");const i={groups:[],categories:[],complianceStatuses:[],validityStatuses:[],withComments:!1,withPhotos:!1,search:""};exports.useAuditFilters=function(s,r){const[n,o]=e.useState(i),a=e.useMemo((()=>[...new Set(s.map((e=>e.group)).filter(Boolean))].sort()),[s]),l=e.useMemo((()=>{const e=s.filter((e=>0===n.groups.length||n.groups.includes(e.group)));return[...new Set(e.map((e=>e.category)).filter(Boolean))].sort()}),[s,n.groups]),u=e.useMemo((()=>"checkbox"===r.answerMode?["compliant","non-compliant"]:r.answerOptions.map((e=>e.value))),[r]),c=e.useMemo((()=>{const e=n.search.toLowerCase();return s.filter((i=>{if(n.groups.length>0&&!n.groups.includes(i.group))return!1;if(n.categories.length>0&&!n.categories.includes(i.category))return!1;if(n.complianceStatuses.length>0){const e=t.isAnswerCompliant(i.answer,r);if(!(n.complianceStatuses.includes(i.answer)||n.complianceStatuses.includes("compliant")&&e||n.complianceStatuses.includes("non-compliant")&&!e))return!1}if(n.validityStatuses.length>0){const e=t.calculateAuditTimeRemaining(i.validUntil),s=null!=i.validUntil;if(!n.validityStatuses.some((t=>"expired"===t?e?.isExpired??!1:"urgent"===t?e?.isUrgent??!1:"expiring-soon"===t?(e?.isExpiringSoon&&!e?.isUrgent)??!1:"valid"===t&&(!s||!e?.isExpired&&!e?.isExpiringSoon))))return!1}if(n.withComments&&!i.comment)return!1;if(n.withPhotos&&!i.photos)return!1;if(e){if(!`${i.title} ${i.group} ${i.category} ${i.description}`.toLowerCase().includes(e))return!1}return!0}))}),[s,n,r]);return{filters:n,filteredAnswers:c,availableGroups:a,availableCategories:l,availableComplianceStatuses:u,updateFilters:e=>{o((t=>({...t,...e})))},clearFilters:()=>o(i)}};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Multi-unit statistics aggregator hook for the manager overview dashboard.
3
+ * Fetches all units and their answers, calculates per-unit and market-level compliance stats.
4
+ * @module codicent-app-sdk/hooks/useAuditManagerData
5
+ * @public
6
+ */
7
+ import type { CodicentService } from "../services/codicent";
8
+ import type { AuditConfig, AuditManagerStats, AuditUnitStats, ResolvedAuditConfig } from "../types/audit";
9
+ export interface UseAuditManagerDataParams {
10
+ service: CodicentService;
11
+ config: AuditConfig | Partial<AuditConfig>;
12
+ /** When provided, only fetch units in this market area (Manager role scoping) */
13
+ marketArea?: string;
14
+ enabled?: boolean;
15
+ }
16
+ export interface UseAuditManagerDataResult {
17
+ managerStats: AuditManagerStats;
18
+ unitStats: AuditUnitStats[];
19
+ loading: boolean;
20
+ error: string | null;
21
+ reload: () => Promise<void>;
22
+ resolved: ResolvedAuditConfig;
23
+ }
24
+ export declare function useAuditManagerData({ service, config, marketArea, enabled, }: UseAuditManagerDataParams): UseAuditManagerDataResult;
25
+ //# sourceMappingURL=useAuditManagerData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditManagerData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditManagerData.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1G,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAYD,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,MAAM,EACN,UAAU,EACV,OAAc,GACf,EAAE,yBAAyB,GAAG,yBAAyB,CAwIvD"}
@@ -0,0 +1 @@
1
+ "use strict";var t=require("react"),e=require("../utils/auditUtils.js");const a={totalUnits:0,totalRequirements:0,overallComplianceRate:0,unitsFullyCompliant:0,unitsNeedingAttention:0,totalExpiringSoon:0,totalExpired:0};exports.useAuditManagerData=function({service:i,config:n,marketArea:r,enabled:l=!0}){const s=t.useRef(e.resolveAuditConfig(n));s.current=e.resolveAuditConfig(n);const[o,d]=t.useState([]),[u,c]=t.useState(a),[g,m]=t.useState(!1),[p,f]=t.useState(null),S=t.useCallback((async()=>{if(!l)return;const t=s.current;try{m(!0),f(null);const{nameField:a,idField:n,marketAreaField:l,tagsField:s}=t.unitFieldMapping,{groupField:o,categoryField:u,titleField:g,descriptionField:p,levelField:S,validityField:F,statusField:A}=t.requirementFieldMapping,R=await i.readDataMessages(t.tags.unit),q=r?R.filter((t=>String(t.data?.[l]??"")===r)):R,v=(await i.readDataMessages(t.tags.requirement)).filter((t=>"Active"===String(t.data?.[A]??"Active"))),h=await i.readDataMessages(t.tags.answer),x=q.map((i=>{const r=String(i.data?.[n]??i.id),o=String(i.data?.[a]??r),d=i.data?.[l],u=i.data?.[s],c=u?String(u).split(",").map((t=>t.trim())).filter(Boolean):[],g=v.filter((t=>{const e=Array.isArray(t.data?.tags)?t.data?.tags:[];return!e||0===e.length||e.some((t=>t.every((t=>c.includes(t)))))})),m=h.filter((t=>t.data?.unitId===r||t.data?.UnitId===r)),p=new Map;for(const t of m){const e=String(t.data?.requirementId??t.data?.RequirementId??"");e&&!p.has(e)&&p.set(e,t)}let f=0,S=0,F=0;for(const a of g){const i=p.get(String(a.id)),n=String(i?.data?.answer??i?.data?.Answer??"");if(e.isAnswerCompliant(n,t)){f++;const t=i?.data?.validUntil??i?.data?.ValidUntil;if(t){const a=e.calculateAuditTimeRemaining(String(t));a?.isExpired?S++:a?.isUrgent&&F++}}}const A=g.length;return{unitId:r,unitName:o,marketArea:d,totalRequirements:A,compliantRequirements:f,nonCompliantRequirements:A-f,complianceRate:A>0?Math.round(f/A*100):0,expiringSoon:F,expired:S}}));d(x);const y=x.reduce(((t,e)=>t+e.totalRequirements),0),M=x.reduce(((t,e)=>t+e.compliantRequirements),0),C=y>0?Math.round(M/y*100):0;c({totalUnits:x.length,totalRequirements:y,overallComplianceRate:C,unitsFullyCompliant:x.filter((t=>100===t.complianceRate)).length,unitsNeedingAttention:x.filter((t=>t.complianceRate<100)).length,totalExpiringSoon:x.reduce(((t,e)=>t+e.expiringSoon),0),totalExpired:x.reduce(((t,e)=>t+e.expired),0)})}catch(t){console.error("[useAuditManagerData] Failed to fetch manager data:",t),f(t instanceof Error?t.message:"Failed to fetch manager data")}finally{m(!1)}}),[i,r,l]);return t.useEffect((()=>{l&&S()}),[l,S]),{managerStats:u,unitStats:o,loading:g,error:p,reload:S,resolved:s.current}};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Filter state hook for the manager/oversight dashboard.
3
+ * State is persisted to sessionStorage so filters survive page navigation.
4
+ * @module codicent-app-sdk/hooks/useAuditManagerFilters
5
+ * @public
6
+ */
7
+ import type { AuditManagerFilterState, AuditUnitStats } from "../types/audit";
8
+ export interface UseAuditManagerFiltersResult {
9
+ filters: AuditManagerFilterState;
10
+ filteredUnits: AuditUnitStats[];
11
+ availableMarketAreas: string[];
12
+ updateFilters: (patch: Partial<AuditManagerFilterState>) => void;
13
+ clearFilters: () => void;
14
+ }
15
+ export declare function useAuditManagerFilters(units: AuditUnitStats[]): UseAuditManagerFiltersResult;
16
+ //# sourceMappingURL=useAuditManagerFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditManagerFilters.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditManagerFilters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAI9E,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,uBAAuB,CAAC;IACjC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAmBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,4BAA4B,CA8D5F"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react");const t="codicent_audit_manager_filters",s={complianceRates:[],statuses:[],marketAreas:[],search:""};function r(){try{const e=sessionStorage.getItem(t);if(e)return{...s,...JSON.parse(e)}}catch{}return s}exports.useAuditManagerFilters=function(a){const[n,i]=e.useState(r);e.useEffect((()=>{try{sessionStorage.setItem(t,JSON.stringify(n))}catch{}}),[n]);const c=e.useMemo((()=>[...new Set(a.map((e=>e.marketArea)).filter((e=>Boolean(e))))].sort()),[a]),o=e.useMemo((()=>{const e=n.search.toLowerCase();return a.filter((t=>{if(n.complianceRates.length>0){const e=t.complianceRate;if(!n.complianceRates.some((t=>"100"===t?100===e:"75-99"===t?e>=75&&e<100:"50-74"===t?e>=50&&e<75:"0-49"===t&&e<50)))return!1}if(n.statuses.length>0){const e=100===t.complianceRate;if(!(n.statuses.includes("fully-compliant")&&e||n.statuses.includes("needing-attention")&&!e))return!1}return!(n.marketAreas.length>0&&(!t.marketArea||!n.marketAreas.includes(t.marketArea)))&&!(e&&!t.unitName.toLowerCase().includes(e))}))}),[a,n]);return{filters:n,filteredUnits:o,availableMarketAreas:c,updateFilters:e=>i((t=>({...t,...e}))),clearFilters:()=>i(s)}};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview Filter state hook for the requirements editor (admin).
3
+ * @module codicent-app-sdk/hooks/useAuditRequirementsFilters
4
+ * @public
5
+ */
6
+ import type { AuditRequirement, AuditRequirementsFilterState } from "../types/audit";
7
+ export interface UseAuditRequirementsFiltersResult {
8
+ filters: AuditRequirementsFilterState;
9
+ filteredRequirements: AuditRequirement[];
10
+ availableGroups: string[];
11
+ availableCategories: string[];
12
+ availableTags: string[];
13
+ updateFilters: (patch: Partial<AuditRequirementsFilterState>) => void;
14
+ clearFilters: () => void;
15
+ }
16
+ export declare function useAuditRequirementsFilters(requirements: AuditRequirement[]): UseAuditRequirementsFiltersResult;
17
+ //# sourceMappingURL=useAuditRequirementsFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditRequirementsFilters.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditRequirementsFilters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAA0B,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE7G,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IACtC,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;IACzC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,4BAA4B,CAAC,KAAK,IAAI,CAAC;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAUD,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,iCAAiC,CAsD/G"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react");const t={groups:[],categories:[],tags:[],statuses:[],search:""};exports.useAuditRequirementsFilters=function(r){const[s,u]=e.useState(t),a=e.useMemo((()=>[...new Set(r.map((e=>e.group)).filter(Boolean))].sort()),[r]),o=e.useMemo((()=>{const e=s.groups.length>0?r.filter((e=>s.groups.includes(e.group))):r;return[...new Set(e.map((e=>e.category)).filter(Boolean))].sort()}),[r,s.groups]),i=e.useMemo((()=>{const e=r.flatMap((e=>e.tags.flat()));return[...new Set(e)].sort()}),[r]),n=e.useMemo((()=>{const e=s.search.toLowerCase();return r.filter((t=>{if(s.groups.length>0&&!s.groups.includes(t.group))return!1;if(s.categories.length>0&&!s.categories.includes(t.category))return!1;if(s.tags.length>0){const e=t.tags.flat();if(!s.tags.some((t=>e.includes(t))))return!1}if(s.statuses.length>0&&!s.statuses.includes(t.status))return!1;if(e){if(!`${t.title} ${t.group} ${t.category} ${t.description}`.toLowerCase().includes(e))return!1}return!0}))}),[r,s]);return{filters:s,filteredRequirements:n,availableGroups:a,availableCategories:o,availableTags:i,updateFilters:e=>u((t=>({...t,...e}))),clearFilters:()=>u(t)}};
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview Role-check hook for the generic audit feature.
3
+ * Wraps useUserRoles and maps raw role strings to typed AuditRole tiers.
4
+ * @module codicent-app-sdk/hooks/useAuditRoleCheck
5
+ * @public
6
+ */
7
+ import type { CodicentService } from "../services/codicent";
8
+ import type { AuditConfig, AuditRole, AuditRoleCapabilities } from "../types/audit";
9
+ export interface UseAuditRoleCheckParams {
10
+ service: CodicentService;
11
+ /** The current user's nickname / display name */
12
+ nickname: string | null | undefined;
13
+ config: AuditConfig | Partial<AuditConfig>;
14
+ }
15
+ export interface UseAuditRoleCheckResult {
16
+ role: AuditRole;
17
+ capabilities: AuditRoleCapabilities;
18
+ /** Assigned manager area (relevant for Manager role) */
19
+ managerArea?: string;
20
+ /** Assigned unit ID (relevant for Auditor role) */
21
+ unitId?: string;
22
+ loading: boolean;
23
+ error: string | null;
24
+ }
25
+ export declare function useAuditRoleCheck({ service, nickname, config }: UseAuditRoleCheckParams): UseAuditRoleCheckResult;
26
+ //# sourceMappingURL=useAuditRoleCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditRoleCheck.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditRoleCheck.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIpF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,qBAAqB,CAAC;IACpC,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAeD,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,uBAAuB,GAAG,uBAAuB,CAqEjH"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("react"),t=require("../utils/auditUtils.js"),r=require("../utils/MessageContent.js");exports.useAuditRoleCheck=function({service:i,nickname:a,config:n}){const s=t.resolveAuditConfig(n).tags.role,[o,u]=e.useState("Auditor"),[l,c]=e.useState(),[d,g]=e.useState(),[f,m]=e.useState(!0),[A,C]=e.useState(null),k=e.useCallback((async()=>{if(a)try{m(!0),C(null);const e=await i.getMessagesFast([s],void 0,200),t=a.toLowerCase(),n=e.find((e=>{const i=new r.default(e.content).data;if(!i)return!1;const a=String(i.username??i.email??i.user??"").toLowerCase(),n=String(i.nicknames??"").toLowerCase().split(",").map((e=>e.trim()));return a===t||n.includes(t)}));if(n){const e=new r.default(n.content).data,t=function(e){const t=e.trim().toLowerCase();return"admin"===t?"Admin":"manager"===t||"marketingunit"===t||"marketing_unit"===t?"Manager":"Auditor"}(String(e.role??""));u(t),c(e.marketArea),g(e.unitId??e.dealerId)}else e.length>0&&(u("Auditor"),c(void 0),g(void 0))}catch(e){console.error("[useAuditRoleCheck] Failed to fetch roles:",e),C(e instanceof Error?e.message:"Failed to fetch roles"),u("Auditor")}finally{m(!1)}else m(!1)}),[i,a,s]);return e.useEffect((()=>{k()}),[k]),{role:o,capabilities:t.getAuditRoleCapabilities(o),managerArea:l,unitId:d,loading:f,error:A}};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview Central state hook for the generic audit feature.
3
+ * Generic equivalent of penta_audit's usePentaState.
4
+ * @module codicent-app-sdk/hooks/useAuditState
5
+ * @public
6
+ */
7
+ import type { CodicentService } from "../services/codicent";
8
+ import type { AuditAnswer, AuditRequirement, ResolvedAuditConfig } from "../types/audit";
9
+ import type { AuditConfig } from "../types/audit";
10
+ export interface UseAuditStateParams {
11
+ service: CodicentService;
12
+ /** The ID/handle of the unit the current user is auditing */
13
+ unitId: string | null | undefined;
14
+ /** Full audit config (will be resolved internally) */
15
+ config: AuditConfig | Partial<AuditConfig>;
16
+ /** Set false to skip fetching (e.g., while not yet authenticated) */
17
+ enabled?: boolean;
18
+ }
19
+ export interface UseAuditStateResult {
20
+ unitId: string | null;
21
+ /** Raw unit record data */
22
+ unit: Record<string, unknown> | null;
23
+ requirements: AuditRequirement[];
24
+ answers: AuditAnswer[];
25
+ loading: boolean;
26
+ error: string | null;
27
+ resolved: ResolvedAuditConfig;
28
+ /** Reload all data from the backend */
29
+ loadAuditData: () => Promise<void>;
30
+ /** Save an updated answer for one requirement */
31
+ updateAnswer: (requirementId: string, answerValue: string, comment?: string, photos?: string, complianceDate?: string) => Promise<void>;
32
+ }
33
+ export declare function useAuditState({ service, unitId, config, enabled }: UseAuditStateParams): UseAuditStateResult;
34
+ //# sourceMappingURL=useAuditState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuditState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuditState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAA0B,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQjH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,sDAAsD;IACtD,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,uCAAuC;IACvC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,iDAAiD;IACjD,YAAY,EAAE,CACZ,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAMD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAc,EAAE,EAAE,mBAAmB,GAAG,mBAAmB,CAiNnH"}
@@ -0,0 +1 @@
1
+ "use strict";var t=require("react"),e=require("../utils/auditUtils.js");exports.useAuditState=function({service:i,unitId:a,config:n,enabled:r=!0}){const d=e.resolveAuditConfig(n),[l,s]=t.useState(null),[o,u]=t.useState([]),[c,g]=t.useState([]),[p,m]=t.useState(!1),[v,F]=t.useState(null),M=t.useRef(d);M.current=d;const y=t.useCallback((async()=>{if(!a||!r)return;const t=M.current;try{m(!0),F(null);const n=await i.readDataMessages(t.tags.unit),r=t.unitFieldMapping.nameField,d=t.unitFieldMapping.idField,l=(t.unitFieldMapping.marketAreaField,t.unitFieldMapping.tagsField),o=n.find((t=>String(t.data?.[d]??"")===a||String(t.data?.[r]??"")===a));s(o?.data??null);const c=await i.readDataMessages(t.tags.requirement),p=t.requirementFieldMapping.groupField,v=t.requirementFieldMapping.categoryField,M=t.requirementFieldMapping.titleField,y=t.requirementFieldMapping.descriptionField,S=t.requirementFieldMapping.levelField,f=t.requirementFieldMapping.validityField,w=t.requirementFieldMapping.statusField,h=c.filter((t=>"Active"===String(t.data?.[w]??"Active"))).map((i=>{const a=i.data?.[f];return{id:String(i.id),originalMessageId:String(i.id),title:String(i.data?.[M]??""),group:String(i.data?.[p]??""),category:String(i.data?.[v]??""),description:String(i.data?.[y]??""),level:Number(i.data?.[S]??1),validityPeriodMonths:e.parseValidityPeriod(null!=a?String(a):void 0,t.defaultValidityPeriodMonths),status:"Active",tags:Array.isArray(i.data?.tags)?i.data?.tags:[]}}));u(h);const q=o?.data?.[l]?String(o.data[l]).split(",").map((t=>t.trim())).filter(Boolean):[],A=(await i.readDataMessages(t.tags.answer)).filter((t=>t.data?.unitId===a||t.data?.UnitId===a)),I=new Map;for(const t of A){const e=String(t.data?.requirementId??t.data?.RequirementId??"");e&&(I.has(e)||I.set(e,t))}const D=h.filter((t=>!t.tags||0===t.tags.length||t.tags.some((t=>t.every((t=>q.includes(t))))))).map((i=>{const a=I.get(i.id),n=a?.data??{},r=String(n.answer??n.Answer??""),d=n.complianceDate??n.ComplianceDate;let l=n.validUntil??n.ValidUntil;return!l&&r&&e.isAnswerCompliant(r,t)&&d&&(l=e.calcValidUntil(d,i.validityPeriodMonths)??void 0),{id:String(a?.id??`new_${i.id}`),requirementId:i.id,title:i.title,group:i.group,category:i.category,description:i.description,level:i.level,validFor:e.formatValidityPeriod(i.validityPeriodMonths),answer:r,comment:n.comment,photos:n.photos,complianceDate:d,validUntil:l,validityPeriodMonths:i.validityPeriodMonths??void 0}}));g(D)}catch(t){console.error("[useAuditState] Failed to load audit data:",t),F(t instanceof Error?t.message:"Failed to load audit data")}finally{m(!1)}}),[i,a,r]);t.useEffect((()=>{a&&r&&y()}),[a,r,y]);const S=t.useCallback((async(t,n,r,d,l)=>{const s=M.current;if(!a)return;const u=o.find((e=>e.id===t));if(!u)return;const c=e.isAnswerCompliant(n,s),p=l??(c?(new Date).toISOString():void 0),m=p?e.calcValidUntil(p,u.validityPeriodMonths)??void 0:void 0,v={requirementId:t,unitId:a,answer:n,comment:r,photos:d,complianceDate:p,validUntil:m,validityPeriodMonths:u.validityPeriodMonths};g((e=>e.map((e=>e.requirementId===t?{...e,answer:n,comment:r,photos:d,complianceDate:p,validUntil:m}:e))));try{await i.createDataMessage(s.tags.answer,v)}catch(t){throw console.error("[useAuditState] Failed to save answer:",t),await y(),t}}),[i,a,o,y]);return{unitId:a??null,unit:l,requirements:o,answers:c,loading:p,error:v,resolved:d,loadAuditData:y,updateAnswer:S}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("react/jsx-runtime"),require("@fluentui/react-components"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../config/index.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./useLocalization.js"),require("./useAppStyles.js"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../pages/AppFrame.js"),require("../pages/Canvas.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Menu.js"),require("../pages/Log.js"),require("../pages/Login.js"),require("../pages/Home.js"),require("../pages/ListPage.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("react-router-dom"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");exports.default=(o,n)=>{const{isAuthenticated:i,getAccessTokenSilently:t,user:a,isLoading:u,logout:c,getAccessTokenWithPopup:l,loginWithRedirect:g,loginWithPopup:p}=o,[q,j]=e.useState(null),[m,C]=e.useState(void 0),[P,E]=e.useState(null),[d,_]=e.useState(""),S=e.useMemo((()=>new r.CodicentService({API_BASE_URL:s.getConfigValue("API_BASE_URL"),PUBSUB_URL:s.getConfigValue("PUBSUB_URL"),APP_LOG_CODICENT:s.getConfigValue("APP_LOG_CODICENT"),APP_LOG_TOKEN:s.getConfigValue("APP_LOG_TOKEN"),APP_NAME:s.getConfigValue("APP_NAME"),APP_PREFIX:s.getConfigValue("APP_PREFIX"),APP_TEMPLATE:s.getConfigValue("APP_TEMPLATE"),BUTTON_TAG:s.getConfigValue("BUTTON_TAG"),STRIPE_PUBLIC_KEY:s.getConfigValue("STRIPE_PUBLIC_KEY"),STRIPE_SOURCE:s.getConfigValue("STRIPE_SOURCE"),STRIPE_TRIAL_PERIOD_DAYS:s.getConfigValue("STRIPE_TRIAL_PERIOD_DAYS"),SUBSCRIPTION_NEEDED:s.getConfigValue("SUBSCRIPTION_NEEDED"),USER_PREFIX:s.getConfigValue("USER_PREFIX"),ANONYMOUS_TOKEN:s.getConfigValue("ANONYMOUS_TOKEN")})),[]);e.useEffect((()=>{!u&&i&&(async()=>{try{const e=await t({});console.debug("CODICENT: ACCESS TOKEN",e),j(e)}catch(e){console.debug("CODICENT: Failed to get access token",e);const r=e;if(r&&"object"==typeof r&&"error"in r&&"login_required"===r.error)console.warn("CODICENT: Session expired (login_required)"),j(null);else if(r&&"object"==typeof r&&"error"in r&&"consent_required"===r.error)try{const e=await l();if(!e)return void E("Failed to get access token: no token from auth0 with popup");console.log("CODICENT: GOT ACCESS TOKEN"),j(e)}catch(e){console.warn("CODICENT: Failed to get access token with popup",e),E("Samtycke krävs för inloggning. Tillåt popup-fönster och försök igen."),j(null)}else E("Failed to get access token: "+(r.message?.toString()||r.toString())),console.log("CODICENT: ACCESS TOKEN ERROR",r)}})().then((()=>{}))}),[i,l,t,g,u]),e.useEffect((()=>{if(a&&a.sub&&q&&void 0===m){let e=!0;return(n?.loginFn?n.loginFn(S,a.sub,q):S.loginUser(a.sub,q)).then((r=>{e&&(null===r?C(!1):""===r?E("Kontrollera internetanslutningen och försök igen."):(S.setToken(r),S.getNickname().then(_),C(!0)))})).catch((()=>{e&&(E("Ett fel uppstod. Försök igen senare."),C(!1))})),()=>{e=!1}}}),[a,q,m,S]);const T=e.useCallback((()=>{S.logout(),j(null),E(null),C(void 0),_(""),c({logoutParams:{returnTo:s.getConfigValue("AUTH_REDIRECT_URL")}})}),[S,c]),f=e.useCallback((async e=>{const r=n?.registerFn?await n.registerFn(S,e,a.email,a.sub,q):await S.registerUser(e,a.email,a.sub,q);return r&&(S.setToken(r),C(!0)),r}),[S,a,q]);e.useEffect((()=>{S.onUnauthorized=T}),[S]);const A=e.useCallback((async e=>{try{await p({authorizationParams:{connection:"email",login_hint:e}})}catch(e){console.error("Passwordless login failed:",e),E(`Passwordless login failed: ${e}`)}}),[p]);return e.useMemo((()=>({isAuthenticated:i,isRegistered:m,accessToken:q,authError:P,isLoading:u,user:a,nickname:d,logout:T,registerUser:f,codicentService:S,loginWithRedirect:g,loginPasswordless:A})),[i,m,q,P,u,a,d,T,f,S,g,A])};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("react/jsx-runtime"),require("@fluentui/react-components"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../config/index.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./useLocalization.js"),require("./useAppStyles.js"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js"),require("../pages/AppFrame.js"),require("../pages/Canvas.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Menu.js"),require("../pages/Log.js"),require("../pages/Login.js"),require("../pages/Home.js"),require("../pages/ListPage.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("react-router-dom"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");exports.default=(o,i)=>{const{isAuthenticated:t,getAccessTokenSilently:n,user:u,isLoading:a,logout:c,getAccessTokenWithPopup:l,loginWithRedirect:g,loginWithPopup:p}=o,[d,q]=e.useState(null),[m,j]=e.useState(void 0),[C,P]=e.useState(null),[E,_]=e.useState(""),A=e.useMemo((()=>new r.CodicentService({API_BASE_URL:s.getConfigValue("API_BASE_URL"),PUBSUB_URL:s.getConfigValue("PUBSUB_URL"),APP_LOG_CODICENT:s.getConfigValue("APP_LOG_CODICENT"),APP_LOG_TOKEN:s.getConfigValue("APP_LOG_TOKEN"),APP_NAME:s.getConfigValue("APP_NAME"),APP_PREFIX:s.getConfigValue("APP_PREFIX"),APP_TEMPLATE:s.getConfigValue("APP_TEMPLATE"),BUTTON_TAG:s.getConfigValue("BUTTON_TAG"),STRIPE_PUBLIC_KEY:s.getConfigValue("STRIPE_PUBLIC_KEY"),STRIPE_SOURCE:s.getConfigValue("STRIPE_SOURCE"),STRIPE_TRIAL_PERIOD_DAYS:s.getConfigValue("STRIPE_TRIAL_PERIOD_DAYS"),SUBSCRIPTION_NEEDED:s.getConfigValue("SUBSCRIPTION_NEEDED"),USER_PREFIX:s.getConfigValue("USER_PREFIX"),ANONYMOUS_TOKEN:s.getConfigValue("ANONYMOUS_TOKEN")})),[]);e.useEffect((()=>{!a&&t&&(async()=>{try{const e=await n({});console.debug("CODICENT: ACCESS TOKEN",e),q(e)}catch(e){console.debug("CODICENT: Failed to get access token",e);const r=e;if(r&&"object"==typeof r&&"error"in r&&"login_required"===r.error)console.warn("CODICENT: Session expired (login_required)"),q(null);else if(r&&"object"==typeof r&&"error"in r&&"consent_required"===r.error)try{const e=await l();if(!e)return void P("Failed to get access token: no token from auth0 with popup");console.log("CODICENT: GOT ACCESS TOKEN"),q(e)}catch(e){console.warn("CODICENT: Failed to get access token with popup",e),P("Samtycke krävs för inloggning. Tillåt popup-fönster och försök igen."),q(null)}else P("Failed to get access token: "+(r.message?.toString()||r.toString())),console.log("CODICENT: ACCESS TOKEN ERROR",r)}})().then((()=>{}))}),[t,l,n,g,a]),e.useEffect((()=>{if(u&&u.sub&&d&&void 0===m){let e=!0;return(i?.loginFn?i.loginFn(A,u.sub,d):A.loginUser(u.sub,d)).then((r=>{e&&(null===r?j(!1):""===r?P("Kontrollera internetanslutningen och försök igen."):(A.setToken(r),A.getNickname().then(_),j(!0)))})).catch((()=>{e&&(P("Ett fel uppstod. Försök igen senare."),j(!1))})),()=>{e=!1}}}),[u,d,m,A]);const S=e.useCallback((()=>{A.logout(),q(null),P(null),j(void 0),_(""),c({logoutParams:{returnTo:s.getConfigValue("AUTH_REDIRECT_URL")}})}),[A,c]),T=e.useCallback((async e=>{const r=i?.registerFn?await i.registerFn(A,e,u.email,u.sub,d):await A.registerUser(e,u.email,u.sub,d);return r&&(A.setToken(r),j(!0)),r}),[A,u,d]);e.useEffect((()=>{A.onUnauthorized=S}),[A]);const f=e.useCallback((async e=>{try{await p({authorizationParams:{connection:"email",login_hint:e}})}catch(e){console.error("Passwordless login failed:",e),P(`Passwordless login failed: ${e}`)}}),[p]);return e.useMemo((()=>({isAuthenticated:t,isRegistered:m,accessToken:d,authError:C,isLoading:a,user:u,nickname:E,logout:S,registerUser:T,codicentService:A,loginWithRedirect:g,loginPasswordless:f})),[t,m,d,C,a,u,E,S,T,A,g,f])};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./useStateWithLocalStorage.js");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("react/jsx-runtime"),require("@fluentui/react-components"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../config/index.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./useLocalization.js"),require("./useAppStyles.js"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../pages/AppFrame.js"),require("../pages/Canvas.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Menu.js"),require("../pages/Log.js"),require("../pages/Login.js"),require("../pages/Home.js"),require("../pages/ListPage.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("react-router-dom"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");exports.default=t=>{const[o,i]=r.default("APP_WELCOME_STATE_TEXT_"+t.context.selectedApp,""),[n,a]=r.default("CODICENT_STATE_LAST_TIMESTAMP_"+t.context.selectedApp,0),{service:u,current:c}=t,[p,q]=e.useState(!1),l=e.useRef(!1),j=e.useCallback((async()=>{if(!l.current){l.current=!0;try{const e=await u.getMessagesFast(s.getConfigValue("LOGBOOK_TAGS").split(",").filter((e=>"chat"!==e))),r=e.length>0?e[0].createdAt.getTime():n;if(r>n){a(r),q(!0);const e=await u.chat(s.getConfigValue("WELCOME_STATUS_PROMPT"));i(e.content)}}finally{q(!1),l.current=!1}}}),[u,n,a,i]),g=e.useCallback((()=>{u&&s.getConfigValue("CHAT_INSTRUCTIONS")}),[u]);return e.useEffect((()=>{c===t.allStates.hasAccess&&s.getConfigValue("WELCOME_STATUS_PROMPT")?(j(),g()):s.getConfigValue("WELCOME_STATUS_PROMPT")||i("")}),[c,t,j,g,i]),{welcomeStatusText:o,updating:p}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./useStateWithLocalStorage.js");require("../services/codicent.js"),require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("react/jsx-runtime"),require("@fluentui/react-components"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../config/index.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./useLocalization.js"),require("./useAppStyles.js"),require("../components/FileThumbnail.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/Page.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js"),require("../pages/AppFrame.js"),require("../pages/Canvas.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Menu.js"),require("../pages/Log.js"),require("../pages/Login.js"),require("../pages/Home.js"),require("../pages/ListPage.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("react-router-dom"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");exports.default=t=>{const[i,o]=r.default("APP_WELCOME_STATE_TEXT_"+t.context.selectedApp,""),[u,n]=r.default("CODICENT_STATE_LAST_TIMESTAMP_"+t.context.selectedApp,0),{service:a,current:c}=t,[p,q]=e.useState(!1),l=e.useRef(!1),j=e.useCallback((async()=>{if(!l.current){l.current=!0;try{const e=await a.getMessagesFast(s.getConfigValue("LOGBOOK_TAGS").split(",").filter((e=>"chat"!==e))),r=e.length>0?e[0].createdAt.getTime():u;if(r>u){n(r),q(!0);const e=await a.chat(s.getConfigValue("WELCOME_STATUS_PROMPT"));o(e.content)}}finally{q(!1),l.current=!1}}}),[a,u,n,o]),m=e.useCallback((()=>{a&&s.getConfigValue("CHAT_INSTRUCTIONS")}),[a]);return e.useEffect((()=>{c===t.allStates.hasAccess&&s.getConfigValue("WELCOME_STATUS_PROMPT")?(j(),m()):s.getConfigValue("WELCOME_STATUS_PROMPT")||o("")}),[c,t,j,m,o]),{welcomeStatusText:i,updating:p}};
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./services/codicent.js"),r=require("./services/dataCache.js"),s=require("./components/Markdown.js"),o=require("./components/Textarea.js"),t=require("./components/Button.js"),a=require("./components/CompoundButton.js"),i=require("./components/Title.js"),p=require("./components/Text.js"),u=require("./components/Spinner.js"),n=require("./components/Label.js"),l=require("./components/Input.js"),c=require("./components/TextHeader.js"),x=require("./components/TypingIndicator.js"),d=require("./components/Prompt.js"),g=require("./components/ChatInput.js"),j=require("./components/CombinedPlaceholderDialog.js"),q=require("./components/ChatMessage.js"),m=require("./components/Header.js"),h=require("./components/VoiceIcon.js"),f=require("./components/AudioIcon.js"),C=require("./components/FileThumbnail.js"),S=require("./components/MessageInput.js"),P=require("./components/UploadFile.js"),k=require("./components/SnapFooter.js"),M=require("./components/Profile.js"),b=require("./components/MessageItem.js"),A=require("./components/Content.js"),T=require("./components/AiInput.js"),L=require("./components/SearchBox.js"),v=require("./components/DataMessagePicker.js"),I=require("./components/HtmlView.js"),D=require("./components/Footer.js"),w=require("./components/Page.js"),B=require("./components/UrlProcessor.js"),F=require("./components/DatePicker.js"),V=require("./components/ColorPicker.js"),R=require("./components/TimePicker.js"),H=require("./components/QrCodeDialog.js"),U=require("./components/QrScanner.js"),y=require("./components/GenericJsonRenderer.js"),E=require("./components/ErrorBoundary.js"),O=require("./components/OfflineMessage.js"),W=require("./components/LanguageSelector.js"),Q=require("./components/ListView.js"),_=require("./components/RecordModal.js"),G=require("./components/BulkUploadDialog.js"),z=require("./components/CookieBanner.js"),J=require("./hooks/useStateWithLocalStorage.js"),K=require("./hooks/useAuthState.js"),N=require("./hooks/useChat.js"),X=require("./hooks/useCodicentState.js"),Y=require("./hooks/useAudioRecorder.js"),Z=require("./hooks/useTools.js"),$=require("./hooks/useRealtimeVoiceAI.js"),ee=require("./hooks/useLocalization.js"),re=require("./hooks/useTemplateVariables.js"),se=require("./hooks/useCodicentApp.js"),oe=require("./hooks/useAppStyles.js"),te=require("./hooks/useToaster.js"),ae=require("./hooks/useDebugLogs.js"),ie=require("./hooks/useObserveDataSchemas.js"),pe=require("./hooks/useOnlineStatus.js"),ue=require("./hooks/useUserRoles.js"),ne=require("./utils/MessageContent.js"),le=require("./utils/theme.js"),ce=require("./utils/logging.js"),xe=require("./utils/withWakeLock.js"),de=require("./utils/appState.js"),ge=require("./_virtual/index.js");require("./lib/wavtools/lib/wav_packer.js"),require("./lib/wavtools/lib/analysis/audio_analysis.js");var je=require("./lib/wavtools/lib/wav_stream_player.js"),qe=require("./lib/wavtools/lib/wav_recorder.js"),me=require("./utils/device.js"),he=require("./utils/excelExport.js"),fe=require("./utils/helpers.js"),Ce=require("./utils/cacheManager.js"),Se=require("./config/index.js"),Pe=require("./pages/AppFrame.js"),ke=require("./pages/Canvas.js"),Me=require("./pages/Chat.js"),be=require("./pages/Compose.js"),Ae=require("./pages/Snap.js"),Te=require("./pages/Search.js"),Le=require("./pages/Menu.js"),ve=require("./pages/Log.js"),Ie=require("./pages/Login.js"),De=require("./pages/Logout.js"),we=require("./pages/Home.js"),Be=require("./pages/ListPage.js"),Fe=require("./pages/CrmPage.js"),Ve=require("./pages/CrmPagePersistent.js"),Re=require("./pages/ImageView.js"),He=require("./pages/FormInvite.js"),Ue=require("./pages/FormAccept.js"),ye=require("./pages/Sales.js"),Ee=require("./pages/HtmlViewer.js"),Oe=require("./pages/Purchase.js"),We=require("./pages/Help.js"),Qe=require("./pages/Debug.js"),_e=require("./pages/SchemaEditor.js"),Ge=require("./pages/QrScan.js"),ze=require("./pages/FormPage.js"),Je=require("./bootstrap.js");exports.CodicentService=e.CodicentService,exports.setBaseUrl=e.setBaseUrl,exports.setSignalRHost=e.setSignalRHost,exports.dataCache=r.dataCache,exports.Markdown=s.default,exports.Textarea=o.Textarea,exports.Button=t.Button,exports.CompoundButton=a.CompoundButton,exports.Title=i.Title,exports.Text=p.Text,exports.Spinner=u.Spinner,exports.Label=n.Label,exports.Input=l.Input,exports.TextHeader=c.default,exports.TypingIndicator=x.default,exports.Prompt=d.default,exports.ChatInput=g.default,exports.CombinedPlaceholderDialog=j.CombinedPlaceholderDialog,exports.ChatMessage=q.default,exports.Header=m.Header,exports.VoiceIcon=h.default,exports.AudioIcon=f.default,exports.FileThumbnail=C.FileThumbnail,exports.MessageInput=S.default,exports.UploadFile=P.default,exports.SnapFooter=k.default,exports.Profile=M.default,exports.MessageItem=b.default,exports.Content=A.default,exports.AiInput=T.default,exports.SearchBox=L.default,exports.DataMessagePicker=v.default,exports.HtmlView=I.default,exports.Footer=D.Footer,exports.Page=w.Page,exports.UrlProcessor=B.UrlProcessor,exports.DatePicker=F.DatePicker,exports.ColorPicker=V.ColorPicker,exports.TimePicker=R.TimePicker,exports.QrCodeDialog=H.QrCodeDialog,exports.QrScanner=U.default,exports.GenericJsonRenderer=y.default,exports.ErrorBoundary=E.default,exports.OfflineMessage=O.default,exports.LanguageSelector=W.LanguageSelector,exports.ListView=Q.default,exports.RecordModal=_.RecordModal,exports.BulkUploadDialog=G.default,exports.CookieBanner=z.CookieBanner,exports.useStateWithLocalStorage=J.default,exports.useAuthState=K.default,exports.useChat=N.useChat,exports.useCodicentState=X.default,exports.useAudioRecorder=Y.useAudioRecorder,exports.useTools=Z.default,exports.useRealtimeVoiceAI=$.default,exports.useLocalization=ee.default,exports.useTemplateVariables=re.useTemplateVariables,exports.useCodicentApp=se.useCodicentApp,exports.useAppStyles=oe.default,exports.useToaster=te.default,exports.useDebugLogs=ae.default,exports.useObserveDataSchemas=ie.useObserveDataSchemas,exports.useOnlineStatus=pe.useOnlineStatus,exports.useUserRoles=ue.useUserRoles,exports.MessageContent=ne.default,exports.generateBrandVariants=le.default,exports.log=ce.default,exports.withWakeLock=xe.default,exports.AppStateMachine=de.AppStateMachine,exports.createAppStateMachine=de.createAppStateMachine,exports.WavStreamPlayer=je.WavStreamPlayer,exports.WavRecorder=qe.WavRecorder,exports.getGpsLocation=me.getGpsLocation,exports.isMobileDevice=me.isMobileDevice,exports.exportToExcel=he.exportToExcel,exports.getTimeString=fe.getTimeString,exports.CacheManager=Ce.CacheManager,exports.stateMachineCacheManager=Ce.stateMachineCacheManager,exports.AppConfig=Se.AppConfig,exports.getConfigValue=Se.getConfigValue,exports.initCodicentApp=Se.initCodicentApp,exports.AppFrame=Pe.default,exports.Canvas=ke.default,exports.Chat=Me.default,exports.Compose=be.Compose,exports.Snap=Ae.default,exports.Search=Te.default,exports.Menu=Le.Menu,exports.Log=ve.Log,exports.Login=Ie.default,exports.Logout=De.Logout,exports.Home=we.Home,exports.ListPage=Be.ListPage,exports.CrmPage=Fe.CrmPage,exports.CrmPagePersistent=Ve.CrmPagePersistent,exports.ImageView=Re.default,exports.FormInvite=He.default,exports.FormAccept=Ue.default,exports.Sales=ye.Sales,exports.HtmlViewer=Ee.default,exports.Purchase=Oe.Purchase,exports.Help=We.default,exports.Debug=Qe.default,exports.SchemaEditor=_e.default,exports.QrScan=Ge.default,exports.FormPage=ze.default,exports.createCodicentApp=Je.createCodicentApp,exports.StateMachine=ge.distExports.StateMachine;
1
+ "use strict";var e=require("./services/codicent.js"),r=require("./services/dataCache.js"),t=require("./components/Markdown.js"),s=require("./components/Textarea.js"),o=require("./components/Button.js"),i=require("./components/CompoundButton.js"),a=require("./components/Title.js"),u=require("./components/Text.js"),p=require("./components/Spinner.js"),n=require("./components/Label.js"),l=require("./components/Input.js"),d=require("./components/TextHeader.js"),c=require("./components/TypingIndicator.js"),x=require("./components/Prompt.js"),g=require("./components/ChatInput.js"),m=require("./components/CombinedPlaceholderDialog.js"),A=require("./components/ChatMessage.js"),q=require("./components/Header.js"),j=require("./components/VoiceIcon.js"),h=require("./components/AudioIcon.js"),C=require("./components/FileThumbnail.js"),P=require("./components/MessageInput.js"),S=require("./components/UploadFile.js"),f=require("./components/SnapFooter.js"),k=require("./components/Profile.js"),D=require("./components/MessageItem.js"),T=require("./components/Content.js"),M=require("./components/AiInput.js"),I=require("./components/SearchBox.js"),F=require("./components/DataMessagePicker.js"),b=require("./components/HtmlView.js"),R=require("./components/Footer.js"),U=require("./components/Page.js"),L=require("./components/UrlProcessor.js"),v=require("./components/DatePicker.js"),B=require("./components/ColorPicker.js"),w=require("./components/TimePicker.js"),H=require("./components/QrCodeDialog.js"),V=require("./components/QrScanner.js"),E=require("./components/GenericJsonRenderer.js"),y=require("./components/ErrorBoundary.js"),O=require("./components/OfflineMessage.js"),_=require("./components/LanguageSelector.js"),W=require("./components/ListView.js"),G=require("./components/RecordModal.js"),Q=require("./components/BulkUploadDialog.js"),J=require("./components/CookieBanner.js"),z=require("./components/audit/AuditCircularProgress.js"),N=require("./components/audit/AuditHorizontalProgress.js"),K=require("./components/audit/AuditRoleIndicator.js"),X=require("./components/audit/AuditUnitSwitcher.js"),Y=require("./components/audit/AuditAnswerCell.js"),Z=require("./components/audit/AuditSearchBar.js"),$=require("./components/audit/AuditFilterChips.js"),ee=require("./components/audit/AuditFilterBar.js"),re=require("./components/audit/AuditGroupsProgress.js"),te=require("./components/audit/AuditSummaryDashboard.js"),se=require("./components/audit/AuditRequirementDialog.js"),oe=require("./components/audit/AuditUnitExportDialog.js"),ie=require("./components/audit/AuditUnitImportDialog.js"),ae=require("./components/audit/AuditBulkExportDialog.js"),ue=require("./components/audit/AuditBulkUploadDialog.js"),pe=require("./components/audit/AuditSortPresets.js"),ne=require("./hooks/useStateWithLocalStorage.js"),le=require("./hooks/useAuthState.js"),de=require("./hooks/useChat.js"),ce=require("./hooks/useCodicentState.js"),xe=require("./hooks/useAudioRecorder.js"),ge=require("./hooks/useTools.js"),me=require("./hooks/useRealtimeVoiceAI.js"),Ae=require("./hooks/useLocalization.js"),qe=require("./hooks/useTemplateVariables.js"),je=require("./hooks/useCodicentApp.js"),he=require("./hooks/useAppStyles.js"),Ce=require("./hooks/useToaster.js"),Pe=require("./hooks/useDebugLogs.js"),Se=require("./hooks/useObserveDataSchemas.js"),fe=require("./hooks/useOnlineStatus.js"),ke=require("./hooks/useUserRoles.js"),De=require("./hooks/useAuditState.js"),Te=require("./hooks/useAuditRoleCheck.js"),Me=require("./hooks/useAuditFilters.js"),Ie=require("./hooks/useAuditRequirementsFilters.js"),Fe=require("./hooks/useAuditManagerFilters.js"),be=require("./hooks/useAuditManagerData.js"),Re=require("./utils/MessageContent.js"),Ue=require("./utils/theme.js"),Le=require("./utils/logging.js"),ve=require("./utils/withWakeLock.js"),Be=require("./utils/appState.js"),we=require("./_virtual/index.js");require("./lib/wavtools/lib/wav_packer.js"),require("./lib/wavtools/lib/analysis/audio_analysis.js");var He=require("./lib/wavtools/lib/wav_stream_player.js"),Ve=require("./lib/wavtools/lib/wav_recorder.js"),Ee=require("./utils/device.js"),ye=require("./utils/excelExport.js"),Oe=require("./utils/helpers.js"),_e=require("./utils/cacheManager.js"),We=require("./utils/auditUtils.js"),Ge=require("./utils/auditExport.js"),Qe=require("./config/index.js"),Je=require("./pages/AppFrame.js"),ze=require("./pages/Canvas.js"),Ne=require("./pages/Chat.js"),Ke=require("./pages/Compose.js"),Xe=require("./pages/Snap.js"),Ye=require("./pages/Search.js"),Ze=require("./pages/Menu.js"),$e=require("./pages/Log.js"),er=require("./pages/Login.js"),rr=require("./pages/Logout.js"),tr=require("./pages/Home.js"),sr=require("./pages/ListPage.js"),or=require("./pages/CrmPage.js"),ir=require("./pages/CrmPagePersistent.js"),ar=require("./pages/ImageView.js"),ur=require("./pages/FormInvite.js"),pr=require("./pages/FormAccept.js"),nr=require("./pages/Sales.js"),lr=require("./pages/HtmlViewer.js"),dr=require("./pages/Purchase.js"),cr=require("./pages/Help.js"),xr=require("./pages/Debug.js"),gr=require("./pages/SchemaEditor.js"),mr=require("./pages/QrScan.js"),Ar=require("./pages/FormPage.js"),qr=require("./bootstrap.js");exports.CodicentService=e.CodicentService,exports.setBaseUrl=e.setBaseUrl,exports.setSignalRHost=e.setSignalRHost,exports.dataCache=r.dataCache,exports.Markdown=t.default,exports.Textarea=s.Textarea,exports.Button=o.Button,exports.CompoundButton=i.CompoundButton,exports.Title=a.Title,exports.Text=u.Text,exports.Spinner=p.Spinner,exports.Label=n.Label,exports.Input=l.Input,exports.TextHeader=d.default,exports.TypingIndicator=c.default,exports.Prompt=x.default,exports.ChatInput=g.default,exports.CombinedPlaceholderDialog=m.CombinedPlaceholderDialog,exports.ChatMessage=A.default,exports.Header=q.Header,exports.VoiceIcon=j.default,exports.AudioIcon=h.default,exports.FileThumbnail=C.FileThumbnail,exports.MessageInput=P.default,exports.UploadFile=S.default,exports.SnapFooter=f.default,exports.Profile=k.default,exports.MessageItem=D.default,exports.Content=T.default,exports.AiInput=M.default,exports.SearchBox=I.default,exports.DataMessagePicker=F.default,exports.HtmlView=b.default,exports.Footer=R.Footer,exports.Page=U.Page,exports.UrlProcessor=L.UrlProcessor,exports.DatePicker=v.DatePicker,exports.ColorPicker=B.ColorPicker,exports.TimePicker=w.TimePicker,exports.QrCodeDialog=H.QrCodeDialog,exports.QrScanner=V.default,exports.GenericJsonRenderer=E.default,exports.ErrorBoundary=y.default,exports.OfflineMessage=O.default,exports.LanguageSelector=_.LanguageSelector,exports.ListView=W.default,exports.RecordModal=G.RecordModal,exports.BulkUploadDialog=Q.default,exports.CookieBanner=J.CookieBanner,exports.AuditCircularProgress=z.AuditCircularProgress,exports.AuditHorizontalProgress=N.AuditHorizontalProgress,exports.AuditRoleIndicator=K.AuditRoleIndicator,exports.AuditUnitSwitcher=X.AuditUnitSwitcher,exports.AuditAnswerCell=Y.AuditAnswerCell,exports.AuditSearchBar=Z.AuditSearchBar,exports.AuditFilterChips=$.AuditFilterChips,exports.AuditFilterBar=ee.AuditFilterBar,exports.AuditGroupsProgress=re.AuditGroupsProgress,exports.AuditSummaryDashboard=te.AuditSummaryDashboard,exports.AuditRequirementDialog=se.AuditRequirementDialog,exports.AuditUnitExportDialog=oe.AuditUnitExportDialog,exports.AuditUnitImportDialog=ie.AuditUnitImportDialog,exports.AuditBulkExportDialog=ae.AuditBulkExportDialog,exports.AuditBulkUploadDialog=ue.AuditBulkUploadDialog,exports.AuditSortPresets=pe.AuditSortPresets,exports.useStateWithLocalStorage=ne.default,exports.useAuthState=le.default,exports.useChat=de.useChat,exports.useCodicentState=ce.default,exports.useAudioRecorder=xe.useAudioRecorder,exports.useTools=ge.default,exports.useRealtimeVoiceAI=me.default,exports.useLocalization=Ae.default,exports.useTemplateVariables=qe.useTemplateVariables,exports.useCodicentApp=je.useCodicentApp,exports.useAppStyles=he.default,exports.useToaster=Ce.default,exports.useDebugLogs=Pe.default,exports.useObserveDataSchemas=Se.useObserveDataSchemas,exports.useOnlineStatus=fe.useOnlineStatus,exports.useUserRoles=ke.useUserRoles,exports.useAuditState=De.useAuditState,exports.useAuditRoleCheck=Te.useAuditRoleCheck,exports.useAuditFilters=Me.useAuditFilters,exports.useAuditRequirementsFilters=Ie.useAuditRequirementsFilters,exports.useAuditManagerFilters=Fe.useAuditManagerFilters,exports.useAuditManagerData=be.useAuditManagerData,exports.MessageContent=Re.default,exports.generateBrandVariants=Ue.default,exports.log=Le.default,exports.withWakeLock=ve.default,exports.AppStateMachine=Be.AppStateMachine,exports.createAppStateMachine=Be.createAppStateMachine,exports.WavStreamPlayer=He.WavStreamPlayer,exports.WavRecorder=Ve.WavRecorder,exports.getGpsLocation=Ee.getGpsLocation,exports.isMobileDevice=Ee.isMobileDevice,exports.exportToExcel=ye.exportToExcel,exports.getTimeString=Oe.getTimeString,exports.CacheManager=_e.CacheManager,exports.stateMachineCacheManager=_e.stateMachineCacheManager,exports.AUDIT_CHECKBOX_OPTIONS=We.AUDIT_CHECKBOX_OPTIONS,exports.DEFAULT_AUDIT_VALIDITY_PERIOD_MONTHS=We.DEFAULT_AUDIT_VALIDITY_PERIOD_MONTHS,exports.calcValidUntil=We.calcValidUntil,exports.calculateAuditTimeRemaining=We.calculateAuditTimeRemaining,exports.formatValidityPeriod=We.formatValidityPeriod,exports.getAuditComplianceRate=We.getAuditComplianceRate,exports.getAuditRoleCapabilities=We.getAuditRoleCapabilities,exports.getAuditUrgencyColor=We.getAuditUrgencyColor,exports.getEffectiveAnswerOptions=We.getEffectiveAnswerOptions,exports.isAnswerCompliant=We.isAnswerCompliant,exports.parseValidityPeriod=We.parseValidityPeriod,exports.resolveAuditConfig=We.resolveAuditConfig,exports.buildAuditPackage=Ge.buildAuditPackage,exports.exportAuditPackageAsHtml=Ge.exportAuditPackageAsHtml,exports.exportAuditPackageAsJson=Ge.exportAuditPackageAsJson,exports.importAuditPackageFromHtml=Ge.importAuditPackageFromHtml,exports.importAuditPackageFromJson=Ge.importAuditPackageFromJson,exports.AppConfig=Qe.AppConfig,exports.getConfigValue=Qe.getConfigValue,exports.initCodicentApp=Qe.initCodicentApp,exports.AppFrame=Je.default,exports.Canvas=ze.default,exports.Chat=Ne.default,exports.Compose=Ke.Compose,exports.Snap=Xe.default,exports.Search=Ye.default,exports.Menu=Ze.Menu,exports.Log=$e.Log,exports.Login=er.default,exports.Logout=rr.Logout,exports.Home=tr.Home,exports.ListPage=sr.ListPage,exports.CrmPage=or.CrmPage,exports.CrmPagePersistent=ir.CrmPagePersistent,exports.ImageView=ar.default,exports.FormInvite=ur.default,exports.FormAccept=pr.default,exports.Sales=nr.Sales,exports.HtmlViewer=lr.default,exports.Purchase=dr.Purchase,exports.Help=cr.default,exports.Debug=xr.default,exports.SchemaEditor=gr.default,exports.QrScan=mr.default,exports.FormPage=Ar.default,exports.createCodicentApp=qr.createCodicentApp,exports.StateMachine=we.distExports.StateMachine;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("react"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("react-router-dom"),require("./Purchase.js"),require("../components/Content.js");var s=require("../components/Page.js");require("./QrScan.js"),require("../hooks/useLocalization.js"),require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const o=r.makeStyles({iframe:{width:"100%",height:"100%",border:"none"},scrollable:{overflow:"auto"},nonScrollable:{overflow:"hidden"},fixFrameHeight:{height:"calc(100% - 5px)"}});exports.default=({src:r,showFooter:i,title:n})=>{const t=o();return i?e.jsx(s.Page,{hideFooter:!i,hideHeader:!0,children:e.jsx("iframe",{title:n,src:r,className:`${t.iframe} ${i?t.fixFrameHeight:""}`})}):e.jsx("iframe",{title:n,src:r,className:t.iframe})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js"),require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("react"),require("@fluentui/react-icons"),require("../services/codicent.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("react-router-dom"),require("./Purchase.js"),require("../components/Content.js");var i=require("../components/Page.js");require("./QrScan.js"),require("../hooks/useLocalization.js"),require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");const s=r.makeStyles({iframe:{width:"100%",height:"100%",border:"none"},scrollable:{overflow:"auto"},nonScrollable:{overflow:"hidden"},fixFrameHeight:{height:"calc(100% - 5px)"}});exports.default=({src:r,showFooter:o,title:t})=>{const n=s();return o?e.jsx(i.Page,{hideFooter:!o,hideHeader:!0,children:e.jsx("iframe",{title:t,src:r,className:`${n.iframe} ${o?n.fixFrameHeight:""}`})}):e.jsx("iframe",{title:t,src:r,className:n.iframe})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),s=require("react-router-dom"),n=require("@fluentui/react-icons");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var o=require("../components/TextHeader.js"),a=require("../components/TypingIndicator.js"),i=require("../components/Prompt.js"),l=require("../components/ChatInput.js"),c=require("../components/CombinedPlaceholderDialog.js"),u=require("../components/ChatMessage.js");require("../components/Header.js");var d=require("../hooks/useStateWithLocalStorage.js"),p=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var m=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var g=require("../components/Page.js");require("./QrScan.js");var j=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var h=require("../hooks/useChat.js"),q=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const f=t.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"1600px",height:"100%",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"}});exports.default=({state:t,hideFooter:x,codicent:C,title:S,welcomeMessage:v})=>{const b=f(),{t:w,tAsync:y,getLanguageInfo:P}=j.default(),k=s.useNavigate(),_=r.useRef(null),[I,F]=s.useSearchParams(),[T]=r.useState((()=>{const e=I.get("codicent");return e?(sessionStorage.setItem("chat_codicent",e),e):C?(sessionStorage.removeItem("chat_codicent"),null):sessionStorage.getItem("chat_codicent")})),M=T||C,{messages:A,isBotTyping:V,handleSend:L,newChat:R,openChat:H}=h.useChat(t.stateMachine,M||void 0),[E,B]=r.useState(null),[N,U]=r.useState(!1),[D,O]=r.useState(!1),{service:W,currentStateName:z}=t,[Q,G]=r.useState([]),[Y,$]=r.useState([]),[K,J]=r.useState(!1),[X,Z]=r.useState(),[ee,re]=d.default(t.context.selectedApp+"_prompts",[]),[te,se]=r.useState(!1),{extractTemplateVariables:ne,replaceTemplateVariables:oe,extractFilePlaceholders:ae,replaceFilePlaceholders:ie,handleSelectFiles:le}=q.useTemplateVariables(W.uploadFile),ce=r.useRef(!1),ue=r.useRef(null);r.useEffect((()=>{const e=window.history.length>1,r=Boolean(document.referrer&&document.referrer!==window.location.href);O(e||r)}),[]);r.useEffect((()=>{m.getConfigValue("SHOW_CHAT_PROMPTS")&&0===A.length&&t.service.getAppPrompts(M||void 0).then(re).catch((e=>{console.error("Failed to get prompts",e)}))}),[t.service,re,A.length,M]),r.useEffect((()=>{setTimeout((()=>{_.current?.scrollIntoView({behavior:"smooth"})}),10)}),[A]),r.useEffect((()=>{if(ce.current)return;ce.current=!0;const e=I.get("text"),r=I.get("id"),t=I.get("fid");if(T){console.log("Using temporary codicent from URL param:",T);const e=new URLSearchParams(I);e.delete("codicent"),F(e,{replace:!0})}if(e){(async()=>{const r=ae(e),t=ne(e);R(),r.length>0||t.length>0?($(r),G(t),J(!0),B(w(e))):B(w(e))})()}else r?H(r):t&&Z(t)}),[]),r.useEffect((()=>{X&&"anonymous"===z&&ue.current!==X&&(ue.current=X,W.getFormById(X).then((async e=>{R();const r=P().language,t=e.prompt.replace("{{fid}}",X).replace("{{fname}}",e.name).replace("{{language}}",r);se(!0);const s=await y(t);se(!1),B(s),O(!1)})))}),[X,R,W,B,z,y,P,se]),r.useEffect((()=>{if(E&&!K){let e=E;Y.length>0&&(e=ie(e,Y)),Q.length>0&&(e=oe(e,Q)),L(e),F({},{replace:!0}),B(null),G([]),$([])}}),[E,K,L,F,ie,oe,Y,Q]);const de=e=>{const r=I.get("append");r&&(e+="\n---\n"+r),L(e)};return e.jsxs(g.Page,{hideHeader:!0,hideFooter:!!X||x,children:[e.jsxs("div",{id:"chat-container",className:b.chatContainer,style:{backgroundImage:`url(${m.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[D&&e.jsx("button",{onClick:()=>{D&&k(-1)},"aria-label":w("Tillbaka"),style:{position:"absolute",top:12,left:12,zIndex:100,background:"var(--colorNeutralBackground1)",border:"none",cursor:"pointer",padding:8,borderRadius:8,boxShadow:"0 2px 8px rgba(0,0,0,0.08)",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(n.CalendarWeekStart24Regular,{style:{transform:"rotate(180deg)"}})}),e.jsx("div",{style:{marginLeft:D?40:0},children:e.jsx(o.default,{title:S||w(m.getConfigValue("APP_CHAT_TITLE")||"Chatt"),onNewChat:X?void 0:()=>U(!0)})}),e.jsxs("div",{className:b.chatMessages,children:[v&&e.jsx(u.default,{sender:"bot",content:v}),m.getConfigValue("SHOW_CHAT_PROMPTS")&&ee.length>0&&0===A.length&&e.jsx(u.default,{sender:"bot",content:w(m.getConfigValue("CHAT_WELCOME")||w("Välkommen!")),children:ee.map(((r,t)=>e.jsxs("div",{children:["> ",e.jsx("a",{href:"./#/chat",onClick:()=>{de(r.title+"\n---\n"+r.prompt)},children:w(r.title)}),e.jsx("br",{})]},`prompt-${t}`)))}),A.map(((r,t)=>e.jsxs("div",{children:[(V&&t===A.length-1||!V&&t===A.length-2)&&e.jsx("div",{ref:_}),e.jsx(u.default,{sender:r.sender,content:r.content,isNew:r.isNew,showSuggestions:t===A.length-1,onSuggestionClicked:L},r.id)]},r.id))),te&&e.jsx(u.default,{sender:"user",content:w("Översätter...")}),V&&e.jsx(a.default,{})]}),e.jsx(l.default,{codicent:M||t.context.selectedApp,disableSend:V,onSend:de,onSelectFiles:le,getImageUrl:p.CodicentService.getImageUrl,getFileInfo:e=>W.getFileInfo(e)})]}),e.jsx(i.default,{open:N,title:w("Vill du rensa chatten?"),content:w("En ny startas, men chatten kommer först sparas."),onYes:()=>{U(!1),R()},onNo:()=>U(!1)}),e.jsx(c.CombinedPlaceholderDialog,{open:K,templateVariables:Q,filePlaceholders:Y,onTemplateVariablesChange:G,onFilePlaceholdersChange:$,onConfirm:()=>J(!1),onCancel:()=>{J(!1),B(null),G([]),$([])},uploadFile:W.uploadFile})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("@fluentui/react-components"),o=require("react-router-dom"),s=require("@fluentui/react-icons");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js"),i=require("../components/TypingIndicator.js"),a=require("../components/Prompt.js"),u=require("../components/ChatInput.js"),c=require("../components/CombinedPlaceholderDialog.js"),l=require("../components/ChatMessage.js");require("../components/Header.js");var d=require("../hooks/useStateWithLocalStorage.js"),p=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var m=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var g=require("../components/Page.js");require("./QrScan.js");var j=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var h=require("../hooks/useChat.js"),q=require("../hooks/useTemplateVariables.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");const f=r.makeStyles({chatContainer:{width:"100%",flex:1,maxWidth:"1600px",height:"100%",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"}});exports.default=({state:r,hideFooter:x,codicent:S,title:C,welcomeMessage:v})=>{const b=f(),{t:A,tAsync:w,getLanguageInfo:P}=j.default(),y=o.useNavigate(),k=t.useRef(null),[I,_]=o.useSearchParams(),[F]=t.useState((()=>{const e=I.get("codicent");return e?(sessionStorage.setItem("chat_codicent",e),e):S?(sessionStorage.removeItem("chat_codicent"),null):sessionStorage.getItem("chat_codicent")})),T=F||S,{messages:M,isBotTyping:V,handleSend:R,newChat:B,openChat:D}=h.useChat(r.stateMachine,T||void 0),[L,E]=t.useState(null),[H,U]=t.useState(!1),[N,O]=t.useState(!1),{service:W,currentStateName:z}=r,[G,Q]=t.useState([]),[Y,$]=t.useState([]),[K,J]=t.useState(!1),[X,Z]=t.useState(),[ee,te]=d.default(r.context.selectedApp+"_prompts",[]),[re,oe]=t.useState(!1),{extractTemplateVariables:se,replaceTemplateVariables:ne,extractFilePlaceholders:ie,replaceFilePlaceholders:ae,handleSelectFiles:ue}=q.useTemplateVariables(W.uploadFile),ce=t.useRef(!1),le=t.useRef(null);t.useEffect((()=>{const e=window.history.length>1,t=Boolean(document.referrer&&document.referrer!==window.location.href);O(e||t)}),[]);t.useEffect((()=>{m.getConfigValue("SHOW_CHAT_PROMPTS")&&0===M.length&&r.service.getAppPrompts(T||void 0).then(te).catch((e=>{console.error("Failed to get prompts",e)}))}),[r.service,te,M.length,T]),t.useEffect((()=>{setTimeout((()=>{k.current?.scrollIntoView({behavior:"smooth"})}),10)}),[M]),t.useEffect((()=>{if(ce.current)return;ce.current=!0;const e=I.get("text"),t=I.get("id"),r=I.get("fid");if(F){console.log("Using temporary codicent from URL param:",F);const e=new URLSearchParams(I);e.delete("codicent"),_(e,{replace:!0})}if(e){(async()=>{const t=ie(e),r=se(e);B(),t.length>0||r.length>0?($(t),Q(r),J(!0),E(A(e))):E(A(e))})()}else t?D(t):r&&Z(r)}),[]),t.useEffect((()=>{X&&"anonymous"===z&&le.current!==X&&(le.current=X,W.getFormById(X).then((async e=>{B();const t=P().language,r=e.prompt.replace("{{fid}}",X).replace("{{fname}}",e.name).replace("{{language}}",t);oe(!0);const o=await w(r);oe(!1),E(o),O(!1)})))}),[X,B,W,E,z,w,P,oe]),t.useEffect((()=>{if(L&&!K){let e=L;Y.length>0&&(e=ae(e,Y)),G.length>0&&(e=ne(e,G)),R(e),_({},{replace:!0}),E(null),Q([]),$([])}}),[L,K,R,_,ae,ne,Y,G]);const de=e=>{const t=I.get("append");t&&(e+="\n---\n"+t),R(e)};return e.jsxs(g.Page,{hideHeader:!0,hideFooter:!!X||x,children:[e.jsxs("div",{id:"chat-container",className:b.chatContainer,style:{backgroundImage:`url(${m.getConfigValue("CHAT_BACKGROUND_IMAGE_URL")})`},children:[N&&e.jsx("button",{onClick:()=>{N&&y(-1)},"aria-label":A("Tillbaka"),style:{position:"absolute",top:12,left:12,zIndex:100,background:"var(--colorNeutralBackground1)",border:"none",cursor:"pointer",padding:8,borderRadius:8,boxShadow:"0 2px 8px rgba(0,0,0,0.08)",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(s.CalendarWeekStart24Regular,{style:{transform:"rotate(180deg)"}})}),e.jsx("div",{style:{marginLeft:N?40:0},children:e.jsx(n.default,{title:C||A(m.getConfigValue("APP_CHAT_TITLE")||"Chatt"),onNewChat:X?void 0:()=>U(!0)})}),e.jsxs("div",{className:b.chatMessages,children:[v&&e.jsx(l.default,{sender:"bot",content:v}),m.getConfigValue("SHOW_CHAT_PROMPTS")&&ee.length>0&&0===M.length&&e.jsx(l.default,{sender:"bot",content:A(m.getConfigValue("CHAT_WELCOME")||A("Välkommen!")),children:ee.map(((t,r)=>e.jsxs("div",{children:["> ",e.jsx("a",{href:"./#/chat",onClick:()=>{de(t.title+"\n---\n"+t.prompt)},children:A(t.title)}),e.jsx("br",{})]},`prompt-${r}`)))}),M.map(((t,r)=>e.jsxs("div",{children:[(V&&r===M.length-1||!V&&r===M.length-2)&&e.jsx("div",{ref:k}),e.jsx(l.default,{sender:t.sender,content:t.content,isNew:t.isNew,showSuggestions:r===M.length-1,onSuggestionClicked:R},t.id)]},t.id))),re&&e.jsx(l.default,{sender:"user",content:A("Översätter...")}),V&&e.jsx(i.default,{})]}),e.jsx(u.default,{codicent:T||r.context.selectedApp,disableSend:V,onSend:de,onSelectFiles:ue,getImageUrl:p.CodicentService.getImageUrl,getFileInfo:e=>W.getFileInfo(e)})]}),e.jsx(a.default,{open:H,title:A("Vill du rensa chatten?"),content:A("En ny startas, men chatten kommer först sparas."),onYes:()=>{U(!1),B()},onNo:()=>U(!1)}),e.jsx(c.CombinedPlaceholderDialog,{open:K,templateVariables:G,filePlaceholders:Y,onTemplateVariablesChange:Q,onFilePlaceholdersChange:$,onConfirm:()=>J(!1),onCancel:()=>{J(!1),E(null),Q([]),$([])},uploadFile:W.uploadFile})]})};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),o=require("@fluentui/react-components"),t=require("react-router-dom"),i=require("../config/index.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var a=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var s=require("../utils/device.js");require("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var u=require("../components/Page.js");require("./QrScan.js");var l=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var c=require("../hooks/useToaster.js"),d=require("../components/MessageInput.js"),p=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js");const g=o.makeStyles({main:{flexGrow:1,...o.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:o.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"}}),m=({state:o})=>{const m=g(),{t:j}=l.default(),[q,f]=r.useState(!1),h=r.useRef(null),C=r.useRef(null),S=r.useRef(null),[v,x]=r.useState(null),[P,_]=r.useState([]),{service:b}=o,[I,M]=t.useSearchParams(),[L,U]=r.useState(void 0),[w,E]=r.useState(),F=c.default(),A=t.useNavigate(),O=r.useCallback((e=>{for(const r of e)b.getFileInfo(r).then((e=>{_((r=>[...r,e]))}))}),[b,_]),k=r.useCallback((e=>{const r=new FormData;r.append("file",e),b.uploadFile(e.name,r).then((e=>{O([e])})).catch((()=>{F.notify(j("Error"),j("Error uploading pasted image"),"")}))}),[b,O,F,j]),T=e=>{f(e)};r.useEffect((()=>{const e=I.get("text"),r=I.get("url"),o=I.get("parentId");e&&(U(e),I.delete("text")),o&&(E(o),I.delete("parentId")),r&&(I.delete("url"),U(((e||"")+" "+r).trim())),M(I,{replace:!0})}),[I,M,U,b,O]),r.useEffect((()=>{i.getConfigValue("COMPOSE_AUTO_LOCATION")&&s.getGpsLocation().then((e=>{e&&x(`#gps(${e.coords.latitude},${e.coords.longitude})`)}))}),[]);return e.jsx(u.Page,{hideHeader:!0,children:e.jsxs("div",{className:m.container,style:{backgroundImage:`url(${i.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[e.jsx(n.default,{title:i.getConfigValue("APP_SAVE_TITLE")?j(i.getConfigValue("APP_SAVE_TITLE")):j("Spara")}),e.jsx(d.default,{disableSend:!0,defaultText:L,onSend:e=>{e=`${e}${v?" "+v:""}${P.length>0?"\n":""}${P.map((e=>`#file:${e.id}`)).join(" ")}`,b.sendMessage(e,w).then((()=>{F.notify(j("Meddelande"),j("Meddelandet är sparat."),""),w&&(E(void 0),A(-1))}))},files:P,onFilesChange:_,isUploading:q,onHandleDefaultFiles:O,onUploadFile:()=>{h.current?.triggerUpload(),console.log("attach-file")},onUploadImage:i.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{C.current?.triggerUpload(),console.log("attach-image")},onUploadCamera:i.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{S.current?.triggerUpload(),console.log("attach-camera")},getImageUrl:a.CodicentService.getImageUrl,onLocationChange:i.getConfigValue("COMPOSE_HIDE_LOCATION")?void 0:e=>{e?(async()=>{console.log("attach-location");const e=await s.getGpsLocation();e?(F.notify(j("Position"),j("Position tillagd."),""),x(`#gps(${e.coords.latitude},${e.coords.longitude})`)):console.log("Failed to get GPS location")})():(x(null),F.notify(j("Position"),j("Position borttagen."),""),console.log("clear-location"))},hasLocation:!!v,onImagePasted:k}),e.jsx(p.default,{ref:h,onFileUploaded:O,onUploading:T,multiple:!0,codicentService:b}),e.jsx(p.default,{codicentService:b,ref:C,onFileUploaded:O,onUploading:T,multiple:!0,accept:"image/*"}),e.jsx(p.default,{codicentService:b,ref:S,onFileUploaded:O,onUploading:T,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.Compose=m,exports.default=m;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),o=require("@fluentui/react-components"),t=require("react-router-dom"),i=require("../config/index.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("@fluentui/react-icons");var s=require("../services/codicent.js");require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js");var a=require("../utils/device.js");require("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var u=require("../components/Page.js");require("./QrScan.js");var l=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var c=require("../hooks/useToaster.js"),d=require("../components/MessageInput.js"),p=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");const g=o.makeStyles({main:{flexGrow:1,...o.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:o.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"}}),m=({state:o})=>{const m=g(),{t:j}=l.default(),[q,h]=r.useState(!1),f=r.useRef(null),C=r.useRef(null),S=r.useRef(null),[v,x]=r.useState(null),[A,P]=r.useState([]),{service:I}=o,[_,b]=t.useSearchParams(),[U,M]=r.useState(void 0),[w,E]=r.useState(),F=c.default(),L=t.useNavigate(),k=r.useCallback((e=>{for(const r of e)I.getFileInfo(r).then((e=>{P((r=>[...r,e]))}))}),[I,P]),O=r.useCallback((e=>{const r=new FormData;r.append("file",e),I.uploadFile(e.name,r).then((e=>{k([e])})).catch((()=>{F.notify(j("Error"),j("Error uploading pasted image"),"")}))}),[I,k,F,j]),y=e=>{h(e)};r.useEffect((()=>{const e=_.get("text"),r=_.get("url"),o=_.get("parentId");e&&(M(e),_.delete("text")),o&&(E(o),_.delete("parentId")),r&&(_.delete("url"),M(((e||"")+" "+r).trim())),b(_,{replace:!0})}),[_,b,M,I,k]),r.useEffect((()=>{i.getConfigValue("COMPOSE_AUTO_LOCATION")&&a.getGpsLocation().then((e=>{e&&x(`#gps(${e.coords.latitude},${e.coords.longitude})`)}))}),[]);return e.jsx(u.Page,{hideHeader:!0,children:e.jsxs("div",{className:m.container,style:{backgroundImage:`url(${i.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[e.jsx(n.default,{title:i.getConfigValue("APP_SAVE_TITLE")?j(i.getConfigValue("APP_SAVE_TITLE")):j("Spara")}),e.jsx(d.default,{disableSend:!0,defaultText:U,onSend:e=>{e=`${e}${v?" "+v:""}${A.length>0?"\n":""}${A.map((e=>`#file:${e.id}`)).join(" ")}`,I.sendMessage(e,w).then((()=>{F.notify(j("Meddelande"),j("Meddelandet är sparat."),""),w&&(E(void 0),L(-1))}))},files:A,onFilesChange:P,isUploading:q,onHandleDefaultFiles:k,onUploadFile:()=>{f.current?.triggerUpload(),console.log("attach-file")},onUploadImage:i.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{C.current?.triggerUpload(),console.log("attach-image")},onUploadCamera:i.getConfigValue("COMPOSE_SIMPLE_ATTACH_FILE")?void 0:()=>{S.current?.triggerUpload(),console.log("attach-camera")},getImageUrl:s.CodicentService.getImageUrl,onLocationChange:i.getConfigValue("COMPOSE_HIDE_LOCATION")?void 0:e=>{e?(async()=>{console.log("attach-location");const e=await a.getGpsLocation();e?(F.notify(j("Position"),j("Position tillagd."),""),x(`#gps(${e.coords.latitude},${e.coords.longitude})`)):console.log("Failed to get GPS location")})():(x(null),F.notify(j("Position"),j("Position borttagen."),""),console.log("clear-location"))},hasLocation:!!v,onImagePasted:O}),e.jsx(p.default,{ref:f,onFileUploaded:k,onUploading:y,multiple:!0,codicentService:I}),e.jsx(p.default,{codicentService:I,ref:C,onFileUploaded:k,onUploading:y,multiple:!0,accept:"image/*"}),e.jsx(p.default,{codicentService:I,ref:S,onFileUploaded:k,onUploading:y,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.Compose=m,exports.default=m;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),n=require("@fluentui/react-components"),t=require("@fluentui/react-icons"),o=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var a=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var s=require("../components/VoiceIcon.js"),i=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("../components/FileThumbnail.js");var l=require("../components/MessageInput.js"),c=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var d=require("../components/Page.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var m=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var p=require("react-router-dom");require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var j=require("../hooks/useToaster.js"),g=require("../node_modules/lodash/lodash.js");const h=n.makeStyles({main:{flexGrow:1,...n.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",position:"relative"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:n.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"},voiceIcon:{position:"absolute",top:"20px",right:"12px",zIndex:1001,cursor:"pointer"},backButton:{marginBottom:"10px"}}),q=({state:q,voice:f})=>{const v=h(),{t:x}=m.default(),S=p.useNavigate(),[k,b]=r.useState(!1),C=r.useRef(null),w=r.useRef(null),y=r.useRef(null),[I]=r.useState(null),[M,P]=r.useState([]),{service:_}=q,[B,U]=p.useSearchParams(),[A,E]=r.useState(""),[N,T]=r.useState(void 0),F=j.default(),[L,R]=r.useState(void 0),[V,O]=r.useState("info"),$=r.useCallback((e=>{for(const r of e)_.getFileInfo(r).then((e=>{P((r=>[...r,e]))}))}),[_,P]),D=r.useCallback((e=>{const r=new FormData;r.append("file",e),_.uploadFile(e.name,r).then((e=>{$([e])})).catch((()=>{F.notify(x("Error"),x("Error uploading pasted image"),"")}))}),[_,$,F,x]),H=e=>{b(e)};r.useEffect((()=>{const e=B.get("text"),r=B.get("url");e&&(E(e),B.delete("text")),r&&(B.delete("url"),E(((e||"")+" "+r).trim())),U(B,{replace:!0})}),[B,U,E,_,$]);const z=r.useCallback((async e=>{if(!e||e.length<10)return;R(x("Analyserar...")),O("info");const r=await _.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(r){const e=new i.default(r.content);try{const r=JSON.parse(e.content);console.log("json",r);let n=0;for(const e in r)"true"===r[e]&&n++;R(x(4===n?"Allt är med":r.shortSummary||"Något saknas")),O(4===n?"success":"warning")}catch{R("Error: "+e.content),O("error")}}}),[_]),G=r.useMemo((()=>g.lodashExports.debounce(z,2e3)),[z]);return r.useEffect((()=>()=>{G.cancel()}),[G]),e.jsx(d.Page,{hideHeader:!0,children:e.jsxs("div",{className:v.container,style:{backgroundImage:`url(${u.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[f&&u.getConfigValue("SHOW_VOICE_BUTTON")&&e.jsx("div",{className:v.voiceIcon,children:e.jsx(s.default,{voice:f})}),e.jsx("div",{className:v.backButton,children:e.jsx(n.Button,{appearance:"subtle",icon:e.jsx(t.ArrowLeft24Regular,{}),onClick:()=>S(-1),children:x("Tillbaka")})}),e.jsx(a.default,{title:u.getConfigValue("APP_SAVE_TITLE")?x(u.getConfigValue("APP_SAVE_TITLE")):x("Spara")}),e.jsx(l.default,{defaultText:A,onSend:e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${q.context.name||q.context.user?.email||q.context.nickname||"-"}`}${I?" "+I:""}${M.length>0?"\n":""}${M.map((e=>`#file:${e.id}`)).join(" ")}`,_.sendMessage(e).then((()=>{F.notify(x("Meddelande"),x("Meddelandet är sparat."),"")}))},files:M,onFilesChange:P,isUploading:k,onUploadImage:()=>{w.current?.triggerUpload()},onUploadCamera:()=>{y.current?.triggerUpload()},getImageUrl:o.CodicentService.getImageUrl,hasLocation:!!I,disableSend:!0,rows:9,placeholder:x("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==N&&(T(e),e&&e.trim().length>0?G(e):(R(void 0),G.cancel()))},onImagePasted:D}),L&&e.jsxs("div",{className:v.review,children:[e.jsx("h3",{children:x("Analys")}),e.jsx(n.MessageBar,{intent:V,layout:"multiline",children:e.jsx(n.MessageBarBody,{children:x(L)})})]}),e.jsx(c.default,{ref:C,onFileUploaded:$,onUploading:H,multiple:!0,codicentService:_}),e.jsx(c.default,{codicentService:_,ref:w,onFileUploaded:$,onUploading:H,multiple:!0,accept:"image/*"}),e.jsx(c.default,{codicentService:_,ref:y,onFileUploaded:$,onUploading:H,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.CrmPage=q,exports.default=q;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("@fluentui/react-components"),n=require("@fluentui/react-icons"),o=require("../services/codicent.js");require("../components/Markdown.js"),require("../components/Textarea.js"),require("../components/Button.js"),require("../components/CompoundButton.js"),require("../components/Spinner.js");var i=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var s=require("../components/VoiceIcon.js"),a=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var u=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("exceljs"),require("../components/FileThumbnail.js");var c=require("../components/MessageInput.js"),l=require("../components/UploadFile.js");require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/Content.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var d=require("../components/Page.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js");var m=require("../hooks/useLocalization.js");require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js");var p=require("react-router-dom");require("./Purchase.js"),require("./QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var j=require("../hooks/useToaster.js"),g=require("../node_modules/lodash/lodash.js");const q=t.makeStyles({main:{flexGrow:1,...t.shorthands.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",position:"relative"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:t.tokens.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"},voiceIcon:{position:"absolute",top:"20px",right:"12px",zIndex:1001,cursor:"pointer"},backButton:{marginBottom:"10px"}}),h=({state:h,voice:f})=>{const v=q(),{t:x}=m.default(),S=p.useNavigate(),[k,C]=r.useState(!1),b=r.useRef(null),A=r.useRef(null),w=r.useRef(null),[y]=r.useState(null),[P,B]=r.useState([]),{service:I}=h,[U,M]=p.useSearchParams(),[_,E]=r.useState(""),[F,N]=r.useState(void 0),R=j.default(),[T,D]=r.useState(void 0),[L,V]=r.useState("info"),O=r.useCallback((e=>{for(const r of e)I.getFileInfo(r).then((e=>{B((r=>[...r,e]))}))}),[I,B]),$=r.useCallback((e=>{const r=new FormData;r.append("file",e),I.uploadFile(e.name,r).then((e=>{O([e])})).catch((()=>{R.notify(x("Error"),x("Error uploading pasted image"),"")}))}),[I,O,R,x]),H=e=>{C(e)};r.useEffect((()=>{const e=U.get("text"),r=U.get("url");e&&(E(e),U.delete("text")),r&&(U.delete("url"),E(((e||"")+" "+r).trim())),M(U,{replace:!0})}),[U,M,E,I,O]);const z=r.useCallback((async e=>{if(!e||e.length<10)return;D(x("Analyserar...")),V("info");const r=await I.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(r){const e=new a.default(r.content);try{const r=JSON.parse(e.content);console.log("json",r);let t=0;for(const e in r)"true"===r[e]&&t++;D(x(4===t?"Allt är med":r.shortSummary||"Något saknas")),V(4===t?"success":"warning")}catch{D("Error: "+e.content),V("error")}}}),[I]),G=r.useMemo((()=>g.lodashExports.debounce(z,2e3)),[z]);return r.useEffect((()=>()=>{G.cancel()}),[G]),e.jsx(d.Page,{hideHeader:!0,children:e.jsxs("div",{className:v.container,style:{backgroundImage:`url(${u.getConfigValue("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[f&&u.getConfigValue("SHOW_VOICE_BUTTON")&&e.jsx("div",{className:v.voiceIcon,children:e.jsx(s.default,{voice:f})}),e.jsx("div",{className:v.backButton,children:e.jsx(t.Button,{appearance:"subtle",icon:e.jsx(n.ArrowLeft24Regular,{}),onClick:()=>S(-1),children:x("Tillbaka")})}),e.jsx(i.default,{title:u.getConfigValue("APP_SAVE_TITLE")?x(u.getConfigValue("APP_SAVE_TITLE")):x("Spara")}),e.jsx(c.default,{defaultText:_,onSend:e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${h.context.name||h.context.user?.email||h.context.nickname||"-"}`}${y?" "+y:""}${P.length>0?"\n":""}${P.map((e=>`#file:${e.id}`)).join(" ")}`,I.sendMessage(e).then((()=>{R.notify(x("Meddelande"),x("Meddelandet är sparat."),"")}))},files:P,onFilesChange:B,isUploading:k,onUploadImage:()=>{A.current?.triggerUpload()},onUploadCamera:()=>{w.current?.triggerUpload()},getImageUrl:o.CodicentService.getImageUrl,hasLocation:!!y,disableSend:!0,rows:9,placeholder:x("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==F&&(N(e),e&&e.trim().length>0?G(e):(D(void 0),G.cancel()))},onImagePasted:$}),T&&e.jsxs("div",{className:v.review,children:[e.jsx("h3",{children:x("Analys")}),e.jsx(t.MessageBar,{intent:L,layout:"multiline",children:e.jsx(t.MessageBarBody,{children:x(T)})})]}),e.jsx(l.default,{ref:b,onFileUploaded:O,onUploading:H,multiple:!0,codicentService:I}),e.jsx(l.default,{codicentService:I,ref:A,onFileUploaded:O,onUploading:H,multiple:!0,accept:"image/*"}),e.jsx(l.default,{codicentService:I,ref:w,onFileUploaded:O,onUploading:H,multiple:!0,accept:"image/*",capture:"environment"})]})})};exports.CrmPage=h,exports.default=h;