UNPKG

react-measured

Version:
2 lines (1 loc) 3.72 kB
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),React__default=_interopDefault(React),createInNextFrame=()=>{var e,t;return Object.assign(r=>{t=r,e||(e=window.requestAnimationFrame(()=>{e=void 0,t()}))},{cancel:()=>{e&&(e=window.cancelAnimationFrame(e))}})},createAnimationFrameChecker=e=>{var t=new Set,r=new Map,n=createInNextFrame(),a=()=>{0!==t.size&&n(()=>{e(t,r,()=>a())})};return Object.assign((e,n,o)=>{var i=(e=>(t.add(e),e))({element:e,transform:o,onChange:n});return a(),()=>(e=>{t.delete(e),r.delete(e)})(i)},{clear:()=>{t.clear(),r.clear(),n.cancel()}})};function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}function _objectWithoutProperties(e,t){if(null==e)return{};var r,n,a=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(a)throw o}}return r}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}var noop=()=>void 0,createUseBoundingBox=e=>(function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:noop,n=arguments.length>2?arguments[2]:void 0,a=React.useState(),o=_slicedToArray(a,2),i=o[0],u=o[1];return React.useEffect(()=>{if(t.current)return e(t.current,e=>{u(e),r&&r(e)},n)},[t.current,r,n]),React.useEffect(()=>()=>r&&r(void 0),[]),i}),discardPosition=e=>({width:e.width,height:e.height,top:NaN,right:NaN,bottom:NaN,left:NaN}),discardSize=e=>({top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:NaN,height:NaN}),isBoundingBoxProviderChildrenFunction=e=>"function"==typeof e,renderChildren=(e,t)=>isBoundingBoxProviderChildrenFunction(e)?t?e(t):null:e;function createMeasured(e){return function(t){return r=>{var n=r.children,a=r.onBoundingBoxChange,o=r.positionOnly,i=void 0!==o&&o,u=r.sizeOnly,c=void 0!==u&&u,l=_objectWithoutProperties(r,["children","onBoundingBoxChange","positionOnly","sizeOnly"]),s=React__default.useRef(),d=React.useCallback(e=>c?discardPosition(e):i?discardSize(e):e,[c,i]),f=e(s,a,d);return React__default.createElement(t,Object.assign({},l,{ref:s}),renderChildren(n,f))}}}var EPSILON=.001,areNumbersEqual=(e,t,r)=>isNaN(e)&&isNaN(t)||Math.abs(e-t)<=r,areBoundingBoxesEqual=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:EPSILON;return!!t&&areNumbersEqual(e.left,t.left,r)&&areNumbersEqual(e.top,t.top,r)&&areNumbersEqual(e.width,t.width,r)&&areNumbersEqual(e.height,t.height,r)};function lazyValue(e){var t,r=!1;return()=>(r||(t=e(),r=!0),t)}exports.areBoundingBoxesEqual=areBoundingBoxesEqual,exports.createAnimationFrameChecker=createAnimationFrameChecker,exports.createInNextFrame=createInNextFrame,exports.createMeasured=createMeasured,exports.createUseBoundingBox=createUseBoundingBox,exports.discardPosition=discardPosition,exports.discardSize=discardSize,exports.lazyValue=lazyValue,exports.renderChildren=renderChildren;//# sourceMappingURL=index.cjs.js.map