@oneblink/apps-react 8.6.1 → 8.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OneBlinkForm.d.ts +2 -0
- package/dist/OneBlinkFormBase.d.ts +4 -2
- package/dist/OneBlinkFormBase.js +19 -15
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/components/OneBlinkFormFooter.d.ts +6 -0
- package/dist/components/OneBlinkFormFooter.js +9 -0
- package/dist/components/OneBlinkFormFooter.js.map +1 -0
- package/dist/components/formStore/table/FormElementTableCell.js +1 -0
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/renderer/FormElementValidationMessage.d.ts +7 -0
- package/dist/components/renderer/FormElementValidationMessage.js +21 -0
- package/dist/components/renderer/FormElementValidationMessage.js.map +1 -0
- package/dist/components/renderer/LookupNotification.js +8 -3
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js +4 -0
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/form-elements/FormElementABN.js +2 -2
- package/dist/form-elements/FormElementABN.js.map +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js +2 -2
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.js +2 -2
- package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
- package/dist/form-elements/FormElementBSB.js +2 -2
- package/dist/form-elements/FormElementBSB.js.map +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.js +2 -2
- package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
- package/dist/form-elements/FormElementBoolean.js +2 -2
- package/dist/form-elements/FormElementBoolean.js.map +1 -1
- package/dist/form-elements/FormElementCamera.js +2 -2
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.js +3 -4
- package/dist/form-elements/FormElementCaptcha.js.map +1 -1
- package/dist/form-elements/FormElementCheckBoxes.js +2 -2
- package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js +2 -2
- package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.js +2 -2
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementDate.js +2 -2
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/form-elements/FormElementDateTime.js +2 -2
- package/dist/form-elements/FormElementDateTime.js.map +1 -1
- package/dist/form-elements/FormElementEmail.js +2 -2
- package/dist/form-elements/FormElementEmail.js.map +1 -1
- package/dist/form-elements/FormElementFiles.js +2 -2
- package/dist/form-elements/FormElementFiles.js.map +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js +2 -2
- package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js +2 -2
- package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
- package/dist/form-elements/FormElementLocation.js +3 -4
- package/dist/form-elements/FormElementLocation.js.map +1 -1
- package/dist/form-elements/FormElementLookupButton.d.ts +17 -0
- package/dist/form-elements/FormElementLookupButton.js +205 -0
- package/dist/form-elements/FormElementLookupButton.js.map +1 -0
- package/dist/form-elements/FormElementNumber.js +2 -2
- package/dist/form-elements/FormElementNumber.js.map +1 -1
- package/dist/form-elements/FormElementPointAddress.js +2 -2
- package/dist/form-elements/FormElementPointAddress.js.map +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.js +2 -2
- package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
- package/dist/form-elements/FormElementRadio.js +2 -2
- package/dist/form-elements/FormElementRadio.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.js +2 -2
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSelect.js +2 -2
- package/dist/form-elements/FormElementSelect.js.map +1 -1
- package/dist/form-elements/FormElementSignature.js +2 -2
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementTelephone.js +2 -2
- package/dist/form-elements/FormElementTelephone.js.map +1 -1
- package/dist/form-elements/FormElementText.js +5 -2
- package/dist/form-elements/FormElementText.js.map +1 -1
- package/dist/form-elements/FormElementTextarea.js +5 -2
- package/dist/form-elements/FormElementTextarea.js.map +1 -1
- package/dist/form-elements/FormElementTime.js +2 -2
- package/dist/form-elements/FormElementTime.js.map +1 -1
- package/dist/hooks/useValidationIconConfiguration.d.ts +9 -0
- package/dist/hooks/useValidationIconConfiguration.js +6 -0
- package/dist/hooks/useValidationIconConfiguration.js.map +1 -0
- package/dist/services/cleanFormSubmissionModel.js +21 -11
- package/dist/services/cleanFormSubmissionModel.js.map +1 -1
- package/dist/services/form-validation/determineLookupButtonIsRequired.d.ts +2 -0
- package/dist/services/form-validation/determineLookupButtonIsRequired.js +46 -0
- package/dist/services/form-validation/determineLookupButtonIsRequired.js.map +1 -0
- package/dist/services/form-validation/validateSubmission.js +14 -0
- package/dist/services/form-validation/validateSubmission.js.map +1 -1
- package/dist/services/generate-default-data.js +2 -0
- package/dist/services/generate-default-data.js.map +1 -1
- package/dist/styles/renderer.scss +8 -0
- package/dist/styles.css +8 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeTypes.GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointCadastralParcel': {\n const value = unknown as PointTypes.PointCadastralParcelResponse\n const parcelId = value?.parcelBundle?.[0]?.parcelId\n if (typeof parcelId !== 'string') {\n break\n }\n return (\n <>\n {parcelId}\n <TableCellCopyButton isHidden={!allowCopy} text={parcelId} />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointTypes.PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as MiscTypes.ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'arcGISWebMap':\n case 'summary':\n case 'freshdeskDependentField':\n case 'compliance': {\n return null\n }\n\n default: {\n const never: never = formElement\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n never,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
|
|
1
|
+
{"version":3,"file":"FormElementTableCell.js","sourceRoot":"","sources":["../../../../src/components/formStore/table/FormElementTableCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Link, Typography } from '@mui/material'\nimport { localisationService } from '@oneblink/apps'\nimport {\n APINSWTypes,\n FormTypes,\n GeoscapeTypes,\n GoogleTypes,\n MiscTypes,\n PointTypes,\n SubmissionTypes,\n} from '@oneblink/types'\nimport { abnService } from '@oneblink/sdk-core'\nimport {\n FileChip,\n FilesElementDataTableCellContent,\n MultiSelectFormElementTableCellContent,\n getSelectedOptionLabel,\n} from '../display/ElementDisplay'\nimport RepeatableSetCell from './RepeatableSetCell'\nimport TableCellCopyButton from './TableCellCopyButton'\nimport { format } from 'date-fns'\n\ntype Props = {\n formElement: FormTypes.FormElement\n submission: SubmissionTypes.S3SubmissionData['submission'] | undefined\n allowCopy: boolean\n}\n\nfunction FormElementTableCell({ formElement, submission, allowCopy }: Props) {\n if (formElement.type === 'page' || formElement.type === 'section') {\n return null\n }\n const unknown = submission?.[formElement.name]\n if (unknown === undefined || unknown === null) {\n return null\n }\n\n switch (formElement.type) {\n case 'repeatableSet': {\n if (!Array.isArray(unknown)) {\n break\n }\n return <RepeatableSetCell formElement={formElement} value={unknown} />\n }\n\n case 'location': {\n const value = unknown as {\n latitude: number\n longitude: number\n }\n if (!value.latitude || !value.longitude) {\n break\n }\n\n const latLong = `${value.latitude},${value.longitude}`\n return (\n <>\n <div>\n <Typography variant=\"inherit\" component=\"p\">\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://maps.google.com/?q=${latLong}`}\n >\n View in Google Maps\n </Link>\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Latitude: {value.latitude}\n </Typography>\n <Typography variant=\"inherit\" component=\"p\" color=\"textSecondary\">\n Longitude: {value.longitude}\n </Typography>\n </div>\n <TableCellCopyButton isHidden={!allowCopy} text={latLong} />\n </>\n )\n }\n\n case 'camera':\n case 'draw': {\n return (\n <FileChip\n file={unknown as React.ComponentProps<typeof FileChip>['file']}\n />\n )\n }\n\n case 'textarea': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <span\n style={{\n whiteSpace: 'pre-line',\n }}\n >\n {unknown}\n </span>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'date': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value: unknown,\n })\n if (!date) {\n break\n }\n const text = localisationService.formatDate(date)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'time': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { time: timeFormat } = localisationService.getDateFnsFormats()\n const text = format(date, timeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'datetime': {\n if (typeof unknown !== 'string') {\n break\n }\n const date = new Date(unknown)\n if (isNaN(date.getTime())) {\n break\n }\n const { shortDateTime: shortDateTimeFormat } =\n localisationService.getDateFnsFormats()\n const text = format(date, shortDateTimeFormat)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'number': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'radio':\n case 'autocomplete':\n case 'checkboxes':\n case 'select': {\n if (\n formElement.type === 'checkboxes' ||\n (formElement.type === 'select' && formElement.multi)\n ) {\n if (\n !Array.isArray(unknown) ||\n !unknown.length ||\n typeof unknown[0] !== 'string'\n ) {\n break\n }\n const text = (unknown as string[])\n .map((selection) => getSelectedOptionLabel(formElement, selection))\n .join(', ')\n return (\n <>\n <MultiSelectFormElementTableCellContent\n value={unknown}\n formElement={formElement}\n />\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n } else {\n if (typeof unknown !== 'string') {\n break\n }\n const text = getSelectedOptionLabel(formElement, unknown)\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n }\n\n case 'email': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`mailto:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'telephone': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`tel:${unknown}`}\n >\n {unknown}\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n case 'text':\n case 'bsb':\n case 'barcodeScanner': {\n if (typeof unknown !== 'string') {\n break\n }\n return (\n <>\n {unknown}\n <TableCellCopyButton isHidden={!allowCopy} text={unknown} />\n </>\n )\n }\n\n case 'files': {\n const value = unknown as React.ComponentProps<\n typeof FilesElementDataTableCellContent\n >['value']\n if (\n !Array.isArray(value) ||\n !value.length ||\n typeof value[0]?.fileName !== 'string'\n ) {\n break\n }\n return <FilesElementDataTableCellContent value={value} />\n }\n\n case 'calculation': {\n if (typeof unknown !== 'number') {\n break\n }\n const text = formElement.displayAsCurrency\n ? localisationService.formatCurrency(unknown)\n : localisationService.formatNumber(unknown)\n return (\n <>\n {text}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={unknown.toString()}\n />\n </>\n )\n }\n\n case 'civicaStreetName': {\n const value = unknown as {\n formattedStreet: string\n }\n if (typeof value?.formattedStreet !== 'string') {\n break\n }\n return (\n <>\n {value.formattedStreet}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={value.formattedStreet}\n />\n </>\n )\n }\n\n case 'civicaNameRecord': {\n const value = unknown as {\n title?: string\n givenName1?: string\n familyName?: string\n emailAddress: string\n }\n if (typeof value?.emailAddress !== 'string') {\n break\n }\n const text =\n [value?.title, value?.givenName1, value?.familyName]\n .filter((t) => t)\n .join(' ') || value?.emailAddress\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'geoscapeAddress': {\n const value = unknown as GeoscapeTypes.GeoscapeAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n Geoscape Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'pointCadastralParcel': {\n const value = unknown as PointTypes.PointCadastralParcelResponse\n const parcelId = value?.parcelBundle?.[0]?.parcelId\n if (typeof parcelId !== 'string') {\n break\n }\n return (\n <>\n {parcelId}\n <TableCellCopyButton isHidden={!allowCopy} text={parcelId} />\n </>\n )\n }\n\n case 'pointAddress': {\n const value = unknown as PointTypes.PointAddress\n if (typeof value.addressId !== 'string') {\n break\n }\n const fullAddress = value?.addressDetails?.formattedAddress || (\n <>\n NSW Point Address ID: <i>{value.addressId}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'googleAddress': {\n const value = unknown as GoogleTypes.GoogleMapsAddress\n const fullAddress = value?.formatted_address || (\n <>\n Google Address: <i>{value?.place_id}</i>\n </>\n )\n return (\n <>\n {fullAddress}\n <TableCellCopyButton\n isHidden={!allowCopy}\n text={fullAddress as string}\n />\n </>\n )\n }\n\n case 'boolean': {\n if (typeof unknown !== 'boolean') {\n break\n }\n const text = unknown ? 'Yes' : 'No'\n return (\n <>\n {text}\n <TableCellCopyButton isHidden={!allowCopy} text={text} />\n </>\n )\n }\n\n case 'abn': {\n const value = unknown as MiscTypes.ABNRecord\n if (!value.ABN || !value.entityType) {\n break\n }\n const abnNumber = abnService.displayABNNumberFromABNRecord(value)\n return (\n <>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`https://www.abr.business.gov.au/ABN/View/${abnNumber}`}\n >\n {abnNumber} |{' '}\n <i>{abnService.displayBusinessNameFromABNRecord(value)}</i>\n </Link>\n <TableCellCopyButton isHidden={!allowCopy} text={abnNumber} />\n </>\n )\n }\n case 'apiNSWLiquorLicence': {\n const value = unknown as APINSWTypes.LiquorLicenceDetails\n const licenceNumber =\n `${value.licenceDetail?.licenceNumber} | ${value.licenceDetail?.licenceName}`.trim()\n if (!licenceNumber) {\n break\n }\n return (\n <>\n {licenceNumber}\n <TableCellCopyButton isHidden={!allowCopy} text={licenceNumber} />\n </>\n )\n }\n\n case 'lookupButton':\n case 'html':\n case 'form':\n case 'infoPage':\n case 'captcha':\n case 'image':\n case 'heading':\n case 'arcGISWebMap':\n case 'summary':\n case 'freshdeskDependentField':\n case 'compliance': {\n return null\n }\n\n default: {\n const never: never = formElement\n console.warn(\n 'Unsupported element type in Submission Data rendering',\n never,\n )\n return null\n }\n }\n\n return <>{JSON.stringify(unknown)}</>\n}\n\nexport default React.memo(FormElementTableCell)\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import useValidationIconConfiguration from '../../hooks/useValidationIconConfiguration';
|
|
4
|
+
import MaterialIcon from '../MaterialIcon';
|
|
5
|
+
export const ValidationIcon = React.memo(function ValidationIcon() {
|
|
6
|
+
const validationIconConfiguration = useValidationIconConfiguration();
|
|
7
|
+
if (!validationIconConfiguration) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return (React.createElement(MaterialIcon, { "aria-label": validationIconConfiguration.accessibleLabel, "aria-hidden": !validationIconConfiguration.accessibleLabel, className: "mr-2 ob-error__validation-icon" }, validationIconConfiguration.icon));
|
|
11
|
+
});
|
|
12
|
+
export default React.memo(function FormElementValidationMessage({ message, className, }) {
|
|
13
|
+
if (!message) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
|
|
17
|
+
React.createElement("div", { className: clsx('has-text-danger ob-error__text cypress-validation-message', className) },
|
|
18
|
+
React.createElement(ValidationIcon, null),
|
|
19
|
+
React.createElement("span", null, message))));
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=FormElementValidationMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormElementValidationMessage.js","sourceRoot":"","sources":["../../../src/components/renderer/FormElementValidationMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,8BAA8B,MAAM,4CAA4C,CAAA;AACvF,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,cAAc;IAC9D,MAAM,2BAA2B,GAAG,8BAA8B,EAAE,CAAA;IAEpE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,oBAAC,YAAY,kBACC,2BAA2B,CAAC,eAAe,iBAC1C,CAAC,2BAA2B,CAAC,eAAe,EACzD,SAAS,EAAC,gCAAgC,IAEzC,2BAA2B,CAAC,IAAI,CACpB,CAChB,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,4BAA4B,CAAC,EAC9D,OAAO,EACP,SAAS,GAIV;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,6BAAK,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,kBAAkB;QAC5C,6BACE,SAAS,EAAE,IAAI,CACb,2DAA2D,EAC3D,SAAS,CACV;YAED,oBAAC,cAAc,OAAG;YAClB,kCAAO,OAAO,CAAQ,CAClB,CACF,CACP,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport useValidationIconConfiguration from '../../hooks/useValidationIconConfiguration'\nimport MaterialIcon from '../MaterialIcon'\n\nexport const ValidationIcon = React.memo(function ValidationIcon() {\n const validationIconConfiguration = useValidationIconConfiguration()\n\n if (!validationIconConfiguration) {\n return null\n }\n\n return (\n <MaterialIcon\n aria-label={validationIconConfiguration.accessibleLabel}\n aria-hidden={!validationIconConfiguration.accessibleLabel}\n className=\"mr-2 ob-error__validation-icon\"\n >\n {validationIconConfiguration.icon}\n </MaterialIcon>\n )\n})\n\nexport default React.memo(function FormElementValidationMessage({\n message,\n className,\n}: {\n message?: string\n className?: string\n}) {\n if (!message) {\n return null\n }\n\n return (\n <div role=\"alert\" className=\"has-margin-top-8\">\n <div\n className={clsx(\n 'has-text-danger ob-error__text cypress-validation-message',\n className,\n )}\n >\n <ValidationIcon />\n <span>{message}</span>\n </div>\n </div>\n )\n})\n"]}
|
|
@@ -200,9 +200,14 @@ function LookupNotificationComponent({ autoLookupValue, stringifyAutoLookupValue
|
|
|
200
200
|
// We add this stringify function here to allow the value to be
|
|
201
201
|
// an object which may have a reference change, but the values
|
|
202
202
|
// have not changed. e.g. the 'location' element's value
|
|
203
|
-
const autoLookupValueString =
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
const autoLookupValueString = React.useMemo(() => {
|
|
204
|
+
if (stringifyAutoLookupValue) {
|
|
205
|
+
return stringifyAutoLookupValue(autoLookupValue);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
return autoLookupValue;
|
|
209
|
+
}
|
|
210
|
+
}, [autoLookupValue, stringifyAutoLookupValue]);
|
|
206
211
|
React.useEffect(() => {
|
|
207
212
|
if (isLoading || loadError) {
|
|
208
213
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookupNotification.js","sourceRoot":"","sources":["../../../src/components/renderer/LookupNotification.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAe,MAAM,gBAAgB,CAAA;AAGpD,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AACtE,OAAO,EACL,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAC7D,OAAO,cAAc,MAAM,4BAA4B,CAAA;AACvD,OAAO,sBAAsB,MAAM,2CAA2C,CAAA;AAC9E,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAC7D,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,qBAAqB,MAAM,mCAAmC,CAAA;AACrE,OAAO,oBAAoB,MAAM,oCAAoC,CAAA;AAGrE,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAe1C,SAAS,2BAA2B,CAAC,EACnC,eAAe,EACf,wBAAwB,EACxB,OAAO,EACP,QAAQ,EACR,QAAQ,GACF;IACN,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACtC,MAAM,gBAAgB,GAAG,cAAc,EAAE,CAAA;IACzC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,GAC5D,qBAAqB,EAAE,CAAA;IAEzB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAExD,SAAS,CAAC,CAAA;IACZ,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1D,IAAI,CACL,CAAA;IACD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAE/D,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,KAAK,OAAO,CAAC,eAAe,CACtE,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1E,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/C,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,KAAK,OAAO,CAAC,YAAY,CAChE,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEpE,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAU,GAAG,EAAE;QACnD,OAAO,CAAC,CAAC,CACP,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,gBAAgB;aACvC,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,gBAAgB,CAAA,CAC3C,CAAA;IACH,CAAC,EAAE;QACD,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,gBAAgB;QACvC,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,gBAAgB;KAC3C,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,CAAC,CACP,CAAC,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,MAAK,aAAa;aAC5C,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,iBAAiB,CAAA,CAAC;YAC3C,CAAC,CAAA,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,IAAI,MAAK,aAAa;iBAC/C,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,iBAAiB,CAAA,CAAC,CAC/C,CAAA;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAErD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,EACC,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GAQf,EAAE,EAAE;QACH,MAAM,oBAAoB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,mBAAmB,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YAC1D,IAAI,mBAAmB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrE,gBAAgB,CACd,OAAO,EACP,mBAA8C,EAC9C,gBAAgB,CACjB,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE;YACrD,IAAI,WAAW,GAA4B,QAAQ,CAAA;YACnD,IACE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAClC,oBAAoB,KAAK,KAAK,EAC9B,CAAC;gBACD,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,CACvC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC9B,CAAA;gBACD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,WAAW,GAAG,QAAQ,CAAC,MAAM;oBAC3B,yFAAyF;oBACzF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,KAAK,OAAO,CAAC,EAAE,CAC5C,CAAA;oBACD,WAAW,CAAC,MAAM,CAChB,cAAc,GAAG,CAAC,EAClB,CAAC,EACD,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC/B,yFAAyF;wBACzF,CAAC,CAAC,mBAAmB,GAAG,OAAO,CAAC,EAAE,CAAA;wBAClC,OAAO,CAAC,CAAA;oBACV,CAAC,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE;oBAC3C,GAAG,UAAU;oBACb,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ;oBACxB,GAAG,gBAAgB;iBACpB,CAAC;gBACF,eAAe,EAAE,oBAAoB,CAAC;oBACpC,gBAAgB;oBAChB,iBAAiB,EAAE,UAAU;oBAC7B,eAAe,EAAE;wBACf,GAAG,eAAe;wBAClB,GAAG,cAAc;qBAClB;iBACF,CAAC;aACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CACtC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,CACL,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,IAAI,KAAK,aAAa,CAAC;YACvE,CAAC,wBAAwB;gBACvB,wBAAwB,CAAC,IAAI,KAAK,aAAa,CAAC,CACnD,CAAA;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAErD,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAGrC,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,EAAE,EAAE;QAC7D,iCAAiC;QACjC,IAAI,cAAc;YAAE,OAAM;QAE1B,cAAc,CAAC,IAAI,CAAC,CAAA;QAEpB,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;YACnC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvB,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;YAC3B,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,cAAc,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;YACD,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,uDAAuD;QACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3C,gBAAgB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,MAAM,OAAO,GAAuB;YAClC,OAAO;YACP,UAAU,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvD,UAAU,EAAE;gBACV,GAAG,KAAK;gBACR,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ;aACzB;SACF,CAAA;QAED,IAAI,CAAC;YACH,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChE,WAAW,CAAC,qBAAqB,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;gBACnE,WAAW,CACT,wBAAwB,EACxB,OAAO,EACP,eAAe,CAAC,MAAM,CACvB;aACF,CAAC,CAAA;YAEF,eAAe,CAAC;gBACd,QAAQ;gBACR,gBAAgB,EAAE,gBAEL;gBACb,mBAAmB,EAAE,mBAER;gBACb,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;aACzC,CAAC,CAAA;YAEF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;YAED,kEAAkE;YAClE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAM;YACR,CAAC;YAED,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,eAAe,CAAC;gBACd,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,gBAAgB,EAAE,EAAE;gBACpB,mBAAmB,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;aAC1C,CAAC,CAAA;YACF,kBAAkB,CAChB,OAAO,KAAK,KAAK,QAAQ;gBACvB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,gHAAgH,CACrH,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,oBAAoB,CAAC,CAAA;YAClC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,EACD;QACE,UAAU;QACV,OAAO;QACP,iBAAiB;QACjB,qBAAqB;QACrB,wBAAwB;QACxB,cAAc;QACd,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,eAAe;QACf,KAAK;KACN,CACF,CAAA;IAED,+CAA+C;IAC/C,gEAAgE;IAChE,+DAA+D;IAC/D,8DAA8D;IAC9D,wDAAwD;IACxD,MAAM,qBAAqB,GAAG,wBAAwB;QACpD,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC;QAC3C,CAAC,CAAC,eAAe,CAAA;IACnB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,IAAI,kBAAkB,CAAA;QAE1D,yEAAyE;QACzE,uEAAuE;QACvE,qFAAqF;QACrF,IACE,CAAC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,CAAC;YAC3D,CAAC,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC,EACpC,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,OAAM;QACR,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,aAAa,CAAC;YACZ,QAAQ,EAAE,eAAe;YACzB,eAAe;YACf,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAA;QACD,gDAAgD;QAChD,sDAAsD;QACtD,qDAAqD;QACrD,2DAA2D;QAC3D,uDAAuD;IACzD,CAAC,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAA;IAEtC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,aAAa,CAAC;YACZ,QAAQ,EAAE,eAAe;YACzB,eAAe;YACf,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;IAEpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,IAAI;QACd,UAAU;QACV,SAAS;QACT,QAAQ,EAAE,aAAa;QACvB,uBAAuB,EAAE,gBAAgB;QACzC,WAAW;KACZ,CAAC,EACF,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,CAAC,CACtE,CAAA;IAED,OAAO,CACL,oBAAC,yBAAyB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;QACpD,QAAQ;QAER,SAAS,IAAI,CACZ,oBAAC,YAAY,IACX,KAAK,EAAC,6BAA6B,EACnC,UAAU,EAAE,UAAU;YAEtB,8BAAM,SAAS,EAAC,2CAA2C,IACxD,SAAS,CAAC,OAAO,CACb,CACM,CAChB;QAED,6BACE,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE;gBACzC,eAAe,EAAE,WAAW;gBAC5B,aAAa,EACX,eAAe,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,CAAC;gBAC3D,cAAc,EACZ,eAAe;oBACf,eAAe,KAAK,SAAS;oBAC7B,eAAe,KAAK,IAAI;aAC3B,CAAC;YAEF,6BAAK,SAAS,EAAC,iDAAiD;gBAC7D,eAAe,IAAI,CAClB;oBACE,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,gBACzB,6BAA6B,GACxC;oBAEF,iCACG,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAChC;wBACE,oBAAC,YAAY,IAAC,SAAS,EAAC,0BAA0B,eAEnC;wBACf,2BAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,oFAG/B,CACA,CACP,CAAC,CAAC,CAAC,CACF;wBACE,oBAAC,YAAY,IAAC,SAAS,EAAC,yBAAyB,oBAElC;wBACf,2BACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,SAAS;4BACnB,2CAA2C;4BAC3C,uBAAuB,EAAE;gCACvB,MAAM,EAAE,eAAe,IAAI,EAAE;6BAC9B,GACD;wBACD,eAAe,KAAK,SAAS;4BAC5B,eAAe,KAAK,IAAI,IAAI,CAC1B,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,gGAAgG,CACjG,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAC5B,QAAQ,EAAE,UAAU,IAAI,SAAS,gBACtB,qBAAqB;4BAEhC,iCAAa;4BACb,8BAAM,SAAS,EAAC,MAAM;gCACpB,oBAAC,YAAY,IAAC,SAAS,EAAC,SAAS,cAElB,CACV;4BACP,uDAA+B,CACxB,CACV,CACC,CACP,CACG,CACL,CACJ;gBAEA,kBAAkB,IAAI,CACrB;oBACE,oBAAC,YAAY,IACX,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAC,QAAQ,gBACF,mBAAmB,2BAGjB,CACd,CACJ;gBAEA,CAAC,kBAAkB,IAAI,CAAC,eAAe,IAAI,oBAAC,SAAS,IAAC,KAAK,SAAG;gBAE9D,aAAa,IAAI,CAAC,kBAAkB,IAAI,CAAC,eAAe,IAAI,CAC3D,6BAAK,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO;oBACpD,8DAAmC;oBACnC,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,cAAc,aAGhB,CACL,CACP,CACG,CACF,CAC6B,CACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAY;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAChE,OAAO,oBAAC,2BAA2B,OAAK,KAAK,GAAI,CAAA;IACnD,CAAC;IAED,OAAO,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,iBAAkE,EAClE,OAA2B,EAC3B,WAAwB;IAMxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAM;IACR,CAAC;IAED,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAElD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC;YAC5C,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAC/D,CAAA;QAED,wBAAwB;QACxB,OAAO,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,MAAM,CAEpC,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE;YAC1B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,MAAM;oBACT,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAA;oBACpD,MAAK;gBACP,KAAK,QAAQ;oBACX,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;oBACtD,MAAK;gBACP,KAAK,OAAO;oBACV,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;oBACjD,MAAK;YACT,CAAC;YACD,OAAO,YAAY,CAAA;QACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACT,uEAAuE,EACvE,iBAAiB,CAClB,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAA;IACvC,OAAO,CAAC,GAAG,CACT,gBAAgB,iBAAiB,CAAC,IAAI,qBAAqB,EAC3D,iBAAiB,CAAC,GAAG,CACtB,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,WAAW;KACpB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO,CAAC,GAAG,CACT,+BAA+B,EAC/B,iBAAiB,CAAC,GAAG,EACrB,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAA;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,gBAAgB,CACrB,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,MAAM,0BAA0B,CAAC,CACjE,CAAA;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,OAAO,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,IAA+B,CAAA;AACxC,CAAC","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { generateHeaders } from '@oneblink/apps/dist/services/fetch'\nimport { Sentry, formService } from '@oneblink/apps'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\n\nimport useIsOffline from '../../hooks/useIsOffline'\nimport OnLoading from './OnLoading'\nimport generateDefaultData from '../../services/generate-default-data'\nimport {\n LookupNotificationContext,\n LookupNotificationContextValue,\n} from '../../hooks/useLookupNotification'\nimport useFormDefinition from '../../hooks/useFormDefinition'\nimport useInjectPages from '../../hooks/useInjectPages'\nimport useFormSubmissionModel from '../../hooks/useFormSubmissionModelContext'\nimport useFormIsReadOnly from '../../hooks/useFormIsReadOnly'\nimport useIsMounted from '../../hooks/useIsMounted'\nimport useFormElementLookups from '../../hooks/useFormElementLookups'\nimport mergeExecutedLookups from '../../utils/merge-executed-lookups'\n\nimport { FormElementLookupHandler, ExecutedLookups } from '../../types/form'\nimport ErrorMessage from '../messages/ErrorMessage'\nimport MaterialIcon from '../MaterialIcon'\n\ntype FetchLookupPayload = {\n element: FormTypes.LookupFormElement\n definition?: FormTypes.Form\n submission: SubmissionTypes.S3SubmissionData['submission']\n}\ntype Props = {\n autoLookupValue?: unknown\n stringifyAutoLookupValue?: (autoLookupValue: unknown) => string\n element: FormTypes.LookupFormElement\n onLookup: FormElementLookupHandler\n children: React.ReactNode\n}\n\nfunction LookupNotificationComponent({\n autoLookupValue,\n stringifyAutoLookupValue,\n element,\n onLookup,\n children,\n}: Props) {\n const isMounted = useIsMounted()\n const isOffline = useIsOffline()\n const definition = useFormDefinition()\n const injectPagesAfter = useInjectPages()\n const { isLoading, formElementLookups, loadError, onTryAgain } =\n useFormElementLookups()\n\n const [onCancelLookup, setOnCancelLookup] = React.useState<\n (() => void) | undefined\n >(undefined)\n const [isLookingUp, setIsLookingUp] = React.useState(false)\n const [hasLookupFailed, setHasLookupFailed] = React.useState(false)\n const [hasLookupSucceeded, setHasLookupSucceeded] = React.useState(false)\n const [isCancellable, setIsCancellable] = React.useState(false)\n const [isDisabled, setIsDisabled] = React.useState(false)\n const [lookupErrorHTML, setLookupErrorHTML] = React.useState<string | null>(\n null,\n )\n const formIsReadOnly = useFormIsReadOnly()\n const { formSubmissionModel: model } = useFormSubmissionModel()\n\n const formElementElementLookup = React.useMemo(() => {\n return formElementLookups.find(\n ({ id }) => element.isElementLookup && id === element.elementLookupId,\n )\n }, [element.elementLookupId, element.isElementLookup, formElementLookups])\n\n const formElementDataLookup = React.useMemo(() => {\n return formElementLookups.find(\n ({ id }) => element.isDataLookup && id === element.dataLookupId,\n )\n }, [element.dataLookupId, element.isDataLookup, formElementLookups])\n\n const runLookupOnClear = React.useMemo<boolean>(() => {\n return !!(\n formElementDataLookup?.runLookupOnClear ||\n formElementElementLookup?.runLookupOnClear\n )\n }, [\n formElementDataLookup?.runLookupOnClear,\n formElementElementLookup?.runLookupOnClear,\n ])\n\n const excludeDefinition = React.useMemo(() => {\n return !!(\n (formElementDataLookup?.type !== 'STATIC_DATA' &&\n formElementDataLookup?.excludeDefinition) ||\n (formElementElementLookup?.type !== 'STATIC_DATA' &&\n formElementElementLookup?.excludeDefinition)\n )\n }, [formElementDataLookup, formElementElementLookup])\n\n const mergeLookupData = React.useCallback(\n ({\n newValue,\n dataLookupResult,\n elementLookupResult,\n executedLookup,\n }: {\n newValue: unknown\n dataLookupResult:\n | SubmissionTypes.S3SubmissionData['submission']\n | undefined\n elementLookupResult: FormTypes.FormElement[] | undefined\n executedLookup: ExecutedLookups\n }) => {\n const executedLookupResult = executedLookup?.[element.name]\n if (elementLookupResult && executedLookupResult !== false) {\n if (elementLookupResult[0] && elementLookupResult[0].type === 'page') {\n injectPagesAfter(\n element,\n elementLookupResult as FormTypes.PageElement[],\n dataLookupResult,\n )\n return\n }\n }\n\n onLookup(({ submission, elements, executedLookups }) => {\n let allElements: FormTypes.FormElement[] = elements\n if (\n Array.isArray(elementLookupResult) &&\n executedLookupResult !== false\n ) {\n const indexOfElement = elements.findIndex(\n ({ id }) => id === element.id,\n )\n if (indexOfElement === -1) {\n console.log('Could not find element', element)\n } else {\n // Filter out already injected elements if lookup was successful\n allElements = elements.filter(\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n (e) => e.injectedByElementId !== element.id,\n )\n allElements.splice(\n indexOfElement + 1,\n 0,\n ...elementLookupResult.map((e) => {\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n e.injectedByElementId = element.id\n return e\n }),\n )\n }\n }\n\n return {\n elements: allElements,\n submission: generateDefaultData(allElements, {\n ...submission,\n [element.name]: newValue,\n ...dataLookupResult,\n }),\n executedLookups: mergeExecutedLookups({\n dataLookupResult,\n currentSubmission: submission,\n executedLookups: {\n ...executedLookups,\n ...executedLookup,\n },\n }),\n }\n })\n },\n [element, injectPagesAfter, onLookup],\n )\n\n const isNotStaticLookup = React.useMemo(() => {\n return (\n (formElementDataLookup && formElementDataLookup.type !== 'STATIC_DATA') ||\n (formElementElementLookup &&\n formElementElementLookup.type !== 'STATIC_DATA')\n )\n }, [formElementDataLookup, formElementElementLookup])\n\n const triggerLookup = React.useCallback<\n LookupNotificationContextValue['onLookup']\n >(\n async ({ newValue, abortController, continueLookupOnAbort }) => {\n // No lookups for read only forms\n if (formIsReadOnly) return\n\n setIsLookingUp(true)\n\n if (isOffline && isNotStaticLookup) {\n setHasLookupFailed(true)\n return\n }\n\n setIsDisabled(true)\n setIsCancellable(false)\n setHasLookupFailed(false)\n setHasLookupSucceeded(false)\n setLookupErrorHTML(null)\n setOnCancelLookup(() => () => {\n if (isMounted.current) {\n setIsLookingUp(false)\n }\n abortController.abort()\n })\n\n // After certain amount of time, show the cancel button\n const isCancellableTimeout = setTimeout(() => {\n setIsCancellable(!abortController.signal.aborted)\n }, 5000)\n\n const payload: FetchLookupPayload = {\n element,\n definition: !excludeDefinition ? definition : undefined,\n submission: {\n ...model,\n [element.name]: newValue,\n },\n }\n\n try {\n const [dataLookupResult, elementLookupResult] = await Promise.all([\n fetchLookup(formElementDataLookup, payload, abortController.signal),\n fetchLookup(\n formElementElementLookup,\n payload,\n abortController.signal,\n ),\n ])\n\n mergeLookupData({\n newValue,\n dataLookupResult: dataLookupResult as\n | SubmissionTypes.S3SubmissionData['submission']\n | undefined,\n elementLookupResult: elementLookupResult as\n | FormTypes.FormElement[]\n | undefined,\n executedLookup: { [element.name]: true },\n })\n\n if (isMounted.current) {\n setHasLookupSucceeded(true)\n }\n\n // After certain amount of time, hide the lookup succeeded message\n setTimeout(() => {\n if (isMounted.current) {\n setIsLookingUp(false)\n }\n }, 750)\n } catch (error) {\n if (!isMounted.current) {\n return\n }\n\n if (abortController.signal.aborted) {\n console.log('Fetch aborted')\n if (!continueLookupOnAbort) {\n setIsLookingUp(false)\n }\n return\n }\n\n setHasLookupFailed(true)\n mergeLookupData({\n newValue: model[element.name],\n dataLookupResult: {},\n elementLookupResult: [],\n executedLookup: { [element.name]: false },\n })\n setLookupErrorHTML(\n typeof error === 'string'\n ? error\n : 'It looks like something went wrong.<br/>Please try again.<br />If the issue continues, please contact support.',\n )\n } finally {\n clearTimeout(isCancellableTimeout)\n if (isMounted.current) {\n setIsDisabled(false)\n setOnCancelLookup(undefined)\n }\n }\n },\n [\n definition,\n element,\n excludeDefinition,\n formElementDataLookup,\n formElementElementLookup,\n formIsReadOnly,\n isMounted,\n isNotStaticLookup,\n isOffline,\n mergeLookupData,\n model,\n ],\n )\n\n // For certain elements, do not add click event\n // instead, watch model for changes and trigger lookup function.\n // We add this stringify function here to allow the value to be\n // an object which may have a reference change, but the values\n // have not changed. e.g. the 'location' element's value\n const autoLookupValueString = stringifyAutoLookupValue\n ? stringifyAutoLookupValue(autoLookupValue)\n : autoLookupValue\n React.useEffect(() => {\n if (isLoading || loadError) {\n return\n }\n const hasLookupRan = hasLookupFailed || hasLookupSucceeded\n\n // For lookups configured with `runLookupOnClear` set to true, we want to\n // allow empty values for `autoLookupValue`, but only if the lookup has\n // been ran previously. This prevents the lookup running on load with an empty value.\n if (\n (autoLookupValue === undefined || autoLookupValue === null) &&\n (!runLookupOnClear || !hasLookupRan)\n ) {\n setIsLookingUp(false)\n return\n }\n const abortController = new AbortController()\n triggerLookup({\n newValue: autoLookupValue,\n abortController,\n continueLookupOnAbort: true,\n })\n return () => {\n abortController.abort()\n }\n // Wants to use \"triggerLookup\" as a dependency,\n // however, this will change on any change made on any\n // element. Checking if \"value\" has changed is enough\n // to trigger a lookup when the correct dependencies change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [autoLookupValueString, isLoading])\n\n const retryLookup = React.useCallback(() => {\n const abortController = new AbortController()\n triggerLookup({\n newValue: autoLookupValue,\n abortController,\n continueLookupOnAbort: true,\n })\n }, [autoLookupValue, triggerLookup])\n\n const contextValue = React.useMemo(\n () => ({\n isLookup: true,\n isDisabled,\n isLoading,\n onLookup: triggerLookup,\n allowLookupOnEmptyValue: runLookupOnClear,\n isLookingUp,\n }),\n [isDisabled, isLoading, runLookupOnClear, triggerLookup, isLookingUp],\n )\n\n return (\n <LookupNotificationContext.Provider value={contextValue}>\n {children}\n\n {loadError && (\n <ErrorMessage\n title=\"Error Loading Configuration\"\n onTryAgain={onTryAgain}\n >\n <span className=\"cypress-lookup-notification-loading-error\">\n {loadError.message}\n </span>\n </ErrorMessage>\n )}\n\n <div\n className={clsx('ob-lookup__notification', {\n 'is-looking-up': isLookingUp,\n 'is-extended':\n hasLookupFailed || (isCancellable && !hasLookupSucceeded),\n 'is-retryable':\n hasLookupFailed &&\n autoLookupValue !== undefined &&\n autoLookupValue !== null,\n })}\n >\n <div className=\"notification has-margin-top-7 has-text-centered\">\n {hasLookupFailed && (\n <>\n <button\n type=\"button\"\n className=\"delete fade-in\"\n onClick={() => setIsLookingUp(false)}\n aria-label=\"lookup-failure-close-button\"\n />\n\n <div>\n {isOffline && isNotStaticLookup ? (\n <div>\n <MaterialIcon className=\"fade-in has-text-warning\">\n wifi_off\n </MaterialIcon>\n <p className=\"fade-in\" role=\"alert\">\n It looks like you're offline. Please try again when\n connectivity is restored.\n </p>\n </div>\n ) : (\n <div>\n <MaterialIcon className=\"fade-in has-text-danger\">\n error_outline\n </MaterialIcon>\n <p\n role=\"alert\"\n className=\"fade-in\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: lookupErrorHTML || '',\n }}\n />\n {autoLookupValue !== undefined &&\n autoLookupValue !== null && (\n <button\n type=\"button\"\n className={clsx(\n 'fade-in button is-primary ob-lookup__retry-button cypress-retry-lookup-button has-margin-top-8',\n )}\n onClick={() => retryLookup()}\n disabled={isDisabled || isLoading}\n aria-label=\"lookup-retry-button\"\n >\n <span></span>\n <span className=\"icon\">\n <MaterialIcon className=\"refresh\">\n refresh\n </MaterialIcon>\n </span>\n <span> Retry Lookup</span>\n </button>\n )}\n </div>\n )}\n </div>\n </>\n )}\n\n {hasLookupSucceeded && (\n <>\n <MaterialIcon\n className=\"has-text-success fade-in\"\n role=\"status\"\n aria-label=\"lookup successful\"\n >\n check_circle_outline\n </MaterialIcon>\n </>\n )}\n\n {!hasLookupSucceeded && !hasLookupFailed && <OnLoading small />}\n\n {isCancellable && !hasLookupSucceeded && !hasLookupFailed && (\n <div className=\"has-margin-top-5 fade-in\" role=\"alert\">\n <p>Taking longer than expected?</p>\n <button\n type=\"button\"\n className=\"button has-margin-top-8\"\n onClick={onCancelLookup}\n >\n Cancel\n </button>\n </div>\n )}\n </div>\n </div>\n </LookupNotificationContext.Provider>\n )\n}\n\nexport default function LookupNotification(props: Props) {\n if (props.element.isDataLookup || props.element.isElementLookup) {\n return <LookupNotificationComponent {...props} />\n }\n\n return <>{props.children}</>\n}\n\nasync function fetchLookup(\n formElementLookup: formService.FormElementLookupResult | undefined,\n payload: FetchLookupPayload,\n abortSignal: AbortSignal,\n): Promise<\n | SubmissionTypes.S3SubmissionData['submission']\n | FormTypes.FormElement[]\n | undefined\n> {\n if (!formElementLookup) {\n return\n }\n\n if (formElementLookup.records) {\n const elementName = payload.element.name\n const inputValue = payload.submission[elementName]\n\n const matchingRecord = formElementLookup.records.find(\n (r) =>\n (r.inputType === 'UNDEFINED' && !inputValue) ||\n (r.inputType !== 'UNDEFINED' && r.inputValue === inputValue),\n )\n\n // insert prefill values\n return matchingRecord?.preFills.reduce<\n SubmissionTypes.S3SubmissionData['submission']\n >((lookupResult, prefill) => {\n switch (prefill.type) {\n case 'TEXT':\n lookupResult[prefill.formElementName] = prefill.text\n break\n case 'NUMBER':\n lookupResult[prefill.formElementName] = prefill.number\n break\n case 'CLEAR':\n lookupResult[prefill.formElementName] = undefined\n break\n }\n return lookupResult\n }, {})\n }\n\n if (!formElementLookup.url) {\n console.log(\n 'Could not find dynamic URL or static records for form element lookup:',\n formElementLookup,\n )\n throw new Error('Could not find element lookup configuration')\n }\n\n const headers = await generateHeaders()\n console.log(\n `Attempting a ${formElementLookup.type} lookup request to:`,\n formElementLookup.url,\n )\n const response = await fetch(formElementLookup.url, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n signal: abortSignal,\n })\n\n const data = await response.json()\n console.log(\n 'Response from lookup to: POST',\n formElementLookup.url,\n response.status,\n data,\n )\n\n if (!response.ok) {\n Sentry.captureException(\n new Error(`Received ${response.status} status code from lookup`),\n )\n if (response.status === 400 && data && data.message) {\n throw data.message\n }\n throw new Error('Invalid response from lookup')\n }\n\n return data as FormTypes.FormElement[]\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LookupNotification.js","sourceRoot":"","sources":["../../../src/components/renderer/LookupNotification.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAe,MAAM,gBAAgB,CAAA;AAGpD,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AACtE,OAAO,EACL,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAC7D,OAAO,cAAc,MAAM,4BAA4B,CAAA;AACvD,OAAO,sBAAsB,MAAM,2CAA2C,CAAA;AAC9E,OAAO,iBAAiB,MAAM,+BAA+B,CAAA;AAC7D,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,qBAAqB,MAAM,mCAAmC,CAAA;AACrE,OAAO,oBAAoB,MAAM,oCAAoC,CAAA;AAGrE,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAe1C,SAAS,2BAA2B,CAAC,EACnC,eAAe,EACf,wBAAwB,EACxB,OAAO,EACP,QAAQ,EACR,QAAQ,GACF;IACN,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IACtC,MAAM,gBAAgB,GAAG,cAAc,EAAE,CAAA;IACzC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,GAC5D,qBAAqB,EAAE,CAAA;IAEzB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAExD,SAAS,CAAC,CAAA;IACZ,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1D,IAAI,CACL,CAAA;IACD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAE/D,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,KAAK,OAAO,CAAC,eAAe,CACtE,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1E,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/C,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,KAAK,OAAO,CAAC,YAAY,CAChE,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEpE,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAU,GAAG,EAAE;QACnD,OAAO,CAAC,CAAC,CACP,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,gBAAgB;aACvC,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,gBAAgB,CAAA,CAC3C,CAAA;IACH,CAAC,EAAE;QACD,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,gBAAgB;QACvC,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,gBAAgB;KAC3C,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,CAAC,CACP,CAAC,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,MAAK,aAAa;aAC5C,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,iBAAiB,CAAA,CAAC;YAC3C,CAAC,CAAA,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,IAAI,MAAK,aAAa;iBAC/C,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,iBAAiB,CAAA,CAAC,CAC/C,CAAA;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAErD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,EACC,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GAQf,EAAE,EAAE;QACH,MAAM,oBAAoB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,mBAAmB,IAAI,oBAAoB,KAAK,KAAK,EAAE,CAAC;YAC1D,IAAI,mBAAmB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrE,gBAAgB,CACd,OAAO,EACP,mBAA8C,EAC9C,gBAAgB,CACjB,CAAA;gBACD,OAAM;YACR,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE;YACrD,IAAI,WAAW,GAA4B,QAAQ,CAAA;YACnD,IACE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAClC,oBAAoB,KAAK,KAAK,EAC9B,CAAC;gBACD,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,CACvC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC9B,CAAA;gBACD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,WAAW,GAAG,QAAQ,CAAC,MAAM;oBAC3B,yFAAyF;oBACzF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,KAAK,OAAO,CAAC,EAAE,CAC5C,CAAA;oBACD,WAAW,CAAC,MAAM,CAChB,cAAc,GAAG,CAAC,EAClB,CAAC,EACD,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC/B,yFAAyF;wBACzF,CAAC,CAAC,mBAAmB,GAAG,OAAO,CAAC,EAAE,CAAA;wBAClC,OAAO,CAAC,CAAA;oBACV,CAAC,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE;oBAC3C,GAAG,UAAU;oBACb,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ;oBACxB,GAAG,gBAAgB;iBACpB,CAAC;gBACF,eAAe,EAAE,oBAAoB,CAAC;oBACpC,gBAAgB;oBAChB,iBAAiB,EAAE,UAAU;oBAC7B,eAAe,EAAE;wBACf,GAAG,eAAe;wBAClB,GAAG,cAAc;qBAClB;iBACF,CAAC;aACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CACtC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,CACL,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,IAAI,KAAK,aAAa,CAAC;YACvE,CAAC,wBAAwB;gBACvB,wBAAwB,CAAC,IAAI,KAAK,aAAa,CAAC,CACnD,CAAA;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAErD,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAGrC,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,EAAE,EAAE;QAC7D,iCAAiC;QACjC,IAAI,cAAc;YAAE,OAAM;QAE1B,cAAc,CAAC,IAAI,CAAC,CAAA;QAEpB,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;YACnC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvB,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;YAC3B,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,cAAc,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;YACD,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,uDAAuD;QACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3C,gBAAgB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,MAAM,OAAO,GAAuB;YAClC,OAAO;YACP,UAAU,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvD,UAAU,EAAE;gBACV,GAAG,KAAK;gBACR,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ;aACzB;SACF,CAAA;QAED,IAAI,CAAC;YACH,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChE,WAAW,CAAC,qBAAqB,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;gBACnE,WAAW,CACT,wBAAwB,EACxB,OAAO,EACP,eAAe,CAAC,MAAM,CACvB;aACF,CAAC,CAAA;YAEF,eAAe,CAAC;gBACd,QAAQ;gBACR,gBAAgB,EAAE,gBAEL;gBACb,mBAAmB,EAAE,mBAER;gBACb,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;aACzC,CAAC,CAAA;YAEF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;YAED,kEAAkE;YAClE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAM;YACR,CAAC;YAED,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,eAAe,CAAC;gBACd,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,gBAAgB,EAAE,EAAE;gBACpB,mBAAmB,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;aAC1C,CAAC,CAAA;YACF,kBAAkB,CAChB,OAAO,KAAK,KAAK,QAAQ;gBACvB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,gHAAgH,CACrH,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,oBAAoB,CAAC,CAAA;YAClC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,EACD;QACE,UAAU;QACV,OAAO;QACP,iBAAiB;QACjB,qBAAqB;QACrB,wBAAwB;QACxB,cAAc;QACd,SAAS;QACT,iBAAiB;QACjB,SAAS;QACT,eAAe;QACf,KAAK;KACN,CACF,CAAA;IAED,+CAA+C;IAC/C,gEAAgE;IAChE,+DAA+D;IAC/D,8DAA8D;IAC9D,wDAAwD;IACxD,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/C,IAAI,wBAAwB,EAAE,CAAC;YAC7B,OAAO,wBAAwB,CAAC,eAAe,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,eAAe,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAC/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,IAAI,kBAAkB,CAAA;QAE1D,yEAAyE;QACzE,uEAAuE;QACvE,qFAAqF;QACrF,IACE,CAAC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,CAAC;YAC3D,CAAC,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC,EACpC,CAAC;YACD,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,OAAM;QACR,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,aAAa,CAAC;YACZ,QAAQ,EAAE,eAAe;YACzB,eAAe;YACf,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC,CAAA;QACD,gDAAgD;QAChD,sDAAsD;QACtD,qDAAqD;QACrD,2DAA2D;QAC3D,uDAAuD;IACzD,CAAC,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAA;IAEtC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,aAAa,CAAC;YACZ,QAAQ,EAAE,eAAe;YACzB,eAAe;YACf,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;IAEpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,IAAI;QACd,UAAU;QACV,SAAS;QACT,QAAQ,EAAE,aAAa;QACvB,uBAAuB,EAAE,gBAAgB;QACzC,WAAW;KACZ,CAAC,EACF,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,CAAC,CACtE,CAAA;IAED,OAAO,CACL,oBAAC,yBAAyB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;QACpD,QAAQ;QAER,SAAS,IAAI,CACZ,oBAAC,YAAY,IACX,KAAK,EAAC,6BAA6B,EACnC,UAAU,EAAE,UAAU;YAEtB,8BAAM,SAAS,EAAC,2CAA2C,IACxD,SAAS,CAAC,OAAO,CACb,CACM,CAChB;QAED,6BACE,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE;gBACzC,eAAe,EAAE,WAAW;gBAC5B,aAAa,EACX,eAAe,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,CAAC;gBAC3D,cAAc,EACZ,eAAe;oBACf,eAAe,KAAK,SAAS;oBAC7B,eAAe,KAAK,IAAI;aAC3B,CAAC;YAEF,6BAAK,SAAS,EAAC,iDAAiD;gBAC7D,eAAe,IAAI,CAClB;oBACE,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,gBACzB,6BAA6B,GACxC;oBAEF,iCACG,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAChC;wBACE,oBAAC,YAAY,IAAC,SAAS,EAAC,0BAA0B,eAEnC;wBACf,2BAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,oFAG/B,CACA,CACP,CAAC,CAAC,CAAC,CACF;wBACE,oBAAC,YAAY,IAAC,SAAS,EAAC,yBAAyB,oBAElC;wBACf,2BACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,SAAS;4BACnB,2CAA2C;4BAC3C,uBAAuB,EAAE;gCACvB,MAAM,EAAE,eAAe,IAAI,EAAE;6BAC9B,GACD;wBACD,eAAe,KAAK,SAAS;4BAC5B,eAAe,KAAK,IAAI,IAAI,CAC1B,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,gGAAgG,CACjG,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAC5B,QAAQ,EAAE,UAAU,IAAI,SAAS,gBACtB,qBAAqB;4BAEhC,iCAAa;4BACb,8BAAM,SAAS,EAAC,MAAM;gCACpB,oBAAC,YAAY,IAAC,SAAS,EAAC,SAAS,cAElB,CACV;4BACP,uDAA+B,CACxB,CACV,CACC,CACP,CACG,CACL,CACJ;gBAEA,kBAAkB,IAAI,CACrB;oBACE,oBAAC,YAAY,IACX,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAC,QAAQ,gBACF,mBAAmB,2BAGjB,CACd,CACJ;gBAEA,CAAC,kBAAkB,IAAI,CAAC,eAAe,IAAI,oBAAC,SAAS,IAAC,KAAK,SAAG;gBAE9D,aAAa,IAAI,CAAC,kBAAkB,IAAI,CAAC,eAAe,IAAI,CAC3D,6BAAK,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,OAAO;oBACpD,8DAAmC;oBACnC,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,cAAc,aAGhB,CACL,CACP,CACG,CACF,CAC6B,CACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAY;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAChE,OAAO,oBAAC,2BAA2B,OAAK,KAAK,GAAI,CAAA;IACnD,CAAC;IAED,OAAO,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,iBAAkE,EAClE,OAA2B,EAC3B,WAAwB;IAMxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAM;IACR,CAAC;IAED,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAElD,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC;YAC5C,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAC/D,CAAA;QAED,wBAAwB;QACxB,OAAO,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,MAAM,CAEpC,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE;YAC1B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,MAAM;oBACT,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAA;oBACpD,MAAK;gBACP,KAAK,QAAQ;oBACX,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;oBACtD,MAAK;gBACP,KAAK,OAAO;oBACV,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;oBACjD,MAAK;YACT,CAAC;YACD,OAAO,YAAY,CAAA;QACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACT,uEAAuE,EACvE,iBAAiB,CAClB,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAA;IACvC,OAAO,CAAC,GAAG,CACT,gBAAgB,iBAAiB,CAAC,IAAI,qBAAqB,EAC3D,iBAAiB,CAAC,GAAG,CACtB,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,WAAW;KACpB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO,CAAC,GAAG,CACT,+BAA+B,EAC/B,iBAAiB,CAAC,GAAG,EACrB,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAA;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,gBAAgB,CACrB,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,MAAM,0BAA0B,CAAC,CACjE,CAAA;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,OAAO,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,IAA+B,CAAA;AACxC,CAAC","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { generateHeaders } from '@oneblink/apps/dist/services/fetch'\nimport { Sentry, formService } from '@oneblink/apps'\nimport { FormTypes, SubmissionTypes } from '@oneblink/types'\n\nimport useIsOffline from '../../hooks/useIsOffline'\nimport OnLoading from './OnLoading'\nimport generateDefaultData from '../../services/generate-default-data'\nimport {\n LookupNotificationContext,\n LookupNotificationContextValue,\n} from '../../hooks/useLookupNotification'\nimport useFormDefinition from '../../hooks/useFormDefinition'\nimport useInjectPages from '../../hooks/useInjectPages'\nimport useFormSubmissionModel from '../../hooks/useFormSubmissionModelContext'\nimport useFormIsReadOnly from '../../hooks/useFormIsReadOnly'\nimport useIsMounted from '../../hooks/useIsMounted'\nimport useFormElementLookups from '../../hooks/useFormElementLookups'\nimport mergeExecutedLookups from '../../utils/merge-executed-lookups'\n\nimport { FormElementLookupHandler, ExecutedLookups } from '../../types/form'\nimport ErrorMessage from '../messages/ErrorMessage'\nimport MaterialIcon from '../MaterialIcon'\n\ntype FetchLookupPayload = {\n element: FormTypes.LookupFormElement\n definition?: FormTypes.Form\n submission: SubmissionTypes.S3SubmissionData['submission']\n}\ntype Props = {\n autoLookupValue?: unknown\n stringifyAutoLookupValue?: (autoLookupValue: unknown) => string\n element: FormTypes.LookupFormElement\n onLookup: FormElementLookupHandler\n children: React.ReactNode\n}\n\nfunction LookupNotificationComponent({\n autoLookupValue,\n stringifyAutoLookupValue,\n element,\n onLookup,\n children,\n}: Props) {\n const isMounted = useIsMounted()\n const isOffline = useIsOffline()\n const definition = useFormDefinition()\n const injectPagesAfter = useInjectPages()\n const { isLoading, formElementLookups, loadError, onTryAgain } =\n useFormElementLookups()\n\n const [onCancelLookup, setOnCancelLookup] = React.useState<\n (() => void) | undefined\n >(undefined)\n const [isLookingUp, setIsLookingUp] = React.useState(false)\n const [hasLookupFailed, setHasLookupFailed] = React.useState(false)\n const [hasLookupSucceeded, setHasLookupSucceeded] = React.useState(false)\n const [isCancellable, setIsCancellable] = React.useState(false)\n const [isDisabled, setIsDisabled] = React.useState(false)\n const [lookupErrorHTML, setLookupErrorHTML] = React.useState<string | null>(\n null,\n )\n const formIsReadOnly = useFormIsReadOnly()\n const { formSubmissionModel: model } = useFormSubmissionModel()\n\n const formElementElementLookup = React.useMemo(() => {\n return formElementLookups.find(\n ({ id }) => element.isElementLookup && id === element.elementLookupId,\n )\n }, [element.elementLookupId, element.isElementLookup, formElementLookups])\n\n const formElementDataLookup = React.useMemo(() => {\n return formElementLookups.find(\n ({ id }) => element.isDataLookup && id === element.dataLookupId,\n )\n }, [element.dataLookupId, element.isDataLookup, formElementLookups])\n\n const runLookupOnClear = React.useMemo<boolean>(() => {\n return !!(\n formElementDataLookup?.runLookupOnClear ||\n formElementElementLookup?.runLookupOnClear\n )\n }, [\n formElementDataLookup?.runLookupOnClear,\n formElementElementLookup?.runLookupOnClear,\n ])\n\n const excludeDefinition = React.useMemo(() => {\n return !!(\n (formElementDataLookup?.type !== 'STATIC_DATA' &&\n formElementDataLookup?.excludeDefinition) ||\n (formElementElementLookup?.type !== 'STATIC_DATA' &&\n formElementElementLookup?.excludeDefinition)\n )\n }, [formElementDataLookup, formElementElementLookup])\n\n const mergeLookupData = React.useCallback(\n ({\n newValue,\n dataLookupResult,\n elementLookupResult,\n executedLookup,\n }: {\n newValue: unknown\n dataLookupResult:\n | SubmissionTypes.S3SubmissionData['submission']\n | undefined\n elementLookupResult: FormTypes.FormElement[] | undefined\n executedLookup: ExecutedLookups\n }) => {\n const executedLookupResult = executedLookup?.[element.name]\n if (elementLookupResult && executedLookupResult !== false) {\n if (elementLookupResult[0] && elementLookupResult[0].type === 'page') {\n injectPagesAfter(\n element,\n elementLookupResult as FormTypes.PageElement[],\n dataLookupResult,\n )\n return\n }\n }\n\n onLookup(({ submission, elements, executedLookups }) => {\n let allElements: FormTypes.FormElement[] = elements\n if (\n Array.isArray(elementLookupResult) &&\n executedLookupResult !== false\n ) {\n const indexOfElement = elements.findIndex(\n ({ id }) => id === element.id,\n )\n if (indexOfElement === -1) {\n console.log('Could not find element', element)\n } else {\n // Filter out already injected elements if lookup was successful\n allElements = elements.filter(\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n (e) => e.injectedByElementId !== element.id,\n )\n allElements.splice(\n indexOfElement + 1,\n 0,\n ...elementLookupResult.map((e) => {\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n e.injectedByElementId = element.id\n return e\n }),\n )\n }\n }\n\n return {\n elements: allElements,\n submission: generateDefaultData(allElements, {\n ...submission,\n [element.name]: newValue,\n ...dataLookupResult,\n }),\n executedLookups: mergeExecutedLookups({\n dataLookupResult,\n currentSubmission: submission,\n executedLookups: {\n ...executedLookups,\n ...executedLookup,\n },\n }),\n }\n })\n },\n [element, injectPagesAfter, onLookup],\n )\n\n const isNotStaticLookup = React.useMemo(() => {\n return (\n (formElementDataLookup && formElementDataLookup.type !== 'STATIC_DATA') ||\n (formElementElementLookup &&\n formElementElementLookup.type !== 'STATIC_DATA')\n )\n }, [formElementDataLookup, formElementElementLookup])\n\n const triggerLookup = React.useCallback<\n LookupNotificationContextValue['onLookup']\n >(\n async ({ newValue, abortController, continueLookupOnAbort }) => {\n // No lookups for read only forms\n if (formIsReadOnly) return\n\n setIsLookingUp(true)\n\n if (isOffline && isNotStaticLookup) {\n setHasLookupFailed(true)\n return\n }\n\n setIsDisabled(true)\n setIsCancellable(false)\n setHasLookupFailed(false)\n setHasLookupSucceeded(false)\n setLookupErrorHTML(null)\n setOnCancelLookup(() => () => {\n if (isMounted.current) {\n setIsLookingUp(false)\n }\n abortController.abort()\n })\n\n // After certain amount of time, show the cancel button\n const isCancellableTimeout = setTimeout(() => {\n setIsCancellable(!abortController.signal.aborted)\n }, 5000)\n\n const payload: FetchLookupPayload = {\n element,\n definition: !excludeDefinition ? definition : undefined,\n submission: {\n ...model,\n [element.name]: newValue,\n },\n }\n\n try {\n const [dataLookupResult, elementLookupResult] = await Promise.all([\n fetchLookup(formElementDataLookup, payload, abortController.signal),\n fetchLookup(\n formElementElementLookup,\n payload,\n abortController.signal,\n ),\n ])\n\n mergeLookupData({\n newValue,\n dataLookupResult: dataLookupResult as\n | SubmissionTypes.S3SubmissionData['submission']\n | undefined,\n elementLookupResult: elementLookupResult as\n | FormTypes.FormElement[]\n | undefined,\n executedLookup: { [element.name]: true },\n })\n\n if (isMounted.current) {\n setHasLookupSucceeded(true)\n }\n\n // After certain amount of time, hide the lookup succeeded message\n setTimeout(() => {\n if (isMounted.current) {\n setIsLookingUp(false)\n }\n }, 750)\n } catch (error) {\n if (!isMounted.current) {\n return\n }\n\n if (abortController.signal.aborted) {\n console.log('Fetch aborted')\n if (!continueLookupOnAbort) {\n setIsLookingUp(false)\n }\n return\n }\n\n setHasLookupFailed(true)\n mergeLookupData({\n newValue: model[element.name],\n dataLookupResult: {},\n elementLookupResult: [],\n executedLookup: { [element.name]: false },\n })\n setLookupErrorHTML(\n typeof error === 'string'\n ? error\n : 'It looks like something went wrong.<br/>Please try again.<br />If the issue continues, please contact support.',\n )\n } finally {\n clearTimeout(isCancellableTimeout)\n if (isMounted.current) {\n setIsDisabled(false)\n setOnCancelLookup(undefined)\n }\n }\n },\n [\n definition,\n element,\n excludeDefinition,\n formElementDataLookup,\n formElementElementLookup,\n formIsReadOnly,\n isMounted,\n isNotStaticLookup,\n isOffline,\n mergeLookupData,\n model,\n ],\n )\n\n // For certain elements, do not add click event\n // instead, watch model for changes and trigger lookup function.\n // We add this stringify function here to allow the value to be\n // an object which may have a reference change, but the values\n // have not changed. e.g. the 'location' element's value\n const autoLookupValueString = React.useMemo(() => {\n if (stringifyAutoLookupValue) {\n return stringifyAutoLookupValue(autoLookupValue)\n } else {\n return autoLookupValue\n }\n }, [autoLookupValue, stringifyAutoLookupValue])\n React.useEffect(() => {\n if (isLoading || loadError) {\n return\n }\n const hasLookupRan = hasLookupFailed || hasLookupSucceeded\n\n // For lookups configured with `runLookupOnClear` set to true, we want to\n // allow empty values for `autoLookupValue`, but only if the lookup has\n // been ran previously. This prevents the lookup running on load with an empty value.\n if (\n (autoLookupValue === undefined || autoLookupValue === null) &&\n (!runLookupOnClear || !hasLookupRan)\n ) {\n setIsLookingUp(false)\n return\n }\n const abortController = new AbortController()\n triggerLookup({\n newValue: autoLookupValue,\n abortController,\n continueLookupOnAbort: true,\n })\n return () => {\n abortController.abort()\n }\n // Wants to use \"triggerLookup\" as a dependency,\n // however, this will change on any change made on any\n // element. Checking if \"value\" has changed is enough\n // to trigger a lookup when the correct dependencies change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [autoLookupValueString, isLoading])\n\n const retryLookup = React.useCallback(() => {\n const abortController = new AbortController()\n triggerLookup({\n newValue: autoLookupValue,\n abortController,\n continueLookupOnAbort: true,\n })\n }, [autoLookupValue, triggerLookup])\n\n const contextValue = React.useMemo(\n () => ({\n isLookup: true,\n isDisabled,\n isLoading,\n onLookup: triggerLookup,\n allowLookupOnEmptyValue: runLookupOnClear,\n isLookingUp,\n }),\n [isDisabled, isLoading, runLookupOnClear, triggerLookup, isLookingUp],\n )\n\n return (\n <LookupNotificationContext.Provider value={contextValue}>\n {children}\n\n {loadError && (\n <ErrorMessage\n title=\"Error Loading Configuration\"\n onTryAgain={onTryAgain}\n >\n <span className=\"cypress-lookup-notification-loading-error\">\n {loadError.message}\n </span>\n </ErrorMessage>\n )}\n\n <div\n className={clsx('ob-lookup__notification', {\n 'is-looking-up': isLookingUp,\n 'is-extended':\n hasLookupFailed || (isCancellable && !hasLookupSucceeded),\n 'is-retryable':\n hasLookupFailed &&\n autoLookupValue !== undefined &&\n autoLookupValue !== null,\n })}\n >\n <div className=\"notification has-margin-top-7 has-text-centered\">\n {hasLookupFailed && (\n <>\n <button\n type=\"button\"\n className=\"delete fade-in\"\n onClick={() => setIsLookingUp(false)}\n aria-label=\"lookup-failure-close-button\"\n />\n\n <div>\n {isOffline && isNotStaticLookup ? (\n <div>\n <MaterialIcon className=\"fade-in has-text-warning\">\n wifi_off\n </MaterialIcon>\n <p className=\"fade-in\" role=\"alert\">\n It looks like you're offline. Please try again when\n connectivity is restored.\n </p>\n </div>\n ) : (\n <div>\n <MaterialIcon className=\"fade-in has-text-danger\">\n error_outline\n </MaterialIcon>\n <p\n role=\"alert\"\n className=\"fade-in\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: lookupErrorHTML || '',\n }}\n />\n {autoLookupValue !== undefined &&\n autoLookupValue !== null && (\n <button\n type=\"button\"\n className={clsx(\n 'fade-in button is-primary ob-lookup__retry-button cypress-retry-lookup-button has-margin-top-8',\n )}\n onClick={() => retryLookup()}\n disabled={isDisabled || isLoading}\n aria-label=\"lookup-retry-button\"\n >\n <span></span>\n <span className=\"icon\">\n <MaterialIcon className=\"refresh\">\n refresh\n </MaterialIcon>\n </span>\n <span> Retry Lookup</span>\n </button>\n )}\n </div>\n )}\n </div>\n </>\n )}\n\n {hasLookupSucceeded && (\n <>\n <MaterialIcon\n className=\"has-text-success fade-in\"\n role=\"status\"\n aria-label=\"lookup successful\"\n >\n check_circle_outline\n </MaterialIcon>\n </>\n )}\n\n {!hasLookupSucceeded && !hasLookupFailed && <OnLoading small />}\n\n {isCancellable && !hasLookupSucceeded && !hasLookupFailed && (\n <div className=\"has-margin-top-5 fade-in\" role=\"alert\">\n <p>Taking longer than expected?</p>\n <button\n type=\"button\"\n className=\"button has-margin-top-8\"\n onClick={onCancelLookup}\n >\n Cancel\n </button>\n </div>\n )}\n </div>\n </div>\n </LookupNotificationContext.Provider>\n )\n}\n\nexport default function LookupNotification(props: Props) {\n if (props.element.isDataLookup || props.element.isElementLookup) {\n return <LookupNotificationComponent {...props} />\n }\n\n return <>{props.children}</>\n}\n\nasync function fetchLookup(\n formElementLookup: formService.FormElementLookupResult | undefined,\n payload: FetchLookupPayload,\n abortSignal: AbortSignal,\n): Promise<\n | SubmissionTypes.S3SubmissionData['submission']\n | FormTypes.FormElement[]\n | undefined\n> {\n if (!formElementLookup) {\n return\n }\n\n if (formElementLookup.records) {\n const elementName = payload.element.name\n const inputValue = payload.submission[elementName]\n\n const matchingRecord = formElementLookup.records.find(\n (r) =>\n (r.inputType === 'UNDEFINED' && !inputValue) ||\n (r.inputType !== 'UNDEFINED' && r.inputValue === inputValue),\n )\n\n // insert prefill values\n return matchingRecord?.preFills.reduce<\n SubmissionTypes.S3SubmissionData['submission']\n >((lookupResult, prefill) => {\n switch (prefill.type) {\n case 'TEXT':\n lookupResult[prefill.formElementName] = prefill.text\n break\n case 'NUMBER':\n lookupResult[prefill.formElementName] = prefill.number\n break\n case 'CLEAR':\n lookupResult[prefill.formElementName] = undefined\n break\n }\n return lookupResult\n }, {})\n }\n\n if (!formElementLookup.url) {\n console.log(\n 'Could not find dynamic URL or static records for form element lookup:',\n formElementLookup,\n )\n throw new Error('Could not find element lookup configuration')\n }\n\n const headers = await generateHeaders()\n console.log(\n `Attempting a ${formElementLookup.type} lookup request to:`,\n formElementLookup.url,\n )\n const response = await fetch(formElementLookup.url, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n signal: abortSignal,\n })\n\n const data = await response.json()\n console.log(\n 'Response from lookup to: POST',\n formElementLookup.url,\n response.status,\n data,\n )\n\n if (!response.ok) {\n Sentry.captureException(\n new Error(`Received ${response.status} status code from lookup`),\n )\n if (response.status === 400 && data && data.message) {\n throw data.message\n }\n throw new Error('Invalid response from lookup')\n }\n\n return data as FormTypes.FormElement[]\n}\n"]}
|
|
@@ -44,6 +44,7 @@ import useBooleanState from '../../hooks/useBooleanState';
|
|
|
44
44
|
import FormElementAPINSWLiquorLicence from '../../form-elements/FormElementAPINSWLiquorLicence';
|
|
45
45
|
import ElementDOMId from '../../utils/elementDOMIds';
|
|
46
46
|
import FormElementPointCadastralParcel from '../../form-elements/FormElementPointCadastralParcel';
|
|
47
|
+
import FormElementLookupButton from '../../form-elements/FormElementLookupButton';
|
|
47
48
|
function OneBlinkFormElements({ formId, elements, isEven, idPrefix, displayValidationMessages, formElementsValidation, formElementsConditionallyShown, onChange, onLookup, onUpdateFormElements, model, parentElement, sectionState, }) {
|
|
48
49
|
return (React.createElement(FormSubmissionModelContextProvider, { elements: parentElement.elements, model: model, formElementsConditionallyShown: formElementsConditionallyShown }, elements.map((element) => {
|
|
49
50
|
var _a, _b;
|
|
@@ -253,6 +254,9 @@ const FormElementSwitch = React.memo(function OneBlinkFormElement({ formId, elem
|
|
|
253
254
|
return (React.createElement(LookupNotification, { autoLookupValue: value, element: element, onLookup: onLookup, stringifyAutoLookupValue: stringifyArcgisInput },
|
|
254
255
|
React.createElement(FormElementArcGISWebMap, { id: id, element: element, value: v, onChange: onChange, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, ...dirtyProps })));
|
|
255
256
|
}
|
|
257
|
+
case 'lookupButton': {
|
|
258
|
+
return (React.createElement(FormElementLookupButton, { id: id, element: element, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, onChange: onChange, onLookup: onLookup, ...dirtyProps }));
|
|
259
|
+
}
|
|
256
260
|
case 'section':
|
|
257
261
|
case 'page': {
|
|
258
262
|
return null;
|