ucc-utils
Version:
1 lines • 12.1 kB
JavaScript
function e(e,n){if(n==null||n>e.length)n=e.length;for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function n(n){if(Array.isArray(n))return e(n)}function t(e,n,t,r,i,o,a){try{var u=e[o](a);var l=u.value}catch(e){t(e);return}if(u.done){n(l)}else{Promise.resolve(l).then(r,i)}}function r(e){return function(){var n=this,r=arguments;return new Promise(function(i,o){var a=e.apply(n,r);function u(e){t(a,i,o,u,l,"next",e)}function l(e){t(a,i,o,u,l,"throw",e)}u(undefined)})}}function i(e,n,t){if(n in e){Object.defineProperty(e,n,{value:t,enumerable:true,configurable:true,writable:true})}else{e[n]=t}return e}function o(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function a(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(e){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?arguments[n]:{};var r=Object.keys(t);if(typeof Object.getOwnPropertySymbols==="function"){r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))}r.forEach(function(n){i(e,n,t[n])})}return e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);if(n){r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})}t.push.apply(t,r)}return t}function c(e,n){n=n!=null?n:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(n))}else{l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function s(e,n){if(e==null)return{};var t=f(e,n);var r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++){r=o[i];if(n.indexOf(r)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,r))continue;t[r]=e[r]}}return t}function f(e,n){if(e==null)return{};var t={};var r=Object.keys(e);var i,o;for(o=0;o<r.length;o++){i=r[o];if(n.indexOf(i)>=0)continue;t[i]=e[i]}return t}function v(e){return n(e)||o(e)||d(e)||a()}function d(n,t){if(!n)return;if(typeof n==="string")return e(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);if(r==="Object"&&n.constructor)r=n.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(n,t)}function h(e,n){var t,r,i,o,a={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),"throw":u(1),"return":u(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(e){return function(n){return l([e,n])}}function l(o){if(t)throw new TypeError("Generator is already executing.");while(a)try{if(t=1,r&&(i=o[0]&2?r["return"]:o[0]?r["throw"]||((i=r["return"])&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;if(r=0,i)o=[o[0]&2,i.value];switch(o[0]){case 0:case 1:i=o;break;case 4:a.label++;return{value:o[1],done:false};case 5:a.label++;r=o[1];o=[0];continue;case 7:o=a.ops.pop();a.trys.pop();continue;default:if(!(i=a.trys,i=i.length>0&&i[i.length-1])&&(o[0]===6||o[0]===2)){a=0;continue}if(o[0]===3&&(!i||o[1]>i[0]&&o[1]<i[3])){a.label=o[1];break}if(o[0]===6&&a.label<i[1]){a.label=i[1];i=o;break}if(i&&a.label<i[2]){a.label=i[2];a.ops.push(o);break}if(i[2])a.ops.pop();a.trys.pop();continue}o=n.call(e,a)}catch(e){o=[6,e];r=0}finally{t=i=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}import"../chunk-JZXLCA2E.mjs";import{debounce as p,throttle as b,isFunction as m,capitalize as y,omit as g}from"lodash-es";import{onMounted as w,isRef as O,onUnmounted as x,ref as S,shallowRef as j,computed as I,defineComponent as E,h as P,watch as z,nextTick as R,onBeforeUnmount as A,toValue as L,shallowReadonly as C,customRef as W}from"vue";var k=function(){return{}};var M={count:0},D=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var n=e.isOrderly,t=n===void 0?!0:n;return t?++M.count+"":Math.random().toString(36).substr(2,9)};var F=function(e){var n=e.debounceOpt,t=n===void 0?{}:n,r=e.immediate,i=r===void 0?!1:r,o=e.isResize,a=o===void 0?!0:o,u=e.resizeTimeout,l=u===void 0?300:u,c=e.rootFontSize,s=c===void 0?window.innerWidth/100:c,f=e.afterRefreshCallback,v=e.beforeRefreshCallback,d=s,h=function(){m(v)&&v(d),document.documentElement.style.fontSize="".concat(window.innerWidth*(d/window.innerWidth)/window.devicePixelRatio,"px"),m(f)&&f(d)},b=p(h,l,t),y=function(e){d=e,h()};a&&window.addEventListener("resize",b);var g=a?function(){return window.removeEventListener("resize",b)}:function(){};return i&&h(),{destory:g,rootFontSize:s,refreshRootFontSize:h,refreshRootFontSizeDebounce:b,setRootFontSize:y}};function _(e,n,t){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};var i=null,o=function(){i&&i.removeEventListener(n,t)};return r.debounce&&(t=p(t,r.debounce)),r.throttle&&(t=b(t,r.throttle)),w(function(){e&&(i=O(e)?e.value:m(e)?e():e,i.addEventListener(n,t,r),r.immediate&&t(new Event(n)))}),x(function(){var e;o(),(r.debounce||r.throttle)&&((e=t.cancel)===null||e===void 0?void 0:e.call(t))}),o}function H(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e)return console.error("dom is required"),null;var t=n.debounceTime,r=t===void 0?200:t,i,o=new IntersectionObserver(a,g(n,["root","rootMargin","threshold"]));function a(e){e.forEach(function(e){var t;e.isIntersecting&&((t=n.onIntersect)===null||t===void 0?void 0:t.call(n,e,e.intersectionRatio))})}n.isImmediate&&o.observe(e),n.isKeep&&(i=p(function(){u(),l()},r),window.addEventListener("scroll",i,{passive:!0}));function u(){o.unobserve(e)}function l(){o.observe(e)}function c(){o.disconnect(),window.removeEventListener("scroll",i)}function s(){return o.takeRecords()}return A(function(){c()}),{observer:o,unobserve:u,observe:l,disconnect:c,takeRecords:s}}var T={display:"flex",flexWrap:"wrap",position:"relative",width:"100%",boxSizing:"border-box"},q={position:"absolute",height:"fit-content",flexDirection:"column",alignItems:"center",justifyContent:"center",boxSizing:"border-box",transition:"opacity 0.3s ease-in-out, box-shadow 0.3s ease-in-out"},U={width:"100%",height:"100%",objectFit:"contain"},K="waterfall",N="waterfall-item",G=function(e,n){var t,i;var o=function e(){return eb.apply(this,arguments)};var a=function e(){return em.apply(this,arguments)};var l=function e(e,n){return ey.apply(this,arguments)};var f=function e(){return eg.apply(this,arguments)};var d=function e(){var e={onIntersect:function(e,n){var t=e.boundingClientRect.bottom,r=window.innerHeight,i=V===null||V===void 0?void 0:V(e,n);t<r&&!ev.value&&(i||!V)&&(G&&ec.value++,Q===null||Q===void 0?void 0:Q())}};L&&(e.isKeep=!0,e.isImmediate=!0),H(et.value,u({},e,en))};var b=function e(){var e=p(function(){console.log("resize")},100);window.addEventListener("resize",e,{passive:!0}),window.addEventListener("orientationchange",e,{passive:!0})};var m=n.column,g=n.gap,O=g===void 0?0:g,x=n.isLazy,L=x===void 0?!1:x,C=n.imgClass,W=n.margin,k=W===void 0?20:W,M=n.unit,D=M===void 0?"px":M,F=n.placeholderImg,_=n.isAuto,G=_===void 0?!1:_,Z=n.defaultRow,$=n.isResize,B=$===void 0?!1:$,Q=n.onLoading,V=n.loadCondition,Y=n.onPixelTrans,ee=Y===void 0?function(e){return e}:Y,en=s(n,["column","gap","isLazy","imgClass","margin","unit","placeholderImg","isAuto","defaultRow","isResize","onLoading","loadCondition","onPixelTrans"]),et=S(),er=j([]),ei=j([]),eo=I(function(){var e;return((((e=et.value)===null||e===void 0?void 0:e.clientWidth)||0)-O*(m-1))/m}),ea=S(new Array(m).fill(0)),eu=I(function(){return(t=Math).max.apply(t,v(ea.value))}),el=I(function(){return ea.value.indexOf((i=Math).min.apply(i,v(ea.value)))}),ec=S(-1),es=S(0),ef=S(L?m:e.length),ev=S(!1),ed=I(function(){return e.slice(0,((ec.value||0)+1)*m)||[]}),eh=E({name:y(K),setup:function e(e,n){var t=n.slots;return function(){return P(e.tag||"div",{ref:et,class:K,style:T},ed.value.map(function(e,n){var r;return(r=t.default)===null||r===void 0?void 0:r.call(t,{item:e,index:n,styles:c(u({},q),{opacity:n>=es.value&&n<ef.value?"0":"1"}),classname:N,isLoading:ev.value})}))}}}),ep=z(ec,/*#__PURE__*/r(function(){var n;return h(this,function(t){switch(t.label){case 0:return[4,R()];case 1:t.sent();n=!(ec.value>Math.ceil(e.length/m));if(!n)return[3,3];L&&(es.value=ec.value*m,ef.value=es.value+m);return[4,R()];case 2:n=(t.sent(),o().then(function(e){ev.value=!1}));t.label=3;case 3:n;return[2]}})}));A(function(){ep()}),w(/*#__PURE__*/r(function(){var n;return h(this,function(t){if(L?d():ec.value=Math.ceil(e.length/m),et.value){n=X(et.value);J(et.value,{width:"".concat(ee(et.value.clientWidth-k*2-n)).concat(D),margin:"".concat(ee(k)).concat(D)})}B&&b(),Z&&(ec.value=Z-1);return[2]})}));function eb(){eb=r(function(){var e,n;var t=arguments;return h(this,function(r){switch(r.label){case 0:e=t.length>0&&t[0]!==void 0?t[0]:!1;if(ev.value)return[2];ev.value=!0;return[4,a()];case 1:r.sent();return[4,R()];case 2:r.sent();n=e;if(n)return[3,5];return[4,f()];case 3:r.sent();return[4,R()];case 4:n=r.sent();r.label=5;case 5:n,er.value.slice(es.value,ef.value).forEach(function(e,n){requestAnimationFrame(function(){return l(e,el.value)})});return[2]}})});return eb.apply(this,arguments)}function em(){em=r(function(){var e,n,t;return h(this,function(r){t=Array.from(((n=et.value)===null||n===void 0?void 0:(e=n.querySelectorAll)===null||e===void 0?void 0:e.call(n,".".concat(N)))||[]);t.length&&(er.value=t,ei.value=t.map(function(e){return e.querySelector(C?"img.".concat(C):"img")}));return[2]})});return em.apply(this,arguments)}function ey(){ey=r(function(e,n){var t;return h(this,function(r){switch(r.label){case 0:t=ea.value[n];J(e,{width:"".concat(ee(eo.value)).concat(D),display:"inline-flex",opacity:"1",top:"".concat(ee(t)).concat(D),left:"".concat(ee(n*(eo.value+O))).concat(D)}),ea.value[n]=t+e.clientHeight+O;return[4,R()];case 1:r.sent(),J(et.value,{height:"".concat(ee(eu.value)).concat(D)});return[4,R()];case 2:r.sent();return[2]}})});return ey.apply(this,arguments)}function eg(){eg=r(function(){var e;return h(this,function(n){e=ei.value.slice(es.value,ef.value);return[2,Promise.allSettled(e.map(function(n,t){return new Promise(function(r){var i=t;J(n,U),n.onload=function(e){r({width:n.clientWidth,height:n.clientHeight,img:n,colIndex:i})},n.onerror=function(t){console.warn("图片加载失败: ".concat(n.src));var o=e[i];Array.isArray(F)?o.src=F[Math.floor(Math.random()*F.length)]:o.src=F||"",n.onload=function(e){r({width:n.clientWidth,height:n.clientHeight,img:n,colIndex:i})},n.onerror=function(e){console.warn("图片加载失败: ".concat(n.src)),r({width:0,height:0,img:n,colIndex:i})}}})})).then(function(e){return e.map(function(e){return e.status==="fulfilled"?e.value:(console.error("图片加载失败:",e.reason),{width:0,height:0,img:null,colIndex:0})})})]})});return eg.apply(this,arguments)}return{Waterfall:eh,isLoading:ev,startIndex:es,endIndex:ef,rowIndex:ec,colsHeight:ea,colMaxHeight:eu,waterfallItemWidth:eo,waterfallImages:ei,waterfallItems:er}};function J(e,n){Array.isArray(e)?e.forEach(function(e){return J(e,n)}):Object.assign(e.style,n)}var X=function(e){var n;var t=document.createElement("div");t.style.visibility="hidden",t.style.overflow="scroll",e.appendChild(t);var r=document.createElement("div");t.appendChild(r);var i=t.offsetWidth-r.offsetWidth;return(n=t.parentNode)===null||n===void 0?void 0:n.removeChild(t),i};var Z=function(e,n){var t=j(L(e));return C([t,function(e){e=L(e),!Object.is(t.value,e)&&(t.value=e,n===null||n===void 0?void 0:n(e))}])};function $(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var r=p(function(n,t){e=n,t()},n,t);return W(function(n,t){return{get:function t(){return n(),e},set:function e(e){r(e,function(){return t()})}}})}export{$ as useDebouncedRef,k as useDragSelect,_ as useEventListener,D as useNextId,F as useRootFontSize,Z as useState,G as useWaterfall};