@oneblink/apps-react 2.3.0-beta.1 → 2.3.0-beta.2

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 (459) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
  2. package/dist/OneBlinkAutoSaveForm.js +28 -28
  3. package/dist/OneBlinkForm.d.ts +11 -11
  4. package/dist/OneBlinkForm.js +11 -11
  5. package/dist/OneBlinkFormBase.d.ts +28 -28
  6. package/dist/OneBlinkFormBase.js +472 -472
  7. package/dist/OneBlinkFormStoreView.d.ts +8 -0
  8. package/dist/OneBlinkFormStoreView.js +55 -0
  9. package/dist/OneBlinkFormStoreView.js.map +1 -0
  10. package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
  11. package/dist/OneBlinkReadOnlyForm.js +48 -48
  12. package/dist/components/AnnotationModal.d.ts +8 -0
  13. package/dist/components/AnnotationModal.js +104 -0
  14. package/dist/components/AnnotationModal.js.map +1 -0
  15. package/dist/components/AutocompleteDropdown.d.ts +26 -0
  16. package/dist/components/AutocompleteDropdown.js +174 -0
  17. package/dist/components/AutocompleteDropdown.js.map +1 -0
  18. package/dist/components/CopyToClipboardButton.d.ts +9 -0
  19. package/dist/components/CopyToClipboardButton.js +14 -0
  20. package/dist/components/CopyToClipboardButton.js.map +1 -0
  21. package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
  22. package/dist/components/CopyToClipboardIconButton.js +32 -32
  23. package/dist/components/CustomAccordion.d.ts +27 -27
  24. package/dist/components/CustomAccordion.js +37 -37
  25. package/dist/components/CustomisableButtonInner.d.ts +7 -0
  26. package/dist/components/CustomisableButtonInner.js +9 -0
  27. package/dist/components/CustomisableButtonInner.js.map +1 -0
  28. package/dist/components/ErrorMessage.d.ts +13 -0
  29. package/dist/components/ErrorMessage.js +13 -0
  30. package/dist/components/ErrorMessage.js.map +1 -0
  31. package/dist/components/ErrorSnackbar.d.ts +8 -8
  32. package/dist/components/ErrorSnackbar.js +25 -25
  33. package/dist/components/FormElementLabelContainer.d.ts +12 -0
  34. package/dist/components/FormElementLabelContainer.js +16 -0
  35. package/dist/components/FormElementLabelContainer.js.map +1 -0
  36. package/dist/components/FormElementOptions.d.ts +9 -0
  37. package/dist/components/FormElementOptions.js +15 -0
  38. package/dist/components/FormElementOptions.js.map +1 -0
  39. package/dist/components/Lists.d.ts +25 -25
  40. package/dist/components/Lists.js +44 -44
  41. package/dist/components/LoadingWithMessage.d.ts +6 -6
  42. package/dist/components/LoadingWithMessage.js +11 -11
  43. package/dist/components/LookupButton.d.ts +10 -0
  44. package/dist/components/LookupButton.js +30 -0
  45. package/dist/components/LookupButton.js.map +1 -0
  46. package/dist/components/LookupNotification.d.ts +12 -0
  47. package/dist/components/LookupNotification.js +231 -0
  48. package/dist/components/LookupNotification.js.map +1 -0
  49. package/dist/components/Modal.d.ts +14 -0
  50. package/dist/components/Modal.js +15 -0
  51. package/dist/components/Modal.js.map +1 -0
  52. package/dist/components/NoResourcesYet.d.ts +12 -0
  53. package/dist/components/NoResourcesYet.js +7 -0
  54. package/dist/components/NoResourcesYet.js.map +1 -0
  55. package/dist/components/OnLoading.d.ts +10 -0
  56. package/dist/components/OnLoading.js +12 -0
  57. package/dist/components/OnLoading.js.map +1 -0
  58. package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
  59. package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
  60. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
  61. package/dist/components/OneBlinkFormElements.d.ts +19 -0
  62. package/dist/components/OneBlinkFormElements.js +196 -0
  63. package/dist/components/OneBlinkFormElements.js.map +1 -0
  64. package/dist/components/PageFormElements.d.ts +17 -0
  65. package/dist/components/PageFormElements.js +49 -0
  66. package/dist/components/PageFormElements.js.map +1 -0
  67. package/dist/components/ToggleAllCheckbox.d.ts +13 -0
  68. package/dist/components/ToggleAllCheckbox.js +27 -0
  69. package/dist/components/ToggleAllCheckbox.js.map +1 -0
  70. package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
  71. package/dist/components/attachments/AttachmentStatus.js +35 -0
  72. package/dist/components/attachments/AttachmentStatus.js.map +1 -0
  73. package/dist/components/attachments/FileCard.d.ts +18 -0
  74. package/dist/components/attachments/FileCard.js +58 -0
  75. package/dist/components/attachments/FileCard.js.map +1 -0
  76. package/dist/components/attachments/FileCardContent.d.ts +5 -0
  77. package/dist/components/attachments/FileCardContent.js +11 -0
  78. package/dist/components/attachments/FileCardContent.js.map +1 -0
  79. package/dist/components/attachments/Files.d.ts +14 -0
  80. package/dist/components/attachments/Files.js +27 -0
  81. package/dist/components/attachments/Files.js.map +1 -0
  82. package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
  83. package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
  84. package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
  85. package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
  86. package/dist/components/attachments/UploadingAttachment.js +13 -0
  87. package/dist/components/attachments/UploadingAttachment.js.map +1 -0
  88. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
  89. package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
  90. package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
  91. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
  92. package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
  93. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
  94. package/dist/components/formStore/FormStore.d.ts +9 -0
  95. package/dist/components/formStore/FormStore.js +103 -0
  96. package/dist/components/formStore/FormStore.js.map +1 -0
  97. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
  98. package/dist/components/formStore/FormStoreTableProvider.js +90 -90
  99. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
  100. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
  101. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
  102. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
  103. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
  104. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
  105. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
  106. package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
  107. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
  108. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
  109. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
  110. package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
  111. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
  112. package/dist/components/formStore/display/ElementDisplay.js +77 -77
  113. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
  114. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  115. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
  116. package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
  117. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
  118. package/dist/components/formStore/table/ColumnFilters.js +179 -179
  119. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
  120. package/dist/components/formStore/table/FormElementTableCell.js +228 -228
  121. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
  122. package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
  123. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
  124. package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
  125. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
  126. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
  127. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
  128. package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
  129. package/dist/components/formStore/table/generateColumns.d.ts +24 -24
  130. package/dist/components/formStore/table/generateColumns.js +290 -290
  131. package/dist/components/formStore/table/index.d.ts +17 -0
  132. package/dist/components/formStore/table/index.js +194 -0
  133. package/dist/components/formStore/table/index.js.map +1 -0
  134. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
  135. package/dist/components/formStore/table/useFormStoreTable.js +157 -157
  136. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
  137. package/dist/components/formStore/useFormStoreTableContext.js +9 -9
  138. package/dist/components/messages/ErrorMessage.d.ts +12 -12
  139. package/dist/components/messages/ErrorMessage.js +12 -12
  140. package/dist/components/messages/LargeIconMessage.d.ts +18 -18
  141. package/dist/components/messages/LargeIconMessage.js +33 -33
  142. package/dist/components/messages/NoResourcesYet.d.ts +11 -11
  143. package/dist/components/messages/NoResourcesYet.js +6 -6
  144. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
  145. package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
  146. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
  147. package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
  148. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
  149. package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
  150. package/dist/components/renderer/AnnotationModal.d.ts +8 -8
  151. package/dist/components/renderer/AnnotationModal.js +101 -101
  152. package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
  153. package/dist/components/renderer/AutocompleteDropdown.js +175 -175
  154. package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
  155. package/dist/components/renderer/CopyToClipboardButton.js +13 -13
  156. package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
  157. package/dist/components/renderer/CustomisableButtonInner.js +8 -8
  158. package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
  159. package/dist/components/renderer/FormElementLabelContainer.js +15 -15
  160. package/dist/components/renderer/FormElementOptions.d.ts +9 -9
  161. package/dist/components/renderer/FormElementOptions.js +14 -14
  162. package/dist/components/renderer/LookupButton.d.ts +10 -10
  163. package/dist/components/renderer/LookupButton.js +29 -29
  164. package/dist/components/renderer/LookupNotification.d.ts +12 -12
  165. package/dist/components/renderer/LookupNotification.js +230 -230
  166. package/dist/components/renderer/Modal.d.ts +14 -14
  167. package/dist/components/renderer/Modal.js +14 -14
  168. package/dist/components/renderer/OnLoading.d.ts +10 -10
  169. package/dist/components/renderer/OnLoading.js +11 -11
  170. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
  171. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
  172. package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
  173. package/dist/components/renderer/OneBlinkFormElements.js +202 -202
  174. package/dist/components/renderer/PageFormElements.d.ts +17 -17
  175. package/dist/components/renderer/PageFormElements.js +48 -48
  176. package/dist/components/renderer/ProgressBar.d.ts +7 -7
  177. package/dist/components/renderer/ProgressBar.js +6 -6
  178. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  179. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  180. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  181. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -36
  182. package/dist/components/renderer/attachments/FileCard.d.ts +19 -19
  183. package/dist/components/renderer/attachments/FileCard.js +60 -59
  184. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  185. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  186. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  187. package/dist/components/renderer/attachments/Files.d.ts +14 -0
  188. package/dist/components/renderer/attachments/Files.js +27 -0
  189. package/dist/components/renderer/attachments/Files.js.map +1 -0
  190. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  191. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  192. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -6
  193. package/dist/components/renderer/attachments/ProgressBar.js +33 -12
  194. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  195. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -0
  196. package/dist/components/renderer/attachments/UploadingAttachment.js +13 -0
  197. package/dist/components/renderer/attachments/UploadingAttachment.js.map +1 -0
  198. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  199. package/dist/form-elements/ComplianceButton.js +11 -11
  200. package/dist/form-elements/FormElementABN.d.ts +14 -14
  201. package/dist/form-elements/FormElementABN.js +155 -155
  202. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  203. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  204. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  205. package/dist/form-elements/FormElementBSB.js +100 -100
  206. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  207. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  208. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  209. package/dist/form-elements/FormElementBoolean.js +16 -16
  210. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  211. package/dist/form-elements/FormElementCalculation.js +179 -179
  212. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  213. package/dist/form-elements/FormElementCamera.js +227 -226
  214. package/dist/form-elements/FormElementCamera.js.map +1 -1
  215. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  216. package/dist/form-elements/FormElementCaptcha.js +14 -14
  217. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  218. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  219. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  220. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  221. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  222. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  223. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  224. package/dist/form-elements/FormElementCompliance.js +129 -129
  225. package/dist/form-elements/FormElementDate.d.ts +14 -14
  226. package/dist/form-elements/FormElementDate.js +74 -74
  227. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  228. package/dist/form-elements/FormElementDateTime.js +67 -67
  229. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  230. package/dist/form-elements/FormElementEmail.js +22 -22
  231. package/dist/form-elements/FormElementFile.d.ts +13 -13
  232. package/dist/form-elements/FormElementFile.js +31 -31
  233. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
  234. package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
  235. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
  236. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
  237. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
  238. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
  239. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
  240. package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
  241. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
  242. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
  243. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
  244. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
  245. package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
  246. package/dist/form-elements/FormElementFiles/index.js +18 -0
  247. package/dist/form-elements/FormElementFiles/index.js.map +1 -0
  248. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
  249. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
  250. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
  251. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  252. package/dist/form-elements/FormElementFiles.js +42 -42
  253. package/dist/form-elements/FormElementForm.d.ts +17 -17
  254. package/dist/form-elements/FormElementForm.js +63 -63
  255. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  256. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  257. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  258. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  259. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  260. package/dist/form-elements/FormElementHTML.js +15 -15
  261. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  262. package/dist/form-elements/FormElementHeading.js +23 -23
  263. package/dist/form-elements/FormElementImage.d.ts +8 -8
  264. package/dist/form-elements/FormElementImage.js +6 -6
  265. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  266. package/dist/form-elements/FormElementLocation.js +204 -204
  267. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  268. package/dist/form-elements/FormElementNumber.js +72 -72
  269. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  270. package/dist/form-elements/FormElementPointAddress.js +69 -69
  271. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  272. package/dist/form-elements/FormElementRadio.js +41 -41
  273. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  274. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  275. package/dist/form-elements/FormElementSection.d.ts +8 -8
  276. package/dist/form-elements/FormElementSection.js +69 -69
  277. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  278. package/dist/form-elements/FormElementSelect.js +44 -44
  279. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  280. package/dist/form-elements/FormElementSignature.js +138 -140
  281. package/dist/form-elements/FormElementSignature.js.map +1 -1
  282. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  283. package/dist/form-elements/FormElementSummary.js +159 -159
  284. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  285. package/dist/form-elements/FormElementTelephone.js +22 -22
  286. package/dist/form-elements/FormElementText.d.ts +14 -14
  287. package/dist/form-elements/FormElementText.js +29 -29
  288. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  289. package/dist/form-elements/FormElementTextarea.js +30 -30
  290. package/dist/form-elements/FormElementTime.d.ts +14 -14
  291. package/dist/form-elements/FormElementTime.js +53 -53
  292. package/dist/form-elements/OptionButton.d.ts +11 -11
  293. package/dist/form-elements/OptionButton.js +9 -9
  294. package/dist/hooks/attachments/useAttachment.d.ts +12 -12
  295. package/dist/hooks/attachments/useAttachment.js +242 -242
  296. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  297. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  298. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
  299. package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
  300. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
  301. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  302. package/dist/hooks/attachments/useAttachments.js +69 -69
  303. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
  304. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
  305. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
  306. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  307. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  308. package/dist/hooks/useAuth.d.ts +15 -15
  309. package/dist/hooks/useAuth.js +42 -42
  310. package/dist/hooks/useBooleanState.d.ts +5 -5
  311. package/dist/hooks/useBooleanState.js +8 -8
  312. package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
  313. package/dist/hooks/useButtonsConfiguration.js +6 -0
  314. package/dist/hooks/useButtonsConfiguration.js.map +1 -0
  315. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  316. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  317. package/dist/hooks/useChangeEffect.d.ts +1 -0
  318. package/dist/hooks/useChangeEffect.js +14 -0
  319. package/dist/hooks/useChangeEffect.js.map +1 -0
  320. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  321. package/dist/hooks/useClickOutsideElement.js +14 -14
  322. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  323. package/dist/hooks/useConditionalLogic.js +22 -22
  324. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
  325. package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
  326. package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
  327. package/dist/hooks/useContrastColor.d.ts +2 -2
  328. package/dist/hooks/useContrastColor.js +12 -12
  329. package/dist/hooks/useCustomValidation.d.ts +1 -0
  330. package/dist/hooks/useCustomValidation.js +9 -0
  331. package/dist/hooks/useCustomValidation.js.map +1 -0
  332. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
  333. package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
  334. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
  335. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  336. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  337. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  338. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  339. package/dist/hooks/useFlatpickr.d.ts +10 -10
  340. package/dist/hooks/useFlatpickr.js +73 -73
  341. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  342. package/dist/hooks/useFlatpickrGuid.js +11 -11
  343. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  344. package/dist/hooks/useFlattenElementsContext.js +7 -7
  345. package/dist/hooks/useFormDefinition.d.ts +4 -4
  346. package/dist/hooks/useFormDefinition.js +9 -9
  347. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  348. package/dist/hooks/useFormElementOptions.js +35 -35
  349. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  350. package/dist/hooks/useFormIsReadOnly.js +5 -5
  351. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  352. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  353. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  354. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  355. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  356. package/dist/hooks/useFormSubmissionState.js +13 -13
  357. package/dist/hooks/useFormValidation.d.ts +7 -7
  358. package/dist/hooks/useFormValidation.js +29 -29
  359. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  360. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  361. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  362. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  363. package/dist/hooks/useInjectPages.d.ts +7 -7
  364. package/dist/hooks/useInjectPages.js +5 -5
  365. package/dist/hooks/useIsHovering.d.ts +5 -5
  366. package/dist/hooks/useIsHovering.js +12 -12
  367. package/dist/hooks/useIsMounted.d.ts +3 -3
  368. package/dist/hooks/useIsMounted.js +11 -11
  369. package/dist/hooks/useIsOffline.d.ts +6 -6
  370. package/dist/hooks/useIsOffline.js +26 -26
  371. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  372. package/dist/hooks/useIsPageVisible.js +8 -8
  373. package/dist/hooks/useLegacyElements.d.ts +16 -0
  374. package/dist/hooks/useLegacyElements.js +55 -0
  375. package/dist/hooks/useLegacyElements.js.map +1 -0
  376. package/dist/hooks/useLoadDataState.d.ts +15 -15
  377. package/dist/hooks/useLoadDataState.js +54 -54
  378. package/dist/hooks/useLogin.d.ts +46 -46
  379. package/dist/hooks/useLogin.js +295 -295
  380. package/dist/hooks/useLookupNotification.d.ts +9 -9
  381. package/dist/hooks/useLookupNotification.js +10 -10
  382. package/dist/hooks/useLookups.d.ts +5 -5
  383. package/dist/hooks/useLookups.js +62 -62
  384. package/dist/hooks/useNullableState.d.ts +2 -2
  385. package/dist/hooks/useNullableState.js +6 -6
  386. package/dist/hooks/usePages.d.ts +24 -24
  387. package/dist/hooks/usePages.js +141 -141
  388. package/dist/hooks/useQuery.d.ts +2 -2
  389. package/dist/hooks/useQuery.js +7 -7
  390. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  391. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  392. package/dist/hooks/useToggleAll.d.ts +6 -0
  393. package/dist/hooks/useToggleAll.js +24 -0
  394. package/dist/hooks/useToggleAll.js.map +1 -0
  395. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  396. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  397. package/dist/index.d.ts +23 -23
  398. package/dist/index.js +23 -23
  399. package/dist/services/attachments.d.ts +10 -10
  400. package/dist/services/attachments.js +72 -72
  401. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  402. package/dist/services/barcode-readers/quagger.js +34 -34
  403. package/dist/services/blob-utils.d.ts +5 -5
  404. package/dist/services/blob-utils.js +73 -73
  405. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  406. package/dist/services/checkBsbsAreInvalid.js +40 -40
  407. package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
  408. package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
  409. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  410. package/dist/services/checkIfAttachmentsExist.js +144 -144
  411. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  412. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  413. package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
  414. package/dist/services/clean-form-elements-ctrl-model.js +166 -0
  415. package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
  416. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  417. package/dist/services/cleanFormSubmissionModel.js +203 -203
  418. package/dist/services/conditionally-show-element.d.ts +11 -0
  419. package/dist/services/conditionally-show-element.js +92 -0
  420. package/dist/services/conditionally-show-element.js.map +1 -0
  421. package/dist/services/conditionally-show-option.d.ts +3 -0
  422. package/dist/services/conditionally-show-option.js +135 -0
  423. package/dist/services/conditionally-show-option.js.map +1 -0
  424. package/dist/services/defaultCoordinates.d.ts +5 -5
  425. package/dist/services/defaultCoordinates.js +8 -8
  426. package/dist/services/download-file.d.ts +3 -3
  427. package/dist/services/download-file.js +90 -90
  428. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  429. package/dist/services/drawTimestampOnCanvas.js +22 -22
  430. package/dist/services/flattenFormElements.d.ts +2 -0
  431. package/dist/services/flattenFormElements.js +13 -0
  432. package/dist/services/flattenFormElements.js.map +1 -0
  433. package/dist/services/form-validation.d.ts +10 -10
  434. package/dist/services/form-validation.js +561 -561
  435. package/dist/services/generate-default-data.d.ts +13 -13
  436. package/dist/services/generate-default-data.js +494 -494
  437. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  438. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  439. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  440. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  441. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
  442. package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
  443. package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
  444. package/dist/services/sanitize-html.d.ts +2 -2
  445. package/dist/services/sanitize-html.js +20 -20
  446. package/dist/services/scrolling-service.d.ts +7 -7
  447. package/dist/services/scrolling-service.js +38 -38
  448. package/dist/services/utils-service.d.ts +5 -5
  449. package/dist/services/utils-service.js +16 -16
  450. package/dist/styles/boolean.scss +12 -0
  451. package/dist/styles/ob-file.scss +63 -0
  452. package/dist/styles/progress.scss +0 -7
  453. package/dist/styles.css +0 -7
  454. package/dist/styles.css.map +1 -1
  455. package/dist/types/attachments.d.ts +19 -19
  456. package/dist/types/attachments.js +1 -1
  457. package/dist/types/form.d.ts +40 -40
  458. package/dist/types/form.js +2 -2
  459. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ declare function Files<T>({ id, element, isDirty, attachments, validationMessage, displayValidationMessage, onAddFiles, onRenderAttachment, }: {
4
+ id: string;
5
+ element: FormTypes.FilesElement;
6
+ isDirty: boolean;
7
+ attachments: T[];
8
+ displayValidationMessage: boolean;
9
+ validationMessage: string | undefined;
10
+ onAddFiles: (files: File[]) => void;
11
+ onRenderAttachment: (attachment: T, index: number) => React.ReactNode;
12
+ }): JSX.Element;
13
+ declare const _default: React.MemoExoticComponent<typeof Files>;
14
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import FormElementLabelContainer from '../FormElementLabelContainer';
3
+ function Files({ id, element, isDirty, attachments, validationMessage, displayValidationMessage, onAddFiles, onRenderAttachment, }) {
4
+ const inputRef = React.useRef(null);
5
+ const handleAdd = React.useCallback(() => {
6
+ if (!inputRef.current)
7
+ return;
8
+ // RESET HTML FILE INPUT VALUE SO FILES PREVIOUSLY ADDED AND REMOVED ARE RECOGNISED
9
+ inputRef.current.value = '';
10
+ inputRef.current.click();
11
+ }, []);
12
+ return (React.createElement("div", { className: "cypress-files-element" },
13
+ React.createElement(FormElementLabelContainer, { className: "ob-files", element: element, id: id, required: !!element.minEntries },
14
+ React.createElement("input", { ref: inputRef, type: "file", name: element.name, id: id, className: "file-input ob-input", multiple: element.maxEntries !== 1, disabled: element.readOnly, onChange: (event) => onAddFiles(event.target.files ? Array.from(event.target.files) : []) }),
15
+ React.createElement("div", { className: "control cypress-files-control" },
16
+ React.createElement("div", { className: "columns is-multiline" },
17
+ attachments.map(onRenderAttachment),
18
+ !element.readOnly &&
19
+ (!element.maxEntries ||
20
+ attachments.length < element.maxEntries) && (React.createElement("div", { className: "column is-one-quarter" },
21
+ React.createElement("button", { type: "button", className: "button ob-files__add-new-button", onClick: handleAdd },
22
+ React.createElement("i", { className: "material-icons icon-x-large" }, "add")))))),
23
+ (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
24
+ React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage))))));
25
+ }
26
+ export default React.memo(Files);
27
+ //# sourceMappingURL=Files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Files.js","sourceRoot":"","sources":["../../../src/components/attachments/Files.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,yBAAyB,MAAM,8BAA8B,CAAA;AAEpE,SAAS,KAAK,CAAI,EAChB,EAAE,EACF,OAAO,EACP,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,kBAAkB,GAUnB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAA;IAErD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAM;QAC7B,mFAAmF;QACnF,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;QAC3B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,6BAAK,SAAS,EAAC,uBAAuB;QACpC,oBAAC,yBAAyB,IACxB,SAAS,EAAC,UAAU,EACpB,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;YAE9B,+BACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,qBAAqB,EAC/B,QAAQ,EAAE,OAAO,CAAC,UAAU,KAAK,CAAC,EAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAEtE;YACF,6BAAK,SAAS,EAAC,+BAA+B;gBAC5C,6BAAK,SAAS,EAAC,sBAAsB;oBAClC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBACnC,CAAC,OAAO,CAAC,QAAQ;wBAChB,CAAC,CAAC,OAAO,CAAC,UAAU;4BAClB,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAC5C,6BAAK,SAAS,EAAC,uBAAuB;wBACpC,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iCAAiC,EAC3C,OAAO,EAAE,SAAS;4BAElB,2BAAG,SAAS,EAAC,6BAA6B,UAAQ,CAC3C,CACL,CACP,CACC,CACF;YAEL,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAC/D,6BAAK,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,kBAAkB;gBAC5C,6BAAK,SAAS,EAAC,2DAA2D,IACvE,iBAAiB,CACd,CACF,CACP,CACyB,CACxB,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import * as React from 'react'\n\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../FormElementLabelContainer'\n\nfunction Files<T>({\n id,\n element,\n isDirty,\n attachments,\n validationMessage,\n displayValidationMessage,\n onAddFiles,\n onRenderAttachment,\n}: {\n id: string\n element: FormTypes.FilesElement\n isDirty: boolean\n attachments: T[]\n displayValidationMessage: boolean\n validationMessage: string | undefined\n onAddFiles: (files: File[]) => void\n onRenderAttachment: (attachment: T, index: number) => React.ReactNode\n}) {\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleAdd = React.useCallback(() => {\n if (!inputRef.current) return\n // RESET HTML FILE INPUT VALUE SO FILES PREVIOUSLY ADDED AND REMOVED ARE RECOGNISED\n inputRef.current.value = ''\n inputRef.current.click()\n }, [])\n\n return (\n <div className=\"cypress-files-element\">\n <FormElementLabelContainer\n className=\"ob-files\"\n element={element}\n id={id}\n required={!!element.minEntries}\n >\n <input\n ref={inputRef}\n type=\"file\"\n name={element.name}\n id={id}\n className=\"file-input ob-input\"\n multiple={element.maxEntries !== 1}\n disabled={element.readOnly}\n onChange={(event) =>\n onAddFiles(event.target.files ? Array.from(event.target.files) : [])\n }\n />\n <div className=\"control cypress-files-control\">\n <div className=\"columns is-multiline\">\n {attachments.map(onRenderAttachment)}\n {!element.readOnly &&\n (!element.maxEntries ||\n attachments.length < element.maxEntries) && (\n <div className=\"column is-one-quarter\">\n <button\n type=\"button\"\n className=\"button ob-files__add-new-button\"\n onClick={handleAdd}\n >\n <i className=\"material-icons icon-x-large\">add</i>\n </button>\n </div>\n )}\n </div>\n </div>\n\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <div role=\"alert\" className=\"has-margin-top-8\">\n <div className=\"has-text-danger ob-error__text cypress-validation-message\">\n {validationMessage}\n </div>\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(Files)\n"]}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ declare function ImagePreviewUnavailable(): JSX.Element;
3
+ declare const _default: React.MemoExoticComponent<typeof ImagePreviewUnavailable>;
4
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import useIsOffline from '../../hooks/useIsOffline';
3
+ function ImagePreviewUnavailable() {
4
+ const isOffline = useIsOffline();
5
+ return (React.createElement(React.Fragment, null, isOffline ? (React.createElement(React.Fragment, null,
6
+ React.createElement("i", { className: "material-icons has-text-warning icon-large has-margin-bottom-6" }, "wifi_off"),
7
+ React.createElement("p", null, "It looks like you're offline. Image preview will be available when connectivity is restored."))) : (React.createElement(React.Fragment, null,
8
+ React.createElement("i", { className: "material-icons has-text-grey icon-large has-margin-bottom-6" }, "attach_file"),
9
+ React.createElement("p", null, "You do not have access to preview this image, however, it will be included with your submission.")))));
10
+ }
11
+ export default React.memo(ImagePreviewUnavailable);
12
+ //# sourceMappingURL=ImagePreviewUnavailable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImagePreviewUnavailable.js","sourceRoot":"","sources":["../../../src/components/attachments/ImagePreviewUnavailable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,YAAY,MAAM,0BAA0B,CAAA;AAEnD,SAAS,uBAAuB;IAC9B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,OAAO,CACL,0CACG,SAAS,CAAC,CAAC,CAAC,CACX;QACE,2BAAG,SAAS,EAAC,gEAAgE,eAEzE;QACJ,8HAGI,CACH,CACJ,CAAC,CAAC,CAAC,CACF;QACE,2BAAG,SAAS,EAAC,6DAA6D,kBAEtE;QACJ,kIAGI,CACH,CACJ,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport useIsOffline from '../../hooks/useIsOffline'\n\nfunction ImagePreviewUnavailable() {\n const isOffline = useIsOffline()\n\n return (\n <>\n {isOffline ? (\n <>\n <i className=\"material-icons has-text-warning icon-large has-margin-bottom-6\">\n wifi_off\n </i>\n <p>\n It looks like you&apos;re offline. Image preview will be available\n when connectivity is restored.\n </p>\n </>\n ) : (\n <>\n <i className=\"material-icons has-text-grey icon-large has-margin-bottom-6\">\n attach_file\n </i>\n <p>\n You do not have access to preview this image, however, it will be\n included with your submission.\n </p>\n </>\n )}\n </>\n )\n}\n\nexport default React.memo(ImagePreviewUnavailable)\n"]}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ declare function UploadingAttachment(): JSX.Element;
3
+ declare const _default: React.MemoExoticComponent<typeof UploadingAttachment>;
4
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { Tooltip } from '@mui/material';
3
+ import useIsOffline from '../../hooks/useIsOffline';
4
+ import OnLoading from '../OnLoading';
5
+ function UploadingAttachment() {
6
+ const isOffline = useIsOffline();
7
+ return (React.createElement(Tooltip, { title: isOffline
8
+ ? 'Upload will start when you connect to the internet'
9
+ : 'Uploading' },
10
+ React.createElement("div", { className: "cypress-attachment-uploading" }, isOffline ? (React.createElement("i", { className: "material-icons has-text-warning" }, "wifi_off")) : (React.createElement(OnLoading, { tiny: true })))));
11
+ }
12
+ export default React.memo(UploadingAttachment);
13
+ //# sourceMappingURL=UploadingAttachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadingAttachment.js","sourceRoot":"","sources":["../../../src/components/attachments/UploadingAttachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,SAAS,mBAAmB;IAC1B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,OAAO,CACL,oBAAC,OAAO,IACN,KAAK,EACH,SAAS;YACP,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,WAAW;QAGjB,6BAAK,SAAS,EAAC,8BAA8B,IAC1C,SAAS,CAAC,CAAC,CAAC,CACX,2BAAG,SAAS,EAAC,iCAAiC,eAAa,CAC5D,CAAC,CAAC,CAAC,CACF,oBAAC,SAAS,IAAC,IAAI,SAAG,CACnB,CACG,CACE,CACX,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Tooltip } from '@mui/material'\nimport useIsOffline from '../../hooks/useIsOffline'\nimport OnLoading from '../OnLoading'\n\nfunction UploadingAttachment() {\n const isOffline = useIsOffline()\n\n return (\n <Tooltip\n title={\n isOffline\n ? 'Upload will start when you connect to the internet'\n : 'Uploading'\n }\n >\n <div className=\"cypress-attachment-uploading\">\n {isOffline ? (\n <i className=\"material-icons has-text-warning\">wifi_off</i>\n ) : (\n <OnLoading tiny />\n )}\n </div>\n </Tooltip>\n )\n}\n\nexport default React.memo(UploadingAttachment)\n"]}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ColumnInstance } from 'react-table';
3
+ import { Checkbox } from '@mui/material';
4
+ import { SubmissionTypes } from '@oneblink/types';
5
+ declare function ColumnsConfigurationButton({ allColumns, getToggleHideAllColumnsProps, }: {
6
+ allColumns: ColumnInstance<SubmissionTypes.FormStoreRecord>[];
7
+ getToggleHideAllColumnsProps: () => React.ComponentProps<typeof Checkbox>;
8
+ }): JSX.Element;
9
+ declare const _default: React.MemoExoticComponent<typeof ColumnsConfigurationButton>;
10
+ export default _default;
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { Button, Checkbox, Dialog, DialogActions, DialogContent, DialogTitle, FormControlLabel, FormGroup, Typography, } from '@mui/material';
3
+ import { Settings as SettingsIcon } from '@mui/icons-material';
4
+ import useBooleanState from '../../hooks/useBooleanState';
5
+ function ColumnsConfigurationButton({ allColumns, getToggleHideAllColumnsProps, }) {
6
+ const [isConfiguringColumns, showColumnConfiguration, hideColumnConfiguration,] = useBooleanState(false);
7
+ const toggleHideAllColumnsProps = getToggleHideAllColumnsProps();
8
+ return (React.createElement(React.Fragment, null,
9
+ React.createElement(Button, { startIcon: React.createElement(SettingsIcon, null), onClick: showColumnConfiguration, variant: "outlined" }, "Columns"),
10
+ React.createElement(Dialog, { open: isConfiguringColumns, maxWidth: "sm", fullWidth: true, onClose: hideColumnConfiguration },
11
+ React.createElement(DialogTitle, null, "Column Configuration"),
12
+ React.createElement(DialogContent, { dividers: true },
13
+ React.createElement(FormGroup, null,
14
+ React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { ...toggleHideAllColumnsProps, indeterminate: !!toggleHideAllColumnsProps.indeterminate }), label: React.createElement("b", null, "Toggle All") }),
15
+ allColumns.map((column) => {
16
+ return (React.createElement(React.Fragment, { key: column.id },
17
+ React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { ...column.getToggleHiddenProps() }), label: React.createElement(React.Fragment, null,
18
+ column.headerText,
19
+ column.tooltip && (React.createElement(Typography, { component: "span", color: "textSecondary" },
20
+ ' ',
21
+ "(",
22
+ column.tooltip,
23
+ ")"))) })));
24
+ }))),
25
+ React.createElement(DialogActions, null,
26
+ React.createElement(Button, { onClick: hideColumnConfiguration, color: "primary", variant: "contained" }, "Done")))));
27
+ }
28
+ export default React.memo(ColumnsConfigurationButton);
29
+ //# sourceMappingURL=ColumnsConfigurationButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsConfigurationButton.js","sourceRoot":"","sources":["../../../src/components/formStore/ColumnsConfigurationButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,eAAe,MAAM,6BAA6B,CAAA;AAGzD,SAAS,0BAA0B,CAAC,EAClC,UAAU,EACV,4BAA4B,GAI7B;IACC,MAAM,CACJ,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACxB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IAE1B,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAA;IAEhE,OAAO,CACL;QACE,oBAAC,MAAM,IACL,SAAS,EAAE,oBAAC,YAAY,OAAG,EAC3B,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAC,UAAU,cAGX;QACT,oBAAC,MAAM,IACL,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAC,IAAI,EACb,SAAS,QACT,OAAO,EAAE,uBAAuB;YAEhC,oBAAC,WAAW,+BAAmC;YAC/C,oBAAC,aAAa,IAAC,QAAQ;gBACrB,oBAAC,SAAS;oBACR,oBAAC,gBAAgB,IACf,OAAO,EACL,oBAAC,QAAQ,OACH,yBAAyB,EAC7B,aAAa,EAAE,CAAC,CAAC,yBAAyB,CAAC,aAAa,GACxD,EAEJ,KAAK,EAAE,4CAAiB,GACxB;oBACD,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBACzB,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,EAAE;4BAC5B,oBAAC,gBAAgB,IACf,OAAO,EAAE,oBAAC,QAAQ,OAAK,MAAM,CAAC,oBAAoB,EAAE,GAAI,EACxD,KAAK,EACH;oCACG,MAAM,CAAC,UAAU;oCACjB,MAAM,CAAC,OAAO,IAAI,CACjB,oBAAC,UAAU,IAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe;wCAC/C,GAAG;;wCACF,MAAM,CAAC,OAAO;4CACL,CACd,CACA,GAEL,CACa,CAClB,CAAA;oBACH,CAAC,CAAC,CACQ,CACE;YAChB,oBAAC,aAAa;gBACZ,oBAAC,MAAM,IACL,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,WAAW,WAGZ,CACK,CACT,CACR,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { ColumnInstance } from 'react-table'\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControlLabel,\n FormGroup,\n Typography,\n} from '@mui/material'\nimport { Settings as SettingsIcon } from '@mui/icons-material'\nimport useBooleanState from '../../hooks/useBooleanState'\nimport { SubmissionTypes } from '@oneblink/types'\n\nfunction ColumnsConfigurationButton({\n allColumns,\n getToggleHideAllColumnsProps,\n}: {\n allColumns: ColumnInstance<SubmissionTypes.FormStoreRecord>[]\n getToggleHideAllColumnsProps: () => React.ComponentProps<typeof Checkbox>\n}) {\n const [\n isConfiguringColumns,\n showColumnConfiguration,\n hideColumnConfiguration,\n ] = useBooleanState(false)\n\n const toggleHideAllColumnsProps = getToggleHideAllColumnsProps()\n\n return (\n <>\n <Button\n startIcon={<SettingsIcon />}\n onClick={showColumnConfiguration}\n variant=\"outlined\"\n >\n Columns\n </Button>\n <Dialog\n open={isConfiguringColumns}\n maxWidth=\"sm\"\n fullWidth\n onClose={hideColumnConfiguration}\n >\n <DialogTitle>Column Configuration</DialogTitle>\n <DialogContent dividers>\n <FormGroup>\n <FormControlLabel\n control={\n <Checkbox\n {...toggleHideAllColumnsProps}\n indeterminate={!!toggleHideAllColumnsProps.indeterminate}\n />\n }\n label={<b>Toggle All</b>}\n />\n {allColumns.map((column) => {\n return (\n <React.Fragment key={column.id}>\n <FormControlLabel\n control={<Checkbox {...column.getToggleHiddenProps()} />}\n label={\n <>\n {column.headerText}\n {column.tooltip && (\n <Typography component=\"span\" color=\"textSecondary\">\n {' '}\n ({column.tooltip})\n </Typography>\n )}\n </>\n }\n />\n </React.Fragment>\n )\n })}\n </FormGroup>\n </DialogContent>\n <DialogActions>\n <Button\n onClick={hideColumnConfiguration}\n color=\"primary\"\n variant=\"contained\"\n >\n Done\n </Button>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n\nexport default React.memo(ColumnsConfigurationButton)\n"]}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { Form } from '@oneblink/types/typescript/forms';
3
+ import { ColumnInstance } from 'react-table';
4
+ import { FormStoreRecord } from '@oneblink/types/typescript/submissions';
5
+ import { formStoreService } from '@oneblink/apps';
6
+ declare function DownloadSubmissionDataButton({ disabled, form, filters, visibleColumns, }: {
7
+ disabled: boolean;
8
+ form: Form;
9
+ filters?: formStoreService.FormStoreFilters;
10
+ visibleColumns: ColumnInstance<FormStoreRecord>[];
11
+ }): JSX.Element;
12
+ declare const _default: React.MemoExoticComponent<typeof DownloadSubmissionDataButton>;
13
+ export default _default;
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import { Tooltip } from '@mui/material';
3
+ import { LoadingButton } from '@mui/lab';
4
+ import CsvIcon from '@mui/icons-material/Download';
5
+ import ErrorSnackbar from '../ErrorSnackbar';
6
+ import { formStoreService } from '@oneblink/apps';
7
+ function DownloadSubmissionDataButton({ disabled, form, filters, visibleColumns, }) {
8
+ const [{ isDownloadingCsv, downloadingCsvError }, setState] = React.useState({
9
+ isDownloadingCsv: false,
10
+ downloadingCsvError: null,
11
+ });
12
+ const clearError = React.useCallback(() => {
13
+ setState({
14
+ isDownloadingCsv: false,
15
+ downloadingCsvError: null,
16
+ });
17
+ }, []);
18
+ const downloadCsv = React.useCallback(async () => {
19
+ setState({ isDownloadingCsv: true, downloadingCsvError: null });
20
+ try {
21
+ await formStoreService.exportFormStoreRecords(form.name, {
22
+ formId: form.id,
23
+ filters,
24
+ includeColumns: visibleColumns.map((visibleColumn) => visibleColumn.id),
25
+ });
26
+ setState({
27
+ isDownloadingCsv: false,
28
+ downloadingCsvError: null,
29
+ });
30
+ }
31
+ catch (error) {
32
+ setState({
33
+ isDownloadingCsv: false,
34
+ downloadingCsvError: error,
35
+ });
36
+ }
37
+ }, [form, filters, visibleColumns]);
38
+ return (React.createElement(React.Fragment, null,
39
+ React.createElement(Tooltip, { title: "Download submission data as a CSV file" },
40
+ React.createElement(LoadingButton, { type: "button", loading: isDownloadingCsv, loadingPosition: "start", startIcon: React.createElement(CsvIcon, null), onClick: downloadCsv, color: "primary", variant: "outlined", disabled: disabled }, "Download")),
41
+ React.createElement(ErrorSnackbar, { open: !!downloadingCsvError, onClose: clearError },
42
+ React.createElement("span", { "data-cypress": "edit-dialog-error-message" }, downloadingCsvError && downloadingCsvError.message))));
43
+ }
44
+ export default React.memo(DownloadSubmissionDataButton);
45
+ //# sourceMappingURL=DownloadSubmissionDataButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DownloadSubmissionDataButton.js","sourceRoot":"","sources":["../../../src/components/formStore/DownloadSubmissionDataButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAElD,OAAO,aAAa,MAAM,kBAAkB,CAAA;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,SAAS,4BAA4B,CAAC,EACpC,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,cAAc,GAMf;IACC,MAAM,CAAC,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAGzE;QACD,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,QAAQ,CAAC;YACP,gBAAgB,EAAE,KAAK;YACvB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/C,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,IAAI;YACF,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvD,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,cAAc,EAAE,cAAc,CAAC,GAAG,CAChC,CAAC,aAA8C,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CACrE;aACF,CAAC,CAAA;YACF,QAAQ,CAAC;gBACP,gBAAgB,EAAE,KAAK;gBACvB,mBAAmB,EAAE,IAAI;aAC1B,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,QAAQ,CAAC;gBACP,gBAAgB,EAAE,KAAK;gBACvB,mBAAmB,EAAE,KAAc;aACpC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;IAEnC,OAAO,CACL;QACE,oBAAC,OAAO,IAAC,KAAK,EAAC,wCAAwC;YACrD,oBAAC,aAAa,IACZ,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,eAAe,EAAC,OAAO,EACvB,SAAS,EAAE,oBAAC,OAAO,OAAG,EACtB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,UAAU,EAClB,QAAQ,EAAE,QAAQ,eAGJ,CACR;QAEV,oBAAC,aAAa,IAAC,IAAI,EAAE,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,UAAU;YAC7D,8CAAmB,2BAA2B,IAC3C,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,CAC9C,CACO,CACf,CACJ,CAAA;AACH,CAAC;AACD,eAAe,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Tooltip } from '@mui/material'\nimport { LoadingButton } from '@mui/lab'\nimport CsvIcon from '@mui/icons-material/Download'\nimport { Form } from '@oneblink/types/typescript/forms'\nimport ErrorSnackbar from '../ErrorSnackbar'\nimport { ColumnInstance } from 'react-table'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { formStoreService } from '@oneblink/apps'\n\nfunction DownloadSubmissionDataButton({\n disabled,\n form,\n filters,\n visibleColumns,\n}: {\n disabled: boolean\n form: Form\n filters?: formStoreService.FormStoreFilters\n visibleColumns: ColumnInstance<FormStoreRecord>[]\n}) {\n const [{ isDownloadingCsv, downloadingCsvError }, setState] = React.useState<{\n isDownloadingCsv: boolean\n downloadingCsvError: Error | null\n }>({\n isDownloadingCsv: false,\n downloadingCsvError: null,\n })\n const clearError = React.useCallback(() => {\n setState({\n isDownloadingCsv: false,\n downloadingCsvError: null,\n })\n }, [])\n\n const downloadCsv = React.useCallback(async () => {\n setState({ isDownloadingCsv: true, downloadingCsvError: null })\n try {\n await formStoreService.exportFormStoreRecords(form.name, {\n formId: form.id,\n filters,\n includeColumns: visibleColumns.map(\n (visibleColumn: ColumnInstance<FormStoreRecord>) => visibleColumn.id,\n ),\n })\n setState({\n isDownloadingCsv: false,\n downloadingCsvError: null,\n })\n } catch (error) {\n setState({\n isDownloadingCsv: false,\n downloadingCsvError: error as Error,\n })\n }\n }, [form, filters, visibleColumns])\n\n return (\n <>\n <Tooltip title=\"Download submission data as a CSV file\">\n <LoadingButton\n type=\"button\"\n loading={isDownloadingCsv}\n loadingPosition=\"start\"\n startIcon={<CsvIcon />}\n onClick={downloadCsv}\n color=\"primary\"\n variant=\"outlined\"\n disabled={disabled}\n >\n Download\n </LoadingButton>\n </Tooltip>\n\n <ErrorSnackbar open={!!downloadingCsvError} onClose={clearError}>\n <span data-cypress=\"edit-dialog-error-message\">\n {downloadingCsvError && downloadingCsvError.message}\n </span>\n </ErrorSnackbar>\n </>\n )\n}\nexport default React.memo(DownloadSubmissionDataButton)\n"]}
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Form } from '@oneblink/types/typescript/forms';
3
+ import { FormTypes } from '@oneblink/types';
4
+ declare function FormStoreContainer({ form, formElements, }: {
5
+ form: Form;
6
+ formElements: FormTypes.FormElementWithName[];
7
+ }): JSX.Element;
8
+ declare const _default: React.MemoExoticComponent<typeof FormStoreContainer>;
9
+ export default _default;
@@ -0,0 +1,103 @@
1
+ import * as React from 'react';
2
+ import { useHistory } from 'react-router-dom';
3
+ import querystring from 'query-string';
4
+ import { formStoreService } from '@oneblink/apps';
5
+ import useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad';
6
+ import FormStoreTable from './table';
7
+ import useFormStoreTable from './table/useFormStoreTable';
8
+ import { Box, Button, Grid, Typography } from '@mui/material';
9
+ import { FilterList as FilterIcon, Settings as SettingsIcon, Sync as SyncIcon, } from '@mui/icons-material';
10
+ import useSubmissionIdValidationMessage, { validateIsUUID, } from '../../hooks/useSubmissionIdIsValid';
11
+ import DownloadSubmissionDataButton from './DownloadSubmissionDataButton';
12
+ import ColumnsConfigurationButton from './ColumnsConfigurationButton';
13
+ import ErrorMessage from '../ErrorMessage';
14
+ import LoadingWithMessage from '../LoadingWithMessage';
15
+ import NoResourcesYet from '../NoResourcesYet';
16
+ function FormStoreContainer({ form, formElements, }) {
17
+ var _a;
18
+ const history = useHistory();
19
+ const { isLoading, loadError, records: formStoreRecords, onTryAgain, onRefresh, filters, onChangeFilters, } = useInfiniteScrollDataLoad({
20
+ limit: 50,
21
+ debounceSearchMs: 1000,
22
+ onDefaultFilters: React.useCallback((query) => {
23
+ let filters = {};
24
+ try {
25
+ if (typeof query.filters === 'string') {
26
+ filters = JSON.parse(query.filters);
27
+ }
28
+ }
29
+ catch (error) {
30
+ console.warn('Could not parse filter as JSON', error);
31
+ }
32
+ if (!filters.sorting) {
33
+ filters.sorting = [
34
+ { property: 'dateTimeSubmitted', direction: 'descending' },
35
+ ];
36
+ }
37
+ return filters;
38
+ }, []),
39
+ onSearch: React.useCallback(async (filters, paging, abortSignal) => {
40
+ // Exclude all search parameters if searching
41
+ // for a specific submission using an identifier
42
+ const searchFilters = filters.submissionId
43
+ ? {
44
+ submissionId: filters.submissionId,
45
+ }
46
+ : filters;
47
+ const result = await formStoreService.searchFormStoreRecords({
48
+ paging,
49
+ formId: form.id,
50
+ filters: searchFilters,
51
+ }, abortSignal);
52
+ return {
53
+ records: result.formStoreRecords,
54
+ meta: result.meta,
55
+ };
56
+ }, [form.id]),
57
+ onValidateFilters: React.useCallback((currentFilters) => {
58
+ var _a;
59
+ return validateIsUUID((_a = currentFilters.submissionId) === null || _a === void 0 ? void 0 : _a.$eq);
60
+ }, []),
61
+ });
62
+ React.useEffect(() => {
63
+ history.replace({
64
+ search: querystring.stringify({
65
+ filters: JSON.stringify(filters),
66
+ }),
67
+ });
68
+ }, [filters, history]);
69
+ const submissionIdValidationMessage = useSubmissionIdValidationMessage((_a = filters.submissionId) === null || _a === void 0 ? void 0 : _a.$eq);
70
+ const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow, allColumns, visibleColumns, getToggleHideAllColumnsProps, } = useFormStoreTable({
71
+ formStoreRecords,
72
+ filters,
73
+ onChangeFilters,
74
+ submissionIdValidationMessage,
75
+ form,
76
+ formElements,
77
+ });
78
+ return (React.createElement(Box, { padding: 2, paddingBottom: 16 },
79
+ React.createElement(Grid, { container: true, spacing: 2, alignItems: "center" },
80
+ React.createElement(Grid, { item: true, xs: true },
81
+ React.createElement(Typography, { variant: "h6" }, form === null || form === void 0 ? void 0 : form.name)),
82
+ React.createElement(Grid, { item: true, xs: false },
83
+ React.createElement(Button, { startIcon: React.createElement(FilterIcon, null), disabled: !Object.keys(filters).length, onClick: () => {
84
+ onChangeFilters((currentFilters) => ({
85
+ sorting: currentFilters.sorting,
86
+ }), false);
87
+ }, variant: "text" }, "Clear Filters")),
88
+ React.createElement(Grid, { item: true, xs: false },
89
+ React.createElement(ColumnsConfigurationButton, { allColumns: allColumns, getToggleHideAllColumnsProps: getToggleHideAllColumnsProps })),
90
+ React.createElement(Grid, { item: true, xs: false },
91
+ React.createElement(DownloadSubmissionDataButton, { disabled: false, form: form, filters: filters, visibleColumns: visibleColumns })),
92
+ React.createElement(Grid, { item: true, xs: false },
93
+ React.createElement(Button, { startIcon: React.createElement(SyncIcon, null), onClick: onRefresh, color: "primary", variant: "contained", disabled: !!submissionIdValidationMessage }, "Refresh")),
94
+ React.createElement(Grid, { item: true, xs: 12 },
95
+ visibleColumns.length ? (React.createElement(FormStoreTable, { isEmptyResults: !formStoreRecords.length && !isLoading && !loadError, getTableProps: getTableProps, getTableBodyProps: getTableBodyProps, headerGroups: headerGroups, rows: rows, prepareRow: prepareRow, onChangeFilters: onChangeFilters })) : (React.createElement(NoResourcesYet, { IconComponent: SettingsIcon, title: "No Columns Visible", gutterBottom: true }, "It looks like you have hidden all of the available columns. Please enable at least one column to view submissions.")),
96
+ isLoading && (React.createElement(LoadingWithMessage, { message: "Loading more records..." })),
97
+ loadError && (React.createElement(React.Fragment, null,
98
+ React.createElement(ErrorMessage, { title: "Error Retrieving Submissions", gutterBottom: true, gutterTop: true }, loadError.message),
99
+ React.createElement(Grid, { container: true, justifyContent: "center" },
100
+ React.createElement(Button, { variant: "outlined", color: "primary", onClick: () => onTryAgain() }, "Try Again"))))))));
101
+ }
102
+ export default React.memo(FormStoreContainer);
103
+ //# sourceMappingURL=FormStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormStore.js","sourceRoot":"","sources":["../../../src/components/formStore/FormStore.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport querystring from 'query-string'\nimport { FormStoreRecord } from '@oneblink/types/typescript/submissions'\nimport { formStoreService } from '@oneblink/apps'\nimport useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad'\nimport FormStoreTable from './table'\nimport useFormStoreTable from './table/useFormStoreTable'\nimport { Box, Button, Grid, Typography } from '@mui/material'\nimport {\n FilterList as FilterIcon,\n Settings as SettingsIcon,\n Sync as SyncIcon,\n} from '@mui/icons-material'\nimport { Form } from '@oneblink/types/typescript/forms'\nimport useSubmissionIdValidationMessage, {\n validateIsUUID,\n} from '../../hooks/useSubmissionIdIsValid'\nimport { FormTypes } from '@oneblink/types'\nimport DownloadSubmissionDataButton from './DownloadSubmissionDataButton'\nimport ColumnsConfigurationButton from './ColumnsConfigurationButton'\nimport ErrorMessage from '../ErrorMessage'\nimport LoadingWithMessage from '../LoadingWithMessage'\nimport NoResourcesYet from '../NoResourcesYet'\n\nfunction FormStoreContainer({\n form,\n formElements,\n}: {\n form: Form\n formElements: FormTypes.FormElementWithName[]\n}) {\n const history = useHistory()\n const {\n isLoading,\n loadError,\n records: formStoreRecords,\n onTryAgain,\n onRefresh,\n filters,\n onChangeFilters,\n } = useInfiniteScrollDataLoad<\n formStoreService.FormStoreFilters,\n FormStoreRecord\n >({\n limit: 50,\n debounceSearchMs: 1000,\n onDefaultFilters: React.useCallback((query) => {\n let filters: formStoreService.FormStoreFilters = {}\n try {\n if (typeof query.filters === 'string') {\n filters = JSON.parse(query.filters)\n }\n } catch (error) {\n console.warn('Could not parse filter as JSON', error)\n }\n if (!filters.sorting) {\n filters.sorting = [\n { property: 'dateTimeSubmitted', direction: 'descending' },\n ]\n }\n return filters\n }, []),\n onSearch: React.useCallback(\n async (filters, paging, abortSignal) => {\n // Exclude all search parameters if searching\n // for a specific submission using an identifier\n const searchFilters = filters.submissionId\n ? {\n submissionId: filters.submissionId,\n }\n : filters\n const result = await formStoreService.searchFormStoreRecords(\n {\n paging,\n formId: form.id,\n filters: searchFilters,\n },\n abortSignal,\n )\n return {\n records: result.formStoreRecords,\n meta: result.meta,\n }\n },\n [form.id],\n ),\n onValidateFilters: React.useCallback(\n (currentFilters: formStoreService.FormStoreFilters) => {\n return validateIsUUID(currentFilters.submissionId?.$eq)\n },\n [],\n ),\n })\n\n React.useEffect(() => {\n history.replace({\n search: querystring.stringify({\n filters: JSON.stringify(filters),\n }),\n })\n }, [filters, history])\n\n const submissionIdValidationMessage = useSubmissionIdValidationMessage(\n filters.submissionId?.$eq,\n )\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n allColumns,\n visibleColumns,\n getToggleHideAllColumnsProps,\n } = useFormStoreTable({\n formStoreRecords,\n filters,\n onChangeFilters,\n submissionIdValidationMessage,\n form,\n formElements,\n })\n\n return (\n <Box padding={2} paddingBottom={16}>\n <Grid container spacing={2} alignItems=\"center\">\n <Grid item xs={true}>\n <Typography variant=\"h6\">{form?.name}</Typography>\n </Grid>\n <Grid item xs={false}>\n <Button\n startIcon={<FilterIcon />}\n disabled={!Object.keys(filters).length}\n onClick={() => {\n onChangeFilters(\n (currentFilters) => ({\n sorting: currentFilters.sorting,\n }),\n false,\n )\n }}\n variant=\"text\"\n >\n Clear Filters\n </Button>\n </Grid>\n <Grid item xs={false}>\n <ColumnsConfigurationButton\n allColumns={allColumns}\n getToggleHideAllColumnsProps={getToggleHideAllColumnsProps}\n />\n </Grid>\n <Grid item xs={false}>\n <DownloadSubmissionDataButton\n disabled={false}\n form={form}\n filters={filters}\n visibleColumns={visibleColumns}\n />\n </Grid>\n <Grid item xs={false}>\n <Button\n startIcon={<SyncIcon />}\n onClick={onRefresh}\n color=\"primary\"\n variant=\"contained\"\n disabled={!!submissionIdValidationMessage}\n >\n Refresh\n </Button>\n </Grid>\n <Grid item xs={12}>\n {visibleColumns.length ? (\n <FormStoreTable\n isEmptyResults={\n !formStoreRecords.length && !isLoading && !loadError\n }\n getTableProps={getTableProps}\n getTableBodyProps={getTableBodyProps}\n headerGroups={headerGroups}\n rows={rows}\n prepareRow={prepareRow}\n onChangeFilters={onChangeFilters}\n />\n ) : (\n <NoResourcesYet\n IconComponent={SettingsIcon}\n title=\"No Columns Visible\"\n gutterBottom\n >\n It looks like you have hidden all of the available columns. Please\n enable at least one column to view submissions.\n </NoResourcesYet>\n )}\n\n {isLoading && (\n <LoadingWithMessage message=\"Loading more records...\" />\n )}\n\n {loadError && (\n <>\n <ErrorMessage\n title=\"Error Retrieving Submissions\"\n gutterBottom\n gutterTop\n >\n {loadError.message}\n </ErrorMessage>\n <Grid container justifyContent=\"center\">\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => onTryAgain()}\n >\n Try Again\n </Button>\n </Grid>\n </>\n )}\n </Grid>\n </Grid>\n </Box>\n )\n}\n\nexport default React.memo(FormStoreContainer)\n"]}
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
2
- import { FormTypes } from '@oneblink/types';
3
- export declare function FormStoreTableProvider({ form, children, }: {
4
- form: FormTypes.Form;
5
- children: React.ReactNode;
6
- }): JSX.Element;
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ export declare function FormStoreTableProvider({ form, children, }: {
4
+ form: FormTypes.Form;
5
+ children: React.ReactNode;
6
+ }): JSX.Element;
@@ -1,91 +1,91 @@
1
- import * as React from 'react';
2
- import { useHistory } from 'react-router-dom';
3
- import querystring from 'query-string';
4
- import { formStoreService } from '@oneblink/apps';
5
- import useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad';
6
- import useFormStoreTable from './table/useFormStoreTable';
7
- import { Button, Grid } from '@mui/material';
8
- import { Settings as SettingsIcon } from '@mui/icons-material';
9
- import useSubmissionIdValidationMessage, { validateIsUUID, } from '../../hooks/useSubmissionIdIsValid';
10
- import ErrorMessage from '../messages/ErrorMessage';
11
- import LoadingWithMessage from '../LoadingWithMessage';
12
- import NoResourcesYet from '../messages/NoResourcesYet';
13
- import FormStoreIcon from './display/FormStoreIcon';
14
- import { FormStoreTableContext } from './useFormStoreTableContext';
15
- export function FormStoreTableProvider({ form, children, }) {
16
- var _a, _b;
17
- const history = useHistory();
18
- const { isLoading, loadError, records: formStoreRecords, onTryAgain, onRefresh, filters: parameters, onChangeFilters: onChangeParameters, } = useInfiniteScrollDataLoad({
19
- limit: 50,
20
- debounceSearchMs: 1000,
21
- onDefaultFilters: React.useCallback((query) => {
22
- let defaultParameters = {};
23
- try {
24
- if (typeof query.parameters === 'string') {
25
- defaultParameters = JSON.parse(query.parameters);
26
- }
27
- }
28
- catch (error) {
29
- console.warn('Could not parse filter as JSON', error);
30
- }
31
- if (!defaultParameters.sorting) {
32
- defaultParameters.sorting = [
33
- { property: 'dateTimeSubmitted', direction: 'descending' },
34
- ];
35
- }
36
- return defaultParameters;
37
- }, []),
38
- onSearch: React.useCallback(async (currentParameters, paging, abortSignal) => {
39
- var _a;
40
- // Exclude all search parameters if searching
41
- // for a specific submission using an identifier
42
- const filters = ((_a = currentParameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId)
43
- ? {
44
- submissionId: currentParameters.filters.submissionId,
45
- }
46
- : currentParameters.filters;
47
- const result = await formStoreService.searchFormStoreRecords({
48
- ...currentParameters,
49
- paging,
50
- formId: form.id,
51
- filters,
52
- }, abortSignal);
53
- return {
54
- records: result.formStoreRecords,
55
- meta: result.meta,
56
- };
57
- }, [form.id]),
58
- onValidateFilters: React.useCallback((currentParameters) => {
59
- var _a, _b;
60
- return validateIsUUID((_b = (_a = currentParameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId) === null || _b === void 0 ? void 0 : _b.$eq);
61
- }, []),
62
- });
63
- React.useEffect(() => {
64
- history.replace({
65
- search: querystring.stringify({
66
- parameters: JSON.stringify(parameters),
67
- }),
68
- });
69
- }, [history, parameters]);
70
- const submissionIdValidationMessage = useSubmissionIdValidationMessage((_b = (_a = parameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId) === null || _b === void 0 ? void 0 : _b.$eq);
71
- const formStoreTable = useFormStoreTable({
72
- formStoreRecords,
73
- parameters,
74
- onChangeParameters,
75
- submissionIdValidationMessage,
76
- form,
77
- onRefresh,
78
- });
79
- return (React.createElement(FormStoreTableContext.Provider, { value: formStoreTable },
80
- children,
81
- formStoreTable.visibleColumns.length ? (React.createElement(React.Fragment, null, !formStoreRecords.length && !isLoading && !loadError && (React.createElement(NoResourcesYet, { IconComponent: FormStoreIcon, title: "No Records Found..." }, "There are no Submissions matching your filters.")))) : (React.createElement(NoResourcesYet, { IconComponent: SettingsIcon, title: "No Columns Visible", gutterBottom: true }, "It looks like you have hidden all of the available columns. Please enable at least one column to view submissions.")),
82
- isLoading && (React.createElement("div", { className: isLoading === 'INITIAL'
83
- ? 'ob-form-store-loading-initial'
84
- : 'ob-form-store-loading-more' },
85
- React.createElement(LoadingWithMessage, { message: "Loading more records..." }))),
86
- loadError && (React.createElement(React.Fragment, null,
87
- React.createElement(ErrorMessage, { title: "Error Retrieving Submissions", gutterBottom: true, gutterTop: true }, loadError.message),
88
- React.createElement(Grid, { container: true, justifyContent: "center" },
89
- React.createElement(Button, { className: "ob-form-store-try-again-button", variant: "outlined", color: "primary", onClick: () => onTryAgain() }, "Try Again"))))));
90
- }
1
+ import * as React from 'react';
2
+ import { useHistory } from 'react-router-dom';
3
+ import querystring from 'query-string';
4
+ import { formStoreService } from '@oneblink/apps';
5
+ import useInfiniteScrollDataLoad from '../../hooks/useInfiniteScrollDataLoad';
6
+ import useFormStoreTable from './table/useFormStoreTable';
7
+ import { Button, Grid } from '@mui/material';
8
+ import { Settings as SettingsIcon } from '@mui/icons-material';
9
+ import useSubmissionIdValidationMessage, { validateIsUUID, } from '../../hooks/useSubmissionIdIsValid';
10
+ import ErrorMessage from '../messages/ErrorMessage';
11
+ import LoadingWithMessage from '../LoadingWithMessage';
12
+ import NoResourcesYet from '../messages/NoResourcesYet';
13
+ import FormStoreIcon from './display/FormStoreIcon';
14
+ import { FormStoreTableContext } from './useFormStoreTableContext';
15
+ export function FormStoreTableProvider({ form, children, }) {
16
+ var _a, _b;
17
+ const history = useHistory();
18
+ const { isLoading, loadError, records: formStoreRecords, onTryAgain, onRefresh, filters: parameters, onChangeFilters: onChangeParameters, } = useInfiniteScrollDataLoad({
19
+ limit: 50,
20
+ debounceSearchMs: 1000,
21
+ onDefaultFilters: React.useCallback((query) => {
22
+ let defaultParameters = {};
23
+ try {
24
+ if (typeof query.parameters === 'string') {
25
+ defaultParameters = JSON.parse(query.parameters);
26
+ }
27
+ }
28
+ catch (error) {
29
+ console.warn('Could not parse filter as JSON', error);
30
+ }
31
+ if (!defaultParameters.sorting) {
32
+ defaultParameters.sorting = [
33
+ { property: 'dateTimeSubmitted', direction: 'descending' },
34
+ ];
35
+ }
36
+ return defaultParameters;
37
+ }, []),
38
+ onSearch: React.useCallback(async (currentParameters, paging, abortSignal) => {
39
+ var _a;
40
+ // Exclude all search parameters if searching
41
+ // for a specific submission using an identifier
42
+ const filters = ((_a = currentParameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId)
43
+ ? {
44
+ submissionId: currentParameters.filters.submissionId,
45
+ }
46
+ : currentParameters.filters;
47
+ const result = await formStoreService.searchFormStoreRecords({
48
+ ...currentParameters,
49
+ paging,
50
+ formId: form.id,
51
+ filters,
52
+ }, abortSignal);
53
+ return {
54
+ records: result.formStoreRecords,
55
+ meta: result.meta,
56
+ };
57
+ }, [form.id]),
58
+ onValidateFilters: React.useCallback((currentParameters) => {
59
+ var _a, _b;
60
+ return validateIsUUID((_b = (_a = currentParameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId) === null || _b === void 0 ? void 0 : _b.$eq);
61
+ }, []),
62
+ });
63
+ React.useEffect(() => {
64
+ history.replace({
65
+ search: querystring.stringify({
66
+ parameters: JSON.stringify(parameters),
67
+ }),
68
+ });
69
+ }, [history, parameters]);
70
+ const submissionIdValidationMessage = useSubmissionIdValidationMessage((_b = (_a = parameters.filters) === null || _a === void 0 ? void 0 : _a.submissionId) === null || _b === void 0 ? void 0 : _b.$eq);
71
+ const formStoreTable = useFormStoreTable({
72
+ formStoreRecords,
73
+ parameters,
74
+ onChangeParameters,
75
+ submissionIdValidationMessage,
76
+ form,
77
+ onRefresh,
78
+ });
79
+ return (React.createElement(FormStoreTableContext.Provider, { value: formStoreTable },
80
+ children,
81
+ formStoreTable.visibleColumns.length ? (React.createElement(React.Fragment, null, !formStoreRecords.length && !isLoading && !loadError && (React.createElement(NoResourcesYet, { IconComponent: FormStoreIcon, title: "No Records Found..." }, "There are no Submissions matching your filters.")))) : (React.createElement(NoResourcesYet, { IconComponent: SettingsIcon, title: "No Columns Visible", gutterBottom: true }, "It looks like you have hidden all of the available columns. Please enable at least one column to view submissions.")),
82
+ isLoading && (React.createElement("div", { className: isLoading === 'INITIAL'
83
+ ? 'ob-form-store-loading-initial'
84
+ : 'ob-form-store-loading-more' },
85
+ React.createElement(LoadingWithMessage, { message: "Loading more records..." }))),
86
+ loadError && (React.createElement(React.Fragment, null,
87
+ React.createElement(ErrorMessage, { title: "Error Retrieving Submissions", gutterBottom: true, gutterTop: true }, loadError.message),
88
+ React.createElement(Grid, { container: true, justifyContent: "center" },
89
+ React.createElement(Button, { className: "ob-form-store-try-again-button", variant: "outlined", color: "primary", onClick: () => onTryAgain() }, "Try Again"))))));
90
+ }
91
91
  //# sourceMappingURL=FormStoreTableProvider.js.map
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
- import { Button } from '@mui/material';
3
- declare function OneBlinkFormStoreClearFiltersButton(props: React.ComponentProps<typeof Button>): JSX.Element;
4
- declare const _default: React.MemoExoticComponent<typeof OneBlinkFormStoreClearFiltersButton>;
5
- export default _default;
1
+ import * as React from 'react';
2
+ import { Button } from '@mui/material';
3
+ declare function OneBlinkFormStoreClearFiltersButton(props: React.ComponentProps<typeof Button>): JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof OneBlinkFormStoreClearFiltersButton>;
5
+ export default _default;