@oneblink/apps-react 8.14.0 → 9.0.0-beta.1

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 (416) 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.js +3 -2
  5. package/dist/OneBlinkForm.js.map +1 -1
  6. package/dist/OneBlinkFormBase.d.ts +1 -1
  7. package/dist/OneBlinkFormBase.js +49 -146
  8. package/dist/OneBlinkFormBase.js.map +1 -1
  9. package/dist/OneBlinkReadOnlyForm.d.ts +1 -1
  10. package/dist/OneBlinkReadOnlyForm.js +2 -1
  11. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  12. package/dist/PaymentReceipt.d.ts +1 -1
  13. package/dist/PaymentReceipt.js +9 -30
  14. package/dist/PaymentReceipt.js.map +1 -1
  15. package/dist/components/ArcGISWebMap.d.ts +3 -3
  16. package/dist/components/ArcGISWebMap.js +25 -38
  17. package/dist/components/ArcGISWebMap.js.map +1 -1
  18. package/dist/components/Clickable.d.ts +1 -1
  19. package/dist/components/Clickable.js +2 -1
  20. package/dist/components/Clickable.js.map +1 -1
  21. package/dist/components/ConfirmDialog.d.ts +2 -2
  22. package/dist/components/ConfirmDialog.js +7 -14
  23. package/dist/components/ConfirmDialog.js.map +1 -1
  24. package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
  25. package/dist/components/CopyToClipboardIconButton.js +10 -14
  26. package/dist/components/CopyToClipboardIconButton.js.map +1 -1
  27. package/dist/components/CustomAccordion.d.ts +3 -20
  28. package/dist/components/ErrorSnackbar.d.ts +1 -1
  29. package/dist/components/ErrorSnackbar.js +6 -7
  30. package/dist/components/ErrorSnackbar.js.map +1 -1
  31. package/dist/components/ImageCropper/CropModal.d.ts +1 -1
  32. package/dist/components/ImageCropper/CropModal.js +2 -8
  33. package/dist/components/ImageCropper/CropModal.js.map +1 -1
  34. package/dist/components/ImageCropper/index.d.ts +1 -1
  35. package/dist/components/ImageCropper/index.js +3 -5
  36. package/dist/components/ImageCropper/index.js.map +1 -1
  37. package/dist/components/InputClear.js +2 -3
  38. package/dist/components/InputClear.js.map +1 -1
  39. package/dist/components/InputField.d.ts +3 -2
  40. package/dist/components/InputField.js +5 -2
  41. package/dist/components/InputField.js.map +1 -1
  42. package/dist/components/Lists.d.ts +1 -6
  43. package/dist/components/Lists.js +2 -2
  44. package/dist/components/Lists.js.map +1 -1
  45. package/dist/components/LoadingWithMessage.js +2 -6
  46. package/dist/components/LoadingWithMessage.js.map +1 -1
  47. package/dist/components/MaterialIcon.d.ts +2 -4
  48. package/dist/components/MaterialIcon.js +4 -4
  49. package/dist/components/MaterialIcon.js.map +1 -1
  50. package/dist/components/NotificationGrid.d.ts +2 -2
  51. package/dist/components/NotificationGrid.js +4 -7
  52. package/dist/components/NotificationGrid.js.map +1 -1
  53. package/dist/components/QuillHTML.d.ts +1 -1
  54. package/dist/components/QuillHTML.js +2 -1
  55. package/dist/components/QuillHTML.js.map +1 -1
  56. package/dist/components/SuccessSnackbar.d.ts +1 -1
  57. package/dist/components/SuccessSnackbar.js +3 -6
  58. package/dist/components/SuccessSnackbar.js.map +1 -1
  59. package/dist/components/ValidationErrorsCard.d.ts +2 -2
  60. package/dist/components/ValidationErrorsCard.js +32 -49
  61. package/dist/components/ValidationErrorsCard.js.map +1 -1
  62. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.d.ts +1 -1
  63. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +5 -6
  64. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
  65. package/dist/components/calendar-bookings/CalendarBookingsContainer.d.ts +1 -1
  66. package/dist/components/calendar-bookings/CalendarBookingsContainer.js +9 -11
  67. package/dist/components/calendar-bookings/CalendarBookingsContainer.js.map +1 -1
  68. package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +1 -1
  69. package/dist/components/calendar-bookings/CalendarBookingsForm.js +33 -45
  70. package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
  71. package/dist/components/calendar-bookings/CalendarBookingsProvider.d.ts +1 -1
  72. package/dist/components/calendar-bookings/CalendarBookingsProvider.js +2 -6
  73. package/dist/components/calendar-bookings/CalendarBookingsProvider.js.map +1 -1
  74. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.d.ts +1 -1
  75. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +5 -6
  76. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
  77. package/dist/components/calendar-bookings/ErrorModal.js +7 -11
  78. package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
  79. package/dist/components/downloadable-files/LayoutProvider.d.ts +1 -1
  80. package/dist/components/downloadable-files/LayoutProvider.js +2 -1
  81. package/dist/components/downloadable-files/LayoutProvider.js.map +1 -1
  82. package/dist/components/downloadable-files/index.d.ts +1 -1
  83. package/dist/components/downloadable-files/index.js +3 -5
  84. package/dist/components/downloadable-files/index.js.map +1 -1
  85. package/dist/components/downloadable-files/resource-components.d.ts +3 -3
  86. package/dist/components/downloadable-files/resource-components.js +9 -32
  87. package/dist/components/downloadable-files/resource-components.js.map +1 -1
  88. package/dist/components/formStore/FormStoreTableProvider.d.ts +1 -1
  89. package/dist/components/formStore/FormStoreTableProvider.js +5 -15
  90. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
  91. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +1 -1
  92. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +3 -2
  93. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
  94. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +1 -1
  95. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +21 -54
  96. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
  97. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +2 -2
  98. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +7 -26
  99. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
  100. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
  101. package/dist/components/formStore/OneBlinkFormStoreProvider.js +4 -5
  102. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
  103. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +1 -1
  104. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +3 -2
  105. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
  106. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +1 -1
  107. package/dist/components/formStore/OneBlinkFormStoreTable.js +128 -94
  108. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
  109. package/dist/components/formStore/display/ElementDisplay.d.ts +3 -4
  110. package/dist/components/formStore/display/ElementDisplay.js +9 -12
  111. package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
  112. package/dist/components/formStore/display/FormStoreIcon.d.ts +1 -1
  113. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  114. package/dist/components/formStore/display/FormStoreIcon.js.map +1 -1
  115. package/dist/components/formStore/table/ActionedByTableCell.d.ts +1 -1
  116. package/dist/components/formStore/table/ActionedByTableCell.js +6 -7
  117. package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
  118. package/dist/components/formStore/table/ColumnFilters.d.ts +3 -3
  119. package/dist/components/formStore/table/ColumnFilters.js +84 -100
  120. package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
  121. package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
  122. package/dist/components/formStore/table/FormElementTableCell.js +34 -97
  123. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  124. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +4 -4
  125. package/dist/components/formStore/table/HeaderCellMoreButton.js +26 -32
  126. package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -1
  127. package/dist/components/formStore/table/Pickers.d.ts +4 -4
  128. package/dist/components/formStore/table/Pickers.js +14 -13
  129. package/dist/components/formStore/table/Pickers.js.map +1 -1
  130. package/dist/components/formStore/table/RepeatableSetCell.js +16 -21
  131. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  132. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +2 -4
  133. package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -1
  134. package/dist/components/formStore/table/TableCellCopyButton.d.ts +1 -1
  135. package/dist/components/formStore/table/TableCellCopyButton.js +2 -3
  136. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  137. package/dist/components/formStore/table/generateColumns.d.ts +5 -6
  138. package/dist/components/formStore/table/generateColumns.js +23 -18
  139. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  140. package/dist/components/formStore/table/getVersionedState.d.ts +4 -3
  141. package/dist/components/formStore/table/getVersionedState.js +23 -6
  142. package/dist/components/formStore/table/getVersionedState.js.map +1 -1
  143. package/dist/components/formStore/table/useFormStoreTable.d.ts +146 -37
  144. package/dist/components/formStore/table/useFormStoreTable.js +266 -199
  145. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  146. package/dist/components/formStore/useFormStoreTableContext.d.ts +142 -33
  147. package/dist/components/messages/ErrorMessage.js +3 -3
  148. package/dist/components/messages/ErrorMessage.js.map +1 -1
  149. package/dist/components/messages/LargeIconMessage.js +2 -6
  150. package/dist/components/messages/LargeIconMessage.js.map +1 -1
  151. package/dist/components/messages/NoResourcesYet.d.ts +1 -1
  152. package/dist/components/messages/NoResourcesYet.js +2 -1
  153. package/dist/components/messages/NoResourcesYet.js.map +1 -1
  154. package/dist/components/mfa/MfaDialog.d.ts +1 -1
  155. package/dist/components/mfa/MfaDialog.js +9 -48
  156. package/dist/components/mfa/MfaDialog.js.map +1 -1
  157. package/dist/components/mfa/MultiFactorAuthentication.d.ts +2 -5
  158. package/dist/components/mfa/MultiFactorAuthentication.js +14 -45
  159. package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
  160. package/dist/components/payments/PaymentForm.d.ts +1 -1
  161. package/dist/components/payments/PaymentForm.js +4 -9
  162. package/dist/components/payments/PaymentForm.js.map +1 -1
  163. package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +1 -1
  164. package/dist/components/payments/WestpacQuickStreamPaymentForm.js +11 -45
  165. package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
  166. package/dist/components/receipts/Receipt.d.ts +1 -1
  167. package/dist/components/receipts/Receipt.js +2 -2
  168. package/dist/components/receipts/Receipt.js.map +1 -1
  169. package/dist/components/receipts/ReceiptButton.d.ts +1 -1
  170. package/dist/components/receipts/ReceiptButton.js +3 -2
  171. package/dist/components/receipts/ReceiptButton.js.map +1 -1
  172. package/dist/components/receipts/ReceiptList.d.ts +1 -1
  173. package/dist/components/receipts/ReceiptList.js +2 -9
  174. package/dist/components/receipts/ReceiptList.js.map +1 -1
  175. package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
  176. package/dist/components/receipts/ReceiptListItem.js +2 -11
  177. package/dist/components/receipts/ReceiptListItem.js.map +1 -1
  178. package/dist/components/renderer/AnnotationModal.d.ts +1 -1
  179. package/dist/components/renderer/AnnotationModal.js +6 -14
  180. package/dist/components/renderer/AnnotationModal.js.map +1 -1
  181. package/dist/components/renderer/AutocompleteDropdown.d.ts +1 -1
  182. package/dist/components/renderer/AutocompleteDropdown.js +15 -34
  183. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
  184. package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
  185. package/dist/components/renderer/CopyToClipboardButton.js +2 -4
  186. package/dist/components/renderer/CopyToClipboardButton.js.map +1 -1
  187. package/dist/components/renderer/CustomisableButtonInner.js +2 -4
  188. package/dist/components/renderer/CustomisableButtonInner.js.map +1 -1
  189. package/dist/components/renderer/FormElementLabelContainer.d.ts +3 -3
  190. package/dist/components/renderer/FormElementLabelContainer.js +7 -14
  191. package/dist/components/renderer/FormElementLabelContainer.js.map +1 -1
  192. package/dist/components/renderer/FormElementOptions.d.ts +1 -1
  193. package/dist/components/renderer/FormElementOptions.js +4 -5
  194. package/dist/components/renderer/FormElementOptions.js.map +1 -1
  195. package/dist/components/renderer/FormElementValidationMessage.js +3 -5
  196. package/dist/components/renderer/FormElementValidationMessage.js.map +1 -1
  197. package/dist/components/renderer/LookupButton.d.ts +1 -1
  198. package/dist/components/renderer/LookupButton.js +4 -8
  199. package/dist/components/renderer/LookupButton.js.map +1 -1
  200. package/dist/components/renderer/LookupNotification.d.ts +1 -1
  201. package/dist/components/renderer/LookupNotification.js +14 -36
  202. package/dist/components/renderer/LookupNotification.js.map +1 -1
  203. package/dist/components/renderer/Modal.d.ts +3 -3
  204. package/dist/components/renderer/Modal.js +5 -10
  205. package/dist/components/renderer/Modal.js.map +1 -1
  206. package/dist/components/renderer/OnLoading.d.ts +1 -1
  207. package/dist/components/renderer/OnLoading.js +3 -3
  208. package/dist/components/renderer/OnLoading.js.map +1 -1
  209. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
  210. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +2 -4
  211. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
  212. package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
  213. package/dist/components/renderer/OneBlinkFormElements.js +61 -90
  214. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  215. package/dist/components/renderer/PageFormElements.d.ts +1 -1
  216. package/dist/components/renderer/PageFormElements.js +3 -5
  217. package/dist/components/renderer/PageFormElements.js.map +1 -1
  218. package/dist/components/renderer/ProgressBar.d.ts +1 -1
  219. package/dist/components/renderer/ProgressBar.js +2 -1
  220. package/dist/components/renderer/ProgressBar.js.map +1 -1
  221. package/dist/components/renderer/ReverseGeocode.d.ts +1 -1
  222. package/dist/components/renderer/ReverseGeocode.js +2 -1
  223. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  224. package/dist/components/renderer/ToggleAllCheckbox.js +4 -5
  225. package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
  226. package/dist/components/renderer/Tooltip.d.ts +1 -1
  227. package/dist/components/renderer/Tooltip.js +3 -1
  228. package/dist/components/renderer/Tooltip.js.map +1 -1
  229. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +1 -1
  230. package/dist/components/renderer/attachments/AttachmentStatus.js +6 -15
  231. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  232. package/dist/components/renderer/attachments/DropdownMenu.js +30 -42
  233. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  234. package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
  235. package/dist/components/renderer/attachments/FileCard.js +2 -10
  236. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  237. package/dist/components/renderer/attachments/FileCardContent.d.ts +1 -1
  238. package/dist/components/renderer/attachments/FileCardContent.js +3 -4
  239. package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
  240. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +1 -1
  241. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +2 -5
  242. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -1
  243. package/dist/components/renderer/attachments/ProgressBar.js +2 -4
  244. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  245. package/dist/form-elements/ComplianceButton.js +3 -4
  246. package/dist/form-elements/ComplianceButton.js.map +1 -1
  247. package/dist/form-elements/FormElementABN.d.ts +1 -1
  248. package/dist/form-elements/FormElementABN.js +18 -28
  249. package/dist/form-elements/FormElementABN.js.map +1 -1
  250. package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -2
  251. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +3 -21
  252. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  253. package/dist/form-elements/FormElementArcGISWebMap.d.ts +1 -1
  254. package/dist/form-elements/FormElementArcGISWebMap.js +21 -36
  255. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  256. package/dist/form-elements/FormElementAutocomplete.d.ts +1 -1
  257. package/dist/form-elements/FormElementAutocomplete.js +5 -9
  258. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  259. package/dist/form-elements/FormElementBSB.d.ts +1 -1
  260. package/dist/form-elements/FormElementBSB.js +17 -30
  261. package/dist/form-elements/FormElementBSB.js.map +1 -1
  262. package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
  263. package/dist/form-elements/FormElementBarcodeScanner.js +16 -50
  264. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  265. package/dist/form-elements/FormElementBoolean.d.ts +1 -1
  266. package/dist/form-elements/FormElementBoolean.js +4 -4
  267. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  268. package/dist/form-elements/FormElementCalculation.d.ts +1 -1
  269. package/dist/form-elements/FormElementCalculation.js +2 -9
  270. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  271. package/dist/form-elements/FormElementCamera.d.ts +1 -1
  272. package/dist/form-elements/FormElementCamera.js +7 -53
  273. package/dist/form-elements/FormElementCamera.js.map +1 -1
  274. package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
  275. package/dist/form-elements/FormElementCaptcha.js +2 -4
  276. package/dist/form-elements/FormElementCaptcha.js.map +1 -1
  277. package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
  278. package/dist/form-elements/FormElementCheckBoxes.js +23 -33
  279. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  280. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +1 -1
  281. package/dist/form-elements/FormElementCivicaNameRecord.js +2 -1
  282. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  283. package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
  284. package/dist/form-elements/FormElementCivicaStreetName.js +2 -4
  285. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  286. package/dist/form-elements/FormElementCompliance.d.ts +1 -1
  287. package/dist/form-elements/FormElementCompliance.js +13 -25
  288. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  289. package/dist/form-elements/FormElementDate.d.ts +1 -1
  290. package/dist/form-elements/FormElementDate.js +2 -9
  291. package/dist/form-elements/FormElementDate.js.map +1 -1
  292. package/dist/form-elements/FormElementDateTime.d.ts +1 -1
  293. package/dist/form-elements/FormElementDateTime.js +2 -9
  294. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  295. package/dist/form-elements/FormElementEmail.d.ts +1 -1
  296. package/dist/form-elements/FormElementEmail.js +4 -13
  297. package/dist/form-elements/FormElementEmail.js.map +1 -1
  298. package/dist/form-elements/FormElementFile.js +2 -12
  299. package/dist/form-elements/FormElementFile.js.map +1 -1
  300. package/dist/form-elements/FormElementFiles.d.ts +1 -1
  301. package/dist/form-elements/FormElementFiles.js +9 -17
  302. package/dist/form-elements/FormElementFiles.js.map +1 -1
  303. package/dist/form-elements/FormElementForm.d.ts +1 -1
  304. package/dist/form-elements/FormElementForm.js +2 -1
  305. package/dist/form-elements/FormElementForm.js.map +1 -1
  306. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +1 -1
  307. package/dist/form-elements/FormElementFreshdeskDependentField.js +2 -1
  308. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  309. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
  310. package/dist/form-elements/FormElementGeoscapeAddress.js +2 -4
  311. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  312. package/dist/form-elements/FormElementGoogleAddress.d.ts +1 -1
  313. package/dist/form-elements/FormElementGoogleAddress.js +2 -7
  314. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  315. package/dist/form-elements/FormElementHTML.d.ts +1 -1
  316. package/dist/form-elements/FormElementHTML.js +2 -3
  317. package/dist/form-elements/FormElementHTML.js.map +1 -1
  318. package/dist/form-elements/FormElementHeading.d.ts +1 -1
  319. package/dist/form-elements/FormElementHeading.js +7 -8
  320. package/dist/form-elements/FormElementHeading.js.map +1 -1
  321. package/dist/form-elements/FormElementImage.d.ts +1 -1
  322. package/dist/form-elements/FormElementImage.js +3 -3
  323. package/dist/form-elements/FormElementImage.js.map +1 -1
  324. package/dist/form-elements/FormElementLocation.d.ts +1 -1
  325. package/dist/form-elements/FormElementLocation.js +16 -47
  326. package/dist/form-elements/FormElementLocation.js.map +1 -1
  327. package/dist/form-elements/FormElementLookupButton.d.ts +2 -3
  328. package/dist/form-elements/FormElementLookupButton.js +4 -7
  329. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  330. package/dist/form-elements/FormElementNumber.d.ts +1 -1
  331. package/dist/form-elements/FormElementNumber.js +3 -14
  332. package/dist/form-elements/FormElementNumber.js.map +1 -1
  333. package/dist/form-elements/FormElementPointAddress.d.ts +2 -2
  334. package/dist/form-elements/FormElementPointAddress.js +6 -13
  335. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  336. package/dist/form-elements/FormElementPointAddressV3.d.ts +1 -1
  337. package/dist/form-elements/FormElementPointAddressV3.js +2 -9
  338. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  339. package/dist/form-elements/FormElementPointCadastralParcel.d.ts +1 -1
  340. package/dist/form-elements/FormElementPointCadastralParcel.js +14 -26
  341. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  342. package/dist/form-elements/FormElementRadio.d.ts +1 -1
  343. package/dist/form-elements/FormElementRadio.js +24 -30
  344. package/dist/form-elements/FormElementRadio.js.map +1 -1
  345. package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
  346. package/dist/form-elements/FormElementRepeatableSet.js +21 -39
  347. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  348. package/dist/form-elements/FormElementSection.d.ts +1 -1
  349. package/dist/form-elements/FormElementSection.js +16 -34
  350. package/dist/form-elements/FormElementSection.js.map +1 -1
  351. package/dist/form-elements/FormElementSelect.d.ts +1 -1
  352. package/dist/form-elements/FormElementSelect.js +12 -23
  353. package/dist/form-elements/FormElementSelect.js.map +1 -1
  354. package/dist/form-elements/FormElementSignature.d.ts +1 -1
  355. package/dist/form-elements/FormElementSignature.js +21 -46
  356. package/dist/form-elements/FormElementSignature.js.map +1 -1
  357. package/dist/form-elements/FormElementSummary.d.ts +1 -1
  358. package/dist/form-elements/FormElementSummary.js +5 -4
  359. package/dist/form-elements/FormElementSummary.js.map +1 -1
  360. package/dist/form-elements/FormElementTelephone.d.ts +1 -1
  361. package/dist/form-elements/FormElementTelephone.js +4 -13
  362. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  363. package/dist/form-elements/FormElementText.d.ts +1 -1
  364. package/dist/form-elements/FormElementText.js +6 -21
  365. package/dist/form-elements/FormElementText.js.map +1 -1
  366. package/dist/form-elements/FormElementTextarea.d.ts +1 -1
  367. package/dist/form-elements/FormElementTextarea.js +6 -20
  368. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  369. package/dist/form-elements/FormElementTime.d.ts +1 -1
  370. package/dist/form-elements/FormElementTime.js +2 -9
  371. package/dist/form-elements/FormElementTime.js.map +1 -1
  372. package/dist/form-elements/OptionButton.js +3 -5
  373. package/dist/form-elements/OptionButton.js.map +1 -1
  374. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +1 -1
  375. package/dist/hooks/attachments/useAttachmentBlobs.js +2 -1
  376. package/dist/hooks/attachments/useAttachmentBlobs.js.map +1 -1
  377. package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +7 -8
  378. package/dist/hooks/form-date-picker/useFormDatePickerProps.js +8 -10
  379. package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
  380. package/dist/hooks/useAuth.d.ts +1 -1
  381. package/dist/hooks/useAuth.js +2 -1
  382. package/dist/hooks/useAuth.js.map +1 -1
  383. package/dist/hooks/useDrafts.d.ts +1 -1
  384. package/dist/hooks/useDrafts.js +2 -1
  385. package/dist/hooks/useDrafts.js.map +1 -1
  386. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +1 -1
  387. package/dist/hooks/useDynamicOptionsLoaderState.js +4 -13
  388. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  389. package/dist/hooks/useFormElementLookups.d.ts +1 -1
  390. package/dist/hooks/useFormElementLookups.js +2 -1
  391. package/dist/hooks/useFormElementLookups.js.map +1 -1
  392. package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
  393. package/dist/hooks/useFormSubmissionModelContext.js +2 -1
  394. package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
  395. package/dist/hooks/useFormSubmissionState.d.ts +1 -1
  396. package/dist/hooks/useFormSubmissionState.js +1 -1
  397. package/dist/hooks/useFormSubmissionState.js.map +1 -1
  398. package/dist/hooks/useIsHovering.d.ts +1 -1
  399. package/dist/hooks/useIsHovering.js +4 -4
  400. package/dist/hooks/useIsHovering.js.map +1 -1
  401. package/dist/hooks/useIsOffline.d.ts +1 -1
  402. package/dist/hooks/useIsOffline.js +2 -1
  403. package/dist/hooks/useIsOffline.js.map +1 -1
  404. package/dist/hooks/useIsPageVisible.d.ts +1 -1
  405. package/dist/hooks/useIsPageVisible.js +2 -1
  406. package/dist/hooks/useIsPageVisible.js.map +1 -1
  407. package/dist/hooks/useMfa.d.ts +1 -1
  408. package/dist/hooks/useMfa.js +2 -1
  409. package/dist/hooks/useMfa.js.map +1 -1
  410. package/dist/hooks/usePages.d.ts +1 -1
  411. package/dist/hooks/usePendingSubmissions.d.ts +1 -1
  412. package/dist/hooks/usePendingSubmissions.js +2 -1
  413. package/dist/hooks/usePendingSubmissions.js.map +1 -1
  414. package/dist/hooks/useReCAPTCHAProps.d.ts +1 -1
  415. package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
  416. package/package.json +20 -24
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementCivicaNameRecord.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCivicaNameRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,eAA0B,MAAM,mBAAmB,CAAA;AAC1D,OAAO,gCAAgC,MAAM,8CAA8C,CAAA;AAE3F,SAAS,2BAA2B,CAAC,EACnC,OAAO,EACP,GAAG,KAAK,EAGT;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAIrC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAA4B,GAAG,EAAE;QAChE,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,iBAAiB,EAAE,KAAK;YACxB,sCAAsC,EAAE,KAAK;YAC7C,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,gCAAgC,CACxC,OAAO,EACP,KAAK,CAAC,gBAAgB,CACvB;SACF,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAErC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC;YACP,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAE7C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,mBAAmB,CACjD,KAAK,CAAC,MAAM,EACZ,eAAe,CAAC,MAAM,CACvB,CAAA;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,QAAQ,CAAC;wBACP,SAAS,EAAE,KAAK;wBAChB,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,QAAQ,CAAC;wBACP,SAAS,EAAE,KAAK;wBAChB,SAAS,EAAE,KAAc;qBAC1B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QAET,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAElB,OAAO,oBAAC,eAAe,IAAC,OAAO,EAAE,WAAW,KAAM,KAAK,GAAI,CAAA;AAC7D,CAAC;AACD,eAAe,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementForm, { Props } from './FormElementForm'\nimport generateCivicaNameRecordElements from '../services/generateCivicaNameRecordElements'\n\nfunction FormElementCivicaNameRecord({\n element,\n ...props\n}: Omit<Props, 'element'> & {\n element: FormTypes.CivicaNameRecordElement\n}) {\n const [state, setState] = React.useState<{\n isLoading: boolean\n titleCodeOptions?: FormTypes.ChoiceElementOption[]\n loadError?: Error\n }>({\n isLoading: true,\n })\n\n const formElement = React.useMemo<FormTypes.FormFormElement>(() => {\n return {\n id: element.id,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n type: 'form',\n name: element.name,\n formId: NaN,\n elements: generateCivicaNameRecordElements(\n element,\n state.titleCodeOptions,\n ),\n }\n }, [element, state.titleCodeOptions])\n\n React.useEffect(() => {\n setState({\n isLoading: true,\n })\n const abortController = new AbortController()\n\n const request = async () => {\n try {\n const items = await formService.getCivicaTitleCodes(\n props.formId,\n abortController.signal,\n )\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n titleCodeOptions: items,\n })\n }\n } catch (error) {\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n loadError: error as Error,\n })\n }\n }\n }\n request()\n\n return () => {\n abortController.abort()\n }\n }, [props.formId])\n\n return <FormElementForm element={formElement} {...props} />\n}\nexport default React.memo(FormElementCivicaNameRecord)\n"]}
1
+ {"version":3,"file":"FormElementCivicaNameRecord.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCivicaNameRecord.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,eAA0B,MAAM,mBAAmB,CAAA;AAC1D,OAAO,gCAAgC,MAAM,8CAA8C,CAAA;AAE3F,SAAS,2BAA2B,CAAC,EACnC,OAAO,EACP,GAAG,KAAK,EAGT;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAIrC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAA4B,GAAG,EAAE;QAChE,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,iBAAiB,EAAE,KAAK;YACxB,sCAAsC,EAAE,KAAK;YAC7C,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,gCAAgC,CACxC,OAAO,EACP,KAAK,CAAC,gBAAgB,CACvB;SACF,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAErC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC;YACP,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAE7C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,mBAAmB,CACjD,KAAK,CAAC,MAAM,EACZ,eAAe,CAAC,MAAM,CACvB,CAAA;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,QAAQ,CAAC;wBACP,SAAS,EAAE,KAAK;wBAChB,gBAAgB,EAAE,KAAK;qBACxB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,QAAQ,CAAC;wBACP,SAAS,EAAE,KAAK;wBAChB,SAAS,EAAE,KAAc;qBAC1B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QAET,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAElB,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,WAAW,KAAM,KAAK,GAAI,CAAA;AAC7D,CAAC;AACD,eAAe,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementForm, { Props } from './FormElementForm'\nimport generateCivicaNameRecordElements from '../services/generateCivicaNameRecordElements'\n\nfunction FormElementCivicaNameRecord({\n element,\n ...props\n}: Omit<Props, 'element'> & {\n element: FormTypes.CivicaNameRecordElement\n}) {\n const [state, setState] = React.useState<{\n isLoading: boolean\n titleCodeOptions?: FormTypes.ChoiceElementOption[]\n loadError?: Error\n }>({\n isLoading: true,\n })\n\n const formElement = React.useMemo<FormTypes.FormFormElement>(() => {\n return {\n id: element.id,\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n type: 'form',\n name: element.name,\n formId: NaN,\n elements: generateCivicaNameRecordElements(\n element,\n state.titleCodeOptions,\n ),\n }\n }, [element, state.titleCodeOptions])\n\n React.useEffect(() => {\n setState({\n isLoading: true,\n })\n const abortController = new AbortController()\n\n const request = async () => {\n try {\n const items = await formService.getCivicaTitleCodes(\n props.formId,\n abortController.signal,\n )\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n titleCodeOptions: items,\n })\n }\n } catch (error) {\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n loadError: error as Error,\n })\n }\n }\n }\n request()\n\n return () => {\n abortController.abort()\n }\n }, [props.formId])\n\n return <FormElementForm element={formElement} {...props} />\n}\nexport default React.memo(FormElementCivicaNameRecord)\n"]}
@@ -11,6 +11,6 @@ type Props = {
11
11
  onChange: FormElementValueChangeHandler<CivicaTypes.CivicaStreetName>;
12
12
  autocompleteAttributes?: string;
13
13
  } & IsDirtyProps;
14
- declare function FormElementCivicaStreetName({ formId, id, element, value, displayValidationMessage, validationMessage, onChange, isDirty, setIsDirty, autocompleteAttributes, }: Props): React.JSX.Element;
14
+ declare function FormElementCivicaStreetName({ formId, id, element, value, displayValidationMessage, validationMessage, onChange, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
15
15
  declare const _default: React.MemoExoticComponent<typeof FormElementCivicaStreetName>;
16
16
  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 { formService } from '@oneblink/apps';
3
4
  import AutocompleteDropdown from '../components/renderer/AutocompleteDropdown';
@@ -34,10 +35,7 @@ function FormElementCivicaStreetName({ formId, id, element, value, displayValida
34
35
  }
35
36
  // eslint-disable-next-line react-hooks/exhaustive-deps
36
37
  }, [value]);
37
- return (React.createElement("div", { className: "cypress-civica-street-name-element" },
38
- React.createElement(FormElementLabelContainer, { className: "ob-civica-street-name ob-autocomplete", element: element, id: id, required: element.required },
39
- React.createElement(AutocompleteDropdown, { id: id, label: label, disabled: element.readOnly, placeholder: element.placeholderValue, required: element.required, value: value, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, onChangeValue: handleChange, hasError: !!error, onChangeLabel: setLabel, searchDebounceMs: 750, searchMinCharacters: 4, onSearch: handleSearch, isDirty: isDirty, setIsDirty: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes })),
40
- error && (React.createElement(FormElementValidationMessage, { message: error.toString(), className: "cypress-civica-street-name-error-message" }))));
38
+ return (_jsxs("div", { className: "cypress-civica-street-name-element", children: [_jsx(FormElementLabelContainer, { className: "ob-civica-street-name ob-autocomplete", element: element, id: id, required: element.required, children: _jsx(AutocompleteDropdown, { id: id, label: label, disabled: element.readOnly, placeholder: element.placeholderValue, required: element.required, value: value, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, onChangeValue: handleChange, hasError: !!error, onChangeLabel: setLabel, searchDebounceMs: 750, searchMinCharacters: 4, onSearch: handleSearch, isDirty: isDirty, setIsDirty: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes }) }), error && (_jsx(FormElementValidationMessage, { message: error.toString(), className: "cypress-civica-street-name-error-message" }))] }));
41
39
  }
42
40
  export default React.memo(FormElementCivicaStreetName);
43
41
  //# sourceMappingURL=FormElementCivicaStreetName.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementCivicaStreetName.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCivicaStreetName.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\n\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormTypes, CivicaTypes } from '@oneblink/types'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.CivicaStreetNameElement\n value: CivicaTypes.CivicaStreetName | undefined\n displayValidationMessage: boolean\n validationMessage: string | undefined\n onChange: FormElementValueChangeHandler<CivicaTypes.CivicaStreetName>\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementCivicaStreetName({\n formId,\n id,\n element,\n value,\n displayValidationMessage,\n validationMessage,\n onChange,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const [label, setLabel] = React.useState('')\n const [error, setError] = React.useState<Error | undefined>()\n\n const handleSearch = React.useCallback(\n async (searchTerm: string, abortSignal: AbortSignal) => {\n setError(undefined)\n const results = await formService.searchCivicaStreetNames(\n formId,\n {\n search: searchTerm,\n },\n abortSignal,\n )\n return results.map((suggestion, index) => ({\n value: suggestion.formattedAccount || index.toString(),\n label: suggestion.formattedStreet || index.toString(),\n data: suggestion,\n }))\n },\n [formId],\n )\n\n const handleChange = React.useCallback(\n async (\n streetId: string | undefined,\n streetData?: CivicaTypes.CivicaStreetName,\n ) => {\n onChange(element, {\n value: streetData,\n })\n },\n [onChange, element],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel = value?.formattedStreet\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-civica-street-name-element\">\n <FormElementLabelContainer\n className=\"ob-civica-street-name ob-autocomplete\"\n element={element}\n id={id}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={handleChange}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={4}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-civica-street-name-error-message\"\n />\n )}\n </div>\n )\n}\n\nexport default React.memo(FormElementCivicaStreetName)\n"]}
1
+ {"version":3,"file":"FormElementCivicaStreetName.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCivicaStreetName.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\n\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormTypes, CivicaTypes } from '@oneblink/types'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.CivicaStreetNameElement\n value: CivicaTypes.CivicaStreetName | undefined\n displayValidationMessage: boolean\n validationMessage: string | undefined\n onChange: FormElementValueChangeHandler<CivicaTypes.CivicaStreetName>\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementCivicaStreetName({\n formId,\n id,\n element,\n value,\n displayValidationMessage,\n validationMessage,\n onChange,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const [label, setLabel] = React.useState('')\n const [error, setError] = React.useState<Error | undefined>()\n\n const handleSearch = React.useCallback(\n async (searchTerm: string, abortSignal: AbortSignal) => {\n setError(undefined)\n const results = await formService.searchCivicaStreetNames(\n formId,\n {\n search: searchTerm,\n },\n abortSignal,\n )\n return results.map((suggestion, index) => ({\n value: suggestion.formattedAccount || index.toString(),\n label: suggestion.formattedStreet || index.toString(),\n data: suggestion,\n }))\n },\n [formId],\n )\n\n const handleChange = React.useCallback(\n async (\n streetId: string | undefined,\n streetData?: CivicaTypes.CivicaStreetName,\n ) => {\n onChange(element, {\n value: streetData,\n })\n },\n [onChange, element],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel = value?.formattedStreet\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-civica-street-name-element\">\n <FormElementLabelContainer\n className=\"ob-civica-street-name ob-autocomplete\"\n element={element}\n id={id}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={handleChange}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={4}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-civica-street-name-error-message\"\n />\n )}\n </div>\n )\n}\n\nexport default React.memo(FormElementCivicaStreetName)\n"]}
@@ -18,6 +18,6 @@ export interface Value {
18
18
  notes?: string;
19
19
  files?: attachmentsService.Attachment[];
20
20
  }
21
- declare function FormElementCompliance({ id, element, value, onChange, conditionallyShownOptionsElement, validationMessage, displayValidationMessage, isEven, onUpdateFormElements, isDirty, setIsDirty, }: Props): React.JSX.Element;
21
+ declare function FormElementCompliance({ id, element, value, onChange, conditionallyShownOptionsElement, validationMessage, displayValidationMessage, isEven, onUpdateFormElements, isDirty, setIsDirty, }: Props): import("react/jsx-runtime").JSX.Element;
22
22
  declare const _default: React.MemoExoticComponent<typeof FormElementCompliance>;
23
23
  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 FormElementOptions from '../components/renderer/FormElementOptions';
@@ -116,31 +117,18 @@ function FormElementCompliance({ id, element, value, onChange, conditionallyShow
116
117
  conditionallyShownOptionsElement,
117
118
  onUpdateFormElements,
118
119
  });
119
- return (React.createElement("div", { className: "cypress-compliance-element", "aria-labelledby": `${id}-label`, "aria-describedby": ariaDescribedby, role: "region" },
120
- React.createElement(FormElementLabelContainer, { className: `ob-compliance ${!isEven ? 'even' : 'odd'}`, id: id, element: element, required: element.required },
121
- React.createElement("div", { className: "ob-compliance__container" },
122
- React.createElement(FormElementOptions, { options: element.options, conditionallyShownOptionsElement: conditionallyShownOptionsElement },
123
- React.createElement("div", { className: "buttons ob-buttons ob-buttons-radio cypress-radio-button-group", role: "group", "aria-labelledby": `${id}-label`, "aria-describedby": ariaDescribedby }, filteredOptions.map((option) => {
124
- const isSelected = (typedValue === null || typedValue === void 0 ? void 0 : typedValue.value) === option.value;
125
- return (React.createElement("div", { className: "ob-button-radio-container", key: option.value },
126
- React.createElement(OptionButton, { element: element, option: option, isSelected: isSelected, onClick: () => {
127
- setIsDirty();
128
- handleValueChange(element, {
129
- value: option.value,
130
- });
131
- }, className: clsx('button ob-button ob-button__input ob-radio__button cypress-radio-button-control', {
132
- 'is-primary': isSelected,
133
- 'is-light': !isSelected,
134
- }), "aria-describedby": ariaDescribedby })));
135
- }))),
136
- (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })),
137
- React.createElement("div", { className: "buttons ob-buttons ob-buttons-compliance cypress-compliance-button-group" },
138
- React.createElement(ComplianceButton, { isActive: isShowingNotes, icon: "notes", onClick: toggleIsShowingNotes, disabled: element.readOnly || !(typedValue === null || typedValue === void 0 ? void 0 : typedValue.value) }, "Notes"),
139
- React.createElement(ComplianceButton, { isActive: isShowingFiles, icon: "perm_media", onClick: toggleIsShowingFiles, disabled: element.readOnly || !(typedValue === null || typedValue === void 0 ? void 0 : typedValue.value) }, "Media")),
140
- isShowingNotes && (React.createElement("div", { className: "ob-compliance-child-element" },
141
- React.createElement(FormElementTextarea, { id: `${id}-notes`, onChange: handleNotesChange, displayValidationMessage: false, validationMessage: undefined, value: typedValue === null || typedValue === void 0 ? void 0 : typedValue.notes, element: notesElement, isDirty: isDirty, setIsDirty: setIsDirty, autocompleteAttributes: (_a = notesElement.autocompleteAttributes) === null || _a === void 0 ? void 0 : _a.join(' ') }))),
142
- isShowingFiles && (React.createElement("div", { className: "ob-compliance-child-element" },
143
- React.createElement(FormElementFiles, { id: `${id}-files`, onChange: handleFilesChange, displayValidationMessage: false, validationMessage: undefined, value: typedValue === null || typedValue === void 0 ? void 0 : typedValue.files, element: filesElement, isDirty: isDirty, setIsDirty: setIsDirty })))))));
120
+ return (_jsx("div", { className: "cypress-compliance-element", "aria-labelledby": `${id}-label`, "aria-describedby": ariaDescribedby, role: "region", children: _jsx(FormElementLabelContainer, { className: `ob-compliance ${!isEven ? 'even' : 'odd'}`, id: id, element: element, required: element.required, children: _jsxs("div", { className: "ob-compliance__container", children: [_jsx(FormElementOptions, { options: element.options, conditionallyShownOptionsElement: conditionallyShownOptionsElement, children: _jsx("div", { className: "buttons ob-buttons ob-buttons-radio cypress-radio-button-group", role: "group", "aria-labelledby": `${id}-label`, "aria-describedby": ariaDescribedby, children: filteredOptions.map((option) => {
121
+ const isSelected = (typedValue === null || typedValue === void 0 ? void 0 : typedValue.value) === option.value;
122
+ return (_jsx("div", { className: "ob-button-radio-container", children: _jsx(OptionButton, { element: element, option: option, isSelected: isSelected, onClick: () => {
123
+ setIsDirty();
124
+ handleValueChange(element, {
125
+ value: option.value,
126
+ });
127
+ }, className: clsx('button ob-button ob-button__input ob-radio__button cypress-radio-button-control', {
128
+ 'is-primary': isSelected,
129
+ 'is-light': !isSelected,
130
+ }), "aria-describedby": ariaDescribedby }) }, option.value));
131
+ }) }) }), (isDirty || displayValidationMessage) && !!validationMessage && (_jsx(FormElementValidationMessage, { message: validationMessage })), _jsxs("div", { className: "buttons ob-buttons ob-buttons-compliance cypress-compliance-button-group", children: [_jsx(ComplianceButton, { isActive: isShowingNotes, icon: "notes", onClick: toggleIsShowingNotes, disabled: element.readOnly || !(typedValue === null || typedValue === void 0 ? void 0 : typedValue.value), children: "Notes" }), _jsx(ComplianceButton, { isActive: isShowingFiles, icon: "perm_media", onClick: toggleIsShowingFiles, disabled: element.readOnly || !(typedValue === null || typedValue === void 0 ? void 0 : typedValue.value), children: "Media" })] }), isShowingNotes && (_jsx("div", { className: "ob-compliance-child-element", children: _jsx(FormElementTextarea, { id: `${id}-notes`, onChange: handleNotesChange, displayValidationMessage: false, validationMessage: undefined, value: typedValue === null || typedValue === void 0 ? void 0 : typedValue.notes, element: notesElement, isDirty: isDirty, setIsDirty: setIsDirty, autocompleteAttributes: (_a = notesElement.autocompleteAttributes) === null || _a === void 0 ? void 0 : _a.join(' ') }) })), isShowingFiles && (_jsx("div", { className: "ob-compliance-child-element", children: _jsx(FormElementFiles, { id: `${id}-files`, onChange: handleFilesChange, displayValidationMessage: false, validationMessage: undefined, value: typedValue === null || typedValue === void 0 ? void 0 : typedValue.files, element: filesElement, isDirty: isDirty, setIsDirty: setIsDirty }) }))] }) }) }));
144
132
  }
145
133
  export default React.memo(FormElementCompliance);
146
134
  //# sourceMappingURL=FormElementCompliance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementCompliance.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCompliance.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\nimport FormElementOptions from '../components/renderer/FormElementOptions'\nimport useFormElementOptions from '../hooks/useFormElementOptions'\nimport useToggleComplianceChildren from '../hooks/useToggleComplianceChildren'\nimport { FormTypes } from '@oneblink/types'\nimport OptionButton from './OptionButton'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport ComplianceButton from './ComplianceButton'\nimport FormElementFiles from './FormElementFiles'\nimport FormElementTextarea from './FormElementTextarea'\nimport {\n FormElementValueChangeHandler,\n FormElementConditionallyShownElement,\n IsDirtyProps,\n UpdateFormElementsHandler,\n} from '../types/form'\nimport { attachmentsService } from '@oneblink/apps'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ninterface Props extends IsDirtyProps {\n id: string\n element: FormTypes.ComplianceElement\n value: unknown\n onChange: FormElementValueChangeHandler<Value>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n conditionallyShownOptionsElement:\n | FormElementConditionallyShownElement\n | undefined\n isEven?: boolean\n onUpdateFormElements: UpdateFormElementsHandler\n}\n\nexport interface Value {\n value?: string\n notes?: string\n files?: attachmentsService.Attachment[]\n}\n\nconst baseElement = {\n conditionallyShow: false,\n isDataLookup: false,\n isElementLookup: false,\n required: false,\n requiresAllConditionallyShowPredicates: false,\n}\n\nfunction FormElementCompliance({\n id,\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n validationMessage,\n displayValidationMessage,\n isEven,\n onUpdateFormElements,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const typedValue = value as Value | undefined\n\n const notesElement = React.useMemo<FormTypes.TextareaElement>(\n () => ({\n ...baseElement,\n readOnly: element.readOnly,\n id: `${element.id}-notes`,\n label: 'Notes',\n name: `${element.name}_notes`,\n type: 'textarea',\n autocompleteAttributes: element.autocompleteAttributes,\n }),\n [\n element.autocompleteAttributes,\n element.id,\n element.name,\n element.readOnly,\n ],\n )\n const filesElement = React.useMemo<FormTypes.FilesElement>(\n () => ({\n ...baseElement,\n readOnly: element.readOnly,\n id: `${element.id}-files`,\n label: 'Media',\n name: `${element.name}_files`,\n type: 'files',\n maxEntries: undefined,\n minEntries: undefined,\n restrictFileTypes: false,\n storageType: element.storageType,\n }),\n [element.id, element.name, element.readOnly, element.storageType],\n )\n\n const handleValueChange = React.useCallback<\n FormElementValueChangeHandler<string>\n >(\n (fe, { value: v }) => {\n onChange(fe, {\n value: (existingValue: Value | undefined) => {\n let newValue = undefined\n if (typeof v === 'function') {\n newValue = v(existingValue ? existingValue.value : undefined)\n } else {\n newValue = v\n }\n if (!newValue) {\n return\n }\n return {\n ...existingValue,\n value: newValue,\n }\n },\n })\n },\n [onChange],\n )\n const handleNotesChange = React.useCallback<\n React.ComponentProps<typeof FormElementTextarea>['onChange']\n >(\n (fe, { value: v }) => {\n onChange(element, {\n value: (existingValue) => {\n if (!existingValue) {\n return\n }\n let newNotes = undefined\n if (typeof v === 'function') {\n newNotes = v(existingValue.notes)\n } else {\n newNotes = v\n }\n return {\n ...existingValue,\n notes: newNotes,\n }\n },\n })\n },\n [element, onChange],\n )\n const handleFilesChange = React.useCallback<\n React.ComponentProps<typeof FormElementFiles>['onChange']\n >(\n (fe, { value: v }) => {\n onChange(element, {\n value: (existingValue) => {\n if (!existingValue) {\n return\n }\n let newFiles = undefined\n if (typeof v === 'function') {\n newFiles = v(existingValue.files)\n } else {\n newFiles = v\n }\n return {\n ...existingValue,\n files: newFiles && newFiles.length ? newFiles : undefined,\n }\n },\n })\n },\n [element, onChange],\n )\n\n const [isShowingNotes, toggleIsShowingNotes] = useToggleComplianceChildren(\n element,\n !!typedValue?.notes,\n handleNotesChange,\n )\n const [isShowingFiles, toggleIsShowingFiles] = useToggleComplianceChildren(\n element,\n !!typedValue?.files,\n handleFilesChange,\n )\n\n const filteredOptions = useFormElementOptions({\n element,\n value: typedValue?.value,\n onChange: handleValueChange,\n conditionallyShownOptionsElement,\n onUpdateFormElements,\n })\n\n return (\n <div\n className=\"cypress-compliance-element\"\n aria-labelledby={`${id}-label`}\n aria-describedby={ariaDescribedby}\n role=\"region\"\n >\n <FormElementLabelContainer\n className={`ob-compliance ${!isEven ? 'even' : 'odd'}`}\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"ob-compliance__container\">\n <FormElementOptions\n options={element.options}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n >\n <div\n className=\"buttons ob-buttons ob-buttons-radio cypress-radio-button-group\"\n role=\"group\"\n aria-labelledby={`${id}-label`}\n aria-describedby={ariaDescribedby}\n >\n {filteredOptions.map((option) => {\n const isSelected = typedValue?.value === option.value\n return (\n <div className=\"ob-button-radio-container\" key={option.value}>\n <OptionButton\n element={element}\n option={option}\n isSelected={isSelected}\n onClick={() => {\n setIsDirty()\n handleValueChange(element, {\n value: option.value,\n })\n }}\n className={clsx(\n 'button ob-button ob-button__input ob-radio__button cypress-radio-button-control',\n {\n 'is-primary': isSelected,\n 'is-light': !isSelected,\n },\n )}\n aria-describedby={ariaDescribedby}\n />\n </div>\n )\n })}\n </div>\n </FormElementOptions>\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n <div className=\"buttons ob-buttons ob-buttons-compliance cypress-compliance-button-group\">\n <ComplianceButton\n isActive={isShowingNotes}\n icon=\"notes\"\n onClick={toggleIsShowingNotes}\n disabled={element.readOnly || !typedValue?.value}\n >\n Notes\n </ComplianceButton>\n <ComplianceButton\n isActive={isShowingFiles}\n icon=\"perm_media\"\n onClick={toggleIsShowingFiles}\n disabled={element.readOnly || !typedValue?.value}\n >\n Media\n </ComplianceButton>\n </div>\n {isShowingNotes && (\n <div className=\"ob-compliance-child-element\">\n <FormElementTextarea\n id={`${id}-notes`}\n onChange={handleNotesChange}\n displayValidationMessage={false}\n validationMessage={undefined}\n value={typedValue?.notes}\n element={notesElement}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n autocompleteAttributes={notesElement.autocompleteAttributes?.join(\n ' ',\n )}\n />\n </div>\n )}\n {isShowingFiles && (\n <div className=\"ob-compliance-child-element\">\n <FormElementFiles\n id={`${id}-files`}\n onChange={handleFilesChange}\n displayValidationMessage={false}\n validationMessage={undefined}\n value={typedValue?.files}\n element={filesElement}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n />\n </div>\n )}\n </div>\n </FormElementLabelContainer>\n </div>\n )\n}\nexport default React.memo(FormElementCompliance)\n"]}
1
+ {"version":3,"file":"FormElementCompliance.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCompliance.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\nimport FormElementOptions from '../components/renderer/FormElementOptions'\nimport useFormElementOptions from '../hooks/useFormElementOptions'\nimport useToggleComplianceChildren from '../hooks/useToggleComplianceChildren'\nimport { FormTypes } from '@oneblink/types'\nimport OptionButton from './OptionButton'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport ComplianceButton from './ComplianceButton'\nimport FormElementFiles from './FormElementFiles'\nimport FormElementTextarea from './FormElementTextarea'\nimport {\n FormElementValueChangeHandler,\n FormElementConditionallyShownElement,\n IsDirtyProps,\n UpdateFormElementsHandler,\n} from '../types/form'\nimport { attachmentsService } from '@oneblink/apps'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ninterface Props extends IsDirtyProps {\n id: string\n element: FormTypes.ComplianceElement\n value: unknown\n onChange: FormElementValueChangeHandler<Value>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n conditionallyShownOptionsElement:\n | FormElementConditionallyShownElement\n | undefined\n isEven?: boolean\n onUpdateFormElements: UpdateFormElementsHandler\n}\n\nexport interface Value {\n value?: string\n notes?: string\n files?: attachmentsService.Attachment[]\n}\n\nconst baseElement = {\n conditionallyShow: false,\n isDataLookup: false,\n isElementLookup: false,\n required: false,\n requiresAllConditionallyShowPredicates: false,\n}\n\nfunction FormElementCompliance({\n id,\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n validationMessage,\n displayValidationMessage,\n isEven,\n onUpdateFormElements,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const typedValue = value as Value | undefined\n\n const notesElement = React.useMemo<FormTypes.TextareaElement>(\n () => ({\n ...baseElement,\n readOnly: element.readOnly,\n id: `${element.id}-notes`,\n label: 'Notes',\n name: `${element.name}_notes`,\n type: 'textarea',\n autocompleteAttributes: element.autocompleteAttributes,\n }),\n [\n element.autocompleteAttributes,\n element.id,\n element.name,\n element.readOnly,\n ],\n )\n const filesElement = React.useMemo<FormTypes.FilesElement>(\n () => ({\n ...baseElement,\n readOnly: element.readOnly,\n id: `${element.id}-files`,\n label: 'Media',\n name: `${element.name}_files`,\n type: 'files',\n maxEntries: undefined,\n minEntries: undefined,\n restrictFileTypes: false,\n storageType: element.storageType,\n }),\n [element.id, element.name, element.readOnly, element.storageType],\n )\n\n const handleValueChange = React.useCallback<\n FormElementValueChangeHandler<string>\n >(\n (fe, { value: v }) => {\n onChange(fe, {\n value: (existingValue: Value | undefined) => {\n let newValue = undefined\n if (typeof v === 'function') {\n newValue = v(existingValue ? existingValue.value : undefined)\n } else {\n newValue = v\n }\n if (!newValue) {\n return\n }\n return {\n ...existingValue,\n value: newValue,\n }\n },\n })\n },\n [onChange],\n )\n const handleNotesChange = React.useCallback<\n React.ComponentProps<typeof FormElementTextarea>['onChange']\n >(\n (fe, { value: v }) => {\n onChange(element, {\n value: (existingValue) => {\n if (!existingValue) {\n return\n }\n let newNotes = undefined\n if (typeof v === 'function') {\n newNotes = v(existingValue.notes)\n } else {\n newNotes = v\n }\n return {\n ...existingValue,\n notes: newNotes,\n }\n },\n })\n },\n [element, onChange],\n )\n const handleFilesChange = React.useCallback<\n React.ComponentProps<typeof FormElementFiles>['onChange']\n >(\n (fe, { value: v }) => {\n onChange(element, {\n value: (existingValue) => {\n if (!existingValue) {\n return\n }\n let newFiles = undefined\n if (typeof v === 'function') {\n newFiles = v(existingValue.files)\n } else {\n newFiles = v\n }\n return {\n ...existingValue,\n files: newFiles && newFiles.length ? newFiles : undefined,\n }\n },\n })\n },\n [element, onChange],\n )\n\n const [isShowingNotes, toggleIsShowingNotes] = useToggleComplianceChildren(\n element,\n !!typedValue?.notes,\n handleNotesChange,\n )\n const [isShowingFiles, toggleIsShowingFiles] = useToggleComplianceChildren(\n element,\n !!typedValue?.files,\n handleFilesChange,\n )\n\n const filteredOptions = useFormElementOptions({\n element,\n value: typedValue?.value,\n onChange: handleValueChange,\n conditionallyShownOptionsElement,\n onUpdateFormElements,\n })\n\n return (\n <div\n className=\"cypress-compliance-element\"\n aria-labelledby={`${id}-label`}\n aria-describedby={ariaDescribedby}\n role=\"region\"\n >\n <FormElementLabelContainer\n className={`ob-compliance ${!isEven ? 'even' : 'odd'}`}\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"ob-compliance__container\">\n <FormElementOptions\n options={element.options}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n >\n <div\n className=\"buttons ob-buttons ob-buttons-radio cypress-radio-button-group\"\n role=\"group\"\n aria-labelledby={`${id}-label`}\n aria-describedby={ariaDescribedby}\n >\n {filteredOptions.map((option) => {\n const isSelected = typedValue?.value === option.value\n return (\n <div className=\"ob-button-radio-container\" key={option.value}>\n <OptionButton\n element={element}\n option={option}\n isSelected={isSelected}\n onClick={() => {\n setIsDirty()\n handleValueChange(element, {\n value: option.value,\n })\n }}\n className={clsx(\n 'button ob-button ob-button__input ob-radio__button cypress-radio-button-control',\n {\n 'is-primary': isSelected,\n 'is-light': !isSelected,\n },\n )}\n aria-describedby={ariaDescribedby}\n />\n </div>\n )\n })}\n </div>\n </FormElementOptions>\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n <div className=\"buttons ob-buttons ob-buttons-compliance cypress-compliance-button-group\">\n <ComplianceButton\n isActive={isShowingNotes}\n icon=\"notes\"\n onClick={toggleIsShowingNotes}\n disabled={element.readOnly || !typedValue?.value}\n >\n Notes\n </ComplianceButton>\n <ComplianceButton\n isActive={isShowingFiles}\n icon=\"perm_media\"\n onClick={toggleIsShowingFiles}\n disabled={element.readOnly || !typedValue?.value}\n >\n Media\n </ComplianceButton>\n </div>\n {isShowingNotes && (\n <div className=\"ob-compliance-child-element\">\n <FormElementTextarea\n id={`${id}-notes`}\n onChange={handleNotesChange}\n displayValidationMessage={false}\n validationMessage={undefined}\n value={typedValue?.notes}\n element={notesElement}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n autocompleteAttributes={notesElement.autocompleteAttributes?.join(\n ' ',\n )}\n />\n </div>\n )}\n {isShowingFiles && (\n <div className=\"ob-compliance-child-element\">\n <FormElementFiles\n id={`${id}-files`}\n onChange={handleFilesChange}\n displayValidationMessage={false}\n validationMessage={undefined}\n value={typedValue?.files}\n element={filesElement}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n />\n </div>\n )}\n </div>\n </FormElementLabelContainer>\n </div>\n )\n}\nexport default React.memo(FormElementCompliance)\n"]}
@@ -9,6 +9,6 @@ type Props = {
9
9
  displayValidationMessage: boolean;
10
10
  validationMessage: string | undefined;
11
11
  } & IsDirtyProps;
12
- declare function FormElementDate({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): React.JSX.Element;
12
+ declare function FormElementDate({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): import("react/jsx-runtime").JSX.Element;
13
13
  declare const _default: React.MemoExoticComponent<typeof FormElementDate>;
14
14
  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 { localisationService } from '@oneblink/apps';
3
4
  import { DatePicker } from '@mui/x-date-pickers';
@@ -59,15 +60,7 @@ function FormElementDate({ id, element, value, onChange, validationMessage, disp
59
60
  }, [value]);
60
61
  const { isLookingUp } = React.useContext(LookupNotificationContext);
61
62
  const isDisplayingValidationMessage = (displayValidationMessage || isDirty) && !!validationMessage && !isLookingUp;
62
- return (React.createElement("div", { className: "cypress-date-element" },
63
- React.createElement(FormElementLabelContainer, { className: "ob-date", id: id, element: element, required: element.required },
64
- React.createElement("div", { className: "field has-addons" },
65
- React.createElement(DatePicker, { label: element.label, format: shortDateFormat, ...commonProps }),
66
- !element.readOnly && (React.createElement(PickerInputButton, { tooltip: "Select date", onClick: openDatePicker, icon: "event" })),
67
- !!element.readOnly && !!text && (React.createElement("div", { className: "control" },
68
- React.createElement(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }))),
69
- React.createElement(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })),
70
- isDisplayingValidationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })))));
63
+ return (_jsx("div", { className: "cypress-date-element", children: _jsxs(FormElementLabelContainer, { className: "ob-date", id: id, element: element, required: element.required, children: [_jsxs("div", { className: "field has-addons", children: [_jsx(DatePicker, { label: element.label, format: shortDateFormat, ...commonProps }), !element.readOnly && (_jsx(PickerInputButton, { tooltip: "Select date", onClick: openDatePicker, icon: "event" })), !!element.readOnly && !!text && (_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 }))] }) }));
71
64
  }
72
65
  export default React.memo(FormElementDate);
73
66
  //# sourceMappingURL=FormElementDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementDate.js","sourceRoot":"","sources":["../../src/form-elements/FormElementDate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,qBAAqB,MAAM,8CAA8C,CAAA;AAChF,OAAO,YAAY,MAAM,qCAAqC,CAAA;AAE9D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAElE,OAAO,wBAAwB,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,yBAAyB,MAAM,oCAAoC,CAAA;AAC1E,OAAO,sBAAsB,EAAE,EAC7B,iBAAiB,GAClB,MAAM,kDAAkD,CAAA;AACzD,OAAO,4BAA4B,MAAM,qDAAqD,CAAA;AAW9F,SAAS,eAAe,CAAC,EACvB,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,EACP,UAAU,GACJ;IACN,MAAM,eAAe,GAAG,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAE9D,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,GACtD,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,eAAe,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAA;IAEzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,cAAc,CAAC;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,YAAY;YACxB,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,cAAc,CAAC;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;IAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAC/D,CAAC,KAAK,CAAC,CACR,CAAA;IAED,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,sBAAsB,CAAC;QAC3D,EAAE;QACF,KAAK,EAAE,QAAQ;QACf,OAAO;QACP,OAAO;QACP,eAAe;QACf,WAAW,EAAE,OAAO,CAAC,gBAAgB;QACrC,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CACpB,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC;KACL,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC;gBAC5C,UAAU,EAAE,SAAS;gBACrB,KAAK;aACN,CAAC,CAAA;YACF,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAA;IACnE,MAAM,6BAA6B,GACjC,CAAC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAA;IAE9E,OAAO,CACL,6BAAK,SAAS,EAAC,sBAAsB;QACnC,oBAAC,yBAAyB,IACxB,SAAS,EAAC,SAAS,EACnB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAE1B,6BAAK,SAAS,EAAC,kBAAkB;gBAC/B,oBAAC,UAAU,IACT,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,MAAM,EAAE,eAAe,KACnB,WAAW,GACf;gBACD,CAAC,OAAO,CAAC,QAAQ,IAAI,CACpB,oBAAC,iBAAiB,IAChB,OAAO,EAAC,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAC,OAAO,GACZ,CACH;gBACA,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAC/B,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,eAAe,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport { DatePicker } from '@mui/x-date-pickers'\nimport { format } from 'date-fns'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\n\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { parseDateValue } from '../services/generate-default-data'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useFormElementDateFromTo from '../hooks/useFormElementDateFromTo'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport useFormDatePickerProps, {\n PickerInputButton,\n} from '../hooks/form-date-picker/useFormDatePickerProps'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DateElement\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementDate({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n\n const { fromDate, fromDaysOffset, toDate, toDaysOffset } =\n useFormElementDateFromTo(element)\n\n const shortDateFormat = localisationService.getDateFnsFormats().shortDate\n\n const maxDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: toDaysOffset,\n value: toDate,\n })\n }, [toDate, toDaysOffset])\n\n const minDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: fromDaysOffset,\n value: fromDate,\n })\n }, [fromDate, fromDaysOffset])\n\n const isoValue = React.useMemo(\n () => parseDateValue({ dateOnly: false, daysOffset: 0, value }),\n [value],\n )\n\n const [commonProps, openDatePicker] = useFormDatePickerProps({\n id,\n value: isoValue,\n maxDate,\n minDate,\n ariaDescribedby,\n placeholder: element.placeholderValue,\n className: 'cypress-date-control',\n onBlur: setIsDirty,\n disabled: element.readOnly,\n required: element.required,\n onChange: (newDate) =>\n onChange(element, {\n value: newDate ? format(newDate, 'yyyy-MM-dd') : undefined,\n }),\n })\n\n const text = React.useMemo(() => {\n if (typeof value === 'string') {\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value,\n })\n if (date) {\n return localisationService.formatDate(date)\n }\n }\n return null\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (displayValidationMessage || isDirty) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-date-element\">\n <FormElementLabelContainer\n className=\"ob-date\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <DatePicker\n label={element.label}\n format={shortDateFormat}\n {...commonProps}\n />\n {!element.readOnly && (\n <PickerInputButton\n tooltip=\"Select date\"\n onClick={openDatePicker}\n icon=\"event\"\n />\n )}\n {!!element.readOnly && !!text && (\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(FormElementDate)\n"]}
1
+ {"version":3,"file":"FormElementDate.js","sourceRoot":"","sources":["../../src/form-elements/FormElementDate.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport { DatePicker } from '@mui/x-date-pickers'\nimport { format } from 'date-fns'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\n\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { parseDateValue } from '../services/generate-default-data'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useFormElementDateFromTo from '../hooks/useFormElementDateFromTo'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport useFormDatePickerProps, {\n PickerInputButton,\n} from '../hooks/form-date-picker/useFormDatePickerProps'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DateElement\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementDate({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n\n const { fromDate, fromDaysOffset, toDate, toDaysOffset } =\n useFormElementDateFromTo(element)\n\n const shortDateFormat = localisationService.getDateFnsFormats().shortDate\n\n const maxDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: toDaysOffset,\n value: toDate,\n })\n }, [toDate, toDaysOffset])\n\n const minDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: fromDaysOffset,\n value: fromDate,\n })\n }, [fromDate, fromDaysOffset])\n\n const isoValue = React.useMemo(\n () => parseDateValue({ dateOnly: false, daysOffset: 0, value }),\n [value],\n )\n\n const [commonProps, openDatePicker] = useFormDatePickerProps({\n id,\n value: isoValue,\n maxDate,\n minDate,\n ariaDescribedby,\n placeholder: element.placeholderValue,\n className: 'cypress-date-control',\n onBlur: setIsDirty,\n disabled: element.readOnly,\n required: element.required,\n onChange: (newDate) =>\n onChange(element, {\n value: newDate ? format(newDate, 'yyyy-MM-dd') : undefined,\n }),\n })\n\n const text = React.useMemo(() => {\n if (typeof value === 'string') {\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value,\n })\n if (date) {\n return localisationService.formatDate(date)\n }\n }\n return null\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (displayValidationMessage || isDirty) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-date-element\">\n <FormElementLabelContainer\n className=\"ob-date\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <DatePicker\n label={element.label}\n format={shortDateFormat}\n {...commonProps}\n />\n {!element.readOnly && (\n <PickerInputButton\n tooltip=\"Select date\"\n onClick={openDatePicker}\n icon=\"event\"\n />\n )}\n {!!element.readOnly && !!text && (\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(FormElementDate)\n"]}
@@ -9,6 +9,6 @@ type Props = {
9
9
  displayValidationMessage: boolean;
10
10
  validationMessage: string | undefined;
11
11
  } & IsDirtyProps;
12
- declare function FormElementDateTime({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): React.JSX.Element;
12
+ declare function FormElementDateTime({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, }: Props): import("react/jsx-runtime").JSX.Element;
13
13
  declare const _default: React.MemoExoticComponent<typeof FormElementDateTime>;
14
14
  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 { localisationService } from '@oneblink/apps';
3
4
  import { DateTimePicker } from '@mui/x-date-pickers';
@@ -53,15 +54,7 @@ function FormElementDateTime({ id, element, value, onChange, validationMessage,
53
54
  }, [value]);
54
55
  const { isLookingUp } = React.useContext(LookupNotificationContext);
55
56
  const isDisplayingValidationMessage = (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp;
56
- return (React.createElement("div", { className: "cypress-datetime-element" },
57
- React.createElement(FormElementLabelContainer, { className: "ob-datetime", id: id, element: element, required: element.required },
58
- React.createElement("div", { className: "field has-addons" },
59
- React.createElement(DateTimePicker, { label: element.label, format: shortDateTimeFormat, ...commonProps, timeSteps: { minutes: 1 } }),
60
- !element.readOnly && (React.createElement(PickerInputButton, { tooltip: "Select date and time", onClick: openDateTimePicker, icon: "date_range" })),
61
- !!element.readOnly && !!text && (React.createElement("div", { className: "control" },
62
- React.createElement(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: text }))),
63
- React.createElement(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })),
64
- isDisplayingValidationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })))));
57
+ return (_jsx("div", { className: "cypress-datetime-element", children: _jsxs(FormElementLabelContainer, { className: "ob-datetime", id: id, element: element, required: element.required, children: [_jsxs("div", { className: "field has-addons", children: [_jsx(DateTimePicker, { label: element.label, format: shortDateTimeFormat, ...commonProps, timeSteps: { minutes: 1 } }), !element.readOnly && (_jsx(PickerInputButton, { tooltip: "Select date and time", onClick: openDateTimePicker, icon: "date_range" })), !!element.readOnly && !!text && (_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 }))] }) }));
65
58
  }
66
59
  export default React.memo(FormElementDateTime);
67
60
  //# sourceMappingURL=FormElementDateTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementDateTime.js","sourceRoot":"","sources":["../../src/form-elements/FormElementDateTime.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport { DateTimePicker } from '@mui/x-date-pickers'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\n\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { parseDateValue } from '../services/generate-default-data'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useFormElementDateFromTo from '../hooks/useFormElementDateFromTo'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport useFormDatePickerProps, {\n PickerInputButton,\n} from '../hooks/form-date-picker/useFormDatePickerProps'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DateTimeElement\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementDateTime({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n\n const { fromDate, fromDaysOffset, toDate, toDaysOffset } =\n useFormElementDateFromTo(element)\n\n const shortDateTimeFormat =\n localisationService.getDateFnsFormats().shortDateTime\n\n const maxDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: toDaysOffset,\n value: toDate,\n })\n }, [toDate, toDaysOffset])\n\n const minDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: fromDaysOffset,\n value: fromDate,\n })\n }, [fromDate, fromDaysOffset])\n\n const [commonProps, openDateTimePicker] = useFormDatePickerProps({\n id,\n value: typeof value === 'string' ? value : undefined,\n maxDate,\n minDate,\n ariaDescribedby,\n placeholder: element.placeholderValue,\n className: 'cypress-date-time-control',\n disabled: element.readOnly,\n required: element.required,\n onBlur: setIsDirty,\n onChange: (newDate) => {\n onChange(element, {\n value: newDate?.toISOString(),\n })\n },\n })\n\n const text = React.useMemo(() => {\n if (typeof value !== 'string') {\n return null\n }\n return localisationService.formatDatetime(new Date(value))\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-datetime-element\">\n <FormElementLabelContainer\n className=\"ob-datetime\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <DateTimePicker\n label={element.label}\n format={shortDateTimeFormat}\n {...commonProps}\n timeSteps={{ minutes: 1 }}\n />\n {!element.readOnly && (\n <PickerInputButton\n tooltip=\"Select date and time\"\n onClick={openDateTimePicker}\n icon=\"date_range\"\n />\n )}\n {!!element.readOnly && !!text && (\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(FormElementDateTime)\n"]}
1
+ {"version":3,"file":"FormElementDateTime.js","sourceRoot":"","sources":["../../src/form-elements/FormElementDateTime.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { localisationService } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport { DateTimePicker } from '@mui/x-date-pickers'\n\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport LookupButton from '../components/renderer/LookupButton'\n\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { parseDateValue } from '../services/generate-default-data'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useFormElementDateFromTo from '../hooks/useFormElementDateFromTo'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport useFormDatePickerProps, {\n PickerInputButton,\n} from '../hooks/form-date-picker/useFormDatePickerProps'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.DateTimeElement\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nfunction FormElementDateTime({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n\n const { fromDate, fromDaysOffset, toDate, toDaysOffset } =\n useFormElementDateFromTo(element)\n\n const shortDateTimeFormat =\n localisationService.getDateFnsFormats().shortDateTime\n\n const maxDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: toDaysOffset,\n value: toDate,\n })\n }, [toDate, toDaysOffset])\n\n const minDate = React.useMemo(() => {\n return parseDateValue({\n dateOnly: true,\n daysOffset: fromDaysOffset,\n value: fromDate,\n })\n }, [fromDate, fromDaysOffset])\n\n const [commonProps, openDateTimePicker] = useFormDatePickerProps({\n id,\n value: typeof value === 'string' ? value : undefined,\n maxDate,\n minDate,\n ariaDescribedby,\n placeholder: element.placeholderValue,\n className: 'cypress-date-time-control',\n disabled: element.readOnly,\n required: element.required,\n onBlur: setIsDirty,\n onChange: (newDate) => {\n onChange(element, {\n value: newDate?.toISOString(),\n })\n },\n })\n\n const text = React.useMemo(() => {\n if (typeof value !== 'string') {\n return null\n }\n return localisationService.formatDatetime(new Date(value))\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n return (\n <div className=\"cypress-datetime-element\">\n <FormElementLabelContainer\n className=\"ob-datetime\"\n id={id}\n element={element}\n required={element.required}\n >\n <div className=\"field has-addons\">\n <DateTimePicker\n label={element.label}\n format={shortDateTimeFormat}\n {...commonProps}\n timeSteps={{ minutes: 1 }}\n />\n {!element.readOnly && (\n <PickerInputButton\n tooltip=\"Select date and time\"\n onClick={openDateTimePicker}\n icon=\"date_range\"\n />\n )}\n {!!element.readOnly && !!text && (\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(FormElementDateTime)\n"]}
@@ -10,6 +10,6 @@ type Props = {
10
10
  validationMessage: string | undefined;
11
11
  autocompleteAttributes?: string;
12
12
  } & IsDirtyProps;
13
- declare function FormElementEmail({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): React.JSX.Element;
13
+ declare function FormElementEmail({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
14
14
  declare const _default: React.MemoExoticComponent<typeof FormElementEmail>;
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 FormElementEmail({ id, element, value, onChange, validationMessage, dis
11
12
  const { isLookingUp } = React.useContext(LookupNotificationContext);
12
13
  const isDisplayingValidationMessage = (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp;
13
14
  const text = typeof value === 'string' ? value : '';
14
- return (React.createElement("div", { className: "cypress-email-element" },
15
- React.createElement(FormElementLabelContainer, { className: "ob-email", 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: "email", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-email-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" }, "email"))),
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-email-element", children: _jsxs(FormElementLabelContainer, { className: "ob-email", 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: "email", placeholder: element.placeholderValue, id: id, name: element.name, className: "input ob-input cypress-email-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: "email" }) })] }), !!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(FormElementEmail);
29
20
  //# sourceMappingURL=FormElementEmail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementEmail.js","sourceRoot":"","sources":["../../src/form-elements/FormElementEmail.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,gBAAgB,CAAC,EACxB,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,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,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,OAAO,CACL,6BAAK,SAAS,EAAC,uBAAuB;QACpC,oBAAC,yBAAyB,IACxB,SAAS,EAAC,UAAU,EACpB,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,OAAO,EACZ,WAAW,EAAE,OAAO,CAAC,gBAAgB,EACrC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAC,sCAAsC,EAChD,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,gBAAgB,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.EmailElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementEmail({\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 { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n const text = typeof value === 'string' ? value : ''\n return (\n <div className=\"cypress-email-element\">\n <FormElementLabelContainer\n className=\"ob-email\"\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=\"email\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-email-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\">email</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(FormElementEmail)\n"]}
1
+ {"version":3,"file":"FormElementEmail.js","sourceRoot":"","sources":["../../src/form-elements/FormElementEmail.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,gBAAgB,CAAC,EACxB,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,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,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,OAAO,CACL,cAAK,SAAS,EAAC,uBAAuB,YACpC,MAAC,yBAAyB,IACxB,SAAS,EAAC,UAAU,EACpB,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,OAAO,EACZ,WAAW,EAAE,OAAO,CAAC,gBAAgB,EACrC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAC,sCAAsC,EAChD,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,gBAAgB,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.EmailElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementEmail({\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 { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n const text = typeof value === 'string' ? value : ''\n return (\n <div className=\"cypress-email-element\">\n <FormElementLabelContainer\n className=\"ob-email\"\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=\"email\"\n placeholder={element.placeholderValue}\n id={id}\n name={element.name}\n className=\"input ob-input cypress-email-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\">email</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(FormElementEmail)\n"]}
@@ -1,3 +1,4 @@
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 downloadAttachment from '../services/download-file';
3
4
  import useAttachment from '../hooks/attachments/useAttachment';
@@ -98,18 +99,7 @@ const FormElementFile = ({ element, onRemove, file, onChange, disableUpload, ind
98
99
  };
99
100
  }
100
101
  }, [file, onChange]);
101
- return (React.createElement(React.Fragment, null,
102
- React.createElement(FileCard, { element: element, isUploading: isUploading, isUploadPaused: disableUpload, uploadErrorMessage: uploadErrorMessage, loadAttachmentUrlError: loadAttachmentUrlError, isLoadingAttachmentUrl: isLoadingAttachmentUrl || state.isLoading, attachmentUrl: attachmentUrl, isContentTypeImage: isContentTypeImage, fileName: file.fileName, onDownload: canDownload ? handleDownload : undefined, onRemove: handleRemove, onRetry: handleRetry, progress: progress, index: index, onAnnotate: isContentTypeImage ? setIsAnnotating : undefined, onCrop: isContentTypeImage ? setIsCropping : undefined }),
103
- isCropping && attachmentUrl && (React.createElement(CropModal, { imageSrc: attachmentUrl, onClose: clearIsCropping, onSave: handleSaveCrop })),
104
- isAnnotating && attachmentUrl && (React.createElement(AnnotationModal, { imageSrc: attachmentUrl, onClose: clearIsAnnotating, onSave: handleAnnotate })),
105
- state.error && (React.createElement(Modal, { isOpen: true, title: "Whoops...", className: "cypress-error-modal", titleClassName: "cypress-error-title", actions: React.createElement("button", { type: "button", className: "button ob-button is-primary cypress-close-error-button", onClick: () => setState({ isLoading: false }), autoFocus: true }, "Okay") },
106
- React.createElement("p", null,
107
- "An error occurred while attempting to edit an image. Please click",
108
- ' ',
109
- React.createElement("b", null, "Okay"),
110
- " below to try again. If the problem persists, please contact support."),
111
- React.createElement("div", { className: "content has-margin-top-6" },
112
- React.createElement("blockquote", null, state.error.toString()))))));
102
+ return (_jsxs(_Fragment, { children: [_jsx(FileCard, { element: element, isUploading: isUploading, isUploadPaused: disableUpload, uploadErrorMessage: uploadErrorMessage, loadAttachmentUrlError: loadAttachmentUrlError, isLoadingAttachmentUrl: isLoadingAttachmentUrl || state.isLoading, attachmentUrl: attachmentUrl, isContentTypeImage: isContentTypeImage, fileName: file.fileName, onDownload: canDownload ? handleDownload : undefined, onRemove: handleRemove, onRetry: handleRetry, progress: progress, index: index, onAnnotate: isContentTypeImage ? setIsAnnotating : undefined, onCrop: isContentTypeImage ? setIsCropping : undefined }), isCropping && attachmentUrl && (_jsx(CropModal, { imageSrc: attachmentUrl, onClose: clearIsCropping, onSave: handleSaveCrop })), isAnnotating && attachmentUrl && (_jsx(AnnotationModal, { imageSrc: attachmentUrl, onClose: clearIsAnnotating, onSave: handleAnnotate })), state.error && (_jsxs(Modal, { isOpen: true, title: "Whoops...", className: "cypress-error-modal", titleClassName: "cypress-error-title", actions: _jsx("button", { type: "button", className: "button ob-button is-primary cypress-close-error-button", onClick: () => setState({ isLoading: false }), autoFocus: true, children: "Okay" }), children: [_jsxs("p", { children: ["An error occurred while attempting to edit an image. Please click", ' ', _jsx("b", { children: "Okay" }), " below to try again. If the problem persists, please contact support."] }), _jsx("div", { className: "content has-margin-top-6", children: _jsx("blockquote", { children: state.error.toString() }) })] }))] }));
113
103
  };
114
104
  export default React.memo(FormElementFile);
115
105
  //# sourceMappingURL=FormElementFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementFile.js","sourceRoot":"","sources":["../../src/form-elements/FormElementFile.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport downloadAttachment from '../services/download-file'\nimport { FormTypes } from '@oneblink/types'\nimport useAttachment, { OnChange } from '../hooks/attachments/useAttachment'\nimport FileCard from '../components/renderer/attachments/FileCard'\nimport { attachmentsService } from '@oneblink/apps'\nimport useBooleanState from '../hooks/useBooleanState'\nimport CropModal from '../components/ImageCropper/CropModal'\nimport AnnotationModal, {\n superimposeAnnotationOnImage,\n} from '../components/renderer/AnnotationModal'\nimport { generateCroppedImageBlob } from '../components/ImageCropper'\nimport { prepareNewAttachment } from '../services/attachments'\nimport Modal from '../components/renderer/Modal'\nimport { PercentCrop } from 'react-image-crop'\n\ntype Props = {\n element: FormTypes.FilesElement\n /** If set to `undefined`, the remove button will be hidden */\n onRemove: ((id: string) => void) | undefined\n file: attachmentsService.Attachment\n disableUpload: boolean\n onChange: OnChange\n index: number\n}\n\nconst FormElementFile = ({\n element,\n onRemove,\n file,\n onChange,\n disableUpload,\n index,\n}: Props) => {\n const [isAnnotating, setIsAnnotating, clearIsAnnotating] =\n useBooleanState(false)\n const [isCropping, setIsCropping, clearIsCropping] = useBooleanState(false)\n const [state, setState] = React.useState<{\n isLoading: boolean\n error?: Error\n }>({\n isLoading: false,\n error: undefined,\n })\n const {\n attachmentUrl,\n contentType,\n isUploading,\n uploadErrorMessage,\n isLoadingAttachmentUrl,\n loadAttachmentUrlError,\n isContentTypeImage,\n canDownload,\n progress,\n } = useAttachment(file, element, onChange, disableUpload)\n\n const handleRemove = React.useMemo(() => {\n if (!onRemove) {\n return\n }\n return () => {\n if (!file.type) {\n return onRemove(file.id)\n }\n return onRemove(file._id)\n }\n }, [file, onRemove])\n\n const handleDownload = React.useCallback(async () => {\n await downloadAttachment(file)\n }, [file])\n\n const handleAnnotate = React.useCallback(\n async (annotationDataUri: string) => {\n if (!attachmentUrl || file.type) return\n clearIsAnnotating()\n\n setState({\n isLoading: true,\n })\n\n try {\n const blob = await superimposeAnnotationOnImage({\n annotationDataUri,\n attachmentUrl,\n })\n setState({\n isLoading: false,\n })\n if (!blob) return\n const attachment = prepareNewAttachment(blob, file.fileName, element)\n onChange(file.id, attachment)\n } catch (error) {\n setState({\n error: error as Error,\n isLoading: false,\n })\n }\n },\n [attachmentUrl, clearIsAnnotating, element, file, onChange],\n )\n const handleSaveCrop = React.useCallback(\n async (croppedAreaPercent: PercentCrop) => {\n if (!attachmentUrl || file.type) return\n clearIsCropping()\n\n setState({\n isLoading: true,\n })\n\n try {\n const croppedImage = await generateCroppedImageBlob({\n croppedAreaPercent,\n imgSrc: attachmentUrl,\n fileType: contentType,\n })\n setState({\n isLoading: false,\n })\n if (!croppedImage) return\n const attachment = prepareNewAttachment(\n croppedImage,\n file.fileName,\n element,\n )\n onChange(file.id, attachment)\n } catch (error) {\n setState({\n error: error as Error,\n isLoading: false,\n })\n }\n },\n [attachmentUrl, clearIsCropping, contentType, element, file, onChange],\n )\n const handleRetry = React.useMemo(() => {\n if (file.type === 'ERROR' && file.data) {\n return () => {\n onChange(file._id, {\n type: 'NEW',\n _id: file._id,\n data: file.data,\n fileName: file.fileName,\n isPrivate: file.isPrivate,\n })\n }\n }\n }, [file, onChange])\n\n return (\n <>\n <FileCard\n element={element}\n isUploading={isUploading}\n isUploadPaused={disableUpload}\n uploadErrorMessage={uploadErrorMessage}\n loadAttachmentUrlError={loadAttachmentUrlError}\n isLoadingAttachmentUrl={isLoadingAttachmentUrl || state.isLoading}\n attachmentUrl={attachmentUrl}\n isContentTypeImage={isContentTypeImage}\n fileName={file.fileName}\n onDownload={canDownload ? handleDownload : undefined}\n onRemove={handleRemove}\n onRetry={handleRetry}\n progress={progress}\n index={index}\n onAnnotate={isContentTypeImage ? setIsAnnotating : undefined}\n onCrop={isContentTypeImage ? setIsCropping : undefined}\n />\n {isCropping && attachmentUrl && (\n <CropModal\n imageSrc={attachmentUrl}\n onClose={clearIsCropping}\n onSave={handleSaveCrop}\n />\n )}\n {isAnnotating && attachmentUrl && (\n <AnnotationModal\n imageSrc={attachmentUrl}\n onClose={clearIsAnnotating}\n onSave={handleAnnotate}\n />\n )}\n {state.error && (\n <Modal\n isOpen\n title=\"Whoops...\"\n className=\"cypress-error-modal\"\n titleClassName=\"cypress-error-title\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-close-error-button\"\n onClick={() => setState({ isLoading: false })}\n autoFocus\n >\n Okay\n </button>\n }\n >\n <p>\n An error occurred while attempting to edit an image. Please click{' '}\n <b>Okay</b> below to try again. If the problem persists, please\n contact support.\n </p>\n\n <div className=\"content has-margin-top-6\">\n <blockquote>{state.error.toString()}</blockquote>\n </div>\n </Modal>\n )}\n </>\n )\n}\n\nexport default React.memo<Props>(FormElementFile)\n"]}
1
+ {"version":3,"file":"FormElementFile.js","sourceRoot":"","sources":["../../src/form-elements/FormElementFile.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport downloadAttachment from '../services/download-file'\nimport { FormTypes } from '@oneblink/types'\nimport useAttachment, { OnChange } from '../hooks/attachments/useAttachment'\nimport FileCard from '../components/renderer/attachments/FileCard'\nimport { attachmentsService } from '@oneblink/apps'\nimport useBooleanState from '../hooks/useBooleanState'\nimport CropModal from '../components/ImageCropper/CropModal'\nimport AnnotationModal, {\n superimposeAnnotationOnImage,\n} from '../components/renderer/AnnotationModal'\nimport { generateCroppedImageBlob } from '../components/ImageCropper'\nimport { prepareNewAttachment } from '../services/attachments'\nimport Modal from '../components/renderer/Modal'\nimport { PercentCrop } from 'react-image-crop'\n\ntype Props = {\n element: FormTypes.FilesElement\n /** If set to `undefined`, the remove button will be hidden */\n onRemove: ((id: string) => void) | undefined\n file: attachmentsService.Attachment\n disableUpload: boolean\n onChange: OnChange\n index: number\n}\n\nconst FormElementFile = ({\n element,\n onRemove,\n file,\n onChange,\n disableUpload,\n index,\n}: Props) => {\n const [isAnnotating, setIsAnnotating, clearIsAnnotating] =\n useBooleanState(false)\n const [isCropping, setIsCropping, clearIsCropping] = useBooleanState(false)\n const [state, setState] = React.useState<{\n isLoading: boolean\n error?: Error\n }>({\n isLoading: false,\n error: undefined,\n })\n const {\n attachmentUrl,\n contentType,\n isUploading,\n uploadErrorMessage,\n isLoadingAttachmentUrl,\n loadAttachmentUrlError,\n isContentTypeImage,\n canDownload,\n progress,\n } = useAttachment(file, element, onChange, disableUpload)\n\n const handleRemove = React.useMemo(() => {\n if (!onRemove) {\n return\n }\n return () => {\n if (!file.type) {\n return onRemove(file.id)\n }\n return onRemove(file._id)\n }\n }, [file, onRemove])\n\n const handleDownload = React.useCallback(async () => {\n await downloadAttachment(file)\n }, [file])\n\n const handleAnnotate = React.useCallback(\n async (annotationDataUri: string) => {\n if (!attachmentUrl || file.type) return\n clearIsAnnotating()\n\n setState({\n isLoading: true,\n })\n\n try {\n const blob = await superimposeAnnotationOnImage({\n annotationDataUri,\n attachmentUrl,\n })\n setState({\n isLoading: false,\n })\n if (!blob) return\n const attachment = prepareNewAttachment(blob, file.fileName, element)\n onChange(file.id, attachment)\n } catch (error) {\n setState({\n error: error as Error,\n isLoading: false,\n })\n }\n },\n [attachmentUrl, clearIsAnnotating, element, file, onChange],\n )\n const handleSaveCrop = React.useCallback(\n async (croppedAreaPercent: PercentCrop) => {\n if (!attachmentUrl || file.type) return\n clearIsCropping()\n\n setState({\n isLoading: true,\n })\n\n try {\n const croppedImage = await generateCroppedImageBlob({\n croppedAreaPercent,\n imgSrc: attachmentUrl,\n fileType: contentType,\n })\n setState({\n isLoading: false,\n })\n if (!croppedImage) return\n const attachment = prepareNewAttachment(\n croppedImage,\n file.fileName,\n element,\n )\n onChange(file.id, attachment)\n } catch (error) {\n setState({\n error: error as Error,\n isLoading: false,\n })\n }\n },\n [attachmentUrl, clearIsCropping, contentType, element, file, onChange],\n )\n const handleRetry = React.useMemo(() => {\n if (file.type === 'ERROR' && file.data) {\n return () => {\n onChange(file._id, {\n type: 'NEW',\n _id: file._id,\n data: file.data,\n fileName: file.fileName,\n isPrivate: file.isPrivate,\n })\n }\n }\n }, [file, onChange])\n\n return (\n <>\n <FileCard\n element={element}\n isUploading={isUploading}\n isUploadPaused={disableUpload}\n uploadErrorMessage={uploadErrorMessage}\n loadAttachmentUrlError={loadAttachmentUrlError}\n isLoadingAttachmentUrl={isLoadingAttachmentUrl || state.isLoading}\n attachmentUrl={attachmentUrl}\n isContentTypeImage={isContentTypeImage}\n fileName={file.fileName}\n onDownload={canDownload ? handleDownload : undefined}\n onRemove={handleRemove}\n onRetry={handleRetry}\n progress={progress}\n index={index}\n onAnnotate={isContentTypeImage ? setIsAnnotating : undefined}\n onCrop={isContentTypeImage ? setIsCropping : undefined}\n />\n {isCropping && attachmentUrl && (\n <CropModal\n imageSrc={attachmentUrl}\n onClose={clearIsCropping}\n onSave={handleSaveCrop}\n />\n )}\n {isAnnotating && attachmentUrl && (\n <AnnotationModal\n imageSrc={attachmentUrl}\n onClose={clearIsAnnotating}\n onSave={handleAnnotate}\n />\n )}\n {state.error && (\n <Modal\n isOpen\n title=\"Whoops...\"\n className=\"cypress-error-modal\"\n titleClassName=\"cypress-error-title\"\n actions={\n <button\n type=\"button\"\n className=\"button ob-button is-primary cypress-close-error-button\"\n onClick={() => setState({ isLoading: false })}\n autoFocus\n >\n Okay\n </button>\n }\n >\n <p>\n An error occurred while attempting to edit an image. Please click{' '}\n <b>Okay</b> below to try again. If the problem persists, please\n contact support.\n </p>\n\n <div className=\"content has-margin-top-6\">\n <blockquote>{state.error.toString()}</blockquote>\n </div>\n </Modal>\n )}\n </>\n )\n}\n\nexport default React.memo<Props>(FormElementFile)\n"]}
@@ -10,6 +10,6 @@ declare function FormElementFiles({ id, element, value, onChange, validationMess
10
10
  onChange: FormElementValueChangeHandler<attachmentsService.Attachment[]>;
11
11
  displayValidationMessage: boolean;
12
12
  validationMessage: string | undefined;
13
- } & IsDirtyProps): React.JSX.Element;
13
+ } & IsDirtyProps): import("react/jsx-runtime").JSX.Element;
14
14
  declare const _default: React.MemoExoticComponent<typeof FormElementFiles>;
15
15
  export default _default;