@salutejs/plasma-new-hope 0.146.0-dev.0 → 0.147.0-canary.1418.10899581491.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. package/cjs/components/Mask/Mask.js +209 -0
  2. package/cjs/components/Mask/Mask.js.map +1 -0
  3. package/cjs/components/Mask/utils/constants.js +33 -0
  4. package/cjs/components/Mask/utils/constants.js.map +1 -0
  5. package/cjs/components/Mask/utils/createMask.js +53 -0
  6. package/cjs/components/Mask/utils/createMask.js.map +1 -0
  7. package/cjs/components/Mask/utils/mask.js +244 -0
  8. package/cjs/components/Mask/utils/mask.js.map +1 -0
  9. package/cjs/components/Mask/utils/parseMask.js +38 -0
  10. package/cjs/components/Mask/utils/parseMask.js.map +1 -0
  11. package/cjs/components/Mask/utils/processInput.js +54 -0
  12. package/cjs/components/Mask/utils/processInput.js.map +1 -0
  13. package/cjs/components/Mask/utils/processMask.js +101 -0
  14. package/cjs/components/Mask/utils/processMask.js.map +1 -0
  15. package/cjs/components/Mask/utils/selection.js +50 -0
  16. package/cjs/components/Mask/utils/selection.js.map +1 -0
  17. package/cjs/components/TextField/TextField.js +3 -1
  18. package/cjs/components/TextField/TextField.js.map +1 -1
  19. package/cjs/index.js +2 -0
  20. package/cjs/index.js.map +1 -1
  21. package/emotion/cjs/components/Mask/Mask.js +220 -0
  22. package/emotion/cjs/components/Mask/Mask.template-doc.mdx +126 -0
  23. package/emotion/cjs/components/Mask/Mask.types.js +5 -0
  24. package/emotion/cjs/components/Mask/index.js +12 -0
  25. package/emotion/cjs/components/Mask/utils/constants.js +29 -0
  26. package/emotion/cjs/components/Mask/utils/createMask.js +50 -0
  27. package/emotion/cjs/components/Mask/utils/mask.js +247 -0
  28. package/emotion/cjs/components/Mask/utils/parseMask.js +36 -0
  29. package/emotion/cjs/components/Mask/utils/processInput.js +52 -0
  30. package/emotion/cjs/components/Mask/utils/processMask.js +99 -0
  31. package/emotion/cjs/components/Mask/utils/selection.js +48 -0
  32. package/emotion/cjs/components/TextField/TextField.js +4 -2
  33. package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
  34. package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
  35. package/emotion/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
  36. package/emotion/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
  37. package/emotion/cjs/index.js +11 -0
  38. package/emotion/es/components/Mask/Mask.js +212 -0
  39. package/emotion/es/components/Mask/Mask.template-doc.mdx +126 -0
  40. package/emotion/es/components/Mask/Mask.types.js +1 -0
  41. package/emotion/es/components/Mask/index.js +1 -0
  42. package/emotion/es/components/Mask/utils/constants.js +23 -0
  43. package/emotion/es/components/Mask/utils/createMask.js +44 -0
  44. package/emotion/es/components/Mask/utils/mask.js +243 -0
  45. package/emotion/es/components/Mask/utils/parseMask.js +30 -0
  46. package/emotion/es/components/Mask/utils/processInput.js +46 -0
  47. package/emotion/es/components/Mask/utils/processMask.js +93 -0
  48. package/emotion/es/components/Mask/utils/selection.js +42 -0
  49. package/emotion/es/components/TextField/TextField.js +4 -2
  50. package/emotion/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
  51. package/emotion/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
  52. package/emotion/es/examples/plasma_web/components/Mask/Mask.js +3 -0
  53. package/emotion/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
  54. package/emotion/es/index.js +2 -1
  55. package/es/components/Mask/Mask.js +205 -0
  56. package/es/components/Mask/Mask.js.map +1 -0
  57. package/es/components/Mask/utils/constants.js +26 -0
  58. package/es/components/Mask/utils/constants.js.map +1 -0
  59. package/es/components/Mask/utils/createMask.js +48 -0
  60. package/es/components/Mask/utils/createMask.js.map +1 -0
  61. package/es/components/Mask/utils/mask.js +240 -0
  62. package/es/components/Mask/utils/mask.js.map +1 -0
  63. package/es/components/Mask/utils/parseMask.js +34 -0
  64. package/es/components/Mask/utils/parseMask.js.map +1 -0
  65. package/es/components/Mask/utils/processInput.js +50 -0
  66. package/es/components/Mask/utils/processInput.js.map +1 -0
  67. package/es/components/Mask/utils/processMask.js +97 -0
  68. package/es/components/Mask/utils/processMask.js.map +1 -0
  69. package/es/components/Mask/utils/selection.js +46 -0
  70. package/es/components/Mask/utils/selection.js.map +1 -0
  71. package/es/components/TextField/TextField.js +3 -1
  72. package/es/components/TextField/TextField.js.map +1 -1
  73. package/es/index.js +1 -0
  74. package/es/index.js.map +1 -1
  75. package/package.json +2 -2
  76. package/styled-components/cjs/components/Mask/Mask.js +220 -0
  77. package/styled-components/cjs/components/Mask/Mask.template-doc.mdx +126 -0
  78. package/styled-components/cjs/components/Mask/Mask.types.js +5 -0
  79. package/styled-components/cjs/components/Mask/index.js +12 -0
  80. package/styled-components/cjs/components/Mask/utils/constants.js +29 -0
  81. package/styled-components/cjs/components/Mask/utils/createMask.js +50 -0
  82. package/styled-components/cjs/components/Mask/utils/mask.js +247 -0
  83. package/styled-components/cjs/components/Mask/utils/parseMask.js +36 -0
  84. package/styled-components/cjs/components/Mask/utils/processInput.js +52 -0
  85. package/styled-components/cjs/components/Mask/utils/processMask.js +99 -0
  86. package/styled-components/cjs/components/Mask/utils/selection.js +48 -0
  87. package/styled-components/cjs/components/TextField/TextField.js +3 -1
  88. package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
  89. package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
  90. package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
  91. package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
  92. package/styled-components/cjs/index.js +11 -0
  93. package/styled-components/es/components/Mask/Mask.js +212 -0
  94. package/styled-components/es/components/Mask/Mask.template-doc.mdx +126 -0
  95. package/styled-components/es/components/Mask/Mask.types.js +1 -0
  96. package/styled-components/es/components/Mask/index.js +1 -0
  97. package/styled-components/es/components/Mask/utils/constants.js +23 -0
  98. package/styled-components/es/components/Mask/utils/createMask.js +44 -0
  99. package/styled-components/es/components/Mask/utils/mask.js +243 -0
  100. package/styled-components/es/components/Mask/utils/parseMask.js +30 -0
  101. package/styled-components/es/components/Mask/utils/processInput.js +46 -0
  102. package/styled-components/es/components/Mask/utils/processMask.js +93 -0
  103. package/styled-components/es/components/Mask/utils/selection.js +42 -0
  104. package/styled-components/es/components/TextField/TextField.js +3 -1
  105. package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
  106. package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
  107. package/styled-components/es/examples/plasma_web/components/Mask/Mask.js +3 -0
  108. package/styled-components/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
  109. package/styled-components/es/index.js +2 -1
  110. package/types/components/Mask/Mask.d.ts +5 -0
  111. package/types/components/Mask/Mask.d.ts.map +1 -0
  112. package/types/components/Mask/Mask.types.d.ts +84 -0
  113. package/types/components/Mask/Mask.types.d.ts.map +1 -0
  114. package/types/components/Mask/index.d.ts +2 -0
  115. package/types/components/Mask/index.d.ts.map +1 -0
  116. package/types/components/Mask/utils/constants.d.ts +15 -0
  117. package/types/components/Mask/utils/constants.d.ts.map +1 -0
  118. package/types/components/Mask/utils/createMask.d.ts +19 -0
  119. package/types/components/Mask/utils/createMask.d.ts.map +1 -0
  120. package/types/components/Mask/utils/mask.d.ts +48 -0
  121. package/types/components/Mask/utils/mask.d.ts.map +1 -0
  122. package/types/components/Mask/utils/parseMask.d.ts +3 -0
  123. package/types/components/Mask/utils/parseMask.d.ts.map +1 -0
  124. package/types/components/Mask/utils/processInput.d.ts +13 -0
  125. package/types/components/Mask/utils/processInput.d.ts.map +1 -0
  126. package/types/components/Mask/utils/processMask.d.ts +7 -0
  127. package/types/components/Mask/utils/processMask.d.ts.map +1 -0
  128. package/types/components/Mask/utils/selection.d.ts +10 -0
  129. package/types/components/Mask/utils/selection.d.ts.map +1 -0
  130. package/types/components/TextField/TextField.d.ts.map +1 -1
  131. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +191 -0
  132. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -0
  133. package/types/examples/plasma_web/components/Mask/Mask.d.ts +191 -0
  134. package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -0
  135. package/types/index.d.ts +1 -0
  136. package/types/index.d.ts.map +1 -1
@@ -0,0 +1,209 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var React = require('react');
7
+ var plasmaCore = require('@salutejs/plasma-core');
8
+ var useDidMountEffect = require('../../hooks/useDidMountEffect.js');
9
+ require('../../utils/react.js');
10
+ var createMask = require('./utils/createMask.js');
11
+ var constants = require('./utils/constants.js');
12
+
13
+ var _excluded = ["mask", "maskChar", "alwaysShowMask", "maskString", "showPrefix", "value", "defaultValue", "showMask", "onChange", "onBlur", "onFocus", "reformat"];
14
+ var composeMask = function composeMask(InputComponent) {
15
+ return /*#__PURE__*/React.forwardRef(function (props, outerRef) {
16
+ var maskValue = props.mask,
17
+ maskChar = props.maskChar,
18
+ alwaysShowMask = props.alwaysShowMask,
19
+ maskString = props.maskString,
20
+ showPrefix = props.showPrefix,
21
+ value = props.value,
22
+ defaultValue = props.defaultValue,
23
+ showMaskedValue = props.showMask,
24
+ onChange = props.onChange,
25
+ onBlur = props.onBlur,
26
+ onFocus = props.onFocus,
27
+ reformat = props.reformat,
28
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
29
+ var _useState = React.useState(alwaysShowMask || showMaskedValue),
30
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
31
+ showMask = _useState2[0],
32
+ setShowMask = _useState2[1];
33
+ var _useState3 = React.useState(''),
34
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
35
+ innerValue = _useState4[0],
36
+ setInnerValue = _useState4[1];
37
+ var mask = React.useMemo(function () {
38
+ return createMask.createMask({
39
+ value: String(value) || String(defaultValue) || '',
40
+ mask: maskValue,
41
+ maskChar: maskChar || createMask.defaults.maskChar,
42
+ maskString: maskString,
43
+ showPrefix: showPrefix || createMask.defaults.showPrefix,
44
+ reformat: reformat
45
+ });
46
+ }, []);
47
+ var canSetSelection = React.useRef(false);
48
+ var inputRef = React.useRef(null);
49
+ var innerRef = plasmaCore.useForkRef(inputRef, outerRef);
50
+ var getSelection = function getSelection() {
51
+ var _inputRef$current, _inputRef$current2;
52
+ mask.setSelection = {
53
+ start: (inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.selectionStart) || 0,
54
+ end: (inputRef === null || inputRef === void 0 || (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.selectionEnd) || 0
55
+ };
56
+ };
57
+ var setSelection = function setSelection() {
58
+ var _inputRef$current3;
59
+ if (!canSetSelection.current) {
60
+ return;
61
+ }
62
+ var selection = mask.getSelection;
63
+ inputRef === null || inputRef === void 0 || (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.setSelectionRange(selection.start, selection.end);
64
+ setTimeout(function () {
65
+ var _inputRef$current4;
66
+ return inputRef === null || inputRef === void 0 || (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setSelectionRange(selection.start, selection.end);
67
+ }, 0);
68
+ };
69
+ var showValue = function showValue() {
70
+ if (!(inputRef !== null && inputRef !== void 0 && inputRef.current)) {
71
+ return;
72
+ }
73
+ if (showMask && (canSetSelection.current || alwaysShowMask)) {
74
+ inputRef.current.value = mask.getState.maskedValue;
75
+ setInnerValue(mask.getState.maskedValue);
76
+ return;
77
+ }
78
+ setInnerValue(mask.getState.visibleValue);
79
+ inputRef.current.value = mask.getState.visibleValue;
80
+ };
81
+ var keyPressPropName = function keyPressPropName() {
82
+ if (typeof navigator !== 'undefined' && navigator.userAgent.match(/Android/i)) {
83
+ return 'onBeforeInput';
84
+ }
85
+ return 'onKeyPress';
86
+ };
87
+ var dispatchEvent = function dispatchEvent(e) {
88
+ var _mask$getState = mask.getState,
89
+ maskedValue = _mask$getState.maskedValue,
90
+ visibleValue = _mask$getState.visibleValue;
91
+ if (onChange) {
92
+ onChange(e, {
93
+ maskedValue: maskedValue,
94
+ value: visibleValue
95
+ });
96
+ }
97
+ };
98
+ var onPaste = function onPaste(e) {
99
+ e.preventDefault();
100
+ getSelection();
101
+ if (!(e !== null && e !== void 0 && e.clipboardData)) {
102
+ return;
103
+ }
104
+ mask.paste(e.clipboardData.getData('Text'));
105
+ setTimeout(setSelection, 0);
106
+ dispatchEvent(e);
107
+ };
108
+ var handleChange = function handleChange(e) {
109
+ var currentValue;
110
+ if (showMask && (canSetSelection.current || alwaysShowMask)) {
111
+ currentValue = mask.getState.maskedValue;
112
+ } else {
113
+ currentValue = mask.getState.visibleValue;
114
+ }
115
+ if (e.target.value !== currentValue) {
116
+ getSelection();
117
+ mask.updateValue(e.target.value);
118
+ setTimeout(setSelection, 0);
119
+ }
120
+ dispatchEvent(e);
121
+ };
122
+ var onKeyPress = function onKeyPress(e) {
123
+ if (e.metaKey || e.altKey || e.ctrlKey || e.key === 'Enter') {
124
+ return;
125
+ }
126
+ e.preventDefault();
127
+ getSelection();
128
+ mask.input(e.key || String.fromCharCode(e.which));
129
+ setSelection();
130
+ dispatchEvent(e);
131
+ };
132
+ var onKeyDown = function onKeyDown(e) {
133
+ if (e.code === constants.keyboardCode.Backspace) {
134
+ e.preventDefault();
135
+ getSelection();
136
+ mask.removePreviousOrSelected();
137
+ setSelection();
138
+ dispatchEvent(e);
139
+ }
140
+ if (e.code === constants.keyboardCode.Delete) {
141
+ e.preventDefault();
142
+ getSelection();
143
+ mask.removeNextOrSelected();
144
+ setSelection();
145
+ dispatchEvent(e);
146
+ }
147
+ };
148
+ var handleFocus = function handleFocus(e) {
149
+ canSetSelection.current = true;
150
+ if (onFocus) {
151
+ onFocus(e);
152
+ }
153
+ };
154
+ var handleBlur = function handleBlur(e) {
155
+ canSetSelection.current = false;
156
+ if (onBlur) {
157
+ onBlur(e);
158
+ }
159
+ };
160
+ var keyPressEvent = _rollupPluginBabelHelpers.defineProperty({}, keyPressPropName(), onKeyPress);
161
+ useDidMountEffect.useDidMountEffect(function () {
162
+ setShowMask(alwaysShowMask || showMask);
163
+ }, [alwaysShowMask, showMask]);
164
+ useDidMountEffect.useDidMountEffect(function () {
165
+ if (reformat) {
166
+ mask.updateReformat(reformat);
167
+ }
168
+ }, [reformat]);
169
+ useDidMountEffect.useDidMountEffect(function () {
170
+ mask.updateMask(String(mask));
171
+ }, [mask]);
172
+ useDidMountEffect.useDidMountEffect(function () {
173
+ mask.updateMaskString(String(maskString));
174
+ }, [maskString]);
175
+ useDidMountEffect.useDidMountEffect(function () {
176
+ mask.updateMaskChar(String(maskChar));
177
+ }, [maskChar]);
178
+ React.useEffect(function () {
179
+ mask.updateValue(String(value));
180
+ }, [value]);
181
+ React.useEffect(function () {
182
+ showValue();
183
+ }, [showValue, mask]);
184
+ React.useEffect(function () {
185
+ var subscriber = function subscriber() {
186
+ showValue();
187
+ setSelection();
188
+ };
189
+ mask.subscribe(subscriber);
190
+ return function () {
191
+ mask.unsubscribe(subscriber);
192
+ };
193
+ }, [mask, showValue, setSelection]);
194
+ return /*#__PURE__*/React.createElement(InputComponent, _rollupPluginBabelHelpers.extends({}, rest, {
195
+ onChange: handleChange,
196
+ onKeyDown: onKeyDown,
197
+ onPaste: onPaste,
198
+ onFocus: handleFocus,
199
+ onBlur: handleBlur
200
+ }, keyPressEvent, {
201
+ value: innerValue,
202
+ ref: innerRef,
203
+ autoComplete: "off"
204
+ }));
205
+ });
206
+ };
207
+
208
+ exports.composeMask = composeMask;
209
+ //# sourceMappingURL=Mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mask.js","sources":["../../../src/components/Mask/Mask.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ChangeEvent, FC, InputHTMLAttributes, FocusEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { useDidMountEffect } from '../../hooks';\n\nimport type { MaskProps } from './Mask.types';\nimport { createMask, defaults } from './utils/createMask';\nimport { keyboardCode } from './utils/constants';\nimport type { Mask } from './utils/mask';\n\nexport const composeMask = <T extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>>(InputComponent: FC<T>) =>\n forwardRef<HTMLInputElement, T & MaskProps>((props, outerRef) => {\n const {\n mask: maskValue,\n maskChar,\n alwaysShowMask,\n maskString,\n showPrefix,\n value,\n defaultValue,\n showMask: showMaskedValue,\n onChange,\n onBlur,\n onFocus,\n reformat,\n ...rest\n } = props;\n\n const [showMask, setShowMask] = useState(alwaysShowMask || showMaskedValue);\n const [innerValue, setInnerValue] = useState('');\n\n const mask = useMemo<Mask>(\n () =>\n createMask({\n value: String(value) || String(defaultValue) || '',\n mask: maskValue,\n maskChar: maskChar || defaults.maskChar,\n maskString,\n showPrefix: showPrefix || defaults.showPrefix,\n reformat,\n }),\n [],\n );\n\n const canSetSelection = useRef(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const innerRef = useForkRef(inputRef, outerRef);\n\n const getSelection = () => {\n mask.setSelection = {\n start: inputRef?.current?.selectionStart || 0,\n end: inputRef?.current?.selectionEnd || 0,\n };\n };\n\n const setSelection = () => {\n if (!canSetSelection.current) {\n return;\n }\n const selection = mask.getSelection;\n inputRef?.current?.setSelectionRange(selection.start, selection.end);\n\n setTimeout(() => inputRef?.current?.setSelectionRange(selection.start, selection.end), 0);\n };\n\n const showValue = () => {\n if (!inputRef?.current) {\n return;\n }\n\n if (showMask && (canSetSelection.current || alwaysShowMask)) {\n inputRef.current.value = mask.getState.maskedValue;\n setInnerValue(mask.getState.maskedValue);\n return;\n }\n\n setInnerValue(mask.getState.visibleValue);\n inputRef.current.value = mask.getState.visibleValue;\n };\n\n const keyPressPropName = () => {\n if (typeof navigator !== 'undefined' && navigator.userAgent.match(/Android/i)) {\n return 'onBeforeInput';\n }\n return 'onKeyPress';\n };\n\n const dispatchEvent = (e: KeyboardEvent | ChangeEvent | ClipboardEvent) => {\n const { maskedValue, visibleValue } = mask.getState;\n\n if (onChange) {\n onChange(e as ChangeEvent<HTMLInputElement>, { maskedValue, value: visibleValue });\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n e.preventDefault();\n getSelection();\n\n if (!e?.clipboardData) {\n return;\n }\n\n mask.paste(e.clipboardData.getData('Text'));\n setTimeout(setSelection, 0);\n\n dispatchEvent(e);\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n let currentValue;\n if (showMask && (canSetSelection.current || alwaysShowMask)) {\n currentValue = mask.getState.maskedValue;\n } else {\n currentValue = mask.getState.visibleValue;\n }\n\n if (e.target.value !== currentValue) {\n getSelection();\n mask.updateValue(e.target.value);\n\n setTimeout(setSelection, 0);\n }\n dispatchEvent(e);\n };\n\n const onKeyPress = (e: KeyboardEvent) => {\n if (e.metaKey || e.altKey || e.ctrlKey || e.key === 'Enter') {\n return;\n }\n\n e.preventDefault();\n getSelection();\n mask.input(e.key || String.fromCharCode(e.which));\n setSelection();\n dispatchEvent(e);\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.code === keyboardCode.Backspace) {\n e.preventDefault();\n getSelection();\n mask.removePreviousOrSelected();\n\n setSelection();\n\n dispatchEvent(e);\n }\n\n if (e.code === keyboardCode.Delete) {\n e.preventDefault();\n getSelection();\n mask.removeNextOrSelected();\n\n setSelection();\n\n dispatchEvent(e);\n }\n };\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n canSetSelection.current = true;\n\n if (onFocus) {\n onFocus(e);\n }\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n canSetSelection.current = false;\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n const keyPressEvent = { [keyPressPropName()]: onKeyPress };\n\n useDidMountEffect(() => {\n setShowMask(alwaysShowMask || showMask);\n }, [alwaysShowMask, showMask]);\n\n useDidMountEffect(() => {\n if (reformat) {\n mask.updateReformat(reformat);\n }\n }, [reformat]);\n\n useDidMountEffect(() => {\n mask.updateMask(String(mask));\n }, [mask]);\n\n useDidMountEffect(() => {\n mask.updateMaskString(String(maskString));\n }, [maskString]);\n\n useDidMountEffect(() => {\n mask.updateMaskChar(String(maskChar));\n }, [maskChar]);\n\n useEffect(() => {\n mask.updateValue(String(value));\n }, [value]);\n\n useEffect(() => {\n showValue();\n }, [showValue, mask]);\n\n useEffect(() => {\n const subscriber = () => {\n showValue();\n setSelection();\n };\n\n mask.subscribe(subscriber);\n\n return () => {\n mask.unsubscribe(subscriber);\n };\n }, [mask, showValue, setSelection]);\n\n return (\n <InputComponent\n {...(rest as T)}\n onChange={handleChange}\n onKeyDown={onKeyDown}\n onPaste={onPaste}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...keyPressEvent}\n value={innerValue}\n ref={innerRef}\n autoComplete=\"off\"\n />\n );\n });\n"],"names":["composeMask","InputComponent","forwardRef","props","outerRef","maskValue","mask","maskChar","alwaysShowMask","maskString","showPrefix","value","defaultValue","showMaskedValue","showMask","onChange","onBlur","onFocus","reformat","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","setShowMask","_useState3","_useState4","innerValue","setInnerValue","useMemo","createMask","String","defaults","canSetSelection","useRef","inputRef","innerRef","useForkRef","getSelection","_inputRef$current","_inputRef$current2","setSelection","start","current","selectionStart","end","selectionEnd","_inputRef$current3","selection","setSelectionRange","setTimeout","_inputRef$current4","showValue","getState","maskedValue","visibleValue","keyPressPropName","navigator","userAgent","match","dispatchEvent","e","_mask$getState","onPaste","preventDefault","clipboardData","paste","getData","handleChange","currentValue","target","updateValue","onKeyPress","metaKey","altKey","ctrlKey","key","input","fromCharCode","which","onKeyDown","code","keyboardCode","Backspace","removePreviousOrSelected","Delete","removeNextOrSelected","handleFocus","handleBlur","keyPressEvent","_defineProperty","useDidMountEffect","updateReformat","updateMask","updateMaskString","updateMaskChar","useEffect","subscriber","subscribe","unsubscribe","React","createElement","_extends","ref","autoComplete"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var charType = {
6
+ User: 1,
7
+ Char: 2,
8
+ Mask: 3
9
+ };
10
+ var keyboardCode = {
11
+ Backspace: 'Backspace',
12
+ Delete: 'Delete'
13
+ };
14
+ var escapeChar = '\\';
15
+ var defaultFormatChars = [{
16
+ str: '0',
17
+ regexp: /[0-9]/
18
+ }, {
19
+ str: '*',
20
+ regexp: /./
21
+ }, {
22
+ str: 'a',
23
+ regexp: /[a-zA-Z]/
24
+ }, {
25
+ str: 'я',
26
+ regexp: /[а-яА-ЯёЁ]/
27
+ }];
28
+
29
+ exports.charType = charType;
30
+ exports.defaultFormatChars = defaultFormatChars;
31
+ exports.escapeChar = escapeChar;
32
+ exports.keyboardCode = keyboardCode;
33
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/components/Mask/utils/constants.ts"],"sourcesContent":["export const charType = {\n User: 1,\n Char: 2,\n Mask: 3,\n} as const;\n\nexport const keyboardCode = {\n Backspace: 'Backspace',\n Delete: 'Delete',\n};\n\nexport const escapeChar = '\\\\';\n\nexport const defaultFormatChars = [\n {\n str: '0',\n regexp: /[0-9]/,\n },\n {\n str: '*',\n regexp: /./,\n },\n {\n str: 'a',\n regexp: /[a-zA-Z]/,\n },\n {\n str: 'я',\n regexp: /[а-яА-ЯёЁ]/,\n },\n];\n"],"names":["charType","User","Char","Mask","keyboardCode","Backspace","Delete","escapeChar","defaultFormatChars","str","regexp"],"mappings":";;;;AAAO,IAAMA,QAAQ,GAAG;AACpBC,EAAAA,IAAI,EAAE,CAAC;AACPC,EAAAA,IAAI,EAAE,CAAC;AACPC,EAAAA,IAAI,EAAE,CAAA;AACV,EAAU;AAEH,IAAMC,YAAY,GAAG;AACxBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,MAAM,EAAE,QAAA;AACZ,EAAC;AAEM,IAAMC,UAAU,GAAG,KAAI;AAEvB,IAAMC,kBAAkB,GAAG,CAC9B;AACIC,EAAAA,GAAG,EAAE,GAAG;AACRC,EAAAA,MAAM,EAAE,OAAA;AACZ,CAAC,EACD;AACID,EAAAA,GAAG,EAAE,GAAG;AACRC,EAAAA,MAAM,EAAE,GAAA;AACZ,CAAC,EACD;AACID,EAAAA,GAAG,EAAE,GAAG;AACRC,EAAAA,MAAM,EAAE,UAAA;AACZ,CAAC,EACD;AACID,EAAAA,GAAG,EAAE,GAAG;AACRC,EAAAA,MAAM,EAAE,YAAA;AACZ,CAAC;;;;;;;"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var constants = require('./constants.js');
6
+ var mask = require('./mask.js');
7
+ var selection = require('./selection.js');
8
+
9
+ var defaults = {
10
+ maskFormat: constants.defaultFormatChars,
11
+ maskChar: '',
12
+ showMask: false,
13
+ removeSelectedRange: selection.removeSelectedRange,
14
+ showPrefix: false
15
+ };
16
+ var createMask = function createMask(params) {
17
+ var _params$mask;
18
+ var maskString = params.maskString,
19
+ _params$showPrefix = params.showPrefix,
20
+ showPrefix = _params$showPrefix === void 0 ? defaults.showPrefix : _params$showPrefix,
21
+ _params$maskChar = params.maskChar,
22
+ maskChar = _params$maskChar === void 0 ? defaults.maskChar : _params$maskChar,
23
+ reformat = params.reformat;
24
+ var resReformat = reformat;
25
+ if (!reformat && !params.mask) {
26
+ resReformat = function resReformat(args) {
27
+ var str = args.value.map(function (item) {
28
+ return item["char"];
29
+ }).join('');
30
+ return {
31
+ value: args.value,
32
+ visibleValue: str,
33
+ maskedValue: str,
34
+ selection: args.selection
35
+ };
36
+ };
37
+ } else if (reformat && params.mask) {
38
+ params.mask = undefined;
39
+ }
40
+ if (maskString && maskString.length !== (params === null || params === void 0 || (_params$mask = params.mask) === null || _params$mask === void 0 ? void 0 : _params$mask.length)) {
41
+ throw new Error('maskString должна быть такой же длины, как и mask');
42
+ }
43
+ if (maskChar.length > 1) {
44
+ throw new Error('maskChar должен содержать только 1 символ');
45
+ }
46
+ var mask$1 = new mask.Mask(showPrefix, maskChar, maskString, resReformat);
47
+ mask$1.updateMask(params.mask);
48
+ return mask$1;
49
+ };
50
+
51
+ exports.createMask = createMask;
52
+ exports.defaults = defaults;
53
+ //# sourceMappingURL=createMask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMask.js","sources":["../../../../src/components/Mask/utils/createMask.ts"],"sourcesContent":["import type { CreateInputArgs, InputValueInfo } from '../Mask.types';\n\nimport { defaultFormatChars } from './constants';\nimport { Mask } from './mask';\nimport { removeSelectedRange } from './selection';\n\nexport const defaults = {\n maskFormat: defaultFormatChars,\n maskChar: '',\n showMask: false,\n removeSelectedRange,\n showPrefix: false,\n};\n\nexport const createMask = (params: CreateInputArgs): Mask => {\n const { maskString, showPrefix = defaults.showPrefix, maskChar = defaults.maskChar, reformat } = params;\n let resReformat = reformat;\n\n if (!reformat && !params.mask) {\n resReformat = (args) => {\n const str = (args.value as InputValueInfo[]).map((item) => item.char).join('');\n return {\n value: args.value,\n visibleValue: str,\n maskedValue: str,\n selection: args.selection,\n };\n };\n } else if (reformat && params.mask) {\n params.mask = undefined;\n }\n\n if (maskString && maskString.length !== params?.mask?.length) {\n throw new Error('maskString должна быть такой же длины, как и mask');\n }\n\n if (maskChar.length > 1) {\n throw new Error('maskChar должен содержать только 1 символ');\n }\n\n const mask = new Mask(showPrefix, maskChar, maskString, resReformat);\n\n mask.updateMask(params.mask);\n\n return mask;\n};\n"],"names":["defaults","maskFormat","defaultFormatChars","maskChar","showMask","removeSelectedRange","showPrefix","createMask","params","_params$mask","maskString","_params$showPrefix","_params$maskChar","reformat","resReformat","mask","args","str","value","map","item","join","visibleValue","maskedValue","selection","undefined","length","Error","Mask","updateMask"],"mappings":";;;;;;;;AAMO,IAAMA,QAAQ,GAAG;AACpBC,EAAAA,UAAU,EAAEC,4BAAkB;AAC9BC,EAAAA,QAAQ,EAAE,EAAE;AACZC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,mBAAmB,EAAnBA,6BAAmB;AACnBC,EAAAA,UAAU,EAAE,KAAA;AAChB,EAAC;IAEYC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,MAAuB,EAAW;AAAA,EAAA,IAAAC,YAAA,CAAA;AACzD,EAAA,IAAQC,UAAU,GAA+EF,MAAM,CAA/FE,UAAU;IAAAC,kBAAA,GAA+EH,MAAM,CAAnFF,UAAU;AAAVA,IAAAA,UAAU,GAAAK,kBAAA,KAAA,KAAA,CAAA,GAAGX,QAAQ,CAACM,UAAU,GAAAK,kBAAA;IAAAC,gBAAA,GAA6CJ,MAAM,CAAjDL,QAAQ;AAARA,IAAAA,QAAQ,GAAAS,gBAAA,KAAA,KAAA,CAAA,GAAGZ,QAAQ,CAACG,QAAQ,GAAAS,gBAAA;IAAEC,QAAQ,GAAKL,MAAM,CAAnBK,QAAQ,CAAA;EAC5F,IAAIC,WAAW,GAAGD,QAAQ,CAAA;AAE1B,EAAA,IAAI,CAACA,QAAQ,IAAI,CAACL,MAAM,CAACO,IAAI,EAAE;AAC3BD,IAAAA,WAAW,GAAG,SAAAA,WAACE,CAAAA,IAAI,EAAK;MACpB,IAAMC,GAAG,GAAID,IAAI,CAACE,KAAK,CAAsBC,GAAG,CAAC,UAACC,IAAI,EAAA;AAAA,QAAA,OAAKA,IAAI,CAAK,MAAA,CAAA,CAAA;AAAA,OAAA,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAAA;MAC9E,OAAO;QACHH,KAAK,EAAEF,IAAI,CAACE,KAAK;AACjBI,QAAAA,YAAY,EAAEL,GAAG;AACjBM,QAAAA,WAAW,EAAEN,GAAG;QAChBO,SAAS,EAAER,IAAI,CAACQ,SAAAA;OACnB,CAAA;KACJ,CAAA;AACL,GAAC,MAAM,IAAIX,QAAQ,IAAIL,MAAM,CAACO,IAAI,EAAE;IAChCP,MAAM,CAACO,IAAI,GAAGU,SAAS,CAAA;AAC3B,GAAA;EAEA,IAAIf,UAAU,IAAIA,UAAU,CAACgB,MAAM,MAAKlB,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,IAAA,CAAAC,YAAA,GAAND,MAAM,CAAEO,IAAI,MAAA,IAAA,IAAAN,YAAA,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAciB,MAAM,CAAE,EAAA;AAC1D,IAAA,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACxE,GAAA;AAEA,EAAA,IAAIxB,QAAQ,CAACuB,MAAM,GAAG,CAAC,EAAE;AACrB,IAAA,MAAM,IAAIC,KAAK,CAAC,2CAA2C,CAAC,CAAA;AAChE,GAAA;AAEA,EAAA,IAAMZ,MAAI,GAAG,IAAIa,SAAI,CAACtB,UAAU,EAAEH,QAAQ,EAAEO,UAAU,EAAEI,WAAW,CAAC,CAAA;AAEpEC,EAAAA,MAAI,CAACc,UAAU,CAACrB,MAAM,CAACO,IAAI,CAAC,CAAA;AAE5B,EAAA,OAAOA,MAAI,CAAA;AACf;;;;;"}
@@ -0,0 +1,244 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var constants = require('./constants.js');
7
+ var parseMask = require('./parseMask.js');
8
+ var processInput = require('./processInput.js');
9
+ var selection = require('./selection.js');
10
+
11
+ /**
12
+ * Copyright (c) 2018 Nikita Mostovoy.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE file in the root directory of this source tree.
16
+ */
17
+
18
+ var Mask = /*#__PURE__*/function () {
19
+ function Mask(showPrefix, maskChar, maskString, reformat) {
20
+ _rollupPluginBabelHelpers.classCallCheck(this, Mask);
21
+ _rollupPluginBabelHelpers.defineProperty(this, "selection", void 0);
22
+ _rollupPluginBabelHelpers.defineProperty(this, "value", void 0);
23
+ _rollupPluginBabelHelpers.defineProperty(this, "maskedValue", void 0);
24
+ _rollupPluginBabelHelpers.defineProperty(this, "visibleValue", void 0);
25
+ _rollupPluginBabelHelpers.defineProperty(this, "mask", void 0);
26
+ _rollupPluginBabelHelpers.defineProperty(this, "maskChar", void 0);
27
+ _rollupPluginBabelHelpers.defineProperty(this, "maskFormatMap", void 0);
28
+ _rollupPluginBabelHelpers.defineProperty(this, "showPrefix", void 0);
29
+ _rollupPluginBabelHelpers.defineProperty(this, "callbacks", void 0);
30
+ _rollupPluginBabelHelpers.defineProperty(this, "maskString", void 0);
31
+ _rollupPluginBabelHelpers.defineProperty(this, "reformat", void 0);
32
+ this.value = '';
33
+ this.mask = [];
34
+ this.maskedValue = '';
35
+ this.visibleValue = '';
36
+ this.selection = {
37
+ start: 0,
38
+ end: 0
39
+ };
40
+ this.callbacks = [];
41
+ this.maskFormatMap = this.parseMaskFormat;
42
+ this.showPrefix = showPrefix;
43
+ this.maskChar = maskChar;
44
+ this.maskString = maskString;
45
+ this.reformat = reformat;
46
+ }
47
+ return _rollupPluginBabelHelpers.createClass(Mask, [{
48
+ key: "parseMaskFormat",
49
+ get: function get() {
50
+ return constants.defaultFormatChars.reduce(function (acc, current) {
51
+ acc[String(current.str)] = current;
52
+ return acc;
53
+ }, {});
54
+ }
55
+ }, {
56
+ key: "getSelection",
57
+ get: function get() {
58
+ var _this$selection = this.selection,
59
+ start = _this$selection.start,
60
+ end = _this$selection.end;
61
+ return {
62
+ start: start,
63
+ end: end
64
+ };
65
+ }
66
+ }, {
67
+ key: "getState",
68
+ get: function get() {
69
+ return {
70
+ value: this.value,
71
+ maskedValue: this.maskedValue,
72
+ visibleValue: this.visibleValue,
73
+ selection: this.selection
74
+ };
75
+ }
76
+ }, {
77
+ key: "setSelection",
78
+ set: function set(newSelection) {
79
+ this.selection = newSelection;
80
+ }
81
+ }, {
82
+ key: "setShowStartChars",
83
+ set: function set(show) {
84
+ this.showPrefix = show;
85
+ }
86
+ }, {
87
+ key: "updateMask",
88
+ value: function updateMask(newMask) {
89
+ this.mask = parseMask.parseMask(newMask, this.maskFormatMap);
90
+ this.updateValue(this.value);
91
+ }
92
+ }, {
93
+ key: "updateMaskChar",
94
+ value: function updateMaskChar(newMaskChar) {
95
+ if (this.maskChar.length > 1) {
96
+ throw new Error('maskChar должен содержать только 1 символ');
97
+ }
98
+ this.maskChar = newMaskChar;
99
+ this.updateValue(this.value);
100
+ }
101
+ }, {
102
+ key: "updateMaskString",
103
+ value: function updateMaskString(newMaskString) {
104
+ if (newMaskString && newMaskString.length !== this.mask.length) {
105
+ throw new Error('maskString должна иметь такую же длину, как и mask');
106
+ }
107
+ this.maskString = newMaskString;
108
+ this.updateValue(this.value);
109
+ }
110
+ }, {
111
+ key: "updateReformat",
112
+ value: function updateReformat(newReformat) {
113
+ this.reformat = newReformat;
114
+ this.updateValue(this.value);
115
+ }
116
+ }, {
117
+ key: "updateValue",
118
+ value: function updateValue(data) {
119
+ if (this.reformat) {
120
+ var _result = this.reformat({
121
+ value: data,
122
+ selection: this.selection
123
+ });
124
+ return this.applyChanges(_result);
125
+ }
126
+ var dataList = Array.isArray(data) ? data : Array.from(data).reduce(function (acc, _char) {
127
+ acc.push({
128
+ "char": _char,
129
+ type: constants.charType.User
130
+ });
131
+ return acc;
132
+ }, []);
133
+ var result = processInput.processInput({
134
+ data: dataList,
135
+ selection: this.selection,
136
+ mask: this.mask,
137
+ maskChar: this.maskChar,
138
+ maskString: this.maskString,
139
+ showPrefix: this.showPrefix
140
+ });
141
+ this.applyChanges(result);
142
+ }
143
+ }, {
144
+ key: "removePreviousOrSelected",
145
+ value: function removePreviousOrSelected() {
146
+ var _this$selection2 = this.selection,
147
+ start = _this$selection2.start,
148
+ end = _this$selection2.end;
149
+ if (start === end) {
150
+ var newStart = end - 1 < 0 ? 0 : end - 1;
151
+ this.setSelection = {
152
+ start: newStart,
153
+ end: end
154
+ };
155
+ }
156
+ this.input('');
157
+ }
158
+ }, {
159
+ key: "removeNextOrSelected",
160
+ value: function removeNextOrSelected() {
161
+ var _this$selection3 = this.selection,
162
+ start = _this$selection3.start,
163
+ end = _this$selection3.end;
164
+ if (start === end) {
165
+ this.setSelection = {
166
+ start: start,
167
+ end: end + 1
168
+ };
169
+ }
170
+ this.input('');
171
+ }
172
+ }, {
173
+ key: "paste",
174
+ value: function paste(value) {
175
+ this.input(value);
176
+ }
177
+ }, {
178
+ key: "input",
179
+ value: function input(_input) {
180
+ if (this.reformat) {
181
+ var _result2 = this.reformat({
182
+ value: this.value,
183
+ input: _input,
184
+ selection: this.selection
185
+ });
186
+ return this.applyChanges(_result2);
187
+ }
188
+ var tmpValue = selection.removeSelectedRange({
189
+ value: this.value,
190
+ selection: this.selection,
191
+ maskChar: this.maskChar,
192
+ maskString: String(this.maskString)
193
+ });
194
+ this.selection.end = this.selection.start;
195
+ var result = processInput.processInput({
196
+ data: tmpValue,
197
+ input: _input,
198
+ selection: this.selection,
199
+ mask: this.mask,
200
+ maskChar: this.maskChar,
201
+ maskString: this.maskString,
202
+ showPrefix: this.showPrefix
203
+ });
204
+ this.applyChanges(result);
205
+ }
206
+ }, {
207
+ key: "applyChanges",
208
+ value: function applyChanges(result) {
209
+ var oldMaskedValue = this.maskedValue;
210
+ var oldVisibleValue = this.visibleValue;
211
+ var oldSelection = this.selection;
212
+ this.value = result.value;
213
+ this.maskedValue = result.maskedValue;
214
+ this.visibleValue = result.visibleValue;
215
+ this.setSelection = result.selection;
216
+ if (oldMaskedValue !== this.maskedValue || oldVisibleValue !== this.visibleValue || oldSelection.start !== this.selection.start || oldSelection.end !== this.selection.end) {
217
+ this.notify();
218
+ }
219
+ }
220
+ }, {
221
+ key: "subscribe",
222
+ value: function subscribe(callback) {
223
+ this.callbacks.push(callback);
224
+ }
225
+ }, {
226
+ key: "unsubscribe",
227
+ value: function unsubscribe(callback) {
228
+ this.callbacks = this.callbacks.filter(function (item) {
229
+ return item !== callback;
230
+ });
231
+ }
232
+ }, {
233
+ key: "notify",
234
+ value: function notify() {
235
+ var state = this.getState;
236
+ this.callbacks.forEach(function (callback) {
237
+ callback(state);
238
+ });
239
+ }
240
+ }]);
241
+ }();
242
+
243
+ exports.Mask = Mask;
244
+ //# sourceMappingURL=mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask.js","sources":["../../../../src/components/Mask/utils/mask.ts"],"sourcesContent":["import type { InputState, InputValueInfo, ReformatFn, MaskInfo, MaskItemsMap, SelectRange } from '../Mask.types';\n\nimport { charType, defaultFormatChars } from './constants';\nimport { parseMask } from './parseMask';\nimport { processInput } from './processInput';\nimport { removeSelectedRange } from './selection';\n\n/**\n * Copyright (c) 2018 Nikita Mostovoy.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport class Mask {\n selection: SelectRange;\n\n value: Array<InputValueInfo> | string;\n\n maskedValue: string;\n\n visibleValue: string;\n\n mask: Array<MaskInfo>;\n\n maskChar: string;\n\n maskFormatMap: MaskItemsMap;\n\n showPrefix: boolean;\n\n callbacks: Array<(state: InputState) => any>;\n\n maskString?: string;\n\n reformat?: ReformatFn;\n\n constructor(showPrefix: boolean, maskChar: string, maskString?: string, reformat?: ReformatFn) {\n this.value = '';\n this.mask = [];\n this.maskedValue = '';\n this.visibleValue = '';\n this.selection = { start: 0, end: 0 };\n this.callbacks = [];\n\n this.maskFormatMap = this.parseMaskFormat;\n this.showPrefix = showPrefix;\n this.maskChar = maskChar;\n this.maskString = maskString;\n this.reformat = reformat;\n }\n\n private get parseMaskFormat() {\n return defaultFormatChars.reduce((acc, current) => {\n acc[String(current.str)] = current;\n return acc;\n }, {} as MaskItemsMap);\n }\n\n get getSelection() {\n const { start, end } = this.selection;\n\n return { start, end };\n }\n\n get getState() {\n return {\n value: this.value,\n maskedValue: this.maskedValue,\n visibleValue: this.visibleValue,\n selection: this.selection,\n };\n }\n\n set setSelection(newSelection: SelectRange) {\n this.selection = newSelection;\n }\n\n set setShowStartChars(show: boolean) {\n this.showPrefix = show;\n }\n\n updateMask(newMask?: string) {\n this.mask = parseMask(newMask, this.maskFormatMap);\n this.updateValue(this.value);\n }\n\n updateMaskChar(newMaskChar: string) {\n if (this.maskChar.length > 1) {\n throw new Error('maskChar должен содержать только 1 символ');\n }\n\n this.maskChar = newMaskChar;\n\n this.updateValue(this.value);\n }\n\n updateMaskString(newMaskString: string) {\n if (newMaskString && newMaskString.length !== this.mask.length) {\n throw new Error('maskString должна иметь такую же длину, как и mask');\n }\n\n this.maskString = newMaskString;\n\n this.updateValue(this.value);\n }\n\n updateReformat(newReformat: ReformatFn) {\n this.reformat = newReformat;\n this.updateValue(this.value);\n }\n\n updateValue(data: string | Array<InputValueInfo>) {\n if (this.reformat) {\n const result = this.reformat({\n value: data,\n selection: this.selection,\n });\n\n return this.applyChanges(result);\n }\n\n const dataList: Array<InputValueInfo> = Array.isArray(data)\n ? data\n : Array.from(data).reduce((acc, char) => {\n acc.push({ char, type: charType.User });\n return acc;\n }, [] as Array<InputValueInfo>);\n\n const result = processInput({\n data: dataList,\n selection: this.selection,\n mask: this.mask,\n maskChar: this.maskChar,\n maskString: this.maskString,\n showPrefix: this.showPrefix,\n });\n\n this.applyChanges(result);\n }\n\n removePreviousOrSelected() {\n const { start, end } = this.selection;\n if (start === end) {\n const newStart = end - 1 < 0 ? 0 : end - 1;\n this.setSelection = { start: newStart, end };\n }\n\n this.input('');\n }\n\n removeNextOrSelected() {\n const { start, end } = this.selection;\n if (start === end) {\n this.setSelection = { start, end: end + 1 };\n }\n\n this.input('');\n }\n\n paste(value: string) {\n this.input(value);\n }\n\n input(input: string) {\n if (this.reformat) {\n const result = this.reformat({ value: this.value, input, selection: this.selection });\n\n return this.applyChanges(result);\n }\n\n const tmpValue = removeSelectedRange({\n value: this.value as InputValueInfo[],\n selection: this.selection,\n maskChar: this.maskChar,\n maskString: String(this.maskString),\n });\n\n this.selection.end = this.selection.start;\n\n const result = processInput({\n data: tmpValue,\n input,\n selection: this.selection,\n mask: this.mask,\n maskChar: this.maskChar,\n maskString: this.maskString,\n showPrefix: this.showPrefix,\n });\n\n this.applyChanges(result);\n }\n\n applyChanges(result: InputState) {\n const oldMaskedValue = this.maskedValue;\n const oldVisibleValue = this.visibleValue;\n const oldSelection = this.selection;\n\n this.value = result.value;\n this.maskedValue = result.maskedValue;\n this.visibleValue = result.visibleValue;\n this.setSelection = result.selection;\n\n if (\n oldMaskedValue !== this.maskedValue ||\n oldVisibleValue !== this.visibleValue ||\n oldSelection.start !== this.selection.start ||\n oldSelection.end !== this.selection.end\n ) {\n this.notify();\n }\n }\n\n subscribe(callback: (state: InputState) => any) {\n this.callbacks.push(callback);\n }\n\n unsubscribe(callback: (state: InputState) => any) {\n this.callbacks = this.callbacks.filter((item) => item !== callback);\n }\n\n notify() {\n const state = this.getState;\n this.callbacks.forEach((callback) => {\n callback(state);\n });\n }\n}\n"],"names":["Mask","showPrefix","maskChar","maskString","reformat","_classCallCheck","_defineProperty","value","mask","maskedValue","visibleValue","selection","start","end","callbacks","maskFormatMap","parseMaskFormat","_createClass","key","get","defaultFormatChars","reduce","acc","current","String","str","_this$selection","set","newSelection","show","updateMask","newMask","parseMask","updateValue","updateMaskChar","newMaskChar","length","Error","updateMaskString","newMaskString","updateReformat","newReformat","data","result","applyChanges","dataList","Array","isArray","from","char","push","type","charType","User","processInput","removePreviousOrSelected","_this$selection2","newStart","setSelection","input","removeNextOrSelected","_this$selection3","paste","tmpValue","removeSelectedRange","oldMaskedValue","oldVisibleValue","oldSelection","notify","subscribe","callback","unsubscribe","filter","item","state","getState","forEach"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var constants = require('./constants.js');
6
+
7
+ var parseMask = function parseMask(mask, format) {
8
+ if (!mask) {
9
+ return [];
10
+ }
11
+ var stack = [];
12
+ var escape = false;
13
+ mask.split('').forEach(function (maskChar) {
14
+ var item = format === null || format === void 0 ? void 0 : format[maskChar];
15
+ if (escape && item) {
16
+ item = undefined;
17
+ escape = false;
18
+ }
19
+ if (!item) {
20
+ if (!escape && maskChar === constants.escapeChar) {
21
+ escape = true;
22
+ return;
23
+ }
24
+ escape = false;
25
+ stack.push({
26
+ "char": maskChar
27
+ });
28
+ return;
29
+ }
30
+ if (item.regexp) {
31
+ stack.push(item);
32
+ }
33
+ });
34
+ return stack;
35
+ };
36
+
37
+ exports.parseMask = parseMask;
38
+ //# sourceMappingURL=parseMask.js.map