@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,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
- onKeyDown && onKeyDown(event);
145
+ if (onKeyDown) {
146
+ onKeyDown(event);
147
+ }
146
148
  };
147
149
  useEffect(function () {
148
150
  if (!isChipEnumeration && !(values !== null && values !== void 0 && values.length)) {