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) 17.6 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/hooks"),a=require("primereact/icons/chevrondown"),o=require("primereact/icons/chevronleft"),i=require("primereact/icons/chevronright"),l=require("primereact/icons/chevronup"),c=require("primereact/ripple"),u=require("primereact/utils");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function p(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 m=p(e),f=s(t);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function v(e,t){if("object"!==d(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function b(e){var t=v(e,"string");return"symbol"===d(t)?t:String(t)}function h(){return h=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},h.apply(this,arguments)}function y(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 g(e){if(Array.isArray(e))return y(e)}function x(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function I(e,t){if(e){if("string"==typeof e)return y(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)?y(e,t):void 0}}function w(){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 N(e){return g(e)||x(e)||I(e)||w()}function O(e){if(Array.isArray(e))return e}function S(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return l}}function C(){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 E(e,t){return O(e)||S(e,t)||I(e,t)||C()}var P=n.ComponentBase.extend({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,prevIcon:null,nextIcon:null,responsiveOptions:null,orientation:"horizontal",verticalViewPortHeight:"300px",contentClassName:null,containerClassName:null,indicatorsContentClassName:null,onPageChange:null,children:void 0},css:{classes:{root:function(e){var t=e.isVertical;return u.classNames("p-carousel p-component",{"p-carousel-vertical":t,"p-carousel-horizontal":!t})},container:"p-carousel-container",content:"p-carousel-content",indicators:"p-carousel-indicators p-reset",header:"p-carousel-header",footer:"p-carousel-footer",itemsContainer:"p-carousel-items-container",itemsContent:"p-carousel-items-content",previousButton:function(e){return u.classNames("p-carousel-prev p-link",{"p-disabled":e.isDisabled})},previousButtonIcon:"p-carousel-prev-icon",nextButton:function(e){return u.classNames("p-carousel-next p-link",{"p-disabled":e.isDisabled})},nextButtonIcon:"p-carousel-next-icon",indicator:function(e){return u.classNames("p-carousel-indicator",{"p-highlight":e.isActive})},indicatorButton:"p-link",itemCloned:function(e){var t=e.itemProps;return u.classNames(t.className,"p-carousel-item",{"p-carousel-item-active":t.active,"p-carousel-item-start":t.start,"p-carousel-item-end":t.end})},item:function(e){var t=e.itemProps;return u.classNames(t.className,"p-carousel-item",{"p-carousel-item-active":t.active,"p-carousel-item-start":t.start,"p-carousel-item-end":t.end})}},styles:"\n@layer primereact {\n .p-carousel {\n display: flex;\n flex-direction: column;\n }\n \n .p-carousel-content {\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n \n .p-carousel-prev,\n .p-carousel-next {\n align-self: center;\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n position: relative;\n }\n \n .p-carousel-container {\n display: flex;\n flex-direction: row;\n }\n \n .p-carousel-items-content {\n overflow: hidden;\n width: 100%;\n }\n \n .p-carousel-items-container {\n display: flex;\n flex-direction: row;\n }\n \n .p-carousel-indicators {\n display: flex;\n flex-direction: row;\n justify-content: center;\n flex-wrap: wrap;\n }\n \n .p-carousel-indicator > button {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n \n /* Vertical */\n .p-carousel-vertical .p-carousel-container {\n flex-direction: column;\n }\n \n .p-carousel-vertical .p-carousel-items-container {\n flex-direction: column;\n height: 100%;\n }\n \n /* Keyboard Support */\n .p-items-hidden .p-carousel-item {\n visibility: hidden;\n }\n \n .p-items-hidden .p-carousel-item.p-carousel-item-active {\n visibility: visible;\n }\n}\n",inlineStyles:{itemsContent:function(e){return{height:e.height}}}}});function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function D(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach((function(t){var r,a,o;r=e,o=n[t],(a=b(a=t))in r?Object.defineProperty(r,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[a]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var k=m.memo((function(e){var t=r.useMergeProps(),n=e.ptm,a=e.cx,o=e.className&&"p-carousel-item-cloned"===e.className?"itemCloned":"item",i=e.template(e.item),l=t({className:a(o,{itemProps:e}),role:e.role,"aria-roledescription":e.ariaRoledescription,"aria-label":e.ariaLabel,"aria-hidden":e.ariaHidden,"data-p-carousel-item-active":e.active,"data-p-carousel-item-start":e.start,"data-p-carousel-item-end":e.end},n(o));return m.createElement("div",l,i)})),R=m.memo(m.forwardRef((function(e,s){var p=r.useMergeProps(),d=m.useContext(t.PrimeReactContext),v=P.getProps(e,d),b=E(m.useState(v.numVisible),2),y=b[0],g=b[1],x=E(m.useState(v.numScroll),2),I=x[0],w=x[1],O=E(m.useState(v.page*v.numScroll*-1),2),S=O[0],C=O[1],j=E(m.useState(v.page),2),R=j[0],H=j[1],A=P.setMetaData({props:v,state:{numVisible:y,numScroll:I,totalShiftedItems:S,page:R}}),B=A.ptm,T=A.cx,M=A.sx,V=A.isUnstyled;n.useHandleStyle(P.css.styles,V,{name:"carousel"});var q=m.useRef(null),L=m.useRef(null),U=m.useRef(0),_=m.useRef(!!v.autoplayInterval),z=m.useRef(""),X=m.useRef(20),Y=m.useRef(null),J=m.useRef(null),K=m.useRef(null),F=m.useRef(null),W=m.useRef(!1),$=m.useRef(null),G=r.usePrevious(I),Q=r.usePrevious(y),Z=r.usePrevious(v.value),ee=r.usePrevious(v.page),te="vertical"===v.orientation,ne=v.circular||!!v.autoplayInterval,re=ne&&v.value&&v.value.length>=y,ae=v.value?Math.max(Math.ceil((v.value.length-y)/I)+1,0):0,oe=ae&&v.autoplayInterval&&_.current,ie=v.onPageChange&&!oe,le=ie?v.page:R,ce=E(r.useResizeListener({listener:function(){se()},when:v.responsiveOptions}),1)[0],ue=function(e,t){var n=S;null!=t?(n=I*t*-1,re&&(n-=y),W.current=!1):(n+=I*e,W.current&&(n+=U.current-I*e,W.current=!1),t=Math.abs(Math.floor((re?n+y:n)/I)));re&&R===ae-1&&-1===e?(n=-1*(v.value.length+y),t=0):re&&0===R&&1===e?(n=0,t=ae-1):t===ae-1&&U.current>0&&(n+=-1*U.current-I*e,W.current=!0),L.current&&(!V()&&u.DomHandler.removeClass(L.current,"p-items-hidden"),De(n),L.current.style.transition="transform 500ms ease 0s"),ke(t),C(n)},se=function(){if(L.current&&$.current){for(var e=window.innerWidth,t={numVisible:v.numVisible,numScroll:v.numScroll},n=0;n<$.current.length;n++){var r=$.current[n];parseInt(r.breakpoint,10)>=e&&(t=r)}if(I!==t.numScroll){var a=Math.floor(le*I/t.numScroll),o=t.numScroll*a*-1;re&&(o-=t.numVisible),C(o),w(t.numScroll),ke(a)}y!==t.numVisible&&g(t.numVisible)}},pe=function(e,t){(ne||0!==le)&&ue(1,t),_.current=!1,e.cancelable&&e.preventDefault()},me=function(e,t){(ne||le<ae-1)&&ue(-1,t),_.current=!1,e.cancelable&&e.preventDefault()},fe=function(e,t){t>le?me(e,t):t<le&&pe(e,t)},de=function(e){L.current&&"transform"===e.propertyName&&(u.DomHandler.addClass(L.current,"p-items-hidden"),L.current.style.transition="",0!==R&&R!==ae-1||!re||De(S))},ve=function(e){var t=e.changedTouches[0];Y.current={x:t.pageX,y:t.pageY}},be=function(e){e.cancelable&&e.preventDefault()},he=function(e){var t=e.changedTouches[0];ye(e,te?t.pageY-Y.current.y:t.pageX-Y.current.x)},ye=function(e,t){Math.abs(t)>X.current&&(t<0?me(e):pe(e))},ge=function(e){switch(e.code){case"ArrowRight":xe();break;case"ArrowLeft":Ie();break;case"Home":we(),e.preventDefault();break;case"End":Ne(),e.preventDefault();break;case"ArrowUp":case"ArrowDown":e.preventDefault();break;case"Tab":Oe()}},xe=function(){var e=N(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),t=Se();Ce(t,t+1===e.length?e.length-1:t+1)},Ie=function(){var e=Se();Ce(e,e-1<=0?0:e-1)},we=function(){var e=Se();Ce(e,0)},Ne=function(){var e=N(u.DomHandler.find(F.current,'[data-pc-section="indicator"]r')),t=Se();Ce(t,e.length-1)},Oe=function(){var e=N(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),t=e.findIndex((function(e){return!0===u.DomHandler.getAttribute(e,"data-p-highlight")})),n=u.DomHandler.findSingle(F.current,'[data-pc-section="indicator"] > button[tabindex="0"]'),r=e.findIndex((function(e){return e===n.parentElement}));e[r].children[0].tabIndex="-1",e[t].children[0].tabIndex="0"},Se=function(){var e=N(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),t=u.DomHandler.findSingle(F.current,'[data-pc-section="indicator"] > button[tabindex="0"]');return e.findIndex((function(e){return e===t.parentElement}))},Ce=function(e,t){var n=N(u.DomHandler.find(F.current,'[data-pc-section="indicator"]'));n[e].children[0].tabIndex="-1",n[t].children[0].tabIndex="0",n[t].children[0].focus()},Ee=function(){v.autoplayInterval>0&&(J.current=setInterval((function(){ue(-1,R===ae-1?0:R+1)}),v.autoplayInterval))},Pe=function(){J.current&&clearInterval(J.current)},je=function(){K.current||(K.current=u.DomHandler.createInlineStyle(d&&d.nonce||f.default.nonce,d&&d.styleContainer));var e="\n .p-carousel[".concat(z.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/y,"%\n }\n ");if(v.responsiveOptions){var t=u.ObjectUtils.localeComparator(d&&d.locale||f.default.locale);$.current=N(v.responsiveOptions),$.current.sort((function(e,n){return u.ObjectUtils.sort(e.breakpoint,n.breakpoint,-1,t,d&&d.nullSortOrder||f.default.nullSortOrder)}));for(var n=0;n<$.current.length;n++){var r=$.current[n];e+="\n @media screen and (max-width: ".concat(r.breakpoint,") {\n .p-carousel[").concat(z.current,"] .p-carousel-item {\n flex: 1 0 ").concat(100/r.numVisible,"%\n }\n }\n ")}se()}K.current.innerHTML=e},De=function(e){L.current&&(L.current.style.transform=te?"translate3d(0, ".concat(e*(100/y),"%, 0)"):"translate3d(".concat(e*(100/y),"%, 0, 0)"))},ke=function(e){!ie&&H(e),v.onPageChange&&v.onPageChange({page:e})};m.useImperativeHandle(s,(function(){return{props:v,startAutoplay:Ee,stopAutoplay:Pe,getElement:function(){return q.current}}})),r.useMountEffect((function(){q.current&&(z.current=u.UniqueComponentId(),q.current.setAttribute(z.current,"")),K.current||(se(),De(S),ce())})),r.useUpdateEffect((function(){var e=!1,t=S;if(je(),v.autoplayInterval&&Pe(),G!==I||Q!==y||v.value&&Z&&Z.length!==v.value.length){U.current=(v.value.length-y)%I;var n=le;0!==ae&&n>=ae&&(ke(n=ae-1),e=!0),t=n*I*-1,re&&(t-=y),n===ae-1&&U.current>0?(t+=-1*U.current+I,W.current=!0):W.current=!1,t!==S&&(C(t),e=!0),De(t)}return re&&(0===R?t=-1*y:0===t&&(t=-1*v.value.length,U.current>0&&(W.current=!0)),t!==S&&(C(t),e=!0)),ee!==v.page&&(v.page>ee&&v.page<=ae-1?ue(-1,v.page):v.page<ee&&ue(1,v.page)),!e&&oe&&Ee(),function(){v.autoplayInterval&&Pe(),K.current=u.DomHandler.removeInlineStyle(K.current)}}));var Re,He,Ae,Be,Te,Me,Ve,qe=function(){if(v.value&&v.value.length){var e=null,n=null;if(re){var r=null;e=(r=v.value.slice(-1*y)).map((function(e,t){return m.createElement(k,{key:t+"_scloned",className:"p-carousel-item-cloned",template:v.itemTemplate,item:e,active:-1*S===v.value.length+y,start:0===t,end:t===r.length-1,ptm:B,cx:T})})),n=(r=v.value.slice(0,y)).map((function(e,t){return m.createElement(k,{key:t+"_fcloned",className:"p-carousel-item-cloned",template:v.itemTemplate,item:e,active:0===S,start:0===t,end:t===r.length-1,ptm:B,cx:T})}))}var a=v.value.map((function(e,n){var r=re?-1*(S+y):-1*S,a=r+y-1,o=r<=n&&a>=n,i=r===n,l=a===n,c=r>n||a<n||void 0,u=t.ariaLabel("slideNumber",{slideNumber:n}),s=t.localeOption("aria")?t.localeOption("aria").slide:void 0;return m.createElement(k,{key:n,template:v.itemTemplate,item:e,active:o,start:i,ariaHidden:c,ariaLabel:u,ariaRoledescription:s,role:"group",end:l,ptm:B,cx:T})}));return m.createElement(m.Fragment,null,e,a,n)}},Le=function(){if(v.showNavigators){var e=(!ne||v.value&&v.value.length<y)&&0===le,n=p({className:T("previousButtonIcon")},B("previousButtonIcon")),r=u.IconUtils.getJSXIcon(te?v.prevIcon||m.createElement(l.ChevronUpIcon,n):v.prevIcon||m.createElement(o.ChevronLeftIcon,n),D({},n),{props:v}),a=p({type:"button",className:T("previousButton",{isDisabled:e}),onClick:function(e){return pe(e)},disabled:e,"aria-label":t.localeOption("aria")?t.localeOption("aria").previousPageLabel:void 0,"data-pc-group-section":"navigator"},B("previousButton"));return m.createElement("button",a,r,m.createElement(c.Ripple,null))}return null},Ue=function(){if(v.showNavigators){var e=(!ne||v.value&&v.value.length<y)&&(le===ae-1||0===ae),n=p({className:T("nextButtonIcon")},B("nextButtonIcon")),r=u.IconUtils.getJSXIcon(te?v.nextIcon||m.createElement(a.ChevronDownIcon,n):v.nextIcon||m.createElement(i.ChevronRightIcon,n),D({},n),{props:v}),o=p({type:"button",className:T("nextButton",{isDisabled:e}),onClick:function(e){return me(e)},disabled:e,"aria-label":t.localeOption("aria")?t.localeOption("aria").nextPageLabel:void 0,"data-pc-group-section":"navigator"},B("nextButton"));return m.createElement("button",o,r,m.createElement(c.Ripple,null))}return null},_e=function(e){var n,r=le===e,a=function(e){return B(e,{context:{active:r}})},o="carousel-indicator-"+e,i=p({className:T("indicator",{isActive:r}),"data-p-highlight":r},a("indicator")),l=p({type:"button",className:T("indicatorButton"),tabIndex:le===e?"0":"-1",onClick:function(t){return fe(t,e)},"aria-label":(n=e+1,t.ariaLabel("pageLabel",{page:n})),"aria-current":le===e?"page":void 0},a("indicatorButton"));return m.createElement("li",h({},i,{key:o}),m.createElement("button",l,m.createElement(c.Ripple,null)))},ze=(Re=qe(),He=te?v.verticalViewPortHeight:"auto",Ae=Le(),Be=Ue(),Te=p({className:T("itemsContent"),style:M("itemsContent",{height:He}),onTouchStart:function(e){return ve(e)},onTouchMove:function(e){return be(e)},onTouchEnd:function(e){return he(e)}},B("itemsContent")),Me=p({className:u.classNames(v.containerClassName,T("container")),"aria-live":_.current?"polite":"off"},B("container")),Ve=p({className:T("itemsContainer"),onTransitionEnd:de},B("itemsContainer")),m.createElement("div",Me,Ae,m.createElement("div",Te,m.createElement("div",h({ref:L},Ve),Re)),Be)),Xe=function(){if(v.showIndicators){for(var e=[],t=0;t<ae;t++)e.push(_e(t));var n=p({ref:F,className:u.classNames(v.indicatorsContentClassName,T("indicators")),onKeyDown:ge},B("indicators"));return m.createElement("ul",n,e)}return null}(),Ye=function(){if(v.header){var e=p({className:T("header")},B("header"));return m.createElement("div",e,v.header)}return null}(),Je=function(){if(v.footer){var e=p({className:T("footer")},B("footer"));return m.createElement("div",e,v.footer)}return null}(),Ke=p({id:v.id,ref:q,className:u.classNames(v.className,T("root",{isVertical:te})),style:v.style,role:"region"},P.getOtherProps(v),B("root")),Fe=p({className:u.classNames(v.contentClassName,T("content"))},B("content"));return m.createElement("div",Ke,Ye,m.createElement("div",Fe,ze,Xe),Je)})));k.displayName="CarouselItem",R.displayName="Carousel",exports.Carousel=R;