@oneblink/apps-react 6.9.0-beta.1 → 6.9.0-beta.11

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 (156) hide show
  1. package/dist/OneBlinkAutoSaveForm.js.map +1 -1
  2. package/dist/OneBlinkForm.d.ts +25 -35
  3. package/dist/OneBlinkFormBase.d.ts +6 -1
  4. package/dist/OneBlinkFormBase.js +8 -12
  5. package/dist/OneBlinkFormBase.js.map +1 -1
  6. package/dist/OneBlinkReadOnlyForm.js +0 -1
  7. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  8. package/dist/PaymentReceipt.js.map +1 -1
  9. package/dist/components/ArcGISWebMap.js.map +1 -1
  10. package/dist/components/CustomAccordion.d.ts +12 -13
  11. package/dist/components/ErrorSnackbar.js.map +1 -1
  12. package/dist/components/MaterialIcon.d.ts +4 -2
  13. package/dist/components/MaterialIcon.js +3 -3
  14. package/dist/components/MaterialIcon.js.map +1 -1
  15. package/dist/components/ValidationErrorsCard.d.ts +11 -0
  16. package/dist/components/ValidationErrorsCard.js +185 -0
  17. package/dist/components/ValidationErrorsCard.js.map +1 -0
  18. package/dist/components/ValidationErrorsCard_framer.d.ts +10 -0
  19. package/dist/components/ValidationErrorsCard_framer.js +218 -0
  20. package/dist/components/ValidationErrorsCard_framer.js.map +1 -0
  21. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
  22. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
  23. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
  24. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
  25. package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
  26. package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
  27. package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
  28. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  29. package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
  30. package/dist/components/formStore/table/generateColumns.d.ts +3 -10
  31. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  32. package/dist/components/formStore/table/useFormStoreTable.d.ts +4 -4
  33. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  34. package/dist/components/formStore/useFormStoreTableContext.d.ts +4 -4
  35. package/dist/components/formStore/useFormStoreTableContext.js.map +1 -1
  36. package/dist/components/payments/PaymentForm.js.map +1 -1
  37. package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
  38. package/dist/components/renderer/AnnotationModal.js.map +1 -1
  39. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
  40. package/dist/components/renderer/FormElementOptions.js.map +1 -1
  41. package/dist/components/renderer/LookupButton.js.map +1 -1
  42. package/dist/components/renderer/LookupNotification.js.map +1 -1
  43. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
  44. package/dist/components/renderer/OneBlinkFormElements.js +3 -1
  45. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  46. package/dist/components/renderer/PageFormElements.js.map +1 -1
  47. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  48. package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
  49. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +5 -5
  50. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  51. package/dist/components/renderer/attachments/DropdownMenu.js +6 -3
  52. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  53. package/dist/components/renderer/attachments/FileCard.js +1 -1
  54. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  55. package/dist/components/renderer/attachments/FileCardContent.d.ts +2 -2
  56. package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
  57. package/dist/form-elements/FormElementABN.js.map +1 -1
  58. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  59. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  60. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  61. package/dist/form-elements/FormElementBSB.js.map +1 -1
  62. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  63. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  64. package/dist/form-elements/FormElementCamera.js.map +1 -1
  65. package/dist/form-elements/FormElementCaptcha.js.map +1 -1
  66. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  67. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  68. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  69. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  70. package/dist/form-elements/FormElementDate.js.map +1 -1
  71. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  72. package/dist/form-elements/FormElementFile.js.map +1 -1
  73. package/dist/form-elements/FormElementFiles.js.map +1 -1
  74. package/dist/form-elements/FormElementForm.js +3 -1
  75. package/dist/form-elements/FormElementForm.js.map +1 -1
  76. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  77. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  78. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  79. package/dist/form-elements/FormElementHeading.js.map +1 -1
  80. package/dist/form-elements/FormElementLocation.js.map +1 -1
  81. package/dist/form-elements/FormElementNumber.js.map +1 -1
  82. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  83. package/dist/form-elements/FormElementRadio.js.map +1 -1
  84. package/dist/form-elements/FormElementRepeatableSet.js +3 -1
  85. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  86. package/dist/form-elements/FormElementSection.js.map +1 -1
  87. package/dist/form-elements/FormElementSelect.js.map +1 -1
  88. package/dist/form-elements/FormElementSignature.js.map +1 -1
  89. package/dist/form-elements/FormElementSummary.js.map +1 -1
  90. package/dist/form-elements/FormElementTime.js.map +1 -1
  91. package/dist/hooks/attachments/useAttachment.d.ts +3 -3
  92. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  93. package/dist/hooks/attachments/useAttachments.d.ts +1 -1
  94. package/dist/hooks/attachments/useAttachments.js.map +1 -1
  95. package/dist/hooks/useCaptcha.d.ts +0 -1
  96. package/dist/hooks/useClickOutsideElement.js.map +1 -1
  97. package/dist/hooks/useConditionalLogic.js.map +1 -1
  98. package/dist/hooks/useDrafts.js.map +1 -1
  99. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  100. package/dist/hooks/useFlatpickr.js.map +1 -1
  101. package/dist/hooks/useFormDefinition.js.map +1 -1
  102. package/dist/hooks/useFormElementLookups.js.map +1 -1
  103. package/dist/hooks/useFormElementOptions.js.map +1 -1
  104. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -3
  105. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  106. package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
  107. package/dist/hooks/useFormSubmissionState.d.ts +2 -2
  108. package/dist/hooks/useFormValidation.d.ts +1 -1
  109. package/dist/hooks/useFormValidation.js.map +1 -1
  110. package/dist/hooks/useInfiniteScrollDataLoad.js.map +1 -1
  111. package/dist/hooks/useIsOffline.d.ts +1 -1
  112. package/dist/hooks/useLoadDataState.js.map +1 -1
  113. package/dist/hooks/useLogin.js.map +1 -1
  114. package/dist/hooks/useLookupNotification.js.map +1 -1
  115. package/dist/hooks/useLookups.d.ts +1 -1
  116. package/dist/hooks/useLookups.js.map +1 -1
  117. package/dist/hooks/useOneBlinkFormContainer.d.ts +0 -1
  118. package/dist/hooks/usePages.js.map +1 -1
  119. package/dist/hooks/usePendingSubmissions.js.map +1 -1
  120. package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
  121. package/dist/hooks/useSignUp.js.map +1 -1
  122. package/dist/hooks/useSubmissionIdIsValid.js.map +1 -1
  123. package/dist/hooks/useToggleComplianceChildren.js.map +1 -1
  124. package/dist/hooks/useValidationClass.js.map +1 -1
  125. package/dist/services/attachments.js.map +1 -1
  126. package/dist/services/blob-utils.js.map +1 -1
  127. package/dist/services/checkBsbsAreInvalid.js.map +1 -1
  128. package/dist/services/checkIfAttachmentsExist.js.map +1 -1
  129. package/dist/services/checkIfBsbsAreValidating.js.map +1 -1
  130. package/dist/services/cleanFormSubmissionModel.js.map +1 -1
  131. package/dist/services/download-file.js.map +1 -1
  132. package/dist/services/drawTimestampOnCanvas.js.map +1 -1
  133. package/dist/services/form-validation.js.map +1 -1
  134. package/dist/services/generate-default-data.js.map +1 -1
  135. package/dist/services/generateCivicaNameRecordElements.js.map +1 -1
  136. package/dist/services/generateFreshdeskDependentFieldElements.js.map +1 -1
  137. package/dist/services/geolocation.js +1 -1
  138. package/dist/services/geolocation.js.map +1 -1
  139. package/dist/services/getDateRangeConfiguration.js.map +1 -1
  140. package/dist/services/getRepeatableSetEntriesConfiguration.js.map +1 -1
  141. package/dist/services/injectableOptions.js.map +1 -1
  142. package/dist/services/scrolling-service.js.map +1 -1
  143. package/dist/styles/ob-html.scss +3 -0
  144. package/dist/styles/section.scss +4 -0
  145. package/dist/styles/validation-errors-card.scss +180 -0
  146. package/dist/styles.css +179 -0
  147. package/dist/styles.scss +1 -0
  148. package/dist/types/form.d.ts +0 -1
  149. package/dist/utils/elementDOMIds.d.ts +13 -0
  150. package/dist/utils/elementDOMIds.js +24 -0
  151. package/dist/utils/elementDOMIds.js.map +1 -0
  152. package/dist/utils/merge-executed-lookups.js.map +1 -1
  153. package/dist/utils/scrollToElement.d.ts +6 -0
  154. package/dist/utils/scrollToElement.js +65 -0
  155. package/dist/utils/scrollToElement.js.map +1 -0
  156. package/package.json +6 -5
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Recursively traverses ancestors to find the first visible ancestor element
3
+ * and allow getting its scroll point. It handles the case of ancestor elements
4
+ * being hidden by `ob-hidden` or an ancestor section being collapsed.
5
+ *
6
+ * @param element - The element for which to find its first visible ancestor or
7
+ * ancestor sibling.
8
+ * @returns A callback that returns the scroll point of the first visible
9
+ * ancestor element, or undefined if none is found.
10
+ */
11
+ const findScrollPointOfVisibleAncestorElement = (element) => {
12
+ var _a;
13
+ const isVisible = element.checkVisibility();
14
+ if (!isVisible) {
15
+ const OBHiddenElement = element.closest('.is-hidden');
16
+ if (OBHiddenElement) {
17
+ // In the case of a hidden ancestor element we will navigate to the bottom of the previous visible sibling.
18
+ const parentIsVisible = (_a = OBHiddenElement.parentElement) === null || _a === void 0 ? void 0 : _a.checkVisibility();
19
+ if (!parentIsVisible) {
20
+ return findScrollPointOfVisibleAncestorElement(OBHiddenElement);
21
+ }
22
+ let previousSibling = OBHiddenElement.previousElementSibling;
23
+ while (previousSibling) {
24
+ if (previousSibling.checkVisibility()) {
25
+ // Have to reasign for TS, because it does not recognise the typeguard in the `while` inside the callback function
26
+ const sib = previousSibling;
27
+ return () => sib.getBoundingClientRect().bottom;
28
+ }
29
+ previousSibling = previousSibling.previousElementSibling;
30
+ }
31
+ }
32
+ // Collapsed section ancestor
33
+ const ancestorCollapsedSection = element.closest('.ob-section__collapsed');
34
+ if (ancestorCollapsedSection) {
35
+ const ancestorSectionRoot = ancestorCollapsedSection.closest('.ob-section');
36
+ return ancestorSectionRoot
37
+ ? findScrollPointOfVisibleAncestorElement(ancestorSectionRoot)
38
+ : undefined;
39
+ }
40
+ // Not visible for some other reason
41
+ return;
42
+ }
43
+ else {
44
+ return () => element.getBoundingClientRect().top;
45
+ }
46
+ };
47
+ const scrollToElement = ({ id, navigationTopOffset, }) => {
48
+ const element = document.getElementById(id);
49
+ if (element) {
50
+ const getScrollPoint = findScrollPointOfVisibleAncestorElement(element);
51
+ if (getScrollPoint) {
52
+ window.requestAnimationFrame(() => {
53
+ window.scrollTo({
54
+ top: getScrollPoint() +
55
+ window.scrollY -
56
+ // We allow an offset to cater for any headers
57
+ navigationTopOffset,
58
+ behavior: 'smooth',
59
+ });
60
+ });
61
+ }
62
+ }
63
+ };
64
+ export default scrollToElement;
65
+ //# sourceMappingURL=scrollToElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollToElement.js","sourceRoot":"","sources":["../../src/utils/scrollToElement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,uCAAuC,GAAG,CAC9C,OAAgB,EACY,EAAE;;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAErD,IAAI,eAAe,EAAE,CAAC;YACpB,2GAA2G;YAC3G,MAAM,eAAe,GAAG,MAAA,eAAe,CAAC,aAAa,0CAAE,eAAe,EAAE,CAAA;YACxE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,uCAAuC,CAAC,eAAe,CAAC,CAAA;YACjE,CAAC;YACD,IAAI,eAAe,GAAG,eAAe,CAAC,sBAAsB,CAAA;YAC5D,OAAO,eAAe,EAAE,CAAC;gBACvB,IAAI,eAAe,CAAC,eAAe,EAAE,EAAE,CAAC;oBACtC,kHAAkH;oBAClH,MAAM,GAAG,GAAG,eAAe,CAAA;oBAC3B,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAA;gBACjD,CAAC;gBACD,eAAe,GAAG,eAAe,CAAC,sBAAsB,CAAA;YAC1D,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;QAC1E,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,mBAAmB,GACvB,wBAAwB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YACjD,OAAO,mBAAmB;gBACxB,CAAC,CAAC,uCAAuC,CAAC,mBAAmB,CAAC;gBAC9D,CAAC,CAAC,SAAS,CAAA;QACf,CAAC;QAED,oCAAoC;QACpC,OAAM;IACR,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAA;IAClD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EACvB,EAAE,EACF,mBAAmB,GAKpB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IAE3C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,cAAc,GAAG,uCAAuC,CAAC,OAAO,CAAC,CAAA;QACvE,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAChC,MAAM,CAAC,QAAQ,CAAC;oBACd,GAAG,EACD,cAAc,EAAE;wBAChB,MAAM,CAAC,OAAO;wBACd,8CAA8C;wBAC9C,mBAAmB;oBACrB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA","sourcesContent":["/**\n * Recursively traverses ancestors to find the first visible ancestor element\n * and allow getting its scroll point. It handles the case of ancestor elements\n * being hidden by `ob-hidden` or an ancestor section being collapsed.\n *\n * @param element - The element for which to find its first visible ancestor or\n * ancestor sibling.\n * @returns A callback that returns the scroll point of the first visible\n * ancestor element, or undefined if none is found.\n */\nconst findScrollPointOfVisibleAncestorElement = (\n element: Element,\n): (() => number) | undefined => {\n const isVisible = element.checkVisibility()\n if (!isVisible) {\n const OBHiddenElement = element.closest('.is-hidden')\n\n if (OBHiddenElement) {\n // In the case of a hidden ancestor element we will navigate to the bottom of the previous visible sibling.\n const parentIsVisible = OBHiddenElement.parentElement?.checkVisibility()\n if (!parentIsVisible) {\n return findScrollPointOfVisibleAncestorElement(OBHiddenElement)\n }\n let previousSibling = OBHiddenElement.previousElementSibling\n while (previousSibling) {\n if (previousSibling.checkVisibility()) {\n // Have to reasign for TS, because it does not recognise the typeguard in the `while` inside the callback function\n const sib = previousSibling\n return () => sib.getBoundingClientRect().bottom\n }\n previousSibling = previousSibling.previousElementSibling\n }\n }\n\n // Collapsed section ancestor\n const ancestorCollapsedSection = element.closest('.ob-section__collapsed')\n if (ancestorCollapsedSection) {\n const ancestorSectionRoot =\n ancestorCollapsedSection.closest('.ob-section')\n return ancestorSectionRoot\n ? findScrollPointOfVisibleAncestorElement(ancestorSectionRoot)\n : undefined\n }\n\n // Not visible for some other reason\n return\n } else {\n return () => element.getBoundingClientRect().top\n }\n}\n\nconst scrollToElement = ({\n id,\n navigationTopOffset,\n}: {\n id: string\n /** We allow an offset to cater for any headers */\n navigationTopOffset: number\n}) => {\n const element = document.getElementById(id)\n\n if (element) {\n const getScrollPoint = findScrollPointOfVisibleAncestorElement(element)\n if (getScrollPoint) {\n window.requestAnimationFrame(() => {\n window.scrollTo({\n top:\n getScrollPoint() +\n window.scrollY -\n // We allow an offset to cater for any headers\n navigationTopOffset,\n behavior: 'smooth',\n })\n })\n }\n }\n}\n\nexport default scrollToElement\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oneblink/apps-react",
3
3
  "description": "Helper functions for OneBlink apps in ReactJS.",
4
- "version": "6.9.0-beta.1",
4
+ "version": "6.9.0-beta.11",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/apps-react/issues"
@@ -76,17 +76,18 @@
76
76
  "eslint-plugin-react": "^7.33.2",
77
77
  "eslint-plugin-react-hooks": "^4.6.0",
78
78
  "fixpack": "^4.0.0",
79
- "jest": "^27.5.1",
79
+ "jest": "^29.7.0",
80
+ "jest-environment-jsdom": "^29.7.0",
80
81
  "prettier": "^3.2.4",
81
82
  "prettier-plugin-jsdoc": "^1.3.0",
82
83
  "react": "^17.0.2",
83
84
  "react-dom": "^17.0.2",
84
85
  "react-router-dom": "^5.3.4",
85
86
  "sass": "^1.70.0",
86
- "ts-jest": "^27.1.5",
87
+ "ts-jest": "^29.2.5",
87
88
  "tsc-watch": "^6.0.4",
88
- "typedoc": "^0.24.8",
89
- "typescript": "^4.9.5"
89
+ "typedoc": "^0.26.9",
90
+ "typescript": "^5.6.3"
90
91
  },
91
92
  "directories": {
92
93
  "doc": "docs"