@oneblink/apps-react 0.6.2-beta.3 → 1.0.0-beta.10

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 (255) hide show
  1. package/dist/OneBlinkAutoSaveForm.js +2 -2
  2. package/dist/OneBlinkAutoSaveForm.js.map +1 -1
  3. package/dist/OneBlinkFormBase.js +4 -4
  4. package/dist/OneBlinkFormBase.js.map +1 -1
  5. package/dist/components/CopyToClipboardIconButton.d.ts +10 -0
  6. package/dist/components/CopyToClipboardIconButton.js +33 -0
  7. package/dist/components/CopyToClipboardIconButton.js.map +1 -0
  8. package/dist/components/CustomAccordion.d.ts +27 -0
  9. package/dist/components/CustomAccordion.js +38 -0
  10. package/dist/components/CustomAccordion.js.map +1 -0
  11. package/dist/components/ErrorSnackbar.d.ts +8 -0
  12. package/dist/components/ErrorSnackbar.js +26 -0
  13. package/dist/components/ErrorSnackbar.js.map +1 -0
  14. package/dist/components/Lists.d.ts +25 -0
  15. package/dist/components/Lists.js +45 -0
  16. package/dist/components/Lists.js.map +1 -0
  17. package/dist/components/LoadingWithMessage.d.ts +6 -0
  18. package/dist/components/LoadingWithMessage.js +12 -0
  19. package/dist/components/LoadingWithMessage.js.map +1 -0
  20. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -0
  21. package/dist/components/formStore/FormStoreTableProvider.js +89 -0
  22. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -0
  23. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -0
  24. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -0
  25. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -0
  26. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -0
  27. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +33 -0
  28. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -0
  29. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -0
  30. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +49 -0
  31. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -0
  32. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -0
  33. package/dist/components/formStore/OneBlinkFormStoreProvider.js +25 -0
  34. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -0
  35. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -0
  36. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +12 -0
  37. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -0
  38. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -0
  39. package/dist/components/formStore/OneBlinkFormStoreTable.js +184 -0
  40. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -0
  41. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -0
  42. package/dist/components/formStore/display/ElementDisplay.js +78 -0
  43. package/dist/components/formStore/display/ElementDisplay.js.map +1 -0
  44. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -0
  45. package/dist/components/formStore/display/FormStoreIcon.js +3 -0
  46. package/dist/components/formStore/display/FormStoreIcon.js.map +1 -0
  47. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -0
  48. package/dist/components/formStore/table/ActionedByTableCell.js +44 -0
  49. package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -0
  50. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -0
  51. package/dist/components/formStore/table/ColumnFilters.js +180 -0
  52. package/dist/components/formStore/table/ColumnFilters.js.map +1 -0
  53. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -0
  54. package/dist/components/formStore/table/FormElementTableCell.js +215 -0
  55. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -0
  56. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -0
  57. package/dist/components/formStore/table/HeaderCellMoreButton.js +49 -0
  58. package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -0
  59. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -0
  60. package/dist/components/formStore/table/RepeatableSetCell.js +61 -0
  61. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -0
  62. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -0
  63. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +12 -0
  64. package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -0
  65. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -0
  66. package/dist/components/formStore/table/TableCellCopyButton.js +28 -0
  67. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -0
  68. package/dist/components/formStore/table/generateColumns.d.ts +18 -0
  69. package/dist/components/formStore/table/generateColumns.js +233 -0
  70. package/dist/components/formStore/table/generateColumns.js.map +1 -0
  71. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -0
  72. package/dist/components/formStore/table/useFormStoreTable.js +139 -0
  73. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -0
  74. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -0
  75. package/dist/components/formStore/useFormStoreTableContext.js +10 -0
  76. package/dist/components/formStore/useFormStoreTableContext.js.map +1 -0
  77. package/dist/components/messages/ErrorMessage.d.ts +12 -0
  78. package/dist/components/messages/ErrorMessage.js +13 -0
  79. package/dist/components/messages/ErrorMessage.js.map +1 -0
  80. package/dist/components/messages/LargeIconMessage.d.ts +17 -0
  81. package/dist/components/messages/LargeIconMessage.js +38 -0
  82. package/dist/components/messages/LargeIconMessage.js.map +1 -0
  83. package/dist/components/messages/NoResourcesYet.d.ts +11 -0
  84. package/dist/components/messages/NoResourcesYet.js +7 -0
  85. package/dist/components/messages/NoResourcesYet.js.map +1 -0
  86. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +30 -0
  87. package/dist/components/pickers/V4CompatibleDatePicker.js +58 -0
  88. package/dist/components/pickers/V4CompatibleDatePicker.js.map +1 -0
  89. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +29 -0
  90. package/dist/components/pickers/V4CompatibleDateTimePicker.js +58 -0
  91. package/dist/components/pickers/V4CompatibleDateTimePicker.js.map +1 -0
  92. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +26 -0
  93. package/dist/components/pickers/V4CompatibleTimePicker.js +41 -0
  94. package/dist/components/pickers/V4CompatibleTimePicker.js.map +1 -0
  95. package/dist/components/{AnnotationModal.d.ts → renderer/AnnotationModal.d.ts} +0 -0
  96. package/dist/components/{AnnotationModal.js → renderer/AnnotationModal.js} +2 -2
  97. package/dist/components/renderer/AnnotationModal.js.map +1 -0
  98. package/dist/components/{AutocompleteDropdown.d.ts → renderer/AutocompleteDropdown.d.ts} +0 -0
  99. package/dist/components/{AutocompleteDropdown.js → renderer/AutocompleteDropdown.js} +1 -1
  100. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -0
  101. package/dist/components/{CopyToClipboardButton.d.ts → renderer/CopyToClipboardButton.d.ts} +0 -0
  102. package/dist/components/{CopyToClipboardButton.js → renderer/CopyToClipboardButton.js} +1 -1
  103. package/dist/components/renderer/CopyToClipboardButton.js.map +1 -0
  104. package/dist/components/{CustomisableButtonInner.d.ts → renderer/CustomisableButtonInner.d.ts} +0 -0
  105. package/dist/components/{CustomisableButtonInner.js → renderer/CustomisableButtonInner.js} +0 -0
  106. package/dist/components/renderer/CustomisableButtonInner.js.map +1 -0
  107. package/dist/components/{FormElementLabelContainer.d.ts → renderer/FormElementLabelContainer.d.ts} +0 -0
  108. package/dist/components/{FormElementLabelContainer.js → renderer/FormElementLabelContainer.js} +0 -0
  109. package/dist/components/renderer/FormElementLabelContainer.js.map +1 -0
  110. package/dist/components/{FormElementOptions.d.ts → renderer/FormElementOptions.d.ts} +0 -0
  111. package/dist/components/{FormElementOptions.js → renderer/FormElementOptions.js} +0 -0
  112. package/dist/components/renderer/FormElementOptions.js.map +1 -0
  113. package/dist/components/{LookupButton.d.ts → renderer/LookupButton.d.ts} +0 -0
  114. package/dist/components/{LookupButton.js → renderer/LookupButton.js} +3 -3
  115. package/dist/components/renderer/LookupButton.js.map +1 -0
  116. package/dist/components/{LookupNotification.d.ts → renderer/LookupNotification.d.ts} +1 -1
  117. package/dist/components/{LookupNotification.js → renderer/LookupNotification.js} +9 -9
  118. package/dist/components/renderer/LookupNotification.js.map +1 -0
  119. package/dist/components/{Modal.d.ts → renderer/Modal.d.ts} +0 -0
  120. package/dist/components/{Modal.js → renderer/Modal.js} +0 -0
  121. package/dist/components/renderer/Modal.js.map +1 -0
  122. package/dist/components/{OnLoading.d.ts → renderer/OnLoading.d.ts} +0 -0
  123. package/dist/components/{OnLoading.js → renderer/OnLoading.js} +0 -0
  124. package/dist/components/renderer/OnLoading.js.map +1 -0
  125. package/dist/components/{OneBlinkAppsErrorOriginalMessage.d.ts → renderer/OneBlinkAppsErrorOriginalMessage.d.ts} +0 -0
  126. package/dist/components/{OneBlinkAppsErrorOriginalMessage.js → renderer/OneBlinkAppsErrorOriginalMessage.js} +0 -0
  127. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
  128. package/dist/components/{OneBlinkFormElements.d.ts → renderer/OneBlinkFormElements.d.ts} +1 -1
  129. package/dist/components/{OneBlinkFormElements.js → renderer/OneBlinkFormElements.js} +36 -36
  130. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -0
  131. package/dist/components/{PageFormElements.d.ts → renderer/PageFormElements.d.ts} +1 -1
  132. package/dist/components/{PageFormElements.js → renderer/PageFormElements.js} +3 -3
  133. package/dist/components/renderer/PageFormElements.js.map +1 -0
  134. package/dist/components/{ToggleAllCheckbox.d.ts → renderer/ToggleAllCheckbox.d.ts} +1 -1
  135. package/dist/components/{ToggleAllCheckbox.js → renderer/ToggleAllCheckbox.js} +0 -0
  136. package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -0
  137. package/dist/components/{attachments → renderer/attachments}/AttachmentStatus.d.ts +0 -0
  138. package/dist/components/{attachments → renderer/attachments}/AttachmentStatus.js +1 -1
  139. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -0
  140. package/dist/components/{attachments → renderer/attachments}/FileCard.d.ts +0 -0
  141. package/dist/components/{attachments → renderer/attachments}/FileCard.js +4 -4
  142. package/dist/components/renderer/attachments/FileCard.js.map +1 -0
  143. package/dist/components/{attachments → renderer/attachments}/FileCardContent.d.ts +0 -0
  144. package/dist/components/{attachments → renderer/attachments}/FileCardContent.js +0 -0
  145. package/dist/components/renderer/attachments/FileCardContent.js.map +1 -0
  146. package/dist/components/{attachments → renderer/attachments}/Files.d.ts +0 -0
  147. package/dist/components/{attachments → renderer/attachments}/Files.js +0 -0
  148. package/dist/components/renderer/attachments/Files.js.map +1 -0
  149. package/dist/components/{attachments → renderer/attachments}/ImagePreviewUnavailable.d.ts +0 -0
  150. package/dist/components/{attachments → renderer/attachments}/ImagePreviewUnavailable.js +1 -1
  151. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -0
  152. package/dist/components/{attachments → renderer/attachments}/UploadingAttachment.d.ts +0 -0
  153. package/dist/components/{attachments → renderer/attachments}/UploadingAttachment.js +1 -1
  154. package/dist/components/renderer/attachments/UploadingAttachment.js.map +1 -0
  155. package/dist/form-elements/FormElementABN.js +3 -3
  156. package/dist/form-elements/FormElementABN.js.map +1 -1
  157. package/dist/form-elements/FormElementAutocomplete.js +3 -3
  158. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  159. package/dist/form-elements/FormElementBSB.js +3 -3
  160. package/dist/form-elements/FormElementBSB.js.map +1 -1
  161. package/dist/form-elements/FormElementBarcodeScanner.js +4 -4
  162. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  163. package/dist/form-elements/FormElementBoolean.js +1 -1
  164. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  165. package/dist/form-elements/FormElementCamera.js +6 -6
  166. package/dist/form-elements/FormElementCamera.js.map +1 -1
  167. package/dist/form-elements/FormElementCheckBoxes.js +4 -4
  168. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  169. package/dist/form-elements/FormElementCivicaStreetName.js +2 -2
  170. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  171. package/dist/form-elements/FormElementCompliance.js +2 -2
  172. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  173. package/dist/form-elements/FormElementDate.js +4 -4
  174. package/dist/form-elements/FormElementDate.js.map +1 -1
  175. package/dist/form-elements/FormElementDateTime.js +4 -4
  176. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  177. package/dist/form-elements/FormElementEmail.js +3 -3
  178. package/dist/form-elements/FormElementEmail.js.map +1 -1
  179. package/dist/form-elements/FormElementFiles/FormElementFile.js +1 -1
  180. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -1
  181. package/dist/form-elements/FormElementFiles/FormElementFiles.js +1 -1
  182. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -1
  183. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +2 -2
  184. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -1
  185. package/dist/form-elements/FormElementForm.js +1 -1
  186. package/dist/form-elements/FormElementForm.js.map +1 -1
  187. package/dist/form-elements/FormElementGeoscapeAddress.js +2 -2
  188. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  189. package/dist/form-elements/FormElementLocation.js +2 -2
  190. package/dist/form-elements/FormElementLocation.js.map +1 -1
  191. package/dist/form-elements/FormElementNumber.js +3 -3
  192. package/dist/form-elements/FormElementNumber.js.map +1 -1
  193. package/dist/form-elements/FormElementPointAddress.js +2 -2
  194. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  195. package/dist/form-elements/FormElementRadio.js +2 -2
  196. package/dist/form-elements/FormElementRadio.js.map +1 -1
  197. package/dist/form-elements/FormElementRepeatableSet.js +3 -3
  198. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  199. package/dist/form-elements/FormElementSection.d.ts +1 -1
  200. package/dist/form-elements/FormElementSection.js +1 -1
  201. package/dist/form-elements/FormElementSection.js.map +1 -1
  202. package/dist/form-elements/FormElementSelect.js +4 -4
  203. package/dist/form-elements/FormElementSelect.js.map +1 -1
  204. package/dist/form-elements/FormElementSignature.js +4 -4
  205. package/dist/form-elements/FormElementSignature.js.map +1 -1
  206. package/dist/form-elements/FormElementTelephone.js +3 -3
  207. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  208. package/dist/form-elements/FormElementText.js +3 -3
  209. package/dist/form-elements/FormElementText.js.map +1 -1
  210. package/dist/form-elements/FormElementTextarea.js +3 -3
  211. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  212. package/dist/form-elements/FormElementTime.js +4 -4
  213. package/dist/form-elements/FormElementTime.js.map +1 -1
  214. package/dist/hooks/useConditionalLogic.js +1 -1
  215. package/dist/hooks/useConditionalLogic.js.map +1 -1
  216. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +29 -0
  217. package/dist/hooks/useInfiniteScrollDataLoad.js +118 -0
  218. package/dist/hooks/useInfiniteScrollDataLoad.js.map +1 -0
  219. package/dist/hooks/useIsHovering.d.ts +5 -0
  220. package/dist/hooks/useIsHovering.js +13 -0
  221. package/dist/hooks/useIsHovering.js.map +1 -0
  222. package/dist/hooks/useQuery.d.ts +2 -0
  223. package/dist/hooks/useQuery.js +8 -0
  224. package/dist/hooks/useQuery.js.map +1 -0
  225. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -0
  226. package/dist/hooks/useSubmissionIdIsValid.js +20 -0
  227. package/dist/hooks/useSubmissionIdIsValid.js.map +1 -0
  228. package/dist/index.d.ts +9 -0
  229. package/dist/index.js +9 -0
  230. package/dist/index.js.map +1 -1
  231. package/dist/services/defaultCoordinates.js +1 -1
  232. package/dist/services/defaultCoordinates.js.map +1 -1
  233. package/dist/services/generate-default-data.js +1 -1
  234. package/dist/services/generate-default-data.js.map +1 -1
  235. package/package.json +14 -5
  236. package/dist/components/AnnotationModal.js.map +0 -1
  237. package/dist/components/AutocompleteDropdown.js.map +0 -1
  238. package/dist/components/CopyToClipboardButton.js.map +0 -1
  239. package/dist/components/CustomisableButtonInner.js.map +0 -1
  240. package/dist/components/FormElementLabelContainer.js.map +0 -1
  241. package/dist/components/FormElementOptions.js.map +0 -1
  242. package/dist/components/LookupButton.js.map +0 -1
  243. package/dist/components/LookupNotification.js.map +0 -1
  244. package/dist/components/Modal.js.map +0 -1
  245. package/dist/components/OnLoading.js.map +0 -1
  246. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +0 -1
  247. package/dist/components/OneBlinkFormElements.js.map +0 -1
  248. package/dist/components/PageFormElements.js.map +0 -1
  249. package/dist/components/ToggleAllCheckbox.js.map +0 -1
  250. package/dist/components/attachments/AttachmentStatus.js.map +0 -1
  251. package/dist/components/attachments/FileCard.js.map +0 -1
  252. package/dist/components/attachments/FileCardContent.js.map +0 -1
  253. package/dist/components/attachments/Files.js.map +0 -1
  254. package/dist/components/attachments/ImagePreviewUnavailable.js.map +0 -1
  255. package/dist/components/attachments/UploadingAttachment.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import OnLoading from './components/OnLoading';
3
- import Modal from './components/Modal';
2
+ import OnLoading from './components/renderer/OnLoading';
3
+ import Modal from './components/renderer/Modal';
4
4
  import OneBlinkFormBase from './OneBlinkFormBase';
5
5
  import useFormSubmissionAutoSaveState from './hooks/useFormSubmissionAutoSaveState';
6
6
  function OneBlinkAutoSaveForm({ form, initialSubmission, autoSaveKey, onCancel, onSubmit, onSaveDraft, ...props }) {
@@ -1 +1 @@
1
- {"version":3,"file":"OneBlinkAutoSaveForm.js","sourceRoot":"","sources":["../src/OneBlinkAutoSaveForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,MAAM,oBAAoB,CAAA;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,8BAA8B,MAAM,wCAAwC,CAAA;AAOnF,SAAS,oBAAoB,CAAC,EAC5B,IAAI,EACJ,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,GAAG,KAAK,EACF;IACN,MAAM,EACJ,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,GAAG,8BAA8B,CAAC;QACjC,IAAI;QACJ,iBAAiB;QACjB,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,WAAW;KACZ,CAAC,CAAA;IAEF,IAAI,2BAA2B,EAAE;QAC/B,OAAO,CACL,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,SAAS,IAAC,SAAS,EAAC,mBAAmB,GAAa,CACjD,CACP,CAAA;KACF;IAED,IAAI,6BAA6B,EAAE;QACjC,OAAO,CACL,oBAAC,KAAK,IACJ,MAAM,QACN,KAAK,EAAC,WAAW,EACjB,aAAa,EAAC,4BAA4B,EAC1C,OAAO,EACL;gBACE,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yEAAyE,EACnF,OAAO,EAAE,kBAAkB,kBAGpB;gBACT,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wEAAwE,EAClF,OAAO,EAAE,0BAA0B,eAG5B,CACR,uGAKC,CACT,CAAA;KACF;IAED,OAAO,CACL,oBAAC,gBAAgB,OACX,KAAK,EACT,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport OnLoading from './components/OnLoading'\nimport Modal from './components/Modal'\nimport OneBlinkFormBase from './OneBlinkFormBase'\nimport useFormSubmissionAutoSaveState from './hooks/useFormSubmissionAutoSaveState'\nimport { OneBlinkFormUncontrolled } from './OneBlinkForm'\n\ntype Props = React.ComponentProps<typeof OneBlinkFormUncontrolled> & {\n autoSaveKey: string\n}\n\nfunction OneBlinkAutoSaveForm({\n form,\n initialSubmission,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n ...props\n}: Props) {\n const {\n definition,\n submission,\n isLoadingAutoSaveSubmission,\n isAutoSaveSubmissionAvailable,\n startNewSubmission,\n continueAutoSaveSubmission,\n handleSubmit,\n handleCancel,\n handleSaveDraft,\n setFormSubmission,\n } = useFormSubmissionAutoSaveState({\n form,\n initialSubmission,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n })\n\n if (isLoadingAutoSaveSubmission) {\n return (\n <div className=\"cypress-loading has-text-centered\">\n <OnLoading className=\"has-text-centered\"></OnLoading>\n </div>\n )\n }\n\n if (isAutoSaveSubmissionAvailable) {\n return (\n <Modal\n isOpen\n title=\"Continue?\"\n cardClassName=\"cypress-continue-auto-save\"\n actions={\n <>\n <button\n type=\"button\"\n className=\"button ob-button is-light cypress-continue-auto-save-start-again-button\"\n onClick={startNewSubmission}\n >\n Start Again\n </button>\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-continue-auto-save-continue-button\"\n onClick={continueAutoSaveSubmission}\n >\n Continue\n </button>\n </>\n }\n >\n We found an in progress submission, would you like to pick up where you\n left off or start again?\n </Modal>\n )\n }\n\n return (\n <OneBlinkFormBase\n {...props}\n isReadOnly={false}\n submission={submission}\n definition={definition}\n onCancel={handleCancel}\n onSubmit={handleSubmit}\n onSaveDraft={handleSaveDraft}\n setFormSubmission={setFormSubmission}\n />\n )\n}\n\nexport default React.memo(OneBlinkAutoSaveForm)\n"]}
1
+ {"version":3,"file":"OneBlinkAutoSaveForm.js","sourceRoot":"","sources":["../src/OneBlinkAutoSaveForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,iCAAiC,CAAA;AACvD,OAAO,KAAK,MAAM,6BAA6B,CAAA;AAC/C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,8BAA8B,MAAM,wCAAwC,CAAA;AAOnF,SAAS,oBAAoB,CAAC,EAC5B,IAAI,EACJ,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,GAAG,KAAK,EACF;IACN,MAAM,EACJ,UAAU,EACV,UAAU,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,GAAG,8BAA8B,CAAC;QACjC,IAAI;QACJ,iBAAiB;QACjB,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,WAAW;KACZ,CAAC,CAAA;IAEF,IAAI,2BAA2B,EAAE;QAC/B,OAAO,CACL,6BAAK,SAAS,EAAC,mCAAmC;YAChD,oBAAC,SAAS,IAAC,SAAS,EAAC,mBAAmB,GAAa,CACjD,CACP,CAAA;KACF;IAED,IAAI,6BAA6B,EAAE;QACjC,OAAO,CACL,oBAAC,KAAK,IACJ,MAAM,QACN,KAAK,EAAC,WAAW,EACjB,aAAa,EAAC,4BAA4B,EAC1C,OAAO,EACL;gBACE,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yEAAyE,EACnF,OAAO,EAAE,kBAAkB,kBAGpB;gBACT,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wEAAwE,EAClF,OAAO,EAAE,0BAA0B,eAG5B,CACR,uGAKC,CACT,CAAA;KACF;IAED,OAAO,CACL,oBAAC,gBAAgB,OACX,KAAK,EACT,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,eAAe,EAC5B,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport OnLoading from './components/renderer/OnLoading'\nimport Modal from './components/renderer/Modal'\nimport OneBlinkFormBase from './OneBlinkFormBase'\nimport useFormSubmissionAutoSaveState from './hooks/useFormSubmissionAutoSaveState'\nimport { OneBlinkFormUncontrolled } from './OneBlinkForm'\n\ntype Props = React.ComponentProps<typeof OneBlinkFormUncontrolled> & {\n autoSaveKey: string\n}\n\nfunction OneBlinkAutoSaveForm({\n form,\n initialSubmission,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n ...props\n}: Props) {\n const {\n definition,\n submission,\n isLoadingAutoSaveSubmission,\n isAutoSaveSubmissionAvailable,\n startNewSubmission,\n continueAutoSaveSubmission,\n handleSubmit,\n handleCancel,\n handleSaveDraft,\n setFormSubmission,\n } = useFormSubmissionAutoSaveState({\n form,\n initialSubmission,\n autoSaveKey,\n onCancel,\n onSubmit,\n onSaveDraft,\n })\n\n if (isLoadingAutoSaveSubmission) {\n return (\n <div className=\"cypress-loading has-text-centered\">\n <OnLoading className=\"has-text-centered\"></OnLoading>\n </div>\n )\n }\n\n if (isAutoSaveSubmissionAvailable) {\n return (\n <Modal\n isOpen\n title=\"Continue?\"\n cardClassName=\"cypress-continue-auto-save\"\n actions={\n <>\n <button\n type=\"button\"\n className=\"button ob-button is-light cypress-continue-auto-save-start-again-button\"\n onClick={startNewSubmission}\n >\n Start Again\n </button>\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-continue-auto-save-continue-button\"\n onClick={continueAutoSaveSubmission}\n >\n Continue\n </button>\n </>\n }\n >\n We found an in progress submission, would you like to pick up where you\n left off or start again?\n </Modal>\n )\n }\n\n return (\n <OneBlinkFormBase\n {...props}\n isReadOnly={false}\n submission={submission}\n definition={definition}\n onCancel={handleCancel}\n onSubmit={handleSubmit}\n onSaveDraft={handleSaveDraft}\n setFormSubmission={setFormSubmission}\n />\n )\n}\n\nexport default React.memo(OneBlinkAutoSaveForm)\n"]}
@@ -4,10 +4,10 @@ import { Prompt, useHistory } from 'react-router-dom';
4
4
  import clsx from 'clsx';
5
5
  import * as bulmaToast from 'bulma-toast';
6
6
  import { localisationService } from '@oneblink/apps';
7
- import Modal from './components/Modal';
8
- import OneBlinkAppsErrorOriginalMessage from './components/OneBlinkAppsErrorOriginalMessage';
7
+ import Modal from './components/renderer/Modal';
8
+ import OneBlinkAppsErrorOriginalMessage from './components/renderer/OneBlinkAppsErrorOriginalMessage';
9
9
  import cleanFormSubmissionModel from './services/cleanFormSubmissionModel';
10
- import PageFormElements from './components/PageFormElements';
10
+ import PageFormElements from './components/renderer/PageFormElements';
11
11
  import useFormValidation from './hooks/useFormValidation';
12
12
  import useConditionalLogic from './hooks/useConditionalLogic';
13
13
  import usePages from './hooks/usePages';
@@ -23,7 +23,7 @@ import { FormIsReadOnlyContext } from './hooks/useFormIsReadOnly';
23
23
  import { AttachmentBlobsProvider } from './hooks/attachments/useAttachmentBlobs';
24
24
  import checkIfAttachmentsAreUploading from './services/checkIfAttachmentsAreUploading';
25
25
  import useIsOffline from './hooks/useIsOffline';
26
- import CustomisableButtonInner from './components/CustomisableButtonInner';
26
+ import CustomisableButtonInner from './components/renderer/CustomisableButtonInner';
27
27
  import checkBsbsAreInvalid from './services/checkBsbsAreInvalid';
28
28
  import checkIfBsbsAreValidating from './services/checkIfBsbsAreValidating';
29
29
  import checkIfAttachmentsExist from './services/checkIfAttachmentsExist';
@@ -1 +1 @@
1
- {"version":3,"file":"OneBlinkFormBase.js","sourceRoot":"","sources":["../src/OneBlinkFormBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n createTheme as createMuiTheme,\n ThemeProvider,\n Tooltip,\n} from '@mui/material'\nimport { Prompt, useHistory } from 'react-router-dom'\nimport clsx from 'clsx'\nimport * as bulmaToast from 'bulma-toast'\nimport { localisationService, submissionService } from '@oneblink/apps'\nimport { FormTypes, FormsAppsTypes } from '@oneblink/types'\n\nimport Modal from './components/Modal'\nimport OneBlinkAppsErrorOriginalMessage from './components/OneBlinkAppsErrorOriginalMessage'\nimport cleanFormSubmissionModel from './services/cleanFormSubmissionModel'\nimport PageFormElements from './components/PageFormElements'\nimport useFormValidation from './hooks/useFormValidation'\nimport useConditionalLogic from './hooks/useConditionalLogic'\nimport usePages from './hooks/usePages'\nimport useLookups from './hooks/useLookups'\nimport { FormDefinitionContext } from './hooks/useFormDefinition'\nimport { InjectPagesContext } from './hooks/useInjectPages'\nimport { ExecutedLookupProvider } from './hooks/useExecutedLookupCallback'\nimport useDynamicOptionsLoaderState from './hooks/useDynamicOptionsLoaderState'\nimport { GoogleMapsApiKeyContext } from './hooks/useGoogleMapsApiKey'\nimport { AbnLookupAuthenticationGuidContext } from './hooks/useAbnLookupAuthenticationGuid'\nimport { CaptchaSiteKeyContext } from './hooks/useCaptchaSiteKey'\nimport { FormIsReadOnlyContext } from './hooks/useFormIsReadOnly'\nimport { AttachmentBlobsProvider } from './hooks/attachments/useAttachmentBlobs'\nimport checkIfAttachmentsAreUploading from './services/checkIfAttachmentsAreUploading'\nimport useIsOffline from './hooks/useIsOffline'\nimport CustomisableButtonInner from './components/CustomisableButtonInner'\nimport {\n FormElementsValidation,\n FormElementValueChangeHandler,\n FormSubmissionModel,\n SetFormSubmission,\n} from './types/form'\nimport checkBsbsAreInvalid from './services/checkBsbsAreInvalid'\nimport checkIfBsbsAreValidating from './services/checkIfBsbsAreValidating'\nimport checkIfAttachmentsExist from './services/checkIfAttachmentsExist'\n\nexport type BaseProps = {\n onCancel: () => unknown\n onSubmit: (newFormSubmission: submissionService.NewFormSubmission) => unknown\n disabled?: boolean\n isPreview?: boolean\n googleMapsApiKey?: string\n abnLookupAuthenticationGuid?: string\n captchaSiteKey?: string\n buttons?: FormsAppsTypes.FormsListStyles['buttons']\n primaryColour?: string\n attachmentRetentionInDays?: number\n onSaveDraft?: (\n newDraftSubmission: submissionService.NewDraftSubmission,\n ) => unknown\n}\n\nexport type ControlledProps = {\n definition: FormTypes.Form\n submission: FormSubmissionModel\n setFormSubmission: SetFormSubmission\n}\n\ntype Props = BaseProps &\n ControlledProps & {\n isReadOnly: boolean\n }\n\nfunction OneBlinkFormBase({\n googleMapsApiKey,\n abnLookupAuthenticationGuid,\n captchaSiteKey,\n definition,\n disabled,\n isPreview,\n submission,\n isReadOnly,\n onCancel,\n onSubmit,\n onSaveDraft,\n setFormSubmission,\n buttons,\n primaryColour,\n attachmentRetentionInDays,\n}: Props) {\n const isOffline = useIsOffline()\n\n const theme = React.useMemo(\n () =>\n createMuiTheme({\n palette: {\n primary: {\n main: primaryColour || '#4c8da7',\n },\n },\n }),\n [primaryColour],\n )\n\n //\n //\n // #region Form Definition\n\n const pages = React.useMemo<FormTypes.PageElement[]>(() => {\n if (definition.isMultiPage) {\n return definition.elements.reduce(\n (\n pageElements: FormTypes.PageElement[],\n formElement: FormTypes.FormElement,\n ) => {\n if (formElement.type === 'page') {\n pageElements.push(formElement)\n }\n return pageElements\n },\n [],\n )\n } else {\n return [\n {\n type: 'page',\n id: definition.id.toString(),\n label: definition.name,\n elements: definition.elements,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n },\n ]\n }\n }, [\n definition.elements,\n definition.id,\n definition.isMultiPage,\n definition.name,\n ])\n\n // #endregion\n //\n //\n\n //\n //\n // #region Unsaved Changed\n\n const history = useHistory()\n\n const [\n { isDirty, isNavigationAllowed, hasConfirmedNavigation, goToLocation },\n setUnsavedChangesState,\n ] = React.useState<{\n isDirty: boolean\n isNavigationAllowed: boolean\n hasConfirmedNavigation: boolean | null\n goToLocation: Location | null\n }>({\n isDirty: false,\n isNavigationAllowed: false,\n hasConfirmedNavigation: null,\n goToLocation: null,\n })\n const handleBlockedNavigation = React.useCallback((location) => {\n setUnsavedChangesState((current) => ({\n ...current,\n goToLocation: location,\n hasConfirmedNavigation: false,\n }))\n return false\n }, [])\n\n const handleKeepGoing = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n goToLocation: null,\n hasConfirmedNavigation: null,\n }))\n }, [])\n\n const handleDiscardUnsavedChanges = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n isNavigationAllowed: true,\n hasConfirmedNavigation: true,\n }))\n }, [])\n\n React.useEffect(() => {\n if (hasConfirmedNavigation) {\n // Navigate to the previous blocked location with your navigate function\n if (goToLocation) {\n history.push(`${goToLocation.pathname}${goToLocation.search}`)\n } else {\n onCancel()\n }\n }\n }, [goToLocation, hasConfirmedNavigation, history, onCancel])\n\n const handleCancel = React.useCallback(() => {\n if (isDirty) {\n setUnsavedChangesState((current) => ({\n ...current,\n hasConfirmedNavigation: false,\n }))\n } else {\n onCancel()\n }\n }, [isDirty, onCancel])\n\n const allowNavigation = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n isNavigationAllowed: true,\n }))\n }, [])\n\n // #endregion Unsaved Changed\n //\n //\n\n //\n //\n // #region Conditional Logic\n\n const { formElementsConditionallyShown, conditionalLogicError } =\n useConditionalLogic(definition, submission)\n\n // #endregion\n //\n //\n\n //\n //\n // #region Validation\n\n const { validate, executedLookup, executeLookupFailed } =\n useFormValidation(pages)\n\n const formElementsValidation = React.useMemo<\n FormElementsValidation | undefined\n >(\n () => validate(submission, formElementsConditionallyShown),\n [formElementsConditionallyShown, submission, validate],\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Pages\n\n const {\n visiblePages,\n isFirstVisiblePage,\n isLastVisiblePage,\n isDisplayingCurrentPageError,\n isShowingMultiplePages,\n isStepsHeaderActive,\n toggleStepsNavigation,\n currentPageIndex,\n currentPage,\n currentPageNumber,\n checkDisplayPageError,\n setPageId,\n goToPreviousPage,\n goToNextPage,\n scrollToTopOfPageHTMLElementRef,\n } = usePages({\n pages,\n formElementsValidation,\n formElementsConditionallyShown,\n })\n\n // #endregion\n //\n //\n\n //\n //\n // #region Dynamic Options\n\n const loadDynamicOptionsState = useDynamicOptionsLoaderState(\n definition,\n setFormSubmission,\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Submissions\n\n const [hasAttemptedSubmit, setHasAttemptedSubmit] = React.useState(false)\n const getCurrentSubmissionData = React.useCallback(\n (stripBinaryData) => {\n const { model, captchaTokens } = cleanFormSubmissionModel(\n submission,\n definition.elements,\n formElementsConditionallyShown,\n stripBinaryData,\n )\n return {\n submission: model,\n captchaTokens,\n }\n },\n [definition.elements, formElementsConditionallyShown, submission],\n )\n\n const obFormContainerHTMLElementRef = React.useRef<HTMLDivElement>(null)\n React.useEffect(() => {\n const obFormContainerHTMLElement = obFormContainerHTMLElementRef.current\n if (obFormContainerHTMLElement) {\n console.log(\n 'Setting toast notifications to be appended to HTML Element',\n obFormContainerHTMLElement,\n )\n bulmaToast.setDefaults({\n position: 'bottom-right',\n opacity: 0.95,\n appendTo: obFormContainerHTMLElement,\n })\n }\n return () => {\n bulmaToast.resetDefaults()\n }\n }, [])\n\n const checkAttachmentsCanBeSubmitted = React.useCallback(\n (submission: FormSubmissionModel) => {\n // Prevent submission until all attachment uploads are finished\n // Unless the user is offline, in which case, the uploads will\n // be taken care of by a pending queue...hopefully.\n if (isOffline) {\n return true\n }\n\n if (checkIfAttachmentsAreUploading(definition, submission)) {\n bulmaToast.toast({\n message:\n 'Attachments are still uploading, please wait for them to finish before trying again.',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-primary cypress-still-uploading-toast',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return false\n }\n\n return true\n },\n [definition, isOffline],\n )\n\n const checkBsbsCanBeSubmitted = React.useCallback(\n (submission: FormSubmissionModel) => {\n return !checkBsbsAreInvalid(definition, submission)\n },\n [definition],\n )\n\n const checkBsbAreValidating = React.useCallback(\n (submission: FormSubmissionModel) => {\n if (checkIfBsbsAreValidating(definition, submission)) {\n bulmaToast.toast({\n message:\n 'Bsb(s) are still being validated, please wait for them to finish before trying again.',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-primary cypress-still-validating-toast',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return false\n }\n\n return true\n },\n [definition],\n )\n\n const handleSubmit = React.useCallback(\n (event) => {\n event.preventDefault()\n if (disabled || isReadOnly) return\n setHasAttemptedSubmit(true)\n\n const submissionData = getCurrentSubmissionData(false)\n if (!checkBsbAreValidating(submissionData.submission)) {\n return\n }\n if (formElementsValidation) {\n console.log('Validation errors', formElementsValidation)\n bulmaToast.toast({\n message: 'Please fix validation errors',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-danger cypress-invalid-submit-attempt',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return\n }\n\n if (!checkAttachmentsCanBeSubmitted(submissionData.submission)) {\n return\n }\n\n if (!checkBsbsCanBeSubmitted(submissionData.submission)) {\n return\n }\n\n // check if attachments exist\n const newSubmission = checkIfAttachmentsExist(\n definition,\n submissionData.submission,\n attachmentRetentionInDays,\n )\n if (newSubmission) {\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: newSubmission,\n }))\n bulmaToast.toast({\n message:\n \"Some files that were included in your submission have been removed based on your administrator's data retention policy, please remove them and upload them again.\",\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-danger cypress-invalid-submit-attempt',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return\n }\n\n allowNavigation()\n\n onSubmit({\n definition,\n submission: submissionData.submission,\n captchaTokens: submissionData.captchaTokens,\n })\n },\n [\n disabled,\n isReadOnly,\n getCurrentSubmissionData,\n checkBsbAreValidating,\n formElementsValidation,\n checkAttachmentsCanBeSubmitted,\n checkBsbsCanBeSubmitted,\n definition,\n attachmentRetentionInDays,\n allowNavigation,\n onSubmit,\n setFormSubmission,\n ],\n )\n\n const handleSaveDraft = React.useCallback(() => {\n if (disabled) return\n if (onSaveDraft) {\n allowNavigation()\n\n // For drafts we don't need to save the captcha tokens,\n // they will need to prove they are not robot again\n const { submission } = getCurrentSubmissionData(false)\n if (!checkBsbAreValidating(submission)) {\n return\n }\n if (!checkAttachmentsCanBeSubmitted(submission)) {\n return\n }\n\n onSaveDraft({\n definition,\n submission,\n })\n }\n }, [\n allowNavigation,\n checkAttachmentsCanBeSubmitted,\n definition,\n disabled,\n getCurrentSubmissionData,\n onSaveDraft,\n checkBsbAreValidating,\n ])\n\n // #endregion\n //\n //\n\n //\n //\n // #region Lookups\n\n const { handlePagesLookupResult } = useLookups(\n definition.id,\n setFormSubmission,\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Submission/Definition Changes\n\n const handleChange = React.useCallback<FormElementValueChangeHandler>(\n (element, value) => {\n if (disabled || element.type === 'page' || element.type === 'section') {\n return\n }\n\n setUnsavedChangesState((current) => ({\n ...current,\n isDirty: true,\n }))\n\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: {\n ...currentFormSubmission.submission,\n [element.name]:\n typeof value === 'function'\n ? value(currentFormSubmission.submission[element.name])\n : value,\n },\n }))\n },\n [disabled, setFormSubmission],\n )\n\n // #endregion\n //\n //\n\n if (conditionalLogicError) {\n return (\n <>\n <div className=\"has-text-centered\">\n <i className=\"material-icons has-text-warning icon-x-large\">error</i>\n <h3 className=\"title is-3\">Bad Form Configuration</h3>\n <p className=\"cypress-conditional-logic-error-message\">\n {conditionalLogicError.message}\n </p>\n <p className=\"has-text-grey\">\n {localisationService.formatDatetimeLong(new Date())}\n </p>\n </div>\n </>\n )\n }\n\n if (loadDynamicOptionsState) {\n return (\n <>\n <div className=\"has-text-centered\">\n <i className=\"material-icons has-text-warning icon-x-large\">error</i>\n <h3 className=\"title is-3\">{loadDynamicOptionsState.error.title}</h3>\n <p>{loadDynamicOptionsState.error.message}</p>\n <p className=\"has-text-grey\">\n {localisationService.formatDatetimeLong(new Date())}\n </p>\n </div>\n\n <OneBlinkAppsErrorOriginalMessage\n error={loadDynamicOptionsState.error.originalError}\n />\n </>\n )\n }\n\n return (\n <ThemeProvider theme={theme}>\n <div className=\"ob-form-container\" ref={obFormContainerHTMLElementRef}>\n <form\n name=\"obForm\"\n className={`ob-form cypress-ob-form ob-form__page-${\n currentPageIndex + 1\n }`}\n noValidate\n onSubmit={handleSubmit}\n >\n <div>\n <div ref={scrollToTopOfPageHTMLElementRef} />\n {isShowingMultiplePages && (\n <div\n className={clsx('ob-steps-navigation', {\n 'is-active': isStepsHeaderActive,\n })}\n >\n <div\n className={clsx('ob-steps-navigation__header', {\n 'is-active': isStepsHeaderActive,\n })}\n onClick={toggleStepsNavigation}\n >\n <span className=\"icon is-invisible\">\n <i className=\"material-icons\">keyboard_arrow_down</i>\n </span>\n <div className=\"steps-header-active-page\">\n {isDisplayingCurrentPageError ? (\n <span className=\"icon\">\n <i className=\"material-icons has-text-danger is-size-4\">\n warning\n </i>\n </span>\n ) : (\n <span className=\"steps-header-active-page-icon\">\n {currentPageNumber}\n </span>\n )}\n <span className=\"steps-header-active-page-label cypress-tablet-step-title\">\n {currentPage ? currentPage.label : ''}\n </span>\n </div>\n <span className=\"dropdown icon\">\n <i className=\"material-icons\">keyboard_arrow_down</i>\n </span>\n </div>\n\n <div\n className={clsx('ob-steps-navigation__steps', {\n 'is-active': isStepsHeaderActive,\n })}\n >\n <div className=\"steps is-small is-horizontal-tablet cypress-steps\">\n {visiblePages.map(\n (page: FormTypes.PageElement, index: number) => {\n const hasErrors = checkDisplayPageError(page)\n return (\n <div\n key={page.id}\n id={`steps-navigation-step-${page.id}`}\n className={clsx('step-item cypress-step-item', {\n 'is-active': currentPage.id === page.id,\n 'is-completed': currentPageIndex > index,\n 'is-error': hasErrors,\n })}\n onClick={(e) => {\n e.stopPropagation()\n if (page.id !== currentPage.id) {\n setPageId(page.id)\n }\n }}\n >\n <div\n className=\"step-marker step-marker-error ob-step-marker cypress-step-marker\"\n // @ts-expect-error ???\n name={`cypress-page-stepper-${index + 1}`}\n value={index + 1}\n >\n {hasErrors ? (\n <Tooltip title=\"Page has errors\">\n <span className=\"icon tooltip has-tooltip-top cypress-page-error\">\n <i className=\"material-icons has-text-danger is-size-3\">\n warning\n </i>\n </span>\n </Tooltip>\n ) : (\n <span>{index + 1}</span>\n )}\n </div>\n <div className=\"step-details ob-step-details\">\n <p className=\"step-title ob-step-title cypress-desktop-step-title\">\n {page.label}\n </p>\n </div>\n </div>\n )\n },\n )}\n </div>\n </div>\n </div>\n )}\n\n <div\n className={clsx('ob-steps-navigation__background', {\n 'is-active': isStepsHeaderActive,\n })}\n onClick={toggleStepsNavigation}\n />\n\n <div className=\"steps\">\n <div\n className={clsx('steps-content', {\n 'is-single-step': !isShowingMultiplePages,\n })}\n >\n <FormDefinitionContext.Provider value={definition}>\n <InjectPagesContext.Provider value={handlePagesLookupResult}>\n <ExecutedLookupProvider\n executedLookup={executedLookup}\n executeLookupFailed={executeLookupFailed}\n >\n <GoogleMapsApiKeyContext.Provider\n value={googleMapsApiKey}\n >\n <AbnLookupAuthenticationGuidContext.Provider\n value={abnLookupAuthenticationGuid}\n >\n <CaptchaSiteKeyContext.Provider\n value={captchaSiteKey}\n >\n <AttachmentBlobsProvider>\n <FormIsReadOnlyContext.Provider\n value={isReadOnly}\n >\n {visiblePages.map(\n (pageElement: FormTypes.PageElement) => (\n <PageFormElements\n key={pageElement.id}\n isActive={\n pageElement.id === currentPage.id\n }\n formId={definition.id}\n formElementsConditionallyShown={\n formElementsConditionallyShown\n }\n formElementsValidation={\n formElementsValidation\n }\n displayValidationMessages={\n hasAttemptedSubmit ||\n isDisplayingCurrentPageError\n }\n pageElement={pageElement}\n onChange={handleChange}\n model={submission}\n setFormSubmission={setFormSubmission}\n />\n ),\n )}\n </FormIsReadOnlyContext.Provider>\n </AttachmentBlobsProvider>\n </CaptchaSiteKeyContext.Provider>\n </AbnLookupAuthenticationGuidContext.Provider>\n </GoogleMapsApiKeyContext.Provider>\n </ExecutedLookupProvider>\n </InjectPagesContext.Provider>\n </FormDefinitionContext.Provider>\n </div>\n\n {isShowingMultiplePages && (\n <div className=\"steps-actions\">\n <div className=\"steps-action\">\n <button\n type=\"button\"\n onClick={goToPreviousPage}\n disabled={isFirstVisiblePage}\n className=\"button is-light cypress-pages-previous\"\n >\n <span className=\"icon\">\n <i className=\"material-icons\">keyboard_arrow_left</i>\n </span>\n <span>Back</span>\n </button>\n </div>\n <div className=\"step-progress-mobile cypress-steps-mobile\">\n {visiblePages.map((page: FormTypes.PageElement, index) => (\n <div\n key={page.id}\n className={clsx('step-progress-mobile-dot', {\n 'is-active': currentPage.id === page.id,\n 'is-completed': currentPageIndex > index,\n 'has-background-danger':\n currentPage.id !== page.id &&\n checkDisplayPageError(page),\n })}\n />\n ))}\n </div>\n <div className=\"steps-action\">\n <button\n type=\"button\"\n onClick={goToNextPage}\n disabled={isLastVisiblePage}\n className=\"button is-light cypress-pages-next\"\n >\n <span>Next</span>\n <span className=\"icon\">\n <i className=\"material-icons\">keyboard_arrow_right</i>\n </span>\n </button>\n </div>\n </div>\n )}\n </div>\n {!isReadOnly && (\n <div className=\"buttons ob-buttons ob-buttons-submit\">\n {onSaveDraft && !definition.isInfoPage && (\n <button\n type=\"button\"\n className=\"button ob-button is-primary ob-button-save-draft cypress-save-draft-form\"\n onClick={handleSaveDraft}\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={buttons?.saveDraft?.label || 'Save Draft'}\n icon={buttons?.saveDraft?.icon}\n />\n </button>\n )}\n <span className=\"ob-buttons-submit__spacer\"></span>\n {!definition.isInfoPage && (\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button-submit-cancel cypress-cancel-form\"\n onClick={handleCancel}\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={buttons?.cancel?.label || 'Cancel'}\n icon={buttons?.cancel?.icon}\n />\n </button>\n )}\n {isLastVisiblePage && (\n <button\n type=\"submit\"\n className=\"button ob-button is-success ob-button-submit cypress-submit-form-button cypress-submit-form\"\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={\n definition.isInfoPage\n ? 'Done'\n : buttons?.submit?.label || 'Submit'\n }\n icon={buttons?.submit?.icon}\n />\n </button>\n )}\n </div>\n )}\n </div>\n </form>\n\n {!isReadOnly && (\n <React.Fragment>\n <Prompt\n when={isDirty && !isNavigationAllowed}\n message={handleBlockedNavigation}\n />\n <Modal\n isOpen={hasConfirmedNavigation === false}\n title=\"Unsaved Changes\"\n cardClassName=\"cypress-cancel-confirm\"\n titleClassName=\"cypress-cancel-confirm-title\"\n bodyClassName=\"cypress-cancel-confirm-body\"\n actions={\n <>\n {onSaveDraft && (\n <button\n type=\"button\"\n className=\"button ob-button is-success cypress-cancel-confirm-save-draft\"\n onClick={handleSaveDraft}\n >\n <CustomisableButtonInner\n label={buttons?.saveDraft?.label || 'Save Draft'}\n icon={buttons?.saveDraft?.icon}\n />\n </button>\n )}\n <span style={{ flex: 1 }}></span>\n <button\n type=\"button\"\n className=\"button ob-button is-light cypress-cancel-confirm-back\"\n onClick={handleKeepGoing}\n >\n <CustomisableButtonInner\n label={buttons?.cancelPromptNo?.label || 'Back'}\n icon={buttons?.cancelPromptNo?.icon}\n />\n </button>\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-cancel-confirm-discard\"\n onClick={handleDiscardUnsavedChanges}\n >\n <CustomisableButtonInner\n label={buttons?.cancelPromptYes?.label || 'Discard'}\n icon={buttons?.cancelPromptYes?.icon}\n />\n </button>\n </>\n }\n >\n <p>\n You have unsaved changes, are you sure you want discard them?\n </p>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </ThemeProvider>\n )\n}\n\nexport default React.memo(OneBlinkFormBase)\n"]}
1
+ {"version":3,"file":"OneBlinkFormBase.js","sourceRoot":"","sources":["../src/OneBlinkFormBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n createTheme as createMuiTheme,\n ThemeProvider,\n Tooltip,\n} from '@mui/material'\nimport { Prompt, useHistory } from 'react-router-dom'\nimport clsx from 'clsx'\nimport * as bulmaToast from 'bulma-toast'\nimport { localisationService, submissionService } from '@oneblink/apps'\nimport { FormTypes, FormsAppsTypes } from '@oneblink/types'\n\nimport Modal from './components/renderer/Modal'\nimport OneBlinkAppsErrorOriginalMessage from './components/renderer/OneBlinkAppsErrorOriginalMessage'\nimport cleanFormSubmissionModel from './services/cleanFormSubmissionModel'\nimport PageFormElements from './components/renderer/PageFormElements'\nimport useFormValidation from './hooks/useFormValidation'\nimport useConditionalLogic from './hooks/useConditionalLogic'\nimport usePages from './hooks/usePages'\nimport useLookups from './hooks/useLookups'\nimport { FormDefinitionContext } from './hooks/useFormDefinition'\nimport { InjectPagesContext } from './hooks/useInjectPages'\nimport { ExecutedLookupProvider } from './hooks/useExecutedLookupCallback'\nimport useDynamicOptionsLoaderState from './hooks/useDynamicOptionsLoaderState'\nimport { GoogleMapsApiKeyContext } from './hooks/useGoogleMapsApiKey'\nimport { AbnLookupAuthenticationGuidContext } from './hooks/useAbnLookupAuthenticationGuid'\nimport { CaptchaSiteKeyContext } from './hooks/useCaptchaSiteKey'\nimport { FormIsReadOnlyContext } from './hooks/useFormIsReadOnly'\nimport { AttachmentBlobsProvider } from './hooks/attachments/useAttachmentBlobs'\nimport checkIfAttachmentsAreUploading from './services/checkIfAttachmentsAreUploading'\nimport useIsOffline from './hooks/useIsOffline'\nimport CustomisableButtonInner from './components/renderer/CustomisableButtonInner'\nimport {\n FormElementsValidation,\n FormElementValueChangeHandler,\n FormSubmissionModel,\n SetFormSubmission,\n} from './types/form'\nimport checkBsbsAreInvalid from './services/checkBsbsAreInvalid'\nimport checkIfBsbsAreValidating from './services/checkIfBsbsAreValidating'\nimport checkIfAttachmentsExist from './services/checkIfAttachmentsExist'\n\nexport type BaseProps = {\n onCancel: () => unknown\n onSubmit: (newFormSubmission: submissionService.NewFormSubmission) => unknown\n disabled?: boolean\n isPreview?: boolean\n googleMapsApiKey?: string\n abnLookupAuthenticationGuid?: string\n captchaSiteKey?: string\n buttons?: FormsAppsTypes.FormsListStyles['buttons']\n primaryColour?: string\n attachmentRetentionInDays?: number\n onSaveDraft?: (\n newDraftSubmission: submissionService.NewDraftSubmission,\n ) => unknown\n}\n\nexport type ControlledProps = {\n definition: FormTypes.Form\n submission: FormSubmissionModel\n setFormSubmission: SetFormSubmission\n}\n\ntype Props = BaseProps &\n ControlledProps & {\n isReadOnly: boolean\n }\n\nfunction OneBlinkFormBase({\n googleMapsApiKey,\n abnLookupAuthenticationGuid,\n captchaSiteKey,\n definition,\n disabled,\n isPreview,\n submission,\n isReadOnly,\n onCancel,\n onSubmit,\n onSaveDraft,\n setFormSubmission,\n buttons,\n primaryColour,\n attachmentRetentionInDays,\n}: Props) {\n const isOffline = useIsOffline()\n\n const theme = React.useMemo(\n () =>\n createMuiTheme({\n palette: {\n primary: {\n main: primaryColour || '#4c8da7',\n },\n },\n }),\n [primaryColour],\n )\n\n //\n //\n // #region Form Definition\n\n const pages = React.useMemo<FormTypes.PageElement[]>(() => {\n if (definition.isMultiPage) {\n return definition.elements.reduce(\n (\n pageElements: FormTypes.PageElement[],\n formElement: FormTypes.FormElement,\n ) => {\n if (formElement.type === 'page') {\n pageElements.push(formElement)\n }\n return pageElements\n },\n [],\n )\n } else {\n return [\n {\n type: 'page',\n id: definition.id.toString(),\n label: definition.name,\n elements: definition.elements,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n },\n ]\n }\n }, [\n definition.elements,\n definition.id,\n definition.isMultiPage,\n definition.name,\n ])\n\n // #endregion\n //\n //\n\n //\n //\n // #region Unsaved Changed\n\n const history = useHistory()\n\n const [\n { isDirty, isNavigationAllowed, hasConfirmedNavigation, goToLocation },\n setUnsavedChangesState,\n ] = React.useState<{\n isDirty: boolean\n isNavigationAllowed: boolean\n hasConfirmedNavigation: boolean | null\n goToLocation: Location | null\n }>({\n isDirty: false,\n isNavigationAllowed: false,\n hasConfirmedNavigation: null,\n goToLocation: null,\n })\n const handleBlockedNavigation = React.useCallback((location) => {\n setUnsavedChangesState((current) => ({\n ...current,\n goToLocation: location,\n hasConfirmedNavigation: false,\n }))\n return false\n }, [])\n\n const handleKeepGoing = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n goToLocation: null,\n hasConfirmedNavigation: null,\n }))\n }, [])\n\n const handleDiscardUnsavedChanges = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n isNavigationAllowed: true,\n hasConfirmedNavigation: true,\n }))\n }, [])\n\n React.useEffect(() => {\n if (hasConfirmedNavigation) {\n // Navigate to the previous blocked location with your navigate function\n if (goToLocation) {\n history.push(`${goToLocation.pathname}${goToLocation.search}`)\n } else {\n onCancel()\n }\n }\n }, [goToLocation, hasConfirmedNavigation, history, onCancel])\n\n const handleCancel = React.useCallback(() => {\n if (isDirty) {\n setUnsavedChangesState((current) => ({\n ...current,\n hasConfirmedNavigation: false,\n }))\n } else {\n onCancel()\n }\n }, [isDirty, onCancel])\n\n const allowNavigation = React.useCallback(() => {\n setUnsavedChangesState((current) => ({\n ...current,\n isNavigationAllowed: true,\n }))\n }, [])\n\n // #endregion Unsaved Changed\n //\n //\n\n //\n //\n // #region Conditional Logic\n\n const { formElementsConditionallyShown, conditionalLogicError } =\n useConditionalLogic(definition, submission)\n\n // #endregion\n //\n //\n\n //\n //\n // #region Validation\n\n const { validate, executedLookup, executeLookupFailed } =\n useFormValidation(pages)\n\n const formElementsValidation = React.useMemo<\n FormElementsValidation | undefined\n >(\n () => validate(submission, formElementsConditionallyShown),\n [formElementsConditionallyShown, submission, validate],\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Pages\n\n const {\n visiblePages,\n isFirstVisiblePage,\n isLastVisiblePage,\n isDisplayingCurrentPageError,\n isShowingMultiplePages,\n isStepsHeaderActive,\n toggleStepsNavigation,\n currentPageIndex,\n currentPage,\n currentPageNumber,\n checkDisplayPageError,\n setPageId,\n goToPreviousPage,\n goToNextPage,\n scrollToTopOfPageHTMLElementRef,\n } = usePages({\n pages,\n formElementsValidation,\n formElementsConditionallyShown,\n })\n\n // #endregion\n //\n //\n\n //\n //\n // #region Dynamic Options\n\n const loadDynamicOptionsState = useDynamicOptionsLoaderState(\n definition,\n setFormSubmission,\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Submissions\n\n const [hasAttemptedSubmit, setHasAttemptedSubmit] = React.useState(false)\n const getCurrentSubmissionData = React.useCallback(\n (stripBinaryData) => {\n const { model, captchaTokens } = cleanFormSubmissionModel(\n submission,\n definition.elements,\n formElementsConditionallyShown,\n stripBinaryData,\n )\n return {\n submission: model,\n captchaTokens,\n }\n },\n [definition.elements, formElementsConditionallyShown, submission],\n )\n\n const obFormContainerHTMLElementRef = React.useRef<HTMLDivElement>(null)\n React.useEffect(() => {\n const obFormContainerHTMLElement = obFormContainerHTMLElementRef.current\n if (obFormContainerHTMLElement) {\n console.log(\n 'Setting toast notifications to be appended to HTML Element',\n obFormContainerHTMLElement,\n )\n bulmaToast.setDefaults({\n position: 'bottom-right',\n opacity: 0.95,\n appendTo: obFormContainerHTMLElement,\n })\n }\n return () => {\n bulmaToast.resetDefaults()\n }\n }, [])\n\n const checkAttachmentsCanBeSubmitted = React.useCallback(\n (submission: FormSubmissionModel) => {\n // Prevent submission until all attachment uploads are finished\n // Unless the user is offline, in which case, the uploads will\n // be taken care of by a pending queue...hopefully.\n if (isOffline) {\n return true\n }\n\n if (checkIfAttachmentsAreUploading(definition, submission)) {\n bulmaToast.toast({\n message:\n 'Attachments are still uploading, please wait for them to finish before trying again.',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-primary cypress-still-uploading-toast',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return false\n }\n\n return true\n },\n [definition, isOffline],\n )\n\n const checkBsbsCanBeSubmitted = React.useCallback(\n (submission: FormSubmissionModel) => {\n return !checkBsbsAreInvalid(definition, submission)\n },\n [definition],\n )\n\n const checkBsbAreValidating = React.useCallback(\n (submission: FormSubmissionModel) => {\n if (checkIfBsbsAreValidating(definition, submission)) {\n bulmaToast.toast({\n message:\n 'Bsb(s) are still being validated, please wait for them to finish before trying again.',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-primary cypress-still-validating-toast',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return false\n }\n\n return true\n },\n [definition],\n )\n\n const handleSubmit = React.useCallback(\n (event) => {\n event.preventDefault()\n if (disabled || isReadOnly) return\n setHasAttemptedSubmit(true)\n\n const submissionData = getCurrentSubmissionData(false)\n if (!checkBsbAreValidating(submissionData.submission)) {\n return\n }\n if (formElementsValidation) {\n console.log('Validation errors', formElementsValidation)\n bulmaToast.toast({\n message: 'Please fix validation errors',\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-danger cypress-invalid-submit-attempt',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return\n }\n\n if (!checkAttachmentsCanBeSubmitted(submissionData.submission)) {\n return\n }\n\n if (!checkBsbsCanBeSubmitted(submissionData.submission)) {\n return\n }\n\n // check if attachments exist\n const newSubmission = checkIfAttachmentsExist(\n definition,\n submissionData.submission,\n attachmentRetentionInDays,\n )\n if (newSubmission) {\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: newSubmission,\n }))\n bulmaToast.toast({\n message:\n \"Some files that were included in your submission have been removed based on your administrator's data retention policy, please remove them and upload them again.\",\n // @ts-expect-error bulma sets this string as a class, so we are hacking in our own classes\n type: 'ob-toast is-danger cypress-invalid-submit-attempt',\n duration: 4000,\n pauseOnHover: true,\n closeOnClick: true,\n })\n return\n }\n\n allowNavigation()\n\n onSubmit({\n definition,\n submission: submissionData.submission,\n captchaTokens: submissionData.captchaTokens,\n })\n },\n [\n disabled,\n isReadOnly,\n getCurrentSubmissionData,\n checkBsbAreValidating,\n formElementsValidation,\n checkAttachmentsCanBeSubmitted,\n checkBsbsCanBeSubmitted,\n definition,\n attachmentRetentionInDays,\n allowNavigation,\n onSubmit,\n setFormSubmission,\n ],\n )\n\n const handleSaveDraft = React.useCallback(() => {\n if (disabled) return\n if (onSaveDraft) {\n allowNavigation()\n\n // For drafts we don't need to save the captcha tokens,\n // they will need to prove they are not robot again\n const { submission } = getCurrentSubmissionData(false)\n if (!checkBsbAreValidating(submission)) {\n return\n }\n if (!checkAttachmentsCanBeSubmitted(submission)) {\n return\n }\n\n onSaveDraft({\n definition,\n submission,\n })\n }\n }, [\n allowNavigation,\n checkAttachmentsCanBeSubmitted,\n definition,\n disabled,\n getCurrentSubmissionData,\n onSaveDraft,\n checkBsbAreValidating,\n ])\n\n // #endregion\n //\n //\n\n //\n //\n // #region Lookups\n\n const { handlePagesLookupResult } = useLookups(\n definition.id,\n setFormSubmission,\n )\n\n // #endregion\n //\n //\n\n //\n //\n // #region Submission/Definition Changes\n\n const handleChange = React.useCallback<FormElementValueChangeHandler>(\n (element, value) => {\n if (disabled || element.type === 'page' || element.type === 'section') {\n return\n }\n\n setUnsavedChangesState((current) => ({\n ...current,\n isDirty: true,\n }))\n\n setFormSubmission((currentFormSubmission) => ({\n ...currentFormSubmission,\n submission: {\n ...currentFormSubmission.submission,\n [element.name]:\n typeof value === 'function'\n ? value(currentFormSubmission.submission[element.name])\n : value,\n },\n }))\n },\n [disabled, setFormSubmission],\n )\n\n // #endregion\n //\n //\n\n if (conditionalLogicError) {\n return (\n <>\n <div className=\"has-text-centered\">\n <i className=\"material-icons has-text-warning icon-x-large\">error</i>\n <h3 className=\"title is-3\">Bad Form Configuration</h3>\n <p className=\"cypress-conditional-logic-error-message\">\n {conditionalLogicError.message}\n </p>\n <p className=\"has-text-grey\">\n {localisationService.formatDatetimeLong(new Date())}\n </p>\n </div>\n </>\n )\n }\n\n if (loadDynamicOptionsState) {\n return (\n <>\n <div className=\"has-text-centered\">\n <i className=\"material-icons has-text-warning icon-x-large\">error</i>\n <h3 className=\"title is-3\">{loadDynamicOptionsState.error.title}</h3>\n <p>{loadDynamicOptionsState.error.message}</p>\n <p className=\"has-text-grey\">\n {localisationService.formatDatetimeLong(new Date())}\n </p>\n </div>\n\n <OneBlinkAppsErrorOriginalMessage\n error={loadDynamicOptionsState.error.originalError}\n />\n </>\n )\n }\n\n return (\n <ThemeProvider theme={theme}>\n <div className=\"ob-form-container\" ref={obFormContainerHTMLElementRef}>\n <form\n name=\"obForm\"\n className={`ob-form cypress-ob-form ob-form__page-${\n currentPageIndex + 1\n }`}\n noValidate\n onSubmit={handleSubmit}\n >\n <div>\n <div ref={scrollToTopOfPageHTMLElementRef} />\n {isShowingMultiplePages && (\n <div\n className={clsx('ob-steps-navigation', {\n 'is-active': isStepsHeaderActive,\n })}\n >\n <div\n className={clsx('ob-steps-navigation__header', {\n 'is-active': isStepsHeaderActive,\n })}\n onClick={toggleStepsNavigation}\n >\n <span className=\"icon is-invisible\">\n <i className=\"material-icons\">keyboard_arrow_down</i>\n </span>\n <div className=\"steps-header-active-page\">\n {isDisplayingCurrentPageError ? (\n <span className=\"icon\">\n <i className=\"material-icons has-text-danger is-size-4\">\n warning\n </i>\n </span>\n ) : (\n <span className=\"steps-header-active-page-icon\">\n {currentPageNumber}\n </span>\n )}\n <span className=\"steps-header-active-page-label cypress-tablet-step-title\">\n {currentPage ? currentPage.label : ''}\n </span>\n </div>\n <span className=\"dropdown icon\">\n <i className=\"material-icons\">keyboard_arrow_down</i>\n </span>\n </div>\n\n <div\n className={clsx('ob-steps-navigation__steps', {\n 'is-active': isStepsHeaderActive,\n })}\n >\n <div className=\"steps is-small is-horizontal-tablet cypress-steps\">\n {visiblePages.map(\n (page: FormTypes.PageElement, index: number) => {\n const hasErrors = checkDisplayPageError(page)\n return (\n <div\n key={page.id}\n id={`steps-navigation-step-${page.id}`}\n className={clsx('step-item cypress-step-item', {\n 'is-active': currentPage.id === page.id,\n 'is-completed': currentPageIndex > index,\n 'is-error': hasErrors,\n })}\n onClick={(e) => {\n e.stopPropagation()\n if (page.id !== currentPage.id) {\n setPageId(page.id)\n }\n }}\n >\n <div\n className=\"step-marker step-marker-error ob-step-marker cypress-step-marker\"\n // @ts-expect-error ???\n name={`cypress-page-stepper-${index + 1}`}\n value={index + 1}\n >\n {hasErrors ? (\n <Tooltip title=\"Page has errors\">\n <span className=\"icon tooltip has-tooltip-top cypress-page-error\">\n <i className=\"material-icons has-text-danger is-size-3\">\n warning\n </i>\n </span>\n </Tooltip>\n ) : (\n <span>{index + 1}</span>\n )}\n </div>\n <div className=\"step-details ob-step-details\">\n <p className=\"step-title ob-step-title cypress-desktop-step-title\">\n {page.label}\n </p>\n </div>\n </div>\n )\n },\n )}\n </div>\n </div>\n </div>\n )}\n\n <div\n className={clsx('ob-steps-navigation__background', {\n 'is-active': isStepsHeaderActive,\n })}\n onClick={toggleStepsNavigation}\n />\n\n <div className=\"steps\">\n <div\n className={clsx('steps-content', {\n 'is-single-step': !isShowingMultiplePages,\n })}\n >\n <FormDefinitionContext.Provider value={definition}>\n <InjectPagesContext.Provider value={handlePagesLookupResult}>\n <ExecutedLookupProvider\n executedLookup={executedLookup}\n executeLookupFailed={executeLookupFailed}\n >\n <GoogleMapsApiKeyContext.Provider\n value={googleMapsApiKey}\n >\n <AbnLookupAuthenticationGuidContext.Provider\n value={abnLookupAuthenticationGuid}\n >\n <CaptchaSiteKeyContext.Provider\n value={captchaSiteKey}\n >\n <AttachmentBlobsProvider>\n <FormIsReadOnlyContext.Provider\n value={isReadOnly}\n >\n {visiblePages.map(\n (pageElement: FormTypes.PageElement) => (\n <PageFormElements\n key={pageElement.id}\n isActive={\n pageElement.id === currentPage.id\n }\n formId={definition.id}\n formElementsConditionallyShown={\n formElementsConditionallyShown\n }\n formElementsValidation={\n formElementsValidation\n }\n displayValidationMessages={\n hasAttemptedSubmit ||\n isDisplayingCurrentPageError\n }\n pageElement={pageElement}\n onChange={handleChange}\n model={submission}\n setFormSubmission={setFormSubmission}\n />\n ),\n )}\n </FormIsReadOnlyContext.Provider>\n </AttachmentBlobsProvider>\n </CaptchaSiteKeyContext.Provider>\n </AbnLookupAuthenticationGuidContext.Provider>\n </GoogleMapsApiKeyContext.Provider>\n </ExecutedLookupProvider>\n </InjectPagesContext.Provider>\n </FormDefinitionContext.Provider>\n </div>\n\n {isShowingMultiplePages && (\n <div className=\"steps-actions\">\n <div className=\"steps-action\">\n <button\n type=\"button\"\n onClick={goToPreviousPage}\n disabled={isFirstVisiblePage}\n className=\"button is-light cypress-pages-previous\"\n >\n <span className=\"icon\">\n <i className=\"material-icons\">keyboard_arrow_left</i>\n </span>\n <span>Back</span>\n </button>\n </div>\n <div className=\"step-progress-mobile cypress-steps-mobile\">\n {visiblePages.map((page: FormTypes.PageElement, index) => (\n <div\n key={page.id}\n className={clsx('step-progress-mobile-dot', {\n 'is-active': currentPage.id === page.id,\n 'is-completed': currentPageIndex > index,\n 'has-background-danger':\n currentPage.id !== page.id &&\n checkDisplayPageError(page),\n })}\n />\n ))}\n </div>\n <div className=\"steps-action\">\n <button\n type=\"button\"\n onClick={goToNextPage}\n disabled={isLastVisiblePage}\n className=\"button is-light cypress-pages-next\"\n >\n <span>Next</span>\n <span className=\"icon\">\n <i className=\"material-icons\">keyboard_arrow_right</i>\n </span>\n </button>\n </div>\n </div>\n )}\n </div>\n {!isReadOnly && (\n <div className=\"buttons ob-buttons ob-buttons-submit\">\n {onSaveDraft && !definition.isInfoPage && (\n <button\n type=\"button\"\n className=\"button ob-button is-primary ob-button-save-draft cypress-save-draft-form\"\n onClick={handleSaveDraft}\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={buttons?.saveDraft?.label || 'Save Draft'}\n icon={buttons?.saveDraft?.icon}\n />\n </button>\n )}\n <span className=\"ob-buttons-submit__spacer\"></span>\n {!definition.isInfoPage && (\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button-submit-cancel cypress-cancel-form\"\n onClick={handleCancel}\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={buttons?.cancel?.label || 'Cancel'}\n icon={buttons?.cancel?.icon}\n />\n </button>\n )}\n {isLastVisiblePage && (\n <button\n type=\"submit\"\n className=\"button ob-button is-success ob-button-submit cypress-submit-form-button cypress-submit-form\"\n disabled={isPreview || disabled}\n >\n <CustomisableButtonInner\n label={\n definition.isInfoPage\n ? 'Done'\n : buttons?.submit?.label || 'Submit'\n }\n icon={buttons?.submit?.icon}\n />\n </button>\n )}\n </div>\n )}\n </div>\n </form>\n\n {!isReadOnly && (\n <React.Fragment>\n <Prompt\n when={isDirty && !isNavigationAllowed}\n message={handleBlockedNavigation}\n />\n <Modal\n isOpen={hasConfirmedNavigation === false}\n title=\"Unsaved Changes\"\n cardClassName=\"cypress-cancel-confirm\"\n titleClassName=\"cypress-cancel-confirm-title\"\n bodyClassName=\"cypress-cancel-confirm-body\"\n actions={\n <>\n {onSaveDraft && (\n <button\n type=\"button\"\n className=\"button ob-button is-success cypress-cancel-confirm-save-draft\"\n onClick={handleSaveDraft}\n >\n <CustomisableButtonInner\n label={buttons?.saveDraft?.label || 'Save Draft'}\n icon={buttons?.saveDraft?.icon}\n />\n </button>\n )}\n <span style={{ flex: 1 }}></span>\n <button\n type=\"button\"\n className=\"button ob-button is-light cypress-cancel-confirm-back\"\n onClick={handleKeepGoing}\n >\n <CustomisableButtonInner\n label={buttons?.cancelPromptNo?.label || 'Back'}\n icon={buttons?.cancelPromptNo?.icon}\n />\n </button>\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-cancel-confirm-discard\"\n onClick={handleDiscardUnsavedChanges}\n >\n <CustomisableButtonInner\n label={buttons?.cancelPromptYes?.label || 'Discard'}\n icon={buttons?.cancelPromptYes?.icon}\n />\n </button>\n </>\n }\n >\n <p>\n You have unsaved changes, are you sure you want discard them?\n </p>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </ThemeProvider>\n )\n}\n\nexport default React.memo(OneBlinkFormBase)\n"]}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { IconButton } from '@mui/material';
3
+ declare type Props = {
4
+ text: string;
5
+ large?: boolean;
6
+ noMarginY?: boolean;
7
+ } & React.ComponentProps<typeof IconButton>;
8
+ export declare function CopyToClipBoardIconButton({ text, large, noMarginY, className, ...rest }: Props): JSX.Element;
9
+ declare const _default: React.MemoExoticComponent<typeof CopyToClipBoardIconButton>;
10
+ export default _default;
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import copy from 'copy-to-clipboard';
3
+ import { IconButton, Tooltip, Snackbar } from '@mui/material';
4
+ import FileCopy from '@mui/icons-material/FileCopy';
5
+ const noMargin = {
6
+ marginTop: -1,
7
+ marginBottom: -1,
8
+ };
9
+ export function CopyToClipBoardIconButton({ text, large, noMarginY, className, ...rest }) {
10
+ const [isCopyToClipboardOpen, setIsCopyToClipboardOpen] = React.useState(false);
11
+ const copyToClipboard = React.useCallback(() => {
12
+ copy(text);
13
+ setIsCopyToClipboardOpen(true);
14
+ }, [text]);
15
+ const handleClose = React.useCallback(() => {
16
+ setIsCopyToClipboardOpen(false);
17
+ }, []);
18
+ return (React.createElement(React.Fragment, null,
19
+ React.createElement(Tooltip, { title: "Copy to clipboard" },
20
+ React.createElement(IconButton, { onClick: (e) => {
21
+ e.stopPropagation();
22
+ copyToClipboard();
23
+ }, "data-cypress": "copy-to-clip-board-button", className: className, sx: noMarginY ? noMargin : undefined, ...rest },
24
+ React.createElement(FileCopy, { sx: large ? undefined : { fontSize: 18 } }))),
25
+ React.createElement(Snackbar, { anchorOrigin: {
26
+ vertical: 'bottom',
27
+ horizontal: 'right',
28
+ }, open: isCopyToClipboardOpen, onClose: handleClose, autoHideDuration: 1500, ContentProps: {
29
+ 'aria-describedby': 'copy-clip-board-message-id',
30
+ }, message: React.createElement("span", { id: "copy-clip-board-message-id", "data-cypress": "copied-text-to-clip-board-message" }, "Copied to Clipboard") })));
31
+ }
32
+ export default React.memo(CopyToClipBoardIconButton);
33
+ //# sourceMappingURL=CopyToClipboardIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyToClipboardIconButton.js","sourceRoot":"","sources":["../../src/components/CopyToClipboardIconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,mBAAmB,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAW,MAAM,eAAe,CAAA;AACtE,OAAO,QAAQ,MAAM,8BAA8B,CAAA;AAQnD,MAAM,QAAQ,GAAY;IACxB,SAAS,EAAE,CAAC,CAAC;IACb,YAAY,EAAE,CAAC,CAAC;CACjB,CAAA;AACD,MAAM,UAAU,yBAAyB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACD;IACN,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GACrD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,CACL;QACE,oBAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB;YAChC,oBAAC,UAAU,IACT,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,eAAe,EAAE,CAAA;oBACnB,eAAe,EAAE,CAAA;gBACnB,CAAC,kBACY,2BAA2B,EACxC,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAChC,IAAI;gBAER,oBAAC,QAAQ,IAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI,CAC3C,CACL;QACV,oBAAC,QAAQ,IACP,YAAY,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,OAAO;aACpB,EACD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,IAAI,EACtB,YAAY,EAAE;gBACZ,kBAAkB,EAAE,4BAA4B;aACjD,EACD,OAAO,EACL,8BACE,EAAE,EAAC,4BAA4B,kBAClB,mCAAmC,0BAG3C,GAET,CACD,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport copy from 'copy-to-clipboard'\nimport { IconButton, Tooltip, Snackbar, SxProps } from '@mui/material'\nimport FileCopy from '@mui/icons-material/FileCopy'\n\ntype Props = {\n text: string\n large?: boolean\n noMarginY?: boolean\n} & React.ComponentProps<typeof IconButton>\n\nconst noMargin: SxProps = {\n marginTop: -1,\n marginBottom: -1,\n}\nexport function CopyToClipBoardIconButton({\n text,\n large,\n noMarginY,\n className,\n ...rest\n}: Props) {\n const [isCopyToClipboardOpen, setIsCopyToClipboardOpen] =\n React.useState(false)\n const copyToClipboard = React.useCallback(() => {\n copy(text)\n setIsCopyToClipboardOpen(true)\n }, [text])\n const handleClose = React.useCallback(() => {\n setIsCopyToClipboardOpen(false)\n }, [])\n return (\n <>\n <Tooltip title=\"Copy to clipboard\">\n <IconButton\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard()\n }}\n data-cypress=\"copy-to-clip-board-button\"\n className={className}\n sx={noMarginY ? noMargin : undefined}\n {...rest}\n >\n <FileCopy sx={large ? undefined : { fontSize: 18 }} />\n </IconButton>\n </Tooltip>\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={isCopyToClipboardOpen}\n onClose={handleClose}\n autoHideDuration={1500}\n ContentProps={{\n 'aria-describedby': 'copy-clip-board-message-id',\n }}\n message={\n <span\n id=\"copy-clip-board-message-id\"\n data-cypress=\"copied-text-to-clip-board-message\"\n >\n Copied to Clipboard\n </span>\n }\n />\n </>\n )\n}\n\nexport default React.memo(CopyToClipBoardIconButton)\n"]}
@@ -0,0 +1,27 @@
1
+ /// <reference types="react" />
2
+ export declare const CustomAccordion: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
3
+ export declare const CustomAccordionSummary: import("@emotion/styled").StyledComponent<{
4
+ children?: import("react").ReactNode;
5
+ classes?: Partial<import("@mui/material").AccordionSummaryClasses> | undefined;
6
+ expandIcon?: import("react").ReactNode;
7
+ sx?: import("@mui/material").SxProps<import("@mui/material").Theme> | undefined;
8
+ } & Omit<{
9
+ action?: import("react").Ref<import("@mui/material").ButtonBaseActions> | undefined;
10
+ centerRipple?: boolean | undefined;
11
+ children?: import("react").ReactNode;
12
+ classes?: Partial<import("@mui/material").ButtonBaseClasses> | undefined;
13
+ disabled?: boolean | undefined;
14
+ disableRipple?: boolean | undefined;
15
+ disableTouchRipple?: boolean | undefined;
16
+ focusRipple?: boolean | undefined;
17
+ focusVisibleClassName?: string | undefined;
18
+ LinkComponent?: import("react").ElementType<any> | undefined;
19
+ onFocusVisible?: import("react").FocusEventHandler<any> | undefined;
20
+ sx?: import("@mui/material").SxProps<import("@mui/material").Theme> | undefined;
21
+ tabIndex?: number | undefined;
22
+ TouchRippleProps?: Partial<import("@mui/material/ButtonBase/TouchRipple").TouchRippleProps> | undefined;
23
+ touchRippleRef?: import("react").Ref<import("@mui/material/ButtonBase/TouchRipple").TouchRippleActions> | undefined;
24
+ }, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement> | "key"> & {
25
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
26
+ }, "children" | "disabled" | "tabIndex" | keyof import("@mui/material/OverridableComponent").CommonProps | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "TouchRippleProps" | "touchRippleRef" | "expandIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
27
+ export declare const CustomAccordionDetails: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionDetailsProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -0,0 +1,38 @@
1
+ import { Accordion, AccordionSummary, AccordionDetails, styled, } from '@mui/material';
2
+ export const CustomAccordion = styled(Accordion)(({ theme }) => ({
3
+ border: `1px solid ${theme.palette.divider}`,
4
+ boxShadow: 'none',
5
+ width: '100%',
6
+ '&:not(:last-of-type)': {
7
+ borderBottom: 'none',
8
+ },
9
+ '&:before': {
10
+ display: 'none',
11
+ },
12
+ '&.Mui-expanded': {
13
+ margin: 'unset',
14
+ },
15
+ '& .Mui-expanded': {
16
+ margin: 'auto',
17
+ },
18
+ }));
19
+ export const CustomAccordionSummary = styled(AccordionSummary)(({ theme }) => ({
20
+ backgroundColor: 'rgba(0, 0, 0, .03)',
21
+ '&.Mui-expanded': {
22
+ minHeight: theme.spacing(6),
23
+ },
24
+ '& .Mui-expanded': {
25
+ marginTop: theme.spacing(1.5),
26
+ marginBottom: theme.spacing(1.5),
27
+ },
28
+ '& .MuiAccordionSummary-content': {
29
+ '&.Mui-expanded': {
30
+ margin: theme.spacing(1.5, 0),
31
+ },
32
+ },
33
+ }));
34
+ export const CustomAccordionDetails = styled(AccordionDetails)(({ theme }) => ({
35
+ padding: theme.spacing(1, 2),
36
+ borderTop: `1px solid ${theme.palette.divider}`,
37
+ }));
38
+ //# sourceMappingURL=CustomAccordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomAccordion.js","sourceRoot":"","sources":["../../src/components/CustomAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,GACP,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;IAC5C,SAAS,EAAE,MAAM;IACjB,KAAK,EAAE,MAAM;IACb,sBAAsB,EAAE;QACtB,YAAY,EAAE,MAAM;KACrB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,OAAO;KAChB;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM;KACf;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE;QAChB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5B;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;KACjC;IACD,gCAAgC,EAAE;QAChC,gBAAgB,EAAE;YAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,SAAS,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;CAChD,CAAC,CAAC,CAAA","sourcesContent":["import {\n Accordion,\n AccordionSummary,\n AccordionDetails,\n styled,\n} from '@mui/material'\n\nexport const CustomAccordion = styled(Accordion)(({ theme }) => ({\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: 'none',\n width: '100%',\n '&:not(:last-of-type)': {\n borderBottom: 'none',\n },\n '&:before': {\n display: 'none',\n },\n '&.Mui-expanded': {\n margin: 'unset',\n },\n '& .Mui-expanded': {\n margin: 'auto',\n },\n}))\n\nexport const CustomAccordionSummary = styled(AccordionSummary)(({ theme }) => ({\n backgroundColor: 'rgba(0, 0, 0, .03)',\n '&.Mui-expanded': {\n minHeight: theme.spacing(6),\n },\n '& .Mui-expanded': {\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1.5),\n },\n '& .MuiAccordionSummary-content': {\n '&.Mui-expanded': {\n margin: theme.spacing(1.5, 0),\n },\n },\n}))\n\nexport const CustomAccordionDetails = styled(AccordionDetails)(({ theme }) => ({\n padding: theme.spacing(1, 2),\n borderTop: `1px solid ${theme.palette.divider}`,\n}))\n"]}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ declare function ErrorSnackbar({ open, onClose, children, }: {
3
+ open: boolean;
4
+ children: React.ReactNode;
5
+ onClose: (arg: null) => unknown;
6
+ }): JSX.Element;
7
+ declare const _default: React.MemoExoticComponent<typeof ErrorSnackbar>;
8
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { Snackbar, IconButton } from '@mui/material';
3
+ import { Close } from '@mui/icons-material';
4
+ import MuiAlert from '@mui/material/Alert';
5
+ import { styled } from '@mui/material/styles';
6
+ const Alert = React.forwardRef(function Alert(props, ref) {
7
+ return React.createElement(MuiAlert, { elevation: 6, ref: ref, variant: "filled", ...props });
8
+ });
9
+ function ErrorSnackbar({ open, onClose, children, }) {
10
+ const handleClose = React.useCallback((e, reason) => {
11
+ if (reason !== 'clickaway') {
12
+ onClose(null);
13
+ }
14
+ }, [onClose]);
15
+ return (React.createElement(Snackbar, { anchorOrigin: {
16
+ vertical: 'bottom',
17
+ horizontal: 'right',
18
+ }, open: open, onClose: handleClose, className: "ob-error-snackbar" },
19
+ React.createElement(Alert, { severity: "error", action: React.createElement(IconButton, { key: "close", "aria-label": "Close", color: "inherit", onClick: handleClose, "data-cypress": "error-snackbar-close", size: "large" },
20
+ React.createElement(StyledCloseIcon, null)) }, children)));
21
+ }
22
+ const StyledCloseIcon = styled(Close)(() => ({
23
+ fontSize: 20,
24
+ }));
25
+ export default React.memo(ErrorSnackbar);
26
+ //# sourceMappingURL=ErrorSnackbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorSnackbar.js","sourceRoot":"","sources":["../../src/components/ErrorSnackbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,QAAwB,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA6B,SAAS,KAAK,CACvE,KAAK,EACL,GAAG;IAEH,OAAO,oBAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAC,QAAQ,KAAK,KAAK,GAAI,CAAA;AACzE,CAAC,CAAC,CAAA;AAEF,SAAS,aAAa,CAAC,EACrB,IAAI,EACJ,OAAO,EACP,QAAQ,GAKT;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,CAAU,EAAE,MAAe,EAAE,EAAE;QAC9B,IAAI,MAAM,KAAK,WAAW,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;SACd;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IACD,OAAO,CACL,oBAAC,QAAQ,IACP,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,OAAO;SACpB,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,mBAAmB;QAE7B,oBAAC,KAAK,IACJ,QAAQ,EAAC,OAAO,EAChB,MAAM,EACJ,oBAAC,UAAU,IACT,GAAG,EAAC,OAAO,gBACA,OAAO,EAClB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,WAAW,kBACP,sBAAsB,EACnC,IAAI,EAAC,OAAO;gBAEZ,oBAAC,eAAe,OAAG,CACR,IAGd,QAAQ,CACH,CACC,CACZ,CAAA;AACH,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC,CAAA;AAEH,eAAe,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Snackbar, IconButton } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport MuiAlert, { AlertProps } from '@mui/material/Alert'\nimport { styled } from '@mui/material/styles'\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(\n props,\n ref,\n) {\n return <MuiAlert elevation={6} ref={ref} variant=\"filled\" {...props} />\n})\n\nfunction ErrorSnackbar({\n open,\n onClose,\n children,\n}: {\n open: boolean\n children: React.ReactNode\n onClose: (arg: null) => unknown\n}) {\n const handleClose = React.useCallback(\n (e: unknown, reason?: string) => {\n if (reason !== 'clickaway') {\n onClose(null)\n }\n },\n [onClose],\n )\n return (\n <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n open={open}\n onClose={handleClose}\n className=\"ob-error-snackbar\"\n >\n <Alert\n severity=\"error\"\n action={\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n onClick={handleClose}\n data-cypress=\"error-snackbar-close\"\n size=\"large\"\n >\n <StyledCloseIcon />\n </IconButton>\n }\n >\n {children}\n </Alert>\n </Snackbar>\n )\n}\n\nconst StyledCloseIcon = styled(Close)(() => ({\n fontSize: 20,\n}))\n\nexport default React.memo(ErrorSnackbar)\n"]}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import { Theme } from '@mui/material';
3
+ declare type ListItemsProps = {
4
+ children: React.ReactNode;
5
+ disablePadding?: boolean;
6
+ };
7
+ export declare const OrderedList: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme> & ListItemsProps, React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, {}>;
8
+ export declare const UnorderedList: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme> & ListItemsProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, {}>;
9
+ declare type ListProps = {
10
+ spaced?: boolean;
11
+ };
12
+ export declare const ListItem: import("@emotion/styled").StyledComponent<Omit<import("@mui/system").SystemProps<Theme> & {
13
+ align?: "inherit" | "right" | "left" | "center" | "justify" | undefined;
14
+ children?: React.ReactNode;
15
+ classes?: Partial<import("@mui/material").TypographyClasses> | undefined;
16
+ gutterBottom?: boolean | undefined;
17
+ noWrap?: boolean | undefined;
18
+ paragraph?: boolean | undefined;
19
+ sx?: import("@mui/material").SxProps<Theme> | undefined;
20
+ variant?: "button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "subtitle1" | "subtitle2" | "body1" | "body2" | "overline" | undefined;
21
+ variantMapping?: Partial<Record<"button" | "caption" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "inherit" | "subtitle1" | "subtitle2" | "body1" | "body2" | "overline", string>> | undefined;
22
+ } & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
23
+ ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
24
+ }, "children" | keyof import("@mui/material/OverridableComponent").CommonProps | "sx" | ("p" | "color" | "top" | "right" | "bottom" | "left" | "height" | "width" | "fontStyle" | "marginBottom" | "position" | "my" | "pl" | "pt" | "zIndex" | "typography" | "fontFamily" | "fontSize" | "flex" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "boxShadow" | "maxWidth" | "minWidth" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "pr" | "pb" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform") | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping">, "ref"> & import("@mui/system").MUIStyledCommonProps<Theme> & ListProps, {}, {}>;
25
+ export {};
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import Typography from '@mui/material/Typography';
3
+ import { styled } from '@mui/material';
4
+ const noPaddingY = {
5
+ paddingTop: 0,
6
+ paddingBottom: 0,
7
+ };
8
+ const getListStyles = (theme) => ({
9
+ margin: 0,
10
+ padding: theme.spacing(1, 1, 1, 4),
11
+ listStyle: 'inherit',
12
+ '& > ul, & > ol': noPaddingY,
13
+ });
14
+ export const OrderedList = styled('ol', {
15
+ shouldForwardProp: (prop) => prop !== 'disablePadding',
16
+ })(({ theme, disablePadding }) => {
17
+ return {
18
+ ...getListStyles(theme),
19
+ ...(disablePadding ? noPaddingY : {}),
20
+ };
21
+ });
22
+ export const UnorderedList = styled('ul', {
23
+ shouldForwardProp: (prop) => prop !== 'disablePadding',
24
+ })(({ theme, disablePadding }) => {
25
+ return {
26
+ ...getListStyles(theme),
27
+ ...(disablePadding ? noPaddingY : {}),
28
+ };
29
+ });
30
+ function Li(props) {
31
+ return (React.createElement(Typography, { ...props, component: "li", color: "inherit", variant: "body2" }));
32
+ }
33
+ export const ListItem = styled(Li, {
34
+ shouldForwardProp: (prop) => prop !== 'spaced',
35
+ })(({ spaced }) => {
36
+ return {
37
+ display: 'list-item',
38
+ ...(spaced
39
+ ? {
40
+ lineHeight: 1.9,
41
+ }
42
+ : {}),
43
+ };
44
+ });
45
+ //# sourceMappingURL=Lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lists.js","sourceRoot":"","sources":["../../src/components/Lists.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAS,MAAM,eAAe,CAAA;AAO7C,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;CACjB,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,UAAU;CAC7B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE;IACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;CACvD,CAAC,CAAiB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,OAAO;QACL,GAAG,aAAa,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE;IACxC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB;CACvD,CAAC,CAAiB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;IAC/C,OAAO;QACL,GAAG,aAAa,CAAC,KAAK,CAAC;QACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;AACH,CAAC,CAAC,CAAA;AAMF,SAAS,EAAE,CAAC,KAA2D;IACrE,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK,EAAE,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,GAAG,CACzE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE;IACjC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ;CAC/C,CAAC,CAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,GAAG,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,UAAU,EAAE,GAAG;aAChB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport Typography from '@mui/material/Typography'\nimport { styled, Theme } from '@mui/material'\n\ntype ListItemsProps = {\n children: React.ReactNode\n disablePadding?: boolean\n}\n\nconst noPaddingY = {\n paddingTop: 0,\n paddingBottom: 0,\n}\n\nconst getListStyles = (theme: Theme) => ({\n margin: 0,\n padding: theme.spacing(1, 1, 1, 4),\n listStyle: 'inherit',\n '& > ul, & > ol': noPaddingY,\n})\n\nexport const OrderedList = styled('ol', {\n shouldForwardProp: (prop) => prop !== 'disablePadding',\n})<ListItemsProps>(({ theme, disablePadding }) => {\n return {\n ...getListStyles(theme),\n ...(disablePadding ? noPaddingY : {}),\n }\n})\nexport const UnorderedList = styled('ul', {\n shouldForwardProp: (prop) => prop !== 'disablePadding',\n})<ListItemsProps>(({ theme, disablePadding }) => {\n return {\n ...getListStyles(theme),\n ...(disablePadding ? noPaddingY : {}),\n }\n})\n\ntype ListProps = {\n spaced?: boolean\n}\n\nfunction Li(props: Omit<React.ComponentProps<typeof Typography>, 'ref'>) {\n return (\n <Typography {...props} component=\"li\" color=\"inherit\" variant=\"body2\" />\n )\n}\n\nexport const ListItem = styled(Li, {\n shouldForwardProp: (prop) => prop !== 'spaced',\n})<ListProps>(({ spaced }) => {\n return {\n display: 'list-item',\n ...(spaced\n ? {\n lineHeight: 1.9,\n }\n : {}),\n }\n})\n"]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare type Props = {
3
+ message?: string;
4
+ };
5
+ declare const _default: React.NamedExoticComponent<Props>;
6
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import { Box, CircularProgress, Grid, Typography } from '@mui/material';
3
+ const Loading = ({ message }) => {
4
+ return (React.createElement(Box, { p: 2, className: "ob-loading-with-message" },
5
+ React.createElement(Grid, { container: true, spacing: 2, className: "ob-loading" },
6
+ React.createElement(Grid, { xs: 12, container: true, item: true, justifyContent: "center" },
7
+ React.createElement(CircularProgress, null)),
8
+ message && (React.createElement(Grid, { xs: 12, container: true, item: true, justifyContent: "center", className: "ob-loading-message" },
9
+ React.createElement(Typography, { variant: "body2", align: "center" }, message))))));
10
+ };
11
+ export default React.memo(Loading);
12
+ //# sourceMappingURL=LoadingWithMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingWithMessage.js","sourceRoot":"","sources":["../../src/components/LoadingWithMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAKvE,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACrC,OAAO,CACL,oBAAC,GAAG,IAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAC,yBAAyB;QAC5C,oBAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAC,YAAY;YAChD,oBAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,QAAC,IAAI,QAAC,cAAc,EAAC,QAAQ;gBAClD,oBAAC,gBAAgB,OAAoB,CAChC;YACN,OAAO,IAAI,CACV,oBAAC,IAAI,IACH,EAAE,EAAE,EAAE,EACN,SAAS,QACT,IAAI,QACJ,cAAc,EAAC,QAAQ,EACvB,SAAS,EAAC,oBAAoB;gBAE9B,oBAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,IACvC,OAAO,CACG,CACR,CACR,CACI,CACH,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,OAAO,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Box, CircularProgress, Grid, Typography } from '@mui/material'\ntype Props = {\n message?: string\n}\n\nconst Loading = ({ message }: Props) => {\n return (\n <Box p={2} className=\"ob-loading-with-message\">\n <Grid container spacing={2} className=\"ob-loading\">\n <Grid xs={12} container item justifyContent=\"center\">\n <CircularProgress></CircularProgress>\n </Grid>\n {message && (\n <Grid\n xs={12}\n container\n item\n justifyContent=\"center\"\n className=\"ob-loading-message\"\n >\n <Typography variant=\"body2\" align=\"center\">\n {message}\n </Typography>\n </Grid>\n )}\n </Grid>\n </Box>\n )\n}\n\nexport default React.memo<Props>(Loading)\n"]}
@@ -0,0 +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;