@dartech/arsenal-ui 1.4.20 → 1.4.22

Sign up to get free protection for your applications and to get access to all the features.
package/index.js CHANGED
@@ -810,6 +810,7 @@ const ControlAutocomplete = _a => {
810
810
  };
811
811
 
812
812
  function ControlQueryAutocomplete(_a) {
813
+ var _b;
813
814
  var {
814
815
  name,
815
816
  label,
@@ -831,7 +832,7 @@ function ControlQueryAutocomplete(_a) {
831
832
  requiredErrorText = ''
832
833
  } = _a,
833
834
  autocompleteProps = __rest(_a, ["name", "label", "control", "required", "searchBy", "labelKey", "multiple", "disabled", "valueKey", "sortBy", "hideErrorMessage", "disableCloseOnSelect", "textFieldProps", "onChange", "queryFunction", "validate", "itemQueryFunction", "requiredErrorText"]);
834
- const _b = useController({
835
+ const _c = useController({
835
836
  control,
836
837
  name,
837
838
  defaultValue: multiple ? [] : null,
@@ -840,20 +841,19 @@ function ControlQueryAutocomplete(_a) {
840
841
  validate
841
842
  }
842
843
  }),
843
- _c = _b.field,
844
+ _d = _c.field,
844
845
  {
845
846
  ref,
846
847
  onChange: setFieldValue,
847
848
  value: formValue
848
- } = _c,
849
- fieldProps = __rest(_c, ["ref", "onChange", "value"]),
849
+ } = _d,
850
+ fieldProps = __rest(_d, ["ref", "onChange", "value"]),
850
851
  {
851
852
  fieldState: {
852
853
  error,
853
854
  isDirty
854
855
  }
855
- } = _b;
856
- // const formValue = useWatch({ control, name, defaultValue: });
856
+ } = _c;
857
857
  const {
858
858
  getOptionLabel,
859
859
  isOptionEqualToValue,
@@ -865,13 +865,25 @@ function ControlQueryAutocomplete(_a) {
865
865
  const [open, setOpen] = useState(false);
866
866
  const [inputValue, setInputValue] = useState('');
867
867
  const [searchValue, setSearchValue] = useState('');
868
- const [totalItems, setTotalItems] = useState(0);
869
868
  const [page, setPage] = useState(0);
870
- const [options, setOptions] = useState([]);
869
+ const {
870
+ data,
871
+ isFetching
872
+ } = useQuery(['options', page, searchValue], () => {
873
+ const params = qs.parse(Object.assign({
874
+ page: `${page}`,
875
+ size: '20',
876
+ sort: sortBy
877
+ }, searchValue ? {
878
+ [searchBy]: searchValue
879
+ } : {}), {
880
+ ignoreQueryPrefix: true
881
+ });
882
+ return queryFunction(params);
883
+ });
871
884
  const debouncedChange = useDebounce(val => {
872
885
  setPage(0);
873
886
  setSearchValue(val);
874
- setOptions([]);
875
887
  }, 500);
876
888
  const handleInputChange = useCallback((_, value) => {
877
889
  setInputValue(value);
@@ -897,10 +909,10 @@ function ControlQueryAutocomplete(_a) {
897
909
  }, [formValue, isDirty, valueKey, labelKey, itemQueryFunction, setFieldValue]);
898
910
  const handleOnScroll = useCallback(event => {
899
911
  const listboxNode = event.currentTarget;
900
- if (listboxNode.scrollHeight - listboxNode.scrollTop - listboxNode.clientHeight <= 1 && options.length < totalItems) {
912
+ if (listboxNode.scrollHeight - listboxNode.scrollTop - listboxNode.clientHeight <= 1 && (data === null || data === void 0 ? void 0 : data.collection.length) < (data === null || data === void 0 ? void 0 : data.totalItems)) {
901
913
  setPage(page => page + 1);
902
914
  }
903
- }, [totalItems, options]);
915
+ }, [data]);
904
916
  const handleOpen = () => {
905
917
  setOpen(true);
906
918
  };
@@ -908,33 +920,12 @@ function ControlQueryAutocomplete(_a) {
908
920
  setOpen(false);
909
921
  setSearchValue('');
910
922
  };
911
- const {
912
- data,
913
- isFetching
914
- } = useQuery(['options', page, searchValue], () => {
915
- const params = qs.parse(Object.assign({
916
- page: `${page}`,
917
- size: '20',
918
- sort: sortBy
919
- }, searchValue ? {
920
- [searchBy]: searchValue
921
- } : {}), {
922
- ignoreQueryPrefix: true
923
- });
924
- return queryFunction(params);
925
- });
926
- useEffect(() => {
927
- if (data) {
928
- setOptions(prevOptions => [...prevOptions, ...data.collection]);
929
- setTotalItems(data.totalItems);
930
- }
931
- }, [data]);
932
923
  return jsx(Autocomplete, Object.assign({}, fieldProps, {
933
924
  fullWidth: true,
934
925
  disablePortal: true,
935
926
  size: "small",
936
927
  readOnly: disabled,
937
- options: options,
928
+ options: (_b = data === null || data === void 0 ? void 0 : data.collection) !== null && _b !== void 0 ? _b : [],
938
929
  multiple: multiple,
939
930
  getOptionLabel: getOptionLabel,
940
931
  isOptionEqualToValue: isOptionEqualToValue,
@@ -1066,9 +1057,10 @@ const ControlAceEditor = /*#__PURE__*/forwardRef((_a, ref) => {
1066
1057
  fontSize = 16,
1067
1058
  validate = true,
1068
1059
  parseValue,
1069
- requiredErrorText = ''
1060
+ requiredErrorText = '',
1061
+ useCleanValue
1070
1062
  } = _a,
1071
- otherProps = __rest(_a, ["control", "name", "mode", "label", "width", "height", "readOnly", "required", "validateJson", "hideErrorMessage", "fontSize", "validate", "parseValue", "requiredErrorText"]);
1063
+ otherProps = __rest(_a, ["control", "name", "mode", "label", "width", "height", "readOnly", "required", "validateJson", "hideErrorMessage", "fontSize", "validate", "parseValue", "requiredErrorText", "useCleanValue"]);
1072
1064
  const _b = useController({
1073
1065
  control,
1074
1066
  name,
@@ -1106,6 +1098,16 @@ const ControlAceEditor = /*#__PURE__*/forwardRef((_a, ref) => {
1106
1098
  javascript: [langs.javascript()],
1107
1099
  python: [langs.python()]
1108
1100
  }), []);
1101
+ const safeValue = useMemo(() => {
1102
+ if (mode === 'json' && typeof value !== 'string') {
1103
+ if (value === null) return '';
1104
+ return useCleanValue ? JSON.stringify(value, null, 2).replace(/\\"/g, '') : JSON.stringify(value, null, 2);
1105
+ }
1106
+ if (typeof value === 'string') {
1107
+ return useCleanValue ? value.replace(/\\"/g, '') : value;
1108
+ }
1109
+ return value;
1110
+ }, [value, useCleanValue, mode]);
1109
1111
  const handleChange = useCallback(value => {
1110
1112
  if (parseValue) {
1111
1113
  try {
@@ -1157,7 +1159,7 @@ const ControlAceEditor = /*#__PURE__*/forwardRef((_a, ref) => {
1157
1159
  isolation: 'isolate'
1158
1160
  },
1159
1161
  readOnly: readOnly,
1160
- value: mode === 'json' && typeof value !== 'string' ? value === null ? '' : JSON.stringify(value, null, 2) : value,
1162
+ value: safeValue,
1161
1163
  onChange: handleChange,
1162
1164
  extensions: extensions[mode]
1163
1165
  }, otherProps)), error && !hideErrorMessage && jsx(FormHelperText, Object.assign({
@@ -6035,7 +6037,8 @@ const PropertyFiller = ({
6035
6037
  control: control,
6036
6038
  label: valueLabel,
6037
6039
  parseValue: true,
6038
- hideErrorMessage: true
6040
+ hideErrorMessage: true,
6041
+ useCleanValue: true
6039
6042
  }) : jsx(ControlInput, {
6040
6043
  control: control,
6041
6044
  name: name,
@@ -6294,7 +6297,8 @@ const MultiplePropertyFiller = ({
6294
6297
  control: control,
6295
6298
  label: valueLabel,
6296
6299
  parseValue: true,
6297
- hideErrorMessage: true
6300
+ hideErrorMessage: true,
6301
+ useCleanValue: true
6298
6302
  }) : jsx(ControlInput, {
6299
6303
  required: true,
6300
6304
  hideErrorMessage: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartech/arsenal-ui",
3
- "version": "1.4.20",
3
+ "version": "1.4.22",
4
4
  "author": "DAR",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -17,6 +17,7 @@ export interface ControlAceEditorProps {
17
17
  parseValue?: boolean;
18
18
  requiredErrorText?: string;
19
19
  [key: string]: unknown;
20
+ useCleanValue?: boolean;
20
21
  }
21
22
  export declare const ControlAceEditor: import("react").ForwardRefExoticComponent<Omit<ControlAceEditorProps, "ref"> & import("react").RefAttributes<ReactCodeMirrorRef>>;
22
23
  export default ControlAceEditor;