@dartech/arsenal-ui 1.4.48 → 1.4.49

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/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;