@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
- setSearchValue(val);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartech/arsenal-ui",
3
- "version": "1.4.48",
3
+ "version": "1.4.49",
4
4
  "author": "DAR",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -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;