@steroidsjs/core 2.2.1 → 2.2.5

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/actions/list.js CHANGED
@@ -216,15 +216,19 @@ var listFetch = function (listId, query) {
216
216
  meta: null
217
217
  };
218
218
  }
219
- return {
220
- items: data.items || [],
221
- total: data.total || null,
222
- meta: data.meta || null,
223
- page: formValues[list.pageAttribute],
224
- pageSize: formValues[list.pageSizeAttribute],
225
- listId: listId,
226
- type: exports.LIST_AFTER_FETCH
227
- };
219
+ return [
220
+ // Check has errors
221
+ form_2.formSetErrors(list.formId, data.errors || null),
222
+ {
223
+ items: data.items || [],
224
+ total: data.total || null,
225
+ meta: data.meta || null,
226
+ page: formValues[list.pageAttribute],
227
+ pageSize: formValues[list.pageSizeAttribute],
228
+ listId: listId,
229
+ type: exports.LIST_AFTER_FETCH
230
+ },
231
+ ];
228
232
  }));
229
233
  return dispatch(toDispatch);
230
234
  };
package/hoc/file.d.ts CHANGED
@@ -12,6 +12,10 @@ export interface IFileHocInput {
12
12
  imagesProcessor?: any;
13
13
  imagesExactSize?: any;
14
14
  initialFiles?: any;
15
+ uploaderConfig?: {
16
+ useFormData?: boolean;
17
+ fileFieldName?: string;
18
+ };
15
19
  }
16
20
  export interface IFileHocOutput {
17
21
  uploader?: any;
@@ -11,7 +11,7 @@ export interface IAddressBarOutput {
11
11
  updateQuery: (values: Record<string, unknown>) => void;
12
12
  }
13
13
  export declare const defaultFromStringConverter: (value: any, type: any, item: any) => any;
14
- export declare const defaultToStringConverter: (value: any, type: any, item: any) => any;
14
+ export declare const defaultToStringConverter: (value: any, type: any, item: any) => string;
15
15
  export declare const queryRestore: (model: Model, location: any, useHash: any) => {};
16
16
  /**
17
17
  * WARNING
@@ -9,13 +9,10 @@ var query_string_1 = __importDefault(require("query-string"));
9
9
  var connected_react_router_1 = require("connected-react-router");
10
10
  var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
11
11
  var has_1 = __importDefault(require("lodash-es/has"));
12
+ var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
12
13
  var react_1 = require("react");
13
14
  var useSelector_1 = __importDefault(require("../hooks/useSelector"));
14
15
  var useDispatch_1 = __importDefault(require("../hooks/useDispatch"));
15
- var defaultProps = {
16
- enable: false,
17
- useHash: false
18
- };
19
16
  var ARRAY_VALUE_SEPARATOR = '_';
20
17
  var defaultFromStringConverter = function (value, type, item) {
21
18
  type = type || '';
@@ -43,7 +40,7 @@ var defaultToStringConverter = function (value, type, item) {
43
40
  // Array
44
41
  if (type.substr(-2) === '[]') {
45
42
  return value
46
- ? value.join(ARRAY_VALUE_SEPARATOR)
43
+ ? [].concat(value || []).join(ARRAY_VALUE_SEPARATOR)
47
44
  : null;
48
45
  }
49
46
  // Single
@@ -67,7 +64,7 @@ var queryRestore = function (model, location, useHash) {
67
64
  }
68
65
  var defaultValue = has_1["default"](item, 'defaultValue') ? item.defaultValue : null;
69
66
  var converter = item.fromStringConverter || exports.defaultFromStringConverter;
70
- var value = converter(values[item.attribute], item.type || 'string', item);
67
+ var value = converter(values[item.attribute], item.jsType || 'string', item);
71
68
  if (value !== null || defaultValue !== null) {
72
69
  result[item.attribute] = value !== null ? value : defaultValue;
73
70
  }
@@ -91,7 +88,7 @@ var queryReplace = function (model, location, values, useHash) {
91
88
  var defaultValue = has_1["default"](item, 'defaultValue') ? item.defaultValue : null;
92
89
  if ((values === null || values === void 0 ? void 0 : values[item.attribute]) !== defaultValue) {
93
90
  var converter = item.toStringConverter || exports.defaultToStringConverter;
94
- var value = converter(values === null || values === void 0 ? void 0 : values[item.attribute], item.type || 'string', item);
91
+ var value = converter(values === null || values === void 0 ? void 0 : values[item.attribute], item.jsType || 'string', item);
95
92
  if (value !== null) {
96
93
  result[item.attribute] = value;
97
94
  }
@@ -125,7 +122,16 @@ function useAddressBar(config) {
125
122
  var dispatch = useDispatch_1["default"]();
126
123
  var updateQuery = react_1.useCallback(function (values) {
127
124
  if (config.enable) {
128
- dispatch(exports.queryReplace(config.model, location, values, config.useHash));
125
+ var normalizedValues = Object.keys(values).reduce(function (obj, key) {
126
+ if (values[key] !== undefined) {
127
+ obj[key] = values[key];
128
+ }
129
+ return obj;
130
+ }, {});
131
+ if (!isEqual_1["default"](initialQueryRef.current, normalizedValues)) {
132
+ initialQueryRef.current = normalizedValues;
133
+ dispatch(exports.queryReplace(config.model, location, values, config.useHash));
134
+ }
129
135
  }
130
136
  }, [config.enable, config.model, config.useHash, dispatch, location]);
131
137
  // TODO
package/hooks/useFile.js CHANGED
@@ -39,7 +39,7 @@ function generateBackendUrl(props) {
39
39
  });
40
40
  }
41
41
  function useFile(props) {
42
- var uploader = useInitial_1["default"](function () { return new fileup_core_1["default"](__assign(__assign({ dropArea: {}, backendUrl: generateBackendUrl(props) }, props.uploader), { form: __assign(__assign({}, (props.uploader && props.uploader.form)), { multiple: props.multiple }) })); });
42
+ var uploader = useInitial_1["default"](function () { return new fileup_core_1["default"](__assign(__assign({ dropArea: {}, backendUrl: generateBackendUrl(props), uploaderConfig: __assign({}, props.uploaderConfig) }, props.uploader), { form: __assign(__assign({}, (props.uploader && props.uploader.form)), { multiple: props.multiple }) })); });
43
43
  /**
44
44
  * Force component update when file status or progress changes
45
45
  * @private
@@ -156,7 +156,7 @@ function useFile(props) {
156
156
  var prevInputValue = react_use_1.usePrevious(props.input.value);
157
157
  //todo refactoring
158
158
  react_1.useEffect(function () {
159
- if (!isEqual_1["default"](prevInputValue !== props.input.value)) {
159
+ if (prevInputValue && !isEqual_1["default"](prevInputValue !== props.input.value)) {
160
160
  var toRemove_1 = difference_1["default"]([].concat(props.input.value || []), [].concat(prevInputValue || []));
161
161
  if (toRemove_1.length > 0) {
162
162
  uploader.queue.remove(uploader.queue.getFiles().filter(function (file) { return (toRemove_1.indexOf(get_1["default"](file.getResultHttpMessage(), 'id')) !== -1); }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "2.2.1",
3
+ "version": "2.2.5",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -1,4 +1,4 @@
1
- import SsrProvider from '@steroidsjs/core/providers/SsrProvider';
2
- import ScreenProvider from '@steroidsjs/core/providers/ScreenProvider';
3
- import ComponentsProvider from '@steroidsjs/core/providers/ComponentsProvider';
4
- export { SsrProvider, ScreenProvider, ComponentsProvider };
1
+ import ScreenProvider from './ScreenProvider';
2
+ import ComponentsProvider from './ComponentsProvider';
3
+ import SsrProvider from './SsrProvider';
4
+ export { SsrProvider, ScreenProvider, ComponentsProvider, };
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  exports.__esModule = true;
6
6
  exports.ComponentsProvider = exports.ScreenProvider = exports.SsrProvider = void 0;
7
- var SsrProvider_1 = __importDefault(require("@steroidsjs/core/providers/SsrProvider"));
8
- exports.SsrProvider = SsrProvider_1["default"];
9
- var ScreenProvider_1 = __importDefault(require("@steroidsjs/core/providers/ScreenProvider"));
7
+ var ScreenProvider_1 = __importDefault(require("./ScreenProvider"));
10
8
  exports.ScreenProvider = ScreenProvider_1["default"];
11
- var ComponentsProvider_1 = __importDefault(require("@steroidsjs/core/providers/ComponentsProvider"));
9
+ var ComponentsProvider_1 = __importDefault(require("./ComponentsProvider"));
12
10
  exports.ComponentsProvider = ComponentsProvider_1["default"];
11
+ var SsrProvider_1 = __importDefault(require("./SsrProvider"));
12
+ exports.SsrProvider = SsrProvider_1["default"];
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  exports.__esModule = true;
14
14
  var react_1 = require("react");
15
- var hooks_1 = require("@steroidsjs/core/hooks");
15
+ var hooks_1 = require("../../../hooks");
16
16
  function Alert(props) {
17
17
  var components = hooks_1.useComponents();
18
18
  var _a = react_1.useState(true), isExist = _a[0], setIsExist = _a[1];
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  exports.__esModule = true;
14
14
  var react_1 = require("react");
15
- var hooks_1 = require("@steroidsjs/core/hooks");
15
+ var hooks_1 = require("../../../hooks");
16
16
  function Avatar(props) {
17
17
  var components = hooks_1.useComponents();
18
18
  var _a = react_1.useState(false), isError = _a[0], setIsError = _a[1];
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  exports.__esModule = true;
22
22
  var React = __importStar(require("react"));
23
- var content_1 = require("@steroidsjs/core/ui/content");
23
+ var content_1 = require("../../../content");
24
24
  /**
25
25
  * Custom size in numbers
26
26
  * @order 4
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  exports.__esModule = true;
22
22
  var React = __importStar(require("react"));
23
- var content_1 = require("@steroidsjs/core/ui/content");
23
+ var content_1 = require("../../../content");
24
24
  /**
25
25
  * Group of avatars
26
26
  * @order 5
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  exports.__esModule = true;
22
22
  var React = __importStar(require("react"));
23
- var content_1 = require("@steroidsjs/core/ui/content");
23
+ var content_1 = require("../../../content");
24
24
  /**
25
25
  * Basic sizes with image source, online status and square shape
26
26
  * @order 3
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  exports.__esModule = true;
22
22
  var React = __importStar(require("react"));
23
- var content_1 = require("@steroidsjs/core/ui/content");
23
+ var content_1 = require("../../../content");
24
24
  /**
25
25
  * Basic sizes with image source and online status
26
26
  * @order 1
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  exports.__esModule = true;
22
22
  var React = __importStar(require("react"));
23
- var content_1 = require("@steroidsjs/core/ui/content");
23
+ var content_1 = require("../../../content");
24
24
  /**
25
25
  * Basic sizes with title and online status
26
26
  * @order 2
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  exports.__esModule = true;
14
- var hooks_1 = require("@steroidsjs/core/hooks");
14
+ var hooks_1 = require("../../../hooks");
15
15
  function Card(props) {
16
16
  var components = hooks_1.useComponents();
17
17
  return components.ui.renderView(props.view || 'content.CardView', __assign({}, props));
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
26
+ var form_1 = require("../../../form");
27
27
  var Card_1 = __importDefault(require("../Card"));
28
28
  /**
29
29
  * Header and footer
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
26
+ var form_1 = require("../../../form");
27
27
  var Card_1 = __importDefault(require("../Card"));
28
28
  /**
29
29
  * Hover image
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
26
+ var form_1 = require("../../../form");
27
27
  var Card_1 = __importDefault(require("../Card"));
28
28
  /**
29
29
  * Titles, text, and links
@@ -36,7 +36,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
36
36
  };
37
37
  exports.__esModule = true;
38
38
  var React = __importStar(require("react"));
39
- var hooks_1 = require("@steroidsjs/core/hooks");
39
+ var hooks_1 = require("../../../hooks");
40
40
  function Collapse(props) {
41
41
  var _a = React.useState([]), state = _a[0], setState = _a[1];
42
42
  React.useEffect(function () {
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  exports.__esModule = true;
14
- var hooks_1 = require("@steroidsjs/core/hooks");
14
+ var hooks_1 = require("../../../hooks");
15
15
  function CollapseItem(props) {
16
16
  var components = hooks_1.useComponents();
17
17
  return components.ui.renderView(props.view || 'content.CollapseItemView', __assign({}, props));
@@ -19,8 +19,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  exports.__esModule = true;
22
- var content_1 = require("@steroidsjs/core/ui/content");
23
22
  var React = __importStar(require("react"));
23
+ var content_1 = require("../../../content");
24
24
  var colors = {
25
25
  primary: 'primary',
26
26
  sd: 'secondary',
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { IGridProps } from '@steroidsjs/core/ui/list/Grid/Grid';
3
- import { IFormProps } from '@steroidsjs/core/ui/form/Form/Form';
2
+ import { IGridProps } from '../../list/Grid/Grid';
3
+ import { IFormProps } from '../../form/Form/Form';
4
4
  import { ICrudItem } from './Crud';
5
5
  import { IApiRest } from '../../../components/ApiComponent';
6
6
  export interface ICrudContentProps {
@@ -24,7 +24,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  exports.__esModule = true;
25
25
  exports.items = void 0;
26
26
  var React = __importStar(require("react"));
27
- var form_1 = require("@steroidsjs/core/ui/form");
27
+ var form_1 = require("../../../form");
28
28
  var BlankField_1 = __importDefault(require("../BlankField"));
29
29
  /**
30
30
  * Простой пример использзования BlankField.
@@ -39,6 +39,7 @@ function useDateInputState(props) {
39
39
  }, [propsDisplayValue]);
40
40
  // Display input change handler
41
41
  var onDisplayValueChange = react_1.useCallback(function (value) {
42
+ value = value.replace(/[^0-9:. ]/g, '');
42
43
  setDisplayValue(value);
43
44
  var parsedValue = calendar_1.convertDate(value, props.displayFormat, props.valueFormat, true);
44
45
  var newValue = parsedValue || !value ? parsedValue || null : false;
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
26
+ var form_1 = require("../../../form");
27
27
  var Form_1 = __importDefault(require("../Form"));
28
28
  var DateField_1 = __importDefault(require("../../DateField"));
29
29
  var InputField_1 = __importDefault(require("../../InputField"));
@@ -40,7 +40,10 @@ var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
40
40
  var hooks_1 = require("../../../hooks");
41
41
  function InputField(props) {
42
42
  var components = hooks_1.useComponents();
43
- var inputProps = react_1.useMemo(function () { return (__assign({ type: props.type, name: props.input.name, value: props.input.value || '', onChange: function (value) { return props.input.onChange(value); }, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps)); }, [props.disabled, props.input, props.inputProps, props.placeholder, props.type]);
43
+ var inputProps = react_1.useMemo(function () {
44
+ var _a;
45
+ return (__assign({ type: props.type, name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: function (value) { return props.input.onChange(value); }, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps));
46
+ }, [props.disabled, props.input, props.inputProps, props.placeholder, props.type]);
44
47
  // No render for hidden input
45
48
  if (props.type === 'hidden') {
46
49
  return null;
@@ -19,7 +19,10 @@ var hooks_1 = require("../../../hooks");
19
19
  var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
20
20
  function NumberField(props) {
21
21
  var components = hooks_1.useComponents();
22
- props.inputProps = react_1.useMemo(function () { return (__assign({ name: props.input.name, value: props.input.value || undefined, onChange: function (e) { return props.input.onChange(e.target ? e.target.value : e.nativeEvent.text); }, type: 'number', min: props.min, max: props.max, step: props.step, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps)); }, [props.disabled, props.input, props.inputProps, props.placeholder, props.min, props.max, props.step]);
22
+ props.inputProps = react_1.useMemo(function () {
23
+ var _a;
24
+ return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : undefined, onChange: function (e) { return props.input.onChange(e.target ? e.target.value : e.nativeEvent.text); }, type: 'number', min: props.min, max: props.max, step: props.step, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps));
25
+ }, [props.disabled, props.input, props.inputProps, props.placeholder, props.min, props.max, props.step]);
23
26
  return components.ui.renderView(props.view || 'form.NumberFieldView' || 'form.InputFieldView', props);
24
27
  }
25
28
  NumberField.defaultProps = {
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var layout_1 = require("@steroidsjs/core/ui/layout");
26
+ var layout_1 = require("../../../layout");
27
27
  var SliderField_1 = __importDefault(require("../SliderField"));
28
28
  /**
29
29
  * Использования свойства onAfterChange для изминения значения счетчика после отпускания tip'а у слайдера.
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var layout_1 = require("@steroidsjs/core/ui/layout");
26
+ var layout_1 = require("../../../layout");
27
27
  var SliderField_1 = __importDefault(require("../SliderField"));
28
28
  /**
29
29
  * Использования свойства onChange для изминения значения счетчика.
@@ -23,9 +23,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
27
- var useDispatch_1 = __importDefault(require("@steroidsjs/core/hooks/useDispatch"));
28
- var notifications_1 = require("@steroidsjs/core/actions/notifications");
26
+ var form_1 = require("../../../form");
27
+ var useDispatch_1 = __importDefault(require("../../../../hooks/useDispatch"));
28
+ var notifications_1 = require("../../../../actions/notifications");
29
29
  /**
30
30
  * Все позиции уведомлений
31
31
  * @order 3
@@ -23,9 +23,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  };
24
24
  exports.__esModule = true;
25
25
  var React = __importStar(require("react"));
26
- var form_1 = require("@steroidsjs/core/ui/form");
27
- var useDispatch_1 = __importDefault(require("@steroidsjs/core/hooks/useDispatch"));
28
- var notifications_1 = require("@steroidsjs/core/actions/notifications");
26
+ var form_1 = require("../../../form");
27
+ var useDispatch_1 = __importDefault(require("../../../../hooks/useDispatch"));
28
+ var notifications_1 = require("../../../../actions/notifications");
29
29
  /**
30
30
  * Время самостоятельного пропадания уведомления в милесекундах
31
31
  * @order 2
@@ -22,8 +22,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  exports.__esModule = true;
25
- var Icon_1 = __importDefault(require("@steroidsjs/core/ui/icon/Icon/Icon"));
26
25
  var React = __importStar(require("react"));
26
+ var Icon_1 = __importDefault(require("../../icon/Icon/Icon"));
27
27
  var hooks_1 = require("../../../hooks");
28
28
  function ProgressBar(props) {
29
29
  var components = hooks_1.useComponents();