UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ 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.4 kB
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 p(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 m(e){if(Array.isArray(e))return p(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 p(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)?p(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,c=[],o=!0,i=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{if(!o&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(i)throw a}}return c}}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={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,children:void 0},getProps:function(e){return l.ObjectUtils.getMergedProps(e,N.defaultProps)},getOtherProps:function(e){return l.ObjectUtils.getDiffProps(e,N.defaultProps)}},E=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)})),P=o.memo(o.forwardRef((function(e,t){var u=N.getProps(e),c=y(o.useState(u.numVisible),2),p=c[0],h=c[1],g=y(o.useState(u.numScroll),2),b=g[0],P=g[1],C=y(o.useState(u.page*u.numScroll*-1),2),O=C[0],S=C[1],w=y(o.useState(u.page),2),I=w[0],j=w[1],R=o.useRef(null),k=o.useRef(null),T=o.useRef(0),M=o.useRef(!!u.autoplayInterval),x=o.useRef(""),A=o.useRef(20),V=o.useRef(null),D=o.useRef(null),L=o.useRef(null),_=o.useRef(!1),H=o.useRef(null),U=r.usePrevious(b),z=r.usePrevious(p),Y=r.usePrevious(u.value),X=r.usePrevious(u.page),q="vertical"===u.orientation,F=u.circular||!!u.autoplayInterval,W=F&&u.value&&u.value.length>=p,$=u.onPageChange?u.page:I,B=u.value?Math.max(Math.ceil((u.value.length-p)/b)+1,0):0,G=B&&u.autoplayInterval&&M.current,J=y(r.useResizeListener({listener:function(){Q()},when:u.responsiveOptions}),1)[0],K=function(e,t){var n=O;null!=t?(n=b*t*-1,W&&(n-=p),_.current=!1):(n+=b*e,_.current&&(n+=T.current-b*e,_.current=!1),t=Math.abs(Math.floor((W?n+p:n)/b)));W&&I===B-1&&-1===e?(n=-1*(u.value.length+p),t=0):W&&0===I&&1===e?(n=0,t=B-1):t===B-1&&T.current>0&&(n+=-1*T.current-b*e,_.current=!0),k.current&&(l.DomHandler.removeClass(k.current,"p-items-hidden"),ie(n),k.current.style.transition="transform 500ms ease 0s"),u.onPageChange?(S(n),u.onPageChange({page:t})):(j(t),S(n))},Q=function(){if(k.current&&H.current){for(var e=window.innerWidth,t={numVisible:u.numVisible,numScroll:u.numScroll},n=0;n<H.current.length;n++){var r=H.current[n];parseInt(r.breakpoint,10)>=e&&(t=r)}if(b!==t.numScroll){var a=Math.floor($*b/t.numScroll),l=t.numScroll*a*-1;W&&(l-=t.numVisible),S(l),P(t.numScroll),u.onPageChange?u.onPageChange({page:a}):j(a)}p!==t.numVisible&&h(t.numVisible)}},Z=function(e,t){(F||0!==$)&&K(1,t),M.current=!1,e.cancelable&&e.preventDefault()},ee=function(e,t){(F||$<B-1)&&K(-1,t),M.current=!1,e.cancelable&&e.preventDefault()},te=function(e,t){t>$?ee(e,t):t<$&&Z(e,t)},ne=function(e){k.current&&"transform"===e.propertyName&&(l.DomHandler.addClass(k.current,"p-items-hidden"),k.current.style.transition="",0!==I&&I!==B-1||!W||ie(O))},re=function(e){var t=e.changedTouches[0];V.current={x:t.pageX,y:t.pageY}},ae=function(e){e.cancelable&&e.preventDefault()},le=function(e){var t=e.changedTouches[0];ue(e,q?t.pageY-V.current.y:t.pageX-V.current.x)},ue=function(e,t){Math.abs(t)>A&&(t<0?ee(e):Z(e))},ce=function(){D.current&&clearInterval(D.current)},oe=function(){L.current||(L.current=l.DomHandler.createInlineStyle(i.default.nonce));var e,t="\n .p-carousel[".concat(x.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/p,"%\n }\n ");if(u.responsiveOptions){H.current=m(e=u.responsiveOptions)||f(e)||v(e)||d(),H.current.sort((function(e,t){return l.ObjectUtils.sort(e.breakpoint,t.breakpoint,-1,i.default.locale,i.default.nullSortOrder)}));for(var n=0;n<H.current.length;n++){var r=H.current[n];t+="\n @media screen and (max-width: ".concat(r.breakpoint,") {\n .p-carousel[").concat(x.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/r.numVisible,"%\n }\n }\n ")}}L.current.innerHTML=t},ie=function(e){k.current&&(k.current.style.transform=q?"translate3d(0, ".concat(e*(100/p),"%, 0)"):"translate3d(".concat(e*(100/p),"%, 0, 0)"))};o.useImperativeHandle(t,(function(){return{props:u,getElement:function(){return R.current}}})),r.useMountEffect((function(){R.current&&(x.current=l.UniqueComponentId(),R.current.setAttribute(x.current,"")),oe(),Q(),ie(O),J()})),r.useUpdateEffect((function(){var e=!1,t=O;if(u.autoplayInterval&&ce(),U!==b||z!==p||u.value&&Y&&Y.length!==u.value.length){T.current=(u.value.length-p)%b;var n=$;0!==B&&n>=B&&(n=B-1,u.onPageChange?u.onPageChange({page:n}):j(n),e=!0),t=n*b*-1,W&&(t-=p),n===B-1&&T.current>0?(t+=-1*T.current+b,_.current=!0):_.current=!1,t!==O&&(S(t),e=!0),ie(t)}W&&(0===I?t=-1*p:0===t&&(t=-1*u.value.length,T.current>0&&(_.current=!0)),t!==O&&(S(t),e=!0)),X!==u.page&&(u.page>X&&u.page<=B-1?K(-1,u.page):u.page<X&&K(1,u.page)),!e&&G&&(D.current=setInterval((function(){K(-1,I===B-1?0:I+1)}),u.autoplayInterval))})),r.useUnmountEffect((function(){u.autoplayInterval&&ce()}));var se=function(){if(u.value&&u.value.length){var e=null,t=null;if(W){var n=null;e=(n=u.value.slice(-1*p)).map((function(e,t){return o.createElement(E,{key:t+"_scloned",className:"p-carousel-item-cloned",template:u.itemTemplate,item:e,active:-1*O===u.value.length+p,start:0===t,end:t===n.length-1})})),t=(n=u.value.slice(0,p)).map((function(e,t){return o.createElement(E,{key:t+"_fcloned",className:"p-carousel-item-cloned",template:u.itemTemplate,item:e,active:0===O,start:0===t,end:t===n.length-1})}))}var r=u.value.map((function(e,t){var n=W?-1*(O+p):-1*O,r=n+p-1;return o.createElement(E,{key:t,template:u.itemTemplate,item:e,active:n<=t&&r>=t,start:n===t,end:r===t})}));return o.createElement(o.Fragment,null,e,r,t)}},pe=function(){if(u.showNavigators){var e=(!F||u.value&&u.value.length<p)&&0===$,t=l.classNames("p-carousel-prev p-link",{"p-disabled":e}),r=l.classNames("p-carousel-prev-icon pi",{"pi-chevron-left":!q,"pi-chevron-up":q});return o.createElement("button",{type:"button",className:t,onClick:Z,disabled:e,"aria-label":n.ariaLabel("previousPageLabel")},o.createElement("span",{className:r}),o.createElement(a.Ripple,null))}return null},me=function(){if(u.showNavigators){var e=(!F||u.value&&u.value.length<p)&&($===B-1||0===B),t=l.classNames("p-carousel-next p-link",{"p-disabled":e}),r=l.classNames("p-carousel-next-icon pi",{"pi-chevron-right":!q,"pi-chevron-down":q});return o.createElement("button",{type:"button",className:t,onClick:ee,disabled:e,"aria-label":n.ariaLabel("nextPageLabel")},o.createElement("span",{className:r}),o.createElement(a.Ripple,null))}return null},fe=function(e){var t="carousel-indicator-"+e,r=l.classNames("p-carousel-indicator",{"p-highlight":$===e});return o.createElement("li",{key:t,className:r},o.createElement("button",{type:"button",className:"p-link",onClick:function(t){return te(t,e)},"aria-label":"".concat(n.ariaLabel("pageLabel")," ").concat(e+1)},o.createElement(a.Ripple,null)))},ve=N.getOtherProps(u),de=l.classNames("p-carousel p-component",{"p-carousel-vertical":q,"p-carousel-horizontal":!q},u.className),he=l.classNames("p-carousel-content",u.contentClassName),ge=function(){var e=se(),t=q?u.verticalViewPortHeight:"auto",n=pe(),r=me(),a=l.classNames("p-carousel-container",u.containerClassName);return o.createElement("div",{className:a},n,o.createElement("div",{className:"p-carousel-items-content",style:{height:t},onTouchStart:re,onTouchMove:ae,onTouchEnd:le},o.createElement("div",{ref:k,className:"p-carousel-items-container",onTransitionEnd:ne},e)),r)}(),be=function(){if(u.showIndicators){for(var e=l.classNames("p-carousel-indicators p-reset",u.indicatorsContentClassName),t=[],n=0;n<B;n++)t.push(fe(n));return o.createElement("ul",{className:e},t)}return null}(),ye=u.header?o.createElement("div",{className:"p-carousel-header"},u.header):null,Ne=u.footer?o.createElement("div",{className:"p-carousel-footer"},u.footer):null;return o.createElement("div",s({ref:R,id:u.id,className:de,style:u.style},ve),ye,o.createElement("div",{className:he},ge,be),Ne)})));return E.displayName="CarouselItem",P.displayName="Carousel",e.Carousel=P,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.ripple,primereact.utils);