giime 0.6.23 → 0.6.25
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.css +62 -57
- package/es/components/src/base/chart/Chart.vue.d.ts +2 -2
- package/es/components/src/base/chart/index.d.ts +2 -2
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +9 -0
- package/es/components/src/business/uploadMaterial/index.d.ts +19 -0
- package/es/components/src/business/uploadMaterial/uploadMaterial.d.ts +4 -0
- package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +9 -2
- package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +16 -15
- package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
- package/es/components/src/composite/uploadFile/index.d.ts +19 -0
- package/es/components/src/composite/uploadFile/uploadFile.d.ts +5 -0
- package/es/components/src/composite/uploadFile/uploadFile.mjs +6 -1
- package/es/components/src/composite/uploadFile/uploadFile.mjs.map +1 -1
- package/es/giime/index.mjs +3 -1
- package/es/giime/index.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/index.css +62 -57
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.mjs +4 -1
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/src/is.d.ts +48 -36
- package/es/utils/src/is.mjs +47 -34
- package/es/utils/src/is.mjs.map +1 -1
- package/lib/components/src/base/chart/Chart.vue.d.ts +2 -2
- package/lib/components/src/base/chart/index.d.ts +2 -2
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +9 -0
- package/lib/components/src/business/uploadMaterial/index.d.ts +19 -0
- package/lib/components/src/business/uploadMaterial/uploadMaterial.d.ts +4 -0
- package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +9 -2
- package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +22 -21
- package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
- package/lib/components/src/composite/uploadFile/index.d.ts +19 -0
- package/lib/components/src/composite/uploadFile/uploadFile.d.ts +5 -0
- package/lib/components/src/composite/uploadFile/uploadFile.js +6 -1
- package/lib/components/src/composite/uploadFile/uploadFile.js.map +1 -1
- package/lib/giime/index.js +19 -0
- package/lib/giime/index.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/index.css +62 -57
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +20 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/is.d.ts +48 -36
- package/lib/utils/src/is.js +51 -33
- package/lib/utils/src/is.js.map +1 -1
- package/package.json +1 -1
package/lib/utils/src/is.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare function isString(value: any): value is string;
|
|
|
5
5
|
export declare function isNumber(value: any): value is number;
|
|
6
6
|
export declare function isSymbol(value: any): value is symbol;
|
|
7
7
|
export declare function isDate(value: any): value is Date;
|
|
8
|
+
export declare const isFunction: (val: unknown) => val is Function;
|
|
8
9
|
/**
|
|
9
10
|
* 整数
|
|
10
11
|
*/
|
|
@@ -39,57 +40,68 @@ export declare function isNil(val: any): val is null | undefined;
|
|
|
39
40
|
export declare function isError(value: any): value is Error;
|
|
40
41
|
export declare function isPlainObject(value: any): value is object;
|
|
41
42
|
export declare const isHttps: () => boolean;
|
|
43
|
+
export declare const isClient: boolean;
|
|
44
|
+
export declare const isIOS: boolean | "";
|
|
42
45
|
/**
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
* 文件类型枚举
|
|
47
|
+
*/
|
|
48
|
+
export declare enum FileType {
|
|
49
|
+
Video = "Video",
|
|
50
|
+
Image = "Image",
|
|
51
|
+
Pdf = "Pdf",
|
|
52
|
+
Word = "Word",
|
|
53
|
+
Excel = "Excel",
|
|
54
|
+
Ppt = "Ppt",
|
|
55
|
+
Text = "Text",
|
|
56
|
+
Psd = "Psd",
|
|
57
|
+
Zip = "Zip"
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 不同文件类型的扩展名配置
|
|
61
|
+
*/
|
|
62
|
+
export declare const FILE_EXTENSIONS: Record<FileType, readonly string[]>;
|
|
63
|
+
/**
|
|
64
|
+
* @description 判断是否为视频
|
|
65
|
+
* @param url 文件链接 或 文件名
|
|
66
|
+
*/
|
|
47
67
|
export declare const isVideoUrl: (url: string) => boolean;
|
|
48
68
|
/**
|
|
49
|
-
* @description
|
|
50
|
-
* @param
|
|
51
|
-
|
|
52
|
-
**/
|
|
69
|
+
* @description 判断是否为图片
|
|
70
|
+
* @param url 文件链接 或 文件名
|
|
71
|
+
*/
|
|
53
72
|
export declare const isImageUrl: (url: string) => boolean;
|
|
54
73
|
/**
|
|
55
|
-
* @description
|
|
56
|
-
* @param
|
|
57
|
-
|
|
58
|
-
**/
|
|
74
|
+
* @description 判断是否为PDF
|
|
75
|
+
* @param url 文件链接 或 文件名
|
|
76
|
+
*/
|
|
59
77
|
export declare const isPDF: (url: string) => boolean;
|
|
60
78
|
/**
|
|
61
|
-
* @description
|
|
62
|
-
* @param
|
|
63
|
-
|
|
64
|
-
**/
|
|
79
|
+
* @description 是否为Word文档
|
|
80
|
+
* @param url 文件链接 或 文件名
|
|
81
|
+
*/
|
|
65
82
|
export declare const isWord: (url: string) => boolean;
|
|
66
83
|
/**
|
|
67
|
-
* @description
|
|
68
|
-
* @param
|
|
69
|
-
|
|
70
|
-
**/
|
|
84
|
+
* @description 是否为Excel文件
|
|
85
|
+
* @param url 文件链接 或 文件名
|
|
86
|
+
*/
|
|
71
87
|
export declare const isExcel: (url: string) => boolean;
|
|
72
88
|
/**
|
|
73
|
-
* @description
|
|
74
|
-
* @param
|
|
75
|
-
|
|
76
|
-
**/
|
|
89
|
+
* @description 是否为PPT文件
|
|
90
|
+
* @param url 文件链接 或 文件名
|
|
91
|
+
*/
|
|
77
92
|
export declare const isPPT: (url: string) => boolean;
|
|
78
93
|
/**
|
|
79
|
-
* @description
|
|
80
|
-
* @param
|
|
81
|
-
|
|
82
|
-
**/
|
|
94
|
+
* @description 是否为文本文件
|
|
95
|
+
* @param url 文件链接 或 文件名
|
|
96
|
+
*/
|
|
83
97
|
export declare const isText: (url: string) => boolean;
|
|
84
98
|
/**
|
|
85
|
-
* @description
|
|
86
|
-
* @param
|
|
87
|
-
|
|
88
|
-
**/
|
|
99
|
+
* @description 是否为PSD文件
|
|
100
|
+
* @param url 文件链接 或 文件名
|
|
101
|
+
*/
|
|
89
102
|
export declare const isPSD: (url: string) => boolean;
|
|
90
103
|
/**
|
|
91
|
-
* @description
|
|
92
|
-
* @param
|
|
93
|
-
|
|
94
|
-
**/
|
|
104
|
+
* @description 判断是否为压缩包
|
|
105
|
+
* @param url 文件链接 或 文件名
|
|
106
|
+
*/
|
|
95
107
|
export declare const isZip: (url: string) => boolean;
|
package/lib/utils/src/is.js
CHANGED
|
@@ -27,6 +27,7 @@ function isSymbol(value) {
|
|
|
27
27
|
function isDate(value) {
|
|
28
28
|
return isObjectLike(value) && getTag(value) === "[object Date]";
|
|
29
29
|
}
|
|
30
|
+
const isFunction = (val) => typeof val === "function";
|
|
30
31
|
function isInteger(val) {
|
|
31
32
|
return isNumber(val) && val % 1 === 0;
|
|
32
33
|
}
|
|
@@ -77,51 +78,68 @@ function isPlainObject(value) {
|
|
|
77
78
|
const isHttps = () => {
|
|
78
79
|
return window.location.protocol.startsWith("https");
|
|
79
80
|
};
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
|
|
82
|
+
const isIOS = /* @__PURE__ */ getIsIOS();
|
|
83
|
+
function getIsIOS() {
|
|
84
|
+
return isClient && window?.navigator?.userAgent && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || // The new iPad Pro Gen3 does not identify itself as iPad, but as Macintosh.
|
|
85
|
+
// https://github.com/vueuse/vueuse/issues/3577
|
|
86
|
+
window?.navigator?.maxTouchPoints > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent));
|
|
87
|
+
}
|
|
88
|
+
var FileType = /* @__PURE__ */ ((FileType2) => {
|
|
89
|
+
FileType2["Video"] = "Video";
|
|
90
|
+
FileType2["Image"] = "Image";
|
|
91
|
+
FileType2["Pdf"] = "Pdf";
|
|
92
|
+
FileType2["Word"] = "Word";
|
|
93
|
+
FileType2["Excel"] = "Excel";
|
|
94
|
+
FileType2["Ppt"] = "Ppt";
|
|
95
|
+
FileType2["Text"] = "Text";
|
|
96
|
+
FileType2["Psd"] = "Psd";
|
|
97
|
+
FileType2["Zip"] = "Zip";
|
|
98
|
+
return FileType2;
|
|
99
|
+
})(FileType || {});
|
|
100
|
+
const FILE_EXTENSIONS = {
|
|
101
|
+
["Video" /* Video */]: ["mp4", "avi", "rmvb", "rm", "wmv", "mpg", "mpeg", "mov", "mkv", "flv"],
|
|
102
|
+
["Image" /* Image */]: ["jpg", "jpeg", "png", "gif", "webp", "svg", "bmp"],
|
|
103
|
+
["Pdf" /* Pdf */]: ["pdf"],
|
|
104
|
+
["Word" /* Word */]: ["doc", "docx"],
|
|
105
|
+
["Excel" /* Excel */]: ["xls", "xlsx"],
|
|
106
|
+
["Ppt" /* Ppt */]: ["ppt", "pptx"],
|
|
107
|
+
["Text" /* Text */]: ["txt"],
|
|
108
|
+
["Psd" /* Psd */]: ["psd"],
|
|
109
|
+
["Zip" /* Zip */]: ["zip", "rar", "7z"]
|
|
83
110
|
};
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
return imageReg.test(url);
|
|
111
|
+
const createExtensionRegex = (extensions) => {
|
|
112
|
+
return new RegExp(`\\.(${extensions.join("|")})$`, "i");
|
|
87
113
|
};
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const docReg = /\.(doc|docx)$/i;
|
|
94
|
-
return docReg.test(url);
|
|
95
|
-
};
|
|
96
|
-
const isExcel = (url) => {
|
|
97
|
-
const excelReg = /\.(xls|xlsx)$/i;
|
|
98
|
-
return excelReg.test(url);
|
|
99
|
-
};
|
|
100
|
-
const isPPT = (url) => {
|
|
101
|
-
const pptReg = /\.(ppt|pptx)$/i;
|
|
102
|
-
return pptReg.test(url);
|
|
103
|
-
};
|
|
104
|
-
const isText = (url) => {
|
|
105
|
-
const textReg = /\.(txt)$/i;
|
|
106
|
-
return textReg.test(url);
|
|
107
|
-
};
|
|
108
|
-
const isPSD = (url) => {
|
|
109
|
-
const psdReg = /\.(psd)$/i;
|
|
110
|
-
return psdReg.test(url);
|
|
111
|
-
};
|
|
112
|
-
const isZip = (url) => {
|
|
113
|
-
const zipReg = /\.(zip|rar|7z)$/i;
|
|
114
|
-
return zipReg.test(url);
|
|
114
|
+
const isFileType = (url, type) => {
|
|
115
|
+
if (!isString(url))
|
|
116
|
+
return false;
|
|
117
|
+
const regex = createExtensionRegex(FILE_EXTENSIONS[type]);
|
|
118
|
+
return regex.test(url);
|
|
115
119
|
};
|
|
120
|
+
const isVideoUrl = (url) => isFileType(url, "Video" /* Video */);
|
|
121
|
+
const isImageUrl = (url) => isFileType(url, "Image" /* Image */);
|
|
122
|
+
const isPDF = (url) => isFileType(url, "Pdf" /* Pdf */);
|
|
123
|
+
const isWord = (url) => isFileType(url, "Word" /* Word */);
|
|
124
|
+
const isExcel = (url) => isFileType(url, "Excel" /* Excel */);
|
|
125
|
+
const isPPT = (url) => isFileType(url, "Ppt" /* Ppt */);
|
|
126
|
+
const isText = (url) => isFileType(url, "Text" /* Text */);
|
|
127
|
+
const isPSD = (url) => isFileType(url, "Psd" /* Psd */);
|
|
128
|
+
const isZip = (url) => isFileType(url, "Zip" /* Zip */);
|
|
116
129
|
|
|
130
|
+
exports.FILE_EXTENSIONS = FILE_EXTENSIONS;
|
|
131
|
+
exports.FileType = FileType;
|
|
117
132
|
exports.getTag = getTag;
|
|
118
133
|
exports.isBoolean = isBoolean;
|
|
134
|
+
exports.isClient = isClient;
|
|
119
135
|
exports.isDate = isDate;
|
|
120
136
|
exports.isDecimal = isDecimal;
|
|
121
137
|
exports.isError = isError;
|
|
122
138
|
exports.isEven = isEven;
|
|
123
139
|
exports.isExcel = isExcel;
|
|
140
|
+
exports.isFunction = isFunction;
|
|
124
141
|
exports.isHttps = isHttps;
|
|
142
|
+
exports.isIOS = isIOS;
|
|
125
143
|
exports.isImageUrl = isImageUrl;
|
|
126
144
|
exports.isInteger = isInteger;
|
|
127
145
|
exports.isNegative = isNegative;
|
package/lib/utils/src/is.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.js","sources":["../../../../../packages/utils/src/is.ts"],"sourcesContent":["const toString = Object.prototype.toString;\nexport function getTag(value: any): string {\n if (value === null) {\n return '[object Null]';\n } else if (value === undefined) {\n return '[object Undefined]';\n }\n return toString.call(value);\n}\nexport function isObjectLike(value: any): boolean {\n return typeof value === 'object' && value !== null;\n}\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && getTag(value) === '[object Boolean]');\n}\n\nexport function isString(value: any): value is string {\n return typeof value === 'string' || (isObjectLike(value) && getTag(value) === '[object String]');\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && getTag(value) === '[object Number]');\n}\nexport function isSymbol(value: any): value is symbol {\n return typeof value === 'symbol' || (isObjectLike(value) && getTag(value) === '[object Symbol]');\n}\nexport function isDate(value: any): value is Date {\n return isObjectLike(value) && getTag(value) === '[object Date]';\n}\n/**\n * 整数\n */\nexport function isInteger(val: any): val is number {\n return isNumber(val) && val % 1 === 0;\n}\n/**\n * 小数\n */\nexport function isDecimal(val: any): val is number {\n return isNumber(val) && val % 1 !== 0;\n}\n/**\n * 负数\n */\nexport function isNegative(val: any): val is number {\n return isNumber(val) && val < 0;\n}\n/**\n * 正数\n */\nexport function isPositive(val: any): val is number {\n return isNumber(val) && val > 0;\n}\n/**\n * 奇数\n */\nexport function isOdd(val: any): val is number {\n return isNumber(val) && val % 2 !== 0;\n}\n/**\n * 偶数\n */\nexport function isEven(val: any): val is number {\n return isNumber(val) && val % 2 === 0;\n}\n\nexport function isUndefined(val: any): val is undefined {\n return val === undefined;\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isNil(val: any): val is null | undefined {\n return isUndefined(val) || isNull(val);\n}\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n */\nexport function isError(value: any): value is Error {\n if (!isObjectLike(value)) {\n return false;\n }\n const tag = getTag(value);\n return (\n tag === '[object Error]' ||\n tag === '[object DOMException]' ||\n (typeof value.message === 'string' && typeof value.name === 'string' && !isPlainObject(value))\n );\n}\nexport function isPlainObject(value: any): value is object {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\n\nexport const isHttps = () => {\n return window.location.protocol.startsWith('https');\n};\n\n/**\n * @description 描述:判断是否为视频\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isVideoUrl = (url: string): boolean => {\n const videoReg = /\\.(mp4|avi|rmvb|rm|wmv|mpg|mpeg|mov|mkv|flv)$/i;\n return videoReg.test(url);\n};\n\n/**\n * @description 描述:判断是否为图片\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isImageUrl = (url: string): boolean => {\n const imageReg = /\\.(jpg|jpeg|png|gif|webp|svg|bmp)$/i;\n return imageReg.test(url);\n};\n\n/**\n * @description 描述:判断是否为PDF\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isPDF = (url: string): boolean => {\n const pdfReg = /\\.(pdf)$/i;\n return pdfReg.test(url);\n};\n\n/**\n * @description 描述:是否为Word\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isWord = (url: string): boolean => {\n const docReg = /\\.(doc|docx)$/i;\n return docReg.test(url);\n};\n\n/**\n * @description 描述:是否为Excel\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isExcel = (url: string): boolean => {\n const excelReg = /\\.(xls|xlsx)$/i;\n return excelReg.test(url);\n};\n\n/**\n * @description 描述:是否为PPT\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isPPT = (url: string): boolean => {\n const pptReg = /\\.(ppt|pptx)$/i;\n return pptReg.test(url);\n};\n\n/**\n * @description 描述:是否为text\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isText = (url: string): boolean => {\n const textReg = /\\.(txt)$/i;\n return textReg.test(url);\n};\n\n/**\n * @description 描述:是否为PSD\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isPSD = (url: string): boolean => {\n const psdReg = /\\.(psd)$/i;\n return psdReg.test(url);\n};\n\n/**\n * @description 描述:是否为压缩包\n * @param {string} url 文件链接 或 文件名\n * @return {*}\n **/\nexport const isZip = (url: string): boolean => {\n const zipReg = /\\.(zip|rar|7z)$/i;\n return zipReg.test(url);\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"is.js","sources":["../../../../../packages/utils/src/is.ts"],"sourcesContent":["const toString = Object.prototype.toString;\nexport function getTag(value: any): string {\n if (value === null) {\n return '[object Null]';\n } else if (value === undefined) {\n return '[object Undefined]';\n }\n return toString.call(value);\n}\nexport function isObjectLike(value: any): boolean {\n return typeof value === 'object' && value !== null;\n}\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && getTag(value) === '[object Boolean]');\n}\n\nexport function isString(value: any): value is string {\n return typeof value === 'string' || (isObjectLike(value) && getTag(value) === '[object String]');\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && getTag(value) === '[object Number]');\n}\nexport function isSymbol(value: any): value is symbol {\n return typeof value === 'symbol' || (isObjectLike(value) && getTag(value) === '[object Symbol]');\n}\nexport function isDate(value: any): value is Date {\n return isObjectLike(value) && getTag(value) === '[object Date]';\n}\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n/**\n * 整数\n */\nexport function isInteger(val: any): val is number {\n return isNumber(val) && val % 1 === 0;\n}\n/**\n * 小数\n */\nexport function isDecimal(val: any): val is number {\n return isNumber(val) && val % 1 !== 0;\n}\n/**\n * 负数\n */\nexport function isNegative(val: any): val is number {\n return isNumber(val) && val < 0;\n}\n/**\n * 正数\n */\nexport function isPositive(val: any): val is number {\n return isNumber(val) && val > 0;\n}\n/**\n * 奇数\n */\nexport function isOdd(val: any): val is number {\n return isNumber(val) && val % 2 !== 0;\n}\n/**\n * 偶数\n */\nexport function isEven(val: any): val is number {\n return isNumber(val) && val % 2 === 0;\n}\n\nexport function isUndefined(val: any): val is undefined {\n return val === undefined;\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isNil(val: any): val is null | undefined {\n return isUndefined(val) || isNull(val);\n}\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n */\nexport function isError(value: any): value is Error {\n if (!isObjectLike(value)) {\n return false;\n }\n const tag = getTag(value);\n return (\n tag === '[object Error]' ||\n tag === '[object DOMException]' ||\n (typeof value.message === 'string' && typeof value.name === 'string' && !isPlainObject(value))\n );\n}\nexport function isPlainObject(value: any): value is object {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}\n\nexport const isHttps = () => {\n return window.location.protocol.startsWith('https');\n};\nexport const isClient = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nexport const isIOS = /* #__PURE__ */ getIsIOS();\n\nfunction getIsIOS() {\n return (\n isClient &&\n window?.navigator?.userAgent &&\n (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) ||\n // The new iPad Pro Gen3 does not identify itself as iPad, but as Macintosh.\n // https://github.com/vueuse/vueuse/issues/3577\n (window?.navigator?.maxTouchPoints > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent)))\n );\n}\n\n/**\n * 文件类型枚举\n */\nexport enum FileType {\n Video = 'Video',\n Image = 'Image',\n Pdf = 'Pdf',\n Word = 'Word',\n Excel = 'Excel',\n Ppt = 'Ppt',\n Text = 'Text',\n Psd = 'Psd',\n Zip = 'Zip',\n}\n\n/**\n * 不同文件类型的扩展名配置\n */\nexport const FILE_EXTENSIONS: Record<FileType, readonly string[]> = {\n [FileType.Video]: ['mp4', 'avi', 'rmvb', 'rm', 'wmv', 'mpg', 'mpeg', 'mov', 'mkv', 'flv'],\n [FileType.Image]: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'bmp'],\n [FileType.Pdf]: ['pdf'],\n [FileType.Word]: ['doc', 'docx'],\n [FileType.Excel]: ['xls', 'xlsx'],\n [FileType.Ppt]: ['ppt', 'pptx'],\n [FileType.Text]: ['txt'],\n [FileType.Psd]: ['psd'],\n [FileType.Zip]: ['zip', 'rar', '7z'],\n} as const;\n\n/**\n * 创建用于匹配文件扩展名的正则表达式\n * @param extensions 文件扩展名数组\n * @returns 用于匹配文件扩展名的正则表达式\n */\nconst createExtensionRegex = (extensions: readonly string[]): RegExp => {\n return new RegExp(`\\\\.(${extensions.join('|')})$`, 'i');\n};\n\n/**\n * 通用函数,用于检查URL是否匹配特定文件扩展名\n * @param url 要检查的文件URL或文件名\n * @param type 要检查的文件类型\n * @returns 布尔值,表示URL是否匹配该文件类型\n */\nconst isFileType = (url: string, type: FileType): boolean => {\n if (!isString(url)) return false;\n const regex = createExtensionRegex(FILE_EXTENSIONS[type]);\n return regex.test(url);\n};\n\n/**\n * @description 判断是否为视频\n * @param url 文件链接 或 文件名\n */\nexport const isVideoUrl = (url: string): boolean => isFileType(url, FileType.Video);\n\n/**\n * @description 判断是否为图片\n * @param url 文件链接 或 文件名\n */\nexport const isImageUrl = (url: string): boolean => isFileType(url, FileType.Image);\n\n/**\n * @description 判断是否为PDF\n * @param url 文件链接 或 文件名\n */\nexport const isPDF = (url: string): boolean => isFileType(url, FileType.Pdf);\n\n/**\n * @description 是否为Word文档\n * @param url 文件链接 或 文件名\n */\nexport const isWord = (url: string): boolean => isFileType(url, FileType.Word);\n\n/**\n * @description 是否为Excel文件\n * @param url 文件链接 或 文件名\n */\nexport const isExcel = (url: string): boolean => isFileType(url, FileType.Excel);\n\n/**\n * @description 是否为PPT文件\n * @param url 文件链接 或 文件名\n */\nexport const isPPT = (url: string): boolean => isFileType(url, FileType.Ppt);\n\n/**\n * @description 是否为文本文件\n * @param url 文件链接 或 文件名\n */\nexport const isText = (url: string): boolean => isFileType(url, FileType.Text);\n\n/**\n * @description 是否为PSD文件\n * @param url 文件链接 或 文件名\n */\nexport const isPSD = (url: string): boolean => isFileType(url, FileType.Psd);\n\n/**\n * @description 判断是否为压缩包\n * @param url 文件链接 或 文件名\n */\nexport const isZip = (url: string): boolean => isFileType(url, FileType.Zip);\n"],"names":["FileType"],"mappings":"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"}
|