@oneblink/apps-react 6.9.0-beta.1 → 6.9.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OneBlinkAutoSaveForm.js.map +1 -1
- package/dist/OneBlinkForm.d.ts +25 -35
- package/dist/OneBlinkFormBase.d.ts +6 -1
- package/dist/OneBlinkFormBase.js +8 -12
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.js +0 -1
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/PaymentReceipt.js.map +1 -1
- package/dist/components/ArcGISWebMap.js.map +1 -1
- package/dist/components/CustomAccordion.d.ts +12 -13
- package/dist/components/ErrorSnackbar.js.map +1 -1
- package/dist/components/MaterialIcon.d.ts +4 -2
- package/dist/components/MaterialIcon.js +7 -3
- package/dist/components/MaterialIcon.js.map +1 -1
- package/dist/components/ValidationErrorsCard.d.ts +11 -0
- package/dist/components/ValidationErrorsCard.js +185 -0
- package/dist/components/ValidationErrorsCard.js.map +1 -0
- package/dist/components/ValidationErrorsCard_framer.d.ts +10 -0
- package/dist/components/ValidationErrorsCard_framer.js +218 -0
- package/dist/components/ValidationErrorsCard_framer.js.map +1 -0
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
- package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
- package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
- package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
- package/dist/components/formStore/table/generateColumns.d.ts +3 -10
- package/dist/components/formStore/table/generateColumns.js.map +1 -1
- package/dist/components/formStore/table/useFormStoreTable.d.ts +4 -4
- package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
- package/dist/components/formStore/useFormStoreTableContext.d.ts +4 -4
- package/dist/components/formStore/useFormStoreTableContext.js.map +1 -1
- package/dist/components/payments/PaymentForm.js.map +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
- package/dist/components/renderer/AnnotationModal.js.map +1 -1
- package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
- package/dist/components/renderer/FormElementOptions.js.map +1 -1
- package/dist/components/renderer/LookupButton.js.map +1 -1
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js +3 -1
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/PageFormElements.js.map +1 -1
- package/dist/components/renderer/ReverseGeocode.js.map +1 -1
- package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
- package/dist/components/renderer/attachments/AttachmentStatus.d.ts +5 -5
- package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
- package/dist/components/renderer/attachments/DropdownMenu.js +6 -3
- package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
- package/dist/components/renderer/attachments/FileCard.js +1 -1
- package/dist/components/renderer/attachments/FileCard.js.map +1 -1
- package/dist/components/renderer/attachments/FileCardContent.d.ts +2 -2
- package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
- package/dist/form-elements/FormElementABN.js.map +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
- package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
- package/dist/form-elements/FormElementBSB.js.map +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.js.map +1 -1
- package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/form-elements/FormElementDateTime.js.map +1 -1
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles.js.map +1 -1
- package/dist/form-elements/FormElementForm.js +3 -1
- package/dist/form-elements/FormElementForm.js.map +1 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
- package/dist/form-elements/FormElementHeading.js.map +1 -1
- package/dist/form-elements/FormElementLocation.js.map +1 -1
- package/dist/form-elements/FormElementNumber.js.map +1 -1
- package/dist/form-elements/FormElementPointAddress.js.map +1 -1
- package/dist/form-elements/FormElementRadio.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.js +3 -1
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSection.js.map +1 -1
- package/dist/form-elements/FormElementSelect.js.map +1 -1
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/form-elements/FormElementTime.js.map +1 -1
- package/dist/hooks/attachments/useAttachment.d.ts +3 -3
- package/dist/hooks/attachments/useAttachment.js.map +1 -1
- package/dist/hooks/attachments/useAttachments.d.ts +1 -1
- package/dist/hooks/attachments/useAttachments.js.map +1 -1
- package/dist/hooks/useCaptcha.d.ts +0 -1
- package/dist/hooks/useClickOutsideElement.js.map +1 -1
- package/dist/hooks/useConditionalLogic.js.map +1 -1
- package/dist/hooks/useDrafts.js.map +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
- package/dist/hooks/useFlatpickr.js.map +1 -1
- package/dist/hooks/useFormDefinition.js.map +1 -1
- package/dist/hooks/useFormElementLookups.js.map +1 -1
- package/dist/hooks/useFormElementOptions.js.map +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -3
- package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
- package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
- package/dist/hooks/useFormSubmissionState.d.ts +2 -2
- package/dist/hooks/useFormValidation.d.ts +1 -1
- package/dist/hooks/useFormValidation.js.map +1 -1
- package/dist/hooks/useInfiniteScrollDataLoad.js.map +1 -1
- package/dist/hooks/useIsOffline.d.ts +1 -1
- package/dist/hooks/useLoadDataState.js.map +1 -1
- package/dist/hooks/useLogin.js.map +1 -1
- package/dist/hooks/useLookupNotification.js.map +1 -1
- package/dist/hooks/useLookups.d.ts +1 -1
- package/dist/hooks/useLookups.js.map +1 -1
- package/dist/hooks/useOneBlinkFormContainer.d.ts +0 -1
- package/dist/hooks/usePages.js.map +1 -1
- package/dist/hooks/usePendingSubmissions.js.map +1 -1
- package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
- package/dist/hooks/useSignUp.js.map +1 -1
- package/dist/hooks/useSubmissionIdIsValid.js.map +1 -1
- package/dist/hooks/useToggleComplianceChildren.js.map +1 -1
- package/dist/hooks/useValidationClass.js.map +1 -1
- package/dist/services/attachments.js.map +1 -1
- package/dist/services/blob-utils.js.map +1 -1
- package/dist/services/checkBsbsAreInvalid.js.map +1 -1
- package/dist/services/checkIfAttachmentsExist.js.map +1 -1
- package/dist/services/checkIfBsbsAreValidating.js.map +1 -1
- package/dist/services/cleanFormSubmissionModel.js.map +1 -1
- package/dist/services/download-file.js.map +1 -1
- package/dist/services/drawTimestampOnCanvas.js.map +1 -1
- package/dist/services/form-validation.js.map +1 -1
- package/dist/services/generate-default-data.js.map +1 -1
- package/dist/services/generateCivicaNameRecordElements.js.map +1 -1
- package/dist/services/generateFreshdeskDependentFieldElements.js.map +1 -1
- package/dist/services/geolocation.js +1 -1
- package/dist/services/geolocation.js.map +1 -1
- package/dist/services/getDateRangeConfiguration.js.map +1 -1
- package/dist/services/getRepeatableSetEntriesConfiguration.js.map +1 -1
- package/dist/services/injectableOptions.js.map +1 -1
- package/dist/services/scrolling-service.js.map +1 -1
- package/dist/styles/ob-html.scss +3 -0
- package/dist/styles/section.scss +4 -0
- package/dist/styles/validation-errors-card.scss +180 -0
- package/dist/styles.css +179 -0
- package/dist/styles.scss +1 -0
- package/dist/types/form.d.ts +0 -1
- package/dist/utils/elementDOMIds.d.ts +13 -0
- package/dist/utils/elementDOMIds.js +24 -0
- package/dist/utils/elementDOMIds.js.map +1 -0
- package/dist/utils/merge-executed-lookups.js.map +1 -1
- package/dist/utils/scrollToElement.d.ts +6 -0
- package/dist/utils/scrollToElement.js +65 -0
- package/dist/utils/scrollToElement.js.map +1 -0
- package/package.json +6 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateFreshdeskDependentFieldElements.js","sourceRoot":"","sources":["../../src/services/generateFreshdeskDependentFieldElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAGjC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,EAAE,EAAE,IAAI,EAAE;IACV,IAAI,EAAE,QAAiB;IACvB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,iBAA0B;IACvC,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,sCAAsC,EAAE,KAAK;CAC9C,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAC9B,aAA0D,EAC1D,WAA+B;IAE/B,MAAM,oBAAoB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAC9C,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,WAAW,CACrD,CAAA;IACD,IAAI,aAAa,EAAE;
|
1
|
+
{"version":3,"file":"generateFreshdeskDependentFieldElements.js","sourceRoot":"","sources":["../../src/services/generateFreshdeskDependentFieldElements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AAGjC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,EAAE,EAAE,IAAI,EAAE;IACV,IAAI,EAAE,QAAiB;IACvB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,iBAA0B;IACvC,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,sCAAsC,EAAE,KAAK;CAC9C,CAAC,CAAA;AAEF,MAAM,UAAU,gBAAgB,CAC9B,aAA0D,EAC1D,WAA+B;IAE/B,MAAM,oBAAoB,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAC9C,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,WAAW,CACrD,CAAA;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,oBAAoB,CAAC,OAA0C,CAAA;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;gBAChB,GAAG,IAAI;gBACP,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAqC;aAC/D,EACD,EAAE,CACH,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uCAAuC,CAC7D,OAAiD;;IAEjD,MAAM,eAAe,GAA4B;QAC/C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,QAAQ;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,WAAW,EAAE,iBAAiB;KAC/B,CAAA;IACD,MAAM,YAAY,GAAG,CAAC,eAAe,CAAC,CAAA;IAEtC,MAAM,kBAAkB,GAA4B;QAClD,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,gBAAgB;QAC/B,IAAI,EAAE,OAAO,CAAC,eAAe;QAC7B,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAErC,MAAM,WAAW,GAA4B;QAC3C,GAAG,iBAAiB,EAAE;QACtB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,0CAAE,IAAI;QACxC,OAAO,EAAE,EAAE;KACZ,CAAA;IACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE9B,OAAO,YAAY,CAAA;AACrB,CAAC","sourcesContent":["import { v4 as uuid } from 'uuid'\nimport { FormTypes } from '@oneblink/types'\n\nconst createFormElement = () => ({\n id: uuid(),\n type: 'select' as const,\n multi: false,\n optionsType: 'FRESHDESK_FIELD' as const,\n conditionallyShow: false,\n isDataLookup: false,\n isElementLookup: false,\n required: false,\n requiresAllConditionallyShowPredicates: false,\n})\n\nexport function getNestedOptions(\n parentOptions: FormTypes.ChoiceElementOption[] | undefined,\n parentValue: string | undefined,\n): FormTypes.ChoiceElementOption[] | undefined {\n const selectedParentOption = parentOptions?.find(\n (parentOption) => parentOption.value === parentValue,\n )\n if (parentOptions) {\n if (selectedParentOption) {\n return selectedParentOption.options as FormTypes.ChoiceElementOption[]\n } else {\n return parentOptions.reduce<FormTypes.ChoiceElementOption[]>(\n (memo, option) => [\n ...memo,\n ...((option.options || []) as FormTypes.ChoiceElementOption[]),\n ],\n [],\n )\n }\n }\n return undefined\n}\n\nexport default function generateFreshdeskDependentFieldElements(\n element: FormTypes.FreshdeskDependentFieldElement,\n): FormTypes.SelectElement[] {\n const categoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'category',\n required: element.required,\n readOnly: element.readOnly,\n label: element.label,\n hint: element.hint,\n defaultValue: element.defaultValue?.category,\n options: element.options,\n freshdeskFieldName: element.freshdeskFieldName,\n optionsType: 'FRESHDESK_FIELD',\n }\n const formElements = [categoryElement]\n\n const subCategoryElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'subCategory',\n required: element.required,\n readOnly: element.readOnly,\n label: element.subCategoryLabel,\n hint: element.subCategoryHint,\n defaultValue: element.defaultValue?.subCategory,\n options: [],\n }\n formElements.push(subCategoryElement)\n\n const itemElement: FormTypes.SelectElement = {\n ...createFormElement(),\n name: 'item',\n required: element.required,\n readOnly: element.readOnly,\n label: element.itemLabel,\n hint: element.itemHint,\n defaultValue: element.defaultValue?.item,\n options: [],\n }\n formElements.push(itemElement)\n\n return formElements\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../../src/services/geolocation.ts"],"names":[],"mappings":"AAeA,MAAM,wBAAwB,GAAoB;IAChD,kBAAkB,EAAE,IAAI;IACxB,UAAU,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../../src/services/geolocation.ts"],"names":[],"mappings":"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","sourcesContent":["type PositionLike = Omit<Partial<GeolocationPosition>, 'coords'> & {\n coords: Partial<GeolocationCoordinates>\n}\n\ntype PositionOptionsLike = Partial<PositionOptions>\n\ntype GeolocationDriver = {\n getCurrentPosition: (\n success: (position: PositionLike) => void,\n error: (error: GeolocationPositionError | Error) => void,\n options: PositionOptions,\n ) => void\n isAvailable: () => boolean\n}\n\nconst DEFAULT_POSITION_OPTIONS: PositionOptions = {\n enableHighAccuracy: true,\n maximumAge: 0, // fresh results each time\n timeout: 10 * 1000, // take no longer than 10 seconds\n}\n\nfunction clonePosition(position: PositionLike): PositionLike {\n position = position || {}\n const coords = position.coords || {}\n if (typeof position !== 'object' || typeof coords !== 'object') {\n throw new TypeError('cannot clone non-Position object')\n }\n return {\n coords: {\n latitude: coords.latitude,\n longitude: coords.longitude,\n altitude: coords.altitude,\n accuracy: coords.accuracy,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n },\n timestamp: position.timestamp || Date.now(),\n }\n}\n\nfunction mergePositionOptions(options?: PositionOptionsLike): PositionOptions {\n options = options || {}\n if (typeof options !== 'object') {\n return DEFAULT_POSITION_OPTIONS\n }\n\n return {\n enableHighAccuracy:\n typeof options.enableHighAccuracy === 'boolean'\n ? options.enableHighAccuracy\n : DEFAULT_POSITION_OPTIONS.enableHighAccuracy,\n\n maximumAge:\n typeof options.maximumAge === 'number' && !isNaN(options.maximumAge)\n ? options.maximumAge\n : DEFAULT_POSITION_OPTIONS.maximumAge,\n\n timeout:\n typeof options.timeout === 'number' && !isNaN(options.timeout)\n ? options.timeout\n : DEFAULT_POSITION_OPTIONS.timeout,\n }\n}\n\nconst DRIVERS_PREFERENCE = ['W3C']\n\nconst DRIVERS: { [id: string]: GeolocationDriver } = {\n W3C: {\n isAvailable: function (): boolean {\n return !!(\n typeof navigator !== 'undefined' &&\n navigator.geolocation &&\n typeof navigator.geolocation.getCurrentPosition === 'function'\n )\n },\n\n getCurrentPosition: function (\n onSuccess: (position: PositionLike) => void,\n onError: (error: GeolocationPositionError) => void,\n options: PositionOptions,\n ): void {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n onSuccess(clonePosition(position))\n },\n onError,\n options,\n )\n },\n },\n}\n\nfunction detectDriver(): GeolocationDriver | false {\n const availableDriver = DRIVERS_PREFERENCE.map(function (name) {\n return DRIVERS[name]\n }).find(function (driver) {\n return driver.isAvailable()\n })\n return availableDriver || false\n}\n\nexport function getCurrentPosition(\n options?: PositionOptionsLike,\n): Promise<PositionLike> {\n return new Promise(function (resolve, reject) {\n const driver = detectDriver()\n if (!driver) {\n return reject(new Error('GeoLocation not supported'))\n }\n driver.getCurrentPosition(\n function (position) {\n resolve(position)\n },\n function (err) {\n reject(err)\n },\n mergePositionOptions(options),\n )\n })\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getDateRangeConfiguration.js","sourceRoot":"","sources":["../../src/services/getDateRangeConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAStD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAiC,EAC3E,QAAiC,EACjC,mBAAmE;IAEnE,IAAI,sBAAsB,EAAE;
|
1
|
+
{"version":3,"file":"getDateRangeConfiguration.js","sourceRoot":"","sources":["../../src/services/getDateRangeConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAStD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAiC,EAC3E,QAAiC,EACjC,mBAAmE;IAEnE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,iBAAiB,CAAC,uBAAuB,CAC7D,sBAAsB,EACtB,QAAQ,EACR,mBAAmB,CACpB,CAAA;QACD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AACxD,CAAC","sourcesContent":["import { submissionService } from '@oneblink/sdk-core'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\n\nexport type DateRangeConfigurationOptions = {\n referenceFormElementId: string | undefined\n date: string | undefined\n daysOffset: number | undefined\n}\n\nexport default function getDateRangeConfiguration(\n { referenceFormElementId, date, daysOffset }: DateRangeConfigurationOptions,\n elements: FormTypes.FormElement[],\n formSubmissionModel: SubmissionTypes.S3SubmissionData['submission'],\n): [string | undefined, number | undefined] {\n if (referenceFormElementId) {\n const referenceDate = submissionService.getRootElementValueById(\n referenceFormElementId,\n elements,\n formSubmissionModel,\n )\n if (typeof referenceDate === 'string') {\n return [referenceDate, daysOffset]\n }\n }\n return [date, date === 'NOW' ? daysOffset : undefined]\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getRepeatableSetEntriesConfiguration.js","sourceRoot":"","sources":["../../src/services/getRepeatableSetEntriesConfiguration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAC1D,UAAiD,EACjD,QAAiC,EACjC,mBAAmE;IAEnE,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;
|
1
|
+
{"version":3,"file":"getRepeatableSetEntriesConfiguration.js","sourceRoot":"","sources":["../../src/services/getRepeatableSetEntriesConfiguration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAC1D,UAAiD,EACjD,QAAiC,EACjC,mBAAmE;IAEnE,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,uBAAuB,CACrD,UAAU,CAAC,SAAS,EACpB,QAAQ,EACR,mBAAmB,CACpB,CAAA;QACD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAe,CAAA;QACxB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC","sourcesContent":["import { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { RepeatableSetElement } from '@oneblink/types/typescript/forms'\nimport { submissionService } from '@oneblink/sdk-core'\n\nexport default function getRepeatableSetEntriesConfiguration(\n setEntries: RepeatableSetElement['minSetEntries'],\n elements: FormTypes.FormElement[],\n formSubmissionModel: SubmissionTypes.S3SubmissionData['submission'],\n) {\n if (setEntries && typeof setEntries === 'object') {\n const value = submissionService.getRootElementValueById(\n setEntries.elementId,\n elements,\n formSubmissionModel,\n )\n if (value) {\n return value as number\n }\n }\n if (typeof setEntries === 'number') {\n return setEntries\n }\n return undefined\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"injectableOptions.js","sourceRoot":"","sources":["../../src/services/injectableOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { submissionService, typeCastService } from '@oneblink/sdk-core'\nimport { localisationService } from '@oneblink/apps'\nimport { v4 as uuidv4 } from 'uuid'\nimport { MiscTypes } from '@oneblink/types'\nimport { TaskContext } from '../hooks/useTaskContext'\n\ntype Option = Pick<FormTypes.ChoiceElementOption, 'value' | 'label'>\n\nfunction processInjectableDynamicOption({\n option: resource,\n submission: rootSubmission,\n formElements: rootFormElements,\n ...params\n}: {\n option: Option\n submission: SubmissionTypes.S3SubmissionData['submission']\n formElements: FormTypes.FormElement[]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): Map<string, Option> {\n return submissionService.processInjectablesInCustomResource<Option>({\n resource,\n submission: rootSubmission,\n formElements: rootFormElements,\n replaceRootInjectables(option, submission, formElements) {\n // Replace root level form element values\n const replaceableParams: Parameters<\n typeof localisationService.replaceInjectablesWithElementValues\n >[1] = {\n ...params,\n submission,\n formElements,\n task: params.taskContext.task,\n taskGroup: params.taskContext.taskGroup,\n taskGroupInstance: params.taskContext.taskGroupInstance,\n excludeNestedElements: true,\n }\n const {\n text: label,\n hadAllInjectablesReplaced: hadAllInjectablesReplacedInLabel,\n } = localisationService.replaceInjectablesWithElementValues(\n option.label,\n replaceableParams,\n )\n if (!hadAllInjectablesReplacedInLabel) {\n return\n }\n\n const {\n text: value,\n hadAllInjectablesReplaced: hadAllInjectablesReplacedInValue,\n } = localisationService.replaceInjectablesWithElementValues(\n option.value,\n replaceableParams,\n )\n if (!hadAllInjectablesReplacedInValue) {\n return\n }\n\n return [\n label + ' ' + value,\n value,\n {\n value,\n label,\n },\n ]\n },\n prepareNestedInjectables(option, prepare) {\n return {\n value: prepare(option.value),\n label: prepare(option.label),\n }\n },\n })\n}\n\nexport default function processInjectableOption({\n option,\n submission,\n formElements,\n taskContext,\n userProfile,\n}: {\n option: FormTypes.ChoiceElementOption\n submission: SubmissionTypes.S3SubmissionData['submission']\n formElements: FormTypes.FormElement[]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.ChoiceElementOption[] {\n const options = processInjectableDynamicOption({\n option,\n submission,\n formElements,\n taskContext,\n userProfile,\n })\n\n const generatedOptions: FormTypes.ChoiceElementOption[] = []\n\n options.forEach(({ label, value }) => {\n generatedOptions.push({\n ...option,\n id: options.size === 1 ? option.id : uuidv4(),\n label,\n value,\n })\n })\n\n return generatedOptions\n}\n\nfunction injectOptionsAcrossEntriesElements({\n contextElements,\n elements,\n entries,\n taskContext,\n userProfile,\n}: {\n contextElements: FormTypes.FormElement[]\n elements: FormTypes.FormElement[]\n entries: SubmissionTypes.S3SubmissionData['submission'][]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.FormElement[] {\n return elements.map<FormTypes.FormElement>((e) => {\n switch (e.type) {\n case 'page':\n case 'section': {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // info elements on other pages/sections will need the parent definition\n contextElements,\n elements: e.elements,\n entries,\n taskContext,\n userProfile,\n }),\n }\n }\n case 'form': {\n if (Array.isArray(e.elements)) {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // sub-forms do not have context of parent elements\n contextElements: e.elements,\n elements: e.elements,\n entries: entries.reduce<\n SubmissionTypes.S3SubmissionData['submission'][]\n >((memo, entry) => {\n if (entry[e.name]) {\n memo.push(\n entry[\n e.name\n ] as SubmissionTypes.S3SubmissionData['submission'],\n )\n }\n return memo\n }, []),\n taskContext,\n userProfile,\n }),\n }\n } else {\n return e\n }\n }\n case 'repeatableSet': {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // repeatable set entries may only know about elements within entry\n contextElements: e.elements,\n elements: e.elements,\n entries: entries.reduce<\n SubmissionTypes.S3SubmissionData['submission'][]\n >((memo, entry) => {\n const nestedEntries = entry[e.name]\n if (Array.isArray(nestedEntries)) {\n memo.push(\n ...(nestedEntries as SubmissionTypes.S3SubmissionData['submission'][]),\n )\n }\n return memo\n }, []),\n taskContext,\n userProfile,\n }),\n }\n }\n default: {\n const optionsElement = typeCastService.formElements.toOptionsElement(e)\n if (optionsElement) {\n return {\n ...optionsElement,\n options: entries.reduce<FormTypes.ChoiceElementOption[]>(\n (newOptions, submission) => {\n optionsElement.options?.forEach((o) => {\n const injected = processInjectableOption({\n option: o,\n submission,\n formElements: contextElements,\n taskContext,\n userProfile,\n })\n\n newOptions.push(\n ...injected.filter((generatedOption) => {\n return !newOptions.some(\n (addedOption) =>\n addedOption.value === generatedOption.value,\n )\n }),\n )\n })\n return newOptions\n },\n [],\n ),\n }\n }\n return e\n }\n }\n })\n}\n\nexport function injectOptionsAcrossAllElements({\n submission,\n ...params\n}: {\n elements: FormTypes.FormElement[]\n contextElements: FormTypes.FormElement[]\n submission: SubmissionTypes.S3SubmissionData['submission']\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.FormElement[] {\n // We iterate over entries as an array of submission objects because\n // child elements of a repeatable set that have injected options\n // need to include all of the injected options from the same elements\n // in sibling entries within the set. Otherwise we will not have the\n // labels for each available option to display the submission.\n return injectOptionsAcrossEntriesElements({\n ...params,\n entries: [submission],\n })\n}\n"]}
|
1
|
+
{"version":3,"file":"injectableOptions.js","sourceRoot":"","sources":["../../src/services/injectableOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { FormTypes, SubmissionTypes } from '@oneblink/types'\nimport { submissionService, typeCastService } from '@oneblink/sdk-core'\nimport { localisationService } from '@oneblink/apps'\nimport { v4 as uuidv4 } from 'uuid'\nimport { MiscTypes } from '@oneblink/types'\nimport { TaskContext } from '../hooks/useTaskContext'\n\ntype Option = Pick<FormTypes.ChoiceElementOption, 'value' | 'label'>\n\nfunction processInjectableDynamicOption({\n option: resource,\n submission: rootSubmission,\n formElements: rootFormElements,\n ...params\n}: {\n option: Option\n submission: SubmissionTypes.S3SubmissionData['submission']\n formElements: FormTypes.FormElement[]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): Map<string, Option> {\n return submissionService.processInjectablesInCustomResource<Option>({\n resource,\n submission: rootSubmission,\n formElements: rootFormElements,\n replaceRootInjectables(option, submission, formElements) {\n // Replace root level form element values\n const replaceableParams: Parameters<\n typeof localisationService.replaceInjectablesWithElementValues\n >[1] = {\n ...params,\n submission,\n formElements,\n task: params.taskContext.task,\n taskGroup: params.taskContext.taskGroup,\n taskGroupInstance: params.taskContext.taskGroupInstance,\n excludeNestedElements: true,\n }\n const {\n text: label,\n hadAllInjectablesReplaced: hadAllInjectablesReplacedInLabel,\n } = localisationService.replaceInjectablesWithElementValues(\n option.label,\n replaceableParams,\n )\n if (!hadAllInjectablesReplacedInLabel) {\n return\n }\n\n const {\n text: value,\n hadAllInjectablesReplaced: hadAllInjectablesReplacedInValue,\n } = localisationService.replaceInjectablesWithElementValues(\n option.value,\n replaceableParams,\n )\n if (!hadAllInjectablesReplacedInValue) {\n return\n }\n\n return [\n label + ' ' + value,\n value,\n {\n value,\n label,\n },\n ]\n },\n prepareNestedInjectables(option, prepare) {\n return {\n value: prepare(option.value),\n label: prepare(option.label),\n }\n },\n })\n}\n\nexport default function processInjectableOption({\n option,\n submission,\n formElements,\n taskContext,\n userProfile,\n}: {\n option: FormTypes.ChoiceElementOption\n submission: SubmissionTypes.S3SubmissionData['submission']\n formElements: FormTypes.FormElement[]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.ChoiceElementOption[] {\n const options = processInjectableDynamicOption({\n option,\n submission,\n formElements,\n taskContext,\n userProfile,\n })\n\n const generatedOptions: FormTypes.ChoiceElementOption[] = []\n\n options.forEach(({ label, value }) => {\n generatedOptions.push({\n ...option,\n id: options.size === 1 ? option.id : uuidv4(),\n label,\n value,\n })\n })\n\n return generatedOptions\n}\n\nfunction injectOptionsAcrossEntriesElements({\n contextElements,\n elements,\n entries,\n taskContext,\n userProfile,\n}: {\n contextElements: FormTypes.FormElement[]\n elements: FormTypes.FormElement[]\n entries: SubmissionTypes.S3SubmissionData['submission'][]\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.FormElement[] {\n return elements.map<FormTypes.FormElement>((e) => {\n switch (e.type) {\n case 'page':\n case 'section': {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // info elements on other pages/sections will need the parent definition\n contextElements,\n elements: e.elements,\n entries,\n taskContext,\n userProfile,\n }),\n }\n }\n case 'form': {\n if (Array.isArray(e.elements)) {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // sub-forms do not have context of parent elements\n contextElements: e.elements,\n elements: e.elements,\n entries: entries.reduce<\n SubmissionTypes.S3SubmissionData['submission'][]\n >((memo, entry) => {\n if (entry[e.name]) {\n memo.push(\n entry[\n e.name\n ] as SubmissionTypes.S3SubmissionData['submission'],\n )\n }\n return memo\n }, []),\n taskContext,\n userProfile,\n }),\n }\n } else {\n return e\n }\n }\n case 'repeatableSet': {\n return {\n ...e,\n elements: injectOptionsAcrossEntriesElements({\n // repeatable set entries may only know about elements within entry\n contextElements: e.elements,\n elements: e.elements,\n entries: entries.reduce<\n SubmissionTypes.S3SubmissionData['submission'][]\n >((memo, entry) => {\n const nestedEntries = entry[e.name]\n if (Array.isArray(nestedEntries)) {\n memo.push(\n ...(nestedEntries as SubmissionTypes.S3SubmissionData['submission'][]),\n )\n }\n return memo\n }, []),\n taskContext,\n userProfile,\n }),\n }\n }\n default: {\n const optionsElement = typeCastService.formElements.toOptionsElement(e)\n if (optionsElement) {\n return {\n ...optionsElement,\n options: entries.reduce<FormTypes.ChoiceElementOption[]>(\n (newOptions, submission) => {\n optionsElement.options?.forEach((o) => {\n const injected = processInjectableOption({\n option: o,\n submission,\n formElements: contextElements,\n taskContext,\n userProfile,\n })\n\n newOptions.push(\n ...injected.filter((generatedOption) => {\n return !newOptions.some(\n (addedOption) =>\n addedOption.value === generatedOption.value,\n )\n }),\n )\n })\n return newOptions\n },\n [],\n ),\n }\n }\n return e\n }\n }\n })\n}\n\nexport function injectOptionsAcrossAllElements({\n submission,\n ...params\n}: {\n elements: FormTypes.FormElement[]\n contextElements: FormTypes.FormElement[]\n submission: SubmissionTypes.S3SubmissionData['submission']\n taskContext: TaskContext\n userProfile: MiscTypes.UserProfile | undefined\n}): FormTypes.FormElement[] {\n // We iterate over entries as an array of submission objects because\n // child elements of a repeatable set that have injected options\n // need to include all of the injected options from the same elements\n // in sibling entries within the set. Otherwise we will not have the\n // labels for each available option to display the submission.\n return injectOptionsAcrossEntriesElements({\n ...params,\n entries: [submission],\n })\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrolling-service.js","sourceRoot":"","sources":["../../src/services/scrolling-service.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,iBAAiB,CAAA;AACvC,IAAI,UAAU,GAAG,KAAK,CAAA;AAEtB,8DAA8D;AAC9D,SAAS,yBAAyB,CAAC,OAAY,EAAE,SAAiB;IAChE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE;
|
1
|
+
{"version":3,"file":"scrolling-service.js","sourceRoot":"","sources":["../../src/services/scrolling-service.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,iBAAiB,CAAA;AACvC,IAAI,UAAU,GAAG,KAAK,CAAA;AAEtB,8DAA8D;AAC9D,SAAS,yBAAyB,CAAC,OAAY,EAAE,SAAiB;IAChE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,yBAAyB,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,CAAa;IACnC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAClD,CAAC,CAAC,cAAc,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,UAAU,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IACD,UAAU,GAAG,IAAI,CAAA;IAEjB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACrD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;AACpE,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAM;IACR,CAAC;IACD,UAAU,GAAG,KAAK,CAAA;IAElB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACxD,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC;AAED,eAAe;IACb,gBAAgB;IAChB,eAAe;CAChB,CAAA","sourcesContent":["const overflowClass = 'overflow-hidden'\nlet isDisabled = false\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction elementOrAncestorHasClass(element: any, className: string): boolean {\n if (!element || element === document) {\n return false\n }\n\n if (element.className.indexOf(className) >= 0) {\n return true\n }\n\n return elementOrAncestorHasClass(element.parentNode, className)\n}\n\nfunction preventDefault(e: TouchEvent) {\n if (!elementOrAncestorHasClass(e.target, 'modal')) {\n e.preventDefault()\n }\n}\n\nfunction disableScrolling(): void {\n if (isDisabled) {\n return\n }\n isDisabled = true\n\n // @ts-expect-error ???\n document.body.parentNode.classList.add(overflowClass)\n document.body.addEventListener('touchmove', preventDefault, false)\n}\n\nfunction enableScrolling(): void {\n if (!isDisabled) {\n return\n }\n isDisabled = false\n\n // @ts-expect-error ???\n document.body.parentNode.classList.remove(overflowClass)\n document.body.removeEventListener('touchmove', preventDefault, false)\n}\n\nexport default {\n disableScrolling,\n enableScrolling,\n}\n"]}
|
package/dist/styles/ob-html.scss
CHANGED
package/dist/styles/section.scss
CHANGED
@@ -0,0 +1,180 @@
|
|
1
|
+
$validation-errors-border-radius: 8px;
|
2
|
+
|
3
|
+
.ob-validation-notification-wrapper {
|
4
|
+
position: fixed;
|
5
|
+
bottom: $size-6;
|
6
|
+
right: $size-6;
|
7
|
+
z-index: 30;
|
8
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
9
|
+
transition-duration: 300ms;
|
10
|
+
}
|
11
|
+
|
12
|
+
.ob-validation-color-transition {
|
13
|
+
transition-property: color;
|
14
|
+
transition-duration: inherit;
|
15
|
+
transition-timing-function: inherit;
|
16
|
+
}
|
17
|
+
|
18
|
+
.ob-validation-notification-card {
|
19
|
+
transition-property: transform, background-color;
|
20
|
+
transition-duration: inherit;
|
21
|
+
transition-timing-function: inherit;
|
22
|
+
border-radius: $validation-errors-border-radius;
|
23
|
+
max-height: 350px;
|
24
|
+
overflow-y: auto;
|
25
|
+
border-color: $danger;
|
26
|
+
border-width: 2px;
|
27
|
+
border-style: solid;
|
28
|
+
animation: pulse-animation 1.5s infinite;
|
29
|
+
@keyframes pulse-animation {
|
30
|
+
0% {
|
31
|
+
box-shadow: 0 0 0 0px rgba(255, 0, 0, 0.4);
|
32
|
+
}
|
33
|
+
100% {
|
34
|
+
box-shadow: 0 0 0 $size-6 rgba(255, 0, 0, 0);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
// Card
|
40
|
+
.ob-validation-notification-card.is-expanded {
|
41
|
+
background-color: $white;
|
42
|
+
color: $black;
|
43
|
+
}
|
44
|
+
|
45
|
+
.ob-validation-notification-card.is-contracted {
|
46
|
+
background-color: $danger;
|
47
|
+
color: $white;
|
48
|
+
}
|
49
|
+
|
50
|
+
// Card Content
|
51
|
+
.ob-validation-notification-card-content {
|
52
|
+
transition-property: padding;
|
53
|
+
transition-duration: inherit;
|
54
|
+
transition-timing-function: inherit;
|
55
|
+
padding: $size-6;
|
56
|
+
padding-bottom: $size-4;
|
57
|
+
}
|
58
|
+
.is-contracted .ob-validation-notification-card-content {
|
59
|
+
padding-top: $size-8;
|
60
|
+
padding-bottom: $size-8;
|
61
|
+
}
|
62
|
+
|
63
|
+
// Card Content Header
|
64
|
+
.ob-validation-notification-card-header-wrapper {
|
65
|
+
display: flex;
|
66
|
+
width: 100%;
|
67
|
+
align-items: center;
|
68
|
+
justify-content: space-between;
|
69
|
+
}
|
70
|
+
|
71
|
+
.ob-validation-notification-card-header-title-wrapper {
|
72
|
+
display: flex;
|
73
|
+
align-items: center;
|
74
|
+
}
|
75
|
+
|
76
|
+
.ob-validation-notification-card-header-title-text {
|
77
|
+
font-weight: $weight-semibold;
|
78
|
+
}
|
79
|
+
|
80
|
+
.ob-validation-notification-card-header-title-icon {
|
81
|
+
margin-right: $size-8;
|
82
|
+
font-size: 22px;
|
83
|
+
}
|
84
|
+
|
85
|
+
// Card collapse
|
86
|
+
.ob-validation-notification-card-collapse-wrapper {
|
87
|
+
transition-property: width, opacity;
|
88
|
+
transition-duration: inherit;
|
89
|
+
transition-timing-function: inherit;
|
90
|
+
white-space: nowrap;
|
91
|
+
overflow-x: hidden;
|
92
|
+
}
|
93
|
+
|
94
|
+
.ob-validation-notification-wrapper .MuiCollapse-root {
|
95
|
+
transition-property: height;
|
96
|
+
transition-duration: inherit;
|
97
|
+
transition-timing-function: inherit;
|
98
|
+
}
|
99
|
+
|
100
|
+
.is-contracted .ob-validation-notification-card-collapse-wrapper {
|
101
|
+
// Allows for a perfectly smooth transition when the text size is unaltered by the browser.
|
102
|
+
width: 196px;
|
103
|
+
opacity: 0;
|
104
|
+
}
|
105
|
+
.is-expanded .ob-validation-notification-card-collapse-wrapper {
|
106
|
+
width: 300px;
|
107
|
+
opacity: 1;
|
108
|
+
}
|
109
|
+
|
110
|
+
// List
|
111
|
+
.ob-validation-notification-card-page-label {
|
112
|
+
font-weight: $weight-semibold;
|
113
|
+
font-size: 0.875rem;
|
114
|
+
}
|
115
|
+
.ob-validation-notification-card-page-label.is-not-first {
|
116
|
+
margin-top: $size-8;
|
117
|
+
}
|
118
|
+
.ob-validation-notification-card-list {
|
119
|
+
margin-top: $size-8;
|
120
|
+
border-radius: $validation-errors-border-radius;
|
121
|
+
}
|
122
|
+
|
123
|
+
// Items
|
124
|
+
.ob-validation-notification-card-item {
|
125
|
+
display: flex;
|
126
|
+
justify-content: space-between;
|
127
|
+
align-items: center;
|
128
|
+
padding: $size-8;
|
129
|
+
}
|
130
|
+
.ob-validation-notification-card-item.is-first {
|
131
|
+
border-top-left-radius: $validation-errors-border-radius;
|
132
|
+
border-top-right-radius: $validation-errors-border-radius;
|
133
|
+
}
|
134
|
+
.ob-validation-notification-card-item.is-last {
|
135
|
+
border-bottom-left-radius: $validation-errors-border-radius;
|
136
|
+
border-bottom-right-radius: $validation-errors-border-radius;
|
137
|
+
}
|
138
|
+
|
139
|
+
.ob-validation-notification-card-item-text {
|
140
|
+
white-space: nowrap;
|
141
|
+
overflow: hidden;
|
142
|
+
font-size: 0.875rem;
|
143
|
+
}
|
144
|
+
|
145
|
+
.ob-validation-notification-card-item-text-error-message {
|
146
|
+
overflow: hidden;
|
147
|
+
text-overflow: ellipsis;
|
148
|
+
}
|
149
|
+
|
150
|
+
.ob-validation-notification-card-item-icon {
|
151
|
+
margin-left: $size-8;
|
152
|
+
}
|
153
|
+
|
154
|
+
// Below desktop
|
155
|
+
@media only screen and (max-width: $desktop) {
|
156
|
+
.ob-bottom-navigation__content {
|
157
|
+
.ob-validation-notification-wrapper {
|
158
|
+
margin-bottom: 4rem;
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
// Mobile size
|
164
|
+
@media only screen and (max-width: $tablet) {
|
165
|
+
.ob-validation-notification-wrapper {
|
166
|
+
left: $size-6;
|
167
|
+
}
|
168
|
+
|
169
|
+
.is-contracted .ob-validation-notification-card-collapse-wrapper {
|
170
|
+
width: 100%;
|
171
|
+
}
|
172
|
+
.is-expanded .ob-validation-notification-card-collapse-wrapper {
|
173
|
+
width: 100%;
|
174
|
+
}
|
175
|
+
.section .ob-list.ob-validation-notification-card-list {
|
176
|
+
margin-right: unset;
|
177
|
+
margin-left: unset;
|
178
|
+
width: unset;
|
179
|
+
}
|
180
|
+
}
|
package/dist/styles.css
CHANGED
@@ -8637,6 +8637,10 @@ button on-loading {
|
|
8637
8637
|
right: 15px;
|
8638
8638
|
}
|
8639
8639
|
|
8640
|
+
.ql-editor strong {
|
8641
|
+
color: inherit;
|
8642
|
+
}
|
8643
|
+
|
8640
8644
|
.ob-buttons-radio {
|
8641
8645
|
container-name: ob-buttons-radio;
|
8642
8646
|
container-type: inline-size;
|
@@ -9544,6 +9548,10 @@ textarea:disabled {
|
|
9544
9548
|
transform: translate(-50%, 50%);
|
9545
9549
|
}
|
9546
9550
|
|
9551
|
+
.ob-section__collapsed {
|
9552
|
+
display: none;
|
9553
|
+
}
|
9554
|
+
|
9547
9555
|
.ob-bsb__record-control {
|
9548
9556
|
min-width: 0;
|
9549
9557
|
}
|
@@ -9855,6 +9863,177 @@ textarea:disabled {
|
|
9855
9863
|
}
|
9856
9864
|
}
|
9857
9865
|
|
9866
|
+
.ob-validation-notification-wrapper {
|
9867
|
+
position: fixed;
|
9868
|
+
bottom: 1rem;
|
9869
|
+
right: 1rem;
|
9870
|
+
z-index: 30;
|
9871
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
9872
|
+
transition-duration: 300ms;
|
9873
|
+
}
|
9874
|
+
|
9875
|
+
.ob-validation-color-transition {
|
9876
|
+
transition-property: color;
|
9877
|
+
transition-duration: inherit;
|
9878
|
+
transition-timing-function: inherit;
|
9879
|
+
}
|
9880
|
+
|
9881
|
+
.ob-validation-notification-card {
|
9882
|
+
transition-property: transform, background-color;
|
9883
|
+
transition-duration: inherit;
|
9884
|
+
transition-timing-function: inherit;
|
9885
|
+
border-radius: 8px;
|
9886
|
+
max-height: 350px;
|
9887
|
+
overflow-y: auto;
|
9888
|
+
border-color: #e8113c;
|
9889
|
+
border-width: 2px;
|
9890
|
+
border-style: solid;
|
9891
|
+
animation: pulse-animation 1.5s infinite;
|
9892
|
+
}
|
9893
|
+
@keyframes pulse-animation {
|
9894
|
+
0% {
|
9895
|
+
box-shadow: 0 0 0 0px rgba(255, 0, 0, 0.4);
|
9896
|
+
}
|
9897
|
+
100% {
|
9898
|
+
box-shadow: 0 0 0 1rem rgba(255, 0, 0, 0);
|
9899
|
+
}
|
9900
|
+
}
|
9901
|
+
|
9902
|
+
.ob-validation-notification-card.is-expanded {
|
9903
|
+
background-color: hsl(0, 0%, 100%);
|
9904
|
+
color: hsl(0, 0%, 4%);
|
9905
|
+
}
|
9906
|
+
|
9907
|
+
.ob-validation-notification-card.is-contracted {
|
9908
|
+
background-color: #e8113c;
|
9909
|
+
color: hsl(0, 0%, 100%);
|
9910
|
+
}
|
9911
|
+
|
9912
|
+
.ob-validation-notification-card-content {
|
9913
|
+
transition-property: padding;
|
9914
|
+
transition-duration: inherit;
|
9915
|
+
transition-timing-function: inherit;
|
9916
|
+
padding: 1rem;
|
9917
|
+
padding-bottom: 1.5rem;
|
9918
|
+
}
|
9919
|
+
|
9920
|
+
.is-contracted .ob-validation-notification-card-content {
|
9921
|
+
padding-top: 0.5rem;
|
9922
|
+
padding-bottom: 0.5rem;
|
9923
|
+
}
|
9924
|
+
|
9925
|
+
.ob-validation-notification-card-header-wrapper {
|
9926
|
+
display: flex;
|
9927
|
+
width: 100%;
|
9928
|
+
align-items: center;
|
9929
|
+
justify-content: space-between;
|
9930
|
+
}
|
9931
|
+
|
9932
|
+
.ob-validation-notification-card-header-title-wrapper {
|
9933
|
+
display: flex;
|
9934
|
+
align-items: center;
|
9935
|
+
}
|
9936
|
+
|
9937
|
+
.ob-validation-notification-card-header-title-text {
|
9938
|
+
font-weight: 600;
|
9939
|
+
}
|
9940
|
+
|
9941
|
+
.ob-validation-notification-card-header-title-icon {
|
9942
|
+
margin-right: 0.5rem;
|
9943
|
+
font-size: 22px;
|
9944
|
+
}
|
9945
|
+
|
9946
|
+
.ob-validation-notification-card-collapse-wrapper {
|
9947
|
+
transition-property: width, opacity;
|
9948
|
+
transition-duration: inherit;
|
9949
|
+
transition-timing-function: inherit;
|
9950
|
+
white-space: nowrap;
|
9951
|
+
overflow-x: hidden;
|
9952
|
+
}
|
9953
|
+
|
9954
|
+
.ob-validation-notification-wrapper .MuiCollapse-root {
|
9955
|
+
transition-property: height;
|
9956
|
+
transition-duration: inherit;
|
9957
|
+
transition-timing-function: inherit;
|
9958
|
+
}
|
9959
|
+
|
9960
|
+
.is-contracted .ob-validation-notification-card-collapse-wrapper {
|
9961
|
+
width: 196px;
|
9962
|
+
opacity: 0;
|
9963
|
+
}
|
9964
|
+
|
9965
|
+
.is-expanded .ob-validation-notification-card-collapse-wrapper {
|
9966
|
+
width: 300px;
|
9967
|
+
opacity: 1;
|
9968
|
+
}
|
9969
|
+
|
9970
|
+
.ob-validation-notification-card-page-label {
|
9971
|
+
font-weight: 600;
|
9972
|
+
font-size: 0.875rem;
|
9973
|
+
}
|
9974
|
+
|
9975
|
+
.ob-validation-notification-card-page-label.is-not-first {
|
9976
|
+
margin-top: 0.5rem;
|
9977
|
+
}
|
9978
|
+
|
9979
|
+
.ob-validation-notification-card-list {
|
9980
|
+
margin-top: 0.5rem;
|
9981
|
+
border-radius: 8px;
|
9982
|
+
}
|
9983
|
+
|
9984
|
+
.ob-validation-notification-card-item {
|
9985
|
+
display: flex;
|
9986
|
+
justify-content: space-between;
|
9987
|
+
align-items: center;
|
9988
|
+
padding: 0.5rem;
|
9989
|
+
}
|
9990
|
+
|
9991
|
+
.ob-validation-notification-card-item.is-first {
|
9992
|
+
border-top-left-radius: 8px;
|
9993
|
+
border-top-right-radius: 8px;
|
9994
|
+
}
|
9995
|
+
|
9996
|
+
.ob-validation-notification-card-item.is-last {
|
9997
|
+
border-bottom-left-radius: 8px;
|
9998
|
+
border-bottom-right-radius: 8px;
|
9999
|
+
}
|
10000
|
+
|
10001
|
+
.ob-validation-notification-card-item-text {
|
10002
|
+
white-space: nowrap;
|
10003
|
+
overflow: hidden;
|
10004
|
+
font-size: 0.875rem;
|
10005
|
+
}
|
10006
|
+
|
10007
|
+
.ob-validation-notification-card-item-text-error-message {
|
10008
|
+
overflow: hidden;
|
10009
|
+
text-overflow: ellipsis;
|
10010
|
+
}
|
10011
|
+
|
10012
|
+
.ob-validation-notification-card-item-icon {
|
10013
|
+
margin-left: 0.5rem;
|
10014
|
+
}
|
10015
|
+
|
10016
|
+
@media only screen and (max-width: 1024px) {
|
10017
|
+
.ob-bottom-navigation__content .ob-validation-notification-wrapper {
|
10018
|
+
margin-bottom: 4rem;
|
10019
|
+
}
|
10020
|
+
}
|
10021
|
+
@media only screen and (max-width: 769px) {
|
10022
|
+
.ob-validation-notification-wrapper {
|
10023
|
+
left: 1rem;
|
10024
|
+
}
|
10025
|
+
.is-contracted .ob-validation-notification-card-collapse-wrapper {
|
10026
|
+
width: 100%;
|
10027
|
+
}
|
10028
|
+
.is-expanded .ob-validation-notification-card-collapse-wrapper {
|
10029
|
+
width: 100%;
|
10030
|
+
}
|
10031
|
+
.section .ob-list.ob-validation-notification-card-list {
|
10032
|
+
margin-right: unset;
|
10033
|
+
margin-left: unset;
|
10034
|
+
width: unset;
|
10035
|
+
}
|
10036
|
+
}
|
9858
10037
|
.flatpickr-calendar {
|
9859
10038
|
background: transparent;
|
9860
10039
|
opacity: 0;
|
package/dist/styles.scss
CHANGED
@@ -141,6 +141,7 @@ $section-padding-mobile: $section-padding-mobile-y $section-padding-mobile-x;
|
|
141
141
|
@import './styles/api-nsw-liquor-licence.scss';
|
142
142
|
@import './styles/arcgis-web-map.scss';
|
143
143
|
@import './styles/abn.scss';
|
144
|
+
@import './styles/validation-errors-card.scss';
|
144
145
|
//
|
145
146
|
// Third Party
|
146
147
|
//
|
package/dist/types/form.d.ts
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
/// <reference types="react" />
|
2
1
|
import { FormTypes, SubmissionTypes, IntegrationTypes } from '@oneblink/types';
|
3
2
|
export { FormElementConditionallyShownElement, FormElementConditionallyShown, FormElementsConditionallyShown, } from '@oneblink/sdk-core/dist/conditionalLogicService';
|
4
3
|
export type FormElementKey = string;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { FormTypes } from '@oneblink/types';
|
2
|
+
declare class ElementDOMId {
|
3
|
+
elementDOMId: string;
|
4
|
+
constructor(params: {
|
5
|
+
element: FormTypes.FormElementWithName;
|
6
|
+
idPrefix: string;
|
7
|
+
} | string);
|
8
|
+
get value(): string;
|
9
|
+
get elementContainerDOMId(): string;
|
10
|
+
get subFormDOMIdPrefix(): string;
|
11
|
+
repeatableSetEntryDOMIdPrefix: (entryKey: string) => string;
|
12
|
+
}
|
13
|
+
export default ElementDOMId;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class ElementDOMId {
|
2
|
+
constructor(params) {
|
3
|
+
this.repeatableSetEntryDOMIdPrefix = (entryKey) => {
|
4
|
+
return `${this.elementDOMId}_entry-${entryKey}_`;
|
5
|
+
};
|
6
|
+
if (typeof params !== 'string') {
|
7
|
+
this.elementDOMId = `${params.idPrefix}${params.element.name}`;
|
8
|
+
}
|
9
|
+
else {
|
10
|
+
this.elementDOMId = params;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
get value() {
|
14
|
+
return this.elementDOMId;
|
15
|
+
}
|
16
|
+
get elementContainerDOMId() {
|
17
|
+
return `element-container__${this.elementDOMId}`;
|
18
|
+
}
|
19
|
+
get subFormDOMIdPrefix() {
|
20
|
+
return `${this.elementDOMId}_`;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
export default ElementDOMId;
|
24
|
+
//# sourceMappingURL=elementDOMIds.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"elementDOMIds.js","sourceRoot":"","sources":["../../src/utils/elementDOMIds.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY;IAEhB,YACE,MAKU;QAoBZ,kCAA6B,GAAG,CAAC,QAAgB,EAAE,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC,YAAY,UAAU,QAAQ,GAAG,CAAA;QAClD,CAAC,CAAA;QApBC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IACD,IAAI,qBAAqB;QACvB,OAAO,sBAAsB,IAAI,CAAC,YAAY,EAAE,CAAA;IAClD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,CAAA;IAChC,CAAC;CAKF;AAED,eAAe,YAAY,CAAA","sourcesContent":["import { FormTypes } from '@oneblink/types'\n\nclass ElementDOMId {\n elementDOMId: string\n constructor(\n params:\n | {\n element: FormTypes.FormElementWithName\n idPrefix: string\n }\n | string,\n ) {\n if (typeof params !== 'string') {\n this.elementDOMId = `${params.idPrefix}${params.element.name}`\n } else {\n this.elementDOMId = params\n }\n }\n\n get value() {\n return this.elementDOMId\n }\n get elementContainerDOMId() {\n return `element-container__${this.elementDOMId}`\n }\n\n get subFormDOMIdPrefix() {\n return `${this.elementDOMId}_`\n }\n\n repeatableSetEntryDOMIdPrefix = (entryKey: string) => {\n return `${this.elementDOMId}_entry-${entryKey}_`\n }\n}\n\nexport default ElementDOMId\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"merge-executed-lookups.js","sourceRoot":"","sources":["../../src/utils/merge-executed-lookups.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAKhB;;IACC,IAAI,CAAC,gBAAgB,EAAE;
|
1
|
+
{"version":3,"file":"merge-executed-lookups.js","sourceRoot":"","sources":["../../src/utils/merge-executed-lookups.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAKhB;;IACC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,sBAAsB,GAAG,EAAE,GAAG,eAAe,EAAE,CAAA;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,sBAAsB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;;gBACvD,MAAM,sBAAsB,GAC1B,MAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,GAAG,CAAuB,mCAAI,EAAE,CAAA;gBACrD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,GAAG,CAAC,CAAC;oBAC1D,CAAC,CAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAChB,GAAG,CACiD;oBACxD,CAAC,CAAC,EAAE,CAAA;gBACN,OAAO,oBAAoB,CAAC;oBAC1B,gBAAgB,EAAE,KAAK;oBACvB,iBAAiB,EAAE,YAAY,CAAC,KAAK,CAAC;oBACtC,eAAe,EAAE,MAAA,sBAAsB,CAAC,KAAK,CAAC,mCAAI,EAAE;iBACrD,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5B,sBAAsB,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC;gBACjD,gBAAgB,EACd,KAAuD;gBACzD,iBAAiB,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAClC,GAAG,CAC8C;gBACnD,eAAe,EAAE,MAAC,sBAAsB,CAAC,GAAG,CAAqB,mCAAI,EAAE;aACxE,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,sBAAsB,CAAC,GAAG,CAAC;YACzB,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,MAAK,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,GAAG,CAAC,CAAA,CAAA;IAC9E,CAAC;IACD,OAAO,sBAAsB,CAAA;AAC/B,CAAC","sourcesContent":["import { SubmissionTypes } from '@oneblink/types'\nimport { ExecutedLookups } from '../types/form'\n\nexport default function mergeExecutedLookups({\n dataLookupResult,\n currentSubmission,\n executedLookups,\n}: {\n dataLookupResult: SubmissionTypes.S3SubmissionData['submission'] | undefined\n currentSubmission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n executedLookups: ExecutedLookups\n}): ExecutedLookups {\n if (!dataLookupResult) {\n return executedLookups\n }\n\n const updatedExecutedLookups = { ...executedLookups }\n for (const [key, value] of Object.entries(dataLookupResult)) {\n if (Array.isArray(value)) {\n updatedExecutedLookups[key] = value.map((entry, index) => {\n const elementExecutedLookups =\n (executedLookups?.[key] as ExecutedLookups[]) ?? []\n const elementValue = Array.isArray(currentSubmission?.[key])\n ? (currentSubmission?.[\n key\n ] as SubmissionTypes.S3SubmissionData['submission'][])\n : []\n return mergeExecutedLookups({\n dataLookupResult: entry,\n currentSubmission: elementValue[index],\n executedLookups: elementExecutedLookups[index] ?? {},\n })\n })\n continue\n }\n if (Object(value) === value) {\n updatedExecutedLookups[key] = mergeExecutedLookups({\n dataLookupResult:\n value as SubmissionTypes.S3SubmissionData['submission'],\n currentSubmission: currentSubmission?.[\n key\n ] as SubmissionTypes.S3SubmissionData['submission'],\n executedLookups: (updatedExecutedLookups[key] as ExecutedLookups) ?? {},\n })\n continue\n }\n updatedExecutedLookups[key] =\n updatedExecutedLookups[key] === true && value === currentSubmission?.[key]\n }\n return updatedExecutedLookups\n}\n"]}
|