@qy_better_lib/core 0.2.5 → 0.2.7
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/DOCUMENTATION.md +291 -568
- package/dist/core.min.js +1 -1
- package/lib/index.js +2 -1
- package/lib/utils/dom.d.ts +36 -20
- package/lib/utils/dom.js +7 -0
- package/lib/utils/echarts.d.ts +0 -7
- package/lib/utils/echarts.js +3 -9
- package/package.json +1 -1
package/dist/core.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(i,M){typeof exports=="object"&&typeof module<"u"?M(exports):typeof define=="function"&&define.amd?define(["exports"],M):(i=typeof globalThis<"u"?globalThis:i||self,M(i.QyBetterLibCore={}))})(this,(function(i){"use strict";function M(){return Math.floor(Math.random()*1e4)}function it(t){return t<0?0:Math.floor(Math.random()*Math.floor(t))}function ct(t,e){return t>e&&([t,e]=[e,t]),Math.floor(Math.random()*(e-t+1))+t}function ut(t,e,n=2){t>e&&([t,e]=[e,t]);const r=Math.random()*(e-t)+t;return parseFloat(r.toFixed(n))}function st(){const t=R;return`${t()}${t()}-${t()}-${t()}-${t()}-${t()}${t()}${t()}`}function R(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}function N(t,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let n="";const r=e.length;for(let o=0;o<t;o++)n+=e.charAt(Math.floor(Math.random()*r));return n}function ft(){return Math.random()>.5}function w(t){if(!(!t||t.length===0))return t[Math.floor(Math.random()*t.length)]}function at(t,e){return!t||t.length===0||e<=0?[]:e>=t.length?[...t]:[...t].sort(()=>.5-Math.random()).slice(0,e)}function lt(){const t="0123456789ABCDEF";let e="#";for(let n=0;n<6;n++)e+=t[Math.floor(Math.random()*16)];return e}function C(t){return N(t,"0123456789")}function _t(t=8){return N(t,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+~`|}{[]:;?><,./-=")}function dt(){const e=w(["130","131","132","133","134","135","136","137","138","139","150","151","152","153","155","156","157","158","159","170","171","172","173","175","176","177","178","180","181","182","183","184","185","186","187","188","189"]),n=C(8);return`${e}${n}`}function ht(){const t=["gmail.com","yahoo.com","hotmail.com","outlook.com","163.com","126.com","qq.com","sina.com"],e=N(8),n=w(t);return`${e}@${n}`}function mt(){const t=["http","https"],e=["example.com","test.com","demo.com","sample.com"],n=["api","docs","about","contact","products"],r=w(t),o=w(e),c=w(n),u=N(4);return`${r}://www.${o}/${c}?id=${u}`}function gt(t){if(!t)return[];const e=[...t];for(let n=e.length-1;n>0;n--){const r=Math.floor(Math.random()*(n+1));[e[n],e[r]]=[e[r],e[n]]}return e}function yt(t){return t===void 0}function pt(t){return t===null}function l(t){return Array.isArray(t)}function h(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function bt(t){if(typeof t!="object"||t===null)return!1;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function H(t){return Object.prototype.toString.call(t)==="[object Date]"}function wt(t){return H(t)&&!isNaN(t.getTime())}function vt(t){return typeof t=="boolean"}function p(t){return typeof t=="function"}function Mt(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function Nt(t){return typeof t=="symbol"}function Ot(t){return typeof t=="object"&&t!==null&&typeof t.then=="function"&&typeof t.catch=="function"}function $t(t){return!t&&t!==0||l(t)&&t.length===0||h(t)&&!Object.keys(t).length}function Et(t){return!!t}function St(t){return!t}function L(t){return typeof Element>"u"?!1:t instanceof Element}function kt(t){return typeof HTMLElement>"u"?!1:t instanceof HTMLElement}const W=typeof window<"u";function m(t){return typeof t=="number"&&!isNaN(t)}function z(t){return typeof t=="string"}function It(t){return z(t)?!Number.isNaN(Number(t)):!1}function At(t){return/^1[3-9]\d{9}$/.test(t)}function Ft(t){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}function Lt(t){try{return new URL(t),!0}catch{return!1}}function zt(t){return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t)}function Tt(t){return/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(t)}function jt(t){return/^(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$/.test(t)}function Dt(t,e="key",n="children"){const r={};if(!l(t))return r;const o=[{nodes:t}];for(;o.length>0;){const{nodes:c,parent_key:u}=o.pop();for(const s of c){const f=s[e];if(f&&!r[f]){r[f]=s,u&&r[u]&&(r[f].parent=r[u]);const a=s[n];a&&l(a)&&a.length>0&&o.push({nodes:a,parent_key:f})}}}return r}function Pt(t,e="key",n="parentId",r="children"){if(!l(t))return[];const o={},c=[];for(const u of t)o[u[e]]={...u},o[u[e]][r]||(o[u[e]][r]=[]);for(const u of t){const s=u[n];!s||!o[s]?c.push(o[u[e]]):o[s][r].push(o[u[e]])}return c}function Rt(t,e,n="children"){if(!e||!p(e))return!1;let r=!1;const o=l(t)?t:[t],c=[];for(const u of o)c.push({node:u,depth:0});for(;c.length>0;){const{node:u,depth:s}=c.pop();if(e(u,s)===!1){r=!0;break}const a=u[n];if(a&&l(a)&&a.length>0)for(let _=a.length-1;_>=0;_--)c.push({node:a[_],depth:s+1})}return r}function Ct(t,e,n="children"){if(!e||!p(e))return!1;const r=[];if(l(t))for(const o of t)r.push({node:o,depth:0});else r.push({node:t,depth:0});for(;r.length>0;){const{node:o,depth:c}=r.shift();if(e(o,c)===!1)return!0;const s=o[n];if(s&&l(s))for(const f of s)r.push({node:f,depth:c+1})}return!1}function B(t,e,n="children"){if(!e||!p(e))return null;let r=null;const o=c=>{if(e(c))return r=c,!0;const u=c[n];if(u&&l(u)){for(const s of u)if(o(s))return!0}return!1};if(l(t)){for(const c of t)if(o(c))break}else o(t);return r}function T(t,e,n="key",r="children"){return B(t,o=>o[n]===e,r)}function Ht(t,e,n="children"){if(!e||!p(e))return[];const r=o=>{const c=o[n],u=[];if(c&&l(c))for(const s of c){const f=r(s);f&&u.push(f)}return e(o)||u.length>0?{...o,[n]:u}:null};if(l(t)){const o=[];for(const c of t){const u=r(c);u&&o.push(u)}return o}else{const o=r(t);return o?[o]:[]}}function Wt(t,e,n="children"){if(!e||!p(e))return[];const r=o=>{const c=e(o),u=o[n];return u&&l(u)&&(c[n]=u.map(s=>r(s))),c};return l(t)?t.map(o=>r(o)):[r(t)]}function Bt(t,e="key",n="path",r="children"){const o=(c,u="")=>{const s=c[e],f=u?`${u}.${s}`:String(s),a={...c,[n]:f},_=c[r];return _&&l(_)&&(a[r]=_.map(d=>o(d,f))),a};return l(t)?t.map(c=>o(c)):[o(t)]}function Ut(t,e="children"){const n=[],r=o=>{const c=o[e];if(c&&l(c))for(const u of c)n.push(u),r(u)};return r(t),n}function qt(t,e="parent"){const n=[];let r=t[e];for(;r;)n.unshift(r),r=r[e];return n}function Jt(t,e="children"){const n=r=>{const o=r[e];if(!o||!l(o)||o.length===0)return 1;const c=o.map(u=>n(u));return Math.max(...c)+1};if(l(t)){if(t.length===0)return 0;const r=t.map(o=>n(o));return Math.max(...r)}else return n(t)}function Vt(t,e="children"){const n=[],r=o=>{n.push(o);const c=o[e];if(c&&l(c))for(const u of c)r(u)};if(l(t))for(const o of t)r(o);else r(t);return n}function Kt(t,e,n,r="key",o="children"){const c=l(t)?t:[t],u=T(c,e,r,o);return u?(u[o]||(u[o]=[]),u[o].push(n)):c.push(n),c}function Yt(t,e,n="key",r="children"){const o=l(t)?t:[t];let c=null,u=null;const s=(f,a=null)=>{for(let _=0;_<f.length;_++){const d=f[_];if(d[n]===e)return c=d,u=a?a[r]:f,!0;const v=d[r];if(v&&l(v)&&s(v,d))return!0}return!1};if(s(o),c&&u){const f=u.findIndex(a=>a[n]===e);f>-1&&u.splice(f,1)}return o}function Gt(t,e,n,r="key",o="children"){const c=l(t)?t:[t],u=T(c,e,r,o);return u&&Object.assign(u,n),c}function Qt(t,e,n=!0,r="children"){const o=l(t)?t:[t],c=typeof e=="string"?(s,f)=>{const a=s[e],_=f[e];return a<_?-1:a>_?1:0}:e,u=s=>{if(s.sort(c),n)for(const f of s){const a=f[r];a&&l(a)&&a.length>0&&u(a)}};return u(o),o}function Xt(t,e="children"){const n=r=>{const o={...r},c=r[e];return c&&l(c)&&(o[e]=c.map(u=>n(u))),o};return l(t)?t.map(r=>n(r)):[n(t)]}function Zt(t,e="key",n="children"){const r=[],o=new Set,c=new Set,u=(s,f="")=>{if(!h(s)){r.push(`Invalid node at ${f}: node must be an object`);return}if(o.has(s)){r.push(`Circular reference detected at ${f}`);return}o.add(s),e in s&&s[e]!==void 0&&(c.has(s[e])?r.push(`Duplicate key "${s[e]}" found at ${f}`):c.add(s[e]));const a=s[n];a!==void 0&&(l(a)?a.forEach((_,d)=>{u(_,`${f}[${d}]`)}):r.push(`Invalid children at ${f}: children must be an array`)),o.delete(s)};return l(t)?t.forEach((s,f)=>{u(s,`[${f}]`)}):u(t,"root"),{valid:r.length===0,errors:r}}function xt(t,e,n="children"){const r=[],o=p(e)?e:u=>{if(!e||typeof e!="object")return!1;for(const[s,f]of Object.entries(e))if(u[s]!==f)return!1;return!0},c=u=>{typeof o=="function"&&o(u)&&r.push(u);const s=u[n];if(s&&l(s))for(const f of s)c(f)};if(l(t))for(const u of t)c(u);else c(t);return r}function U(t){if(!t&&t!==0)return"0";const e=E(t);return isNaN(e)?`${t}`:`${e}`.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,")}function E(t){if(m(t))return t;if(z(t)){const e=parseFloat(t);return isNaN(e)?Number.NaN:e}return Number.NaN}function q(t,e){const n=E(t);return isNaN(n)?Number.NaN:Number(n.toFixed(e))}function te(t,e="¥",n=2){if(!m(t))return e+"0.00";let r;n===0?r=Math.floor(t).toString():r=t.toFixed(n);const o=U(r);return e+o}function ee(t,e,n){return m(t)?Math.max(e,Math.min(n,t)):Number.NaN}function ne(t,e=2){const n=E(t);return isNaN(n)?"0%":(n*100).toFixed(e)+"%"}function re(t){return m(t)?t%2===0:!1}function oe(t){return m(t)?Math.trunc(t):Number.NaN}function ie(t){return m(t)?t-Math.trunc(t):Number.NaN}function ce(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.round(t*n)/n}function ue(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.ceil(t*n)/n}function se(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.floor(t*n)/n}function fe(t,e,n=2){if(!m(t)||!m(e)||e===0)return Number.NaN;const r=t/e*100;return q(r,n)}function g(t="local"){return t==="local"?localStorage:sessionStorage}function S(t,e=null){try{return JSON.parse(t)}catch(n){return console.error("JSON解析错误:",n),e}}function ae(){const t=localStorage.getItem("token");if(!t)return null;const e=S(t);return e!==null?e.expiry!=null&&e.expiry<Date.now()?(localStorage.removeItem("token"),null):e.value:null}function le(t,e=10080*60){const n=Date.now()+e*1e3,r={value:t,expiry:n};localStorage.setItem("token",JSON.stringify(r))}function _e(){localStorage.removeItem("token")}function J(t,e,n="local"){const r=g(n);e!==void 0&&r.setItem(t,JSON.stringify(e))}function V(t,e="local"){const r=g(e).getItem(t);return r?S(r):null}function K(t,e="local"){g(e).removeItem(t)}function de(t="local"){g(t).clear()}function he(t,e,n,r="local"){const o=g(r),c={value:e,expiry:Date.now()+n*1e3};o.setItem(t,JSON.stringify(c))}function me(t,e="local"){const n=g(e),r=n.getItem(t);if(!r)return null;const o=S(r);return o.expiry&&o.expiry<Date.now()?(n.removeItem(t),null):o.value}function ge(t,e="local"){return g(e).getItem(t)!==null}function Y(t="local"){const e=g(t),n=[];for(let r=0;r<e.length;r++){const o=e.key(r);o&&n.push(o)}return n}function ye(t="local"){const e=g(t),n=Y(t);let r=0;return n.forEach(o=>{const c=e.getItem(o);if(c){const u=S(c);u.expiry&&u.expiry<Date.now()&&(e.removeItem(o),r++)}}),r}function pe(t){try{return btoa(unescape(encodeURIComponent(t)))}catch(e){return console.error("加密错误:",e),t}}function be(t){try{return decodeURIComponent(escape(atob(t)))}catch(e){return console.error("解密错误:",e),t}}function we(t,e,n="local"){const r=g(n),o=JSON.stringify(e),c=pe(o);r.setItem(t,c)}function ve(t,e="local"){const r=g(e).getItem(t);if(!r)return null;try{const o=be(r);return JSON.parse(o)}catch(o){return console.error("解密解析错误:",o),null}}function Me(t,e="local"){t.forEach(n=>{J(n.key,n.value,e)})}function Ne(t,e="local"){const n={};return t.forEach(r=>{n[r]=V(r,e)}),n}function Oe(t,e="local"){t.forEach(n=>{K(n,e)})}function k(t){const e=Object.prototype.toString;if(!t||typeof t!="object")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(e.call(t)==="[object Date]")return new Date(t.getTime());if(e.call(t)==="[object RegExp]"){const r=[];return t.global&&r.push("g"),t.multiline&&r.push("m"),t.ignoreCase&&r.push("i"),new RegExp(t.source,r.join(""))}if(e.call(t)==="[object FormData]"){const r=new FormData;for(const[o,c]of t.entries())r.append(o,c);return r}if(e.call(t)==="[object Map]"){const r=new Map;for(const[o,c]of t.entries())r.set(o,k(c));return r}if(e.call(t)==="[object Set]"){const r=new Set;for(const o of t.values())r.add(k(o));return r}const n=Array.isArray(t)?[]:t.constructor?new t.constructor:{};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=k(t[r]));return n}function G(...t){let e=t.length,n=t[0];h(n)||(n={});for(let r=1;r<e;r++){let o=t[r];if(h(o))for(let c in o)c==="__proto__"||n===o[c]||(h(o[c])?(h(n[c])||(n[c]=Array.isArray(o[c])?[]:{}),n[c]=G(n[c],o[c])):n[c]=o[c])}return n}function I(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(t.constructor!==e.constructor)return!1;let n,r,o;if(Array.isArray(t)){if(n=t.length,n!=e.length)return!1;for(r=n;r--!==0;)if(!I(t[r],e[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,o[r]))return!1;for(r=n;r--!==0;){const c=o[r];if(!I(t[c],e[c]))return!1}return!0}return t!==t&&e!==e}function $e(t){return h(t)&&Object.keys(t).length===0}function Ee(t,e){if(!h(t))return{};const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function Se(t,e){if(!h(t))return{};const n={};return Object.keys(t).forEach(r=>{e.includes(r)||(n[r]=t[r])}),n}function Q(t,e=""){if(!h(t))return{};const n={};return Object.keys(t).forEach(r=>{const o=e?`${e}.${r}`:r;h(t[r])&&!Array.isArray(t[r])?Object.assign(n,Q(t[r],o)):n[o]=t[r]}),n}function ke(t){if(!h(t))return{};const e={};return Object.keys(t).forEach(n=>{const r=n.split(".");let o=e;r.forEach((c,u)=>{u===r.length-1?o[c]=t[n]:(o[c]||(o[c]={}),o=o[c])})}),e}function Ie(t,e,n=void 0){if(!h(t))return n;const r=e.split(".");let o=t;for(const c of r){if(o==null)return n;o=o[c]}return o!==void 0?o:n}function Ae(t,e,n){h(t)||(t={});const r=e.split(".");let o=t;return r.forEach((c,u)=>{u===r.length-1?o[c]=n:(h(o[c])||(o[c]={}),o=o[c])}),t}function Fe(...t){return Object.assign({},...t)}function Le(t,e){const n={};return!h(t)&&!h(e)?n:h(t)?h(e)?(new Set([...Object.keys(t),...Object.keys(e)]).forEach(o=>{I(t[o],e[o])||(n[o]={oldValue:t[o],newValue:e[o]})}),n):t:e}function X(t,e){return!t||t.tagName==="BODY"?null:t.classList.contains(e)?t:X(t.parentElement,e)}function ze(t,e=!0){const n=document.getElementById(t);n&&n.scrollTo({top:n.scrollHeight,behavior:e?"smooth":void 0})}function Te(t,e=document){return e.querySelector(t)}function je(t,e=document){return Array.from(e.querySelectorAll(t))}function De(t,e){t&&!t.classList.contains(e)&&t.classList.add(e)}function Pe(t,e){t&&t.classList.contains(e)&&t.classList.remove(e)}function Re(t,e){return t?t.classList.toggle(e):!1}function Ce(t,e){return t?t.classList.contains(e):!1}function He(t,e){return t?window.getComputedStyle(t).getPropertyValue(e):""}function We(t,e,n){t&&"style"in t&&(t.style[e]=n)}function Z(t,e){t&&"style"in t&&Object.entries(e).forEach(([n,r])=>{t.style[n]=r})}function Be(t,e){return t&&t.getAttribute(e)||""}function x(t,e,n){t&&t.setAttribute(e,n)}function Ue(t,e){t&&t.removeAttribute(e)}function qe(t,e,n,r){t&&t.addEventListener(e,n,r)}function Je(t,e,n,r){t&&t.removeEventListener(e,n,r)}function Ve(t,e){const n=document.createElement(t);return e&&(e.class_name&&(n.className=e.class_name),e.style&&Z(n,e.style),e.attributes&&Object.entries(e.attributes).forEach(([r,o])=>{x(n,r,o)}),e.text&&(n.textContent=e.text)),n}function O(t){return t?t.getBoundingClientRect():null}function tt(t){if(!t)return null;const e=O(t);return e?{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}:null}function Ke(t){if(!t)return null;const e=O(t);return e?{width:e.width,height:e.height}:null}function Ye(t,e){if(!t)return;const{behavior:n="smooth",offsetTop:r=0,offsetLeft:o=0}=e||{},c=tt(t);c&&window.scrollTo({top:c.top-r,left:c.left-o,behavior:n})}function Ge(t){if(!t)return!1;const e=O(t);return e?e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth):!1}function Qe(t){if(!t)return!1;const e=O(t);return e?e.top>0&&e.left>0&&e.bottom<(window.innerHeight||document.documentElement.clientHeight)&&e.right<(window.innerWidth||document.documentElement.clientWidth):!1}function Xe(){return{width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight}}function Ze(){return{width:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.documentElement.clientWidth),height:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.documentElement.clientHeight)}}function j({path:t,name:e}){const n=document.createElement("a");n.href=t,n.target="_blank",e&&n.setAttribute("download",e),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function xe(t){t.forEach(e=>{j({path:e.url,name:e.name})})}async function tn(t){if(!t)return;const e=new FileReader;return e.readAsDataURL(t),new Promise((n,r)=>{e.onload=o=>n(o.target?.result),e.onerror=o=>r(void 0)})}async function en(t,e="UTF-8"){if(!t)return;const n=new FileReader;return n.readAsText(t,e),new Promise((r,o)=>{n.onload=c=>r(c.target?.result),n.onerror=()=>o(void 0)})}function A(t){if(!t)return"";const e=t.lastIndexOf(".");return e===-1?"":t.substring(e+1).toLowerCase()}function D(t){if(!t)return"";const e=t.lastIndexOf(".");return e===-1?t:t.substring(0,e)}function nn(t,e){return t.size<=e}function rn(t,e){const n=A(t.name);return e.includes(n)}function on(t,e,n){return new File([t],e,{type:n})}function cn(t,e,n="text/plain"){const r=new Blob([t],{type:n}),o=URL.createObjectURL(r);j({path:o,name:e}),URL.revokeObjectURL(o)}async function un(t,e=800,n=800,r=.8){if(t.type.startsWith("image/"))return new Promise(o=>{const c=document.createElement("canvas"),u=c.getContext("2d"),s=new Image;s.onload=()=>{let{width:f,height:a}=s;if(f>e||a>n){const _=Math.min(e/f,n/a);f*=_,a*=_}c.width=f,c.height=a,u?.drawImage(s,0,0,f,a),c.toBlob(_=>{if(_){const d=new File([_],t.name,{type:t.type});o(d)}else o(void 0)},t.type,r)},s.src=URL.createObjectURL(t)})}function sn(t){const e=A(t.name),n=D(t.name);let r="";return t.size<1024?r=`${t.size} B`:t.size<1024*1024?r=`${(t.size/1024).toFixed(2)} KB`:t.size<1024*1024*1024?r=`${(t.size/(1024*1024)).toFixed(2)} MB`:r=`${(t.size/(1024*1024*1024)).toFixed(2)} GB`,{name:t.name,size:t.size,size_text:r,type:t.type,extension:e,name_without_extension:n}}function fn(t){const e=A(t),n=D(t),r=Date.now(),o=Math.random().toString(36).substring(2,8);return e?`${n}_${r}_${o}.${e}`:`${n}_${r}_${o}`}function et(t){return/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.test(t)}function an(t,e,n){if(!et(t)||!et(e))return t;n=Math.max(Math.min(Number(n),1),0);const r=b(t),o=b(e);if(!r||!o)return t;const c=Math.round(r.r*(1-n)+o.r*n),u=Math.round(r.g*(1-n)+o.g*n),s=Math.round(r.b*(1-n)+o.b*n);return $(c,u,s)}function ln(t){const e=b(t);return e?`${e.r},${e.g},${e.b}`:"0,0,0"}function b(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function $(t,e,n){return t=Math.max(0,Math.min(255,Math.round(t))),e=Math.max(0,Math.min(255,Math.round(e))),n=Math.max(0,Math.min(255,Math.round(n))),`#${((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)}`}function _n(t,e,n,r){return $(t,e,n)}function dn(t,e){const n=b(t);if(!n)return t;e=Math.max(0,Math.min(1,e));const r=Math.min(255,Math.round(n.r+(255-n.r)*e)),o=Math.min(255,Math.round(n.g+(255-n.g)*e)),c=Math.min(255,Math.round(n.b+(255-n.b)*e));return $(r,o,c)}function hn(t,e){const n=b(t);if(!n)return t;e=Math.max(0,Math.min(1,e));const r=Math.max(0,Math.round(n.r*(1-e))),o=Math.max(0,Math.round(n.g*(1-e))),c=Math.max(0,Math.round(n.b*(1-e)));return $(r,o,c)}function P(t){const e=b(t);return e?(e.r*299+e.g*587+e.b*114)/1e3>128:!1}function mn(t){return!P(t)}function gn(t){return P(t)?"#000000":"#FFFFFF"}function yn(t,e=200,n=!1){let r;return function(...o){const c=this;if(r&&clearTimeout(r),n){const u=!r;if(r=setTimeout(()=>{r=void 0},e),u)return t.apply(c,o)}else r=setTimeout(()=>{t.apply(c,o)},e)}}function pn(t,e=200,n={}){const{leading:r=!0,trailing:o=!0}=n;let c=0,u,s,f;return function(...a){const _=this,d=Date.now();if(c===0){r&&t.apply(_,a),c=d;return}s=a,f=_;const v=d-c;if(v>=e){u&&(clearTimeout(u),u=void 0),t.apply(_,a),c=d;return}!u&&o&&(u=setTimeout(()=>{s&&(t.apply(f,s),c=Date.now()),u=void 0,s=void 0,f=void 0},e-v))}}function bn(t){const e=t.length;function n(...r){return r.length>=e?t.apply(this,r):function(...o){return n.apply(this,[...r,...o])}}return n}function wn(...t){return function(e){return t.reduceRight((n,r)=>r(n),e)}}function vn(...t){return function(e){return t.reduce((n,r)=>r(n),e)}}function Mn(t,e=1e3){return new Promise(n=>{setTimeout(()=>{n(t())},e)})}async function nt(t,e=3,n=1e3){try{return await t()}catch(r){if(e<=0)throw r;return await new Promise(o=>setTimeout(o,n)),nt(t,e-1,n)}}function Nn(t){let e=!1,n;return function(...r){return e||(e=!0,n=t.apply(this,r)),n}}function On(t){const e=new Map;return function(...n){const r=JSON.stringify(n);if(e.has(r))return e.get(r);const o=t.apply(this,n);return e.set(r,o),o}}async function $n(t,e=!0){if(e)return Promise.all(t.map(n=>n()));{const n=[];for(const r of t)n.push(await r());return n}}function En(t,e=5e3,n="Operation timed out"){return Promise.race([Promise.resolve(t()),new Promise((r,o)=>{setTimeout(()=>{o(new Error(n))},e)})])}const y=new Map;let F=null;W&&(document.addEventListener("mousedown",t=>{F=t}),document.addEventListener("mouseup",t=>{for(const e of y.values())for(const{document_handler:n}of e)F&&n(t,F);F=null}));function rt(t,e){const n=[];return Array.isArray(e.arg)?n.push(...e.arg.filter(L)):L(e.arg)&&n.push(e.arg),function(r,o){const c=r.target,u=o.target;if(!c||!u||!e.instance)return;const s=t.contains(c)||t.contains(u),f=t===c,a=n.some(d=>d&&(d.contains(c)||d===u));let _=!1;try{const d=e.instance.popperRef;d&&(_=d.contains(c)||d.contains(u))}catch{}s||f||a||_||typeof e.value=="function"&&e.value(r,o)}}const ot={beforeMount(t,e){y.has(t)||y.set(t,[]),y.get(t)?.push({document_handler:rt(t,e),binding_fn:e.value})},updated(t,e){y.has(t)||y.set(t,[]);const n=y.get(t);if(!n)return;const r=n.findIndex(c=>c.binding_fn===e.oldValue),o={document_handler:rt(t,e),binding_fn:e.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(t){y.delete(t)}};function Sn(t){t.directive("click-outside",ot)}i.ClickOutside=ot,i.add_class=De,i.add_tree_node=Kt,i.add_tree_node_path=Bt,i.batch_execution=$n,i.build_tree=Pt,i.calculate_percentage=fe,i.ceil=ue,i.clamp=ee,i.clear_expired_storage=ye,i.clear_storage=de,i.clone_tree=Xt,i.compose=wn,i.compress_image=un,i.create_element=Ve,i.create_file_from_blob=on,i.curry=bn,i.darken=hn,i.debounce=yn,i.decrypt_storage=ve,i.deep_assign=G,i.deep_clone=k,i.deep_equal=I,i.delay_execution=Mn,i.diff_objects=Le,i.download_file=j,i.download_files=xe,i.download_text_file=cn,i.encrypt_storage=we,i.filter_tree=Ht,i.find_tree_node=B,i.find_tree_node_by_key=T,i.flatten_object=Q,i.flatten_tree_to_array=Vt,i.floor=se,i.format_currency=te,i.generate_unique_file_name=fn,i.get_all_storage_keys=Y,i.get_attribute=Be,i.get_batch_storage=Ne,i.get_contrast_color=gn,i.get_decimal_part=ie,i.get_document_size=Ze,i.get_element=Te,i.get_element_position=tt,i.get_element_rect=O,i.get_element_size=Ke,i.get_elements=je,i.get_file_extension=A,i.get_file_info=sn,i.get_file_name_without_extension=D,i.get_integer_part=oe,i.get_object_value=Ie,i.get_parent_by_class=X,i.get_rgb=ln,i.get_storage=V,i.get_storage_with_expiry=me,i.get_style=He,i.get_token=ae,i.get_tree_depth=Jt,i.get_tree_node_ancestors=qt,i.get_tree_node_descendants=Ut,i.get_window_size=Xe,i.guid=st,i.has_class=Ce,i.has_storage=ge,i.hex_to_rgb=b,i.is_array=l,i.is_boolean=vt,i.is_client=W,i.is_completely_in_viewport=Qe,i.is_dark=mn,i.is_date=H,i.is_element=L,i.is_email=Ft,i.is_empty=$t,i.is_empty_object=$e,i.is_even=re,i.is_falsy=St,i.is_function=p,i.is_hex_color=zt,i.is_html_element=kt,i.is_in_viewport=Ge,i.is_ip=Tt,i.is_light=P,i.is_mobile=At,i.is_null=pt,i.is_number=m,i.is_object=h,i.is_plain_object=bt,i.is_port=jt,i.is_promise=Ot,i.is_reg_exp=Mt,i.is_string=z,i.is_string_number=It,i.is_symbol=Nt,i.is_truthy=Et,i.is_undefined=yt,i.is_url=Lt,i.is_valid_date=wt,i.lighten=dn,i.memoize=On,i.merge_objects=Fe,i.mix=an,i.off=Je,i.omit=Se,i.on=qe,i.once=Nn,i.pick=Ee,i.pipe=vn,i.random_boolean=ft,i.random_color=lt,i.random_element=w,i.random_elements=at,i.random_email=ht,i.random_float=ut,i.random_id=M,i.random_int=it,i.random_int_range=ct,i.random_len_string=N,i.random_number_string=C,i.random_password=_t,i.random_phone=dt,i.random_string=R,i.random_url=mt,i.read_file=en,i.remove_attribute=Ue,i.remove_batch_storage=Oe,i.remove_class=Pe,i.remove_storage=K,i.remove_token=_e,i.remove_tree_node=Yt,i.retry=nt,i.rgb_to_hex=$,i.rgba_to_hex=_n,i.round=ce,i.scroll_footer=ze,i.scroll_to_element=Ye,i.search_tree=xt,i.set_attribute=x,i.set_batch_storage=Me,i.set_object_value=Ae,i.set_storage=J,i.set_storage_with_expiry=he,i.set_style=We,i.set_styles=Z,i.set_token=le,i.setupDirectives=Sn,i.shuffle_array=gt,i.sort_tree=Qt,i.thousand_separator=U,i.throttle=pn,i.timeout=En,i.to_base64=tn,i.to_fixed=q,i.to_number=E,i.to_percentage=ne,i.toggle_class=Re,i.transform_tree=Wt,i.traverse_tree_breadth_first=Ct,i.traverse_tree_depth_first=Rt,i.tree_flat=Dt,i.unflatten_object=ke,i.update_tree_node=Gt,i.validate_file_size=nn,i.validate_file_type=rn,i.validate_tree=Zt,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(i,M){typeof exports=="object"&&typeof module<"u"?M(exports):typeof define=="function"&&define.amd?define(["exports"],M):(i=typeof globalThis<"u"?globalThis:i||self,M(i.QyBetterLibCore={}))})(this,(function(i){"use strict";function M(){return Math.floor(Math.random()*1e4)}function it(t){return t<0?0:Math.floor(Math.random()*Math.floor(t))}function ct(t,e){return t>e&&([t,e]=[e,t]),Math.floor(Math.random()*(e-t+1))+t}function ut(t,e,n=2){t>e&&([t,e]=[e,t]);const r=Math.random()*(e-t)+t;return parseFloat(r.toFixed(n))}function st(){const t=R;return`${t()}${t()}-${t()}-${t()}-${t()}-${t()}${t()}${t()}`}function R(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}function N(t,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let n="";const r=e.length;for(let o=0;o<t;o++)n+=e.charAt(Math.floor(Math.random()*r));return n}function ft(){return Math.random()>.5}function w(t){if(!(!t||t.length===0))return t[Math.floor(Math.random()*t.length)]}function at(t,e){return!t||t.length===0||e<=0?[]:e>=t.length?[...t]:[...t].sort(()=>.5-Math.random()).slice(0,e)}function lt(){const t="0123456789ABCDEF";let e="#";for(let n=0;n<6;n++)e+=t[Math.floor(Math.random()*16)];return e}function C(t){return N(t,"0123456789")}function _t(t=8){return N(t,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+~`|}{[]:;?><,./-=")}function dt(){const e=w(["130","131","132","133","134","135","136","137","138","139","150","151","152","153","155","156","157","158","159","170","171","172","173","175","176","177","178","180","181","182","183","184","185","186","187","188","189"]),n=C(8);return`${e}${n}`}function ht(){const t=["gmail.com","yahoo.com","hotmail.com","outlook.com","163.com","126.com","qq.com","sina.com"],e=N(8),n=w(t);return`${e}@${n}`}function mt(){const t=["http","https"],e=["example.com","test.com","demo.com","sample.com"],n=["api","docs","about","contact","products"],r=w(t),o=w(e),c=w(n),u=N(4);return`${r}://www.${o}/${c}?id=${u}`}function gt(t){if(!t)return[];const e=[...t];for(let n=e.length-1;n>0;n--){const r=Math.floor(Math.random()*(n+1));[e[n],e[r]]=[e[r],e[n]]}return e}function yt(t){return t===void 0}function pt(t){return t===null}function l(t){return Array.isArray(t)}function h(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function bt(t){if(typeof t!="object"||t===null)return!1;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function W(t){return Object.prototype.toString.call(t)==="[object Date]"}function wt(t){return W(t)&&!isNaN(t.getTime())}function vt(t){return typeof t=="boolean"}function p(t){return typeof t=="function"}function Mt(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function Nt(t){return typeof t=="symbol"}function Ot(t){return typeof t=="object"&&t!==null&&typeof t.then=="function"&&typeof t.catch=="function"}function $t(t){return!t&&t!==0||l(t)&&t.length===0||h(t)&&!Object.keys(t).length}function Et(t){return!!t}function St(t){return!t}function L(t){return typeof Element>"u"?!1:t instanceof Element}function kt(t){return typeof HTMLElement>"u"?!1:t instanceof HTMLElement}const H=typeof window<"u";function m(t){return typeof t=="number"&&!isNaN(t)}function z(t){return typeof t=="string"}function It(t){return z(t)?!Number.isNaN(Number(t)):!1}function Ft(t){return/^1[3-9]\d{9}$/.test(t)}function At(t){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}function Lt(t){try{return new URL(t),!0}catch{return!1}}function zt(t){return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t)}function Tt(t){return/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(t)}function jt(t){return/^(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$/.test(t)}function Dt(t,e="key",n="children"){const r={};if(!l(t))return r;const o=[{nodes:t}];for(;o.length>0;){const{nodes:c,parent_key:u}=o.pop();for(const s of c){const f=s[e];if(f&&!r[f]){r[f]=s,u&&r[u]&&(r[f].parent=r[u]);const a=s[n];a&&l(a)&&a.length>0&&o.push({nodes:a,parent_key:f})}}}return r}function Pt(t,e="key",n="parentId",r="children"){if(!l(t))return[];const o={},c=[];for(const u of t)o[u[e]]={...u},o[u[e]][r]||(o[u[e]][r]=[]);for(const u of t){const s=u[n];!s||!o[s]?c.push(o[u[e]]):o[s][r].push(o[u[e]])}return c}function Rt(t,e,n="children"){if(!e||!p(e))return!1;let r=!1;const o=l(t)?t:[t],c=[];for(const u of o)c.push({node:u,depth:0});for(;c.length>0;){const{node:u,depth:s}=c.pop();if(e(u,s)===!1){r=!0;break}const a=u[n];if(a&&l(a)&&a.length>0)for(let _=a.length-1;_>=0;_--)c.push({node:a[_],depth:s+1})}return r}function Ct(t,e,n="children"){if(!e||!p(e))return!1;const r=[];if(l(t))for(const o of t)r.push({node:o,depth:0});else r.push({node:t,depth:0});for(;r.length>0;){const{node:o,depth:c}=r.shift();if(e(o,c)===!1)return!0;const s=o[n];if(s&&l(s))for(const f of s)r.push({node:f,depth:c+1})}return!1}function B(t,e,n="children"){if(!e||!p(e))return null;let r=null;const o=c=>{if(e(c))return r=c,!0;const u=c[n];if(u&&l(u)){for(const s of u)if(o(s))return!0}return!1};if(l(t)){for(const c of t)if(o(c))break}else o(t);return r}function T(t,e,n="key",r="children"){return B(t,o=>o[n]===e,r)}function Wt(t,e,n="children"){if(!e||!p(e))return[];const r=o=>{const c=o[n],u=[];if(c&&l(c))for(const s of c){const f=r(s);f&&u.push(f)}return e(o)||u.length>0?{...o,[n]:u}:null};if(l(t)){const o=[];for(const c of t){const u=r(c);u&&o.push(u)}return o}else{const o=r(t);return o?[o]:[]}}function Ht(t,e,n="children"){if(!e||!p(e))return[];const r=o=>{const c=e(o),u=o[n];return u&&l(u)&&(c[n]=u.map(s=>r(s))),c};return l(t)?t.map(o=>r(o)):[r(t)]}function Bt(t,e="key",n="path",r="children"){const o=(c,u="")=>{const s=c[e],f=u?`${u}.${s}`:String(s),a={...c,[n]:f},_=c[r];return _&&l(_)&&(a[r]=_.map(d=>o(d,f))),a};return l(t)?t.map(c=>o(c)):[o(t)]}function Ut(t,e="children"){const n=[],r=o=>{const c=o[e];if(c&&l(c))for(const u of c)n.push(u),r(u)};return r(t),n}function qt(t,e="parent"){const n=[];let r=t[e];for(;r;)n.unshift(r),r=r[e];return n}function Jt(t,e="children"){const n=r=>{const o=r[e];if(!o||!l(o)||o.length===0)return 1;const c=o.map(u=>n(u));return Math.max(...c)+1};if(l(t)){if(t.length===0)return 0;const r=t.map(o=>n(o));return Math.max(...r)}else return n(t)}function Vt(t,e="children"){const n=[],r=o=>{n.push(o);const c=o[e];if(c&&l(c))for(const u of c)r(u)};if(l(t))for(const o of t)r(o);else r(t);return n}function Kt(t,e,n,r="key",o="children"){const c=l(t)?t:[t],u=T(c,e,r,o);return u?(u[o]||(u[o]=[]),u[o].push(n)):c.push(n),c}function Yt(t,e,n="key",r="children"){const o=l(t)?t:[t];let c=null,u=null;const s=(f,a=null)=>{for(let _=0;_<f.length;_++){const d=f[_];if(d[n]===e)return c=d,u=a?a[r]:f,!0;const v=d[r];if(v&&l(v)&&s(v,d))return!0}return!1};if(s(o),c&&u){const f=u.findIndex(a=>a[n]===e);f>-1&&u.splice(f,1)}return o}function Gt(t,e,n,r="key",o="children"){const c=l(t)?t:[t],u=T(c,e,r,o);return u&&Object.assign(u,n),c}function Qt(t,e,n=!0,r="children"){const o=l(t)?t:[t],c=typeof e=="string"?(s,f)=>{const a=s[e],_=f[e];return a<_?-1:a>_?1:0}:e,u=s=>{if(s.sort(c),n)for(const f of s){const a=f[r];a&&l(a)&&a.length>0&&u(a)}};return u(o),o}function Xt(t,e="children"){const n=r=>{const o={...r},c=r[e];return c&&l(c)&&(o[e]=c.map(u=>n(u))),o};return l(t)?t.map(r=>n(r)):[n(t)]}function Zt(t,e="key",n="children"){const r=[],o=new Set,c=new Set,u=(s,f="")=>{if(!h(s)){r.push(`Invalid node at ${f}: node must be an object`);return}if(o.has(s)){r.push(`Circular reference detected at ${f}`);return}o.add(s),e in s&&s[e]!==void 0&&(c.has(s[e])?r.push(`Duplicate key "${s[e]}" found at ${f}`):c.add(s[e]));const a=s[n];a!==void 0&&(l(a)?a.forEach((_,d)=>{u(_,`${f}[${d}]`)}):r.push(`Invalid children at ${f}: children must be an array`)),o.delete(s)};return l(t)?t.forEach((s,f)=>{u(s,`[${f}]`)}):u(t,"root"),{valid:r.length===0,errors:r}}function xt(t,e,n="children"){const r=[],o=p(e)?e:u=>{if(!e||typeof e!="object")return!1;for(const[s,f]of Object.entries(e))if(u[s]!==f)return!1;return!0},c=u=>{typeof o=="function"&&o(u)&&r.push(u);const s=u[n];if(s&&l(s))for(const f of s)c(f)};if(l(t))for(const u of t)c(u);else c(t);return r}function U(t){if(!t&&t!==0)return"0";const e=E(t);return isNaN(e)?`${t}`:`${e}`.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,")}function E(t){if(m(t))return t;if(z(t)){const e=parseFloat(t);return isNaN(e)?Number.NaN:e}return Number.NaN}function q(t,e){const n=E(t);return isNaN(n)?Number.NaN:Number(n.toFixed(e))}function te(t,e="¥",n=2){if(!m(t))return e+"0.00";let r;n===0?r=Math.floor(t).toString():r=t.toFixed(n);const o=U(r);return e+o}function ee(t,e,n){return m(t)?Math.max(e,Math.min(n,t)):Number.NaN}function ne(t,e=2){const n=E(t);return isNaN(n)?"0%":(n*100).toFixed(e)+"%"}function re(t){return m(t)?t%2===0:!1}function oe(t){return m(t)?Math.trunc(t):Number.NaN}function ie(t){return m(t)?t-Math.trunc(t):Number.NaN}function ce(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.round(t*n)/n}function ue(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.ceil(t*n)/n}function se(t,e=0){if(!m(t))return Number.NaN;const n=Math.pow(10,e);return Math.floor(t*n)/n}function fe(t,e,n=2){if(!m(t)||!m(e)||e===0)return Number.NaN;const r=t/e*100;return q(r,n)}function g(t="local"){return t==="local"?localStorage:sessionStorage}function S(t,e=null){try{return JSON.parse(t)}catch(n){return console.error("JSON解析错误:",n),e}}function ae(){const t=localStorage.getItem("token");if(!t)return null;const e=S(t);return e!==null?e.expiry!=null&&e.expiry<Date.now()?(localStorage.removeItem("token"),null):e.value:null}function le(t,e=10080*60){const n=Date.now()+e*1e3,r={value:t,expiry:n};localStorage.setItem("token",JSON.stringify(r))}function _e(){localStorage.removeItem("token")}function J(t,e,n="local"){const r=g(n);e!==void 0&&r.setItem(t,JSON.stringify(e))}function V(t,e="local"){const r=g(e).getItem(t);return r?S(r):null}function K(t,e="local"){g(e).removeItem(t)}function de(t="local"){g(t).clear()}function he(t,e,n,r="local"){const o=g(r),c={value:e,expiry:Date.now()+n*1e3};o.setItem(t,JSON.stringify(c))}function me(t,e="local"){const n=g(e),r=n.getItem(t);if(!r)return null;const o=S(r);return o.expiry&&o.expiry<Date.now()?(n.removeItem(t),null):o.value}function ge(t,e="local"){return g(e).getItem(t)!==null}function Y(t="local"){const e=g(t),n=[];for(let r=0;r<e.length;r++){const o=e.key(r);o&&n.push(o)}return n}function ye(t="local"){const e=g(t),n=Y(t);let r=0;return n.forEach(o=>{const c=e.getItem(o);if(c){const u=S(c);u.expiry&&u.expiry<Date.now()&&(e.removeItem(o),r++)}}),r}function pe(t){try{return btoa(unescape(encodeURIComponent(t)))}catch(e){return console.error("加密错误:",e),t}}function be(t){try{return decodeURIComponent(escape(atob(t)))}catch(e){return console.error("解密错误:",e),t}}function we(t,e,n="local"){const r=g(n),o=JSON.stringify(e),c=pe(o);r.setItem(t,c)}function ve(t,e="local"){const r=g(e).getItem(t);if(!r)return null;try{const o=be(r);return JSON.parse(o)}catch(o){return console.error("解密解析错误:",o),null}}function Me(t,e="local"){t.forEach(n=>{J(n.key,n.value,e)})}function Ne(t,e="local"){const n={};return t.forEach(r=>{n[r]=V(r,e)}),n}function Oe(t,e="local"){t.forEach(n=>{K(n,e)})}function k(t){const e=Object.prototype.toString;if(!t||typeof t!="object")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(e.call(t)==="[object Date]")return new Date(t.getTime());if(e.call(t)==="[object RegExp]"){const r=[];return t.global&&r.push("g"),t.multiline&&r.push("m"),t.ignoreCase&&r.push("i"),new RegExp(t.source,r.join(""))}if(e.call(t)==="[object FormData]"){const r=new FormData;for(const[o,c]of t.entries())r.append(o,c);return r}if(e.call(t)==="[object Map]"){const r=new Map;for(const[o,c]of t.entries())r.set(o,k(c));return r}if(e.call(t)==="[object Set]"){const r=new Set;for(const o of t.values())r.add(k(o));return r}const n=Array.isArray(t)?[]:t.constructor?new t.constructor:{};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=k(t[r]));return n}function G(...t){let e=t.length,n=t[0];h(n)||(n={});for(let r=1;r<e;r++){let o=t[r];if(h(o))for(let c in o)c==="__proto__"||n===o[c]||(h(o[c])?(h(n[c])||(n[c]=Array.isArray(o[c])?[]:{}),n[c]=G(n[c],o[c])):n[c]=o[c])}return n}function I(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(t.constructor!==e.constructor)return!1;let n,r,o;if(Array.isArray(t)){if(n=t.length,n!=e.length)return!1;for(r=n;r--!==0;)if(!I(t[r],e[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,o[r]))return!1;for(r=n;r--!==0;){const c=o[r];if(!I(t[c],e[c]))return!1}return!0}return t!==t&&e!==e}function $e(t){return h(t)&&Object.keys(t).length===0}function Ee(t,e){if(!h(t))return{};const n={};return e.forEach(r=>{r in t&&(n[r]=t[r])}),n}function Se(t,e){if(!h(t))return{};const n={};return Object.keys(t).forEach(r=>{e.includes(r)||(n[r]=t[r])}),n}function Q(t,e=""){if(!h(t))return{};const n={};return Object.keys(t).forEach(r=>{const o=e?`${e}.${r}`:r;h(t[r])&&!Array.isArray(t[r])?Object.assign(n,Q(t[r],o)):n[o]=t[r]}),n}function ke(t){if(!h(t))return{};const e={};return Object.keys(t).forEach(n=>{const r=n.split(".");let o=e;r.forEach((c,u)=>{u===r.length-1?o[c]=t[n]:(o[c]||(o[c]={}),o=o[c])})}),e}function Ie(t,e,n=void 0){if(!h(t))return n;const r=e.split(".");let o=t;for(const c of r){if(o==null)return n;o=o[c]}return o!==void 0?o:n}function Fe(t,e,n){h(t)||(t={});const r=e.split(".");let o=t;return r.forEach((c,u)=>{u===r.length-1?o[c]=n:(h(o[c])||(o[c]={}),o=o[c])}),t}function Ae(...t){return Object.assign({},...t)}function Le(t,e){const n={};return!h(t)&&!h(e)?n:h(t)?h(e)?(new Set([...Object.keys(t),...Object.keys(e)]).forEach(o=>{I(t[o],e[o])||(n[o]={oldValue:t[o],newValue:e[o]})}),n):t:e}function X(t,e){return!t||t.tagName==="BODY"?null:t.classList.contains(e)?t:X(t.parentElement,e)}function ze(t,e=!0){const n=document.getElementById(t);n&&n.scrollTo({top:n.scrollHeight,behavior:e?"smooth":void 0})}function Te(t,e=document){return e.querySelector(t)}function je(t,e=document){return Array.from(e.querySelectorAll(t))}function De(t,e){t&&!t.classList.contains(e)&&t.classList.add(e)}function Pe(t,e){t&&t.classList.contains(e)&&t.classList.remove(e)}function Re(t,e){return t?t.classList.toggle(e):!1}function Ce(t,e){return t?t.classList.contains(e):!1}function We(t,e){return t?window.getComputedStyle(t).getPropertyValue(e):""}function He(t,e,n){t&&"style"in t&&(t.style[e]=n)}function Z(t,e){t&&"style"in t&&Object.entries(e).forEach(([n,r])=>{t.style[n]=r})}function Be(t,e){return t&&t.getAttribute(e)||""}function x(t,e,n){t&&t.setAttribute(e,n)}function Ue(t,e){t&&t.removeAttribute(e)}function qe(t,e,n,r){t&&t.addEventListener(e,n,r)}function Je(t,e,n,r){t&&t.removeEventListener(e,n,r)}function Ve(t,e){const n=document.createElement(t);return e&&(e.class_name&&(n.className=e.class_name),e.style&&Z(n,e.style),e.attributes&&Object.entries(e.attributes).forEach(([r,o])=>{x(n,r,o)}),e.text&&(n.textContent=e.text)),n}function O(t){return t?t.getBoundingClientRect():null}function tt(t){if(!t)return null;const e=O(t);return e?{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}:null}function Ke(t){if(!t)return null;const e=O(t);return e?{width:e.width,height:e.height}:null}function Ye(t,e){if(!t)return;const{behavior:n="smooth",offsetTop:r=0,offsetLeft:o=0}=e||{},c=tt(t);c&&window.scrollTo({top:c.top-r,left:c.left-o,behavior:n})}function Ge(t){if(!t)return!1;const e=O(t);return e?e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth):!1}function Qe(t){if(!t)return!1;const e=O(t);return e?e.top>0&&e.left>0&&e.bottom<(window.innerHeight||document.documentElement.clientHeight)&&e.right<(window.innerWidth||document.documentElement.clientWidth):!1}function Xe(){return{width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight}}function Ze(){return{width:Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.documentElement.clientWidth),height:Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.documentElement.clientHeight)}}function xe(t,e=1920){let n=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;if(!n)return t;let r=n/e;return Number((t*r).toFixed(3))}function j({path:t,name:e}){const n=document.createElement("a");n.href=t,n.target="_blank",e&&n.setAttribute("download",e),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function tn(t){t.forEach(e=>{j({path:e.url,name:e.name})})}async function en(t){if(!t)return;const e=new FileReader;return e.readAsDataURL(t),new Promise((n,r)=>{e.onload=o=>n(o.target?.result),e.onerror=o=>r(void 0)})}async function nn(t,e="UTF-8"){if(!t)return;const n=new FileReader;return n.readAsText(t,e),new Promise((r,o)=>{n.onload=c=>r(c.target?.result),n.onerror=()=>o(void 0)})}function F(t){if(!t)return"";const e=t.lastIndexOf(".");return e===-1?"":t.substring(e+1).toLowerCase()}function D(t){if(!t)return"";const e=t.lastIndexOf(".");return e===-1?t:t.substring(0,e)}function rn(t,e){return t.size<=e}function on(t,e){const n=F(t.name);return e.includes(n)}function cn(t,e,n){return new File([t],e,{type:n})}function un(t,e,n="text/plain"){const r=new Blob([t],{type:n}),o=URL.createObjectURL(r);j({path:o,name:e}),URL.revokeObjectURL(o)}async function sn(t,e=800,n=800,r=.8){if(t.type.startsWith("image/"))return new Promise(o=>{const c=document.createElement("canvas"),u=c.getContext("2d"),s=new Image;s.onload=()=>{let{width:f,height:a}=s;if(f>e||a>n){const _=Math.min(e/f,n/a);f*=_,a*=_}c.width=f,c.height=a,u?.drawImage(s,0,0,f,a),c.toBlob(_=>{if(_){const d=new File([_],t.name,{type:t.type});o(d)}else o(void 0)},t.type,r)},s.src=URL.createObjectURL(t)})}function fn(t){const e=F(t.name),n=D(t.name);let r="";return t.size<1024?r=`${t.size} B`:t.size<1024*1024?r=`${(t.size/1024).toFixed(2)} KB`:t.size<1024*1024*1024?r=`${(t.size/(1024*1024)).toFixed(2)} MB`:r=`${(t.size/(1024*1024*1024)).toFixed(2)} GB`,{name:t.name,size:t.size,size_text:r,type:t.type,extension:e,name_without_extension:n}}function an(t){const e=F(t),n=D(t),r=Date.now(),o=Math.random().toString(36).substring(2,8);return e?`${n}_${r}_${o}.${e}`:`${n}_${r}_${o}`}function et(t){return/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.test(t)}function ln(t,e,n){if(!et(t)||!et(e))return t;n=Math.max(Math.min(Number(n),1),0);const r=b(t),o=b(e);if(!r||!o)return t;const c=Math.round(r.r*(1-n)+o.r*n),u=Math.round(r.g*(1-n)+o.g*n),s=Math.round(r.b*(1-n)+o.b*n);return $(c,u,s)}function _n(t){const e=b(t);return e?`${e.r},${e.g},${e.b}`:"0,0,0"}function b(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function $(t,e,n){return t=Math.max(0,Math.min(255,Math.round(t))),e=Math.max(0,Math.min(255,Math.round(e))),n=Math.max(0,Math.min(255,Math.round(n))),`#${((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)}`}function dn(t,e,n,r){return $(t,e,n)}function hn(t,e){const n=b(t);if(!n)return t;e=Math.max(0,Math.min(1,e));const r=Math.min(255,Math.round(n.r+(255-n.r)*e)),o=Math.min(255,Math.round(n.g+(255-n.g)*e)),c=Math.min(255,Math.round(n.b+(255-n.b)*e));return $(r,o,c)}function mn(t,e){const n=b(t);if(!n)return t;e=Math.max(0,Math.min(1,e));const r=Math.max(0,Math.round(n.r*(1-e))),o=Math.max(0,Math.round(n.g*(1-e))),c=Math.max(0,Math.round(n.b*(1-e)));return $(r,o,c)}function P(t){const e=b(t);return e?(e.r*299+e.g*587+e.b*114)/1e3>128:!1}function gn(t){return!P(t)}function yn(t){return P(t)?"#000000":"#FFFFFF"}function pn(t,e=200,n=!1){let r;return function(...o){const c=this;if(r&&clearTimeout(r),n){const u=!r;if(r=setTimeout(()=>{r=void 0},e),u)return t.apply(c,o)}else r=setTimeout(()=>{t.apply(c,o)},e)}}function bn(t,e=200,n={}){const{leading:r=!0,trailing:o=!0}=n;let c=0,u,s,f;return function(...a){const _=this,d=Date.now();if(c===0){r&&t.apply(_,a),c=d;return}s=a,f=_;const v=d-c;if(v>=e){u&&(clearTimeout(u),u=void 0),t.apply(_,a),c=d;return}!u&&o&&(u=setTimeout(()=>{s&&(t.apply(f,s),c=Date.now()),u=void 0,s=void 0,f=void 0},e-v))}}function wn(t){const e=t.length;function n(...r){return r.length>=e?t.apply(this,r):function(...o){return n.apply(this,[...r,...o])}}return n}function vn(...t){return function(e){return t.reduceRight((n,r)=>r(n),e)}}function Mn(...t){return function(e){return t.reduce((n,r)=>r(n),e)}}function Nn(t,e=1e3){return new Promise(n=>{setTimeout(()=>{n(t())},e)})}async function nt(t,e=3,n=1e3){try{return await t()}catch(r){if(e<=0)throw r;return await new Promise(o=>setTimeout(o,n)),nt(t,e-1,n)}}function On(t){let e=!1,n;return function(...r){return e||(e=!0,n=t.apply(this,r)),n}}function $n(t){const e=new Map;return function(...n){const r=JSON.stringify(n);if(e.has(r))return e.get(r);const o=t.apply(this,n);return e.set(r,o),o}}async function En(t,e=!0){if(e)return Promise.all(t.map(n=>n()));{const n=[];for(const r of t)n.push(await r());return n}}function Sn(t,e=5e3,n="Operation timed out"){return Promise.race([Promise.resolve(t()),new Promise((r,o)=>{setTimeout(()=>{o(new Error(n))},e)})])}const y=new Map;let A=null;H&&(document.addEventListener("mousedown",t=>{A=t}),document.addEventListener("mouseup",t=>{for(const e of y.values())for(const{document_handler:n}of e)A&&n(t,A);A=null}));function rt(t,e){const n=[];return Array.isArray(e.arg)?n.push(...e.arg.filter(L)):L(e.arg)&&n.push(e.arg),function(r,o){const c=r.target,u=o.target;if(!c||!u||!e.instance)return;const s=t.contains(c)||t.contains(u),f=t===c,a=n.some(d=>d&&(d.contains(c)||d===u));let _=!1;try{const d=e.instance.popperRef;d&&(_=d.contains(c)||d.contains(u))}catch{}s||f||a||_||typeof e.value=="function"&&e.value(r,o)}}const ot={beforeMount(t,e){y.has(t)||y.set(t,[]),y.get(t)?.push({document_handler:rt(t,e),binding_fn:e.value})},updated(t,e){y.has(t)||y.set(t,[]);const n=y.get(t);if(!n)return;const r=n.findIndex(c=>c.binding_fn===e.oldValue),o={document_handler:rt(t,e),binding_fn:e.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(t){y.delete(t)}};function kn(t){t.directive("click-outside",ot)}i.ClickOutside=ot,i.add_class=De,i.add_tree_node=Kt,i.add_tree_node_path=Bt,i.auto_size=xe,i.batch_execution=En,i.build_tree=Pt,i.calculate_percentage=fe,i.ceil=ue,i.clamp=ee,i.clear_expired_storage=ye,i.clear_storage=de,i.clone_tree=Xt,i.compose=vn,i.compress_image=sn,i.create_element=Ve,i.create_file_from_blob=cn,i.curry=wn,i.darken=mn,i.debounce=pn,i.decrypt_storage=ve,i.deep_assign=G,i.deep_clone=k,i.deep_equal=I,i.delay_execution=Nn,i.diff_objects=Le,i.download_file=j,i.download_files=tn,i.download_text_file=un,i.encrypt_storage=we,i.filter_tree=Wt,i.find_tree_node=B,i.find_tree_node_by_key=T,i.flatten_object=Q,i.flatten_tree_to_array=Vt,i.floor=se,i.format_currency=te,i.generate_unique_file_name=an,i.get_all_storage_keys=Y,i.get_attribute=Be,i.get_batch_storage=Ne,i.get_contrast_color=yn,i.get_decimal_part=ie,i.get_document_size=Ze,i.get_element=Te,i.get_element_position=tt,i.get_element_rect=O,i.get_element_size=Ke,i.get_elements=je,i.get_file_extension=F,i.get_file_info=fn,i.get_file_name_without_extension=D,i.get_integer_part=oe,i.get_object_value=Ie,i.get_parent_by_class=X,i.get_rgb=_n,i.get_storage=V,i.get_storage_with_expiry=me,i.get_style=We,i.get_token=ae,i.get_tree_depth=Jt,i.get_tree_node_ancestors=qt,i.get_tree_node_descendants=Ut,i.get_window_size=Xe,i.guid=st,i.has_class=Ce,i.has_storage=ge,i.hex_to_rgb=b,i.is_array=l,i.is_boolean=vt,i.is_client=H,i.is_completely_in_viewport=Qe,i.is_dark=gn,i.is_date=W,i.is_element=L,i.is_email=At,i.is_empty=$t,i.is_empty_object=$e,i.is_even=re,i.is_falsy=St,i.is_function=p,i.is_hex_color=zt,i.is_html_element=kt,i.is_in_viewport=Ge,i.is_ip=Tt,i.is_light=P,i.is_mobile=Ft,i.is_null=pt,i.is_number=m,i.is_object=h,i.is_plain_object=bt,i.is_port=jt,i.is_promise=Ot,i.is_reg_exp=Mt,i.is_string=z,i.is_string_number=It,i.is_symbol=Nt,i.is_truthy=Et,i.is_undefined=yt,i.is_url=Lt,i.is_valid_date=wt,i.lighten=hn,i.memoize=$n,i.merge_objects=Ae,i.mix=ln,i.off=Je,i.omit=Se,i.on=qe,i.once=On,i.pick=Ee,i.pipe=Mn,i.random_boolean=ft,i.random_color=lt,i.random_element=w,i.random_elements=at,i.random_email=ht,i.random_float=ut,i.random_id=M,i.random_int=it,i.random_int_range=ct,i.random_len_string=N,i.random_number_string=C,i.random_password=_t,i.random_phone=dt,i.random_string=R,i.random_url=mt,i.read_file=nn,i.remove_attribute=Ue,i.remove_batch_storage=Oe,i.remove_class=Pe,i.remove_storage=K,i.remove_token=_e,i.remove_tree_node=Yt,i.retry=nt,i.rgb_to_hex=$,i.rgba_to_hex=dn,i.round=ce,i.scroll_footer=ze,i.scroll_to_element=Ye,i.search_tree=xt,i.set_attribute=x,i.set_batch_storage=Me,i.set_object_value=Fe,i.set_storage=J,i.set_storage_with_expiry=he,i.set_style=He,i.set_styles=Z,i.set_token=le,i.setupDirectives=kn,i.shuffle_array=gt,i.sort_tree=Qt,i.thousand_separator=U,i.throttle=bn,i.timeout=Sn,i.to_base64=en,i.to_fixed=q,i.to_number=E,i.to_percentage=ne,i.toggle_class=Re,i.transform_tree=Ht,i.traverse_tree_breadth_first=Ct,i.traverse_tree_depth_first=Rt,i.tree_flat=Dt,i.unflatten_object=ke,i.update_tree_node=Gt,i.validate_file_size=rn,i.validate_file_type=on,i.validate_tree=Zt,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
|
package/lib/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { add_tree_node, add_tree_node_path, build_tree, clone_tree, filter_tree,
|
|
|
4
4
|
import { calculate_percentage, ceil, clamp, floor, format_currency, get_decimal_part, get_integer_part, is_even, round, thousand_separator, to_fixed, to_number, to_percentage } from "./utils/number.js";
|
|
5
5
|
import { clear_expired_storage, clear_storage, decrypt_storage, encrypt_storage, get_all_storage_keys, get_batch_storage, get_storage, get_storage_with_expiry, get_token, has_storage, remove_batch_storage, remove_storage, remove_token, set_batch_storage, set_storage, set_storage_with_expiry, set_token } from "./utils/storage.js";
|
|
6
6
|
import { deep_assign, deep_clone, deep_equal, diff_objects, flatten_object, get_object_value, is_empty_object, merge_objects, omit, pick, set_object_value, unflatten_object } from "./utils/object.js";
|
|
7
|
-
import { add_class, create_element, get_attribute, get_document_size, get_element, get_element_position, get_element_rect, get_element_size, get_elements, get_parent_by_class, get_style, get_window_size, has_class, is_completely_in_viewport, is_in_viewport, off, on, remove_attribute, remove_class, scroll_footer, scroll_to_element, set_attribute, set_style, set_styles, toggle_class } from "./utils/dom.js";
|
|
7
|
+
import { add_class, auto_size, create_element, get_attribute, get_document_size, get_element, get_element_position, get_element_rect, get_element_size, get_elements, get_parent_by_class, get_style, get_window_size, has_class, is_completely_in_viewport, is_in_viewport, off, on, remove_attribute, remove_class, scroll_footer, scroll_to_element, set_attribute, set_style, set_styles, toggle_class } from "./utils/dom.js";
|
|
8
8
|
import { compress_image, create_file_from_blob, download_file, download_files, download_text_file, generate_unique_file_name, get_file_extension, get_file_info, get_file_name_without_extension, read_file, to_base64, validate_file_size, validate_file_type } from "./utils/file.js";
|
|
9
9
|
import { darken, get_contrast_color, get_rgb, hex_to_rgb, is_dark, is_light, lighten, mix, rgb_to_hex, rgba_to_hex } from "./utils/color.js";
|
|
10
10
|
import { batch_execution, compose, curry, debounce, delay_execution, memoize, once, pipe, retry, throttle, timeout } from "./utils/share.js";
|
|
@@ -15,6 +15,7 @@ export {
|
|
|
15
15
|
add_class,
|
|
16
16
|
add_tree_node,
|
|
17
17
|
add_tree_node_path,
|
|
18
|
+
auto_size,
|
|
18
19
|
batch_execution,
|
|
19
20
|
build_tree,
|
|
20
21
|
calculate_percentage,
|
package/lib/utils/dom.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 可能为null或undefined的Element
|
|
3
|
+
*/
|
|
4
|
+
type MaybeElement = Element | null | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* 可能为null或undefined的EventTarget(包括Element、Window、Document)
|
|
7
|
+
*/
|
|
8
|
+
type MaybeEventTarget = (Element | Window | Document) | null | undefined;
|
|
1
9
|
/**
|
|
2
10
|
* 根据类名获取父元素
|
|
3
11
|
* @param dom DOM元素
|
|
4
12
|
* @param class_name CSS类名
|
|
5
13
|
* @returns DOM元素或null
|
|
6
14
|
*/
|
|
7
|
-
export declare function get_parent_by_class(dom:
|
|
15
|
+
export declare function get_parent_by_class(dom: MaybeElement, class_name: string): MaybeElement;
|
|
8
16
|
/**
|
|
9
17
|
* 滚动到底部
|
|
10
18
|
* @param dom_id 元素ID
|
|
@@ -17,7 +25,7 @@ export declare function scroll_footer(dom_id: string, behavior?: boolean): void;
|
|
|
17
25
|
* @param context 上下文元素,默认为document
|
|
18
26
|
* @returns DOM元素或null
|
|
19
27
|
*/
|
|
20
|
-
export declare function get_element(selector: string, context?: Element | Document):
|
|
28
|
+
export declare function get_element(selector: string, context?: Element | Document): MaybeElement;
|
|
21
29
|
/**
|
|
22
30
|
* 根据选择器获取多个元素
|
|
23
31
|
* @param selector 选择器
|
|
@@ -30,67 +38,67 @@ export declare function get_elements(selector: string, context?: Element | Docum
|
|
|
30
38
|
* @param element DOM元素
|
|
31
39
|
* @param class_name 类名
|
|
32
40
|
*/
|
|
33
|
-
export declare function add_class(element:
|
|
41
|
+
export declare function add_class(element: MaybeElement, class_name: string): void;
|
|
34
42
|
/**
|
|
35
43
|
* 移除类名
|
|
36
44
|
* @param element DOM元素
|
|
37
45
|
* @param class_name 类名
|
|
38
46
|
*/
|
|
39
|
-
export declare function remove_class(element:
|
|
47
|
+
export declare function remove_class(element: MaybeElement, class_name: string): void;
|
|
40
48
|
/**
|
|
41
49
|
* 切换类名
|
|
42
50
|
* @param element DOM元素
|
|
43
51
|
* @param class_name 类名
|
|
44
52
|
* @returns 是否添加了类名
|
|
45
53
|
*/
|
|
46
|
-
export declare function toggle_class(element:
|
|
54
|
+
export declare function toggle_class(element: MaybeElement, class_name: string): boolean;
|
|
47
55
|
/**
|
|
48
56
|
* 检查是否包含类名
|
|
49
57
|
* @param element DOM元素
|
|
50
58
|
* @param class_name 类名
|
|
51
59
|
* @returns 是否包含类名
|
|
52
60
|
*/
|
|
53
|
-
export declare function has_class(element:
|
|
61
|
+
export declare function has_class(element: MaybeElement, class_name: string): boolean;
|
|
54
62
|
/**
|
|
55
63
|
* 获取元素样式
|
|
56
64
|
* @param element DOM元素
|
|
57
65
|
* @param property CSS属性名
|
|
58
66
|
* @returns CSS属性值
|
|
59
67
|
*/
|
|
60
|
-
export declare function get_style(element:
|
|
68
|
+
export declare function get_style(element: MaybeElement, property: string): string;
|
|
61
69
|
/**
|
|
62
70
|
* 设置元素样式
|
|
63
71
|
* @param element DOM元素
|
|
64
72
|
* @param property CSS属性名
|
|
65
73
|
* @param value CSS属性值
|
|
66
74
|
*/
|
|
67
|
-
export declare function set_style(element:
|
|
75
|
+
export declare function set_style(element: MaybeElement, property: string, value: string): void;
|
|
68
76
|
/**
|
|
69
77
|
* 设置元素多个样式
|
|
70
78
|
* @param element DOM元素
|
|
71
79
|
* @param styles 样式对象
|
|
72
80
|
*/
|
|
73
|
-
export declare function set_styles(element:
|
|
81
|
+
export declare function set_styles(element: MaybeElement, styles: Record<string, string>): void;
|
|
74
82
|
/**
|
|
75
83
|
* 获取元素属性
|
|
76
84
|
* @param element DOM元素
|
|
77
85
|
* @param attribute 属性名
|
|
78
86
|
* @returns 属性值
|
|
79
87
|
*/
|
|
80
|
-
export declare function get_attribute(element:
|
|
88
|
+
export declare function get_attribute(element: MaybeElement, attribute: string): string;
|
|
81
89
|
/**
|
|
82
90
|
* 设置元素属性
|
|
83
91
|
* @param element DOM元素
|
|
84
92
|
* @param attribute 属性名
|
|
85
93
|
* @param value 属性值
|
|
86
94
|
*/
|
|
87
|
-
export declare function set_attribute(element:
|
|
95
|
+
export declare function set_attribute(element: MaybeElement, attribute: string, value: string): void;
|
|
88
96
|
/**
|
|
89
97
|
* 移除元素属性
|
|
90
98
|
* @param element DOM元素
|
|
91
99
|
* @param attribute 属性名
|
|
92
100
|
*/
|
|
93
|
-
export declare function remove_attribute(element:
|
|
101
|
+
export declare function remove_attribute(element: MaybeElement, attribute: string): void;
|
|
94
102
|
/**
|
|
95
103
|
* 绑定事件
|
|
96
104
|
* @param element DOM元素
|
|
@@ -98,7 +106,7 @@ export declare function remove_attribute(element: Element | null, attribute: str
|
|
|
98
106
|
* @param handler 事件处理函数
|
|
99
107
|
* @param options 事件选项
|
|
100
108
|
*/
|
|
101
|
-
export declare function on(element:
|
|
109
|
+
export declare function on(element: MaybeEventTarget, event: string, handler: EventListener, options?: AddEventListenerOptions): void;
|
|
102
110
|
/**
|
|
103
111
|
* 解绑事件
|
|
104
112
|
* @param element DOM元素
|
|
@@ -106,7 +114,7 @@ export declare function on(element: Element | Window | Document | null, event: s
|
|
|
106
114
|
* @param handler 事件处理函数
|
|
107
115
|
* @param options 事件选项
|
|
108
116
|
*/
|
|
109
|
-
export declare function off(element:
|
|
117
|
+
export declare function off(element: MaybeEventTarget, event: string, handler: EventListener, options?: EventListenerOptions): void;
|
|
110
118
|
/**
|
|
111
119
|
* 创建元素
|
|
112
120
|
* @param tag_name 标签名
|
|
@@ -124,13 +132,13 @@ export declare function create_element(tag_name: string, options?: {
|
|
|
124
132
|
* @param element DOM元素
|
|
125
133
|
* @returns 元素位置和尺寸信息
|
|
126
134
|
*/
|
|
127
|
-
export declare function get_element_rect(element:
|
|
135
|
+
export declare function get_element_rect(element: MaybeElement): DOMRect | null;
|
|
128
136
|
/**
|
|
129
137
|
* 获取元素相对于文档的位置
|
|
130
138
|
* @param element DOM元素
|
|
131
139
|
* @returns 元素位置信息
|
|
132
140
|
*/
|
|
133
|
-
export declare function get_element_position(element:
|
|
141
|
+
export declare function get_element_position(element: MaybeElement): {
|
|
134
142
|
top: number;
|
|
135
143
|
left: number;
|
|
136
144
|
} | null;
|
|
@@ -139,7 +147,7 @@ export declare function get_element_position(element: Element | null): {
|
|
|
139
147
|
* @param element DOM元素
|
|
140
148
|
* @returns 元素尺寸信息
|
|
141
149
|
*/
|
|
142
|
-
export declare function get_element_size(element:
|
|
150
|
+
export declare function get_element_size(element: MaybeElement): {
|
|
143
151
|
width: number;
|
|
144
152
|
height: number;
|
|
145
153
|
} | null;
|
|
@@ -148,7 +156,7 @@ export declare function get_element_size(element: Element | null): {
|
|
|
148
156
|
* @param element DOM元素
|
|
149
157
|
* @param options 滚动选项
|
|
150
158
|
*/
|
|
151
|
-
export declare function scroll_to_element(element:
|
|
159
|
+
export declare function scroll_to_element(element: MaybeElement, options?: {
|
|
152
160
|
behavior?: 'smooth' | 'auto';
|
|
153
161
|
offsetTop?: number;
|
|
154
162
|
offsetLeft?: number;
|
|
@@ -158,13 +166,13 @@ export declare function scroll_to_element(element: Element | null, options?: {
|
|
|
158
166
|
* @param element DOM元素
|
|
159
167
|
* @returns 是否在视口中
|
|
160
168
|
*/
|
|
161
|
-
export declare function is_in_viewport(element:
|
|
169
|
+
export declare function is_in_viewport(element: MaybeElement): boolean;
|
|
162
170
|
/**
|
|
163
171
|
* 检查元素是否完全在视口中
|
|
164
172
|
* @param element DOM元素
|
|
165
173
|
* @returns 是否完全在视口中
|
|
166
174
|
*/
|
|
167
|
-
export declare function is_completely_in_viewport(element:
|
|
175
|
+
export declare function is_completely_in_viewport(element: MaybeElement): boolean;
|
|
168
176
|
/**
|
|
169
177
|
* 获取窗口尺寸
|
|
170
178
|
* @returns 窗口尺寸信息
|
|
@@ -181,3 +189,11 @@ export declare function get_document_size(): {
|
|
|
181
189
|
width: number;
|
|
182
190
|
height: number;
|
|
183
191
|
};
|
|
192
|
+
/**
|
|
193
|
+
* 基于基准宽度自适应尺寸
|
|
194
|
+
* @param size 原始尺寸
|
|
195
|
+
* @param deflate_width 基准宽度,默认1920
|
|
196
|
+
* @returns 自适应后的尺寸
|
|
197
|
+
*/
|
|
198
|
+
export declare function auto_size(size: number, deflate_width?: number): number;
|
|
199
|
+
export {};
|
package/lib/utils/dom.js
CHANGED
|
@@ -171,8 +171,15 @@ function get_document_size() {
|
|
|
171
171
|
)
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
|
+
function auto_size(size, deflate_width = 1920) {
|
|
175
|
+
let client_width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
176
|
+
if (!client_width) return size;
|
|
177
|
+
let scale = client_width / deflate_width;
|
|
178
|
+
return Number((size * scale).toFixed(3));
|
|
179
|
+
}
|
|
174
180
|
export {
|
|
175
181
|
add_class,
|
|
182
|
+
auto_size,
|
|
176
183
|
create_element,
|
|
177
184
|
get_attribute,
|
|
178
185
|
get_document_size,
|
package/lib/utils/echarts.d.ts
CHANGED
package/lib/utils/echarts.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
let client_width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
3
|
-
if (!client_width) return size;
|
|
4
|
-
let scale = client_width / deflate_width;
|
|
5
|
-
return Number((size * scale).toFixed(3));
|
|
6
|
-
}
|
|
1
|
+
import { on, off } from "./dom.js";
|
|
7
2
|
function get_chart_gradient_color(type, start_color, end_color) {
|
|
8
3
|
return {
|
|
9
4
|
type: "linear",
|
|
@@ -78,9 +73,9 @@ function make_chart_responsive(chart, debounce_time = 200) {
|
|
|
78
73
|
resize_chart(chart);
|
|
79
74
|
}, debounce_time);
|
|
80
75
|
};
|
|
81
|
-
window
|
|
76
|
+
on(window, "resize", resize_handler);
|
|
82
77
|
return () => {
|
|
83
|
-
window
|
|
78
|
+
off(window, "resize", resize_handler);
|
|
84
79
|
clearTimeout(resize_timer);
|
|
85
80
|
};
|
|
86
81
|
}
|
|
@@ -208,7 +203,6 @@ function aggregate_chart_data(data, group_key, value_key, aggregator = (values)
|
|
|
208
203
|
export {
|
|
209
204
|
add_chart_listener,
|
|
210
205
|
aggregate_chart_data,
|
|
211
|
-
auto_size,
|
|
212
206
|
destroy_chart,
|
|
213
207
|
destroy_charts,
|
|
214
208
|
export_chart_image,
|