primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 10.1 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.carousel=function(e,t,n,r,a,l){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=c(t),i=u(n);function s(){return s=Object.assign?Object.assign.bind():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},s.apply(this,arguments)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){if(Array.isArray(e))return m(e)}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function v(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}function d(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e){if(Array.isArray(e))return e}function g(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l=[],u=!0,c=!1;try{for(n=n.call(e);!(u=(r=n.next()).done)&&(l.push(r.value),!t||l.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{u||null==n.return||n.return()}finally{if(c)throw a}}return l}}function b(){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 y(e,t){return h(e)||g(e,t)||v(e,t)||b()}var N=o.memo((function(e){var t=e.template(e.item),n=l.classNames(e.className,"p-carousel-item",{"p-carousel-item-active":e.active,"p-carousel-item-start":e.start,"p-carousel-item-end":e.end});return o.createElement("div",{className:n},t)})),E=o.memo(o.forwardRef((function(e,t){var u=y(o.useState(e.numVisible),2),c=u[0],m=u[1],h=y(o.useState(e.numScroll),2),g=h[0],b=h[1],C=y(o.useState(e.page*e.numScroll*-1),2),S=C[0],P=C[1],w=y(o.useState(e.page),2),I=w[0],O=w[1],R=o.useRef(null),j=o.useRef(null),k=o.useRef(0),T=o.useRef(!!e.autoplayInterval),M=o.useRef(""),x=o.useRef(20),A=o.useRef(null),V=o.useRef(null),D=o.useRef(null),L=o.useRef(!1),_=o.useRef(null),H=r.usePrevious(g),U=r.usePrevious(c),z=r.usePrevious(e.value),Y=r.usePrevious(e.page),X="vertical"===e.orientation,q=e.circular||!!e.autoplayInterval,F=q&&e.value&&e.value.length>=c,K=e.onPageChange?e.page:I,W=e.value?Math.max(Math.ceil((e.value.length-c)/g)+1,0):0,$=W&&e.autoplayInterval&&T.current,B=y(r.useResizeListener({listener:function(){J()},when:e.responsiveOptions}),1)[0],G=function(t,n){var r=S;null!=n?(r=g*n*-1,F&&(r-=c),L.current=!1):(r+=g*t,L.current&&(r+=k.current-g*t,L.current=!1),n=Math.abs(Math.floor((F?r+c:r)/g)));F&&I===W-1&&-1===t?(r=-1*(e.value.length+c),n=0):F&&0===I&&1===t?(r=0,n=W-1):n===W-1&&k.current>0&&(r+=-1*k.current-g*t,L.current=!0),j.current&&(l.DomHandler.removeClass(j.current,"p-items-hidden"),oe(r),j.current.style.transition="transform 500ms ease 0s"),e.onPageChange?(P(r),e.onPageChange({page:n})):(O(n),P(r))},J=function(){if(j.current&&_.current){for(var t=window.innerWidth,n={numVisible:e.numVisible,numScroll:e.numScroll},r=0;r<_.current.length;r++){var a=_.current[r];parseInt(a.breakpoint,10)>=t&&(n=a)}if(g!==n.numScroll){var l=Math.floor(K*g/n.numScroll),u=n.numScroll*l*-1;F&&(u-=n.numVisible),P(u),b(n.numScroll),e.onPageChange?e.onPageChange({page:l}):O(l)}c!==n.numVisible&&m(n.numVisible)}},Q=function(e,t){(q||0!==K)&&G(1,t),T.current=!1,e.cancelable&&e.preventDefault()},Z=function(e,t){(q||K<W-1)&&G(-1,t),T.current=!1,e.cancelable&&e.preventDefault()},ee=function(e,t){t>K?Z(e,t):t<K&&Q(e,t)},te=function(e){j.current&&"transform"===e.propertyName&&(l.DomHandler.addClass(j.current,"p-items-hidden"),j.current.style.transition="",0!==I&&I!==W-1||!F||oe(S))},ne=function(e){var t=e.changedTouches[0];A.current={x:t.pageX,y:t.pageY}},re=function(e){e.cancelable&&e.preventDefault()},ae=function(e){var t=e.changedTouches[0];le(e,X?t.pageY-A.current.y:t.pageX-A.current.x)},le=function(e,t){Math.abs(t)>x&&(t<0?Z(e):Q(e))},ue=function(){V.current&&clearInterval(V.current)},ce=function(){D.current||(D.current=l.DomHandler.createInlineStyle(i.default.nonce));var t,n="\n .p-carousel[".concat(M.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/c,"%\n }\n ");if(e.responsiveOptions){_.current=p(t=e.responsiveOptions)||f(t)||v(t)||d(),_.current.sort((function(e,t){return l.ObjectUtils.sort(e.breakpoint,t.breakpoint,-1,i.default.locale,i.default.nullSortOrder)}));for(var r=0;r<_.current.length;r++){var a=_.current[r];n+="\n @media screen and (max-width: ".concat(a.breakpoint,") {\n .p-carousel[").concat(M.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/a.numVisible,"%\n }\n }\n ")}}D.current.innerHTML=n},oe=function(e){j.current&&(j.current.style.transform=X?"translate3d(0, ".concat(e*(100/c),"%, 0)"):"translate3d(".concat(e*(100/c),"%, 0, 0)"))};o.useImperativeHandle(t,(function(){return{props:e,getElement:function(){return R.current}}})),r.useMountEffect((function(){R.current&&(M.current=l.UniqueComponentId(),R.current.setAttribute(M.current,"")),ce(),J(),oe(S),B()})),r.useUpdateEffect((function(){var t=!1,n=S;if(e.autoplayInterval&&ue(),H!==g||U!==c||e.value&&z&&z.length!==e.value.length){k.current=(e.value.length-c)%g;var r=K;0!==W&&r>=W&&(r=W-1,e.onPageChange?e.onPageChange({page:r}):O(r),t=!0),n=r*g*-1,F&&(n-=c),r===W-1&&k.current>0?(n+=-1*k.current+g,L.current=!0):L.current=!1,n!==S&&(P(n),t=!0),oe(n)}F&&(0===I?n=-1*c:0===n&&(n=-1*e.value.length,k.current>0&&(L.current=!0)),n!==S&&(P(n),t=!0)),Y!==e.page&&(e.page>Y&&e.page<=W-1?G(-1,e.page):e.page<Y&&G(1,e.page)),!t&&$&&(V.current=setInterval((function(){G(-1,I===W-1?0:I+1)}),e.autoplayInterval))})),r.useUnmountEffect((function(){e.autoplayInterval&&ue()}));var ie=function(){if(e.value&&e.value.length){var t=null,n=null;if(F){var r=null;t=(r=e.value.slice(-1*c)).map((function(t,n){return o.createElement(N,{key:n+"_scloned",className:"p-carousel-item-cloned",template:e.itemTemplate,item:t,active:-1*S===e.value.length+c,start:0===n,end:n===r.length-1})})),n=(r=e.value.slice(0,c)).map((function(t,n){return o.createElement(N,{key:n+"_fcloned",className:"p-carousel-item-cloned",template:e.itemTemplate,item:t,active:0===S,start:0===n,end:n===r.length-1})}))}var a=e.value.map((function(t,n){var r=F?-1*(S+c):-1*S,a=r+c-1;return o.createElement(N,{key:n,template:e.itemTemplate,item:t,active:r<=n&&a>=n,start:r===n,end:a===n})}));return o.createElement(o.Fragment,null,t,a,n)}},se=function(){if(e.showNavigators){var t=(!q||e.value&&e.value.length<c)&&0===K,r=l.classNames("p-carousel-prev p-link",{"p-disabled":t}),u=l.classNames("p-carousel-prev-icon pi",{"pi-chevron-left":!X,"pi-chevron-up":X});return o.createElement("button",{type:"button",className:r,onClick:Q,disabled:t,"aria-label":n.ariaLabel("previousPageLabel")},o.createElement("span",{className:u}),o.createElement(a.Ripple,null))}return null},me=function(){if(e.showNavigators){var t=(!q||e.value&&e.value.length<c)&&(K===W-1||0===W),r=l.classNames("p-carousel-next p-link",{"p-disabled":t}),u=l.classNames("p-carousel-next-icon pi",{"pi-chevron-right":!X,"pi-chevron-down":X});return o.createElement("button",{type:"button",className:r,onClick:Z,disabled:t,"aria-label":n.ariaLabel("nextPageLabel")},o.createElement("span",{className:u}),o.createElement(a.Ripple,null))}return null},pe=function(e){var t="carousel-indicator-"+e,r=l.classNames("p-carousel-indicator",{"p-highlight":K===e});return o.createElement("li",{key:t,className:r},o.createElement("button",{type:"button",className:"p-link",onClick:function(t){return ee(t,e)},"aria-label":"".concat(n.ariaLabel("pageLabel")," ").concat(e+1)},o.createElement(a.Ripple,null)))},fe=l.ObjectUtils.findDiffKeys(e,E.defaultProps),ve=l.classNames("p-carousel p-component",{"p-carousel-vertical":X,"p-carousel-horizontal":!X},e.className),de=l.classNames("p-carousel-content",e.contentClassName),he=function(){var t=ie(),n=X?e.verticalViewPortHeight:"auto",r=se(),a=me(),u=l.classNames("p-carousel-container",e.containerClassName);return o.createElement("div",{className:u},r,o.createElement("div",{className:"p-carousel-items-content",style:{height:n},onTouchStart:ne,onTouchMove:re,onTouchEnd:ae},o.createElement("div",{ref:j,className:"p-carousel-items-container",onTransitionEnd:te},t)),a)}(),ge=function(){if(e.showIndicators){for(var t=l.classNames("p-carousel-indicators p-reset",e.indicatorsContentClassName),n=[],r=0;r<W;r++)n.push(pe(r));return o.createElement("ul",{className:t},n)}return null}(),be=e.header?o.createElement("div",{className:"p-carousel-header"},e.header):null,ye=e.footer?o.createElement("div",{className:"p-carousel-footer"},e.footer):null;return o.createElement("div",s({ref:R,id:e.id,className:ve,style:e.style},fe),be,o.createElement("div",{className:de},he,ge),ye)})));return N.displayName="CarouselItem",E.displayName="Carousel",E.defaultProps={__TYPE:"Carousel",id:null,value:null,page:0,header:null,footer:null,style:null,className:null,itemTemplate:null,circular:!1,showIndicators:!0,showNavigators:!0,autoplayInterval:0,numVisible:1,numScroll:1,responsiveOptions:null,orientation:"horizontal",verticalViewPortHeight:"300px",contentClassName:null,containerClassName:null,indicatorsContentClassName:null,onPageChange:null},e.Carousel=E,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.ripple,primereact.utils);