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