@polyv/utils 2.8.0 → 2.9.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/boolean.d.ts +1 -1
- package/cjs/boolean.js +1 -1
- package/cjs/browser.d.ts +5 -1
- package/cjs/browser.js +1 -1
- package/cjs/countdown.d.ts +1 -1
- package/cjs/date.js +1 -1
- package/cjs/event.d.ts +3 -3
- package/cjs/file.d.ts +49 -0
- package/cjs/file.js +1 -0
- package/cjs/image.js +1 -1
- package/cjs/json.js +1 -1
- package/cjs/net.js +1 -1
- package/cjs/string.d.ts +2 -2
- package/cjs/string.js +1 -1
- package/cjs/validate.js +1 -1
- package/es/boolean.d.ts +1 -1
- package/es/browser.d.ts +5 -1
- package/es/browser.js +1 -1
- package/es/countdown.d.ts +1 -1
- package/es/event.d.ts +3 -3
- package/es/file.d.ts +49 -0
- package/es/file.js +1 -0
- package/es/string.d.ts +2 -2
- package/package.json +2 -3
package/cjs/boolean.d.ts
CHANGED
package/cjs/boolean.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function boolToYN(o){if("boolean"!=typeof o)throw new Error("The value argument must be a boolean type");return o?"Y":"N"}function ynToBool(o,e){var r=String(o).toUpperCase();if("Y"!==r&&"N"!==r){if(null==e)throw new Error('The value argument must be "Y" or "N"');r=String(e).toUpperCase()}return"Y"===r}function allY(o){return o.every((function(o){return ynToBool(o)}))}function someY(o){return o.some((function(o){return ynToBool(o)}))}function allN(o){return o.every((function(o){return!ynToBool(o)}))}function someN(o){return o.some((function(o){return!ynToBool(o)}))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";function boolToYN(o){if("boolean"!=typeof o)throw new Error("The value argument must be a boolean type");return o?"Y":"N"}function ynToBool(o,e){var r=String(o).toUpperCase();if("Y"!==r&&"N"!==r){if(null==e)throw new Error('The value argument must be "Y" or "N"');r=String(e).toUpperCase()}return"Y"===r}function allY(o){return o.every((function(o){return ynToBool(o)}))}function someY(o){return o.some((function(o){return ynToBool(o)}))}function allN(o){return o.every((function(o){return!ynToBool(o)}))}function someN(o){return o.some((function(o){return!ynToBool(o)}))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.boolToYN=boolToYN,exports.ynToBool=ynToBool,exports.allY=allY,exports.someY=someY,exports.allN=allN,exports.someN=someN;
|
package/cjs/browser.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本模块提供浏览器特性检测相关方法。
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* 检测当前浏览器是否运行在移动设备上(User-Agent 识别为主,特征判断为辅)。
|
|
3
7
|
* @returns 当前浏览器是否运行在移动设备上。
|
|
@@ -12,7 +16,7 @@ export declare function hasMobileFeature(): boolean;
|
|
|
12
16
|
* 检测当前浏览器是否为傲游浏览器。
|
|
13
17
|
* @returns 当前浏览器是否为傲游浏览器。
|
|
14
18
|
*/
|
|
15
|
-
export declare function isMaxthon():
|
|
19
|
+
export declare function isMaxthon(): boolean;
|
|
16
20
|
/**
|
|
17
21
|
* 检测当前浏览器是否支持通过 MSE 播放 H264 视频。
|
|
18
22
|
* @returns 当前浏览器是否支持通过 MSE 播放 H264 视频。
|
package/cjs/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function isMobile(){var
|
|
1
|
+
"use strict";function isMobile(){var t=navigator.userAgent;return!!/mobile|android/i.test(t)||!/\b(Windows\sNT|Macintosh|x86(_(32|64))?|amd64|i[1-6]86)\b/.test(t)&&("onorientationchange"in window&&"number"==typeof window.orientation)}function hasMobileFeature(){var t=navigator.platform;return"onorientationchange"in window&&"number"==typeof window.orientation||(!!/^(iPhone|iPod|iPad)/.test(t)||"Win32"!==t&&!/^Linux\s*(x86|i686)/.test(t)&&("MacIntel"===t||"Macintosh"===t?navigator.maxTouchPoints>0:"function"==typeof matchMedia&&(matchMedia("(hover: none)").matches&&matchMedia("(pointer: coarse)").matches&&!matchMedia("(pointer: fine)").matches)))}function isMaxthon(){var t=navigator.userAgent;if(/\bMaxthon\b/i.test(t))return!0;if("maxthon"in window){var e=window.maxthon;return"function"==typeof e.IsMaxthon&&e.IsMaxthon()}return!1}function supportMSEH264(){var t=window.MediaSource;return t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}Object.defineProperty(exports,"__esModule",{value:!0}),exports.isMobile=isMobile,exports.hasMobileFeature=hasMobileFeature,exports.isMaxthon=isMaxthon,exports.supportMSEH264=supportMSEH264;
|
package/cjs/countdown.d.ts
CHANGED
package/cjs/date.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}function formatDate(e,t){var r={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){var t=r[e[0]].toString(),n=e.length;return n>t.length&&(t=new Array(n-t.length+1).join("0")+t),t}))}function formatSeconds(e,t){if(void 0===t&&(t={segments:2,digits:2}),e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');var r=0|(t.segments||2),n=0|(t.digits||2);n=Math.max(1,n),-1===[2,3].indexOf(r)&&(r=2);var o=new Array(n+1).join("0"),a=[60,1];return 3===t.segments&&a.unshift(3600),a.map((function(t){var r=Math.floor(e/t),a=r.toString().length;return e%=t,(o+r).slice(-Math.max(a,n))})).join(":")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}function formatDate(e,t){var r={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){var t=r[e[0]].toString(),n=e.length;return n>t.length&&(t=new Array(n-t.length+1).join("0")+t),t}))}function formatSeconds(e,t){if(void 0===t&&(t={segments:2,digits:2}),e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');var r=0|(t.segments||2),n=0|(t.digits||2);n=Math.max(1,n),-1===[2,3].indexOf(r)&&(r=2);var o=new Array(n+1).join("0"),a=[60,1];return 3===t.segments&&a.unshift(3600),a.map((function(t){var r=Math.floor(e/t),a=r.toString().length;return e%=t,(o+r).slice(-Math.max(a,n))})).join(":")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatDate=formatDate,exports.formatSeconds=formatSeconds;
|
package/cjs/event.d.ts
CHANGED
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
/**
|
|
60
60
|
* 事件类型
|
|
61
61
|
*/
|
|
62
|
-
export
|
|
62
|
+
export type EventType = number | string | symbol;
|
|
63
63
|
/**
|
|
64
64
|
* 事件参数关系类型
|
|
65
65
|
*/
|
|
66
|
-
export
|
|
66
|
+
export type EventRelationsType = Record<EventType, unknown>;
|
|
67
67
|
/**
|
|
68
68
|
* 事件回调函数类型
|
|
69
69
|
*/
|
|
70
|
-
export
|
|
70
|
+
export type EventHandler<Relations extends EventRelationsType, E extends EventType> = (params: Relations[E]) => unknown;
|
|
71
71
|
export declare class EventEmitter<Relations extends EventRelationsType = EventRelationsType, Events extends EventType = string> {
|
|
72
72
|
/**
|
|
73
73
|
* 事件回调存储器
|
package/cjs/file.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本模块提供文件处理相关方法。
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 文件体积单位。
|
|
7
|
+
*/
|
|
8
|
+
export declare enum FileSizeUnit {
|
|
9
|
+
B = "B",
|
|
10
|
+
KB = "KB",
|
|
11
|
+
MB = "MB",
|
|
12
|
+
GB = "GB",
|
|
13
|
+
TB = "TB"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 文件体积转换选项。
|
|
17
|
+
*/
|
|
18
|
+
export interface FileSizeConversionOptions {
|
|
19
|
+
/**
|
|
20
|
+
* 目标单位。
|
|
21
|
+
*/
|
|
22
|
+
unit: FileSizeUnit;
|
|
23
|
+
/**
|
|
24
|
+
* 是否允许纯小数。
|
|
25
|
+
* 如果不允许,则在保证转换目标值大于 1 的前提下,以距离目标单位最近的单位进行转换。
|
|
26
|
+
* 默认为允许。
|
|
27
|
+
*/
|
|
28
|
+
allowPureDecimal?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 文件体积转换结果。
|
|
32
|
+
*/
|
|
33
|
+
export interface FileSizeConversionResult {
|
|
34
|
+
/**
|
|
35
|
+
* 转过结果的值。
|
|
36
|
+
*/
|
|
37
|
+
value: number;
|
|
38
|
+
/**
|
|
39
|
+
* 转换结果的单位。
|
|
40
|
+
*/
|
|
41
|
+
unit: FileSizeUnit;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 转换文件体积。
|
|
45
|
+
* @param sizeInBytes 以字节为单位的文件体积值。
|
|
46
|
+
* @param options 转换选项。
|
|
47
|
+
* @returns 转换结果。
|
|
48
|
+
*/
|
|
49
|
+
export declare function convertFileSize(sizeInBytes: number, options: FileSizeUnit | FileSizeConversionOptions): FileSizeConversionResult;
|
package/cjs/file.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var FileSizeUnit;function convertFileSize(e,i){var t="object"==typeof i?Object.assign({},i):{unit:i};if(!t.unit)throw new Error("Please specify file size unit");var n=[FileSizeUnit.B,FileSizeUnit.KB,FileSizeUnit.MB,FileSizeUnit.GB,FileSizeUnit.TB],l={value:e,unit:t.unit};return n.some((function(i,r){var o=e/Math.pow(1024,r);return!1===t.allowPureDecimal&&o<1||(l.value=o,l.unit=i,t.unit===i||r===n.length)})),l}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileSizeUnit=void 0,exports.convertFileSize=convertFileSize,function(e){e.B="B",e.KB="KB",e.MB="MB",e.GB="GB",e.TB="TB"}(FileSizeUnit||(exports.FileSizeUnit=FileSizeUnit={}));
|
package/cjs/image.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function supportWebP(){var A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){var e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}function supportAVIF(){return new Promise((function(A){var e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=function(){A(!1)},e.onload=function(){A(!0)},setTimeout((function(){A(!1)}),1e3)}))}function ossCompress(A,e){var
|
|
1
|
+
"use strict";function supportWebP(){var A=document.createElement("canvas");if(A.getContext&&A.getContext("2d")){var e="image/webp";return 0===A.toDataURL(e).indexOf("data:"+e)}return!1}function supportAVIF(){return new Promise((function(A){var e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=",e.onerror=function(){A(!1)},e.onload=function(){A(!0)},setTimeout((function(){A(!1)}),1e3)}))}function ossCompress(A,e){var t=document.createElement("a");t.href=A;var s=t.search,o=t.hostname.toLowerCase();if(-1===["liveimages.videocc.net","vod-assets.videocc.net"].indexOf(o)||/(?:\?|&)x-oss-process(?:=|&|$)/.test(s))return A;var r="";return null==e.width&&null==e.height||(r+="/resize",e.width&&(r+=",w_"+e.width),e.height&&(r+=",h_"+e.height),r+=",limit_1"),e.allowAVIF?r+="/format,avif":e.allowWebP&&(r+="/format,webp"),r&&(r="x-oss-process=image"+r,A+=(-1===A.indexOf("?")?"?":"&")+r),A}function compressHTMLImgs(A,e){return A?A.replace(/(<img.*?\ssrc=)(["']?)(.+?)\2(.*?>)/gi,(function(A,t,s,o,r){return t+'"'+ossCompress(o,e)+'" data-src="'+o+'"'+r})):""}Object.defineProperty(exports,"__esModule",{value:!0}),exports.supportWebP=supportWebP,exports.supportAVIF=supportAVIF,exports.ossCompress=ossCompress,exports.compressHTMLImgs=compressHTMLImgs;
|
package/cjs/json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function cloneJSON(e){return null==e?e:JSON.parse(JSON.stringify(e))}function tryParseJSON(e,r){var t;try{t=JSON.parse(e)}catch(e){t="function"==typeof r?r(e):r}return t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";function cloneJSON(e){return null==e?e:JSON.parse(JSON.stringify(e))}function tryParseJSON(e,r){var t;try{t=JSON.parse(e)}catch(e){t="function"==typeof r?r(e):r}return t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.cloneJSON=cloneJSON,exports.tryParseJSON=tryParseJSON;
|
package/cjs/net.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.startsWithProtocol=startsWithProtocol,exports.changeProtocol=changeProtocol,exports.removeProtocol=removeProtocol,exports.normalizeProtocol=normalizeProtocol;var reProtocol=/^(?:([a-z]+):)?\/{2,3}/i;function startsWithProtocol(o,t){var r=reProtocol.test(o);if(r&&t){for(var e=(RegExp.$1||"").toLowerCase(),c=t.length-1;c>=0;c--)if(e===t[c].toLowerCase())return!0;return!1}return r}function changeProtocol(o,t){return reProtocol.test(t)||(t+="://"),startsWithProtocol(o)?o.replace(reProtocol,t):t+o}function removeProtocol(o){return o.replace(reProtocol,"")}function normalizeProtocol(o){return changeProtocol(o,"http:"===window.location.protocol?"http":"https")}
|
package/cjs/string.d.ts
CHANGED
|
@@ -91,8 +91,8 @@ export declare function randomStr(length: number, prefix?: string): string;
|
|
|
91
91
|
export declare function uuidV4(): string;
|
|
92
92
|
/**
|
|
93
93
|
* 版本号对比。
|
|
94
|
-
* @param
|
|
95
|
-
* @param
|
|
94
|
+
* @param verA 待比较版本 A。
|
|
95
|
+
* @param verB 待比较版本 B。
|
|
96
96
|
* @return 大于 0 时,表示版本 A 大于版本 B;
|
|
97
97
|
* 小于 0 时,表示版本 B 大于版本 A;
|
|
98
98
|
* 等于 0 时,表示两个版本号一致。
|
package/cjs/string.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function strLen(e,n){var r,t;"number"==typeof n?n={enLen:1,nonEnLen:n}:((n=n||{}).enLen=null!==(r=n.enLen)&&void 0!==r?r:1,n.nonEnLen=null!==(t=n.nonEnLen)&&void 0!==t?t:2);for(var o=0,
|
|
1
|
+
"use strict";function strLen(e,n){var r,t;"number"==typeof n?n={enLen:1,nonEnLen:n}:((n=n||{}).enLen=null!==(r=n.enLen)&&void 0!==r?r:1,n.nonEnLen=null!==(t=n.nonEnLen)&&void 0!==t?t:2);for(var o=0,i=e.length-1;i>=0;i--)o+=e.charCodeAt(i)>255?n.nonEnLen||0:n.enLen||0;return o}function cutStr(e,n,r){(r=r||{}).enLen=Number(r.enLen)||1,r.nonEnLen=Number(r.nonEnLen)||2,r.ellipsis=r.ellipsis||"...";var t=strLen(e=String(e),r);if(t<=n)return e;n-=strLen(r.ellipsis,r);for(var o="",i=-1;n>0&&++i<t;)(n-=e.charCodeAt(i)>255?r.nonEnLen:r.enLen)>=0&&(o+=e.charAt(i));return o+=r.ellipsis}Object.defineProperty(exports,"__esModule",{value:!0}),exports.strLen=strLen,exports.cutStr=cutStr,exports.escapeHTML=escapeHTML,exports.unescapeHTML=unescapeHTML,exports.removeTags=removeTags,exports.nl2br=nl2br,exports.randomStr=randomStr,exports.uuidV4=uuidV4,exports.compareVersions=compareVersions;var htmlChars=['"',"'","&","<",">"],htmlEntities=[""","'","&","<",">"],charsToEntities=Object.create(null),entitiesToChars=Object.create(null);htmlChars.forEach((function(e,n){charsToEntities[e]=htmlEntities[n],entitiesToChars[htmlEntities[n]]=e}));var reHTMLChars=new RegExp("["+htmlChars.join("")+"]","g"),reHTMLEntities=new RegExp("("+htmlEntities.join("|")+")","g");function escapeHTML(e){return null==e?e:String(e).replace(reHTMLChars,(function(e){return charsToEntities[e]}))}function unescapeHTML(e){return null==e?e:String(e).replace(reHTMLEntities,(function(e){return entitiesToChars[e]}))}function removeTags(e){return null==e?"":String(e).replace(/<.+?>/g,"")}function nl2br(e){return null==e?e:String(e).replace(/\r?\n/g,"<br />")}function randomStr(e,n){if(!(e|=0)||e<0)throw new Error('"length" must be a number greater than 0');var r="";do{r+=Math.random().toString(36).substr(2)}while(r.length<e);return r=r.substr(0,e),null!=n&&(r=n+r),r}function uuidV4(){var e=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(n){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===n?r:3&r|8).toString(16)}))}function compareVersions(e,n){if(!e||!n)throw new Error("Please specify both verA and verB");for(var r=/(\.0+)+$/,t=String(e).replace(r,"").split("."),o=String(n).replace(r,"").split("."),i=Math.min(t.length,o.length),s=0;s<i;s++){var a=parseInt(t[s])-parseInt(o[s]);if(a)return a}return t.length-o.length}
|
package/cjs/validate.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function isChsPhoneNO(e){return/^1[3-9]\d{9}$/.test(e)}function isPhoneNO(e,
|
|
1
|
+
"use strict";function isChsPhoneNO(e){return/^1[3-9]\d{9}$/.test(e)}function isPhoneNO(e,t){return void 0===t&&(t="+86"),"+86"===t?isChsPhoneNO(e):/^\d{5,20}$/.test(e)}function isEmail(e){if(/^[\w-]+(?:\.[\w-]+)*@[\w-]+(?:\.[\w-]+)*\.[a-zA-Z]{2,}$/.test(e)){for(var t=e.replace("@",".").split("."),s=t.length-1;s>=0;s--)if(/^[-_]/.test(t[s])||/[_-]$/.test(t[s]))return!1;return!0}return!1}Object.defineProperty(exports,"__esModule",{value:!0}),exports.isChsPhoneNO=isChsPhoneNO,exports.isPhoneNO=isPhoneNO,exports.isEmail=isEmail;
|
package/es/boolean.d.ts
CHANGED
package/es/browser.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本模块提供浏览器特性检测相关方法。
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* 检测当前浏览器是否运行在移动设备上(User-Agent 识别为主,特征判断为辅)。
|
|
3
7
|
* @returns 当前浏览器是否运行在移动设备上。
|
|
@@ -12,7 +16,7 @@ export declare function hasMobileFeature(): boolean;
|
|
|
12
16
|
* 检测当前浏览器是否为傲游浏览器。
|
|
13
17
|
* @returns 当前浏览器是否为傲游浏览器。
|
|
14
18
|
*/
|
|
15
|
-
export declare function isMaxthon():
|
|
19
|
+
export declare function isMaxthon(): boolean;
|
|
16
20
|
/**
|
|
17
21
|
* 检测当前浏览器是否支持通过 MSE 播放 H264 视频。
|
|
18
22
|
* @returns 当前浏览器是否支持通过 MSE 播放 H264 视频。
|
package/es/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function isMobile(){const
|
|
1
|
+
export function isMobile(){const n=navigator.userAgent;return!!/mobile|android/i.test(n)||!/\b(Windows\sNT|Macintosh|x86(_(32|64))?|amd64|i[1-6]86)\b/.test(n)&&("onorientationchange"in window&&"number"==typeof window.orientation)}export function hasMobileFeature(){const n=navigator.platform;return"onorientationchange"in window&&"number"==typeof window.orientation||(!!/^(iPhone|iPod|iPad)/.test(n)||"Win32"!==n&&!/^Linux\s*(x86|i686)/.test(n)&&("MacIntel"===n||"Macintosh"===n?navigator.maxTouchPoints>0:"function"==typeof matchMedia&&(matchMedia("(hover: none)").matches&&matchMedia("(pointer: coarse)").matches&&!matchMedia("(pointer: fine)").matches)))}export function isMaxthon(){const n=navigator.userAgent;if(/\bMaxthon\b/i.test(n))return!0;if("maxthon"in window){const n=window.maxthon;return"function"==typeof n.IsMaxthon&&n.IsMaxthon()}return!1}export function supportMSEH264(){const n=window.MediaSource;return n&&"function"==typeof n.isTypeSupported&&n.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}
|
package/es/countdown.d.ts
CHANGED
package/es/event.d.ts
CHANGED
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
/**
|
|
60
60
|
* 事件类型
|
|
61
61
|
*/
|
|
62
|
-
export
|
|
62
|
+
export type EventType = number | string | symbol;
|
|
63
63
|
/**
|
|
64
64
|
* 事件参数关系类型
|
|
65
65
|
*/
|
|
66
|
-
export
|
|
66
|
+
export type EventRelationsType = Record<EventType, unknown>;
|
|
67
67
|
/**
|
|
68
68
|
* 事件回调函数类型
|
|
69
69
|
*/
|
|
70
|
-
export
|
|
70
|
+
export type EventHandler<Relations extends EventRelationsType, E extends EventType> = (params: Relations[E]) => unknown;
|
|
71
71
|
export declare class EventEmitter<Relations extends EventRelationsType = EventRelationsType, Events extends EventType = string> {
|
|
72
72
|
/**
|
|
73
73
|
* 事件回调存储器
|
package/es/file.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本模块提供文件处理相关方法。
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 文件体积单位。
|
|
7
|
+
*/
|
|
8
|
+
export declare enum FileSizeUnit {
|
|
9
|
+
B = "B",
|
|
10
|
+
KB = "KB",
|
|
11
|
+
MB = "MB",
|
|
12
|
+
GB = "GB",
|
|
13
|
+
TB = "TB"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 文件体积转换选项。
|
|
17
|
+
*/
|
|
18
|
+
export interface FileSizeConversionOptions {
|
|
19
|
+
/**
|
|
20
|
+
* 目标单位。
|
|
21
|
+
*/
|
|
22
|
+
unit: FileSizeUnit;
|
|
23
|
+
/**
|
|
24
|
+
* 是否允许纯小数。
|
|
25
|
+
* 如果不允许,则在保证转换目标值大于 1 的前提下,以距离目标单位最近的单位进行转换。
|
|
26
|
+
* 默认为允许。
|
|
27
|
+
*/
|
|
28
|
+
allowPureDecimal?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 文件体积转换结果。
|
|
32
|
+
*/
|
|
33
|
+
export interface FileSizeConversionResult {
|
|
34
|
+
/**
|
|
35
|
+
* 转过结果的值。
|
|
36
|
+
*/
|
|
37
|
+
value: number;
|
|
38
|
+
/**
|
|
39
|
+
* 转换结果的单位。
|
|
40
|
+
*/
|
|
41
|
+
unit: FileSizeUnit;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 转换文件体积。
|
|
45
|
+
* @param sizeInBytes 以字节为单位的文件体积值。
|
|
46
|
+
* @param options 转换选项。
|
|
47
|
+
* @returns 转换结果。
|
|
48
|
+
*/
|
|
49
|
+
export declare function convertFileSize(sizeInBytes: number, options: FileSizeUnit | FileSizeConversionOptions): FileSizeConversionResult;
|
package/es/file.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export var FileSizeUnit;!function(i){i.B="B",i.KB="KB",i.MB="MB",i.GB="GB",i.TB="TB"}(FileSizeUnit||(FileSizeUnit={}));export function convertFileSize(i,e){const t="object"==typeof e?Object.assign({},e):{unit:e};if(!t.unit)throw new Error("Please specify file size unit");const n=[FileSizeUnit.B,FileSizeUnit.KB,FileSizeUnit.MB,FileSizeUnit.GB,FileSizeUnit.TB],l={value:i,unit:t.unit};return n.some(((e,o)=>{const B=i/Math.pow(1024,o);return!1===t.allowPureDecimal&&B<1||(l.value=B,l.unit=e,t.unit===e||o===n.length)})),l}
|
package/es/string.d.ts
CHANGED
|
@@ -91,8 +91,8 @@ export declare function randomStr(length: number, prefix?: string): string;
|
|
|
91
91
|
export declare function uuidV4(): string;
|
|
92
92
|
/**
|
|
93
93
|
* 版本号对比。
|
|
94
|
-
* @param
|
|
95
|
-
* @param
|
|
94
|
+
* @param verA 待比较版本 A。
|
|
95
|
+
* @param verB 待比较版本 B。
|
|
96
96
|
* @return 大于 0 时,表示版本 A 大于版本 B;
|
|
97
97
|
* 小于 0 时,表示版本 B 大于版本 A;
|
|
98
98
|
* 等于 0 时,表示两个版本号一致。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polyv/utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0-beta.1",
|
|
4
4
|
"description": "Utility functions of Polyv frontend development.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"polyv",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"homepage": "https://polyv.github.io/fed-common-utils/index.html",
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=
|
|
21
|
+
"node": ">=20.0.0"
|
|
22
22
|
},
|
|
23
|
-
"dependencies": {},
|
|
24
23
|
"miniprogram": "./"
|
|
25
24
|
}
|