@loke/ui
Version:
2 lines (1 loc) • 2.96 kB
JavaScript
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var exports_rect={};__export(exports_rect,{observeElementRect:()=>observeElementRect});module.exports=__toCommonJS(exports_rect);function observeElementRect(elementToObserve,callback){let observedData=observedElements.get(elementToObserve);if(observedData===void 0){if(observedElements.set(elementToObserve,{callbacks:[callback],rect:{}}),observedElements.size===1)rafId=requestAnimationFrame(runLoop)}else observedData.callbacks.push(callback),callback(elementToObserve.getBoundingClientRect());return()=>{if(observedData=observedElements.get(elementToObserve),observedData===void 0)return;let index=observedData.callbacks.indexOf(callback);if(index>-1)observedData.callbacks.splice(index,1);if(observedData.callbacks.length===0){if(observedElements.delete(elementToObserve),observedElements.size===0)cancelAnimationFrame(rafId)}}}var rafId,observedElements=new Map;function runLoop(){let changedRectsData=[];observedElements.forEach((data,element)=>{let newRect=element.getBoundingClientRect();if(!rectEquals(data.rect,newRect))data.rect=newRect,changedRectsData.push(data)});for(let data of changedRectsData)for(let callback of data.callbacks)callback(data.rect);rafId=requestAnimationFrame(runLoop)}function rectEquals(rect1,rect2){return rect1.width===rect2.width&&rect1.height===rect2.height&&rect1.top===rect2.top&&rect1.right===rect2.right&&rect1.bottom===rect2.bottom&&rect1.left===rect2.left}