splide-renderer.min.js 12 KB

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