@bentoproject/accordion
Version:
Displays content sections that can be collapsed and expanded.
1 lines • 9.85 kB
JavaScript
var n,r=Object.create,t=Object.defineProperty,e=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,a=function(n){return t(n,"__esModule",{value:!0})},c=function(n){return function(n,r,o){if(r&&"object"==typeof r||"function"==typeof r)for(var a,c=i(r),f=0,l=c.length;f<l;f++)a=c[f],u.call(n,a)||"default"===a||t(n,a,{get:function(n){return r[n]}.bind(null,a),enumerable:!(o=e(r,a))||o.enumerable});return n}(a(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 y(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 h(n){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?y(Object(t),!0).forEach((function(r){b(n,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach((function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))}))}return n}function m(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,a=!1;try{for(t=t.call(n);!(u=(e=t.next()).done)&&(o.push(e.value),!r||o.length!==r);u=!0);}catch(n){a=!0,i=n}finally{try{u||null==t.return||t.return()}finally{if(a)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 s(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 a(n),r)t(n,e,{get:r[e],enumerable:!0})}(exports,{BentoAccordion:function(){return en},BentoAccordionContent:function(){return cn},BentoAccordionHeader:function(){return an},BentoAccordionSection:function(){return un}});var p=Object.prototype;function g(n,r){return Object.keys(n).reduce((function(t,e){return r.includes(e)||(t[e]=n[e]),t}),{})}p.hasOwnProperty,p.toString;var j=c(require("react")),O=(c(require("react-dom")),c(require("react")));function S(n,r,t){return j.createElement.apply(void 0,arguments)}function w(n){return j.createContext(n,void 0)}function x(n){return O.useState(n)}function A(n){return O.useRef(n)}function M(n,r){O.useEffect(n,r)}function z(n,r){O.useLayoutEffect(n,r)}function I(n){return O.useContext(n)}function Y(n,r){return O.useMemo(n,r)}function C(n,r){return O.useCallback(n,r)}var E,q,B=c(require("react")),N=["auto","lazy","eager","unload"],k=(b(E={},"auto",0),b(E,"lazy",1),b(E,"eager",2),b(E,"unload",3),E);function H(n,r){var t=k[n]||0,e=k[r]||0,i=Math.max(t,e);return N[i]}function P(){return q||(q=w({renderable:!0,playable:!0,loading:"auto"}))}function T(n){var r=n.children,t=n.loading,e=void 0===t?"auto":t,i=n.notify,o=n.playable,u=void 0===o||o,a=n.renderable,c=void 0===a||a,f=I(P()),l=c&&f.renderable,v=l&&u&&f.playable,d=H(l?"auto":"lazy",H(e,f.loading)),b=i||f.notify,y=Y((function(){return{renderable:l,playable:v,loading:d,notify:b}}),[l,v,d,b]);return S(P().Provider,{children:r,value:y})}Array.isArray;var _,U=["Webkit","webkit","Moz","moz","ms","O","o"];function W(n,r,t){if(G(r))return r;var e;_||(e=Object.create(null),_=e);var i=_[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<U.length;t++){var e=U[t]+r;if(void 0!==n[e])return e}return""}(n,o);void 0!==n[u]&&(i=u)}t||(_[r]=i)}return i}function $(n,r,t,e,i){var o=W(n.style,r,i);if(o){var u=e?t+e:t;G(o)?n.style.setProperty(o,u):n.style[o]=u}}function D(n,r,t){var e=W(n.style,r,t);if(e)return G(e)?n.style.getPropertyValue(e):n.style[e]}function F(n,r){for(var t in r)$(n,t,r[t])}function G(n){return n.startsWith("--")}function J(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 K(n){var r=window.innerHeight,t=Math.abs(n)/r*500;return Math.min(Math.max(t,200),500)}var L,Q=["animate","as","children","expandSingleSection","id"],R=["animate","as","children","expanded","id","onExpandStateChange"],V=w({}),X=w({}),Z={},nn={},rn=(L=0,function(){return String(++L)}),tn=function(){return String(Math.floor(1e5*Math.random()))},en=(0,B.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,a=n.expandSingleSection,c=void 0!==a&&a,f=n.id,l=s(n,Q),v=m(x(Z),2),y=v[0],p=v[1],j=A(nn),w=m(x(tn),1)[0],z=f||"a".concat(w);M((function(){c&&p((function(n){var r={},t=0;for(var e in n)r[e]=n[e]&&0==t++;return r}))}),[c]);var I=C((function(n,r,t){var e=t.current;return p((function(t){return on(n,r,t,c)})),j.current=h(h({},j.current),{},b({},n,e)),function(){p((function(r){return g(r,n)})),j.current=g(j.current,n)}}),[c]),E=C((function(n,r){p((function(t){var e=null!=r?r:!t[n],i=on(n,e,t,c);return d().then((function(){for(var n in t){var r=j.current[n];r&&t[n]!=i[n]&&r(i[n])}})),i}))}),[c]),q=C((function(n,r){var t;return null!==(t=y[n])&&void 0!==t?t:r}),[y]),B=C((function(n){if(n)n in y&&E(n);else if(!c)for(var r in y)E(r)}),[y,E,c]),N=C((function(n){if(n)q(n,!0)||E(n);else if(!c)for(var r in y)q(r,!0)||E(r)}),[y,E,q,c]),k=C((function(n){if(n)q(n,!1)&&E(n);else for(var r in y)q(r,!1)&&E(r)}),[y,E,q]);!function(n,r,t){O.useImperativeHandle(n,(function(){return{toggle:B,expand:N,collapse:k}}),t)}(r,0,[B,k,N]);var H=Y((function(){return{registerSection:I,toggleExpanded:E,isExpanded:q,animate:e,prefix:z}}),[I,E,q,e,z]);return S(o,h({id:f},l),S(V.Provider,{value:H},u))}));function on(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=h(h({},t),{},b({},n,r));return i}function un(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,a=void 0!==u&&u,c=n.id,f=n.onExpandStateChange,l=s(n,R),v=m(x(rn),1)[0],b=c||v,y=m(x(tn),1)[0],p=m(x(a),2),g=p[0],j=p[1],O=m(x(null),2),w=O[0],M=O[1],E=m(x(null),2),q=E[0],B=E[1],N=I(V),k=N.animate,H=N.isExpanded,P=N.prefix,T=N.registerSection,_=N.toggleExpanded,U=H?H(b,a):g,W=null!=k?k:t,$=w||"".concat(P||"a","-content-").concat(b,"-").concat(y),D=q||"".concat(P||"a","-header-").concat(b,"-").concat(y),F=A(null);F.current=f,z((function(){if(T)return T(b,a,F)}),[T,b,a]);var G=C((function(n){_?_(b,n):j((function(r){var t=null!=n?n:!r;return d().then((function(){var n=F.current;n&&n(t)})),t}))}),[b,_]),J=Y((function(){return{animate:W,contentId:$,headerId:D,expanded:U,toggleHandler:G,setContentId:M,setHeaderId:B}}),[W,$,D,U,G]);return S(i,h({},l),S(X.Provider,{value:J},o))}function an(n){var r="className",t="tabindex",e=n.as,i=void 0===e?"div":e,o=n.children,u=n.id,a=n.role,c=void 0===a?"button":a,f=n[r],v=void 0===f?"":f,d=n[t],b=void 0===d?0:d,y=s(n,["as","children","id","role",r,t].map(l)),m=I(X),p=m.contentId,g=m.expanded,j=m.headerId,O=m.setHeaderId,w=m.toggleHandler;return z((function(){O&&O(u)}),[O,u]),S(i,h(h({},y),{},{id:j,role:c,className:"".concat(v," ").concat("section-child-00fce3c"," ").concat("header-00fce3c"),tabindex:b,"aria-controls":p,onClick:function(){return w()},"aria-expanded":String(g)}),o)}function cn(n){var r="className",t=n.as,e=void 0===t?"div":t,i=n.children,o=n.id,u=n.role,a=void 0===u?"region":u,c=n[r],f=void 0===c?"":c,v=s(n,["as","children","id","role",r].map(l)),d=A(null),b=A(!1),y=I(X),m=y.animate,p=y.contentId,g=y.expanded,j=y.headerId,O=y.setContentId;return M((function(){return b.current=!0,function(){return b.current=!1}}),[]),z((function(){O&&O(o)}),[O,o]),z((function(){var n=b.current,r=d.current;if(m&&n&&r&&r.animate)return g?function(n){return J(n,(function(){var r=D(n,"height"),t=D(n,"opacity"),e=D(n,"overflowY");F(n,{height:0,opacity:0,overflowY:"auto"});var i=n.scrollHeight;F(n,{height:r,opacity:t,overflowY:e});var o=K(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 J(n,(function(){var r=n.offsetHeight,t=K(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,m]),S(T,{renderable:g},S(e,h(h({},v),{},{ref:d,className:f+" section-child-00fce3c"+(g?"":" content-hidden-00fce3c"),id:p,"aria-labelledby":j,role:a}),i))}en.displayName="Accordion";