nhanh-pure-function 2.0.3 → 2.0.5

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.
@@ -19,8 +19,9 @@ export declare function _IsWithinErrorMargin(value: number, target: number, erro
19
19
  * 进度
20
20
  * @param {(schedule)=>void} callback callback( 进度百分比 )
21
21
  * @param {Number} TIME 总时长
22
+ * @returns {Function} 停止函数
22
23
  */
23
- export declare function _Schedule(callback: (schedule: number) => void, TIME?: number): void;
24
+ export declare function _Schedule(callback: (schedule: number) => void, TIME?: number): () => boolean;
24
25
  /**
25
26
  * 格式化数字,给数字加上千位分隔符。
26
27
  * @param {number} number - 要格式化的数字。
@@ -58,3 +59,10 @@ export declare function _IsPointInPolygon(point: Point, polygon: Point[]): boole
58
59
  * @returns string
59
60
  */
60
61
  export declare function _FormatFileSize(size: number): string;
62
+ /** 计算平面直角坐标系中两点的距离 */
63
+ export declare function _CalculateDistance2D(x1: number, y1: number, x2: number, y2: number): number;
64
+ /** 获取两点的中点 */
65
+ export declare function _GetMidpoint(x1: number, y1: number, x2: number, y2: number): {
66
+ x: number;
67
+ y: number;
68
+ };
@@ -250,7 +250,7 @@ export declare function _RotateList<T>(list: T[]): T[][];
250
250
  * @param {any} val - 需要克隆的值
251
251
  * @returns {any} - 克隆后的值
252
252
  */
253
- export declare function _Clone<T>(val: T): T | {} | undefined;
253
+ export declare function _Clone<T>(val: T): T | undefined;
254
254
  /**
255
255
  * 管理通过键值对打开的窗口
256
256
  */
@@ -269,12 +269,7 @@ export declare class _KeyedWindowManager {
269
269
  * @param windowFeatures 新窗口的特性
270
270
  * @returns 返回已打开或新打开的窗口
271
271
  */
272
- static open(key: string, url?: string, target?: WindowTarget, windowFeatures?: string): Window | undefined;
273
- /**
274
- * 关闭与指定键关联的窗口
275
- * @param key 窗口的唯一键
276
- */
277
- static close(key: string): void;
272
+ static open(key: string, url?: string | URL, target?: WindowTarget, windowFeatures?: string): Window | undefined;
278
273
  /**
279
274
  * 检查指定键的窗口是否打开
280
275
  * @param key 窗口的唯一键
@@ -287,6 +282,11 @@ export declare class _KeyedWindowManager {
287
282
  * @returns 返回对应的窗口,如果窗口已关闭则返回undefined
288
283
  */
289
284
  static getWindow(key: string): Window | undefined;
285
+ /**
286
+ * 关闭与指定键关联的窗口
287
+ * @param key 窗口的唯一键
288
+ */
289
+ static close(key: string): void;
290
290
  /**
291
291
  * 关闭所有打开的窗口并清空Map
292
292
  */
@@ -302,3 +302,5 @@ export declare class _KeyedWindowManager {
302
302
  * @returns 成功时返回图像的URL,失败时返回null
303
303
  */
304
304
  export declare function _Danger_ConvertDataToImageUrl(data: string | ArrayBuffer | Uint8Array | File, mimeType?: string): string | null;
305
+ /** 时间消耗 */
306
+ export declare function _TimeConsumption(func: Function, level: [number, string][]): (...args: any[]) => any;
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,3 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".nhanh-pure-function{--nhanh: 2233}.no-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
- "use strict";var oe=Object.defineProperty;var G=n=>{throw TypeError(n)};var re=(n,t,e)=>t in n?oe(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>re(n,typeof t!="symbol"?t+"":t,e),V=(n,t,e)=>t.has(n)||G("Cannot "+e);var c=(n,t,e)=>(V(n,t,"read from private field"),e?e.call(n):t.get(n)),d=(n,t,e)=>t.has(n)?G("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e),l=(n,t,e,o)=>(V(n,t,"write to private field"),o?o.call(n,e):t.set(n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie={".mp3":"audio/mpeg",".mp4":"video/mp4",".m4a":"audio/mp4",".aac":"audio/aac",".ogg":"audio/ogg",".wav":"audio/wav",".flac":"audio/flac",".opus":"audio/opus",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".wmv":"video/x-ms-wmv",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".bmp":"image/bmp",".tiff":"image/tiff",".ico":"image/vnd.microsoft.icon",".svg":"image/svg+xml",".webp":"image/webp",".heif":"image/heif",".heic":"image/heic",".json":"application/json",".xml":"application/xml",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".ts":"application/typescript",".csv":"text/csv",".tsv":"text/tab-separated-values",".txt":"text/plain",".md":"text/markdown",".rtf":"application/rtf",".pdf":"application/pdf",".zip":"application/zip",".rar":"application/x-rar-compressed",".tar":"application/x-tar",".gz":"application/gzip",".7z":"application/x-7z-compressed",".exe":"application/x-msdownload",".apk":"application/vnd.android.package-archive",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".odt":"application/vnd.oasis.opendocument.text",".ods":"application/vnd.oasis.opendocument.spreadsheet",".odp":"application/vnd.oasis.opendocument.presentation",".jsonld":"application/ld+json",".yaml":"application/x-yaml",".yml":"application/x-yaml",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject",".map":"application/json"},Y={image:[".jpg",".jpeg",".png",".gif",".bmp",".webp",".tiff",".svg",".heif",".heic",".ico",".raw",".jfif",".avif",".png8",".indd",".eps",".ai"],ppt:[".ppt",".pptx",".odp"],word:[".doc",".docx",".odt",".rtf"],excel:[".xls",".xlsx",".ods",".csv",".tsv"],pdf:[".pdf"],text:[".txt",".csv",".md",".json",".yaml",".yml",".log",".ini",".rtf"],audio:[".mp3",".wav",".ogg",".flac",".aac",".wma",".m4a",".alac",".ape",".opus",".amr",".ra",".mid",".midi",".aiff",".pcm",".au",".wavpack",".spx"],video:[".mp4",".avi",".mkv",".mov",".wmv",".flv",".webm",".mpg",".mpeg",".3gp",".vob",".ogv",".m4v",".ts",".rm",".rmvb",".m2ts",".divx",".xvid",".swf",".f4v"],archive:[".zip",".rar",".tar",".gz",".bz2",".xz",".7z",".tar.gz",".tar.bz2",".tar.xz",".tar.lz",".tar.lzma",".cab",".iso",".dmg",".tgz",".apk",".gz2",".tar.zst"],code:[".js",".ts",".py",".java",".cpp",".c",".html",".css",".scss",".less",".sass",".php",".rb",".go",".swift",".rs",".kt",".scala",".lua",".pl",".m",".h",".xml",".json",".yaml",".yml",".toml",".vue",".ejs",".handlebars",".jinja",".dart"],font:[".woff",".woff2",".ttf",".otf",".eot",".svg",".ttc",".fnt",".fon",".otc"],database:[".sql",".sqlite",".db",".mdb",".accdb",".jsonld",".xml",".csv"],markup:[".html",".htm",".xhtml",".xml",".json",".yaml",".yml"],configuration:[".ini",".conf",".cfg",".env",".properties",".json",".toml"],logs:[".log",".err",".trace",".out"],script:[".bash",".sh",".zsh",".bat",".ps1",".vbs",".cmd",".sed",".awk",".php"]},Z=["","万","亿","兆","京","垓","秭","穰","沟","涧","正","载","极"];function se(n){return n!=null}function ce(n){return!(n===null||typeof n!="object"||Array.isArray(n))}function ae(n){if(typeof n!="function")return console.error("非函数:",n);const t=function(e){e.didTimeout||e.timeRemaining()<=0?requestIdleCallback(t):n()};requestIdleCallback(t)}function le(n,t){const e=+new Date;return new Promise((o,r)=>{const i=()=>{if(+new Date-e>=t)return r("超时");if(n())return o("完成");requestIdleCallback(i)};i()})}function ue(n,t,e=","){const o=new RegExp(`(^|${e})${t}(${e}|$)`,"g");return n.replace(o,function(r,i,s){return i===s?e:""})}function me(n){return n.charAt(0).toUpperCase()+n.slice(1)}function A(n,t,e=[],o=+new Date){if(o<+new Date-50){console.error("_MergeObjects 合并异常:疑似死循环");return}const r=W(n),i=W(t);if(r!=i)return t;if(r=="object"||r=="array"){if(e.some(([s,a])=>s==n&&a==t))return n;if(e.push([n,t]),r=="object"){for(const s in t)if(Object.prototype.hasOwnProperty.call(t,s)){const a=t[s],m=n[s],u=A(m,a,e,o);n[s]=u}return n}else if(r=="array")return t.forEach((s,a)=>{const m=s,u=n[a],f=A(u,m,e,o);n[a]=f}),n}else return t}function de(n,t="YYYY-MM-DD hh:mm:ss",e=!0){const o=new Date(n);if(isNaN(o.getTime()))return console.error("Invalid date"),"";const r={YYYY:i=>i.getFullYear(),MM:i=>i.getMonth()+1,DD:i=>i.getDate(),hh:i=>i.getHours(),mm:i=>i.getMinutes(),ss:i=>i.getSeconds(),ms:i=>i.getMilliseconds()};return t.replace(/YYYY|MM|DD|hh|mm|ss|ms/g,i=>{const s=r[i](o);return e?String(s).padStart(2,"0"):String(s)})}function fe(n){return new Promise((t,e)=>{fetch(n).then(o=>t(o.text())).catch(o=>{console.error("Error fetching :",o),e(o)})})}function q(n,t="file"){if(!n||(n=String(n).trim(),n===""))return t;const e=n.split("/");return e[e.length-1].split("?")[0]}function he(n,t){return new Promise((e,o)=>{try{t=t||q(n,"downloaded_file"),fetch(n).then(r=>(r.ok||o(`文件下载失败,状态码: ${r.status}`),r.blob())).then(r=>{const i=URL.createObjectURL(r),s=document.createElement("a");s.href=i,s.download=decodeURIComponent(t),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i),e(r)}).catch(o)}catch(r){o(r)}})}function pe(n,t=10){let e=0,o=t;function r(){if(o>0)o--,requestAnimationFrame(r);else{const s=(+new Date-e)/t,a=1e3/s;n(Number(a.toFixed(2)),Number(s.toFixed(2)))}}requestAnimationFrame(()=>{e=+new Date,r()})}function ge(n,t){return n=n.replace(/([^a-zA-Z][a-z])/g,e=>e.toUpperCase()),t?n.replace(/[^a-zA-Z]+/g,""):n}function we(n,t,e){if(!e){let s=t.replace(/^[^.]+./,"");s=s==t?"text/plain":"application/"+s,e={type:s}}const o=new Blob(n,e),r=URL.createObjectURL(o),i=document.createElement("a");i.href=r,i.download=t,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}function ve(n=""){return n+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function J(n,t){let e;return function(...o){clearTimeout(e),e=setTimeout(()=>{n(...o),e=void 0},t)}}function xe(n,t){let e=-1/0;return function(...o){const r=performance.now();if(r-e>t){e=r;try{n(...o)}catch(i){console.error("Throttled function execution failed:",i)}}}}function W(n){return Array.isArray(n)?"array":n===null?"null":typeof n}function be(n){const t=()=>Promise.resolve(),e=a=>(console.error(a),Promise.reject(a));function o(){return navigator.clipboard.writeText(n).then(t).catch(e)}function r(){const a=document.createElement("div");a.innerText=n,document.body.appendChild(a);const m=document.createRange();m.selectNodeContents(a);const u=window.getSelection();let f=!1;return u&&(u.removeAllRanges(),u.addRange(m),f=document.execCommand("copy")),document.body.removeChild(a),f?Promise.resolve():Promise.reject()}function i(){const a=document.createElement("textarea");a.value=n,document.body.appendChild(a),a.select(),a.setSelectionRange(0,n.length);let m=!1;return document.activeElement===a&&(m=document.execCommand("Copy",!0)),document.body.removeChild(a),m?Promise.resolve():Promise.reject()}function s(){return r().then(t).catch(()=>{i().then(t).catch(()=>e("复制方式尽皆失效"))})}return navigator.clipboard?o().catch(s):s()}function ye(n,t){const e=t.split(".");return e.reduce((o,r,i)=>(r in o||(i===e.length-1?o[r]=void 0:o[r]={}),o[r]),n)}function Ce(n,t){const e=t.split(".");return e.reduce((o,r,i)=>o.hasOwnProperty(r)?o[r]:o[r]=i==e.length-1?void 0:{},n)}function _e(n,t,e){const o=t.split(".");return o.reduce((r,i,s)=>(s===o.length-1&&(r[i]=e),r[i]),n)}function Ee(n){return new Promise((t,e)=>{if(typeof n!="string"||n.trim()===""||!n.includes("://")){e(new Error("Invalid URL: Must be a non-empty string"));return}try{new XMLHttpRequest().open("HEAD",n,!0)}catch(i){e(new Error(`Invalid URL format: ${i.message}`));return}const o=new XMLHttpRequest;o.open("HEAD",n,!0);const r=i=>{e(new Error(`Request failed: ${i.type}`))};o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(o.status===0?e(new Error("Network error or CORS blocked")):o.status>=200&&o.status<300?t(!0):e(new Error(`HTTP Error: ${o.status}`)))},o.onerror=r,o.onabort=r,o.ontimeout=r;try{o.send()}catch(i){e(new Error(`Request send failed: ${i.message}`))}})}function Fe(n){return["https:","wss:","ftps:","sftp:","smpts:","smtp+tls:","imap+tls:","pop3+tls:","rdp:","vpn:"].some(e=>n.startsWith(e))}const E=class E{constructor(){if(new.target===E)throw new Error("请直接使用静态方法,而不是实例化此类")}static check(t,e){if(!t||typeof t!="string")return console.error("Invalid URL provided"),e?!1:"unknown";const o=q(t).toLowerCase();if(e){if(!Y.hasOwnProperty(e))return console.error(`Unknown file type: ${e}`),"unknown";const r=Y[e];return E._checkExtension(o,r)}return E._detectFileType(o)}static parseAddresses(t){return!t||typeof t!="string"?(console.error("Invalid URL provided"),[]):t.split(",").map(e=>{const o=q(e),r=this.check(e);return{url:e,name:o,type:r}})}static matchesMimeType(t,e){if(!e)return!0;if(typeof t!="string"||typeof e!="string")return!1;const o=E._normalizeType(t),r=e.split(",").map(a=>E._normalizeType(a.trim())),[i,s="*"]=o.split("/");return r.some(a=>{const[m,u="*"]=a.split("/");return(m==="*"||i==="*"||m===i)&&(u==="*"||s==="*"||u===s)})}static _normalizeType(t){return t.startsWith(".")&&!t.includes("/")?ie[t.toLowerCase()]||t:t.includes("/")?t:`${t}/*`}static _checkExtension(t,e){return e.some(o=>t.endsWith(o))}static _detectFileType(t){for(const[e,o]of E.cachedEntries)if(o.some(r=>t.endsWith(r)))return e;return"unknown"}};y(E,"cachedEntries",Object.entries(Y));let H=E;function Te(n){return n.map((t,e)=>n.slice(e).concat(n.slice(0,e)))}function Le(n){const t=window.structuredClone,e=o=>o===null||typeof o!="object"?o:A(Array.isArray(o)?[]:{},o);try{return t?t(n):e(n)}catch(o){return console.error("structuredClone error:",o),t&&e(n)}}const B=class B{constructor(){if(new.target===B)throw new Error("请直接使用静态方法,而不是实例化此类")}static open(t,e,o,r){const i=this.keys.get(t);if(i&&!i.closed)return i.focus(),i;{const s=window.open(e,o,r);if(s)return this.keys.set(t,s),s.addEventListener("unload",()=>this.keys.delete(t)),s;console.error("window.open failed: 可能是浏览器阻止了弹出窗口"),this.keys.delete(t)}}static close(t){const e=this.keys.get(t);e&&!e.closed&&(e.close(),this.keys.delete(t))}static isOpen(t){const e=this.keys.get(t);return!!e&&!e.closed}static getWindow(t){const e=this.keys.get(t);if(e&&!e.closed)return e}static closeAll(){this.keys.forEach((t,e)=>{t.closed||t.close(),this.keys.delete(e)})}};y(B,"keys",new Map);let X=B;function Me(n,t="image/png"){try{let e,o=t;if(n instanceof File)return URL.createObjectURL(n);if(typeof n=="string"){let i=n;const s=i.match(/^data:([^;]*)(;base64)?,(.*)$/i);if(s){if(!s[2])throw new Error("无效的数据 URL:缺少 base64 编码声明");if(o=s[1]||o,i=s[3],!i)throw new Error("数据 URL 包含空有效负载")}i=i.replace(/[^A-Za-z0-9+/=]/g,"");const a=atob(i);e=new Uint8Array(a.length);for(let m=0;m<a.length;m++)e[m]=a.charCodeAt(m)}else if(n instanceof ArrayBuffer)e=new Uint8Array(n);else if(n instanceof Uint8Array)e=n;else throw new Error("不支持的数据类型。应为 Base64 字符串、ArrayBuffer 或 Uint8Array");const r=new Blob([e],{type:o});return URL.createObjectURL(r)}catch(e){return console.error("数据到 ImageURL 的转换失败:",e.message,e.stack||"没有可用的堆栈跟踪"),null}}function je(n){const t=J(n,100);let e=0,o=0;return function(r){const i=r.target;if(!i||!(i instanceof HTMLElement))return;const{scrollTop:s,scrollHeight:a,clientHeight:m,scrollLeft:u,scrollWidth:f,clientWidth:g}=i;function N(){if(e==s)return;const $=e>s;if(e=s,$)return;a-s-m<=1&&t("vertical")}function te(){if(o==u)return;const $=o>u;if(o=u,$)return;f-u-g<=1&&t("horizontal")}N(),te()}}function Re(n,t,e){const{isClickAllowed:o,uiLibrary:r=["naiveUI","ElementPlus","Element"]}=e||{},i=function(m){const u=[];for(const f in m)Object.hasOwnProperty.call(m,f)&&r.includes(f)&&u.push(...m[f]);return u}({naiveUI:[".v-binder-follower-container",".n-image-preview-container",".n-modal-container"],ElementPlus:[".el-popper"],Element:[".el-popper"]});function s(){t(),document.removeEventListener("mousedown",a)}function a(m){if(o){const g=o(m);if(g)return;if(g===!1)return s()}const u=m.target;if(!(u instanceof HTMLElement)||!(u!=null&&u.closest("body")))return;n.concat(i).some(g=>!!(u!=null&&u.closest(g)))||s()}requestAnimationFrame(()=>document.addEventListener("mousedown",a))}var w,T,L,k,U,C,_,F,I;class Pe{constructor(){d(this,w);d(this,T,!1);d(this,L,{});d(this,k,0);d(this,U,0);d(this,C,0);d(this,_,0);d(this,F);d(this,I)}init(t,e){l(this,w,t),l(this,F,e==null?void 0:e.limit),l(this,I,e==null?void 0:e.dragDom),l(this,L,{mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this)}),this.bindOrUnbindEvent("bind")}finish(){this.bindOrUnbindEvent("unbind")}bindOrUnbindEvent(t){const e=t==="bind"?"addEventListener":"removeEventListener";if(!c(this,w))return console.error("No DOM");c(this,w)[e]("mousedown",c(this,L).mousedown),document[e]("mousemove",c(this,L).mousemove),document[e]("mouseup",c(this,L).mouseup)}alterLocation(){if(!c(this,w))return console.error("No DOM");c(this,F)&&(l(this,C,Math.min(c(this,C),c(this,F).max.top)),l(this,C,Math.max(c(this,C),c(this,F).min.top)),l(this,_,Math.min(c(this,_),c(this,F).max.left)),l(this,_,Math.max(c(this,_),c(this,F).min.left))),c(this,w).style.setProperty("--top",c(this,C)+"px"),c(this,w).style.setProperty("--left",c(this,_)+"px")}mousedown(t){if(!c(this,w))return console.error("No DOM");if(c(this,I)&&t.target!=c(this,I))return;document.body.classList.add("no-select"),l(this,T,!0);const e=c(this,w).getBoundingClientRect(),{pageX:o,pageY:r}=t;l(this,k,o),l(this,U,r),l(this,C,e.y),l(this,_,e.x)}mousemove(t){const{pageX:e,pageY:o}=t;c(this,T)&&(l(this,C,c(this,C)+(o-c(this,U))),l(this,_,c(this,_)+(e-c(this,k))),l(this,k,e),l(this,U,o),this.alterLocation())}mouseup(){c(this,T)&&(l(this,T,!1),document.body.classList.remove("no-select"))}}w=new WeakMap,T=new WeakMap,L=new WeakMap,k=new WeakMap,U=new WeakMap,C=new WeakMap,_=new WeakMap,F=new WeakMap,I=new WeakMap;var v,M,j,D,S,x,b,p,O,z;class ke{constructor(){d(this,v);d(this,M,!1);d(this,j,{});d(this,D,0);d(this,S,0);d(this,x,0);d(this,b,0);d(this,p);d(this,O);d(this,z)}init(t,e={}){l(this,v,t),l(this,p,e.limit),l(this,O,e.update_move),l(this,z,e.update_up),l(this,j,{mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this)}),this.bindOrUnbindEvent("bind")}finish(){this.bindOrUnbindEvent("unbind")}bindOrUnbindEvent(t){const e=t==="bind"?"addEventListener":"removeEventListener";if(!c(this,v))return console.error("No DOM");c(this,v)[e]("mousedown",c(this,j).mousedown),document[e]("mousemove",c(this,j).mousemove),document[e]("mouseup",c(this,j).mouseup)}updateValue(){const t={top:c(this,x),left:c(this,b),percentage:{top:0,left:0}};if(c(this,p)){const e=o=>c(this,p)?(t[o]-c(this,p).min[o])/(c(this,p).max[o]-c(this,p).min[o]):0;t.percentage={top:e("top")||0,left:e("left")||0}}return t}alterLocation(){if(!c(this,v))return console.error("No DOM");c(this,p)&&(l(this,x,Math.min(c(this,x),c(this,p).max.top)),l(this,x,Math.max(c(this,x),c(this,p).min.top)),l(this,b,Math.min(c(this,b),c(this,p).max.left)),l(this,b,Math.max(c(this,b),c(this,p).min.left))),c(this,O)&&c(this,O).call(this,this.updateValue()),c(this,v).style.setProperty("--top",c(this,x)+"px"),c(this,v).style.setProperty("--left",c(this,b)+"px")}mousedown(t){if(!c(this,v))return console.error("No DOM");document.body.classList.add("no-select"),l(this,M,!0);const e=c(this,v).getBoundingClientRect();l(this,S,e.y),l(this,D,e.x);const{pageX:o,pageY:r}=t;l(this,x,r-c(this,S)),l(this,b,o-c(this,D)),this.alterLocation()}mousemove(t){const{pageX:e,pageY:o}=t;c(this,M)&&(l(this,x,o-c(this,S)),l(this,b,e-c(this,D)),this.alterLocation())}mouseup(){c(this,M)&&(l(this,M,!1),document.body.classList.remove("no-select"),c(this,z)&&c(this,z).call(this,this.updateValue()))}}v=new WeakMap,M=new WeakMap,j=new WeakMap,D=new WeakMap,S=new WeakMap,x=new WeakMap,b=new WeakMap,p=new WeakMap,O=new WeakMap,z=new WeakMap;function K(n){const t=n;if(n){if(n.requestFullscreen)return n.requestFullscreen();if(t.mozRequestFullScreen)return t.mozRequestFullScreen();if(t.webkitRequestFullscreen)return t.webkitRequestFullscreen();if(t.msRequestFullscreen)return t.msRequestFullscreen()}else return Promise.reject("No DOM");return Promise.reject("No Fullscreen API")}function Q(){const n=document;return document.exitFullscreen?document.exitFullscreen():n.mozCancelFullScreen?n.mozCancelFullScreen():n.webkitExitFullscreen?n.webkitExitFullscreen():n.msExitFullscreen?n.msExitFullscreen():Promise.reject("No ExitFullscreen API")}function ee(){const n=document;return document.fullscreenElement||n.webkitFullscreenElement||n.mozFullScreenElement||n.msFullscreenElement}function Ue(n){return function(){ee()?Q():K(n)}}function Ie(n,t){if(typeof n=="number")return n;if(/px/.test(n))return Number(n.replace(/px/,""))||0;const e=document.createElement("div");e.style.width=n,t=t||document.body,t.appendChild(e);const o=e.getBoundingClientRect().width;return t.removeChild(e),o}function De(n,t){if(!n)return;let e,o;if(typeof t=="string"){const i=document.querySelector(t);if(!i)return;const s=i.getBoundingClientRect();e=s.width,o=s.height}else if(Array.isArray(t))e=t[0],o=t[1];else{const i=t.getBoundingClientRect();e=i.width,o=i.height}const r=e/o;return r>n?[n*o,o]:r<n?[e,e/n]:[e,o]}function Se(n,t=5e3){return new Promise((e,o)=>{const r=new Image;r.src=n;const i=setTimeout(()=>{o(new Error("图片加载超时")),r.onload=null,r.onerror=null},t);r.onload=()=>{clearTimeout(i);const s=r.naturalWidth,a=r.naturalHeight,m=s/a;e([r,m])},r.onerror=()=>{clearTimeout(i),o(new Error("图片加载失败"))},r.crossOrigin="Anonymous"})}function Oe(n,t,e=2){return!Number.isFinite(n)||!Number.isFinite(t)||!Number.isFinite(e)?(console.error("所有参数必须是有限的数字"),""):t===0?(console.error("分母不能为零"),""):e<0?(console.error("小数位数不能为负数"),""):(n/t*100).toFixed(e)+"%"}function ze(n,t,e){return Math.abs(n-t)<=e}function Ne(n,t=500){let e;function o(r){e||(e=r);let i=Math.min((r-e)/t,1);n(i),r-e<t&&requestAnimationFrame(o)}requestAnimationFrame(o)}function Ae(n){return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}function qe(n,t){const e={join:!0,suffix:"",decimalPlaces:2},{join:o,suffix:r,decimalPlaces:i}={...e,...t||{}},s=Number(n);if(isNaN(s))return o?`0${r}`:[0,r];const a=Math.abs(s),m=s>=0,u=Math.max(0,Math.floor(Math.log10(a)/4)),f=Math.pow(1e4,u),g=a/f,N=(m?1:-1)*parseFloat(g.toFixed(Math.max(0,i)));return o?`${N}${Z[u]}${r}`:[N,Z[u]+r]}function Be(n,t){let e=!1;const{x:o,y:r}=n,i=t.length;for(let s=0,a=i-1;s<i;a=s++){const m=t[s].x,u=t[s].y,f=t[a].x,g=t[a].y;u>r!=g>r&&o<(f-m)*(r-u)/(g-u)+m&&(e=!e)}return e}function $e(n){const t=["B","KB","MB","GB","TB","PB"];let e=0;for(;n>1024;)n/=1024,e++;return`${Math.round(n*100)/100} ${t[e]}`}class P{constructor(t,e){y(this,"resolve");y(this,"reject");this.resolve=t,this.reject=e}run(t){var e,o;return t instanceof Promise?t.then(r=>{var i;return(i=this.resolve)==null||i.call(this),r}).catch(r=>{var i;return(i=this.reject)==null||i.call(this),Promise.reject(r)}):t?(e=this.resolve)==null||e.call(this):(o=this.reject)==null||o.call(this),t}}class Ye extends P{constructor(t){super(),this.resolve=t}warning(...t){const e=()=>{var o,r;return(r=(o=R.tips).warning)==null?void 0:r.call(o,...t)};return new P(this.resolve,e)}error(...t){const e=()=>{var o,r;return(r=(o=R.tips).error)==null?void 0:r.call(o,...t)};return new P(this.resolve,e)}}class We extends P{constructor(t){super(),this.reject=t}info(...t){const e=()=>{var o,r;return(r=(o=R.tips).info)==null?void 0:r.call(o,...t)};return new P(e,this.reject)}success(...t){const e=()=>{var o,r;return(r=(o=R.tips).success)==null?void 0:r.call(o,...t)};return new P(e,this.reject)}}const h=class h{constructor(){if(new.target===h)throw new Error("请直接使用静态方法,而不是实例化此类")}static register(t,e){if(typeof e!="function")return console.error("TipHandler must be a function");h.tips[t]=e}static resolveTip(t){return function(...e){const o=()=>{var r,i;return(i=(r=h.tips)[t])==null?void 0:i.call(r,...e)};return new Ye(o)}}static rejectTip(t){return function(...e){const o=()=>{var r,i;return(i=(r=h.tips)[t])==null?void 0:i.call(r,...e)};return new We(o)}}};y(h,"tips",{info:void 0,success:void 0,warning:void 0,error:void 0}),y(h,"info",h.resolveTip("info")),y(h,"success",h.resolveTip("success")),y(h,"warning",h.rejectTip("warning")),y(h,"error",h.rejectTip("error"));let R=h;exports._CalculateCanvasSize=De;exports._CapitalizeFirstLetter=me;exports._CheckConnectionWithXHR=Ee;exports._Clone=Le;exports._CloseOnOutsideClick=Re;exports._ConvertToCamelCase=ge;exports._ConvertToPercentage=Oe;exports._CopyToClipboard=be;exports._CreateAndDownloadFile=we;exports._Danger_ConvertDataToImageUrl=Me;exports._DataType=W;exports._Debounce=J;exports._DownloadFile=he;exports._Drag=Pe;exports._EnterFullscreen=K;exports._ExcludeSubstring=ue;exports._ExecuteWhenIdle=ae;exports._ExitFullscreen=Q;exports._FileTypeChecker=H;exports._FormatFileSize=$e;exports._FormatNumber=Ae;exports._FormatNumberWithUnit=qe;exports._Fullscreen=Ue;exports._GenerateUUID=ve;exports._GetFrameRate=pe;exports._GetHrefName=q;exports._GetOtherSizeInPixels=Ie;exports._GetTargetByPath=Ce;exports._InitTargetByPath=ye;exports._IsFullscreen=ee;exports._IsObject=ce;exports._IsPointInPolygon=Be;exports._IsSecureContext=Fe;exports._IsWithinErrorMargin=ze;exports._KeyedWindowManager=X;exports._LoadImage=Se;exports._LocalDrag=ke;exports._MergeObjects=A;exports._NotNull=se;exports._ReadFile=fe;exports._RotateList=Te;exports._Schedule=Ne;exports._ScrollEndListener=je;exports._Throttle=xe;exports._TimeTransition=de;exports._Tip=R;exports._UpdateTargetByPath=_e;exports._WaitForCondition=le;
2
+ "use strict";var oe=Object.defineProperty;var V=n=>{throw TypeError(n)};var re=(n,t,e)=>t in n?oe(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>re(n,typeof t!="symbol"?t+"":t,e),Z=(n,t,e)=>t.has(n)||V("Cannot "+e);var c=(n,t,e)=>(Z(n,t,"read from private field"),e?e.call(n):t.get(n)),d=(n,t,e)=>t.has(n)?V("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e),m=(n,t,e,o)=>(Z(n,t,"write to private field"),o?o.call(n,e):t.set(n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie={".mp3":"audio/mpeg",".mp4":"video/mp4",".m4a":"audio/mp4",".aac":"audio/aac",".ogg":"audio/ogg",".wav":"audio/wav",".flac":"audio/flac",".opus":"audio/opus",".webm":"video/webm",".avi":"video/x-msvideo",".mov":"video/quicktime",".wmv":"video/x-ms-wmv",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".bmp":"image/bmp",".tiff":"image/tiff",".ico":"image/vnd.microsoft.icon",".svg":"image/svg+xml",".webp":"image/webp",".heif":"image/heif",".heic":"image/heic",".json":"application/json",".xml":"application/xml",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"application/javascript",".ts":"application/typescript",".csv":"text/csv",".tsv":"text/tab-separated-values",".txt":"text/plain",".md":"text/markdown",".rtf":"application/rtf",".pdf":"application/pdf",".zip":"application/zip",".rar":"application/x-rar-compressed",".tar":"application/x-tar",".gz":"application/gzip",".7z":"application/x-7z-compressed",".exe":"application/x-msdownload",".apk":"application/vnd.android.package-archive",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".odt":"application/vnd.oasis.opendocument.text",".ods":"application/vnd.oasis.opendocument.spreadsheet",".odp":"application/vnd.oasis.opendocument.presentation",".jsonld":"application/ld+json",".yaml":"application/x-yaml",".yml":"application/x-yaml",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject",".map":"application/json"},H={image:[".jpg",".jpeg",".png",".gif",".bmp",".webp",".tiff",".svg",".heif",".heic",".ico",".raw",".jfif",".avif",".png8",".indd",".eps",".ai"],ppt:[".ppt",".pptx",".odp"],word:[".doc",".docx",".odt",".rtf"],excel:[".xls",".xlsx",".ods",".csv",".tsv"],pdf:[".pdf"],text:[".txt",".csv",".md",".json",".yaml",".yml",".log",".ini",".rtf"],audio:[".mp3",".wav",".ogg",".flac",".aac",".wma",".m4a",".alac",".ape",".opus",".amr",".ra",".mid",".midi",".aiff",".pcm",".au",".wavpack",".spx"],video:[".mp4",".avi",".mkv",".mov",".wmv",".flv",".webm",".mpg",".mpeg",".3gp",".vob",".ogv",".m4v",".ts",".rm",".rmvb",".m2ts",".divx",".xvid",".swf",".f4v"],archive:[".zip",".rar",".tar",".gz",".bz2",".xz",".7z",".tar.gz",".tar.bz2",".tar.xz",".tar.lz",".tar.lzma",".cab",".iso",".dmg",".tgz",".apk",".gz2",".tar.zst"],code:[".js",".ts",".py",".java",".cpp",".c",".html",".css",".scss",".less",".sass",".php",".rb",".go",".swift",".rs",".kt",".scala",".lua",".pl",".m",".h",".xml",".json",".yaml",".yml",".toml",".vue",".ejs",".handlebars",".jinja",".dart"],font:[".woff",".woff2",".ttf",".otf",".eot",".svg",".ttc",".fnt",".fon",".otc"],database:[".sql",".sqlite",".db",".mdb",".accdb",".jsonld",".xml",".csv"],markup:[".html",".htm",".xhtml",".xml",".json",".yaml",".yml"],configuration:[".ini",".conf",".cfg",".env",".properties",".json",".toml"],logs:[".log",".err",".trace",".out"],script:[".bash",".sh",".zsh",".bat",".ps1",".vbs",".cmd",".sed",".awk",".php"]},J=["","万","亿","兆","京","垓","秭","穰","沟","涧","正","载","极"];function se(n){return n!=null}function ce(n){return!(n===null||typeof n!="object"||Array.isArray(n))}function ae(n){if(typeof n!="function")return console.error("非函数:",n);const t=function(e){e.didTimeout||e.timeRemaining()<=0?requestIdleCallback(t):n()};requestIdleCallback(t)}function le(n,t){const e=+new Date;return new Promise((o,r)=>{const i=()=>{if(+new Date-e>=t)return r("超时");if(n())return o("完成");requestIdleCallback(i)};i()})}function ue(n,t,e=","){const o=new RegExp(`(^|${e})${t}(${e}|$)`,"g");return n.replace(o,function(r,i,s){return i===s?e:""})}function me(n){return n.charAt(0).toUpperCase()+n.slice(1)}function N(n,t,e=[],o=+new Date){if(o<+new Date-50){console.error("_MergeObjects 合并异常:疑似死循环");return}const r=W(n),i=W(t);if(r!=i)return t;if(r=="object"||r=="array"){if(e.some(([s,a])=>s==n&&a==t))return n;if(e.push([n,t]),r=="object"){for(const s in t)if(Object.prototype.hasOwnProperty.call(t,s)){const a=t[s],u=n[s],l=N(u,a,e,o);n[s]=l}return n}else if(r=="array")return t.forEach((s,a)=>{const u=s,l=n[a],f=N(l,u,e,o);n[a]=f}),n}else return t}function de(n,t="YYYY-MM-DD hh:mm:ss",e=!0){const o=new Date(n);if(isNaN(o.getTime()))return console.error("Invalid date"),"";const r={YYYY:i=>i.getFullYear(),MM:i=>i.getMonth()+1,DD:i=>i.getDate(),hh:i=>i.getHours(),mm:i=>i.getMinutes(),ss:i=>i.getSeconds(),ms:i=>i.getMilliseconds()};return t.replace(/YYYY|MM|DD|hh|mm|ss|ms/g,i=>{const s=r[i](o);return e?String(s).padStart(2,"0"):String(s)})}function fe(n){return new Promise((t,e)=>{fetch(n).then(o=>t(o.text())).catch(o=>{console.error("Error fetching :",o),e(o)})})}function q(n,t="file"){if(!n||(n=String(n).trim(),n===""))return t;const e=n.split("/");return e[e.length-1].split("?")[0]}function he(n,t){return new Promise((e,o)=>{try{t=t||q(n,"downloaded_file"),fetch(n).then(r=>(r.ok||o(`文件下载失败,状态码: ${r.status}`),r.blob())).then(r=>{const i=URL.createObjectURL(r),s=document.createElement("a");s.href=i,s.download=decodeURIComponent(t),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i),e(r)}).catch(o)}catch(r){o(r)}})}function pe(n,t=10){let e=0,o=t;function r(){if(o>0)o--,requestAnimationFrame(r);else{const s=(+new Date-e)/t,a=1e3/s;n(Number(a.toFixed(2)),Number(s.toFixed(2)))}}requestAnimationFrame(()=>{e=+new Date,r()})}function ge(n,t){return n=n.replace(/([^a-zA-Z][a-z])/g,e=>e.toUpperCase()),t?n.replace(/[^a-zA-Z]+/g,""):n}function we(n,t,e){if(!e){let s=t.replace(/^[^.]+./,"");s=s==t?"text/plain":"application/"+s,e={type:s}}const o=new Blob(n,e),r=URL.createObjectURL(o),i=document.createElement("a");i.href=r,i.download=t,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}function xe(n=""){return n+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function K(n,t){let e;return function(...o){clearTimeout(e),e=setTimeout(()=>{n(...o),e=void 0},t)}}function ve(n,t){let e=-1/0;return function(...o){const r=performance.now();if(r-e>t){e=r;try{n(...o)}catch(i){console.error("Throttled function execution failed:",i)}}}}function W(n){return Array.isArray(n)?"array":n===null?"null":typeof n}function be(n){const t=()=>Promise.resolve(),e=a=>(console.error(a),Promise.reject(a));function o(){return navigator.clipboard.writeText(n).then(t).catch(e)}function r(){const a=document.createElement("div");a.innerText=n,document.body.appendChild(a);const u=document.createRange();u.selectNodeContents(a);const l=window.getSelection();let f=!1;return l&&(l.removeAllRanges(),l.addRange(u),f=document.execCommand("copy")),document.body.removeChild(a),f?Promise.resolve():Promise.reject()}function i(){const a=document.createElement("textarea");a.value=n,document.body.appendChild(a),a.select(),a.setSelectionRange(0,n.length);let u=!1;return document.activeElement===a&&(u=document.execCommand("Copy",!0)),document.body.removeChild(a),u?Promise.resolve():Promise.reject()}function s(){return r().then(t).catch(()=>{i().then(t).catch(()=>e("复制方式尽皆失效"))})}return navigator.clipboard?o().catch(s):s()}function ye(n,t){const e=t.split(".");return e.reduce((o,r,i)=>(r in o||(i===e.length-1?o[r]=void 0:o[r]={}),o[r]),n)}function Ce(n,t){const e=t.split(".");return e.reduce((o,r,i)=>o.hasOwnProperty(r)?o[r]:o[r]=i==e.length-1?void 0:{},n)}function _e(n,t,e){const o=t.split(".");return o.reduce((r,i,s)=>(s===o.length-1&&(r[i]=e),r[i]),n)}function Ee(n){return new Promise((t,e)=>{if(typeof n!="string"||n.trim()===""||!n.includes("://")){e(new Error("Invalid URL: Must be a non-empty string"));return}try{new XMLHttpRequest().open("HEAD",n,!0)}catch(i){e(new Error(`Invalid URL format: ${i.message}`));return}const o=new XMLHttpRequest;o.open("HEAD",n,!0);const r=i=>{e(new Error(`Request failed: ${i.type}`))};o.onreadystatechange=function(){o.readyState===XMLHttpRequest.DONE&&(o.status===0?e(new Error("Network error or CORS blocked")):o.status>=200&&o.status<300?t(!0):e(new Error(`HTTP Error: ${o.status}`)))},o.onerror=r,o.onabort=r,o.ontimeout=r;try{o.send()}catch(i){e(new Error(`Request send failed: ${i.message}`))}})}function Fe(n){return["https:","wss:","ftps:","sftp:","smpts:","smtp+tls:","imap+tls:","pop3+tls:","rdp:","vpn:"].some(e=>n.startsWith(e))}const E=class E{constructor(){if(new.target===E)throw new Error("请直接使用静态方法,而不是实例化此类")}static check(t,e){if(!t||typeof t!="string")return console.error("Invalid URL provided"),e?!1:"unknown";const o=q(t).toLowerCase();if(e){if(!H.hasOwnProperty(e))return console.error(`Unknown file type: ${e}`),"unknown";const r=H[e];return E._checkExtension(o,r)}return E._detectFileType(o)}static parseAddresses(t){return!t||typeof t!="string"?(console.error("Invalid URL provided"),[]):t.split(",").map(e=>{const o=q(e),r=this.check(e);return{url:e,name:o,type:r}})}static matchesMimeType(t,e){if(!e)return!0;if(typeof t!="string"||typeof e!="string")return!1;const o=E._normalizeType(t),r=e.split(",").map(a=>E._normalizeType(a.trim())),[i,s="*"]=o.split("/");return r.some(a=>{const[u,l="*"]=a.split("/");return(u==="*"||i==="*"||u===i)&&(l==="*"||s==="*"||l===s)})}static _normalizeType(t){return t.startsWith(".")&&!t.includes("/")?ie[t.toLowerCase()]||t:t.includes("/")?t:`${t}/*`}static _checkExtension(t,e){return e.some(o=>t.endsWith(o))}static _detectFileType(t){for(const[e,o]of E.cachedEntries)if(o.some(r=>t.endsWith(r)))return e;return"unknown"}};y(E,"cachedEntries",Object.entries(H));let X=E;function Te(n){return n.map((t,e)=>n.slice(e).concat(n.slice(0,e)))}function Me(n){const t=window.structuredClone,e=o=>o===null||typeof o!="object"?o:N(Array.isArray(o)?[]:{},o);try{return t?t(n):e(n)}catch(o){return console.error("structuredClone error:",o),t&&e(n)}}const $=class ${constructor(){if(new.target===$)throw new Error("请直接使用静态方法,而不是实例化此类")}static open(t,e,o,r){const i=this.keys.get(t);if(i&&!i.closed)return i.focus(),i;{const s=window.open(e,o,r);if(s)return this.keys.set(t,s),s;console.error("window.open failed: 可能是浏览器阻止了弹出窗口"),this.keys.delete(t)}}static isOpen(t){const e=this.keys.get(t);return e!=null&&e.closed&&this.keys.delete(t),this.keys.has(t)}static getWindow(t){if(this.isOpen(t))return this.keys.get(t)}static close(t){const e=this.keys.get(t);e&&(e.close(),this.keys.delete(t))}static closeAll(){this.keys.forEach((t,e)=>t.close()),this.keys.clear()}};y($,"keys",new Map);let G=$;function Le(n,t="image/png"){try{let e,o=t;if(n instanceof File)return URL.createObjectURL(n);if(typeof n=="string"){let i=n;const s=i.match(/^data:([^;]*)(;base64)?,(.*)$/i);if(s){if(!s[2])throw new Error("无效的数据 URL:缺少 base64 编码声明");if(o=s[1]||o,i=s[3],!i)throw new Error("数据 URL 包含空有效负载")}i=i.replace(/[^A-Za-z0-9+/=]/g,"");const a=atob(i);e=new Uint8Array(a.length);for(let u=0;u<a.length;u++)e[u]=a.charCodeAt(u)}else if(n instanceof ArrayBuffer)e=new Uint8Array(n);else if(n instanceof Uint8Array)e=n;else throw new Error("不支持的数据类型。应为 Base64 字符串、ArrayBuffer 或 Uint8Array");const r=new Blob([e],{type:o});return URL.createObjectURL(r)}catch(e){return console.error("数据到 ImageURL 的转换失败:",e.message,e.stack||"没有可用的堆栈跟踪"),null}}function je(n,t){if(typeof n!="function")throw new Error("The first argument must be a function.");if(!Array.isArray(t))throw new Error("The second argument must be an array.");let e=[],o=100,r=0;const i=(s,a)=>{for(const[u,l]of a)if(s>=u)return l;return"black"};return function(...s){const a=performance.now(),u=n(...s),l=performance.now()-a;e.push(l),e.length>o&&e.shift(),r=e.reduce((T,B)=>T+B,0)/e.length||0;const f=i(l,t),p=i(r,t);return console.log(`%c单次耗时:${l.toFixed(2)}ms
3
+ %c平均耗时(${e.length}次):${r.toFixed(2)}ms`,`color: ${f}; padding: 2px 0;`,`color: ${p}; padding: 2px 0;`),u}}function Re(n){const t=K(n,100);let e=0,o=0;return function(r){const i=r.target;if(!i||!(i instanceof HTMLElement))return;const{scrollTop:s,scrollHeight:a,clientHeight:u,scrollLeft:l,scrollWidth:f,clientWidth:p}=i;function T(){if(e==s)return;const Y=e>s;if(e=s,Y)return;a-s-u<=1&&t("vertical")}function B(){if(o==l)return;const Y=o>l;if(o=l,Y)return;f-l-p<=1&&t("horizontal")}T(),B()}}function Pe(n,t,e){const{isClickAllowed:o,uiLibrary:r=["naiveUI","ElementPlus","Element"]}=e||{},i=function(u){const l=[];for(const f in u)Object.hasOwnProperty.call(u,f)&&r.includes(f)&&l.push(...u[f]);return l}({naiveUI:[".v-binder-follower-container",".n-image-preview-container",".n-modal-container"],ElementPlus:[".el-popper"],Element:[".el-popper"]});function s(){t(),document.removeEventListener("mousedown",a)}function a(u){if(o){const p=o(u);if(p)return;if(p===!1)return s()}const l=u.target;if(!(l instanceof HTMLElement)||!(l!=null&&l.closest("body")))return;n.concat(i).some(p=>!!(l!=null&&l.closest(p)))||s()}requestAnimationFrame(()=>document.addEventListener("mousedown",a))}var w,M,L,D,U,C,_,F,I;class ke{constructor(){d(this,w);d(this,M,!1);d(this,L,{});d(this,D,0);d(this,U,0);d(this,C,0);d(this,_,0);d(this,F);d(this,I)}init(t,e){m(this,w,t),m(this,F,e==null?void 0:e.limit),m(this,I,e==null?void 0:e.dragDom),m(this,L,{mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this)}),this.bindOrUnbindEvent("bind")}finish(){this.bindOrUnbindEvent("unbind")}bindOrUnbindEvent(t){const e=t==="bind"?"addEventListener":"removeEventListener";if(!c(this,w))return console.error("No DOM");c(this,w)[e]("mousedown",c(this,L).mousedown),document[e]("mousemove",c(this,L).mousemove),document[e]("mouseup",c(this,L).mouseup)}alterLocation(){if(!c(this,w))return console.error("No DOM");c(this,F)&&(m(this,C,Math.min(c(this,C),c(this,F).max.top)),m(this,C,Math.max(c(this,C),c(this,F).min.top)),m(this,_,Math.min(c(this,_),c(this,F).max.left)),m(this,_,Math.max(c(this,_),c(this,F).min.left))),c(this,w).style.setProperty("--top",c(this,C)+"px"),c(this,w).style.setProperty("--left",c(this,_)+"px")}mousedown(t){if(!c(this,w))return console.error("No DOM");if(c(this,I)&&t.target!=c(this,I))return;document.body.classList.add("no-select"),m(this,M,!0);const e=c(this,w).getBoundingClientRect(),{pageX:o,pageY:r}=t;m(this,D,o),m(this,U,r),m(this,C,e.y),m(this,_,e.x)}mousemove(t){const{pageX:e,pageY:o}=t;c(this,M)&&(m(this,C,c(this,C)+(o-c(this,U))),m(this,_,c(this,_)+(e-c(this,D))),m(this,D,e),m(this,U,o),this.alterLocation())}mouseup(){c(this,M)&&(m(this,M,!1),document.body.classList.remove("no-select"))}}w=new WeakMap,M=new WeakMap,L=new WeakMap,D=new WeakMap,U=new WeakMap,C=new WeakMap,_=new WeakMap,F=new WeakMap,I=new WeakMap;var x,j,R,O,S,v,b,g,z,A;class De{constructor(){d(this,x);d(this,j,!1);d(this,R,{});d(this,O,0);d(this,S,0);d(this,v,0);d(this,b,0);d(this,g);d(this,z);d(this,A)}init(t,e={}){m(this,x,t),m(this,g,e.limit),m(this,z,e.update_move),m(this,A,e.update_up),m(this,R,{mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this)}),this.bindOrUnbindEvent("bind")}finish(){this.bindOrUnbindEvent("unbind")}bindOrUnbindEvent(t){const e=t==="bind"?"addEventListener":"removeEventListener";if(!c(this,x))return console.error("No DOM");c(this,x)[e]("mousedown",c(this,R).mousedown),document[e]("mousemove",c(this,R).mousemove),document[e]("mouseup",c(this,R).mouseup)}updateValue(){const t={top:c(this,v),left:c(this,b),percentage:{top:0,left:0}};if(c(this,g)){const e=o=>c(this,g)?(t[o]-c(this,g).min[o])/(c(this,g).max[o]-c(this,g).min[o]):0;t.percentage={top:e("top")||0,left:e("left")||0}}return t}alterLocation(){if(!c(this,x))return console.error("No DOM");c(this,g)&&(m(this,v,Math.min(c(this,v),c(this,g).max.top)),m(this,v,Math.max(c(this,v),c(this,g).min.top)),m(this,b,Math.min(c(this,b),c(this,g).max.left)),m(this,b,Math.max(c(this,b),c(this,g).min.left))),c(this,z)&&c(this,z).call(this,this.updateValue()),c(this,x).style.setProperty("--top",c(this,v)+"px"),c(this,x).style.setProperty("--left",c(this,b)+"px")}mousedown(t){if(!c(this,x))return console.error("No DOM");document.body.classList.add("no-select"),m(this,j,!0);const e=c(this,x).getBoundingClientRect();m(this,S,e.y),m(this,O,e.x);const{pageX:o,pageY:r}=t;m(this,v,r-c(this,S)),m(this,b,o-c(this,O)),this.alterLocation()}mousemove(t){const{pageX:e,pageY:o}=t;c(this,j)&&(m(this,v,o-c(this,S)),m(this,b,e-c(this,O)),this.alterLocation())}mouseup(){c(this,j)&&(m(this,j,!1),document.body.classList.remove("no-select"),c(this,A)&&c(this,A).call(this,this.updateValue()))}}x=new WeakMap,j=new WeakMap,R=new WeakMap,O=new WeakMap,S=new WeakMap,v=new WeakMap,b=new WeakMap,g=new WeakMap,z=new WeakMap,A=new WeakMap;function Q(n){const t=n;if(n){if(n.requestFullscreen)return n.requestFullscreen();if(t.mozRequestFullScreen)return t.mozRequestFullScreen();if(t.webkitRequestFullscreen)return t.webkitRequestFullscreen();if(t.msRequestFullscreen)return t.msRequestFullscreen()}else return Promise.reject("No DOM");return Promise.reject("No Fullscreen API")}function ee(){const n=document;return document.exitFullscreen?document.exitFullscreen():n.mozCancelFullScreen?n.mozCancelFullScreen():n.webkitExitFullscreen?n.webkitExitFullscreen():n.msExitFullscreen?n.msExitFullscreen():Promise.reject("No ExitFullscreen API")}function te(){const n=document;return document.fullscreenElement||n.webkitFullscreenElement||n.mozFullScreenElement||n.msFullscreenElement}function Ue(n){return function(){te()?ee():Q(n)}}function Ie(n,t){if(typeof n=="number")return n;if(/px/.test(n))return Number(n.replace(/px/,""))||0;const e=document.createElement("div");e.style.width=n,t=t||document.body,t.appendChild(e);const o=e.getBoundingClientRect().width;return t.removeChild(e),o}function Oe(n,t){if(!n)return;let e,o;if(typeof t=="string"){const i=document.querySelector(t);if(!i)return;const s=i.getBoundingClientRect();e=s.width,o=s.height}else if(Array.isArray(t))e=t[0],o=t[1];else{const i=t.getBoundingClientRect();e=i.width,o=i.height}const r=e/o;return r>n?[n*o,o]:r<n?[e,e/n]:[e,o]}function Se(n,t=5e3){return new Promise((e,o)=>{const r=new Image;r.src=n;const i=setTimeout(()=>{o(new Error("图片加载超时")),r.onload=null,r.onerror=null},t);r.onload=()=>{clearTimeout(i);const s=r.naturalWidth,a=r.naturalHeight,u=s/a;e([r,u])},r.onerror=()=>{clearTimeout(i),o(new Error("图片加载失败"))},r.crossOrigin="Anonymous"})}function ze(n,t,e=2){return!Number.isFinite(n)||!Number.isFinite(t)||!Number.isFinite(e)?(console.error("所有参数必须是有限的数字"),""):t===0?(console.error("分母不能为零"),""):e<0?(console.error("小数位数不能为负数"),""):(n/t*100).toFixed(e)+"%"}function Ae(n,t,e){return Math.abs(n-t)<=e}function Ne(n,t=500){let e,o=!0;function r(i){if(!o)return;e||(e=i);let s=Math.min((i-e)/t,1);n(s),i-e<t&&requestAnimationFrame(r)}return requestAnimationFrame(r),()=>o=!1}function qe(n){return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}function $e(n,t){const e={join:!0,suffix:"",decimalPlaces:2},{join:o,suffix:r,decimalPlaces:i}={...e,...t||{}},s=Number(n);if(isNaN(s))return o?`0${r}`:[0,r];const a=Math.abs(s),u=s>=0,l=Math.max(0,Math.floor(Math.log10(a)/4)),f=Math.pow(1e4,l),p=a/f,T=(u?1:-1)*parseFloat(p.toFixed(Math.max(0,i)));return o?`${T}${J[l]}${r}`:[T,J[l]+r]}function Be(n,t){let e=!1;const{x:o,y:r}=n,i=t.length;for(let s=0,a=i-1;s<i;a=s++){const u=t[s].x,l=t[s].y,f=t[a].x,p=t[a].y;l>r!=p>r&&o<(f-u)*(r-l)/(p-l)+u&&(e=!e)}return e}function Ye(n){const t=["B","KB","MB","GB","TB","PB"];let e=0;for(;n>1024;)n/=1024,e++;return`${Math.round(n*100)/100} ${t[e]}`}function He(n,t,e,o){return Math.sqrt(Math.pow(e-n,2)+Math.pow(o-t,2))}function We(n,t,e,o){const r=(n+e)/2,i=(t+o)/2;return{x:r,y:i}}class k{constructor(t,e){y(this,"resolve");y(this,"reject");this.resolve=t,this.reject=e}run(t){var e,o;return t instanceof Promise?t.then(r=>{var i;return(i=this.resolve)==null||i.call(this),r}).catch(r=>{var i;return(i=this.reject)==null||i.call(this),Promise.reject(r)}):t?(e=this.resolve)==null||e.call(this):(o=this.reject)==null||o.call(this),t}}class Xe extends k{constructor(t){super(),this.resolve=t}warning(...t){const e=()=>{var o,r;return(r=(o=P.tips).warning)==null?void 0:r.call(o,...t)};return new k(this.resolve,e)}error(...t){const e=()=>{var o,r;return(r=(o=P.tips).error)==null?void 0:r.call(o,...t)};return new k(this.resolve,e)}}class Ge extends k{constructor(t){super(),this.reject=t}info(...t){const e=()=>{var o,r;return(r=(o=P.tips).info)==null?void 0:r.call(o,...t)};return new k(e,this.reject)}success(...t){const e=()=>{var o,r;return(r=(o=P.tips).success)==null?void 0:r.call(o,...t)};return new k(e,this.reject)}}const h=class h{constructor(){if(new.target===h)throw new Error("请直接使用静态方法,而不是实例化此类")}static register(t,e){if(typeof e!="function")return console.error("TipHandler must be a function");h.tips[t]=e}static resolveTip(t){return function(...e){const o=()=>{var r,i;return(i=(r=h.tips)[t])==null?void 0:i.call(r,...e)};return new Xe(o)}}static rejectTip(t){return function(...e){const o=()=>{var r,i;return(i=(r=h.tips)[t])==null?void 0:i.call(r,...e)};return new Ge(o)}}};y(h,"tips",{info:void 0,success:void 0,warning:void 0,error:void 0}),y(h,"info",h.resolveTip("info")),y(h,"success",h.resolveTip("success")),y(h,"warning",h.rejectTip("warning")),y(h,"error",h.rejectTip("error"));let P=h;exports._CalculateCanvasSize=Oe;exports._CalculateDistance2D=He;exports._CapitalizeFirstLetter=me;exports._CheckConnectionWithXHR=Ee;exports._Clone=Me;exports._CloseOnOutsideClick=Pe;exports._ConvertToCamelCase=ge;exports._ConvertToPercentage=ze;exports._CopyToClipboard=be;exports._CreateAndDownloadFile=we;exports._Danger_ConvertDataToImageUrl=Le;exports._DataType=W;exports._Debounce=K;exports._DownloadFile=he;exports._Drag=ke;exports._EnterFullscreen=Q;exports._ExcludeSubstring=ue;exports._ExecuteWhenIdle=ae;exports._ExitFullscreen=ee;exports._FileTypeChecker=X;exports._FormatFileSize=Ye;exports._FormatNumber=qe;exports._FormatNumberWithUnit=$e;exports._Fullscreen=Ue;exports._GenerateUUID=xe;exports._GetFrameRate=pe;exports._GetHrefName=q;exports._GetMidpoint=We;exports._GetOtherSizeInPixels=Ie;exports._GetTargetByPath=Ce;exports._InitTargetByPath=ye;exports._IsFullscreen=te;exports._IsObject=ce;exports._IsPointInPolygon=Be;exports._IsSecureContext=Fe;exports._IsWithinErrorMargin=Ae;exports._KeyedWindowManager=G;exports._LoadImage=Se;exports._LocalDrag=De;exports._MergeObjects=N;exports._NotNull=se;exports._ReadFile=fe;exports._RotateList=Te;exports._Schedule=Ne;exports._ScrollEndListener=Re;exports._Throttle=ve;exports._TimeConsumption=je;exports._TimeTransition=de;exports._Tip=P;exports._UpdateTargetByPath=_e;exports._WaitForCondition=le;
package/dist/index.es.js CHANGED
@@ -1,11 +1,11 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".nhanh-pure-function{--nhanh: 2233}.no-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
2
  var K = Object.defineProperty;
3
- var H = (n) => {
3
+ var X = (n) => {
4
4
  throw TypeError(n);
5
5
  };
6
6
  var ee = (n, t, e) => t in n ? K(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
7
- var y = (n, t, e) => ee(n, typeof t != "symbol" ? t + "" : t, e), X = (n, t, e) => t.has(n) || H("Cannot " + e);
8
- var c = (n, t, e) => (X(n, t, "read from private field"), e ? e.call(n) : t.get(n)), d = (n, t, e) => t.has(n) ? H("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), l = (n, t, e, o) => (X(n, t, "write to private field"), o ? o.call(n, e) : t.set(n, e), e);
7
+ var y = (n, t, e) => ee(n, typeof t != "symbol" ? t + "" : t, e), W = (n, t, e) => t.has(n) || X("Cannot " + e);
8
+ var c = (n, t, e) => (W(n, t, "read from private field"), e ? e.call(n) : t.get(n)), d = (n, t, e) => t.has(n) ? X("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), m = (n, t, e, o) => (W(n, t, "write to private field"), o ? o.call(n, e) : t.set(n, e), e);
9
9
  const te = {
10
10
  /* 常见扩展名映射 */
11
11
  ".mp3": "audio/mpeg",
@@ -70,7 +70,7 @@ const te = {
70
70
  ".eot": "application/vnd.ms-fontobject",
71
71
  ".map": "application/json"
72
72
  // 可根据需要继续扩展
73
- }, $ = {
73
+ }, Y = {
74
74
  image: [
75
75
  ".jpg",
76
76
  ".jpeg",
@@ -250,7 +250,7 @@ const te = {
250
250
  ".awk",
251
251
  ".php"
252
252
  ]
253
- }, W = [
253
+ }, G = [
254
254
  "",
255
255
  "万",
256
256
  "亿",
@@ -302,25 +302,25 @@ function fe(n, t, e = ",") {
302
302
  function he(n) {
303
303
  return n.charAt(0).toUpperCase() + n.slice(1);
304
304
  }
305
- function Y(n, t, e = [], o = +/* @__PURE__ */ new Date()) {
305
+ function B(n, t, e = [], o = +/* @__PURE__ */ new Date()) {
306
306
  if (o < +/* @__PURE__ */ new Date() - 50) {
307
307
  console.error("_MergeObjects 合并异常:疑似死循环");
308
308
  return;
309
309
  }
310
- const r = G(n), i = G(t);
310
+ const r = V(n), i = V(t);
311
311
  if (r != i) return t;
312
312
  if (r == "object" || r == "array") {
313
313
  if (e.some(([s, a]) => s == n && a == t)) return n;
314
314
  if (e.push([n, t]), r == "object") {
315
315
  for (const s in t)
316
316
  if (Object.prototype.hasOwnProperty.call(t, s)) {
317
- const a = t[s], m = n[s], u = Y(m, a, e, o);
318
- n[s] = u;
317
+ const a = t[s], u = n[s], l = B(u, a, e, o);
318
+ n[s] = l;
319
319
  }
320
320
  return n;
321
321
  } else if (r == "array")
322
322
  return t.forEach((s, a) => {
323
- const m = s, u = n[a], f = Y(u, m, e, o);
323
+ const u = s, l = n[a], f = B(l, u, e, o);
324
324
  n[a] = f;
325
325
  }), n;
326
326
  } else return t;
@@ -351,7 +351,7 @@ function ge(n) {
351
351
  });
352
352
  });
353
353
  }
354
- function B(n, t = "file") {
354
+ function H(n, t = "file") {
355
355
  if (!n || (n = String(n).trim(), n === "")) return t;
356
356
  const e = n.split("/");
357
357
  return e[e.length - 1].split("?")[0];
@@ -359,7 +359,7 @@ function B(n, t = "file") {
359
359
  function we(n, t) {
360
360
  return new Promise((e, o) => {
361
361
  try {
362
- t = t || B(n, "downloaded_file"), fetch(n).then((r) => (r.ok || o(`文件下载失败,状态码: ${r.status}`), r.blob())).then((r) => {
362
+ t = t || H(n, "downloaded_file"), fetch(n).then((r) => (r.ok || o(`文件下载失败,状态码: ${r.status}`), r.blob())).then((r) => {
363
363
  const i = URL.createObjectURL(r), s = document.createElement("a");
364
364
  s.href = i, s.download = decodeURIComponent(t), document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(i), e(r);
365
365
  }).catch(o);
@@ -421,7 +421,7 @@ function Ee(n, t) {
421
421
  }
422
422
  };
423
423
  }
424
- function G(n) {
424
+ function V(n) {
425
425
  return Array.isArray(n) ? "array" : n === null ? "null" : typeof n;
426
426
  }
427
427
  function Ce(n) {
@@ -432,17 +432,17 @@ function Ce(n) {
432
432
  function r() {
433
433
  const a = document.createElement("div");
434
434
  a.innerText = n, document.body.appendChild(a);
435
- const m = document.createRange();
436
- m.selectNodeContents(a);
437
- const u = window.getSelection();
435
+ const u = document.createRange();
436
+ u.selectNodeContents(a);
437
+ const l = window.getSelection();
438
438
  let f = !1;
439
- return u && (u.removeAllRanges(), u.addRange(m), f = document.execCommand("copy")), document.body.removeChild(a), f ? Promise.resolve() : Promise.reject();
439
+ return l && (l.removeAllRanges(), l.addRange(u), f = document.execCommand("copy")), document.body.removeChild(a), f ? Promise.resolve() : Promise.reject();
440
440
  }
441
441
  function i() {
442
442
  const a = document.createElement("textarea");
443
443
  a.value = n, document.body.appendChild(a), a.select(), a.setSelectionRange(0, n.length);
444
- let m = !1;
445
- return document.activeElement === a && (m = document.execCommand("Copy", !0)), document.body.removeChild(a), m ? Promise.resolve() : Promise.reject();
444
+ let u = !1;
445
+ return document.activeElement === a && (u = document.execCommand("Copy", !0)), document.body.removeChild(a), u ? Promise.resolve() : Promise.reject();
446
446
  }
447
447
  function s() {
448
448
  return r().then(t).catch(() => {
@@ -455,15 +455,15 @@ function Fe(n, t) {
455
455
  const e = t.split(".");
456
456
  return e.reduce((o, r, i) => (r in o || (i === e.length - 1 ? o[r] = void 0 : o[r] = {}), o[r]), n);
457
457
  }
458
- function Le(n, t) {
458
+ function Me(n, t) {
459
459
  const e = t.split(".");
460
460
  return e.reduce((o, r, i) => o.hasOwnProperty(r) ? o[r] : o[r] = i == e.length - 1 ? void 0 : {}, n);
461
461
  }
462
- function je(n, t, e) {
462
+ function Te(n, t, e) {
463
463
  const o = t.split(".");
464
464
  return o.reduce((r, i, s) => (s === o.length - 1 && (r[i] = e), r[i]), n);
465
465
  }
466
- function Me(n) {
466
+ function Le(n) {
467
467
  return new Promise((t, e) => {
468
468
  if (typeof n != "string" || n.trim() === "" || !n.includes("://")) {
469
469
  e(new Error("Invalid URL: Must be a non-empty string"));
@@ -490,7 +490,7 @@ function Me(n) {
490
490
  }
491
491
  });
492
492
  }
493
- function Re(n) {
493
+ function je(n) {
494
494
  return [
495
495
  "https:",
496
496
  // HTTPS协议,用于安全地浏览网页
@@ -522,11 +522,11 @@ const F = class F {
522
522
  static check(t, e) {
523
523
  if (!t || typeof t != "string")
524
524
  return console.error("Invalid URL provided"), e ? !1 : "unknown";
525
- const o = B(t).toLowerCase();
525
+ const o = H(t).toLowerCase();
526
526
  if (e) {
527
- if (!$.hasOwnProperty(e))
527
+ if (!Y.hasOwnProperty(e))
528
528
  return console.error(`Unknown file type: ${e}`), "unknown";
529
- const r = $[e];
529
+ const r = Y[e];
530
530
  return F._checkExtension(o, r);
531
531
  }
532
532
  return F._detectFileType(o);
@@ -541,7 +541,7 @@ const F = class F {
541
541
  */
542
542
  static parseAddresses(t) {
543
543
  return !t || typeof t != "string" ? (console.error("Invalid URL provided"), []) : t.split(",").map((e) => {
544
- const o = B(e), r = this.check(e);
544
+ const o = H(e), r = this.check(e);
545
545
  return { url: e, name: o, type: r };
546
546
  });
547
547
  }
@@ -556,8 +556,8 @@ const F = class F {
556
556
  if (typeof t != "string" || typeof e != "string") return !1;
557
557
  const o = F._normalizeType(t), r = e.split(",").map((a) => F._normalizeType(a.trim())), [i, s = "*"] = o.split("/");
558
558
  return r.some((a) => {
559
- const [m, u = "*"] = a.split("/");
560
- return (m === "*" || i === "*" || m === i) && (u === "*" || s === "*" || u === s);
559
+ const [u, l = "*"] = a.split("/");
560
+ return (u === "*" || i === "*" || u === i) && (l === "*" || s === "*" || l === s);
561
561
  });
562
562
  }
563
563
  /**
@@ -593,13 +593,13 @@ const F = class F {
593
593
  }
594
594
  };
595
595
  // 缓存文件扩展名的条目,以提高性能
596
- y(F, "cachedEntries", Object.entries($));
597
- let V = F;
598
- function Te(n) {
596
+ y(F, "cachedEntries", Object.entries(Y));
597
+ let Z = F;
598
+ function Re(n) {
599
599
  return n.map((t, e) => n.slice(e).concat(n.slice(0, e)));
600
600
  }
601
601
  function ke(n) {
602
- const t = window.structuredClone, e = (o) => o === null || typeof o != "object" ? o : Y(Array.isArray(o) ? [] : {}, o);
602
+ const t = window.structuredClone, e = (o) => o === null || typeof o != "object" ? o : B(Array.isArray(o) ? [] : {}, o);
603
603
  try {
604
604
  return t ? t(n) : e(n);
605
605
  } catch (o) {
@@ -630,18 +630,10 @@ const N = class N {
630
630
  {
631
631
  const s = window.open(e, o, r);
632
632
  if (s)
633
- return this.keys.set(t, s), s.addEventListener("unload", () => this.keys.delete(t)), s;
633
+ return this.keys.set(t, s), s;
634
634
  console.error("window.open failed: 可能是浏览器阻止了弹出窗口"), this.keys.delete(t);
635
635
  }
636
636
  }
637
- /**
638
- * 关闭与指定键关联的窗口
639
- * @param key 窗口的唯一键
640
- */
641
- static close(t) {
642
- const e = this.keys.get(t);
643
- e && !e.closed && (e.close(), this.keys.delete(t));
644
- }
645
637
  /**
646
638
  * 检查指定键的窗口是否打开
647
639
  * @param key 窗口的唯一键
@@ -649,7 +641,7 @@ const N = class N {
649
641
  */
650
642
  static isOpen(t) {
651
643
  const e = this.keys.get(t);
652
- return !!e && !e.closed;
644
+ return e != null && e.closed && this.keys.delete(t), this.keys.has(t);
653
645
  }
654
646
  /**
655
647
  * 获取与指定键关联的窗口
@@ -657,21 +649,26 @@ const N = class N {
657
649
  * @returns 返回对应的窗口,如果窗口已关闭则返回undefined
658
650
  */
659
651
  static getWindow(t) {
652
+ if (this.isOpen(t)) return this.keys.get(t);
653
+ }
654
+ /**
655
+ * 关闭与指定键关联的窗口
656
+ * @param key 窗口的唯一键
657
+ */
658
+ static close(t) {
660
659
  const e = this.keys.get(t);
661
- if (e && !e.closed) return e;
660
+ e && (e.close(), this.keys.delete(t));
662
661
  }
663
662
  /**
664
663
  * 关闭所有打开的窗口并清空Map
665
664
  */
666
665
  static closeAll() {
667
- this.keys.forEach((t, e) => {
668
- t.closed || t.close(), this.keys.delete(e);
669
- });
666
+ this.keys.forEach((t, e) => t.close()), this.keys.clear();
670
667
  }
671
668
  };
672
669
  // 存储键与对应窗口的Map
673
670
  y(N, "keys", /* @__PURE__ */ new Map());
674
- let Z = N;
671
+ let J = N;
675
672
  function Ue(n, t = "image/png") {
676
673
  try {
677
674
  let e, o = t;
@@ -689,8 +686,8 @@ function Ue(n, t = "image/png") {
689
686
  i = i.replace(/[^A-Za-z0-9+/=]/g, "");
690
687
  const a = atob(i);
691
688
  e = new Uint8Array(a.length);
692
- for (let m = 0; m < a.length; m++)
693
- e[m] = a.charCodeAt(m);
689
+ for (let u = 0; u < a.length; u++)
690
+ e[u] = a.charCodeAt(u);
694
691
  } else if (n instanceof ArrayBuffer)
695
692
  e = new Uint8Array(n);
696
693
  else if (n instanceof Uint8Array)
@@ -709,7 +706,31 @@ function Ue(n, t = "image/png") {
709
706
  ), null;
710
707
  }
711
708
  }
712
- function Pe(n) {
709
+ function Pe(n, t) {
710
+ if (typeof n != "function")
711
+ throw new Error("The first argument must be a function.");
712
+ if (!Array.isArray(t))
713
+ throw new Error("The second argument must be an array.");
714
+ let e = [], o = 100, r = 0;
715
+ const i = (s, a) => {
716
+ for (const [u, l] of a)
717
+ if (s >= u)
718
+ return l;
719
+ return "black";
720
+ };
721
+ return function(...s) {
722
+ const a = performance.now(), u = n(...s), l = performance.now() - a;
723
+ e.push(l), e.length > o && e.shift(), r = e.reduce((T, q) => T + q, 0) / e.length || 0;
724
+ const f = i(l, t), p = i(r, t);
725
+ return console.log(
726
+ `%c单次耗时:${l.toFixed(2)}ms
727
+ %c平均耗时(${e.length}次):${r.toFixed(2)}ms`,
728
+ `color: ${f}; padding: 2px 0;`,
729
+ `color: ${p}; padding: 2px 0;`
730
+ ), u;
731
+ };
732
+ }
733
+ function De(n) {
713
734
  const t = ne(n, 100);
714
735
  let e = 0, o = 0;
715
736
  return function(r) {
@@ -718,32 +739,32 @@ function Pe(n) {
718
739
  const {
719
740
  scrollTop: s,
720
741
  scrollHeight: a,
721
- clientHeight: m,
722
- scrollLeft: u,
742
+ clientHeight: u,
743
+ scrollLeft: l,
723
744
  scrollWidth: f,
724
- clientWidth: g
745
+ clientWidth: p
725
746
  } = i;
726
- function A() {
747
+ function T() {
727
748
  if (e == s) return;
728
- const q = e > s;
729
- if (e = s, q) return;
730
- a - s - m <= 1 && t("vertical");
749
+ const $ = e > s;
750
+ if (e = s, $) return;
751
+ a - s - u <= 1 && t("vertical");
731
752
  }
732
- function J() {
733
- if (o == u) return;
734
- const q = o > u;
735
- if (o = u, q) return;
736
- f - u - g <= 1 && t("horizontal");
753
+ function q() {
754
+ if (o == l) return;
755
+ const $ = o > l;
756
+ if (o = l, $) return;
757
+ f - l - p <= 1 && t("horizontal");
737
758
  }
738
- A(), J();
759
+ T(), q();
739
760
  };
740
761
  }
741
- function ze(n, t, e) {
742
- const { isClickAllowed: o, uiLibrary: r = ["naiveUI", "ElementPlus", "Element"] } = e || {}, i = function(m) {
743
- const u = [];
744
- for (const f in m)
745
- Object.hasOwnProperty.call(m, f) && r.includes(f) && u.push(...m[f]);
746
- return u;
762
+ function _e(n, t, e) {
763
+ const { isClickAllowed: o, uiLibrary: r = ["naiveUI", "ElementPlus", "Element"] } = e || {}, i = function(u) {
764
+ const l = [];
765
+ for (const f in u)
766
+ Object.hasOwnProperty.call(u, f) && r.includes(f) && l.push(...u[f]);
767
+ return l;
747
768
  }({
748
769
  naiveUI: [
749
770
  ".v-binder-follower-container",
@@ -756,35 +777,35 @@ function ze(n, t, e) {
756
777
  function s() {
757
778
  t(), document.removeEventListener("mousedown", a);
758
779
  }
759
- function a(m) {
780
+ function a(u) {
760
781
  if (o) {
761
- const g = o(m);
762
- if (g) return;
763
- if (g === !1) return s();
782
+ const p = o(u);
783
+ if (p) return;
784
+ if (p === !1) return s();
764
785
  }
765
- const u = m.target;
766
- if (!(u instanceof HTMLElement) || !(u != null && u.closest("body"))) return;
767
- n.concat(i).some((g) => !!(u != null && u.closest(g))) || s();
786
+ const l = u.target;
787
+ if (!(l instanceof HTMLElement) || !(l != null && l.closest("body"))) return;
788
+ n.concat(i).some((p) => !!(l != null && l.closest(p))) || s();
768
789
  }
769
790
  requestAnimationFrame(
770
791
  () => document.addEventListener("mousedown", a)
771
792
  );
772
793
  }
773
- var w, j, M, U, P, E, C, L, z;
774
- class De {
794
+ var w, L, j, P, D, E, C, M, _;
795
+ class ze {
775
796
  constructor() {
776
797
  d(this, w);
777
- d(this, j, !1);
778
- d(this, M, {});
779
- d(this, U, 0);
798
+ d(this, L, !1);
799
+ d(this, j, {});
780
800
  d(this, P, 0);
801
+ d(this, D, 0);
781
802
  d(this, E, 0);
782
803
  d(this, C, 0);
783
- d(this, L);
784
- d(this, z);
804
+ d(this, M);
805
+ d(this, _);
785
806
  }
786
807
  init(t, e) {
787
- l(this, w, t), l(this, L, e == null ? void 0 : e.limit), l(this, z, e == null ? void 0 : e.dragDom), l(this, M, {
808
+ m(this, w, t), m(this, M, e == null ? void 0 : e.limit), m(this, _, e == null ? void 0 : e.dragDom), m(this, j, {
788
809
  mousedown: this.mousedown.bind(this),
789
810
  mousemove: this.mousemove.bind(this),
790
811
  mouseup: this.mouseup.bind(this)
@@ -796,44 +817,44 @@ class De {
796
817
  bindOrUnbindEvent(t) {
797
818
  const e = t === "bind" ? "addEventListener" : "removeEventListener";
798
819
  if (!c(this, w)) return console.error("No DOM");
799
- c(this, w)[e]("mousedown", c(this, M).mousedown), document[e]("mousemove", c(this, M).mousemove), document[e]("mouseup", c(this, M).mouseup);
820
+ c(this, w)[e]("mousedown", c(this, j).mousedown), document[e]("mousemove", c(this, j).mousemove), document[e]("mouseup", c(this, j).mouseup);
800
821
  }
801
822
  alterLocation() {
802
823
  if (!c(this, w)) return console.error("No DOM");
803
- c(this, L) && (l(this, E, Math.min(c(this, E), c(this, L).max.top)), l(this, E, Math.max(c(this, E), c(this, L).min.top)), l(this, C, Math.min(c(this, C), c(this, L).max.left)), l(this, C, Math.max(c(this, C), c(this, L).min.left))), c(this, w).style.setProperty("--top", c(this, E) + "px"), c(this, w).style.setProperty("--left", c(this, C) + "px");
824
+ c(this, M) && (m(this, E, Math.min(c(this, E), c(this, M).max.top)), m(this, E, Math.max(c(this, E), c(this, M).min.top)), m(this, C, Math.min(c(this, C), c(this, M).max.left)), m(this, C, Math.max(c(this, C), c(this, M).min.left))), c(this, w).style.setProperty("--top", c(this, E) + "px"), c(this, w).style.setProperty("--left", c(this, C) + "px");
804
825
  }
805
826
  mousedown(t) {
806
827
  if (!c(this, w)) return console.error("No DOM");
807
- if (c(this, z) && t.target != c(this, z)) return;
808
- document.body.classList.add("no-select"), l(this, j, !0);
828
+ if (c(this, _) && t.target != c(this, _)) return;
829
+ document.body.classList.add("no-select"), m(this, L, !0);
809
830
  const e = c(this, w).getBoundingClientRect(), { pageX: o, pageY: r } = t;
810
- l(this, U, o), l(this, P, r), l(this, E, e.y), l(this, C, e.x);
831
+ m(this, P, o), m(this, D, r), m(this, E, e.y), m(this, C, e.x);
811
832
  }
812
833
  mousemove(t) {
813
834
  const { pageX: e, pageY: o } = t;
814
- c(this, j) && (l(this, E, c(this, E) + (o - c(this, P))), l(this, C, c(this, C) + (e - c(this, U))), l(this, U, e), l(this, P, o), this.alterLocation());
835
+ c(this, L) && (m(this, E, c(this, E) + (o - c(this, D))), m(this, C, c(this, C) + (e - c(this, P))), m(this, P, e), m(this, D, o), this.alterLocation());
815
836
  }
816
837
  mouseup() {
817
- c(this, j) && (l(this, j, !1), document.body.classList.remove("no-select"));
838
+ c(this, L) && (m(this, L, !1), document.body.classList.remove("no-select"));
818
839
  }
819
840
  }
820
- w = new WeakMap(), j = new WeakMap(), M = new WeakMap(), U = new WeakMap(), P = new WeakMap(), E = new WeakMap(), C = new WeakMap(), L = new WeakMap(), z = new WeakMap();
821
- var x, R, T, D, I, v, b, p, O, _;
841
+ w = new WeakMap(), L = new WeakMap(), j = new WeakMap(), P = new WeakMap(), D = new WeakMap(), E = new WeakMap(), C = new WeakMap(), M = new WeakMap(), _ = new WeakMap();
842
+ var x, R, k, z, I, v, b, g, O, A;
822
843
  class Ie {
823
844
  constructor() {
824
845
  d(this, x);
825
846
  d(this, R, !1);
826
- d(this, T, {});
827
- d(this, D, 0);
847
+ d(this, k, {});
848
+ d(this, z, 0);
828
849
  d(this, I, 0);
829
850
  d(this, v, 0);
830
851
  d(this, b, 0);
831
- d(this, p);
852
+ d(this, g);
832
853
  d(this, O);
833
- d(this, _);
854
+ d(this, A);
834
855
  }
835
856
  init(t, e = {}) {
836
- l(this, x, t), l(this, p, e.limit), l(this, O, e.update_move), l(this, _, e.update_up), l(this, T, {
857
+ m(this, x, t), m(this, g, e.limit), m(this, O, e.update_move), m(this, A, e.update_up), m(this, k, {
837
858
  mousedown: this.mousedown.bind(this),
838
859
  mousemove: this.mousemove.bind(this),
839
860
  mouseup: this.mouseup.bind(this)
@@ -845,7 +866,7 @@ class Ie {
845
866
  bindOrUnbindEvent(t) {
846
867
  const e = t === "bind" ? "addEventListener" : "removeEventListener";
847
868
  if (!c(this, x)) return console.error("No DOM");
848
- c(this, x)[e]("mousedown", c(this, T).mousedown), document[e]("mousemove", c(this, T).mousemove), document[e]("mouseup", c(this, T).mouseup);
869
+ c(this, x)[e]("mousedown", c(this, k).mousedown), document[e]("mousemove", c(this, k).mousemove), document[e]("mouseup", c(this, k).mouseup);
849
870
  }
850
871
  updateValue() {
851
872
  const t = {
@@ -853,8 +874,8 @@ class Ie {
853
874
  left: c(this, b),
854
875
  percentage: { top: 0, left: 0 }
855
876
  };
856
- if (c(this, p)) {
857
- const e = (o) => c(this, p) ? (t[o] - c(this, p).min[o]) / (c(this, p).max[o] - c(this, p).min[o]) : 0;
877
+ if (c(this, g)) {
878
+ const e = (o) => c(this, g) ? (t[o] - c(this, g).min[o]) / (c(this, g).max[o] - c(this, g).min[o]) : 0;
858
879
  t.percentage = {
859
880
  top: e("top") || 0,
860
881
  left: e("left") || 0
@@ -864,25 +885,25 @@ class Ie {
864
885
  }
865
886
  alterLocation() {
866
887
  if (!c(this, x)) return console.error("No DOM");
867
- c(this, p) && (l(this, v, Math.min(c(this, v), c(this, p).max.top)), l(this, v, Math.max(c(this, v), c(this, p).min.top)), l(this, b, Math.min(c(this, b), c(this, p).max.left)), l(this, b, Math.max(c(this, b), c(this, p).min.left))), c(this, O) && c(this, O).call(this, this.updateValue()), c(this, x).style.setProperty("--top", c(this, v) + "px"), c(this, x).style.setProperty("--left", c(this, b) + "px");
888
+ c(this, g) && (m(this, v, Math.min(c(this, v), c(this, g).max.top)), m(this, v, Math.max(c(this, v), c(this, g).min.top)), m(this, b, Math.min(c(this, b), c(this, g).max.left)), m(this, b, Math.max(c(this, b), c(this, g).min.left))), c(this, O) && c(this, O).call(this, this.updateValue()), c(this, x).style.setProperty("--top", c(this, v) + "px"), c(this, x).style.setProperty("--left", c(this, b) + "px");
868
889
  }
869
890
  mousedown(t) {
870
891
  if (!c(this, x)) return console.error("No DOM");
871
- document.body.classList.add("no-select"), l(this, R, !0);
892
+ document.body.classList.add("no-select"), m(this, R, !0);
872
893
  const e = c(this, x).getBoundingClientRect();
873
- l(this, I, e.y), l(this, D, e.x);
894
+ m(this, I, e.y), m(this, z, e.x);
874
895
  const { pageX: o, pageY: r } = t;
875
- l(this, v, r - c(this, I)), l(this, b, o - c(this, D)), this.alterLocation();
896
+ m(this, v, r - c(this, I)), m(this, b, o - c(this, z)), this.alterLocation();
876
897
  }
877
898
  mousemove(t) {
878
899
  const { pageX: e, pageY: o } = t;
879
- c(this, R) && (l(this, v, o - c(this, I)), l(this, b, e - c(this, D)), this.alterLocation());
900
+ c(this, R) && (m(this, v, o - c(this, I)), m(this, b, e - c(this, z)), this.alterLocation());
880
901
  }
881
902
  mouseup() {
882
- c(this, R) && (l(this, R, !1), document.body.classList.remove("no-select"), c(this, _) && c(this, _).call(this, this.updateValue()));
903
+ c(this, R) && (m(this, R, !1), document.body.classList.remove("no-select"), c(this, A) && c(this, A).call(this, this.updateValue()));
883
904
  }
884
905
  }
885
- x = new WeakMap(), R = new WeakMap(), T = new WeakMap(), D = new WeakMap(), I = new WeakMap(), v = new WeakMap(), b = new WeakMap(), p = new WeakMap(), O = new WeakMap(), _ = new WeakMap();
906
+ x = new WeakMap(), R = new WeakMap(), k = new WeakMap(), z = new WeakMap(), I = new WeakMap(), v = new WeakMap(), b = new WeakMap(), g = new WeakMap(), O = new WeakMap(), A = new WeakMap();
886
907
  function oe(n) {
887
908
  const t = n;
888
909
  if (n) {
@@ -910,7 +931,7 @@ function Oe(n) {
910
931
  ie() ? re() : oe(n);
911
932
  };
912
933
  }
913
- function _e(n, t) {
934
+ function Ae(n, t) {
914
935
  if (typeof n == "number") return n;
915
936
  if (/px/.test(n)) return Number(n.replace(/px/, "")) || 0;
916
937
  const e = document.createElement("div");
@@ -935,7 +956,7 @@ function Se(n, t) {
935
956
  const r = e / o;
936
957
  return r > n ? [n * o, o] : r < n ? [e, e / n] : [e, o];
937
958
  }
938
- function Ae(n, t = 5e3) {
959
+ function Ne(n, t = 5e3) {
939
960
  return new Promise((e, o) => {
940
961
  const r = new Image();
941
962
  r.src = n;
@@ -944,32 +965,33 @@ function Ae(n, t = 5e3) {
944
965
  }, t);
945
966
  r.onload = () => {
946
967
  clearTimeout(i);
947
- const s = r.naturalWidth, a = r.naturalHeight, m = s / a;
948
- e([r, m]);
968
+ const s = r.naturalWidth, a = r.naturalHeight, u = s / a;
969
+ e([r, u]);
949
970
  }, r.onerror = () => {
950
971
  clearTimeout(i), o(new Error("图片加载失败"));
951
972
  }, r.crossOrigin = "Anonymous";
952
973
  });
953
974
  }
954
- function Ne(n, t, e = 2) {
975
+ function qe(n, t, e = 2) {
955
976
  return !Number.isFinite(n) || !Number.isFinite(t) || !Number.isFinite(e) ? (console.error("所有参数必须是有限的数字"), "") : t === 0 ? (console.error("分母不能为零"), "") : e < 0 ? (console.error("小数位数不能为负数"), "") : (n / t * 100).toFixed(e) + "%";
956
977
  }
957
- function qe(n, t, e) {
978
+ function $e(n, t, e) {
958
979
  return Math.abs(n - t) <= e;
959
980
  }
960
- function $e(n, t = 500) {
961
- let e;
962
- function o(r) {
963
- e || (e = r);
964
- let i = Math.min((r - e) / t, 1);
965
- n(i), r - e < t && requestAnimationFrame(o);
981
+ function Ye(n, t = 500) {
982
+ let e, o = !0;
983
+ function r(i) {
984
+ if (!o) return;
985
+ e || (e = i);
986
+ let s = Math.min((i - e) / t, 1);
987
+ n(s), i - e < t && requestAnimationFrame(r);
966
988
  }
967
- requestAnimationFrame(o);
989
+ return requestAnimationFrame(r), () => o = !1;
968
990
  }
969
- function Ye(n) {
991
+ function Be(n) {
970
992
  return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
971
993
  }
972
- function Be(n, t) {
994
+ function He(n, t) {
973
995
  const e = {
974
996
  join: !0,
975
997
  suffix: "",
@@ -979,26 +1001,33 @@ function Be(n, t) {
979
1001
  ...t || {}
980
1002
  }, s = Number(n);
981
1003
  if (isNaN(s)) return o ? `0${r}` : [0, r];
982
- const a = Math.abs(s), m = s >= 0, u = Math.max(0, Math.floor(Math.log10(a) / 4)), f = Math.pow(1e4, u), g = a / f, A = (m ? 1 : -1) * parseFloat(g.toFixed(Math.max(0, i)));
983
- return o ? `${A}${W[u]}${r}` : [A, W[u] + r];
1004
+ const a = Math.abs(s), u = s >= 0, l = Math.max(0, Math.floor(Math.log10(a) / 4)), f = Math.pow(1e4, l), p = a / f, T = (u ? 1 : -1) * parseFloat(p.toFixed(Math.max(0, i)));
1005
+ return o ? `${T}${G[l]}${r}` : [T, G[l] + r];
984
1006
  }
985
- function He(n, t) {
1007
+ function Xe(n, t) {
986
1008
  let e = !1;
987
1009
  const { x: o, y: r } = n, i = t.length;
988
1010
  for (let s = 0, a = i - 1; s < i; a = s++) {
989
- const m = t[s].x, u = t[s].y, f = t[a].x, g = t[a].y;
990
- u > r != g > r && o < (f - m) * (r - u) / (g - u) + m && (e = !e);
1011
+ const u = t[s].x, l = t[s].y, f = t[a].x, p = t[a].y;
1012
+ l > r != p > r && o < (f - u) * (r - l) / (p - l) + u && (e = !e);
991
1013
  }
992
1014
  return e;
993
1015
  }
994
- function Xe(n) {
1016
+ function We(n) {
995
1017
  const t = ["B", "KB", "MB", "GB", "TB", "PB"];
996
1018
  let e = 0;
997
1019
  for (; n > 1024; )
998
1020
  n /= 1024, e++;
999
1021
  return `${Math.round(n * 100) / 100} ${t[e]}`;
1000
1022
  }
1001
- class k {
1023
+ function Ge(n, t, e, o) {
1024
+ return Math.sqrt(Math.pow(e - n, 2) + Math.pow(o - t, 2));
1025
+ }
1026
+ function Ve(n, t, e, o) {
1027
+ const r = (n + e) / 2, i = (t + o) / 2;
1028
+ return { x: r, y: i };
1029
+ }
1030
+ class U {
1002
1031
  constructor(t, e) {
1003
1032
  y(this, "resolve");
1004
1033
  y(this, "reject");
@@ -1015,7 +1044,7 @@ class k {
1015
1044
  }) : t ? (e = this.resolve) == null || e.call(this) : (o = this.reject) == null || o.call(this), t;
1016
1045
  }
1017
1046
  }
1018
- class se extends k {
1047
+ class se extends U {
1019
1048
  constructor(t) {
1020
1049
  super(), this.resolve = t;
1021
1050
  }
@@ -1024,17 +1053,17 @@ class se extends k {
1024
1053
  var o, r;
1025
1054
  return (r = (o = S.tips).warning) == null ? void 0 : r.call(o, ...t);
1026
1055
  };
1027
- return new k(this.resolve, e);
1056
+ return new U(this.resolve, e);
1028
1057
  }
1029
1058
  error(...t) {
1030
1059
  const e = () => {
1031
1060
  var o, r;
1032
1061
  return (r = (o = S.tips).error) == null ? void 0 : r.call(o, ...t);
1033
1062
  };
1034
- return new k(this.resolve, e);
1063
+ return new U(this.resolve, e);
1035
1064
  }
1036
1065
  }
1037
- class ce extends k {
1066
+ class ce extends U {
1038
1067
  constructor(t) {
1039
1068
  super(), this.reject = t;
1040
1069
  }
@@ -1043,14 +1072,14 @@ class ce extends k {
1043
1072
  var o, r;
1044
1073
  return (r = (o = S.tips).info) == null ? void 0 : r.call(o, ...t);
1045
1074
  };
1046
- return new k(e, this.reject);
1075
+ return new U(e, this.reject);
1047
1076
  }
1048
1077
  success(...t) {
1049
1078
  const e = () => {
1050
1079
  var o, r;
1051
1080
  return (r = (o = S.tips).success) == null ? void 0 : r.call(o, ...t);
1052
1081
  };
1053
- return new k(e, this.reject);
1082
+ return new U(e, this.reject);
1054
1083
  }
1055
1084
  }
1056
1085
  const h = class h {
@@ -1095,51 +1124,54 @@ y(h, "tips", {
1095
1124
  let S = h;
1096
1125
  export {
1097
1126
  Se as _CalculateCanvasSize,
1127
+ Ge as _CalculateDistance2D,
1098
1128
  he as _CapitalizeFirstLetter,
1099
- Me as _CheckConnectionWithXHR,
1129
+ Le as _CheckConnectionWithXHR,
1100
1130
  ke as _Clone,
1101
- ze as _CloseOnOutsideClick,
1131
+ _e as _CloseOnOutsideClick,
1102
1132
  ve as _ConvertToCamelCase,
1103
- Ne as _ConvertToPercentage,
1133
+ qe as _ConvertToPercentage,
1104
1134
  Ce as _CopyToClipboard,
1105
1135
  be as _CreateAndDownloadFile,
1106
1136
  Ue as _Danger_ConvertDataToImageUrl,
1107
- G as _DataType,
1137
+ V as _DataType,
1108
1138
  ne as _Debounce,
1109
1139
  we as _DownloadFile,
1110
- De as _Drag,
1140
+ ze as _Drag,
1111
1141
  oe as _EnterFullscreen,
1112
1142
  fe as _ExcludeSubstring,
1113
1143
  me as _ExecuteWhenIdle,
1114
1144
  re as _ExitFullscreen,
1115
- V as _FileTypeChecker,
1116
- Xe as _FormatFileSize,
1117
- Ye as _FormatNumber,
1118
- Be as _FormatNumberWithUnit,
1145
+ Z as _FileTypeChecker,
1146
+ We as _FormatFileSize,
1147
+ Be as _FormatNumber,
1148
+ He as _FormatNumberWithUnit,
1119
1149
  Oe as _Fullscreen,
1120
1150
  ye as _GenerateUUID,
1121
1151
  xe as _GetFrameRate,
1122
- B as _GetHrefName,
1123
- _e as _GetOtherSizeInPixels,
1124
- Le as _GetTargetByPath,
1152
+ H as _GetHrefName,
1153
+ Ve as _GetMidpoint,
1154
+ Ae as _GetOtherSizeInPixels,
1155
+ Me as _GetTargetByPath,
1125
1156
  Fe as _InitTargetByPath,
1126
1157
  ie as _IsFullscreen,
1127
1158
  ue as _IsObject,
1128
- He as _IsPointInPolygon,
1129
- Re as _IsSecureContext,
1130
- qe as _IsWithinErrorMargin,
1131
- Z as _KeyedWindowManager,
1132
- Ae as _LoadImage,
1159
+ Xe as _IsPointInPolygon,
1160
+ je as _IsSecureContext,
1161
+ $e as _IsWithinErrorMargin,
1162
+ J as _KeyedWindowManager,
1163
+ Ne as _LoadImage,
1133
1164
  Ie as _LocalDrag,
1134
- Y as _MergeObjects,
1165
+ B as _MergeObjects,
1135
1166
  le as _NotNull,
1136
1167
  ge as _ReadFile,
1137
- Te as _RotateList,
1138
- $e as _Schedule,
1139
- Pe as _ScrollEndListener,
1168
+ Re as _RotateList,
1169
+ Ye as _Schedule,
1170
+ De as _ScrollEndListener,
1140
1171
  Ee as _Throttle,
1172
+ Pe as _TimeConsumption,
1141
1173
  pe as _TimeTransition,
1142
1174
  S as _Tip,
1143
- je as _UpdateTargetByPath,
1175
+ Te as _UpdateTargetByPath,
1144
1176
  de as _WaitForCondition
1145
1177
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhanh-pure-function",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "纯函数工具",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.es.js",