uikit
Version:
UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.
2 lines (1 loc) • 25.6 kB
JavaScript
/*! UIkit 3.21.6 | https://www.getuikit.com | (c) 2014 - 2024 YOOtheme | MIT License */(function(t,w){typeof exports=="object"&&typeof module<"u"?module.exports=w(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitlightbox",["uikit-util"],w):(t=typeof globalThis<"u"?globalThis:t||self,t.UIkitLightbox=w(t.UIkit.util))})(this,function(t){"use strict";function w(e,s=[]){try{return e?t.startsWith(e,"{")?JSON.parse(e):s.length&&!t.includes(e,":")?{[s[0]]:e}:e.split(";").reduce((i,n)=>{const[o,r]=n.split(/:(.*)/);return o&&!t.isUndefined(r)&&(i[o.trim()]=r.trim()),i},{}):{}}catch{return{}}}let E;function G(e){const s=t.on(e,"touchstart",n=>{if(n.targetTouches.length!==1||t.matches(n.target,'input[type="range"'))return;let o=t.getEventPos(n).y;const r=t.on(e,"touchmove",h=>{const a=t.getEventPos(h).y;a!==o&&(o=a,t.scrollParents(h.target).some(l=>{if(!e.contains(l))return!1;let{scrollHeight:c,clientHeight:f}=l;return f<c})||h.preventDefault())},{passive:!1});t.once(e,"scroll touchend touchcanel",r,{capture:!0})},{passive:!0});if(E)return s;E=!0;const{scrollingElement:i}=document;return t.css(i,{overflowY:CSS.supports("overflow","clip")?"clip":"hidden",touchAction:"none",paddingRight:t.width(window)-i.clientWidth||""}),()=>{E=!1,s(),t.css(i,{overflowY:"",touchAction:"",paddingRight:""})}}var X={connected(){t.addClass(this.$el,this.$options.id)}},Y={props:{container:Boolean},data:{container:!0},computed:{container({container:e}){return e===!0&&this.$container||e&&t.$(e)}}},J={props:{cls:Boolean,animation:"list",duration:Number,velocity:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,velocity:.2,origin:!1,transition:"ease",clsEnter:"uk-togglable-enter",clsLeave:"uk-togglable-leave"},computed:{hasAnimation:({animation:e})=>!!e[0],hasTransition:({animation:e})=>["slide","reveal"].some(s=>t.startsWith(e[0],s))},methods:{async toggleElement(e,s,i){try{return await Promise.all(t.toNodes(e).map(n=>{const o=t.isBoolean(s)?s:!this.isToggled(n);if(!t.trigger(n,`before${o?"show":"hide"}`,[this]))return Promise.reject();const r=(t.isFunction(i)?i:i===!1||!this.hasAnimation?Q:this.hasTransition?K:Z)(n,o,this),h=o?this.clsEnter:this.clsLeave;t.addClass(n,h),t.trigger(n,o?"show":"hide",[this]);const a=()=>{t.removeClass(n,h),t.trigger(n,o?"shown":"hidden",[this])};return r?r.then(a,()=>(t.removeClass(n,h),Promise.reject())):a()})),!0}catch{return!1}},isToggled(e=this.$el){return e=t.toNode(e),t.hasClass(e,this.clsEnter)?!0:t.hasClass(e,this.clsLeave)?!1:this.cls?t.hasClass(e,this.cls.split(" ")[0]):t.isVisible(e)},_toggle(e,s){if(!e)return;s=!!s;let i;this.cls?(i=t.includes(this.cls," ")||s!==t.hasClass(e,this.cls),i&&t.toggleClass(e,this.cls,t.includes(this.cls," ")?void 0:s)):(i=s===e.hidden,i&&(e.hidden=!s)),t.$$("[autofocus]",e).some(n=>t.isVisible(n)?n.focus()||!0:n.blur()),i&&t.trigger(e,"toggled",[s,this])}}};function Q(e,s,{_toggle:i}){return t.Animation.cancel(e),t.Transition.cancel(e),i(e,s)}async function K(e,s,{animation:i,duration:n,velocity:o,transition:r,_toggle:h}){var a;const[l="reveal",c="top"]=((a=i[0])==null?void 0:a.split("-"))||[],f=[["left","right"],["top","bottom"]],d=f[t.includes(f[0],c)?0:1],p=d[1]===c,u=["width","height"][f.indexOf(d)],b=`margin-${d[0]}`,A=`margin-${c}`;let k=t.dimensions(e)[u];const Ae=t.Transition.inProgress(e);await t.Transition.cancel(e),s&&h(e,!0);const _e=Object.fromEntries(["padding","border","width","height","minWidth","minHeight","overflowY","overflowX",b,A].map(V=>[V,e.style[V]])),y=t.dimensions(e),S=t.toFloat(t.css(e,b)),R=t.toFloat(t.css(e,A)),v=y[u]+R;!Ae&&!s&&(k+=R);const[_]=t.wrapInner(e,"<div>");t.css(_,{boxSizing:"border-box",height:y.height,width:y.width,...t.css(e,["overflow","padding","borderTop","borderRight","borderBottom","borderLeft","borderImage",A])}),t.css(e,{padding:0,border:0,minWidth:0,minHeight:0,[A]:0,width:y.width,height:y.height,overflow:"hidden",[u]:k});const U=k/v;n=(o*v+n)*(s?1-U:U);const W={[u]:s?v:0};p&&(t.css(e,b,v-k+S),W[b]=s?S:v+S),!p^l==="reveal"&&(t.css(_,b,-v+k),t.Transition.start(_,{[b]:s?0:-v},n,r));try{await t.Transition.start(e,W,n,r)}finally{t.css(e,_e),t.unwrap(_.firstChild),s||h(e,!1)}}function Z(e,s,i){const{animation:n,duration:o,_toggle:r}=i;return s?(r(e,!0),t.Animation.in(e,n[0],o,i.origin)):t.Animation.out(e,n[1]||n[0],o,i.origin).then(()=>r(e,!1))}const m=[];var ee={mixins:[X,Y,J],props:{selPanel:String,selClose:String,escClose:Boolean,bgClose:Boolean,stack:Boolean,role:String},data:{cls:"uk-open",escClose:!0,bgClose:!0,overlay:!0,stack:!1,role:"dialog"},computed:{panel:({selPanel:e},s)=>t.$(e,s),transitionElement(){return this.panel},bgClose({bgClose:e}){return e&&this.panel}},connected(){t.attr(this.panel||this.$el,"role",this.role),this.overlay&&t.attr(this.panel||this.$el,"aria-modal",!0)},beforeDisconnect(){t.includes(m,this)&&this.toggleElement(this.$el,!1,!1)},events:[{name:"click",delegate:({selClose:e})=>`${e},a[href*="#"]`,handler(e){const{current:s,defaultPrevented:i}=e,{hash:n}=s;!i&&n&&t.isSameSiteAnchor(s)&&!this.$el.contains(t.$(n))?this.hide():t.matches(s,this.selClose)&&(e.preventDefault(),this.hide())}},{name:"toggle",self:!0,handler(e){e.defaultPrevented||(e.preventDefault(),this.isToggled()===t.includes(m,this)&&this.toggle())}},{name:"beforeshow",self:!0,handler(e){if(t.includes(m,this))return!1;!this.stack&&m.length?(Promise.all(m.map(s=>s.hide())).then(this.show),e.preventDefault()):m.push(this)}},{name:"show",self:!0,handler(){this.stack&&t.css(this.$el,"zIndex",t.toFloat(t.css(this.$el,"zIndex"))+m.length);const e=[this.overlay&&se(this),this.overlay&&G(this.$el),this.bgClose&&ie(this),this.escClose&&ne(this)];t.once(this.$el,"hidden",()=>e.forEach(s=>s&&s()),{self:!0}),t.addClass(document.documentElement,this.clsPage)}},{name:"shown",self:!0,handler(){t.isFocusable(this.$el)||t.attr(this.$el,"tabindex","-1"),t.matches(this.$el,":focus-within")||this.$el.focus()}},{name:"hidden",self:!0,handler(){t.includes(m,this)&&m.splice(m.indexOf(this),1),t.css(this.$el,"zIndex",""),m.some(e=>e.clsPage===this.clsPage)||t.removeClass(document.documentElement,this.clsPage)}}],methods:{toggle(){return this.isToggled()?this.hide():this.show()},show(){return this.container&&t.parent(this.$el)!==this.container?(t.append(this.container,this.$el),new Promise(e=>requestAnimationFrame(()=>this.show().then(e)))):this.toggleElement(this.$el,!0,N)},hide(){return this.toggleElement(this.$el,!1,N)}}};function N(e,s,{transitionElement:i,_toggle:n}){return new Promise((o,r)=>t.once(e,"show hide",()=>{var h;(h=e._reject)==null||h.call(e),e._reject=r,n(e,s);const a=t.once(i,"transitionstart",()=>{t.once(i,"transitionend transitioncancel",o,{self:!0}),clearTimeout(l)},{self:!0}),l=setTimeout(()=>{a(),o()},te(t.css(i,"transitionDuration")))})).then(()=>delete e._reject)}function te(e){return e?t.endsWith(e,"ms")?t.toFloat(e):t.toFloat(e)*1e3:0}function se(e){return t.on(document,"focusin",s=>{t.last(m)===e&&!e.$el.contains(s.target)&&e.$el.focus()})}function ie(e){return t.on(document,t.pointerDown,({target:s})=>{t.last(m)!==e||e.overlay&&!e.$el.contains(s)||e.panel.contains(s)||t.once(document,`${t.pointerUp} ${t.pointerCancel} scroll`,({defaultPrevented:i,type:n,target:o})=>{!i&&n===t.pointerUp&&s===o&&e.hide()},!0)})}function ne(e){return t.on(document,"keydown",s=>{s.keyCode===27&&t.last(m)===e&&e.hide()})}function re(e,s="update"){e._connected&&e._updates.length&&(e._queued||(e._queued=new Set,t.fastdom.read(()=>{e._connected&&oe(e,e._queued),e._queued=null})),e._queued.add(s.type||s))}function oe(e,s){for(const{read:i,write:n,events:o=[]}of e._updates){if(!s.has("update")&&!o.some(h=>s.has(h)))continue;let r;i&&(r=i.call(e,e._data,s),r&&t.isPlainObject(r)&&t.assign(e._data,r)),n&&r!==!1&&t.fastdom.write(()=>{e._connected&&n.call(e,e._data,s)})}}function ae(e){return he(t.observeResize,e,"resize")}function he(e,s,i){return{observe:e,handler(){re(this,i)},...s}}var D={slide:{show(e){return[{transform:I(e*-100)},{transform:I()}]},percent(e){return ce(e)},translate(e,s){return[{transform:I(s*-100*e)},{transform:I(s*100*(1-e))}]}}};function ce(e){return Math.abs(new DOMMatrix(t.css(e,"transform")).m41/e.offsetWidth)}function I(e=0,s="%"){return e+=e?s:"",`translate3d(${e}, 0, 0)`}function C(e){return`scale3d(${e}, ${e}, 1)`}function de(e,s,i,{animation:n,easing:o}){const{percent:r,translate:h,show:a=t.noop}=n,l=a(i),{promise:c,resolve:f}=le();return{dir:i,show(d,p=0,z){const u=z?"linear":o;return d-=Math.round(d*t.clamp(p,-1,1)),this.translate(p),T(s,"itemin",{percent:p,duration:d,timing:u,dir:i}),T(e,"itemout",{percent:1-p,duration:d,timing:u,dir:i}),Promise.all([t.Transition.start(s,l[1],d,u),t.Transition.start(e,l[0],d,u)]).then(()=>{this.reset(),f()},t.noop),c},cancel(){return t.Transition.cancel([s,e])},reset(){for(const d in l[0])t.css([s,e],d,"")},async forward(d,p=this.percent()){return await this.cancel(),this.show(d,p,!0)},translate(d){this.reset();const p=h(d,i);t.css(s,p[1]),t.css(e,p[0]),T(s,"itemtranslatein",{percent:d,dir:i}),T(e,"itemtranslateout",{percent:1-d,dir:i})},percent(){return r(e||s,s,i)},getDistance(){return e==null?void 0:e.offsetWidth}}}function T(e,s,i){t.trigger(e,t.createEvent(s,!1,!1,i))}function le(){let e;return{promise:new Promise(s=>e=s),resolve:e}}var fe={props:{i18n:Object},data:{i18n:null},methods:{t(e,...s){var i,n,o;let r=0;return((o=((i=this.i18n)==null?void 0:i[e])||((n=this.$options.i18n)==null?void 0:n[e]))==null?void 0:o.replace(/%s/g,()=>s[r++]||""))||""}}},pe={props:{autoplay:Boolean,autoplayInterval:Number,pauseOnHover:Boolean},data:{autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},connected(){t.attr(this.list,"aria-live",this.autoplay?"off":"polite"),this.autoplay&&this.startAutoplay()},disconnected(){this.stopAutoplay()},update(){t.attr(this.slides,"tabindex","-1")},events:[{name:"visibilitychange",el:()=>document,filter:({autoplay:e})=>e,handler(){document.hidden?this.stopAutoplay():this.startAutoplay()}}],methods:{startAutoplay(){this.stopAutoplay(),this.interval=setInterval(()=>{this.stack.length||this.draggable&&t.matches(this.$el,":focus-within")&&!t.matches(this.$el,":focus")||this.pauseOnHover&&t.matches(this.$el,":hover")||this.show("next")},this.autoplayInterval)},stopAutoplay(){clearInterval(this.interval)}}};const x={passive:!1,capture:!0},O={passive:!0,capture:!0},me="touchstart mousedown",P="touchmove mousemove",M="touchend touchcancel mouseup click input scroll",L=e=>e.preventDefault();var ge={props:{draggable:Boolean},data:{draggable:!0,threshold:10},created(){for(const e of["start","move","end"]){const s=this[e];this[e]=i=>{const n=t.getEventPos(i).x*(t.isRtl?-1:1);this.prevPos=n===this.pos?this.prevPos:this.pos,this.pos=n,s(i)}}},events:[{name:me,passive:!0,delegate:({selList:e})=>`${e} > *`,handler(e){!this.draggable||this.parallax||!t.isTouch(e)&&ue(e.target)||e.target.closest(t.selInput)||e.button>0||this.length<2||this.start(e)}},{name:"dragstart",handler(e){e.preventDefault()}},{name:P,el:({list:e})=>e,handler:t.noop,...x}],methods:{start(){this.drag=this.pos,this._transitioner?(this.percent=this._transitioner.percent(),this.drag+=this._transitioner.getDistance()*this.percent*this.dir,this._transitioner.cancel(),this._transitioner.translate(this.percent),this.dragging=!0,this.stack=[]):this.prevIndex=this.index,t.on(document,P,this.move,x),t.on(document,M,this.end,O),t.css(this.list,"userSelect","none")},move(e){const s=this.pos-this.drag;if(s===0||this.prevPos===this.pos||!this.dragging&&Math.abs(s)<this.threshold)return;this.dragging||t.on(this.list,"click",L,x),e.cancelable&&e.preventDefault(),this.dragging=!0,this.dir=s<0?1:-1;let{slides:i,prevIndex:n}=this,o=Math.abs(s),r=this.getIndex(n+this.dir),h=B.call(this,n,r);for(;r!==n&&o>h;)this.drag-=h*this.dir,n=r,o-=h,r=this.getIndex(n+this.dir),h=B.call(this,n,r);this.percent=o/h;const a=i[n],l=i[r],c=this.index!==r,f=n===r;let d;for(const p of[this.index,this.prevIndex])t.includes([r,n],p)||(t.trigger(i[p],"itemhidden",[this]),f&&(d=!0,this.prevIndex=n));(this.index===n&&this.prevIndex!==n||d)&&t.trigger(i[this.index],"itemshown",[this]),c&&(this.prevIndex=n,this.index=r,f||(t.trigger(a,"beforeitemhide",[this]),t.trigger(a,"itemhide",[this])),t.trigger(l,"beforeitemshow",[this]),t.trigger(l,"itemshow",[this])),this._transitioner=this._translate(Math.abs(this.percent),a,!f&&l)},end(){if(t.off(document,P,this.move,x),t.off(document,M,this.end,O),this.dragging)if(this.dragging=null,this.index===this.prevIndex)this.percent=1-this.percent,this.dir*=-1,this._show(!1,this.index,!0),this._transitioner=null;else{const e=(t.isRtl?this.dir*(t.isRtl?1:-1):this.dir)<0==this.prevPos>this.pos;this.index=e?this.index:this.prevIndex,e&&(this.percent=1-this.percent),this.show(this.dir>0&&!e||this.dir<0&&e?"next":"previous",!0)}setTimeout(()=>t.off(this.list,"click",L,x)),t.css(this.list,{userSelect:""}),this.drag=this.percent=null}}};function B(e,s){return this._getTransitioner(e,e!==s&&s).getDistance()||this.slides[e].offsetWidth}function ue(e){return t.css(e,"userSelect")!=="none"&&t.toArray(e.childNodes).some(s=>s.nodeType===3&&s.textContent.trim())}t.memoize((e,s)=>{const i=Object.keys(s),n=i.concat(e).map(o=>[t.hyphenate(o),`data-${t.hyphenate(o)}`]).flat();return{attributes:i,filter:n}});let ve=1;function F(e,s=null){return(s==null?void 0:s.id)||`${e.$options.id}-${ve++}`}const g={TAB:9,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};var be={i18n:{next:"Next slide",previous:"Previous slide",slideX:"Slide %s",slideLabel:"%s of %s",role:"String"},data:{selNav:!1,role:"region"},computed:{nav:({selNav:e},s)=>t.$(e,s),navChildren(){return t.children(this.nav)},selNavItem:({attrItem:e})=>`[${e}],[data-${e}]`,navItems(e,s){return t.$$(this.selNavItem,s)}},watch:{nav(e,s){t.attr(e,"role","tablist"),this.padNavitems(),s&&this.$emit()},list(e){t.isTag(e,"ul")&&t.attr(e,"role","presentation")},navChildren(e){t.attr(e,"role","presentation"),this.padNavitems(),this.updateNav()},navItems(e){for(const s of e){const i=t.data(s,this.attrItem),n=t.$("a,button",s)||s;let o,r=null;if(t.isNumeric(i)){const h=t.toNumber(i),a=this.slides[h];a&&(a.id||(a.id=F(this,a)),r=a.id),o=this.t("slideX",t.toFloat(i)+1),t.attr(n,"role","tab")}else this.list&&(this.list.id||(this.list.id=F(this,this.list)),r=this.list.id),o=this.t(i);t.attr(n,{"aria-controls":r,"aria-label":t.attr(n,"aria-label")||o})}},slides(e){e.forEach((s,i)=>t.attr(s,{role:this.nav?"tabpanel":"group","aria-label":this.t("slideLabel",i+1,this.length),"aria-roledescription":this.nav?null:"slide"})),this.padNavitems()}},connected(){t.attr(this.$el,{role:this.role,"aria-roledescription":"carousel"})},update:[{write(){this.navItems.concat(this.nav).forEach(e=>e&&(e.hidden=!this.maxIndex)),this.updateNav()},events:["resize"]}],events:[{name:"click keydown",delegate:({selNavItem:e})=>e,filter:({parallax:e})=>!e,handler(e){e.target.closest("a,button")&&(e.type==="click"||e.keyCode===g.SPACE)&&(e.preventDefault(),this.show(t.data(e.current,this.attrItem)))}},{name:"itemshow",handler:"updateNav"},{name:"keydown",delegate:({selNavItem:e})=>e,filter:({parallax:e})=>!e,handler(e){const{current:s,keyCode:i}=e,n=t.data(s,this.attrItem);if(!t.isNumeric(n))return;let o=i===g.HOME?0:i===g.END?"last":i===g.LEFT?"previous":i===g.RIGHT?"next":-1;~o&&(e.preventDefault(),this.show(o))}}],methods:{updateNav(){const e=this.getValidIndex();for(const s of this.navItems){const i=t.data(s,this.attrItem),n=t.$("a,button",s)||s;if(t.isNumeric(i)){const r=t.toNumber(i)===e;t.toggleClass(s,this.clsActive,r),t.toggleClass(n,"uk-disabled",this.parallax),t.attr(n,{"aria-selected":r,tabindex:r&&!this.parallax?null:-1}),r&&n&&t.matches(t.parent(s),":focus-within")&&n.focus()}else t.toggleClass(s,"uk-invisible",this.finite&&(i==="previous"&&e===0||i==="next"&&e>=this.maxIndex))}},padNavitems(){if(!this.nav)return;const e=[];for(let s=0;s<this.length;s++){const i=`${this.attrItem}="${s}"`;e[s]=this.navChildren.findLast(n=>n.matches(`[${i}]`))||t.$(`<li ${i}><a href></a></li>`)}t.isEqual(e,this.navChildren)||t.html(this.nav,e)}}};const we="cubic-bezier(0.25, 0.46, 0.45, 0.94)",xe="cubic-bezier(0.165, 0.84, 0.44, 1)";var $e={mixins:[pe,ge,be,fe],props:{clsActivated:String,easing:String,index:Number,finite:Boolean,velocity:Number},data:()=>({easing:"ease",finite:!1,velocity:1,index:0,prevIndex:-1,stack:[],percent:0,clsActive:"uk-active",clsActivated:"",clsEnter:"uk-slide-enter",clsLeave:"uk-slide-leave",clsSlideActive:"uk-slide-active",Transitioner:!1,transitionOptions:{}}),connected(){this.prevIndex=-1,this.index=this.getValidIndex(this.$props.index),this.stack=[]},disconnected(){t.removeClass(this.slides,this.clsActive)},computed:{duration:({velocity:e},s)=>ye(s.offsetWidth/e),list:({selList:e},s)=>t.$(e,s),maxIndex(){return this.length-1},slides(){return t.children(this.list)},length(){return this.slides.length}},watch:{slides(e,s){s&&this.$emit()}},events:{itemshow({target:e}){t.addClass(e,this.clsEnter,this.clsSlideActive)},itemshown({target:e}){t.removeClass(e,this.clsEnter)},itemhide({target:e}){t.addClass(e,this.clsLeave)},itemhidden({target:e}){t.removeClass(e,this.clsLeave,this.clsSlideActive)}},methods:{show(e,s=!1){var i;if(this.dragging||!this.length||this.parallax)return;const{stack:n}=this,o=s?0:n.length,r=()=>{n.splice(o,1),n.length&&this.show(n.shift(),!0)};if(n[s?"unshift":"push"](e),!s&&n.length>1){n.length===2&&((i=this._transitioner)==null||i.forward(Math.min(this.duration,200)));return}const h=this.getIndex(this.index),a=t.hasClass(this.slides,this.clsActive)&&this.slides[h],l=this.getIndex(e,this.index),c=this.slides[l];if(a===c){r();return}if(this.dir=ke(e,h),this.prevIndex=h,this.index=l,a&&!t.trigger(a,"beforeitemhide",[this])||!t.trigger(c,"beforeitemshow",[this,a])){this.index=this.prevIndex,r();return}const f=this._show(a,c,s).then(()=>{a&&t.trigger(a,"itemhidden",[this]),t.trigger(c,"itemshown",[this]),n.shift(),this._transitioner=null,n.length&&requestAnimationFrame(()=>n.length&&this.show(n.shift(),!0))});return a&&t.trigger(a,"itemhide",[this]),t.trigger(c,"itemshow",[this]),f},getIndex(e=this.index,s=this.index){return t.clamp(t.getIndex(e,this.slides,s,this.finite),0,Math.max(0,this.maxIndex))},getValidIndex(e=this.index,s=this.prevIndex){return this.getIndex(e,s)},async _show(e,s,i){if(this._transitioner=this._getTransitioner(e,s,this.dir,{easing:i?s.offsetWidth<600?we:xe:this.easing,...this.transitionOptions}),!i&&!e){this._translate(1);return}const{length:n}=this.stack;return this._transitioner[n>1?"forward":"show"](n>1?Math.min(this.duration,75+75/(n-1)):this.duration,this.percent)},_translate(e,s=this.prevIndex,i=this.index){const n=this._getTransitioner(s===i?!1:s,i);return n.translate(e),n},_getTransitioner(e=this.prevIndex,s=this.index,i=this.dir||1,n=this.transitionOptions){return new this.Transitioner(t.isNumber(e)?this.slides[e]:e,t.isNumber(s)?this.slides[s]:s,i*(t.isRtl?-1:1),n)}}};function ke(e,s){return e==="next"?1:e==="previous"||e<s?-1:1}function ye(e){return .5*e+300}var Ie={mixins:[$e],props:{animation:String},data:{animation:"slide",clsActivated:"uk-transition-active",Animations:D,Transitioner:de},computed:{animation({animation:e,Animations:s}){return{...s[e]||s.slide,name:e}},transitionOptions(){return{animation:this.animation}}},observe:ae(),events:{beforeitemshow({target:e}){t.addClass(e,this.clsActive)},itemshown({target:e}){t.addClass(e,this.clsActivated)},itemhidden({target:e}){t.removeClass(e,this.clsActive,this.clsActivated)}}},j={...D,fade:{show(){return[{opacity:0},{opacity:1}]},percent(e){return 1-t.css(e,"opacity")},translate(e){return[{opacity:1-e},{opacity:e}]}},scale:{show(){return[{opacity:0,transform:C(1-.2)},{opacity:1,transform:C(1)}]},percent(e){return 1-t.css(e,"opacity")},translate(e){return[{opacity:1-e,transform:C(1-.2*e)},{opacity:e,transform:C(1-.2+.2*e)}]}}},Ce={mixins:[ee,Ie],functional:!0,props:{delayControls:Number,preload:Number,videoAutoplay:Boolean,template:String},data:()=>({preload:1,videoAutoplay:!1,delayControls:3e3,items:[],cls:"uk-open",clsPage:"uk-lightbox-page",selList:".uk-lightbox-items",attrItem:"uk-lightbox-item",selClose:".uk-close-large",selCaption:".uk-lightbox-caption",pauseOnHover:!1,velocity:2,Animations:j,template:'<div class="uk-lightbox uk-overflow-hidden"> <div class="uk-lightbox-items"></div> <div class="uk-lightbox-toolbar uk-position-top uk-text-right uk-transition-slide-top uk-transition-opaque"> <button class="uk-lightbox-toolbar-icon uk-close-large" type="button" uk-close></button> </div> <a class="uk-lightbox-button uk-position-center-left uk-position-medium uk-transition-fade" href uk-slidenav-previous uk-lightbox-item="previous"></a> <a class="uk-lightbox-button uk-position-center-right uk-position-medium uk-transition-fade" href uk-slidenav-next uk-lightbox-item="next"></a> <div class="uk-lightbox-toolbar uk-lightbox-caption uk-position-bottom uk-text-center uk-transition-slide-bottom uk-transition-opaque"></div> </div>'}),created(){const e=t.$(this.template),s=t.$(this.selList,e);this.items.forEach(()=>t.append(s,"<div>"));const i=t.$("[uk-close]",e),n=this.t("close");i&&n&&(i.dataset.i18n=JSON.stringify({label:n})),this.$mount(t.append(this.container,e))},events:[{name:`${t.pointerMove} ${t.pointerDown} keydown`,handler:"showControls"},{name:"click",self:!0,delegate:({selList:e})=>`${e} > *`,handler(e){e.defaultPrevented||this.hide()}},{name:"shown",self:!0,handler:"showControls"},{name:"hide",self:!0,handler(){this.hideControls(),t.removeClass(this.slides,this.clsActive),t.Transition.stop(this.slides)}},{name:"hidden",self:!0,handler(){this.$destroy(!0)}},{name:"keyup",el:()=>document,handler({keyCode:e}){if(!this.isToggled(this.$el)||!this.draggable)return;let s=-1;e===g.LEFT?s="previous":e===g.RIGHT?s="next":e===g.HOME?s=0:e===g.END&&(s="last"),~s&&this.show(s)}},{name:"beforeitemshow",handler(e){this.isToggled()||(this.draggable=!1,e.preventDefault(),this.toggleElement(this.$el,!0,!1),this.animation=j.scale,t.removeClass(e.target,this.clsActive),this.stack.splice(1,0,this.index))}},{name:"itemshow",handler(){t.html(t.$(this.selCaption,this.$el),this.getItem().caption||"");for(let e=-this.preload;e<=this.preload;e++)this.loadItem(this.index+e)}},{name:"itemshown",handler(){this.draggable=this.$props.draggable}},{name:"itemload",async handler(e,s){const{source:i,type:n,alt:o="",poster:r,attrs:h={}}=s;if(this.setItem(s,"<span uk-spinner></span>"),!i)return;let a;const l={allowfullscreen:"",style:"max-width: 100%; box-sizing: border-box;","uk-responsive":"","uk-video":`${this.videoAutoplay}`};if(n==="image"||i.match(/\.(avif|jpe?g|jfif|a?png|gif|svg|webp)($|\?)/i)){const c=$("img",{src:i,alt:o,...h});t.on(c,"load",()=>this.setItem(s,c)),t.on(c,"error",()=>this.setError(s))}else if(n==="video"||i.match(/\.(mp4|webm|ogv)($|\?)/i)){const c=$("video",{src:i,poster:r,controls:"",playsinline:"","uk-video":`${this.videoAutoplay}`,...h});t.on(c,"loadedmetadata",()=>this.setItem(s,c)),t.on(c,"error",()=>this.setError(s))}else if(n==="iframe"||i.match(/\.(html|php)($|\?)/i))this.setItem(s,$("iframe",{src:i,allowfullscreen:"",class:"uk-lightbox-iframe",...h}));else if(a=i.match(/\/\/(?:.*?youtube(-nocookie)?\..*?(?:[?&]v=|\/shorts\/)|youtu\.be\/)([\w-]{11})[&?]?(.*)?/))this.setItem(s,$("iframe",{src:`https://www.youtube${a[1]||""}.com/embed/${a[2]}${a[3]?`?${a[3]}`:""}`,width:1920,height:1080,...l,...h}));else if(a=i.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/))try{const{height:c,width:f}=await(await fetch(`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${encodeURI(i)}`,{credentials:"omit"})).json();this.setItem(s,$("iframe",{src:`https://player.vimeo.com/video/${a[1]}${a[2]?`?${a[2]}`:""}`,width:f,height:c,...l,...h}))}catch{this.setError(s)}}}],methods:{loadItem(e=this.index){const s=this.getItem(e);this.getSlide(s).childElementCount||t.trigger(this.$el,"itemload",[s])},getItem(e=this.index){return this.items[t.getIndex(e,this.slides)]},setItem(e,s){t.trigger(this.$el,"itemloaded",[this,t.html(this.getSlide(e),s)])},getSlide(e){return this.slides[this.items.indexOf(e)]},setError(e){this.setItem(e,'<span uk-icon="icon: bolt; ratio: 2"></span>')},showControls(){clearTimeout(this.controlsTimer),this.controlsTimer=setTimeout(this.hideControls,this.delayControls),t.addClass(this.$el,"uk-active","uk-transition-active")},hideControls(){t.removeClass(this.$el,"uk-active","uk-transition-active")}}};function $(e,s){const i=t.fragment(`<${e}>`);return t.attr(i,s),i}var H={install:Te,props:{toggle:String},data:{toggle:"a"},computed:{toggles:({toggle:e},s)=>t.$$(e,s)},watch:{toggles(e){this.hide();for(const s of e)t.isTag(s,"a")&&t.attr(s,"role","button")}},disconnected(){this.hide()},events:{name:"click",delegate:({toggle:e})=>`${e}:not(.uk-disabled)`,handler(e){e.defaultPrevented||(e.preventDefault(),this.show(e.current))}},methods:{show(e){const s=t.uniqueBy(this.toggles.map(q),"source");if(t.isElement(e)){const{source:i}=q(e);e=t.findIndex(s,({source:n})=>i===n)}return this.panel=this.panel||this.$create("lightboxPanel",{...this.$props,items:s}),t.on(this.panel.$el,"hidden",()=>this.panel=null),this.panel.show(e)},hide(){var e;return(e=this.panel)==null?void 0:e.hide()}}};function Te(e,s){e.lightboxPanel||e.component("lightboxPanel",Ce),t.assign(s.props,e.component("lightboxPanel").options.props)}function q(e){const s={};for(const i of["href","caption","type","poster","alt","attrs"])s[i==="href"?"source":i]=t.data(e,i);return s.attrs=w(s.attrs),s}return typeof window<"u"&&window.UIkit&&window.UIkit.component("lightbox",H),H});