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) • 15.5 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/csstransition"),a=require("primereact/hooks"),r=require("primereact/portal"),i=require("primereact/ripple"),l=require("primereact/utils");function o(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 a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=c(e),s=o(t);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},m.apply(this,arguments)}function d(e){if(Array.isArray(e))return e}function p(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,l,o=[],c=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);c=!0);}catch(e){u=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw r}}return o}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function f(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}function h(){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 g(e,t){return d(e)||p(e,t)||f(e,t)||h()}var I={defaultProps:{__TYPE:"Galleria",id:null,value:null,activeIndex:0,fullScreen:!1,item:null,thumbnail:null,indicator:null,caption:null,className:null,style:null,header:null,footer:null,numVisible:3,responsiveOptions:null,showItemNavigators:!1,showThumbnailNavigators:!0,showItemNavigatorsOnHover:!1,changeItemOnIndicatorHover:!1,circular:!1,autoPlay:!1,transitionInterval:4e3,showThumbnails:!0,thumbnailsPosition:"bottom",verticalThumbnailViewPortHeight:"300px",showIndicators:!1,showIndicatorsOnItem:!1,indicatorsPosition:"bottom",baseZIndex:0,transitionOptions:null,onItemChange:null,children:void 0},getProps:function(e){return l.ObjectUtils.getMergedProps(e,I.defaultProps)},getOtherProps:function(e){return l.ObjectUtils.getDiffProps(e,I.defaultProps)}},b=u.memo(u.forwardRef((function(e,t){var n=function(){e.slideShowActive&&e.stopSlideShow&&e.stopSlideShow()},r=function(t){n(),e.onActiveItemChange({index:e.circular&&0===e.activeItemIndex?e.value.length-1:0!==e.activeItemIndex?e.activeItemIndex-1:0}),t&&t.cancelable&&t.preventDefault()},o=function(t){n(),e.onActiveItemChange({index:e.circular&&e.value.length-1===e.activeItemIndex?0:e.activeItemIndex+1}),t&&t.cancelable&&t.preventDefault()},c=function(t){n(),e.onActiveItemChange({index:t})},s=function(t){e.changeItemOnIndicatorHover&&(n(),e.onActiveItemChange({index:t}))},m=function(t,a){13===t.which&&(n(),e.onActiveItemChange({index:a}))};a.useMountEffect((function(){e.autoPlay&&e.startSlideShow()}));var d=function(t){var n="p-galleria-indicator-"+t,a=l.classNames("p-galleria-indicator",{"p-highlight":e.activeItemIndex===t}),r=e.indicator&&e.indicator(t);return r||(r=u.createElement("button",{type:"button",tabIndex:-1,className:"p-link"},u.createElement(i.Ripple,null))),u.createElement("li",{className:a,key:n,tabIndex:0,onClick:function(){return c(t)},onMouseEnter:function(){return s(t)},onKeyDown:function(e){return m(e,t)}},r)},p=e.itemTemplate&&e.itemTemplate(e.value[e.activeItemIndex]),v=function(){if(e.showItemNavigators){var t=!e.circular&&0===e.activeItemIndex,n=l.classNames("p-galleria-item-prev p-galleria-item-nav p-link",{"p-disabled":t});return u.createElement("button",{type:"button",className:n,onClick:r,disabled:t},u.createElement("span",{className:"p-galleria-item-prev-icon pi pi-chevron-left"}),u.createElement(i.Ripple,null))}return null}(),f=function(){if(e.showItemNavigators){var t=!e.circular&&e.activeItemIndex===e.value.length-1,n=l.classNames("p-galleria-item-next p-galleria-item-nav p-link",{"p-disabled":t});return u.createElement("button",{type:"button",className:n,onClick:o,disabled:t},u.createElement("span",{className:"p-galleria-item-next-icon pi pi-chevron-right"}),u.createElement(i.Ripple,null))}return null}(),h=function(){if(e.caption){var t=e.caption(e.value[e.activeItemIndex]);return u.createElement("div",{className:"p-galleria-caption"},t)}return null}(),g=function(){if(e.showIndicators){for(var t=l.classNames("p-galleria-indicators p-reset",e.indicatorsContentClassName),n=[],a=0;a<e.value.length;a++)n.push(d(a));return u.createElement("ul",{className:t},n)}return null}();return u.createElement("div",{ref:t,className:"p-galleria-item-wrapper"},u.createElement("div",{className:"p-galleria-item-container"},v,u.createElement("div",{className:"p-galleria-item"},p),f,h),g)})));function x(e){if(Array.isArray(e))return v(e)}function y(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}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.")}b.displayName="GalleriaItem";var E=u.memo((function(e){var t=e.active?0:null,n=e.template&&e.template(e.item),a=l.classNames("p-galleria-thumbnail-item",{"p-galleria-thumbnail-item-current":e.current,"p-galleria-thumbnail-item-active":e.active,"p-galleria-thumbnail-item-start":e.start,"p-galleria-thumbnail-item-end":e.end},e.className);return u.createElement("div",{className:a},u.createElement("div",{className:"p-galleria-thumbnail-item-content",tabIndex:t,onClick:function(t){e.onItemClick({originalEvent:t,index:e.index})},onKeyDown:function(t){13===t.which&&e.onItemClick({originalEvent:t,index:e.index})}},n))})),N=u.memo(u.forwardRef((function(e,t){var n=g(u.useState(e.numVisible),2),r=n[0],o=n[1],c=g(u.useState(0),2),m=c[0],d=c[1],p=u.useRef(null),v=u.useRef(null),h=u.useRef(""),I=u.useRef(null),b=u.useRef(null),N=a.usePrevious(r),S=a.usePrevious(e.activeItemIndex),O=g(a.useResizeListener({listener:function(){G()},when:e.responsiveOptions}),1)[0],C=function(t){var n=m+t;t<0&&-1*n+r>e.value.length-1?n=r-e.value.length:t>0&&n>0&&(n=0),e.circular&&(t<0&&e.value.length-1===e.activeItemIndex?n=0:t>0&&0===e.activeItemIndex&&(n=r-e.value.length)),p.current&&(l.DomHandler.removeClass(p.current,"p-items-hidden"),p.current.style.transform=e.isVertical?"translate3d(0, ".concat(n*(100/r),"%, 0)"):"translate3d(".concat(n*(100/r),"%, 0, 0)"),p.current.style.transition="transform 500ms ease 0s"),d(n)},P=function(){e.slideShowActive&&e.stopSlideShow&&e.stopSlideShow()},T=function(){var e=Math.floor(r/2);return r%2?e:e-1},A=function(t){P();var n=0!==e.activeItemIndex?e.activeItemIndex-1:0;r-(n+m)-1>T()&&(-1*m!=0||e.circular)&&C(1),e.onActiveItemChange({index:e.circular&&0===e.activeItemIndex?e.value.length-1:n}),t.cancelable&&t.preventDefault()},k=function(t){P();var n=e.activeItemIndex+1;n+m>T()&&(-1*m<U()-1||e.circular)&&C(-1),e.onActiveItemChange({index:e.circular&&e.value.length-1===e.activeItemIndex?0:n}),t.cancelable&&t.preventDefault()},H=function(t){P();var n=t.index;if(n!==e.activeItemIndex){var a=n+m,i=0;n<e.activeItemIndex?(i=r-a-1-T())>0&&-1*m!=0&&C(i):(i=T()-a)<0&&-1*m<U()-1&&C(i),e.onActiveItemChange({index:n})}},V=function(e){p.current&&"transform"===e.propertyName&&(l.DomHandler.addClass(p.current,"p-items-hidden"),p.current.style.transition="")},j=function(e){var t=e.changedTouches[0];v.current={x:t.pageX,y:t.pageY}},R=function(e){e.cancelable&&e.preventDefault()},D=function(t){var n=t.changedTouches[0];M(t,e.isVertical?n.pageY-v.current.y:n.pageX-v.current.x)},M=function(e,t){t<0?k(e):A(e)},U=function(){return e.value.length>r?e.value.length-r+1:0},q=function(){I.current||(I.current=l.DomHandler.createInlineStyle(s.default.nonce));var t,n="\n .p-galleria-thumbnail-items[".concat(h.current,"] .p-galleria-thumbnail-item {\n flex: 1 0 ").concat(100/r,"%\n }\n ");if(e.responsiveOptions){b.current=x(t=e.responsiveOptions)||y(t)||f(t)||w(),b.current.sort((function(e,t){return l.ObjectUtils.sort(e.breakpoint,t.breakpoint,-1,s.default.locale,s.default.nullSortOrder)}));for(var a=0;a<b.current.length;a++){var i=b.current[a];n+="\n @media screen and (max-width: ".concat(i.breakpoint,") {\n .p-galleria-thumbnail-items[").concat(h.current,"] .p-galleria-thumbnail-item {\n flex: 1 0 ").concat(100/i.numVisible,"%\n }\n }\n ")}}I.current.innerHTML=n},G=function(){if(p.current&&b.current){for(var t=window.innerWidth,n={numVisible:e.numVisible},a=0;a<b.current.length;a++){var i=b.current[a];parseInt(i.breakpoint,10)>=t&&(n=i)}r!==n.numVisible&&o(n.numVisible)}};a.useMountEffect((function(){p.current&&(h.current=l.UniqueComponentId(),p.current.setAttribute(h.current,"")),q(),G(),O()})),a.useUpdateEffect((function(){var t=m;N===r&&S===e.activeItemIndex||((t=e.activeItemIndex<=T()?0:e.value.length-r+T()<e.activeItemIndex?r-e.value.length:e.value.length-r<e.activeItemIndex&&r%2==0?-1*e.activeItemIndex+T()+1:-1*e.activeItemIndex+T())!==m&&d(t),p.current.style.transform=e.isVertical?"translate3d(0, ".concat(t*(100/r),"%, 0)"):"translate3d(".concat(t*(100/r),"%, 0, 0)"),S!==e.activeItemIndex&&(l.DomHandler.removeClass(p.current,"p-items-hidden"),p.current.style.transition="transform 500ms ease 0s"))}));var Z,_,z,Y,K=function(){if(e.showThumbnailNavigators){var t=!e.circular&&0===e.activeItemIndex||e.value.length<=r,n=l.classNames("p-galleria-thumbnail-prev p-link",{"p-disabled":t}),a=l.classNames("p-galleria-thumbnail-prev-icon pi",{"pi-chevron-left":!e.isVertical,"pi-chevron-up":e.isVertical});return u.createElement("button",{className:n,onClick:A,disabled:t},u.createElement("span",{className:a}),u.createElement(i.Ripple,null))}return null},L=function(){if(e.showThumbnailNavigators){var t=!e.circular&&e.activeItemIndex===e.value.length-1||e.value.length<=r,n=l.classNames("p-galleria-thumbnail-next p-link",{"p-disabled":t}),a=l.classNames("p-galleria-thumbnail-next-icon pi",{"pi-chevron-right":!e.isVertical,"pi-chevron-down":e.isVertical});return u.createElement("button",{className:n,onClick:k,disabled:t},u.createElement("span",{className:a}),u.createElement(i.Ripple,null))}return null},X=(Z=e.value.map((function(t,n){var a=-1*m,i=a+r-1;return u.createElement(E,{key:n,index:n,template:e.itemTemplate,item:t,active:a<=n&&i>=n,start:a===n,end:i===n,onItemClick:H,current:e.activeItemIndex===n})})),_=e.isVertical?e.contentHeight:"",z=K(),Y=L(),u.createElement("div",{className:"p-galleria-thumbnail-container"},z,u.createElement("div",{className:"p-galleria-thumbnail-items-container",style:{height:_}},u.createElement("div",{ref:p,className:"p-galleria-thumbnail-items",onTransitionEnd:V,onTouchStart:j,onTouchMove:R,onTouchEnd:D},Z)),Y));return u.createElement("div",{className:"p-galleria-thumbnail-wrapper"},X)})));E.displayName="GalleriaThumbnailItem",N.displayName="GalleriaThumbnails";var S=u.memo(u.forwardRef((function(e,o){var c=I.getProps(e),d=g(u.useState(!1),2),p=d[0],v=d[1],f=g(u.useState(c.numVisible),2),h=f[0],x=f[1],y=g(u.useState(!1),2),w=y[0],E=y[1],S=g(u.useState(c.activeIndex),2),O=S[0],C=S[1],P=u.useRef(null),T=u.useRef(null),A=u.useRef(null),k=c.onItemChange?c.activeIndex:O,H="left"===c.thumbnailsPosition||"right"===c.thumbnailsPosition;a.useInterval((function(){V({index:c.circular&&c.value.length-1===k?0:k+1})}),c.transitionInterval,w);var V=function(e){c.onItemChange?c.onItemChange(e):C(e.index)},j=function(){v(!0)},R=function(){v(!1)},D=function(){l.DomHandler.addClass(document.body,"p-overflow-hidden")},M=function(){l.ZIndexUtils.set("modal",A.current,s.default.autoZIndex,c.baseZIndex||s.default.zIndex.modal),l.DomHandler.addMultipleClasses(A.current,"p-component-overlay p-component-overlay-enter")},U=function(){c.onShow&&c.onShow()},q=function(){l.DomHandler.removeClass(document.body,"p-overflow-hidden"),l.DomHandler.addClass(A.current,"p-component-overlay-leave")},G=function(){l.ZIndexUtils.clear(A.current),c.onHide&&c.onHide()},Z=function(){return w},_=function(){E(!0)},z=function(){E(!1)},Y=function(e,t){var n=["top","left","bottom","right"].find((function(e){return e===t}));return n?"".concat(e,"-").concat(n):""};u.useEffect((function(){c.value&&c.value.length<h&&x(c.value.length)}),[c.value,h]),u.useEffect((function(){x(c.numVisible)}),[c.numVisible]),a.useUnmountEffect((function(){w&&z(),l.ZIndexUtils.clear(A.current)})),u.useImperativeHandle(o,(function(){return{props:c,show:j,hide:R,isAutoPlayActive:Z,startSlideShow:_,stopSlideShow:z,getElement:function(){return P.current},getPreviewContent:function(){return T.current}}}));return l.ObjectUtils.isNotEmpty(c.value)&&function(){var e,a,o,d,v,f,g,x=(e=I.getOtherProps(c),a=c.showThumbnails&&Y("p-galleria-thumbnails",c.thumbnailsPosition),o=c.showIndicators&&Y("p-galleria-indicators",c.indicatorsPosition),d=l.classNames("p-galleria p-component",c.className,{"p-galleria-fullscreen":c.fullScreen,"p-galleria-indicator-onitem":c.showIndicatorsOnItem,"p-galleria-item-nav-onhover":c.showItemNavigatorsOnHover&&!c.fullScreen,"p-input-filled":"filled"===s.default.inputStyle,"p-ripple-disabled":!1===s.default.ripple},a,o),v=c.fullScreen&&u.createElement("button",{type:"button",className:"p-galleria-close p-link","aria-label":t.localeOption("close"),onClick:R},u.createElement("span",{className:"p-galleria-close-icon pi pi-times","aria-hidden":"true"}),u.createElement(i.Ripple,null)),f=c.header?u.createElement("div",{className:"p-galleria-header"},c.header):null,g=c.footer?u.createElement("div",{className:"p-galleria-footer"},c.footer):null,u.createElement("div",m({ref:P,id:c.id,className:d,style:c.style},e),v,f,u.createElement("div",{className:"p-galleria-content"},u.createElement(b,{ref:T,value:c.value,activeItemIndex:k,onActiveItemChange:V,itemTemplate:c.item,circular:c.circular,caption:c.caption,showIndicators:c.showIndicators,changeItemOnIndicatorHover:c.changeItemOnIndicatorHover,indicator:c.indicator,showItemNavigators:c.showItemNavigators,autoPlay:c.autoPlay,slideShowActive:w,startSlideShow:_,stopSlideShow:z}),c.showThumbnails&&u.createElement(N,{value:c.value,activeItemIndex:k,onActiveItemChange:V,itemTemplate:c.thumbnail,numVisible:h,responsiveOptions:c.responsiveOptions,circular:c.circular,isVertical:H,contentHeight:c.verticalThumbnailViewPortHeight,showThumbnailNavigators:c.showThumbnailNavigators,autoPlay:c.autoPlay,slideShowActive:w,stopSlideShow:z})),g));if(c.fullScreen){var y=l.classNames("p-galleria-mask",{"p-galleria-visible":p});return u.createElement(r.Portal,{element:u.createElement("div",{ref:A,className:y},u.createElement(n.CSSTransition,{nodeRef:P,classNames:"p-galleria",in:p,timeout:{enter:150,exit:150},options:c.transitionOptions,unmountOnExit:!0,onEnter:D,onEntering:M,onEntered:U,onExit:q,onExited:G},x))})}return x}()})));S.displayName="Galleria",exports.Galleria=S;