@oneblink/apps-react 13.0.0-beta.3 → 13.0.0-beta.5
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.
- package/dist/OneBlinkFormBase.d.ts +23 -3
- package/dist/OneBlinkFormBase.js +164 -145
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.d.ts +17 -7
- package/dist/OneBlinkReadOnlyForm.js +24 -8
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/components/renderer/LookupNotification.js +15 -16
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.d.ts +5 -7
- package/dist/components/renderer/OneBlinkFormElements.js +10 -35
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/PageFormElements.js +8 -3
- package/dist/components/renderer/PageFormElements.js.map +1 -1
- package/dist/components/renderer/ReverseGeocode.js +6 -11
- package/dist/components/renderer/ReverseGeocode.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.js +1 -0
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementForm.d.ts +8 -9
- package/dist/form-elements/FormElementForm.js +4 -3
- package/dist/form-elements/FormElementForm.js.map +1 -1
- package/dist/form-elements/FormElementLookupButton.js +3 -2
- package/dist/form-elements/FormElementLookupButton.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.d.ts +4 -4
- package/dist/form-elements/FormElementRepeatableSet.js +6 -4
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSection.d.ts +3 -3
- package/dist/form-elements/FormElementSection.js +2 -2
- package/dist/form-elements/FormElementSection.js.map +1 -1
- package/dist/form-elements/FormElementSummary.js +2 -0
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/hooks/useAreLookupsDisallowed.d.ts +2 -0
- package/dist/hooks/useAreLookupsDisallowed.js +12 -0
- package/dist/hooks/useAreLookupsDisallowed.js.map +1 -0
- package/dist/hooks/useEditableFormElementIds.d.ts +3 -0
- package/dist/hooks/useEditableFormElementIds.js +6 -0
- package/dist/hooks/useEditableFormElementIds.js.map +1 -0
- package/dist/hooks/useFormElementOptions.js +2 -0
- package/dist/hooks/useFormElementOptions.js.map +1 -1
- package/dist/hooks/useFormIsDirty.d.ts +38 -0
- package/dist/hooks/useFormIsDirty.js +78 -0
- package/dist/hooks/useFormIsDirty.js.map +1 -0
- package/dist/hooks/useFormSubmissionAttempt.d.ts +88 -0
- package/dist/hooks/useFormSubmissionAttempt.js +103 -0
- package/dist/hooks/useFormSubmissionAttempt.js.map +1 -0
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +2 -9
- package/dist/hooks/useFormSubmissionAutoSaveState.js +4 -2
- package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
- package/dist/hooks/useFormValidation.d.ts +1 -1
- package/dist/hooks/useFormValidation.js +2 -1
- package/dist/hooks/useFormValidation.js.map +1 -1
- package/dist/hooks/useInjectPages.d.ts +2 -1
- package/dist/hooks/useInjectPages.js.map +1 -1
- package/dist/hooks/useIsFormElementReadOnly.d.ts +2 -0
- package/dist/hooks/useIsFormElementReadOnly.js +13 -0
- package/dist/hooks/useIsFormElementReadOnly.js.map +1 -0
- package/dist/hooks/useLookupNotification.d.ts +1 -0
- package/dist/hooks/useLookupNotification.js.map +1 -1
- package/dist/hooks/useLookups.d.ts +3 -3
- package/dist/hooks/useLookups.js +7 -4
- package/dist/hooks/useLookups.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/form-validation/extensions.d.ts +2 -1
- package/dist/services/form-validation/extensions.js +2 -1
- package/dist/services/form-validation/extensions.js.map +1 -1
- package/dist/services/form-validation/validateSubmission.d.ts +2 -1
- package/dist/services/form-validation/validateSubmission.js +14 -9
- package/dist/services/form-validation/validateSubmission.js.map +1 -1
- package/dist/types/form.d.ts +17 -3
- package/dist/types/form.js.map +1 -1
- package/dist/utils/read-only-form-elements.d.ts +37 -0
- package/dist/utils/read-only-form-elements.js +63 -0
- package/dist/utils/read-only-form-elements.js.map +1 -0
- package/package.json +2 -1
- package/dist/services/isElementReadOnlyForAudience.d.ts +0 -20
- package/dist/services/isElementReadOnlyForAudience.js +0 -46
- package/dist/services/isElementReadOnlyForAudience.js.map +0 -1
- package/dist/services/resolveFormElementReadOnly.d.ts +0 -10
- package/dist/services/resolveFormElementReadOnly.js +0 -17
- package/dist/services/resolveFormElementReadOnly.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneBlinkFormElements.js","sourceRoot":"","sources":["../../../src/components/renderer/OneBlinkFormElements.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,OAAO,yBAAyB,MAAM,+CAA+C,CAAA;AACrF,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,cAAc,MAAM,oCAAoC,CAAA;AAC/D,OAAO,cAAc,MAAM,oCAAoC,CAAA;AAC/D,OAAO,eAAe,MAAM,qCAAqC,CAAA;AACjE,OAAO,mBAAmB,MAAM,yCAAyC,CAAA;AACzE,OAAO,iBAAiB,MAAM,uCAAuC,CAAA;AACrE,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,eAAe,MAAM,qCAAqC,CAAA;AACjE,OAAO,oBAAoB,MAAM,0CAA0C,CAAA;AAC3E,OAAO,iBAAiB,MAAM,uCAAuC,CAAA;AACrE,OAAO,eAAe,MAAM,qCAAqC,CAAA;AACjE,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,mBAAmB,MAAM,yCAAyC,CAAA;AACzE,OAAO,eAAe,MAAM,qCAAqC,CAAA;AACjE,OAAO,sBAAsB,MAAM,4CAA4C,CAAA;AAC/E,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,uBAAuB,MAAM,6CAA6C,CAAA;AACjF,OAAO,wBAAwB,MAAM,8CAA8C,CAAA;AACnF,OAAO,oBAAoB,MAAM,0CAA0C,CAAA;AAC3E,OAAO,qBAAqB,MAAM,2CAA2C,CAAA;AAC7E,OAAO,gBAAgB,EAAE,EACvB,oBAAoB,GACrB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,eAAe,MAAM,qCAAqC,CAAA;AACjE,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,iBAAiB,MAAM,uCAAuC,CAAA;AACrE,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,mBAAmB,EAAE,EAC1B,iBAAiB,GAClB,MAAM,yCAAyC,CAAA;AAChD,OAAO,0BAA0B,MAAM,gDAAgD,CAAA;AACvF,OAAO,qBAAqB,EAAE,EAC5B,wBAAwB,GACzB,MAAM,2CAA2C,CAAA;AAClD,OAAO,uBAAuB,MAAM,6CAA6C,CAAA;AACjF,OAAO,wBAAwB,MAAM,8CAA8C,CAAA;AACnF,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,2BAA2B,MAAM,iDAAiD,CAAA;AACzF,OAAO,2BAA2B,MAAM,iDAAiD,CAAA;AACzF,OAAO,kCAAkC,MAAM,wDAAwD,CAAA;AACvG,OAAO,uBAAuB,EAAE,EAC9B,oBAAoB,GACrB,MAAM,6CAA6C,CAAA;AAapD,OAAO,EAAE,kCAAkC,EAAE,MAAM,2CAA2C,CAAA;AAC9F,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAC7D,OAAO,0BAA0B,MAAM,2CAA2C,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,0BAA0B,MAAM,2CAA2C,CAAA;AAclF,OAAO,8BAA8B,MAAM,oDAAoD,CAAA;AAC/F,OAAO,YAAY,MAAM,2BAA2B,CAAA;AAEpD,OAAO,+BAA+B,MAAM,qDAAqD,CAAA;AACjG,OAAO,uBAAuB,MAAM,6CAA6C,CAAA;AACjF,OAAO,yBAAyB,MAAM,+CAA+C,CAAA;AAiErF,SAAS,oBAAoB,CAA6C,EACxE,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,8BAA8B,EAC9B,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACP;IACT,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,OAAO,CACL,KAAC,kCAAkC,IACjC,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAChC,KAAK,EAAE,KAAK,EACZ,8BAA8B,EAAE,8BAA8B,YAE7D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;YACxB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,MAAA,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAG,OAAO,CAAC,EAAE,CAAC,0CAAE,QAAQ,EAAE,CAAC;oBAC3D,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,MAAM,eAAe,GACnB,OAAO,CAAC,YAAY,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI;oBACtD,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,OAAO;oBACjC,CAAC,CAAC,SAAS,CAAA;gBAEf,MAAM,eAAe,GAAG,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAA;gBAEzD,OAAO,CACL,cAEE,SAAS,EAAE,IAAI,CACb,sCAAsC,EACtC,OAAO,CAAC,gBAAgB,EACxB;wBACE,WAAW,EAAE,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC;qBAC3D,CACF,qBACgB,eAAe,sBACd,eAAe,EACjC,IAAI,EAAC,QAAQ,YAEb,KAAC,kBAAkB,IACjB,gBAAgB,EAAE,cAAc,IAAI,CAAC,CAAC,QAAQ,EAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,yBAAyB,EAAE,yBAAyB,EACpD,QAAQ,EAAE,QAAQ,EAClB,8BAA8B,EAAE,8BAA8B,EAC9D,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,GAC1B,IA3BG,OAAO,CAAC,EAAE,CA4BX,CACP,CAAA;YACH,CAAC;YAED,IACE,OAAO,CAAC,IAAI,KAAK,MAAM;iBACvB,MAAA,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAG,OAAO,CAAC,IAAI,CAAC,0CAAE,QAAQ,CAAA,EACxD,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,CACL,KAAC,0BAA0B,IAEzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAC1B,wBAAwB,EAAE,yBAAyB,EACnD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,EAChC,6BAA6B,EAC3B,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAG,OAAO,CAAC,IAAI,CAAC,EAEhD,qBAAqB,EAAE,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,OAAO,CAAC,IAAI,CAAC,EAC7D,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,QAAQ,EACxB,gBAAgB,EAAE,gBAAgB,IAhB7B,OAAO,CAAC,EAAE,CAiBf,CACH,CAAA;QACH,CAAC,CAAC,GACiC,CACtC,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;AAE/C,SAAS,0BAA0B,CACjC,KAiBC;IAED,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAA;IAC1E,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7C,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;IAC3D,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,gBAAgB,CAAA;QAC/B,CAAC;QAED,IAAI,QAAQ,KAAK,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC,EAAE;QACD,QAAQ;QACR,mBAAmB;QACnB,OAAO;QACP,cAAc;QACd,KAAK,CAAC,gBAAgB;KACvB,CAAC,CAAA;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAChC,CAAC,KAAK,CAAC,EAAE,CAAC,CACX,CAAA;IACD,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,OAAO,mBAAmB,CAAA;YAC5B,CAAC;YACD,IAAI,OAAO,IAAI,wBAAwB,EAAE,CAAC;gBACxC,OAAO,qBAAqB,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,MAAM,mBAAmB,GAAG,kBAAkB,EAAE,CAAA;IAEhD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,6EAA6E;IAC7E,kEAAkE;IAClE,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,cACE,EAAE,EAAE,YAAY,CAAC,qBAAqB,qBACrB,OAAO,CAAC,EAAE,EAC3B,SAAS,EAAE,IAAI,CACb,sCAAsC,EACtC,OAAO,CAAC,gBAAgB,EACxB,mBAAmB,EACnB;YACE,WAAW,EAAE,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC3D,CACF,+BAC0B,OAAO,CAAC,IAAI,kBACzB,OAAO,CAAC,IAAI,YAE1B,KAAC,iBAAiB,OACZ,KAAK,EACT,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,GACE,CACP,CAAA;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,mBAAmB,CAAC,EAChE,MAAM,EACN,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACL,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,MAAM,EACN,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,YAAY,GAC0B;;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAC/B,CAAC,OAAO,EAAE,UAAU,CAAC,CACtB,CAAA;IACD,MAAM,gCAAgC,GACpC,CAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,MAAK,aAAa;QACnD,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,iBAAiB,GACrB,OAAO,qBAAqB,KAAK,QAAQ;QACvC,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,sBAAsB,GAC1B,wBAAwB,IAAI,OAAO;QACjC,CAAC,CAAC,MAAA,OAAO,CAAC,sBAAsB,0CAAE,IAAI,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAA;IACf,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,KAAC,kBAAkB,IAAC,OAAO,EAAE,OAAO,GAAI,CAAA;QACjD,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,GAAI,CAAA;QAC9C,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAwC,EAC/C,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,yBAAyB,IACxB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,gCAAgC,EAAE,gCAAgC,EAClE,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACnD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,gCAAgC,EAAE,gCAAgC,EAClE,oBAAoB,EAAE,oBAAoB,EAC1C,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,gCAAgC,EAAE,gCAAgC,EAClE,oBAAoB,EAAE,oBAAoB,KACtC,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CACL,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAsC,EAC7C,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,CACH,CAAA;QACH,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,CACL,KAAC,sBAAsB,IACrB,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,QAEa,EAEf,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;QACH,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO,CACL,KAAC,wBAAwB,IACvB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,CAAC,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EACH,KAEa,EAEf,QAAQ,EACN,QAEa,EAEf,QAAQ,EAAE,QAAQ,EAClB,6BAA6B,EAAE,6BAA6B,EAC5D,qBAAqB,EAAE,qBAAqB,EAC5C,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,KACtB,UAAU,GACd,CACH,CAAA;QACH,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,GAAI,CAAA;QAC/C,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,qBAAqB,IACpB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,gCAAgC,EAAE,gCAAgC,EAClE,oBAAoB,EAAE,oBAAoB,KACtC,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,KAAK,EACtB,wBAAwB,EACtB,oBAE6B,YAG/B,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAoD,EAC3D,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CACL,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EACH,KAAmE,EAErE,QAAQ,EACN,QAAoE,EAEtE,QAAQ,EAAE,QAAQ,EAClB,yBAAyB,EAAE,wBAAwB,EACnD,qBAAqB,EAAE,qBAAqB,EAC5C,6BAA6B,EAAE,6BAA6B,EAC5D,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;QACH,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CACL,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAsC,EAC7C,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,CACH,CAAA;QACH,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,CACL,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,QAEa,EAEf,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;QACH,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,CACL,KAAC,kBAAkB,IACjB,KAAK,EAAE,KAA2B,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,CACH,CAAA;QACH,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,wBAAwB,EACtB,iBAE6B,EAE/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,QAEa,YAGf,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACa,GACE,CACtB,CAAA;QACH,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,KAAkD,CAAA;YAC5D,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,0BAA0B,IACzB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,wBAAwB,EAAE,wBAAwB,EAClD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,qBAAqB,IACpB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,gCAAgC,EAAE,gCAAgC,EAClE,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,KACtC,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,OAAO,CACL,KAAC,kCAAkC,IACjC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EACH,KAAmE,EAErE,QAAQ,EACN,QAEa,EAEf,QAAQ,EAAE,QAAQ,EAClB,yBAAyB,EAAE,wBAAwB,EACnD,qBAAqB,EAAE,qBAAqB,EAC5C,6BAA6B,EAAE,6BAA6B,EAC5D,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;QACH,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,KAA4D,CAAA;YACtE,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,+BAA+B,IAC9B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,KAA4C,CAAA;YACtD,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,KAEG,CAAA;YACb,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,yBAAyB,IACxB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,KAAkD,CAAA;YAC5D,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,wBAAwB,IACvB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,kBAAkB,IACjB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,KAAiD,CAAA;YAC3D,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,2BAA2B,IAC1B,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,OAAO,CACL,KAAC,2BAA2B,IAC1B,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,mBAAmB,EACrC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EACH,KAAmE,EAErE,QAAQ,EACN,QAEa,EAEf,QAAQ,EAAE,QAAQ,EAClB,yBAAyB,EAAE,wBAAwB,EACnD,qBAAqB,EAAE,qBAAqB,EAC5C,6BAA6B,EAAE,6BAA6B,EAC5D,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;QACH,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAqD,CAAA;YAC/D,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,YAElB,KAAC,8BAA8B,IAC7B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,sBAAsB,EAAE,sBAAsB,KAC1C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,KAA6C,CAAA;YACvD,OAAO,CACL,KAAC,kBAAkB,IACjB,eAAe,EAAE,KAAK,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,EACtB,oBAE6B,YAG/B,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EACR,QAAQ,EACN,QAEa,EAEf,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,KAC9C,UAAU,GACd,GACiB,CACtB,CAAA;QACH,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO,CACL,KAAC,uBAAuB,IACtB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,QAAQ,EACN,QAEa,EAEf,QAAQ,EAAE,QAAQ,KACd,UAAU,GACd,CACH,CAAA;QACH,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,KAAK,GAAU,OAAO,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;YACtC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\nimport LookupNotification from './LookupNotification'\nimport ReverseGeocode from './ReverseGeocode'\n\nimport FormElementBarcodeScanner from '../../form-elements/FormElementBarcodeScanner'\nimport FormElementEmail from '../../form-elements/FormElementEmail'\nimport FormElementABN from '../../form-elements/FormElementABN'\nimport FormElementBSB from '../../form-elements/FormElementBSB'\nimport FormElementText from '../../form-elements/FormElementText'\nimport FormElementTextarea from '../../form-elements/FormElementTextarea'\nimport FormElementNumber from '../../form-elements/FormElementNumber'\nimport FormElementHeading from '../../form-elements/FormElementHeading'\nimport FormElementHTML from '../../form-elements/FormElementHTML'\nimport FormElementTelephone from '../../form-elements/FormElementTelephone'\nimport FormElementSelect from '../../form-elements/FormElementSelect'\nimport FormElementDate from '../../form-elements/FormElementDate'\nimport FormElementImage from '../../form-elements/FormElementImage'\nimport FormElementDateTime from '../../form-elements/FormElementDateTime'\nimport FormElementTime from '../../form-elements/FormElementTime'\nimport FormElementCalculation from '../../form-elements/FormElementCalculation'\nimport FormElementRadio from '../../form-elements/FormElementRadio'\nimport FormElementAutocomplete from '../../form-elements/FormElementAutocomplete'\nimport FormElementRepeatableSet from '../../form-elements/FormElementRepeatableSet'\nimport FormElementSignature from '../../form-elements/FormElementSignature'\nimport FormElementCheckBoxes from '../../form-elements/FormElementCheckBoxes'\nimport FormElementFiles, {\n stringifyAttachments,\n} from '../../form-elements/FormElementFiles'\nimport FormElementForm from '../../form-elements/FormElementForm'\nimport FormElementSection from '../../form-elements/FormElementSection'\nimport FormElementCamera from '../../form-elements/FormElementCamera'\nimport FormElementSummary from '../../form-elements/FormElementSummary'\nimport FormElementCaptcha from '../../form-elements/FormElementCaptcha'\nimport FormElementLocation, {\n stringifyLocation,\n} from '../../form-elements/FormElementLocation'\nimport FormElementGeoscapeAddress from '../../form-elements/FormElementGeoscapeAddress'\nimport FormElementCompliance, {\n stringifyComplianceValue,\n} from '../../form-elements/FormElementCompliance'\nimport FormElementPointAddress from '../../form-elements/FormElementPointAddress'\nimport FormElementGoogleAddress from '../../form-elements/FormElementGoogleAddress'\nimport FormElementBoolean from '../../form-elements/FormElementBoolean'\nimport FormElementCivicaStreetName from '../../form-elements/FormElementCivicaStreetName'\nimport FormElementCivicaNameRecord from '../../form-elements/FormElementCivicaNameRecord'\nimport FormElementFreshdeskDependentField from '../../form-elements/FormElementFreshdeskDependentField'\nimport FormElementArcGISWebMap, {\n stringifyArcgisInput,\n} from '../../form-elements/FormElementArcGISWebMap'\n\nimport {\n APINSWTypes,\n CivicaTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\n\nimport { FormSubmissionModelContextProvider } from '../../hooks/useFormSubmissionModelContext'\nimport useBooleanState from '../../hooks/useBooleanState'\nimport useFormAudience from '../../hooks/useFormAudience'\nimport useFormIsReadOnly from '../../hooks/useFormIsReadOnly'\nimport isElementHiddenForAudience from '../../services/isElementHiddenForAudience'\nimport { isApproverEditable } from '../../services/isElementReadOnlyForAudience'\nimport resolveFormElementReadOnly from '../../services/resolveFormElementReadOnly'\nimport { FormElementBinaryStorageValue } from '../../types/attachments'\nimport {\n FormElementConditionallyShown,\n FormElementLookupHandler,\n FormElementsConditionallyShown,\n FormElementsValidation,\n FormElementValidation,\n NestedFormElementValueChangeHandler,\n IsDirtyProps,\n UpdateFormElementsHandler,\n SectionState,\n} from '../../types/form'\nimport { attachmentsService } from '../../apps'\nimport FormElementAPINSWLiquorLicence from '../../form-elements/FormElementAPINSWLiquorLicence'\nimport ElementDOMId from '../../utils/elementDOMIds'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport FormElementPointCadastralParcel from '../../form-elements/FormElementPointCadastralParcel'\nimport FormElementLookupButton from '../../form-elements/FormElementLookupButton'\nimport FormElementPointAddressV3 from '../../form-elements/FormElementPointAddressV3'\n\nexport type Props<T extends FormTypes._NestedElementsElement> = {\n formId: number\n elements: FormTypes.FormElement[]\n formElementsConditionallyShown: FormElementsConditionallyShown | undefined\n formElementsValidation: FormElementsValidation | undefined\n displayValidationMessages: boolean\n onChange: NestedFormElementValueChangeHandler\n onLookup: FormElementLookupHandler\n onUpdateFormElements: UpdateFormElementsHandler\n // Props passed by repeatable sets\n isEven?: boolean\n idPrefix: string\n model: SubmissionTypes.S3SubmissionData['submission']\n parentElement: T\n sectionState?: SectionState\n /**\n * Inherited lock for nested fields (`parentReadOnly`). True when the whole\n * form is read-only, an ancestor is read-only, or a parent element’s\n * definition has `readOnly: true`. Does not include an ancestor’s audience\n * lock. A child with `approverEditability.type` `ALL_STEPS` also ignores this\n * inherited `readOnly` lock while an approver is reviewing.\n */\n readOnly?: boolean\n /**\n * When set, forces each child’s `readOnly` instead of the usual\n * inherit-or-audience calculation. Used for synthetic nested fields (Civica\n * name records, Freshdesk dependent fields) that should follow their parent’s\n * audience lock.\n */\n readOnlyOverride?: boolean\n}\n\ninterface FormElementSwitchProps extends IsDirtyProps {\n formId: number\n element: FormTypes.FormElement\n /**\n * Whether this element’s own controls are locked. Includes form-level\n * read-only, inherited parent lock, this element’s definition `readOnly:\n * true`, and audience lock. Approvers can still edit when\n * `approverEditability.type` is `ALL_STEPS`, including when `readOnly` is set\n * or a parent is read-only.\n */\n readOnly: boolean\n /**\n * Whether nested fields should inherit a lock. True for form-level read-only,\n * an inherited parent lock, or this element’s definition `readOnly: true`.\n * Does not include this element’s audience lock. A descendant with\n * `approverEditability.type` `ALL_STEPS` can still be independently editable\n * for an approver.\n */\n descendantsReadOnly: boolean\n value: unknown | undefined\n formElementValidation: FormElementValidation | undefined\n displayValidationMessage: boolean\n formElementConditionallyShown: FormElementConditionallyShown | undefined\n id: string\n isEven: boolean | undefined\n onChange: NestedFormElementValueChangeHandler\n onLookup: FormElementLookupHandler\n onUpdateFormElements: UpdateFormElementsHandler\n sectionState: SectionState\n}\n\nfunction OneBlinkFormElements<T extends FormTypes._NestedElementsElement>({\n formId,\n elements,\n isEven,\n idPrefix,\n displayValidationMessages,\n formElementsValidation,\n formElementsConditionallyShown,\n onChange,\n onLookup,\n onUpdateFormElements,\n model,\n parentElement,\n sectionState,\n readOnly,\n readOnlyOverride,\n}: Props<T>) {\n const audience = useFormAudience()\n const formIsReadOnly = useFormIsReadOnly()\n return (\n <FormSubmissionModelContextProvider\n elements={parentElement.elements}\n model={model}\n formElementsConditionallyShown={formElementsConditionallyShown}\n >\n {elements.map((element) => {\n if (element.type === 'section') {\n if (formElementsConditionallyShown?.[element.id]?.isHidden) {\n return null\n }\n\n const ariaDescribedBy =\n element.hintPosition === 'BELOW_LABEL' && !!element.hint\n ? `${idPrefix}${element.id}-hint`\n : undefined\n\n const sectionHeaderId = `ob-section-header-${element.id}`\n\n return (\n <div\n key={element.id}\n className={clsx(\n 'ob-element cypress-element-container',\n element.customCssClasses,\n {\n 'is-hidden': isElementHiddenForAudience(element, audience),\n },\n )}\n aria-labelledby={sectionHeaderId}\n aria-describedby={ariaDescribedBy}\n role=\"region\"\n >\n <FormElementSection\n childrenReadOnly={formIsReadOnly || !!readOnly}\n formId={formId}\n element={element}\n displayValidationMessages={displayValidationMessages}\n idPrefix={idPrefix}\n formElementsConditionallyShown={formElementsConditionallyShown}\n formElementsValidation={formElementsValidation}\n onChange={onChange}\n onLookup={onLookup}\n onUpdateFormElements={onUpdateFormElements}\n model={model}\n parentElement={parentElement}\n sectionHeaderId={sectionHeaderId}\n sectionState={sectionState}\n />\n </div>\n )\n }\n\n if (\n element.type === 'page' ||\n formElementsConditionallyShown?.[element.name]?.isHidden\n ) {\n return null\n }\n\n return (\n <FormElementSwitchContainer\n key={element.id}\n formId={formId}\n element={element}\n value={model[element.name]}\n displayValidationMessage={displayValidationMessages}\n isEven={isEven}\n id={`${idPrefix}${element.name}`}\n formElementConditionallyShown={\n formElementsConditionallyShown?.[element.name]\n }\n formElementValidation={formElementsValidation?.[element.name]}\n onChange={onChange}\n onLookup={onLookup}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n parentReadOnly={readOnly}\n readOnlyOverride={readOnlyOverride}\n />\n )\n })}\n </FormSubmissionModelContextProvider>\n )\n}\n\nexport default React.memo(OneBlinkFormElements)\n\nfunction FormElementSwitchContainer(\n props: Omit<\n FormElementSwitchProps,\n 'isDirty' | 'setIsDirty' | 'readOnly' | 'descendantsReadOnly'\n > & {\n /**\n * Lock inherited from a parent container (the parent’s\n * `descendantsReadOnly` / `childrenReadOnly`). Combined with form-level\n * read-only and this element’s definition `readOnly` to decide whether\n * descendants are locked. Does not include the parent’s audience lock. An\n * approver-editable child ignores this inherited lock.\n */\n parentReadOnly?: boolean\n /**\n * When set, this value is used as this element’s `readOnly` instead of\n * inherit-or-audience. See `readOnlyOverride` on `OneBlinkFormElements`.\n */\n readOnlyOverride?: boolean\n },\n) {\n const { element, formElementValidation, displayValidationMessage } = props\n const audience = useFormAudience()\n const formIsReadOnly = useFormIsReadOnly()\n const descendantsReadOnly = React.useMemo(() => {\n if (formIsReadOnly) {\n return true\n }\n\n if (props.parentReadOnly) {\n return true\n }\n\n return 'readOnly' in element && element.readOnly === true\n }, [element, formIsReadOnly, props.parentReadOnly])\n\n const readOnly = React.useMemo(() => {\n if (formIsReadOnly) {\n return true\n }\n\n if (props.readOnlyOverride !== undefined) {\n return props.readOnlyOverride\n }\n\n if (audience === 'APPROVER' && isApproverEditable(element)) {\n return false\n }\n\n if (descendantsReadOnly) {\n return true\n }\n\n return resolveFormElementReadOnly(element, audience)\n }, [\n audience,\n descendantsReadOnly,\n element,\n formIsReadOnly,\n props.readOnlyOverride,\n ])\n\n const [isDirty, setIsDirty] = useBooleanState(false)\n const elementDOMId = React.useMemo(\n () => new ElementDOMId(props.id),\n [props.id],\n )\n const getValidationClass = () => {\n if (!('elements' in element)) {\n if (!formElementValidation) {\n return 'ob-element__valid'\n }\n if (isDirty || displayValidationMessage) {\n return 'ob-element__invalid'\n }\n }\n }\n const validationClassName = getValidationClass()\n\n if (element.type === 'page' || element.type === 'section') {\n return null\n }\n\n // A captcha proves a human is making a new submission, so it is omitted\n // whenever this element cannot take new input: an approver edit (not a new\n // submission), a read-only form, or a `readOnly` ancestor. The last case was\n // previously handled by stripping captchas from the definition in\n // `recursivelySetReadOnly`. `useFormValidation` drops the same captchas, so\n // an omitted one can never block submission with an unreachable error.\n if (element.type === 'captcha' && (audience === 'APPROVER' || readOnly)) {\n return null\n }\n\n return (\n <div\n id={elementDOMId.elementContainerDOMId}\n data-element-id={element.id}\n className={clsx(\n 'ob-element cypress-element-container',\n element.customCssClasses,\n validationClassName,\n {\n 'is-hidden': isElementHiddenForAudience(element, audience),\n },\n )}\n data-cypress-element-name={element.name}\n data-ob-name={element.name}\n >\n <FormElementSwitch\n {...props}\n readOnly={readOnly}\n descendantsReadOnly={descendantsReadOnly}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n />\n </div>\n )\n}\n\nconst FormElementSwitch = React.memo(function OneBlinkFormElement({\n formId,\n element,\n readOnly,\n descendantsReadOnly,\n value,\n displayValidationMessage,\n formElementValidation,\n formElementConditionallyShown,\n isEven,\n id,\n onChange,\n onLookup,\n onUpdateFormElements,\n isDirty,\n setIsDirty,\n sectionState,\n}: FormElementSwitchProps & IsDirtyProps) {\n const dirtyProps = React.useMemo(\n () => ({ isDirty, setIsDirty }),\n [isDirty, setIsDirty],\n )\n const conditionallyShownOptionsElement =\n formElementConditionallyShown?.type === 'formElement'\n ? formElementConditionallyShown\n : undefined\n const validationMessage =\n typeof formElementValidation === 'string'\n ? formElementValidation\n : undefined\n const autocompleteAttributes =\n 'autocompleteAttributes' in element\n ? element.autocompleteAttributes?.join(' ')\n : undefined\n switch (element.type) {\n case 'heading': {\n return <FormElementHeading element={element} />\n }\n case 'html': {\n return <FormElementHTML element={element} />\n }\n case 'date': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementDate\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementDate\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'email': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementEmail\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementEmail\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'text': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementText\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementText\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'abn': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementABN\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as MiscTypes.ABNRecord | undefined}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementABN\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'bsb': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementBSB\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBSB\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'barcodeScanner': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementBarcodeScanner\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBarcodeScanner\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'textarea': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementTextarea\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTextarea\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'number': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementNumber\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementNumber\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'telephone': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementTelephone\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTelephone\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'autocomplete': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementAutocomplete\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementAutocomplete\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'select': {\n return (\n <LookupNotification\n autoLookupValue={!element.multi ? value : undefined}\n element={element}\n onLookup={onLookup}\n >\n <FormElementSelect\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSelect\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'radio': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementRadio\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementRadio\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'draw': {\n return (\n <FormElementSignature\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as FormElementBinaryStorageValue}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSignature\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'calculation': {\n return (\n <FormElementCalculation\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCalculation\n >['onChange']\n }\n value={value}\n />\n )\n }\n case 'repeatableSet': {\n return (\n <FormElementRepeatableSet\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n isEven={!isEven}\n element={element}\n value={\n value as\n | Array<SubmissionTypes.S3SubmissionData['submission']>\n | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementRepeatableSet\n >['onChange']\n }\n onLookup={onLookup}\n formElementConditionallyShown={formElementConditionallyShown}\n formElementValidation={formElementValidation}\n displayValidationMessage={displayValidationMessage}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n {...dirtyProps}\n />\n )\n }\n case 'image': {\n return <FormElementImage element={element} />\n }\n case 'datetime': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementDateTime\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementDateTime\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'time': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementTime\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTime\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'checkboxes': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n >\n <FormElementCheckBoxes\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCheckBoxes\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'files': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n autoLookupValue={value}\n stringifyAutoLookupValue={\n stringifyAttachments as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n >\n <FormElementFiles\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as attachmentsService.Attachment[] | undefined}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementFiles\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'infoPage':\n case 'form': {\n return (\n <FormElementForm\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<typeof FormElementForm>['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'camera': {\n return (\n <FormElementCamera\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as FormElementBinaryStorageValue}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCamera\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'summary': {\n return (\n <FormElementSummary\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSummary\n >['onChange']\n }\n value={value}\n />\n )\n }\n case 'captcha': {\n return (\n <FormElementCaptcha\n value={value as string | undefined}\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCaptcha\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'location': {\n return (\n <LookupNotification\n autoLookupValue={value}\n stringifyAutoLookupValue={\n stringifyLocation as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n element={element}\n onLookup={onLookup}\n >\n <ReverseGeocode\n value={value}\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof ReverseGeocode\n >['onChange']\n }\n >\n <FormElementLocation\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementLocation\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </ReverseGeocode>\n </LookupNotification>\n )\n }\n case 'geoscapeAddress': {\n const v = value as GeoscapeTypes.GeoscapeAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementGeoscapeAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementGeoscapeAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'compliance': {\n return (\n <LookupNotification\n autoLookupValue={value}\n stringifyAutoLookupValue={stringifyComplianceValue}\n element={element}\n onLookup={onLookup}\n >\n <FormElementCompliance\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCompliance\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n isEven={isEven}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'freshdeskDependentField': {\n return (\n <FormElementFreshdeskDependentField\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementFreshdeskDependentField\n >['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'pointCadastralParcel': {\n const v = value as PointTypes.PointCadastralParcelResponse | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointCadastralParcel\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointCadastralParcel\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'pointAddress': {\n const v = value as PointTypes.PointAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'pointAddressV3': {\n const v = value as\n | PointTypes.PointAddressV3GetAddressDetailsResponse\n | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointAddressV3\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointAddressV3\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'googleAddress': {\n const v = value as GoogleTypes.GoogleMapsAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementGoogleAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementGoogleAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'boolean': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementBoolean\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBoolean\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'civicaStreetName': {\n const v = value as CivicaTypes.CivicaStreetName | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementCivicaStreetName\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCivicaStreetName\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'civicaNameRecord': {\n return (\n <FormElementCivicaNameRecord\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCivicaNameRecord\n >['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'apiNSWLiquorLicence': {\n const v = value as APINSWTypes.LiquorLicenceDetails | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementAPINSWLiquorLicence\n readOnly={readOnly}\n formId={formId}\n id={id}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementAPINSWLiquorLicence\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'arcGISWebMap': {\n const v = value as ArcGISWebMapElementValue | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n stringifyAutoLookupValue={\n stringifyArcgisInput as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n >\n <FormElementArcGISWebMap\n readOnly={readOnly}\n id={id}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementArcGISWebMap\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'lookupButton': {\n return (\n <FormElementLookupButton\n readOnly={readOnly}\n id={id}\n element={element}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementLookupButton\n >['onChange']\n }\n onLookup={onLookup}\n {...dirtyProps}\n />\n )\n }\n case 'section':\n case 'page': {\n return null\n }\n default: {\n const never: never = element\n console.warn('Invalid element', never)\n return null\n }\n }\n})\n"]}
|
|
1
|
+
{"version":3,"file":"OneBlinkFormElements.js","sourceRoot":"","sources":["../../../src/components/renderer/OneBlinkFormElements.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\nimport LookupNotification from './LookupNotification'\nimport ReverseGeocode from './ReverseGeocode'\n\nimport FormElementBarcodeScanner from '../../form-elements/FormElementBarcodeScanner'\nimport FormElementEmail from '../../form-elements/FormElementEmail'\nimport FormElementABN from '../../form-elements/FormElementABN'\nimport FormElementBSB from '../../form-elements/FormElementBSB'\nimport FormElementText from '../../form-elements/FormElementText'\nimport FormElementTextarea from '../../form-elements/FormElementTextarea'\nimport FormElementNumber from '../../form-elements/FormElementNumber'\nimport FormElementHeading from '../../form-elements/FormElementHeading'\nimport FormElementHTML from '../../form-elements/FormElementHTML'\nimport FormElementTelephone from '../../form-elements/FormElementTelephone'\nimport FormElementSelect from '../../form-elements/FormElementSelect'\nimport FormElementDate from '../../form-elements/FormElementDate'\nimport FormElementImage from '../../form-elements/FormElementImage'\nimport FormElementDateTime from '../../form-elements/FormElementDateTime'\nimport FormElementTime from '../../form-elements/FormElementTime'\nimport FormElementCalculation from '../../form-elements/FormElementCalculation'\nimport FormElementRadio from '../../form-elements/FormElementRadio'\nimport FormElementAutocomplete from '../../form-elements/FormElementAutocomplete'\nimport FormElementRepeatableSet from '../../form-elements/FormElementRepeatableSet'\nimport FormElementSignature from '../../form-elements/FormElementSignature'\nimport FormElementCheckBoxes from '../../form-elements/FormElementCheckBoxes'\nimport FormElementFiles, {\n stringifyAttachments,\n} from '../../form-elements/FormElementFiles'\nimport FormElementForm from '../../form-elements/FormElementForm'\nimport FormElementSection from '../../form-elements/FormElementSection'\nimport FormElementCamera from '../../form-elements/FormElementCamera'\nimport FormElementSummary from '../../form-elements/FormElementSummary'\nimport FormElementCaptcha from '../../form-elements/FormElementCaptcha'\nimport FormElementLocation, {\n stringifyLocation,\n} from '../../form-elements/FormElementLocation'\nimport FormElementGeoscapeAddress from '../../form-elements/FormElementGeoscapeAddress'\nimport FormElementCompliance, {\n stringifyComplianceValue,\n} from '../../form-elements/FormElementCompliance'\nimport FormElementPointAddress from '../../form-elements/FormElementPointAddress'\nimport FormElementGoogleAddress from '../../form-elements/FormElementGoogleAddress'\nimport FormElementBoolean from '../../form-elements/FormElementBoolean'\nimport FormElementCivicaStreetName from '../../form-elements/FormElementCivicaStreetName'\nimport FormElementCivicaNameRecord from '../../form-elements/FormElementCivicaNameRecord'\nimport FormElementFreshdeskDependentField from '../../form-elements/FormElementFreshdeskDependentField'\nimport FormElementArcGISWebMap, {\n stringifyArcgisInput,\n} from '../../form-elements/FormElementArcGISWebMap'\n\nimport {\n APINSWTypes,\n CivicaTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\n\nimport { FormSubmissionModelContextProvider } from '../../hooks/useFormSubmissionModelContext'\nimport useBooleanState from '../../hooks/useBooleanState'\nimport useFormAudience from '../../hooks/useFormAudience'\nimport useFormIsReadOnly from '../../hooks/useFormIsReadOnly'\nimport useIsFormElementReadOnly from '../../hooks/useIsFormElementReadOnly'\nimport isElementHiddenForAudience from '../../services/isElementHiddenForAudience'\nimport { FormElementBinaryStorageValue } from '../../types/attachments'\nimport {\n FormElementConditionallyShown,\n FormElementLookupHandler,\n FormElementsConditionallyShown,\n FormElementsValidation,\n FormElementValidation,\n NestedFormElementValueChangeHandler,\n IsDirtyProps,\n UpdateFormElementsHandler,\n SectionState,\n} from '../../types/form'\nimport { attachmentsService } from '../../apps'\nimport FormElementAPINSWLiquorLicence from '../../form-elements/FormElementAPINSWLiquorLicence'\nimport ElementDOMId from '../../utils/elementDOMIds'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport FormElementPointCadastralParcel from '../../form-elements/FormElementPointCadastralParcel'\nimport FormElementLookupButton from '../../form-elements/FormElementLookupButton'\nimport FormElementPointAddressV3 from '../../form-elements/FormElementPointAddressV3'\n\nexport type Props<T extends FormTypes._NestedElementsElement> = {\n formId: number\n elements: FormTypes.FormElement[]\n formElementsConditionallyShown: FormElementsConditionallyShown | undefined\n formElementsValidation: FormElementsValidation | undefined\n displayValidationMessages: boolean\n onChange: NestedFormElementValueChangeHandler\n onLookup: FormElementLookupHandler\n onUpdateFormElements: UpdateFormElementsHandler\n // Props passed by repeatable sets\n isEven?: boolean\n idPrefix: string\n model: SubmissionTypes.S3SubmissionData['submission']\n parentElement: T\n sectionState?: SectionState\n /**\n * Inherited lock for nested fields (`parentReadOnly`). True when the whole\n * form is read-only, an ancestor is read-only, or a parent element’s\n * definition has `readOnly: true`. A child included in\n * `editableFormElementIds` ignores this inherited lock.\n */\n readOnly?: boolean\n /**\n * When set, forces each child’s `readOnly` instead of the usual calculation.\n * Used for synthetic nested fields (Civica name records, Freshdesk dependent\n * fields) that should follow their parent.\n */\n readOnlyOverride?: boolean\n}\n\ninterface FormElementSwitchProps extends IsDirtyProps {\n formId: number\n element: FormTypes.FormElement\n /**\n * Whether this element’s own controls are locked. Includes form-level\n * read-only, inherited parent lock, and this element’s definition `readOnly:\n * true`. Elements included in `editableFormElementIds` stay editable,\n * including when `readOnly` is set or a parent is read-only.\n */\n readOnly: boolean\n /**\n * Whether nested fields should inherit a lock. True for form-level read-only,\n * an inherited parent lock, or this element’s definition `readOnly: true`. A\n * descendant included in `editableFormElementIds` can still be independently\n * editable.\n */\n descendantsReadOnly: boolean\n value: unknown | undefined\n formElementValidation: FormElementValidation | undefined\n displayValidationMessage: boolean\n formElementConditionallyShown: FormElementConditionallyShown | undefined\n id: string\n isEven: boolean | undefined\n onChange: NestedFormElementValueChangeHandler\n onLookup: FormElementLookupHandler\n onUpdateFormElements: UpdateFormElementsHandler\n sectionState: SectionState\n}\n\nfunction OneBlinkFormElements<T extends FormTypes._NestedElementsElement>({\n formId,\n elements,\n isEven,\n idPrefix,\n displayValidationMessages,\n formElementsValidation,\n formElementsConditionallyShown,\n onChange,\n onLookup,\n onUpdateFormElements,\n model,\n parentElement,\n sectionState,\n readOnly,\n readOnlyOverride,\n}: Props<T>) {\n const audience = useFormAudience()\n const isFormReadOnly = useFormIsReadOnly()\n return (\n <FormSubmissionModelContextProvider\n elements={parentElement.elements}\n model={model}\n formElementsConditionallyShown={formElementsConditionallyShown}\n >\n {elements.map((element) => {\n if (element.type === 'section') {\n if (formElementsConditionallyShown?.[element.id]?.isHidden) {\n return null\n }\n\n const ariaDescribedBy =\n element.hintPosition === 'BELOW_LABEL' && !!element.hint\n ? `${idPrefix}${element.id}-hint`\n : undefined\n\n const sectionHeaderId = `ob-section-header-${element.id}`\n\n return (\n <div\n key={element.id}\n className={clsx(\n 'ob-element cypress-element-container',\n element.customCssClasses,\n {\n 'is-hidden': isElementHiddenForAudience(element, audience),\n },\n )}\n aria-labelledby={sectionHeaderId}\n aria-describedby={ariaDescribedBy}\n role=\"region\"\n >\n <FormElementSection\n childrenReadOnly={isFormReadOnly || !!readOnly}\n formId={formId}\n element={element}\n displayValidationMessages={displayValidationMessages}\n idPrefix={idPrefix}\n formElementsConditionallyShown={formElementsConditionallyShown}\n formElementsValidation={formElementsValidation}\n onChange={onChange}\n onLookup={onLookup}\n onUpdateFormElements={onUpdateFormElements}\n model={model}\n parentElement={parentElement}\n sectionHeaderId={sectionHeaderId}\n sectionState={sectionState}\n />\n </div>\n )\n }\n\n if (\n element.type === 'page' ||\n formElementsConditionallyShown?.[element.name]?.isHidden\n ) {\n return null\n }\n\n return (\n <FormElementSwitchContainer\n key={element.id}\n formId={formId}\n element={element}\n value={model[element.name]}\n displayValidationMessage={displayValidationMessages}\n isEven={isEven}\n id={`${idPrefix}${element.name}`}\n formElementConditionallyShown={\n formElementsConditionallyShown?.[element.name]\n }\n formElementValidation={formElementsValidation?.[element.name]}\n onChange={onChange}\n onLookup={onLookup}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n parentReadOnly={readOnly}\n readOnlyOverride={readOnlyOverride}\n />\n )\n })}\n </FormSubmissionModelContextProvider>\n )\n}\n\nexport default React.memo(OneBlinkFormElements)\n\nfunction FormElementSwitchContainer(\n props: Omit<\n FormElementSwitchProps,\n 'isDirty' | 'setIsDirty' | 'readOnly' | 'descendantsReadOnly'\n > & {\n /**\n * Lock inherited from a parent container (the parent’s\n * `descendantsReadOnly` / `childrenReadOnly`). Combined with form-level\n * read-only and this element’s definition `readOnly` to decide whether\n * descendants are locked. A child included in `editableFormElementIds`\n * ignores this inherited lock.\n */\n parentReadOnly?: boolean\n /**\n * When set, this value is used as this element’s `readOnly` instead of the\n * usual calculation. See `readOnlyOverride` on `OneBlinkFormElements`.\n */\n readOnlyOverride?: boolean\n },\n) {\n const { element, formElementValidation, displayValidationMessage } = props\n const audience = useFormAudience()\n const isFormReadOnly = useFormIsReadOnly()\n const isFormElementReadOnly = useIsFormElementReadOnly(\n element,\n props.parentReadOnly,\n )\n const descendantsReadOnly =\n isFormReadOnly ||\n props.parentReadOnly === true ||\n ('readOnly' in element && element.readOnly === true)\n const readOnly = props.readOnlyOverride ?? isFormElementReadOnly\n\n const [isDirty, setIsDirty] = useBooleanState(false)\n const elementDOMId = React.useMemo(\n () => new ElementDOMId(props.id),\n [props.id],\n )\n const getValidationClass = () => {\n if (!('elements' in element)) {\n if (!formElementValidation) {\n return 'ob-element__valid'\n }\n if (isDirty || displayValidationMessage) {\n return 'ob-element__invalid'\n }\n }\n }\n const validationClassName = getValidationClass()\n\n if (element.type === 'page' || element.type === 'section') {\n return null\n }\n\n // A captcha proves a human is making a new submission, so it is omitted\n // whenever this element cannot take new input: an approver edit (not a new\n // submission), a read-only form, or a `readOnly` ancestor. The last case was\n // previously handled by stripping captchas from the definition in\n // `recursivelySetReadOnly`. `useFormValidation` drops the same captchas, so\n // an omitted one can never block submission with an unreachable error.\n if (element.type === 'captcha' && (audience === 'APPROVER' || readOnly)) {\n return null\n }\n\n return (\n <div\n id={elementDOMId.elementContainerDOMId}\n data-element-id={element.id}\n className={clsx(\n 'ob-element cypress-element-container',\n element.customCssClasses,\n validationClassName,\n {\n 'is-hidden': isElementHiddenForAudience(element, audience),\n },\n )}\n data-cypress-element-name={element.name}\n data-ob-name={element.name}\n >\n <FormElementSwitch\n {...props}\n readOnly={readOnly}\n descendantsReadOnly={descendantsReadOnly}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n />\n </div>\n )\n}\n\nconst FormElementSwitch = React.memo(function OneBlinkFormElement({\n formId,\n element,\n readOnly,\n descendantsReadOnly,\n value,\n displayValidationMessage,\n formElementValidation,\n formElementConditionallyShown,\n isEven,\n id,\n onChange,\n onLookup,\n onUpdateFormElements,\n isDirty,\n setIsDirty,\n sectionState,\n}: FormElementSwitchProps & IsDirtyProps) {\n const dirtyProps = React.useMemo(\n () => ({ isDirty, setIsDirty }),\n [isDirty, setIsDirty],\n )\n const conditionallyShownOptionsElement =\n formElementConditionallyShown?.type === 'formElement'\n ? formElementConditionallyShown\n : undefined\n const validationMessage =\n typeof formElementValidation === 'string'\n ? formElementValidation\n : undefined\n const autocompleteAttributes =\n 'autocompleteAttributes' in element\n ? element.autocompleteAttributes?.join(' ')\n : undefined\n switch (element.type) {\n case 'heading': {\n return <FormElementHeading element={element} />\n }\n case 'html': {\n return <FormElementHTML element={element} />\n }\n case 'date': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementDate\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementDate\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'email': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementEmail\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementEmail\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'text': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementText\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementText\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'abn': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementABN\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as MiscTypes.ABNRecord | undefined}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementABN\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'bsb': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementBSB\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBSB\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'barcodeScanner': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementBarcodeScanner\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBarcodeScanner\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'textarea': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementTextarea\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTextarea\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'number': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementNumber\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementNumber\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'telephone': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementTelephone\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTelephone\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'autocomplete': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementAutocomplete\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementAutocomplete\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'select': {\n return (\n <LookupNotification\n autoLookupValue={!element.multi ? value : undefined}\n element={element}\n onLookup={onLookup}\n >\n <FormElementSelect\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSelect\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'radio': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementRadio\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementRadio\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'draw': {\n return (\n <FormElementSignature\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as FormElementBinaryStorageValue}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSignature\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'calculation': {\n return (\n <FormElementCalculation\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCalculation\n >['onChange']\n }\n value={value}\n />\n )\n }\n case 'repeatableSet': {\n return (\n <FormElementRepeatableSet\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n isEven={!isEven}\n element={element}\n value={\n value as\n | Array<SubmissionTypes.S3SubmissionData['submission']>\n | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementRepeatableSet\n >['onChange']\n }\n onLookup={onLookup}\n formElementConditionallyShown={formElementConditionallyShown}\n formElementValidation={formElementValidation}\n displayValidationMessage={displayValidationMessage}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n {...dirtyProps}\n />\n )\n }\n case 'image': {\n return <FormElementImage element={element} />\n }\n case 'datetime': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementDateTime\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementDateTime\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'time': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementTime\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementTime\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'checkboxes': {\n return (\n <LookupNotification element={element} onLookup={onLookup}>\n <FormElementCheckBoxes\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCheckBoxes\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'files': {\n return (\n <LookupNotification\n element={element}\n onLookup={onLookup}\n autoLookupValue={value}\n stringifyAutoLookupValue={\n stringifyAttachments as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n >\n <FormElementFiles\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as attachmentsService.Attachment[] | undefined}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementFiles\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'infoPage':\n case 'form': {\n return (\n <FormElementForm\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<typeof FormElementForm>['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'camera': {\n return (\n <FormElementCamera\n readOnly={readOnly}\n id={id}\n element={element}\n value={value as FormElementBinaryStorageValue}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCamera\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'summary': {\n return (\n <FormElementSummary\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementSummary\n >['onChange']\n }\n value={value}\n />\n )\n }\n case 'captcha': {\n return (\n <FormElementCaptcha\n value={value as string | undefined}\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCaptcha\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n )\n }\n case 'location': {\n return (\n <LookupNotification\n autoLookupValue={value}\n stringifyAutoLookupValue={\n stringifyLocation as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n element={element}\n onLookup={onLookup}\n >\n <ReverseGeocode\n value={value}\n element={element}\n onChange={\n onChange as React.ComponentProps<\n typeof ReverseGeocode\n >['onChange']\n }\n >\n <FormElementLocation\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementLocation\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </ReverseGeocode>\n </LookupNotification>\n )\n }\n case 'geoscapeAddress': {\n const v = value as GeoscapeTypes.GeoscapeAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementGeoscapeAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementGeoscapeAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'compliance': {\n return (\n <LookupNotification\n autoLookupValue={value}\n stringifyAutoLookupValue={stringifyComplianceValue}\n element={element}\n onLookup={onLookup}\n >\n <FormElementCompliance\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCompliance\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n isEven={isEven}\n onUpdateFormElements={onUpdateFormElements}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'freshdeskDependentField': {\n return (\n <FormElementFreshdeskDependentField\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementFreshdeskDependentField\n >['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'pointCadastralParcel': {\n const v = value as PointTypes.PointCadastralParcelResponse | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointCadastralParcel\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointCadastralParcel\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'pointAddress': {\n const v = value as PointTypes.PointAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'pointAddressV3': {\n const v = value as\n | PointTypes.PointAddressV3GetAddressDetailsResponse\n | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementPointAddressV3\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementPointAddressV3\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'googleAddress': {\n const v = value as GoogleTypes.GoogleMapsAddress | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementGoogleAddress\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementGoogleAddress\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'boolean': {\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementBoolean\n readOnly={readOnly}\n id={id}\n element={element}\n value={value}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementBoolean\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'civicaStreetName': {\n const v = value as CivicaTypes.CivicaStreetName | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementCivicaStreetName\n readOnly={readOnly}\n id={id}\n formId={formId}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCivicaStreetName\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'civicaNameRecord': {\n return (\n <FormElementCivicaNameRecord\n readOnly={readOnly}\n childrenReadOnly={descendantsReadOnly}\n formId={formId}\n id={id}\n element={element}\n value={\n value as SubmissionTypes.S3SubmissionData['submission'] | undefined\n }\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementCivicaNameRecord\n >['onChange']\n }\n onLookup={onLookup}\n displayValidationMessages={displayValidationMessage}\n formElementValidation={formElementValidation}\n formElementConditionallyShown={formElementConditionallyShown}\n onUpdateFormElements={onUpdateFormElements}\n sectionState={sectionState}\n />\n )\n }\n case 'apiNSWLiquorLicence': {\n const v = value as APINSWTypes.LiquorLicenceDetails | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n >\n <FormElementAPINSWLiquorLicence\n readOnly={readOnly}\n formId={formId}\n id={id}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementAPINSWLiquorLicence\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n autocompleteAttributes={autocompleteAttributes}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'arcGISWebMap': {\n const v = value as ArcGISWebMapElementValue | undefined\n return (\n <LookupNotification\n autoLookupValue={value}\n element={element}\n onLookup={onLookup}\n stringifyAutoLookupValue={\n stringifyArcgisInput as React.ComponentProps<\n typeof LookupNotification\n >['stringifyAutoLookupValue']\n }\n >\n <FormElementArcGISWebMap\n readOnly={readOnly}\n id={id}\n element={element}\n value={v}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementArcGISWebMap\n >['onChange']\n }\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n {...dirtyProps}\n />\n </LookupNotification>\n )\n }\n case 'lookupButton': {\n return (\n <FormElementLookupButton\n readOnly={readOnly}\n id={id}\n element={element}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChange={\n onChange as React.ComponentProps<\n typeof FormElementLookupButton\n >['onChange']\n }\n onLookup={onLookup}\n {...dirtyProps}\n />\n )\n }\n case 'section':\n case 'page': {\n return null\n }\n default: {\n const never: never = element\n console.warn('Invalid element', never)\n return null\n }\n }\n})\n"]}
|
|
@@ -4,8 +4,13 @@ import clsx from 'clsx';
|
|
|
4
4
|
import OneBlinkFormElements from './OneBlinkFormElements';
|
|
5
5
|
import useFormDefinition from '../../hooks/useFormDefinition';
|
|
6
6
|
import { IsPageVisibleProvider } from '../../hooks/useIsPageVisible';
|
|
7
|
+
import { useMarkFormDirty } from '../../hooks/useFormIsDirty';
|
|
7
8
|
function PageFormElements({ formId, isActive, pageElement, model, displayValidationMessages, formElementsConditionallyShown, formElementsValidation, sectionState, onChange, setFormSubmission, }) {
|
|
8
|
-
const
|
|
9
|
+
const markFormDirty = useMarkFormDirty();
|
|
10
|
+
const handleLookup = React.useCallback((mergeLookupResults, options) => {
|
|
11
|
+
if (!(options === null || options === void 0 ? void 0 : options.isDerivedChange)) {
|
|
12
|
+
markFormDirty();
|
|
13
|
+
}
|
|
9
14
|
setFormSubmission((currentFormSubmission) => {
|
|
10
15
|
if (pageElement.id === formId.toString()) {
|
|
11
16
|
const { submission, elements, executedLookups } = mergeLookupResults({
|
|
@@ -54,8 +59,8 @@ function PageFormElements({ formId, isActive, pageElement, model, displayValidat
|
|
|
54
59
|
elements: [],
|
|
55
60
|
},
|
|
56
61
|
});
|
|
57
|
-
});
|
|
58
|
-
}, [formId, pageElement.id, setFormSubmission]);
|
|
62
|
+
}, options);
|
|
63
|
+
}, [formId, markFormDirty, pageElement.id, setFormSubmission]);
|
|
59
64
|
const form = useFormDefinition();
|
|
60
65
|
const handleUpdateFormElements = React.useCallback((updateFormElements) => {
|
|
61
66
|
setFormSubmission((currentFormSubmission) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageFormElements.js","sourceRoot":"","sources":["../../../src/components/renderer/PageFormElements.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAU7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"PageFormElements.js","sourceRoot":"","sources":["../../../src/components/renderer/PageFormElements.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport OneBlinkFormElements from './OneBlinkFormElements'\nimport useFormDefinition from '../../hooks/useFormDefinition'\nimport {\n FormElementLookupHandler,\n FormElementsConditionallyShown,\n FormElementsValidation,\n NestedFormElementValueChangeHandler,\n SetFormSubmission,\n UpdateFormElementsHandler,\n SectionState,\n} from '../../types/form'\nimport { IsPageVisibleProvider } from '../../hooks/useIsPageVisible'\nimport { useMarkFormDirty } from '../../hooks/useFormIsDirty'\n\nexport type Props = {\n formId: number\n isActive: boolean\n pageElement: FormTypes.PageElement\n displayValidationMessages: boolean\n model: SubmissionTypes.S3SubmissionData['submission']\n formElementsConditionallyShown: FormElementsConditionallyShown | undefined\n formElementsValidation: FormElementsValidation | undefined\n sectionState?: SectionState\n onChange: NestedFormElementValueChangeHandler\n setFormSubmission: SetFormSubmission\n}\n\nfunction PageFormElements({\n formId,\n isActive,\n pageElement,\n model,\n displayValidationMessages,\n formElementsConditionallyShown,\n formElementsValidation,\n sectionState,\n onChange,\n setFormSubmission,\n}: Props) {\n const markFormDirty = useMarkFormDirty()\n const handleLookup = React.useCallback<FormElementLookupHandler>(\n (mergeLookupResults, options) => {\n if (!options?.isDerivedChange) {\n markFormDirty()\n }\n setFormSubmission((currentFormSubmission) => {\n if (pageElement.id === formId.toString()) {\n const { submission, elements, executedLookups } = mergeLookupResults({\n elements: currentFormSubmission.definition.elements,\n submission: currentFormSubmission.submission,\n lastElementUpdated: currentFormSubmission.lastElementUpdated,\n executedLookups: currentFormSubmission.executedLookups,\n sectionState: currentFormSubmission.sectionState,\n })\n\n return {\n submission,\n definition: {\n ...currentFormSubmission.definition,\n elements: elements,\n },\n lastElementUpdated: currentFormSubmission.lastElementUpdated,\n executedLookups,\n sectionState: currentFormSubmission.sectionState,\n }\n }\n\n return currentFormSubmission.definition.elements.reduce<\n typeof currentFormSubmission\n >(\n (memo: typeof currentFormSubmission, formElement) => {\n if (\n formElement.id === pageElement.id &&\n formElement.type === 'page'\n ) {\n const { submission, executedLookups, elements } =\n mergeLookupResults({\n elements: formElement.elements,\n submission: currentFormSubmission.submission,\n lastElementUpdated: currentFormSubmission.lastElementUpdated,\n executedLookups: currentFormSubmission.executedLookups,\n sectionState: currentFormSubmission.sectionState,\n })\n memo.submission = submission\n memo.executedLookups = executedLookups\n memo.definition.elements.push({\n ...formElement,\n elements,\n })\n } else {\n memo.definition.elements.push(formElement)\n }\n\n return memo\n },\n {\n ...currentFormSubmission,\n definition: {\n ...currentFormSubmission.definition,\n elements: [],\n },\n },\n )\n }, options)\n },\n [formId, markFormDirty, pageElement.id, setFormSubmission],\n )\n\n const form = useFormDefinition()\n\n const handleUpdateFormElements = React.useCallback<UpdateFormElementsHandler>(\n (updateFormElements) => {\n setFormSubmission((currentFormSubmission) => {\n const definition = {\n ...currentFormSubmission.definition,\n }\n\n if (pageElement.id === formId.toString()) {\n definition.elements = updateFormElements(\n currentFormSubmission.definition.elements,\n )\n } else {\n definition.elements = currentFormSubmission.definition.elements.map(\n (formElement) => {\n if (\n formElement.id === pageElement.id &&\n formElement.type === 'page'\n ) {\n return {\n ...formElement,\n elements: updateFormElements(formElement.elements),\n }\n } else {\n return formElement\n }\n },\n )\n }\n\n return {\n ...currentFormSubmission,\n definition,\n }\n })\n },\n [formId, pageElement.id, setFormSubmission],\n )\n\n return (\n <IsPageVisibleProvider isPageVisible={isActive}>\n <div>\n <div\n id={pageElement.id}\n key={pageElement.id}\n className={clsx('ob-page step-content is-active cypress-page', {\n 'is-invisible': !isActive,\n })}\n aria-label={pageElement.label}\n role=\"region\"\n tabIndex={-1}\n >\n <OneBlinkFormElements\n formId={formId}\n model={model}\n parentElement={form}\n formElementsConditionallyShown={formElementsConditionallyShown}\n formElementsValidation={formElementsValidation}\n displayValidationMessages={displayValidationMessages}\n elements={pageElement.elements}\n onChange={onChange}\n onLookup={handleLookup}\n onUpdateFormElements={handleUpdateFormElements}\n idPrefix=\"\"\n sectionState={sectionState}\n />\n </div>\n </div>\n </IsPageVisibleProvider>\n )\n}\n\nexport default React.memo(PageFormElements)\n"]}
|
|
@@ -5,9 +5,7 @@ import { formElementsService } from '@oneblink/sdk-core';
|
|
|
5
5
|
import { parseLocationValue } from '../../form-elements/FormElementLocation';
|
|
6
6
|
import useFormSubmissionModel from '../../hooks/useFormSubmissionModelContext';
|
|
7
7
|
import useFormDefinition from '../../hooks/useFormDefinition';
|
|
8
|
-
import
|
|
9
|
-
import useFormAudience from '../../hooks/useFormAudience';
|
|
10
|
-
import isElementReadOnlyForAudience from '../../services/isElementReadOnlyForAudience';
|
|
8
|
+
import useAreLookupsDisallowed from '../../hooks/useAreLookupsDisallowed';
|
|
11
9
|
const ReverseGeocodeContext = React.createContext({
|
|
12
10
|
isReverseGeocoding: false,
|
|
13
11
|
});
|
|
@@ -19,8 +17,7 @@ export default function ReverseGeocode({ value, element, onChange, children, })
|
|
|
19
17
|
});
|
|
20
18
|
const formDefinition = useFormDefinition();
|
|
21
19
|
const formSubmissionModel = useFormSubmissionModel();
|
|
22
|
-
const
|
|
23
|
-
const audience = useFormAudience();
|
|
20
|
+
const areLookupsDisallowed = useAreLookupsDisallowed(element);
|
|
24
21
|
const formattedAddressElement = React.useMemo(() => {
|
|
25
22
|
var _a;
|
|
26
23
|
if ((_a = element.reverseGeocoding) === null || _a === void 0 ? void 0 : _a.formattedAddressElementId) {
|
|
@@ -37,10 +34,7 @@ export default function ReverseGeocode({ value, element, onChange, children, })
|
|
|
37
34
|
// default location to populate its formatted-address field. An
|
|
38
35
|
// approver-locked location must not do so: opening a review should never
|
|
39
36
|
// replace the address saved with the original submission.
|
|
40
|
-
if (
|
|
41
|
-
isElementReadOnlyForAudience(element, audience) ||
|
|
42
|
-
!coords ||
|
|
43
|
-
!formattedAddressElement) {
|
|
37
|
+
if (areLookupsDisallowed || !coords || !formattedAddressElement) {
|
|
44
38
|
return;
|
|
45
39
|
}
|
|
46
40
|
const abortController = new AbortController();
|
|
@@ -59,6 +53,7 @@ export default function ReverseGeocode({ value, element, onChange, children, })
|
|
|
59
53
|
if ((_a = reverseGeocodeResult.addressDetails) === null || _a === void 0 ? void 0 : _a.formattedAddress) {
|
|
60
54
|
onChange(formattedAddressElement, {
|
|
61
55
|
value: (_b = reverseGeocodeResult.addressDetails) === null || _b === void 0 ? void 0 : _b.formattedAddress,
|
|
56
|
+
isDerivedChange: true,
|
|
62
57
|
});
|
|
63
58
|
}
|
|
64
59
|
break;
|
|
@@ -66,6 +61,7 @@ export default function ReverseGeocode({ value, element, onChange, children, })
|
|
|
66
61
|
case 'geoscapeAddress': {
|
|
67
62
|
onChange(formattedAddressElement, {
|
|
68
63
|
value: reverseGeocodeResult,
|
|
64
|
+
isDerivedChange: true,
|
|
69
65
|
});
|
|
70
66
|
break;
|
|
71
67
|
}
|
|
@@ -98,12 +94,11 @@ export default function ReverseGeocode({ value, element, onChange, children, })
|
|
|
98
94
|
effect();
|
|
99
95
|
return () => abortController.abort();
|
|
100
96
|
}, [
|
|
101
|
-
audience,
|
|
102
97
|
coords,
|
|
103
98
|
element,
|
|
104
99
|
formDefinition.id,
|
|
105
|
-
formIsReadOnly,
|
|
106
100
|
formattedAddressElement,
|
|
101
|
+
areLookupsDisallowed,
|
|
107
102
|
onChange,
|
|
108
103
|
]);
|
|
109
104
|
return (_jsx(ReverseGeocodeContext.Provider, { value: reverseGeocodingState, children: children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReverseGeocode.js","sourceRoot":"","sources":["../../../src/components/renderer/ReverseGeocode.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,sBAAsB,MAAM,2CAA2C,CAAA;AAC9E,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"ReverseGeocode.js","sourceRoot":"","sources":["../../../src/components/renderer/ReverseGeocode.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\n\nimport { FormTypes, GeoscapeTypes } from '@oneblink/types'\nimport { formService, OneBlinkAppsError } from '../../apps'\nimport { formElementsService } from '@oneblink/sdk-core'\n\nimport { parseLocationValue } from '../../form-elements/FormElementLocation'\nimport useFormSubmissionModel from '../../hooks/useFormSubmissionModelContext'\nimport useFormDefinition from '../../hooks/useFormDefinition'\nimport { FormElementValueChangeHandler } from '../../types/form'\nimport useAreLookupsDisallowed from '../../hooks/useAreLookupsDisallowed'\n\ntype ReverseGeocodeContextValue = {\n isReverseGeocoding: boolean\n reverseGeocodingErrorMsg?: string\n}\n\nconst ReverseGeocodeContext = React.createContext<ReverseGeocodeContextValue>({\n isReverseGeocoding: false,\n})\n\nexport default function ReverseGeocode({\n value,\n element,\n onChange,\n children,\n}: React.PropsWithChildren<{\n value: unknown\n element: FormTypes.LocationElement\n onChange: FormElementValueChangeHandler<\n GeoscapeTypes.GeoscapeAddress | string\n >\n}>) {\n const coords = React.useMemo(() => parseLocationValue(value), [value])\n const [reverseGeocodingState, setReverseGeocodingState] =\n React.useState<ReverseGeocodeContextValue>({\n isReverseGeocoding: false,\n })\n\n const formDefinition = useFormDefinition()\n const formSubmissionModel = useFormSubmissionModel()\n const areLookupsDisallowed = useAreLookupsDisallowed(element)\n\n const formattedAddressElement = React.useMemo(() => {\n if (element.reverseGeocoding?.formattedAddressElementId) {\n return formElementsService\n .flattenFormElements(formSubmissionModel.elements)\n .find(\n (el) => el.id === element.reverseGeocoding?.formattedAddressElementId,\n )\n }\n }, [\n element.reverseGeocoding?.formattedAddressElementId,\n formSubmissionModel.elements,\n ])\n\n React.useEffect(() => {\n // Definition-level `readOnly` still allows a submitter's prefill or\n // default location to populate its formatted-address field. An\n // approver-locked location must not do so: opening a review should never\n // replace the address saved with the original submission.\n if (areLookupsDisallowed || !coords || !formattedAddressElement) {\n return\n }\n\n const abortController = new AbortController()\n const effect = async () => {\n try {\n setReverseGeocodingState({ isReverseGeocoding: true })\n const { reverseGeocodeResult } =\n await formService.getGeoscapeReverseGeocoding({\n lat: coords.latitude,\n lng: coords.longitude,\n formId: formDefinition.id,\n abortSignal: abortController.signal,\n })\n switch (formattedAddressElement.type) {\n case 'text': {\n if (reverseGeocodeResult.addressDetails?.formattedAddress) {\n onChange(formattedAddressElement, {\n value: reverseGeocodeResult.addressDetails?.formattedAddress,\n isDerivedChange: true,\n })\n }\n break\n }\n case 'geoscapeAddress': {\n onChange(formattedAddressElement, {\n value: reverseGeocodeResult,\n isDerivedChange: true,\n })\n break\n }\n }\n setReverseGeocodingState({\n isReverseGeocoding: false,\n })\n } catch (e) {\n if (abortController.signal.aborted) {\n return\n }\n console.warn('Error attempting to reverse geocode location', e)\n let errorMsg = 'Could not find your address.'\n if (e instanceof OneBlinkAppsError) {\n if (e.httpStatusCode !== 404) {\n errorMsg = e.message\n } else if (e.isOffline) {\n errorMsg =\n 'It looks like you're offline. Please try again when connectivity is restored.'\n }\n }\n\n setReverseGeocodingState({\n isReverseGeocoding: false,\n reverseGeocodingErrorMsg: errorMsg,\n })\n }\n }\n\n effect()\n\n return () => abortController.abort()\n }, [\n coords,\n element,\n formDefinition.id,\n formattedAddressElement,\n areLookupsDisallowed,\n onChange,\n ])\n\n return (\n <ReverseGeocodeContext.Provider value={reverseGeocodingState}>\n {children}\n </ReverseGeocodeContext.Provider>\n )\n}\n\nexport function useReverseGeocodeContext() {\n const reverseGeocodeContext = React.useContext(ReverseGeocodeContext)\n if (!reverseGeocodeContext) {\n throw new TypeError(\n 'You have attempted to run the hook \"useReverseGeocodeContext()\" outside of the \"ReverseGeocodeContext\" context.',\n )\n }\n return reverseGeocodeContext\n}\n"]}
|
|
@@ -71,6 +71,7 @@ function FormElementCalculation({ element, onChange, value }) {
|
|
|
71
71
|
React.useEffect(() => {
|
|
72
72
|
onChange(element, {
|
|
73
73
|
value: calculatedValue,
|
|
74
|
+
isDerivedChange: true,
|
|
74
75
|
});
|
|
75
76
|
}, [element, onChange, calculatedValue]);
|
|
76
77
|
return (_jsx("div", { className: "cypress-calculation-element", children: _jsxs("div", { className: "ob-form__element ob-calculation", children: [_jsx(QuillHTML, { html: htmlValue, className: "cypress-calculation-result ob-calculation__content" }), hasError && (_jsx("div", { className: "notification cypress-calculation-is-invalid", role: "alert", children: _jsxs("div", { className: "columns is-vcentered", children: [_jsx("div", { className: "column is-narrow", children: _jsx(MaterialIcon, { className: "has-text-warning", children: "error" }) }), _jsx("div", { className: "column", children: _jsx("p", { children: "There is an error in the calculation for this element." }) })] }) }))] }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementCalculation.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCalculation.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormElementCalculation.js","sourceRoot":"","sources":["../../src/form-elements/FormElementCalculation.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport useFormSubmissionModel from '../hooks/useFormSubmissionModelContext'\nimport { FormTypes } from '@oneblink/types'\nimport { Sentry } from '../apps'\nimport { localisationService } from '../apps'\nimport { FormElementValueChangeHandler } from '../types/form'\nimport { calculationService } from '@oneblink/sdk-core'\nimport QuillHTML from '../components/QuillHTML'\nimport MaterialIcon from '../components/MaterialIcon'\nimport useFormDefinition from '../hooks/useFormDefinition'\n\ntype Props = {\n element: FormTypes.CalculationElement\n onChange: FormElementValueChangeHandler<number>\n value: unknown | undefined\n}\n\nfunction FormElementCalculation({ element, onChange, value }: Props) {\n const { formSubmissionModel } = useFormSubmissionModel()\n const form = useFormDefinition()\n\n const htmlValue = React.useMemo(() => {\n let htmlTemplate\n\n if (!isNaN(value as number)) {\n htmlTemplate = element.defaultValue\n } else {\n htmlTemplate = element.preCalculationDisplay\n }\n\n const numberValue = typeof value === 'number' ? value : 0\n return (htmlTemplate || '').replace(\n /{result}/gi,\n element.displayAsCurrency\n ? localisationService.formatCurrency(numberValue)\n : localisationService.formatNumber(numberValue),\n )\n }, [\n element.defaultValue,\n element.displayAsCurrency,\n element.preCalculationDisplay,\n value,\n ])\n\n const { calculatedValue, hasError } = React.useMemo(() => {\n try {\n const expressionResult = calculationService.evaluateExpression({\n expression: element.calculation,\n submission: formSubmissionModel,\n formElements: form.elements,\n parseDayOnlyDate: localisationService.parseDayOnlyDate,\n })\n\n switch (expressionResult.type) {\n case 'RESULT': {\n return {\n calculatedValue: expressionResult.value,\n hasError: false,\n }\n }\n case 'MISSING_VALUES': {\n // Show pre-calculation display and do not surface an error.\n return {\n calculatedValue: undefined,\n hasError: false,\n }\n }\n case 'INVALID_EXPRESSION': {\n return {\n calculatedValue: undefined,\n hasError: true,\n }\n }\n }\n } catch (e) {\n console.warn(\n 'Error while setting up parsing for calculation element',\n element,\n e,\n )\n Sentry.captureException(e)\n return {\n calculatedValue: undefined,\n hasError: true,\n }\n }\n }, [element, form.elements, formSubmissionModel])\n\n // MODEL LISTENER\n React.useEffect(() => {\n onChange(element, {\n value: calculatedValue,\n isDerivedChange: true,\n })\n }, [element, onChange, calculatedValue])\n\n return (\n <div className=\"cypress-calculation-element\">\n <div className=\"ob-form__element ob-calculation\">\n <QuillHTML\n html={htmlValue}\n className=\"cypress-calculation-result ob-calculation__content\"\n />\n {hasError && (\n <div\n className=\"notification cypress-calculation-is-invalid\"\n role=\"alert\"\n >\n <div className=\"columns is-vcentered\">\n <div className=\"column is-narrow\">\n <MaterialIcon className=\"has-text-warning\">error</MaterialIcon>\n </div>\n <div className=\"column\">\n <p>There is an error in the calculation for this element.</p>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default React.memo(FormElementCalculation)\n"]}
|
|
@@ -6,23 +6,22 @@ export type Props = {
|
|
|
6
6
|
id: string;
|
|
7
7
|
element: FormTypes.FormFormElement;
|
|
8
8
|
/**
|
|
9
|
-
* Whether this nested form is locked
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Whether this nested form is locked. Used as `readOnlyOverride` for
|
|
10
|
+
* synthetic children when `readOnlyOverrideChildren` is set. Nested fields do
|
|
11
|
+
* not inherit this value as a blanket lock so a child included in
|
|
12
|
+
* `editableFormElementIds` can stay editable.
|
|
13
13
|
*/
|
|
14
14
|
readOnly: boolean;
|
|
15
15
|
/**
|
|
16
16
|
* Lock to apply to nested fields (`OneBlinkFormElements.readOnly` /
|
|
17
17
|
* `parentReadOnly`). True when the whole form is read-only, a parent is
|
|
18
|
-
* read-only, or this element’s definition has `readOnly: true`.
|
|
19
|
-
* include this nested form’s audience lock.
|
|
18
|
+
* read-only, or this element’s definition has `readOnly: true`.
|
|
20
19
|
*/
|
|
21
20
|
childrenReadOnly: boolean;
|
|
22
21
|
/**
|
|
23
|
-
* When true, nested fields use this element’s `readOnly`
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* When true, nested fields use this element’s `readOnly` as
|
|
23
|
+
* `readOnlyOverride` instead of calculating their own. Used by Civica name
|
|
24
|
+
* records and Freshdesk dependent fields.
|
|
26
25
|
*/
|
|
27
26
|
readOnlyOverrideChildren?: boolean;
|
|
28
27
|
value: SubmissionTypes.S3SubmissionData['submission'] | undefined;
|