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