UNPKG

react-collapser

Version:

🏄‍♂️ • fully controlled • zero dependencies • works out of the box • other features

3 lines (2 loc) 3.52 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _extends(){return(_extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(t,!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(t).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _slicedToArray(e,r){return _arrayWithHoles(e)||_iterableToArrayLimit(e,r)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,r){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var t=[],n=!0,a=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(n=(o=l.next()).done)&&(t.push(o.value),!r||t.length!==r);n=!0);}catch(e){a=!0,i=e}finally{try{n||null==l.return||l.return()}finally{if(a)throw i}}return t}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}var Collapser=function(e){var r=e.children,t=e.className,n=void 0===t?"collapse":t,a=e.alwaysOpen,i=void 0!==a&&a,o=e.index,l=void 0===o?"number"==typeof i?i+1:i?0:-1:o,c=e.controlled,s=void 0!==c&&c,u=e.revealed,d=void 0!==u&&u,p=e.animated,f=void 0!==p&&p,y=e.disabled,v=void 0!==y&&y,b=e.onChange,m=void 0===b?function(){return null}:b,g=_objectSpread2({},e);delete g.alwaysOpen;var O=_slicedToArray(React.useState(l),2),h=O[0],_=O[1],j=_slicedToArray(React.useState(!1),2),w=j[0],x=j[1];React.useEffect((function(){d&&x(!0)}),[d]),React.useEffect((function(){m({activeIndex:h})}),[h]);var P=function(e){if(s&&s||v)return!1;d&&x(!1);var r=e===h;_(i?r?"number"==typeof i?i+1:0:e:r?-1:e)},S=function(e,r){if("string"==typeof e)return e;var t={handleActive:P,key:r,index:r,animated:f,isOpen:w||(s||(r%2!=0?r===h+1:r===h))};return React.cloneElement(e,t)};return React.createElement("div",_extends({},g,{className:n}),r.map((function(e,r){return"Symbol(react.element)"===e.type.toString()?S(e,r):"Symbol(react.fragment)"===e.type.toString()?e.props.children.map((function(r,t){return S(r,2*e.key+t)})):S(e,r)})))},Panel=function(e){var r=e.className,t=void 0===r?"collapse-panel":r,n=e.children,a=e.controlled,i=e.animated,o=e.isOpen,l={maxHeight:a&&a||o?"initial":0,overflow:o?"visible":"hidden"};return i&&(l.transition="all 0.3s"),React.createElement("div",{className:t,"aria-expanded":a&&a||o,style:l},n)},Trigger=function(e){var r=e.isOpen,t=e.handleActive,n=e.className,a=void 0===n?"collapse-trigger":n,i=e.children,o=e.index,l=e.disabled,c=void 0!==l&&l,s=e.controlled,u=void 0!==s&&s,d={};return c&&(d["aria-disabled"]=!0),React.createElement("div",_extends({},d,{className:a,"aria-expanded":u&&u||r,onClick:function(){return!c&&t(o)}}),i)};exports.Collapser=Collapser,exports.Panel=Panel,exports.Trigger=Trigger; //# sourceMappingURL=common.js.map