@steroidsjs/core 3.0.21 → 3.0.22

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.
@@ -25291,6 +25291,7 @@
25291
25291
  "tags": {},
25292
25292
  "defaultProps": null,
25293
25293
  "extends": [
25294
+ "IFieldWrapperInputProps",
25294
25295
  "IBaseFieldProps"
25295
25296
  ],
25296
25297
  "properties": [
@@ -1,6 +1,6 @@
1
1
  import React, { ChangeEvent } from 'react';
2
2
  import { IInputParams } from '../ui/form/Field/fieldWrapper';
3
- export default function useSaveCursorPosition(inputParams: IInputParams): {
3
+ export default function useSaveCursorPosition(inputParams: IInputParams, onChangeCallback?: (value: any) => void): {
4
4
  inputRef: React.MutableRefObject<any>;
5
5
  onChange: (event: ChangeEvent<HTMLInputElement>, value?: any) => void;
6
6
  };
@@ -9,7 +9,7 @@ exports.__esModule = true;
9
9
  /* eslint-disable no-return-assign */
10
10
  /* eslint-disable no-unused-expressions */
11
11
  var react_1 = __importDefault(require("react"));
12
- function useSaveCursorPosition(inputParams) {
12
+ function useSaveCursorPosition(inputParams, onChangeCallback) {
13
13
  var _a = react_1["default"].useState(null), cursor = _a[0], setCursor = _a[1];
14
14
  var inputRef = react_1["default"].useRef(null);
15
15
  react_1["default"].useEffect(function () {
@@ -19,11 +19,14 @@ function useSaveCursorPosition(inputParams) {
19
19
  }
20
20
  }, [cursor, inputParams.value]);
21
21
  var onChange = react_1["default"].useCallback(function (event, value) {
22
- var _a, _b;
22
+ var _a, _b, _c;
23
23
  if (value === void 0) { value = null; }
24
- setCursor((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.selectionStart);
25
- inputParams.onChange(value || ((_b = event.target) === null || _b === void 0 ? void 0 : _b.value));
26
- }, [inputParams]);
24
+ if (onChangeCallback) {
25
+ onChangeCallback(value || ((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
26
+ }
27
+ setCursor((_b = event === null || event === void 0 ? void 0 : event.target) === null || _b === void 0 ? void 0 : _b.selectionStart);
28
+ inputParams.onChange(value || ((_c = event.target) === null || _c === void 0 ? void 0 : _c.value));
29
+ }, [inputParams, onChangeCallback]);
27
30
  return {
28
31
  inputRef: inputRef,
29
32
  onChange: onChange
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.21",
3
+ "version": "3.0.22",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -1,12 +1,12 @@
1
1
  import React, { ChangeEvent } from 'react';
2
2
  import { IBaseFieldProps } from '../InputField/InputField';
3
- import { IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
+ import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
4
4
  /**
5
5
  * NumberField
6
6
  *
7
7
  * Числовое поле ввода. Этот компонент представляет собой поле ввода для числовых значений.
8
8
  **/
9
- export interface INumberFieldProps extends IBaseFieldProps {
9
+ export interface INumberFieldProps extends IFieldWrapperInputProps, IBaseFieldProps {
10
10
  /**
11
11
  * Минимальное значение
12
12
  * @example 1
@@ -45,7 +45,7 @@ var useInputTypeNumber_1 = __importDefault(require("./hooks/useInputTypeNumber")
45
45
  var DEFAULT_STEP = 1;
46
46
  function NumberField(props) {
47
47
  var components = (0, hooks_1.useComponents)();
48
- var _a = (0, hooks_1.useSaveCursorPosition)(props.input), currentInputRef = _a.inputRef, onChange = _a.onChange;
48
+ var _a = (0, hooks_1.useSaveCursorPosition)(props.input, props.onChange), currentInputRef = _a.inputRef, onChange = _a.onChange;
49
49
  var step = react_1["default"].useMemo(function () { var _a; return (_a = props.step) !== null && _a !== void 0 ? _a : DEFAULT_STEP; }, [props.step]);
50
50
  var onInputChange = (0, useInputTypeNumber_1["default"])(currentInputRef, {
51
51
  max: props.max,
@@ -16,6 +16,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  exports.__esModule = true;
17
17
  var react_1 = require("react");
18
18
  var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
19
+ var head_1 = __importDefault(require("lodash-es/head"));
20
+ var last_1 = __importDefault(require("lodash-es/last"));
19
21
  var hooks_1 = require("../../../hooks");
20
22
  var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
21
23
  var normalizeValue = function (value) { return (0, toInteger_1["default"])(String(value).replace(/[0-9]g/, '')) || 0; };
@@ -28,7 +30,12 @@ function SliderField(props) {
28
30
  props.input.onChange(value);
29
31
  }, [props]);
30
32
  var onAfterChange = (0, react_1.useCallback)(function (value) {
31
- var normalizedValue = normalizeValue(value);
33
+ var normalizedValue = props.isRange
34
+ ? [
35
+ normalizeValue((0, head_1["default"])(value)),
36
+ normalizeValue((0, last_1["default"])(value)),
37
+ ]
38
+ : normalizeValue(value);
32
39
  if (props.onAfterChange) {
33
40
  props.onAfterChange(normalizedValue);
34
41
  }