@steroidsjs/core 3.0.0-beta.47 → 3.0.0-beta.48

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.0-beta.47",
3
+ "version": "3.0.0-beta.48",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -25,6 +25,9 @@
25
25
  "watch": "tsc -p tsconfig-debug.json"
26
26
  },
27
27
  "dependencies": {
28
+ "@maskito/core": "^0.12.1",
29
+ "@maskito/kit": "^0.12.1",
30
+ "@maskito/react": "^0.12.1",
28
31
  "axios": "^0.21.1",
29
32
  "connected-react-router": "^6.9.3",
30
33
  "domready": "^1.0.8",
@@ -47,7 +50,6 @@
47
50
  "react-grid-gallery": "^0.4.8",
48
51
  "react-helmet": "^6.1.0",
49
52
  "react-image-crop": "^9.0.2",
50
- "react-input-mask": "^3.0.0-alpha.2",
51
53
  "react-redux": "^8.0.5",
52
54
  "react-router": "^5.2.0",
53
55
  "react-router-dom": "^5.2.0",
@@ -1,6 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { ChangeEventHandler, ReactNode } from 'react';
3
+ import { MaskitoOptions } from '@maskito/core';
3
4
  import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
5
+ export declare const MASK_PRESETS: {
6
+ date: MaskitoOptions;
7
+ phone: {
8
+ mask: (string | RegExp)[];
9
+ };
10
+ card: {
11
+ mask: any[];
12
+ };
13
+ };
4
14
  type IElementInputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week' | string;
5
15
  export interface IBaseFieldProps extends IFieldWrapperInputProps, IUiComponent {
6
16
  /**
@@ -53,13 +63,19 @@ export interface IInputFieldProps extends IBaseFieldProps {
53
63
  addonAfter?: ReactNode | string;
54
64
  /**
55
65
  * Конфигурация маски
56
- * @example { mask: '+7 (999) 999-99-99' }
66
+ * @example: {
67
+ mask: [
68
+ ...Array(4).fill(/\d/),
69
+ '-',
70
+ ...Array(4).fill(/\d/),
71
+ '-',
72
+ ...Array(4).fill(/\d/),
73
+ '-',
74
+ ...Array(4).fill(/\d/),
75
+ ],
76
+ }
57
77
  */
58
- maskProps?: {
59
- mask?: string;
60
- maskPlaceholder?: string;
61
- alwaysShowMask?: boolean;
62
- };
78
+ maskOptions?: MaskitoOptions;
63
79
  /**
64
80
  * Пользовательская иконка svg или название иконки
65
81
  */
@@ -78,6 +94,8 @@ export interface IInputFieldViewProps extends IInputFieldProps, IFieldWrapperOut
78
94
  onFocus?: (e: Event | React.FocusEvent) => void;
79
95
  onBlur?: (e: Event | React.FocusEvent) => void;
80
96
  onMouseDown?: (e: Event | React.MouseEvent) => void;
97
+ maskedInputRef?: React.RefCallback<HTMLElement>;
98
+ defaultValue?: string;
81
99
  }
82
100
  declare const _default: import("../Field/fieldWrapper").FieldWrapperComponent<IInputFieldProps>;
83
101
  export default _default;
@@ -33,17 +33,48 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  __setModuleDefault(result, mod);
34
34
  return result;
35
35
  };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
36
45
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
47
  };
39
48
  exports.__esModule = true;
49
+ exports.MASK_PRESETS = void 0;
40
50
  var React = __importStar(require("react"));
41
- var react_input_mask_1 = __importDefault(require("react-input-mask"));
42
51
  var react_1 = require("react");
52
+ var react_2 = require("@maskito/react");
53
+ var kit_1 = require("@maskito/kit");
43
54
  var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
44
55
  var hooks_1 = require("../../../hooks");
56
+ exports.MASK_PRESETS = {
57
+ date: (0, kit_1.maskitoDateOptionsGenerator)({
58
+ mode: 'dd/mm/yyyy'
59
+ }),
60
+ phone: {
61
+ mask: ['+', '7', ' ', '(', /\d/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
62
+ },
63
+ card: {
64
+ mask: __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], Array(4).fill(/\d/), true), [
65
+ '-'
66
+ ], false), Array(4).fill(/\d/), true), [
67
+ '-'
68
+ ], false), Array(4).fill(/\d/), true), [
69
+ '-'
70
+ ], false), Array(4).fill(/\d/), true)
71
+ }
72
+ };
45
73
  function InputField(props) {
46
74
  var components = (0, hooks_1.useComponents)();
75
+ var maskedInputRef = (0, react_2.useMaskito)({
76
+ options: props.maskOptions
77
+ });
47
78
  var onClear = React.useCallback(function () { return props.input.onChange(''); }, [props.input]);
48
79
  props.onClear = onClear;
49
80
  var inputProps = (0, react_1.useMemo)(function () {
@@ -54,12 +85,7 @@ function InputField(props) {
54
85
  if (props.type === 'hidden') {
55
86
  return null;
56
87
  }
57
- // react-input-mask HOC for mask
58
- if (props.maskProps) {
59
- var maskOnChange = function (e) { return props.input.onChange(e.target.value); };
60
- return (React.createElement(react_input_mask_1["default"], __assign({}, inputProps, props.maskProps, { onChange: maskOnChange }), components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps, onChange: maskOnChange }))));
61
- }
62
- return components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps }));
88
+ return components.ui.renderView(props.view || 'form.InputFieldView', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps, maskedInputRef: maskedInputRef }));
63
89
  }
64
90
  InputField.defaultProps = {
65
91
  type: 'text',
@@ -1,7 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { IInputFieldProps } from '../InputField/InputField';
3
- export interface IMaskFieldProps extends IInputFieldProps {
4
- mask?: string;
5
- }
3
+ export type IMaskFieldProps = IInputFieldProps;
6
4
  declare function MaskField(props: IMaskFieldProps): JSX.Element;
7
5
  export default MaskField;
@@ -29,6 +29,6 @@ var react_1 = __importDefault(require("react"));
29
29
  var InputField_1 = __importDefault(require("../InputField/InputField"));
30
30
  function MaskField(props) {
31
31
  var mask = props.mask, maskProps = props.maskProps, inputProps = __rest(props, ["mask", "maskProps"]);
32
- return (react_1["default"].createElement(InputField_1["default"], __assign({}, inputProps, { maskProps: __assign({ mask: mask }, maskProps) })));
32
+ return (react_1["default"].createElement(InputField_1["default"], __assign({}, inputProps, { maskOptions: props.maskOptions })));
33
33
  }
34
34
  exports["default"] = MaskField;