@oneblink/apps-react 12.0.0 → 13.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) 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.js +10 -4
  7. package/dist/OneBlinkFormBase.js.map +1 -1
  8. package/dist/OneBlinkReadOnlyForm.d.ts +0 -2
  9. package/dist/OneBlinkReadOnlyForm.js +1 -40
  10. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  11. package/dist/apps/services/api/submissions.d.ts +18 -2
  12. package/dist/apps/services/api/submissions.js +40 -4
  13. package/dist/apps/services/api/submissions.js.map +1 -1
  14. package/dist/apps/services/errors/oneBlinkAppsError.d.ts +8 -0
  15. package/dist/apps/services/errors/oneBlinkAppsError.js +1 -0
  16. package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -1
  17. package/dist/apps/submission-service.d.ts +6 -2
  18. package/dist/apps/submission-service.js +2 -2
  19. package/dist/apps/submission-service.js.map +1 -1
  20. package/dist/components/ArcGISWebMap.d.ts +2 -1
  21. package/dist/components/ArcGISWebMap.js +12 -4
  22. package/dist/components/ArcGISWebMap.js.map +1 -1
  23. package/dist/components/renderer/LookupButton.js +7 -5
  24. package/dist/components/renderer/LookupButton.js.map +1 -1
  25. package/dist/components/renderer/LookupNotification.js +28 -10
  26. package/dist/components/renderer/LookupNotification.js.map +1 -1
  27. package/dist/components/renderer/OneBlinkFormElements.d.ts +16 -1
  28. package/dist/components/renderer/OneBlinkFormElements.js +83 -39
  29. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  30. package/dist/components/renderer/ReverseGeocode.js +13 -1
  31. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  32. package/dist/components/renderer/attachments/DropdownMenu.d.ts +1 -2
  33. package/dist/components/renderer/attachments/DropdownMenu.js +4 -10
  34. package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
  35. package/dist/components/renderer/attachments/FileCard.d.ts +2 -1
  36. package/dist/components/renderer/attachments/FileCard.js +2 -2
  37. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  38. package/dist/form-elements/FormElementABN.d.ts +2 -1
  39. package/dist/form-elements/FormElementABN.js +3 -3
  40. package/dist/form-elements/FormElementABN.js.map +1 -1
  41. package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -1
  42. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +2 -2
  43. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  44. package/dist/form-elements/FormElementArcGISWebMap.d.ts +2 -1
  45. package/dist/form-elements/FormElementArcGISWebMap.js +5 -5
  46. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  47. package/dist/form-elements/FormElementAutocomplete.d.ts +1 -0
  48. package/dist/form-elements/FormElementAutocomplete.js +4 -4
  49. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  50. package/dist/form-elements/FormElementBSB.d.ts +2 -1
  51. package/dist/form-elements/FormElementBSB.js +3 -3
  52. package/dist/form-elements/FormElementBSB.js.map +1 -1
  53. package/dist/form-elements/FormElementBarcodeScanner.d.ts +2 -1
  54. package/dist/form-elements/FormElementBarcodeScanner.js +2 -2
  55. package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
  56. package/dist/form-elements/FormElementBoolean.d.ts +2 -1
  57. package/dist/form-elements/FormElementBoolean.js +3 -3
  58. package/dist/form-elements/FormElementBoolean.js.map +1 -1
  59. package/dist/form-elements/FormElementCamera.d.ts +2 -1
  60. package/dist/form-elements/FormElementCamera.js +4 -4
  61. package/dist/form-elements/FormElementCamera.js.map +1 -1
  62. package/dist/form-elements/FormElementCheckBoxes.d.ts +2 -1
  63. package/dist/form-elements/FormElementCheckBoxes.js +4 -4
  64. package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
  65. package/dist/form-elements/FormElementCivicaNameRecord.js +1 -1
  66. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  67. package/dist/form-elements/FormElementCivicaStreetName.d.ts +2 -1
  68. package/dist/form-elements/FormElementCivicaStreetName.js +2 -2
  69. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  70. package/dist/form-elements/FormElementCompliance.d.ts +2 -1
  71. package/dist/form-elements/FormElementCompliance.js +5 -12
  72. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  73. package/dist/form-elements/FormElementDate.d.ts +2 -1
  74. package/dist/form-elements/FormElementDate.js +3 -3
  75. package/dist/form-elements/FormElementDate.js.map +1 -1
  76. package/dist/form-elements/FormElementDateTime.d.ts +2 -1
  77. package/dist/form-elements/FormElementDateTime.js +3 -3
  78. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  79. package/dist/form-elements/FormElementEmail.d.ts +2 -1
  80. package/dist/form-elements/FormElementEmail.js +2 -2
  81. package/dist/form-elements/FormElementEmail.js.map +1 -1
  82. package/dist/form-elements/FormElementFile.d.ts +1 -0
  83. package/dist/form-elements/FormElementFile.js +2 -2
  84. package/dist/form-elements/FormElementFile.js.map +1 -1
  85. package/dist/form-elements/FormElementFiles.d.ts +2 -1
  86. package/dist/form-elements/FormElementFiles.js +4 -4
  87. package/dist/form-elements/FormElementFiles.js.map +1 -1
  88. package/dist/form-elements/FormElementForm.d.ts +21 -1
  89. package/dist/form-elements/FormElementForm.js +5 -12
  90. package/dist/form-elements/FormElementForm.js.map +1 -1
  91. package/dist/form-elements/FormElementFreshdeskDependentField.js +1 -1
  92. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  93. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +2 -1
  94. package/dist/form-elements/FormElementGeoscapeAddress.js +2 -2
  95. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  96. package/dist/form-elements/FormElementGoogleAddress.d.ts +2 -1
  97. package/dist/form-elements/FormElementGoogleAddress.js +2 -2
  98. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  99. package/dist/form-elements/FormElementLocation.d.ts +2 -1
  100. package/dist/form-elements/FormElementLocation.js +3 -3
  101. package/dist/form-elements/FormElementLocation.js.map +1 -1
  102. package/dist/form-elements/FormElementLookupButton.d.ts +2 -1
  103. package/dist/form-elements/FormElementLookupButton.js +5 -2
  104. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  105. package/dist/form-elements/FormElementNumber.d.ts +2 -1
  106. package/dist/form-elements/FormElementNumber.js +4 -4
  107. package/dist/form-elements/FormElementNumber.js.map +1 -1
  108. package/dist/form-elements/FormElementPointAddress.d.ts +2 -1
  109. package/dist/form-elements/FormElementPointAddress.js +2 -2
  110. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  111. package/dist/form-elements/FormElementPointAddressV3.d.ts +2 -1
  112. package/dist/form-elements/FormElementPointAddressV3.js +2 -2
  113. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  114. package/dist/form-elements/FormElementPointCadastralParcel.d.ts +2 -1
  115. package/dist/form-elements/FormElementPointCadastralParcel.js +3 -3
  116. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  117. package/dist/form-elements/FormElementRadio.d.ts +2 -1
  118. package/dist/form-elements/FormElementRadio.js +3 -3
  119. package/dist/form-elements/FormElementRadio.js.map +1 -1
  120. package/dist/form-elements/FormElementRepeatableSet.d.ts +13 -1
  121. package/dist/form-elements/FormElementRepeatableSet.js +10 -10
  122. package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
  123. package/dist/form-elements/FormElementSection.d.ts +7 -1
  124. package/dist/form-elements/FormElementSection.js +2 -2
  125. package/dist/form-elements/FormElementSection.js.map +1 -1
  126. package/dist/form-elements/FormElementSelect.d.ts +2 -1
  127. package/dist/form-elements/FormElementSelect.js +4 -4
  128. package/dist/form-elements/FormElementSelect.js.map +1 -1
  129. package/dist/form-elements/FormElementSignature.d.ts +2 -1
  130. package/dist/form-elements/FormElementSignature.js +9 -9
  131. package/dist/form-elements/FormElementSignature.js.map +1 -1
  132. package/dist/form-elements/FormElementTelephone.d.ts +2 -1
  133. package/dist/form-elements/FormElementTelephone.js +2 -2
  134. package/dist/form-elements/FormElementTelephone.js.map +1 -1
  135. package/dist/form-elements/FormElementText.d.ts +2 -1
  136. package/dist/form-elements/FormElementText.js +2 -2
  137. package/dist/form-elements/FormElementText.js.map +1 -1
  138. package/dist/form-elements/FormElementTextarea.d.ts +2 -1
  139. package/dist/form-elements/FormElementTextarea.js +3 -3
  140. package/dist/form-elements/FormElementTextarea.js.map +1 -1
  141. package/dist/form-elements/FormElementTime.d.ts +2 -1
  142. package/dist/form-elements/FormElementTime.js +3 -3
  143. package/dist/form-elements/FormElementTime.js.map +1 -1
  144. package/dist/form-elements/OptionButton.d.ts +1 -1
  145. package/dist/form-elements/OptionButton.js +2 -2
  146. package/dist/form-elements/OptionButton.js.map +1 -1
  147. package/dist/hooks/useDynamicOptionsLoaderState.js +5 -1
  148. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  149. package/dist/hooks/useFormValidation.d.ts +1 -1
  150. package/dist/hooks/useFormValidation.js +20 -8
  151. package/dist/hooks/useFormValidation.js.map +1 -1
  152. package/dist/hooks/useLookupNotification.d.ts +22 -2
  153. package/dist/hooks/useLookupNotification.js +2 -1
  154. package/dist/hooks/useLookupNotification.js.map +1 -1
  155. package/dist/index.d.ts +1 -1
  156. package/dist/index.js.map +1 -1
  157. package/dist/services/form-validation/extensions.d.ts +2 -1
  158. package/dist/services/form-validation/extensions.js +2 -1
  159. package/dist/services/form-validation/extensions.js.map +1 -1
  160. package/dist/services/form-validation/validateSubmission.d.ts +2 -1
  161. package/dist/services/form-validation/validateSubmission.js +38 -12
  162. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  163. package/dist/services/generateCivicaNameRecordElements.js +0 -13
  164. package/dist/services/generateCivicaNameRecordElements.js.map +1 -1
  165. package/dist/services/generateFreshdeskDependentFieldElements.js +0 -3
  166. package/dist/services/generateFreshdeskDependentFieldElements.js.map +1 -1
  167. package/dist/services/isElementReadOnlyForAudience.d.ts +20 -0
  168. package/dist/services/isElementReadOnlyForAudience.js +46 -0
  169. package/dist/services/isElementReadOnlyForAudience.js.map +1 -0
  170. package/dist/services/resolveFormElementReadOnly.d.ts +10 -0
  171. package/dist/services/resolveFormElementReadOnly.js +17 -0
  172. package/dist/services/resolveFormElementReadOnly.js.map +1 -0
  173. package/package.json +2 -2
@@ -15,7 +15,6 @@ function generateCivicaNameRecordAddressElements(element) {
15
15
  name: 'address1',
16
16
  label: element.address1Label || 'Address',
17
17
  required: element.required,
18
- readOnly: element.readOnly,
19
18
  },
20
19
  ];
21
20
  }
@@ -26,7 +25,6 @@ function generateCivicaNameRecordAddressElements(element) {
26
25
  name: 'address1',
27
26
  label: element.address1Label || 'Address 1',
28
27
  required: element.required,
29
- readOnly: element.readOnly,
30
28
  },
31
29
  {
32
30
  ...createFormElement(),
@@ -34,7 +32,6 @@ function generateCivicaNameRecordAddressElements(element) {
34
32
  name: 'address2',
35
33
  label: element.address2Label || 'Address 2',
36
34
  required: element.required,
37
- readOnly: element.readOnly,
38
35
  },
39
36
  {
40
37
  ...createFormElement(),
@@ -42,7 +39,6 @@ function generateCivicaNameRecordAddressElements(element) {
42
39
  name: 'postcode',
43
40
  label: element.postcodeLabel || 'Postcode',
44
41
  required: element.required,
45
- readOnly: element.readOnly,
46
42
  },
47
43
  ];
48
44
  }
@@ -54,7 +50,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
54
50
  name: 'title',
55
51
  label: element.titleLabel || 'Title',
56
52
  required: element.required,
57
- readOnly: element.readOnly,
58
53
  optionsType: 'CUSTOM',
59
54
  options: titleCodeOptions || [],
60
55
  multi: false,
@@ -65,7 +60,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
65
60
  name: 'givenName1',
66
61
  label: element.givenName1Label || 'Given Name 1',
67
62
  required: !!element.givenName1IsRequired,
68
- readOnly: element.readOnly,
69
63
  civicaIsHidden: element.givenName1IsHidden,
70
64
  },
71
65
  {
@@ -74,7 +68,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
74
68
  name: 'familyName',
75
69
  label: element.familyNameLabel || 'Family Name',
76
70
  required: element.required,
77
- readOnly: element.readOnly,
78
71
  },
79
72
  {
80
73
  ...createFormElement(),
@@ -82,7 +75,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
82
75
  name: 'emailAddress',
83
76
  label: element.emailAddressLabel || 'Email Address',
84
77
  required: !!element.emailAddressIsRequired,
85
- readOnly: element.readOnly,
86
78
  civicaIsHidden: element.emailAddressIsHidden,
87
79
  },
88
80
  {
@@ -91,7 +83,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
91
83
  name: 'homePhone',
92
84
  label: element.homePhoneLabel || 'Home Phone',
93
85
  required: !!element.homePhoneIsRequired,
94
- readOnly: element.readOnly,
95
86
  civicaIsHidden: element.homePhoneIsHidden,
96
87
  },
97
88
  {
@@ -100,7 +91,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
100
91
  name: 'businessPhone',
101
92
  label: element.businessPhoneLabel || 'Business Phone',
102
93
  required: !!element.businessPhoneIsRequired,
103
- readOnly: element.readOnly,
104
94
  civicaIsHidden: element.businessPhoneIsHidden,
105
95
  },
106
96
  {
@@ -109,7 +99,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
109
99
  name: 'mobilePhone',
110
100
  label: element.mobilePhoneLabel || 'Mobile Phone',
111
101
  required: !!element.mobilePhoneIsRequired,
112
- readOnly: element.readOnly,
113
102
  civicaIsHidden: element.mobilePhoneIsHidden,
114
103
  },
115
104
  {
@@ -118,7 +107,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
118
107
  name: 'faxPhone',
119
108
  label: element.faxPhoneLabel || 'Fax Phone',
120
109
  required: !!element.faxPhoneIsRequired,
121
- readOnly: element.readOnly,
122
110
  civicaIsHidden: element.faxPhoneIsHidden,
123
111
  },
124
112
  {
@@ -127,7 +115,6 @@ export default function generateCivicaNameRecordElements(element, titleCodeOptio
127
115
  name: 'streetAddress',
128
116
  label: element.streetAddressesLabel || 'Street Addresses',
129
117
  minSetEntries: element.required ? 1 : undefined,
130
- readOnly: element.readOnly,
131
118
  elements: generateCivicaNameRecordAddressElements(element),
132
119
  },
133
120
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"generateCivicaNameRecordElements.js","sourceRoot":"","sources":["../../src/services/generateCivicaNameRecordElements.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuid } from 'uuid'\nimport { FormTypes } from '@oneblink/types'\n\nconst createFormElement = () => ({\n id: uuid(),\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n isDataLookup: false,\n isElementLookup: false,\n})\n\nfunction generateCivicaNameRecordAddressElements(\n element: FormTypes.CivicaNameRecordElement,\n): FormTypes.FormElement[] {\n if (element.useGeoscapeAddressing) {\n return [\n {\n ...createFormElement(),\n type: 'geoscapeAddress',\n name: 'address1',\n label: element.address1Label || 'Address',\n required: element.required,\n readOnly: element.readOnly,\n },\n ]\n }\n return [\n {\n ...createFormElement(),\n type: 'text',\n name: 'address1',\n label: element.address1Label || 'Address 1',\n required: element.required,\n readOnly: element.readOnly,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'address2',\n label: element.address2Label || 'Address 2',\n required: element.required,\n readOnly: element.readOnly,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'postcode',\n label: element.postcodeLabel || 'Postcode',\n required: element.required,\n readOnly: element.readOnly,\n },\n ]\n}\n\nexport default function generateCivicaNameRecordElements(\n element: FormTypes.CivicaNameRecordElement,\n titleCodeOptions?: FormTypes.ChoiceElementOption[],\n): FormTypes.FormElementWithName[] {\n const elementsWithHidden: Array<\n FormTypes.FormElementWithName & { civicaIsHidden?: boolean }\n > = [\n {\n ...createFormElement(),\n type: titleCodeOptions ? 'select' : 'text',\n name: 'title',\n label: element.titleLabel || 'Title',\n required: element.required,\n readOnly: element.readOnly,\n optionsType: 'CUSTOM',\n options: titleCodeOptions || [],\n multi: false,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'givenName1',\n label: element.givenName1Label || 'Given Name 1',\n required: !!element.givenName1IsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.givenName1IsHidden,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'familyName',\n label: element.familyNameLabel || 'Family Name',\n required: element.required,\n readOnly: element.readOnly,\n },\n {\n ...createFormElement(),\n type: 'email',\n name: 'emailAddress',\n label: element.emailAddressLabel || 'Email Address',\n required: !!element.emailAddressIsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.emailAddressIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'homePhone',\n label: element.homePhoneLabel || 'Home Phone',\n required: !!element.homePhoneIsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.homePhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'businessPhone',\n label: element.businessPhoneLabel || 'Business Phone',\n required: !!element.businessPhoneIsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.businessPhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'mobilePhone',\n label: element.mobilePhoneLabel || 'Mobile Phone',\n required: !!element.mobilePhoneIsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.mobilePhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'faxPhone',\n label: element.faxPhoneLabel || 'Fax Phone',\n required: !!element.faxPhoneIsRequired,\n readOnly: element.readOnly,\n civicaIsHidden: element.faxPhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'repeatableSet',\n name: 'streetAddress',\n label: element.streetAddressesLabel || 'Street Addresses',\n minSetEntries: element.required ? 1 : undefined,\n readOnly: element.readOnly,\n elements: generateCivicaNameRecordAddressElements(element),\n },\n ]\n return elementsWithHidden\n .filter((ele) => !ele.civicaIsHidden)\n .map((ele) => {\n delete ele.civicaIsHidden\n return ele\n })\n}\n"]}
1
+ {"version":3,"file":"generateCivicaNameRecordElements.js","sourceRoot":"","sources":["../../src/services/generateCivicaNameRecordElements.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuid } from 'uuid'\nimport { FormTypes } from '@oneblink/types'\n\nconst createFormElement = () => ({\n id: uuid(),\n conditionallyShow: false,\n requiresAllConditionallyShowPredicates: false,\n isDataLookup: false,\n isElementLookup: false,\n})\n\nfunction generateCivicaNameRecordAddressElements(\n element: FormTypes.CivicaNameRecordElement,\n): FormTypes.FormElement[] {\n if (element.useGeoscapeAddressing) {\n return [\n {\n ...createFormElement(),\n type: 'geoscapeAddress',\n name: 'address1',\n label: element.address1Label || 'Address',\n required: element.required,\n },\n ]\n }\n return [\n {\n ...createFormElement(),\n type: 'text',\n name: 'address1',\n label: element.address1Label || 'Address 1',\n required: element.required,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'address2',\n label: element.address2Label || 'Address 2',\n required: element.required,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'postcode',\n label: element.postcodeLabel || 'Postcode',\n required: element.required,\n },\n ]\n}\n\nexport default function generateCivicaNameRecordElements(\n element: FormTypes.CivicaNameRecordElement,\n titleCodeOptions?: FormTypes.ChoiceElementOption[],\n): FormTypes.FormElementWithName[] {\n const elementsWithHidden: Array<\n FormTypes.FormElementWithName & { civicaIsHidden?: boolean }\n > = [\n {\n ...createFormElement(),\n type: titleCodeOptions ? 'select' : 'text',\n name: 'title',\n label: element.titleLabel || 'Title',\n required: element.required,\n optionsType: 'CUSTOM',\n options: titleCodeOptions || [],\n multi: false,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'givenName1',\n label: element.givenName1Label || 'Given Name 1',\n required: !!element.givenName1IsRequired,\n civicaIsHidden: element.givenName1IsHidden,\n },\n {\n ...createFormElement(),\n type: 'text',\n name: 'familyName',\n label: element.familyNameLabel || 'Family Name',\n required: element.required,\n },\n {\n ...createFormElement(),\n type: 'email',\n name: 'emailAddress',\n label: element.emailAddressLabel || 'Email Address',\n required: !!element.emailAddressIsRequired,\n civicaIsHidden: element.emailAddressIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'homePhone',\n label: element.homePhoneLabel || 'Home Phone',\n required: !!element.homePhoneIsRequired,\n civicaIsHidden: element.homePhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'businessPhone',\n label: element.businessPhoneLabel || 'Business Phone',\n required: !!element.businessPhoneIsRequired,\n civicaIsHidden: element.businessPhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'mobilePhone',\n label: element.mobilePhoneLabel || 'Mobile Phone',\n required: !!element.mobilePhoneIsRequired,\n civicaIsHidden: element.mobilePhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'telephone',\n name: 'faxPhone',\n label: element.faxPhoneLabel || 'Fax Phone',\n required: !!element.faxPhoneIsRequired,\n civicaIsHidden: element.faxPhoneIsHidden,\n },\n {\n ...createFormElement(),\n type: 'repeatableSet',\n name: 'streetAddress',\n label: element.streetAddressesLabel || 'Street Addresses',\n minSetEntries: element.required ? 1 : undefined,\n elements: generateCivicaNameRecordAddressElements(element),\n },\n ]\n return elementsWithHidden\n .filter((ele) => !ele.civicaIsHidden)\n .map((ele) => {\n delete ele.civicaIsHidden\n return ele\n })\n}\n"]}
@@ -31,7 +31,6 @@ export default function generateFreshdeskDependentFieldElements(element) {
31
31
  ...createFormElement(),
32
32
  name: 'category',
33
33
  required: element.required,
34
- readOnly: element.readOnly,
35
34
  label: element.label,
36
35
  hint: element.hint,
37
36
  defaultValue: (_a = element.defaultValue) === null || _a === void 0 ? void 0 : _a.category,
@@ -44,7 +43,6 @@ export default function generateFreshdeskDependentFieldElements(element) {
44
43
  ...createFormElement(),
45
44
  name: 'subCategory',
46
45
  required: element.required,
47
- readOnly: element.readOnly,
48
46
  label: element.subCategoryLabel,
49
47
  hint: element.subCategoryHint,
50
48
  defaultValue: (_b = element.defaultValue) === null || _b === void 0 ? void 0 : _b.subCategory,
@@ -55,7 +53,6 @@ export default function generateFreshdeskDependentFieldElements(element) {
55
53
  ...createFormElement(),
56
54
  name: 'item',
57
55
  required: element.required,
58
- readOnly: element.readOnly,
59
56
  label: element.itemLabel,
60
57
  hint: element.itemHint,
61
58
  defaultValue: (_c = element.defaultValue) === null || _c === void 0 ? void 0 : _c.item,
@@ -1 +1 @@
1
- {"version":3,"file":"generateFreshdeskDependentFieldElements.js","sourceRoot":"","sources":["../../src/services/generateFreshdeskDependentFieldElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAGjC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,EAAE,EAAE,IAAI,EAAE;IACV,IAAI,EAAE,QAAiB;IACvB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,iBAA0B;IACvC,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,sCAAsC,EAAE,KAAK;CAC9C,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAC9B,aAA0D,EAC1D,WAA+B;IAE/B,MAAM,oBAAoB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAC9C,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,WAAW,CACrD,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,oBAAoB,CAAC,OAA0C,CAAA;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;gBAChB,GAAG,IAAI;gBACP,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAqC;aAC/D,EACD,EAAE,CACH,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uCAAuC,CAC7D,OAAiD;;IAEjD,MAAM,eAAe,GAA4B;QAC/C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,QAAQ;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,WAAW,EAAE,iBAAiB;KAC/B,CAAA;IACD,MAAM,YAAY,GAAG,CAAC,eAAe,CAAC,CAAA;IAEtC,MAAM,kBAAkB,GAA4B;QAClD,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,gBAAgB;QAC/B,IAAI,EAAE,OAAO,CAAC,eAAe;QAC7B,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAErC,MAAM,WAAW,GAA4B;QAC3C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,IAAI;QACxC,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE9B,OAAO,YAAY,CAAA;AACrB,CAAC","sourcesContent":["import { v4 as uuid } from 'uuid'\nimport { FormTypes } from '@oneblink/types'\n\nconst createFormElement = () => ({\n id: uuid(),\n type: 'select' as const,\n multi: false,\n optionsType: 'FRESHDESK_FIELD' as const,\n conditionallyShow: false,\n isDataLookup: false,\n isElementLookup: false,\n required: false,\n requiresAllConditionallyShowPredicates: false,\n})\n\nexport function getNestedOptions(\n parentOptions: FormTypes.ChoiceElementOption[] | undefined,\n parentValue: string | undefined,\n): FormTypes.ChoiceElementOption[] | undefined {\n const selectedParentOption = parentOptions?.find(\n (parentOption) => parentOption.value === parentValue,\n )\n if (parentOptions) {\n if (selectedParentOption) {\n return selectedParentOption.options as FormTypes.ChoiceElementOption[]\n } else {\n return parentOptions.reduce<FormTypes.ChoiceElementOption[]>(\n (memo, option) => [\n ...memo,\n ...((option.options || []) as FormTypes.ChoiceElementOption[]),\n ],\n [],\n )\n }\n }\n return undefined\n}\n\nexport default function generateFreshdeskDependentFieldElements(\n element: FormTypes.FreshdeskDependentFieldElement,\n): FormTypes.SelectElement[] {\n const categoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'category',\n required: element.required,\n readOnly: element.readOnly,\n label: element.label,\n hint: element.hint,\n defaultValue: element.defaultValue?.category,\n options: element.options,\n freshdeskFieldName: element.freshdeskFieldName,\n optionsType: 'FRESHDESK_FIELD',\n }\n const formElements = [categoryElement]\n\n const subCategoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'subCategory',\n required: element.required,\n readOnly: element.readOnly,\n label: element.subCategoryLabel,\n hint: element.subCategoryHint,\n defaultValue: element.defaultValue?.subCategory,\n options: [],\n }\n formElements.push(subCategoryElement)\n\n const itemElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'item',\n required: element.required,\n readOnly: element.readOnly,\n label: element.itemLabel,\n hint: element.itemHint,\n defaultValue: element.defaultValue?.item,\n options: [],\n }\n formElements.push(itemElement)\n\n return formElements\n}\n"]}
1
+ {"version":3,"file":"generateFreshdeskDependentFieldElements.js","sourceRoot":"","sources":["../../src/services/generateFreshdeskDependentFieldElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAGjC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,EAAE,EAAE,IAAI,EAAE;IACV,IAAI,EAAE,QAAiB;IACvB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,iBAA0B;IACvC,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,sCAAsC,EAAE,KAAK;CAC9C,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAC9B,aAA0D,EAC1D,WAA+B;IAE/B,MAAM,oBAAoB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAC9C,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,WAAW,CACrD,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,oBAAoB,CAAC,OAA0C,CAAA;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;gBAChB,GAAG,IAAI;gBACP,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAqC;aAC/D,EACD,EAAE,CACH,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uCAAuC,CAC7D,OAAiD;;IAEjD,MAAM,eAAe,GAA4B;QAC/C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,QAAQ;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,WAAW,EAAE,iBAAiB;KAC/B,CAAA;IACD,MAAM,YAAY,GAAG,CAAC,eAAe,CAAC,CAAA;IAEtC,MAAM,kBAAkB,GAA4B;QAClD,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,gBAAgB;QAC/B,IAAI,EAAE,OAAO,CAAC,eAAe;QAC7B,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAErC,MAAM,WAAW,GAA4B;QAC3C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,IAAI;QACxC,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE9B,OAAO,YAAY,CAAA;AACrB,CAAC","sourcesContent":["import { v4 as uuid } from 'uuid'\nimport { FormTypes } from '@oneblink/types'\n\nconst createFormElement = () => ({\n id: uuid(),\n type: 'select' as const,\n multi: false,\n optionsType: 'FRESHDESK_FIELD' as const,\n conditionallyShow: false,\n isDataLookup: false,\n isElementLookup: false,\n required: false,\n requiresAllConditionallyShowPredicates: false,\n})\n\nexport function getNestedOptions(\n parentOptions: FormTypes.ChoiceElementOption[] | undefined,\n parentValue: string | undefined,\n): FormTypes.ChoiceElementOption[] | undefined {\n const selectedParentOption = parentOptions?.find(\n (parentOption) => parentOption.value === parentValue,\n )\n if (parentOptions) {\n if (selectedParentOption) {\n return selectedParentOption.options as FormTypes.ChoiceElementOption[]\n } else {\n return parentOptions.reduce<FormTypes.ChoiceElementOption[]>(\n (memo, option) => [\n ...memo,\n ...((option.options || []) as FormTypes.ChoiceElementOption[]),\n ],\n [],\n )\n }\n }\n return undefined\n}\n\nexport default function generateFreshdeskDependentFieldElements(\n element: FormTypes.FreshdeskDependentFieldElement,\n): FormTypes.SelectElement[] {\n const categoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'category',\n required: element.required,\n label: element.label,\n hint: element.hint,\n defaultValue: element.defaultValue?.category,\n options: element.options,\n freshdeskFieldName: element.freshdeskFieldName,\n optionsType: 'FRESHDESK_FIELD',\n }\n const formElements = [categoryElement]\n\n const subCategoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'subCategory',\n required: element.required,\n label: element.subCategoryLabel,\n hint: element.subCategoryHint,\n defaultValue: element.defaultValue?.subCategory,\n options: [],\n }\n formElements.push(subCategoryElement)\n\n const itemElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'item',\n required: element.required,\n label: element.itemLabel,\n hint: element.itemHint,\n defaultValue: element.defaultValue?.item,\n options: [],\n }\n formElements.push(itemElement)\n\n return formElements\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { FormTypes } from '@oneblink/types';
2
+ type ElementWithEditability = FormTypes.FormElement | FormTypes.LookupFormElement;
3
+ export declare function isApproverEditable(element: ElementWithEditability): boolean;
4
+ /**
5
+ * Whether an audience can change this element or anything nested inside it.
6
+ *
7
+ * Approvers may only edit elements configured for approver editing, so a
8
+ * subtree containing none of them is entirely locked for them. Used to skip
9
+ * validating what an audience has no way to correct.
10
+ */
11
+ export declare function isElementEditableForAudience(element: ElementWithEditability, audience: FormTypes.FormElementHiddenFromAudience): boolean;
12
+ /**
13
+ * Determine whether a form element should be read only for a given audience.
14
+ *
15
+ * Approvers may only edit elements explicitly configured for approver editing,
16
+ * so every other input is locked. Nested form and info page elements stay
17
+ * interactive while they contain an approver editable element.
18
+ */
19
+ export default function isElementReadOnlyForAudience(element: ElementWithEditability, audience: FormTypes.FormElementHiddenFromAudience): boolean;
20
+ export {};
@@ -0,0 +1,46 @@
1
+ export function isApproverEditable(element) {
2
+ var _a;
3
+ return ('approverEditability' in element &&
4
+ ((_a = element.approverEditability) === null || _a === void 0 ? void 0 : _a.type) === 'ALL_STEPS');
5
+ }
6
+ function hasApproverEditableElement(elements) {
7
+ return elements.some((element) => isApproverEditable(element) ||
8
+ ('elements' in element &&
9
+ Array.isArray(element.elements) &&
10
+ hasApproverEditableElement(element.elements)));
11
+ }
12
+ /**
13
+ * Whether an audience can change this element or anything nested inside it.
14
+ *
15
+ * Approvers may only edit elements configured for approver editing, so a
16
+ * subtree containing none of them is entirely locked for them. Used to skip
17
+ * validating what an audience has no way to correct.
18
+ */
19
+ export function isElementEditableForAudience(element, audience) {
20
+ if (audience !== 'APPROVER') {
21
+ return true;
22
+ }
23
+ return (isApproverEditable(element) ||
24
+ ('elements' in element &&
25
+ Array.isArray(element.elements) &&
26
+ hasApproverEditableElement(element.elements)));
27
+ }
28
+ /**
29
+ * Determine whether a form element should be read only for a given audience.
30
+ *
31
+ * Approvers may only edit elements explicitly configured for approver editing,
32
+ * so every other input is locked. Nested form and info page elements stay
33
+ * interactive while they contain an approver editable element.
34
+ */
35
+ export default function isElementReadOnlyForAudience(element, audience) {
36
+ if (audience !== 'APPROVER') {
37
+ return false;
38
+ }
39
+ if ('type' in element &&
40
+ (element.type === 'form' || element.type === 'infoPage')) {
41
+ return (!isApproverEditable(element) &&
42
+ !hasApproverEditableElement(element.elements || []));
43
+ }
44
+ return !isApproverEditable(element);
45
+ }
46
+ //# sourceMappingURL=isElementReadOnlyForAudience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isElementReadOnlyForAudience.js","sourceRoot":"","sources":["../../src/services/isElementReadOnlyForAudience.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,kBAAkB,CAAC,OAA+B;;IAChE,OAAO,CACL,qBAAqB,IAAI,OAAO;QAChC,CAAA,MAAA,OAAO,CAAC,mBAAmB,0CAAE,IAAI,MAAK,WAAW,CAClD,CAAA;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,QAAiC;IAEjC,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,OAAO,EAAE,EAAE,CACV,kBAAkB,CAAC,OAAO,CAAC;QAC3B,CAAC,UAAU,IAAI,OAAO;YACpB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/B,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA+B,EAC/B,QAAiD;IAEjD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,kBAAkB,CAAC,OAAO,CAAC;QAC3B,CAAC,UAAU,IAAI,OAAO;YACpB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/B,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAChD,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,OAA+B,EAC/B,QAAiD;IAEjD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IACE,MAAM,IAAI,OAAO;QACjB,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,EACxD,CAAC;QACD,OAAO,CACL,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC5B,CAAC,0BAA0B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CACpD,CAAA;IACH,CAAC;IAED,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC","sourcesContent":["import { FormTypes } from '@oneblink/types'\r\n\r\ntype ElementWithEditability =\r\n | FormTypes.FormElement\r\n | FormTypes.LookupFormElement\r\n\r\nexport function isApproverEditable(element: ElementWithEditability): boolean {\r\n return (\r\n 'approverEditability' in element &&\r\n element.approverEditability?.type === 'ALL_STEPS'\r\n )\r\n}\r\n\r\nfunction hasApproverEditableElement(\r\n elements: FormTypes.FormElement[],\r\n): boolean {\r\n return elements.some(\r\n (element) =>\r\n isApproverEditable(element) ||\r\n ('elements' in element &&\r\n Array.isArray(element.elements) &&\r\n hasApproverEditableElement(element.elements)),\r\n )\r\n}\r\n\r\n/**\r\n * Whether an audience can change this element or anything nested inside it.\r\n *\r\n * Approvers may only edit elements configured for approver editing, so a\r\n * subtree containing none of them is entirely locked for them. Used to skip\r\n * validating what an audience has no way to correct.\r\n */\r\nexport function isElementEditableForAudience(\r\n element: ElementWithEditability,\r\n audience: FormTypes.FormElementHiddenFromAudience,\r\n): boolean {\r\n if (audience !== 'APPROVER') {\r\n return true\r\n }\r\n\r\n return (\r\n isApproverEditable(element) ||\r\n ('elements' in element &&\r\n Array.isArray(element.elements) &&\r\n hasApproverEditableElement(element.elements))\r\n )\r\n}\r\n\r\n/**\r\n * Determine whether a form element should be read only for a given audience.\r\n *\r\n * Approvers may only edit elements explicitly configured for approver editing,\r\n * so every other input is locked. Nested form and info page elements stay\r\n * interactive while they contain an approver editable element.\r\n */\r\nexport default function isElementReadOnlyForAudience(\r\n element: ElementWithEditability,\r\n audience: FormTypes.FormElementHiddenFromAudience,\r\n): boolean {\r\n if (audience !== 'APPROVER') {\r\n return false\r\n }\r\n\r\n if (\r\n 'type' in element &&\r\n (element.type === 'form' || element.type === 'infoPage')\r\n ) {\r\n return (\r\n !isApproverEditable(element) &&\r\n !hasApproverEditableElement(element.elements || [])\r\n )\r\n }\r\n\r\n return !isApproverEditable(element)\r\n}\r\n"]}
@@ -0,0 +1,10 @@
1
+ import { FormTypes } from '@oneblink/types';
2
+ /**
3
+ * Whether a form element’s own controls should be locked for a given audience.
4
+ *
5
+ * `approverEditability` wins over the element’s `readOnly` flag for approvers,
6
+ * so a field can be locked for submitters and still editable during review.
7
+ * Whole-form read-only (`useFormIsReadOnly`) is applied by the renderer, not
8
+ * here.
9
+ */
10
+ export default function resolveFormElementReadOnly(element: FormTypes.FormElement, audience: FormTypes.FormElementHiddenFromAudience): boolean;
@@ -0,0 +1,17 @@
1
+ import isElementReadOnlyForAudience, { isApproverEditable, } from './isElementReadOnlyForAudience';
2
+ /**
3
+ * Whether a form element’s own controls should be locked for a given audience.
4
+ *
5
+ * `approverEditability` wins over the element’s `readOnly` flag for approvers,
6
+ * so a field can be locked for submitters and still editable during review.
7
+ * Whole-form read-only (`useFormIsReadOnly`) is applied by the renderer, not
8
+ * here.
9
+ */
10
+ export default function resolveFormElementReadOnly(element, audience) {
11
+ if (audience === 'APPROVER' && isApproverEditable(element)) {
12
+ return false;
13
+ }
14
+ return (('readOnly' in element && element.readOnly === true) ||
15
+ isElementReadOnlyForAudience(element, audience));
16
+ }
17
+ //# sourceMappingURL=resolveFormElementReadOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFormElementReadOnly.js","sourceRoot":"","sources":["../../src/services/resolveFormElementReadOnly.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,EAAE,EACnC,kBAAkB,GACnB,MAAM,gCAAgC,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,OAA8B,EAC9B,QAAiD;IAEjD,IAAI,QAAQ,KAAK,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CACL,CAAC,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;QACpD,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAChD,CAAA;AACH,CAAC","sourcesContent":["import { FormTypes } from '@oneblink/types'\nimport isElementReadOnlyForAudience, {\n isApproverEditable,\n} from './isElementReadOnlyForAudience'\n\n/**\n * Whether a form element’s own controls should be locked for a given audience.\n *\n * `approverEditability` wins over the element’s `readOnly` flag for approvers,\n * so a field can be locked for submitters and still editable during review.\n * Whole-form read-only (`useFormIsReadOnly`) is applied by the renderer, not\n * here.\n */\nexport default function resolveFormElementReadOnly(\n element: FormTypes.FormElement,\n audience: FormTypes.FormElementHiddenFromAudience,\n): boolean {\n if (audience === 'APPROVER' && isApproverEditable(element)) {\n return false\n }\n\n return (\n ('readOnly' in element && element.readOnly === true) ||\n isElementReadOnlyForAudience(element, audience)\n )\n}\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.2",
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.1",
17
17
  "@react-google-maps/api": "^2.20.8",
18
18
  "@react-input/mask": "^2.0.4",
19
19
  "@sentry/browser": "^10.38.0",