@dartech/arsenal-ui 1.4.48 → 1.4.49
Sign up to get free protection for your applications and to get access to all the features.
package/index.js
CHANGED
@@ -922,6 +922,7 @@ function ControlQueryAutocomplete(_a) {
|
|
922
922
|
searchBy,
|
923
923
|
labelKey,
|
924
924
|
multiple = false,
|
925
|
+
mongoQueryJson,
|
925
926
|
disabled,
|
926
927
|
valueKey,
|
927
928
|
sortBy = '',
|
@@ -934,7 +935,7 @@ function ControlQueryAutocomplete(_a) {
|
|
934
935
|
itemQueryFunction,
|
935
936
|
requiredErrorText = ''
|
936
937
|
} = _a,
|
937
|
-
autocompleteProps = __rest(_a, ["name", "label", "control", "required", "searchBy", "labelKey", "multiple", "disabled", "valueKey", "sortBy", "hideErrorMessage", "disableCloseOnSelect", "textFieldProps", "onChange", "queryFunction", "validate", "itemQueryFunction", "requiredErrorText"]);
|
938
|
+
autocompleteProps = __rest(_a, ["name", "label", "control", "required", "searchBy", "labelKey", "multiple", "mongoQueryJson", "disabled", "valueKey", "sortBy", "hideErrorMessage", "disableCloseOnSelect", "textFieldProps", "onChange", "queryFunction", "validate", "itemQueryFunction", "requiredErrorText"]);
|
938
939
|
const _b = useController({
|
939
940
|
control,
|
940
941
|
name,
|
@@ -994,9 +995,31 @@ function ControlQueryAutocomplete(_a) {
|
|
994
995
|
}
|
995
996
|
}
|
996
997
|
});
|
998
|
+
const modifyFieldsWithString = (data, replacement) => {
|
999
|
+
if (typeof data === 'object') {
|
1000
|
+
if (Array.isArray(data)) {
|
1001
|
+
return data.map(item => modifyFieldsWithString(item, replacement));
|
1002
|
+
} else {
|
1003
|
+
const modifiedData = {};
|
1004
|
+
for (const key in data) {
|
1005
|
+
modifiedData[key] = modifyFieldsWithString(data[key], replacement);
|
1006
|
+
}
|
1007
|
+
return modifiedData;
|
1008
|
+
}
|
1009
|
+
// eslint-disable-next-line no-template-curly-in-string
|
1010
|
+
} else if (typeof data === 'string' && data.includes('${variable}')) {
|
1011
|
+
// eslint-disable-next-line no-template-curly-in-string
|
1012
|
+
return data.replace('${variable}', replacement);
|
1013
|
+
} else {
|
1014
|
+
return data;
|
1015
|
+
}
|
1016
|
+
};
|
997
1017
|
const debouncedChange = useDebounce(val => {
|
998
1018
|
setPage(0);
|
999
|
-
|
1019
|
+
if (mongoQueryJson) {
|
1020
|
+
const obj = modifyFieldsWithString(mongoQueryJson, val);
|
1021
|
+
setSearchValue(JSON.stringify(obj));
|
1022
|
+
} else setSearchValue(val);
|
1000
1023
|
}, 500);
|
1001
1024
|
const handleInputChange = useCallback((_, value) => {
|
1002
1025
|
setInputValue(value);
|
package/package.json
CHANGED
@@ -8,10 +8,11 @@ type PaginateParams = {
|
|
8
8
|
};
|
9
9
|
type ControlQueryAutocompleteProps<T> = Omit<ControlAutocompleteProps, 'options'> & {
|
10
10
|
searchBy: string;
|
11
|
+
mongoQueryJson?: any;
|
11
12
|
sortBy?: string;
|
12
13
|
queryFunction: (params: PaginateParams) => Promise<PaginateData<T>>;
|
13
14
|
itemQueryFunction?: (valueKey: string) => Promise<T>;
|
14
15
|
requiredErrorText?: string;
|
15
16
|
};
|
16
|
-
export declare function ControlQueryAutocomplete<T>({ name, label, control, required, searchBy, labelKey, multiple, disabled, valueKey, sortBy, hideErrorMessage, disableCloseOnSelect, textFieldProps, onChange, queryFunction, validate, itemQueryFunction, requiredErrorText, ...autocompleteProps }: ControlQueryAutocompleteProps<T>): JSX.Element;
|
17
|
+
export declare function ControlQueryAutocomplete<T>({ name, label, control, required, searchBy, labelKey, multiple, mongoQueryJson, disabled, valueKey, sortBy, hideErrorMessage, disableCloseOnSelect, textFieldProps, onChange, queryFunction, validate, itemQueryFunction, requiredErrorText, ...autocompleteProps }: ControlQueryAutocompleteProps<T>): JSX.Element;
|
17
18
|
export default ControlQueryAutocomplete;
|