carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 2.51 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("react-transition-group"),n=require("../../__internal__/utils/helpers/tags/tags.js"),a=require("./page/page.component.js"),i=require("./pages.style.js");function o(e){return e&&e.__esModule?e:{default:e}}var s=o(r);function l(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}const c="next",u=a=>{var{pageIndex:o,initialpageIndex:u=0,transition:p="slide",children:f}=a,b=function(e,r){if(null==e)return{};var t,n,a=function(e,r){if(null==e)return{};var t,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)t=i[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}(a,["pageIndex","initialpageIndex","transition","children"]);const[d,g]=r.useState(Number(o)||Number(u)),y=r.useRef(c),O=()=>"slide"===p?`slide-${y.current}`:`carousel-transition-${p}`,j=r.useCallback((()=>Array.isArray(f)?f.length:1),[f]),m=r.useCallback((e=>e<0?j()-1:e>j()-1?0:e),[j]);return r.useEffect((()=>{if(void 0===o)return;const e=m(+o),r=d;e!==r&&(y.current=e>r?c:"previous",g(e))}),[o,d,m]),e.jsx(i.PagesWrapperStyle,(P=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){l(e,r,t[r])}))}return e}({},n.default("pages",b)),v=null!=(v={children:e.jsx(i.PagesContent,{className:"carbon-carousel__content",children:e.jsx(t.TransitionGroup,{children:(()=>{const e=s.default.Children.toArray(f)[d];if(!s.default.isValidElement(e))return e;const r={transitionName:O,timeout:500,"data-element":"visible-page","data-role":"visible-page",className:e.props.className};return s.default.cloneElement(e,r)})()})})})?v:{},Object.getOwnPropertyDescriptors?Object.defineProperties(P,Object.getOwnPropertyDescriptors(v)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(v)).forEach((function(e){Object.defineProperty(P,e,Object.getOwnPropertyDescriptor(v,e))})),P));var P,v};u.displayName="Pages",exports.Page=a.default,exports.default=u;