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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
  2. package/dist/OneBlinkAutoSaveForm.js +28 -28
  3. package/dist/OneBlinkForm.d.ts +11 -11
  4. package/dist/OneBlinkForm.js +11 -11
  5. package/dist/OneBlinkFormBase.d.ts +28 -28
  6. package/dist/OneBlinkFormBase.js +472 -472
  7. package/dist/OneBlinkFormStoreView.d.ts +8 -0
  8. package/dist/OneBlinkFormStoreView.js +55 -0
  9. package/dist/OneBlinkFormStoreView.js.map +1 -0
  10. package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
  11. package/dist/OneBlinkReadOnlyForm.js +48 -48
  12. package/dist/components/AnnotationModal.d.ts +8 -0
  13. package/dist/components/AnnotationModal.js +104 -0
  14. package/dist/components/AnnotationModal.js.map +1 -0
  15. package/dist/components/AutocompleteDropdown.d.ts +26 -0
  16. package/dist/components/AutocompleteDropdown.js +174 -0
  17. package/dist/components/AutocompleteDropdown.js.map +1 -0
  18. package/dist/components/CopyToClipboardButton.d.ts +9 -0
  19. package/dist/components/CopyToClipboardButton.js +14 -0
  20. package/dist/components/CopyToClipboardButton.js.map +1 -0
  21. package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
  22. package/dist/components/CopyToClipboardIconButton.js +32 -32
  23. package/dist/components/CustomAccordion.d.ts +27 -27
  24. package/dist/components/CustomAccordion.js +37 -37
  25. package/dist/components/CustomisableButtonInner.d.ts +7 -0
  26. package/dist/components/CustomisableButtonInner.js +9 -0
  27. package/dist/components/CustomisableButtonInner.js.map +1 -0
  28. package/dist/components/ErrorMessage.d.ts +13 -0
  29. package/dist/components/ErrorMessage.js +13 -0
  30. package/dist/components/ErrorMessage.js.map +1 -0
  31. package/dist/components/ErrorSnackbar.d.ts +8 -8
  32. package/dist/components/ErrorSnackbar.js +25 -25
  33. package/dist/components/FormElementLabelContainer.d.ts +12 -0
  34. package/dist/components/FormElementLabelContainer.js +16 -0
  35. package/dist/components/FormElementLabelContainer.js.map +1 -0
  36. package/dist/components/FormElementOptions.d.ts +9 -0
  37. package/dist/components/FormElementOptions.js +15 -0
  38. package/dist/components/FormElementOptions.js.map +1 -0
  39. package/dist/components/Lists.d.ts +25 -25
  40. package/dist/components/Lists.js +44 -44
  41. package/dist/components/LoadingWithMessage.d.ts +6 -6
  42. package/dist/components/LoadingWithMessage.js +11 -11
  43. package/dist/components/LookupButton.d.ts +10 -0
  44. package/dist/components/LookupButton.js +30 -0
  45. package/dist/components/LookupButton.js.map +1 -0
  46. package/dist/components/LookupNotification.d.ts +12 -0
  47. package/dist/components/LookupNotification.js +231 -0
  48. package/dist/components/LookupNotification.js.map +1 -0
  49. package/dist/components/Modal.d.ts +14 -0
  50. package/dist/components/Modal.js +15 -0
  51. package/dist/components/Modal.js.map +1 -0
  52. package/dist/components/NoResourcesYet.d.ts +12 -0
  53. package/dist/components/NoResourcesYet.js +7 -0
  54. package/dist/components/NoResourcesYet.js.map +1 -0
  55. package/dist/components/OnLoading.d.ts +10 -0
  56. package/dist/components/OnLoading.js +12 -0
  57. package/dist/components/OnLoading.js.map +1 -0
  58. package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
  59. package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
  60. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
  61. package/dist/components/OneBlinkFormElements.d.ts +19 -0
  62. package/dist/components/OneBlinkFormElements.js +196 -0
  63. package/dist/components/OneBlinkFormElements.js.map +1 -0
  64. package/dist/components/PageFormElements.d.ts +17 -0
  65. package/dist/components/PageFormElements.js +49 -0
  66. package/dist/components/PageFormElements.js.map +1 -0
  67. package/dist/components/ToggleAllCheckbox.d.ts +13 -0
  68. package/dist/components/ToggleAllCheckbox.js +27 -0
  69. package/dist/components/ToggleAllCheckbox.js.map +1 -0
  70. package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
  71. package/dist/components/attachments/AttachmentStatus.js +35 -0
  72. package/dist/components/attachments/AttachmentStatus.js.map +1 -0
  73. package/dist/components/attachments/FileCard.d.ts +18 -0
  74. package/dist/components/attachments/FileCard.js +58 -0
  75. package/dist/components/attachments/FileCard.js.map +1 -0
  76. package/dist/components/attachments/FileCardContent.d.ts +5 -0
  77. package/dist/components/attachments/FileCardContent.js +11 -0
  78. package/dist/components/attachments/FileCardContent.js.map +1 -0
  79. package/dist/components/attachments/Files.d.ts +14 -0
  80. package/dist/components/attachments/Files.js +27 -0
  81. package/dist/components/attachments/Files.js.map +1 -0
  82. package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
  83. package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
  84. package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
  85. package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
  86. package/dist/components/attachments/UploadingAttachment.js +13 -0
  87. package/dist/components/attachments/UploadingAttachment.js.map +1 -0
  88. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
  89. package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
  90. package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
  91. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
  92. package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
  93. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
  94. package/dist/components/formStore/FormStore.d.ts +9 -0
  95. package/dist/components/formStore/FormStore.js +103 -0
  96. package/dist/components/formStore/FormStore.js.map +1 -0
  97. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
  98. package/dist/components/formStore/FormStoreTableProvider.js +90 -90
  99. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
  100. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
  101. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
  102. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
  103. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
  104. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
  105. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
  106. package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
  107. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
  108. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
  109. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
  110. package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
  111. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
  112. package/dist/components/formStore/display/ElementDisplay.js +77 -77
  113. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
  114. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  115. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
  116. package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
  117. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
  118. package/dist/components/formStore/table/ColumnFilters.js +179 -179
  119. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
  120. package/dist/components/formStore/table/FormElementTableCell.js +228 -228
  121. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
  122. package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
  123. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
  124. package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
  125. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
  126. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
  127. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
  128. package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
  129. package/dist/components/formStore/table/generateColumns.d.ts +24 -24
  130. package/dist/components/formStore/table/generateColumns.js +290 -290
  131. package/dist/components/formStore/table/index.d.ts +17 -0
  132. package/dist/components/formStore/table/index.js +194 -0
  133. package/dist/components/formStore/table/index.js.map +1 -0
  134. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
  135. package/dist/components/formStore/table/useFormStoreTable.js +157 -157
  136. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
  137. package/dist/components/formStore/useFormStoreTableContext.js +9 -9
  138. package/dist/components/messages/ErrorMessage.d.ts +12 -12
  139. package/dist/components/messages/ErrorMessage.js +12 -12
  140. package/dist/components/messages/LargeIconMessage.d.ts +18 -18
  141. package/dist/components/messages/LargeIconMessage.js +33 -33
  142. package/dist/components/messages/NoResourcesYet.d.ts +11 -11
  143. package/dist/components/messages/NoResourcesYet.js +6 -6
  144. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
  145. package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
  146. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
  147. package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
  148. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
  149. package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
  150. package/dist/components/renderer/AnnotationModal.d.ts +8 -8
  151. package/dist/components/renderer/AnnotationModal.js +101 -101
  152. package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
  153. package/dist/components/renderer/AutocompleteDropdown.js +175 -175
  154. package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
  155. package/dist/components/renderer/CopyToClipboardButton.js +13 -13
  156. package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
  157. package/dist/components/renderer/CustomisableButtonInner.js +8 -8
  158. package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
  159. package/dist/components/renderer/FormElementLabelContainer.js +15 -15
  160. package/dist/components/renderer/FormElementOptions.d.ts +9 -9
  161. package/dist/components/renderer/FormElementOptions.js +14 -14
  162. package/dist/components/renderer/LookupButton.d.ts +10 -10
  163. package/dist/components/renderer/LookupButton.js +29 -29
  164. package/dist/components/renderer/LookupNotification.d.ts +12 -12
  165. package/dist/components/renderer/LookupNotification.js +230 -230
  166. package/dist/components/renderer/Modal.d.ts +14 -14
  167. package/dist/components/renderer/Modal.js +14 -14
  168. package/dist/components/renderer/OnLoading.d.ts +10 -10
  169. package/dist/components/renderer/OnLoading.js +11 -11
  170. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
  171. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
  172. package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
  173. package/dist/components/renderer/OneBlinkFormElements.js +202 -202
  174. package/dist/components/renderer/PageFormElements.d.ts +17 -17
  175. package/dist/components/renderer/PageFormElements.js +48 -48
  176. package/dist/components/renderer/ProgressBar.d.ts +7 -7
  177. package/dist/components/renderer/ProgressBar.js +6 -6
  178. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  179. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  180. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  181. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -36
  182. package/dist/components/renderer/attachments/FileCard.d.ts +19 -19
  183. package/dist/components/renderer/attachments/FileCard.js +60 -59
  184. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  185. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  186. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  187. package/dist/components/renderer/attachments/Files.d.ts +14 -0
  188. package/dist/components/renderer/attachments/Files.js +27 -0
  189. package/dist/components/renderer/attachments/Files.js.map +1 -0
  190. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  191. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  192. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -6
  193. package/dist/components/renderer/attachments/ProgressBar.js +33 -12
  194. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  195. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -0
  196. package/dist/components/renderer/attachments/UploadingAttachment.js +13 -0
  197. package/dist/components/renderer/attachments/UploadingAttachment.js.map +1 -0
  198. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  199. package/dist/form-elements/ComplianceButton.js +11 -11
  200. package/dist/form-elements/FormElementABN.d.ts +14 -14
  201. package/dist/form-elements/FormElementABN.js +155 -155
  202. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  203. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  204. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  205. package/dist/form-elements/FormElementBSB.js +100 -100
  206. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  207. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  208. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  209. package/dist/form-elements/FormElementBoolean.js +16 -16
  210. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  211. package/dist/form-elements/FormElementCalculation.js +179 -179
  212. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  213. package/dist/form-elements/FormElementCamera.js +227 -226
  214. package/dist/form-elements/FormElementCamera.js.map +1 -1
  215. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  216. package/dist/form-elements/FormElementCaptcha.js +14 -14
  217. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  218. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  219. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  220. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  221. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  222. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  223. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  224. package/dist/form-elements/FormElementCompliance.js +129 -129
  225. package/dist/form-elements/FormElementDate.d.ts +14 -14
  226. package/dist/form-elements/FormElementDate.js +74 -74
  227. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  228. package/dist/form-elements/FormElementDateTime.js +67 -67
  229. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  230. package/dist/form-elements/FormElementEmail.js +22 -22
  231. package/dist/form-elements/FormElementFile.d.ts +13 -13
  232. package/dist/form-elements/FormElementFile.js +31 -31
  233. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
  234. package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
  235. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
  236. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
  237. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
  238. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
  239. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
  240. package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
  241. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
  242. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
  243. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
  244. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
  245. package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
  246. package/dist/form-elements/FormElementFiles/index.js +18 -0
  247. package/dist/form-elements/FormElementFiles/index.js.map +1 -0
  248. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
  249. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
  250. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
  251. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  252. package/dist/form-elements/FormElementFiles.js +42 -42
  253. package/dist/form-elements/FormElementForm.d.ts +17 -17
  254. package/dist/form-elements/FormElementForm.js +63 -63
  255. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  256. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  257. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  258. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  259. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  260. package/dist/form-elements/FormElementHTML.js +15 -15
  261. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  262. package/dist/form-elements/FormElementHeading.js +23 -23
  263. package/dist/form-elements/FormElementImage.d.ts +8 -8
  264. package/dist/form-elements/FormElementImage.js +6 -6
  265. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  266. package/dist/form-elements/FormElementLocation.js +204 -204
  267. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  268. package/dist/form-elements/FormElementNumber.js +72 -72
  269. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  270. package/dist/form-elements/FormElementPointAddress.js +69 -69
  271. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  272. package/dist/form-elements/FormElementRadio.js +41 -41
  273. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  274. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  275. package/dist/form-elements/FormElementSection.d.ts +8 -8
  276. package/dist/form-elements/FormElementSection.js +69 -69
  277. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  278. package/dist/form-elements/FormElementSelect.js +44 -44
  279. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  280. package/dist/form-elements/FormElementSignature.js +138 -140
  281. package/dist/form-elements/FormElementSignature.js.map +1 -1
  282. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  283. package/dist/form-elements/FormElementSummary.js +159 -159
  284. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  285. package/dist/form-elements/FormElementTelephone.js +22 -22
  286. package/dist/form-elements/FormElementText.d.ts +14 -14
  287. package/dist/form-elements/FormElementText.js +29 -29
  288. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  289. package/dist/form-elements/FormElementTextarea.js +30 -30
  290. package/dist/form-elements/FormElementTime.d.ts +14 -14
  291. package/dist/form-elements/FormElementTime.js +53 -53
  292. package/dist/form-elements/OptionButton.d.ts +11 -11
  293. package/dist/form-elements/OptionButton.js +9 -9
  294. package/dist/hooks/attachments/useAttachment.d.ts +12 -12
  295. package/dist/hooks/attachments/useAttachment.js +242 -242
  296. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  297. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  298. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
  299. package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
  300. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
  301. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  302. package/dist/hooks/attachments/useAttachments.js +69 -69
  303. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
  304. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
  305. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
  306. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  307. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  308. package/dist/hooks/useAuth.d.ts +15 -15
  309. package/dist/hooks/useAuth.js +42 -42
  310. package/dist/hooks/useBooleanState.d.ts +5 -5
  311. package/dist/hooks/useBooleanState.js +8 -8
  312. package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
  313. package/dist/hooks/useButtonsConfiguration.js +6 -0
  314. package/dist/hooks/useButtonsConfiguration.js.map +1 -0
  315. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  316. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  317. package/dist/hooks/useChangeEffect.d.ts +1 -0
  318. package/dist/hooks/useChangeEffect.js +14 -0
  319. package/dist/hooks/useChangeEffect.js.map +1 -0
  320. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  321. package/dist/hooks/useClickOutsideElement.js +14 -14
  322. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  323. package/dist/hooks/useConditionalLogic.js +22 -22
  324. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
  325. package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
  326. package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
  327. package/dist/hooks/useContrastColor.d.ts +2 -2
  328. package/dist/hooks/useContrastColor.js +12 -12
  329. package/dist/hooks/useCustomValidation.d.ts +1 -0
  330. package/dist/hooks/useCustomValidation.js +9 -0
  331. package/dist/hooks/useCustomValidation.js.map +1 -0
  332. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
  333. package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
  334. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
  335. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  336. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  337. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  338. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  339. package/dist/hooks/useFlatpickr.d.ts +10 -10
  340. package/dist/hooks/useFlatpickr.js +73 -73
  341. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  342. package/dist/hooks/useFlatpickrGuid.js +11 -11
  343. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  344. package/dist/hooks/useFlattenElementsContext.js +7 -7
  345. package/dist/hooks/useFormDefinition.d.ts +4 -4
  346. package/dist/hooks/useFormDefinition.js +9 -9
  347. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  348. package/dist/hooks/useFormElementOptions.js +35 -35
  349. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  350. package/dist/hooks/useFormIsReadOnly.js +5 -5
  351. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  352. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  353. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  354. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  355. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  356. package/dist/hooks/useFormSubmissionState.js +13 -13
  357. package/dist/hooks/useFormValidation.d.ts +7 -7
  358. package/dist/hooks/useFormValidation.js +29 -29
  359. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  360. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  361. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  362. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  363. package/dist/hooks/useInjectPages.d.ts +7 -7
  364. package/dist/hooks/useInjectPages.js +5 -5
  365. package/dist/hooks/useIsHovering.d.ts +5 -5
  366. package/dist/hooks/useIsHovering.js +12 -12
  367. package/dist/hooks/useIsMounted.d.ts +3 -3
  368. package/dist/hooks/useIsMounted.js +11 -11
  369. package/dist/hooks/useIsOffline.d.ts +6 -6
  370. package/dist/hooks/useIsOffline.js +26 -26
  371. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  372. package/dist/hooks/useIsPageVisible.js +8 -8
  373. package/dist/hooks/useLegacyElements.d.ts +16 -0
  374. package/dist/hooks/useLegacyElements.js +55 -0
  375. package/dist/hooks/useLegacyElements.js.map +1 -0
  376. package/dist/hooks/useLoadDataState.d.ts +15 -15
  377. package/dist/hooks/useLoadDataState.js +54 -54
  378. package/dist/hooks/useLogin.d.ts +46 -46
  379. package/dist/hooks/useLogin.js +295 -295
  380. package/dist/hooks/useLookupNotification.d.ts +9 -9
  381. package/dist/hooks/useLookupNotification.js +10 -10
  382. package/dist/hooks/useLookups.d.ts +5 -5
  383. package/dist/hooks/useLookups.js +62 -62
  384. package/dist/hooks/useNullableState.d.ts +2 -2
  385. package/dist/hooks/useNullableState.js +6 -6
  386. package/dist/hooks/usePages.d.ts +24 -24
  387. package/dist/hooks/usePages.js +141 -141
  388. package/dist/hooks/useQuery.d.ts +2 -2
  389. package/dist/hooks/useQuery.js +7 -7
  390. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  391. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  392. package/dist/hooks/useToggleAll.d.ts +6 -0
  393. package/dist/hooks/useToggleAll.js +24 -0
  394. package/dist/hooks/useToggleAll.js.map +1 -0
  395. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  396. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  397. package/dist/index.d.ts +23 -23
  398. package/dist/index.js +23 -23
  399. package/dist/services/attachments.d.ts +10 -10
  400. package/dist/services/attachments.js +72 -72
  401. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  402. package/dist/services/barcode-readers/quagger.js +34 -34
  403. package/dist/services/blob-utils.d.ts +5 -5
  404. package/dist/services/blob-utils.js +73 -73
  405. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  406. package/dist/services/checkBsbsAreInvalid.js +40 -40
  407. package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
  408. package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
  409. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  410. package/dist/services/checkIfAttachmentsExist.js +144 -144
  411. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  412. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  413. package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
  414. package/dist/services/clean-form-elements-ctrl-model.js +166 -0
  415. package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
  416. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  417. package/dist/services/cleanFormSubmissionModel.js +203 -203
  418. package/dist/services/conditionally-show-element.d.ts +11 -0
  419. package/dist/services/conditionally-show-element.js +92 -0
  420. package/dist/services/conditionally-show-element.js.map +1 -0
  421. package/dist/services/conditionally-show-option.d.ts +3 -0
  422. package/dist/services/conditionally-show-option.js +135 -0
  423. package/dist/services/conditionally-show-option.js.map +1 -0
  424. package/dist/services/defaultCoordinates.d.ts +5 -5
  425. package/dist/services/defaultCoordinates.js +8 -8
  426. package/dist/services/download-file.d.ts +3 -3
  427. package/dist/services/download-file.js +90 -90
  428. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  429. package/dist/services/drawTimestampOnCanvas.js +22 -22
  430. package/dist/services/flattenFormElements.d.ts +2 -0
  431. package/dist/services/flattenFormElements.js +13 -0
  432. package/dist/services/flattenFormElements.js.map +1 -0
  433. package/dist/services/form-validation.d.ts +10 -10
  434. package/dist/services/form-validation.js +561 -561
  435. package/dist/services/generate-default-data.d.ts +13 -13
  436. package/dist/services/generate-default-data.js +494 -494
  437. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  438. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  439. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  440. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  441. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
  442. package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
  443. package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
  444. package/dist/services/sanitize-html.d.ts +2 -2
  445. package/dist/services/sanitize-html.js +20 -20
  446. package/dist/services/scrolling-service.d.ts +7 -7
  447. package/dist/services/scrolling-service.js +38 -38
  448. package/dist/services/utils-service.d.ts +5 -5
  449. package/dist/services/utils-service.js +16 -16
  450. package/dist/styles/boolean.scss +12 -0
  451. package/dist/styles/ob-file.scss +63 -0
  452. package/dist/styles/progress.scss +0 -7
  453. package/dist/styles.css +0 -7
  454. package/dist/styles.css.map +1 -1
  455. package/dist/types/attachments.d.ts +19 -19
  456. package/dist/types/attachments.js +1 -1
  457. package/dist/types/form.d.ts +40 -40
  458. package/dist/types/form.js +2 -2
  459. package/package.json +1 -1
@@ -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;