UNPKG

vue-amazing-ui

Version:

An Amazing Vue3 UI Components Library, Using TypeScript.

2 lines (1 loc) 7.76 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),b=require("@ctrl/tinycolor"),N=require("@ant-design/colors");function H(e=Date.now(),r="YYYY-MM-DD HH:mm:ss"){try{let t;if(typeof e=="number"||typeof e=="string"){if(t=new Date(e),isNaN(t.getTime()))throw new Error("Invalid date")}else t=e;const n=(c,u=2)=>String(c).padStart(u,"0"),s=c=>{switch(c){case"YYYY":return n(t.getFullYear());case"YY":return n(t.getFullYear()).slice(2,4);case"MM":return n(t.getMonth()+1);case"M":return String(t.getMonth()+1);case"DD":return n(t.getDate());case"D":return String(t.getDate());case"HH":return n(t.getHours());case"H":return String(t.getHours());case"mm":return n(t.getMinutes());case"m":return String(t.getMinutes());case"ss":return n(t.getSeconds());case"s":return String(t.getSeconds());case"SSS":return n(t.getMilliseconds(),3);default:return c}};return r.replace(/(YYYY|YY|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS)/g,s)}catch(t){return console.error("Error formatting date:",t),""}}function U(e,r=2,t=",",n=".",s,c){typeof e!="number"&&typeof e!="string"&&console.warn("Expected value to be of type number or string"),typeof r!="number"&&console.warn("Expected precision to be of type number");const u=Number(e);if(isNaN(u)||!isFinite(u))return"";if(u===0)return u.toFixed(r);let l=u.toFixed(r);if(typeof t=="string"&&t!==""){const[f,i]=l.split(".");l=f.replace(/(\d)(?=(\d{3})+$)/g,"$1"+t)+(i?n+i:"")}return(s||"")+l+(c||"")}function j(e,r=0,t=!1){let n=null;function s(u){if(n||(n=u),u-n>=r){try{e()}catch(f){console.error("Error executing rafTimeout function:",f)}t&&(n=u,c.id=requestAnimationFrame(s))}else c.id=requestAnimationFrame(s)}const c={id:requestAnimationFrame(s)};return c}function C(e){e&&e.id&&typeof e.id=="number"?cancelAnimationFrame(e.id):console.warn("cancelRaf received an invalid id:",e)}function R(e,r=300){let t=!0;return function(...n){return t&&(e(...n),t=!1,setTimeout(()=>{t=!0},r)),!1}}function A(e,r=300){let t=null;return function(...n){t&&clearTimeout(t),t=setTimeout(()=>{e(...n)},r)}}function q(e,r){if(Number.isNaN(e)||Number.isNaN(r))throw new Error("Both num1 and num2 must be valid numbers.");const t=e%1!==0,n=r%1!==0;if(!t&&!n)return e+r;const s=String(e).split(".")[1]??"",c=String(r).split(".")[1]??"",u=Math.max(s.length,c.length),l=Math.pow(10,u),f=e.toFixed(u),i=r.toFixed(u);return(+f.replace(".","")+ +i.replace(".",""))/l}function B(e,r){if(!e){console.error("无效的 url");return}const t=r||e.split("?")[0].split("/").pop()||"download";try{fetch(e).then(n=>{n.ok?n.blob().then(s=>{const c=URL.createObjectURL(s),u=document.createElement("a");u.href=c,u.download=t,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(c)}):console.error("请求文件失败,状态码:",n.status)})}catch(n){console.error("文件下载失败:",n)}}function I(){const e=document.documentElement;e.classList.toggle("dark"),e.classList.contains("dark")?e.style.colorScheme="dark":e.style.colorScheme="light"}function Y(){const e=o.ref(!1),r=o.getCurrentInstance();return r&&o.onMounted(()=>{e.value=!0},r),e}function M(e){const r=Y();return o.computed(()=>(r.value,!!e()))}function k(e,r,t){o.onMounted(()=>e.addEventListener(r,t)),o.onUnmounted(()=>e.removeEventListener(r,t))}function P(e,r,t={}){const n=M(()=>window&&"MutationObserver"in window),s=o.ref(!1);let c;const u=o.computed(()=>{const d=o.toValue(e);return d?Array.isArray(d)?d.map(m=>o.toValue(m)).filter(m=>m):[d]:[]}),l=()=>{c&&(c.disconnect(),c=void 0)},f=()=>{n.value&&u.value.length&&!s.value&&(c=new MutationObserver(r),u.value.forEach(d=>c.observe(d,t)))};o.watch(()=>u.value,()=>{l(),f()},{immediate:!0,flush:"post"});const i=()=>{s.value=!0,l()},v=()=>{s.value=!1,f()};return o.onBeforeUnmount(()=>l()),{stop:i,start:v}}function z(e=window,r=0,t,n){const s=o.ref(0),c=o.ref(0),u=o.ref(0),l=o.ref(0),f=o.ref(!1),i=o.ref(!1),v=o.ref(!1),d=o.ref(!1),m=o.ref(!1),w=o.ref(0),S=o.ref(0);function O(a){f.value=!0;const g=a.target.documentElement??a.target;s.value=g.scrollLeft,u.value=g.scrollTop,i.value=s.value<w.value,v.value=s.value>w.value,d.value=u.value<S.value,m.value=u.value>S.value,w.value=s.value,S.value=u.value,E(a),t&&t(a)}const x=R(O,r);function V(a){f.value&&(f.value=!1,i.value=!1,v.value=!1,d.value=!1,m.value=!1,n&&n(a))}const E=A(V,r+200),F=o.computed(()=>{const a=o.toValue(e);return a||null});o.watch(()=>F.value,(a,g)=>{var h;if(g&&L(g),a){const p=((h=a==null?void 0:a.document)==null?void 0:h.documentElement)||(a==null?void 0:a.documentElement)||a;c.value=p.scrollWidth-p.clientWidth,l.value=p.scrollHeight-p.clientHeight,p.addEventListener("scroll",x),p.addEventListener("scrollend",E)}},{immediate:!0,flush:"post"});function L(a){var h;const g=((h=a==null?void 0:a.document)==null?void 0:h.documentElement)||(a==null?void 0:a.documentElement)||a;g.removeEventListener("scroll",x),g.removeEventListener("scrollend",E)}return o.onBeforeUnmount(()=>L(F.value)),{x:s,xScrollMax:c,y:u,yScrollMax:l,isScrolling:f,left:i,right:v,top:d,bottom:m}}function G(){const e=o.ref(0),r=o.ref(0);let t=performance.now();const n=10,s=c=>{if(r.value++,r.value>=n){const u=c-t;e.value=Math.round(1e3/(u/n)),t=c,r.value=0}requestAnimationFrame(s)};return requestAnimationFrame(s),{fps:e}}function W(e){if(!e||typeof e!="string"||e.trim()==="")throw new Error("Invalid mediaQuery parameter. It must be a non-empty string.");const r=o.ref(window&&window.matchMedia(e).matches),t=window.matchMedia(e),n=s=>{r.value=s.matches};return o.onMounted(()=>{t.addEventListener("change",n)}),o.onBeforeUnmount(()=>{t.removeEventListener("change",n)}),{match:r}}function $(e,r,t={}){const n=M(()=>window&&"ResizeObserver"in window);let s;const c=o.ref(!1),u=o.computed(()=>{const d=o.toValue(e);return d?Array.isArray(d)?d.map(m=>o.toValue(m)).filter(m=>m):[d]:[]}),l=()=>{s&&(s.disconnect(),s=void 0)},f=()=>{n.value&&u.value.length&&!c.value&&(s=new ResizeObserver(r),u.value.forEach(d=>s.observe(d,t)))};o.watch(()=>u.value,()=>{l(),f()},{immediate:!0,flush:"post"});const i=()=>{c.value=!0,l()},v=()=>{c.value=!1,f()};return o.onBeforeUnmount(()=>l()),{stop:i,start:v}}function Z(e="default"){const r=o.useSlots(),t=n=>{var u;const s=(u=r[n])==null?void 0:u.call(r),c=l=>{if(l.type===o.Comment||Array.isArray(l.children)&&!l.children.length)return!1;if(l.type!==o.Text)return!0;if(typeof l.children=="string")return l.children.trim()!==""};return s&&(s!=null&&s.length)?s.some(f=>c(f)):!1};if(Array.isArray(e)){const n=o.reactive({});return e.forEach(s=>{const c=o.computed(()=>t(s));n[s]=c}),n}else return o.computed(()=>t(e))}function J(e){const r=T("#1677ff"),t=o.inject("common",o.reactive({colorPalettes:r,shadowColor:D(r[0])})),n=o.inject("components",null);return n!==null&&e in n&&n[e].colorPalettes.length?o.toRefs(n[e]):o.toRefs(t)}function T(e){return N.generate(e)}function y(e){return e>=0&&e<=255}function D(e,r="#ffffff"){const{r:t,g:n,b:s,a:c}=new b.TinyColor(e).toRgb();if(c<1)return e;const{r:u,g:l,b:f}=new b.TinyColor(r).toRgb();for(let i=.01;i<=1;i+=.01){const v=Math.round((t-u*(1-i))/i),d=Math.round((n-l*(1-i))/i),m=Math.round((s-f*(1-i))/i);if(y(v)&&y(d)&&y(m))return new b.TinyColor({r:v,g:d,b:m,a:Math.round(i*100)/100}).toRgbString()}return new b.TinyColor({r:t,g:n,b:s,a:1}).toRgbString()}exports.add=q;exports.cancelRaf=C;exports.dateFormat=H;exports.debounce=A;exports.downloadFile=B;exports.formatNumber=U;exports.getAlphaColor=D;exports.getColorPalettes=T;exports.rafTimeout=j;exports.throttle=R;exports.toggleDark=I;exports.useEventListener=k;exports.useFps=G;exports.useInject=J;exports.useMediaQuery=W;exports.useMounted=Y;exports.useMutationObserver=P;exports.useResizeObserver=$;exports.useScroll=z;exports.useSlotsExist=Z;exports.useSupported=M;