splide-renderer.min.js 12 KB

12
  1. !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).SplideRenderer=e()}(this,function(){"use strict";var r="rtl",o="ttb",a={width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:["ArrowUp","ArrowRight"],ArrowRight:["ArrowDown","ArrowLeft"]};function n(t,e,n){return{resolve:function(t,e,i){var s=(i=i||n.direction)!==r||e?i===o?0:-1:1;return a[t]&&a[t][s]||t.replace(/width|left|right/i,function(t,e){t=a[t.toLowerCase()][s]||t;return 0<e?t.charAt(0).toUpperCase()+t.slice(1):t})},orient:function(t){return t*(n.direction===r?1:-1)}}}var i="splide",s=i,u=i+"__track",l=i+"__list",c=i+"__slide",h=c+"--clone",t=i+"__arrow",e=i+"__pagination",d="is-active",f={type:"slide",role:"region",speed:400,perPage:1,cloneStatus:!0,arrows:!0,pagination:!0,paginationKeyboard:!0,interval:5e3,pauseOnHover:!0,pauseOnFocus:!0,resetProgress:!0,easing:"cubic-bezier(0.25, 1, 0.5, 1)",drag:!0,direction:"ltr",trimSpace:!0,focusableNodes:"a, button, textarea, input, select, iframe",live:!0,classes:{slide:c,clone:h,arrows:i+"__arrows",arrow:t,prev:t+"--prev",next:t+"--next",pagination:e,page:e+"__page",spinner:i+"__spinner"},i18n:{prev:"Previous slide",next:"Next slide",first:"Go to first slide",last:"Go to last slide",slideX:"Go to slide %s",pageX:"Go to page %s",play:"Start autoplay",pause:"Pause autoplay",carousel:"carousel",slide:"slide",select:"Select a slide to show",slideLabel:"%s of %s"},reducedMotion:{speed:0,rewindSpeed:0,autoplay:"pause"}};function p(t,e,i){return Array.prototype.slice.call(t,e,i)}function v(t){return t.bind.apply(t,[null].concat(p(arguments,1)))}function g(t,e){return typeof e===t}function y(t){return null!==t&&g("object",t)}var b=Array.isArray,m=(v(g,"function"),v(g,"string"));function S(t){return b(t)?t:[t]}function w(t,e){S(t).forEach(e)}function C(t,e){return t.push.apply(t,S(e)),t}function x(t,e){return t instanceof HTMLElement&&(t.msMatchesSelector||t.matches).call(t,e)}function _(t,e){return e?(i=e,e=(e=t)?p(e.children):[],(i?e.filter(function(t){return x(t,i)}):e)[0]):t.firstElementChild;var i}v(g,"undefined");var k=Object.keys;function E(t,e,i){if(t)for(var s=k(t),s=i?s.reverse():s,n=0;n<s.length;n++){var r=s[n];if("__proto__"!==r&&!1===e(t[r],r))break}}function A(s){return p(arguments,1).forEach(function(i){E(i,function(t,e){s[e]=i[e]})}),s}function L(i){return p(arguments,1).forEach(function(t){E(t,function(t,e){b(t)?i[e]=t.slice():y(t)?i[e]=L({},y(i[e])?i[e]:{},t):i[e]=t})}),i}function P(t){w(t,function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})}function V(t){return m(t)?t:t?t+"px":""}function T(t,e){if(!t)throw new Error("["+i+"] "+(e||""))}Math.min;var H=Math.max;Math.floor,Math.ceil,Math.abs;function W(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}var D={};function O(){var a=[];function i(t,i,s){w(t,function(e){e&&w(i,function(t){t.split(" ").forEach(function(t){t=t.split(".");s(e,t[0],t[1])})})})}return{bind:function(t,e,r,o){i(t,e,function(t,e,i){var s="addEventListener"in t,n=s?t.removeEventListener.bind(t,e,r,o):t.removeListener.bind(t,r);s?t.addEventListener(e,r,o):t.addListener(r),a.push([t,e,i,r,n])})},unbind:function(t,e,n){i(t,e,function(e,i,s){a=a.filter(function(t){return!!(t[0]!==e||t[1]!==i||t[2]!==s||n&&t[3]!==n)||(t[4](),!1)})})},dispatch:function(t,e,i){var s;return"function"==typeof CustomEvent?s=new CustomEvent(e,{bubbles:!0,detail:i}):(s=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!1,i),t.dispatchEvent(s),s},destroy:function(){a.forEach(function(t){t[4]()}),a.length=0}}}function R(t){var i=t?t.event.bus:document.createDocumentFragment(),s=O();return t&&t.event.on("destroy",s.destroy),A(s,{bus:i,on:function(t,e){s.bind(i,S(t).join(" "),function(t){e.apply(e,b(t.detail)?t.detail:[])})},off:v(s.unbind,i),emit:function(t){s.dispatch(i,t,p(arguments,1))}})}var M={listTag:"ul",slideTag:"li"},j=function(){function t(t,e){this.styles={},this.id=t,this.options=e}var e=t.prototype;return e.rule=function(t,e,i,s){s=this.styles[s=s||"default"]=this.styles[s]||{};(s[t]=s[t]||{})[e]=i},e.build=function(){var i=this,e="";return this.styles.default&&(e+=this.buildSelectors(this.styles.default)),Object.keys(this.styles).sort(function(t,e){return"min"===i.options.mediaQuery?+t-+e:+e-+t}).forEach(function(t){"default"!==t&&(e=(e+="@media screen and (max-width: "+t+"px) {")+i.buildSelectors(i.styles[t])+"}")}),e},e.buildSelectors=function(t){var i=this,s="";return E(t,function(t,e){e=("#"+i.id+" "+e).trim(),s+=e+" {",E(t,function(t,e){!t&&0!==t||(s+=e+": "+t+";")}),s+="}"}),s},t}();return function(){function t(t,e,i,s){this.slides=[],this.options={},this.breakpoints=[],L(f,s||{}),L(L(this.options,f),e||{}),this.contents=t,this.config=A({},M,i||{}),this.id=this.config.id||""+(s="splide")+((s=D[s]=(D[s]||0)+1)<10?"0"+s:""+s),this.Style=new j(this.id,this.options),this.Direction=n(0,0,this.options),T(this.contents.length,"Provide at least 1 content."),this.init()}t.clean=function(t){var e,i=R(t).on,s=t.root,t=(t=s,(e="."+h)?p(t.querySelectorAll(e)):[]);i("mounted",function(){P(_(s,"style"))}),P(t)};var e=t.prototype;return e.init=function(){this.parseBreakpoints(),this.initSlides(),this.registerRootStyles(),this.registerTrackStyles(),this.registerSlideStyles(),this.registerListStyles()},e.initSlides=function(){var i=this;C(this.slides,this.contents.map(function(t,e){(t=m(t)?{html:t}:t).styles=t.styles||{},t.attrs=t.attrs||{},i.cover(t);e=i.options.classes.slide+" "+(0===e?d:"");return A(t.attrs,{class:(e+" "+(t.attrs.class||"")).trim(),style:i.buildStyles(t.styles)}),t})),this.isLoop()&&this.generateClones(this.slides)},e.registerRootStyles=function(){var i=this;this.breakpoints.forEach(function(t){var e=t[0],t=t[1];i.Style.rule(" ","max-width",V(t.width),e)})},e.registerTrackStyles=function(){var i=this,s=this.Style,n="."+u;this.breakpoints.forEach(function(t){var e=t[0],t=t[1];s.rule(n,i.resolve("paddingLeft"),i.cssPadding(t,!1),e),s.rule(n,i.resolve("paddingRight"),i.cssPadding(t,!0),e),s.rule(n,"height",i.cssTrackHeight(t),e)})},e.registerListStyles=function(){var i=this,s=this.Style,n="."+l;this.breakpoints.forEach(function(t){var e=t[0],t=t[1];s.rule(n,"transform",i.buildTranslate(t),e),i.cssSlideHeight(t)||s.rule(n,"aspect-ratio",i.cssAspectRatio(t),e)})},e.registerSlideStyles=function(){var i=this,s=this.Style,n="."+c;this.breakpoints.forEach(function(t){var e=t[0],t=t[1];s.rule(n,"width",i.cssSlideWidth(t),e),s.rule(n,"height",i.cssSlideHeight(t)||"100%",e),s.rule(n,i.resolve("marginRight"),V(t.gap)||"0px",e),s.rule(n+" > img","display",t.cover?"none":"inline",e)})},e.buildTranslate=function(t){var e=this.Direction,i=e.resolve,e=e.orient,s=[];return s.push(this.cssOffsetClones(t)),s.push(this.cssOffsetGaps(t)),this.isCenter(t)&&(s.push(this.buildCssValue(e(-50),"%")),s.push.apply(s,this.cssOffsetCenter(t))),s.filter(Boolean).map(function(t){return"translate"+i("X")+"("+t+")"}).join(" ")},e.cssOffsetClones=function(t){var e,i=this.Direction,s=i.resolve,i=i.orient,n=this.getCloneCount();return this.isFixedWidth(t)?(e=(s=this.parseCssValue(t[s("fixedWidth")])).value,s=s.unit,this.buildCssValue(i(e)*n,s)):i(100*n/t.perPage)+"%"},e.cssOffsetCenter=function(t){var e,i,s=this.Direction,n=s.resolve,s=s.orient;return this.isFixedWidth(t)?(e=(n=this.parseCssValue(t[n("fixedWidth")])).value,n=n.unit,[this.buildCssValue(s(e/2),n)]):(e=t.perPage,n=t.gap,(t=[]).push(s(50/e)+"%"),n&&(i=(n=this.parseCssValue(n)).value,n=n.unit,t.push(this.buildCssValue(s((i/e-i)/2),n))),t)},e.cssOffsetGaps=function(t){var e,i,s,n=this.getCloneCount();return n&&t.gap?(e=this.Direction.orient,i=(s=this.parseCssValue(t.gap)).value,s=s.unit,this.isFixedWidth(t)?this.buildCssValue(e(i*n),s):(t=t.perPage,this.buildCssValue(e(n/t*i),s))):""},e.resolve=function(t){return W(this.Direction.resolve(t))},e.cssPadding=function(t,e){t=t.padding,e=this.Direction.resolve(e?"right":"left",!0);return t&&V(t[e]||(y(t)?0:t))||"0px"},e.cssTrackHeight=function(t){var e="";return this.isVertical()&&(T(e=this.cssHeight(t),'"height" is missing.'),e="calc("+e+" - "+this.cssPadding(t,!1)+" - "+this.cssPadding(t,!0)+")"),e},e.cssHeight=function(t){return V(t.height)},e.cssSlideWidth=function(t){return t.autoWidth?"":V(t.fixedWidth)||(this.isVertical()?"":this.cssSlideSize(t))},e.cssSlideHeight=function(t){return V(t.fixedHeight)||(this.isVertical()?t.autoHeight?"":this.cssSlideSize(t):this.cssHeight(t))},e.cssSlideSize=function(t){var e=V(t.gap);return"calc((100%"+(e&&" + "+e)+")/"+(t.perPage||1)+(e&&" - "+e)+")"},e.cssAspectRatio=function(t){t=t.heightRatio;return t?""+1/t:""},e.buildCssValue=function(t,e){return""+t+e},e.parseCssValue=function(t){return m(t)?{value:parseFloat(t)||0,unit:t.replace(/\d*(\.\d*)?/,"")||"px"}:{value:t,unit:"px"}},e.parseBreakpoints=function(){var i=this,t=this.options.breakpoints;this.breakpoints.push(["default",this.options]),t&&E(t,function(t,e){i.breakpoints.push([e,L(L({},i.options),t)])})},e.isFixedWidth=function(t){return!!t[this.Direction.resolve("fixedWidth")]},e.isLoop=function(){return"loop"===this.options.type},e.isCenter=function(t){if("center"===t.focus){if(this.isLoop())return!0;if("slide"===this.options.type)return!this.options.trimSpace}return!1},e.isVertical=function(){return this.options.direction===o},e.buildClasses=function(){var t=this.options;return[s,s+"--"+t.type,s+"--"+t.direction,t.drag&&s+"--draggable",t.isNavigation&&s+"--nav",d,!this.config.hidden&&"is-rendered"].filter(Boolean).join(" ")},e.buildAttrs=function(t){var i="";return E(t,function(t,e){i+=t?" "+W(e)+'="'+t+'"':""}),i.trim()},e.buildStyles=function(t){var i="";return E(t,function(t,e){i+=" "+W(e)+":"+t+";"}),i.trim()},e.renderSlides=function(){var e=this,i=this.config.slideTag;return this.slides.map(function(t){return"<"+i+" "+e.buildAttrs(t.attrs)+">"+(t.html||"")+"</"+i+">"}).join("")},e.cover=function(t){var e=t.styles,t=t.html,t=void 0===t?"":t;this.options.cover&&!this.options.lazyLoad&&(t=t.match(/<img.*?src\s*=\s*(['"])(.+?)\1.*?>/))&&t[2]&&(e.background="center/cover no-repeat url('"+t[2]+"')")},e.generateClones=function(s){for(var n=this.options.classes,r=this.getCloneCount(),t=s.slice();t.length<r;)C(t,t);C(t.slice(-r).reverse(),t.slice(0,r)).forEach(function(t,e){var i=A({},t.attrs,{class:t.attrs.class+" "+n.clone}),t=A({},t,{attrs:i});e<r?s.unshift(t):s.push(t)})},e.getCloneCount=function(){var t;return this.isLoop()?(t=this.options).clones||H.apply(void 0,this.breakpoints.map(function(t){return t[1].perPage}))*((t.flickMaxPages||1)+1):0},e.renderArrows=function(){var t="";return(t+='<div class="'+this.options.classes.arrows+'">')+this.renderArrow(!0)+this.renderArrow(!1)+"</div>"},e.renderArrow=function(t){var e=this.options,i=e.classes,e=e.i18n,i={class:i.arrow+" "+(t?i.prev:i.next),type:"button",ariaLabel:t?e.prev:e.next};return"<button "+this.buildAttrs(i)+'><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40"><path d="'+(this.options.arrowPath||"m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z")+'" /></svg></button>'},e.html=function(){var t=this.config,e=t.rootClass,i=t.listTag,s=t.arrows,n=t.beforeTrack,r=t.afterTrack,o=t.slider,a=t.beforeSlider,t=t.afterSlider,u="";return u=(u+='<div id="'+this.id+'" class="'+this.buildClasses()+" "+(e||"")+'">')+("<style>"+this.Style.build()+"</style>"),o&&(u=u+(a||"")+'<div class="splide__slider">'),u+=n||"",s&&(u+=this.renderArrows()),u=(u=(u=u+'<div class="splide__track">'+("<"+i+' class="splide__list">'))+this.renderSlides()+("</"+i+">"))+"</div>"+(r||""),o&&(u=u+"</div>"+(t||"")),u+="</div>"},t}()});
  2. //# sourceMappingURL=splide-renderer.min.js.map