@v-c/util 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/Children/isFragment.cjs +1 -0
- package/dist/Children/isFragment.d.ts +3 -0
- package/dist/Children/isFragment.js +7 -0
- package/dist/Children/toArray.cjs +1 -0
- package/dist/Children/toArray.d.ts +8 -0
- package/dist/Children/toArray.js +11 -0
- package/dist/Dom/addEventListener.cjs +1 -0
- package/dist/Dom/addEventListener.d.ts +8 -0
- package/dist/Dom/addEventListener.js +12 -0
- package/dist/Dom/canUseDom.cjs +1 -0
- package/dist/Dom/canUseDom.d.ts +1 -0
- package/dist/Dom/canUseDom.js +6 -0
- package/dist/Dom/class.cjs +1 -0
- package/dist/Dom/class.d.ts +3 -0
- package/dist/Dom/class.js +19 -0
- package/dist/Dom/contains.cjs +1 -0
- package/dist/Dom/contains.d.ts +1 -0
- package/dist/Dom/contains.js +16 -0
- package/dist/Dom/css.cjs +1 -0
- package/dist/Dom/css.d.ts +20 -0
- package/dist/Dom/css.js +75 -0
- package/dist/Dom/dynamicCSS.cjs +1 -0
- package/dist/Dom/dynamicCSS.d.ts +24 -0
- package/dist/Dom/dynamicCSS.js +78 -0
- package/dist/Dom/findDOMNode.cjs +1 -0
- package/dist/Dom/findDOMNode.d.ts +7 -0
- package/dist/Dom/findDOMNode.js +12 -0
- package/dist/Dom/focus.cjs +1 -0
- package/dist/Dom/focus.d.ts +8 -0
- package/dist/Dom/focus.js +40 -0
- package/dist/Dom/isVisible.cjs +1 -0
- package/dist/Dom/isVisible.d.ts +2 -0
- package/dist/Dom/isVisible.js +22 -0
- package/dist/Dom/scrollLocker.cjs +1 -0
- package/dist/Dom/scrollLocker.d.ts +12 -0
- package/dist/Dom/scrollLocker.js +81 -0
- package/dist/Dom/shadow.cjs +1 -0
- package/dist/Dom/shadow.d.ts +8 -0
- package/dist/Dom/shadow.js +14 -0
- package/dist/Dom/styleChecker.cjs +1 -0
- package/dist/Dom/styleChecker.d.ts +2 -0
- package/dist/Dom/styleChecker.js +20 -0
- package/dist/Dom/support.cjs +1 -0
- package/dist/Dom/support.d.ts +6 -0
- package/dist/Dom/support.js +24 -0
- package/dist/EventInterface.cjs +1 -0
- package/dist/EventInterface.d.ts +18 -0
- package/dist/EventInterface.js +1 -0
- package/dist/KeyCode.cjs +1 -0
- package/dist/KeyCode.d.ts +435 -0
- package/dist/KeyCode.js +516 -0
- package/dist/Portal.cjs +1 -0
- package/dist/Portal.d.ts +8 -0
- package/dist/Portal.js +38 -0
- package/dist/PortalWrapper.cjs +1 -0
- package/dist/PortalWrapper.d.ts +28 -0
- package/dist/PortalWrapper.js +114 -0
- package/dist/composeProps.cjs +1 -0
- package/dist/composeProps.d.ts +2 -0
- package/dist/composeProps.js +16 -0
- package/dist/createRef.cjs +1 -0
- package/dist/createRef.d.ts +12 -0
- package/dist/createRef.js +21 -0
- package/dist/debug/diff.cjs +1 -0
- package/dist/debug/diff.d.ts +1 -0
- package/dist/debug/diff.js +41 -0
- package/dist/deprecated.cjs +1 -0
- package/dist/deprecated.d.ts +1 -0
- package/dist/deprecated.js +8 -0
- package/dist/getScrollBarSize.cjs +1 -0
- package/dist/getScrollBarSize.d.ts +5 -0
- package/dist/getScrollBarSize.js +37 -0
- package/dist/guid.cjs +1 -0
- package/dist/guid.d.ts +1 -0
- package/dist/guid.js +7 -0
- package/dist/hooks/useId.cjs +1 -0
- package/dist/hooks/useId.d.ts +5 -0
- package/dist/hooks/useId.js +17 -0
- package/dist/hooks/useMemo.cjs +1 -0
- package/dist/hooks/useMemo.d.ts +3 -0
- package/dist/hooks/useMemo.js +10 -0
- package/dist/hooks/useMergedState.cjs +1 -0
- package/dist/hooks/useMergedState.d.ts +8 -0
- package/dist/hooks/useMergedState.js +21 -0
- package/dist/hooks/useState.cjs +1 -0
- package/dist/hooks/useState.d.ts +3 -0
- package/dist/hooks/useState.js +11 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +8 -0
- package/dist/isEqual.cjs +1 -0
- package/dist/isEqual.d.ts +8 -0
- package/dist/isEqual.js +32 -0
- package/dist/isMobile.cjs +1 -0
- package/dist/isMobile.d.ts +2 -0
- package/dist/isMobile.js +13 -0
- package/dist/omit.cjs +1 -0
- package/dist/omit.d.ts +1 -0
- package/dist/omit.js +9 -0
- package/dist/pickAttrs.cjs +18 -0
- package/dist/pickAttrs.d.ts +11 -0
- package/dist/pickAttrs.js +41 -0
- package/dist/props-util/index.cjs +1 -0
- package/dist/props-util/index.d.ts +2 -0
- package/dist/props-util/index.js +14 -0
- package/dist/raf.cjs +1 -0
- package/dist/raf.d.ts +6 -0
- package/dist/raf.js +30 -0
- package/dist/setStyle.cjs +1 -0
- package/dist/setStyle.d.ts +13 -0
- package/dist/setStyle.js +13 -0
- package/dist/switchScrollingEffect.cjs +1 -0
- package/dist/switchScrollingEffect.d.ts +2 -0
- package/dist/switchScrollingEffect.js +31 -0
- package/dist/test/domHook.cjs +1 -0
- package/dist/test/domHook.d.ts +8 -0
- package/dist/test/domHook.js +37 -0
- package/dist/type.cjs +1 -0
- package/dist/type.d.ts +63 -0
- package/dist/type.js +49 -0
- package/dist/utils/checkSlotProp.cjs +1 -0
- package/dist/utils/checkSlotProp.d.ts +1 -0
- package/dist/utils/checkSlotProp.js +7 -0
- package/dist/utils/get.cjs +1 -0
- package/dist/utils/get.d.ts +1 -0
- package/dist/utils/get.js +12 -0
- package/dist/utils/set.cjs +1 -0
- package/dist/utils/set.d.ts +6 -0
- package/dist/utils/set.js +41 -0
- package/dist/vnode.cjs +1 -0
- package/dist/vnode.d.ts +12 -0
- package/dist/vnode.js +41 -0
- package/dist/warning.cjs +1 -0
- package/dist/warning.d.ts +18 -0
- package/dist/warning.js +48 -0
- package/package.json +37 -0
- package/src/Children/isFragment.ts +6 -0
- package/src/Children/tests/isFragment.test.tsx +15 -0
- package/src/Children/tests/toArray.test.tsx +101 -0
- package/src/Children/toArray.ts +27 -0
- package/src/Dom/addEventListener.ts +20 -0
- package/src/Dom/canUseDom.ts +7 -0
- package/src/Dom/class.ts +29 -0
- package/src/Dom/contains.ts +19 -0
- package/src/Dom/css.ts +113 -0
- package/src/Dom/dynamicCSS.ts +173 -0
- package/src/Dom/findDOMNode.ts +23 -0
- package/src/Dom/focus.ts +96 -0
- package/src/Dom/isVisible.ts +23 -0
- package/src/Dom/scrollLocker.ts +143 -0
- package/src/Dom/shadow.ts +17 -0
- package/src/Dom/styleChecker.ts +31 -0
- package/src/Dom/support.ts +27 -0
- package/src/EventInterface.ts +19 -0
- package/src/KeyCode.ts +516 -0
- package/src/Portal.tsx +50 -0
- package/src/PortalWrapper.tsx +214 -0
- package/src/composeProps.ts +23 -0
- package/src/createRef.ts +33 -0
- package/src/debug/diff.ts +66 -0
- package/src/deprecated.ts +8 -0
- package/src/getScrollBarSize.tsx +57 -0
- package/src/guid.ts +4 -0
- package/src/hooks/useId.ts +31 -0
- package/src/hooks/useMemo.ts +21 -0
- package/src/hooks/useMergedState.ts +44 -0
- package/src/hooks/useState.ts +17 -0
- package/src/index.ts +3 -0
- package/src/isEqual.ts +50 -0
- package/src/isMobile.ts +15 -0
- package/src/omit.ts +14 -0
- package/src/pickAttrs.ts +78 -0
- package/src/props-util/index.ts +22 -0
- package/src/raf.ts +55 -0
- package/src/setStyle.ts +38 -0
- package/src/switchScrollingEffect.ts +48 -0
- package/src/test/domHook.ts +67 -0
- package/src/type.ts +94 -0
- package/src/utils/checkSlotProp.ts +10 -0
- package/src/utils/get.ts +15 -0
- package/src/utils/set.ts +110 -0
- package/src/vnode.ts +86 -0
- package/src/warning.ts +79 -0
- package/tests/Portal.test.tsx +199 -0
- package/tsconfig.json +7 -0
- package/vite.config.ts +18 -0
package/src/KeyCode.ts
ADDED
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* some key-codes definition and utils from closure-library
|
|
3
|
+
* @author yiminghe@gmail.com
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const KeyCode = {
|
|
7
|
+
/**
|
|
8
|
+
* MAC_ENTER
|
|
9
|
+
*/
|
|
10
|
+
MAC_ENTER: 3,
|
|
11
|
+
/**
|
|
12
|
+
* BACKSPACE
|
|
13
|
+
*/
|
|
14
|
+
BACKSPACE: 8,
|
|
15
|
+
/**
|
|
16
|
+
* TAB
|
|
17
|
+
*/
|
|
18
|
+
TAB: 9,
|
|
19
|
+
/**
|
|
20
|
+
* NUMLOCK on FF/Safari Mac
|
|
21
|
+
*/
|
|
22
|
+
NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac
|
|
23
|
+
/**
|
|
24
|
+
* ENTER
|
|
25
|
+
*/
|
|
26
|
+
ENTER: 13,
|
|
27
|
+
/**
|
|
28
|
+
* SHIFT
|
|
29
|
+
*/
|
|
30
|
+
SHIFT: 16,
|
|
31
|
+
/**
|
|
32
|
+
* CTRL
|
|
33
|
+
*/
|
|
34
|
+
CTRL: 17,
|
|
35
|
+
/**
|
|
36
|
+
* ALT
|
|
37
|
+
*/
|
|
38
|
+
ALT: 18,
|
|
39
|
+
/**
|
|
40
|
+
* PAUSE
|
|
41
|
+
*/
|
|
42
|
+
PAUSE: 19,
|
|
43
|
+
/**
|
|
44
|
+
* CAPS_LOCK
|
|
45
|
+
*/
|
|
46
|
+
CAPS_LOCK: 20,
|
|
47
|
+
/**
|
|
48
|
+
* ESC
|
|
49
|
+
*/
|
|
50
|
+
ESC: 27,
|
|
51
|
+
/**
|
|
52
|
+
* SPACE
|
|
53
|
+
*/
|
|
54
|
+
SPACE: 32,
|
|
55
|
+
/**
|
|
56
|
+
* PAGE_UP
|
|
57
|
+
*/
|
|
58
|
+
PAGE_UP: 33, // also NUM_NORTH_EAST
|
|
59
|
+
/**
|
|
60
|
+
* PAGE_DOWN
|
|
61
|
+
*/
|
|
62
|
+
PAGE_DOWN: 34, // also NUM_SOUTH_EAST
|
|
63
|
+
/**
|
|
64
|
+
* END
|
|
65
|
+
*/
|
|
66
|
+
END: 35, // also NUM_SOUTH_WEST
|
|
67
|
+
/**
|
|
68
|
+
* HOME
|
|
69
|
+
*/
|
|
70
|
+
HOME: 36, // also NUM_NORTH_WEST
|
|
71
|
+
/**
|
|
72
|
+
* LEFT
|
|
73
|
+
*/
|
|
74
|
+
LEFT: 37, // also NUM_WEST
|
|
75
|
+
/**
|
|
76
|
+
* UP
|
|
77
|
+
*/
|
|
78
|
+
UP: 38, // also NUM_NORTH
|
|
79
|
+
/**
|
|
80
|
+
* RIGHT
|
|
81
|
+
*/
|
|
82
|
+
RIGHT: 39, // also NUM_EAST
|
|
83
|
+
/**
|
|
84
|
+
* DOWN
|
|
85
|
+
*/
|
|
86
|
+
DOWN: 40, // also NUM_SOUTH
|
|
87
|
+
/**
|
|
88
|
+
* PRINT_SCREEN
|
|
89
|
+
*/
|
|
90
|
+
PRINT_SCREEN: 44,
|
|
91
|
+
/**
|
|
92
|
+
* INSERT
|
|
93
|
+
*/
|
|
94
|
+
INSERT: 45, // also NUM_INSERT
|
|
95
|
+
/**
|
|
96
|
+
* DELETE
|
|
97
|
+
*/
|
|
98
|
+
DELETE: 46, // also NUM_DELETE
|
|
99
|
+
/**
|
|
100
|
+
* ZERO
|
|
101
|
+
*/
|
|
102
|
+
ZERO: 48,
|
|
103
|
+
/**
|
|
104
|
+
* ONE
|
|
105
|
+
*/
|
|
106
|
+
ONE: 49,
|
|
107
|
+
/**
|
|
108
|
+
* TWO
|
|
109
|
+
*/
|
|
110
|
+
TWO: 50,
|
|
111
|
+
/**
|
|
112
|
+
* THREE
|
|
113
|
+
*/
|
|
114
|
+
THREE: 51,
|
|
115
|
+
/**
|
|
116
|
+
* FOUR
|
|
117
|
+
*/
|
|
118
|
+
FOUR: 52,
|
|
119
|
+
/**
|
|
120
|
+
* FIVE
|
|
121
|
+
*/
|
|
122
|
+
FIVE: 53,
|
|
123
|
+
/**
|
|
124
|
+
* SIX
|
|
125
|
+
*/
|
|
126
|
+
SIX: 54,
|
|
127
|
+
/**
|
|
128
|
+
* SEVEN
|
|
129
|
+
*/
|
|
130
|
+
SEVEN: 55,
|
|
131
|
+
/**
|
|
132
|
+
* EIGHT
|
|
133
|
+
*/
|
|
134
|
+
EIGHT: 56,
|
|
135
|
+
/**
|
|
136
|
+
* NINE
|
|
137
|
+
*/
|
|
138
|
+
NINE: 57,
|
|
139
|
+
/**
|
|
140
|
+
* QUESTION_MARK
|
|
141
|
+
*/
|
|
142
|
+
QUESTION_MARK: 63, // needs localization
|
|
143
|
+
/**
|
|
144
|
+
* A
|
|
145
|
+
*/
|
|
146
|
+
A: 65,
|
|
147
|
+
/**
|
|
148
|
+
* B
|
|
149
|
+
*/
|
|
150
|
+
B: 66,
|
|
151
|
+
/**
|
|
152
|
+
* C
|
|
153
|
+
*/
|
|
154
|
+
C: 67,
|
|
155
|
+
/**
|
|
156
|
+
* D
|
|
157
|
+
*/
|
|
158
|
+
D: 68,
|
|
159
|
+
/**
|
|
160
|
+
* E
|
|
161
|
+
*/
|
|
162
|
+
E: 69,
|
|
163
|
+
/**
|
|
164
|
+
* F
|
|
165
|
+
*/
|
|
166
|
+
F: 70,
|
|
167
|
+
/**
|
|
168
|
+
* G
|
|
169
|
+
*/
|
|
170
|
+
G: 71,
|
|
171
|
+
/**
|
|
172
|
+
* H
|
|
173
|
+
*/
|
|
174
|
+
H: 72,
|
|
175
|
+
/**
|
|
176
|
+
* I
|
|
177
|
+
*/
|
|
178
|
+
I: 73,
|
|
179
|
+
/**
|
|
180
|
+
* J
|
|
181
|
+
*/
|
|
182
|
+
J: 74,
|
|
183
|
+
/**
|
|
184
|
+
* K
|
|
185
|
+
*/
|
|
186
|
+
K: 75,
|
|
187
|
+
/**
|
|
188
|
+
* L
|
|
189
|
+
*/
|
|
190
|
+
L: 76,
|
|
191
|
+
/**
|
|
192
|
+
* M
|
|
193
|
+
*/
|
|
194
|
+
M: 77,
|
|
195
|
+
/**
|
|
196
|
+
* N
|
|
197
|
+
*/
|
|
198
|
+
N: 78,
|
|
199
|
+
/**
|
|
200
|
+
* O
|
|
201
|
+
*/
|
|
202
|
+
O: 79,
|
|
203
|
+
/**
|
|
204
|
+
* P
|
|
205
|
+
*/
|
|
206
|
+
P: 80,
|
|
207
|
+
/**
|
|
208
|
+
* Q
|
|
209
|
+
*/
|
|
210
|
+
Q: 81,
|
|
211
|
+
/**
|
|
212
|
+
* R
|
|
213
|
+
*/
|
|
214
|
+
R: 82,
|
|
215
|
+
/**
|
|
216
|
+
* S
|
|
217
|
+
*/
|
|
218
|
+
S: 83,
|
|
219
|
+
/**
|
|
220
|
+
* T
|
|
221
|
+
*/
|
|
222
|
+
T: 84,
|
|
223
|
+
/**
|
|
224
|
+
* U
|
|
225
|
+
*/
|
|
226
|
+
U: 85,
|
|
227
|
+
/**
|
|
228
|
+
* V
|
|
229
|
+
*/
|
|
230
|
+
V: 86,
|
|
231
|
+
/**
|
|
232
|
+
* W
|
|
233
|
+
*/
|
|
234
|
+
W: 87,
|
|
235
|
+
/**
|
|
236
|
+
* X
|
|
237
|
+
*/
|
|
238
|
+
X: 88,
|
|
239
|
+
/**
|
|
240
|
+
* Y
|
|
241
|
+
*/
|
|
242
|
+
Y: 89,
|
|
243
|
+
/**
|
|
244
|
+
* Z
|
|
245
|
+
*/
|
|
246
|
+
Z: 90,
|
|
247
|
+
/**
|
|
248
|
+
* META
|
|
249
|
+
*/
|
|
250
|
+
META: 91, // WIN_KEY_LEFT
|
|
251
|
+
/**
|
|
252
|
+
* WIN_KEY_RIGHT
|
|
253
|
+
*/
|
|
254
|
+
WIN_KEY_RIGHT: 92,
|
|
255
|
+
/**
|
|
256
|
+
* CONTEXT_MENU
|
|
257
|
+
*/
|
|
258
|
+
CONTEXT_MENU: 93,
|
|
259
|
+
/**
|
|
260
|
+
* NUM_ZERO
|
|
261
|
+
*/
|
|
262
|
+
NUM_ZERO: 96,
|
|
263
|
+
/**
|
|
264
|
+
* NUM_ONE
|
|
265
|
+
*/
|
|
266
|
+
NUM_ONE: 97,
|
|
267
|
+
/**
|
|
268
|
+
* NUM_TWO
|
|
269
|
+
*/
|
|
270
|
+
NUM_TWO: 98,
|
|
271
|
+
/**
|
|
272
|
+
* NUM_THREE
|
|
273
|
+
*/
|
|
274
|
+
NUM_THREE: 99,
|
|
275
|
+
/**
|
|
276
|
+
* NUM_FOUR
|
|
277
|
+
*/
|
|
278
|
+
NUM_FOUR: 100,
|
|
279
|
+
/**
|
|
280
|
+
* NUM_FIVE
|
|
281
|
+
*/
|
|
282
|
+
NUM_FIVE: 101,
|
|
283
|
+
/**
|
|
284
|
+
* NUM_SIX
|
|
285
|
+
*/
|
|
286
|
+
NUM_SIX: 102,
|
|
287
|
+
/**
|
|
288
|
+
* NUM_SEVEN
|
|
289
|
+
*/
|
|
290
|
+
NUM_SEVEN: 103,
|
|
291
|
+
/**
|
|
292
|
+
* NUM_EIGHT
|
|
293
|
+
*/
|
|
294
|
+
NUM_EIGHT: 104,
|
|
295
|
+
/**
|
|
296
|
+
* NUM_NINE
|
|
297
|
+
*/
|
|
298
|
+
NUM_NINE: 105,
|
|
299
|
+
/**
|
|
300
|
+
* NUM_MULTIPLY
|
|
301
|
+
*/
|
|
302
|
+
NUM_MULTIPLY: 106,
|
|
303
|
+
/**
|
|
304
|
+
* NUM_PLUS
|
|
305
|
+
*/
|
|
306
|
+
NUM_PLUS: 107,
|
|
307
|
+
/**
|
|
308
|
+
* NUM_MINUS
|
|
309
|
+
*/
|
|
310
|
+
NUM_MINUS: 109,
|
|
311
|
+
/**
|
|
312
|
+
* NUM_PERIOD
|
|
313
|
+
*/
|
|
314
|
+
NUM_PERIOD: 110,
|
|
315
|
+
/**
|
|
316
|
+
* NUM_DIVISION
|
|
317
|
+
*/
|
|
318
|
+
NUM_DIVISION: 111,
|
|
319
|
+
/**
|
|
320
|
+
* F1
|
|
321
|
+
*/
|
|
322
|
+
F1: 112,
|
|
323
|
+
/**
|
|
324
|
+
* F2
|
|
325
|
+
*/
|
|
326
|
+
F2: 113,
|
|
327
|
+
/**
|
|
328
|
+
* F3
|
|
329
|
+
*/
|
|
330
|
+
F3: 114,
|
|
331
|
+
/**
|
|
332
|
+
* F4
|
|
333
|
+
*/
|
|
334
|
+
F4: 115,
|
|
335
|
+
/**
|
|
336
|
+
* F5
|
|
337
|
+
*/
|
|
338
|
+
F5: 116,
|
|
339
|
+
/**
|
|
340
|
+
* F6
|
|
341
|
+
*/
|
|
342
|
+
F6: 117,
|
|
343
|
+
/**
|
|
344
|
+
* F7
|
|
345
|
+
*/
|
|
346
|
+
F7: 118,
|
|
347
|
+
/**
|
|
348
|
+
* F8
|
|
349
|
+
*/
|
|
350
|
+
F8: 119,
|
|
351
|
+
/**
|
|
352
|
+
* F9
|
|
353
|
+
*/
|
|
354
|
+
F9: 120,
|
|
355
|
+
/**
|
|
356
|
+
* F10
|
|
357
|
+
*/
|
|
358
|
+
F10: 121,
|
|
359
|
+
/**
|
|
360
|
+
* F11
|
|
361
|
+
*/
|
|
362
|
+
F11: 122,
|
|
363
|
+
/**
|
|
364
|
+
* F12
|
|
365
|
+
*/
|
|
366
|
+
F12: 123,
|
|
367
|
+
/**
|
|
368
|
+
* NUMLOCK
|
|
369
|
+
*/
|
|
370
|
+
NUMLOCK: 144,
|
|
371
|
+
/**
|
|
372
|
+
* SEMICOLON
|
|
373
|
+
*/
|
|
374
|
+
SEMICOLON: 186, // needs localization
|
|
375
|
+
/**
|
|
376
|
+
* DASH
|
|
377
|
+
*/
|
|
378
|
+
DASH: 189, // needs localization
|
|
379
|
+
/**
|
|
380
|
+
* EQUALS
|
|
381
|
+
*/
|
|
382
|
+
EQUALS: 187, // needs localization
|
|
383
|
+
/**
|
|
384
|
+
* COMMA
|
|
385
|
+
*/
|
|
386
|
+
COMMA: 188, // needs localization
|
|
387
|
+
/**
|
|
388
|
+
* PERIOD
|
|
389
|
+
*/
|
|
390
|
+
PERIOD: 190, // needs localization
|
|
391
|
+
/**
|
|
392
|
+
* SLASH
|
|
393
|
+
*/
|
|
394
|
+
SLASH: 191, // needs localization
|
|
395
|
+
/**
|
|
396
|
+
* APOSTROPHE
|
|
397
|
+
*/
|
|
398
|
+
APOSTROPHE: 192, // needs localization
|
|
399
|
+
/**
|
|
400
|
+
* SINGLE_QUOTE
|
|
401
|
+
*/
|
|
402
|
+
SINGLE_QUOTE: 222, // needs localization
|
|
403
|
+
/**
|
|
404
|
+
* OPEN_SQUARE_BRACKET
|
|
405
|
+
*/
|
|
406
|
+
OPEN_SQUARE_BRACKET: 219, // needs localization
|
|
407
|
+
/**
|
|
408
|
+
* BACKSLASH
|
|
409
|
+
*/
|
|
410
|
+
BACKSLASH: 220, // needs localization
|
|
411
|
+
/**
|
|
412
|
+
* CLOSE_SQUARE_BRACKET
|
|
413
|
+
*/
|
|
414
|
+
CLOSE_SQUARE_BRACKET: 221, // needs localization
|
|
415
|
+
/**
|
|
416
|
+
* WIN_KEY
|
|
417
|
+
*/
|
|
418
|
+
WIN_KEY: 224,
|
|
419
|
+
/**
|
|
420
|
+
* MAC_FF_META
|
|
421
|
+
*/
|
|
422
|
+
MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91
|
|
423
|
+
/**
|
|
424
|
+
* WIN_IME
|
|
425
|
+
*/
|
|
426
|
+
WIN_IME: 229,
|
|
427
|
+
|
|
428
|
+
// ======================== Function ========================
|
|
429
|
+
/**
|
|
430
|
+
* whether text and modified key is entered at the same time.
|
|
431
|
+
*/
|
|
432
|
+
isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e: KeyboardEvent) {
|
|
433
|
+
const { keyCode } = e
|
|
434
|
+
if (
|
|
435
|
+
(e.altKey && !e.ctrlKey)
|
|
436
|
+
|| e.metaKey
|
|
437
|
+
// Function keys don't generate text
|
|
438
|
+
|| (keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12)
|
|
439
|
+
)
|
|
440
|
+
return false
|
|
441
|
+
|
|
442
|
+
// The following keys are quite harmless, even in combination with
|
|
443
|
+
// CTRL, ALT or SHIFT.
|
|
444
|
+
switch (keyCode) {
|
|
445
|
+
case KeyCode.ALT:
|
|
446
|
+
case KeyCode.CAPS_LOCK:
|
|
447
|
+
case KeyCode.CONTEXT_MENU:
|
|
448
|
+
case KeyCode.CTRL:
|
|
449
|
+
case KeyCode.DOWN:
|
|
450
|
+
case KeyCode.END:
|
|
451
|
+
case KeyCode.ESC:
|
|
452
|
+
case KeyCode.HOME:
|
|
453
|
+
case KeyCode.INSERT:
|
|
454
|
+
case KeyCode.LEFT:
|
|
455
|
+
case KeyCode.MAC_FF_META:
|
|
456
|
+
case KeyCode.META:
|
|
457
|
+
case KeyCode.NUMLOCK:
|
|
458
|
+
case KeyCode.NUM_CENTER:
|
|
459
|
+
case KeyCode.PAGE_DOWN:
|
|
460
|
+
case KeyCode.PAGE_UP:
|
|
461
|
+
case KeyCode.PAUSE:
|
|
462
|
+
case KeyCode.PRINT_SCREEN:
|
|
463
|
+
case KeyCode.RIGHT:
|
|
464
|
+
case KeyCode.SHIFT:
|
|
465
|
+
case KeyCode.UP:
|
|
466
|
+
case KeyCode.WIN_KEY:
|
|
467
|
+
case KeyCode.WIN_KEY_RIGHT:
|
|
468
|
+
return false
|
|
469
|
+
default:
|
|
470
|
+
return true
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* whether character is entered.
|
|
476
|
+
*/
|
|
477
|
+
isCharacterKey: function isCharacterKey(keyCode: number) {
|
|
478
|
+
if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE)
|
|
479
|
+
return true
|
|
480
|
+
|
|
481
|
+
if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY)
|
|
482
|
+
return true
|
|
483
|
+
|
|
484
|
+
if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z)
|
|
485
|
+
return true
|
|
486
|
+
|
|
487
|
+
// Safari sends zero key code for non-latin characters.
|
|
488
|
+
if (window.navigator.userAgent.includes('WebKit') && keyCode === 0)
|
|
489
|
+
return true
|
|
490
|
+
|
|
491
|
+
switch (keyCode) {
|
|
492
|
+
case KeyCode.SPACE:
|
|
493
|
+
case KeyCode.QUESTION_MARK:
|
|
494
|
+
case KeyCode.NUM_PLUS:
|
|
495
|
+
case KeyCode.NUM_MINUS:
|
|
496
|
+
case KeyCode.NUM_PERIOD:
|
|
497
|
+
case KeyCode.NUM_DIVISION:
|
|
498
|
+
case KeyCode.SEMICOLON:
|
|
499
|
+
case KeyCode.DASH:
|
|
500
|
+
case KeyCode.EQUALS:
|
|
501
|
+
case KeyCode.COMMA:
|
|
502
|
+
case KeyCode.PERIOD:
|
|
503
|
+
case KeyCode.SLASH:
|
|
504
|
+
case KeyCode.APOSTROPHE:
|
|
505
|
+
case KeyCode.SINGLE_QUOTE:
|
|
506
|
+
case KeyCode.OPEN_SQUARE_BRACKET:
|
|
507
|
+
case KeyCode.BACKSLASH:
|
|
508
|
+
case KeyCode.CLOSE_SQUARE_BRACKET:
|
|
509
|
+
return true
|
|
510
|
+
default:
|
|
511
|
+
return false
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export default KeyCode
|
package/src/Portal.tsx
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Teleport, defineComponent, onBeforeUnmount, onMounted, onUnmounted, shallowRef } from 'vue'
|
|
2
|
+
import canUseDom from './Dom/canUseDom'
|
|
3
|
+
|
|
4
|
+
export interface PortalProps {
|
|
5
|
+
didUpdate?: (prevProps: PortalProps) => void
|
|
6
|
+
getContainer: () => HTMLElement
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface PortalRef {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const Portal = defineComponent<PortalProps>((props, ctx) => {
|
|
14
|
+
const parentRef = shallowRef()
|
|
15
|
+
const containerRef = shallowRef()
|
|
16
|
+
|
|
17
|
+
// Create container in client side with sync to avoid useEffect not get ref
|
|
18
|
+
const initRef = shallowRef(false)
|
|
19
|
+
|
|
20
|
+
if (!initRef.value && canUseDom()) {
|
|
21
|
+
containerRef.value = props.getContainer()
|
|
22
|
+
parentRef.value = containerRef.value?.parentNode
|
|
23
|
+
initRef.value = true
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
onMounted(() => {
|
|
27
|
+
if (containerRef.value?.parentNode === null && parentRef.value !== null)
|
|
28
|
+
parentRef.value.appendChild(containerRef.value)
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
onBeforeUnmount(() => {
|
|
32
|
+
props.didUpdate?.(props)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
onUnmounted(() => {
|
|
36
|
+
containerRef.value?.parentNode?.removeChild?.(containerRef.value)
|
|
37
|
+
})
|
|
38
|
+
return () => {
|
|
39
|
+
if (containerRef.value) {
|
|
40
|
+
return (
|
|
41
|
+
<Teleport to={containerRef.value}>
|
|
42
|
+
{ctx.slots.default?.()}
|
|
43
|
+
</Teleport>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
return null
|
|
47
|
+
}
|
|
48
|
+
}, { inheritAttrs: false })
|
|
49
|
+
|
|
50
|
+
export default Portal
|