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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +1 -1
  2. package/dist/OneBlinkAutoSaveForm.js +6 -8
  3. package/dist/OneBlinkAutoSaveForm.js.map +1 -1
  4. package/dist/OneBlinkForm.d.ts +6 -10
  5. package/dist/OneBlinkForm.js +3 -6
  6. package/dist/OneBlinkForm.js.map +1 -1
  7. package/dist/OneBlinkFormBase.d.ts +2 -2
  8. package/dist/OneBlinkFormBase.js +51 -147
  9. package/dist/OneBlinkFormBase.js.map +1 -1
  10. package/dist/OneBlinkReadOnlyForm.d.ts +2 -2
  11. package/dist/OneBlinkReadOnlyForm.js +3 -2
  12. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  13. package/dist/PaymentReceipt.d.ts +2 -2
  14. package/dist/PaymentReceipt.js +12 -33
  15. package/dist/PaymentReceipt.js.map +1 -1
  16. package/dist/apps/Sentry.d.ts +7 -0
  17. package/dist/apps/Sentry.js +16 -0
  18. package/dist/apps/Sentry.js.map +1 -0
  19. package/dist/apps/approvals-service.d.ts +390 -0
  20. package/dist/apps/approvals-service.js +987 -0
  21. package/dist/apps/approvals-service.js.map +1 -0
  22. package/dist/apps/attachments-service.d.ts +49 -0
  23. package/dist/apps/attachments-service.js +134 -0
  24. package/dist/apps/attachments-service.js.map +1 -0
  25. package/dist/apps/auth-service.d.ts +114 -0
  26. package/dist/apps/auth-service.js +194 -0
  27. package/dist/apps/auth-service.js.map +1 -0
  28. package/dist/apps/auto-save-service.d.ts +82 -0
  29. package/dist/apps/auto-save-service.js +105 -0
  30. package/dist/apps/auto-save-service.js.map +1 -0
  31. package/dist/apps/draft-service.d.ts +148 -0
  32. package/dist/apps/draft-service.js +583 -0
  33. package/dist/apps/draft-service.js.map +1 -0
  34. package/dist/apps/form-service.d.ts +204 -0
  35. package/dist/apps/form-service.js +718 -0
  36. package/dist/apps/form-service.js.map +1 -0
  37. package/dist/apps/form-store-service.d.ts +141 -0
  38. package/dist/apps/form-store-service.js +114 -0
  39. package/dist/apps/form-store-service.js.map +1 -0
  40. package/dist/apps/forms-app-environment-service.d.ts +19 -0
  41. package/dist/apps/forms-app-environment-service.js +55 -0
  42. package/dist/apps/forms-app-environment-service.js.map +1 -0
  43. package/dist/apps/forms-app-service.d.ts +18 -0
  44. package/dist/apps/forms-app-service.js +53 -0
  45. package/dist/apps/forms-app-service.js.map +1 -0
  46. package/dist/apps/index.d.ts +253 -0
  47. package/dist/apps/index.js +255 -0
  48. package/dist/apps/index.js.map +1 -0
  49. package/dist/apps/job-service.d.ts +20 -0
  50. package/dist/apps/job-service.js +95 -0
  51. package/dist/apps/job-service.js.map +1 -0
  52. package/dist/apps/localisation-service.d.ts +207 -0
  53. package/dist/apps/localisation-service.js +321 -0
  54. package/dist/apps/localisation-service.js.map +1 -0
  55. package/dist/apps/notification-service.d.ts +83 -0
  56. package/dist/apps/notification-service.js +315 -0
  57. package/dist/apps/notification-service.js.map +1 -0
  58. package/dist/apps/offline-service.d.ts +18 -0
  59. package/dist/apps/offline-service.js +25 -0
  60. package/dist/apps/offline-service.js.map +1 -0
  61. package/dist/apps/payment-service.d.ts +110 -0
  62. package/dist/apps/payment-service.js +182 -0
  63. package/dist/apps/payment-service.js.map +1 -0
  64. package/dist/apps/prefill-service.d.ts +14 -0
  65. package/dist/apps/prefill-service.js +19 -0
  66. package/dist/apps/prefill-service.js.map +1 -0
  67. package/dist/apps/scheduled-tasks-service.d.ts +127 -0
  68. package/dist/apps/scheduled-tasks-service.js +240 -0
  69. package/dist/apps/scheduled-tasks-service.js.map +1 -0
  70. package/dist/apps/scheduling-service.d.ts +101 -0
  71. package/dist/apps/scheduling-service.js +171 -0
  72. package/dist/apps/scheduling-service.js.map +1 -0
  73. package/dist/apps/services/AWSCognitoClient.d.ts +55 -0
  74. package/dist/apps/services/AWSCognitoClient.js +436 -0
  75. package/dist/apps/services/AWSCognitoClient.js.map +1 -0
  76. package/dist/apps/services/api/drafts.d.ts +7 -0
  77. package/dist/apps/services/api/drafts.js +236 -0
  78. package/dist/apps/services/api/drafts.js.map +1 -0
  79. package/dist/apps/services/api/notifications.d.ts +3 -0
  80. package/dist/apps/services/api/notifications.js +60 -0
  81. package/dist/apps/services/api/notifications.js.map +1 -0
  82. package/dist/apps/services/api/payment.d.ts +23 -0
  83. package/dist/apps/services/api/payment.js +235 -0
  84. package/dist/apps/services/api/payment.js.map +1 -0
  85. package/dist/apps/services/api/post-submission-attachment-urls.d.ts +7 -0
  86. package/dist/apps/services/api/post-submission-attachment-urls.js +19 -0
  87. package/dist/apps/services/api/post-submission-attachment-urls.js.map +1 -0
  88. package/dist/apps/services/api/prefill.d.ts +1 -0
  89. package/dist/apps/services/api/prefill.js +70 -0
  90. package/dist/apps/services/api/prefill.js.map +1 -0
  91. package/dist/apps/services/api/receipt-id.d.ts +2 -0
  92. package/dist/apps/services/api/receipt-id.js +54 -0
  93. package/dist/apps/services/api/receipt-id.js.map +1 -0
  94. package/dist/apps/services/api/scheduling.d.ts +38 -0
  95. package/dist/apps/services/api/scheduling.js +142 -0
  96. package/dist/apps/services/api/scheduling.js.map +1 -0
  97. package/dist/apps/services/api/submissions.d.ts +18 -0
  98. package/dist/apps/services/api/submissions.js +166 -0
  99. package/dist/apps/services/api/submissions.js.map +1 -0
  100. package/dist/apps/services/cognito.d.ts +302 -0
  101. package/dist/apps/services/cognito.js +441 -0
  102. package/dist/apps/services/cognito.js.map +1 -0
  103. package/dist/apps/services/draft-data-store.d.ts +16 -0
  104. package/dist/apps/services/draft-data-store.js +115 -0
  105. package/dist/apps/services/draft-data-store.js.map +1 -0
  106. package/dist/apps/services/errors/oneBlinkAppsError.d.ts +35 -0
  107. package/dist/apps/services/errors/oneBlinkAppsError.js +32 -0
  108. package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -0
  109. package/dist/apps/services/external-id-generation.d.ts +4 -0
  110. package/dist/apps/services/external-id-generation.js +59 -0
  111. package/dist/apps/services/external-id-generation.js.map +1 -0
  112. package/dist/apps/services/fetch.d.ts +12 -0
  113. package/dist/apps/services/fetch.js +95 -0
  114. package/dist/apps/services/fetch.js.map +1 -0
  115. package/dist/apps/services/forms-key.d.ts +51 -0
  116. package/dist/apps/services/forms-key.js +83 -0
  117. package/dist/apps/services/forms-key.js.map +1 -0
  118. package/dist/apps/services/generate-generic-error.d.ts +3 -0
  119. package/dist/apps/services/generate-generic-error.js +52 -0
  120. package/dist/apps/services/generate-generic-error.js.map +1 -0
  121. package/dist/apps/services/generateOneBlinkDownloader.d.ts +2 -0
  122. package/dist/apps/services/generateOneBlinkDownloader.js +11 -0
  123. package/dist/apps/services/generateOneBlinkDownloader.js.map +1 -0
  124. package/dist/apps/services/generateOneBlinkUploader.d.ts +2 -0
  125. package/dist/apps/services/generateOneBlinkUploader.js +11 -0
  126. package/dist/apps/services/generateOneBlinkUploader.js.map +1 -0
  127. package/dist/apps/services/getDeviceInformation.d.ts +17 -0
  128. package/dist/apps/services/getDeviceInformation.js +38 -0
  129. package/dist/apps/services/getDeviceInformation.js.map +1 -0
  130. package/dist/apps/services/integration-elements.d.ts +383 -0
  131. package/dist/apps/services/integration-elements.js +761 -0
  132. package/dist/apps/services/integration-elements.js.map +1 -0
  133. package/dist/apps/services/job-prefill.d.ts +40 -0
  134. package/dist/apps/services/job-prefill.js +78 -0
  135. package/dist/apps/services/job-prefill.js.map +1 -0
  136. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.d.ts +29 -0
  137. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js +59 -0
  138. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js.map +1 -0
  139. package/dist/apps/services/payment-providers/CPPayPaymentProvider.d.ts +27 -0
  140. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js +63 -0
  141. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js.map +1 -0
  142. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.d.ts +30 -0
  143. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js +116 -0
  144. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js.map +1 -0
  145. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.d.ts +49 -0
  146. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js +116 -0
  147. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js.map +1 -0
  148. package/dist/apps/services/payment-providers/receipt-items.d.ts +8 -0
  149. package/dist/apps/services/payment-providers/receipt-items.js +58 -0
  150. package/dist/apps/services/payment-providers/receipt-items.js.map +1 -0
  151. package/dist/apps/services/pending-queue.d.ts +150 -0
  152. package/dist/apps/services/pending-queue.js +316 -0
  153. package/dist/apps/services/pending-queue.js.map +1 -0
  154. package/dist/apps/services/prepareSubmissionData.d.ts +2 -0
  155. package/dist/apps/services/prepareSubmissionData.js +113 -0
  156. package/dist/apps/services/prepareSubmissionData.js.map +1 -0
  157. package/dist/apps/services/query-string.d.ts +1 -0
  158. package/dist/apps/services/query-string.js +16 -0
  159. package/dist/apps/services/query-string.js.map +1 -0
  160. package/dist/apps/services/replaceInjectablesWithSubmissionValues.d.ts +3 -0
  161. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js +18 -0
  162. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js.map +1 -0
  163. package/dist/apps/services/schedulingHandlers.d.ts +36 -0
  164. package/dist/apps/services/schedulingHandlers.js +76 -0
  165. package/dist/apps/services/schedulingHandlers.js.map +1 -0
  166. package/dist/apps/services/server-validation.d.ts +2 -0
  167. package/dist/apps/services/server-validation.js +36 -0
  168. package/dist/apps/services/server-validation.js.map +1 -0
  169. package/dist/apps/services/serverRequest.d.ts +5 -0
  170. package/dist/apps/services/serverRequest.js +24 -0
  171. package/dist/apps/services/serverRequest.js.map +1 -0
  172. package/dist/apps/services/submit.d.ts +19 -0
  173. package/dist/apps/services/submit.js +219 -0
  174. package/dist/apps/services/submit.js.map +1 -0
  175. package/dist/apps/services/uploadAttachment.d.ts +52 -0
  176. package/dist/apps/services/uploadAttachment.js +73 -0
  177. package/dist/apps/services/uploadAttachment.js.map +1 -0
  178. package/dist/apps/services/user-token.d.ts +27 -0
  179. package/dist/apps/services/user-token.js +33 -0
  180. package/dist/apps/services/user-token.js.map +1 -0
  181. package/dist/apps/services/utils.d.ts +12 -0
  182. package/dist/apps/services/utils.js +100 -0
  183. package/dist/apps/services/utils.js.map +1 -0
  184. package/dist/apps/submission-service.d.ts +226 -0
  185. package/dist/apps/submission-service.js +425 -0
  186. package/dist/apps/submission-service.js.map +1 -0
  187. package/dist/apps/tenants.d.ts +30 -0
  188. package/dist/apps/tenants.js +155 -0
  189. package/dist/apps/tenants.js.map +1 -0
  190. package/dist/apps/types/form.d.ts +4 -0
  191. package/dist/apps/types/form.js +2 -0
  192. package/dist/apps/types/form.js.map +1 -0
  193. package/dist/apps/types/payments.d.ts +45 -0
  194. package/dist/apps/types/payments.js +2 -0
  195. package/dist/apps/types/payments.js.map +1 -0
  196. package/dist/apps/types/scheduling.d.ts +5 -0
  197. package/dist/apps/types/scheduling.js +2 -0
  198. package/dist/apps/types/scheduling.js.map +1 -0
  199. package/dist/apps/types/submissions.d.ts +175 -0
  200. package/dist/apps/types/submissions.js +2 -0
  201. package/dist/apps/types/submissions.js.map +1 -0
  202. package/dist/components/ArcGISWebMap.d.ts +3 -3
  203. package/dist/components/ArcGISWebMap.js +29 -39
  204. package/dist/components/ArcGISWebMap.js.map +1 -1
  205. package/dist/components/Clickable.d.ts +1 -1
  206. package/dist/components/Clickable.js +2 -1
  207. package/dist/components/Clickable.js.map +1 -1
  208. package/dist/components/ConfirmDialog.d.ts +2 -2
  209. package/dist/components/ConfirmDialog.js +8 -14
  210. package/dist/components/ConfirmDialog.js.map +1 -1
  211. package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
  212. package/dist/components/CopyToClipboardIconButton.js +10 -14
  213. package/dist/components/CopyToClipboardIconButton.js.map +1 -1
  214. package/dist/components/CustomAccordion.d.ts +2 -19
  215. package/dist/components/ErrorSnackbar.d.ts +1 -1
  216. package/dist/components/ErrorSnackbar.js +6 -7
  217. package/dist/components/ErrorSnackbar.js.map +1 -1
  218. package/dist/components/ImageCropper/CropModal.d.ts +1 -1
  219. package/dist/components/ImageCropper/CropModal.js +2 -8
  220. package/dist/components/ImageCropper/CropModal.js.map +1 -1
  221. package/dist/components/ImageCropper/index.d.ts +1 -1
  222. package/dist/components/ImageCropper/index.js +3 -5
  223. package/dist/components/ImageCropper/index.js.map +1 -1
  224. package/dist/components/InputClear.js +2 -3
  225. package/dist/components/InputClear.js.map +1 -1
  226. package/dist/components/InputField.d.ts +3 -2
  227. package/dist/components/InputField.js +5 -2
  228. package/dist/components/InputField.js.map +1 -1
  229. package/dist/components/Lists.d.ts +1 -3
  230. package/dist/components/Lists.js +2 -2
  231. package/dist/components/Lists.js.map +1 -1
  232. package/dist/components/LoadingWithMessage.js +2 -6
  233. package/dist/components/LoadingWithMessage.js.map +1 -1
  234. package/dist/components/MaterialIcon.d.ts +2 -4
  235. package/dist/components/MaterialIcon.js +4 -4
  236. package/dist/components/MaterialIcon.js.map +1 -1
  237. package/dist/components/NotificationGrid.d.ts +2 -2
  238. package/dist/components/NotificationGrid.js +4 -7
  239. package/dist/components/NotificationGrid.js.map +1 -1
  240. package/dist/components/QuillHTML.d.ts +1 -1
  241. package/dist/components/QuillHTML.js +2 -1
  242. package/dist/components/QuillHTML.js.map +1 -1
  243. package/dist/components/SuccessSnackbar.d.ts +1 -1
  244. package/dist/components/SuccessSnackbar.js +3 -6
  245. package/dist/components/SuccessSnackbar.js.map +1 -1
  246. package/dist/components/ValidationErrorsCard.d.ts +2 -2
  247. package/dist/components/ValidationErrorsCard.js +32 -49
  248. package/dist/components/ValidationErrorsCard.js.map +1 -1
  249. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.d.ts +1 -1
  250. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +6 -7
  251. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
  252. package/dist/components/calendar-bookings/CalendarBookingsContainer.d.ts +1 -1
  253. package/dist/components/calendar-bookings/CalendarBookingsContainer.js +9 -11
  254. package/dist/components/calendar-bookings/CalendarBookingsContainer.js.map +1 -1
  255. package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +2 -2
  256. package/dist/components/calendar-bookings/CalendarBookingsForm.js +34 -46
  257. package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
  258. package/dist/components/calendar-bookings/CalendarBookingsProvider.d.ts +1 -1
  259. package/dist/components/calendar-bookings/CalendarBookingsProvider.js +2 -6
  260. package/dist/components/calendar-bookings/CalendarBookingsProvider.js.map +1 -1
  261. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.d.ts +1 -1
  262. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +6 -7
  263. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
  264. package/dist/components/calendar-bookings/ErrorModal.d.ts +1 -1
  265. package/dist/components/calendar-bookings/ErrorModal.js +8 -12
  266. package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
  267. package/dist/components/downloadable-files/LayoutProvider.d.ts +1 -1
  268. package/dist/components/downloadable-files/LayoutProvider.js +2 -1
  269. package/dist/components/downloadable-files/LayoutProvider.js.map +1 -1
  270. package/dist/components/downloadable-files/index.d.ts +2 -2
  271. package/dist/components/downloadable-files/index.js +4 -6
  272. package/dist/components/downloadable-files/index.js.map +1 -1
  273. package/dist/components/downloadable-files/resource-components.d.ts +4 -4
  274. package/dist/components/downloadable-files/resource-components.js +10 -33
  275. package/dist/components/downloadable-files/resource-components.js.map +1 -1
  276. package/dist/components/formStore/FormStoreTableProvider.d.ts +1 -1
  277. package/dist/components/formStore/FormStoreTableProvider.js +6 -16
  278. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
  279. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +1 -1
  280. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +3 -4
  281. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
  282. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +1 -1
  283. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +21 -54
  284. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
  285. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +2 -2
  286. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +8 -27
  287. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
  288. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
  289. package/dist/components/formStore/OneBlinkFormStoreProvider.js +5 -6
  290. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
  291. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +1 -1
  292. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +2 -3
  293. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
  294. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +1 -1
  295. package/dist/components/formStore/OneBlinkFormStoreTable.js +129 -95
  296. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
  297. package/dist/components/formStore/display/ElementDisplay.d.ts +3 -4
  298. package/dist/components/formStore/display/ElementDisplay.js +11 -14
  299. package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
  300. package/dist/components/formStore/display/FormStoreIcon.d.ts +1 -1
  301. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  302. package/dist/components/formStore/display/FormStoreIcon.js.map +1 -1
  303. package/dist/components/formStore/table/ActionedByTableCell.d.ts +1 -1
  304. package/dist/components/formStore/table/ActionedByTableCell.js +6 -7
  305. package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
  306. package/dist/components/formStore/table/ColumnFilters.d.ts +3 -3
  307. package/dist/components/formStore/table/ColumnFilters.js +85 -101
  308. package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
  309. package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
  310. package/dist/components/formStore/table/FormElementTableCell.js +35 -98
  311. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  312. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +4 -4
  313. package/dist/components/formStore/table/HeaderCellMoreButton.js +26 -32
  314. package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -1
  315. package/dist/components/formStore/table/Pickers.d.ts +4 -4
  316. package/dist/components/formStore/table/Pickers.js +15 -14
  317. package/dist/components/formStore/table/Pickers.js.map +1 -1
  318. package/dist/components/formStore/table/RepeatableSetCell.js +17 -21
  319. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  320. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +2 -4
  321. package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -1
  322. package/dist/components/formStore/table/TableCellCopyButton.d.ts +1 -1
  323. package/dist/components/formStore/table/TableCellCopyButton.js +2 -3
  324. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  325. package/dist/components/formStore/table/generateColumns.d.ts +6 -7
  326. package/dist/components/formStore/table/generateColumns.js +23 -18
  327. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  328. package/dist/components/formStore/table/getVersionedState.d.ts +4 -3
  329. package/dist/components/formStore/table/getVersionedState.js +23 -6
  330. package/dist/components/formStore/table/getVersionedState.js.map +1 -1
  331. package/dist/components/formStore/table/useFormStoreTable.d.ts +146 -37
  332. package/dist/components/formStore/table/useFormStoreTable.js +268 -199
  333. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  334. package/dist/components/formStore/useFormStoreTableContext.d.ts +144 -35
  335. package/dist/components/messages/ErrorMessage.js +3 -3
  336. package/dist/components/messages/ErrorMessage.js.map +1 -1
  337. package/dist/components/messages/LargeIconMessage.js +2 -6
  338. package/dist/components/messages/LargeIconMessage.js.map +1 -1
  339. package/dist/components/messages/NoResourcesYet.d.ts +1 -1
  340. package/dist/components/messages/NoResourcesYet.js +2 -1
  341. package/dist/components/messages/NoResourcesYet.js.map +1 -1
  342. package/dist/components/mfa/MfaDialog.d.ts +2 -2
  343. package/dist/components/mfa/MfaDialog.js +10 -49
  344. package/dist/components/mfa/MfaDialog.js.map +1 -1
  345. package/dist/components/mfa/MultiFactorAuthentication.d.ts +2 -5
  346. package/dist/components/mfa/MultiFactorAuthentication.js +14 -45
  347. package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
  348. package/dist/components/payments/PaymentForm.d.ts +1 -1
  349. package/dist/components/payments/PaymentForm.js +5 -10
  350. package/dist/components/payments/PaymentForm.js.map +1 -1
  351. package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +2 -2
  352. package/dist/components/payments/WestpacQuickStreamPaymentForm.js +12 -46
  353. package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
  354. package/dist/components/receipts/Receipt.d.ts +1 -1
  355. package/dist/components/receipts/Receipt.js +2 -2
  356. package/dist/components/receipts/Receipt.js.map +1 -1
  357. package/dist/components/receipts/ReceiptButton.d.ts +1 -1
  358. package/dist/components/receipts/ReceiptButton.js +3 -2
  359. package/dist/components/receipts/ReceiptButton.js.map +1 -1
  360. package/dist/components/receipts/ReceiptList.d.ts +1 -1
  361. package/dist/components/receipts/ReceiptList.js +2 -9
  362. package/dist/components/receipts/ReceiptList.js.map +1 -1
  363. package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
  364. package/dist/components/receipts/ReceiptListItem.js +2 -11
  365. package/dist/components/receipts/ReceiptListItem.js.map +1 -1
  366. package/dist/components/renderer/AnnotationModal.d.ts +1 -1
  367. package/dist/components/renderer/AnnotationModal.js +6 -14
  368. package/dist/components/renderer/AnnotationModal.js.map +1 -1
  369. package/dist/components/renderer/AutocompleteDropdown.d.ts +1 -1
  370. package/dist/components/renderer/AutocompleteDropdown.js +16 -35
  371. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
  372. package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
  373. package/dist/components/renderer/CopyToClipboardButton.js +2 -4
  374. package/dist/components/renderer/CopyToClipboardButton.js.map +1 -1
  375. package/dist/components/renderer/CustomisableButtonInner.js +2 -4
  376. package/dist/components/renderer/CustomisableButtonInner.js.map +1 -1
  377. package/dist/components/renderer/FormElementLabelContainer.d.ts +3 -3
  378. package/dist/components/renderer/FormElementLabelContainer.js +7 -14
  379. package/dist/components/renderer/FormElementLabelContainer.js.map +1 -1
  380. package/dist/components/renderer/FormElementOptions.d.ts +1 -1
  381. package/dist/components/renderer/FormElementOptions.js +4 -5
  382. package/dist/components/renderer/FormElementOptions.js.map +1 -1
  383. package/dist/components/renderer/FormElementValidationMessage.js +3 -5
  384. package/dist/components/renderer/FormElementValidationMessage.js.map +1 -1
  385. package/dist/components/renderer/LookupButton.d.ts +1 -1
  386. package/dist/components/renderer/LookupButton.js +4 -8
  387. package/dist/components/renderer/LookupButton.js.map +1 -1
  388. package/dist/components/renderer/LookupNotification.d.ts +1 -1
  389. package/dist/components/renderer/LookupNotification.js +16 -38
  390. package/dist/components/renderer/LookupNotification.js.map +1 -1
  391. package/dist/components/renderer/Modal.d.ts +3 -3
  392. package/dist/components/renderer/Modal.js +7 -10
  393. package/dist/components/renderer/Modal.js.map +1 -1
  394. package/dist/components/renderer/OnLoading.d.ts +1 -1
  395. package/dist/components/renderer/OnLoading.js +3 -3
  396. package/dist/components/renderer/OnLoading.js.map +1 -1
  397. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
  398. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +3 -5
  399. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
  400. package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
  401. package/dist/components/renderer/OneBlinkFormElements.js +61 -90
  402. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  403. package/dist/components/renderer/PageFormElements.d.ts +1 -1
  404. package/dist/components/renderer/PageFormElements.js +3 -5
  405. package/dist/components/renderer/PageFormElements.js.map +1 -1
  406. package/dist/components/renderer/ProgressBar.d.ts +1 -1
  407. package/dist/components/renderer/ProgressBar.js +2 -1
  408. package/dist/components/renderer/ProgressBar.js.map +1 -1
  409. package/dist/components/renderer/ReverseGeocode.d.ts +1 -1
  410. package/dist/components/renderer/ReverseGeocode.js +3 -2
  411. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  412. package/dist/components/renderer/ToggleAllCheckbox.js +4 -5
  413. package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
  414. package/dist/components/renderer/Tooltip.d.ts +1 -1
  415. package/dist/components/renderer/Tooltip.js +5 -1
  416. package/dist/components/renderer/Tooltip.js.map +1 -1
  417. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +1 -1
  418. package/dist/components/renderer/attachments/AttachmentStatus.js +6 -15
  419. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  420. package/dist/components/renderer/attachments/DropdownMenu.js +30 -42
  421. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  422. package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
  423. package/dist/components/renderer/attachments/FileCard.js +2 -10
  424. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  425. package/dist/components/renderer/attachments/FileCardContent.d.ts +1 -1
  426. package/dist/components/renderer/attachments/FileCardContent.js +3 -4
  427. package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
  428. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +1 -1
  429. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +2 -5
  430. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -1
  431. package/dist/components/renderer/attachments/ProgressBar.js +2 -4
  432. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  433. package/dist/form-elements/ComplianceButton.js +3 -4
  434. package/dist/form-elements/ComplianceButton.js.map +1 -1
  435. package/dist/form-elements/FormElementABN.d.ts +1 -1
  436. package/dist/form-elements/FormElementABN.js +18 -28
  437. package/dist/form-elements/FormElementABN.js.map +1 -1
  438. package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -2
  439. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +4 -22
  440. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  441. package/dist/form-elements/FormElementArcGISWebMap.d.ts +1 -1
  442. package/dist/form-elements/FormElementArcGISWebMap.js +21 -36
  443. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  444. package/dist/form-elements/FormElementAutocomplete.d.ts +1 -1
  445. package/dist/form-elements/FormElementAutocomplete.js +6 -10
  446. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  447. package/dist/form-elements/FormElementBSB.d.ts +1 -1
  448. package/dist/form-elements/FormElementBSB.js +22 -31
  449. package/dist/form-elements/FormElementBSB.js.map +1 -1
  450. package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
  451. package/dist/form-elements/FormElementBarcodeScanner.js +16 -50
  452. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  453. package/dist/form-elements/FormElementBoolean.d.ts +1 -1
  454. package/dist/form-elements/FormElementBoolean.js +4 -4
  455. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  456. package/dist/form-elements/FormElementCalculation.d.ts +1 -1
  457. package/dist/form-elements/FormElementCalculation.js +4 -11
  458. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  459. package/dist/form-elements/FormElementCamera.d.ts +1 -1
  460. package/dist/form-elements/FormElementCamera.js +7 -53
  461. package/dist/form-elements/FormElementCamera.js.map +1 -1
  462. package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
  463. package/dist/form-elements/FormElementCaptcha.js +2 -4
  464. package/dist/form-elements/FormElementCaptcha.js.map +1 -1
  465. package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
  466. package/dist/form-elements/FormElementCheckBoxes.js +23 -33
  467. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  468. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +1 -1
  469. package/dist/form-elements/FormElementCivicaNameRecord.js +3 -2
  470. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  471. package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
  472. package/dist/form-elements/FormElementCivicaStreetName.js +3 -5
  473. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  474. package/dist/form-elements/FormElementCompliance.d.ts +2 -2
  475. package/dist/form-elements/FormElementCompliance.js +13 -25
  476. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  477. package/dist/form-elements/FormElementDate.d.ts +1 -1
  478. package/dist/form-elements/FormElementDate.js +3 -10
  479. package/dist/form-elements/FormElementDate.js.map +1 -1
  480. package/dist/form-elements/FormElementDateTime.d.ts +1 -1
  481. package/dist/form-elements/FormElementDateTime.js +3 -10
  482. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  483. package/dist/form-elements/FormElementEmail.d.ts +1 -1
  484. package/dist/form-elements/FormElementEmail.js +4 -13
  485. package/dist/form-elements/FormElementEmail.js.map +1 -1
  486. package/dist/form-elements/FormElementFile.d.ts +1 -1
  487. package/dist/form-elements/FormElementFile.js +2 -12
  488. package/dist/form-elements/FormElementFile.js.map +1 -1
  489. package/dist/form-elements/FormElementFiles.d.ts +2 -2
  490. package/dist/form-elements/FormElementFiles.js +9 -17
  491. package/dist/form-elements/FormElementFiles.js.map +1 -1
  492. package/dist/form-elements/FormElementForm.d.ts +1 -1
  493. package/dist/form-elements/FormElementForm.js +2 -1
  494. package/dist/form-elements/FormElementForm.js.map +1 -1
  495. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +1 -1
  496. package/dist/form-elements/FormElementFreshdeskDependentField.js +5 -11
  497. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  498. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
  499. package/dist/form-elements/FormElementGeoscapeAddress.js +3 -5
  500. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  501. package/dist/form-elements/FormElementGoogleAddress.d.ts +1 -1
  502. package/dist/form-elements/FormElementGoogleAddress.js +3 -8
  503. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  504. package/dist/form-elements/FormElementHTML.d.ts +1 -1
  505. package/dist/form-elements/FormElementHTML.js +2 -3
  506. package/dist/form-elements/FormElementHTML.js.map +1 -1
  507. package/dist/form-elements/FormElementHeading.d.ts +1 -1
  508. package/dist/form-elements/FormElementHeading.js +7 -8
  509. package/dist/form-elements/FormElementHeading.js.map +1 -1
  510. package/dist/form-elements/FormElementImage.d.ts +1 -1
  511. package/dist/form-elements/FormElementImage.js +3 -3
  512. package/dist/form-elements/FormElementImage.js.map +1 -1
  513. package/dist/form-elements/FormElementLocation.d.ts +1 -1
  514. package/dist/form-elements/FormElementLocation.js +21 -48
  515. package/dist/form-elements/FormElementLocation.js.map +1 -1
  516. package/dist/form-elements/FormElementLookupButton.d.ts +2 -3
  517. package/dist/form-elements/FormElementLookupButton.js +5 -8
  518. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  519. package/dist/form-elements/FormElementNumber.d.ts +1 -1
  520. package/dist/form-elements/FormElementNumber.js +4 -15
  521. package/dist/form-elements/FormElementNumber.js.map +1 -1
  522. package/dist/form-elements/FormElementPointAddress.d.ts +2 -2
  523. package/dist/form-elements/FormElementPointAddress.js +7 -14
  524. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  525. package/dist/form-elements/FormElementPointAddressV3.d.ts +1 -1
  526. package/dist/form-elements/FormElementPointAddressV3.js +3 -10
  527. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  528. package/dist/form-elements/FormElementPointCadastralParcel.d.ts +1 -1
  529. package/dist/form-elements/FormElementPointCadastralParcel.js +15 -27
  530. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  531. package/dist/form-elements/FormElementRadio.d.ts +1 -1
  532. package/dist/form-elements/FormElementRadio.js +24 -30
  533. package/dist/form-elements/FormElementRadio.js.map +1 -1
  534. package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
  535. package/dist/form-elements/FormElementRepeatableSet.js +21 -39
  536. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  537. package/dist/form-elements/FormElementSection.d.ts +1 -1
  538. package/dist/form-elements/FormElementSection.js +16 -34
  539. package/dist/form-elements/FormElementSection.js.map +1 -1
  540. package/dist/form-elements/FormElementSelect.d.ts +1 -1
  541. package/dist/form-elements/FormElementSelect.js +12 -23
  542. package/dist/form-elements/FormElementSelect.js.map +1 -1
  543. package/dist/form-elements/FormElementSignature.d.ts +1 -1
  544. package/dist/form-elements/FormElementSignature.js +21 -46
  545. package/dist/form-elements/FormElementSignature.js.map +1 -1
  546. package/dist/form-elements/FormElementSummary.d.ts +1 -1
  547. package/dist/form-elements/FormElementSummary.js +9 -6
  548. package/dist/form-elements/FormElementSummary.js.map +1 -1
  549. package/dist/form-elements/FormElementTelephone.d.ts +1 -1
  550. package/dist/form-elements/FormElementTelephone.js +4 -13
  551. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  552. package/dist/form-elements/FormElementText.d.ts +1 -1
  553. package/dist/form-elements/FormElementText.js +6 -21
  554. package/dist/form-elements/FormElementText.js.map +1 -1
  555. package/dist/form-elements/FormElementTextarea.d.ts +1 -1
  556. package/dist/form-elements/FormElementTextarea.js +6 -20
  557. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  558. package/dist/form-elements/FormElementTime.d.ts +1 -1
  559. package/dist/form-elements/FormElementTime.js +3 -10
  560. package/dist/form-elements/FormElementTime.js.map +1 -1
  561. package/dist/form-elements/OptionButton.js +3 -5
  562. package/dist/form-elements/OptionButton.js.map +1 -1
  563. package/dist/hooks/attachments/useAttachment.d.ts +1 -1
  564. package/dist/hooks/attachments/useAttachment.js +1 -1
  565. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  566. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +1 -1
  567. package/dist/hooks/attachments/useAttachmentBlobs.js +2 -1
  568. package/dist/hooks/attachments/useAttachmentBlobs.js.map +1 -1
  569. package/dist/hooks/attachments/useAttachments.d.ts +1 -1
  570. package/dist/hooks/attachments/useAttachments.js.map +1 -1
  571. package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +7 -8
  572. package/dist/hooks/form-date-picker/useFormDatePickerProps.js +10 -10
  573. package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
  574. package/dist/hooks/useAuth.d.ts +1 -1
  575. package/dist/hooks/useAuth.js +3 -2
  576. package/dist/hooks/useAuth.js.map +1 -1
  577. package/dist/hooks/useConditionalLogic.js +1 -1
  578. package/dist/hooks/useConditionalLogic.js.map +1 -1
  579. package/dist/hooks/useDrafts.d.ts +2 -2
  580. package/dist/hooks/useDrafts.js +3 -2
  581. package/dist/hooks/useDrafts.js.map +1 -1
  582. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +2 -2
  583. package/dist/hooks/useDynamicOptionsLoaderState.js +5 -14
  584. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  585. package/dist/hooks/useFormElementLookups.d.ts +2 -2
  586. package/dist/hooks/useFormElementLookups.js +3 -2
  587. package/dist/hooks/useFormElementLookups.js.map +1 -1
  588. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -1
  589. package/dist/hooks/useFormSubmissionAutoSaveState.js +1 -1
  590. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  591. package/dist/hooks/useFormSubmissionDuration.js +2 -0
  592. package/dist/hooks/useFormSubmissionDuration.js.map +1 -1
  593. package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
  594. package/dist/hooks/useFormSubmissionModelContext.js +2 -1
  595. package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
  596. package/dist/hooks/useFormSubmissionState.d.ts +1 -1
  597. package/dist/hooks/useFormSubmissionState.js +1 -1
  598. package/dist/hooks/useFormSubmissionState.js.map +1 -1
  599. package/dist/hooks/useIsHovering.d.ts +1 -1
  600. package/dist/hooks/useIsHovering.js +4 -4
  601. package/dist/hooks/useIsHovering.js.map +1 -1
  602. package/dist/hooks/useIsOffline.d.ts +1 -1
  603. package/dist/hooks/useIsOffline.js +3 -2
  604. package/dist/hooks/useIsOffline.js.map +1 -1
  605. package/dist/hooks/useIsPageVisible.d.ts +1 -1
  606. package/dist/hooks/useIsPageVisible.js +2 -1
  607. package/dist/hooks/useIsPageVisible.js.map +1 -1
  608. package/dist/hooks/useLoadDataState.js +3 -1
  609. package/dist/hooks/useLoadDataState.js.map +1 -1
  610. package/dist/hooks/useLogin.js +1 -1
  611. package/dist/hooks/useLogin.js.map +1 -1
  612. package/dist/hooks/useMfa.d.ts +2 -2
  613. package/dist/hooks/useMfa.js +3 -2
  614. package/dist/hooks/useMfa.js.map +1 -1
  615. package/dist/hooks/useOnUploadAttachment.d.ts +1 -1
  616. package/dist/hooks/useOnUploadAttachment.js +1 -1
  617. package/dist/hooks/useOnUploadAttachment.js.map +1 -1
  618. package/dist/hooks/useOneBlinkFormContainer.d.ts +2 -1
  619. package/dist/hooks/useOneBlinkFormContainer.js +2 -2
  620. package/dist/hooks/useOneBlinkFormContainer.js.map +1 -1
  621. package/dist/hooks/usePages.d.ts +1 -1
  622. package/dist/hooks/usePendingSubmissions.d.ts +2 -2
  623. package/dist/hooks/usePendingSubmissions.js +3 -2
  624. package/dist/hooks/usePendingSubmissions.js.map +1 -1
  625. package/dist/hooks/useReCAPTCHAProps.d.ts +1 -1
  626. package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
  627. package/dist/hooks/useReplaceableText.js +1 -1
  628. package/dist/hooks/useReplaceableText.js.map +1 -1
  629. package/dist/hooks/useSignUp.js +1 -1
  630. package/dist/hooks/useSignUp.js.map +1 -1
  631. package/dist/index.d.ts +1 -0
  632. package/dist/index.js +2 -0
  633. package/dist/index.js.map +1 -1
  634. package/dist/services/attachments.d.ts +1 -1
  635. package/dist/services/attachments.js +1 -1
  636. package/dist/services/attachments.js.map +1 -1
  637. package/dist/services/blob-utils.js +1 -1
  638. package/dist/services/blob-utils.js.map +1 -1
  639. package/dist/services/checkIfAttachmentsExist.d.ts +1 -1
  640. package/dist/services/checkIfAttachmentsExist.js.map +1 -1
  641. package/dist/services/defaultCoordinates.js +1 -1
  642. package/dist/services/defaultCoordinates.js.map +1 -1
  643. package/dist/services/download-file.d.ts +1 -1
  644. package/dist/services/download-file.js +2 -2
  645. package/dist/services/download-file.js.map +1 -1
  646. package/dist/services/drawTimestampOnCanvas.js +1 -1
  647. package/dist/services/drawTimestampOnCanvas.js.map +1 -1
  648. package/dist/services/form-validation/validateSubmission.js +1 -1
  649. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  650. package/dist/services/form-validation/validators.d.ts +1 -1
  651. package/dist/services/form-validation/validators.js.map +1 -1
  652. package/dist/services/generate-default-data.js +1 -1
  653. package/dist/services/generate-default-data.js.map +1 -1
  654. package/dist/services/injectableOptions.js +1 -1
  655. package/dist/services/injectableOptions.js.map +1 -1
  656. package/dist/styles.css +208 -204
  657. package/dist/types/attachments.d.ts +1 -1
  658. package/dist/types/attachments.js.map +1 -1
  659. package/dist/utils/sendGoogleAnalyticsEvent.js +1 -1
  660. package/dist/utils/sendGoogleAnalyticsEvent.js.map +1 -1
  661. package/package.json +58 -51
@@ -1,9 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  function ReceiptButton({ className, label, isDisabled, isLoading, onClick, }) {
4
- return (React.createElement("button", { type: "button", className: clsx('button ob-button ob-receipt__button', className, {
5
+ return (_jsx("button", { type: "button", className: clsx('button ob-button ob-receipt__button', className, {
5
6
  'is-loading': isLoading,
6
- }), disabled: isLoading || isDisabled, onClick: onClick }, label));
7
+ }), disabled: isLoading || isDisabled, onClick: onClick, children: label }));
7
8
  }
8
9
  export default React.memo(ReceiptButton);
9
10
  //# sourceMappingURL=ReceiptButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReceiptButton.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,KAAK,EACL,UAAU,EACV,SAAS,EACT,OAAO,GACD;IACN,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CAAC,qCAAqC,EAAE,SAAS,EAAE;YAChE,YAAY,EAAE,SAAS;SACxB,CAAC,EACF,QAAQ,EAAE,SAAS,IAAI,UAAU,EACjC,OAAO,EAAE,OAAO,IAEf,KAAK,CACC,CACV,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\ntype Props = {\n className: string\n label: string\n isDisabled?: boolean\n isLoading?: boolean\n onClick: () => unknown\n}\n\nfunction ReceiptButton({\n className,\n label,\n isDisabled,\n isLoading,\n onClick,\n}: Props) {\n return (\n <button\n type=\"button\"\n className={clsx('button ob-button ob-receipt__button', className, {\n 'is-loading': isLoading,\n })}\n disabled={isLoading || isDisabled}\n onClick={onClick}\n >\n {label}\n </button>\n )\n}\n\nexport default React.memo(ReceiptButton)\n"]}
1
+ {"version":3,"file":"ReceiptButton.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptButton.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,KAAK,EACL,UAAU,EACV,SAAS,EACT,OAAO,GACD;IACN,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CAAC,qCAAqC,EAAE,SAAS,EAAE;YAChE,YAAY,EAAE,SAAS;SACxB,CAAC,EACF,QAAQ,EAAE,SAAS,IAAI,UAAU,EACjC,OAAO,EAAE,OAAO,YAEf,KAAK,GACC,CACV,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\ntype Props = {\n className: string\n label: string\n isDisabled?: boolean\n isLoading?: boolean\n onClick: () => unknown\n}\n\nfunction ReceiptButton({\n className,\n label,\n isDisabled,\n isLoading,\n onClick,\n}: Props) {\n return (\n <button\n type=\"button\"\n className={clsx('button ob-button ob-receipt__button', className, {\n 'is-loading': isLoading,\n })}\n disabled={isLoading || isDisabled}\n onClick={onClick}\n >\n {label}\n </button>\n )\n}\n\nexport default React.memo(ReceiptButton)\n"]}
@@ -6,6 +6,6 @@ type Props = {
6
6
  warningMessage?: string;
7
7
  children: React.ReactNode;
8
8
  };
9
- declare function ReceiptList({ successIconClassName, warningIconClassName, warningMessageClassName, warningMessage, children, }: Props): React.JSX.Element;
9
+ declare function ReceiptList({ successIconClassName, warningIconClassName, warningMessageClassName, warningMessage, children, }: Props): import("react/jsx-runtime").JSX.Element;
10
10
  declare const _default: React.MemoExoticComponent<typeof ReceiptList>;
11
11
  export default _default;
@@ -1,16 +1,9 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import MaterialIcon from '../MaterialIcon';
4
5
  function ReceiptList({ successIconClassName, warningIconClassName, warningMessageClassName, warningMessage, children, }) {
5
- return (React.createElement("div", { className: "ob-list has-dividers has-shadow has-margin-bottom-4" },
6
- React.createElement("div", { className: "ob-list__item" },
7
- React.createElement("div", { className: "ob-list__content-wrapper" },
8
- React.createElement("div", { className: "ob-list__content" }, !warningMessage ? (React.createElement("p", { className: "has-text-centered" },
9
- React.createElement(MaterialIcon, { className: clsx('has-text-success icon-x-large', successIconClassName) }, "check_circle_outline"))) : (React.createElement(React.Fragment, null,
10
- React.createElement("p", { className: "has-text-centered" },
11
- React.createElement(MaterialIcon, { className: clsx('has-text-danger icon-x-large', warningIconClassName) }, "warning")),
12
- React.createElement("p", { className: clsx('has-text-centered', warningMessageClassName) }, warningMessage)))))),
13
- children));
6
+ return (_jsxs("div", { className: "ob-list has-dividers has-shadow has-margin-bottom-4", children: [_jsx("div", { className: "ob-list__item", children: _jsx("div", { className: "ob-list__content-wrapper", children: _jsx("div", { className: "ob-list__content", children: !warningMessage ? (_jsx("p", { className: "has-text-centered", children: _jsx(MaterialIcon, { className: clsx('has-text-success icon-x-large', successIconClassName), children: "check_circle_outline" }) })) : (_jsxs(_Fragment, { children: [_jsx("p", { className: "has-text-centered", children: _jsx(MaterialIcon, { className: clsx('has-text-danger icon-x-large', warningIconClassName), children: "warning" }) }), _jsx("p", { className: clsx('has-text-centered', warningMessageClassName), children: warningMessage })] })) }) }) }), children] }));
14
7
  }
15
8
  export default React.memo(ReceiptList);
16
9
  //# sourceMappingURL=ReceiptList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReceiptList.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAU1C,SAAS,WAAW,CAAC,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,QAAQ,GACF;IACN,OAAO,CACL,6BAAK,SAAS,EAAC,qDAAqD;QAClE,6BAAK,SAAS,EAAC,eAAe;YAC5B,6BAAK,SAAS,EAAC,0BAA0B;gBACvC,6BAAK,SAAS,EAAC,kBAAkB,IAC9B,CAAC,cAAc,CAAC,CAAC,CAAC,CACjB,2BAAG,SAAS,EAAC,mBAAmB;oBAC9B,oBAAC,YAAY,IACX,SAAS,EAAE,IAAI,CACb,+BAA+B,EAC/B,oBAAoB,CACrB,2BAGY,CACb,CACL,CAAC,CAAC,CAAC,CACF;oBACE,2BAAG,SAAS,EAAC,mBAAmB;wBAC9B,oBAAC,YAAY,IACX,SAAS,EAAE,IAAI,CACb,8BAA8B,EAC9B,oBAAoB,CACrB,cAGY,CACb;oBACJ,2BACE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,IAE5D,cAAc,CACb,CACH,CACJ,CACG,CACF,CACF;QACL,QAAQ,CACL,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n successIconClassName: string\n warningIconClassName?: string\n warningMessageClassName?: string\n warningMessage?: string\n children: React.ReactNode\n}\n\nfunction ReceiptList({\n successIconClassName,\n warningIconClassName,\n warningMessageClassName,\n warningMessage,\n children,\n}: Props) {\n return (\n <div className=\"ob-list has-dividers has-shadow has-margin-bottom-4\">\n <div className=\"ob-list__item\">\n <div className=\"ob-list__content-wrapper\">\n <div className=\"ob-list__content\">\n {!warningMessage ? (\n <p className=\"has-text-centered\">\n <MaterialIcon\n className={clsx(\n 'has-text-success icon-x-large',\n successIconClassName,\n )}\n >\n check_circle_outline\n </MaterialIcon>\n </p>\n ) : (\n <>\n <p className=\"has-text-centered\">\n <MaterialIcon\n className={clsx(\n 'has-text-danger icon-x-large',\n warningIconClassName,\n )}\n >\n warning\n </MaterialIcon>\n </p>\n <p\n className={clsx('has-text-centered', warningMessageClassName)}\n >\n {warningMessage}\n </p>\n </>\n )}\n </div>\n </div>\n </div>\n {children}\n </div>\n )\n}\n\nexport default React.memo(ReceiptList)\n"]}
1
+ {"version":3,"file":"ReceiptList.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptList.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAU1C,SAAS,WAAW,CAAC,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,QAAQ,GACF;IACN,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,aAClE,cAAK,SAAS,EAAC,eAAe,YAC5B,cAAK,SAAS,EAAC,0BAA0B,YACvC,cAAK,SAAS,EAAC,kBAAkB,YAC9B,CAAC,cAAc,CAAC,CAAC,CAAC,CACjB,YAAG,SAAS,EAAC,mBAAmB,YAC9B,KAAC,YAAY,IACX,SAAS,EAAE,IAAI,CACb,+BAA+B,EAC/B,oBAAoB,CACrB,qCAGY,GACb,CACL,CAAC,CAAC,CAAC,CACF,8BACE,YAAG,SAAS,EAAC,mBAAmB,YAC9B,KAAC,YAAY,IACX,SAAS,EAAE,IAAI,CACb,8BAA8B,EAC9B,oBAAoB,CACrB,wBAGY,GACb,EACJ,YACE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,YAE5D,cAAc,GACb,IACH,CACJ,GACG,GACF,GACF,EACL,QAAQ,IACL,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n successIconClassName: string\n warningIconClassName?: string\n warningMessageClassName?: string\n warningMessage?: string\n children: React.ReactNode\n}\n\nfunction ReceiptList({\n successIconClassName,\n warningIconClassName,\n warningMessageClassName,\n warningMessage,\n children,\n}: Props) {\n return (\n <div className=\"ob-list has-dividers has-shadow has-margin-bottom-4\">\n <div className=\"ob-list__item\">\n <div className=\"ob-list__content-wrapper\">\n <div className=\"ob-list__content\">\n {!warningMessage ? (\n <p className=\"has-text-centered\">\n <MaterialIcon\n className={clsx(\n 'has-text-success icon-x-large',\n successIconClassName,\n )}\n >\n check_circle_outline\n </MaterialIcon>\n </p>\n ) : (\n <>\n <p className=\"has-text-centered\">\n <MaterialIcon\n className={clsx(\n 'has-text-danger icon-x-large',\n warningIconClassName,\n )}\n >\n warning\n </MaterialIcon>\n </p>\n <p\n className={clsx('has-text-centered', warningMessageClassName)}\n >\n {warningMessage}\n </p>\n </>\n )}\n </div>\n </div>\n </div>\n {children}\n </div>\n )\n}\n\nexport default React.memo(ReceiptList)\n"]}
@@ -7,6 +7,6 @@ type Props = {
7
7
  value: string;
8
8
  allowCopyToClipboard?: boolean;
9
9
  };
10
- declare function ReceiptListItem({ className, valueClassName, icon, label, value, allowCopyToClipboard, }: Props): React.JSX.Element;
10
+ declare function ReceiptListItem({ className, valueClassName, icon, label, value, allowCopyToClipboard, }: Props): import("react/jsx-runtime").JSX.Element;
11
11
  declare const _default: React.MemoExoticComponent<typeof ReceiptListItem>;
12
12
  export default _default;
@@ -1,19 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import utilsService from '../../services/utils-service';
4
5
  import MaterialIcon from '../MaterialIcon';
5
6
  function ReceiptListItem({ className, valueClassName, icon, label, value, allowCopyToClipboard, }) {
6
- return (React.createElement("div", { className: clsx('ob-list__item', className) },
7
- !!icon && (React.createElement("div", { className: "ob-list__avatar" },
8
- React.createElement(MaterialIcon, { className: "icon-medium" }, icon))),
9
- React.createElement("div", { className: "ob-list__content-wrapper" },
10
- React.createElement("div", { className: "ob-list__content" },
11
- React.createElement("div", { className: "ob-list__text-secondary" }, label),
12
- React.createElement("div", { className: clsx('ob-list__text-primary', valueClassName) }, value))),
13
- allowCopyToClipboard && (React.createElement("div", { className: "ob-list__actions" },
14
- React.createElement("button", { type: "button", className: "button ob-button ob-list__button is-small is-white tooltip has-tooltip-left", onClick: () => utilsService.copyToClipboard(value), "data-tooltip": "Copy to clipboard" },
15
- React.createElement("span", { className: "icon has-text-grey" },
16
- React.createElement(MaterialIcon, { className: "icon-small ob-icon__copy has-text" }, "file_copy")))))));
7
+ return (_jsxs("div", { className: clsx('ob-list__item', className), children: [!!icon && (_jsx("div", { className: "ob-list__avatar", children: _jsx(MaterialIcon, { className: "icon-medium", children: icon }) })), _jsx("div", { className: "ob-list__content-wrapper", children: _jsxs("div", { className: "ob-list__content", children: [_jsx("div", { className: "ob-list__text-secondary", children: label }), _jsx("div", { className: clsx('ob-list__text-primary', valueClassName), children: value })] }) }), allowCopyToClipboard && (_jsx("div", { className: "ob-list__actions", children: _jsx("button", { type: "button", className: "button ob-button ob-list__button is-small is-white tooltip has-tooltip-left", onClick: () => utilsService.copyToClipboard(value), "data-tooltip": "Copy to clipboard", children: _jsx("span", { className: "icon has-text-grey", children: _jsx(MaterialIcon, { className: "icon-small ob-icon__copy has-text", children: "file_copy" }) }) }) }))] }));
17
8
  }
18
9
  export default React.memo(ReceiptListItem);
19
10
  //# sourceMappingURL=ReceiptListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReceiptListItem.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,8BAA8B,CAAA;AACvD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAW1C,SAAS,eAAe,CAAC,EACvB,SAAS,EACT,cAAc,EACd,IAAI,EACJ,KAAK,EACL,KAAK,EACL,oBAAoB,GACd;IACN,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;QAC7C,CAAC,CAAC,IAAI,IAAI,CACT,6BAAK,SAAS,EAAC,iBAAiB;YAC9B,oBAAC,YAAY,IAAC,SAAS,EAAC,aAAa,IAAE,IAAI,CAAgB,CACvD,CACP;QACD,6BAAK,SAAS,EAAC,0BAA0B;YACvC,6BAAK,SAAS,EAAC,kBAAkB;gBAC/B,6BAAK,SAAS,EAAC,yBAAyB,IAAE,KAAK,CAAO;gBACtD,6BAAK,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,IAC1D,KAAK,CACF,CACF,CACF;QACL,oBAAoB,IAAI,CACvB,6BAAK,SAAS,EAAC,kBAAkB;YAC/B,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6EAA6E,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,kBACrC,mBAAmB;gBAEhC,8BAAM,SAAS,EAAC,oBAAoB;oBAClC,oBAAC,YAAY,IAAC,SAAS,EAAC,mCAAmC,gBAE5C,CACV,CACA,CACL,CACP,CACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport utilsService from '../../services/utils-service'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n className: string\n valueClassName: string\n icon?: string\n label: string\n value: string\n allowCopyToClipboard?: boolean\n}\n\nfunction ReceiptListItem({\n className,\n valueClassName,\n icon,\n label,\n value,\n allowCopyToClipboard,\n}: Props) {\n return (\n <div className={clsx('ob-list__item', className)}>\n {!!icon && (\n <div className=\"ob-list__avatar\">\n <MaterialIcon className=\"icon-medium\">{icon}</MaterialIcon>\n </div>\n )}\n <div className=\"ob-list__content-wrapper\">\n <div className=\"ob-list__content\">\n <div className=\"ob-list__text-secondary\">{label}</div>\n <div className={clsx('ob-list__text-primary', valueClassName)}>\n {value}\n </div>\n </div>\n </div>\n {allowCopyToClipboard && (\n <div className=\"ob-list__actions\">\n <button\n type=\"button\"\n className=\"button ob-button ob-list__button is-small is-white tooltip has-tooltip-left\"\n onClick={() => utilsService.copyToClipboard(value)}\n data-tooltip=\"Copy to clipboard\"\n >\n <span className=\"icon has-text-grey\">\n <MaterialIcon className=\"icon-small ob-icon__copy has-text\">\n file_copy\n </MaterialIcon>\n </span>\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport default React.memo(ReceiptListItem)\n"]}
1
+ {"version":3,"file":"ReceiptListItem.js","sourceRoot":"","sources":["../../../src/components/receipts/ReceiptListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,8BAA8B,CAAA;AACvD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAW1C,SAAS,eAAe,CAAC,EACvB,SAAS,EACT,cAAc,EACd,IAAI,EACJ,KAAK,EACL,KAAK,EACL,oBAAoB,GACd;IACN,OAAO,CACL,eAAK,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,aAC7C,CAAC,CAAC,IAAI,IAAI,CACT,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,YAAE,IAAI,GAAgB,GACvD,CACP,EACD,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,kBAAkB,aAC/B,cAAK,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAO,EACtD,cAAK,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,YAC1D,KAAK,GACF,IACF,GACF,EACL,oBAAoB,IAAI,CACvB,cAAK,SAAS,EAAC,kBAAkB,YAC/B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6EAA6E,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,kBACrC,mBAAmB,YAEhC,eAAM,SAAS,EAAC,oBAAoB,YAClC,KAAC,YAAY,IAAC,SAAS,EAAC,mCAAmC,0BAE5C,GACV,GACA,GACL,CACP,IACG,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport utilsService from '../../services/utils-service'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n className: string\n valueClassName: string\n icon?: string\n label: string\n value: string\n allowCopyToClipboard?: boolean\n}\n\nfunction ReceiptListItem({\n className,\n valueClassName,\n icon,\n label,\n value,\n allowCopyToClipboard,\n}: Props) {\n return (\n <div className={clsx('ob-list__item', className)}>\n {!!icon && (\n <div className=\"ob-list__avatar\">\n <MaterialIcon className=\"icon-medium\">{icon}</MaterialIcon>\n </div>\n )}\n <div className=\"ob-list__content-wrapper\">\n <div className=\"ob-list__content\">\n <div className=\"ob-list__text-secondary\">{label}</div>\n <div className={clsx('ob-list__text-primary', valueClassName)}>\n {value}\n </div>\n </div>\n </div>\n {allowCopyToClipboard && (\n <div className=\"ob-list__actions\">\n <button\n type=\"button\"\n className=\"button ob-button ob-list__button is-small is-white tooltip has-tooltip-left\"\n onClick={() => utilsService.copyToClipboard(value)}\n data-tooltip=\"Copy to clipboard\"\n >\n <span className=\"icon has-text-grey\">\n <MaterialIcon className=\"icon-small ob-icon__copy has-text\">\n file_copy\n </MaterialIcon>\n </span>\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport default React.memo(ReceiptListItem)\n"]}
@@ -3,7 +3,7 @@ declare function AnnotationModal({ imageSrc, onClose, onSave, }: {
3
3
  imageSrc: string;
4
4
  onClose: () => void;
5
5
  onSave: (newValue: string) => void;
6
- }): React.JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
7
  declare const _default: React.MemoExoticComponent<typeof AnnotationModal>;
8
8
  export default _default;
9
9
  export declare const superimposeAnnotationOnImage: ({ annotationDataUri, attachmentUrl, }: {
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
4
  import SignatureCanvas from 'react-signature-canvas';
@@ -84,20 +85,11 @@ function AnnotationModal({ imageSrc, onClose, onSave, }) {
84
85
  scrollingService.enableScrolling();
85
86
  };
86
87
  }, [imageSrc]);
87
- return (React.createElement("div", { className: "modal is-active" },
88
- React.createElement("div", { className: "modal-background-faded" }),
89
- React.createElement("div", { className: "ob-annotation ob-border-radius" },
90
- React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours ob-border-radius" }, annotationButtonColours.map((colour, index) => {
91
- return (React.createElement("button", { key: index, type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
92
- 'is-selected': penColour === colour,
93
- }), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }));
94
- })),
95
- React.createElement("div", { ref: annotationContentElementRef, className: "ob-annotation__content" },
96
- React.createElement("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad" },
97
- React.createElement(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }))),
98
- React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions" },
99
- 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"),
100
- 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")))));
88
+ return (_jsxs("div", { className: "modal is-active", children: [_jsx("div", { className: "modal-background-faded" }), _jsxs("div", { className: "ob-annotation ob-border-radius", children: [_jsx("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours ob-border-radius", children: annotationButtonColours.map((colour, index) => {
89
+ return (_jsx("button", { type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
90
+ 'is-selected': penColour === colour,
91
+ }), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }, index));
92
+ }) }), _jsx("div", { ref: annotationContentElementRef, className: "ob-annotation__content", children: _jsx("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad", children: _jsx(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }) }) }), _jsxs("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions", children: [_jsx("button", { type: "button", className: "button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button", onClick: handleCancelAnnotation, children: "Cancel" }), _jsx("button", { type: "button", className: "button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button", disabled: !isDirty, onClick: handleSaveAnnotation, children: "Save" })] })] })] }));
101
93
  }
102
94
  export default React.memo(AnnotationModal);
103
95
  export const superimposeAnnotationOnImage = async ({ annotationDataUri, attachmentUrl, }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationModal.js","sourceRoot":"","sources":["../../../src/components/renderer/AnnotationModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport SignatureCanvas from 'react-signature-canvas'\n\nimport useBooleanState from '../../hooks/useBooleanState'\nimport scrollingService from '../../services/scrolling-service'\nimport { canvasToBlob } from '../../services/blob-utils'\n\nconst annotationButtonColours = [\n '#000000',\n '#ffffff',\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffee58',\n '#ffca28',\n '#ffa726',\n '#ff5722',\n]\n\nfunction AnnotationModal({\n imageSrc,\n onClose,\n onSave,\n}: {\n imageSrc: string\n onClose: () => void\n onSave: (newValue: string) => void\n}) {\n const annotationContentElementRef = React.useRef<HTMLDivElement>(null)\n const bmSignaturePadRef = React.useRef<HTMLDivElement>(null)\n const signatureCanvasRef = React.useRef<SignatureCanvas>(null)\n\n const [isDirty, setDirty] = useBooleanState(false)\n const [penColour, setPenColour] = React.useState(annotationButtonColours[0])\n\n const handleCancelAnnotation = React.useCallback(() => {\n if (signatureCanvasRef.current) {\n console.log('Clearing annotation...')\n signatureCanvasRef.current.clear()\n }\n onClose()\n }, [onClose])\n\n const handleSaveAnnotation = React.useCallback(() => {\n if (signatureCanvasRef.current) {\n onSave(signatureCanvasRef.current.toDataURL())\n }\n }, [onSave])\n\n // SETTING CANVAS FROM PASSED VALUE\n React.useEffect(() => {\n const annotationContentElement = annotationContentElementRef.current\n const bmSignaturePadElement = bmSignaturePadRef.current\n const signatureCanvas = signatureCanvasRef.current\n if (\n !annotationContentElement ||\n !bmSignaturePadElement ||\n !signatureCanvas ||\n typeof imageSrc !== 'string'\n ) {\n return\n }\n const canvasElement = signatureCanvas.getCanvas()\n\n // Disable scrolling to allow for smooth drawing\n scrollingService.disableScrolling()\n\n const maxWidth = annotationContentElement.clientWidth\n const maxHeight = annotationContentElement.clientHeight\n\n const i = new Image()\n i.onload = function () {\n const imageWidth = i.width\n const imageHeight = i.height\n let canvasWidth = imageWidth\n let canvasHeight = imageHeight\n\n if (imageWidth > maxWidth || imageHeight > maxHeight) {\n const widthRatio = maxWidth / imageWidth\n const heightRatio = maxHeight / imageHeight\n const ratio = Math.min(widthRatio, heightRatio)\n\n canvasWidth = ratio * imageWidth\n canvasHeight = ratio * imageHeight\n }\n\n bmSignaturePadElement.style.width = `${canvasWidth}px`\n bmSignaturePadElement.style.height = `${canvasHeight}px`\n bmSignaturePadElement.style.backgroundSize = 'cover'\n bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`\n canvasElement.width = canvasWidth\n canvasElement.height = canvasHeight\n }\n console.log('imageSrc', imageSrc)\n i.src = imageSrc\n\n return () => {\n scrollingService.enableScrolling()\n }\n }, [imageSrc])\n\n return (\n <div className=\"modal is-active\">\n <div className=\"modal-background-faded\"></div>\n <div className=\"ob-annotation ob-border-radius\">\n <div className=\"ob-annotation__buttons ob-annotation__buttons-colours ob-border-radius\">\n {annotationButtonColours.map((colour, index) => {\n return (\n <button\n key={index}\n type=\"button\"\n className={clsx(\n 'button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button',\n {\n 'is-selected': penColour === colour,\n },\n )}\n onClick={() => setPenColour(colour)}\n style={{ backgroundColor: colour }}\n />\n )\n })}\n </div>\n <div\n ref={annotationContentElementRef}\n className=\"ob-annotation__content\"\n >\n <div\n ref={bmSignaturePadRef}\n className=\"ob-annotation__signature-pad cypress-annotation-signature-pad\"\n >\n <SignatureCanvas\n ref={signatureCanvasRef}\n clearOnResize={false}\n onEnd={setDirty}\n penColor={penColour}\n />\n </div>\n </div>\n <div className=\"ob-annotation__buttons ob-annotation__buttons-actions\">\n <button\n type=\"button\"\n className=\"button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button\"\n onClick={handleCancelAnnotation}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button\"\n disabled={!isDirty}\n onClick={handleSaveAnnotation}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default React.memo(AnnotationModal)\n\nexport const superimposeAnnotationOnImage = async ({\n annotationDataUri,\n attachmentUrl,\n}: {\n annotationDataUri: string\n attachmentUrl: string\n}): Promise<Blob | undefined> => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) {\n return\n }\n\n const image = new Image()\n return new Promise<Blob>((resolve, reject) => {\n image.onload = function () {\n canvas.width = image.width\n canvas.height = image.height\n\n ctx.drawImage(image, 0, 0)\n\n const annotationImage = new Image()\n annotationImage.onload = function () {\n ctx.drawImage(annotationImage, 0, 0, canvas.width, canvas.height)\n canvasToBlob(canvas).then(resolve).catch(reject)\n }\n annotationImage.src = annotationDataUri\n }\n image.setAttribute('crossorigin', 'anonymous')\n image.src = attachmentUrl\n })\n}\n"]}
1
+ {"version":3,"file":"AnnotationModal.js","sourceRoot":"","sources":["../../../src/components/renderer/AnnotationModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport SignatureCanvas from 'react-signature-canvas'\n\nimport useBooleanState from '../../hooks/useBooleanState'\nimport scrollingService from '../../services/scrolling-service'\nimport { canvasToBlob } from '../../services/blob-utils'\n\nconst annotationButtonColours = [\n '#000000',\n '#ffffff',\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffee58',\n '#ffca28',\n '#ffa726',\n '#ff5722',\n]\n\nfunction AnnotationModal({\n imageSrc,\n onClose,\n onSave,\n}: {\n imageSrc: string\n onClose: () => void\n onSave: (newValue: string) => void\n}) {\n const annotationContentElementRef = React.useRef<HTMLDivElement>(null)\n const bmSignaturePadRef = React.useRef<HTMLDivElement>(null)\n const signatureCanvasRef = React.useRef<SignatureCanvas>(null)\n\n const [isDirty, setDirty] = useBooleanState(false)\n const [penColour, setPenColour] = React.useState(annotationButtonColours[0])\n\n const handleCancelAnnotation = React.useCallback(() => {\n if (signatureCanvasRef.current) {\n console.log('Clearing annotation...')\n signatureCanvasRef.current.clear()\n }\n onClose()\n }, [onClose])\n\n const handleSaveAnnotation = React.useCallback(() => {\n if (signatureCanvasRef.current) {\n onSave(signatureCanvasRef.current.toDataURL())\n }\n }, [onSave])\n\n // SETTING CANVAS FROM PASSED VALUE\n React.useEffect(() => {\n const annotationContentElement = annotationContentElementRef.current\n const bmSignaturePadElement = bmSignaturePadRef.current\n const signatureCanvas = signatureCanvasRef.current\n if (\n !annotationContentElement ||\n !bmSignaturePadElement ||\n !signatureCanvas ||\n typeof imageSrc !== 'string'\n ) {\n return\n }\n const canvasElement = signatureCanvas.getCanvas()\n\n // Disable scrolling to allow for smooth drawing\n scrollingService.disableScrolling()\n\n const maxWidth = annotationContentElement.clientWidth\n const maxHeight = annotationContentElement.clientHeight\n\n const i = new Image()\n i.onload = function () {\n const imageWidth = i.width\n const imageHeight = i.height\n let canvasWidth = imageWidth\n let canvasHeight = imageHeight\n\n if (imageWidth > maxWidth || imageHeight > maxHeight) {\n const widthRatio = maxWidth / imageWidth\n const heightRatio = maxHeight / imageHeight\n const ratio = Math.min(widthRatio, heightRatio)\n\n canvasWidth = ratio * imageWidth\n canvasHeight = ratio * imageHeight\n }\n\n bmSignaturePadElement.style.width = `${canvasWidth}px`\n bmSignaturePadElement.style.height = `${canvasHeight}px`\n bmSignaturePadElement.style.backgroundSize = 'cover'\n bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`\n canvasElement.width = canvasWidth\n canvasElement.height = canvasHeight\n }\n console.log('imageSrc', imageSrc)\n i.src = imageSrc\n\n return () => {\n scrollingService.enableScrolling()\n }\n }, [imageSrc])\n\n return (\n <div className=\"modal is-active\">\n <div className=\"modal-background-faded\"></div>\n <div className=\"ob-annotation ob-border-radius\">\n <div className=\"ob-annotation__buttons ob-annotation__buttons-colours ob-border-radius\">\n {annotationButtonColours.map((colour, index) => {\n return (\n <button\n key={index}\n type=\"button\"\n className={clsx(\n 'button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button',\n {\n 'is-selected': penColour === colour,\n },\n )}\n onClick={() => setPenColour(colour)}\n style={{ backgroundColor: colour }}\n />\n )\n })}\n </div>\n <div\n ref={annotationContentElementRef}\n className=\"ob-annotation__content\"\n >\n <div\n ref={bmSignaturePadRef}\n className=\"ob-annotation__signature-pad cypress-annotation-signature-pad\"\n >\n <SignatureCanvas\n ref={signatureCanvasRef}\n clearOnResize={false}\n onEnd={setDirty}\n penColor={penColour}\n />\n </div>\n </div>\n <div className=\"ob-annotation__buttons ob-annotation__buttons-actions\">\n <button\n type=\"button\"\n className=\"button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button\"\n onClick={handleCancelAnnotation}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button\"\n disabled={!isDirty}\n onClick={handleSaveAnnotation}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n )\n}\n\nexport default React.memo(AnnotationModal)\n\nexport const superimposeAnnotationOnImage = async ({\n annotationDataUri,\n attachmentUrl,\n}: {\n annotationDataUri: string\n attachmentUrl: string\n}): Promise<Blob | undefined> => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) {\n return\n }\n\n const image = new Image()\n return new Promise<Blob>((resolve, reject) => {\n image.onload = function () {\n canvas.width = image.width\n canvas.height = image.height\n\n ctx.drawImage(image, 0, 0)\n\n const annotationImage = new Image()\n annotationImage.onload = function () {\n ctx.drawImage(annotationImage, 0, 0, canvas.width, canvas.height)\n canvasToBlob(canvas).then(resolve).catch(reject)\n }\n annotationImage.src = annotationDataUri\n }\n image.setAttribute('crossorigin', 'anonymous')\n image.src = attachmentUrl\n })\n}\n"]}
@@ -25,6 +25,6 @@ type Props<T> = {
25
25
  branding?: React.ReactNode;
26
26
  autoComplete?: string;
27
27
  } & IsDirtyProps;
28
- declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, isDirty, setIsDirty, branding, autoComplete, ...props }: Props<T>): React.JSX.Element;
28
+ declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, isDirty, setIsDirty, branding, autoComplete, ...props }: Props<T>): import("react/jsx-runtime").JSX.Element;
29
29
  declare const _default: typeof AutocompleteDropdown;
30
30
  export default _default;
@@ -1,6 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import clsx from 'clsx';
3
- import { Sentry } from '@oneblink/apps';
4
+ import { Sentry } from '../../apps';
4
5
  import useBooleanState from '../../hooks/useBooleanState';
5
6
  import { LookupNotificationContext } from '../../hooks/useLookupNotification';
6
7
  import MaterialIcon from '../MaterialIcon';
@@ -152,40 +153,20 @@ function AutocompleteDropdown({ id, label, value, placeholder, required, disable
152
153
  const isShowingLoading = isFetchingOptions || !!isLoading;
153
154
  const isShowingValid = !isShowingLoading && value !== undefined;
154
155
  const isShowingError = !isShowingLoading && !isLookingUp && !!hasError;
155
- return (React.createElement(React.Fragment, null,
156
- React.createElement("div", { className: clsx('dropdown', {
157
- 'is-active': isOpen && Array.isArray(options),
158
- }) },
159
- React.createElement("div", { className: "field" },
160
- React.createElement("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
161
- 'is-loading': isShowingLoading,
162
- 'has-icons-right': isShowingValid || isShowingError,
163
- }) },
164
- React.createElement("input", { type: "text", placeholder: placeholder, id: id, autoComplete: autoComplete !== null && autoComplete !== void 0 ? autoComplete : 'off', className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: () => handleBlur({ label, value }), onKeyDown: onKeyDown, onChange: handleChangeLabel, "aria-describedby": props['aria-describedby'], "aria-required": required }),
165
- isShowingValid && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
166
- React.createElement(MaterialIcon, { className: "is-size-5 has-text-success" }, "check"))),
167
- isShowingError && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
168
- React.createElement(MaterialIcon, { className: "is-size-5 has-text-danger" }, "error"))))),
169
- React.createElement("div", { className: "dropdown-menu" },
170
- React.createElement("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content" },
171
- error ? (React.createElement("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error" },
172
- 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" },
173
- React.createElement("i", null,
174
- "Enter at least ",
175
- searchMinCharacters,
176
- " character(s) to search"))) : isShowingLoading ? (React.createElement("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching" },
177
- 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}`, {
178
- 'is-active': currentFocusedOptionIndex === index,
179
- }), onMouseDown: (e) => handleClickOption(e, option),
180
- // eslint-disable-next-line react/no-danger
181
- dangerouslySetInnerHTML: {
182
- __html: highlightLabel(option.label, label),
183
- } })))) : (React.createElement("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches" },
184
- React.createElement("i", null, "No matches found"))),
185
- branding))),
186
- (isDirty || displayValidationMessage) &&
187
- !!validationMessage &&
188
- !isShowingLoading && (React.createElement(FormElementValidationMessage, { message: validationMessage }))));
156
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: clsx('dropdown', {
157
+ 'is-active': isOpen && Array.isArray(options),
158
+ }), children: [_jsx("div", { className: "field", children: _jsxs("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
159
+ 'is-loading': isShowingLoading,
160
+ 'has-icons-right': isShowingValid || isShowingError,
161
+ }), children: [_jsx("input", { type: "text", placeholder: placeholder, id: id, autoComplete: autoComplete !== null && autoComplete !== void 0 ? autoComplete : 'off', className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: () => handleBlur({ label, value }), onKeyDown: onKeyDown, onChange: handleChangeLabel, "aria-describedby": props['aria-describedby'], "aria-required": required }), isShowingValid && (_jsx("span", { className: " ob-input-icon icon is-small is-right", children: _jsx(MaterialIcon, { className: "is-size-5 has-text-success", children: "check" }) })), isShowingError && (_jsx("span", { className: " ob-input-icon icon is-small is-right", children: _jsx(MaterialIcon, { className: "is-size-5 has-text-danger", children: "error" }) }))] }) }), _jsx("div", { className: "dropdown-menu", children: _jsxs("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content", children: [error ? (_jsx("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error", children: _jsx("span", { className: "has-text-danger", children: error.message }) })) : label.length < searchMinCharacters ? (_jsx("a", { className: "dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters", children: _jsxs("i", { children: ["Enter at least ", searchMinCharacters, " character(s) to search"] }) })) : isShowingLoading ? (_jsx("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching", children: _jsx("i", { children: "Searching..." }) })) : options && options.length ? (options.map((option, index) => (_jsx("a", { className: clsx(`dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`, {
162
+ 'is-active': currentFocusedOptionIndex === index,
163
+ }), onMouseDown: (e) => handleClickOption(e, option),
164
+ // eslint-disable-next-line react/no-danger
165
+ dangerouslySetInnerHTML: {
166
+ __html: highlightLabel(option.label, label),
167
+ } }, option.value)))) : (_jsx("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches", children: _jsx("i", { children: "No matches found" }) })), branding] }) })] }), (isDirty || displayValidationMessage) &&
168
+ !!validationMessage &&
169
+ !isShowingLoading && (_jsx(FormElementValidationMessage, { message: validationMessage }))] }));
189
170
  }
190
171
  export default React.memo(AutocompleteDropdown);
191
172
  function highlightLabel(text, phrase) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteDropdown.js","sourceRoot":"","sources":["../../../src/components/renderer/AutocompleteDropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Sentry } from '@oneblink/apps'\n\nimport useBooleanState from '../../hooks/useBooleanState'\nimport { IsDirtyProps } from '../../types/form'\nimport { LookupNotificationContext } from '../../hooks/useLookupNotification'\nimport MaterialIcon from '../MaterialIcon'\nimport FormElementValidationMessage from './FormElementValidationMessage'\n\ntype AutocompleteOption<T> = {\n label: string\n value: string\n data?: T\n}\n\ntype Props<T> = {\n id: string\n label: string\n value: unknown | undefined\n placeholder: string | undefined\n required: boolean | undefined\n disabled: boolean | undefined\n isLoading?: boolean\n hasError?: boolean\n validationMessage: string | undefined\n displayValidationMessage: boolean\n searchDebounceMs: number\n searchMinCharacters: number\n onChangeValue: (\n newValue: string | undefined,\n data?: T,\n ) => Promise<void> | void\n onChangeLabel: (newLabel: string) => void\n onSearch: (\n label: string,\n abortSignal: AbortSignal,\n ) => Promise<AutocompleteOption<T>[]>\n 'aria-describedby'?: string\n branding?: React.ReactNode\n autoComplete?: string\n} & IsDirtyProps\n\nfunction AutocompleteDropdown<T>({\n id,\n label,\n value,\n placeholder,\n required,\n disabled,\n validationMessage,\n displayValidationMessage,\n searchDebounceMs,\n searchMinCharacters,\n isLoading,\n hasError,\n onChangeValue,\n onChangeLabel,\n onSearch,\n isDirty,\n setIsDirty,\n branding,\n autoComplete,\n ...props\n}: Props<T>) {\n const optionsContainerElement = React.useRef<HTMLDivElement>(null)\n const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] =\n React.useState(0)\n const [options, setOptions] = React.useState<AutocompleteOption<T>[]>([])\n const [error, setError] = React.useState<Error | null>(null)\n const [isFetchingOptions, setIsFetchingOptions] = React.useState(false)\n const [isOpen, onOpen, onClose] = useBooleanState(false)\n\n const onSelectOption = React.useCallback(\n (option: AutocompleteOption<T>) => {\n onChangeLabel(option.label)\n onChangeValue(option.value, option.data)\n onClose()\n },\n [onChangeLabel, onChangeValue, onClose],\n )\n\n const handleClickOption = React.useCallback(\n (\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n option: AutocompleteOption<T>,\n ) => {\n console.log('Selected element option in autocomplete', option)\n\n event.preventDefault()\n event.stopPropagation()\n\n onSelectOption(option)\n },\n [onSelectOption],\n )\n\n const onFocus = React.useCallback(() => {\n setCurrentFocusedOptionIndex(0)\n onOpen()\n }, [onOpen])\n\n // When moving away from the input, if this is no value remove\n // the label to show the user they have not selected a value\n const handleBlur = React.useCallback(\n (inputOption: { label: string; value: unknown | undefined }) => {\n setIsDirty()\n setError(null)\n onClose()\n\n if (Array.isArray(options)) {\n // If there is a label that resembles an option, set that option to be the new value.\n // UNLESS it was the previously selected label. Else, clear the label and the value.\n if (inputOption.label) {\n const lowerCase = inputOption.label.toLowerCase()\n const option = options.find(\n (option) => option.label.toLowerCase() === lowerCase,\n )\n if (option) {\n // If the new option is not equal to the option that is currently selected,\n // we want to update to the new option to ensure that it gets changed.\n if (inputOption.value !== option.value) {\n console.log('Setting value after blurring away from autocomplete')\n onSelectOption(option)\n }\n return\n }\n }\n\n console.log('Removing label after blurring away from autocomplete')\n onChangeValue(undefined)\n onChangeLabel('')\n }\n },\n [\n onChangeLabel,\n onChangeValue,\n onClose,\n onSelectOption,\n options,\n setIsDirty,\n ],\n )\n\n const onKeyDown = React.useCallback<\n React.KeyboardEventHandler<HTMLInputElement>\n >(\n (event) => {\n if (!options) {\n return\n }\n const enterPressed = event.keyCode === 13\n const upArrowPressed = event.keyCode === 38\n const downArrowPressed = event.keyCode === 40\n if (!upArrowPressed && !downArrowPressed && !enterPressed) {\n return\n }\n\n event.preventDefault()\n\n const previousFocusedOptionIndex = currentFocusedOptionIndex\n let nextFocusedOptionIndex = currentFocusedOptionIndex\n if (upArrowPressed) {\n nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1)\n } else if (downArrowPressed) {\n nextFocusedOptionIndex = Math.min(\n options.length - 1,\n currentFocusedOptionIndex + 1,\n )\n } else if (enterPressed) {\n const option = options[nextFocusedOptionIndex]\n if (option) {\n onSelectOption(option)\n }\n }\n\n // If the index has changed, need to ensure the active option is visible\n if (\n previousFocusedOptionIndex !== nextFocusedOptionIndex &&\n optionsContainerElement.current\n ) {\n const activeStepElement = optionsContainerElement.current.querySelector(\n `.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`,\n )\n if (activeStepElement) {\n activeStepElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n })\n }\n setCurrentFocusedOptionIndex(nextFocusedOptionIndex)\n }\n },\n [currentFocusedOptionIndex, options, onSelectOption],\n )\n\n const handleChangeLabel = React.useCallback<\n React.ChangeEventHandler<HTMLInputElement>\n >(\n (e) => {\n const newLabel = e.target.value\n onOpen()\n setCurrentFocusedOptionIndex(0)\n\n onChangeLabel(newLabel)\n },\n [onChangeLabel, onOpen],\n )\n\n React.useEffect(() => {\n setError(null)\n\n if (!isOpen || label.length < searchMinCharacters) {\n setIsFetchingOptions(false)\n return\n }\n\n setIsFetchingOptions(true)\n\n let ignore = false\n const abortController = new AbortController()\n\n const timeoutId = setTimeout(async () => {\n let newOptions: AutocompleteOption<T>[] = []\n let newError = null\n\n try {\n newOptions = await onSearch(label, abortController.signal)\n } catch (error) {\n // Cancelling will throw an error.\n if (!abortController.signal.aborted) {\n console.warn('Error while fetching autocomplete options', error)\n Sentry.captureException(error)\n newError = error as Error\n }\n }\n if (!ignore) {\n setError(newError)\n setOptions(newOptions)\n setIsFetchingOptions(false)\n }\n }, searchDebounceMs)\n\n return () => {\n ignore = true\n clearTimeout(timeoutId)\n abortController.abort()\n }\n }, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters])\n\n React.useEffect(() => {\n //If there is no value set, we want to clear the label\n //This is to satisfy lookups that return undefined.\n if (!value) {\n onChangeLabel('')\n }\n }, [onChangeLabel, value])\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n\n const isShowingLoading = isFetchingOptions || !!isLoading\n const isShowingValid = !isShowingLoading && value !== undefined\n const isShowingError = !isShowingLoading && !isLookingUp && !!hasError\n\n return (\n <>\n <div\n className={clsx('dropdown', {\n 'is-active': isOpen && Array.isArray(options),\n })}\n >\n <div className=\"field\">\n <div\n className={clsx(\n 'cypress-autocomplete-field-control control is-expanded',\n {\n 'is-loading': isShowingLoading,\n 'has-icons-right': isShowingValid || isShowingError,\n },\n )}\n >\n <input\n type=\"text\"\n placeholder={placeholder}\n id={id}\n autoComplete={autoComplete ?? 'off'}\n className=\"cypress-autocomplete-control input ob-input\"\n required={required}\n value={label}\n disabled={disabled}\n onFocus={onFocus}\n onBlur={() => handleBlur({ label, value })}\n onKeyDown={onKeyDown}\n onChange={handleChangeLabel}\n aria-describedby={props['aria-describedby']}\n aria-required={required}\n />\n {isShowingValid && (\n <span className=\" ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5 has-text-success\">\n check\n </MaterialIcon>\n </span>\n )}\n {isShowingError && (\n <span className=\" ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5 has-text-danger\">\n error\n </MaterialIcon>\n </span>\n )}\n </div>\n </div>\n\n <div className=\"dropdown-menu\">\n <div\n ref={optionsContainerElement}\n className=\"ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content\"\n >\n {error ? (\n <a className=\"dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error\">\n <span className=\"has-text-danger\">{error.message}</span>\n </a>\n ) : label.length < searchMinCharacters ? (\n <a className=\"dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters\">\n <i>\n Enter at least {searchMinCharacters} character(s) to search\n </i>\n </a>\n ) : isShowingLoading ? (\n <a className=\"dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching\">\n <i>Searching...</i>\n </a>\n ) : options && options.length ? (\n options.map((option, index) => (\n <a\n key={option.value}\n className={clsx(\n `dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`,\n {\n 'is-active': currentFocusedOptionIndex === index,\n },\n )}\n onMouseDown={(e) => handleClickOption(e, option)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: highlightLabel(option.label, label),\n }}\n />\n ))\n ) : (\n <a className=\"dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches\">\n <i>No matches found</i>\n </a>\n )}\n {branding}\n </div>\n </div>\n </div>\n\n {(isDirty || displayValidationMessage) &&\n !!validationMessage &&\n !isShowingLoading && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </>\n )\n}\n\nexport default React.memo(AutocompleteDropdown) as typeof AutocompleteDropdown\n\nfunction highlightLabel(text: string, phrase: string) {\n if (phrase) {\n text = text.replace(\n new RegExp(\n '(' +\n phrase.replace(\n /[`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]/gi,\n (char: string) => `\\\\${char}`,\n ) +\n ')',\n 'gi',\n ),\n '<b>$1</b>',\n )\n }\n\n return text\n}\n"]}
1
+ {"version":3,"file":"AutocompleteDropdown.js","sourceRoot":"","sources":["../../../src/components/renderer/AutocompleteDropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Sentry } from '../../apps'\n\nimport useBooleanState from '../../hooks/useBooleanState'\nimport { IsDirtyProps } from '../../types/form'\nimport { LookupNotificationContext } from '../../hooks/useLookupNotification'\nimport MaterialIcon from '../MaterialIcon'\nimport FormElementValidationMessage from './FormElementValidationMessage'\n\ntype AutocompleteOption<T> = {\n label: string\n value: string\n data?: T\n}\n\ntype Props<T> = {\n id: string\n label: string\n value: unknown | undefined\n placeholder: string | undefined\n required: boolean | undefined\n disabled: boolean | undefined\n isLoading?: boolean\n hasError?: boolean\n validationMessage: string | undefined\n displayValidationMessage: boolean\n searchDebounceMs: number\n searchMinCharacters: number\n onChangeValue: (\n newValue: string | undefined,\n data?: T,\n ) => Promise<void> | void\n onChangeLabel: (newLabel: string) => void\n onSearch: (\n label: string,\n abortSignal: AbortSignal,\n ) => Promise<AutocompleteOption<T>[]>\n 'aria-describedby'?: string\n branding?: React.ReactNode\n autoComplete?: string\n} & IsDirtyProps\n\nfunction AutocompleteDropdown<T>({\n id,\n label,\n value,\n placeholder,\n required,\n disabled,\n validationMessage,\n displayValidationMessage,\n searchDebounceMs,\n searchMinCharacters,\n isLoading,\n hasError,\n onChangeValue,\n onChangeLabel,\n onSearch,\n isDirty,\n setIsDirty,\n branding,\n autoComplete,\n ...props\n}: Props<T>) {\n const optionsContainerElement = React.useRef<HTMLDivElement>(null)\n const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] =\n React.useState(0)\n const [options, setOptions] = React.useState<AutocompleteOption<T>[]>([])\n const [error, setError] = React.useState<Error | null>(null)\n const [isFetchingOptions, setIsFetchingOptions] = React.useState(false)\n const [isOpen, onOpen, onClose] = useBooleanState(false)\n\n const onSelectOption = React.useCallback(\n (option: AutocompleteOption<T>) => {\n onChangeLabel(option.label)\n onChangeValue(option.value, option.data)\n onClose()\n },\n [onChangeLabel, onChangeValue, onClose],\n )\n\n const handleClickOption = React.useCallback(\n (\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n option: AutocompleteOption<T>,\n ) => {\n console.log('Selected element option in autocomplete', option)\n\n event.preventDefault()\n event.stopPropagation()\n\n onSelectOption(option)\n },\n [onSelectOption],\n )\n\n const onFocus = React.useCallback(() => {\n setCurrentFocusedOptionIndex(0)\n onOpen()\n }, [onOpen])\n\n // When moving away from the input, if this is no value remove\n // the label to show the user they have not selected a value\n const handleBlur = React.useCallback(\n (inputOption: { label: string; value: unknown | undefined }) => {\n setIsDirty()\n setError(null)\n onClose()\n\n if (Array.isArray(options)) {\n // If there is a label that resembles an option, set that option to be the new value.\n // UNLESS it was the previously selected label. Else, clear the label and the value.\n if (inputOption.label) {\n const lowerCase = inputOption.label.toLowerCase()\n const option = options.find(\n (option) => option.label.toLowerCase() === lowerCase,\n )\n if (option) {\n // If the new option is not equal to the option that is currently selected,\n // we want to update to the new option to ensure that it gets changed.\n if (inputOption.value !== option.value) {\n console.log('Setting value after blurring away from autocomplete')\n onSelectOption(option)\n }\n return\n }\n }\n\n console.log('Removing label after blurring away from autocomplete')\n onChangeValue(undefined)\n onChangeLabel('')\n }\n },\n [\n onChangeLabel,\n onChangeValue,\n onClose,\n onSelectOption,\n options,\n setIsDirty,\n ],\n )\n\n const onKeyDown = React.useCallback<\n React.KeyboardEventHandler<HTMLInputElement>\n >(\n (event) => {\n if (!options) {\n return\n }\n const enterPressed = event.keyCode === 13\n const upArrowPressed = event.keyCode === 38\n const downArrowPressed = event.keyCode === 40\n if (!upArrowPressed && !downArrowPressed && !enterPressed) {\n return\n }\n\n event.preventDefault()\n\n const previousFocusedOptionIndex = currentFocusedOptionIndex\n let nextFocusedOptionIndex = currentFocusedOptionIndex\n if (upArrowPressed) {\n nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1)\n } else if (downArrowPressed) {\n nextFocusedOptionIndex = Math.min(\n options.length - 1,\n currentFocusedOptionIndex + 1,\n )\n } else if (enterPressed) {\n const option = options[nextFocusedOptionIndex]\n if (option) {\n onSelectOption(option)\n }\n }\n\n // If the index has changed, need to ensure the active option is visible\n if (\n previousFocusedOptionIndex !== nextFocusedOptionIndex &&\n optionsContainerElement.current\n ) {\n const activeStepElement = optionsContainerElement.current.querySelector(\n `.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`,\n )\n if (activeStepElement) {\n activeStepElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n })\n }\n setCurrentFocusedOptionIndex(nextFocusedOptionIndex)\n }\n },\n [currentFocusedOptionIndex, options, onSelectOption],\n )\n\n const handleChangeLabel = React.useCallback<\n React.ChangeEventHandler<HTMLInputElement>\n >(\n (e) => {\n const newLabel = e.target.value\n onOpen()\n setCurrentFocusedOptionIndex(0)\n\n onChangeLabel(newLabel)\n },\n [onChangeLabel, onOpen],\n )\n\n React.useEffect(() => {\n setError(null)\n\n if (!isOpen || label.length < searchMinCharacters) {\n setIsFetchingOptions(false)\n return\n }\n\n setIsFetchingOptions(true)\n\n let ignore = false\n const abortController = new AbortController()\n\n const timeoutId = setTimeout(async () => {\n let newOptions: AutocompleteOption<T>[] = []\n let newError = null\n\n try {\n newOptions = await onSearch(label, abortController.signal)\n } catch (error) {\n // Cancelling will throw an error.\n if (!abortController.signal.aborted) {\n console.warn('Error while fetching autocomplete options', error)\n Sentry.captureException(error)\n newError = error as Error\n }\n }\n if (!ignore) {\n setError(newError)\n setOptions(newOptions)\n setIsFetchingOptions(false)\n }\n }, searchDebounceMs)\n\n return () => {\n ignore = true\n clearTimeout(timeoutId)\n abortController.abort()\n }\n }, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters])\n\n React.useEffect(() => {\n //If there is no value set, we want to clear the label\n //This is to satisfy lookups that return undefined.\n if (!value) {\n onChangeLabel('')\n }\n }, [onChangeLabel, value])\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n\n const isShowingLoading = isFetchingOptions || !!isLoading\n const isShowingValid = !isShowingLoading && value !== undefined\n const isShowingError = !isShowingLoading && !isLookingUp && !!hasError\n\n return (\n <>\n <div\n className={clsx('dropdown', {\n 'is-active': isOpen && Array.isArray(options),\n })}\n >\n <div className=\"field\">\n <div\n className={clsx(\n 'cypress-autocomplete-field-control control is-expanded',\n {\n 'is-loading': isShowingLoading,\n 'has-icons-right': isShowingValid || isShowingError,\n },\n )}\n >\n <input\n type=\"text\"\n placeholder={placeholder}\n id={id}\n autoComplete={autoComplete ?? 'off'}\n className=\"cypress-autocomplete-control input ob-input\"\n required={required}\n value={label}\n disabled={disabled}\n onFocus={onFocus}\n onBlur={() => handleBlur({ label, value })}\n onKeyDown={onKeyDown}\n onChange={handleChangeLabel}\n aria-describedby={props['aria-describedby']}\n aria-required={required}\n />\n {isShowingValid && (\n <span className=\" ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5 has-text-success\">\n check\n </MaterialIcon>\n </span>\n )}\n {isShowingError && (\n <span className=\" ob-input-icon icon is-small is-right\">\n <MaterialIcon className=\"is-size-5 has-text-danger\">\n error\n </MaterialIcon>\n </span>\n )}\n </div>\n </div>\n\n <div className=\"dropdown-menu\">\n <div\n ref={optionsContainerElement}\n className=\"ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content\"\n >\n {error ? (\n <a className=\"dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error\">\n <span className=\"has-text-danger\">{error.message}</span>\n </a>\n ) : label.length < searchMinCharacters ? (\n <a className=\"dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters\">\n <i>\n Enter at least {searchMinCharacters} character(s) to search\n </i>\n </a>\n ) : isShowingLoading ? (\n <a className=\"dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching\">\n <i>Searching...</i>\n </a>\n ) : options && options.length ? (\n options.map((option, index) => (\n <a\n key={option.value}\n className={clsx(\n `dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`,\n {\n 'is-active': currentFocusedOptionIndex === index,\n },\n )}\n onMouseDown={(e) => handleClickOption(e, option)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: highlightLabel(option.label, label),\n }}\n />\n ))\n ) : (\n <a className=\"dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches\">\n <i>No matches found</i>\n </a>\n )}\n {branding}\n </div>\n </div>\n </div>\n\n {(isDirty || displayValidationMessage) &&\n !!validationMessage &&\n !isShowingLoading && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </>\n )\n}\n\nexport default React.memo(AutocompleteDropdown) as typeof AutocompleteDropdown\n\nfunction highlightLabel(text: string, phrase: string) {\n if (phrase) {\n text = text.replace(\n new RegExp(\n '(' +\n phrase.replace(\n /[`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]/gi,\n (char: string) => `\\\\${char}`,\n ) +\n ')',\n 'gi',\n ),\n '<b>$1</b>',\n )\n }\n\n return text\n}\n"]}
@@ -3,6 +3,6 @@ type Props = {
3
3
  text: string;
4
4
  className?: string;
5
5
  };
6
- declare function CopyToClipboardButton({ className, text }: Props): React.JSX.Element;
6
+ declare function CopyToClipboardButton({ className, text }: Props): import("react/jsx-runtime").JSX.Element;
7
7
  declare const _default: React.MemoExoticComponent<typeof CopyToClipboardButton>;
8
8
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import Tooltip from './Tooltip';
2
3
  import * as React from 'react';
3
4
  import utilsService from '../../services/utils-service';
@@ -6,10 +7,7 @@ function CopyToClipboardButton({ className, text }) {
6
7
  const copy = React.useCallback(() => {
7
8
  utilsService.copyToClipboard(text);
8
9
  }, [text]);
9
- return (React.createElement(Tooltip, { title: "Copy to clipboard" },
10
- React.createElement("button", { onClick: copy, className: className, type: "button" },
11
- React.createElement("span", { className: "icon" },
12
- React.createElement(MaterialIcon, null, "file_copy")))));
10
+ return (_jsx(Tooltip, { title: "Copy to clipboard", children: _jsx("button", { onClick: copy, className: className, type: "button", children: _jsx("span", { className: "icon", children: _jsx(MaterialIcon, { children: "file_copy" }) }) }) }));
13
11
  }
14
12
  export default React.memo(CopyToClipboardButton);
15
13
  //# sourceMappingURL=CopyToClipboardButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboardButton.js","sourceRoot":"","sources":["../../../src/components/renderer/CopyToClipboardButton.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,YAAY,MAAM,8BAA8B,CAAA;AACvD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAO1C,SAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAS;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,OAAO,CACL,oBAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB;QAChC,gCAAQ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ;YACxD,8BAAM,SAAS,EAAC,MAAM;gBACpB,oBAAC,YAAY,oBAAyB,CACjC,CACA,CACD,CACX,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA","sourcesContent":["import Tooltip from './Tooltip'\nimport * as React from 'react'\n\nimport utilsService from '../../services/utils-service'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n text: string\n className?: string\n}\n\nfunction CopyToClipboardButton({ className, text }: Props) {\n const copy = React.useCallback(() => {\n utilsService.copyToClipboard(text)\n }, [text])\n return (\n <Tooltip title=\"Copy to clipboard\">\n <button onClick={copy} className={className} type=\"button\">\n <span className=\"icon\">\n <MaterialIcon>file_copy</MaterialIcon>\n </span>\n </button>\n </Tooltip>\n )\n}\n\nexport default React.memo(CopyToClipboardButton)\n"]}
1
+ {"version":3,"file":"CopyToClipboardButton.js","sourceRoot":"","sources":["../../../src/components/renderer/CopyToClipboardButton.tsx"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,YAAY,MAAM,8BAA8B,CAAA;AACvD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAO1C,SAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAS;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB,YAChC,iBAAQ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,QAAQ,YACxD,eAAM,SAAS,EAAC,MAAM,YACpB,KAAC,YAAY,4BAAyB,GACjC,GACA,GACD,CACX,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA","sourcesContent":["import Tooltip from './Tooltip'\nimport * as React from 'react'\n\nimport utilsService from '../../services/utils-service'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n text: string\n className?: string\n}\n\nfunction CopyToClipboardButton({ className, text }: Props) {\n const copy = React.useCallback(() => {\n utilsService.copyToClipboard(text)\n }, [text])\n return (\n <Tooltip title=\"Copy to clipboard\">\n <button onClick={copy} className={className} type=\"button\">\n <span className=\"icon\">\n <MaterialIcon>file_copy</MaterialIcon>\n </span>\n </button>\n </Tooltip>\n )\n}\n\nexport default React.memo(CopyToClipboardButton)\n"]}
@@ -1,10 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import MaterialIcon from '../MaterialIcon';
3
4
  const CustomisableButton = ({ label, icon }) => {
4
- return (React.createElement(React.Fragment, null,
5
- React.createElement("span", { className: "ob-customisable-button-inner" },
6
- !!icon && React.createElement(MaterialIcon, null, icon),
7
- React.createElement("span", null, label))));
5
+ return (_jsx(_Fragment, { children: _jsxs("span", { className: "ob-customisable-button-inner", children: [!!icon && _jsx(MaterialIcon, { children: icon }), _jsx("span", { children: label })] }) }));
8
6
  };
9
7
  export default React.memo(CustomisableButton);
10
8
  //# sourceMappingURL=CustomisableButtonInner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomisableButtonInner.js","sourceRoot":"","sources":["../../../src/components/renderer/CustomisableButtonInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAO1C,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAS,EAAE,EAAE;IACpD,OAAO,CACL;QACE,8BAAM,SAAS,EAAC,8BAA8B;YAC3C,CAAC,CAAC,IAAI,IAAI,oBAAC,YAAY,QAAE,IAAI,CAAgB;YAC9C,kCAAO,KAAK,CAAQ,CACf,CACN,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,kBAAkB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n label: string\n icon?: string\n}\n\nconst CustomisableButton = ({ label, icon }: Props) => {\n return (\n <>\n <span className=\"ob-customisable-button-inner\">\n {!!icon && <MaterialIcon>{icon}</MaterialIcon>}\n <span>{label}</span>\n </span>\n </>\n )\n}\n\nexport default React.memo<Props>(CustomisableButton)\n"]}
1
+ {"version":3,"file":"CustomisableButtonInner.js","sourceRoot":"","sources":["../../../src/components/renderer/CustomisableButtonInner.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAO1C,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAS,EAAE,EAAE;IACpD,OAAO,CACL,4BACE,gBAAM,SAAS,EAAC,8BAA8B,aAC3C,CAAC,CAAC,IAAI,IAAI,KAAC,YAAY,cAAE,IAAI,GAAgB,EAC9C,yBAAO,KAAK,GAAQ,IACf,GACN,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,kBAAkB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport MaterialIcon from '../MaterialIcon'\n\ntype Props = {\n label: string\n icon?: string\n}\n\nconst CustomisableButton = ({ label, icon }: Props) => {\n return (\n <>\n <span className=\"ob-customisable-button-inner\">\n {!!icon && <MaterialIcon>{icon}</MaterialIcon>}\n <span>{label}</span>\n </span>\n </>\n )\n}\n\nexport default React.memo<Props>(CustomisableButton)\n"]}
@@ -7,14 +7,14 @@ declare function FormElementLabelContainer({ className, element, id, required, c
7
7
  required: boolean;
8
8
  children: React.ReactNode;
9
9
  leading?: React.ReactNode;
10
- }): React.JSX.Element;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
11
  export declare function HintTooltip({ hint, inputId, }: {
12
12
  hint: string;
13
13
  inputId: string;
14
- }): React.JSX.Element;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
15
  export declare function HintBelowLabel({ hint, inputId, }: {
16
16
  hint: string;
17
17
  inputId: string;
18
- }): React.JSX.Element;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
19
  declare const _default: React.MemoExoticComponent<typeof FormElementLabelContainer>;
20
20
  export default _default;
@@ -1,29 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import * as React from 'react';
2
3
  import Tooltip from './Tooltip';
3
4
  import clsx from 'clsx';
4
5
  import useReplaceableText from '../../hooks/useReplaceableText';
5
6
  import QuillHTML from '../QuillHTML';
6
7
  function FormElementLabelContainer({ className, element, id, required, children, leading, }) {
7
- return (React.createElement("div", { className: clsx('ob-form__element', className) },
8
- React.createElement("div", { className: "label ob-label__container" },
9
- leading,
10
- React.createElement("label", { className: clsx('ob-label', {
11
- 'ob-label__required is-required': required,
12
- }), htmlFor: id, id: `${id}-label` }, element.label),
13
- element.hint &&
14
- (element.hintPosition === 'TOOLTIP' || !element.hintPosition) && (React.createElement(HintTooltip, { hint: element.hint, inputId: id }))),
15
- element.hint && element.hintPosition === 'BELOW_LABEL' && (React.createElement("div", { className: "ob-hint-text__container" },
16
- React.createElement(HintBelowLabel, { hint: element.hint, inputId: id }))),
17
- children));
8
+ return (_jsxs("div", { className: clsx('ob-form__element', className), children: [_jsxs("div", { className: "label ob-label__container", children: [leading, _jsx("label", { className: clsx('ob-label', {
9
+ 'ob-label__required is-required': required,
10
+ }), htmlFor: id, id: `${id}-label`, children: element.label }), element.hint &&
11
+ (element.hintPosition === 'TOOLTIP' || !element.hintPosition) && (_jsx(HintTooltip, { hint: element.hint, inputId: id }))] }), element.hint && element.hintPosition === 'BELOW_LABEL' && (_jsx("div", { className: "ob-hint-text__container", children: _jsx(HintBelowLabel, { hint: element.hint, inputId: id }) })), children] }));
18
12
  }
19
13
  export function HintTooltip({ hint, inputId, }) {
20
14
  const html = useReplaceableText(hint);
21
- return (React.createElement(Tooltip, { title: React.createElement(QuillHTML, { html: html, className: "ob-hint-tooltip" }), arrow: true, enterTouchDelay: 0, leaveTouchDelay: 10000, id: `${inputId}-hint` },
22
- React.createElement("i", { className: "material-icons has-text-grey ob-label__hint", role: "tooltip", "aria-label": "More information" }, "info")));
15
+ return (_jsx(Tooltip, { title: _jsx(QuillHTML, { html: html, className: "ob-hint-tooltip" }), arrow: true, enterTouchDelay: 0, leaveTouchDelay: 10000, id: `${inputId}-hint`, children: _jsx("i", { className: "material-icons has-text-grey ob-label__hint", role: "tooltip", "aria-label": "More information", children: "info" }) }));
23
16
  }
24
17
  export function HintBelowLabel({ hint, inputId, }) {
25
18
  const html = useReplaceableText(hint);
26
- return (React.createElement(QuillHTML, { html: html, className: "ob-hint-text", id: `${inputId}-hint` }));
19
+ return (_jsx(QuillHTML, { html: html, className: "ob-hint-text", id: `${inputId}-hint` }));
27
20
  }
28
21
  export default React.memo(FormElementLabelContainer);
29
22
  //# sourceMappingURL=FormElementLabelContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElementLabelContainer.js","sourceRoot":"","sources":["../../../src/components/renderer/FormElementLabelContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,kBAAkB,MAAM,gCAAgC,CAAA;AAC/D,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,SAAS,yBAAyB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,GAQR;IACC,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;QACjD,6BAAK,SAAS,EAAC,2BAA2B;YACvC,OAAO;YACR,+BACE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,gCAAgC,EAAE,QAAQ;iBAC3C,CAAC,EACF,OAAO,EAAE,EAAE,EACX,EAAE,EAAE,GAAG,EAAE,QAAQ,IAEhB,OAAO,CAAC,KAAK,CACR;YACP,OAAO,CAAC,IAAI;gBACX,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAC/D,oBAAC,WAAW,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAI,CACjD,CACC;QACL,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,aAAa,IAAI,CACzD,6BAAK,SAAS,EAAC,yBAAyB;YACtC,oBAAC,cAAc,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAI,CAC/C,CACP;QACA,QAAQ,CACL,CACP,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,CACL,oBAAC,OAAO,IACN,KAAK,EAAE,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,iBAAiB,GAAG,EAC5D,KAAK,QACL,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,KAAK,EACtB,EAAE,EAAE,GAAG,OAAO,OAAO;QAGrB,2BACE,SAAS,EAAC,6CAA6C,EACvD,IAAI,EAAC,SAAS,gBACH,kBAAkB,WAG3B,CACI,CACX,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,CACL,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,cAAc,EAAC,EAAE,EAAE,GAAG,OAAO,OAAO,GAAI,CAC1E,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport Tooltip from './Tooltip'\nimport clsx from 'clsx'\nimport { FormTypes } from '@oneblink/types'\nimport useReplaceableText from '../../hooks/useReplaceableText'\nimport QuillHTML from '../QuillHTML'\n\nfunction FormElementLabelContainer({\n className,\n element,\n id,\n required,\n children,\n leading,\n}: {\n className: string\n element: FormTypes.FormElementBase\n id: string\n required: boolean\n children: React.ReactNode\n leading?: React.ReactNode\n}) {\n return (\n <div className={clsx('ob-form__element', className)}>\n <div className=\"label ob-label__container\">\n {leading}\n <label\n className={clsx('ob-label', {\n 'ob-label__required is-required': required,\n })}\n htmlFor={id}\n id={`${id}-label`}\n >\n {element.label}\n </label>\n {element.hint &&\n (element.hintPosition === 'TOOLTIP' || !element.hintPosition) && (\n <HintTooltip hint={element.hint} inputId={id} />\n )}\n </div>\n {element.hint && element.hintPosition === 'BELOW_LABEL' && (\n <div className=\"ob-hint-text__container\">\n <HintBelowLabel hint={element.hint} inputId={id} />\n </div>\n )}\n {children}\n </div>\n )\n}\n\nexport function HintTooltip({\n hint,\n inputId,\n}: {\n hint: string\n inputId: string\n}) {\n const html = useReplaceableText(hint)\n\n return (\n <Tooltip\n title={<QuillHTML html={html} className=\"ob-hint-tooltip\" />}\n arrow\n enterTouchDelay={0}\n leaveTouchDelay={10000}\n id={`${inputId}-hint`}\n >\n {/* Tooltip does not work with the MaterialIcon component - it must remain an i tag*/}\n <i\n className=\"material-icons has-text-grey ob-label__hint\"\n role=\"tooltip\"\n aria-label=\"More information\"\n >\n info\n </i>\n </Tooltip>\n )\n}\n\nexport function HintBelowLabel({\n hint,\n inputId,\n}: {\n hint: string\n inputId: string\n}) {\n const html = useReplaceableText(hint)\n\n return (\n <QuillHTML html={html} className=\"ob-hint-text\" id={`${inputId}-hint`} />\n )\n}\n\nexport default React.memo(FormElementLabelContainer)\n"]}
1
+ {"version":3,"file":"FormElementLabelContainer.js","sourceRoot":"","sources":["../../../src/components/renderer/FormElementLabelContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,kBAAkB,MAAM,gCAAgC,CAAA;AAC/D,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,SAAS,yBAAyB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,OAAO,GAQR;IACC,OAAO,CACL,eAAK,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,aACjD,eAAK,SAAS,EAAC,2BAA2B,aACvC,OAAO,EACR,gBACE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;4BAC1B,gCAAgC,EAAE,QAAQ;yBAC3C,CAAC,EACF,OAAO,EAAE,EAAE,EACX,EAAE,EAAE,GAAG,EAAE,QAAQ,YAEhB,OAAO,CAAC,KAAK,GACR,EACP,OAAO,CAAC,IAAI;wBACX,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAC/D,KAAC,WAAW,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAI,CACjD,IACC,EACL,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,aAAa,IAAI,CACzD,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,cAAc,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAI,GAC/C,CACP,EACA,QAAQ,IACL,CACP,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,CACL,KAAC,OAAO,IACN,KAAK,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,iBAAiB,GAAG,EAC5D,KAAK,QACL,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,KAAK,EACtB,EAAE,EAAE,GAAG,OAAO,OAAO,YAGrB,YACE,SAAS,EAAC,6CAA6C,EACvD,IAAI,EAAC,SAAS,gBACH,kBAAkB,qBAG3B,GACI,CACX,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,CACL,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,cAAc,EAAC,EAAE,EAAE,GAAG,OAAO,OAAO,GAAI,CAC1E,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport Tooltip from './Tooltip'\nimport clsx from 'clsx'\nimport { FormTypes } from '@oneblink/types'\nimport useReplaceableText from '../../hooks/useReplaceableText'\nimport QuillHTML from '../QuillHTML'\n\nfunction FormElementLabelContainer({\n className,\n element,\n id,\n required,\n children,\n leading,\n}: {\n className: string\n element: FormTypes.FormElementBase\n id: string\n required: boolean\n children: React.ReactNode\n leading?: React.ReactNode\n}) {\n return (\n <div className={clsx('ob-form__element', className)}>\n <div className=\"label ob-label__container\">\n {leading}\n <label\n className={clsx('ob-label', {\n 'ob-label__required is-required': required,\n })}\n htmlFor={id}\n id={`${id}-label`}\n >\n {element.label}\n </label>\n {element.hint &&\n (element.hintPosition === 'TOOLTIP' || !element.hintPosition) && (\n <HintTooltip hint={element.hint} inputId={id} />\n )}\n </div>\n {element.hint && element.hintPosition === 'BELOW_LABEL' && (\n <div className=\"ob-hint-text__container\">\n <HintBelowLabel hint={element.hint} inputId={id} />\n </div>\n )}\n {children}\n </div>\n )\n}\n\nexport function HintTooltip({\n hint,\n inputId,\n}: {\n hint: string\n inputId: string\n}) {\n const html = useReplaceableText(hint)\n\n return (\n <Tooltip\n title={<QuillHTML html={html} className=\"ob-hint-tooltip\" />}\n arrow\n enterTouchDelay={0}\n leaveTouchDelay={10000}\n id={`${inputId}-hint`}\n >\n {/* Tooltip does not work with the MaterialIcon component - it must remain an i tag*/}\n <i\n className=\"material-icons has-text-grey ob-label__hint\"\n role=\"tooltip\"\n aria-label=\"More information\"\n >\n info\n </i>\n </Tooltip>\n )\n}\n\nexport function HintBelowLabel({\n hint,\n inputId,\n}: {\n hint: string\n inputId: string\n}) {\n const html = useReplaceableText(hint)\n\n return (\n <QuillHTML html={html} className=\"ob-hint-text\" id={`${inputId}-hint`} />\n )\n}\n\nexport default React.memo(FormElementLabelContainer)\n"]}
@@ -6,6 +6,6 @@ type Props = {
6
6
  conditionallyShownOptionsElement: FormElementConditionallyShownElement | undefined;
7
7
  children: React.ReactNode;
8
8
  };
9
- declare function FormElementOptions({ options, children, conditionallyShownOptionsElement, }: Props): React.JSX.Element;
9
+ declare function FormElementOptions({ options, children, conditionallyShownOptionsElement, }: Props): import("react/jsx-runtime").JSX.Element;
10
10
  declare const _default: React.MemoExoticComponent<typeof FormElementOptions>;
11
11
  export default _default;