@bentoproject/accordion
Version:
Displays content sections that can be collapsed and expanded.
3 lines • 9.83 kB
JavaScript
;
var n,r=Object.create,t=Object.defineProperty,e=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=function(n){return t(n,"__esModule",{value:!0})},a=function(n){return function(n,r,o){if(r&&"object"==typeof r||"function"==typeof r)for(var c,a=i(r),f=0,l=a.length;f<l;f++)c=a[f],u.call(n,c)||"default"===c||t(n,c,{get:function(n){return r[n]}.bind(null,c),enumerable:!(o=e(r,c))||o.enumerable});return n}(c(t(null!=n?r(o(n)):{},"default",n&&n.__esModule&&"default"in n?{get:function(){return n.default},enumerable:!0}:{value:n,enumerable:!0})),n)};function f(n){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function l(n){var r=function(n,r){if("object"!==f(n)||null===n)return n;var t=n[Symbol.toPrimitive];if(void 0!==t){var e=t.call(n,"string");if("object"!==f(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===f(r)?r:String(r)}function v(n,r){(null==r||r>n.length)&&(r=n.length);for(var t=0,e=new Array(r);t<r;t++)e[t]=n[t];return e}function d(){return n||(n=Promise.resolve(void 0))}function b(n,r,t){return r in n?Object.defineProperty(n,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[r]=t,n}function p(n,r){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);r&&(e=e.filter((function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable}))),t.push.apply(t,e)}return t}function s(n){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?p(Object(t),!0).forEach((function(r){b(n,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):p(Object(t)).forEach((function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))}))}return n}function h(n,r){return function(n){if(Array.isArray(n))return n}(n)||function(n,r){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var e,i,o=[],u=!0,c=!1;try{for(t=t.call(n);!(u=(e=t.next()).done)&&(o.push(e.value),!r||o.length!==r);u=!0);}catch(n){c=!0,i=n}finally{try{u||null==t.return||t.return()}finally{if(c)throw i}}return o}}(n,r)||function(n,r){if(n){if("string"==typeof n)return v(n,r);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(n,r):void 0}}(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(n,r){if(null==n)return{};var t,e,i={},o=Object.keys(n);for(e=0;e<o.length;e++)t=o[e],r.indexOf(t)>=0||(i[t]=n[t]);return i}!function(n,r){for(var e in c(n),r)t(n,e,{get:r[e],enumerable:!0})}(exports,{BentoAccordion:function(){return $},BentoAccordionContent:function(){return J},BentoAccordionHeader:function(){return G},BentoAccordionSection:function(){return F}});var y=Object.prototype;function g(n,r){return Object.keys(n).reduce((function(t,e){return r.includes(e)||(t[e]=n[e]),t}),{})}y.hasOwnProperty,y.toString;var j=a(require("@bentoproject/core/react")),O=a(require("@bentoproject/core/react")),S=a(require("@bentoproject/core/react")),w=a(require("@bentoproject/core/react"));function x(n){var r,t,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return null!==(r=null!==(t=n.tabindex)&&void 0!==t?t:n.tabIndex)&&void 0!==r?r:e}a(require("@bentoproject/core/react")),a(require("@bentoproject/core/react")),Array.isArray;var A,I=["Webkit","webkit","Moz","moz","ms","O","o"];function M(n,r,t){if(E(r))return r;var e;A||(e=Object.create(null),A=e);var i=A[r];if(!i||t){if(i=r,void 0===n[r]){var o=function(n){return n.charAt(0).toUpperCase()+n.slice(1)}(r),u=function(n,r){for(var t=0;t<I.length;t++){var e=I[t]+r;if(void 0!==n[e])return e}return""}(n,o);void 0!==n[u]&&(i=u)}t||(A[r]=i)}return i}function Y(n,r,t,e,i){var o=M(n.style,r,i);if(o){var u,c=e?t+e:t;n.style.setProperty((u=o.replace(/[A-Z]/g,(function(n){return"-"+n.toLowerCase()})),I.some((function(n){return u.startsWith(n+"-")}))?"-".concat(u):u),c)}}function q(n,r,t){var e=M(n.style,r,t);if(e)return E(e)?n.style.getPropertyValue(e):n.style[e]}function C(n,r){for(var t in r)Y(n,t,r[t])}function E(n){return n.startsWith("--")}function z(n,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;n.classList.add("i-amphtml-animating");var e=r();return e.onfinish=e.oncancel=function(){e=null,t&&t(),n.classList.remove("i-amphtml-animating")},function(){e&&e.cancel()}}function B(n){var r=window.innerHeight,t=Math.abs(n)/r*500;return Math.min(Math.max(t,200),500)}var N,k=["animate","as","children","expandSingleSection","id"],H=["animate","as","children","expanded","id","onExpandStateChange"],P=j.createContext({}),T=j.createContext({}),_={},U={},W=(N=0,function(){return String(++N)}),Z=function(){return String(Math.floor(1e5*Math.random()))},$=(0,S.forwardRef)((function(n,r){var t=n.animate,e=void 0!==t&&t,i=n.as,o=void 0===i?"section":i,u=n.children,c=n.expandSingleSection,a=void 0!==c&&c,f=n.id,l=m(n,k),v=h((0,O.useState)(_),2),p=v[0],y=v[1],S=(0,O.useRef)(U),w=h((0,O.useState)(Z),1)[0],x=f||"a".concat(w);(0,O.useEffect)((function(){a&&y((function(n){var r={},t=0;for(var e in n)r[e]=n[e]&&0==t++;return r}))}),[a]);var A=(0,O.useCallback)((function(n,r,t){var e=t.current;return y((function(t){return D(n,r,t,a)})),S.current=s(s({},S.current),{},b({},n,e)),function(){y((function(r){return g(r,n)})),S.current=g(S.current,n)}}),[a]),I=(0,O.useCallback)((function(n,r){y((function(t){var e=null!=r?r:!t[n],i=D(n,e,t,a);return d().then((function(){for(var n in t){var r=S.current[n];r&&t[n]!=i[n]&&r(i[n])}})),i}))}),[a]),M=(0,O.useCallback)((function(n,r){var t;return null!==(t=p[n])&&void 0!==t?t:r}),[p]),Y=(0,O.useCallback)((function(n){if(n)n in p&&I(n);else if(!a)for(var r in p)I(r)}),[p,I,a]),q=(0,O.useCallback)((function(n){if(n)M(n,!0)||I(n);else if(!a)for(var r in p)M(r,!0)||I(r)}),[p,I,M,a]),C=(0,O.useCallback)((function(n){if(n)M(n,!1)&&I(n);else for(var r in p)M(r,!1)&&I(r)}),[p,I,M]);(0,O.useImperativeHandle)(r,(function(){return{toggle:Y,expand:q,collapse:C}}),[Y,C,q]);var E=(0,O.useMemo)((function(){return{registerSection:A,toggleExpanded:I,isExpanded:M,animate:e,prefix:x}}),[A,I,M,e,x]);return j.createElement(o,s({id:f},l),j.createElement(P.Provider,{value:E},u))}));function D(n,r,t,e){var i;if(e&&r)for(var o in i=b({},n,r),t)o!=n&&(i[o]=!1);else i=s(s({},t),{},b({},n,r));return i}function F(n){var r=n.animate,t=void 0!==r&&r,e=n.as,i=void 0===e?"section":e,o=n.children,u=n.expanded,c=void 0!==u&&u,a=n.id,f=n.onExpandStateChange,l=m(n,H),v=h((0,O.useState)(W),1)[0],b=a||v,p=h((0,O.useState)(Z),1)[0],y=h((0,O.useState)(c),2),g=y[0],S=y[1],w=h((0,O.useState)(null),2),x=w[0],A=w[1],I=h((0,O.useState)(null),2),M=I[0],Y=I[1],q=(0,O.useContext)(P),C=q.animate,E=q.isExpanded,z=q.prefix,B=q.registerSection,N=q.toggleExpanded,k=E?E(b,c):g,_=null!=C?C:t,U=x||"".concat(z||"a","-content-").concat(b,"-").concat(p),$=M||"".concat(z||"a","-header-").concat(b,"-").concat(p),D=(0,O.useRef)(null);D.current=f,(0,O.useLayoutEffect)((function(){if(B)return B(b,c,D)}),[B,b,c]);var F=(0,O.useCallback)((function(n){N?N(b,n):S((function(r){var t=null!=n?n:!r;return d().then((function(){var n=D.current;n&&n(t)})),t}))}),[b,N]),G=(0,O.useMemo)((function(){return{animate:_,contentId:U,headerId:$,expanded:k,toggleHandler:F,setContentId:A,setHeaderId:Y}}),[_,U,$,k,F]);return j.createElement(i,s({},l),j.createElement(T.Provider,{value:G},o))}function G(n){var r="className",t=n.as,e=void 0===t?"div":t,i=n.children,o=n.id,u=n.role,c=void 0===u?"button":u,a=n[r],f=void 0===a?"":a,v=m(n,["as","children","id","role",r].map(l)),d=(0,O.useContext)(T),b=d.contentId,p=d.expanded,h=d.headerId,y=d.setHeaderId,g=d.toggleHandler;return(0,O.useLayoutEffect)((function(){y&&y(o)}),[y,o]),j.createElement(e,s(s({},v),{},{id:h,role:c,className:"".concat(f," ").concat("section-child-76fac82"," ").concat("header-76fac82"),tabIndex:x(v),"aria-controls":b,onClick:function(){return g()},"aria-expanded":String(p)}),i)}function J(n){var r="className",t=n.as,e=void 0===t?"div":t,i=n.children,o=n.id,u=n.role,c=void 0===u?"region":u,a=n[r],f=void 0===a?"":a,v=m(n,["as","children","id","role",r].map(l)),d=(0,O.useRef)(null),b=(0,O.useRef)(!1),p=(0,O.useContext)(T),h=p.animate,y=p.contentId,g=p.expanded,S=p.headerId,x=p.setContentId;return(0,O.useEffect)((function(){return b.current=!0,function(){return b.current=!1}}),[]),(0,O.useLayoutEffect)((function(){x&&x(o)}),[x,o]),(0,O.useLayoutEffect)((function(){var n=b.current,r=d.current;if(h&&n&&r&&r.animate)return g?function(n){return z(n,(function(){var r=q(n,"height"),t=q(n,"opacity"),e=q(n,"overflowY");C(n,{height:0,opacity:0,overflowY:"auto"});var i=n.scrollHeight;C(n,{height:r,opacity:t,overflowY:e});var o=B(i);return n.animate([{height:0,opacity:0,overflowY:"hidden"},{height:i+"px",opacity:1,overflowY:"hidden"}],{easing:"cubic-bezier(0.47, 0, 0.745, 0.715)",duration:o})}))}(r):function(n){return z(n,(function(){var r=n.offsetHeight,t=B(r);return n.animate([{height:r+"px",opacity:1,overflowY:"hidden"},{height:"0",opacity:0,overflowY:"hidden"}],{easing:"cubic-bezier(0.39, 0.575, 0.565, 1)",duration:t})}))}(r)}),[g,h]),j.createElement(w.WithAmpContext,{renderable:g},j.createElement(e,s(s({},v),{},{ref:d,className:f+" section-child-76fac82"+(g?"":" content-hidden-76fac82"),id:y,"aria-labelledby":S,role:c}),i))}$.displayName="Accordion";
//# sourceMappingURL=component-react.js.map