@astrolimit/vue3-web-hooks 25.11.1 → 25.12.14

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.d.ts CHANGED
@@ -33,7 +33,7 @@ declare const useDivSize: (target?: Ref<HTMLDivElement | undefined> | HTMLDivEle
33
33
  * @returns
34
34
  */
35
35
  declare const useDrawerWidth: (percentage?: number, minWidth?: number) => {
36
- drawerWidth: vue0.ComputedRef<number | undefined>;
36
+ drawerWidth: vue0.ComputedRef<number>;
37
37
  };
38
38
  //#endregion
39
39
  //#region src/hooks/useMitt.d.ts
@@ -41,8 +41,8 @@ type AnyRecord$1 = Record<string, any>;
41
41
  type R<T extends AnyRecord$1> = ReturnType<typeof mitt<T>> & {
42
42
  stop(key: keyof T): void;
43
43
  pause(key: keyof T): void;
44
- subscribe<P$1 extends keyof T>(key: P$1, cb: (data: T[P$1]) => void): void;
45
- once<P$1 extends keyof T>(key: P$1, cb: (data: T[P$1]) => void): void;
44
+ subscribe<P extends keyof T>(key: P, cb: (data: T[P]) => void): void;
45
+ once<P extends keyof T>(key: P, cb: (data: T[P]) => void): void;
46
46
  };
47
47
  /**
48
48
  * 在父祖组件中使用
@@ -78,6 +78,23 @@ declare const useNow: (immediate?: boolean) => {
78
78
  meridiem: vue0.Ref<string, string>;
79
79
  };
80
80
  //#endregion
81
+ //#region src/hooks/usePageSize.d.ts
82
+ /**
83
+ * @example
84
+ * const pagita = usePageSize()
85
+ * @returns
86
+ */
87
+ declare const usePageSize: () => {
88
+ total: vue0.WritableComputedRef<number, number>;
89
+ page: vue0.WritableComputedRef<number, number>;
90
+ pageNo: vue0.WritableComputedRef<number, number>;
91
+ limit: vue0.WritableComputedRef<number, number>;
92
+ pageSize: vue0.WritableComputedRef<number, number>;
93
+ pending: vue0.WritableComputedRef<boolean, boolean>;
94
+ loading: vue0.WritableComputedRef<boolean, boolean>;
95
+ resetPageAndFetch(fn: () => Promise<void>): Promise<void>;
96
+ };
97
+ //#endregion
81
98
  //#region src/hooks/useStyleSheetLink.d.ts
82
99
  /**
83
100
  * 基于vue3组合式api的样式注入(动态创建link标签)
@@ -187,4 +204,4 @@ type ExtractComponentProps<C> = C extends (new (...args: any[]) => {
187
204
  */
188
205
  type IVueProps<T> = Partial<ExtractComponentProps<T>>;
189
206
  //#endregion
190
- export { type ExtractFirstParam, type IVueComponent, type IVueProps, useDivSize, useDrawerWidth, useInjectMitt, useNetwork, useNewMitt, useNow, useSortable, useStyleSheetLink, useViewRefresh, useVueInterval, useWatermark };
207
+ export { type ExtractFirstParam, type IVueComponent, type IVueProps, useDivSize, useDrawerWidth, useInjectMitt, useNetwork, useNewMitt, useNow, usePageSize, useSortable, useStyleSheetLink, useViewRefresh, useVueInterval, useWatermark };
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import _, { cloneDeep } from "lodash";
2
2
  import { computed, createElementVNode, defineComponent, inject, isRef, nextTick, onBeforeUnmount, onMounted, onUnmounted, provide, reactive, ref, toRefs, unref, watch } from "vue";
3
3
  import { tryOnMounted, tryOnUnmounted, useDebounceFn, useWindowSize } from "@vueuse/core";
4
4
  import mitt from "mitt";
5
- import { get, isInteger, isNil } from "lodash-es";
5
+ import { get, isInteger, isNil, toSafeInteger } from "lodash-es";
6
6
  import dayjs from "dayjs";
7
7
  import Sortable from "sortablejs";
8
8
 
@@ -227,6 +227,69 @@ const useNow = (immediate = true) => {
227
227
  };
228
228
  };
229
229
 
230
+ //#endregion
231
+ //#region src/hooks/usePageSize.ts
232
+ /**
233
+ * @example
234
+ * const pagita = usePageSize()
235
+ * @returns
236
+ */
237
+ const usePageSize = () => {
238
+ const _data = reactive({
239
+ pending: false,
240
+ total: 0,
241
+ page: 1,
242
+ limit: 10
243
+ });
244
+ const total = computed({
245
+ get() {
246
+ return _data.total;
247
+ },
248
+ set(val) {
249
+ _data.total = toSafeInteger(val);
250
+ }
251
+ });
252
+ const page = computed({
253
+ get() {
254
+ return _data.page;
255
+ },
256
+ set(val) {
257
+ _data.page = toSafeInteger(val);
258
+ }
259
+ });
260
+ const limit = computed({
261
+ get() {
262
+ return _data.limit;
263
+ },
264
+ set(val) {
265
+ _data.limit = toSafeInteger(val);
266
+ }
267
+ });
268
+ const pending = computed({
269
+ get() {
270
+ return _data.pending;
271
+ },
272
+ set(val) {
273
+ _data.pending = val ? true : false;
274
+ }
275
+ });
276
+ return {
277
+ total,
278
+ page,
279
+ pageNo: page,
280
+ limit,
281
+ pageSize: limit,
282
+ pending,
283
+ loading: pending,
284
+ async resetPageAndFetch(fn) {
285
+ _data.pending = true;
286
+ _data.page = 1;
287
+ await fn();
288
+ _data.pending = false;
289
+ }
290
+ };
291
+ };
292
+
230
293
  //#endregion
231
294
  //#region src/hooks/useStyleSheetLink.ts
232
295
  /**
@@ -468,4 +531,4 @@ function useWatermark(opts) {
468
531
  }
469
532
 
470
533
  //#endregion
471
- export { useDivSize, useDrawerWidth, useInjectMitt, useNetwork, useNewMitt, useNow, useSortable, useStyleSheetLink, useViewRefresh, useVueInterval, useWatermark };
534
+ export { useDivSize, useDrawerWidth, useInjectMitt, useNetwork, useNewMitt, useNow, usePageSize, useSortable, useStyleSheetLink, useViewRefresh, useVueInterval, useWatermark };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrolimit/vue3-web-hooks",
3
- "version": "25.11.001",
3
+ "version": "25.12.014",
4
4
  "description": "A starter for creating a Vue component library.",
5
5
  "type": "module",
6
6
  "license": "SFR",