@oneblink/apps-react 8.13.0-beta.2 → 8.13.1-beta.1
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.
|
@@ -17,13 +17,24 @@ function FormElementPointAddressV3({ formId, id, element, value, displayValidati
|
|
|
17
17
|
const [error, setError] = React.useState();
|
|
18
18
|
const [isLoadingAddressDetails, setIsLoadingAddressDetails] = React.useState(false);
|
|
19
19
|
const handleSearch = React.useCallback(async (address, abortSignal) => {
|
|
20
|
+
var _a;
|
|
20
21
|
setError(undefined);
|
|
21
22
|
const params = {
|
|
22
23
|
address,
|
|
23
24
|
maxNumberOfResults: 10,
|
|
24
25
|
};
|
|
25
|
-
if (element.
|
|
26
|
-
params.stateFilter = element.
|
|
26
|
+
if (element.stateTerritoryFilter) {
|
|
27
|
+
params.stateFilter = element.stateTerritoryFilter.join(',');
|
|
28
|
+
}
|
|
29
|
+
if (element.addressTypeFilter) {
|
|
30
|
+
let addressType = 'all';
|
|
31
|
+
if (element.addressTypeFilter.length === 1) {
|
|
32
|
+
addressType = element.addressTypeFilter[0];
|
|
33
|
+
}
|
|
34
|
+
params.addressType = addressType;
|
|
35
|
+
}
|
|
36
|
+
if ((_a = element.datasetFilter) === null || _a === void 0 ? void 0 : _a.length) {
|
|
37
|
+
params.dataset = element.datasetFilter.join(',');
|
|
27
38
|
}
|
|
28
39
|
if (element.excludeAliases) {
|
|
29
40
|
params.excludeAliases = true;
|
|
@@ -33,7 +44,13 @@ function FormElementPointAddressV3({ formId, id, element, value, displayValidati
|
|
|
33
44
|
value: suggestion.id || index.toString(),
|
|
34
45
|
label: suggestion.address || index.toString(),
|
|
35
46
|
}));
|
|
36
|
-
}, [
|
|
47
|
+
}, [
|
|
48
|
+
element.addressTypeFilter,
|
|
49
|
+
element.datasetFilter,
|
|
50
|
+
element.excludeAliases,
|
|
51
|
+
element.stateTerritoryFilter,
|
|
52
|
+
formId,
|
|
53
|
+
]);
|
|
37
54
|
const handleChange = React.useCallback(async (addressId) => {
|
|
38
55
|
if (!addressId) {
|
|
39
56
|
onChange(element, { value: undefined });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementPointAddressV3.js","sourceRoot":"","sources":["../../src/form-elements/FormElementPointAddressV3.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\n\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormTypes, PointTypes } from '@oneblink/types'\nimport useIsMounted from '../hooks/useIsMounted'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { Collapse } from '@mui/material'\nimport { NotificationGrid } from '../components/NotificationGrid'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\nimport { PointAddressGridItem } from './FormElementPointAddress'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.PointAddressV3Element\n value: PointTypes.PointAddressV3GetAddressDetailsResponse | undefined\n displayValidationMessage: boolean\n validationMessage: string | undefined\n onChange: FormElementValueChangeHandler<PointTypes.PointAddressV3GetAddressDetailsResponse>\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nconst pointAddressClass = 'ob-point-address-v3'\n\nfunction FormElementPointAddressV3({\n formId,\n id,\n element,\n value,\n displayValidationMessage,\n validationMessage,\n onChange,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isMounted = useIsMounted()\n const [label, setLabel] = React.useState('')\n const [error, setError] = React.useState<Error | undefined>()\n const [isLoadingAddressDetails, setIsLoadingAddressDetails] =\n React.useState(false)\n\n const handleSearch = React.useCallback(\n async (address: string, abortSignal: AbortSignal) => {\n setError(undefined)\n\n const params: {\n address: string\n maxNumberOfResults?: number\n stateFilter?: string\n excludeAliases?: boolean\n } = {\n address,\n maxNumberOfResults: 10,\n }\n\n if (element.stateFilter) {\n params.stateFilter = element.stateFilter.join(',')\n }\n if (element.excludeAliases) {\n params.excludeAliases = true\n }\n\n const { suggest } = await formService.searchPointV3Addresses(\n formId,\n params,\n abortSignal,\n )\n\n return (suggest || []).map((suggestion, index) => ({\n value: suggestion.id || index.toString(),\n label: suggestion.address || index.toString(),\n }))\n },\n [element.excludeAliases, element.stateFilter, formId],\n )\n\n const handleChange = React.useCallback(\n async (addressId: string | undefined) => {\n if (!addressId) {\n onChange(element, { value: undefined })\n return\n }\n\n setIsLoadingAddressDetails(true)\n try {\n const result = await formService.getPointV3Address(formId, {\n addressId,\n })\n onChange(element, { value: result })\n } catch (newError) {\n if (isMounted.current) {\n setError(newError as Error)\n }\n }\n if (isMounted.current) {\n setIsLoadingAddressDetails(false)\n }\n },\n [isMounted, onChange, element, formId],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel =\n value.properties?.formattedAddress || value.properties?.addressId\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // we don't need this to run again when the label changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-point-address-v3-element\">\n <FormElementLabelContainer\n className={`${pointAddressClass} ob-autocomplete`}\n element={element}\n id={id}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly || isLoadingAddressDetails}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={handleChange}\n isLoading={isLoadingAddressDetails}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={4}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-point-address-v3-details-error-message\"\n />\n )}\n\n <Collapse in={!!value && !!element.isDisplayingAddressInformation}>\n <NotificationGrid\n className={`${pointAddressClass}__record-display has-margin-top-6`}\n gridClassName={`${pointAddressClass}__container`}\n >\n <PointAddressGridItem\n label=\"Local Government Area\"\n value={value?.properties?.localGovernmentArea?.lgaName}\n classNameSuffix=\"local-government-area-name\"\n />\n <PointAddressGridItem\n label=\"Lot / Section / Plan No.\"\n value={value?.properties?.cadastralIdentifier}\n classNameSuffix=\"cadastral-identifier\"\n />\n {value?.properties?.parcelBundle?.map((parcel, index) => (\n <PointAddressGridItem\n key={parcel.parcelId || index}\n label=\"Lot / DP Numbers\"\n value={`${parcel.lot}//${parcel.plan}`}\n classNameSuffix=\"cadastral-parcel\"\n />\n ))}\n </NotificationGrid>\n </Collapse>\n </div>\n )\n}\n\nexport default React.memo(FormElementPointAddressV3)\n"]}
|
|
1
|
+
{"version":3,"file":"FormElementPointAddressV3.js","sourceRoot":"","sources":["../../src/form-elements/FormElementPointAddressV3.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { formService } from '@oneblink/apps'\n\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormTypes, PointTypes } from '@oneblink/types'\nimport useIsMounted from '../hooks/useIsMounted'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { Collapse } from '@mui/material'\nimport { NotificationGrid } from '../components/NotificationGrid'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\nimport { PointAddressGridItem } from './FormElementPointAddress'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.PointAddressV3Element\n value: PointTypes.PointAddressV3GetAddressDetailsResponse | undefined\n displayValidationMessage: boolean\n validationMessage: string | undefined\n onChange: FormElementValueChangeHandler<PointTypes.PointAddressV3GetAddressDetailsResponse>\n autocompleteAttributes?: string\n} & IsDirtyProps\n\ntype AddressType = 'all' | 'physical' | 'mailing'\nconst pointAddressClass = 'ob-point-address-v3'\n\nfunction FormElementPointAddressV3({\n formId,\n id,\n element,\n value,\n displayValidationMessage,\n validationMessage,\n onChange,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isMounted = useIsMounted()\n const [label, setLabel] = React.useState('')\n const [error, setError] = React.useState<Error | undefined>()\n const [isLoadingAddressDetails, setIsLoadingAddressDetails] =\n React.useState(false)\n\n const handleSearch = React.useCallback(\n async (address: string, abortSignal: AbortSignal) => {\n setError(undefined)\n\n const params: {\n address: string\n maxNumberOfResults?: number\n stateFilter?: string\n excludeAliases?: boolean\n addressType?: AddressType\n dataset?: string\n } = {\n address,\n maxNumberOfResults: 10,\n }\n\n if (element.stateTerritoryFilter) {\n params.stateFilter = element.stateTerritoryFilter.join(',')\n }\n if (element.addressTypeFilter) {\n let addressType: AddressType = 'all'\n if (element.addressTypeFilter.length === 1) {\n addressType = element.addressTypeFilter[0] as AddressType\n }\n params.addressType = addressType\n }\n if (element.datasetFilter?.length) {\n params.dataset = element.datasetFilter.join(',')\n }\n if (element.excludeAliases) {\n params.excludeAliases = true\n }\n\n const { suggest } = await formService.searchPointV3Addresses(\n formId,\n params,\n abortSignal,\n )\n\n return (suggest || []).map((suggestion, index) => ({\n value: suggestion.id || index.toString(),\n label: suggestion.address || index.toString(),\n }))\n },\n [\n element.addressTypeFilter,\n element.datasetFilter,\n element.excludeAliases,\n element.stateTerritoryFilter,\n formId,\n ],\n )\n\n const handleChange = React.useCallback(\n async (addressId: string | undefined) => {\n if (!addressId) {\n onChange(element, { value: undefined })\n return\n }\n\n setIsLoadingAddressDetails(true)\n try {\n const result = await formService.getPointV3Address(formId, {\n addressId,\n })\n onChange(element, { value: result })\n } catch (newError) {\n if (isMounted.current) {\n setError(newError as Error)\n }\n }\n if (isMounted.current) {\n setIsLoadingAddressDetails(false)\n }\n },\n [isMounted, onChange, element, formId],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel =\n value.properties?.formattedAddress || value.properties?.addressId\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // we don't need this to run again when the label changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-point-address-v3-element\">\n <FormElementLabelContainer\n className={`${pointAddressClass} ob-autocomplete`}\n element={element}\n id={id}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly || isLoadingAddressDetails}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={handleChange}\n isLoading={isLoadingAddressDetails}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={4}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-point-address-v3-details-error-message\"\n />\n )}\n\n <Collapse in={!!value && !!element.isDisplayingAddressInformation}>\n <NotificationGrid\n className={`${pointAddressClass}__record-display has-margin-top-6`}\n gridClassName={`${pointAddressClass}__container`}\n >\n <PointAddressGridItem\n label=\"Local Government Area\"\n value={value?.properties?.localGovernmentArea?.lgaName}\n classNameSuffix=\"local-government-area-name\"\n />\n <PointAddressGridItem\n label=\"Lot / Section / Plan No.\"\n value={value?.properties?.cadastralIdentifier}\n classNameSuffix=\"cadastral-identifier\"\n />\n {value?.properties?.parcelBundle?.map((parcel, index) => (\n <PointAddressGridItem\n key={parcel.parcelId || index}\n label=\"Lot / DP Numbers\"\n value={`${parcel.lot}//${parcel.plan}`}\n classNameSuffix=\"cadastral-parcel\"\n />\n ))}\n </NotificationGrid>\n </Collapse>\n </div>\n )\n}\n\nexport default React.memo(FormElementPointAddressV3)\n"]}
|
package/dist/styles/ob-html.scss
CHANGED
package/dist/styles.css
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneblink/apps-react",
|
|
3
3
|
"description": "Helper functions for OneBlink apps in ReactJS.",
|
|
4
|
-
"version": "8.13.
|
|
4
|
+
"version": "8.13.1-beta.1",
|
|
5
5
|
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/oneblink/apps-react/issues"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@mui/lab": "^5.0.0-alpha.152",
|
|
49
49
|
"@mui/material": "^5.15.6",
|
|
50
50
|
"@mui/x-date-pickers": "^6.20.2",
|
|
51
|
-
"@oneblink/apps": "^23.5.0-beta.
|
|
51
|
+
"@oneblink/apps": "^23.5.0-beta.2",
|
|
52
52
|
"@oneblink/release-cli": "^3.4.0-beta.1",
|
|
53
53
|
"@oneblink/types": "github:oneblink/types",
|
|
54
54
|
"@types/blueimp-load-image": "^5.16.6",
|