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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
  2. package/dist/OneBlinkAutoSaveForm.js +28 -28
  3. package/dist/OneBlinkForm.d.ts +11 -11
  4. package/dist/OneBlinkForm.js +11 -11
  5. package/dist/OneBlinkFormBase.d.ts +28 -28
  6. package/dist/OneBlinkFormBase.js +472 -472
  7. package/dist/OneBlinkFormStoreView.d.ts +8 -0
  8. package/dist/OneBlinkFormStoreView.js +55 -0
  9. package/dist/OneBlinkFormStoreView.js.map +1 -0
  10. package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
  11. package/dist/OneBlinkReadOnlyForm.js +48 -48
  12. package/dist/components/AnnotationModal.d.ts +8 -0
  13. package/dist/components/AnnotationModal.js +104 -0
  14. package/dist/components/AnnotationModal.js.map +1 -0
  15. package/dist/components/AutocompleteDropdown.d.ts +26 -0
  16. package/dist/components/AutocompleteDropdown.js +174 -0
  17. package/dist/components/AutocompleteDropdown.js.map +1 -0
  18. package/dist/components/CopyToClipboardButton.d.ts +9 -0
  19. package/dist/components/CopyToClipboardButton.js +14 -0
  20. package/dist/components/CopyToClipboardButton.js.map +1 -0
  21. package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
  22. package/dist/components/CopyToClipboardIconButton.js +32 -32
  23. package/dist/components/CustomAccordion.d.ts +27 -27
  24. package/dist/components/CustomAccordion.js +37 -37
  25. package/dist/components/CustomisableButtonInner.d.ts +7 -0
  26. package/dist/components/CustomisableButtonInner.js +9 -0
  27. package/dist/components/CustomisableButtonInner.js.map +1 -0
  28. package/dist/components/ErrorMessage.d.ts +13 -0
  29. package/dist/components/ErrorMessage.js +13 -0
  30. package/dist/components/ErrorMessage.js.map +1 -0
  31. package/dist/components/ErrorSnackbar.d.ts +8 -8
  32. package/dist/components/ErrorSnackbar.js +25 -25
  33. package/dist/components/FormElementLabelContainer.d.ts +12 -0
  34. package/dist/components/FormElementLabelContainer.js +16 -0
  35. package/dist/components/FormElementLabelContainer.js.map +1 -0
  36. package/dist/components/FormElementOptions.d.ts +9 -0
  37. package/dist/components/FormElementOptions.js +15 -0
  38. package/dist/components/FormElementOptions.js.map +1 -0
  39. package/dist/components/Lists.d.ts +25 -25
  40. package/dist/components/Lists.js +44 -44
  41. package/dist/components/LoadingWithMessage.d.ts +6 -6
  42. package/dist/components/LoadingWithMessage.js +11 -11
  43. package/dist/components/LookupButton.d.ts +10 -0
  44. package/dist/components/LookupButton.js +30 -0
  45. package/dist/components/LookupButton.js.map +1 -0
  46. package/dist/components/LookupNotification.d.ts +12 -0
  47. package/dist/components/LookupNotification.js +231 -0
  48. package/dist/components/LookupNotification.js.map +1 -0
  49. package/dist/components/Modal.d.ts +14 -0
  50. package/dist/components/Modal.js +15 -0
  51. package/dist/components/Modal.js.map +1 -0
  52. package/dist/components/NoResourcesYet.d.ts +12 -0
  53. package/dist/components/NoResourcesYet.js +7 -0
  54. package/dist/components/NoResourcesYet.js.map +1 -0
  55. package/dist/components/OnLoading.d.ts +10 -0
  56. package/dist/components/OnLoading.js +12 -0
  57. package/dist/components/OnLoading.js.map +1 -0
  58. package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
  59. package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
  60. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
  61. package/dist/components/OneBlinkFormElements.d.ts +19 -0
  62. package/dist/components/OneBlinkFormElements.js +196 -0
  63. package/dist/components/OneBlinkFormElements.js.map +1 -0
  64. package/dist/components/PageFormElements.d.ts +17 -0
  65. package/dist/components/PageFormElements.js +49 -0
  66. package/dist/components/PageFormElements.js.map +1 -0
  67. package/dist/components/ToggleAllCheckbox.d.ts +13 -0
  68. package/dist/components/ToggleAllCheckbox.js +27 -0
  69. package/dist/components/ToggleAllCheckbox.js.map +1 -0
  70. package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
  71. package/dist/components/attachments/AttachmentStatus.js +35 -0
  72. package/dist/components/attachments/AttachmentStatus.js.map +1 -0
  73. package/dist/components/attachments/FileCard.d.ts +18 -0
  74. package/dist/components/attachments/FileCard.js +58 -0
  75. package/dist/components/attachments/FileCard.js.map +1 -0
  76. package/dist/components/attachments/FileCardContent.d.ts +5 -0
  77. package/dist/components/attachments/FileCardContent.js +11 -0
  78. package/dist/components/attachments/FileCardContent.js.map +1 -0
  79. package/dist/components/attachments/Files.d.ts +14 -0
  80. package/dist/components/attachments/Files.js +27 -0
  81. package/dist/components/attachments/Files.js.map +1 -0
  82. package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
  83. package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
  84. package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
  85. package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
  86. package/dist/components/attachments/UploadingAttachment.js +13 -0
  87. package/dist/components/attachments/UploadingAttachment.js.map +1 -0
  88. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
  89. package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
  90. package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
  91. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
  92. package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
  93. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
  94. package/dist/components/formStore/FormStore.d.ts +9 -0
  95. package/dist/components/formStore/FormStore.js +103 -0
  96. package/dist/components/formStore/FormStore.js.map +1 -0
  97. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
  98. package/dist/components/formStore/FormStoreTableProvider.js +90 -90
  99. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
  100. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
  101. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
  102. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
  103. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
  104. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
  105. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
  106. package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
  107. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
  108. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
  109. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
  110. package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
  111. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
  112. package/dist/components/formStore/display/ElementDisplay.js +77 -77
  113. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
  114. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  115. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
  116. package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
  117. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
  118. package/dist/components/formStore/table/ColumnFilters.js +179 -179
  119. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
  120. package/dist/components/formStore/table/FormElementTableCell.js +228 -228
  121. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
  122. package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
  123. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
  124. package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
  125. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
  126. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
  127. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
  128. package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
  129. package/dist/components/formStore/table/generateColumns.d.ts +24 -24
  130. package/dist/components/formStore/table/generateColumns.js +290 -290
  131. package/dist/components/formStore/table/index.d.ts +17 -0
  132. package/dist/components/formStore/table/index.js +194 -0
  133. package/dist/components/formStore/table/index.js.map +1 -0
  134. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
  135. package/dist/components/formStore/table/useFormStoreTable.js +157 -157
  136. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
  137. package/dist/components/formStore/useFormStoreTableContext.js +9 -9
  138. package/dist/components/messages/ErrorMessage.d.ts +12 -12
  139. package/dist/components/messages/ErrorMessage.js +12 -12
  140. package/dist/components/messages/LargeIconMessage.d.ts +18 -18
  141. package/dist/components/messages/LargeIconMessage.js +33 -33
  142. package/dist/components/messages/NoResourcesYet.d.ts +11 -11
  143. package/dist/components/messages/NoResourcesYet.js +6 -6
  144. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
  145. package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
  146. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
  147. package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
  148. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
  149. package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
  150. package/dist/components/renderer/AnnotationModal.d.ts +8 -8
  151. package/dist/components/renderer/AnnotationModal.js +101 -101
  152. package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
  153. package/dist/components/renderer/AutocompleteDropdown.js +175 -175
  154. package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
  155. package/dist/components/renderer/CopyToClipboardButton.js +13 -13
  156. package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
  157. package/dist/components/renderer/CustomisableButtonInner.js +8 -8
  158. package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
  159. package/dist/components/renderer/FormElementLabelContainer.js +15 -15
  160. package/dist/components/renderer/FormElementOptions.d.ts +9 -9
  161. package/dist/components/renderer/FormElementOptions.js +14 -14
  162. package/dist/components/renderer/LookupButton.d.ts +10 -10
  163. package/dist/components/renderer/LookupButton.js +29 -29
  164. package/dist/components/renderer/LookupNotification.d.ts +12 -12
  165. package/dist/components/renderer/LookupNotification.js +230 -230
  166. package/dist/components/renderer/Modal.d.ts +14 -14
  167. package/dist/components/renderer/Modal.js +14 -14
  168. package/dist/components/renderer/OnLoading.d.ts +10 -10
  169. package/dist/components/renderer/OnLoading.js +11 -11
  170. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
  171. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
  172. package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
  173. package/dist/components/renderer/OneBlinkFormElements.js +202 -202
  174. package/dist/components/renderer/PageFormElements.d.ts +17 -17
  175. package/dist/components/renderer/PageFormElements.js +48 -48
  176. package/dist/components/renderer/ProgressBar.d.ts +7 -0
  177. package/dist/components/renderer/ProgressBar.js +7 -0
  178. package/dist/components/renderer/ProgressBar.js.map +1 -0
  179. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  180. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  181. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  182. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -30
  183. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  184. package/dist/components/renderer/attachments/FileCard.d.ts +19 -18
  185. package/dist/components/renderer/attachments/FileCard.js +60 -57
  186. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  187. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  188. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  189. package/dist/components/renderer/attachments/Files.d.ts +14 -0
  190. package/dist/components/renderer/attachments/Files.js +27 -0
  191. package/dist/components/renderer/attachments/Files.js.map +1 -0
  192. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  193. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  194. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -0
  195. package/dist/components/renderer/attachments/ProgressBar.js +34 -0
  196. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -0
  197. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -4
  198. package/dist/components/renderer/attachments/UploadingAttachment.js +12 -12
  199. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  200. package/dist/form-elements/ComplianceButton.js +11 -11
  201. package/dist/form-elements/FormElementABN.d.ts +14 -14
  202. package/dist/form-elements/FormElementABN.js +155 -155
  203. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  204. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  205. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  206. package/dist/form-elements/FormElementBSB.js +100 -100
  207. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  208. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  209. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  210. package/dist/form-elements/FormElementBoolean.js +16 -16
  211. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  212. package/dist/form-elements/FormElementCalculation.js +179 -179
  213. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  214. package/dist/form-elements/FormElementCamera.js +227 -220
  215. package/dist/form-elements/FormElementCamera.js.map +1 -1
  216. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  217. package/dist/form-elements/FormElementCaptcha.js +14 -14
  218. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  219. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  220. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  221. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  222. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  223. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  224. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  225. package/dist/form-elements/FormElementCompliance.js +129 -129
  226. package/dist/form-elements/FormElementDate.d.ts +14 -14
  227. package/dist/form-elements/FormElementDate.js +74 -74
  228. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  229. package/dist/form-elements/FormElementDateTime.js +67 -67
  230. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  231. package/dist/form-elements/FormElementEmail.js +22 -22
  232. package/dist/form-elements/FormElementFile.d.ts +13 -13
  233. package/dist/form-elements/FormElementFile.js +31 -31
  234. package/dist/form-elements/FormElementFile.js.map +1 -1
  235. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
  236. package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
  237. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
  238. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
  239. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
  240. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
  241. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
  242. package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
  243. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
  244. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
  245. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
  246. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
  247. package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
  248. package/dist/form-elements/FormElementFiles/index.js +18 -0
  249. package/dist/form-elements/FormElementFiles/index.js.map +1 -0
  250. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
  251. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
  252. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
  253. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  254. package/dist/form-elements/FormElementFiles.js +42 -42
  255. package/dist/form-elements/FormElementForm.d.ts +17 -17
  256. package/dist/form-elements/FormElementForm.js +63 -63
  257. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  258. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  259. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  260. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  261. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  262. package/dist/form-elements/FormElementHTML.js +15 -15
  263. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  264. package/dist/form-elements/FormElementHeading.js +23 -23
  265. package/dist/form-elements/FormElementImage.d.ts +8 -8
  266. package/dist/form-elements/FormElementImage.js +6 -6
  267. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  268. package/dist/form-elements/FormElementLocation.js +204 -204
  269. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  270. package/dist/form-elements/FormElementNumber.js +72 -72
  271. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  272. package/dist/form-elements/FormElementPointAddress.js +69 -69
  273. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  274. package/dist/form-elements/FormElementRadio.js +41 -41
  275. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  276. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  277. package/dist/form-elements/FormElementSection.d.ts +8 -8
  278. package/dist/form-elements/FormElementSection.js +69 -69
  279. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  280. package/dist/form-elements/FormElementSelect.js +44 -44
  281. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  282. package/dist/form-elements/FormElementSignature.js +138 -135
  283. package/dist/form-elements/FormElementSignature.js.map +1 -1
  284. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  285. package/dist/form-elements/FormElementSummary.js +159 -159
  286. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  287. package/dist/form-elements/FormElementTelephone.js +22 -22
  288. package/dist/form-elements/FormElementText.d.ts +14 -14
  289. package/dist/form-elements/FormElementText.js +29 -29
  290. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  291. package/dist/form-elements/FormElementTextarea.js +30 -30
  292. package/dist/form-elements/FormElementTime.d.ts +14 -14
  293. package/dist/form-elements/FormElementTime.js +53 -53
  294. package/dist/form-elements/OptionButton.d.ts +11 -11
  295. package/dist/form-elements/OptionButton.js +9 -9
  296. package/dist/hooks/attachments/useAttachment.d.ts +12 -11
  297. package/dist/hooks/attachments/useAttachment.js +242 -235
  298. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  299. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  300. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  301. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
  302. package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
  303. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
  304. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  305. package/dist/hooks/attachments/useAttachments.js +69 -69
  306. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
  307. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
  308. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
  309. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  310. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  311. package/dist/hooks/useAuth.d.ts +15 -15
  312. package/dist/hooks/useAuth.js +42 -42
  313. package/dist/hooks/useBooleanState.d.ts +5 -5
  314. package/dist/hooks/useBooleanState.js +8 -8
  315. package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
  316. package/dist/hooks/useButtonsConfiguration.js +6 -0
  317. package/dist/hooks/useButtonsConfiguration.js.map +1 -0
  318. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  319. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  320. package/dist/hooks/useChangeEffect.d.ts +1 -0
  321. package/dist/hooks/useChangeEffect.js +14 -0
  322. package/dist/hooks/useChangeEffect.js.map +1 -0
  323. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  324. package/dist/hooks/useClickOutsideElement.js +14 -14
  325. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  326. package/dist/hooks/useConditionalLogic.js +22 -22
  327. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
  328. package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
  329. package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
  330. package/dist/hooks/useContrastColor.d.ts +2 -2
  331. package/dist/hooks/useContrastColor.js +12 -12
  332. package/dist/hooks/useCustomValidation.d.ts +1 -0
  333. package/dist/hooks/useCustomValidation.js +9 -0
  334. package/dist/hooks/useCustomValidation.js.map +1 -0
  335. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
  336. package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
  337. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
  338. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  339. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  340. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  341. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  342. package/dist/hooks/useFlatpickr.d.ts +10 -10
  343. package/dist/hooks/useFlatpickr.js +73 -73
  344. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  345. package/dist/hooks/useFlatpickrGuid.js +11 -11
  346. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  347. package/dist/hooks/useFlattenElementsContext.js +7 -7
  348. package/dist/hooks/useFormDefinition.d.ts +4 -4
  349. package/dist/hooks/useFormDefinition.js +9 -9
  350. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  351. package/dist/hooks/useFormElementOptions.js +35 -35
  352. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  353. package/dist/hooks/useFormIsReadOnly.js +5 -5
  354. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  355. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  356. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  357. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  358. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  359. package/dist/hooks/useFormSubmissionState.js +13 -13
  360. package/dist/hooks/useFormValidation.d.ts +7 -7
  361. package/dist/hooks/useFormValidation.js +29 -29
  362. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  363. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  364. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  365. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  366. package/dist/hooks/useInjectPages.d.ts +7 -7
  367. package/dist/hooks/useInjectPages.js +5 -5
  368. package/dist/hooks/useIsHovering.d.ts +5 -5
  369. package/dist/hooks/useIsHovering.js +12 -12
  370. package/dist/hooks/useIsMounted.d.ts +3 -3
  371. package/dist/hooks/useIsMounted.js +11 -11
  372. package/dist/hooks/useIsOffline.d.ts +6 -6
  373. package/dist/hooks/useIsOffline.js +26 -26
  374. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  375. package/dist/hooks/useIsPageVisible.js +8 -8
  376. package/dist/hooks/useLegacyElements.d.ts +16 -0
  377. package/dist/hooks/useLegacyElements.js +55 -0
  378. package/dist/hooks/useLegacyElements.js.map +1 -0
  379. package/dist/hooks/useLoadDataState.d.ts +15 -15
  380. package/dist/hooks/useLoadDataState.js +54 -54
  381. package/dist/hooks/useLogin.d.ts +46 -46
  382. package/dist/hooks/useLogin.js +295 -295
  383. package/dist/hooks/useLookupNotification.d.ts +9 -9
  384. package/dist/hooks/useLookupNotification.js +10 -10
  385. package/dist/hooks/useLookups.d.ts +5 -5
  386. package/dist/hooks/useLookups.js +62 -62
  387. package/dist/hooks/useNullableState.d.ts +2 -2
  388. package/dist/hooks/useNullableState.js +6 -6
  389. package/dist/hooks/usePages.d.ts +24 -24
  390. package/dist/hooks/usePages.js +141 -141
  391. package/dist/hooks/useQuery.d.ts +2 -2
  392. package/dist/hooks/useQuery.js +7 -7
  393. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  394. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  395. package/dist/hooks/useToggleAll.d.ts +6 -0
  396. package/dist/hooks/useToggleAll.js +24 -0
  397. package/dist/hooks/useToggleAll.js.map +1 -0
  398. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  399. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  400. package/dist/index.d.ts +23 -22
  401. package/dist/index.js +23 -22
  402. package/dist/index.js.map +1 -1
  403. package/dist/services/attachments.d.ts +10 -10
  404. package/dist/services/attachments.js +72 -72
  405. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  406. package/dist/services/barcode-readers/quagger.js +34 -34
  407. package/dist/services/blob-utils.d.ts +5 -5
  408. package/dist/services/blob-utils.js +73 -73
  409. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  410. package/dist/services/checkBsbsAreInvalid.js +40 -40
  411. package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
  412. package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
  413. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  414. package/dist/services/checkIfAttachmentsExist.js +144 -144
  415. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  416. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  417. package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
  418. package/dist/services/clean-form-elements-ctrl-model.js +166 -0
  419. package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
  420. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  421. package/dist/services/cleanFormSubmissionModel.js +203 -203
  422. package/dist/services/conditionally-show-element.d.ts +11 -0
  423. package/dist/services/conditionally-show-element.js +92 -0
  424. package/dist/services/conditionally-show-element.js.map +1 -0
  425. package/dist/services/conditionally-show-option.d.ts +3 -0
  426. package/dist/services/conditionally-show-option.js +135 -0
  427. package/dist/services/conditionally-show-option.js.map +1 -0
  428. package/dist/services/defaultCoordinates.d.ts +5 -5
  429. package/dist/services/defaultCoordinates.js +8 -8
  430. package/dist/services/download-file.d.ts +3 -3
  431. package/dist/services/download-file.js +90 -90
  432. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  433. package/dist/services/drawTimestampOnCanvas.js +22 -22
  434. package/dist/services/flattenFormElements.d.ts +2 -0
  435. package/dist/services/flattenFormElements.js +13 -0
  436. package/dist/services/flattenFormElements.js.map +1 -0
  437. package/dist/services/form-validation.d.ts +10 -10
  438. package/dist/services/form-validation.js +561 -561
  439. package/dist/services/generate-default-data.d.ts +13 -13
  440. package/dist/services/generate-default-data.js +494 -494
  441. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  442. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  443. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  444. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  445. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
  446. package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
  447. package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
  448. package/dist/services/sanitize-html.d.ts +2 -2
  449. package/dist/services/sanitize-html.js +20 -20
  450. package/dist/services/scrolling-service.d.ts +7 -7
  451. package/dist/services/scrolling-service.js +38 -38
  452. package/dist/services/utils-service.d.ts +5 -5
  453. package/dist/services/utils-service.js +16 -16
  454. package/dist/styles/boolean.scss +12 -0
  455. package/dist/styles/ob-file.scss +63 -0
  456. package/dist/styles/progress.scss +8 -0
  457. package/dist/styles.css +7 -0
  458. package/dist/styles.css.map +1 -1
  459. package/dist/styles.scss +1 -0
  460. package/dist/types/attachments.d.ts +19 -19
  461. package/dist/types/attachments.js +1 -1
  462. package/dist/types/form.d.ts +40 -40
  463. package/dist/types/form.js +2 -2
  464. package/package.json +2 -2
@@ -1,102 +1,102 @@
1
- import * as React from 'react';
2
- import clsx from 'clsx';
3
- import SignatureCanvas from 'react-signature-canvas';
4
- import useBooleanState from '../../hooks/useBooleanState';
5
- import scrollingService from '../../services/scrolling-service';
6
- const annotationButtonColours = [
7
- '#000000',
8
- '#ffffff',
9
- '#f44336',
10
- '#e91e63',
11
- '#9c27b0',
12
- '#673ab7',
13
- '#3f51b5',
14
- '#2196f3',
15
- '#03a9f4',
16
- '#00bcd4',
17
- '#009688',
18
- '#4caf50',
19
- '#8bc34a',
20
- '#cddc39',
21
- '#ffee58',
22
- '#ffca28',
23
- '#ffa726',
24
- '#ff5722',
25
- ];
26
- function AnnotationModal({ imageSrc, onClose, onSave, }) {
27
- const annotationContentElementRef = React.useRef(null);
28
- const bmSignaturePadRef = React.useRef(null);
29
- const signatureCanvasRef = React.useRef(null);
30
- const [isDirty, setDirty] = useBooleanState(false);
31
- const [penColour, setPenColour] = React.useState(annotationButtonColours[0]);
32
- const handleCancelAnnotation = React.useCallback(() => {
33
- if (signatureCanvasRef.current) {
34
- console.log('Clearing annotation...');
35
- signatureCanvasRef.current.clear();
36
- }
37
- onClose();
38
- }, [onClose]);
39
- const handleSaveAnnotation = React.useCallback(() => {
40
- if (signatureCanvasRef.current) {
41
- onSave(signatureCanvasRef.current.toDataURL());
42
- }
43
- }, [onSave]);
44
- // SETTING CANVAS FROM PASSED VALUE
45
- React.useEffect(() => {
46
- const annotationContentElement = annotationContentElementRef.current;
47
- const bmSignaturePadElement = bmSignaturePadRef.current;
48
- const signatureCanvas = signatureCanvasRef.current;
49
- if (!annotationContentElement ||
50
- !bmSignaturePadElement ||
51
- !signatureCanvas ||
52
- typeof imageSrc !== 'string') {
53
- return;
54
- }
55
- const canvasElement = signatureCanvas.getCanvas();
56
- // Disable scrolling to allow for smooth drawing
57
- scrollingService.disableScrolling();
58
- const maxWidth = annotationContentElement.clientWidth;
59
- const maxHeight = annotationContentElement.clientHeight;
60
- const i = new Image();
61
- i.onload = function () {
62
- const imageWidth = i.width;
63
- const imageHeight = i.height;
64
- let canvasWidth = imageWidth;
65
- let canvasHeight = imageHeight;
66
- if (imageWidth > maxWidth || imageHeight > maxHeight) {
67
- const widthRatio = maxWidth / imageWidth;
68
- const heightRatio = maxHeight / imageHeight;
69
- const ratio = Math.min(widthRatio, heightRatio);
70
- canvasWidth = ratio * imageWidth;
71
- canvasHeight = ratio * imageHeight;
72
- }
73
- bmSignaturePadElement.style.width = `${canvasWidth}px`;
74
- bmSignaturePadElement.style.height = `${canvasHeight}px`;
75
- bmSignaturePadElement.style.backgroundSize = 'cover';
76
- bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`;
77
- canvasElement.width = canvasWidth;
78
- canvasElement.height = canvasHeight;
79
- };
80
- console.log('imageSrc', imageSrc);
81
- i.src = imageSrc;
82
- return () => {
83
- scrollingService.enableScrolling();
84
- };
85
- }, [imageSrc]);
86
- return (React.createElement("div", { className: "modal is-active" },
87
- React.createElement("div", { className: "modal-background-faded" }),
88
- React.createElement("div", { className: "ob-annotation" },
89
- React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours" }, annotationButtonColours.map((colour, index) => {
90
- return (React.createElement("button", { key: index, type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
91
- 'is-selected': penColour === colour,
92
- }), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }));
93
- })),
94
- React.createElement("div", { ref: annotationContentElementRef, className: "ob-annotation__content" },
95
- React.createElement("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad" },
96
- React.createElement(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }))),
97
- React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions" },
98
- React.createElement("button", { type: "button", className: "button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button", onClick: handleCancelAnnotation }, "Cancel"),
99
- React.createElement("button", { type: "button", className: "button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button", disabled: !isDirty, onClick: handleSaveAnnotation }, "Save")))));
100
- }
101
- export default React.memo(AnnotationModal);
1
+ import * as React from 'react';
2
+ import clsx from 'clsx';
3
+ import SignatureCanvas from 'react-signature-canvas';
4
+ import useBooleanState from '../../hooks/useBooleanState';
5
+ import scrollingService from '../../services/scrolling-service';
6
+ const annotationButtonColours = [
7
+ '#000000',
8
+ '#ffffff',
9
+ '#f44336',
10
+ '#e91e63',
11
+ '#9c27b0',
12
+ '#673ab7',
13
+ '#3f51b5',
14
+ '#2196f3',
15
+ '#03a9f4',
16
+ '#00bcd4',
17
+ '#009688',
18
+ '#4caf50',
19
+ '#8bc34a',
20
+ '#cddc39',
21
+ '#ffee58',
22
+ '#ffca28',
23
+ '#ffa726',
24
+ '#ff5722',
25
+ ];
26
+ function AnnotationModal({ imageSrc, onClose, onSave, }) {
27
+ const annotationContentElementRef = React.useRef(null);
28
+ const bmSignaturePadRef = React.useRef(null);
29
+ const signatureCanvasRef = React.useRef(null);
30
+ const [isDirty, setDirty] = useBooleanState(false);
31
+ const [penColour, setPenColour] = React.useState(annotationButtonColours[0]);
32
+ const handleCancelAnnotation = React.useCallback(() => {
33
+ if (signatureCanvasRef.current) {
34
+ console.log('Clearing annotation...');
35
+ signatureCanvasRef.current.clear();
36
+ }
37
+ onClose();
38
+ }, [onClose]);
39
+ const handleSaveAnnotation = React.useCallback(() => {
40
+ if (signatureCanvasRef.current) {
41
+ onSave(signatureCanvasRef.current.toDataURL());
42
+ }
43
+ }, [onSave]);
44
+ // SETTING CANVAS FROM PASSED VALUE
45
+ React.useEffect(() => {
46
+ const annotationContentElement = annotationContentElementRef.current;
47
+ const bmSignaturePadElement = bmSignaturePadRef.current;
48
+ const signatureCanvas = signatureCanvasRef.current;
49
+ if (!annotationContentElement ||
50
+ !bmSignaturePadElement ||
51
+ !signatureCanvas ||
52
+ typeof imageSrc !== 'string') {
53
+ return;
54
+ }
55
+ const canvasElement = signatureCanvas.getCanvas();
56
+ // Disable scrolling to allow for smooth drawing
57
+ scrollingService.disableScrolling();
58
+ const maxWidth = annotationContentElement.clientWidth;
59
+ const maxHeight = annotationContentElement.clientHeight;
60
+ const i = new Image();
61
+ i.onload = function () {
62
+ const imageWidth = i.width;
63
+ const imageHeight = i.height;
64
+ let canvasWidth = imageWidth;
65
+ let canvasHeight = imageHeight;
66
+ if (imageWidth > maxWidth || imageHeight > maxHeight) {
67
+ const widthRatio = maxWidth / imageWidth;
68
+ const heightRatio = maxHeight / imageHeight;
69
+ const ratio = Math.min(widthRatio, heightRatio);
70
+ canvasWidth = ratio * imageWidth;
71
+ canvasHeight = ratio * imageHeight;
72
+ }
73
+ bmSignaturePadElement.style.width = `${canvasWidth}px`;
74
+ bmSignaturePadElement.style.height = `${canvasHeight}px`;
75
+ bmSignaturePadElement.style.backgroundSize = 'cover';
76
+ bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`;
77
+ canvasElement.width = canvasWidth;
78
+ canvasElement.height = canvasHeight;
79
+ };
80
+ console.log('imageSrc', imageSrc);
81
+ i.src = imageSrc;
82
+ return () => {
83
+ scrollingService.enableScrolling();
84
+ };
85
+ }, [imageSrc]);
86
+ return (React.createElement("div", { className: "modal is-active" },
87
+ React.createElement("div", { className: "modal-background-faded" }),
88
+ React.createElement("div", { className: "ob-annotation" },
89
+ React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours" }, annotationButtonColours.map((colour, index) => {
90
+ return (React.createElement("button", { key: index, type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
91
+ 'is-selected': penColour === colour,
92
+ }), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }));
93
+ })),
94
+ React.createElement("div", { ref: annotationContentElementRef, className: "ob-annotation__content" },
95
+ React.createElement("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad" },
96
+ React.createElement(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }))),
97
+ React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions" },
98
+ React.createElement("button", { type: "button", className: "button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button", onClick: handleCancelAnnotation }, "Cancel"),
99
+ React.createElement("button", { type: "button", className: "button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button", disabled: !isDirty, onClick: handleSaveAnnotation }, "Save")))));
100
+ }
101
+ export default React.memo(AnnotationModal);
102
102
  //# sourceMappingURL=AnnotationModal.js.map
@@ -1,26 +1,26 @@
1
- /// <reference types="react" />
2
- declare type AutocompleteOption<T> = {
3
- label: string;
4
- value: string;
5
- data?: T;
6
- };
7
- declare type Props<T> = {
8
- id: string;
9
- label: string;
10
- value: unknown | undefined;
11
- placeholder: string | undefined;
12
- required: boolean | undefined;
13
- disabled: boolean | undefined;
14
- isLoading?: boolean;
15
- hasError?: boolean;
16
- validationMessage: string | undefined;
17
- displayValidationMessage: boolean;
18
- searchDebounceMs: number;
19
- searchMinCharacters: number;
20
- onChangeValue: (newValue: string | undefined, data?: T) => Promise<void> | void;
21
- onChangeLabel: (newLabel: string) => void;
22
- onSearch: (label: string, abortSignal: AbortSignal) => Promise<AutocompleteOption<T>[]>;
23
- };
24
- declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }: Props<T>): JSX.Element;
25
- declare const _default: typeof AutocompleteDropdown;
26
- export default _default;
1
+ /// <reference types="react" />
2
+ declare type AutocompleteOption<T> = {
3
+ label: string;
4
+ value: string;
5
+ data?: T;
6
+ };
7
+ declare type Props<T> = {
8
+ id: string;
9
+ label: string;
10
+ value: unknown | undefined;
11
+ placeholder: string | undefined;
12
+ required: boolean | undefined;
13
+ disabled: boolean | undefined;
14
+ isLoading?: boolean;
15
+ hasError?: boolean;
16
+ validationMessage: string | undefined;
17
+ displayValidationMessage: boolean;
18
+ searchDebounceMs: number;
19
+ searchMinCharacters: number;
20
+ onChangeValue: (newValue: string | undefined, data?: T) => Promise<void> | void;
21
+ onChangeLabel: (newLabel: string) => void;
22
+ onSearch: (label: string, abortSignal: AbortSignal) => Promise<AutocompleteOption<T>[]>;
23
+ };
24
+ declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }: Props<T>): JSX.Element;
25
+ declare const _default: typeof AutocompleteDropdown;
26
+ export default _default;
@@ -1,176 +1,176 @@
1
- import * as React from 'react';
2
- import clsx from 'clsx';
3
- import useBooleanState from '../../hooks/useBooleanState';
4
- import { Sentry } from '@oneblink/apps';
5
- function AutocompleteDropdown({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }) {
6
- const optionsContainerElement = React.useRef(null);
7
- const [isDirty, setIsDirty] = React.useState(false);
8
- const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] = React.useState(0);
9
- const [options, setOptions] = React.useState([]);
10
- const [error, setError] = React.useState(null);
11
- const [isFetchingOptions, setIsFetchingOptions] = React.useState(false);
12
- const [isOpen, onOpen, onClose] = useBooleanState(false);
13
- const onSelectOption = React.useCallback((option) => {
14
- onChangeLabel(option.label);
15
- onChangeValue(option.value, option.data);
16
- onClose();
17
- }, [onChangeLabel, onChangeValue, onClose]);
18
- const handleClickOption = React.useCallback((event, option) => {
19
- console.log('Selected element option in autocomplete', option);
20
- event.preventDefault();
21
- event.stopPropagation();
22
- onSelectOption(option);
23
- }, [onSelectOption]);
24
- const onFocus = React.useCallback(() => {
25
- setCurrentFocusedOptionIndex(0);
26
- onOpen();
27
- }, [onOpen]);
28
- // When moving away from the input, if this is no value remove
29
- // the label to show the user they have not selected a value
30
- const handleBlur = React.useCallback(() => {
31
- setIsDirty(true);
32
- setError(null);
33
- onClose();
34
- if (!value && Array.isArray(options)) {
35
- // If there is no option currently selected but the typed in label
36
- // matches an option's label, set that option as the value, otherwise remove label
37
- if (label) {
38
- const lowerCase = label.toLowerCase();
39
- const option = options.find((option) => option.label.toLowerCase() === lowerCase);
40
- if (option) {
41
- console.log('Setting value after blurring away from autocomplete');
42
- onSelectOption(option);
43
- return;
44
- }
45
- }
46
- console.log('Removing label after blurring away from autocomplete');
47
- onChangeLabel('');
48
- }
49
- }, [label, onChangeLabel, onClose, onSelectOption, options, value]);
50
- const onKeyDown = React.useCallback((event) => {
51
- if (!options) {
52
- return;
53
- }
54
- const enterPressed = event.keyCode === 13;
55
- const upArrowPressed = event.keyCode === 38;
56
- const downArrowPressed = event.keyCode === 40;
57
- if (!upArrowPressed && !downArrowPressed && !enterPressed) {
58
- return;
59
- }
60
- event.preventDefault();
61
- const previousFocusedOptionIndex = currentFocusedOptionIndex;
62
- let nextFocusedOptionIndex = currentFocusedOptionIndex;
63
- if (upArrowPressed) {
64
- nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1);
65
- }
66
- else if (downArrowPressed) {
67
- nextFocusedOptionIndex = Math.min(options.length - 1, currentFocusedOptionIndex + 1);
68
- }
69
- else if (enterPressed) {
70
- const option = options[nextFocusedOptionIndex];
71
- if (option) {
72
- onSelectOption(option);
73
- }
74
- }
75
- // If the index has changed, need to ensure the active option is visible
76
- if (previousFocusedOptionIndex !== nextFocusedOptionIndex &&
77
- optionsContainerElement.current) {
78
- const activeStepElement = optionsContainerElement.current.querySelector(`.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`);
79
- if (activeStepElement) {
80
- activeStepElement.scrollIntoView({
81
- behavior: 'smooth',
82
- block: 'nearest',
83
- inline: 'start',
84
- });
85
- }
86
- setCurrentFocusedOptionIndex(nextFocusedOptionIndex);
87
- }
88
- }, [currentFocusedOptionIndex, options, onSelectOption]);
89
- const handleChangeLabel = React.useCallback((e) => {
90
- const newLabel = e.target.value;
91
- onOpen();
92
- setCurrentFocusedOptionIndex(0);
93
- // Remove value when changing label
94
- onChangeValue(undefined);
95
- onChangeLabel(newLabel);
96
- }, [onChangeLabel, onChangeValue, onOpen]);
97
- React.useEffect(() => {
98
- setError(null);
99
- if (!isOpen || label.length < searchMinCharacters) {
100
- setIsFetchingOptions(false);
101
- return;
102
- }
103
- setIsFetchingOptions(true);
104
- let ignore = false;
105
- const abortController = new AbortController();
106
- const timeoutId = setTimeout(async () => {
107
- let newOptions = [];
108
- let newError = null;
109
- try {
110
- newOptions = await onSearch(label, abortController.signal);
111
- }
112
- catch (error) {
113
- // Cancelling will throw an error.
114
- if (!abortController.signal.aborted) {
115
- console.warn('Error while fetching autocomplete options', error);
116
- Sentry.captureException(error);
117
- newError = error;
118
- }
119
- }
120
- if (!ignore) {
121
- setError(newError);
122
- setOptions(newOptions);
123
- setIsFetchingOptions(false);
124
- }
125
- }, searchDebounceMs);
126
- return () => {
127
- ignore = true;
128
- clearTimeout(timeoutId);
129
- abortController.abort();
130
- };
131
- }, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters]);
132
- const isShowingLoading = isFetchingOptions || !!isLoading;
133
- const isShowingValid = !isShowingLoading && value !== undefined;
134
- const isShowingError = !isShowingLoading && !!hasError;
135
- return (React.createElement(React.Fragment, null,
136
- React.createElement("div", { className: clsx('dropdown', {
137
- 'is-active': isOpen && Array.isArray(options),
138
- }) },
139
- React.createElement("div", { className: "field" },
140
- React.createElement("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
141
- 'is-loading': isShowingLoading,
142
- 'has-icons-right': isShowingValid || isShowingError,
143
- }) },
144
- React.createElement("input", { type: "text", placeholder: placeholder, id: id, autoComplete: "off", className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: handleBlur, onKeyDown: onKeyDown, onChange: handleChangeLabel }),
145
- isShowingValid && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
146
- React.createElement("i", { className: "material-icons is-size-5 has-text-success" }, "check"))),
147
- isShowingError && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
148
- React.createElement("i", { className: "material-icons is-size-5 has-text-danger" }, "error"))))),
149
- React.createElement("div", { className: "dropdown-menu" },
150
- React.createElement("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content" }, error ? (React.createElement("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error" },
151
- React.createElement("span", { className: "has-text-danger" }, error.message))) : label.length < searchMinCharacters ? (React.createElement("a", { className: "dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters" },
152
- React.createElement("i", null,
153
- "Enter at least ",
154
- searchMinCharacters,
155
- " character(s) to search"))) : isShowingLoading ? (React.createElement("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching" },
156
- React.createElement("i", null, "Searching..."))) : options && options.length ? (options.map((option, index) => (React.createElement("a", { key: option.value, className: clsx(`dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`, {
157
- 'is-active': currentFocusedOptionIndex === index,
158
- }), onMouseDown: (e) => handleClickOption(e, option), dangerouslySetInnerHTML: {
159
- __html: highlightLabel(option.label, label),
160
- } })))) : (React.createElement("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches" },
161
- React.createElement("i", null, "No matches found")))))),
162
- (isDirty || displayValidationMessage) &&
163
- !!validationMessage &&
164
- !isShowingLoading && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
165
- React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage)))));
166
- }
167
- export default React.memo(AutocompleteDropdown);
168
- function highlightLabel(text, phrase) {
169
- if (phrase) {
170
- text = text.replace(new RegExp('(' +
171
- phrase.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi, (char) => `\\${char}`) +
172
- ')', 'gi'), '<b>$1</b>');
173
- }
174
- return text;
175
- }
1
+ import * as React from 'react';
2
+ import clsx from 'clsx';
3
+ import useBooleanState from '../../hooks/useBooleanState';
4
+ import { Sentry } from '@oneblink/apps';
5
+ function AutocompleteDropdown({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }) {
6
+ const optionsContainerElement = React.useRef(null);
7
+ const [isDirty, setIsDirty] = React.useState(false);
8
+ const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] = React.useState(0);
9
+ const [options, setOptions] = React.useState([]);
10
+ const [error, setError] = React.useState(null);
11
+ const [isFetchingOptions, setIsFetchingOptions] = React.useState(false);
12
+ const [isOpen, onOpen, onClose] = useBooleanState(false);
13
+ const onSelectOption = React.useCallback((option) => {
14
+ onChangeLabel(option.label);
15
+ onChangeValue(option.value, option.data);
16
+ onClose();
17
+ }, [onChangeLabel, onChangeValue, onClose]);
18
+ const handleClickOption = React.useCallback((event, option) => {
19
+ console.log('Selected element option in autocomplete', option);
20
+ event.preventDefault();
21
+ event.stopPropagation();
22
+ onSelectOption(option);
23
+ }, [onSelectOption]);
24
+ const onFocus = React.useCallback(() => {
25
+ setCurrentFocusedOptionIndex(0);
26
+ onOpen();
27
+ }, [onOpen]);
28
+ // When moving away from the input, if this is no value remove
29
+ // the label to show the user they have not selected a value
30
+ const handleBlur = React.useCallback(() => {
31
+ setIsDirty(true);
32
+ setError(null);
33
+ onClose();
34
+ if (!value && Array.isArray(options)) {
35
+ // If there is no option currently selected but the typed in label
36
+ // matches an option's label, set that option as the value, otherwise remove label
37
+ if (label) {
38
+ const lowerCase = label.toLowerCase();
39
+ const option = options.find((option) => option.label.toLowerCase() === lowerCase);
40
+ if (option) {
41
+ console.log('Setting value after blurring away from autocomplete');
42
+ onSelectOption(option);
43
+ return;
44
+ }
45
+ }
46
+ console.log('Removing label after blurring away from autocomplete');
47
+ onChangeLabel('');
48
+ }
49
+ }, [label, onChangeLabel, onClose, onSelectOption, options, value]);
50
+ const onKeyDown = React.useCallback((event) => {
51
+ if (!options) {
52
+ return;
53
+ }
54
+ const enterPressed = event.keyCode === 13;
55
+ const upArrowPressed = event.keyCode === 38;
56
+ const downArrowPressed = event.keyCode === 40;
57
+ if (!upArrowPressed && !downArrowPressed && !enterPressed) {
58
+ return;
59
+ }
60
+ event.preventDefault();
61
+ const previousFocusedOptionIndex = currentFocusedOptionIndex;
62
+ let nextFocusedOptionIndex = currentFocusedOptionIndex;
63
+ if (upArrowPressed) {
64
+ nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1);
65
+ }
66
+ else if (downArrowPressed) {
67
+ nextFocusedOptionIndex = Math.min(options.length - 1, currentFocusedOptionIndex + 1);
68
+ }
69
+ else if (enterPressed) {
70
+ const option = options[nextFocusedOptionIndex];
71
+ if (option) {
72
+ onSelectOption(option);
73
+ }
74
+ }
75
+ // If the index has changed, need to ensure the active option is visible
76
+ if (previousFocusedOptionIndex !== nextFocusedOptionIndex &&
77
+ optionsContainerElement.current) {
78
+ const activeStepElement = optionsContainerElement.current.querySelector(`.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`);
79
+ if (activeStepElement) {
80
+ activeStepElement.scrollIntoView({
81
+ behavior: 'smooth',
82
+ block: 'nearest',
83
+ inline: 'start',
84
+ });
85
+ }
86
+ setCurrentFocusedOptionIndex(nextFocusedOptionIndex);
87
+ }
88
+ }, [currentFocusedOptionIndex, options, onSelectOption]);
89
+ const handleChangeLabel = React.useCallback((e) => {
90
+ const newLabel = e.target.value;
91
+ onOpen();
92
+ setCurrentFocusedOptionIndex(0);
93
+ // Remove value when changing label
94
+ onChangeValue(undefined);
95
+ onChangeLabel(newLabel);
96
+ }, [onChangeLabel, onChangeValue, onOpen]);
97
+ React.useEffect(() => {
98
+ setError(null);
99
+ if (!isOpen || label.length < searchMinCharacters) {
100
+ setIsFetchingOptions(false);
101
+ return;
102
+ }
103
+ setIsFetchingOptions(true);
104
+ let ignore = false;
105
+ const abortController = new AbortController();
106
+ const timeoutId = setTimeout(async () => {
107
+ let newOptions = [];
108
+ let newError = null;
109
+ try {
110
+ newOptions = await onSearch(label, abortController.signal);
111
+ }
112
+ catch (error) {
113
+ // Cancelling will throw an error.
114
+ if (!abortController.signal.aborted) {
115
+ console.warn('Error while fetching autocomplete options', error);
116
+ Sentry.captureException(error);
117
+ newError = error;
118
+ }
119
+ }
120
+ if (!ignore) {
121
+ setError(newError);
122
+ setOptions(newOptions);
123
+ setIsFetchingOptions(false);
124
+ }
125
+ }, searchDebounceMs);
126
+ return () => {
127
+ ignore = true;
128
+ clearTimeout(timeoutId);
129
+ abortController.abort();
130
+ };
131
+ }, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters]);
132
+ const isShowingLoading = isFetchingOptions || !!isLoading;
133
+ const isShowingValid = !isShowingLoading && value !== undefined;
134
+ const isShowingError = !isShowingLoading && !!hasError;
135
+ return (React.createElement(React.Fragment, null,
136
+ React.createElement("div", { className: clsx('dropdown', {
137
+ 'is-active': isOpen && Array.isArray(options),
138
+ }) },
139
+ React.createElement("div", { className: "field" },
140
+ React.createElement("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
141
+ 'is-loading': isShowingLoading,
142
+ 'has-icons-right': isShowingValid || isShowingError,
143
+ }) },
144
+ React.createElement("input", { type: "text", placeholder: placeholder, id: id, autoComplete: "off", className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: handleBlur, onKeyDown: onKeyDown, onChange: handleChangeLabel }),
145
+ isShowingValid && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
146
+ React.createElement("i", { className: "material-icons is-size-5 has-text-success" }, "check"))),
147
+ isShowingError && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
148
+ React.createElement("i", { className: "material-icons is-size-5 has-text-danger" }, "error"))))),
149
+ React.createElement("div", { className: "dropdown-menu" },
150
+ React.createElement("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content" }, error ? (React.createElement("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error" },
151
+ React.createElement("span", { className: "has-text-danger" }, error.message))) : label.length < searchMinCharacters ? (React.createElement("a", { className: "dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters" },
152
+ React.createElement("i", null,
153
+ "Enter at least ",
154
+ searchMinCharacters,
155
+ " character(s) to search"))) : isShowingLoading ? (React.createElement("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching" },
156
+ React.createElement("i", null, "Searching..."))) : options && options.length ? (options.map((option, index) => (React.createElement("a", { key: option.value, className: clsx(`dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`, {
157
+ 'is-active': currentFocusedOptionIndex === index,
158
+ }), onMouseDown: (e) => handleClickOption(e, option), dangerouslySetInnerHTML: {
159
+ __html: highlightLabel(option.label, label),
160
+ } })))) : (React.createElement("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches" },
161
+ React.createElement("i", null, "No matches found")))))),
162
+ (isDirty || displayValidationMessage) &&
163
+ !!validationMessage &&
164
+ !isShowingLoading && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
165
+ React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage)))));
166
+ }
167
+ export default React.memo(AutocompleteDropdown);
168
+ function highlightLabel(text, phrase) {
169
+ if (phrase) {
170
+ text = text.replace(new RegExp('(' +
171
+ phrase.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi, (char) => `\\${char}`) +
172
+ ')', 'gi'), '<b>$1</b>');
173
+ }
174
+ return text;
175
+ }
176
176
  //# sourceMappingURL=AutocompleteDropdown.js.map
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- declare type Props = {
3
- text: string;
4
- className?: string;
5
- };
6
- declare function CopyToClipboardButton({ className, text }: Props): JSX.Element;
7
- declare const _default: React.MemoExoticComponent<typeof CopyToClipboardButton>;
8
- export default _default;
1
+ import * as React from 'react';
2
+ declare type Props = {
3
+ text: string;
4
+ className?: string;
5
+ };
6
+ declare function CopyToClipboardButton({ className, text }: Props): JSX.Element;
7
+ declare const _default: React.MemoExoticComponent<typeof CopyToClipboardButton>;
8
+ export default _default;