UNPKG

react-flip-toolkit

Version:

Configurable FLIP animation helpers for React

3 lines (2 loc) 4.62 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("flip-toolkit"),require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","flip-toolkit","react","prop-types"],t):t((e||self).ReactFlipToolkit={},e.FlipToolkit,e.React)}(this,function(e,t,n){function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=/*#__PURE__*/r(n);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function l(e,t){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},l(e,t)}function p(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(i[n]=e[n]);return i}var a=/*#__PURE__*/n.createContext({}),s=/*#__PURE__*/n.createContext("portal"),c=/*#__PURE__*/function(e){var n,r;function o(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).inProgressAnimations={},t.flipCallbacks={},t.el=void 0,t}r=e,(n=o).prototype=Object.create(r.prototype),n.prototype.constructor=n,l(n,r);var p=o.prototype;return p.getSnapshotBeforeUpdate=function(e){return e.flipKey!==this.props.flipKey&&this.el?t.getFlippedElementPositionsBeforeUpdate({element:this.el,flipCallbacks:this.flipCallbacks,inProgressAnimations:this.inProgressAnimations,portalKey:this.props.portalKey}):null},p.componentDidUpdate=function(e,n,r){this.props.flipKey!==e.flipKey&&this.el&&t.onFlipKeyUpdate({flippedElementPositionsBeforeUpdate:r.flippedElementPositions,cachedOrderedFlipIds:r.cachedOrderedFlipIds,containerEl:this.el,inProgressAnimations:this.inProgressAnimations,flipCallbacks:this.flipCallbacks,applyTransformOrigin:this.props.applyTransformOrigin,spring:this.props.spring,debug:this.props.debug,portalKey:this.props.portalKey,staggerConfig:this.props.staggerConfig,handleEnterUpdateDelete:this.props.handleEnterUpdateDelete,decisionData:{previous:e.decisionData,current:this.props.decisionData},onComplete:this.props.onComplete,onStart:this.props.onStart})},p.render=function(){var e=this,t=this.props,n=t.portalKey,r=/*#__PURE__*/i.default.createElement(a.Provider,{value:this.flipCallbacks},/*#__PURE__*/i.default.createElement(t.element,{className:t.className,ref:function(t){return e.el=t}},this.props.children));return n&&(r=/*#__PURE__*/i.default.createElement(s.Provider,{value:n},r)),r},o}(n.Component);c.defaultProps={applyTransformOrigin:!0,element:"div"};var d=["children","flipId","inverseFlipId","portalKey"],u=["children","flipId","shouldFlip","shouldInvert","onAppear","onStart","onStartImmediate","onComplete","onExit","onSpringUpdate"],f=function(e){var r,i=e.children,o=e.flipId,l=e.inverseFlipId,a=e.portalKey,s=p(e,d),c=i,u=function(e){return"function"==typeof e}(c);if(!u)try{c=n.Children.only(i)}catch(e){throw new Error("Each Flipped component must wrap a single child")}s.scale||s.translate||s.opacity||t.utilities.assign(s,{translate:!0,scale:!0,opacity:!0});var f=((r={})[t.constants.DATA_FLIP_CONFIG]=JSON.stringify(s),r);return void 0!==o?f[t.constants.DATA_FLIP_ID]=String(o):l&&(f[t.constants.DATA_INVERSE_FLIP_ID]=String(l)),void 0!==a&&(f[t.constants.DATA_PORTAL_KEY]=a),u?c(f):/*#__PURE__*/n.cloneElement(c,f)},h=function(e){var n=e.children,r=e.flipId,l=e.shouldFlip,c=e.shouldInvert,d=e.onAppear,h=e.onStart,m=e.onStartImmediate,y=e.onComplete,g=e.onExit,b=e.onSpringUpdate,v=p(e,u);return n?v.inverseFlipId?/*#__PURE__*/i.default.createElement(f,o({},v),n):/*#__PURE__*/i.default.createElement(s.Consumer,null,function(e){/*#__PURE__*/return i.default.createElement(a.Consumer,null,function(p){return t.utilities.isObject(p)&&r&&(p[r]={shouldFlip:l,shouldInvert:c,onAppear:d,onStart:h,onStartImmediate:m,onComplete:y,onExit:g,onSpringUpdate:b}),/*#__PURE__*/i.default.createElement(f,o({flipId:r},v,{portalKey:e}),n)})}):null};h.displayName="Flipped",Object.defineProperty(e,"disableFlip",{enumerable:!0,get:function(){return t.disableFlip}}),Object.defineProperty(e,"enableFlip",{enumerable:!0,get:function(){return t.enableFlip}}),Object.defineProperty(e,"isFlipEnabled",{enumerable:!0,get:function(){return t.isFlipEnabled}}),Object.defineProperty(e,"spring",{enumerable:!0,get:function(){return t.spring}}),e.ExitContainer=function(e){var r;/*#__PURE__*/return n.cloneElement(e.children,((r={})[t.constants.DATA_EXIT_CONTAINER]=!0,r))},e.Flipped=h,e.Flipper=c}); //# sourceMappingURL=index.umd.js.map