UNPKG

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