@steroidsjs/core 2.2.4 → 2.2.8

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
  };
@@ -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
@@ -90,6 +90,7 @@ function useDataProvider(config) {
90
90
  var delayTimerRef = react_1.useRef(null);
91
91
  var isAutoFetchedRef = react_1.useRef(false);
92
92
  var prevQuery = react_use_1.usePrevious(config.query);
93
+ var prevParams = react_use_1.usePrevious(dataProvider.params);
93
94
  react_1.useEffect(function () {
94
95
  var fetchRemote = function (isAuto) { return __awaiter(_this, void 0, void 0, function () {
95
96
  var searchHandler, result, newItems;
@@ -132,7 +133,7 @@ function useDataProvider(config) {
132
133
  clearTimeout(delayTimerRef.current);
133
134
  }
134
135
  // Changed query logic
135
- if (prevQuery !== config.query) {
136
+ if (prevQuery !== config.query || prevParams !== dataProvider.params) {
136
137
  // Search with delay
137
138
  delayTimerRef.current = setTimeout(fetchRemote, autoComplete.delay);
138
139
  }
@@ -109,7 +109,7 @@ function useDataSelect(config) {
109
109
  // Update selected items on change value
110
110
  var prevConfigSelectedIds = react_use_1.usePrevious(config.selectedIds || []);
111
111
  react_use_1.useUpdateEffect(function () {
112
- var newSelectedIds = config.selectedIds;
112
+ var newSelectedIds = config.selectedIds || [];
113
113
  selectedItems.forEach(function (selectedItem) {
114
114
  if (!newSelectedIds.includes(selectedItem.id) && config.selectedIds
115
115
  && config.selectedIds.includes(selectedItem.id)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "2.2.4",
3
+ "version": "2.2.8",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -27,7 +27,7 @@
27
27
  "connected-react-router": "^6.9.1",
28
28
  "domready": "^1.0.8",
29
29
  "dot-prop-immutable": "^2.1.0",
30
- "fileup-core": "^1.2.0",
30
+ "fileup-core": "^1.2.2",
31
31
  "history": "^4.10.1",
32
32
  "intl-messageformat": "^9.11.0",
33
33
  "js-cookie": "^2.2.1",
@@ -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"));
@@ -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();