@maxax/hooks 1.0.0
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/dist/index.cjs +899 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +443 -0
- package/dist/index.d.ts +443 -0
- package/dist/index.mjs +846 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +49 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,899 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
createBreakpointListen: () => createBreakpointListen,
|
|
24
|
+
lockHtmlScrollRightCompensationRef: () => lockHtmlScrollRightCompensationRef,
|
|
25
|
+
useBoolean: () => useBoolean,
|
|
26
|
+
useBreakpoint: () => useBreakpoint,
|
|
27
|
+
useBrowserLocation: () => useBrowserLocation,
|
|
28
|
+
useComputed: () => useComputed,
|
|
29
|
+
useContext: () => useContext,
|
|
30
|
+
useCountDown: () => useCountDown,
|
|
31
|
+
useDeferredTrue: () => useDeferredTrue,
|
|
32
|
+
useEventListener: () => useEventListener,
|
|
33
|
+
useHookTable: () => useHookTable,
|
|
34
|
+
useInjectionCollection: () => useInjectionCollection,
|
|
35
|
+
useInjectionElementCollection: () => useInjectionElementCollection,
|
|
36
|
+
useInjectionInstanceCollection: () => useInjectionInstanceCollection,
|
|
37
|
+
useIsComposing: () => useIsComposing,
|
|
38
|
+
useLayoutContentStyle: () => useLayoutContentStyle,
|
|
39
|
+
useLayoutFooterStyle: () => useLayoutFooterStyle,
|
|
40
|
+
useLayoutHeaderStyle: () => useLayoutHeaderStyle,
|
|
41
|
+
useLoading: () => useLoading,
|
|
42
|
+
useLocalPage: () => useLocalPage,
|
|
43
|
+
useLockHtmlScroll: () => useLockHtmlScroll,
|
|
44
|
+
useMemo: () => useMemo,
|
|
45
|
+
useMergedState: () => useMergedState,
|
|
46
|
+
useScript: () => useScript,
|
|
47
|
+
useScroll: () => useScroll,
|
|
48
|
+
useSignal: () => useSignal,
|
|
49
|
+
useSvgIconRender: () => useSvgIconRender
|
|
50
|
+
});
|
|
51
|
+
module.exports = __toCommonJS(index_exports);
|
|
52
|
+
|
|
53
|
+
// src/use-boolean.ts
|
|
54
|
+
var import_vue = require("vue");
|
|
55
|
+
function useBoolean(initValue = false) {
|
|
56
|
+
const bool = (0, import_vue.ref)(initValue);
|
|
57
|
+
function setBool(value) {
|
|
58
|
+
bool.value = value;
|
|
59
|
+
}
|
|
60
|
+
function setTrue() {
|
|
61
|
+
setBool(true);
|
|
62
|
+
}
|
|
63
|
+
function setFalse() {
|
|
64
|
+
setBool(false);
|
|
65
|
+
}
|
|
66
|
+
function toggle() {
|
|
67
|
+
setBool(!bool.value);
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
bool,
|
|
71
|
+
setBool,
|
|
72
|
+
setTrue,
|
|
73
|
+
setFalse,
|
|
74
|
+
toggle
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/use-breakpoint.ts
|
|
79
|
+
var import_vue3 = require("vue");
|
|
80
|
+
|
|
81
|
+
// src/enum/breakpointEnum.ts
|
|
82
|
+
var SizeEnum = /* @__PURE__ */ ((SizeEnum2) => {
|
|
83
|
+
SizeEnum2["XS"] = "XS";
|
|
84
|
+
SizeEnum2["SM"] = "SM";
|
|
85
|
+
SizeEnum2["MD"] = "MD";
|
|
86
|
+
SizeEnum2["LG"] = "LG";
|
|
87
|
+
SizeEnum2["XL"] = "XL";
|
|
88
|
+
SizeEnum2["XXL"] = "XXL";
|
|
89
|
+
return SizeEnum2;
|
|
90
|
+
})(SizeEnum || {});
|
|
91
|
+
var ScreenEnum = /* @__PURE__ */ ((ScreenEnum2) => {
|
|
92
|
+
ScreenEnum2[ScreenEnum2["XS"] = 320] = "XS";
|
|
93
|
+
ScreenEnum2[ScreenEnum2["SM"] = 640] = "SM";
|
|
94
|
+
ScreenEnum2[ScreenEnum2["MD"] = 768] = "MD";
|
|
95
|
+
ScreenEnum2[ScreenEnum2["LG"] = 960] = "LG";
|
|
96
|
+
ScreenEnum2[ScreenEnum2["XL"] = 1280] = "XL";
|
|
97
|
+
ScreenEnum2[ScreenEnum2["XXL"] = 1536] = "XXL";
|
|
98
|
+
return ScreenEnum2;
|
|
99
|
+
})(ScreenEnum || {});
|
|
100
|
+
var screenMap = /* @__PURE__ */ new Map();
|
|
101
|
+
screenMap.set("XS" /* XS */, 320 /* XS */);
|
|
102
|
+
screenMap.set("SM" /* SM */, 640 /* SM */);
|
|
103
|
+
screenMap.set("MD" /* MD */, 768 /* MD */);
|
|
104
|
+
screenMap.set("LG" /* LG */, 960 /* LG */);
|
|
105
|
+
screenMap.set("XL" /* XL */, 1280 /* XL */);
|
|
106
|
+
screenMap.set("XXL" /* XXL */, 1536 /* XXL */);
|
|
107
|
+
|
|
108
|
+
// src/use-event-listener.ts
|
|
109
|
+
var import_vue2 = require("vue");
|
|
110
|
+
var import_core = require("@vueuse/core");
|
|
111
|
+
function useEventListener({ el = window, name, listener, options, autoRemove = true, isDebounce = true, wait = 80 }) {
|
|
112
|
+
let remove = () => {
|
|
113
|
+
};
|
|
114
|
+
const isAddRef = (0, import_vue2.ref)(false);
|
|
115
|
+
if (el) {
|
|
116
|
+
const element = (0, import_vue2.ref)(el);
|
|
117
|
+
const handler = isDebounce ? (0, import_core.useDebounceFn)(listener, wait) : (0, import_core.useThrottleFn)(listener, wait);
|
|
118
|
+
const realHandler = wait ? handler : listener;
|
|
119
|
+
const removeEventListener = (e) => {
|
|
120
|
+
isAddRef.value = true;
|
|
121
|
+
e.removeEventListener(name, realHandler, options);
|
|
122
|
+
};
|
|
123
|
+
const addEventListener = (e) => e.addEventListener(name, realHandler, options);
|
|
124
|
+
const removeWatch = (0, import_vue2.watch)(
|
|
125
|
+
element,
|
|
126
|
+
(v, _ov, cleanUp) => {
|
|
127
|
+
if (v) {
|
|
128
|
+
!(0, import_vue2.unref)(isAddRef) && addEventListener(v);
|
|
129
|
+
cleanUp(() => {
|
|
130
|
+
autoRemove && removeEventListener(v);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
{ immediate: true }
|
|
135
|
+
);
|
|
136
|
+
remove = () => {
|
|
137
|
+
removeEventListener(element.value);
|
|
138
|
+
removeWatch();
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return { removeEvent: remove };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// src/use-breakpoint.ts
|
|
145
|
+
var globalScreenRef;
|
|
146
|
+
var globalWidthRef;
|
|
147
|
+
var globalRealWidthRef;
|
|
148
|
+
function useBreakpoint() {
|
|
149
|
+
return {
|
|
150
|
+
screenRef: (0, import_vue3.computed)(() => (0, import_vue3.unref)(globalScreenRef)),
|
|
151
|
+
widthRef: globalWidthRef,
|
|
152
|
+
screenEnum: ScreenEnum,
|
|
153
|
+
realWidthRef: globalRealWidthRef
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function createBreakpointListen(fn) {
|
|
157
|
+
const screenRef = (0, import_vue3.ref)("XL" /* XL */);
|
|
158
|
+
const realWidthRef = (0, import_vue3.ref)(window.innerWidth);
|
|
159
|
+
function getWindowWidth() {
|
|
160
|
+
const width = document.body.clientWidth;
|
|
161
|
+
const xs = screenMap.get("XS" /* XS */);
|
|
162
|
+
const sm = screenMap.get("SM" /* SM */);
|
|
163
|
+
const md = screenMap.get("MD" /* MD */);
|
|
164
|
+
const lg = screenMap.get("LG" /* LG */);
|
|
165
|
+
const xl = screenMap.get("XL" /* XL */);
|
|
166
|
+
if (width < xs) {
|
|
167
|
+
screenRef.value = "XS" /* XS */;
|
|
168
|
+
} else if (width < sm) {
|
|
169
|
+
screenRef.value = "SM" /* SM */;
|
|
170
|
+
} else if (width < md) {
|
|
171
|
+
screenRef.value = "MD" /* MD */;
|
|
172
|
+
} else if (width < lg) {
|
|
173
|
+
screenRef.value = "LG" /* LG */;
|
|
174
|
+
} else if (width < xl) {
|
|
175
|
+
screenRef.value = "XL" /* XL */;
|
|
176
|
+
} else {
|
|
177
|
+
screenRef.value = "XXL" /* XXL */;
|
|
178
|
+
}
|
|
179
|
+
realWidthRef.value = width;
|
|
180
|
+
}
|
|
181
|
+
useEventListener({
|
|
182
|
+
el: window,
|
|
183
|
+
name: "resize",
|
|
184
|
+
listener: () => {
|
|
185
|
+
getWindowWidth();
|
|
186
|
+
resizeFn();
|
|
187
|
+
}
|
|
188
|
+
// Wait: 100,
|
|
189
|
+
});
|
|
190
|
+
getWindowWidth();
|
|
191
|
+
globalScreenRef = (0, import_vue3.computed)(() => (0, import_vue3.unref)(screenRef));
|
|
192
|
+
globalWidthRef = (0, import_vue3.computed)(() => screenMap.get((0, import_vue3.unref)(screenRef)));
|
|
193
|
+
globalRealWidthRef = (0, import_vue3.computed)(() => (0, import_vue3.unref)(realWidthRef));
|
|
194
|
+
function resizeFn() {
|
|
195
|
+
fn == null ? void 0 : fn({
|
|
196
|
+
screen: globalScreenRef,
|
|
197
|
+
width: globalWidthRef,
|
|
198
|
+
realWidth: globalRealWidthRef,
|
|
199
|
+
screenEnum: ScreenEnum,
|
|
200
|
+
screenMap,
|
|
201
|
+
sizeEnum: SizeEnum
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
resizeFn();
|
|
205
|
+
return {
|
|
206
|
+
screenRef: globalScreenRef,
|
|
207
|
+
screenEnum: ScreenEnum,
|
|
208
|
+
widthRef: globalWidthRef,
|
|
209
|
+
realWidthRef: globalRealWidthRef
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// src/use-browser-location.ts
|
|
214
|
+
var import_vue4 = require("vue");
|
|
215
|
+
var isBrowser = typeof document !== "undefined" && typeof window !== "undefined";
|
|
216
|
+
function useBrowserLocation(customWindow = isBrowser ? window : null) {
|
|
217
|
+
const getWindowLocation = () => {
|
|
218
|
+
const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (customWindow == null ? void 0 : customWindow.location) || {};
|
|
219
|
+
return {
|
|
220
|
+
hash,
|
|
221
|
+
host,
|
|
222
|
+
hostname,
|
|
223
|
+
href,
|
|
224
|
+
origin,
|
|
225
|
+
pathname,
|
|
226
|
+
port,
|
|
227
|
+
protocol,
|
|
228
|
+
search
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
const locationState = (0, import_vue4.ref)(getWindowLocation());
|
|
232
|
+
const updateLocation = () => {
|
|
233
|
+
locationState.value = getWindowLocation();
|
|
234
|
+
};
|
|
235
|
+
(0, import_vue4.onMounted)(() => {
|
|
236
|
+
if (customWindow) {
|
|
237
|
+
customWindow.addEventListener("popstate", updateLocation);
|
|
238
|
+
customWindow.addEventListener("hashchange", updateLocation);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
(0, import_vue4.onUnmounted)(() => {
|
|
242
|
+
if (customWindow) {
|
|
243
|
+
customWindow.removeEventListener("popstate", updateLocation);
|
|
244
|
+
customWindow.removeEventListener("hashchange", updateLocation);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
return locationState;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// src/use-collection.ts
|
|
251
|
+
var import_vue5 = require("vue");
|
|
252
|
+
function useInjectionInstanceCollection(injectionName, collectionKey, registerKeyRef) {
|
|
253
|
+
var _a;
|
|
254
|
+
const injection = (0, import_vue5.inject)(injectionName, null);
|
|
255
|
+
if (injection === null) return;
|
|
256
|
+
const vm = (_a = (0, import_vue5.getCurrentInstance)()) == null ? void 0 : _a.proxy;
|
|
257
|
+
(0, import_vue5.watch)(registerKeyRef, registerInstance);
|
|
258
|
+
registerInstance(registerKeyRef.value);
|
|
259
|
+
(0, import_vue5.onBeforeUnmount)(() => {
|
|
260
|
+
registerInstance(void 0, registerKeyRef.value);
|
|
261
|
+
});
|
|
262
|
+
function registerInstance(key, oldKey) {
|
|
263
|
+
if (!injection) return;
|
|
264
|
+
const collection = injection[collectionKey];
|
|
265
|
+
if (oldKey !== void 0) removeInstance(collection, oldKey);
|
|
266
|
+
if (key !== void 0) addInstance(collection, key);
|
|
267
|
+
}
|
|
268
|
+
function removeInstance(collection, key) {
|
|
269
|
+
if (!collection[key]) collection[key] = [];
|
|
270
|
+
collection[key].splice(
|
|
271
|
+
collection[key].findIndex((instance) => instance === vm),
|
|
272
|
+
1
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
function addInstance(collection, key) {
|
|
276
|
+
if (!collection[key]) collection[key] = [];
|
|
277
|
+
if (!~collection[key].findIndex((instance) => instance === vm)) {
|
|
278
|
+
collection[key].push(vm);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
function useInjectionCollection(injectionName, collectionKey, valueRef) {
|
|
283
|
+
const injection = (0, import_vue5.inject)(injectionName, null);
|
|
284
|
+
if (injection === null) return;
|
|
285
|
+
if (!(collectionKey in injection)) {
|
|
286
|
+
injection[collectionKey] = [];
|
|
287
|
+
}
|
|
288
|
+
injection[collectionKey].push(valueRef.value);
|
|
289
|
+
(0, import_vue5.watch)(valueRef, (value, prevValue) => {
|
|
290
|
+
const collectionArray = injection[collectionKey];
|
|
291
|
+
const index = collectionArray.findIndex((collectionValue) => collectionValue === prevValue);
|
|
292
|
+
if (~index) collectionArray.splice(index, 1);
|
|
293
|
+
collectionArray.push(value);
|
|
294
|
+
});
|
|
295
|
+
(0, import_vue5.onBeforeUnmount)(() => {
|
|
296
|
+
const collectionArray = injection[collectionKey];
|
|
297
|
+
const index = collectionArray.findIndex((collectionValue) => collectionValue === valueRef.value);
|
|
298
|
+
if (~index) collectionArray.splice(index, 1);
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
function useInjectionElementCollection(injectionName, collectionKey, getElement) {
|
|
302
|
+
const injection = (0, import_vue5.inject)(injectionName, null);
|
|
303
|
+
if (injection === null) return;
|
|
304
|
+
if (!(collectionKey in injection)) {
|
|
305
|
+
injection[collectionKey] = [];
|
|
306
|
+
}
|
|
307
|
+
(0, import_vue5.onMounted)(() => {
|
|
308
|
+
const el = getElement();
|
|
309
|
+
if (!el) return;
|
|
310
|
+
injection[collectionKey].push(el);
|
|
311
|
+
});
|
|
312
|
+
(0, import_vue5.onBeforeUnmount)(() => {
|
|
313
|
+
const collectionArray = injection[collectionKey];
|
|
314
|
+
const element = getElement();
|
|
315
|
+
const index = collectionArray.findIndex((collectionElement) => collectionElement === element);
|
|
316
|
+
if (~index) collectionArray.splice(index, 1);
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// src/use-context.ts
|
|
321
|
+
var import_vue6 = require("vue");
|
|
322
|
+
function useContext(contextName, fn) {
|
|
323
|
+
const { useProvide, useInject: useStore } = createContext(contextName);
|
|
324
|
+
function setupStore(...args) {
|
|
325
|
+
const context = fn(...args);
|
|
326
|
+
return useProvide(context);
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
/** Setup store in the parent component */
|
|
330
|
+
setupStore,
|
|
331
|
+
/** Use store in the child component */
|
|
332
|
+
useStore
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function createContext(contextName) {
|
|
336
|
+
const injectKey = Symbol(contextName);
|
|
337
|
+
function useProvide(context) {
|
|
338
|
+
(0, import_vue6.provide)(injectKey, context);
|
|
339
|
+
return context;
|
|
340
|
+
}
|
|
341
|
+
function useInject() {
|
|
342
|
+
return (0, import_vue6.inject)(injectKey);
|
|
343
|
+
}
|
|
344
|
+
return {
|
|
345
|
+
useProvide,
|
|
346
|
+
useInject
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// src/use-count-down.ts
|
|
351
|
+
var import_vue7 = require("vue");
|
|
352
|
+
var import_core2 = require("@vueuse/core");
|
|
353
|
+
function useCountDown(seconds) {
|
|
354
|
+
const FPS_PER_SECOND = 60;
|
|
355
|
+
const fps = (0, import_vue7.ref)(0);
|
|
356
|
+
const count = (0, import_vue7.computed)(() => Math.ceil(fps.value / FPS_PER_SECOND));
|
|
357
|
+
const isCounting = (0, import_vue7.computed)(() => fps.value > 0);
|
|
358
|
+
const { pause, resume } = (0, import_core2.useRafFn)(
|
|
359
|
+
() => {
|
|
360
|
+
if (fps.value > 0) {
|
|
361
|
+
fps.value -= 1;
|
|
362
|
+
} else {
|
|
363
|
+
pause();
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{ immediate: false }
|
|
367
|
+
);
|
|
368
|
+
function start(updateSeconds = seconds) {
|
|
369
|
+
fps.value = FPS_PER_SECOND * updateSeconds;
|
|
370
|
+
resume();
|
|
371
|
+
}
|
|
372
|
+
function stop() {
|
|
373
|
+
fps.value = 0;
|
|
374
|
+
pause();
|
|
375
|
+
}
|
|
376
|
+
(0, import_vue7.onScopeDispose)(() => {
|
|
377
|
+
pause();
|
|
378
|
+
});
|
|
379
|
+
return {
|
|
380
|
+
count,
|
|
381
|
+
isCounting,
|
|
382
|
+
start,
|
|
383
|
+
stop
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
// src/use-deferred-true.ts
|
|
388
|
+
var import_vue8 = require("vue");
|
|
389
|
+
function useDeferredTrue(valueRef, delay, shouldDelayRef) {
|
|
390
|
+
if (!delay) return valueRef;
|
|
391
|
+
const delayedRef = (0, import_vue8.ref)(valueRef.value);
|
|
392
|
+
let timerId = null;
|
|
393
|
+
(0, import_vue8.watch)(valueRef, (value) => {
|
|
394
|
+
if (timerId !== null) window.clearTimeout(timerId);
|
|
395
|
+
if (value === true) {
|
|
396
|
+
if (shouldDelayRef && !shouldDelayRef.value) {
|
|
397
|
+
delayedRef.value = true;
|
|
398
|
+
} else {
|
|
399
|
+
timerId = window.setTimeout(() => {
|
|
400
|
+
delayedRef.value = true;
|
|
401
|
+
}, delay);
|
|
402
|
+
}
|
|
403
|
+
} else {
|
|
404
|
+
delayedRef.value = false;
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
return delayedRef;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// src/use-is-composing.ts
|
|
411
|
+
var import_vue9 = require("vue");
|
|
412
|
+
var isComposingRef = (0, import_vue9.ref)(false);
|
|
413
|
+
function compositionStartHandler() {
|
|
414
|
+
isComposingRef.value = true;
|
|
415
|
+
}
|
|
416
|
+
function compositionEndHandler() {
|
|
417
|
+
isComposingRef.value = false;
|
|
418
|
+
}
|
|
419
|
+
var mountedCount = 0;
|
|
420
|
+
function useIsComposing() {
|
|
421
|
+
if (document && window) {
|
|
422
|
+
(0, import_vue9.onBeforeMount)(() => {
|
|
423
|
+
if (!mountedCount) {
|
|
424
|
+
window.addEventListener("compositionstart", compositionStartHandler);
|
|
425
|
+
window.addEventListener("compositionend", compositionEndHandler);
|
|
426
|
+
}
|
|
427
|
+
mountedCount++;
|
|
428
|
+
});
|
|
429
|
+
(0, import_vue9.onBeforeUnmount)(() => {
|
|
430
|
+
if (mountedCount <= 1) {
|
|
431
|
+
window.removeEventListener("compositionstart", compositionStartHandler);
|
|
432
|
+
window.removeEventListener("compositionend", compositionEndHandler);
|
|
433
|
+
mountedCount = 0;
|
|
434
|
+
} else {
|
|
435
|
+
mountedCount--;
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
return isComposingRef;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// src/use-layout-style.ts
|
|
443
|
+
var import_vue10 = require("vue");
|
|
444
|
+
var import_core3 = require("@vueuse/core");
|
|
445
|
+
var import_utils = require("@maxax/utils");
|
|
446
|
+
|
|
447
|
+
// src/const/index.ts
|
|
448
|
+
var CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT = "--max-content-height";
|
|
449
|
+
var CSS_VARIABLE_LAYOUT_CONTENT_WIDTH = "--max-content-width";
|
|
450
|
+
var CSS_VARIABLE_LAYOUT_HEADER_HEIGHT = "--max-header-height";
|
|
451
|
+
var CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT = "--max-footer-height";
|
|
452
|
+
|
|
453
|
+
// src/use-layout-style.ts
|
|
454
|
+
function useLayoutContentStyle(diffHeight = 0) {
|
|
455
|
+
let resizeObserver = null;
|
|
456
|
+
const contentElement = (0, import_vue10.ref)(null);
|
|
457
|
+
const visibleDomRect = (0, import_vue10.ref)(null);
|
|
458
|
+
const contentHeight = (0, import_core3.useCssVar)(CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT);
|
|
459
|
+
const contentWidth = (0, import_core3.useCssVar)(CSS_VARIABLE_LAYOUT_CONTENT_WIDTH);
|
|
460
|
+
const overlayStyle = (0, import_vue10.computed)(() => {
|
|
461
|
+
var _a;
|
|
462
|
+
const { height, left, top, width } = (_a = visibleDomRect.value) != null ? _a : {};
|
|
463
|
+
return {
|
|
464
|
+
height: `${height}px`,
|
|
465
|
+
left: `${left}px`,
|
|
466
|
+
position: "fixed",
|
|
467
|
+
top: `${top}px`,
|
|
468
|
+
width: `${width}px`,
|
|
469
|
+
zIndex: 150
|
|
470
|
+
};
|
|
471
|
+
});
|
|
472
|
+
const debouncedCalcHeight = (0, import_core3.useDebounceFn)((_entries) => {
|
|
473
|
+
visibleDomRect.value = (0, import_utils.getElementVisibleRect)(contentElement.value);
|
|
474
|
+
contentHeight.value = `${visibleDomRect.value.height - diffHeight}px`;
|
|
475
|
+
contentWidth.value = `${visibleDomRect.value.width}px`;
|
|
476
|
+
}, 16);
|
|
477
|
+
(0, import_vue10.onMounted)(() => {
|
|
478
|
+
if (contentElement.value && !resizeObserver) {
|
|
479
|
+
resizeObserver = new ResizeObserver(debouncedCalcHeight);
|
|
480
|
+
resizeObserver.observe(contentElement.value);
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
(0, import_vue10.onUnmounted)(() => {
|
|
484
|
+
resizeObserver == null ? void 0 : resizeObserver.disconnect();
|
|
485
|
+
resizeObserver = null;
|
|
486
|
+
});
|
|
487
|
+
return { contentElement, overlayStyle, visibleDomRect };
|
|
488
|
+
}
|
|
489
|
+
function useLayoutHeaderStyle() {
|
|
490
|
+
const headerHeight = (0, import_core3.useCssVar)(CSS_VARIABLE_LAYOUT_HEADER_HEIGHT);
|
|
491
|
+
return {
|
|
492
|
+
getLayoutHeaderHeight: () => {
|
|
493
|
+
return Number.parseInt(`${headerHeight.value}`, 10);
|
|
494
|
+
},
|
|
495
|
+
setLayoutHeaderHeight: (height) => {
|
|
496
|
+
headerHeight.value = `${height}px`;
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
function useLayoutFooterStyle() {
|
|
501
|
+
const footerHeight = (0, import_core3.useCssVar)(CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT);
|
|
502
|
+
return {
|
|
503
|
+
getLayoutFooterHeight: () => {
|
|
504
|
+
return Number.parseInt(`${footerHeight.value}`, 10);
|
|
505
|
+
},
|
|
506
|
+
setLayoutFooterHeight: (height) => {
|
|
507
|
+
footerHeight.value = `${height}px`;
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
// src/use-loading.ts
|
|
513
|
+
function useLoading(initValue = false) {
|
|
514
|
+
const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue);
|
|
515
|
+
return {
|
|
516
|
+
loading,
|
|
517
|
+
startLoading,
|
|
518
|
+
endLoading
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// src/use-local-page.ts
|
|
523
|
+
var import_vue11 = require("vue");
|
|
524
|
+
function pagination(list, pageNo, pageSize) {
|
|
525
|
+
const offset = (pageNo - 1) * Number(pageSize);
|
|
526
|
+
const ret = offset + Number(pageSize) >= list.length ? list.slice(offset, list.length) : list.slice(offset, offset + Number(pageSize));
|
|
527
|
+
return ret;
|
|
528
|
+
}
|
|
529
|
+
function useLocalPage(list, pageSize) {
|
|
530
|
+
const currentPage = (0, import_vue11.ref)(1);
|
|
531
|
+
const pageSizeRef = (0, import_vue11.ref)(pageSize);
|
|
532
|
+
const listRef = (0, import_vue11.ref)(list);
|
|
533
|
+
const getPaginationList = (0, import_vue11.computed)(() => {
|
|
534
|
+
return pagination((0, import_vue11.unref)(listRef), (0, import_vue11.unref)(currentPage), (0, import_vue11.unref)(pageSizeRef));
|
|
535
|
+
});
|
|
536
|
+
const getTotal = (0, import_vue11.computed)(() => {
|
|
537
|
+
return (0, import_vue11.unref)(listRef).length;
|
|
538
|
+
});
|
|
539
|
+
function setCurrentPage(page) {
|
|
540
|
+
currentPage.value = page;
|
|
541
|
+
}
|
|
542
|
+
function setPageSize(size) {
|
|
543
|
+
pageSizeRef.value = size;
|
|
544
|
+
}
|
|
545
|
+
function setPagination(page) {
|
|
546
|
+
setCurrentPage(page.currentPage);
|
|
547
|
+
setPageSize(page.pageSize);
|
|
548
|
+
}
|
|
549
|
+
function getPageList() {
|
|
550
|
+
return pagination((0, import_vue11.unref)(listRef), (0, import_vue11.unref)(currentPage), (0, import_vue11.unref)(pageSizeRef));
|
|
551
|
+
}
|
|
552
|
+
return { setCurrentPage, getTotal, setPageSize, getPaginationList, setPagination, getPageList };
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// src/use-lock-html-scroll.ts
|
|
556
|
+
var import_vue12 = require("vue");
|
|
557
|
+
var lockCount = 0;
|
|
558
|
+
var originalMarginRight = "";
|
|
559
|
+
var originalOverflow = "";
|
|
560
|
+
var originalOverflowX = "";
|
|
561
|
+
var originalOverflowY = "";
|
|
562
|
+
var lockHtmlScrollRightCompensationRef = (0, import_vue12.ref)("0px");
|
|
563
|
+
function useLockHtmlScroll(lockRef) {
|
|
564
|
+
if (typeof document === "undefined") return;
|
|
565
|
+
const el = document.documentElement;
|
|
566
|
+
let watchStopHandle;
|
|
567
|
+
let activated = false;
|
|
568
|
+
const unlock = () => {
|
|
569
|
+
el.style.marginRight = originalMarginRight;
|
|
570
|
+
el.style.overflow = originalOverflow;
|
|
571
|
+
el.style.overflowX = originalOverflowX;
|
|
572
|
+
el.style.overflowY = originalOverflowY;
|
|
573
|
+
lockHtmlScrollRightCompensationRef.value = "0px";
|
|
574
|
+
};
|
|
575
|
+
(0, import_vue12.onMounted)(() => {
|
|
576
|
+
watchStopHandle = (0, import_vue12.watch)(
|
|
577
|
+
lockRef,
|
|
578
|
+
(value) => {
|
|
579
|
+
if (value) {
|
|
580
|
+
if (!lockCount) {
|
|
581
|
+
const scrollbarWidth = window.innerWidth - el.offsetWidth;
|
|
582
|
+
if (scrollbarWidth > 0) {
|
|
583
|
+
originalMarginRight = el.style.marginRight;
|
|
584
|
+
el.style.marginRight = `${scrollbarWidth}px`;
|
|
585
|
+
lockHtmlScrollRightCompensationRef.value = `${scrollbarWidth}px`;
|
|
586
|
+
}
|
|
587
|
+
originalOverflow = el.style.overflow;
|
|
588
|
+
originalOverflowX = el.style.overflowX;
|
|
589
|
+
originalOverflowY = el.style.overflowY;
|
|
590
|
+
el.style.overflow = "hidden";
|
|
591
|
+
el.style.overflowX = "hidden";
|
|
592
|
+
el.style.overflowY = "hidden";
|
|
593
|
+
}
|
|
594
|
+
activated = true;
|
|
595
|
+
lockCount++;
|
|
596
|
+
} else {
|
|
597
|
+
lockCount--;
|
|
598
|
+
if (!lockCount) {
|
|
599
|
+
unlock();
|
|
600
|
+
}
|
|
601
|
+
activated = false;
|
|
602
|
+
}
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
immediate: true
|
|
606
|
+
}
|
|
607
|
+
);
|
|
608
|
+
});
|
|
609
|
+
(0, import_vue12.onBeforeUnmount)(() => {
|
|
610
|
+
watchStopHandle == null ? void 0 : watchStopHandle();
|
|
611
|
+
if (activated) {
|
|
612
|
+
lockCount--;
|
|
613
|
+
if (!lockCount) {
|
|
614
|
+
unlock();
|
|
615
|
+
}
|
|
616
|
+
activated = false;
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
// src/use-memo.ts
|
|
622
|
+
var import_vue13 = require("vue");
|
|
623
|
+
function useMemo(getterOrOptions) {
|
|
624
|
+
const computedValueRef = (0, import_vue13.computed)(getterOrOptions);
|
|
625
|
+
const valueRef = (0, import_vue13.ref)(computedValueRef.value);
|
|
626
|
+
(0, import_vue13.watch)(computedValueRef, (value) => {
|
|
627
|
+
valueRef.value = value;
|
|
628
|
+
});
|
|
629
|
+
if (typeof getterOrOptions === "function") {
|
|
630
|
+
return valueRef;
|
|
631
|
+
}
|
|
632
|
+
return {
|
|
633
|
+
__v_isRef: true,
|
|
634
|
+
get value() {
|
|
635
|
+
return valueRef.value;
|
|
636
|
+
},
|
|
637
|
+
set value(v) {
|
|
638
|
+
;
|
|
639
|
+
getterOrOptions.set(v);
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
// src/use-merged-state.ts
|
|
645
|
+
var import_vue14 = require("vue");
|
|
646
|
+
function useMergedState(controlledStateRef, uncontrolledStateRef) {
|
|
647
|
+
(0, import_vue14.watch)(controlledStateRef, (value) => {
|
|
648
|
+
if (value !== void 0) {
|
|
649
|
+
uncontrolledStateRef.value = value;
|
|
650
|
+
}
|
|
651
|
+
});
|
|
652
|
+
return (0, import_vue14.computed)(() => {
|
|
653
|
+
if (controlledStateRef.value === void 0) {
|
|
654
|
+
return uncontrolledStateRef.value;
|
|
655
|
+
}
|
|
656
|
+
return controlledStateRef.value;
|
|
657
|
+
});
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
// src/use-script.ts
|
|
661
|
+
var import_vue15 = require("vue");
|
|
662
|
+
function useScript(opts) {
|
|
663
|
+
const isLoading = (0, import_vue15.ref)(false);
|
|
664
|
+
const error = (0, import_vue15.ref)(false);
|
|
665
|
+
const success = (0, import_vue15.ref)(false);
|
|
666
|
+
let script;
|
|
667
|
+
const promise = new Promise((resolve, reject) => {
|
|
668
|
+
(0, import_vue15.onMounted)(() => {
|
|
669
|
+
script = document.createElement("script");
|
|
670
|
+
script.type = "text/javascript";
|
|
671
|
+
script.onload = () => {
|
|
672
|
+
isLoading.value = false;
|
|
673
|
+
success.value = true;
|
|
674
|
+
error.value = false;
|
|
675
|
+
resolve("");
|
|
676
|
+
};
|
|
677
|
+
script.onerror = (err) => {
|
|
678
|
+
isLoading.value = false;
|
|
679
|
+
success.value = false;
|
|
680
|
+
error.value = true;
|
|
681
|
+
reject(err);
|
|
682
|
+
};
|
|
683
|
+
script.src = opts.src;
|
|
684
|
+
document.head.appendChild(script);
|
|
685
|
+
});
|
|
686
|
+
});
|
|
687
|
+
(0, import_vue15.onUnmounted)(() => {
|
|
688
|
+
script && script.remove();
|
|
689
|
+
});
|
|
690
|
+
return {
|
|
691
|
+
isLoading,
|
|
692
|
+
error,
|
|
693
|
+
success,
|
|
694
|
+
toPromise: () => promise
|
|
695
|
+
};
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// src/use-scroll.ts
|
|
699
|
+
var import_vue16 = require("vue");
|
|
700
|
+
var import_core4 = require("@vueuse/core");
|
|
701
|
+
var import_utils2 = require("@maxax/utils");
|
|
702
|
+
function useScroll(refEl, options) {
|
|
703
|
+
const refX = (0, import_vue16.ref)(0);
|
|
704
|
+
const refY = (0, import_vue16.ref)(0);
|
|
705
|
+
let handler = () => {
|
|
706
|
+
if ((0, import_utils2.isWindow)(refEl.value)) {
|
|
707
|
+
refX.value = refEl.value.scrollX;
|
|
708
|
+
refY.value = refEl.value.scrollY;
|
|
709
|
+
} else if (refEl.value) {
|
|
710
|
+
refX.value = refEl.value.scrollLeft;
|
|
711
|
+
refY.value = refEl.value.scrollTop;
|
|
712
|
+
}
|
|
713
|
+
};
|
|
714
|
+
if ((0, import_utils2.isObject)(options)) {
|
|
715
|
+
let wait = 0;
|
|
716
|
+
if (options && options.wait && options.wait > 0) {
|
|
717
|
+
wait = options.wait;
|
|
718
|
+
Reflect.deleteProperty(options, "wait");
|
|
719
|
+
}
|
|
720
|
+
handler = (0, import_core4.useThrottleFn)(handler, wait);
|
|
721
|
+
}
|
|
722
|
+
let stopWatch;
|
|
723
|
+
(0, import_vue16.onMounted)(() => {
|
|
724
|
+
stopWatch = (0, import_vue16.watch)(
|
|
725
|
+
refEl,
|
|
726
|
+
(el, prevEl, onCleanup) => {
|
|
727
|
+
if (el) {
|
|
728
|
+
el.addEventListener("scroll", handler);
|
|
729
|
+
} else if (prevEl) {
|
|
730
|
+
prevEl.removeEventListener("scroll", handler);
|
|
731
|
+
}
|
|
732
|
+
onCleanup(() => {
|
|
733
|
+
refX.value = 0;
|
|
734
|
+
refY.value = 0;
|
|
735
|
+
el && el.removeEventListener("scroll", handler);
|
|
736
|
+
});
|
|
737
|
+
},
|
|
738
|
+
{ immediate: true }
|
|
739
|
+
);
|
|
740
|
+
});
|
|
741
|
+
(0, import_vue16.onUnmounted)(() => {
|
|
742
|
+
refEl.value && refEl.value.removeEventListener("scroll", handler);
|
|
743
|
+
});
|
|
744
|
+
function stop() {
|
|
745
|
+
stopWatch && stopWatch();
|
|
746
|
+
}
|
|
747
|
+
return { refX, refY, stop };
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
// src/use-signal.ts
|
|
751
|
+
var import_vue17 = require("vue");
|
|
752
|
+
function useSignal(initialValue, options) {
|
|
753
|
+
const { useRef } = options || {};
|
|
754
|
+
const state = useRef ? (0, import_vue17.ref)(initialValue) : (0, import_vue17.shallowRef)(initialValue);
|
|
755
|
+
return createSignal(state);
|
|
756
|
+
}
|
|
757
|
+
function useComputed(getterOrOptions, debugOptions) {
|
|
758
|
+
const isGetter = typeof getterOrOptions === "function";
|
|
759
|
+
const computedValue = (0, import_vue17.computed)(getterOrOptions, debugOptions);
|
|
760
|
+
if (isGetter) {
|
|
761
|
+
return () => computedValue.value;
|
|
762
|
+
}
|
|
763
|
+
return createSignal(computedValue);
|
|
764
|
+
}
|
|
765
|
+
function createSignal(state) {
|
|
766
|
+
const signal = () => state.value;
|
|
767
|
+
signal.set = (value) => {
|
|
768
|
+
state.value = value;
|
|
769
|
+
};
|
|
770
|
+
signal.update = (updater) => {
|
|
771
|
+
state.value = updater(state.value);
|
|
772
|
+
};
|
|
773
|
+
signal.mutate = (mutator) => {
|
|
774
|
+
mutator(state.value);
|
|
775
|
+
(0, import_vue17.triggerRef)(state);
|
|
776
|
+
};
|
|
777
|
+
signal.getRef = () => state;
|
|
778
|
+
return signal;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// src/use-svg-icon-render.ts
|
|
782
|
+
var import_vue18 = require("vue");
|
|
783
|
+
function useSvgIconRender(SvgIcon) {
|
|
784
|
+
const SvgIconVNode = (config) => {
|
|
785
|
+
const { color, fontSize, icon, localIcon } = config;
|
|
786
|
+
const style = {};
|
|
787
|
+
if (color) {
|
|
788
|
+
style.color = color;
|
|
789
|
+
}
|
|
790
|
+
if (fontSize) {
|
|
791
|
+
style.fontSize = `${fontSize}px`;
|
|
792
|
+
}
|
|
793
|
+
if (!icon && !localIcon) {
|
|
794
|
+
return void 0;
|
|
795
|
+
}
|
|
796
|
+
return () => (0, import_vue18.h)(SvgIcon, { icon, localIcon, style });
|
|
797
|
+
};
|
|
798
|
+
return {
|
|
799
|
+
SvgIconVNode
|
|
800
|
+
};
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
// src/use-table.ts
|
|
804
|
+
var import_vue19 = require("vue");
|
|
805
|
+
var import_utils3 = require("@maxax/utils");
|
|
806
|
+
function useHookTable(config) {
|
|
807
|
+
const { loading, startLoading, endLoading } = useLoading();
|
|
808
|
+
const { bool: empty, setBool: setEmpty } = useBoolean();
|
|
809
|
+
const { apiFn, apiParams, transformer, immediate = true, getColumnChecks, getColumns } = config;
|
|
810
|
+
const searchParams = (0, import_vue19.reactive)((0, import_utils3.jsonClone)({ ...apiParams }));
|
|
811
|
+
const allColumns = (0, import_vue19.ref)(config.columns());
|
|
812
|
+
const data = (0, import_vue19.ref)([]);
|
|
813
|
+
const columnChecks = (0, import_vue19.ref)(getColumnChecks(config.columns()));
|
|
814
|
+
const columns = (0, import_vue19.computed)(() => getColumns(allColumns.value, columnChecks.value));
|
|
815
|
+
function reloadColumns() {
|
|
816
|
+
allColumns.value = config.columns();
|
|
817
|
+
const checkMap = new Map(columnChecks.value.map((col) => [col.key, col.checked]));
|
|
818
|
+
const defaultChecks = getColumnChecks(allColumns.value);
|
|
819
|
+
columnChecks.value = defaultChecks.map((col) => {
|
|
820
|
+
var _a;
|
|
821
|
+
return {
|
|
822
|
+
...col,
|
|
823
|
+
checked: (_a = checkMap.get(col.key)) != null ? _a : col.checked
|
|
824
|
+
};
|
|
825
|
+
});
|
|
826
|
+
}
|
|
827
|
+
async function getData() {
|
|
828
|
+
var _a;
|
|
829
|
+
startLoading();
|
|
830
|
+
const formattedParams = formatSearchParams(searchParams);
|
|
831
|
+
const response = await apiFn(formattedParams);
|
|
832
|
+
const transformed = transformer(response);
|
|
833
|
+
data.value = transformed.data;
|
|
834
|
+
setEmpty(transformed.data.length === 0);
|
|
835
|
+
await ((_a = config.onFetched) == null ? void 0 : _a.call(config, transformed));
|
|
836
|
+
endLoading();
|
|
837
|
+
}
|
|
838
|
+
function formatSearchParams(params) {
|
|
839
|
+
const formattedParams = {};
|
|
840
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
841
|
+
if (value !== null && value !== void 0) {
|
|
842
|
+
formattedParams[key] = value;
|
|
843
|
+
}
|
|
844
|
+
});
|
|
845
|
+
return formattedParams;
|
|
846
|
+
}
|
|
847
|
+
function updateSearchParams(params) {
|
|
848
|
+
Object.assign(searchParams, params);
|
|
849
|
+
}
|
|
850
|
+
function resetSearchParams() {
|
|
851
|
+
Object.assign(searchParams, (0, import_utils3.jsonClone)(apiParams));
|
|
852
|
+
}
|
|
853
|
+
if (immediate) {
|
|
854
|
+
getData();
|
|
855
|
+
}
|
|
856
|
+
return {
|
|
857
|
+
loading,
|
|
858
|
+
empty,
|
|
859
|
+
data,
|
|
860
|
+
columns,
|
|
861
|
+
columnChecks,
|
|
862
|
+
reloadColumns,
|
|
863
|
+
getData,
|
|
864
|
+
searchParams,
|
|
865
|
+
updateSearchParams,
|
|
866
|
+
resetSearchParams
|
|
867
|
+
};
|
|
868
|
+
}
|
|
869
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
870
|
+
0 && (module.exports = {
|
|
871
|
+
createBreakpointListen,
|
|
872
|
+
lockHtmlScrollRightCompensationRef,
|
|
873
|
+
useBoolean,
|
|
874
|
+
useBreakpoint,
|
|
875
|
+
useBrowserLocation,
|
|
876
|
+
useComputed,
|
|
877
|
+
useContext,
|
|
878
|
+
useCountDown,
|
|
879
|
+
useDeferredTrue,
|
|
880
|
+
useEventListener,
|
|
881
|
+
useHookTable,
|
|
882
|
+
useInjectionCollection,
|
|
883
|
+
useInjectionElementCollection,
|
|
884
|
+
useInjectionInstanceCollection,
|
|
885
|
+
useIsComposing,
|
|
886
|
+
useLayoutContentStyle,
|
|
887
|
+
useLayoutFooterStyle,
|
|
888
|
+
useLayoutHeaderStyle,
|
|
889
|
+
useLoading,
|
|
890
|
+
useLocalPage,
|
|
891
|
+
useLockHtmlScroll,
|
|
892
|
+
useMemo,
|
|
893
|
+
useMergedState,
|
|
894
|
+
useScript,
|
|
895
|
+
useScroll,
|
|
896
|
+
useSignal,
|
|
897
|
+
useSvgIconRender
|
|
898
|
+
});
|
|
899
|
+
//# sourceMappingURL=index.cjs.map
|