@salutejs/plasma-new-hope 0.146.0-canary.1436.10882554984.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.
- package/cjs/components/Mask/Mask.js +209 -0
- package/cjs/components/Mask/Mask.js.map +1 -0
- package/cjs/components/Mask/utils/constants.js +33 -0
- package/cjs/components/Mask/utils/constants.js.map +1 -0
- package/cjs/components/Mask/utils/createMask.js +53 -0
- package/cjs/components/Mask/utils/createMask.js.map +1 -0
- package/cjs/components/Mask/utils/mask.js +244 -0
- package/cjs/components/Mask/utils/mask.js.map +1 -0
- package/cjs/components/Mask/utils/parseMask.js +38 -0
- package/cjs/components/Mask/utils/parseMask.js.map +1 -0
- package/cjs/components/Mask/utils/processInput.js +54 -0
- package/cjs/components/Mask/utils/processInput.js.map +1 -0
- package/cjs/components/Mask/utils/processMask.js +101 -0
- package/cjs/components/Mask/utils/processMask.js.map +1 -0
- package/cjs/components/Mask/utils/selection.js +50 -0
- package/cjs/components/Mask/utils/selection.js.map +1 -0
- package/cjs/components/TextField/TextField.js +3 -1
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/emotion/cjs/components/Mask/Mask.js +220 -0
- package/emotion/cjs/components/Mask/Mask.template-doc.mdx +126 -0
- package/emotion/cjs/components/Mask/Mask.types.js +5 -0
- package/emotion/cjs/components/Mask/index.js +12 -0
- package/emotion/cjs/components/Mask/utils/constants.js +29 -0
- package/emotion/cjs/components/Mask/utils/createMask.js +50 -0
- package/emotion/cjs/components/Mask/utils/mask.js +247 -0
- package/emotion/cjs/components/Mask/utils/parseMask.js +36 -0
- package/emotion/cjs/components/Mask/utils/processInput.js +52 -0
- package/emotion/cjs/components/Mask/utils/processMask.js +99 -0
- package/emotion/cjs/components/Mask/utils/selection.js +48 -0
- package/emotion/cjs/components/TextField/TextField.js +4 -2
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/emotion/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
- package/emotion/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/emotion/cjs/index.js +11 -0
- package/emotion/es/components/Mask/Mask.js +212 -0
- package/emotion/es/components/Mask/Mask.template-doc.mdx +126 -0
- package/emotion/es/components/Mask/Mask.types.js +1 -0
- package/emotion/es/components/Mask/index.js +1 -0
- package/emotion/es/components/Mask/utils/constants.js +23 -0
- package/emotion/es/components/Mask/utils/createMask.js +44 -0
- package/emotion/es/components/Mask/utils/mask.js +243 -0
- package/emotion/es/components/Mask/utils/parseMask.js +30 -0
- package/emotion/es/components/Mask/utils/processInput.js +46 -0
- package/emotion/es/components/Mask/utils/processMask.js +93 -0
- package/emotion/es/components/Mask/utils/selection.js +42 -0
- package/emotion/es/components/TextField/TextField.js +4 -2
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/emotion/es/examples/plasma_web/components/Mask/Mask.js +3 -0
- package/emotion/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/emotion/es/index.js +2 -1
- package/es/components/Mask/Mask.js +205 -0
- package/es/components/Mask/Mask.js.map +1 -0
- package/es/components/Mask/utils/constants.js +26 -0
- package/es/components/Mask/utils/constants.js.map +1 -0
- package/es/components/Mask/utils/createMask.js +48 -0
- package/es/components/Mask/utils/createMask.js.map +1 -0
- package/es/components/Mask/utils/mask.js +240 -0
- package/es/components/Mask/utils/mask.js.map +1 -0
- package/es/components/Mask/utils/parseMask.js +34 -0
- package/es/components/Mask/utils/parseMask.js.map +1 -0
- package/es/components/Mask/utils/processInput.js +50 -0
- package/es/components/Mask/utils/processInput.js.map +1 -0
- package/es/components/Mask/utils/processMask.js +97 -0
- package/es/components/Mask/utils/processMask.js.map +1 -0
- package/es/components/Mask/utils/selection.js +46 -0
- package/es/components/Mask/utils/selection.js.map +1 -0
- package/es/components/TextField/TextField.js +3 -1
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Mask/Mask.js +220 -0
- package/styled-components/cjs/components/Mask/Mask.template-doc.mdx +126 -0
- package/styled-components/cjs/components/Mask/Mask.types.js +5 -0
- package/styled-components/cjs/components/Mask/index.js +12 -0
- package/styled-components/cjs/components/Mask/utils/constants.js +29 -0
- package/styled-components/cjs/components/Mask/utils/createMask.js +50 -0
- package/styled-components/cjs/components/Mask/utils/mask.js +247 -0
- package/styled-components/cjs/components/Mask/utils/parseMask.js +36 -0
- package/styled-components/cjs/components/Mask/utils/processInput.js +52 -0
- package/styled-components/cjs/components/Mask/utils/processMask.js +99 -0
- package/styled-components/cjs/components/Mask/utils/selection.js +48 -0
- package/styled-components/cjs/components/TextField/TextField.js +3 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
- package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/styled-components/cjs/index.js +11 -0
- package/styled-components/es/components/Mask/Mask.js +212 -0
- package/styled-components/es/components/Mask/Mask.template-doc.mdx +126 -0
- package/styled-components/es/components/Mask/Mask.types.js +1 -0
- package/styled-components/es/components/Mask/index.js +1 -0
- package/styled-components/es/components/Mask/utils/constants.js +23 -0
- package/styled-components/es/components/Mask/utils/createMask.js +44 -0
- package/styled-components/es/components/Mask/utils/mask.js +243 -0
- package/styled-components/es/components/Mask/utils/parseMask.js +30 -0
- package/styled-components/es/components/Mask/utils/processInput.js +46 -0
- package/styled-components/es/components/Mask/utils/processMask.js +93 -0
- package/styled-components/es/components/Mask/utils/selection.js +42 -0
- package/styled-components/es/components/TextField/TextField.js +3 -1
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/styled-components/es/examples/plasma_web/components/Mask/Mask.js +3 -0
- package/styled-components/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/styled-components/es/index.js +2 -1
- package/types/components/Mask/Mask.d.ts +5 -0
- package/types/components/Mask/Mask.d.ts.map +1 -0
- package/types/components/Mask/Mask.types.d.ts +84 -0
- package/types/components/Mask/Mask.types.d.ts.map +1 -0
- package/types/components/Mask/index.d.ts +2 -0
- package/types/components/Mask/index.d.ts.map +1 -0
- package/types/components/Mask/utils/constants.d.ts +15 -0
- package/types/components/Mask/utils/constants.d.ts.map +1 -0
- package/types/components/Mask/utils/createMask.d.ts +19 -0
- package/types/components/Mask/utils/createMask.d.ts.map +1 -0
- package/types/components/Mask/utils/mask.d.ts +48 -0
- package/types/components/Mask/utils/mask.d.ts.map +1 -0
- package/types/components/Mask/utils/parseMask.d.ts +3 -0
- package/types/components/Mask/utils/parseMask.d.ts.map +1 -0
- package/types/components/Mask/utils/processInput.d.ts +13 -0
- package/types/components/Mask/utils/processInput.d.ts.map +1 -0
- package/types/components/Mask/utils/processMask.d.ts +7 -0
- package/types/components/Mask/utils/processMask.d.ts.map +1 -0
- package/types/components/Mask/utils/selection.d.ts +10 -0
- package/types/components/Mask/utils/selection.d.ts.map +1 -0
- package/types/components/TextField/TextField.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +191 -0
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -0
- package/types/examples/plasma_web/components/Mask/Mask.d.ts +191 -0
- package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
@@ -0,0 +1,240 @@
|
|
1
|
+
import { createClass as _createClass, classCallCheck as _classCallCheck, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
|
+
import { defaultFormatChars, charType } from './constants.js';
|
3
|
+
import { parseMask } from './parseMask.js';
|
4
|
+
import { processInput } from './processInput.js';
|
5
|
+
import { removeSelectedRange } from './selection.js';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Copyright (c) 2018 Nikita Mostovoy.
|
9
|
+
*
|
10
|
+
* This source code is licensed under the MIT license found in the
|
11
|
+
* LICENSE file in the root directory of this source tree.
|
12
|
+
*/
|
13
|
+
|
14
|
+
var Mask = /*#__PURE__*/function () {
|
15
|
+
function Mask(showPrefix, maskChar, maskString, reformat) {
|
16
|
+
_classCallCheck(this, Mask);
|
17
|
+
_defineProperty(this, "selection", void 0);
|
18
|
+
_defineProperty(this, "value", void 0);
|
19
|
+
_defineProperty(this, "maskedValue", void 0);
|
20
|
+
_defineProperty(this, "visibleValue", void 0);
|
21
|
+
_defineProperty(this, "mask", void 0);
|
22
|
+
_defineProperty(this, "maskChar", void 0);
|
23
|
+
_defineProperty(this, "maskFormatMap", void 0);
|
24
|
+
_defineProperty(this, "showPrefix", void 0);
|
25
|
+
_defineProperty(this, "callbacks", void 0);
|
26
|
+
_defineProperty(this, "maskString", void 0);
|
27
|
+
_defineProperty(this, "reformat", void 0);
|
28
|
+
this.value = '';
|
29
|
+
this.mask = [];
|
30
|
+
this.maskedValue = '';
|
31
|
+
this.visibleValue = '';
|
32
|
+
this.selection = {
|
33
|
+
start: 0,
|
34
|
+
end: 0
|
35
|
+
};
|
36
|
+
this.callbacks = [];
|
37
|
+
this.maskFormatMap = this.parseMaskFormat;
|
38
|
+
this.showPrefix = showPrefix;
|
39
|
+
this.maskChar = maskChar;
|
40
|
+
this.maskString = maskString;
|
41
|
+
this.reformat = reformat;
|
42
|
+
}
|
43
|
+
return _createClass(Mask, [{
|
44
|
+
key: "parseMaskFormat",
|
45
|
+
get: function get() {
|
46
|
+
return defaultFormatChars.reduce(function (acc, current) {
|
47
|
+
acc[String(current.str)] = current;
|
48
|
+
return acc;
|
49
|
+
}, {});
|
50
|
+
}
|
51
|
+
}, {
|
52
|
+
key: "getSelection",
|
53
|
+
get: function get() {
|
54
|
+
var _this$selection = this.selection,
|
55
|
+
start = _this$selection.start,
|
56
|
+
end = _this$selection.end;
|
57
|
+
return {
|
58
|
+
start: start,
|
59
|
+
end: end
|
60
|
+
};
|
61
|
+
}
|
62
|
+
}, {
|
63
|
+
key: "getState",
|
64
|
+
get: function get() {
|
65
|
+
return {
|
66
|
+
value: this.value,
|
67
|
+
maskedValue: this.maskedValue,
|
68
|
+
visibleValue: this.visibleValue,
|
69
|
+
selection: this.selection
|
70
|
+
};
|
71
|
+
}
|
72
|
+
}, {
|
73
|
+
key: "setSelection",
|
74
|
+
set: function set(newSelection) {
|
75
|
+
this.selection = newSelection;
|
76
|
+
}
|
77
|
+
}, {
|
78
|
+
key: "setShowStartChars",
|
79
|
+
set: function set(show) {
|
80
|
+
this.showPrefix = show;
|
81
|
+
}
|
82
|
+
}, {
|
83
|
+
key: "updateMask",
|
84
|
+
value: function updateMask(newMask) {
|
85
|
+
this.mask = parseMask(newMask, this.maskFormatMap);
|
86
|
+
this.updateValue(this.value);
|
87
|
+
}
|
88
|
+
}, {
|
89
|
+
key: "updateMaskChar",
|
90
|
+
value: function updateMaskChar(newMaskChar) {
|
91
|
+
if (this.maskChar.length > 1) {
|
92
|
+
throw new Error('maskChar должен содержать только 1 символ');
|
93
|
+
}
|
94
|
+
this.maskChar = newMaskChar;
|
95
|
+
this.updateValue(this.value);
|
96
|
+
}
|
97
|
+
}, {
|
98
|
+
key: "updateMaskString",
|
99
|
+
value: function updateMaskString(newMaskString) {
|
100
|
+
if (newMaskString && newMaskString.length !== this.mask.length) {
|
101
|
+
throw new Error('maskString должна иметь такую же длину, как и mask');
|
102
|
+
}
|
103
|
+
this.maskString = newMaskString;
|
104
|
+
this.updateValue(this.value);
|
105
|
+
}
|
106
|
+
}, {
|
107
|
+
key: "updateReformat",
|
108
|
+
value: function updateReformat(newReformat) {
|
109
|
+
this.reformat = newReformat;
|
110
|
+
this.updateValue(this.value);
|
111
|
+
}
|
112
|
+
}, {
|
113
|
+
key: "updateValue",
|
114
|
+
value: function updateValue(data) {
|
115
|
+
if (this.reformat) {
|
116
|
+
var _result = this.reformat({
|
117
|
+
value: data,
|
118
|
+
selection: this.selection
|
119
|
+
});
|
120
|
+
return this.applyChanges(_result);
|
121
|
+
}
|
122
|
+
var dataList = Array.isArray(data) ? data : Array.from(data).reduce(function (acc, _char) {
|
123
|
+
acc.push({
|
124
|
+
"char": _char,
|
125
|
+
type: charType.User
|
126
|
+
});
|
127
|
+
return acc;
|
128
|
+
}, []);
|
129
|
+
var result = processInput({
|
130
|
+
data: dataList,
|
131
|
+
selection: this.selection,
|
132
|
+
mask: this.mask,
|
133
|
+
maskChar: this.maskChar,
|
134
|
+
maskString: this.maskString,
|
135
|
+
showPrefix: this.showPrefix
|
136
|
+
});
|
137
|
+
this.applyChanges(result);
|
138
|
+
}
|
139
|
+
}, {
|
140
|
+
key: "removePreviousOrSelected",
|
141
|
+
value: function removePreviousOrSelected() {
|
142
|
+
var _this$selection2 = this.selection,
|
143
|
+
start = _this$selection2.start,
|
144
|
+
end = _this$selection2.end;
|
145
|
+
if (start === end) {
|
146
|
+
var newStart = end - 1 < 0 ? 0 : end - 1;
|
147
|
+
this.setSelection = {
|
148
|
+
start: newStart,
|
149
|
+
end: end
|
150
|
+
};
|
151
|
+
}
|
152
|
+
this.input('');
|
153
|
+
}
|
154
|
+
}, {
|
155
|
+
key: "removeNextOrSelected",
|
156
|
+
value: function removeNextOrSelected() {
|
157
|
+
var _this$selection3 = this.selection,
|
158
|
+
start = _this$selection3.start,
|
159
|
+
end = _this$selection3.end;
|
160
|
+
if (start === end) {
|
161
|
+
this.setSelection = {
|
162
|
+
start: start,
|
163
|
+
end: end + 1
|
164
|
+
};
|
165
|
+
}
|
166
|
+
this.input('');
|
167
|
+
}
|
168
|
+
}, {
|
169
|
+
key: "paste",
|
170
|
+
value: function paste(value) {
|
171
|
+
this.input(value);
|
172
|
+
}
|
173
|
+
}, {
|
174
|
+
key: "input",
|
175
|
+
value: function input(_input) {
|
176
|
+
if (this.reformat) {
|
177
|
+
var _result2 = this.reformat({
|
178
|
+
value: this.value,
|
179
|
+
input: _input,
|
180
|
+
selection: this.selection
|
181
|
+
});
|
182
|
+
return this.applyChanges(_result2);
|
183
|
+
}
|
184
|
+
var tmpValue = removeSelectedRange({
|
185
|
+
value: this.value,
|
186
|
+
selection: this.selection,
|
187
|
+
maskChar: this.maskChar,
|
188
|
+
maskString: String(this.maskString)
|
189
|
+
});
|
190
|
+
this.selection.end = this.selection.start;
|
191
|
+
var result = processInput({
|
192
|
+
data: tmpValue,
|
193
|
+
input: _input,
|
194
|
+
selection: this.selection,
|
195
|
+
mask: this.mask,
|
196
|
+
maskChar: this.maskChar,
|
197
|
+
maskString: this.maskString,
|
198
|
+
showPrefix: this.showPrefix
|
199
|
+
});
|
200
|
+
this.applyChanges(result);
|
201
|
+
}
|
202
|
+
}, {
|
203
|
+
key: "applyChanges",
|
204
|
+
value: function applyChanges(result) {
|
205
|
+
var oldMaskedValue = this.maskedValue;
|
206
|
+
var oldVisibleValue = this.visibleValue;
|
207
|
+
var oldSelection = this.selection;
|
208
|
+
this.value = result.value;
|
209
|
+
this.maskedValue = result.maskedValue;
|
210
|
+
this.visibleValue = result.visibleValue;
|
211
|
+
this.setSelection = result.selection;
|
212
|
+
if (oldMaskedValue !== this.maskedValue || oldVisibleValue !== this.visibleValue || oldSelection.start !== this.selection.start || oldSelection.end !== this.selection.end) {
|
213
|
+
this.notify();
|
214
|
+
}
|
215
|
+
}
|
216
|
+
}, {
|
217
|
+
key: "subscribe",
|
218
|
+
value: function subscribe(callback) {
|
219
|
+
this.callbacks.push(callback);
|
220
|
+
}
|
221
|
+
}, {
|
222
|
+
key: "unsubscribe",
|
223
|
+
value: function unsubscribe(callback) {
|
224
|
+
this.callbacks = this.callbacks.filter(function (item) {
|
225
|
+
return item !== callback;
|
226
|
+
});
|
227
|
+
}
|
228
|
+
}, {
|
229
|
+
key: "notify",
|
230
|
+
value: function notify() {
|
231
|
+
var state = this.getState;
|
232
|
+
this.callbacks.forEach(function (callback) {
|
233
|
+
callback(state);
|
234
|
+
});
|
235
|
+
}
|
236
|
+
}]);
|
237
|
+
}();
|
238
|
+
|
239
|
+
export { Mask };
|
240
|
+
//# 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,34 @@
|
|
1
|
+
import { escapeChar } from './constants.js';
|
2
|
+
|
3
|
+
var parseMask = function parseMask(mask, format) {
|
4
|
+
if (!mask) {
|
5
|
+
return [];
|
6
|
+
}
|
7
|
+
var stack = [];
|
8
|
+
var escape = false;
|
9
|
+
mask.split('').forEach(function (maskChar) {
|
10
|
+
var item = format === null || format === void 0 ? void 0 : format[maskChar];
|
11
|
+
if (escape && item) {
|
12
|
+
item = undefined;
|
13
|
+
escape = false;
|
14
|
+
}
|
15
|
+
if (!item) {
|
16
|
+
if (!escape && maskChar === escapeChar) {
|
17
|
+
escape = true;
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
escape = false;
|
21
|
+
stack.push({
|
22
|
+
"char": maskChar
|
23
|
+
});
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
if (item.regexp) {
|
27
|
+
stack.push(item);
|
28
|
+
}
|
29
|
+
});
|
30
|
+
return stack;
|
31
|
+
};
|
32
|
+
|
33
|
+
export { parseMask };
|
34
|
+
//# sourceMappingURL=parseMask.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parseMask.js","sources":["../../../../src/components/Mask/utils/parseMask.ts"],"sourcesContent":["import type { MaskInfo, MaskItemsMap } from '../Mask.types';\n\nimport { escapeChar } from './constants';\n\nexport const parseMask = (mask?: string, format?: MaskItemsMap): Array<MaskInfo> => {\n if (!mask) {\n return [];\n }\n\n const stack: Array<MaskInfo> = [];\n\n let escape = false;\n\n mask.split('').forEach((maskChar) => {\n let item: MaskInfo | undefined = format?.[maskChar];\n\n if (escape && item) {\n item = undefined;\n escape = false;\n }\n\n if (!item) {\n if (!escape && maskChar === escapeChar) {\n escape = true;\n return;\n }\n\n escape = false;\n stack.push({\n char: maskChar,\n });\n return;\n }\n\n if (item.regexp) {\n stack.push(item);\n }\n });\n\n return stack;\n};\n"],"names":["parseMask","mask","format","stack","escape","split","forEach","maskChar","item","undefined","escapeChar","push","regexp"],"mappings":";;AAIO,IAAMA,SAAS,GAAG,SAAZA,SAASA,CAAIC,IAAa,EAAEC,MAAqB,EAAsB;EAChF,IAAI,CAACD,IAAI,EAAE;AACP,IAAA,OAAO,EAAE,CAAA;AACb,GAAA;EAEA,IAAME,KAAsB,GAAG,EAAE,CAAA;EAEjC,IAAIC,MAAM,GAAG,KAAK,CAAA;EAElBH,IAAI,CAACI,KAAK,CAAC,EAAE,CAAC,CAACC,OAAO,CAAC,UAACC,QAAQ,EAAK;IACjC,IAAIC,IAA0B,GAAGN,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAGK,QAAQ,CAAC,CAAA;IAEnD,IAAIH,MAAM,IAAII,IAAI,EAAE;AAChBA,MAAAA,IAAI,GAAGC,SAAS,CAAA;AAChBL,MAAAA,MAAM,GAAG,KAAK,CAAA;AAClB,KAAA;IAEA,IAAI,CAACI,IAAI,EAAE;AACP,MAAA,IAAI,CAACJ,MAAM,IAAIG,QAAQ,KAAKG,UAAU,EAAE;AACpCN,QAAAA,MAAM,GAAG,IAAI,CAAA;AACb,QAAA,OAAA;AACJ,OAAA;AAEAA,MAAAA,MAAM,GAAG,KAAK,CAAA;MACdD,KAAK,CAACQ,IAAI,CAAC;QACP,MAAMJ,EAAAA,QAAAA;AACV,OAAC,CAAC,CAAA;AACF,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIC,IAAI,CAACI,MAAM,EAAE;AACbT,MAAAA,KAAK,CAACQ,IAAI,CAACH,IAAI,CAAC,CAAA;AACpB,KAAA;AACJ,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOL,KAAK,CAAA;AAChB;;;;"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { charType } from './constants.js';
|
2
|
+
import { processMask } from './processMask.js';
|
3
|
+
|
4
|
+
var processInput = function processInput(args) {
|
5
|
+
var data = args.data,
|
6
|
+
_args$input = args.input,
|
7
|
+
input = _args$input === void 0 ? '' : _args$input,
|
8
|
+
selection = args.selection,
|
9
|
+
mask = args.mask,
|
10
|
+
_args$maskChar = args.maskChar,
|
11
|
+
maskChar = _args$maskChar === void 0 ? '' : _args$maskChar,
|
12
|
+
_args$maskString = args.maskString,
|
13
|
+
maskString = _args$maskString === void 0 ? '' : _args$maskString,
|
14
|
+
showPrefix = args.showPrefix;
|
15
|
+
var _processMask = processMask(data, mask, input, maskChar, maskString, selection),
|
16
|
+
value = _processMask.value,
|
17
|
+
maskedValue = _processMask.maskedValue,
|
18
|
+
inputValuesApplied = _processMask.inputValuesApplied;
|
19
|
+
var selectionPosition = selection.start + inputValuesApplied;
|
20
|
+
var bound = value.length - 1;
|
21
|
+
var charsCount = 0;
|
22
|
+
while (bound >= 0 && value[bound].type !== charType.User) {
|
23
|
+
if (value[bound].type === charType.Mask) {
|
24
|
+
charsCount = 0;
|
25
|
+
}
|
26
|
+
if (value[bound].type === charType.Char) {
|
27
|
+
charsCount++;
|
28
|
+
}
|
29
|
+
bound--;
|
30
|
+
}
|
31
|
+
if (showPrefix || bound >= 0 || input && input.trim()) {
|
32
|
+
bound += charsCount;
|
33
|
+
}
|
34
|
+
var visibleValue = '';
|
35
|
+
for (var i = 0; i <= bound; i++) {
|
36
|
+
visibleValue += value[i]["char"];
|
37
|
+
}
|
38
|
+
return {
|
39
|
+
value: value,
|
40
|
+
visibleValue: visibleValue,
|
41
|
+
maskedValue: maskedValue,
|
42
|
+
selection: {
|
43
|
+
start: selectionPosition,
|
44
|
+
end: selectionPosition
|
45
|
+
}
|
46
|
+
};
|
47
|
+
};
|
48
|
+
|
49
|
+
export { processInput };
|
50
|
+
//# sourceMappingURL=processInput.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"processInput.js","sources":["../../../../src/components/Mask/utils/processInput.ts"],"sourcesContent":["import type { InputState, InputValueInfo, MaskInfo, SelectRange } from '../Mask.types';\n\nimport { charType } from './constants';\nimport { processMask } from './processMask';\n\ntype ProcessInputArgs = {\n data: Array<InputValueInfo>;\n selection: SelectRange;\n mask: Array<MaskInfo>;\n maskChar?: string;\n maskString?: string;\n showPrefix?: boolean;\n input?: string;\n};\n\nexport const processInput = (args: ProcessInputArgs): InputState => {\n const { data, input = '', selection, mask, maskChar = '', maskString = '', showPrefix } = args;\n\n const { value, maskedValue, inputValuesApplied } = processMask(data, mask, input, maskChar, maskString, selection);\n\n const selectionPosition = selection.start + inputValuesApplied;\n\n let bound = value.length - 1;\n let charsCount = 0;\n while (bound >= 0 && value[bound].type !== charType.User) {\n if (value[bound].type === charType.Mask) {\n charsCount = 0;\n }\n if (value[bound].type === charType.Char) {\n charsCount++;\n }\n bound--;\n }\n if (showPrefix || bound >= 0 || (input && input.trim())) {\n bound += charsCount;\n }\n\n let visibleValue = '';\n for (let i = 0; i <= bound; i++) {\n visibleValue += value[i].char;\n }\n\n return {\n value,\n visibleValue,\n maskedValue,\n selection: {\n start: selectionPosition,\n end: selectionPosition,\n },\n };\n};\n"],"names":["processInput","args","data","_args$input","input","selection","mask","_args$maskChar","maskChar","_args$maskString","maskString","showPrefix","_processMask","processMask","value","maskedValue","inputValuesApplied","selectionPosition","start","bound","length","charsCount","type","charType","User","Mask","Char","trim","visibleValue","i","end"],"mappings":";;;IAeaA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAsB,EAAiB;AAChE,EAAA,IAAQC,IAAI,GAA8ED,IAAI,CAAtFC,IAAI;IAAAC,WAAA,GAA8EF,IAAI,CAAhFG,KAAK;AAALA,IAAAA,KAAK,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,WAAA;IAAEE,SAAS,GAAuDJ,IAAI,CAApEI,SAAS;IAAEC,IAAI,GAAiDL,IAAI,CAAzDK,IAAI;IAAAC,cAAA,GAAiDN,IAAI,CAAnDO,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,gBAAA,GAAkCR,IAAI,CAApCS,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAEE,UAAU,GAAKV,IAAI,CAAnBU,UAAU,CAAA;AAErF,EAAA,IAAAC,YAAA,GAAmDC,WAAW,CAACX,IAAI,EAAEI,IAAI,EAAEF,KAAK,EAAEI,QAAQ,EAAEE,UAAU,EAAEL,SAAS,CAAC;IAA1GS,KAAK,GAAAF,YAAA,CAALE,KAAK;IAAEC,WAAW,GAAAH,YAAA,CAAXG,WAAW;IAAEC,kBAAkB,GAAAJ,YAAA,CAAlBI,kBAAkB,CAAA;AAE9C,EAAA,IAAMC,iBAAiB,GAAGZ,SAAS,CAACa,KAAK,GAAGF,kBAAkB,CAAA;AAE9D,EAAA,IAAIG,KAAK,GAAGL,KAAK,CAACM,MAAM,GAAG,CAAC,CAAA;EAC5B,IAAIC,UAAU,GAAG,CAAC,CAAA;AAClB,EAAA,OAAOF,KAAK,IAAI,CAAC,IAAIL,KAAK,CAACK,KAAK,CAAC,CAACG,IAAI,KAAKC,QAAQ,CAACC,IAAI,EAAE;IACtD,IAAIV,KAAK,CAACK,KAAK,CAAC,CAACG,IAAI,KAAKC,QAAQ,CAACE,IAAI,EAAE;AACrCJ,MAAAA,UAAU,GAAG,CAAC,CAAA;AAClB,KAAA;IACA,IAAIP,KAAK,CAACK,KAAK,CAAC,CAACG,IAAI,KAAKC,QAAQ,CAACG,IAAI,EAAE;AACrCL,MAAAA,UAAU,EAAE,CAAA;AAChB,KAAA;AACAF,IAAAA,KAAK,EAAE,CAAA;AACX,GAAA;AACA,EAAA,IAAIR,UAAU,IAAIQ,KAAK,IAAI,CAAC,IAAKf,KAAK,IAAIA,KAAK,CAACuB,IAAI,EAAG,EAAE;AACrDR,IAAAA,KAAK,IAAIE,UAAU,CAAA;AACvB,GAAA;EAEA,IAAIO,YAAY,GAAG,EAAE,CAAA;EACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIV,KAAK,EAAEU,CAAC,EAAE,EAAE;AAC7BD,IAAAA,YAAY,IAAId,KAAK,CAACe,CAAC,CAAC,CAAK,MAAA,CAAA,CAAA;AACjC,GAAA;EAEA,OAAO;AACHf,IAAAA,KAAK,EAALA,KAAK;AACLc,IAAAA,YAAY,EAAZA,YAAY;AACZb,IAAAA,WAAW,EAAXA,WAAW;AACXV,IAAAA,SAAS,EAAE;AACPa,MAAAA,KAAK,EAAED,iBAAiB;AACxBa,MAAAA,GAAG,EAAEb,iBAAAA;AACT,KAAA;GACH,CAAA;AACL;;;;"}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { charType } from './constants.js';
|
2
|
+
|
3
|
+
var processMask = function processMask(data, mask, input, maskChar, maskString, selection) {
|
4
|
+
var value = [];
|
5
|
+
var valueIndex = 0;
|
6
|
+
var pastedIndex = 0;
|
7
|
+
var maskedValue = '';
|
8
|
+
var inputValuesApplied = 0;
|
9
|
+
var processMaskPartAsChar = function processMaskPartAsChar(maskPart, pastedValuesStack, item) {
|
10
|
+
if (pastedValuesStack && pastedValuesStack[0] === maskPart["char"]) {
|
11
|
+
pastedIndex++;
|
12
|
+
} else if (item && (item["char"] === maskPart["char"] || item.type !== charType.User) || input) {
|
13
|
+
valueIndex++;
|
14
|
+
}
|
15
|
+
value.push({
|
16
|
+
"char": String(maskPart["char"]),
|
17
|
+
type: charType.Char
|
18
|
+
});
|
19
|
+
if (pastedValuesStack) {
|
20
|
+
inputValuesApplied++;
|
21
|
+
}
|
22
|
+
maskedValue += maskPart["char"];
|
23
|
+
};
|
24
|
+
var processMaskPartAsRegExp = function processMaskPartAsRegExp(maskPart, maskIndex, pastedValuesStack, item) {
|
25
|
+
var _maskPart$regexp2;
|
26
|
+
var part;
|
27
|
+
if (pastedValuesStack) {
|
28
|
+
var i = 0;
|
29
|
+
while (!(maskPart !== null && maskPart !== void 0 && (_maskPart$regexp = maskPart.regexp) !== null && _maskPart$regexp !== void 0 && _maskPart$regexp.test(pastedValuesStack[i])) && pastedValuesStack.length > i) {
|
30
|
+
var _maskPart$regexp;
|
31
|
+
i++;
|
32
|
+
pastedIndex++;
|
33
|
+
}
|
34
|
+
if (pastedValuesStack.length > i) {
|
35
|
+
pastedIndex++;
|
36
|
+
inputValuesApplied++;
|
37
|
+
valueIndex++;
|
38
|
+
part = pastedValuesStack[i];
|
39
|
+
value.push({
|
40
|
+
"char": part,
|
41
|
+
type: charType.User
|
42
|
+
});
|
43
|
+
maskedValue += part;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
if (part) {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
if (item && item.type === charType.Char && data.length > valueIndex + 1) {
|
50
|
+
valueIndex++;
|
51
|
+
processMaskItem(maskPart, maskIndex);
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
if (item && item.type === charType.User && maskPart !== null && maskPart !== void 0 && (_maskPart$regexp2 = maskPart.regexp) !== null && _maskPart$regexp2 !== void 0 && _maskPart$regexp2.test(item["char"])) {
|
55
|
+
value.push({
|
56
|
+
"char": item["char"],
|
57
|
+
type: charType.User
|
58
|
+
});
|
59
|
+
maskedValue += item["char"];
|
60
|
+
valueIndex++;
|
61
|
+
return;
|
62
|
+
}
|
63
|
+
part = maskString ? maskString[maskIndex] : maskChar;
|
64
|
+
value.push({
|
65
|
+
"char": part,
|
66
|
+
type: charType.Mask
|
67
|
+
});
|
68
|
+
if (data.length > maskIndex) {
|
69
|
+
valueIndex++;
|
70
|
+
}
|
71
|
+
maskedValue += part;
|
72
|
+
};
|
73
|
+
var processMaskItem = function processMaskItem(maskPart, maskIndex) {
|
74
|
+
var item = data.length > valueIndex ? data[valueIndex] : null;
|
75
|
+
var pastedValuesStack = '';
|
76
|
+
if (selection.start <= maskIndex && pastedIndex < input.length) {
|
77
|
+
pastedValuesStack = input.slice(pastedIndex);
|
78
|
+
}
|
79
|
+
if (maskPart["char"]) {
|
80
|
+
return processMaskPartAsChar(maskPart, pastedValuesStack, item);
|
81
|
+
}
|
82
|
+
if (maskPart.regexp) {
|
83
|
+
return processMaskPartAsRegExp(maskPart, maskIndex, pastedValuesStack, item);
|
84
|
+
}
|
85
|
+
};
|
86
|
+
mask.forEach(function (maskPart, maskIndex) {
|
87
|
+
processMaskItem(maskPart, maskIndex);
|
88
|
+
});
|
89
|
+
return {
|
90
|
+
value: value,
|
91
|
+
maskedValue: maskedValue,
|
92
|
+
inputValuesApplied: inputValuesApplied
|
93
|
+
};
|
94
|
+
};
|
95
|
+
|
96
|
+
export { processMask };
|
97
|
+
//# sourceMappingURL=processMask.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"processMask.js","sources":["../../../../src/components/Mask/utils/processMask.ts"],"sourcesContent":["import type { MaskInfo, SelectRange, InputValueInfo } from '../Mask.types';\n\nimport { charType } from './constants';\n\nexport const processMask = (\n data: Array<InputValueInfo>,\n mask: Array<MaskInfo>,\n input: string,\n maskChar: string,\n maskString: string,\n selection: SelectRange,\n) => {\n const value: Array<InputValueInfo> = [];\n let valueIndex = 0;\n let pastedIndex = 0;\n let maskedValue = '';\n let inputValuesApplied = 0;\n\n const processMaskPartAsChar = (maskPart: MaskInfo, pastedValuesStack: string, item: InputValueInfo | null) => {\n if (pastedValuesStack && pastedValuesStack[0] === maskPart.char) {\n pastedIndex++;\n } else if ((item && (item.char === maskPart.char || item.type !== charType.User)) || input) {\n valueIndex++;\n }\n\n value.push({\n char: String(maskPart.char),\n type: charType.Char,\n });\n\n if (pastedValuesStack) {\n inputValuesApplied++;\n }\n\n maskedValue += maskPart.char;\n };\n\n const processMaskPartAsRegExp = (\n maskPart: MaskInfo,\n maskIndex: number,\n pastedValuesStack: string,\n item: InputValueInfo | null,\n ) => {\n let part;\n\n if (pastedValuesStack) {\n let i = 0;\n while (!maskPart?.regexp?.test(pastedValuesStack[i]) && pastedValuesStack.length > i) {\n i++;\n pastedIndex++;\n }\n if (pastedValuesStack.length > i) {\n pastedIndex++;\n inputValuesApplied++;\n\n valueIndex++;\n\n part = pastedValuesStack[i];\n value.push({\n char: part,\n type: charType.User,\n });\n maskedValue += part;\n }\n }\n\n if (part) {\n return;\n }\n\n if (item && item.type === charType.Char && data.length > valueIndex + 1) {\n valueIndex++;\n processMaskItem(maskPart, maskIndex);\n return;\n }\n\n if (item && item.type === charType.User && maskPart?.regexp?.test(item.char)) {\n value.push({\n char: item.char,\n type: charType.User,\n });\n maskedValue += item.char;\n valueIndex++;\n\n return;\n }\n\n part = maskString ? maskString[maskIndex] : maskChar;\n\n value.push({\n char: part,\n type: charType.Mask,\n });\n\n if (data.length > maskIndex) {\n valueIndex++;\n }\n\n maskedValue += part;\n };\n\n const processMaskItem = (maskPart: MaskInfo, maskIndex: number) => {\n const item = data.length > valueIndex ? data[valueIndex] : null;\n let pastedValuesStack = '';\n\n if (selection.start <= maskIndex && pastedIndex < input.length) {\n pastedValuesStack = input.slice(pastedIndex);\n }\n\n if (maskPart.char) {\n return processMaskPartAsChar(maskPart, pastedValuesStack, item);\n }\n\n if (maskPart.regexp) {\n return processMaskPartAsRegExp(maskPart, maskIndex, pastedValuesStack, item);\n }\n };\n\n mask.forEach((maskPart, maskIndex) => {\n processMaskItem(maskPart, maskIndex);\n });\n\n return {\n value,\n maskedValue,\n inputValuesApplied,\n };\n};\n"],"names":["processMask","data","mask","input","maskChar","maskString","selection","value","valueIndex","pastedIndex","maskedValue","inputValuesApplied","processMaskPartAsChar","maskPart","pastedValuesStack","item","type","charType","User","push","String","Char","processMaskPartAsRegExp","maskIndex","_maskPart$regexp2","part","i","_maskPart$regexp","regexp","test","length","processMaskItem","Mask","start","slice","forEach"],"mappings":"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"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { charType } from './constants.js';
|
2
|
+
|
3
|
+
var copyMaskChar = function copyMaskChar(count, maskChar) {
|
4
|
+
var res = [];
|
5
|
+
for (var i = 0; i < count; i++) {
|
6
|
+
res.push({
|
7
|
+
"char": maskChar,
|
8
|
+
type: charType.Mask
|
9
|
+
});
|
10
|
+
}
|
11
|
+
return res;
|
12
|
+
};
|
13
|
+
var pasteMaskSymbols = function pasteMaskSymbols(maskString, maskChar, selection) {
|
14
|
+
if (maskString) {
|
15
|
+
var res = [];
|
16
|
+
for (var i = selection.start; i < selection.end; i++) {
|
17
|
+
res.push({
|
18
|
+
"char": maskString[i],
|
19
|
+
type: charType.Mask
|
20
|
+
});
|
21
|
+
}
|
22
|
+
return res;
|
23
|
+
}
|
24
|
+
return copyMaskChar(selection.end - selection.start, maskChar);
|
25
|
+
};
|
26
|
+
var removeSelectedRange = function removeSelectedRange(args) {
|
27
|
+
var value = args.value,
|
28
|
+
selection = args.selection,
|
29
|
+
maskChar = args.maskChar,
|
30
|
+
maskString = args.maskString;
|
31
|
+
if (selection.end < selection.start) {
|
32
|
+
var tmp = selection.end;
|
33
|
+
selection.end = selection.start;
|
34
|
+
selection.start = tmp;
|
35
|
+
}
|
36
|
+
if (selection.start === selection.end) {
|
37
|
+
return value;
|
38
|
+
}
|
39
|
+
if (value.length > selection.start) {
|
40
|
+
return value.slice(0, selection.start).concat(pasteMaskSymbols(maskString, maskChar, selection), value.slice(selection.end, value.length));
|
41
|
+
}
|
42
|
+
return value;
|
43
|
+
};
|
44
|
+
|
45
|
+
export { removeSelectedRange };
|
46
|
+
//# sourceMappingURL=selection.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"selection.js","sources":["../../../../src/components/Mask/utils/selection.ts"],"sourcesContent":["import type { InputValueInfo, SelectRange } from '../Mask.types';\n\nimport { charType } from './constants';\n\ntype RemoveSelectionRangeArgs = {\n value: Array<InputValueInfo>;\n selection: SelectRange;\n maskChar: string;\n maskString: string;\n};\n\nconst copyMaskChar = (count: number, maskChar: string): Array<InputValueInfo> => {\n const res: Array<InputValueInfo> = [];\n for (let i = 0; i < count; i++) {\n res.push({\n char: maskChar,\n type: charType.Mask,\n });\n }\n return res;\n};\n\nconst pasteMaskSymbols = (maskString: string, maskChar: string, selection: SelectRange): Array<InputValueInfo> => {\n if (maskString) {\n const res: Array<InputValueInfo> = [];\n for (let i = selection.start; i < selection.end; i++) {\n res.push({\n char: maskString[i],\n type: charType.Mask,\n });\n }\n return res;\n }\n\n return copyMaskChar(selection.end - selection.start, maskChar);\n};\n\nexport const removeSelectedRange = (args: RemoveSelectionRangeArgs): Array<InputValueInfo> => {\n const { value, selection, maskChar, maskString } = args;\n\n if (selection.end < selection.start) {\n const tmp = selection.end;\n selection.end = selection.start;\n selection.start = tmp;\n }\n\n if (selection.start === selection.end) {\n return value;\n }\n\n if (value.length > selection.start) {\n return value\n .slice(0, selection.start)\n .concat(pasteMaskSymbols(maskString, maskChar, selection), value.slice(selection.end, value.length));\n }\n\n return value;\n};\n"],"names":["copyMaskChar","count","maskChar","res","i","push","type","charType","Mask","pasteMaskSymbols","maskString","selection","start","end","removeSelectedRange","args","value","tmp","length","slice","concat"],"mappings":";;AAWA,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAa,EAAEC,QAAgB,EAA4B;EAC7E,IAAMC,GAA0B,GAAG,EAAE,CAAA;EACrC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,EAAEG,CAAC,EAAE,EAAE;IAC5BD,GAAG,CAACE,IAAI,CAAC;AACL,MAAA,MAAA,EAAMH,QAAQ;MACdI,IAAI,EAAEC,QAAQ,CAACC,IAAAA;AACnB,KAAC,CAAC,CAAA;AACN,GAAA;AACA,EAAA,OAAOL,GAAG,CAAA;AACd,CAAC,CAAA;AAED,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,UAAkB,EAAER,QAAgB,EAAES,SAAsB,EAA4B;AAC9G,EAAA,IAAID,UAAU,EAAE;IACZ,IAAMP,GAA0B,GAAG,EAAE,CAAA;AACrC,IAAA,KAAK,IAAIC,CAAC,GAAGO,SAAS,CAACC,KAAK,EAAER,CAAC,GAAGO,SAAS,CAACE,GAAG,EAAET,CAAC,EAAE,EAAE;MAClDD,GAAG,CAACE,IAAI,CAAC;QACL,MAAMK,EAAAA,UAAU,CAACN,CAAC,CAAC;QACnBE,IAAI,EAAEC,QAAQ,CAACC,IAAAA;AACnB,OAAC,CAAC,CAAA;AACN,KAAA;AACA,IAAA,OAAOL,GAAG,CAAA;AACd,GAAA;EAEA,OAAOH,YAAY,CAACW,SAAS,CAACE,GAAG,GAAGF,SAAS,CAACC,KAAK,EAAEV,QAAQ,CAAC,CAAA;AAClE,CAAC,CAAA;IAEYY,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,IAA8B,EAA4B;AAC1F,EAAA,IAAQC,KAAK,GAAsCD,IAAI,CAA/CC,KAAK;IAAEL,SAAS,GAA2BI,IAAI,CAAxCJ,SAAS;IAAET,QAAQ,GAAiBa,IAAI,CAA7Bb,QAAQ;IAAEQ,UAAU,GAAKK,IAAI,CAAnBL,UAAU,CAAA;AAE9C,EAAA,IAAIC,SAAS,CAACE,GAAG,GAAGF,SAAS,CAACC,KAAK,EAAE;AACjC,IAAA,IAAMK,GAAG,GAAGN,SAAS,CAACE,GAAG,CAAA;AACzBF,IAAAA,SAAS,CAACE,GAAG,GAAGF,SAAS,CAACC,KAAK,CAAA;IAC/BD,SAAS,CAACC,KAAK,GAAGK,GAAG,CAAA;AACzB,GAAA;AAEA,EAAA,IAAIN,SAAS,CAACC,KAAK,KAAKD,SAAS,CAACE,GAAG,EAAE;AACnC,IAAA,OAAOG,KAAK,CAAA;AAChB,GAAA;AAEA,EAAA,IAAIA,KAAK,CAACE,MAAM,GAAGP,SAAS,CAACC,KAAK,EAAE;AAChC,IAAA,OAAOI,KAAK,CACPG,KAAK,CAAC,CAAC,EAAER,SAAS,CAACC,KAAK,CAAC,CACzBQ,MAAM,CAACX,gBAAgB,CAACC,UAAU,EAAER,QAAQ,EAAES,SAAS,CAAC,EAAEK,KAAK,CAACG,KAAK,CAACR,SAAS,CAACE,GAAG,EAAEG,KAAK,CAACE,MAAM,CAAC,CAAC,CAAA;AAC5G,GAAA;AAEA,EAAA,OAAOF,KAAK,CAAA;AAChB;;;;"}
|
@@ -142,7 +142,9 @@ var textFieldRoot = function textFieldRoot(Root) {
|
|
142
142
|
};
|
143
143
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
144
144
|
handleInputKeydown(event);
|
145
|
-
|
145
|
+
if (onKeyDown) {
|
146
|
+
onKeyDown(event);
|
147
|
+
}
|
146
148
|
};
|
147
149
|
useEffect(function () {
|
148
150
|
if (!isChipEnumeration && !(values !== null && values !== void 0 && values.length)) {
|