@oneblink/apps-react 8.14.0 → 9.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 (661) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +1 -1
  2. package/dist/OneBlinkAutoSaveForm.js +6 -8
  3. package/dist/OneBlinkAutoSaveForm.js.map +1 -1
  4. package/dist/OneBlinkForm.d.ts +6 -10
  5. package/dist/OneBlinkForm.js +3 -6
  6. package/dist/OneBlinkForm.js.map +1 -1
  7. package/dist/OneBlinkFormBase.d.ts +2 -2
  8. package/dist/OneBlinkFormBase.js +51 -147
  9. package/dist/OneBlinkFormBase.js.map +1 -1
  10. package/dist/OneBlinkReadOnlyForm.d.ts +2 -2
  11. package/dist/OneBlinkReadOnlyForm.js +3 -2
  12. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  13. package/dist/PaymentReceipt.d.ts +2 -2
  14. package/dist/PaymentReceipt.js +12 -33
  15. package/dist/PaymentReceipt.js.map +1 -1
  16. package/dist/apps/Sentry.d.ts +7 -0
  17. package/dist/apps/Sentry.js +16 -0
  18. package/dist/apps/Sentry.js.map +1 -0
  19. package/dist/apps/approvals-service.d.ts +390 -0
  20. package/dist/apps/approvals-service.js +987 -0
  21. package/dist/apps/approvals-service.js.map +1 -0
  22. package/dist/apps/attachments-service.d.ts +49 -0
  23. package/dist/apps/attachments-service.js +134 -0
  24. package/dist/apps/attachments-service.js.map +1 -0
  25. package/dist/apps/auth-service.d.ts +114 -0
  26. package/dist/apps/auth-service.js +194 -0
  27. package/dist/apps/auth-service.js.map +1 -0
  28. package/dist/apps/auto-save-service.d.ts +82 -0
  29. package/dist/apps/auto-save-service.js +105 -0
  30. package/dist/apps/auto-save-service.js.map +1 -0
  31. package/dist/apps/draft-service.d.ts +148 -0
  32. package/dist/apps/draft-service.js +583 -0
  33. package/dist/apps/draft-service.js.map +1 -0
  34. package/dist/apps/form-service.d.ts +204 -0
  35. package/dist/apps/form-service.js +718 -0
  36. package/dist/apps/form-service.js.map +1 -0
  37. package/dist/apps/form-store-service.d.ts +141 -0
  38. package/dist/apps/form-store-service.js +114 -0
  39. package/dist/apps/form-store-service.js.map +1 -0
  40. package/dist/apps/forms-app-environment-service.d.ts +19 -0
  41. package/dist/apps/forms-app-environment-service.js +55 -0
  42. package/dist/apps/forms-app-environment-service.js.map +1 -0
  43. package/dist/apps/forms-app-service.d.ts +18 -0
  44. package/dist/apps/forms-app-service.js +53 -0
  45. package/dist/apps/forms-app-service.js.map +1 -0
  46. package/dist/apps/index.d.ts +253 -0
  47. package/dist/apps/index.js +255 -0
  48. package/dist/apps/index.js.map +1 -0
  49. package/dist/apps/job-service.d.ts +20 -0
  50. package/dist/apps/job-service.js +95 -0
  51. package/dist/apps/job-service.js.map +1 -0
  52. package/dist/apps/localisation-service.d.ts +207 -0
  53. package/dist/apps/localisation-service.js +321 -0
  54. package/dist/apps/localisation-service.js.map +1 -0
  55. package/dist/apps/notification-service.d.ts +83 -0
  56. package/dist/apps/notification-service.js +315 -0
  57. package/dist/apps/notification-service.js.map +1 -0
  58. package/dist/apps/offline-service.d.ts +18 -0
  59. package/dist/apps/offline-service.js +25 -0
  60. package/dist/apps/offline-service.js.map +1 -0
  61. package/dist/apps/payment-service.d.ts +110 -0
  62. package/dist/apps/payment-service.js +182 -0
  63. package/dist/apps/payment-service.js.map +1 -0
  64. package/dist/apps/prefill-service.d.ts +14 -0
  65. package/dist/apps/prefill-service.js +19 -0
  66. package/dist/apps/prefill-service.js.map +1 -0
  67. package/dist/apps/scheduled-tasks-service.d.ts +127 -0
  68. package/dist/apps/scheduled-tasks-service.js +240 -0
  69. package/dist/apps/scheduled-tasks-service.js.map +1 -0
  70. package/dist/apps/scheduling-service.d.ts +101 -0
  71. package/dist/apps/scheduling-service.js +171 -0
  72. package/dist/apps/scheduling-service.js.map +1 -0
  73. package/dist/apps/services/AWSCognitoClient.d.ts +55 -0
  74. package/dist/apps/services/AWSCognitoClient.js +436 -0
  75. package/dist/apps/services/AWSCognitoClient.js.map +1 -0
  76. package/dist/apps/services/api/drafts.d.ts +7 -0
  77. package/dist/apps/services/api/drafts.js +236 -0
  78. package/dist/apps/services/api/drafts.js.map +1 -0
  79. package/dist/apps/services/api/notifications.d.ts +3 -0
  80. package/dist/apps/services/api/notifications.js +60 -0
  81. package/dist/apps/services/api/notifications.js.map +1 -0
  82. package/dist/apps/services/api/payment.d.ts +23 -0
  83. package/dist/apps/services/api/payment.js +235 -0
  84. package/dist/apps/services/api/payment.js.map +1 -0
  85. package/dist/apps/services/api/post-submission-attachment-urls.d.ts +7 -0
  86. package/dist/apps/services/api/post-submission-attachment-urls.js +19 -0
  87. package/dist/apps/services/api/post-submission-attachment-urls.js.map +1 -0
  88. package/dist/apps/services/api/prefill.d.ts +1 -0
  89. package/dist/apps/services/api/prefill.js +70 -0
  90. package/dist/apps/services/api/prefill.js.map +1 -0
  91. package/dist/apps/services/api/receipt-id.d.ts +2 -0
  92. package/dist/apps/services/api/receipt-id.js +54 -0
  93. package/dist/apps/services/api/receipt-id.js.map +1 -0
  94. package/dist/apps/services/api/scheduling.d.ts +38 -0
  95. package/dist/apps/services/api/scheduling.js +142 -0
  96. package/dist/apps/services/api/scheduling.js.map +1 -0
  97. package/dist/apps/services/api/submissions.d.ts +18 -0
  98. package/dist/apps/services/api/submissions.js +166 -0
  99. package/dist/apps/services/api/submissions.js.map +1 -0
  100. package/dist/apps/services/cognito.d.ts +302 -0
  101. package/dist/apps/services/cognito.js +441 -0
  102. package/dist/apps/services/cognito.js.map +1 -0
  103. package/dist/apps/services/draft-data-store.d.ts +16 -0
  104. package/dist/apps/services/draft-data-store.js +115 -0
  105. package/dist/apps/services/draft-data-store.js.map +1 -0
  106. package/dist/apps/services/errors/oneBlinkAppsError.d.ts +35 -0
  107. package/dist/apps/services/errors/oneBlinkAppsError.js +32 -0
  108. package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -0
  109. package/dist/apps/services/external-id-generation.d.ts +4 -0
  110. package/dist/apps/services/external-id-generation.js +59 -0
  111. package/dist/apps/services/external-id-generation.js.map +1 -0
  112. package/dist/apps/services/fetch.d.ts +12 -0
  113. package/dist/apps/services/fetch.js +95 -0
  114. package/dist/apps/services/fetch.js.map +1 -0
  115. package/dist/apps/services/forms-key.d.ts +51 -0
  116. package/dist/apps/services/forms-key.js +83 -0
  117. package/dist/apps/services/forms-key.js.map +1 -0
  118. package/dist/apps/services/generate-generic-error.d.ts +3 -0
  119. package/dist/apps/services/generate-generic-error.js +52 -0
  120. package/dist/apps/services/generate-generic-error.js.map +1 -0
  121. package/dist/apps/services/generateOneBlinkDownloader.d.ts +2 -0
  122. package/dist/apps/services/generateOneBlinkDownloader.js +11 -0
  123. package/dist/apps/services/generateOneBlinkDownloader.js.map +1 -0
  124. package/dist/apps/services/generateOneBlinkUploader.d.ts +2 -0
  125. package/dist/apps/services/generateOneBlinkUploader.js +11 -0
  126. package/dist/apps/services/generateOneBlinkUploader.js.map +1 -0
  127. package/dist/apps/services/getDeviceInformation.d.ts +17 -0
  128. package/dist/apps/services/getDeviceInformation.js +38 -0
  129. package/dist/apps/services/getDeviceInformation.js.map +1 -0
  130. package/dist/apps/services/integration-elements.d.ts +383 -0
  131. package/dist/apps/services/integration-elements.js +761 -0
  132. package/dist/apps/services/integration-elements.js.map +1 -0
  133. package/dist/apps/services/job-prefill.d.ts +40 -0
  134. package/dist/apps/services/job-prefill.js +78 -0
  135. package/dist/apps/services/job-prefill.js.map +1 -0
  136. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.d.ts +29 -0
  137. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js +59 -0
  138. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js.map +1 -0
  139. package/dist/apps/services/payment-providers/CPPayPaymentProvider.d.ts +27 -0
  140. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js +63 -0
  141. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js.map +1 -0
  142. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.d.ts +30 -0
  143. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js +116 -0
  144. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js.map +1 -0
  145. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.d.ts +49 -0
  146. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js +116 -0
  147. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js.map +1 -0
  148. package/dist/apps/services/payment-providers/receipt-items.d.ts +8 -0
  149. package/dist/apps/services/payment-providers/receipt-items.js +58 -0
  150. package/dist/apps/services/payment-providers/receipt-items.js.map +1 -0
  151. package/dist/apps/services/pending-queue.d.ts +150 -0
  152. package/dist/apps/services/pending-queue.js +316 -0
  153. package/dist/apps/services/pending-queue.js.map +1 -0
  154. package/dist/apps/services/prepareSubmissionData.d.ts +2 -0
  155. package/dist/apps/services/prepareSubmissionData.js +113 -0
  156. package/dist/apps/services/prepareSubmissionData.js.map +1 -0
  157. package/dist/apps/services/query-string.d.ts +1 -0
  158. package/dist/apps/services/query-string.js +16 -0
  159. package/dist/apps/services/query-string.js.map +1 -0
  160. package/dist/apps/services/replaceInjectablesWithSubmissionValues.d.ts +3 -0
  161. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js +18 -0
  162. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js.map +1 -0
  163. package/dist/apps/services/schedulingHandlers.d.ts +36 -0
  164. package/dist/apps/services/schedulingHandlers.js +76 -0
  165. package/dist/apps/services/schedulingHandlers.js.map +1 -0
  166. package/dist/apps/services/server-validation.d.ts +2 -0
  167. package/dist/apps/services/server-validation.js +36 -0
  168. package/dist/apps/services/server-validation.js.map +1 -0
  169. package/dist/apps/services/serverRequest.d.ts +5 -0
  170. package/dist/apps/services/serverRequest.js +24 -0
  171. package/dist/apps/services/serverRequest.js.map +1 -0
  172. package/dist/apps/services/submit.d.ts +19 -0
  173. package/dist/apps/services/submit.js +219 -0
  174. package/dist/apps/services/submit.js.map +1 -0
  175. package/dist/apps/services/uploadAttachment.d.ts +52 -0
  176. package/dist/apps/services/uploadAttachment.js +73 -0
  177. package/dist/apps/services/uploadAttachment.js.map +1 -0
  178. package/dist/apps/services/user-token.d.ts +27 -0
  179. package/dist/apps/services/user-token.js +33 -0
  180. package/dist/apps/services/user-token.js.map +1 -0
  181. package/dist/apps/services/utils.d.ts +12 -0
  182. package/dist/apps/services/utils.js +100 -0
  183. package/dist/apps/services/utils.js.map +1 -0
  184. package/dist/apps/submission-service.d.ts +226 -0
  185. package/dist/apps/submission-service.js +425 -0
  186. package/dist/apps/submission-service.js.map +1 -0
  187. package/dist/apps/tenants.d.ts +30 -0
  188. package/dist/apps/tenants.js +155 -0
  189. package/dist/apps/tenants.js.map +1 -0
  190. package/dist/apps/types/form.d.ts +4 -0
  191. package/dist/apps/types/form.js +2 -0
  192. package/dist/apps/types/form.js.map +1 -0
  193. package/dist/apps/types/payments.d.ts +45 -0
  194. package/dist/apps/types/payments.js +2 -0
  195. package/dist/apps/types/payments.js.map +1 -0
  196. package/dist/apps/types/scheduling.d.ts +5 -0
  197. package/dist/apps/types/scheduling.js +2 -0
  198. package/dist/apps/types/scheduling.js.map +1 -0
  199. package/dist/apps/types/submissions.d.ts +175 -0
  200. package/dist/apps/types/submissions.js +2 -0
  201. package/dist/apps/types/submissions.js.map +1 -0
  202. package/dist/components/ArcGISWebMap.d.ts +3 -3
  203. package/dist/components/ArcGISWebMap.js +29 -39
  204. package/dist/components/ArcGISWebMap.js.map +1 -1
  205. package/dist/components/Clickable.d.ts +1 -1
  206. package/dist/components/Clickable.js +2 -1
  207. package/dist/components/Clickable.js.map +1 -1
  208. package/dist/components/ConfirmDialog.d.ts +2 -2
  209. package/dist/components/ConfirmDialog.js +8 -14
  210. package/dist/components/ConfirmDialog.js.map +1 -1
  211. package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
  212. package/dist/components/CopyToClipboardIconButton.js +10 -14
  213. package/dist/components/CopyToClipboardIconButton.js.map +1 -1
  214. package/dist/components/CustomAccordion.d.ts +2 -19
  215. package/dist/components/ErrorSnackbar.d.ts +1 -1
  216. package/dist/components/ErrorSnackbar.js +6 -7
  217. package/dist/components/ErrorSnackbar.js.map +1 -1
  218. package/dist/components/ImageCropper/CropModal.d.ts +1 -1
  219. package/dist/components/ImageCropper/CropModal.js +2 -8
  220. package/dist/components/ImageCropper/CropModal.js.map +1 -1
  221. package/dist/components/ImageCropper/index.d.ts +1 -1
  222. package/dist/components/ImageCropper/index.js +3 -5
  223. package/dist/components/ImageCropper/index.js.map +1 -1
  224. package/dist/components/InputClear.js +2 -3
  225. package/dist/components/InputClear.js.map +1 -1
  226. package/dist/components/InputField.d.ts +3 -2
  227. package/dist/components/InputField.js +5 -2
  228. package/dist/components/InputField.js.map +1 -1
  229. package/dist/components/Lists.d.ts +1 -3
  230. package/dist/components/Lists.js +2 -2
  231. package/dist/components/Lists.js.map +1 -1
  232. package/dist/components/LoadingWithMessage.js +2 -6
  233. package/dist/components/LoadingWithMessage.js.map +1 -1
  234. package/dist/components/MaterialIcon.d.ts +2 -4
  235. package/dist/components/MaterialIcon.js +4 -4
  236. package/dist/components/MaterialIcon.js.map +1 -1
  237. package/dist/components/NotificationGrid.d.ts +2 -2
  238. package/dist/components/NotificationGrid.js +4 -7
  239. package/dist/components/NotificationGrid.js.map +1 -1
  240. package/dist/components/QuillHTML.d.ts +1 -1
  241. package/dist/components/QuillHTML.js +2 -1
  242. package/dist/components/QuillHTML.js.map +1 -1
  243. package/dist/components/SuccessSnackbar.d.ts +1 -1
  244. package/dist/components/SuccessSnackbar.js +3 -6
  245. package/dist/components/SuccessSnackbar.js.map +1 -1
  246. package/dist/components/ValidationErrorsCard.d.ts +2 -2
  247. package/dist/components/ValidationErrorsCard.js +32 -49
  248. package/dist/components/ValidationErrorsCard.js.map +1 -1
  249. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.d.ts +1 -1
  250. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +6 -7
  251. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
  252. package/dist/components/calendar-bookings/CalendarBookingsContainer.d.ts +1 -1
  253. package/dist/components/calendar-bookings/CalendarBookingsContainer.js +9 -11
  254. package/dist/components/calendar-bookings/CalendarBookingsContainer.js.map +1 -1
  255. package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +2 -2
  256. package/dist/components/calendar-bookings/CalendarBookingsForm.js +34 -46
  257. package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
  258. package/dist/components/calendar-bookings/CalendarBookingsProvider.d.ts +1 -1
  259. package/dist/components/calendar-bookings/CalendarBookingsProvider.js +2 -6
  260. package/dist/components/calendar-bookings/CalendarBookingsProvider.js.map +1 -1
  261. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.d.ts +1 -1
  262. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +6 -7
  263. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
  264. package/dist/components/calendar-bookings/ErrorModal.d.ts +1 -1
  265. package/dist/components/calendar-bookings/ErrorModal.js +8 -12
  266. package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
  267. package/dist/components/downloadable-files/LayoutProvider.d.ts +1 -1
  268. package/dist/components/downloadable-files/LayoutProvider.js +2 -1
  269. package/dist/components/downloadable-files/LayoutProvider.js.map +1 -1
  270. package/dist/components/downloadable-files/index.d.ts +2 -2
  271. package/dist/components/downloadable-files/index.js +4 -6
  272. package/dist/components/downloadable-files/index.js.map +1 -1
  273. package/dist/components/downloadable-files/resource-components.d.ts +4 -4
  274. package/dist/components/downloadable-files/resource-components.js +10 -33
  275. package/dist/components/downloadable-files/resource-components.js.map +1 -1
  276. package/dist/components/formStore/FormStoreTableProvider.d.ts +1 -1
  277. package/dist/components/formStore/FormStoreTableProvider.js +6 -16
  278. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
  279. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +1 -1
  280. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +3 -4
  281. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
  282. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +1 -1
  283. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +21 -54
  284. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
  285. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +2 -2
  286. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +8 -27
  287. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
  288. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
  289. package/dist/components/formStore/OneBlinkFormStoreProvider.js +5 -6
  290. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
  291. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +1 -1
  292. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +2 -3
  293. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
  294. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +1 -1
  295. package/dist/components/formStore/OneBlinkFormStoreTable.js +129 -95
  296. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
  297. package/dist/components/formStore/display/ElementDisplay.d.ts +3 -4
  298. package/dist/components/formStore/display/ElementDisplay.js +11 -14
  299. package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
  300. package/dist/components/formStore/display/FormStoreIcon.d.ts +1 -1
  301. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  302. package/dist/components/formStore/display/FormStoreIcon.js.map +1 -1
  303. package/dist/components/formStore/table/ActionedByTableCell.d.ts +1 -1
  304. package/dist/components/formStore/table/ActionedByTableCell.js +6 -7
  305. package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
  306. package/dist/components/formStore/table/ColumnFilters.d.ts +3 -3
  307. package/dist/components/formStore/table/ColumnFilters.js +85 -101
  308. package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
  309. package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
  310. package/dist/components/formStore/table/FormElementTableCell.js +35 -98
  311. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  312. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +4 -4
  313. package/dist/components/formStore/table/HeaderCellMoreButton.js +26 -32
  314. package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -1
  315. package/dist/components/formStore/table/Pickers.d.ts +4 -4
  316. package/dist/components/formStore/table/Pickers.js +15 -14
  317. package/dist/components/formStore/table/Pickers.js.map +1 -1
  318. package/dist/components/formStore/table/RepeatableSetCell.js +17 -21
  319. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  320. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +2 -4
  321. package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -1
  322. package/dist/components/formStore/table/TableCellCopyButton.d.ts +1 -1
  323. package/dist/components/formStore/table/TableCellCopyButton.js +2 -3
  324. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  325. package/dist/components/formStore/table/generateColumns.d.ts +6 -7
  326. package/dist/components/formStore/table/generateColumns.js +23 -18
  327. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  328. package/dist/components/formStore/table/getVersionedState.d.ts +4 -3
  329. package/dist/components/formStore/table/getVersionedState.js +23 -6
  330. package/dist/components/formStore/table/getVersionedState.js.map +1 -1
  331. package/dist/components/formStore/table/useFormStoreTable.d.ts +146 -37
  332. package/dist/components/formStore/table/useFormStoreTable.js +268 -199
  333. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  334. package/dist/components/formStore/useFormStoreTableContext.d.ts +144 -35
  335. package/dist/components/messages/ErrorMessage.js +3 -3
  336. package/dist/components/messages/ErrorMessage.js.map +1 -1
  337. package/dist/components/messages/LargeIconMessage.js +2 -6
  338. package/dist/components/messages/LargeIconMessage.js.map +1 -1
  339. package/dist/components/messages/NoResourcesYet.d.ts +1 -1
  340. package/dist/components/messages/NoResourcesYet.js +2 -1
  341. package/dist/components/messages/NoResourcesYet.js.map +1 -1
  342. package/dist/components/mfa/MfaDialog.d.ts +2 -2
  343. package/dist/components/mfa/MfaDialog.js +10 -49
  344. package/dist/components/mfa/MfaDialog.js.map +1 -1
  345. package/dist/components/mfa/MultiFactorAuthentication.d.ts +2 -5
  346. package/dist/components/mfa/MultiFactorAuthentication.js +14 -45
  347. package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
  348. package/dist/components/payments/PaymentForm.d.ts +1 -1
  349. package/dist/components/payments/PaymentForm.js +5 -10
  350. package/dist/components/payments/PaymentForm.js.map +1 -1
  351. package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +2 -2
  352. package/dist/components/payments/WestpacQuickStreamPaymentForm.js +12 -46
  353. package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
  354. package/dist/components/receipts/Receipt.d.ts +1 -1
  355. package/dist/components/receipts/Receipt.js +2 -2
  356. package/dist/components/receipts/Receipt.js.map +1 -1
  357. package/dist/components/receipts/ReceiptButton.d.ts +1 -1
  358. package/dist/components/receipts/ReceiptButton.js +3 -2
  359. package/dist/components/receipts/ReceiptButton.js.map +1 -1
  360. package/dist/components/receipts/ReceiptList.d.ts +1 -1
  361. package/dist/components/receipts/ReceiptList.js +2 -9
  362. package/dist/components/receipts/ReceiptList.js.map +1 -1
  363. package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
  364. package/dist/components/receipts/ReceiptListItem.js +2 -11
  365. package/dist/components/receipts/ReceiptListItem.js.map +1 -1
  366. package/dist/components/renderer/AnnotationModal.d.ts +1 -1
  367. package/dist/components/renderer/AnnotationModal.js +6 -14
  368. package/dist/components/renderer/AnnotationModal.js.map +1 -1
  369. package/dist/components/renderer/AutocompleteDropdown.d.ts +1 -1
  370. package/dist/components/renderer/AutocompleteDropdown.js +16 -35
  371. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
  372. package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
  373. package/dist/components/renderer/CopyToClipboardButton.js +2 -4
  374. package/dist/components/renderer/CopyToClipboardButton.js.map +1 -1
  375. package/dist/components/renderer/CustomisableButtonInner.js +2 -4
  376. package/dist/components/renderer/CustomisableButtonInner.js.map +1 -1
  377. package/dist/components/renderer/FormElementLabelContainer.d.ts +3 -3
  378. package/dist/components/renderer/FormElementLabelContainer.js +7 -14
  379. package/dist/components/renderer/FormElementLabelContainer.js.map +1 -1
  380. package/dist/components/renderer/FormElementOptions.d.ts +1 -1
  381. package/dist/components/renderer/FormElementOptions.js +4 -5
  382. package/dist/components/renderer/FormElementOptions.js.map +1 -1
  383. package/dist/components/renderer/FormElementValidationMessage.js +3 -5
  384. package/dist/components/renderer/FormElementValidationMessage.js.map +1 -1
  385. package/dist/components/renderer/LookupButton.d.ts +1 -1
  386. package/dist/components/renderer/LookupButton.js +4 -8
  387. package/dist/components/renderer/LookupButton.js.map +1 -1
  388. package/dist/components/renderer/LookupNotification.d.ts +1 -1
  389. package/dist/components/renderer/LookupNotification.js +16 -38
  390. package/dist/components/renderer/LookupNotification.js.map +1 -1
  391. package/dist/components/renderer/Modal.d.ts +3 -3
  392. package/dist/components/renderer/Modal.js +7 -10
  393. package/dist/components/renderer/Modal.js.map +1 -1
  394. package/dist/components/renderer/OnLoading.d.ts +1 -1
  395. package/dist/components/renderer/OnLoading.js +3 -3
  396. package/dist/components/renderer/OnLoading.js.map +1 -1
  397. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
  398. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +3 -5
  399. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
  400. package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
  401. package/dist/components/renderer/OneBlinkFormElements.js +61 -90
  402. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  403. package/dist/components/renderer/PageFormElements.d.ts +1 -1
  404. package/dist/components/renderer/PageFormElements.js +3 -5
  405. package/dist/components/renderer/PageFormElements.js.map +1 -1
  406. package/dist/components/renderer/ProgressBar.d.ts +1 -1
  407. package/dist/components/renderer/ProgressBar.js +2 -1
  408. package/dist/components/renderer/ProgressBar.js.map +1 -1
  409. package/dist/components/renderer/ReverseGeocode.d.ts +1 -1
  410. package/dist/components/renderer/ReverseGeocode.js +3 -2
  411. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  412. package/dist/components/renderer/ToggleAllCheckbox.js +4 -5
  413. package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
  414. package/dist/components/renderer/Tooltip.d.ts +1 -1
  415. package/dist/components/renderer/Tooltip.js +5 -1
  416. package/dist/components/renderer/Tooltip.js.map +1 -1
  417. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +1 -1
  418. package/dist/components/renderer/attachments/AttachmentStatus.js +6 -15
  419. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  420. package/dist/components/renderer/attachments/DropdownMenu.js +30 -42
  421. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  422. package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
  423. package/dist/components/renderer/attachments/FileCard.js +2 -10
  424. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  425. package/dist/components/renderer/attachments/FileCardContent.d.ts +1 -1
  426. package/dist/components/renderer/attachments/FileCardContent.js +3 -4
  427. package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
  428. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +1 -1
  429. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +2 -5
  430. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -1
  431. package/dist/components/renderer/attachments/ProgressBar.js +2 -4
  432. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  433. package/dist/form-elements/ComplianceButton.js +3 -4
  434. package/dist/form-elements/ComplianceButton.js.map +1 -1
  435. package/dist/form-elements/FormElementABN.d.ts +1 -1
  436. package/dist/form-elements/FormElementABN.js +18 -28
  437. package/dist/form-elements/FormElementABN.js.map +1 -1
  438. package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -2
  439. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +4 -22
  440. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  441. package/dist/form-elements/FormElementArcGISWebMap.d.ts +1 -1
  442. package/dist/form-elements/FormElementArcGISWebMap.js +21 -36
  443. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  444. package/dist/form-elements/FormElementAutocomplete.d.ts +1 -1
  445. package/dist/form-elements/FormElementAutocomplete.js +6 -10
  446. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  447. package/dist/form-elements/FormElementBSB.d.ts +1 -1
  448. package/dist/form-elements/FormElementBSB.js +22 -31
  449. package/dist/form-elements/FormElementBSB.js.map +1 -1
  450. package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
  451. package/dist/form-elements/FormElementBarcodeScanner.js +16 -50
  452. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  453. package/dist/form-elements/FormElementBoolean.d.ts +1 -1
  454. package/dist/form-elements/FormElementBoolean.js +4 -4
  455. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  456. package/dist/form-elements/FormElementCalculation.d.ts +1 -1
  457. package/dist/form-elements/FormElementCalculation.js +4 -11
  458. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  459. package/dist/form-elements/FormElementCamera.d.ts +1 -1
  460. package/dist/form-elements/FormElementCamera.js +7 -53
  461. package/dist/form-elements/FormElementCamera.js.map +1 -1
  462. package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
  463. package/dist/form-elements/FormElementCaptcha.js +2 -4
  464. package/dist/form-elements/FormElementCaptcha.js.map +1 -1
  465. package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
  466. package/dist/form-elements/FormElementCheckBoxes.js +23 -33
  467. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  468. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +1 -1
  469. package/dist/form-elements/FormElementCivicaNameRecord.js +3 -2
  470. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  471. package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
  472. package/dist/form-elements/FormElementCivicaStreetName.js +3 -5
  473. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  474. package/dist/form-elements/FormElementCompliance.d.ts +2 -2
  475. package/dist/form-elements/FormElementCompliance.js +13 -25
  476. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  477. package/dist/form-elements/FormElementDate.d.ts +1 -1
  478. package/dist/form-elements/FormElementDate.js +3 -10
  479. package/dist/form-elements/FormElementDate.js.map +1 -1
  480. package/dist/form-elements/FormElementDateTime.d.ts +1 -1
  481. package/dist/form-elements/FormElementDateTime.js +3 -10
  482. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  483. package/dist/form-elements/FormElementEmail.d.ts +1 -1
  484. package/dist/form-elements/FormElementEmail.js +4 -13
  485. package/dist/form-elements/FormElementEmail.js.map +1 -1
  486. package/dist/form-elements/FormElementFile.d.ts +1 -1
  487. package/dist/form-elements/FormElementFile.js +2 -12
  488. package/dist/form-elements/FormElementFile.js.map +1 -1
  489. package/dist/form-elements/FormElementFiles.d.ts +2 -2
  490. package/dist/form-elements/FormElementFiles.js +9 -17
  491. package/dist/form-elements/FormElementFiles.js.map +1 -1
  492. package/dist/form-elements/FormElementForm.d.ts +1 -1
  493. package/dist/form-elements/FormElementForm.js +2 -1
  494. package/dist/form-elements/FormElementForm.js.map +1 -1
  495. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +1 -1
  496. package/dist/form-elements/FormElementFreshdeskDependentField.js +5 -11
  497. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  498. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
  499. package/dist/form-elements/FormElementGeoscapeAddress.js +3 -5
  500. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  501. package/dist/form-elements/FormElementGoogleAddress.d.ts +1 -1
  502. package/dist/form-elements/FormElementGoogleAddress.js +3 -8
  503. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  504. package/dist/form-elements/FormElementHTML.d.ts +1 -1
  505. package/dist/form-elements/FormElementHTML.js +2 -3
  506. package/dist/form-elements/FormElementHTML.js.map +1 -1
  507. package/dist/form-elements/FormElementHeading.d.ts +1 -1
  508. package/dist/form-elements/FormElementHeading.js +7 -8
  509. package/dist/form-elements/FormElementHeading.js.map +1 -1
  510. package/dist/form-elements/FormElementImage.d.ts +1 -1
  511. package/dist/form-elements/FormElementImage.js +3 -3
  512. package/dist/form-elements/FormElementImage.js.map +1 -1
  513. package/dist/form-elements/FormElementLocation.d.ts +1 -1
  514. package/dist/form-elements/FormElementLocation.js +21 -48
  515. package/dist/form-elements/FormElementLocation.js.map +1 -1
  516. package/dist/form-elements/FormElementLookupButton.d.ts +2 -3
  517. package/dist/form-elements/FormElementLookupButton.js +5 -8
  518. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  519. package/dist/form-elements/FormElementNumber.d.ts +1 -1
  520. package/dist/form-elements/FormElementNumber.js +4 -15
  521. package/dist/form-elements/FormElementNumber.js.map +1 -1
  522. package/dist/form-elements/FormElementPointAddress.d.ts +2 -2
  523. package/dist/form-elements/FormElementPointAddress.js +7 -14
  524. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  525. package/dist/form-elements/FormElementPointAddressV3.d.ts +1 -1
  526. package/dist/form-elements/FormElementPointAddressV3.js +3 -10
  527. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  528. package/dist/form-elements/FormElementPointCadastralParcel.d.ts +1 -1
  529. package/dist/form-elements/FormElementPointCadastralParcel.js +15 -27
  530. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  531. package/dist/form-elements/FormElementRadio.d.ts +1 -1
  532. package/dist/form-elements/FormElementRadio.js +24 -30
  533. package/dist/form-elements/FormElementRadio.js.map +1 -1
  534. package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
  535. package/dist/form-elements/FormElementRepeatableSet.js +21 -39
  536. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  537. package/dist/form-elements/FormElementSection.d.ts +1 -1
  538. package/dist/form-elements/FormElementSection.js +16 -34
  539. package/dist/form-elements/FormElementSection.js.map +1 -1
  540. package/dist/form-elements/FormElementSelect.d.ts +1 -1
  541. package/dist/form-elements/FormElementSelect.js +12 -23
  542. package/dist/form-elements/FormElementSelect.js.map +1 -1
  543. package/dist/form-elements/FormElementSignature.d.ts +1 -1
  544. package/dist/form-elements/FormElementSignature.js +21 -46
  545. package/dist/form-elements/FormElementSignature.js.map +1 -1
  546. package/dist/form-elements/FormElementSummary.d.ts +1 -1
  547. package/dist/form-elements/FormElementSummary.js +9 -6
  548. package/dist/form-elements/FormElementSummary.js.map +1 -1
  549. package/dist/form-elements/FormElementTelephone.d.ts +1 -1
  550. package/dist/form-elements/FormElementTelephone.js +4 -13
  551. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  552. package/dist/form-elements/FormElementText.d.ts +1 -1
  553. package/dist/form-elements/FormElementText.js +6 -21
  554. package/dist/form-elements/FormElementText.js.map +1 -1
  555. package/dist/form-elements/FormElementTextarea.d.ts +1 -1
  556. package/dist/form-elements/FormElementTextarea.js +6 -20
  557. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  558. package/dist/form-elements/FormElementTime.d.ts +1 -1
  559. package/dist/form-elements/FormElementTime.js +3 -10
  560. package/dist/form-elements/FormElementTime.js.map +1 -1
  561. package/dist/form-elements/OptionButton.js +3 -5
  562. package/dist/form-elements/OptionButton.js.map +1 -1
  563. package/dist/hooks/attachments/useAttachment.d.ts +1 -1
  564. package/dist/hooks/attachments/useAttachment.js +1 -1
  565. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  566. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +1 -1
  567. package/dist/hooks/attachments/useAttachmentBlobs.js +2 -1
  568. package/dist/hooks/attachments/useAttachmentBlobs.js.map +1 -1
  569. package/dist/hooks/attachments/useAttachments.d.ts +1 -1
  570. package/dist/hooks/attachments/useAttachments.js.map +1 -1
  571. package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +7 -8
  572. package/dist/hooks/form-date-picker/useFormDatePickerProps.js +10 -10
  573. package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
  574. package/dist/hooks/useAuth.d.ts +1 -1
  575. package/dist/hooks/useAuth.js +3 -2
  576. package/dist/hooks/useAuth.js.map +1 -1
  577. package/dist/hooks/useConditionalLogic.js +1 -1
  578. package/dist/hooks/useConditionalLogic.js.map +1 -1
  579. package/dist/hooks/useDrafts.d.ts +2 -2
  580. package/dist/hooks/useDrafts.js +3 -2
  581. package/dist/hooks/useDrafts.js.map +1 -1
  582. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +2 -2
  583. package/dist/hooks/useDynamicOptionsLoaderState.js +5 -14
  584. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  585. package/dist/hooks/useFormElementLookups.d.ts +2 -2
  586. package/dist/hooks/useFormElementLookups.js +3 -2
  587. package/dist/hooks/useFormElementLookups.js.map +1 -1
  588. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -1
  589. package/dist/hooks/useFormSubmissionAutoSaveState.js +1 -1
  590. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  591. package/dist/hooks/useFormSubmissionDuration.js +2 -0
  592. package/dist/hooks/useFormSubmissionDuration.js.map +1 -1
  593. package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
  594. package/dist/hooks/useFormSubmissionModelContext.js +2 -1
  595. package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
  596. package/dist/hooks/useFormSubmissionState.d.ts +1 -1
  597. package/dist/hooks/useFormSubmissionState.js +1 -1
  598. package/dist/hooks/useFormSubmissionState.js.map +1 -1
  599. package/dist/hooks/useIsHovering.d.ts +1 -1
  600. package/dist/hooks/useIsHovering.js +4 -4
  601. package/dist/hooks/useIsHovering.js.map +1 -1
  602. package/dist/hooks/useIsOffline.d.ts +1 -1
  603. package/dist/hooks/useIsOffline.js +3 -2
  604. package/dist/hooks/useIsOffline.js.map +1 -1
  605. package/dist/hooks/useIsPageVisible.d.ts +1 -1
  606. package/dist/hooks/useIsPageVisible.js +2 -1
  607. package/dist/hooks/useIsPageVisible.js.map +1 -1
  608. package/dist/hooks/useLoadDataState.js +3 -1
  609. package/dist/hooks/useLoadDataState.js.map +1 -1
  610. package/dist/hooks/useLogin.js +1 -1
  611. package/dist/hooks/useLogin.js.map +1 -1
  612. package/dist/hooks/useMfa.d.ts +2 -2
  613. package/dist/hooks/useMfa.js +3 -2
  614. package/dist/hooks/useMfa.js.map +1 -1
  615. package/dist/hooks/useOnUploadAttachment.d.ts +1 -1
  616. package/dist/hooks/useOnUploadAttachment.js +1 -1
  617. package/dist/hooks/useOnUploadAttachment.js.map +1 -1
  618. package/dist/hooks/useOneBlinkFormContainer.d.ts +2 -1
  619. package/dist/hooks/useOneBlinkFormContainer.js +2 -2
  620. package/dist/hooks/useOneBlinkFormContainer.js.map +1 -1
  621. package/dist/hooks/usePages.d.ts +1 -1
  622. package/dist/hooks/usePendingSubmissions.d.ts +2 -2
  623. package/dist/hooks/usePendingSubmissions.js +3 -2
  624. package/dist/hooks/usePendingSubmissions.js.map +1 -1
  625. package/dist/hooks/useReCAPTCHAProps.d.ts +1 -1
  626. package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
  627. package/dist/hooks/useReplaceableText.js +1 -1
  628. package/dist/hooks/useReplaceableText.js.map +1 -1
  629. package/dist/hooks/useSignUp.js +1 -1
  630. package/dist/hooks/useSignUp.js.map +1 -1
  631. package/dist/index.d.ts +1 -0
  632. package/dist/index.js +2 -0
  633. package/dist/index.js.map +1 -1
  634. package/dist/services/attachments.d.ts +1 -1
  635. package/dist/services/attachments.js +1 -1
  636. package/dist/services/attachments.js.map +1 -1
  637. package/dist/services/blob-utils.js +1 -1
  638. package/dist/services/blob-utils.js.map +1 -1
  639. package/dist/services/checkIfAttachmentsExist.d.ts +1 -1
  640. package/dist/services/checkIfAttachmentsExist.js.map +1 -1
  641. package/dist/services/defaultCoordinates.js +1 -1
  642. package/dist/services/defaultCoordinates.js.map +1 -1
  643. package/dist/services/download-file.d.ts +1 -1
  644. package/dist/services/download-file.js +2 -2
  645. package/dist/services/download-file.js.map +1 -1
  646. package/dist/services/drawTimestampOnCanvas.js +1 -1
  647. package/dist/services/drawTimestampOnCanvas.js.map +1 -1
  648. package/dist/services/form-validation/validateSubmission.js +1 -1
  649. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  650. package/dist/services/form-validation/validators.d.ts +1 -1
  651. package/dist/services/form-validation/validators.js.map +1 -1
  652. package/dist/services/generate-default-data.js +1 -1
  653. package/dist/services/generate-default-data.js.map +1 -1
  654. package/dist/services/injectableOptions.js +1 -1
  655. package/dist/services/injectableOptions.js.map +1 -1
  656. package/dist/styles.css +208 -204
  657. package/dist/types/attachments.d.ts +1 -1
  658. package/dist/types/attachments.js.map +1 -1
  659. package/dist/utils/sendGoogleAnalyticsEvent.js +1 -1
  660. package/dist/utils/sendGoogleAnalyticsEvent.js.map +1 -1
  661. package/package.json +58 -51
@@ -1,6 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import SignatureCanvas from 'react-signature-canvas';
3
- import useResizeObserver from 'use-resize-observer';
4
+ import { useResizeObserver } from 'usehooks-ts';
4
5
  import scrollingService from '../services/scrolling-service';
5
6
  import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
6
7
  import OnLoading from '../components/renderer/OnLoading';
@@ -18,10 +19,7 @@ function FormElementSignature({ id, element, value, onChange, validationMessage,
18
19
  setIsDirty();
19
20
  onChange(formElement, newValue);
20
21
  }, [onChange, setIsDirty]);
21
- return (React.createElement("div", { className: "cypress-signature-element" },
22
- React.createElement(FormElementLabelContainer, { className: "ob-signature", id: id, element: element, required: element.required },
23
- React.createElement("div", { className: "control" }, value ? (React.createElement(SignatureDisplay, { element: element, value: value, onChange: handleChange })) : isPageVisible ? (React.createElement(SignatureDrawing, { element: element, onChange: handleChange })) : null),
24
- (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })))));
22
+ return (_jsx("div", { className: "cypress-signature-element", children: _jsxs(FormElementLabelContainer, { className: "ob-signature", id: id, element: element, required: element.required, children: [_jsx("div", { className: "control", children: value ? (_jsx(SignatureDisplay, { element: element, value: value, onChange: handleChange })) : isPageVisible ? (_jsx(SignatureDrawing, { element: element, onChange: handleChange })) : null }), (isDirty || displayValidationMessage) && !!validationMessage && (_jsx(FormElementValidationMessage, { message: validationMessage }))] }) }));
25
23
  }
26
24
  export default React.memo(FormElementSignature);
27
25
  const SignatureDrawing = React.memo(function SignatureDrawing({ element, onChange, }) {
@@ -57,7 +55,10 @@ const SignatureDrawing = React.memo(function SignatureDrawing({ element, onChang
57
55
  setIsEmpty(false);
58
56
  }
59
57
  }, [isEmpty]);
60
- const { ref } = useResizeObserver({
58
+ const ref = React.useRef(null);
59
+ useResizeObserver({
60
+ // @ts-expect-error https://github.com/juliencrn/usehooks-ts/issues/663
61
+ ref,
61
62
  onResize: setCanvasDimensions,
62
63
  });
63
64
  // REACTIVE DISABLING OF CANVAS
@@ -71,17 +72,12 @@ const SignatureDrawing = React.memo(function SignatureDrawing({ element, onChang
71
72
  canvasRef.current.on();
72
73
  }
73
74
  }, [canvasRef, element.readOnly]);
74
- return (React.createElement(React.Fragment, null,
75
- React.createElement("div", { ref: ref },
76
- React.createElement(SignatureCanvas, { ref: canvasRef, canvasProps: {
77
- ...canvasDimensions,
78
- className: 'input ob-signature__control cypress-signature-control signature-pad',
79
- // @ts-expect-error ???
80
- disabled: element.readOnly,
81
- }, onEnd: handleEndDraw, onBegin: window.cordova ? scrollingService.disableScrolling : undefined })),
82
- React.createElement("div", { className: "buttons ob-buttons" },
83
- React.createElement("button", { type: "button", className: "button ob-button is-light ob-button__clear cypress-clear-signature", onClick: handleClear, disabled: element.readOnly || isEmpty }, "Clear"),
84
- React.createElement("button", { type: "button", className: "button ob-button ob-button__done is-primary cypress-done-signature-button", onClick: handleDone, disabled: element.readOnly || isEmpty }, "Save Signature"))));
75
+ return (_jsxs(_Fragment, { children: [_jsx("div", { ref: ref, children: _jsx(SignatureCanvas, { ref: canvasRef, canvasProps: {
76
+ ...canvasDimensions,
77
+ className: 'input ob-signature__control cypress-signature-control signature-pad',
78
+ // @ts-expect-error ???
79
+ disabled: element.readOnly,
80
+ }, onEnd: handleEndDraw, onBegin: window.cordova ? scrollingService.disableScrolling : undefined }) }), _jsxs("div", { className: "buttons ob-buttons", children: [_jsx("button", { type: "button", className: "button ob-button is-light ob-button__clear cypress-clear-signature", onClick: handleClear, disabled: element.readOnly || isEmpty, children: "Clear" }), _jsx("button", { type: "button", className: "button ob-button ob-button__done is-primary cypress-done-signature-button", onClick: handleDone, disabled: element.readOnly || isEmpty, children: "Save Signature" })] })] }));
85
81
  });
86
82
  const SignatureDisplay = React.memo(function SignatureDisplay({ element, value, onChange, }) {
87
83
  const result = useAttachment(value, element, React.useCallback((id, attachment) => {
@@ -106,44 +102,23 @@ const SignatureDisplay = React.memo(function SignatureDisplay({ element, value,
106
102
  };
107
103
  }
108
104
  }, [element, onChange, value]);
109
- return (React.createElement(React.Fragment, null,
110
- React.createElement("figure", { className: "ob-figure" },
111
- React.createElement(DisplayImage, { ...result, alt: `${element.label}: Signature` })),
112
- React.createElement("div", { className: "buttons ob-buttons" },
113
- result.uploadErrorMessage && handleRetry && (React.createElement("button", { type: "button", className: "button ob-button ob-button__retry is-light cypress-retry-file-button", onClick: handleRetry }, "Retry")),
114
- React.createElement("button", { type: "button", className: "button ob-button is-light ob-button__clear cypress-clear-signature", onClick: () => onChange(element, {
115
- value: undefined,
116
- }), disabled: element.readOnly }, "Clear"))));
105
+ return (_jsxs(_Fragment, { children: [_jsx("figure", { className: "ob-figure", children: _jsx(DisplayImage, { ...result, alt: `${element.label}: Signature` }) }), _jsxs("div", { className: "buttons ob-buttons", children: [result.uploadErrorMessage && handleRetry && (_jsx("button", { type: "button", className: "button ob-button ob-button__retry is-light cypress-retry-file-button", onClick: handleRetry, children: "Retry" })), _jsx("button", { type: "button", className: "button ob-button is-light ob-button__clear cypress-clear-signature", onClick: () => onChange(element, {
106
+ value: undefined,
107
+ }), disabled: element.readOnly, children: "Clear" })] })] }));
117
108
  });
118
109
  const DisplayImage = React.memo(function DisplayImage({ alt, uploadErrorMessage, isUploading, isLoadingAttachmentUrl, attachmentUrl, loadAttachmentUrlError, progress, }) {
119
110
  if (uploadErrorMessage) {
120
- return (React.createElement("div", { className: "figure-content", role: "alert" },
121
- React.createElement("h3", { className: "title is-3" }, "Upload Failed"),
122
- React.createElement("p", null,
123
- "Your signature failed to upload, please use the ",
124
- React.createElement("b", null, "Retry"),
125
- " or",
126
- ' ',
127
- React.createElement("b", null, "Clear"),
128
- " buttons below.")));
111
+ return (_jsxs("div", { className: "figure-content", role: "alert", children: [_jsx("h3", { className: "title is-3", children: "Upload Failed" }), _jsxs("p", { children: ["Your signature failed to upload, please use the ", _jsx("b", { children: "Retry" }), " or", ' ', _jsx("b", { children: "Clear" }), " buttons below."] })] }));
129
112
  }
130
113
  if (loadAttachmentUrlError) {
131
- return (React.createElement("div", { className: "figure-content", role: "alert" },
132
- React.createElement("h3", { className: "title is-3" }, "Preview Failed"),
133
- React.createElement("p", null, loadAttachmentUrlError.message)));
114
+ return (_jsxs("div", { className: "figure-content", role: "alert", children: [_jsx("h3", { className: "title is-3", children: "Preview Failed" }), _jsx("p", { children: loadAttachmentUrlError.message })] }));
134
115
  }
135
116
  if (isLoadingAttachmentUrl) {
136
- return (React.createElement("div", { className: "figure-content" },
137
- React.createElement(OnLoading, { small: true, className: "cypress-signature-loading-image" })));
117
+ return (_jsx("div", { className: "figure-content", children: _jsx(OnLoading, { small: true, className: "cypress-signature-loading-image" }) }));
138
118
  }
139
119
  if (attachmentUrl) {
140
- return (React.createElement("div", { className: "figure-content" },
141
- React.createElement("span", { className: "ob-figure__status" },
142
- React.createElement(AttachmentStatus, { isLoadingAttachmentUrl: isLoadingAttachmentUrl, loadAttachmentUrlError: loadAttachmentUrlError, isUploading: isUploading, attachmentUrl: attachmentUrl, progress: progress })),
143
- React.createElement("img", { src: attachmentUrl, className: "cypress-signature-image ob-signature__img", alt: alt }),
144
- React.createElement(ProgressBar, { progress: progress, isShowing: isUploading })));
120
+ return (_jsxs("div", { className: "figure-content", children: [_jsx("span", { className: "ob-figure__status", children: _jsx(AttachmentStatus, { isLoadingAttachmentUrl: isLoadingAttachmentUrl, loadAttachmentUrlError: loadAttachmentUrlError, isUploading: isUploading, attachmentUrl: attachmentUrl, progress: progress }) }), _jsx("img", { src: attachmentUrl, className: "cypress-signature-image ob-signature__img", alt: alt }), _jsx(ProgressBar, { progress: progress, isShowing: isUploading })] }));
145
121
  }
146
- return (React.createElement("div", { className: "figure-content", role: "alert" },
147
- React.createElement(ImagePreviewUnavailable, null)));
122
+ return (_jsx("div", { className: "figure-content", role: "alert", children: _jsx(ImagePreviewUnavailable, {}) }));
148
123
  });
149
124
  //# sourceMappingURL=FormElementSignature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementSignature.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSignature.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,eAAe,MAAM,wBAAwB,CAAA;AACpD,OAAO,iBAAmC,MAAM,qBAAqB,CAAA;AAGrE,OAAO,gBAAgB,MAAM,+BAA+B,CAAA;AAC5D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AACxF,OAAO,SAAS,MAAM,kCAAkC,CAAA;AACxD,OAAO,aAAa,MAAM,oCAAoC,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,gBAAgB,MAAM,qDAAqD,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,uBAAuB,MAAM,4DAA4D,CAAA;AAEhG,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;AACxD,OAAO,WAAW,MAAM,gDAAgD,CAAA;AAExE,OAAO,4BAA4B,MAAM,qDAAqD,CAAA;AAW9F,SAAS,oBAAoB,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,OAAO,GACD;IACN,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAGpC,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;QACxB,UAAU,EAAE,CAAA;QACZ,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,oBAAC,yBAAyB,IACxB,SAAS,EAAC,cAAc,EACxB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAE1B,6BAAK,SAAS,EAAC,SAAS,IACrB,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,GACtB,CACH,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAClB,oBAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAI,CAC/D,CAAC,CAAC,CAAC,IAAI,CACJ;YAEL,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAC/D,oBAAC,4BAA4B,IAAC,OAAO,EAAE,iBAAiB,GAAI,CAC7D,CACyB,CACxB,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAE/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC5D,OAAO,EACP,QAAQ,GAIT;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAkB,IAAI,CAAC,CAAA;IAErD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe;QAC3E,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACpC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC3B,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAA;QAE1D,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAA;QAC9C,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEvB,yBAAyB;IACzB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,gBAAgB,CAAC,eAAe,EAAE,CAAA;QACpC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAiB;QAChD,QAAQ,EAAE,mBAAmB;KAC9B,CAAC,CAAA;IAEF,+BAA+B;IAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEjC,OAAO,CACL;QACE,6BAAK,GAAG,EAAE,GAAG;YACX,oBAAC,eAAe,IACd,GAAG,EAAE,SAAS,EACd,WAAW,EAAE;oBACX,GAAG,gBAAgB;oBACnB,SAAS,EACP,qEAAqE;oBACvE,uBAAuB;oBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,EACD,KAAK,EAAE,aAAa,EACpB,OAAO,EACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAEhE,CACE;QAEN,6BAAK,SAAS,EAAC,oBAAoB;YACjC,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oEAAoE,EAC9E,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,YAG9B;YACT,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,2EAA2E,EACrF,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,qBAG9B,CACL,CACL,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC5D,OAAO,EACP,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,MAAM,GAAG,aAAa,CAC1B,KAAK,EACL,OAAO,EACP,KAAK,CAAC,WAAW,CACf,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,UAAU;SAClB,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpB,CACF,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAM;QAE/C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,OAAO,EAAE;oBAChB,KAAK,EAAE;wBACL,IAAI,EAAE,KAAK;wBACX,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC3B;iBACF,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAE9B,OAAO,CACL;QACE,gCAAQ,SAAS,EAAC,WAAW;YAC3B,oBAAC,YAAY,OAAK,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,aAAa,GAAI,CACzD;QAET,6BAAK,SAAS,EAAC,oBAAoB;YAChC,MAAM,CAAC,kBAAkB,IAAI,WAAW,IAAI,CAC3C,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sEAAsE,EAChF,OAAO,EAAE,WAAW,YAGb,CACV;YACD,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oEAAoE,EAC9E,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,OAAO,EAAE;oBAChB,KAAK,EAAE,SAAS;iBACjB,CAAC,EAEJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,YAGnB,CACL,CACL,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,EACpD,GAAG,EACH,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,QAAQ,GAGT;IACC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO;YAC1C,4BAAI,SAAS,EAAC,YAAY,oBAAmB;YAC7C;;gBACkD,uCAAY;;gBAAI,GAAG;gBACnE,uCAAY;kCACV,CACA,CACP,CAAA;IACH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO;YAC1C,4BAAI,SAAS,EAAC,YAAY,qBAAoB;YAC9C,+BAAI,sBAAsB,CAAC,OAAO,CAAK,CACnC,CACP,CAAA;IACH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,oBAAC,SAAS,IAAC,KAAK,QAAC,SAAS,EAAC,iCAAiC,GAAG,CAC3D,CACP,CAAA;IACH,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB;YAC7B,8BAAM,SAAS,EAAC,mBAAmB;gBACjC,oBAAC,gBAAgB,IACf,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB,EAC9C,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,GAClB,CACG;YACP,6BACE,GAAG,EAAE,aAAa,EAClB,SAAS,EAAC,2CAA2C,EACrD,GAAG,EAAE,GAAG,GACR;YACF,oBAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAI,CACvD,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO;QAC1C,oBAAC,uBAAuB,OAAG,CACvB,CACP,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport SignatureCanvas from 'react-signature-canvas'\nimport useResizeObserver, { ObservedSize } from 'use-resize-observer'\nimport { FormTypes } from '@oneblink/types'\n\nimport scrollingService from '../services/scrolling-service'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport OnLoading from '../components/renderer/OnLoading'\nimport useAttachment from '../hooks/attachments/useAttachment'\nimport { FormElementBinaryStorageValue } from '../types/attachments'\nimport { prepareNewAttachment } from '../services/attachments'\nimport AttachmentStatus from '../components/renderer/attachments/AttachmentStatus'\nimport { canvasToBlob } from '../services/blob-utils'\nimport ImagePreviewUnavailable from '../components/renderer/attachments/ImagePreviewUnavailable'\nimport { FormElementValueChangeHandler } from '../types/form'\nimport useIsPageVisible from '../hooks/useIsPageVisible'\nimport ProgressBar from '../components/renderer/attachments/ProgressBar'\nimport { IsDirtyProps } from '../types/form'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DrawElement\n value: FormElementBinaryStorageValue\n onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementSignature({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n setIsDirty,\n isDirty,\n}: Props) {\n const isPageVisible = useIsPageVisible()\n\n const handleChange = React.useCallback<\n FormElementValueChangeHandler<FormElementBinaryStorageValue>\n >(\n (formElement, newValue) => {\n setIsDirty()\n onChange(formElement, newValue)\n },\n [onChange, setIsDirty],\n )\n\n return (\n <div className=\"cypress-signature-element\">\n <FormElementLabelContainer\n className=\"ob-signature\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"control\">\n {value ? (\n <SignatureDisplay\n element={element}\n value={value}\n onChange={handleChange}\n />\n ) : isPageVisible ? (\n <SignatureDrawing element={element} onChange={handleChange} />\n ) : null}\n </div>\n\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementSignature)\n\nconst SignatureDrawing = React.memo(function SignatureDrawing({\n element,\n onChange,\n}: {\n element: Props['element']\n onChange: Props['onChange']\n}) {\n const canvasRef = React.useRef<SignatureCanvas>(null)\n\n const [isEmpty, setIsEmpty] = React.useState(true)\n const [canvasDimensions, setCanvasDimensions] = React.useState<ObservedSize>({\n width: undefined,\n height: undefined,\n })\n\n const handleClear = React.useCallback(() => {\n if (canvasRef.current) {\n console.log('Clearing signature...')\n canvasRef.current.clear()\n }\n setIsEmpty(true)\n }, [])\n\n const handleDone = React.useCallback(async () => {\n if (!canvasRef.current) return\n const trimmedCanvas = canvasRef.current.getTrimmedCanvas()\n\n // Convert base64 data uri to blob and send it on its way\n const blob = await canvasToBlob(trimmedCanvas)\n onChange(element, {\n value: prepareNewAttachment(blob, 'signature.png', element),\n })\n }, [element, onChange])\n\n // HANDLING CANVAS CHANGE\n const handleEndDraw = React.useCallback(() => {\n if (window.cordova) {\n scrollingService.enableScrolling()\n }\n if (isEmpty) {\n setIsEmpty(false)\n }\n }, [isEmpty])\n\n const { ref } = useResizeObserver<HTMLDivElement>({\n onResize: setCanvasDimensions,\n })\n\n // REACTIVE DISABLING OF CANVAS\n React.useEffect(() => {\n if (!canvasRef.current) return\n if (element.readOnly) {\n canvasRef.current.off()\n } else {\n canvasRef.current.on()\n }\n }, [canvasRef, element.readOnly])\n\n return (\n <>\n <div ref={ref}>\n <SignatureCanvas\n ref={canvasRef}\n canvasProps={{\n ...canvasDimensions,\n className:\n 'input ob-signature__control cypress-signature-control signature-pad',\n // @ts-expect-error ???\n disabled: element.readOnly,\n }}\n onEnd={handleEndDraw}\n onBegin={\n window.cordova ? scrollingService.disableScrolling : undefined\n }\n />\n </div>\n\n <div className=\"buttons ob-buttons\">\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button__clear cypress-clear-signature\"\n onClick={handleClear}\n disabled={element.readOnly || isEmpty}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"button ob-button ob-button__done is-primary cypress-done-signature-button\"\n onClick={handleDone}\n disabled={element.readOnly || isEmpty}\n >\n Save Signature\n </button>\n </div>\n </>\n )\n})\n\nconst SignatureDisplay = React.memo(function SignatureDisplay({\n element,\n value,\n onChange,\n}: {\n element: Props['element']\n value: Props['value']\n onChange: Props['onChange']\n}) {\n const result = useAttachment(\n value,\n element,\n React.useCallback(\n (id, attachment) => {\n onChange(element, {\n value: attachment,\n })\n },\n [element, onChange],\n ),\n )\n\n const handleRetry = React.useMemo(() => {\n if (!value || typeof value !== 'object') return\n\n if (value.type === 'ERROR' && value.data) {\n return () => {\n onChange(element, {\n value: {\n type: 'NEW',\n _id: value._id,\n data: value.data,\n fileName: value.fileName,\n isPrivate: value.isPrivate,\n },\n })\n }\n }\n }, [element, onChange, value])\n\n return (\n <>\n <figure className=\"ob-figure\">\n <DisplayImage {...result} alt={`${element.label}: Signature`} />\n </figure>\n\n <div className=\"buttons ob-buttons\">\n {result.uploadErrorMessage && handleRetry && (\n <button\n type=\"button\"\n className=\"button ob-button ob-button__retry is-light cypress-retry-file-button\"\n onClick={handleRetry}\n >\n Retry\n </button>\n )}\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button__clear cypress-clear-signature\"\n onClick={() =>\n onChange(element, {\n value: undefined,\n })\n }\n disabled={element.readOnly}\n >\n Clear\n </button>\n </div>\n </>\n )\n})\n\nconst DisplayImage = React.memo(function DisplayImage({\n alt,\n uploadErrorMessage,\n isUploading,\n isLoadingAttachmentUrl,\n attachmentUrl,\n loadAttachmentUrlError,\n progress,\n}: ReturnType<typeof useAttachment> & {\n alt: string\n}) {\n if (uploadErrorMessage) {\n return (\n <div className=\"figure-content\" role=\"alert\">\n <h3 className=\"title is-3\">Upload Failed</h3>\n <p>\n Your signature failed to upload, please use the <b>Retry</b> or{' '}\n <b>Clear</b> buttons below.\n </p>\n </div>\n )\n }\n\n if (loadAttachmentUrlError) {\n return (\n <div className=\"figure-content\" role=\"alert\">\n <h3 className=\"title is-3\">Preview Failed</h3>\n <p>{loadAttachmentUrlError.message}</p>\n </div>\n )\n }\n\n if (isLoadingAttachmentUrl) {\n return (\n <div className=\"figure-content\">\n <OnLoading small className=\"cypress-signature-loading-image\" />\n </div>\n )\n }\n\n if (attachmentUrl) {\n return (\n <div className=\"figure-content\">\n <span className=\"ob-figure__status\">\n <AttachmentStatus\n isLoadingAttachmentUrl={isLoadingAttachmentUrl}\n loadAttachmentUrlError={loadAttachmentUrlError}\n isUploading={isUploading}\n attachmentUrl={attachmentUrl}\n progress={progress}\n />\n </span>\n <img\n src={attachmentUrl}\n className=\"cypress-signature-image ob-signature__img\"\n alt={alt}\n />\n <ProgressBar progress={progress} isShowing={isUploading} />\n </div>\n )\n }\n\n return (\n <div className=\"figure-content\" role=\"alert\">\n <ImagePreviewUnavailable />\n </div>\n )\n})\n"]}
1
+ {"version":3,"file":"FormElementSignature.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSignature.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,eAAe,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAG/C,OAAO,gBAAgB,MAAM,+BAA+B,CAAA;AAC5D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AACxF,OAAO,SAAS,MAAM,kCAAkC,CAAA;AACxD,OAAO,aAAa,MAAM,oCAAoC,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,gBAAgB,MAAM,qDAAqD,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,uBAAuB,MAAM,4DAA4D,CAAA;AAEhG,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;AACxD,OAAO,WAAW,MAAM,gDAAgD,CAAA;AAExE,OAAO,4BAA4B,MAAM,qDAAqD,CAAA;AAW9F,SAAS,oBAAoB,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,OAAO,GACD;IACN,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAGpC,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;QACxB,UAAU,EAAE,CAAA;QACZ,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAA;IAED,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,MAAC,yBAAyB,IACxB,SAAS,EAAC,cAAc,EACxB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,aAE1B,cAAK,SAAS,EAAC,SAAS,YACrB,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,gBAAgB,IACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,GACtB,CACH,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAClB,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAI,CAC/D,CAAC,CAAC,CAAC,IAAI,GACJ,EAEL,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAC/D,KAAC,4BAA4B,IAAC,OAAO,EAAE,iBAAiB,GAAI,CAC7D,IACyB,GACxB,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAE/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC5D,OAAO,EACP,QAAQ,GAIT;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAkB,IAAI,CAAC,CAAA;IAErD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAE5D;QACA,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACpC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC3B,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAA;QAE1D,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAA;QAC9C,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEvB,yBAAyB;IACzB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,gBAAgB,CAAC,eAAe,EAAE,CAAA;QACpC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE9C,iBAAiB,CAAiB;QAChC,uEAAuE;QACvE,GAAG;QACH,QAAQ,EAAE,mBAAmB;KAC9B,CAAC,CAAA;IAEF,+BAA+B;IAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEjC,OAAO,CACL,8BACE,cAAK,GAAG,EAAE,GAAG,YACX,KAAC,eAAe,IACd,GAAG,EAAE,SAAS,EACd,WAAW,EAAE;wBACX,GAAG,gBAAgB;wBACnB,SAAS,EACP,qEAAqE;wBACvE,uBAAuB;wBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,EACD,KAAK,EAAE,aAAa,EACpB,OAAO,EACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAEhE,GACE,EAEN,eAAK,SAAS,EAAC,oBAAoB,aACjC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oEAAoE,EAC9E,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,sBAG9B,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,2EAA2E,EACrF,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,+BAG9B,IACL,IACL,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC5D,OAAO,EACP,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,MAAM,GAAG,aAAa,CAC1B,KAAK,EACL,OAAO,EACP,KAAK,CAAC,WAAW,CACf,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,UAAU;SAClB,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpB,CACF,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAM;QAE/C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,GAAG,EAAE;gBACV,QAAQ,CAAC,OAAO,EAAE;oBAChB,KAAK,EAAE;wBACL,IAAI,EAAE,KAAK;wBACX,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC3B;iBACF,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAE9B,OAAO,CACL,8BACE,iBAAQ,SAAS,EAAC,WAAW,YAC3B,KAAC,YAAY,OAAK,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,aAAa,GAAI,GACzD,EAET,eAAK,SAAS,EAAC,oBAAoB,aAChC,MAAM,CAAC,kBAAkB,IAAI,WAAW,IAAI,CAC3C,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sEAAsE,EAChF,OAAO,EAAE,WAAW,sBAGb,CACV,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oEAAoE,EAC9E,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC,OAAO,EAAE;4BAChB,KAAK,EAAE,SAAS;yBACjB,CAAC,EAEJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,sBAGnB,IACL,IACL,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,EACpD,GAAG,EACH,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,QAAQ,GAGT;IACC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CACL,eAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,aAC1C,aAAI,SAAS,EAAC,YAAY,8BAAmB,EAC7C,4EACkD,gCAAY,SAAI,GAAG,EACnE,gCAAY,uBACV,IACA,CACP,CAAA;IACH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,eAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,aAC1C,aAAI,SAAS,EAAC,YAAY,+BAAoB,EAC9C,sBAAI,sBAAsB,CAAC,OAAO,GAAK,IACnC,CACP,CAAA;IACH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,SAAS,IAAC,KAAK,QAAC,SAAS,EAAC,iCAAiC,GAAG,GAC3D,CACP,CAAA;IACH,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,SAAS,EAAC,mBAAmB,YACjC,KAAC,gBAAgB,IACf,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB,EAC9C,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,GAClB,GACG,EACP,cACE,GAAG,EAAE,aAAa,EAClB,SAAS,EAAC,2CAA2C,EACrD,GAAG,EAAE,GAAG,GACR,EACF,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAI,IACvD,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,YAC1C,KAAC,uBAAuB,KAAG,GACvB,CACP,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport SignatureCanvas from 'react-signature-canvas'\nimport { useResizeObserver } from 'usehooks-ts'\nimport { FormTypes } from '@oneblink/types'\n\nimport scrollingService from '../services/scrolling-service'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport OnLoading from '../components/renderer/OnLoading'\nimport useAttachment from '../hooks/attachments/useAttachment'\nimport { FormElementBinaryStorageValue } from '../types/attachments'\nimport { prepareNewAttachment } from '../services/attachments'\nimport AttachmentStatus from '../components/renderer/attachments/AttachmentStatus'\nimport { canvasToBlob } from '../services/blob-utils'\nimport ImagePreviewUnavailable from '../components/renderer/attachments/ImagePreviewUnavailable'\nimport { FormElementValueChangeHandler } from '../types/form'\nimport useIsPageVisible from '../hooks/useIsPageVisible'\nimport ProgressBar from '../components/renderer/attachments/ProgressBar'\nimport { IsDirtyProps } from '../types/form'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DrawElement\n value: FormElementBinaryStorageValue\n onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementSignature({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n setIsDirty,\n isDirty,\n}: Props) {\n const isPageVisible = useIsPageVisible()\n\n const handleChange = React.useCallback<\n FormElementValueChangeHandler<FormElementBinaryStorageValue>\n >(\n (formElement, newValue) => {\n setIsDirty()\n onChange(formElement, newValue)\n },\n [onChange, setIsDirty],\n )\n\n return (\n <div className=\"cypress-signature-element\">\n <FormElementLabelContainer\n className=\"ob-signature\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"control\">\n {value ? (\n <SignatureDisplay\n element={element}\n value={value}\n onChange={handleChange}\n />\n ) : isPageVisible ? (\n <SignatureDrawing element={element} onChange={handleChange} />\n ) : null}\n </div>\n\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementSignature)\n\nconst SignatureDrawing = React.memo(function SignatureDrawing({\n element,\n onChange,\n}: {\n element: Props['element']\n onChange: Props['onChange']\n}) {\n const canvasRef = React.useRef<SignatureCanvas>(null)\n\n const [isEmpty, setIsEmpty] = React.useState(true)\n const [canvasDimensions, setCanvasDimensions] = React.useState<\n React.CanvasHTMLAttributes<HTMLCanvasElement>\n >({\n width: undefined,\n height: undefined,\n })\n\n const handleClear = React.useCallback(() => {\n if (canvasRef.current) {\n console.log('Clearing signature...')\n canvasRef.current.clear()\n }\n setIsEmpty(true)\n }, [])\n\n const handleDone = React.useCallback(async () => {\n if (!canvasRef.current) return\n const trimmedCanvas = canvasRef.current.getTrimmedCanvas()\n\n // Convert base64 data uri to blob and send it on its way\n const blob = await canvasToBlob(trimmedCanvas)\n onChange(element, {\n value: prepareNewAttachment(blob, 'signature.png', element),\n })\n }, [element, onChange])\n\n // HANDLING CANVAS CHANGE\n const handleEndDraw = React.useCallback(() => {\n if (window.cordova) {\n scrollingService.enableScrolling()\n }\n if (isEmpty) {\n setIsEmpty(false)\n }\n }, [isEmpty])\n\n const ref = React.useRef<HTMLDivElement>(null)\n\n useResizeObserver<HTMLDivElement>({\n // @ts-expect-error https://github.com/juliencrn/usehooks-ts/issues/663\n ref,\n onResize: setCanvasDimensions,\n })\n\n // REACTIVE DISABLING OF CANVAS\n React.useEffect(() => {\n if (!canvasRef.current) return\n if (element.readOnly) {\n canvasRef.current.off()\n } else {\n canvasRef.current.on()\n }\n }, [canvasRef, element.readOnly])\n\n return (\n <>\n <div ref={ref}>\n <SignatureCanvas\n ref={canvasRef}\n canvasProps={{\n ...canvasDimensions,\n className:\n 'input ob-signature__control cypress-signature-control signature-pad',\n // @ts-expect-error ???\n disabled: element.readOnly,\n }}\n onEnd={handleEndDraw}\n onBegin={\n window.cordova ? scrollingService.disableScrolling : undefined\n }\n />\n </div>\n\n <div className=\"buttons ob-buttons\">\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button__clear cypress-clear-signature\"\n onClick={handleClear}\n disabled={element.readOnly || isEmpty}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"button ob-button ob-button__done is-primary cypress-done-signature-button\"\n onClick={handleDone}\n disabled={element.readOnly || isEmpty}\n >\n Save Signature\n </button>\n </div>\n </>\n )\n})\n\nconst SignatureDisplay = React.memo(function SignatureDisplay({\n element,\n value,\n onChange,\n}: {\n element: Props['element']\n value: Props['value']\n onChange: Props['onChange']\n}) {\n const result = useAttachment(\n value,\n element,\n React.useCallback(\n (id, attachment) => {\n onChange(element, {\n value: attachment,\n })\n },\n [element, onChange],\n ),\n )\n\n const handleRetry = React.useMemo(() => {\n if (!value || typeof value !== 'object') return\n\n if (value.type === 'ERROR' && value.data) {\n return () => {\n onChange(element, {\n value: {\n type: 'NEW',\n _id: value._id,\n data: value.data,\n fileName: value.fileName,\n isPrivate: value.isPrivate,\n },\n })\n }\n }\n }, [element, onChange, value])\n\n return (\n <>\n <figure className=\"ob-figure\">\n <DisplayImage {...result} alt={`${element.label}: Signature`} />\n </figure>\n\n <div className=\"buttons ob-buttons\">\n {result.uploadErrorMessage && handleRetry && (\n <button\n type=\"button\"\n className=\"button ob-button ob-button__retry is-light cypress-retry-file-button\"\n onClick={handleRetry}\n >\n Retry\n </button>\n )}\n <button\n type=\"button\"\n className=\"button ob-button is-light ob-button__clear cypress-clear-signature\"\n onClick={() =>\n onChange(element, {\n value: undefined,\n })\n }\n disabled={element.readOnly}\n >\n Clear\n </button>\n </div>\n </>\n )\n})\n\nconst DisplayImage = React.memo(function DisplayImage({\n alt,\n uploadErrorMessage,\n isUploading,\n isLoadingAttachmentUrl,\n attachmentUrl,\n loadAttachmentUrlError,\n progress,\n}: ReturnType<typeof useAttachment> & {\n alt: string\n}) {\n if (uploadErrorMessage) {\n return (\n <div className=\"figure-content\" role=\"alert\">\n <h3 className=\"title is-3\">Upload Failed</h3>\n <p>\n Your signature failed to upload, please use the <b>Retry</b> or{' '}\n <b>Clear</b> buttons below.\n </p>\n </div>\n )\n }\n\n if (loadAttachmentUrlError) {\n return (\n <div className=\"figure-content\" role=\"alert\">\n <h3 className=\"title is-3\">Preview Failed</h3>\n <p>{loadAttachmentUrlError.message}</p>\n </div>\n )\n }\n\n if (isLoadingAttachmentUrl) {\n return (\n <div className=\"figure-content\">\n <OnLoading small className=\"cypress-signature-loading-image\" />\n </div>\n )\n }\n\n if (attachmentUrl) {\n return (\n <div className=\"figure-content\">\n <span className=\"ob-figure__status\">\n <AttachmentStatus\n isLoadingAttachmentUrl={isLoadingAttachmentUrl}\n loadAttachmentUrlError={loadAttachmentUrlError}\n isUploading={isUploading}\n attachmentUrl={attachmentUrl}\n progress={progress}\n />\n </span>\n <img\n src={attachmentUrl}\n className=\"cypress-signature-image ob-signature__img\"\n alt={alt}\n />\n <ProgressBar progress={progress} isShowing={isUploading} />\n </div>\n )\n }\n\n return (\n <div className=\"figure-content\" role=\"alert\">\n <ImagePreviewUnavailable />\n </div>\n )\n})\n"]}
@@ -6,6 +6,6 @@ type Props = {
6
6
  onChange: FormElementValueChangeHandler;
7
7
  value: unknown;
8
8
  };
9
- declare function FormElementSummary({ element, onChange, value }: Props): React.JSX.Element;
9
+ declare function FormElementSummary({ element, onChange, value }: Props): import("react/jsx-runtime").JSX.Element;
10
10
  declare const _default: React.MemoExoticComponent<typeof FormElementSummary>;
11
11
  export default _default;
@@ -1,5 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
- import { localisationService } from '@oneblink/apps';
3
+ import { localisationService } from '../apps';
3
4
  import { useFormSubmissionModelParent } from '../hooks/useFormSubmissionModelContext';
4
5
  import useFlattenElements from '../hooks/useFlattenElementsContext';
5
6
  const arraysAreEqual = (a, b) => {
@@ -45,7 +46,9 @@ function FormElementSummary({ element, onChange, value }) {
45
46
  // to find the summary elements. Need to start a new array for
46
47
  // this structure and look at each entry in the repeatable set
47
48
  for (const entry of formElementValue) {
48
- const repeatableSetSummaryValues = formElement.elements.reduce((partialSummary, formElement) => reducer(partialSummary, formElement,
49
+ const repeatableSetSummaryValues = formElement.elements.reduce((partialSummary, formElement) =>
50
+ // eslint-disable-next-line react-hooks/immutability
51
+ reducer(partialSummary, formElement,
49
52
  // Pleasing TypeScript
50
53
  entry instanceof Object ? entry : {}), []);
51
54
  if (repeatableSetSummaryValues.length) {
@@ -152,12 +155,12 @@ function FormElementSummary({ element, onChange, value }) {
152
155
  reducer,
153
156
  value,
154
157
  ]);
155
- return (React.createElement("div", { className: "ob-form__element ob-summary cypress-summary-result " }, !!value && Array.isArray(value) && (React.createElement(SummaryResult, { results: value }))));
158
+ return (_jsx("div", { className: "ob-form__element ob-summary cypress-summary-result ", children: !!value && Array.isArray(value) && (_jsx(SummaryResult, { results: value })) }));
156
159
  }
157
160
  const SummaryResult = React.memo(function SummaryResult({ results }) {
158
- return (React.createElement(React.Fragment, null, results.map((result, i) => {
159
- return (React.createElement("div", { key: `${result.toString()}-${i}`, className: "ob-summary__result-container" }, typeof result === 'string' ? (React.createElement("p", { className: "ob-summary__result has-line-breaks cypress-summary-result-text" }, result)) : (React.createElement(SummaryResult, { results: result }))));
160
- })));
161
+ return (_jsx(_Fragment, { children: results.map((result, i) => {
162
+ return (_jsx("div", { className: "ob-summary__result-container", children: typeof result === 'string' ? (_jsx("p", { className: "ob-summary__result has-line-breaks cypress-summary-result-text", children: result })) : (_jsx(SummaryResult, { results: result })) }, `${result.toString()}-${i}`));
163
+ }) }));
161
164
  });
162
165
  export default React.memo(FormElementSummary);
163
166
  //# sourceMappingURL=FormElementSummary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementSummary.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSummary.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '@oneblink/apps'\n\nimport { useFormSubmissionModelParent } from '../hooks/useFormSubmissionModelContext'\nimport useFlattenElements from '../hooks/useFlattenElementsContext'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { FormElementValueChangeHandler } from '../types/form'\ntype Props = {\n element: FormTypes.SummaryElement\n onChange: FormElementValueChangeHandler\n value: unknown\n}\n\nconst arraysAreEqual = (a: unknown[], b: unknown[]) => {\n if (!Array.isArray(a) || !Array.isArray(b)) {\n if (a !== b) return false\n return true\n }\n if (a.length !== b.length) return false\n\n for (let i = 0; i < a.length; i++) {\n if (Array.isArray(a[i]) && Array.isArray(b[i])) {\n const areEqual = arraysAreEqual(a[i] as unknown[], b[i] as unknown[])\n if (!areEqual) return false\n continue\n }\n if (a[i] !== b[i]) return false\n }\n return true\n}\nfunction FormElementSummary({ element, onChange, value }: Props) {\n const { formSubmissionModel } = useFormSubmissionModelParent()\n const flattenedElements = useFlattenElements()\n\n const reducer = React.useCallback(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n submission: SubmissionTypes.S3SubmissionData['submission'],\n ) => {\n if (!('name' in formElement)) return partialSummary\n if (\n formElement.type !== 'repeatableSet' &&\n formElement.type !== 'form' &&\n !element.elementIds.some((elementId) => elementId === formElement.id)\n ) {\n return partialSummary\n }\n\n const formElementValue = submission[formElement.name]\n if (!formElementValue && formElementValue !== 0) {\n return partialSummary\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(formElementValue)) return partialSummary\n // If we found a repeatable set, look through child elements\n // to find the summary elements. Need to start a new array for\n // this structure and look at each entry in the repeatable set\n for (const entry of formElementValue) {\n const repeatableSetSummaryValues = formElement.elements.reduce(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n ) =>\n reducer(\n partialSummary,\n formElement,\n // Pleasing TypeScript\n entry instanceof Object ? entry : {},\n ),\n [],\n )\n if (repeatableSetSummaryValues.length) {\n partialSummary.push(repeatableSetSummaryValues)\n }\n }\n break\n }\n case 'form': {\n const formSummaryValues = (formElement.elements || []).reduce(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n ) =>\n reducer(\n partialSummary,\n formElement,\n // @ts-expect-error Pleasing TypeScript\n formElementValue instanceof Object ? formElementValue : {},\n ),\n [],\n )\n if (formSummaryValues.length) {\n partialSummary.push(formSummaryValues)\n }\n\n break\n }\n case 'select':\n case 'autocomplete':\n case 'radio':\n case 'checkboxes': {\n const optionValues = []\n if (Array.isArray(formElementValue)) {\n optionValues.push(...formElementValue)\n } else {\n optionValues.push(formElementValue)\n }\n if (Array.isArray(formElement.options)) {\n partialSummary.push(\n ...optionValues.reduce((optionLabels, optionValue) => {\n const option = formElement.options?.find(\n ({ value }: FormTypes.ChoiceElementOption) =>\n optionValue === value,\n )\n if (option) {\n optionLabels.push(option.label)\n }\n return optionLabels\n }, []),\n )\n }\n break\n }\n case 'date': {\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: formElementValue as string,\n })\n if (date) {\n partialSummary.push(localisationService.formatDate(date))\n }\n break\n }\n case 'datetime': {\n if (typeof formElementValue !== 'string') return partialSummary\n partialSummary.push(\n localisationService.formatDatetime(new Date(formElementValue)),\n )\n break\n }\n case 'time': {\n if (typeof formElementValue !== 'string') return partialSummary\n partialSummary.push(\n localisationService.formatTime(new Date(formElementValue)),\n )\n break\n }\n default: {\n // Pleasing TypeScript WHILE COVERING ALL BASES\n if (\n typeof formElementValue !== 'string' &&\n typeof formElementValue !== 'object' &&\n typeof formElementValue !== 'number' &&\n typeof formElementValue !== 'function' &&\n typeof formElementValue !== 'boolean'\n ) {\n return partialSummary\n }\n\n partialSummary.push(formElementValue.toString())\n }\n }\n return partialSummary\n },\n [element.elementIds],\n )\n\n // MODEL LISTENER\n React.useEffect(() => {\n const summary = flattenedElements.reduce<FormElementSummaryResults>(\n (partialSummary, formElement) => {\n return reducer(partialSummary, formElement, formSubmissionModel)\n },\n\n [],\n )\n\n if (value === undefined) {\n if (!summary.length) return\n }\n if (arraysAreEqual(value as FormElementSummaryResults, summary)) {\n return\n }\n if (summary.length) {\n onChange(element, {\n value: summary,\n })\n } else {\n onChange(element, {\n value: undefined,\n })\n }\n }, [\n element,\n flattenedElements,\n formSubmissionModel,\n onChange,\n reducer,\n value,\n ])\n\n return (\n <div className=\"ob-form__element ob-summary cypress-summary-result \">\n {!!value && Array.isArray(value) && (\n <SummaryResult results={value}></SummaryResult>\n )}\n </div>\n )\n}\n\ntype FormElementSummaryResults = Array<string | FormElementSummaryResults>\ntype FormElementSummaryResultProps = {\n results: FormElementSummaryResults\n}\n\nconst SummaryResult = React.memo<FormElementSummaryResultProps>(\n function SummaryResult({ results }) {\n return (\n <>\n {results.map((result, i) => {\n return (\n <div\n key={`${result.toString()}-${i}`}\n className=\"ob-summary__result-container\"\n >\n {typeof result === 'string' ? (\n <p className=\"ob-summary__result has-line-breaks cypress-summary-result-text\">\n {result}\n </p>\n ) : (\n <SummaryResult results={result}></SummaryResult>\n )}\n </div>\n )\n })}\n </>\n )\n },\n)\n\nexport default React.memo(FormElementSummary)\n"]}
1
+ {"version":3,"file":"FormElementSummary.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSummary.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '../apps'\n\nimport { useFormSubmissionModelParent } from '../hooks/useFormSubmissionModelContext'\nimport useFlattenElements from '../hooks/useFlattenElementsContext'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { FormElementValueChangeHandler } from '../types/form'\ntype Props = {\n element: FormTypes.SummaryElement\n onChange: FormElementValueChangeHandler\n value: unknown\n}\n\nconst arraysAreEqual = (a: unknown[], b: unknown[]) => {\n if (!Array.isArray(a) || !Array.isArray(b)) {\n if (a !== b) return false\n return true\n }\n if (a.length !== b.length) return false\n\n for (let i = 0; i < a.length; i++) {\n if (Array.isArray(a[i]) && Array.isArray(b[i])) {\n const areEqual = arraysAreEqual(a[i] as unknown[], b[i] as unknown[])\n if (!areEqual) return false\n continue\n }\n if (a[i] !== b[i]) return false\n }\n return true\n}\nfunction FormElementSummary({ element, onChange, value }: Props) {\n const { formSubmissionModel } = useFormSubmissionModelParent()\n const flattenedElements = useFlattenElements()\n\n const reducer = React.useCallback(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n submission: SubmissionTypes.S3SubmissionData['submission'],\n ) => {\n if (!('name' in formElement)) return partialSummary\n if (\n formElement.type !== 'repeatableSet' &&\n formElement.type !== 'form' &&\n !element.elementIds.some((elementId) => elementId === formElement.id)\n ) {\n return partialSummary\n }\n\n const formElementValue = submission[formElement.name]\n if (!formElementValue && formElementValue !== 0) {\n return partialSummary\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(formElementValue)) return partialSummary\n // If we found a repeatable set, look through child elements\n // to find the summary elements. Need to start a new array for\n // this structure and look at each entry in the repeatable set\n for (const entry of formElementValue) {\n const repeatableSetSummaryValues = formElement.elements.reduce(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n ) =>\n // eslint-disable-next-line react-hooks/immutability\n reducer(\n partialSummary,\n formElement,\n // Pleasing TypeScript\n entry instanceof Object ? entry : {},\n ),\n [],\n )\n if (repeatableSetSummaryValues.length) {\n partialSummary.push(repeatableSetSummaryValues)\n }\n }\n break\n }\n case 'form': {\n const formSummaryValues = (formElement.elements || []).reduce(\n (\n partialSummary: FormElementSummaryResults,\n formElement: FormTypes.FormElement,\n ) =>\n reducer(\n partialSummary,\n formElement,\n // @ts-expect-error Pleasing TypeScript\n formElementValue instanceof Object ? formElementValue : {},\n ),\n [],\n )\n if (formSummaryValues.length) {\n partialSummary.push(formSummaryValues)\n }\n\n break\n }\n case 'select':\n case 'autocomplete':\n case 'radio':\n case 'checkboxes': {\n const optionValues = []\n if (Array.isArray(formElementValue)) {\n optionValues.push(...formElementValue)\n } else {\n optionValues.push(formElementValue)\n }\n if (Array.isArray(formElement.options)) {\n partialSummary.push(\n ...optionValues.reduce((optionLabels, optionValue) => {\n const option = formElement.options?.find(\n ({ value }: FormTypes.ChoiceElementOption) =>\n optionValue === value,\n )\n if (option) {\n optionLabels.push(option.label)\n }\n return optionLabels\n }, []),\n )\n }\n break\n }\n case 'date': {\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: formElementValue as string,\n })\n if (date) {\n partialSummary.push(localisationService.formatDate(date))\n }\n break\n }\n case 'datetime': {\n if (typeof formElementValue !== 'string') return partialSummary\n partialSummary.push(\n localisationService.formatDatetime(new Date(formElementValue)),\n )\n break\n }\n case 'time': {\n if (typeof formElementValue !== 'string') return partialSummary\n partialSummary.push(\n localisationService.formatTime(new Date(formElementValue)),\n )\n break\n }\n default: {\n // Pleasing TypeScript WHILE COVERING ALL BASES\n if (\n typeof formElementValue !== 'string' &&\n typeof formElementValue !== 'object' &&\n typeof formElementValue !== 'number' &&\n typeof formElementValue !== 'function' &&\n typeof formElementValue !== 'boolean'\n ) {\n return partialSummary\n }\n\n partialSummary.push(formElementValue.toString())\n }\n }\n return partialSummary\n },\n [element.elementIds],\n )\n\n // MODEL LISTENER\n React.useEffect(() => {\n const summary = flattenedElements.reduce<FormElementSummaryResults>(\n (partialSummary, formElement) => {\n return reducer(partialSummary, formElement, formSubmissionModel)\n },\n\n [],\n )\n\n if (value === undefined) {\n if (!summary.length) return\n }\n if (arraysAreEqual(value as FormElementSummaryResults, summary)) {\n return\n }\n if (summary.length) {\n onChange(element, {\n value: summary,\n })\n } else {\n onChange(element, {\n value: undefined,\n })\n }\n }, [\n element,\n flattenedElements,\n formSubmissionModel,\n onChange,\n reducer,\n value,\n ])\n\n return (\n <div className=\"ob-form__element ob-summary cypress-summary-result \">\n {!!value && Array.isArray(value) && (\n <SummaryResult results={value}></SummaryResult>\n )}\n </div>\n )\n}\n\ntype FormElementSummaryResults = Array<string | FormElementSummaryResults>\ntype FormElementSummaryResultProps = {\n results: FormElementSummaryResults\n}\n\nconst SummaryResult = React.memo<FormElementSummaryResultProps>(\n function SummaryResult({ results }) {\n return (\n <>\n {results.map((result, i) => {\n return (\n <div\n key={`${result.toString()}-${i}`}\n className=\"ob-summary__result-container\"\n >\n {typeof result === 'string' ? (\n <p className=\"ob-summary__result has-line-breaks cypress-summary-result-text\">\n {result}\n </p>\n ) : (\n <SummaryResult results={result}></SummaryResult>\n )}\n </div>\n )\n })}\n </>\n )\n },\n)\n\nexport default React.memo(FormElementSummary)\n"]}
@@ -10,6 +10,6 @@ type Props = {
10
10
  validationMessage: string | undefined;
11
11
  autocompleteAttributes?: string;
12
12
  } & IsDirtyProps;
13
- declare function FormElementTelephone({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): React.JSX.Element;
13
+ declare function FormElementTelephone({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
14
14
  declare const _default: React.MemoExoticComponent<typeof FormElementTelephone>;
15
15
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import CopyToClipboardButton from '../components/renderer/CopyToClipboardButton';
3
4
  import LookupButton from '../components/renderer/LookupButton';
@@ -11,19 +12,9 @@ function FormElementTelephone({ id, element, value, onChange, validationMessage,
11
12
  const text = typeof value === 'string' ? value : '';
12
13
  const { isLookingUp } = React.useContext(LookupNotificationContext);
13
14
  const isDisplayingValidationMessage = (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp;
14
- return (React.createElement("div", { className: "cypress-telephone-element" },
15
- React.createElement(FormElementLabelContainer, { className: "ob-telephone", id: id, element: element, required: element.required },
16
- React.createElement("div", { className: "field has-addons" },
17
- React.createElement("div", { className: "control is-expanded has-icons-right" },
18
- React.createElement("input", { type: "tel", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-telephone-control", value: text, onChange: (e) => onChange(element, {
19
- value: e.target.value || undefined,
20
- }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required }),
21
- React.createElement("span", { className: "ob-input-icon icon is-small is-right" },
22
- React.createElement(MaterialIcon, { className: "is-size-5" }, "phone"))),
23
- !!element.readOnly && !!value && (React.createElement("div", { className: "control" },
24
- React.createElement(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }))),
25
- React.createElement(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })),
26
- isDisplayingValidationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })))));
15
+ return (_jsx("div", { className: "cypress-telephone-element", children: _jsxs(FormElementLabelContainer, { className: "ob-telephone", id: id, element: element, required: element.required, children: [_jsxs("div", { className: "field has-addons", children: [_jsxs("div", { className: "control is-expanded has-icons-right", children: [_jsx("input", { type: "tel", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-telephone-control", value: text, onChange: (e) => onChange(element, {
16
+ value: e.target.value || undefined,
17
+ }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required }), _jsx("span", { className: "ob-input-icon icon is-small is-right", children: _jsx(MaterialIcon, { className: "is-size-5", children: "phone" }) })] }), !!element.readOnly && !!value && (_jsx("div", { className: "control", children: _jsx(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }) })), _jsx(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })] }), isDisplayingValidationMessage && (_jsx(FormElementValidationMessage, { message: validationMessage }))] }) }));
27
18
  }
28
19
  export default React.memo(FormElementTelephone);
29
20
  //# sourceMappingURL=FormElementTelephone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementTelephone.js","sourceRoot":"","sources":["../../src/form-elements/FormElementTelephone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,qBAAqB,MAAM,8CAA8C,CAAA;AAChF,OAAO,YAAY,MAAM,qCAAqC,CAAA;AAE9D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AAExF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,yBAAyB,MAAM,oCAAoC,CAAA;AAC1E,OAAO,YAAY,MAAM,4BAA4B,CAAA;AACrD,OAAO,4BAA4B,MAAM,qDAAqD,CAAA;AAY9F,SAAS,oBAAoB,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,sBAAsB,GAChB;IACN,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnD,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAA;IACnE,MAAM,6BAA6B,GACjC,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAA;IAE9E,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,oBAAC,yBAAyB,IACxB,SAAS,EAAC,cAAc,EACxB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAE1B,6BAAK,SAAS,EAAC,kBAAkB;gBAC/B,6BAAK,SAAS,EAAC,qCAAqC;oBAClD,+BACE,IAAI,EAAC,KAAK,EACV,WAAW,EAAE,OAAO,CAAC,gBAAgB,EACrC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAC,0CAA0C,EACpD,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,QAAQ,CAAC,OAAO,EAAE;4BAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;yBACnC,CAAC,EAEJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,MAAM,EAAE,UAAU,sBACA,eAAe,EACjC,YAAY,EAAE,sBAAsB,mBACrB,OAAO,CAAC,QAAQ,GAC/B;oBACF,8BAAM,SAAS,EAAC,sCAAsC;wBACpD,oBAAC,YAAY,IAAC,SAAS,EAAC,WAAW,YAAqB,CACnD,CACH;gBACL,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAChC,6BAAK,SAAS,EAAC,SAAS;oBACtB,oBAAC,qBAAqB,IACpB,SAAS,EAAC,oEAAoE,EAC9E,IAAI,EAAE,IAAI,GACV,CACE,CACP;gBACD,oBAAC,YAAY,IACX,aAAa,QACb,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,OAAO,CAAC,YAAY,GACxC,CACE;YAEL,6BAA6B,IAAI,CAChC,oBAAC,4BAA4B,IAAC,OAAO,EAAE,iBAAiB,GAAI,CAC7D,CACyB,CACxB,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport MaterialIcon from '../components/MaterialIcon'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.TelephoneElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementTelephone({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-telephone-element\">\n <FormElementLabelContainer\n className=\"ob-telephone\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <div className=\"control is-expanded has-icons-right\">\n <input\n type=\"tel\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-telephone-control\"\n value={text}\n onChange={(e) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n <span className=\"ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5\">phone</MaterialIcon>\n </span>\n </div>\n {!!element.readOnly && !!value && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementTelephone)\n"]}
1
+ {"version":3,"file":"FormElementTelephone.js","sourceRoot":"","sources":["../../src/form-elements/FormElementTelephone.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,qBAAqB,MAAM,8CAA8C,CAAA;AAChF,OAAO,YAAY,MAAM,qCAAqC,CAAA;AAE9D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AAExF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,yBAAyB,MAAM,oCAAoC,CAAA;AAC1E,OAAO,YAAY,MAAM,4BAA4B,CAAA;AACrD,OAAO,4BAA4B,MAAM,qDAAqD,CAAA;AAY9F,SAAS,oBAAoB,CAAC,EAC5B,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,EACP,UAAU,EACV,sBAAsB,GAChB;IACN,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnD,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAA;IACnE,MAAM,6BAA6B,GACjC,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAA;IAE9E,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,MAAC,yBAAyB,IACxB,SAAS,EAAC,cAAc,EACxB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,aAE1B,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAK,SAAS,EAAC,qCAAqC,aAClD,gBACE,IAAI,EAAC,KAAK,EACV,WAAW,EAAE,OAAO,CAAC,gBAAgB,EACrC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAC,0CAA0C,EACpD,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,QAAQ,CAAC,OAAO,EAAE;wCAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;qCACnC,CAAC,EAEJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,MAAM,EAAE,UAAU,sBACA,eAAe,EACjC,YAAY,EAAE,sBAAsB,mBACrB,OAAO,CAAC,QAAQ,GAC/B,EACF,eAAM,SAAS,EAAC,sCAAsC,YACpD,KAAC,YAAY,IAAC,SAAS,EAAC,WAAW,sBAAqB,GACnD,IACH,EACL,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAChC,cAAK,SAAS,EAAC,SAAS,YACtB,KAAC,qBAAqB,IACpB,SAAS,EAAC,oEAAoE,EAC9E,IAAI,EAAE,IAAI,GACV,GACE,CACP,EACD,KAAC,YAAY,IACX,aAAa,QACb,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,OAAO,CAAC,YAAY,GACxC,IACE,EAEL,6BAA6B,IAAI,CAChC,KAAC,4BAA4B,IAAC,OAAO,EAAE,iBAAiB,GAAI,CAC7D,IACyB,GACxB,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport MaterialIcon from '../components/MaterialIcon'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.TelephoneElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementTelephone({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-telephone-element\">\n <FormElementLabelContainer\n className=\"ob-telephone\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <div className=\"control is-expanded has-icons-right\">\n <input\n type=\"tel\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-telephone-control\"\n value={text}\n onChange={(e) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n <span className=\"ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5\">phone</MaterialIcon>\n </span>\n </div>\n {!!element.readOnly && !!value && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementTelephone)\n"]}
@@ -10,6 +10,6 @@ type Props = {
10
10
  validationMessage: string | undefined;
11
11
  autocompleteAttributes?: string;
12
12
  } & IsDirtyProps;
13
- declare function FormElementText({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): React.JSX.Element;
13
+ declare function FormElementText({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
14
14
  declare const _default: React.MemoExoticComponent<typeof FormElementText>;
15
15
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import CopyToClipboardButton from '../components/renderer/CopyToClipboardButton';
@@ -11,27 +12,11 @@ function FormElementText({ id, element, value, onChange, validationMessage, disp
11
12
  const text = typeof value === 'string' ? value : '';
12
13
  const { isLookingUp } = React.useContext(LookupNotificationContext);
13
14
  const isDisplayingValidationMessage = (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp;
14
- return (React.createElement("div", { className: "cypress-text-element" },
15
- React.createElement(FormElementLabelContainer, { className: "ob-text", id: id, element: element, required: element.required },
16
- React.createElement("div", { className: "field has-addons" },
17
- React.createElement("div", { className: "control is-expanded" },
18
- React.createElement("input", { type: "text", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-text-control", value: text, onChange: (e) => onChange(element, {
19
- value: e.target.value || undefined,
20
- }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required })),
21
- !!element.readOnly && !!value && (React.createElement("div", { className: "control" },
22
- React.createElement(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }))),
23
- React.createElement(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })),
24
- (isDisplayingValidationMessage || !!element.maxLength) && (React.createElement("div", { className: "has-margin-top-8" },
25
- React.createElement("div", { className: "is-flex is-justify-content-space-between" },
26
- isDisplayingValidationMessage ? (React.createElement("div", { role: "alert", className: "has-text-danger ob-error__text cypress-validation-message" },
27
- React.createElement(ValidationIcon, null),
28
- validationMessage)) : (React.createElement("div", null)),
29
- !!element.maxLength && (React.createElement("div", { className: clsx('ob-max-length__text cypress-max-length-message', {
30
- 'has-text-danger': text.length > element.maxLength,
31
- }) },
32
- text.length,
33
- " / ",
34
- element.maxLength))))))));
15
+ return (_jsx("div", { className: "cypress-text-element", children: _jsxs(FormElementLabelContainer, { className: "ob-text", id: id, element: element, required: element.required, children: [_jsxs("div", { className: "field has-addons", children: [_jsx("div", { className: "control is-expanded", children: _jsx("input", { type: "text", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-text-control", value: text, onChange: (e) => onChange(element, {
16
+ value: e.target.value || undefined,
17
+ }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required }) }), !!element.readOnly && !!value && (_jsx("div", { className: "control", children: _jsx(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }) })), _jsx(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })] }), (isDisplayingValidationMessage || !!element.maxLength) && (_jsx("div", { className: "has-margin-top-8", children: _jsxs("div", { className: "is-flex is-justify-content-space-between", children: [isDisplayingValidationMessage ? (_jsxs("div", { role: "alert", className: "has-text-danger ob-error__text cypress-validation-message", children: [_jsx(ValidationIcon, {}), validationMessage] })) : (_jsx("div", {})), !!element.maxLength && (_jsxs("div", { className: clsx('ob-max-length__text cypress-max-length-message', {
18
+ 'has-text-danger': text.length > element.maxLength,
19
+ }), children: [text.length, " / ", element.maxLength] }))] }) }))] }) }));
35
20
  }
36
21
  export default React.memo(FormElementText);
37
22
  //# sourceMappingURL=FormElementText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementText.js","sourceRoot":"","sources":["../../src/form-elements/FormElementText.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ValidationIcon } from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.TextElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementText({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-text-element\">\n <FormElementLabelContainer\n className=\"ob-text\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <div className=\"control is-expanded\">\n <input\n type=\"text\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-text-control\"\n value={text}\n onChange={(e) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n </div>\n {!!element.readOnly && !!value && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n {(isDisplayingValidationMessage || !!element.maxLength) && (\n <div className=\"has-margin-top-8\">\n <div className=\"is-flex is-justify-content-space-between\">\n {isDisplayingValidationMessage ? (\n <div\n role=\"alert\"\n className=\"has-text-danger ob-error__text cypress-validation-message\"\n >\n <ValidationIcon />\n {validationMessage}\n </div>\n ) : (\n <div />\n )}\n {!!element.maxLength && (\n <div\n className={clsx(\n 'ob-max-length__text cypress-max-length-message',\n {\n 'has-text-danger': text.length > element.maxLength,\n },\n )}\n >\n {text.length} / {element.maxLength}\n </div>\n )}\n </div>\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementText)\n"]}
1
+ {"version":3,"file":"FormElementText.js","sourceRoot":"","sources":["../../src/form-elements/FormElementText.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ValidationIcon } from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.TextElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementText({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-text-element\">\n <FormElementLabelContainer\n className=\"ob-text\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <div className=\"control is-expanded\">\n <input\n type=\"text\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-text-control\"\n value={text}\n onChange={(e) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n </div>\n {!!element.readOnly && !!value && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n {(isDisplayingValidationMessage || !!element.maxLength) && (\n <div className=\"has-margin-top-8\">\n <div className=\"is-flex is-justify-content-space-between\">\n {isDisplayingValidationMessage ? (\n <div\n role=\"alert\"\n className=\"has-text-danger ob-error__text cypress-validation-message\"\n >\n <ValidationIcon />\n {validationMessage}\n </div>\n ) : (\n <div />\n )}\n {!!element.maxLength && (\n <div\n className={clsx(\n 'ob-max-length__text cypress-max-length-message',\n {\n 'has-text-danger': text.length > element.maxLength,\n },\n )}\n >\n {text.length} / {element.maxLength}\n </div>\n )}\n </div>\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementText)\n"]}
@@ -10,6 +10,6 @@ type Props = {
10
10
  validationMessage: string | undefined;
11
11
  autocompleteAttributes?: string;
12
12
  } & IsDirtyProps;
13
- declare function FormElementTextarea({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): React.JSX.Element;
13
+ declare function FormElementTextarea({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
14
14
  declare const _default: React.MemoExoticComponent<typeof FormElementTextarea>;
15
15
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import { TextareaAutosize, styled } from '@mui/material';
@@ -17,26 +18,11 @@ function FormElementTextarea({ id, element, value, onChange, validationMessage,
17
18
  const isDisplayingLookupButton = !!element.isDataLookup || !!element.isElementLookup;
18
19
  const { isLookingUp } = React.useContext(LookupNotificationContext);
19
20
  const isDisplayingValidationMessage = (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp;
20
- return (React.createElement("div", { className: "cypress-textarea-element" },
21
- React.createElement(FormElementLabelContainer, { className: "ob-textarea", id: id, element: element, required: element.required },
22
- React.createElement("div", { className: "control" },
23
- React.createElement(StyledTextareaAutosize, { placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-textarea-control", value: text, onChange: (e) => onChange(element, {
24
- value: e.target.value || undefined,
25
- }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required, minRows: 4 })),
26
- (isDisplayingValidationMessage || !!element.maxLength) && (React.createElement("div", { className: "has-margin-top-8" },
27
- React.createElement("div", { className: "is-flex is-justify-content-space-between" },
28
- isDisplayingValidationMessage ? (React.createElement("div", { role: "alert", className: "has-text-danger ob-error__text cypress-validation-message" },
29
- React.createElement(ValidationIcon, null),
30
- validationMessage)) : (React.createElement("div", null)),
31
- !!element.maxLength && (React.createElement("div", { className: clsx('ob-max-length__text cypress-max-length-message', {
32
- 'has-text-danger': text.length > element.maxLength,
33
- }) },
34
- text.length,
35
- " / ",
36
- element.maxLength))))),
37
- (isDisplayingLookupButton || isDisplayingCopyButton) && (React.createElement("div", { className: "buttons ob-buttons has-margin-top-8" },
38
- isDisplayingCopyButton && (React.createElement(CopyToClipboardButton, { className: "button ob-button cypress-copy-to-clipboard-button", text: text })),
39
- isDisplayingLookupButton && (React.createElement(LookupButton, { value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })))))));
21
+ return (_jsx("div", { className: "cypress-textarea-element", children: _jsxs(FormElementLabelContainer, { className: "ob-textarea", id: id, element: element, required: element.required, children: [_jsx("div", { className: "control", children: _jsx(StyledTextareaAutosize, { placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-textarea-control", value: text, onChange: (e) => onChange(element, {
22
+ value: e.target.value || undefined,
23
+ }), required: element.required, disabled: element.readOnly, onBlur: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required, minRows: 4 }) }), (isDisplayingValidationMessage || !!element.maxLength) && (_jsx("div", { className: "has-margin-top-8", children: _jsxs("div", { className: "is-flex is-justify-content-space-between", children: [isDisplayingValidationMessage ? (_jsxs("div", { role: "alert", className: "has-text-danger ob-error__text cypress-validation-message", children: [_jsx(ValidationIcon, {}), validationMessage] })) : (_jsx("div", {})), !!element.maxLength && (_jsxs("div", { className: clsx('ob-max-length__text cypress-max-length-message', {
24
+ 'has-text-danger': text.length > element.maxLength,
25
+ }), children: [text.length, " / ", element.maxLength] }))] }) })), (isDisplayingLookupButton || isDisplayingCopyButton) && (_jsxs("div", { className: "buttons ob-buttons has-margin-top-8", children: [isDisplayingCopyButton && (_jsx(CopyToClipboardButton, { className: "button ob-button cypress-copy-to-clipboard-button", text: text })), isDisplayingLookupButton && (_jsx(LookupButton, { value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton }))] }))] }) }));
40
26
  }
41
27
  export default React.memo(FormElementTextarea);
42
28
  //# sourceMappingURL=FormElementTextarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementTextarea.js","sourceRoot":"","sources":["../../src/form-elements/FormElementTextarea.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { FormTypes } from '@oneblink/types'\nimport { TextareaAutosize, styled } from '@mui/material'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ValidationIcon } from '../components/renderer/FormElementValidationMessage'\n\nconst StyledTextareaAutosize = styled(TextareaAutosize)(() => ({\n resize: 'vertical',\n}))\n\ntype Props = {\n id: string\n element: FormTypes.TextareaElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementTextarea({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n const isDisplayingCopyButton = !!element.readOnly && !!value\n const isDisplayingLookupButton =\n !!element.isDataLookup || !!element.isElementLookup\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-textarea-element\">\n <FormElementLabelContainer\n className=\"ob-textarea\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"control\">\n <StyledTextareaAutosize\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-textarea-control\"\n value={text}\n onChange={(e) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n minRows={4}\n />\n </div>\n\n {(isDisplayingValidationMessage || !!element.maxLength) && (\n <div className=\"has-margin-top-8\">\n <div className=\"is-flex is-justify-content-space-between\">\n {isDisplayingValidationMessage ? (\n <div\n role=\"alert\"\n className=\"has-text-danger ob-error__text cypress-validation-message\"\n >\n <ValidationIcon />\n {validationMessage}\n </div>\n ) : (\n <div />\n )}\n {!!element.maxLength && (\n <div\n className={clsx(\n 'ob-max-length__text cypress-max-length-message',\n {\n 'has-text-danger': text.length > element.maxLength,\n },\n )}\n >\n {text.length} / {element.maxLength}\n </div>\n )}\n </div>\n </div>\n )}\n\n {(isDisplayingLookupButton || isDisplayingCopyButton) && (\n <div className=\"buttons ob-buttons has-margin-top-8\">\n {isDisplayingCopyButton && (\n <CopyToClipboardButton\n className=\"button ob-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n )}\n {isDisplayingLookupButton && (\n <LookupButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n )}\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementTextarea)\n"]}
1
+ {"version":3,"file":"FormElementTextarea.js","sourceRoot":"","sources":["../../src/form-elements/FormElementTextarea.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { FormTypes } from '@oneblink/types'\nimport { TextareaAutosize, styled } from '@mui/material'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ValidationIcon } from '../components/renderer/FormElementValidationMessage'\n\nconst StyledTextareaAutosize = styled(TextareaAutosize)(() => ({\n resize: 'vertical',\n}))\n\ntype Props = {\n id: string\n element: FormTypes.TextareaElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementTextarea({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const text = typeof value === 'string' ? value : ''\n const isDisplayingCopyButton = !!element.readOnly && !!value\n const isDisplayingLookupButton =\n !!element.isDataLookup || !!element.isElementLookup\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-textarea-element\">\n <FormElementLabelContainer\n className=\"ob-textarea\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"control\">\n <StyledTextareaAutosize\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-textarea-control\"\n value={text}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) =>\n onChange(element, {\n value: e.target.value || undefined,\n })\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n minRows={4}\n />\n </div>\n\n {(isDisplayingValidationMessage || !!element.maxLength) && (\n <div className=\"has-margin-top-8\">\n <div className=\"is-flex is-justify-content-space-between\">\n {isDisplayingValidationMessage ? (\n <div\n role=\"alert\"\n className=\"has-text-danger ob-error__text cypress-validation-message\"\n >\n <ValidationIcon />\n {validationMessage}\n </div>\n ) : (\n <div />\n )}\n {!!element.maxLength && (\n <div\n className={clsx(\n 'ob-max-length__text cypress-max-length-message',\n {\n 'has-text-danger': text.length > element.maxLength,\n },\n )}\n >\n {text.length} / {element.maxLength}\n </div>\n )}\n </div>\n </div>\n )}\n\n {(isDisplayingLookupButton || isDisplayingCopyButton) && (\n <div className=\"buttons ob-buttons has-margin-top-8\">\n {isDisplayingCopyButton && (\n <CopyToClipboardButton\n className=\"button ob-button cypress-copy-to-clipboard-button\"\n text={text}\n />\n )}\n {isDisplayingLookupButton && (\n <LookupButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n )}\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementTextarea)\n"]}
@@ -9,6 +9,6 @@ type Props = {
9
9
  displayValidationMessage: boolean;
10
10
  validationMessage: string | undefined;
11
11
  } & IsDirtyProps;
12
- declare function FormElementTime({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): React.JSX.Element;
12
+ declare function FormElementTime({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): import("react/jsx-runtime").JSX.Element;
13
13
  declare const _default: React.MemoExoticComponent<typeof FormElementTime>;
14
14
  export default _default;