ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 1.53 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function r(n,t){if(n.length!==t.length)return!1;for(let s=0;s<n.length;s++)if(n[s]!==t[s])return!1;return!0}const h=class h{constructor(){this.cache=new Map,this.keys=[],this.cacheCallTimes=0}size(){return this.keys.length}internalGet(t,s=!1){let e={map:this.cache};return t.forEach(l=>{var a;e?e=(a=e==null?void 0:e.map)==null?void 0:a.get(l):e=void 0}),e!=null&&e.value&&s&&(e.value[1]=this.cacheCallTimes++),e==null?void 0:e.value}get(t){var s;return(s=this.internalGet(t,!0))==null?void 0:s[0]}has(t){return!!this.internalGet(t)}set(t,s){if(!this.has(t)){if(this.size()+1>h.MAX_CACHE_SIZE+h.MAX_CACHE_OFFSET){const[l]=this.keys.reduce((a,i)=>{const[,f]=a;return this.internalGet(i)[1]<f?[i,this.internalGet(i)[1]]:a},[this.keys[0],this.cacheCallTimes]);this.delete(l)}this.keys.push(t)}let e=this.cache;t.forEach((l,a)=>{if(a===t.length-1)e.set(l,{value:[s,this.cacheCallTimes++]});else{const i=e.get(l);i?i.map||(i.map=new Map):e.set(l,{map:new Map}),e=e.get(l).map}})}deleteByPath(t,s){var a;const e=t.get(s[0]);if(s.length===1)return e.map?t.set(s[0],{map:e.map}):t.delete(s[0]),(a=e.value)==null?void 0:a[0];const l=this.deleteByPath(e.map,s.slice(1));return(!e.map||e.map.size===0)&&!e.value&&t.delete(s[0]),l}delete(t){if(this.has(t))return this.keys=this.keys.filter(s=>!r(s,t)),this.deleteByPath(this.cache,t)}};h.MAX_CACHE_SIZE=20,h.MAX_CACHE_OFFSET=5;let u=h;exports.default=u;exports.sameDerivativeOption=r;