@pawover/kit 0.0.0-beta.32 → 0.0.0-beta.40
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/{enums-XkYDzrre.js → enums-BL6w5-mS.js} +50 -2
- package/dist/enums-BL6w5-mS.js.map +1 -0
- package/dist/enums.d.ts +2 -2
- package/dist/enums.js +2 -2
- package/dist/hooks-alova.d.ts +4 -4
- package/dist/hooks-react.d.ts +32 -30
- package/dist/hooks-react.d.ts.map +1 -1
- package/dist/hooks-react.js +53 -57
- package/dist/hooks-react.js.map +1 -1
- package/dist/{index-CCujFuKP.d.ts → index-Bn_PNnsM.d.ts} +52 -2
- package/dist/index-Bn_PNnsM.d.ts.map +1 -0
- package/dist/{index-BPEx210u.d.ts → index-DBPmnr4a.d.ts} +2 -2
- package/dist/index-DBPmnr4a.d.ts.map +1 -0
- package/dist/index.d.ts +1473 -1597
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/patches-fetchEventSource.d.ts +1 -1
- package/dist/patches-fetchEventSource.js +1 -1
- package/dist/{utils-RGh-N7TJ.js → utils-DbMbll5L.js} +193 -226
- package/dist/utils-DbMbll5L.js.map +1 -0
- package/dist/value-of-DUmTbnuw.d.ts +26 -0
- package/dist/value-of-DUmTbnuw.d.ts.map +1 -0
- package/metadata.json +13 -6
- package/package.json +13 -10
- package/dist/enums-XkYDzrre.js.map +0 -1
- package/dist/index-BPEx210u.d.ts.map +0 -1
- package/dist/index-CCujFuKP.d.ts.map +0 -1
- package/dist/utils-RGh-N7TJ.js.map +0 -1
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
//#region src/enums/date.ts
|
|
2
|
+
const DATE_FORMAT = {
|
|
3
|
+
ISO_DATE: "yyyy-MM-dd",
|
|
4
|
+
ISO_TIME: "HH:mm:ss",
|
|
5
|
+
ISO_DATE_TIME: "yyyy-MM-dd HH:mm:ss",
|
|
6
|
+
ISO_DATE_TIME_MS: "yyyy-MM-dd HH:mm:ss.SSS",
|
|
7
|
+
ISO_DATETIME_TZ: "yyyy-MM-dd'T'HH:mm:ssXXX",
|
|
8
|
+
ISO_DATETIME_TZ_MS: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
|
|
9
|
+
US_DATE: "MM/dd/yyyy",
|
|
10
|
+
US_DATE_TIME: "MM/dd/yyyy HH:mm:ss",
|
|
11
|
+
US_DATE_SHORT_YEAR: "MM/dd/yy",
|
|
12
|
+
EU_DATE: "dd/MM/yyyy",
|
|
13
|
+
EU_DATE_TIME: "dd/MM/yyyy HH:mm:ss",
|
|
14
|
+
CN_DATE: "yyyy年MM月dd日",
|
|
15
|
+
CN_DATE_TIME: "yyyy年MM月dd日 HH时mm分ss秒",
|
|
16
|
+
CN_DATE_WEEKDAY: "yyyy年MM月dd日 EEE",
|
|
17
|
+
CN_WEEKDAY_FULL: "EEEE",
|
|
18
|
+
SHORT_DATE: "yy-MM-dd",
|
|
19
|
+
SHORT_DATE_SLASH: "yy/MM/dd",
|
|
20
|
+
MONTH_DAY: "MM-dd",
|
|
21
|
+
MONTH_DAY_CN: "MM月dd日",
|
|
22
|
+
DATE_WITH_WEEKDAY_SHORT: "yyyy-MM-dd (EEE)",
|
|
23
|
+
DATE_WITH_WEEKDAY_FULL: "yyyy-MM-dd (EEEE)",
|
|
24
|
+
TIME_24: "HH:mm:ss",
|
|
25
|
+
TIME_24_NO_SEC: "HH:mm",
|
|
26
|
+
TIME_12: "hh:mm:ss a",
|
|
27
|
+
TIME_12_NO_SEC: "hh:mm a",
|
|
28
|
+
TIMESTAMP: "yyyyMMddHHmmss",
|
|
29
|
+
TIMESTAMP_MS: "yyyyMMddHHmmssSSS",
|
|
30
|
+
RFC2822: "EEE, dd MMM yyyy HH:mm:ss xxx",
|
|
31
|
+
READABLE_DATE: "MMM dd, yyyy",
|
|
32
|
+
READABLE_DATE_TIME: "MMM dd, yyyy HH:mm",
|
|
33
|
+
COMPACT_DATETIME: "yyyyMMdd_HHmmss"
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
1
37
|
//#region src/enums/grid.ts
|
|
2
38
|
/** 屏幕响应断点 token 配置 */
|
|
3
39
|
const BREAK_POINT_TOKEN_ENUM = {
|
|
@@ -96,5 +132,17 @@ const MIME = {
|
|
|
96
132
|
};
|
|
97
133
|
|
|
98
134
|
//#endregion
|
|
99
|
-
|
|
100
|
-
|
|
135
|
+
//#region src/enums/theme.ts
|
|
136
|
+
const THEME_ENUM = {
|
|
137
|
+
LIGHT: "light",
|
|
138
|
+
DARK: "dark"
|
|
139
|
+
};
|
|
140
|
+
const THEME_MODE_ENUM = {
|
|
141
|
+
LIGHT: "light",
|
|
142
|
+
DARK: "dark",
|
|
143
|
+
SYSTEM: "system"
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
//#endregion
|
|
147
|
+
export { DATE_FORMAT as a, BREAK_POINT_TOKEN_ENUM as i, THEME_MODE_ENUM as n, MIME as r, THEME_ENUM as t };
|
|
148
|
+
//# sourceMappingURL=enums-BL6w5-mS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums-BL6w5-mS.js","names":[],"sources":["../src/enums/date.ts","../src/enums/grid.ts","../src/enums/mime.ts","../src/enums/theme.ts"],"sourcesContent":["export const DATE_FORMAT = {\n // ISO 8601\n ISO_DATE: \"yyyy-MM-dd\",\n ISO_TIME: \"HH:mm:ss\",\n ISO_DATE_TIME: \"yyyy-MM-dd HH:mm:ss\",\n ISO_DATE_TIME_MS: \"yyyy-MM-dd HH:mm:ss.SSS\",\n ISO_DATETIME_TZ: \"yyyy-MM-dd'T'HH:mm:ssXXX\",\n ISO_DATETIME_TZ_MS: \"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\",\n\n // US\n US_DATE: \"MM/dd/yyyy\",\n US_DATE_TIME: \"MM/dd/yyyy HH:mm:ss\",\n US_DATE_SHORT_YEAR: \"MM/dd/yy\",\n\n // EU\n EU_DATE: \"dd/MM/yyyy\",\n EU_DATE_TIME: \"dd/MM/yyyy HH:mm:ss\",\n\n // CN\n CN_DATE: \"yyyy年MM月dd日\",\n CN_DATE_TIME: \"yyyy年MM月dd日 HH时mm分ss秒\",\n CN_DATE_WEEKDAY: \"yyyy年MM月dd日 EEE\",\n CN_WEEKDAY_FULL: \"EEEE\",\n\n // 简洁\n SHORT_DATE: \"yy-MM-dd\",\n SHORT_DATE_SLASH: \"yy/MM/dd\",\n MONTH_DAY: \"MM-dd\",\n MONTH_DAY_CN: \"MM月dd日\",\n\n // 带星期\n DATE_WITH_WEEKDAY_SHORT: \"yyyy-MM-dd (EEE)\",\n DATE_WITH_WEEKDAY_FULL: \"yyyy-MM-dd (EEEE)\",\n\n // 时间\n TIME_24: \"HH:mm:ss\",\n TIME_24_NO_SEC: \"HH:mm\",\n TIME_12: \"hh:mm:ss a\",\n TIME_12_NO_SEC: \"hh:mm a\",\n\n // 时间戳\n TIMESTAMP: \"yyyyMMddHHmmss\",\n TIMESTAMP_MS: \"yyyyMMddHHmmssSSS\",\n\n // RFC\n RFC2822: \"EEE, dd MMM yyyy HH:mm:ss xxx\",\n\n // 其他\n READABLE_DATE: \"MMM dd, yyyy\",\n READABLE_DATE_TIME: \"MMM dd, yyyy HH:mm\",\n COMPACT_DATETIME: \"yyyyMMdd_HHmmss\",\n} as const;\n","export type BREAK_POINT_TOKEN_TYPE = Record<keyof typeof BREAK_POINT_TOKEN_ENUM, number>;\n/** 屏幕响应断点 token 配置 */\nexport const BREAK_POINT_TOKEN_ENUM = {\n XS: 480,\n XSMax: 575,\n XSMin: 480,\n\n SM: 576,\n SMMax: 767,\n SMMin: 576,\n\n MD: 768,\n MDMax: 991,\n MDMin: 768,\n\n LG: 992,\n LGMax: 1199,\n LGMin: 992,\n\n XL: 1200,\n XLMax: 1599,\n XLMin: 1200,\n\n XXL: 1600,\n XXLMax: 1919,\n XXLMin: 1600,\n\n XXXL: 1920,\n XXXLMin: 1920,\n} as const;\n","/**\n * 标准 MIME 类型常量,用于文件类型标识和 HTTP Content-Type 头部\n * 基于 IANA 注册标准和浏览器兼容性验证\n */\nexport const MIME = {\n /** 普通文本文件 */\n TEXT: \"text/plain\",\n /** 超文本标记语言文档 */\n HTML: \"text/html\",\n /** 层叠样式表文件 */\n CSS: \"text/css\",\n /** 逗号分隔值文件(表格数据) */\n CSV: \"text/csv\",\n /** 制表符分隔值文件 */\n TSV: \"text/tab-separated-values\",\n /** XML 文档 */\n XML: \"text/xml\",\n /** XHTML 文档(XML 严格格式的 HTML) */\n XHTML: \"application/xhtml+xml\",\n /** JavaScript 脚本文件(标准推荐) */\n JS: \"text/javascript\",\n /** Markdown 格式文档 */\n MARKDOWN: \"text/markdown\",\n /** 富文本格式文档(.rtf) */\n RTF: \"application/rtf\",\n /** iCalendar 日历格式(.ics) */\n CALENDAR: \"text/calendar\",\n /** JPEG 图像(.jpg/.jpeg) */\n JPEG: \"image/jpeg\",\n /** PNG 图像(无损压缩,支持透明) */\n PNG: \"image/png\",\n /** GIF 图像(支持动画) */\n GIF: \"image/gif\",\n /** Windows 位图(.bmp) */\n BMP: \"image/bmp\",\n /** SVG 向量图形(.svg) */\n SVG: \"image/svg+xml\",\n /** APNG 动态图像(.apng) */\n APNG: \"image/apng\",\n /** AVIF 图像(高效压缩) */\n AVIF: \"image/avif\",\n /** 图标文件格式(.ico) */\n ICO: \"image/vnd.microsoft.icon\",\n /** WebP 图像(高效压缩) */\n WEBP: \"image/webp\",\n /** MP3 音频(.mp3) */\n MP3: \"audio/mpeg\",\n /** AAC 音频(.aac) */\n AAC: \"audio/aac\",\n /** MIDI 音乐文件(.mid/.midi) */\n MIDI: \"audio/midi\",\n /** OGG 音频(.oga) */\n OGG_AUDIO: \"audio/ogg\",\n /** Opus 音频(.opus) */\n OPUS: \"audio/opus\",\n /** WAV 音频(.wav) */\n WAV: \"audio/wav\",\n /** RealAudio 音频(.ra/.ram) */\n REAL_AUDIO: \"audio/x-pn-realaudio\",\n /** MP4 视频(.mp4) */\n MP4: \"video/mp4\",\n /** MPEG 视频(.mpeg/.mpg) */\n MPEG: \"video/mpeg\",\n /** OGG 视频(.ogv) */\n OGG_VIDEO: \"video/ogg\",\n /** AVI 视频(.avi) */\n AVI: \"video/x-msvideo\",\n /** 3GPP 视频(.3gp) */\n THREE_GPP: \"video/3gpp\",\n /** 3GPP2 视频(.3g2) */\n THREE_GPP2: \"video/3gpp2\",\n /** WebM 视频(.webm) */\n WEBM: \"video/webm\",\n /** PDF 文档 */\n PDF: \"application/pdf\",\n /** Word 97-2003 文档(.doc) */\n DOC: \"application/msword\",\n /** Word 2007+ 文档(.docx) */\n DOCX: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n /** Excel 2007+ 工作簿(.xlsx) */\n XLSX: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n /** 启用宏的Excel工作簿(.xlsm) */\n XLSM: \"application/vnd.ms-excel.sheet.macroEnabled.12\",\n /** Excel模板文件(.xltx) */\n XLTX: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\",\n /** PowerPoint 2007+ 演示文稿(.pptx) */\n PPTX: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n /** PowerPoint 97-2003 演示文稿(.ppt) */\n PPT: \"application/vnd.ms-powerpoint\",\n /** OpenDocument 文本文档(.odt) */\n ODT: \"application/vnd.oasis.opendocument.text\",\n /** OpenDocument 表格文档(.ods) */\n ODS: \"application/vnd.oasis.opendocument.spreadsheet\",\n /** OpenDocument 演示文稿(.odp) */\n ODP: \"application/vnd.oasis.opendocument.presentation\",\n /** EPUB 电子书(.epub) */\n EPUB: \"application/epub+zip\",\n /** Kindle 电子书(.azw) */\n AZW: \"application/vnd.amazon.ebook\",\n /** ZIP 压缩文件(.zip) */\n ZIP: \"application/zip\",\n /** GZIP 压缩文件(.gz) */\n GZIP: \"application/gzip\",\n /** GZIP 压缩文件(旧格式) */\n X_GZIP: \"application/x-gzip\",\n /** TAR 归档文件(.tar) */\n TAR: \"application/x-tar\",\n /** BZip 归档(.bz) */\n BZIP: \"application/x-bzip\",\n /** BZip2 归档(.bz2) */\n BZIP2: \"application/x-bzip2\",\n /** 7-Zip 压缩文件(.7z) */\n SEVEN_Z: \"application/x-7z-compressed\",\n /** 通用二进制数据(默认类型) */\n OCTET_STREAM: \"application/octet-stream\",\n /** JSON 数据格式(.json) */\n JSON: \"application/json\",\n /** JSON-LD 格式(.jsonld) */\n LD_JSON: \"application/ld+json\",\n /** Java 归档文件(.jar) */\n JAR: \"application/java-archive\",\n /** MS 嵌入式 OpenType 字体(.eot) */\n EOT: \"application/vnd.ms-fontobject\",\n /** OpenType 字体(.otf) */\n OTF: \"font/otf\",\n /** Excel 97-2003 工作簿(.xls) */\n XLS: \"application/vnd.ms-excel\",\n /** Microsoft XPS 文档(.xps) */\n XPS: \"application/vnd.ms-xpsdocument\",\n /** Word 启用宏文档(.docm) */\n DOCM: \"application/vnd.ms-word.document.macroEnabled.12\",\n} as const;\n","import type { ValueOf } from \"type-fest\";\n\nexport type THEME_TYPE = ValueOf<typeof THEME_ENUM>;\nexport const THEME_ENUM = {\n LIGHT: \"light\",\n DARK: \"dark\",\n} as const;\n\nexport type THEME_MODE_TYPE = ValueOf<typeof THEME_MODE_ENUM>;\nexport const THEME_MODE_ENUM = {\n LIGHT: \"light\",\n DARK: \"dark\",\n SYSTEM: \"system\",\n} as const;\n"],"mappings":";AAAA,MAAa,cAAc;CAEzB,UAAU;CACV,UAAU;CACV,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,oBAAoB;CAGpB,SAAS;CACT,cAAc;CACd,oBAAoB;CAGpB,SAAS;CACT,cAAc;CAGd,SAAS;CACT,cAAc;CACd,iBAAiB;CACjB,iBAAiB;CAGjB,YAAY;CACZ,kBAAkB;CAClB,WAAW;CACX,cAAc;CAGd,yBAAyB;CACzB,wBAAwB;CAGxB,SAAS;CACT,gBAAgB;CAChB,SAAS;CACT,gBAAgB;CAGhB,WAAW;CACX,cAAc;CAGd,SAAS;CAGT,eAAe;CACf,oBAAoB;CACpB,kBAAkB;CACnB;;;;;ACjDD,MAAa,yBAAyB;CACpC,IAAI;CACJ,OAAO;CACP,OAAO;CAEP,IAAI;CACJ,OAAO;CACP,OAAO;CAEP,IAAI;CACJ,OAAO;CACP,OAAO;CAEP,IAAI;CACJ,OAAO;CACP,OAAO;CAEP,IAAI;CACJ,OAAO;CACP,OAAO;CAEP,KAAK;CACL,QAAQ;CACR,QAAQ;CAER,MAAM;CACN,SAAS;CACV;;;;;;;;ACzBD,MAAa,OAAO;CAElB,MAAM;CAEN,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,OAAO;CAEP,IAAI;CAEJ,UAAU;CAEV,KAAK;CAEL,UAAU;CAEV,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,MAAM;CAEN,MAAM;CAEN,KAAK;CAEL,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,MAAM;CAEN,WAAW;CAEX,MAAM;CAEN,KAAK;CAEL,YAAY;CAEZ,KAAK;CAEL,MAAM;CAEN,WAAW;CAEX,KAAK;CAEL,WAAW;CAEX,YAAY;CAEZ,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,MAAM;CAEN,MAAM;CAEN,MAAM;CAEN,MAAM;CAEN,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,MAAM;CAEN,KAAK;CAEL,KAAK;CAEL,MAAM;CAEN,QAAQ;CAER,KAAK;CAEL,MAAM;CAEN,OAAO;CAEP,SAAS;CAET,cAAc;CAEd,MAAM;CAEN,SAAS;CAET,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,KAAK;CAEL,MAAM;CACP;;;;AChID,MAAa,aAAa;CACxB,OAAO;CACP,MAAM;CACP;AAGD,MAAa,kBAAkB;CAC7B,OAAO;CACP,MAAM;CACN,QAAQ;CACT"}
|
package/dist/enums.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as BREAK_POINT_TOKEN_ENUM, r as BREAK_POINT_TOKEN_TYPE, t as
|
|
2
|
-
export { BREAK_POINT_TOKEN_ENUM, BREAK_POINT_TOKEN_TYPE, MIME };
|
|
1
|
+
import { a as MIME, c as DATE_FORMAT, i as THEME_TYPE, n as THEME_MODE_ENUM, o as BREAK_POINT_TOKEN_ENUM, r as THEME_MODE_TYPE, s as BREAK_POINT_TOKEN_TYPE, t as THEME_ENUM } from "./index-Bn_PNnsM.js";
|
|
2
|
+
export { BREAK_POINT_TOKEN_ENUM, BREAK_POINT_TOKEN_TYPE, DATE_FORMAT, MIME, THEME_ENUM, THEME_MODE_ENUM, THEME_MODE_TYPE, THEME_TYPE };
|
package/dist/enums.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as DATE_FORMAT, i as BREAK_POINT_TOKEN_ENUM, n as THEME_MODE_ENUM, r as MIME, t as THEME_ENUM } from "./enums-BL6w5-mS.js";
|
|
2
2
|
|
|
3
|
-
export { BREAK_POINT_TOKEN_ENUM, MIME };
|
|
3
|
+
export { BREAK_POINT_TOKEN_ENUM, DATE_FORMAT, MIME, THEME_ENUM, THEME_MODE_ENUM };
|
package/dist/hooks-alova.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as alova_client1 from "alova/client";
|
|
2
2
|
import { AlovaFrontMiddlewareContext, AlovaMethodHandler, CompleteHandler, ErrorHandler, PaginationHookConfig, RequestHookConfig, SuccessHandler, WatcherHookConfig } from "alova/client";
|
|
3
3
|
import { AlovaGenerics, Method } from "alova";
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ interface HookOptions$2<AG extends AlovaGenerics, L extends any[], Args extends
|
|
|
9
9
|
onError?: ErrorHandler<AG, Args> | undefined;
|
|
10
10
|
onComplete?: CompleteHandler<AG, Args> | undefined;
|
|
11
11
|
}
|
|
12
|
-
declare function useAlovaPagination<AG extends AlovaGenerics, L extends any[], Args extends any[]>(methodHandler: (page: number, pageSize: number, ...args: Args) => Method<AG>, hookOptions?: HookOptions$2<AG, L, Args> | undefined):
|
|
12
|
+
declare function useAlovaPagination<AG extends AlovaGenerics, L extends any[], Args extends any[]>(methodHandler: (page: number, pageSize: number, ...args: Args) => Method<AG>, hookOptions?: HookOptions$2<AG, L, Args> | undefined): alova_client1.UsePaginationExposure<AG, L, Args>;
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region src/hooks/alova/useAlovaRequest.d.ts
|
|
15
15
|
interface HookOptions$1<AG extends AlovaGenerics, Args extends any[]> extends RequestHookConfig<AG, Args> {
|
|
@@ -18,7 +18,7 @@ interface HookOptions$1<AG extends AlovaGenerics, Args extends any[]> extends Re
|
|
|
18
18
|
onError?: ErrorHandler<AG, Args> | undefined;
|
|
19
19
|
onComplete?: CompleteHandler<AG, Args> | undefined;
|
|
20
20
|
}
|
|
21
|
-
declare function useAlovaRequest<AG extends AlovaGenerics, Args extends any[] = any[]>(methodHandler: Method<AG> | AlovaMethodHandler<AG, Args>, hookOptions?: HookOptions$1<AG, Args> | undefined):
|
|
21
|
+
declare function useAlovaRequest<AG extends AlovaGenerics, Args extends any[] = any[]>(methodHandler: Method<AG> | AlovaMethodHandler<AG, Args>, hookOptions?: HookOptions$1<AG, Args> | undefined): alova_client1.UseHookExposure<AG, Args, unknown>;
|
|
22
22
|
//#endregion
|
|
23
23
|
//#region src/hooks/alova/useAlovaWatcher.d.ts
|
|
24
24
|
interface HookOptions<AG extends AlovaGenerics, Args extends any[]> extends WatcherHookConfig<AG, Args> {
|
|
@@ -26,7 +26,7 @@ interface HookOptions<AG extends AlovaGenerics, Args extends any[]> extends Watc
|
|
|
26
26
|
onError?: ErrorHandler<AG, Args> | undefined;
|
|
27
27
|
onComplete?: CompleteHandler<AG, Args> | undefined;
|
|
28
28
|
}
|
|
29
|
-
declare function useAlovaWatcher<AG extends AlovaGenerics, Args extends any[] = any[]>(methodHandler: Method<AG> | AlovaMethodHandler<AG, Args>, watchingStates: AG["StatesExport"]["Watched"][], hookOptions?: HookOptions<AG, Args>):
|
|
29
|
+
declare function useAlovaWatcher<AG extends AlovaGenerics, Args extends any[] = any[]>(methodHandler: Method<AG> | AlovaMethodHandler<AG, Args>, watchingStates: AG["StatesExport"]["Watched"][], hookOptions?: HookOptions<AG, Args>): alova_client1.UseHookExposure<AG, Args, unknown>;
|
|
30
30
|
//#endregion
|
|
31
31
|
export { useAlovaPagination, useAlovaRequest, useAlovaWatcher };
|
|
32
32
|
//# sourceMappingURL=hooks-alova.d.ts.map
|
package/dist/hooks-react.d.ts
CHANGED
|
@@ -1,28 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as AnyFunction, t as AnyAsyncFunction } from "./index-
|
|
1
|
+
import { s as BREAK_POINT_TOKEN_TYPE } from "./index-Bn_PNnsM.js";
|
|
2
|
+
import { r as AnyFunction, t as AnyAsyncFunction } from "./index-DBPmnr4a.js";
|
|
3
3
|
import { DependencyList, EffectCallback, RefObject } from "react";
|
|
4
4
|
|
|
5
|
-
//#region src/hooks/react/useCreation.d.ts
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* useCreation
|
|
9
|
-
* @reference https://ahooks.js.org/zh-CN/hooks/use-creation
|
|
10
|
-
*
|
|
11
|
-
* @param factory
|
|
12
|
-
* @param deps
|
|
13
|
-
*/
|
|
14
|
-
declare function useCreation<T>(factory: () => T, deps: DependencyList): T;
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region src/hooks/react/useLatest.d.ts
|
|
17
|
-
/**
|
|
18
|
-
* 返回当前最新值的 Hook
|
|
19
|
-
* @reference https://ahooks.js.org/zh-CN/hooks/use-latest
|
|
20
|
-
*
|
|
21
|
-
* @param value
|
|
22
|
-
*/
|
|
23
|
-
declare function useLatest<T>(value: T): RefObject<T>;
|
|
24
|
-
//#endregion
|
|
25
5
|
//#region node_modules/.pnpm/type-fest@5.4.4/node_modules/type-fest/source/tuple-to-union.d.ts
|
|
6
|
+
|
|
26
7
|
/**
|
|
27
8
|
Convert a tuple/array into a union type of its elements.
|
|
28
9
|
|
|
@@ -76,12 +57,30 @@ type NumberBool = typeof numberBool[number];
|
|
|
76
57
|
*/
|
|
77
58
|
type TupleToUnion<ArrayType> = ArrayType extends readonly unknown[] ? ArrayType[number] : never;
|
|
78
59
|
//#endregion
|
|
60
|
+
//#region src/hooks/react/useCreation.d.ts
|
|
61
|
+
/**
|
|
62
|
+
* useCreation
|
|
63
|
+
* @reference https://ahooks.js.org/zh-CN/hooks/use-creation
|
|
64
|
+
*
|
|
65
|
+
* @param factory
|
|
66
|
+
* @param deps
|
|
67
|
+
*/
|
|
68
|
+
declare function useCreation<T>(factory: () => T, deps: DependencyList): T;
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/hooks/react/useLatest.d.ts
|
|
71
|
+
/**
|
|
72
|
+
* 返回当前最新值的 Hook
|
|
73
|
+
* @reference https://ahooks.js.org/zh-CN/hooks/use-latest
|
|
74
|
+
*
|
|
75
|
+
* @param value
|
|
76
|
+
*/
|
|
77
|
+
declare function useLatest<T>(value: T): RefObject<T>;
|
|
78
|
+
//#endregion
|
|
79
79
|
//#region src/hooks/react/useMount.d.ts
|
|
80
80
|
type MountCallback = EffectCallback | AnyAsyncFunction;
|
|
81
81
|
/**
|
|
82
82
|
* 在组件初始化时执行的 Hook
|
|
83
83
|
* - 即使在严格模式下也只执行一次
|
|
84
|
-
* @reference https://ahooks.js.org/hooks/use-mount
|
|
85
84
|
*
|
|
86
85
|
* @param effect 副作用函数
|
|
87
86
|
*/
|
|
@@ -92,26 +91,29 @@ type Breakpoint = TupleToUnion<typeof tuple>;
|
|
|
92
91
|
type ResponsiveValues = Record<Breakpoint, boolean>;
|
|
93
92
|
declare const tuple: readonly ["xxxl", "xxl", "xl", "lg", "md", "sm", "xs"];
|
|
94
93
|
interface ResponsiveHookOptions {
|
|
95
|
-
/**
|
|
96
|
-
* 紧凑布局断点
|
|
97
|
-
* - 低于此断点时使用紧凑布局
|
|
98
|
-
* @default "xl"
|
|
99
|
-
*/
|
|
100
|
-
compactBreakPoint?: Breakpoint;
|
|
101
94
|
/** 屏幕响应断点 token 配置 */
|
|
102
95
|
breakPointTokens?: BREAK_POINT_TOKEN_TYPE;
|
|
103
96
|
}
|
|
104
97
|
declare function useResponsive(options?: ResponsiveHookOptions): {
|
|
105
98
|
responsive: ResponsiveValues;
|
|
106
99
|
current: "xxxl" | "xxl" | "xl" | "lg" | "md" | "sm" | "xs";
|
|
107
|
-
isCompact: boolean;
|
|
108
100
|
breakPointTokens: BREAK_POINT_TOKEN_TYPE;
|
|
109
101
|
};
|
|
110
102
|
//#endregion
|
|
111
103
|
//#region src/hooks/react/useTitle.d.ts
|
|
112
104
|
interface TitleHookOptions {
|
|
105
|
+
/** 件卸载时是否恢复原始标题 */
|
|
113
106
|
isRestoreOnUnmount?: boolean;
|
|
114
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* 设置页面标题
|
|
110
|
+
* - 轻量级,适用于无路由库时设置页面标题
|
|
111
|
+
* - 多个 `useTitle` 实例会互相干扰,需在顶层组件使用
|
|
112
|
+
* - 无法处理 `document.title` 固有的竞态问题
|
|
113
|
+
*
|
|
114
|
+
* @param title 页面标题
|
|
115
|
+
* @param options 配置选项
|
|
116
|
+
*/
|
|
115
117
|
declare function useTitle(title: string, options?: TitleHookOptions | undefined): void;
|
|
116
118
|
//#endregion
|
|
117
119
|
//#region src/hooks/react/useUnmount.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-react.d.ts","names":["TupleToUnion","ArrayType"],"sources":["../
|
|
1
|
+
{"version":3,"file":"hooks-react.d.ts","names":["TupleToUnion","ArrayType"],"sources":["../node_modules/.pnpm/type-fest@5.4.4/node_modules/type-fest/source/tuple-to-union.d.ts","../src/hooks/react/useCreation.ts","../src/hooks/react/useLatest.ts","../src/hooks/react/useMount.ts","../src/hooks/react/useResponsive.ts","../src/hooks/react/useTitle.ts","../src/hooks/react/useUnmount.ts"],"sourcesContent":["/**\nConvert a tuple/array into a union type of its elements.\n\nThis can be useful when you have a fixed set of allowed values and want a type defining only the allowed values, but do not want to repeat yourself.\n\n@example\n```\nimport type {TupleToUnion} from 'type-fest';\n\nconst destinations = ['a', 'b', 'c'] as const;\n\ntype Destination = TupleToUnion<typeof destinations>;\n//=> 'a' | 'b' | 'c'\n\nfunction verifyDestination(destination: unknown): destination is Destination {\n\treturn destinations.includes(destination as any);\n}\n\ntype RequestBody = {\n\tdeliverTo: Destination;\n};\n\nfunction verifyRequestBody(body: unknown): body is RequestBody {\n\tconst {deliverTo} = (body as any);\n\treturn typeof body === 'object' && body !== null && verifyDestination(deliverTo);\n}\n```\n\nAlternatively, you may use `typeof destinations[number]`. If `destinations` is a tuple, there is no difference. However if `destinations` is a string, the resulting type will the union of the characters in the string. Other types of `destinations` may result in a compile error. In comparison, TupleToUnion will return `never` if a tuple is not provided.\n\n@example\n```\nconst destinations = ['a', 'b', 'c'] as const;\n\ntype Destination = typeof destinations[number];\n//=> 'a' | 'b' | 'c'\n\nconst erroringType = new Set(['a', 'b', 'c']);\n\n// @ts-expect-error\ntype ErroringType = typeof erroringType[number];\n// Error: Type 'Set<string>' has no matching index signature for type 'number'. ts(2537)\n\nconst numberBool: {[n: number]: boolean} = {1: true};\n\ntype NumberBool = typeof numberBool[number];\n//=> boolean\n```\n\n@category Array\n*/\nexport type TupleToUnion<ArrayType> = ArrayType extends readonly unknown[] ? ArrayType[number] : never;\n\nexport {};\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;AAmDA;;;;ACnCA;;;;;;;;ACRA;;;;;;;;ACP+D;AAY/D;;;;ACV8C;AAEhB;AACA;AAM9B;AAIA;;;;;;;;;ACEA;;;;ACPA;;;;KNwCYA,0BAA0BC,uCAAuCA;;;;;;;AAA7E;;;iBCnCgB,8BAA+B,SAAS,iBAAc;;;;;;;ADmCtE;;iBE3CgB,oBAAqB,IAAI,UAAU;;;KCH9C,aAAA,GAAgB,iBAAiB;;;AH8CtC;;;;ACnCgB,iBEHA,QAAA,CFGW,MAAA,EEHO,aFGP,CAAA,EAAA,IAAA;;;KGXtB,UAAA,GAAa,oBAAoB;KACjC,gBAAA,GAAmB,OAAO;cAEzB;AJ2CMD,UIvCK,qBAAA,CJuCOC;;qBIrCH;;AHEL,iBGAA,aAAA,CHAW,OAAA,CAAA,EGAc,qBHAd,CAAA,EAAA;EAAoB,UAAA,kBAAA;EAAS,OAAA,EAAA,MAAA,GAAA,KAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA;EAAc,gBAAA,wBAAA;CAAA;;;UIZ5D,gBAAA;;;;;AL+CV;;;;ACnCA;;;;AAAsE,iBIEtD,QAAA,CJFsD,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EIEnB,gBJFmB,GAAA,SAAA,CAAA,EAAA,IAAA;;;;;;;ADmCtE;;iBMxCgB,UAAA,SAAoB"}
|
package/dist/hooks-react.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as
|
|
2
|
-
import {
|
|
3
|
-
import { useEffect, useRef, useState } from "react";
|
|
1
|
+
import { B as isBrowser, H as arrayZipToObject, Nt as isEqual, S as objectAssign, ft as isString, ht as isPromiseLike, y as objectKeys, zt as isFunction } from "./utils-DbMbll5L.js";
|
|
2
|
+
import { i as BREAK_POINT_TOKEN_ENUM } from "./enums-BL6w5-mS.js";
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/hooks/react/useCreation.ts
|
|
6
6
|
/**
|
|
@@ -43,21 +43,20 @@ function useLatest(value) {
|
|
|
43
43
|
/**
|
|
44
44
|
* 在组件初始化时执行的 Hook
|
|
45
45
|
* - 即使在严格模式下也只执行一次
|
|
46
|
-
* @reference https://ahooks.js.org/hooks/use-mount
|
|
47
46
|
*
|
|
48
47
|
* @param effect 副作用函数
|
|
49
48
|
*/
|
|
50
49
|
function useMount(effect) {
|
|
51
|
-
|
|
52
|
-
let isMounted = false;
|
|
50
|
+
const isMountedRef = useRef(false);
|
|
53
51
|
const effectRef = useLatest(effect);
|
|
54
52
|
useEffect(() => {
|
|
55
|
-
if (
|
|
56
|
-
|
|
53
|
+
if (!isFunction(effectRef.current)) console.error(`useMount expected parameter is a function, but got ${typeof effectRef.current}`);
|
|
54
|
+
if (isMountedRef.current) return;
|
|
55
|
+
isMountedRef.current = true;
|
|
57
56
|
const result = effectRef.current?.();
|
|
58
57
|
if (isPromiseLike(result)) return;
|
|
59
58
|
return result;
|
|
60
|
-
}, []);
|
|
59
|
+
}, [effectRef]);
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
//#endregion
|
|
@@ -80,58 +79,40 @@ const TUPLE = [
|
|
|
80
79
|
"SM",
|
|
81
80
|
"XS"
|
|
82
81
|
];
|
|
83
|
-
const
|
|
84
|
-
const defaultResponsiveValues = arrayZipToObject(tuple, tuple.map(() => false));
|
|
85
|
-
let responsiveConfig = arrayZipToObject(tuple, TUPLE.map((t) => BREAK_POINT_TOKEN_ENUM[t]));
|
|
86
|
-
let responsiveValues = { ...defaultResponsiveValues };
|
|
82
|
+
const defaultValues = arrayZipToObject(tuple, tuple.map(() => false));
|
|
87
83
|
function useResponsive(options) {
|
|
88
|
-
const {
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
const isCompact = !responsive[compactBreakPoint];
|
|
94
|
-
const current = objectKeys(defaultResponsiveValues).find((key) => responsive[key] === true) || "xs";
|
|
84
|
+
const { breakPointTokens = {} } = options || {};
|
|
85
|
+
const responsiveValuesRef = useRef({ ...defaultValues });
|
|
86
|
+
const [responsive, setResponsive] = useState({ ...defaultValues });
|
|
87
|
+
const tokens = useMemo(() => objectAssign(BREAK_POINT_TOKEN_ENUM, breakPointTokens), [breakPointTokens]);
|
|
88
|
+
const current = objectKeys(responsive).find((key) => responsive[key] === true) || "xs";
|
|
95
89
|
useEffect(() => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
90
|
+
function calculate() {
|
|
91
|
+
const newValues = { ...defaultValues };
|
|
92
|
+
const responsiveConfig = arrayZipToObject(tuple, TUPLE.map((t) => tokens[t]));
|
|
93
|
+
let shouldUpdate = false;
|
|
94
|
+
for (const key of tuple) {
|
|
95
|
+
newValues[key] = window.innerWidth >= responsiveConfig[key];
|
|
96
|
+
if (newValues[key] !== responsiveValuesRef.current[key]) shouldUpdate = true;
|
|
97
|
+
}
|
|
98
|
+
if (shouldUpdate) responsiveValuesRef.current = newValues;
|
|
99
|
+
}
|
|
100
|
+
function resizeListener() {
|
|
101
|
+
const oldInfo = responsiveValuesRef.current;
|
|
102
|
+
calculate();
|
|
103
|
+
if (oldInfo !== responsiveValuesRef.current) setResponsive(responsiveValuesRef.current);
|
|
104
|
+
}
|
|
105
|
+
window.addEventListener("resize", resizeListener);
|
|
101
106
|
return () => {
|
|
102
|
-
|
|
103
|
-
if (subscriberList.size === 0) removeListener();
|
|
107
|
+
window.removeEventListener("resize", resizeListener);
|
|
104
108
|
};
|
|
105
|
-
}, []);
|
|
109
|
+
}, [tokens]);
|
|
106
110
|
return {
|
|
107
111
|
responsive,
|
|
108
112
|
current,
|
|
109
|
-
isCompact,
|
|
110
113
|
breakPointTokens: tokens
|
|
111
114
|
};
|
|
112
115
|
}
|
|
113
|
-
function resizeListener() {
|
|
114
|
-
const oldInfo = responsiveValues;
|
|
115
|
-
calculate();
|
|
116
|
-
if (oldInfo === responsiveValues) return;
|
|
117
|
-
for (const subscriber of subscriberList) subscriber();
|
|
118
|
-
}
|
|
119
|
-
function addListener() {
|
|
120
|
-
window.addEventListener("resize", resizeListener);
|
|
121
|
-
}
|
|
122
|
-
function removeListener() {
|
|
123
|
-
window.removeEventListener("resize", resizeListener);
|
|
124
|
-
}
|
|
125
|
-
function calculate() {
|
|
126
|
-
const width = window.innerWidth;
|
|
127
|
-
const newValues = { ...defaultResponsiveValues };
|
|
128
|
-
let shouldUpdate = false;
|
|
129
|
-
for (const key of objectKeys(responsiveConfig)) {
|
|
130
|
-
newValues[key] = width >= responsiveConfig[key];
|
|
131
|
-
if (newValues[key] !== responsiveValues[key]) shouldUpdate = true;
|
|
132
|
-
}
|
|
133
|
-
if (shouldUpdate) responsiveValues = newValues;
|
|
134
|
-
}
|
|
135
116
|
|
|
136
117
|
//#endregion
|
|
137
118
|
//#region src/hooks/react/useUnmount.ts
|
|
@@ -142,23 +123,38 @@ function calculate() {
|
|
|
142
123
|
* @param effect 副作用函数
|
|
143
124
|
*/
|
|
144
125
|
function useUnmount(effect) {
|
|
145
|
-
if (!isFunction(effect)) console.error(`useUnmount expected parameter is a function, got ${typeof effect}`);
|
|
146
126
|
const effectRef = useLatest(effect);
|
|
147
127
|
useEffect(() => () => {
|
|
128
|
+
if (!isFunction(effectRef.current)) {
|
|
129
|
+
console.error(`useUnmount expected parameter is a function, but got ${typeof effectRef.current}`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
148
132
|
effectRef.current?.();
|
|
149
|
-
}, []);
|
|
133
|
+
}, [effectRef]);
|
|
150
134
|
}
|
|
151
135
|
|
|
152
136
|
//#endregion
|
|
153
137
|
//#region src/hooks/react/useTitle.ts
|
|
138
|
+
/**
|
|
139
|
+
* 设置页面标题
|
|
140
|
+
* - 轻量级,适用于无路由库时设置页面标题
|
|
141
|
+
* - 多个 `useTitle` 实例会互相干扰,需在顶层组件使用
|
|
142
|
+
* - 无法处理 `document.title` 固有的竞态问题
|
|
143
|
+
*
|
|
144
|
+
* @param title 页面标题
|
|
145
|
+
* @param options 配置选项
|
|
146
|
+
*/
|
|
154
147
|
function useTitle(title, options) {
|
|
155
|
-
|
|
156
|
-
const titleRef = useRef(document.title);
|
|
148
|
+
const titleRef = useRef(isBrowser() ? document.title : "");
|
|
157
149
|
useEffect(() => {
|
|
158
|
-
|
|
150
|
+
if (!isString(title)) {
|
|
151
|
+
console.error(`useTitle expected title is a string, but got ${typeof title}`);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (isBrowser()) document.title = title;
|
|
159
155
|
}, [title]);
|
|
160
156
|
useUnmount(() => {
|
|
161
|
-
if (options?.isRestoreOnUnmount) document.title = titleRef.current;
|
|
157
|
+
if (isBrowser() && options?.isRestoreOnUnmount) document.title = titleRef.current;
|
|
162
158
|
});
|
|
163
159
|
}
|
|
164
160
|
|
package/dist/hooks-react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-react.js","names":["
|
|
1
|
+
{"version":3,"file":"hooks-react.js","names":["defaultValues: ResponsiveValues","tokens: BREAK_POINT_TOKEN_TYPE"],"sources":["../src/hooks/react/useCreation.ts","../src/hooks/react/useLatest.ts","../src/hooks/react/useMount.ts","../src/hooks/react/useResponsive.ts","../src/hooks/react/useUnmount.ts","../src/hooks/react/useTitle.ts"],"sourcesContent":["import { useRef, type DependencyList } from \"react\";\nimport { isEqual } from \"src/utils\";\n\ninterface RefObject<T> {\n deps: DependencyList;\n result: T;\n isInitialized: boolean;\n}\n\n/**\n * useCreation\n * @reference https://ahooks.js.org/zh-CN/hooks/use-creation\n *\n * @param factory\n * @param deps\n */\nexport function useCreation<T> (factory: () => T, deps: DependencyList) {\n const { current } = useRef<RefObject<T>>({ deps, result: undefined!, isInitialized: false });\n\n if (current.isInitialized === false || !isEqual(current.deps, deps)) {\n current.deps = deps;\n current.result = factory();\n current.isInitialized = true;\n }\n\n return current.result;\n}\n","import { useRef, type RefObject } from \"react\";\n\n/**\n * 返回当前最新值的 Hook\n * @reference https://ahooks.js.org/zh-CN/hooks/use-latest\n *\n * @param value\n */\nexport function useLatest<T> (value: T): RefObject<T> {\n const ref = useRef(value);\n // eslint-disable-next-line react-x/refs\n ref.current = value;\n\n return ref;\n}\n","import type { AnyAsyncFunction } from \"@pawover/types\";\nimport { useEffect, useRef, type EffectCallback } from \"react\";\nimport { isFunction, isPromiseLike } from \"src/utils\";\nimport { useLatest } from \"./useLatest\";\n\ntype MountCallback = EffectCallback | AnyAsyncFunction;\n\n/**\n * 在组件初始化时执行的 Hook\n * - 即使在严格模式下也只执行一次\n *\n * @param effect 副作用函数\n */\nexport function useMount (effect: MountCallback) {\n const isMountedRef = useRef(false);\n const effectRef = useLatest(effect);\n\n useEffect(() => {\n if (!isFunction(effectRef.current)) {\n console.error(`useMount expected parameter is a function, but got ${typeof effectRef.current}`);\n }\n if (isMountedRef.current) {\n return;\n }\n isMountedRef.current = true;\n const result = effectRef.current?.();\n // If fn returns a Promise, don't return it as cleanup function\n if (isPromiseLike(result)) {\n return;\n }\n\n return result;\n }, [effectRef]);\n}\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { BREAK_POINT_TOKEN_ENUM, type BREAK_POINT_TOKEN_TYPE } from \"src/enums\";\nimport { arrayZipToObject, objectAssign, objectKeys } from \"src/utils\";\nimport type { TupleToUnion } from \"type-fest\";\n\ntype Breakpoint = TupleToUnion<typeof tuple>;\ntype ResponsiveValues = Record<Breakpoint, boolean>;\n\nconst tuple = [\"xxxl\", \"xxl\", \"xl\", \"lg\", \"md\", \"sm\", \"xs\"] as const;\nconst TUPLE = [\"XXXL\", \"XXL\", \"XL\", \"LG\", \"MD\", \"SM\", \"XS\"] as const;\nconst defaultValues: ResponsiveValues = arrayZipToObject(tuple, tuple.map(() => false));\n\nexport interface ResponsiveHookOptions {\n /** 屏幕响应断点 token 配置 */\n breakPointTokens?: BREAK_POINT_TOKEN_TYPE;\n}\nexport function useResponsive (options?: ResponsiveHookOptions) {\n const { breakPointTokens = {} } = options || {};\n const responsiveValuesRef = useRef({ ...defaultValues });\n const [responsive, setResponsive] = useState<ResponsiveValues>({ ...defaultValues });\n const tokens: BREAK_POINT_TOKEN_TYPE = useMemo(() => objectAssign(BREAK_POINT_TOKEN_ENUM, breakPointTokens), [breakPointTokens]);\n const current = objectKeys(responsive).find((key) => responsive[key] === true) || \"xs\";\n\n useEffect(() => {\n function calculate () {\n const newValues = { ...defaultValues };\n const responsiveConfig = arrayZipToObject(tuple, TUPLE.map((t) => tokens[t]));\n let shouldUpdate = false;\n\n for (const key of tuple) {\n newValues[key] = window.innerWidth >= responsiveConfig[key];\n if (newValues[key] !== responsiveValuesRef.current[key]) {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n responsiveValuesRef.current = newValues;\n }\n }\n\n function resizeListener () {\n const oldInfo = responsiveValuesRef.current;\n calculate();\n\n if (oldInfo !== responsiveValuesRef.current) {\n setResponsive(responsiveValuesRef.current);\n }\n }\n\n window.addEventListener(\"resize\", resizeListener);\n\n return () => {\n window.removeEventListener(\"resize\", resizeListener);\n };\n }, [tokens]);\n\n return { responsive, current, breakPointTokens: tokens };\n}\n","import type { AnyFunction } from \"@pawover/types\";\nimport { useEffect } from \"react\";\nimport { isFunction } from \"src/utils\";\nimport { useLatest } from \"./useLatest\";\n\n/**\n * 在组件卸载时执行的 Hook\n * @reference https://ahooks.js.org/zh-CN/hooks/use-unmount\n *\n * @param effect 副作用函数\n */\nexport function useUnmount (effect: AnyFunction) {\n const effectRef = useLatest(effect);\n\n useEffect(\n () => () => {\n if (!isFunction(effectRef.current)) {\n console.error(`useUnmount expected parameter is a function, but got ${typeof effectRef.current}`);\n\n return;\n }\n effectRef.current?.();\n },\n [effectRef],\n );\n}\n","import { useEffect, useRef } from \"react\";\nimport { isBrowser, isString } from \"../../utils\";\nimport { useUnmount } from \"./useUnmount\";\n\ninterface TitleHookOptions {\n /** 件卸载时是否恢复原始标题 */\n isRestoreOnUnmount?: boolean;\n}\n\n/**\n * 设置页面标题\n * - 轻量级,适用于无路由库时设置页面标题\n * - 多个 `useTitle` 实例会互相干扰,需在顶层组件使用\n * - 无法处理 `document.title` 固有的竞态问题\n *\n * @param title 页面标题\n * @param options 配置选项\n */\nexport function useTitle (title: string, options?: TitleHookOptions | undefined) {\n const titleRef = useRef(isBrowser() ? document.title : \"\");\n\n useEffect(() => {\n if (!isString(title)) {\n console.error(`useTitle expected title is a string, but got ${typeof title}`);\n\n return;\n }\n if (isBrowser()) {\n document.title = title;\n }\n }, [title]);\n\n useUnmount(() => {\n if (isBrowser() && options?.isRestoreOnUnmount) {\n document.title = titleRef.current;\n }\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
import { t as ValueOf } from "./value-of-DUmTbnuw.js";
|
|
2
|
+
|
|
3
|
+
//#region src/enums/date.d.ts
|
|
4
|
+
declare const DATE_FORMAT: {
|
|
5
|
+
readonly ISO_DATE: "yyyy-MM-dd";
|
|
6
|
+
readonly ISO_TIME: "HH:mm:ss";
|
|
7
|
+
readonly ISO_DATE_TIME: "yyyy-MM-dd HH:mm:ss";
|
|
8
|
+
readonly ISO_DATE_TIME_MS: "yyyy-MM-dd HH:mm:ss.SSS";
|
|
9
|
+
readonly ISO_DATETIME_TZ: "yyyy-MM-dd'T'HH:mm:ssXXX";
|
|
10
|
+
readonly ISO_DATETIME_TZ_MS: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
|
|
11
|
+
readonly US_DATE: "MM/dd/yyyy";
|
|
12
|
+
readonly US_DATE_TIME: "MM/dd/yyyy HH:mm:ss";
|
|
13
|
+
readonly US_DATE_SHORT_YEAR: "MM/dd/yy";
|
|
14
|
+
readonly EU_DATE: "dd/MM/yyyy";
|
|
15
|
+
readonly EU_DATE_TIME: "dd/MM/yyyy HH:mm:ss";
|
|
16
|
+
readonly CN_DATE: "yyyy年MM月dd日";
|
|
17
|
+
readonly CN_DATE_TIME: "yyyy年MM月dd日 HH时mm分ss秒";
|
|
18
|
+
readonly CN_DATE_WEEKDAY: "yyyy年MM月dd日 EEE";
|
|
19
|
+
readonly CN_WEEKDAY_FULL: "EEEE";
|
|
20
|
+
readonly SHORT_DATE: "yy-MM-dd";
|
|
21
|
+
readonly SHORT_DATE_SLASH: "yy/MM/dd";
|
|
22
|
+
readonly MONTH_DAY: "MM-dd";
|
|
23
|
+
readonly MONTH_DAY_CN: "MM月dd日";
|
|
24
|
+
readonly DATE_WITH_WEEKDAY_SHORT: "yyyy-MM-dd (EEE)";
|
|
25
|
+
readonly DATE_WITH_WEEKDAY_FULL: "yyyy-MM-dd (EEEE)";
|
|
26
|
+
readonly TIME_24: "HH:mm:ss";
|
|
27
|
+
readonly TIME_24_NO_SEC: "HH:mm";
|
|
28
|
+
readonly TIME_12: "hh:mm:ss a";
|
|
29
|
+
readonly TIME_12_NO_SEC: "hh:mm a";
|
|
30
|
+
readonly TIMESTAMP: "yyyyMMddHHmmss";
|
|
31
|
+
readonly TIMESTAMP_MS: "yyyyMMddHHmmssSSS";
|
|
32
|
+
readonly RFC2822: "EEE, dd MMM yyyy HH:mm:ss xxx";
|
|
33
|
+
readonly READABLE_DATE: "MMM dd, yyyy";
|
|
34
|
+
readonly READABLE_DATE_TIME: "MMM dd, yyyy HH:mm";
|
|
35
|
+
readonly COMPACT_DATETIME: "yyyyMMdd_HHmmss";
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
1
38
|
//#region src/enums/grid.d.ts
|
|
2
39
|
type BREAK_POINT_TOKEN_TYPE = Record<keyof typeof BREAK_POINT_TOKEN_ENUM, number>;
|
|
3
40
|
/** 屏幕响应断点 token 配置 */
|
|
@@ -158,5 +195,18 @@ declare const MIME: {
|
|
|
158
195
|
readonly DOCM: "application/vnd.ms-word.document.macroEnabled.12";
|
|
159
196
|
};
|
|
160
197
|
//#endregion
|
|
161
|
-
|
|
162
|
-
|
|
198
|
+
//#region src/enums/theme.d.ts
|
|
199
|
+
type THEME_TYPE = ValueOf<typeof THEME_ENUM>;
|
|
200
|
+
declare const THEME_ENUM: {
|
|
201
|
+
readonly LIGHT: "light";
|
|
202
|
+
readonly DARK: "dark";
|
|
203
|
+
};
|
|
204
|
+
type THEME_MODE_TYPE = ValueOf<typeof THEME_MODE_ENUM>;
|
|
205
|
+
declare const THEME_MODE_ENUM: {
|
|
206
|
+
readonly LIGHT: "light";
|
|
207
|
+
readonly DARK: "dark";
|
|
208
|
+
readonly SYSTEM: "system";
|
|
209
|
+
};
|
|
210
|
+
//#endregion
|
|
211
|
+
export { MIME as a, DATE_FORMAT as c, THEME_TYPE as i, THEME_MODE_ENUM as n, BREAK_POINT_TOKEN_ENUM as o, THEME_MODE_TYPE as r, BREAK_POINT_TOKEN_TYPE as s, THEME_ENUM as t };
|
|
212
|
+
//# sourceMappingURL=index-Bn_PNnsM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bn_PNnsM.d.ts","names":[],"sources":["../src/enums/date.ts","../src/enums/grid.ts","../src/enums/mime.ts","../src/enums/theme.ts"],"sourcesContent":[],"mappings":";;;cAAa;;;EAAA,SAAA,aAmDH,EAAA,qBAAA;;;;ECnDE,SAAA,OAAA,EAAA,YAAsB;EAErB,SAAA,YAAA,EAAA,qBA2BH;;;;ECzBG,SA+HH,OAAA,EAAA,aAAA;;;;ECjIE,SAAA,UAAU,EAAA,UAAkB;EAC3B,SAAA,gBAGH,EAAA,UAAA;EAEE,SAAA,SAAe,EAAA,OAAA;EACd,SAAA,YAIH,EAAA,QAAA;;;;;;;;;;;;;;;;KFbE,sBAAA,GAAyB,oBAAoB;;cAE5C;EDFA,SAAA,EAAA,EAAA,GAmDH;;;;ECnDE,SAAA,KAAA,EAAA,GAAA;EAEC,SAAA,KAAA,EAAA,GAAA;;;;ECEA,SA+HH,EAAA,EAAA,GAAA;;;;ECjIE,SAAA,KAAU,EAAA,IAAA;EACT,SAAA,KAGH,EAAA,IAAA;EAEE,SAAA,GAAA,EAAA,IAAe;EACd,SAAA,MAAA,EAAA,IAIH;;;;;;;;;;AHbV;cEIa;;;EDJD;EAEC,SAAA,IAAA,EAAA,WA2BH;;;;ECzBG,SA+HH,GAAA,EAAA,UAAA;;;;ECjIE,SAAA,GAAA,EAAU,UAAkB;EAC3B;EAKD,SAAA,KAAA,EAAA,uBAAiC;EAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAPD,UAAA,GAAa,eAAe;cAC3B;EHHA,SAAA,KAmDH,EAAA,OAAA;;;KG3CE,eAAA,GAAkB,eAAe;AFRjC,cESC,eFTqB,EAAA;EAErB,SAAA,KAAA,EAAA,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region node_modules/.pnpm/@pawover+types@0.0.0-alpha.
|
|
1
|
+
//#region node_modules/.pnpm/@pawover+types@0.0.0-alpha._d6a4faea50420a71bc77e0a59520b8b6/node_modules/@pawover/types/dist/index.d.ts
|
|
2
2
|
|
|
3
3
|
//#endregion
|
|
4
4
|
//#region src/index.d.ts
|
|
@@ -18,4 +18,4 @@ type AnyAsyncGeneratorFunction<P extends any[] = any[], T = any, R$1 = any, N =
|
|
|
18
18
|
|
|
19
19
|
//#endregion
|
|
20
20
|
export { AnyObject as a, AnyGeneratorFunction as i, AnyAsyncGeneratorFunction as n, PlainObject as o, AnyFunction as r, TreeLike as s, AnyAsyncFunction as t };
|
|
21
|
-
//# sourceMappingURL=index-
|
|
21
|
+
//# sourceMappingURL=index-DBPmnr4a.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DBPmnr4a.d.ts","names":["Split","TupleToUnion","ALPHABET","Alphabet","ValidChar","ApiNameCheck","N","P","R","L","AdvancedRecordMode","AdvancedRecord","K","A","mode","PropertyKey","AnyObject","T","Record","PlainObject","TreeLike","CK","AnyFunction","R$1","AnyAsyncFunction","Promise","AnyGeneratorFunction","Generator","AnyAsyncGeneratorFunction","AsyncGenerator"],"sources":["../node_modules/.pnpm/@pawover+types@0.0.0-alpha._d6a4faea50420a71bc77e0a59520b8b6/node_modules/@pawover/types/dist/index.d.ts"],"sourcesContent":["import { Split, TupleToUnion } from \"type-fest\";\n\n//#region src/api.d.ts\n/** 字母表 */\ntype ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n/** 单个字母 */\ntype Alphabet = TupleToUnion<Split<ALPHABET, \"\">>;\n/** 有效字符 */\ntype ValidChar = Alphabet | \"_\";\n/** 定义 API 命名 - 键名检查 */\ntype ApiNameCheck<N extends string, P extends string = \"\"> = N extends `${infer L extends ValidChar}${infer R}` ? ApiNameCheck<R, `${P}${L}`> : P extends `${infer S}_` ? S : P;\n//#endregion\n//#region src/advancedRecord.d.ts\ntype AdvancedRecordMode = [\"?\" | \"!\", \"W\" | \"R\"];\ntype AdvancedRecord<K extends PropertyKey, A = unknown, mode extends AdvancedRecordMode = [\"!\", \"W\"]> = {\n \"!\": {\n R: { readonly [P in K]: A };\n W: { [P in K]: A };\n };\n \"?\": {\n R: { readonly [P in K]?: A };\n W: { [P in K]?: A };\n };\n}[mode[0]][mode[1]];\n//#endregion\n//#region src/index.d.ts\n/** 任意对象类型 */\ntype AnyObject<K extends PropertyKey = PropertyKey, T = any> = Record<K, T>;\n/** 普通对象类型 */\ntype PlainObject<K extends PropertyKey = PropertyKey, T = unknown> = Record<K, T>;\n/** 描述树类型 */\ntype TreeLike<T extends AnyObject, CK extends string = \"children\"> = T & Record<CK, TreeLike<T, CK>[]>;\n/** 描述函数类型 */\ntype AnyFunction<P extends any[] = any[], R$1 = any> = (...arg: P) => R$1;\n/** 描述异步函数类型 */\ntype AnyAsyncFunction<P extends any[] = any[], R$1 = any> = (...args: P) => Promise<R$1>;\ntype AnyGeneratorFunction<P extends any[] = any[], T = any, R$1 = any, N = any> = (...args: P) => Generator<T, R$1, N>;\ntype AnyAsyncGeneratorFunction<P extends any[] = any[], T = any, R$1 = any, N = any> = (...args: P) => AsyncGenerator<T, R$1, N>;\n//#endregion\nexport { AdvancedRecord, AdvancedRecordMode, AnyAsyncFunction, AnyAsyncGeneratorFunction, AnyFunction, AnyGeneratorFunction, AnyObject, type ApiNameCheck, PlainObject, TreeLike };\n//# sourceMappingURL=index.d.ts.map"],"x_google_ignoreList":[0],"mappings":";;AA+B+E;AAEN;;KANpEgB,SAQ+EO,CAAAA,UAR3DR,WAQ2DQ,GAR7CR,WAQ6CQ,EAAAA,IAAAA,GAAAA,CAAAA,GARrBL,MAQqBK,CARdX,CAQcW,EARXN,CAQWM,CAAAA;;KAN/EJ,WAM8E,CAAA,UANxDJ,WAMwD,GAN1CA,WAM0C,EAAA,IAAA,OAAA,CAAA,GANdG,MAMc,CANPN,CAMO,EANJK,CAMI,CAAA;AAAA;KAJ9EG,QAKuFb,CAAAA,UALpES,SAKoET,EAAAA,WAAAA,MAAAA,GAAAA,UAAAA,CAAAA,GALvBU,CAKuBV,GALnBW,MAKmBX,CALZc,EAKYd,EALRa,QAKQb,CALCU,CAKDV,EALIc,EAKJd,CAAAA,EAAAA,CAAAA;;KAHvFe,WAG0GC,CAAAA,UAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,EAAAA,MAAAA,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,GAAAA,EAH/ChB,CAG+CgB,EAAAA,GAHzCA,GAGyCA;;KAD1GC,gBAC6FG,CAAAA,UAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,EAAAA,MAAAA,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,IAAAA,EAD5BpB,CAC4BoB,EAAAA,GADtBF,OACsBE,CADdJ,GACcI,CAAAA;KAA7FD,oBAAsG,CAAA,UAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,IAAA,GAAA,EAAA,MAAA,GAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAAfnB,CAAe,EAAA,GAAToB,SAAS,CAACV,CAAD,EAAIM,GAAJ,EAASjB,CAAT,CAAA;AAAA,KACtGsB,yBAAAA,CAAAA,UAAyBrB,GAAAU,EAAAM,GAAAA,GAAAjB,EAAAA,EAAA,IAAA,GAAA,EAAA,MAAA,GAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAAmEC,CAAnE,EAAA,GAAyEsB,cAAzE,CAAwFZ,CAAxF,EAA2FM,GAA3F,EAAgGjB,CAAhG,CAAA"}
|