UNPKG

3.59 kBJavaScriptView Raw
1!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):(e=e||self).Collapse=t(e.React)}(this,(function(e){"use strict";var t="default"in e?e.default:e;function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(){return(r=Object.assign||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}).apply(this,arguments)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}let c="collapse-css-transition",a="div",s="0px";function p(e){requestAnimationFrame((function(){requestAnimationFrame(e)}))}return function(n){let{children:i,transition:u,style:f,render:d,elementType:y=a,isOpen:b,collapseHeight:h=s,onInit:g,onChange:O,className:m=c,addState:v,noAnim:j,overflowOnExpanded:w}=n,x=o(n,["children","transition","style","render","elementType","isOpen","collapseHeight","onInit","onChange","className","addState","noAnim","overflowOnExpanded"]),P=()=>"0px"===h?"hidden":"",[D,E]=e.useReducer(e=>e+1,0),S=e.useRef(),[T,k]=e.useState(0),A=e.useRef({collapse:b?"expanded":"collapsed",style:{height:b?"":h,visibility:b?"":P()}}).current;e.useEffect(()=>{T&&C(O)},[T]);let C=(e,t={})=>{e&&(e.name,e(l({state:A.collapse,style:A.style},t)))};function N(){S.current&&(A.collapse="collapsed",A.style={height:h,visibility:P()},E(),setTimeout(()=>k(Date.now),0))}function R(){S.current&&(A.collapse="expanded",A.style={height:"",visibility:""},E(),setTimeout(()=>k(Date.now),0))}function q(){return S.current.scrollHeight+"px"}let H="expanded"===A.collapse||"expanding"===A.collapse;!H&&b&&function(){if(S.current){if(j)return R();A.collapse="expanding",p(()=>{S.current&&"expanding"===A.collapse&&(A.style={height:q(),visibility:""},k(Date.now))})}}(),H&&!b&&function(){if(S.current){if(j)return N();A.collapse="collapsing",A.style={height:q(),visibility:""},E(),p(()=>{S.current&&"collapsing"===A.collapse&&(A.style={height:h,visibility:""},k(Date.now))})}}();let I=l({overflow:"expanded"===A.collapse&&w?"":"hidden",transition:u},f,{},A.style),F=y,$=e.useCallback(e=>{e&&(S.current=e,C(g,{node:e}))},[y]),z=v?`${m} --c-${A.collapse}`:m;return t.createElement(F,r({ref:$,style:I,onTransitionEnd:function({target:e,propertyName:t}){if(e===S.current&&"height"===t){let t=e.style.height;switch(A.collapse,A.collapse){case"expanding":""===t||t===h||R();break;case"collapsing":""===t||t!==h||N()}}},className:z},x),"function"==typeof i?i(A.collapse):"function"==typeof d?d(A.collapse):i)}}));
2//# sourceMappingURL=Collapse.umd.es2015.js.map