@oneblink/apps-react 12.0.0 → 13.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 (207) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +5 -2
  2. package/dist/OneBlinkAutoSaveForm.js.map +1 -1
  3. package/dist/OneBlinkForm.d.ts +12 -62
  4. package/dist/OneBlinkForm.js +5 -2
  5. package/dist/OneBlinkForm.js.map +1 -1
  6. package/dist/OneBlinkFormBase.d.ts +23 -3
  7. package/dist/OneBlinkFormBase.js +357 -194
  8. package/dist/OneBlinkFormBase.js.map +1 -1
  9. package/dist/OneBlinkReadOnlyForm.d.ts +17 -9
  10. package/dist/OneBlinkReadOnlyForm.js +24 -47
  11. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  12. package/dist/apps/approvals-service.d.ts +1 -0
  13. package/dist/apps/approvals-service.js.map +1 -1
  14. package/dist/apps/services/api/submissions.d.ts +19 -2
  15. package/dist/apps/services/api/submissions.js +37 -4
  16. package/dist/apps/services/api/submissions.js.map +1 -1
  17. package/dist/apps/services/errors/oneBlinkAppsError.d.ts +8 -0
  18. package/dist/apps/services/errors/oneBlinkAppsError.js +1 -0
  19. package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -1
  20. package/dist/apps/submission-service.d.ts +16 -6
  21. package/dist/apps/submission-service.js +11 -6
  22. package/dist/apps/submission-service.js.map +1 -1
  23. package/dist/components/ArcGISWebMap.d.ts +2 -1
  24. package/dist/components/ArcGISWebMap.js +12 -4
  25. package/dist/components/ArcGISWebMap.js.map +1 -1
  26. package/dist/components/renderer/LookupButton.js +7 -5
  27. package/dist/components/renderer/LookupButton.js.map +1 -1
  28. package/dist/components/renderer/LookupNotification.js +32 -15
  29. package/dist/components/renderer/LookupNotification.js.map +1 -1
  30. package/dist/components/renderer/OneBlinkFormElements.d.ts +14 -1
  31. package/dist/components/renderer/OneBlinkFormElements.js +58 -39
  32. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  33. package/dist/components/renderer/PageFormElements.js +8 -3
  34. package/dist/components/renderer/PageFormElements.js.map +1 -1
  35. package/dist/components/renderer/ReverseGeocode.js +11 -4
  36. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  37. package/dist/components/renderer/attachments/DropdownMenu.d.ts +1 -2
  38. package/dist/components/renderer/attachments/DropdownMenu.js +4 -10
  39. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  40. package/dist/components/renderer/attachments/FileCard.d.ts +2 -1
  41. package/dist/components/renderer/attachments/FileCard.js +2 -2
  42. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  43. package/dist/form-elements/FormElementABN.d.ts +2 -1
  44. package/dist/form-elements/FormElementABN.js +3 -3
  45. package/dist/form-elements/FormElementABN.js.map +1 -1
  46. package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -1
  47. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +2 -2
  48. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  49. package/dist/form-elements/FormElementArcGISWebMap.d.ts +2 -1
  50. package/dist/form-elements/FormElementArcGISWebMap.js +5 -5
  51. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  52. package/dist/form-elements/FormElementAutocomplete.d.ts +1 -0
  53. package/dist/form-elements/FormElementAutocomplete.js +4 -4
  54. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  55. package/dist/form-elements/FormElementBSB.d.ts +2 -1
  56. package/dist/form-elements/FormElementBSB.js +3 -3
  57. package/dist/form-elements/FormElementBSB.js.map +1 -1
  58. package/dist/form-elements/FormElementBarcodeScanner.d.ts +2 -1
  59. package/dist/form-elements/FormElementBarcodeScanner.js +2 -2
  60. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  61. package/dist/form-elements/FormElementBoolean.d.ts +2 -1
  62. package/dist/form-elements/FormElementBoolean.js +3 -3
  63. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  64. package/dist/form-elements/FormElementCalculation.js +1 -0
  65. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  66. package/dist/form-elements/FormElementCamera.d.ts +2 -1
  67. package/dist/form-elements/FormElementCamera.js +4 -4
  68. package/dist/form-elements/FormElementCamera.js.map +1 -1
  69. package/dist/form-elements/FormElementCheckBoxes.d.ts +2 -1
  70. package/dist/form-elements/FormElementCheckBoxes.js +4 -4
  71. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  72. package/dist/form-elements/FormElementCivicaNameRecord.js +1 -1
  73. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  74. package/dist/form-elements/FormElementCivicaStreetName.d.ts +2 -1
  75. package/dist/form-elements/FormElementCivicaStreetName.js +2 -2
  76. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  77. package/dist/form-elements/FormElementCompliance.d.ts +2 -1
  78. package/dist/form-elements/FormElementCompliance.js +5 -12
  79. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  80. package/dist/form-elements/FormElementDate.d.ts +2 -1
  81. package/dist/form-elements/FormElementDate.js +3 -3
  82. package/dist/form-elements/FormElementDate.js.map +1 -1
  83. package/dist/form-elements/FormElementDateTime.d.ts +2 -1
  84. package/dist/form-elements/FormElementDateTime.js +3 -3
  85. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  86. package/dist/form-elements/FormElementEmail.d.ts +2 -1
  87. package/dist/form-elements/FormElementEmail.js +2 -2
  88. package/dist/form-elements/FormElementEmail.js.map +1 -1
  89. package/dist/form-elements/FormElementFile.d.ts +1 -0
  90. package/dist/form-elements/FormElementFile.js +2 -2
  91. package/dist/form-elements/FormElementFile.js.map +1 -1
  92. package/dist/form-elements/FormElementFiles.d.ts +2 -1
  93. package/dist/form-elements/FormElementFiles.js +4 -4
  94. package/dist/form-elements/FormElementFiles.js.map +1 -1
  95. package/dist/form-elements/FormElementForm.d.ts +20 -1
  96. package/dist/form-elements/FormElementForm.js +9 -15
  97. package/dist/form-elements/FormElementForm.js.map +1 -1
  98. package/dist/form-elements/FormElementFreshdeskDependentField.js +1 -1
  99. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  100. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +2 -1
  101. package/dist/form-elements/FormElementGeoscapeAddress.js +2 -2
  102. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  103. package/dist/form-elements/FormElementGoogleAddress.d.ts +2 -1
  104. package/dist/form-elements/FormElementGoogleAddress.js +2 -2
  105. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  106. package/dist/form-elements/FormElementLocation.d.ts +2 -1
  107. package/dist/form-elements/FormElementLocation.js +3 -3
  108. package/dist/form-elements/FormElementLocation.js.map +1 -1
  109. package/dist/form-elements/FormElementLookupButton.d.ts +2 -1
  110. package/dist/form-elements/FormElementLookupButton.js +8 -4
  111. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  112. package/dist/form-elements/FormElementNumber.d.ts +2 -1
  113. package/dist/form-elements/FormElementNumber.js +4 -4
  114. package/dist/form-elements/FormElementNumber.js.map +1 -1
  115. package/dist/form-elements/FormElementPointAddress.d.ts +2 -1
  116. package/dist/form-elements/FormElementPointAddress.js +2 -2
  117. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  118. package/dist/form-elements/FormElementPointAddressV3.d.ts +2 -1
  119. package/dist/form-elements/FormElementPointAddressV3.js +2 -2
  120. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  121. package/dist/form-elements/FormElementPointCadastralParcel.d.ts +2 -1
  122. package/dist/form-elements/FormElementPointCadastralParcel.js +3 -3
  123. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  124. package/dist/form-elements/FormElementRadio.d.ts +2 -1
  125. package/dist/form-elements/FormElementRadio.js +3 -3
  126. package/dist/form-elements/FormElementRadio.js.map +1 -1
  127. package/dist/form-elements/FormElementRepeatableSet.d.ts +13 -1
  128. package/dist/form-elements/FormElementRepeatableSet.js +16 -14
  129. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  130. package/dist/form-elements/FormElementSection.d.ts +7 -1
  131. package/dist/form-elements/FormElementSection.js +4 -4
  132. package/dist/form-elements/FormElementSection.js.map +1 -1
  133. package/dist/form-elements/FormElementSelect.d.ts +2 -1
  134. package/dist/form-elements/FormElementSelect.js +4 -4
  135. package/dist/form-elements/FormElementSelect.js.map +1 -1
  136. package/dist/form-elements/FormElementSignature.d.ts +2 -1
  137. package/dist/form-elements/FormElementSignature.js +9 -9
  138. package/dist/form-elements/FormElementSignature.js.map +1 -1
  139. package/dist/form-elements/FormElementSummary.js +2 -0
  140. package/dist/form-elements/FormElementSummary.js.map +1 -1
  141. package/dist/form-elements/FormElementTelephone.d.ts +2 -1
  142. package/dist/form-elements/FormElementTelephone.js +2 -2
  143. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  144. package/dist/form-elements/FormElementText.d.ts +2 -1
  145. package/dist/form-elements/FormElementText.js +2 -2
  146. package/dist/form-elements/FormElementText.js.map +1 -1
  147. package/dist/form-elements/FormElementTextarea.d.ts +2 -1
  148. package/dist/form-elements/FormElementTextarea.js +3 -3
  149. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  150. package/dist/form-elements/FormElementTime.d.ts +2 -1
  151. package/dist/form-elements/FormElementTime.js +3 -3
  152. package/dist/form-elements/FormElementTime.js.map +1 -1
  153. package/dist/form-elements/OptionButton.d.ts +1 -1
  154. package/dist/form-elements/OptionButton.js +2 -2
  155. package/dist/form-elements/OptionButton.js.map +1 -1
  156. package/dist/hooks/useAreLookupsDisallowed.d.ts +2 -0
  157. package/dist/hooks/useAreLookupsDisallowed.js +12 -0
  158. package/dist/hooks/useAreLookupsDisallowed.js.map +1 -0
  159. package/dist/hooks/useDynamicOptionsLoaderState.js +5 -1
  160. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  161. package/dist/hooks/useEditableFormElementIds.d.ts +3 -0
  162. package/dist/hooks/useEditableFormElementIds.js +6 -0
  163. package/dist/hooks/useEditableFormElementIds.js.map +1 -0
  164. package/dist/hooks/useFormElementOptions.js +2 -0
  165. package/dist/hooks/useFormElementOptions.js.map +1 -1
  166. package/dist/hooks/useFormIsDirty.d.ts +38 -0
  167. package/dist/hooks/useFormIsDirty.js +78 -0
  168. package/dist/hooks/useFormIsDirty.js.map +1 -0
  169. package/dist/hooks/useFormSubmissionAttempt.d.ts +88 -0
  170. package/dist/hooks/useFormSubmissionAttempt.js +103 -0
  171. package/dist/hooks/useFormSubmissionAttempt.js.map +1 -0
  172. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +2 -9
  173. package/dist/hooks/useFormSubmissionAutoSaveState.js +4 -2
  174. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  175. package/dist/hooks/useFormValidation.d.ts +1 -1
  176. package/dist/hooks/useFormValidation.js +21 -8
  177. package/dist/hooks/useFormValidation.js.map +1 -1
  178. package/dist/hooks/useInjectPages.d.ts +2 -1
  179. package/dist/hooks/useInjectPages.js.map +1 -1
  180. package/dist/hooks/useIsFormElementReadOnly.d.ts +2 -0
  181. package/dist/hooks/useIsFormElementReadOnly.js +13 -0
  182. package/dist/hooks/useIsFormElementReadOnly.js.map +1 -0
  183. package/dist/hooks/useLookupNotification.d.ts +23 -2
  184. package/dist/hooks/useLookupNotification.js +2 -1
  185. package/dist/hooks/useLookupNotification.js.map +1 -1
  186. package/dist/hooks/useLookups.d.ts +3 -3
  187. package/dist/hooks/useLookups.js +7 -4
  188. package/dist/hooks/useLookups.js.map +1 -1
  189. package/dist/index.d.ts +3 -1
  190. package/dist/index.js +2 -0
  191. package/dist/index.js.map +1 -1
  192. package/dist/services/form-validation/extensions.d.ts +3 -1
  193. package/dist/services/form-validation/extensions.js +3 -1
  194. package/dist/services/form-validation/extensions.js.map +1 -1
  195. package/dist/services/form-validation/validateSubmission.d.ts +3 -1
  196. package/dist/services/form-validation/validateSubmission.js +43 -12
  197. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  198. package/dist/services/generateCivicaNameRecordElements.js +0 -13
  199. package/dist/services/generateCivicaNameRecordElements.js.map +1 -1
  200. package/dist/services/generateFreshdeskDependentFieldElements.js +0 -3
  201. package/dist/services/generateFreshdeskDependentFieldElements.js.map +1 -1
  202. package/dist/types/form.d.ts +17 -3
  203. package/dist/types/form.js.map +1 -1
  204. package/dist/utils/read-only-form-elements.d.ts +37 -0
  205. package/dist/utils/read-only-form-elements.js +63 -0
  206. package/dist/utils/read-only-form-elements.js.map +1 -0
  207. package/package.json +4 -3
@@ -0,0 +1,37 @@
1
+ import { FormTypes } from '@oneblink/types';
2
+ type FormElementWithEditability = FormTypes.FormElement | FormTypes.LookupFormElement;
3
+ export declare function checkIsFormElementIdEditable(element: FormElementWithEditability, editableFormElementIds?: string[]): boolean;
4
+ /**
5
+ * Whether this element, or anything nested inside it, can be changed.
6
+ *
7
+ * When `editableFormElementIds` is omitted, every element is treated as
8
+ * editable. When it is provided, only listed ids and containers that wrap them
9
+ * are editable. Used to skip validating what the user has no way to correct.
10
+ */
11
+ export declare function checkIsFormElementEditable(element: FormElementWithEditability, editableFormElementIds?: string[]): boolean;
12
+ /**
13
+ * Whether a form element’s own controls should be locked.
14
+ *
15
+ * An id in `editableFormElementIds` always wins. When that list is provided,
16
+ * every other element is locked (whitelist). Otherwise the whole-form read-only
17
+ * flag and the element’s own `readOnly` apply.
18
+ */
19
+ export declare function checkIsFormElementReadOnly(element: FormElementWithEditability, { isFormReadOnly, isInheritedReadOnly, editableFormElementIds, }?: {
20
+ isFormReadOnly?: boolean;
21
+ isInheritedReadOnly?: boolean;
22
+ editableFormElementIds?: string[];
23
+ }): boolean;
24
+ /**
25
+ * Whether lookups (and reverse geocode) must not run for this element.
26
+ *
27
+ * Definition `readOnly` and inherited container locks still allow submitter
28
+ * lookups from prefills, defaults, and chained lookup buttons. Lookups are
29
+ * blocked on a read-only form, or when a whitelist is provided and this id is
30
+ * not on it (an approver must not re-run a lookup that could overwrite
31
+ * persisted answers). An id in the whitelist always wins.
32
+ */
33
+ export declare function checkAreLookupsDisallowed(element: FormElementWithEditability, { isFormReadOnly, editableFormElementIds, }?: {
34
+ isFormReadOnly?: boolean;
35
+ editableFormElementIds?: string[];
36
+ }): boolean;
37
+ export {};
@@ -0,0 +1,63 @@
1
+ export function checkIsFormElementIdEditable(element, editableFormElementIds) {
2
+ return (editableFormElementIds === null || editableFormElementIds === void 0 ? void 0 : editableFormElementIds.includes(element.id)) === true;
3
+ }
4
+ function checkHasEditableFormElement(elements, editableFormElementIds) {
5
+ return elements.some((element) => checkIsFormElementIdEditable(element, editableFormElementIds) ||
6
+ ('elements' in element &&
7
+ Array.isArray(element.elements) &&
8
+ checkHasEditableFormElement(element.elements, editableFormElementIds)));
9
+ }
10
+ /**
11
+ * Whether this element, or anything nested inside it, can be changed.
12
+ *
13
+ * When `editableFormElementIds` is omitted, every element is treated as
14
+ * editable. When it is provided, only listed ids and containers that wrap them
15
+ * are editable. Used to skip validating what the user has no way to correct.
16
+ */
17
+ export function checkIsFormElementEditable(element, editableFormElementIds) {
18
+ if (editableFormElementIds === undefined) {
19
+ return true;
20
+ }
21
+ return (checkIsFormElementIdEditable(element, editableFormElementIds) ||
22
+ ('elements' in element &&
23
+ Array.isArray(element.elements) &&
24
+ checkHasEditableFormElement(element.elements, editableFormElementIds)));
25
+ }
26
+ /**
27
+ * Whether a form element’s own controls should be locked.
28
+ *
29
+ * An id in `editableFormElementIds` always wins. When that list is provided,
30
+ * every other element is locked (whitelist). Otherwise the whole-form read-only
31
+ * flag and the element’s own `readOnly` apply.
32
+ */
33
+ export function checkIsFormElementReadOnly(element, { isFormReadOnly, isInheritedReadOnly, editableFormElementIds, } = {}) {
34
+ if (checkIsFormElementIdEditable(element, editableFormElementIds)) {
35
+ return false;
36
+ }
37
+ if (editableFormElementIds !== undefined) {
38
+ return true;
39
+ }
40
+ if (isFormReadOnly || isInheritedReadOnly) {
41
+ return true;
42
+ }
43
+ return 'readOnly' in element && element.readOnly === true;
44
+ }
45
+ /**
46
+ * Whether lookups (and reverse geocode) must not run for this element.
47
+ *
48
+ * Definition `readOnly` and inherited container locks still allow submitter
49
+ * lookups from prefills, defaults, and chained lookup buttons. Lookups are
50
+ * blocked on a read-only form, or when a whitelist is provided and this id is
51
+ * not on it (an approver must not re-run a lookup that could overwrite
52
+ * persisted answers). An id in the whitelist always wins.
53
+ */
54
+ export function checkAreLookupsDisallowed(element, { isFormReadOnly, editableFormElementIds, } = {}) {
55
+ if (checkIsFormElementIdEditable(element, editableFormElementIds)) {
56
+ return false;
57
+ }
58
+ if (editableFormElementIds !== undefined) {
59
+ return true;
60
+ }
61
+ return isFormReadOnly === true;
62
+ }
63
+ //# sourceMappingURL=read-only-form-elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-only-form-elements.js","sourceRoot":"","sources":["../../src/utils/read-only-form-elements.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,4BAA4B,CAC1C,OAAmC,EACnC,sBAAiC;IAEjC,OAAO,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAK,IAAI,CAAA;AAC9D,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAiC,EACjC,sBAAiC;IAEjC,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,OAAO,EAAE,EAAE,CACV,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAC7D,CAAC,UAAU,IAAI,OAAO;YACpB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/B,2BAA2B,CACzB,OAAO,CAAC,QAAQ,EAChB,sBAAsB,CACvB,CAAC,CACP,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmC,EACnC,sBAAiC;IAEjC,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAC7D,CAAC,UAAU,IAAI,OAAO;YACpB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/B,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CACzE,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAmC,EACnC,EACE,cAAc,EACd,mBAAmB,EACnB,sBAAsB,MAKpB,EAAE;IAEN,IAAI,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAmC,EACnC,EACE,cAAc,EACd,sBAAsB,MAIpB,EAAE;IAEN,IAAI,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,cAAc,KAAK,IAAI,CAAA;AAChC,CAAC","sourcesContent":["import { FormTypes } from '@oneblink/types'\r\n\r\ntype FormElementWithEditability =\r\n | FormTypes.FormElement\r\n | FormTypes.LookupFormElement\r\n\r\nexport function checkIsFormElementIdEditable(\r\n element: FormElementWithEditability,\r\n editableFormElementIds?: string[],\r\n): boolean {\r\n return editableFormElementIds?.includes(element.id) === true\r\n}\r\n\r\nfunction checkHasEditableFormElement(\r\n elements: FormTypes.FormElement[],\r\n editableFormElementIds?: string[],\r\n): boolean {\r\n return elements.some(\r\n (element) =>\r\n checkIsFormElementIdEditable(element, editableFormElementIds) ||\r\n ('elements' in element &&\r\n Array.isArray(element.elements) &&\r\n checkHasEditableFormElement(\r\n element.elements,\r\n editableFormElementIds,\r\n )),\r\n )\r\n}\r\n\r\n/**\r\n * Whether this element, or anything nested inside it, can be changed.\r\n *\r\n * When `editableFormElementIds` is omitted, every element is treated as\r\n * editable. When it is provided, only listed ids and containers that wrap them\r\n * are editable. Used to skip validating what the user has no way to correct.\r\n */\r\nexport function checkIsFormElementEditable(\r\n element: FormElementWithEditability,\r\n editableFormElementIds?: string[],\r\n): boolean {\r\n if (editableFormElementIds === undefined) {\r\n return true\r\n }\r\n\r\n return (\r\n checkIsFormElementIdEditable(element, editableFormElementIds) ||\r\n ('elements' in element &&\r\n Array.isArray(element.elements) &&\r\n checkHasEditableFormElement(element.elements, editableFormElementIds))\r\n )\r\n}\r\n\r\n/**\r\n * Whether a form element’s own controls should be locked.\r\n *\r\n * An id in `editableFormElementIds` always wins. When that list is provided,\r\n * every other element is locked (whitelist). Otherwise the whole-form read-only\r\n * flag and the element’s own `readOnly` apply.\r\n */\r\nexport function checkIsFormElementReadOnly(\r\n element: FormElementWithEditability,\r\n {\r\n isFormReadOnly,\r\n isInheritedReadOnly,\r\n editableFormElementIds,\r\n }: {\r\n isFormReadOnly?: boolean\r\n isInheritedReadOnly?: boolean\r\n editableFormElementIds?: string[]\r\n } = {},\r\n): boolean {\r\n if (checkIsFormElementIdEditable(element, editableFormElementIds)) {\r\n return false\r\n }\r\n\r\n if (editableFormElementIds !== undefined) {\r\n return true\r\n }\r\n\r\n if (isFormReadOnly || isInheritedReadOnly) {\r\n return true\r\n }\r\n\r\n return 'readOnly' in element && element.readOnly === true\r\n}\r\n\r\n/**\r\n * Whether lookups (and reverse geocode) must not run for this element.\r\n *\r\n * Definition `readOnly` and inherited container locks still allow submitter\r\n * lookups from prefills, defaults, and chained lookup buttons. Lookups are\r\n * blocked on a read-only form, or when a whitelist is provided and this id is\r\n * not on it (an approver must not re-run a lookup that could overwrite\r\n * persisted answers). An id in the whitelist always wins.\r\n */\r\nexport function checkAreLookupsDisallowed(\r\n element: FormElementWithEditability,\r\n {\r\n isFormReadOnly,\r\n editableFormElementIds,\r\n }: {\r\n isFormReadOnly?: boolean\r\n editableFormElementIds?: string[]\r\n } = {},\r\n): boolean {\r\n if (checkIsFormElementIdEditable(element, editableFormElementIds)) {\r\n return false\r\n }\r\n\r\n if (editableFormElementIds !== undefined) {\r\n return true\r\n }\r\n\r\n return isFormReadOnly === true\r\n}\r\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": "12.0.0",
4
+ "version": "13.0.0-beta.10",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/apps-react/issues"
@@ -13,7 +13,7 @@
13
13
  "@emotion/styled": "^11.14.1",
14
14
  "@nylas/react": "^3.1.2",
15
15
  "@oneblink/sdk-core": "^10.1.0-beta.9",
16
- "@oneblink/storage": "^8.0.0-beta.2",
16
+ "@oneblink/storage": "^9.0.0-beta.4",
17
17
  "@react-google-maps/api": "^2.20.8",
18
18
  "@react-input/mask": "^2.0.4",
19
19
  "@sentry/browser": "^10.38.0",
@@ -68,6 +68,7 @@
68
68
  "@types/lodash.orderby": "^4.6.9",
69
69
  "@types/lodash.throttle": "^4.1.9",
70
70
  "@types/react": "^19.2.13",
71
+ "@types/react-dom": "^19.2.5",
71
72
  "@types/react-google-recaptcha": "^2.1.9",
72
73
  "@types/react-router-dom": "^5.3.3",
73
74
  "@types/react-signature-canvas": "^1.0.7",
@@ -140,6 +141,6 @@
140
141
  "test": "vitest",
141
142
  "types": "npm i -D github:oneblink/types",
142
143
  "typescript": "tsc --noEmit",
143
- "update-dependents": "oneblink-release update-dependents --force"
144
+ "update-dependents": "oneblink-release update-dependents --force-update-dependency"
144
145
  }
145
146
  }