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
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=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 n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var m=p(e),f=s(n);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,n){if("object"!=d(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function b(e){var n=v(e,"string");return"symbol"==d(n)?n:n+""}function h(e,n,t){return(n=b(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},g.apply(null,arguments)}function y(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function x(e){if(Array.isArray(e))return y(e)}function I(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function N(e,n){if(e){if("string"==typeof e)return y(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,n):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 O(e){return x(e)||I(e)||N(e)||w()}function S(e){if(Array.isArray(e))return e}function C(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,o,i,l=[],c=!0,u=!1;try{if(o=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=o.call(t)).done)&&(l.push(r.value),l.length!==n);c=!0);}catch(e){u=!0,a=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(u)throw a}}return l}}function E(){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 P(e,n){return S(e)||C(e,n)||N(e,n)||E()}var j=t.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 n=e.isVertical;return u.classNames("p-carousel p-component",{"p-carousel-vertical":n,"p-carousel-horizontal":!n})},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 n=e.itemProps;return u.classNames(n.className,"p-carousel-item",{"p-carousel-item-active":n.active,"p-carousel-item-start":n.start,"p-carousel-item-end":n.end})},item:function(e){var n=e.itemProps;return u.classNames(n.className,"p-carousel-item",{"p-carousel-item-active":n.active,"p-carousel-item-start":n.start,"p-carousel-item-end":n.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 D(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function k(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?D(Object(t),!0).forEach((function(n){h(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):D(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var R=m.memo((function(e){var n=r.useMergeProps(),t=e.ptm,a=e.cx,o=e.className&&"p-carousel-item-cloned"===e.className?"itemCloned":"item",i=e.template(e.item),l=n({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},t(o));return m.createElement("div",l,i)})),H=m.memo(m.forwardRef((function(e,s){var p=r.useMergeProps(),d=m.useContext(n.PrimeReactContext),v=j.getProps(e,d),b=P(m.useState(v.numVisible),2),h=b[0],y=b[1],x=P(m.useState(v.numScroll),2),I=x[0],N=x[1],w=P(m.useState(v.page*v.numScroll*-1),2),S=w[0],C=w[1],E=P(m.useState(v.page),2),D=E[0],H=E[1],A=j.setMetaData({props:v,state:{numVisible:h,numScroll:I,totalShiftedItems:S,page:D}}),B=A.ptm,T=A.cx,M=A.sx,V=A.isUnstyled;t.useHandleStyle(j.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(h),Z=r.usePrevious(v.value),ee=r.usePrevious(v.page),ne="vertical"===v.orientation,te=v.circular||!!v.autoplayInterval,re=te&&v.value&&v.value.length>=h,ae=v.value?Math.max(Math.ceil((v.value.length-h)/I)+1,0):0,oe=ae&&v.autoplayInterval&&_.current,ie=v.onPageChange&&!oe,le=ie?v.page:D,ce=P(r.useResizeListener({listener:function(){se()},when:v.responsiveOptions}),1)[0],ue=function(e,n){var t=S;null!=n?(t=I*n*-1,re&&(t-=h),W.current=!1):(t+=I*e,W.current&&(t+=U.current-I*e,W.current=!1),n=Math.abs(Math.floor((re?t+h:t)/I)));re&&D===ae-1&&-1===e?(t=-1*(v.value.length+h),n=0):re&&0===D&&1===e?(t=0,n=ae-1):n===ae-1&&U.current>0&&(t+=-1*U.current-I*e,W.current=!0),L.current&&(!V()&&u.DomHandler.removeClass(L.current,"p-items-hidden"),De(t),L.current.style.transition="transform 500ms ease 0s"),ke(n),C(t)},se=function(){if(L.current&&$.current){for(var e=window.innerWidth,n={numVisible:v.numVisible,numScroll:v.numScroll},t=0;t<$.current.length;t++){var r=$.current[t];parseInt(r.breakpoint,10)>=e&&(n=r)}if(I!==n.numScroll){var a=Math.floor(le*I/n.numScroll),o=n.numScroll*a*-1;re&&(o-=n.numVisible),C(o),N(n.numScroll),ke(a)}h!==n.numVisible&&y(n.numVisible)}},pe=function(e,n){(te||0!==le)&&ue(1,n),_.current=!1,e.cancelable&&e.preventDefault()},me=function(e,n){(te||le<ae-1)&&ue(-1,n),_.current=!1,e.cancelable&&e.preventDefault()},fe=function(e,n){n>le?me(e,n):n<le&&pe(e,n)},de=function(e){L.current&&"transform"===e.propertyName&&(u.DomHandler.addClass(L.current,"p-items-hidden"),L.current.style.transition="",0!==D&&D!==ae-1||!re||De(S))},ve=function(e){var n=e.changedTouches[0];Y.current={x:n.pageX,y:n.pageY}},be=function(e){e.cancelable&&e.preventDefault()},he=function(e){var n=e.changedTouches[0];ge(e,ne?n.pageY-Y.current.y:n.pageX-Y.current.x)},ge=function(e,n){Math.abs(n)>X.current&&(n<0?me(e):pe(e))},ye=function(e){switch(e.code){case"ArrowRight":xe();break;case"ArrowLeft":Ie();break;case"Home":Ne(),e.preventDefault();break;case"End":we(),e.preventDefault();break;case"ArrowUp":case"ArrowDown":e.preventDefault();break;case"Tab":Oe()}},xe=function(){var e=O(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),n=Se();Ce(n,n+1===e.length?e.length-1:n+1)},Ie=function(){var e=Se();Ce(e,e-1<=0?0:e-1)},Ne=function(){var e=Se();Ce(e,0)},we=function(){var e=O(u.DomHandler.find(F.current,'[data-pc-section="indicator"]r')),n=Se();Ce(n,e.length-1)},Oe=function(){var e=O(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),n=e.findIndex((function(e){return!0===u.DomHandler.getAttribute(e,"data-p-highlight")})),t=u.DomHandler.findSingle(F.current,'[data-pc-section="indicator"] > button[tabindex="0"]'),r=e.findIndex((function(e){return e===t.parentElement}));e[r].children[0].tabIndex="-1",e[n].children[0].tabIndex="0"},Se=function(){var e=O(u.DomHandler.find(F.current,'[data-pc-section="indicator"]')),n=u.DomHandler.findSingle(F.current,'[data-pc-section="indicator"] > button[tabindex="0"]');return e.findIndex((function(e){return e===n.parentElement}))},Ce=function(e,n){var t=O(u.DomHandler.find(F.current,'[data-pc-section="indicator"]'));t[e].children[0].tabIndex="-1",t[n].children[0].tabIndex="0",t[n].children[0].focus()},Ee=function(){v.autoplayInterval>0&&(J.current=setInterval((function(){ue(-1,D===ae-1?0:D+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/h,"%\n }\n ");if(v.responsiveOptions){var n=u.ObjectUtils.localeComparator(d&&d.locale||f.default.locale);$.current=O(v.responsiveOptions),$.current.sort((function(e,t){return u.ObjectUtils.sort(e.breakpoint,t.breakpoint,-1,n,d&&d.nullSortOrder||f.default.nullSortOrder)}));for(var t=0;t<$.current.length;t++){var r=$.current[t];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=ne?"translate3d(0, ".concat(e*(100/h),"%, 0)"):"translate3d(".concat(e*(100/h),"%, 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,n=S;if(je(),v.autoplayInterval&&Pe(),G!==I||Q!==h||v.value&&Z&&Z.length!==v.value.length){U.current=(v.value.length-h)%I;var t=le;0!==ae&&t>=ae&&(ke(t=ae-1),e=!0),n=t*I*-1,re&&(n-=h),t===ae-1&&U.current>0?(n+=-1*U.current+I,W.current=!0):W.current=!1,n!==S&&(C(n),e=!0),De(n)}return re&&(0===D?n=-1*h:0===n&&(n=-1*v.value.length,U.current>0&&(W.current=!0)),n!==S&&(C(n),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,t=null;if(re){var r=null;e=(r=v.value.slice(-1*h)).map((function(e,n){return m.createElement(R,{key:n+"_scloned",className:"p-carousel-item-cloned",template:v.itemTemplate,item:e,active:-1*S===v.value.length+h,start:0===n,end:n===r.length-1,ptm:B,cx:T})})),t=(r=v.value.slice(0,h)).map((function(e,n){return m.createElement(R,{key:n+"_fcloned",className:"p-carousel-item-cloned",template:v.itemTemplate,item:e,active:0===S,start:0===n,end:n===r.length-1,ptm:B,cx:T})}))}var a=v.value.map((function(e,t){var r=re?-1*(S+h):-1*S,a=r+h-1,o=r<=t&&a>=t,i=r===t,l=a===t,c=r>t||a<t||void 0,u=n.ariaLabel("slideNumber",{slideNumber:t}),s=n.localeOption("aria")?n.localeOption("aria").slide:void 0;return m.createElement(R,{key:t,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,t)}},Le=function(){if(v.showNavigators){var e=(!te||v.value&&v.value.length<h)&&0===le,t=p({className:T("previousButtonIcon")},B("previousButtonIcon")),r=u.IconUtils.getJSXIcon(ne?v.prevIcon||m.createElement(l.ChevronUpIcon,t):v.prevIcon||m.createElement(o.ChevronLeftIcon,t),k({},t),{props:v}),a=p({type:"button",className:T("previousButton",{isDisabled:e}),onClick:function(e){return pe(e)},disabled:e,"aria-label":n.localeOption("aria")?n.localeOption("aria").prevPageLabel: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=(!te||v.value&&v.value.length<h)&&(le===ae-1||0===ae),t=p({className:T("nextButtonIcon")},B("nextButtonIcon")),r=u.IconUtils.getJSXIcon(ne?v.nextIcon||m.createElement(a.ChevronDownIcon,t):v.nextIcon||m.createElement(i.ChevronRightIcon,t),k({},t),{props:v}),o=p({type:"button",className:T("nextButton",{isDisabled:e}),onClick:function(e){return me(e)},disabled:e,"aria-label":n.localeOption("aria")?n.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 t,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(n){return fe(n,e)},"aria-label":(t=e+1,n.ariaLabel("pageLabel",{page:t})),"aria-current":le===e?"page":void 0},a("indicatorButton"));return m.createElement("li",g({},i,{key:o}),m.createElement("button",l,m.createElement(c.Ripple,null)))},ze=(Re=qe(),He=ne?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",g({ref:L},Ve),Re)),Be)),Xe=function(){if(v.showIndicators){for(var e=[],n=0;n<ae;n++)e.push(_e(n));var t=p({ref:F,className:u.classNames(v.indicatorsContentClassName,T("indicators")),onKeyDown:ye},B("indicators"));return m.createElement("ul",t,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:ne})),style:v.style,role:"region"},j.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)})));R.displayName="CarouselItem",H.displayName="Carousel",exports.Carousel=H;
;