@reltio/components 1.4.2159 → 1.4.2160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/AddressAutocompleteEditor/AddressAutocompleteEditor.d.ts +10 -0
  2. package/AddressAutocompleteEditor/AddressAutocompleteEditor.js +223 -0
  3. package/AddressAutocompleteEditor/AddressAutocompleteEditor.module.css.js +9 -0
  4. package/AddressAutocompleteEditor/AddressAutocompleteEditor.test.d.ts +1 -0
  5. package/AddressAutocompleteEditor/AddressAutocompleteEditor.test.js +522 -0
  6. package/AddressAutocompleteEditor/helpers.d.ts +10 -0
  7. package/AddressAutocompleteEditor/helpers.js +18 -0
  8. package/AddressAutocompleteEditor/index.d.ts +1 -0
  9. package/AddressAutocompleteEditor/index.js +1 -0
  10. package/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +1 -1
  11. package/EditorsFactory/EditorsFactory.js +4 -0
  12. package/ReferenceAttributeEditor/ReferenceAttributeEditor.js +5 -3
  13. package/RelationEditor/RelationEditor.js +6 -4
  14. package/SimpleAttributeEditor/SimpleAttributeEditor.d.ts +1 -0
  15. package/SimpleAttributeEditor/SimpleAttributeEditor.js +15 -4
  16. package/cjs/AddressAutocompleteEditor/AddressAutocompleteEditor.d.ts +10 -0
  17. package/cjs/AddressAutocompleteEditor/AddressAutocompleteEditor.js +253 -0
  18. package/cjs/AddressAutocompleteEditor/AddressAutocompleteEditor.module.css.js +9 -0
  19. package/cjs/AddressAutocompleteEditor/AddressAutocompleteEditor.test.d.ts +1 -0
  20. package/cjs/AddressAutocompleteEditor/AddressAutocompleteEditor.test.js +527 -0
  21. package/cjs/AddressAutocompleteEditor/helpers.d.ts +10 -0
  22. package/cjs/AddressAutocompleteEditor/helpers.js +24 -0
  23. package/cjs/AddressAutocompleteEditor/index.d.ts +1 -0
  24. package/cjs/AddressAutocompleteEditor/index.js +5 -0
  25. package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +1 -1
  26. package/cjs/EditorsFactory/EditorsFactory.js +4 -0
  27. package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.js +5 -3
  28. package/cjs/RelationEditor/RelationEditor.js +6 -4
  29. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.d.ts +1 -0
  30. package/cjs/SimpleAttributeEditor/SimpleAttributeEditor.js +14 -3
  31. package/cjs/contexts/AttributeValueContext/index.d.ts +3 -0
  32. package/cjs/contexts/AttributeValueContext/index.js +9 -0
  33. package/cjs/contexts/AutoCompleteContext/helpers.d.ts +24 -0
  34. package/cjs/contexts/AutoCompleteContext/helpers.js +165 -0
  35. package/cjs/contexts/AutoCompleteContext/index.d.ts +12 -0
  36. package/cjs/contexts/AutoCompleteContext/index.js +83 -0
  37. package/contexts/AttributeValueContext/index.d.ts +3 -0
  38. package/contexts/AttributeValueContext/index.js +3 -0
  39. package/contexts/AutoCompleteContext/helpers.d.ts +24 -0
  40. package/contexts/AutoCompleteContext/helpers.js +159 -0
  41. package/contexts/AutoCompleteContext/index.d.ts +12 -0
  42. package/contexts/AutoCompleteContext/index.js +56 -0
  43. package/package.json +2 -2
@@ -25,6 +25,7 @@ declare const _default: React.ForwardRefExoticComponent<Omit<{
25
25
  ownError?: AttributeError;
26
26
  highlightedError?: ContextType<typeof ScrollToElementContext>;
27
27
  isEmptyEditor?: boolean;
28
+ isFirstEditor?: boolean;
28
29
  } & Partial<{
29
30
  [x: string]: any;
30
31
  fieldName: any;
@@ -51,6 +51,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
51
51
  var react_1 = __importStar(require("react"));
52
52
  var classnames_1 = __importDefault(require("classnames"));
53
53
  var ramda_1 = require("ramda");
54
+ var react_context_selector_1 = require("@fluentui/react-context-selector");
54
55
  var Add_1 = __importDefault(require("@mui/icons-material/Add"));
55
56
  var Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
56
57
  var Typography_1 = __importDefault(require("@mui/material/Typography"));
@@ -72,6 +73,8 @@ var useAutopopulationContextValue_1 = require("./useAutopopulationContextValue")
72
73
  var useAttributeValuePermissions_1 = require("./useAttributeValuePermissions");
73
74
  var DependentLookupAutopopulationContext_1 = require("../contexts/DependentLookupAutopopulationContext");
74
75
  var styles_1 = require("./styles");
76
+ var AutoCompleteContext_1 = require("../contexts/AutoCompleteContext");
77
+ var AttributeValueContext_1 = require("../contexts/AttributeValueContext");
75
78
  var AsyncMountPlaceholder = function () {
76
79
  var styles = (0, styles_1.useStyles)();
77
80
  return react_1.default.createElement("div", { className: styles.placeholder });
@@ -79,7 +82,7 @@ var AsyncMountPlaceholder = function () {
79
82
  var SimpleAttributeEditor = function (_a) {
80
83
  var _b, _c;
81
84
  var _d;
82
- var className = _a.className, attributeValue = _a.attributeValue, attributeType = _a.attributeType, isReltioCrosswalk = _a.isReltioCrosswalk, ownError = _a.ownError, mode = _a.mode, onAddOneMore = _a.onAddOneMore, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, onDeactivateError = _a.onDeactivateError, additionalControlsRenderer = _a.additionalControlsRenderer, state = _a.state, highlightedError = _a.highlightedError, _e = _a.isEmptyEditor, isEmptyEditor = _e === void 0 ? false : _e, otherProps = __rest(_a, ["className", "attributeValue", "attributeType", "isReltioCrosswalk", "ownError", "mode", "onAddOneMore", "onDeleteAttribute", "onChangeAttribute", "onDeactivateError", "additionalControlsRenderer", "state", "highlightedError", "isEmptyEditor"]);
85
+ var className = _a.className, attributeValue = _a.attributeValue, attributeType = _a.attributeType, isReltioCrosswalk = _a.isReltioCrosswalk, ownError = _a.ownError, mode = _a.mode, onAddOneMore = _a.onAddOneMore, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, onDeactivateError = _a.onDeactivateError, additionalControlsRenderer = _a.additionalControlsRenderer, state = _a.state, highlightedError = _a.highlightedError, _e = _a.isEmptyEditor, isEmptyEditor = _e === void 0 ? false : _e, isFirstEditor = _a.isFirstEditor, otherProps = __rest(_a, ["className", "attributeValue", "attributeType", "isReltioCrosswalk", "ownError", "mode", "onAddOneMore", "onDeleteAttribute", "onChangeAttribute", "onDeactivateError", "additionalControlsRenderer", "state", "highlightedError", "isEmptyEditor", "isFirstEditor"]);
83
86
  var styles = (0, styles_1.useStyles)();
84
87
  var deleted = state === 'deleted';
85
88
  var edited = state === 'edited';
@@ -93,6 +96,7 @@ var SimpleAttributeEditor = function (_a) {
93
96
  var showToEdit = canEdit && isEditableMode && !attributeValue.masked;
94
97
  var errorMessage = (0, mdm_sdk_1.getErrorMessage)(ownError);
95
98
  var dependentLookupEditorContext = (0, MdmModuleContext_1.useMdmDependentLookupEditorContext)(attributeValue, attributeType);
99
+ var isAutocompleteTriggerAttribute = (0, react_context_selector_1.useContextSelector)(AutoCompleteContext_1.AddressAutoCompleteContext, function (c) { return c === null || c === void 0 ? void 0 : c.isAutocompleteTriggerAttribute; });
96
100
  var _g = (0, useScrollToAttributeError_1.useScrollToAttributeError)({ highlightedError: highlightedError, isSimple: true }), ref = _g.ref, errorClassName = _g.errorClassName;
97
101
  (0, react_1.useEffect)(function () {
98
102
  // when editor is empty but has default lookup code, onChangeAttribute will be called by useLookupsResolver
@@ -105,7 +109,13 @@ var SimpleAttributeEditor = function (_a) {
105
109
  });
106
110
  }
107
111
  }, [isEmptyEditor]);
108
- var dataTypeDefinition = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getAttrDataTypeDefinition)(attributeType); }, [attributeType]);
112
+ var dataTypeDefinition = (0, react_1.useMemo)(function () {
113
+ var dataTypeDefinition = (0, mdm_sdk_1.getAttrDataTypeDefinition)(attributeType);
114
+ if (isFirstEditor && (isAutocompleteTriggerAttribute === null || isAutocompleteTriggerAttribute === void 0 ? void 0 : isAutocompleteTriggerAttribute(attributeType))) {
115
+ return __assign(__assign({}, dataTypeDefinition), { type: mdm_sdk_1.DataTypes.TYPE_ADDRESS_AUTOCOMPLETE });
116
+ }
117
+ return dataTypeDefinition;
118
+ }, [attributeType, isAutocompleteTriggerAttribute, isFirstEditor]);
109
119
  var value = (0, react_1.useMemo)(function () { return (0, attributesView_1.attributeValueToEditorValue)(attributeValue, dataTypeDefinition); }, [attributeValue, dataTypeDefinition]);
110
120
  var deactivateError = (0, react_1.useCallback)(function () {
111
121
  if (ownError) {
@@ -138,7 +148,8 @@ var SimpleAttributeEditor = function (_a) {
138
148
  return (react_1.default.createElement("div", { ref: ref, "data-reltio-id": "simple-attribute-editor", className: (0, classnames_1.default)(styles.editor, className, errorClassName) },
139
149
  react_1.default.createElement(ErrorWrapper_1.ErrorWrapper, { errorMessage: errorMessage, className: styles.errorWrapper },
140
150
  react_1.default.createElement("div", { className: (0, classnames_1.default)(styles['editor-value'], (_b = {}, _b[styles.deleted] = deleted, _b), (_c = {}, _c[styles['editor-read-only-value']] = !showToEdit, _c)), "data-reltio-id": "reltio-attribute-value" }, showToEdit ? (react_1.default.createElement(DependentLookupAutopopulationContext_1.DependentLookupAutopopulationContext.Provider, { value: autopopulationContextValue },
141
- react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ fieldName: (0, mdm_sdk_1.attributeUriToSearchUri)(attributeType.uri), value: value, dataTypeDefinition: dataTypeDefinition, error: hasError, onChange: onValueEditorChange, fullWidth: true }, dependentLookupEditorContext, otherProps, deletedProps)))) : (react_1.default.createElement(DataTypeValue_1.DataTypeValue, { value: (0, mdm_sdk_1.getAttributeValue)(attributeValue), dataTypeDefinition: dataTypeDefinition })))),
151
+ react_1.default.createElement(AttributeValueContext_1.AttributeValueContext.Provider, { value: attributeValue },
152
+ react_1.default.createElement(DataTypeValueEditor_1.DataTypeValueEditor, __assign({ fieldName: (0, mdm_sdk_1.attributeUriToSearchUri)(attributeType.uri), value: value, dataTypeDefinition: dataTypeDefinition, error: hasError, onChange: onValueEditorChange, fullWidth: true }, dependentLookupEditorContext, otherProps, deletedProps))))) : (react_1.default.createElement(DataTypeValue_1.DataTypeValue, { value: (0, mdm_sdk_1.getAttributeValue)(attributeValue), dataTypeDefinition: dataTypeDefinition })))),
142
153
  react_1.default.createElement("div", { "data-reltio-id": "reltio-attribute-actions", className: styles['editor-actions'] },
143
154
  edited && (react_1.default.createElement(Typography_1.default, { variant: "caption", className: styles.editedLabel },
144
155
  "(",
@@ -0,0 +1,3 @@
1
+ import { SimpleAttributeValue } from '@reltio/mdm-sdk';
2
+ import React from 'react';
3
+ export declare const AttributeValueContext: React.Context<SimpleAttributeValue>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AttributeValueContext = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ exports.AttributeValueContext = react_1.default.createContext(null);
9
+ exports.AttributeValueContext.displayName = 'AttributeValueContext';
@@ -0,0 +1,24 @@
1
+ import { Entity, AttributeType, Metadata, AddressAutoCompleteConfig, ModifyAttributePayload, AddressDetails } from '@reltio/mdm-sdk';
2
+ export type AutocompleteSettings = {
3
+ minSearchTextLen: number;
4
+ countries: string[];
5
+ countryNames: string[];
6
+ limit: number;
7
+ };
8
+ export declare const getSettings: ({ metadata, modifiedEntity, triggerAttributeValueUri, triggerAttributeTypeUri, addressAutoCompleteConfig }: {
9
+ metadata: Metadata;
10
+ modifiedEntity: Entity;
11
+ triggerAttributeValueUri: string;
12
+ triggerAttributeTypeUri: string;
13
+ addressAutoCompleteConfig: AddressAutoCompleteConfig;
14
+ }) => AutocompleteSettings;
15
+ export declare const isTriggerAttribute: (attributeType: AttributeType, inputMapping: AddressAutoCompleteConfig["inputMapping"]) => boolean;
16
+ export declare const modifyAttributes: ({ outputMapping, modifiedEntity, metadata, triggerAttributeTypeUri, triggerAttributeValueUri, values, modifyAttribute }: {
17
+ outputMapping: AddressAutoCompleteConfig["outputMapping"];
18
+ modifiedEntity: Entity;
19
+ metadata: Metadata;
20
+ modifyAttribute: (attribute: ModifyAttributePayload) => void;
21
+ triggerAttributeTypeUri: string;
22
+ triggerAttributeValueUri: string;
23
+ values: AddressDetails;
24
+ }) => void;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.modifyAttributes = exports.isTriggerAttribute = exports.getSettings = void 0;
15
+ var ramda_1 = require("ramda");
16
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
17
+ var MINIMUM_NESTED_LEVEL = 1;
18
+ var MIN_SEARCH_TEXT_LEN = 3;
19
+ var SEARCH_RESULTS_LIMIT = 10;
20
+ var COUNTRIES_DELIMETER = ';';
21
+ var genAttributeValueUri = function (_a) {
22
+ var _b;
23
+ var attributeType = _a.attributeType, parentValueUri = _a.parentValueUri, attributeTypeUri = _a.attributeTypeUri, modifiedEntity = _a.modifiedEntity, metadata = _a.metadata, existingValues = _a.existingValues, _c = _a.hasValues, hasValues = _c === void 0 ? true : _c;
24
+ var currentExistingValue = existingValues.find(function (_a) {
25
+ var uri = _a.uri;
26
+ return (0, mdm_sdk_1.areOneHierarchyUris)(uri, parentValueUri);
27
+ });
28
+ var hasExistingValues = Boolean(hasValues && currentExistingValue);
29
+ var currentLevelUri = hasExistingValues
30
+ ? currentExistingValue.uri
31
+ : (0, mdm_sdk_1.generateUri)(parentValueUri, attributeType.name);
32
+ if ((0, mdm_sdk_1.isNested)(attributeType)) {
33
+ var subAttributes = attributeType.attributes;
34
+ if (subAttributes === null || subAttributes === void 0 ? void 0 : subAttributes.length) {
35
+ var subAttrubuteType = subAttributes.find(function (_a) {
36
+ var uri = _a.uri;
37
+ return (0, mdm_sdk_1.areOneHierarchyUris)(attributeTypeUri, uri);
38
+ });
39
+ if (subAttrubuteType) {
40
+ return genAttributeValueUri({
41
+ attributeType: subAttrubuteType,
42
+ parentValueUri: currentLevelUri,
43
+ attributeTypeUri: attributeTypeUri,
44
+ modifiedEntity: modifiedEntity,
45
+ metadata: metadata,
46
+ existingValues: ((_b = currentExistingValue === null || currentExistingValue === void 0 ? void 0 : currentExistingValue.value) === null || _b === void 0 ? void 0 : _b[subAttrubuteType.name]) || [],
47
+ hasValues: hasExistingValues
48
+ });
49
+ }
50
+ }
51
+ return null;
52
+ }
53
+ return currentLevelUri;
54
+ };
55
+ var generateAttributeValueUri = function (_a) {
56
+ var attributeTypeUri = _a.attributeTypeUri, modifiedEntity = _a.modifiedEntity, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, triggerAttributeValueUri = _a.triggerAttributeValueUri, metadata = _a.metadata;
57
+ var triggerAttributeNestedLevel = triggerAttributeTypeUri.split('/attributes/').length - 1;
58
+ var attributeTypeRootUri = attributeTypeUri
59
+ .split('/attributes/')
60
+ .slice(0, Math.max(triggerAttributeNestedLevel, MINIMUM_NESTED_LEVEL) + 1)
61
+ .join('/attributes/');
62
+ var triggerAttributeValueParentUri = (0, mdm_sdk_1.getParentUri)(triggerAttributeValueUri);
63
+ var rootAttributeType = (0, mdm_sdk_1.findAttributeTypeByUri)(metadata, attributeTypeRootUri, modifiedEntity.type);
64
+ var existingValues = (0, mdm_sdk_1.findAttributeValuesByTypeUri)(metadata, modifiedEntity, rootAttributeType.uri).filter(mdm_sdk_1.isOv);
65
+ return genAttributeValueUri({
66
+ attributeType: rootAttributeType,
67
+ parentValueUri: triggerAttributeValueParentUri,
68
+ attributeTypeUri: attributeTypeUri,
69
+ modifiedEntity: modifiedEntity,
70
+ existingValues: existingValues,
71
+ metadata: metadata
72
+ });
73
+ };
74
+ var getCountriesFromValues = function (_a) {
75
+ var _b;
76
+ var metadata = _a.metadata, modifiedEntity = _a.modifiedEntity, triggerAttributeValueUri = _a.triggerAttributeValueUri, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, inputMapping = _a.inputMapping;
77
+ if (!triggerAttributeValueUri || !triggerAttributeTypeUri || !inputMapping || !modifiedEntity) {
78
+ return {};
79
+ }
80
+ var triggerAttributeValueParentUri = (0, mdm_sdk_1.getParentUri)(triggerAttributeValueUri);
81
+ var triggerAttributeTypeParentUri = (0, mdm_sdk_1.getParentUri)(triggerAttributeTypeUri);
82
+ var countriesMapping = (_b = inputMapping
83
+ .filter(function (_a) {
84
+ var cleanseAttribute = _a.cleanseAttribute;
85
+ return cleanseAttribute === mdm_sdk_1.InputCleanseAttributeType.Countries;
86
+ })
87
+ .filter(function (_a) {
88
+ var attribute = _a.attribute;
89
+ var attributeParentUri = (0, mdm_sdk_1.getParentUri)(attribute);
90
+ return (0, mdm_sdk_1.areOneHierarchyUris)(triggerAttributeTypeParentUri, attributeParentUri);
91
+ })
92
+ .sort(function (a, b) { return b.attribute.length - a.attribute.length; })) === null || _b === void 0 ? void 0 : _b[0];
93
+ var countryAttributeType = (countriesMapping === null || countriesMapping === void 0 ? void 0 : countriesMapping.attribute) &&
94
+ (0, mdm_sdk_1.findAttributeTypeByUri)(metadata, countriesMapping === null || countriesMapping === void 0 ? void 0 : countriesMapping.attribute, modifiedEntity.type);
95
+ if (countryAttributeType && !(0, mdm_sdk_1.isComplexAttribute)(countryAttributeType)) {
96
+ var existingCountriesValues = (0, mdm_sdk_1.findAttributeValuesByTypeUri)(metadata, modifiedEntity, countriesMapping.attribute);
97
+ var currentCountryValues = existingCountriesValues
98
+ .filter(mdm_sdk_1.isOv)
99
+ .filter(function (countryValue) {
100
+ return (0, mdm_sdk_1.areOneHierarchyUris)(triggerAttributeValueParentUri, (0, mdm_sdk_1.getParentUri)(countryValue.uri));
101
+ })
102
+ .filter(function (countryValue) { return countryValue.value; });
103
+ if (currentCountryValues === null || currentCountryValues === void 0 ? void 0 : currentCountryValues.length) {
104
+ var countries = currentCountryValues.map(function (value) { return value.lookupCode || value.value.toString(); });
105
+ return {
106
+ countries: countries,
107
+ countryNames: (0, ramda_1.pluck)('value', currentCountryValues)
108
+ };
109
+ }
110
+ }
111
+ };
112
+ var getSettings = function (_a) {
113
+ var _b, _c;
114
+ var metadata = _a.metadata, modifiedEntity = _a.modifiedEntity, triggerAttributeValueUri = _a.triggerAttributeValueUri, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, addressAutoCompleteConfig = _a.addressAutoCompleteConfig;
115
+ var _d = addressAutoCompleteConfig.inputMapping, inputMapping = _d === void 0 ? [] : _d, minSearchTextLen = addressAutoCompleteConfig.minSearchTextLen, providerOpts = addressAutoCompleteConfig.providerOpts;
116
+ return __assign({ minSearchTextLen: minSearchTextLen || MIN_SEARCH_TEXT_LEN, limit: (providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.limit) || SEARCH_RESULTS_LIMIT, countries: ((_b = providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.defaultCountries) === null || _b === void 0 ? void 0 : _b.split(COUNTRIES_DELIMETER)) || [], countryNames: ((_c = providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.defaultCountries) === null || _c === void 0 ? void 0 : _c.split(COUNTRIES_DELIMETER)) || [] }, getCountriesFromValues({
117
+ metadata: metadata,
118
+ modifiedEntity: modifiedEntity,
119
+ triggerAttributeValueUri: triggerAttributeValueUri,
120
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
121
+ inputMapping: inputMapping
122
+ }));
123
+ };
124
+ exports.getSettings = getSettings;
125
+ var isTriggerAttribute = function (attributeType, inputMapping) {
126
+ var allowedTypes = [mdm_sdk_1.DataTypes.TYPE_STRING, mdm_sdk_1.DataTypes.TYPE_TEXT, mdm_sdk_1.DataTypes.TYPE_BLOB];
127
+ return (allowedTypes.includes(attributeType.type) &&
128
+ inputMapping.some(function (_a) {
129
+ var attribute = _a.attribute, cleanseAttribute = _a.cleanseAttribute;
130
+ return attributeType.uri === attribute && cleanseAttribute === mdm_sdk_1.InputCleanseAttributeType.Text;
131
+ }));
132
+ };
133
+ exports.isTriggerAttribute = isTriggerAttribute;
134
+ var modifyAttributes = function (_a) {
135
+ var outputMapping = _a.outputMapping, modifiedEntity = _a.modifiedEntity, metadata = _a.metadata, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, triggerAttributeValueUri = _a.triggerAttributeValueUri, values = _a.values, modifyAttribute = _a.modifyAttribute;
136
+ var parentUri = (0, mdm_sdk_1.getParentUri)(triggerAttributeTypeUri);
137
+ outputMapping
138
+ .filter(function (_a) {
139
+ var attribute = _a.attribute;
140
+ return (0, mdm_sdk_1.areOneHierarchyUris)(attribute, parentUri);
141
+ })
142
+ .forEach(function (_a) {
143
+ var attributeTypeUri = _a.attribute, cleanseAttribute = _a.cleanseAttribute;
144
+ var value = values[cleanseAttribute] || '';
145
+ var attributeType = (0, mdm_sdk_1.findAttributeTypeByUri)(metadata, attributeTypeUri, modifiedEntity.type);
146
+ if (!attributeType) {
147
+ return;
148
+ }
149
+ var uri = generateAttributeValueUri({
150
+ attributeTypeUri: attributeTypeUri,
151
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
152
+ triggerAttributeValueUri: triggerAttributeValueUri,
153
+ modifiedEntity: modifiedEntity,
154
+ metadata: metadata
155
+ });
156
+ if (uri) {
157
+ modifyAttribute({
158
+ value: value,
159
+ uri: uri,
160
+ attributeType: attributeType
161
+ });
162
+ }
163
+ });
164
+ };
165
+ exports.modifyAttributes = modifyAttributes;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { AttributeType, AddressDetails } from '@reltio/mdm-sdk';
3
+ import { AutocompleteSettings } from './helpers';
4
+ export declare const AddressAutoCompleteContext: import("@fluentui/react-context-selector").Context<{
5
+ onPopulateAttributes: (triggerAttributeTypeUri: string, triggerAttributeValueUri: string, value: AddressDetails) => void;
6
+ isAutocompleteTriggerAttribute: (attributeType: AttributeType) => boolean;
7
+ getAutocompleteSettings: (triggerAttributeTypeUri: string, triggerAttributeValueUri: string) => AutocompleteSettings;
8
+ }>;
9
+ export declare const AddressAutoCompleteProvider: ({ children, entityUri }: {
10
+ children: React.ReactNode;
11
+ entityUri?: string;
12
+ }) => React.JSX.Element;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.AddressAutoCompleteProvider = exports.AddressAutoCompleteContext = void 0;
27
+ var react_1 = __importStar(require("react"));
28
+ var react_context_selector_1 = require("@fluentui/react-context-selector");
29
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
30
+ var MdmModuleContext_1 = require("../MdmModuleContext");
31
+ var helpers_1 = require("./helpers");
32
+ exports.AddressAutoCompleteContext = (0, react_context_selector_1.createContext)(null);
33
+ var AddressAutoCompleteProvider = function (_a) {
34
+ var children = _a.children, entityUri = _a.entityUri;
35
+ var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
36
+ var modifyAttribute = (0, MdmModuleContext_1.useMdmAction)('modifyAttribute');
37
+ var mdmEntityUri = (0, MdmModuleContext_1.useMdmEntityUri)();
38
+ var modifiedEntity = (0, MdmModuleContext_1.useMdmModifiedEntity)(entityUri || mdmEntityUri) || {};
39
+ var addressAutoCompleteConfig = (0, react_1.useMemo)(function () {
40
+ var _a;
41
+ var entityType = (modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.type) && metadata && (0, mdm_sdk_1.getEntityType)(metadata, modifiedEntity.type);
42
+ return (((_a = entityType === null || entityType === void 0 ? void 0 : entityType.cleanseConfig) === null || _a === void 0 ? void 0 : _a.addressAutoCompleteConfig) ||
43
+ { outputMapping: [], inputMapping: [] });
44
+ }, [modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.type, metadata]);
45
+ var onPopulateAttributes = (0, react_1.useCallback)(function (triggerAttributeTypeUri, triggerAttributeValueUri, values) {
46
+ if (!(addressAutoCompleteConfig === null || addressAutoCompleteConfig === void 0 ? void 0 : addressAutoCompleteConfig.outputMapping) ||
47
+ !(modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.uri) ||
48
+ !triggerAttributeTypeUri ||
49
+ !values) {
50
+ return;
51
+ }
52
+ var outputMapping = addressAutoCompleteConfig.outputMapping;
53
+ (0, helpers_1.modifyAttributes)({
54
+ outputMapping: outputMapping,
55
+ modifiedEntity: modifiedEntity,
56
+ metadata: metadata,
57
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
58
+ triggerAttributeValueUri: triggerAttributeValueUri,
59
+ values: values,
60
+ modifyAttribute: modifyAttribute
61
+ });
62
+ }, [addressAutoCompleteConfig, modifiedEntity, metadata, modifyAttribute]);
63
+ var isAutocompleteTriggerAttribute = (0, react_1.useCallback)(function (attributeType) {
64
+ var _a = addressAutoCompleteConfig.inputMapping, inputMapping = _a === void 0 ? [] : _a;
65
+ return (0, helpers_1.isTriggerAttribute)(attributeType, inputMapping);
66
+ }, [addressAutoCompleteConfig]);
67
+ var getAutocompleteSettings = (0, react_1.useCallback)(function (triggerAttributeTypeUri, triggerAttributeValueUri) {
68
+ return (0, helpers_1.getSettings)({
69
+ metadata: metadata,
70
+ modifiedEntity: modifiedEntity,
71
+ triggerAttributeValueUri: triggerAttributeValueUri,
72
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
73
+ addressAutoCompleteConfig: addressAutoCompleteConfig
74
+ });
75
+ }, [addressAutoCompleteConfig, metadata, modifiedEntity]);
76
+ var contextValue = (0, react_1.useMemo)(function () { return ({
77
+ onPopulateAttributes: onPopulateAttributes,
78
+ isAutocompleteTriggerAttribute: isAutocompleteTriggerAttribute,
79
+ getAutocompleteSettings: getAutocompleteSettings
80
+ }); }, [onPopulateAttributes, isAutocompleteTriggerAttribute, getAutocompleteSettings]);
81
+ return react_1.default.createElement(exports.AddressAutoCompleteContext.Provider, { value: contextValue }, children);
82
+ };
83
+ exports.AddressAutoCompleteProvider = AddressAutoCompleteProvider;
@@ -0,0 +1,3 @@
1
+ import { SimpleAttributeValue } from '@reltio/mdm-sdk';
2
+ import React from 'react';
3
+ export declare const AttributeValueContext: React.Context<SimpleAttributeValue>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export var AttributeValueContext = React.createContext(null);
3
+ AttributeValueContext.displayName = 'AttributeValueContext';
@@ -0,0 +1,24 @@
1
+ import { Entity, AttributeType, Metadata, AddressAutoCompleteConfig, ModifyAttributePayload, AddressDetails } from '@reltio/mdm-sdk';
2
+ export type AutocompleteSettings = {
3
+ minSearchTextLen: number;
4
+ countries: string[];
5
+ countryNames: string[];
6
+ limit: number;
7
+ };
8
+ export declare const getSettings: ({ metadata, modifiedEntity, triggerAttributeValueUri, triggerAttributeTypeUri, addressAutoCompleteConfig }: {
9
+ metadata: Metadata;
10
+ modifiedEntity: Entity;
11
+ triggerAttributeValueUri: string;
12
+ triggerAttributeTypeUri: string;
13
+ addressAutoCompleteConfig: AddressAutoCompleteConfig;
14
+ }) => AutocompleteSettings;
15
+ export declare const isTriggerAttribute: (attributeType: AttributeType, inputMapping: AddressAutoCompleteConfig["inputMapping"]) => boolean;
16
+ export declare const modifyAttributes: ({ outputMapping, modifiedEntity, metadata, triggerAttributeTypeUri, triggerAttributeValueUri, values, modifyAttribute }: {
17
+ outputMapping: AddressAutoCompleteConfig["outputMapping"];
18
+ modifiedEntity: Entity;
19
+ metadata: Metadata;
20
+ modifyAttribute: (attribute: ModifyAttributePayload) => void;
21
+ triggerAttributeTypeUri: string;
22
+ triggerAttributeValueUri: string;
23
+ values: AddressDetails;
24
+ }) => void;
@@ -0,0 +1,159 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { pluck } from 'ramda';
13
+ import { findAttributeTypeByUri, findAttributeValuesByTypeUri, isComplexAttribute, isOv, getParentUri, generateUri, InputCleanseAttributeType, areOneHierarchyUris, DataTypes, isNested } from '@reltio/mdm-sdk';
14
+ var MINIMUM_NESTED_LEVEL = 1;
15
+ var MIN_SEARCH_TEXT_LEN = 3;
16
+ var SEARCH_RESULTS_LIMIT = 10;
17
+ var COUNTRIES_DELIMETER = ';';
18
+ var genAttributeValueUri = function (_a) {
19
+ var _b;
20
+ var attributeType = _a.attributeType, parentValueUri = _a.parentValueUri, attributeTypeUri = _a.attributeTypeUri, modifiedEntity = _a.modifiedEntity, metadata = _a.metadata, existingValues = _a.existingValues, _c = _a.hasValues, hasValues = _c === void 0 ? true : _c;
21
+ var currentExistingValue = existingValues.find(function (_a) {
22
+ var uri = _a.uri;
23
+ return areOneHierarchyUris(uri, parentValueUri);
24
+ });
25
+ var hasExistingValues = Boolean(hasValues && currentExistingValue);
26
+ var currentLevelUri = hasExistingValues
27
+ ? currentExistingValue.uri
28
+ : generateUri(parentValueUri, attributeType.name);
29
+ if (isNested(attributeType)) {
30
+ var subAttributes = attributeType.attributes;
31
+ if (subAttributes === null || subAttributes === void 0 ? void 0 : subAttributes.length) {
32
+ var subAttrubuteType = subAttributes.find(function (_a) {
33
+ var uri = _a.uri;
34
+ return areOneHierarchyUris(attributeTypeUri, uri);
35
+ });
36
+ if (subAttrubuteType) {
37
+ return genAttributeValueUri({
38
+ attributeType: subAttrubuteType,
39
+ parentValueUri: currentLevelUri,
40
+ attributeTypeUri: attributeTypeUri,
41
+ modifiedEntity: modifiedEntity,
42
+ metadata: metadata,
43
+ existingValues: ((_b = currentExistingValue === null || currentExistingValue === void 0 ? void 0 : currentExistingValue.value) === null || _b === void 0 ? void 0 : _b[subAttrubuteType.name]) || [],
44
+ hasValues: hasExistingValues
45
+ });
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ return currentLevelUri;
51
+ };
52
+ var generateAttributeValueUri = function (_a) {
53
+ var attributeTypeUri = _a.attributeTypeUri, modifiedEntity = _a.modifiedEntity, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, triggerAttributeValueUri = _a.triggerAttributeValueUri, metadata = _a.metadata;
54
+ var triggerAttributeNestedLevel = triggerAttributeTypeUri.split('/attributes/').length - 1;
55
+ var attributeTypeRootUri = attributeTypeUri
56
+ .split('/attributes/')
57
+ .slice(0, Math.max(triggerAttributeNestedLevel, MINIMUM_NESTED_LEVEL) + 1)
58
+ .join('/attributes/');
59
+ var triggerAttributeValueParentUri = getParentUri(triggerAttributeValueUri);
60
+ var rootAttributeType = findAttributeTypeByUri(metadata, attributeTypeRootUri, modifiedEntity.type);
61
+ var existingValues = findAttributeValuesByTypeUri(metadata, modifiedEntity, rootAttributeType.uri).filter(isOv);
62
+ return genAttributeValueUri({
63
+ attributeType: rootAttributeType,
64
+ parentValueUri: triggerAttributeValueParentUri,
65
+ attributeTypeUri: attributeTypeUri,
66
+ modifiedEntity: modifiedEntity,
67
+ existingValues: existingValues,
68
+ metadata: metadata
69
+ });
70
+ };
71
+ var getCountriesFromValues = function (_a) {
72
+ var _b;
73
+ var metadata = _a.metadata, modifiedEntity = _a.modifiedEntity, triggerAttributeValueUri = _a.triggerAttributeValueUri, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, inputMapping = _a.inputMapping;
74
+ if (!triggerAttributeValueUri || !triggerAttributeTypeUri || !inputMapping || !modifiedEntity) {
75
+ return {};
76
+ }
77
+ var triggerAttributeValueParentUri = getParentUri(triggerAttributeValueUri);
78
+ var triggerAttributeTypeParentUri = getParentUri(triggerAttributeTypeUri);
79
+ var countriesMapping = (_b = inputMapping
80
+ .filter(function (_a) {
81
+ var cleanseAttribute = _a.cleanseAttribute;
82
+ return cleanseAttribute === InputCleanseAttributeType.Countries;
83
+ })
84
+ .filter(function (_a) {
85
+ var attribute = _a.attribute;
86
+ var attributeParentUri = getParentUri(attribute);
87
+ return areOneHierarchyUris(triggerAttributeTypeParentUri, attributeParentUri);
88
+ })
89
+ .sort(function (a, b) { return b.attribute.length - a.attribute.length; })) === null || _b === void 0 ? void 0 : _b[0];
90
+ var countryAttributeType = (countriesMapping === null || countriesMapping === void 0 ? void 0 : countriesMapping.attribute) &&
91
+ findAttributeTypeByUri(metadata, countriesMapping === null || countriesMapping === void 0 ? void 0 : countriesMapping.attribute, modifiedEntity.type);
92
+ if (countryAttributeType && !isComplexAttribute(countryAttributeType)) {
93
+ var existingCountriesValues = findAttributeValuesByTypeUri(metadata, modifiedEntity, countriesMapping.attribute);
94
+ var currentCountryValues = existingCountriesValues
95
+ .filter(isOv)
96
+ .filter(function (countryValue) {
97
+ return areOneHierarchyUris(triggerAttributeValueParentUri, getParentUri(countryValue.uri));
98
+ })
99
+ .filter(function (countryValue) { return countryValue.value; });
100
+ if (currentCountryValues === null || currentCountryValues === void 0 ? void 0 : currentCountryValues.length) {
101
+ var countries = currentCountryValues.map(function (value) { return value.lookupCode || value.value.toString(); });
102
+ return {
103
+ countries: countries,
104
+ countryNames: pluck('value', currentCountryValues)
105
+ };
106
+ }
107
+ }
108
+ };
109
+ export var getSettings = function (_a) {
110
+ var _b, _c;
111
+ var metadata = _a.metadata, modifiedEntity = _a.modifiedEntity, triggerAttributeValueUri = _a.triggerAttributeValueUri, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, addressAutoCompleteConfig = _a.addressAutoCompleteConfig;
112
+ var _d = addressAutoCompleteConfig.inputMapping, inputMapping = _d === void 0 ? [] : _d, minSearchTextLen = addressAutoCompleteConfig.minSearchTextLen, providerOpts = addressAutoCompleteConfig.providerOpts;
113
+ return __assign({ minSearchTextLen: minSearchTextLen || MIN_SEARCH_TEXT_LEN, limit: (providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.limit) || SEARCH_RESULTS_LIMIT, countries: ((_b = providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.defaultCountries) === null || _b === void 0 ? void 0 : _b.split(COUNTRIES_DELIMETER)) || [], countryNames: ((_c = providerOpts === null || providerOpts === void 0 ? void 0 : providerOpts.defaultCountries) === null || _c === void 0 ? void 0 : _c.split(COUNTRIES_DELIMETER)) || [] }, getCountriesFromValues({
114
+ metadata: metadata,
115
+ modifiedEntity: modifiedEntity,
116
+ triggerAttributeValueUri: triggerAttributeValueUri,
117
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
118
+ inputMapping: inputMapping
119
+ }));
120
+ };
121
+ export var isTriggerAttribute = function (attributeType, inputMapping) {
122
+ var allowedTypes = [DataTypes.TYPE_STRING, DataTypes.TYPE_TEXT, DataTypes.TYPE_BLOB];
123
+ return (allowedTypes.includes(attributeType.type) &&
124
+ inputMapping.some(function (_a) {
125
+ var attribute = _a.attribute, cleanseAttribute = _a.cleanseAttribute;
126
+ return attributeType.uri === attribute && cleanseAttribute === InputCleanseAttributeType.Text;
127
+ }));
128
+ };
129
+ export var modifyAttributes = function (_a) {
130
+ var outputMapping = _a.outputMapping, modifiedEntity = _a.modifiedEntity, metadata = _a.metadata, triggerAttributeTypeUri = _a.triggerAttributeTypeUri, triggerAttributeValueUri = _a.triggerAttributeValueUri, values = _a.values, modifyAttribute = _a.modifyAttribute;
131
+ var parentUri = getParentUri(triggerAttributeTypeUri);
132
+ outputMapping
133
+ .filter(function (_a) {
134
+ var attribute = _a.attribute;
135
+ return areOneHierarchyUris(attribute, parentUri);
136
+ })
137
+ .forEach(function (_a) {
138
+ var attributeTypeUri = _a.attribute, cleanseAttribute = _a.cleanseAttribute;
139
+ var value = values[cleanseAttribute] || '';
140
+ var attributeType = findAttributeTypeByUri(metadata, attributeTypeUri, modifiedEntity.type);
141
+ if (!attributeType) {
142
+ return;
143
+ }
144
+ var uri = generateAttributeValueUri({
145
+ attributeTypeUri: attributeTypeUri,
146
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
147
+ triggerAttributeValueUri: triggerAttributeValueUri,
148
+ modifiedEntity: modifiedEntity,
149
+ metadata: metadata
150
+ });
151
+ if (uri) {
152
+ modifyAttribute({
153
+ value: value,
154
+ uri: uri,
155
+ attributeType: attributeType
156
+ });
157
+ }
158
+ });
159
+ };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { AttributeType, AddressDetails } from '@reltio/mdm-sdk';
3
+ import { AutocompleteSettings } from './helpers';
4
+ export declare const AddressAutoCompleteContext: import("@fluentui/react-context-selector").Context<{
5
+ onPopulateAttributes: (triggerAttributeTypeUri: string, triggerAttributeValueUri: string, value: AddressDetails) => void;
6
+ isAutocompleteTriggerAttribute: (attributeType: AttributeType) => boolean;
7
+ getAutocompleteSettings: (triggerAttributeTypeUri: string, triggerAttributeValueUri: string) => AutocompleteSettings;
8
+ }>;
9
+ export declare const AddressAutoCompleteProvider: ({ children, entityUri }: {
10
+ children: React.ReactNode;
11
+ entityUri?: string;
12
+ }) => React.JSX.Element;
@@ -0,0 +1,56 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { createContext } from '@fluentui/react-context-selector';
3
+ import { getEntityType } from '@reltio/mdm-sdk';
4
+ import { useMdmAction, useMdmEntityUri, useMdmMetadata, useMdmModifiedEntity } from '../MdmModuleContext';
5
+ import { getSettings, isTriggerAttribute, modifyAttributes } from './helpers';
6
+ export var AddressAutoCompleteContext = createContext(null);
7
+ export var AddressAutoCompleteProvider = function (_a) {
8
+ var children = _a.children, entityUri = _a.entityUri;
9
+ var metadata = useMdmMetadata();
10
+ var modifyAttribute = useMdmAction('modifyAttribute');
11
+ var mdmEntityUri = useMdmEntityUri();
12
+ var modifiedEntity = useMdmModifiedEntity(entityUri || mdmEntityUri) || {};
13
+ var addressAutoCompleteConfig = useMemo(function () {
14
+ var _a;
15
+ var entityType = (modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.type) && metadata && getEntityType(metadata, modifiedEntity.type);
16
+ return (((_a = entityType === null || entityType === void 0 ? void 0 : entityType.cleanseConfig) === null || _a === void 0 ? void 0 : _a.addressAutoCompleteConfig) ||
17
+ { outputMapping: [], inputMapping: [] });
18
+ }, [modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.type, metadata]);
19
+ var onPopulateAttributes = useCallback(function (triggerAttributeTypeUri, triggerAttributeValueUri, values) {
20
+ if (!(addressAutoCompleteConfig === null || addressAutoCompleteConfig === void 0 ? void 0 : addressAutoCompleteConfig.outputMapping) ||
21
+ !(modifiedEntity === null || modifiedEntity === void 0 ? void 0 : modifiedEntity.uri) ||
22
+ !triggerAttributeTypeUri ||
23
+ !values) {
24
+ return;
25
+ }
26
+ var outputMapping = addressAutoCompleteConfig.outputMapping;
27
+ modifyAttributes({
28
+ outputMapping: outputMapping,
29
+ modifiedEntity: modifiedEntity,
30
+ metadata: metadata,
31
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
32
+ triggerAttributeValueUri: triggerAttributeValueUri,
33
+ values: values,
34
+ modifyAttribute: modifyAttribute
35
+ });
36
+ }, [addressAutoCompleteConfig, modifiedEntity, metadata, modifyAttribute]);
37
+ var isAutocompleteTriggerAttribute = useCallback(function (attributeType) {
38
+ var _a = addressAutoCompleteConfig.inputMapping, inputMapping = _a === void 0 ? [] : _a;
39
+ return isTriggerAttribute(attributeType, inputMapping);
40
+ }, [addressAutoCompleteConfig]);
41
+ var getAutocompleteSettings = useCallback(function (triggerAttributeTypeUri, triggerAttributeValueUri) {
42
+ return getSettings({
43
+ metadata: metadata,
44
+ modifiedEntity: modifiedEntity,
45
+ triggerAttributeValueUri: triggerAttributeValueUri,
46
+ triggerAttributeTypeUri: triggerAttributeTypeUri,
47
+ addressAutoCompleteConfig: addressAutoCompleteConfig
48
+ });
49
+ }, [addressAutoCompleteConfig, metadata, modifiedEntity]);
50
+ var contextValue = useMemo(function () { return ({
51
+ onPopulateAttributes: onPopulateAttributes,
52
+ isAutocompleteTriggerAttribute: isAutocompleteTriggerAttribute,
53
+ getAutocompleteSettings: getAutocompleteSettings
54
+ }); }, [onPopulateAttributes, isAutocompleteTriggerAttribute, getAutocompleteSettings]);
55
+ return React.createElement(AddressAutoCompleteContext.Provider, { value: contextValue }, children);
56
+ };