@egjs/flicking
Version:
Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
3 lines • 87 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@egjs/component"),require("@egjs/axes"),require("@egjs/imready")):"function"==typeof define&&define.amd?define(["@egjs/component","@egjs/axes","@egjs/imready"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Flicking=t(e.eg.Component,e.eg.Axes,e.eg.ImReady)}(this,function(e,t,n){"use strict";var i=Object.defineProperty,r=Object.defineProperties,s=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,c=Reflect.get,d=Math.pow,u=(e,t,n)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))l.call(t,n)&&u(e,n,t[n]);if(o)for(var n of o(t))h.call(t,n)&&u(e,n,t[n]);return e},_=(e,t)=>r(e,s(t)),p=(e,t,n)=>new Promise((i,r)=>{var s=e=>{try{a(n.next(e))}catch(t){r(t)}},o=e=>{try{a(n.throw(e))}catch(t){r(t)}},a=e=>e.done?i(e.value):Promise.resolve(e.value).then(s,o);a((n=n.apply(e,t)).next())});const m={PREV:"prev",CENTER:"center",NEXT:"next"},f={PREV:"PREV",NEXT:"NEXT",NONE:null},v={SNAP:"snap",FREE_SCROLL:"freeScroll",STRICT:"strict"},E={VIEWPORT:"flicking-viewport",CAMERA:"flicking-camera",VERTICAL:"vertical",HIDDEN:"flicking-hidden",DEFAULT_VIRTUAL:"flicking-panel"},P={LINEAR:"linear",BOUND:"bound"},x={LTR:"ltr",RTL:"rtl"},O={HORIZONTAL:"horizontal",VERTICAL:"vertical"},T=Object.freeze(Object.defineProperty({__proto__:null,ALIGN:m,CIRCULAR_FALLBACK:P,CLASS:E,DIRECTION:f,MOVE_DIRECTION:O,MOVE_TYPE:v,ORDER:x},Symbol.toStringTag,{value:"Module"})),b={READY:"ready",BEFORE_RESIZE:"beforeResize",AFTER_RESIZE:"afterResize",HOLD_START:"holdStart",HOLD_END:"holdEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",WILL_CHANGE:"willChange",CHANGED:"changed",WILL_RESTORE:"willRestore",RESTORED:"restored",SELECT:"select",NEED_PANEL:"needPanel",VISIBLE_CHANGE:"visibleChange",REACH_EDGE:"reachEdge",PANEL_CHANGE:"panelChange"},R=Object.freeze(Object.defineProperty({__proto__:null,EVENTS:b},Symbol.toStringTag,{value:"Module"}));class I{get index(){return this._index}get position(){return this._pos}get panel(){return this._panel}constructor(e){const{index:t,position:n,panel:i}=e;this._index=t,this._pos=n,this._panel=i}}const A={WRONG_TYPE:{code:0,message:(e,t)=>`${e}(${typeof e}) is not a ${t.map(e=>`"${e}"`).join(" or ")}.`},ELEMENT_NOT_FOUND:{code:1,message:e=>`Element with selector "${e}" not found.`},VAL_MUST_NOT_NULL:{code:2,message:(e,t)=>`${t} should be provided. Given: ${e}`},NOT_ATTACHED_TO_FLICKING:{code:3,message:'This module is not attached to the Flicking instance. "init()" should be called first.'},WRONG_OPTION:{code:4,message:(e,t)=>`Option "${e}" is not in correct format, given: ${t}`},INDEX_OUT_OF_RANGE:{code:5,message:(e,t,n)=>`Index "${e}" is out of range: should be between ${t} and ${n}.`},POSITION_NOT_REACHABLE:{code:6,message:e=>`Position "${e}" is not reachable.`},TRANSFORM_NOT_SUPPORTED:{code:7,message:"Browser does not support CSS transform."},STOP_CALLED_BY_USER:{code:8,message:"Event stop() is called by user."},ANIMATION_INTERRUPTED:{code:9,message:"Animation is interrupted by user input."},ANIMATION_ALREADY_PLAYING:{code:10,message:"Animation is already playing."},NOT_ALLOWED_IN_FRAMEWORK:{code:11,message:"This behavior is not allowed in the frameworks like React, Vue, or Angular."},NOT_INITIALIZED:{code:12,message:"Flicking is not initialized yet, call init() first."},NO_ACTIVE:{code:13,message:"There's no active panel that Flicking has selected. This may be due to the absence of any panels."},NOT_ALLOWED_IN_VIRTUAL:{code:14,message:"This behavior is not allowed when the virtual option is enabled"}},S=Object.keys(A).reduce((e,t)=>(e[t]=A[t].code,e),{}),N=Object.keys(A).reduce((e,t)=>(e[t]=A[t].message,e),{}),C=(e,...t)=>(t.forEach(t=>{Object.keys(t).forEach(n=>{e[n]=t[n]})}),e),z=(e,t)=>{let n=null;if(U(e)){const i=(t||document).querySelector(e);if(!i)throw new oe(N.ELEMENT_NOT_FOUND(e),S.ELEMENT_NOT_FOUND);n=i}else e&&e.nodeType===Node.ELEMENT_NODE&&(n=e);if(!n)throw new oe(N.WRONG_TYPE(e,["HTMLElement","string"]),S.WRONG_TYPE);return n},y=(e,t)=>{if(null==e)throw new oe(N.VAL_MUST_NOT_NULL(e,t),S.VAL_MUST_NOT_NULL)},w=(e,t,n)=>Math.max(Math.min(e,n),t),k=e=>{if(!e)throw new oe(N.NOT_ATTACHED_TO_FLICKING,S.NOT_ATTACHED_TO_FLICKING);return e},D=e=>[].slice.call(e),L=(e,t)=>{let n;if(U(e))switch(e){case m.PREV:n=0;break;case m.CENTER:n=.5*t;break;case m.NEXT:n=t;break;default:if(n=H(e,t),null==n)throw new oe(N.WRONG_OPTION("align",e),S.WRONG_OPTION)}else n=e;return n},M=(e,t)=>{let n;if(Array.isArray(e))n=e.map(e=>H(e,t));else{const i=H(e,t);n=[i,i]}return n.map(t=>{if(null==t)throw new oe(N.WRONG_OPTION("bounce",e),S.WRONG_OPTION);return t})},H=(e,t)=>{const n=F(e);return null==n?null:n.percentage*t+n.absolute},F=e=>{const t=/(?:(\+|-)\s*)?(\d+(?:\.\d+)?(%|px)?)/g;if("number"==typeof e)return{percentage:0,absolute:e};const n={percentage:0,absolute:0};let i=0,r=t.exec(e);for(;null!=r;){let s=r[1];const o=r[2],a=r[3],l=parseFloat(o);if(i<=0&&(s=s||"+"),!s)return null;const h="+"===s?1:-1;"%"===a?n.percentage+=h*(l/100):n.absolute+=h*l,++i,r=t.exec(e)}return 0===i?null:n},V=e=>"object"==typeof e?e.panel:e,G=(e,t)=>e===t?f.NONE:e<t?f.NEXT:f.PREV,B=e=>{Array.isArray(e)||(e=[e]);const t=[];return e.forEach(e=>{if(U(e)){const n=document.createElement("div");for(n.innerHTML=e,t.push(...D(n.children));n.firstChild;)n.removeChild(n.firstChild)}else{if(!e||e.nodeType!==Node.ELEMENT_NODE)throw new oe(N.WRONG_TYPE(e,["HTMLElement","string"]),S.WRONG_TYPE);t.push(e)}}),t},j=(e,t)=>w(e<0?e+t:e,0,t),W=(e,t)=>{for(const n of e)if(n===t)return!0;return!1},U=e=>"string"==typeof e,$=(e,t,n)=>{const i=n-t;if(e<t){e=n-(t-e)%i}else if(e>n){e=t+(e-n)%i}return e},X=(e,t)=>{for(const n of e)if(t(n))return n;return null},Y=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n]))return n;return-1},Z=(e,t,n)=>(e-t)/(n-t),K=e=>e?window.getComputedStyle(e)||e.currentStyle:{},q=(e,{width:t,height:n})=>{e&&(null!=t&&(U(t)?e.style.width=t:e.style.width=`${t}px`),null!=n&&(U(n)?e.style.height=n:e.style.height=`${n}px`))},J=(e,t,n)=>e>=t&&e<=n,Q=(e,t)=>e>=t?e%t:e<0?j((e+1)%t-1,t):e,ee=e=>{const t=new Array(e);for(let n=0;n<e;n++)t[n]=n;return t},te=({el:e,horizontal:t,useFractionalSize:n,useOffset:i,style:r})=>{let s=0;if(n){const e=parseFloat(t?r.width:r.height)||0,n="border-box"===r.boxSizing,o=t?parseFloat(r.borderLeftWidth||"0")+parseFloat(r.borderRightWidth||"0"):parseFloat(r.borderTopWidth||"0")+parseFloat(r.borderBottomWidth||"0");if(n)s=i?e:e-o;else{const n=t?parseFloat(r.paddingLeft||"0")+parseFloat(r.paddingRight||"0"):parseFloat(r.paddingTop||"0")+parseFloat(r.paddingBottom||"0");s=i?e+n+o:e+n}}else{const n=t?"Width":"Height";s=i?e[`offset${n}`]:e[`client${n}`]}return Math.max(s,0)},ne=Object.setPrototypeOf||((e,t)=>(e.__proto__=t,e)),ie=e=>e.replace(/[\s-_]([a-z])/g,(e,t)=>t.toUpperCase()),re=(e,t)=>{const n={},i=e.attributes,r=i.length;for(let s=0;s<r;++s){const e=i[s],{name:r,value:o}=e;-1!==r.indexOf(t)&&(n[ie(r.replace(t,""))]=o)}return n},se=Object.freeze(Object.defineProperty({__proto__:null,camelize:ie,checkExistence:y,circulateIndex:Q,circulatePosition:$,clamp:w,find:X,findIndex:Y,findRight:(e,t)=>{for(let n=e.length-1;n>=0;n--){const i=e[n];if(t(i))return i}return null},getDataAttributes:re,getDirection:G,getElement:z,getElementSize:te,getFlickingAttached:k,getMinusCompensatedIndex:j,getProgress:Z,getStyle:K,includes:W,isBetween:J,isString:U,merge:C,parseAlign:L,parseArithmeticExpression:F,parseArithmeticSize:H,parseBounce:M,parseCSSSizeValue:e=>U(e)?e:`${e}px`,parseElement:B,parsePanelAlign:V,range:ee,setPrototypeOf:ne,setSize:q,toArray:D},Symbol.toStringTag,{value:"Module"}));class oe extends Error{constructor(e,t){super(e),ne(this,oe.prototype),this.name="FlickingError",this.code=t}}class ae{constructor(e){this._flicking=e}getAnchors(){return this._flicking.renderer.panels.map((e,t)=>new I({index:t,position:e.position,panel:e}))}findAnchorIncludePosition(e){return this._flicking.camera.anchorPoints.filter(t=>t.panel.includePosition(e,!0)).reduce((t,n)=>t&&Math.abs(t.position-e)<Math.abs(n.position-e)?t:n,null)}findNearestAnchor(e){const t=this._flicking.camera.anchorPoints;if(t.length<=0)return null;let n=1/0;for(let i=0;i<t.length;i++){const r=t[i],s=Math.abs(r.position-e);if(s>n)return t[i-1];n=s}return t[t.length-1]}clampToReachablePosition(e){const t=this._flicking.camera.range;return w(e,t.min,t.max)}getCircularOffset(){return 0}canReach(e){const t=this._flicking.camera.range;if(e.removed)return!1;const n=e.position;return n>=t.min&&n<=t.max}canSee(e){const t=this._flicking.camera.visibleRange;return e.isVisibleOnRange(t.min,t.max)}}class le extends ae{checkAvailability(){const e=this._flicking,t=e.renderer,n=t.getPanel(0),i=t.getPanel(t.panelCount-1);if(!n||!i)return!1;const r=e.camera.size,s=n.range.min;return r<i.range.max-s}getRange(){const e=this._flicking,t=e.renderer,n=e.camera.alignPosition,i=t.getPanel(0),r=t.getPanel(t.panelCount-1);if(!i||!r)return{min:0,max:0};const s=e.camera.size,o=i.range.min,a=r.range.max,l=o+n,h=a-s+n;if(s<a-o)return{min:l,max:h};{const t=e.camera.align,n="object"==typeof t?t.camera:t,i=l+L(n,h-l);return{min:i,max:i}}}getAnchors(){const e=this._flicking,t=e.camera,n=e.renderer.panels;if(n.length<=0)return[];const i=e.camera.range,r=n.filter(e=>t.canReach(e));if(r.length>0){const e=r[0].position!==i.min,t=r[r.length-1].position!==i.max,s=e?1:0,o=r.map((e,t)=>new I({index:t+s,position:e.position,panel:e}));return e&&o.splice(0,0,new I({index:0,position:i.min,panel:n[r[0].index-1]})),t&&o.push(new I({index:o.length,position:i.max,panel:n[r[r.length-1].index+1]})),o}if(i.min!==i.max){const e=this._findNearestPanel(i.min,n),t=e.index===n.length-1?e.prev():e,r=t.next();return[new I({index:0,position:i.min,panel:t}),new I({index:1,position:i.max,panel:r})]}return[new I({index:0,position:i.min,panel:this._findNearestPanel(i.min,n)})]}findAnchorIncludePosition(e){const t=this._flicking.camera,n=t.range,i=t.anchorPoints;return i.length<=0?null:e<=n.min?i[0]:e>=n.max?i[i.length-1]:super.findAnchorIncludePosition(e)}_findNearestPanel(e,t){let n=1/0;for(let i=0;i<t.length;i++){const r=t[i],s=Math.abs(r.position-e);if(s>n)return t[i-1];n=s}return t[t.length-1]}}class he extends ae{checkAvailability(){const e=this._flicking,t=e.renderer.panels;if(t.length<=0)return!1;const n=t[0],i=t[t.length-1],r=n.range.min-n.margin.prev,s=i.range.max+i.margin.next,o=e.camera.size,a=s-r;return t.every(e=>a-e.size>=o)}getRange(){const e=this._flicking.renderer.panels;if(e.length<=0)return{min:0,max:0};const t=e[0],n=e[e.length-1];return{min:t.range.min-t.margin.prev,max:n.range.max+n.margin.next}}getAnchors(){return this._flicking.renderer.panels.map((e,t)=>new I({index:t,position:e.position,panel:e}))}findNearestAnchor(e){const t=this._flicking.camera,n=t.anchorPoints;if(n.length<=0)return null;const i=t.range;let r=1/0,s=-1;for(let o=0;o<n.length;o++){const t=n[o],a=Math.min(Math.abs(t.position-e),Math.abs(t.position-i.min+i.max-e),Math.abs(e-i.min+i.max-t.position));a<r&&(r=a,s=o)}return n[s]}findAnchorIncludePosition(e){const t=this._flicking.camera,n=t.range,i=t.anchorPoints,r=t.rangeDiff,s=i.length,o=$(e,n.min,n.max);let a=super.findAnchorIncludePosition(o);if(s>0&&(e===n.min||e===n.max)){const t=[a,new I({index:0,position:i[0].position+r,panel:i[0].panel}),new I({index:s-1,position:i[s-1].position-r,panel:i[s-1].panel})].filter(e=>!!e);a=t.reduce((t,n)=>t&&Math.abs(t.position-e)<Math.abs(n.position-e)?t:n,null)}if(!a)return null;if(e<n.min){const t=-Math.floor((n.min-e)/r)-1;return new I({index:a.index,position:a.position+r*t,panel:a.panel})}if(e>n.max){const t=Math.floor((e-n.max)/r)+1;return new I({index:a.index,position:a.position+r*t,panel:a.panel})}return a}getCircularOffset(){const e=this._flicking;if(!e.camera.circularEnabled)return 0;const t=e.panels.filter(e=>e.toggled),n=t.filter(e=>e.toggleDirection===f.PREV),i=t.filter(e=>e.toggleDirection===f.NEXT);return this._calcPanelAreaSum(n)-this._calcPanelAreaSum(i)}clampToReachablePosition(e){return e}canReach(e){return!e.removed}canSee(e){const t=this._flicking.camera,n=t.range,i=t.rangeDiff,r=t.visibleRange,s=super.canSee(e);return r.min<n.min?s||e.isVisibleOnRange(r.min+i,r.max+i):r.max>n.max?s||e.isVisibleOnRange(r.min-i,r.max-i):s}_calcPanelAreaSum(e){return e.reduce((e,t)=>e+t.sizeIncludingMargin,0)}}class ce extends ae{checkAvailability(){return!0}getRange(){var e,t;const n=this._flicking.renderer,i=n.getPanel(0),r=n.getPanel(n.panelCount-1);return{min:null!=(e=null==i?void 0:i.position)?e:0,max:null!=(t=null==r?void 0:r.position)?t:0}}}let de=class{constructor(e,{align:t=m.CENTER}={}){this._lookedOffset=0,this._checkTranslateSupport=()=>{const e=["webkitTransform","msTransform","MozTransform","OTransform","transform"],t=document.documentElement.style;let n="";for(const i of e)i in t&&(n=i);if(!n)throw new oe(N.TRANSFORM_NOT_SUPPORTED,S.TRANSFORM_NOT_SUPPORTED);this._transform=n},this._flicking=e,this._resetInternalValues(),this._align=t}get element(){return this._el}get children(){return D(this._el.children)}get position(){return this._position}get alignPosition(){return this._alignPos}get offset(){return this._offset-this._circularOffset}get circularEnabled(){return this._circularEnabled}get mode(){return this._mode}get range(){return this._range}get rangeDiff(){return this._range.max-this._range.min}get visiblePanels(){return this._visiblePanels}get visibleRange(){return{min:this._position-this._alignPos,max:this._position-this._alignPos+this.size}}get anchorPoints(){return this._anchors}get controlParams(){return{range:this._range,position:this._position,circular:this._circularEnabled}}get atEdge(){return this._position<=this._range.min||this._position>=this._range.max}get size(){const e=this._flicking;return e?e.horizontal?e.viewport.width:e.viewport.height:0}get progress(){const e=this._flicking,t=this._position+this._offset,n=this.findNearestAnchor(this._position);if(!e||!n)return NaN;const i=n.panel,r=i.position+i.offset,s=e.control.controller.bounce,{min:o,max:a}=this.range,l=this.rangeDiff;if(t===r)return i.index;if(t<r){const e=i.prev();let n=e?e.position+e.offset:o-s[0];return n>r&&(n-=l),i.index-1+Z(t,n,r)}{const e=i.next();let n=e?e.position+e.offset:a+s[1];return n<r&&(n+=l),i.index+Z(t,r,n)}}get panelOrder(){return this._panelOrder}get align(){return this._align}set align(e){this._align=e}init(){const e=this._flicking.viewport.element;return y(e.firstElementChild,"First element child of the viewport element"),this._el=e.firstElementChild,this._checkTranslateSupport(),this._updateMode(),this.updatePanelOrder(),this}destroy(){return this._resetInternalValues(),this}lookAt(e){const t=this._offset,n=this._lookedOffset!==t,i=k(this._flicking),r=this._position;this._position=e;const s=this._togglePanels(r,e);this._refreshVisiblePanels(),this._checkNeedPanel(),this._checkReachEnd(r,e),s?i.renderer.render().then(()=>{this.updateOffset(),this._lookedOffset=this._offset}):n?(this.updateOffset(),this._lookedOffset=this._offset):this.applyTransform()}getPrevAnchor(e){if(this._circularEnabled&&0===e.index){const e=this._anchors,t=this.rangeDiff,n=e[e.length-1];return new I({index:n.index,position:n.position-t,panel:n.panel})}return this._anchors[e.index-1]||null}getNextAnchor(e){const t=this._anchors;if(this._circularEnabled&&e.index===t.length-1){const e=this.rangeDiff,n=t[0];return new I({index:n.index,position:n.position+e,panel:n.panel})}return t[e.index+1]||null}getProgressInPanel(e){const t=e.range;return(this._position-t.min)/(t.max-t.min)}findAnchorIncludePosition(e){return this._mode.findAnchorIncludePosition(e)}findNearestAnchor(e){return this._mode.findNearestAnchor(e)}findActiveAnchor(){var e;const t=k(this._flicking).control.activePanel;return t?null!=(e=X(this._anchors,e=>e.panel.index===t.index))?e:this.findNearestAnchor(t.position):null}clampToReachablePosition(e){return this._mode.clampToReachablePosition(e)}canReach(e){return this._mode.canReach(e)}canSee(e){return this._mode.canSee(e)}updateRange(){const e=k(this._flicking).renderer.panels;return this._updateMode(),this._range=this._mode.getRange(),e.forEach(e=>e.updateCircularToggleDirection()),this}updateAlignPos(){const e=this._align,t="object"==typeof e?e.camera:e;return this._alignPos=L(t,this.size),this}updateAnchors(){return this._anchors=this._mode.getAnchors(),this}updateAdaptiveHeight(){const e=k(this._flicking),t=e.control.activePanel,n=[...e.visiblePanels];if(t&&n.push(t),!e.horizontal||!e.adaptive||!n.length)return;const i=Math.max(...n.map(e=>e.height));e.viewport.setSize({height:i})}updateOffset(){const e=k(this._flicking),t=this._position,n=e.panels.filter(e=>!e.rendered);return this._offset=n.filter(e=>e.position+e.offset<t).reduce((e,t)=>e+t.sizeIncludingMargin,0),this._circularOffset=this._mode.getCircularOffset(),this.applyTransform(),this}updatePanelOrder(){const e=k(this._flicking);if(!e.horizontal)return this;const t=this._el,n=K(t).direction;return n!==this._panelOrder&&(this._panelOrder=n===x.RTL?x.RTL:x.LTR,e.initialized&&e.control.controller.updateDirection()),this}resetNeedPanelHistory(){return this._needPanelTriggered={prev:!1,next:!1},this}applyTransform(){const e=this._el,t=k(this._flicking);if(t.renderer.rendering||!t.initialized)return this;const n=this._position-this._alignPos-this._offset+this._circularOffset,i=t.horizontal&&this._panelOrder===x.RTL?1:-1,r=t.usePercentagePos?i*n/this.size*100+"%":i*n+"px";return e.style[this._transform]=t.horizontal?`translate(${r})`:`translate(0, ${r})`,this}_resetInternalValues(){this._position=0,this._lookedOffset=0,this._alignPos=0,this._offset=0,this._circularOffset=0,this._circularEnabled=!1,this._range={min:0,max:0},this._visiblePanels=[],this._anchors=[],this._needPanelTriggered={prev:!1,next:!1}}_refreshVisiblePanels(){const t=k(this._flicking),n=t.renderer.panels.filter(e=>this.canSee(e)),i=this._visiblePanels;this._visiblePanels=n;const r=n.filter(e=>!W(i,e)),s=i.filter(e=>!W(n,e));(r.length>0||s.length>0)&&t.renderer.render().then(()=>{t.trigger(new e.ComponentEvent(b.VISIBLE_CHANGE,{added:r,removed:s,visiblePanels:n}))})}_checkNeedPanel(){const t=this._needPanelTriggered;if(t.prev&&t.next)return;const n=k(this._flicking),i=n.renderer.panels;if(i.length<=0)return t.prev||(n.trigger(new e.ComponentEvent(b.NEED_PANEL,{direction:f.PREV})),t.prev=!0),void(t.next||(n.trigger(new e.ComponentEvent(b.NEED_PANEL,{direction:f.NEXT})),t.next=!0));const r=this._position,s=this.size,o=this._range,a=n.needPanelThreshold,l=r-this._alignPos,h=l+s,c=i[0],d=i[i.length-1];if(!t.prev){(l<=c.range.min+a||r<=o.min+a)&&(n.trigger(new e.ComponentEvent(b.NEED_PANEL,{direction:f.PREV})),t.prev=!0)}if(!t.next){(h>=d.range.max-a||r>=o.max-a)&&(n.trigger(new e.ComponentEvent(b.NEED_PANEL,{direction:f.NEXT})),t.next=!0)}}_checkReachEnd(t,n){const i=k(this._flicking),r=this._range,s=t>r.min&&t<r.max,o=n>r.min&&n<r.max;if(!s||o)return;const a=n<=r.min?f.PREV:f.NEXT;i.trigger(new e.ComponentEvent(b.REACH_EDGE,{direction:a}))}_updateMode(){const e=k(this._flicking);if(e.circular){const t=new he(e),n=t.checkAvailability();if(n)this._mode=t;else{const t=e.circularFallback;this._mode=t===P.BOUND?new le(e):new ce(e)}this._circularEnabled=n}else this._mode=e.bound?new le(e):new ce(e),this._circularEnabled=!1}_togglePanels(e,t){if(t===e)return!1;return k(this._flicking).renderer.panels.map(n=>n.toggle(e,t)).some(e=>e)}};const ue=Object.freeze(Object.defineProperty({__proto__:null,BoundCameraMode:le,Camera:de,CircularCameraMode:he,LinearCameraMode:ce},Symbol.toStringTag,{value:"Module"})),ge={HOLD:"hold",CHANGE:"change",RELEASE:"release",ANIMATION_END:"animationEnd",FINISH:"finish"},_e="flick";var pe=(e=>(e[e.IDLE=0]="IDLE",e[e.HOLDING=1]="HOLDING",e[e.DRAGGING=2]="DRAGGING",e[e.ANIMATING=3]="ANIMATING",e[e.DISABLED=4]="DISABLED",e))(pe||{});class me{constructor(){this._delta=0,this._targetPanel=null}get delta(){return this._delta}get targetPanel(){return this._targetPanel}set targetPanel(e){this._targetPanel=e}onEnter(e){this._delta=e._delta,this._targetPanel=e._targetPanel}onHold(e){}onChange(e){}onRelease(e){}onAnimationEnd(e){}onFinish(e){}_moveToChangedPosition(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=i.delta[_e];if(!s)return;this._delta+=s;const o=n.camera,a=o.position,l=i.pos[_e],h=n.circularEnabled?$(l,o.range.min,o.range.max):l;o.lookAt(h);const c=new e.ComponentEvent(b.MOVE,{isTrusted:i.isTrusted,holding:this.holding,direction:G(0,i.delta[_e]),axesEvent:i});n.trigger(c),c.isCanceled()&&(o.lookAt(a),r(4))}}class fe extends me{constructor(){super(...arguments),this.holding=!1,this.animating=!0}onHold(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=this._targetPanel,o=n.control;this._delta=0,n.control.updateInput(),n.changeOnHold&&s&&o.setActive(s,o.activePanel,i.isTrusted);const a=new e.ComponentEvent(b.HOLD_START,{axesEvent:i});n.trigger(a),a.isCanceled()?r(pe.DISABLED):r(pe.DRAGGING)}onChange(e){this._moveToChangedPosition(e)}onFinish(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=n.control,o=s.controller.animatingContext;r(pe.IDLE),n.trigger(new e.ComponentEvent(b.MOVE_END,{isTrusted:i.isTrusted,direction:G(o.start,o.end),axesEvent:i}));const a=this._targetPanel;a&&s.setActive(a,s.activePanel,i.isTrusted)}}class ve extends me{constructor(){super(...arguments),this.holding=!1,this.animating=!0}onAnimationEnd(e){const{transitTo:t}=e;t(pe.IDLE)}onChange(e){const{axesEvent:t,transitTo:n}=e;t.stop(),n(pe.IDLE)}onRelease(e){const{axesEvent:t,transitTo:n}=e;0===t.delta.flick&&n(pe.IDLE)}}class Ee extends me{constructor(){super(...arguments),this.holding=!0,this.animating=!0}onChange(e){this._moveToChangedPosition(e)}onRelease(t){const{flicking:n,axesEvent:i,transitTo:r}=t;if(n.trigger(new e.ComponentEvent(b.HOLD_END,{axesEvent:i})),n.renderer.panelCount<=0)return void r(pe.IDLE);r(pe.ANIMATING);const s=n.control,o=i.destPos[_e],a=Math.max(i.duration,n.duration);try{s.moveToPosition(o,a,i)}catch(l){r(pe.IDLE),i.setTo({[_e]:n.camera.position},0)}}}class Pe extends me{constructor(){super(...arguments),this.holding=!0,this.animating=!1,this._releaseEvent=null}onChange(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=i.inputEvent;if(!s)return;const o=n.horizontal?s.offsetX:s.offsetY,a=new e.ComponentEvent(b.MOVE_START,{isTrusted:i.isTrusted,holding:this.holding,direction:G(0,-o),axesEvent:i});n.trigger(a),a.isCanceled()?r(pe.DISABLED):r(pe.DRAGGING).onChange(t)}onRelease(t){const{flicking:n,axesEvent:i,transitTo:r}=t;if(n.trigger(new e.ComponentEvent(b.HOLD_END,{axesEvent:i})),0!==i.delta.flick)return i.setTo({flick:n.camera.position},0),void r(pe.IDLE);this._releaseEvent=i}onFinish(t){const{flicking:n,transitTo:i}=t;if(i(pe.IDLE),!this._releaseEvent)return;const r=this._releaseEvent.inputEvent.srcEvent;let s;if("touchend"===r.type){const e=r.changedTouches[0];s=document.elementFromPoint(e.clientX,e.clientY)}else s=r.target;const o=n.renderer.panels;let a=null;for(const e of o)if(e.contains(s)){a=e;break}if(a){const t=n.camera.position,i=a.position;n.trigger(new e.ComponentEvent(b.SELECT,{index:a.index,panel:a,direction:G(t,i)}))}}}class xe extends me{constructor(){super(...arguments),this.holding=!1,this.animating=!1}onEnter(){this._delta=0,this._targetPanel=null}onHold(t){const{flicking:n,axesEvent:i,transitTo:r}=t;if(n.renderer.panelCount<=0)return void r(pe.DISABLED);const s=new e.ComponentEvent(b.HOLD_START,{axesEvent:i});n.trigger(s),s.isCanceled()?r(pe.DISABLED):r(pe.HOLDING)}onChange(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=n.control.controller.animatingContext,o=new e.ComponentEvent(b.MOVE_START,{isTrusted:i.isTrusted,holding:this.holding,direction:G(s.start,s.end),axesEvent:i});n.trigger(o),o.isCanceled()?r(pe.DISABLED):r(pe.ANIMATING).onChange(t)}}class Oe{constructor(){this.transitTo=e=>{let t;switch(e){case pe.IDLE:t=new xe;break;case pe.HOLDING:t=new Pe;break;case pe.DRAGGING:t=new Ee;break;case pe.ANIMATING:t=new fe;break;case pe.DISABLED:t=new ve}return t.onEnter(this._state),this._state=t,this._state},this._state=new xe}get state(){return this._state}fire(e,t){const n=this._state,i=_(g({},t),{transitTo:this.transitTo});switch(e){case ge.HOLD:n.onHold(i);break;case ge.CHANGE:n.onChange(i);break;case ge.RELEASE:n.onRelease(i);break;case ge.ANIMATION_END:n.onAnimationEnd(i);break;case ge.FINISH:n.onFinish(i)}}}class Te{constructor(){this._onAxesHold=()=>{this._dragged=!1},this._onAxesChange=()=>{var e;this._dragged=!!(null==(e=this._panInput)?void 0:e.isEnabled())},this._preventClickWhenDragged=e=>{this._dragged&&(e.preventDefault(),e.stopPropagation()),this._dragged=!1},this._resetInternalValues(),this._stateMachine=new Oe}get axes(){return this._axes}get panInput(){return this._panInput}get stateMachine(){return this._stateMachine}get state(){return this._stateMachine.state}get animatingContext(){return this._animatingContext}get controlParams(){const e=this._axes;if(!e)return{range:{min:0,max:0},position:0,circular:!1};const t=e.axis[_e];return{range:{min:t.range[0],max:t.range[1]},circular:t.circular[0],position:this.position}}get enabled(){var e,t;return null!=(t=null==(e=this._panInput)?void 0:e.isEnabled())&&t}get position(){var e,t;return null!=(t=null==(e=this._axes)?void 0:e.get([_e])[_e])?t:0}get range(){var e,t;return null!=(t=null==(e=this._axes)?void 0:e.axis[_e].range)?t:[0,0]}get bounce(){var e;return null==(e=this._axes)?void 0:e.axis[_e].bounce}init(e){this._flicking=e,this._axes=new t({[_e]:{range:[0,0],circular:!1,bounce:[0,0]}},{deceleration:e.deceleration,interruptable:e.interruptable,nested:e.nested,easing:e.easing}),this._panInput=new t.PanInput(e.viewport.element,{inputType:e.inputType,threshold:e.dragThreshold,iOSEdgeSwipeThreshold:e.iOSEdgeSwipeThreshold,preventDefaultOnDrag:e.preventDefaultOnDrag,scale:e.horizontal?[e.camera.panelOrder===x.RTL?1:-1,0]:[0,-1],releaseOnScroll:!0});const n=this._axes;n.connect(e.horizontal?[_e,""]:["",_e],this._panInput);for(const t in ge){const i=ge[t];n.on(i,t=>{this._stateMachine.fire(i,{flicking:e,axesEvent:t})})}return this}destroy(){var e;this._axes&&(this.removePreventClickHandler(),this._axes.destroy()),null==(e=this._panInput)||e.destroy(),this._resetInternalValues()}enable(){var e;return null==(e=this._panInput)||e.enable(),this}disable(){var e;return null==(e=this._panInput)||e.disable(),this}release(){var e;return null==(e=this._panInput)||e.release(),this}updateAnimation(e,t){var n;return this._animatingContext=_(g({},this._animatingContext),{end:e}),null==(n=this._axes)||n.updateAnimation({destPos:{[_e]:e},duration:t}),this}stopAnimation(){var e;return null==(e=this._axes)||e.stopAnimation(),this}update(e){const t=k(this._flicking),n=t.camera,i=this._axes,r=i.axis[_e];return r.circular=[e.circular,e.circular],r.range=[e.range.min,e.range.max],r.bounce=M(t.bounce,n.size),i.axisManager.set({[_e]:e.position}),this}addPreventClickHandler(){const e=k(this._flicking),t=this._axes,n=e.camera.element;return t.on(ge.HOLD,this._onAxesHold),t.on(ge.CHANGE,this._onAxesChange),n.addEventListener("click",this._preventClickWhenDragged,!0),this}removePreventClickHandler(){const e=k(this._flicking),t=this._axes,n=e.camera.element;return t.off(ge.HOLD,this._onAxesHold),t.off(ge.CHANGE,this._onAxesChange),n.removeEventListener("click",this._preventClickWhenDragged,!0),this}animateTo(e,t,n){var i;const r=this._axes,s=this._stateMachine.state;if(!r)return Promise.reject(new oe(N.NOT_ATTACHED_TO_FLICKING,S.NOT_ATTACHED_TO_FLICKING));const o=this.getCurrentPosition();if(o===e){const t=k(this._flicking);return t.camera.lookAt(e),s.targetPanel&&t.control.setActive(s.targetPanel,t.control.activePanel,null!=(i=null==n?void 0:n.isTrusted)&&i),Promise.resolve()}this._animatingContext={start:o,end:e,offset:0};const a=()=>{r.once(ge.FINISH,()=>{this._animatingContext={start:0,end:0,offset:0}}),n?n.setTo({[_e]:e},t):r.setTo({[_e]:e},t)};return new Promise((e,t)=>{const n=()=>{r.off(ge.HOLD,i),e()},i=()=>{r.off(ge.FINISH,n),t(new oe(N.ANIMATION_INTERRUPTED,S.ANIMATION_INTERRUPTED))};r.once(ge.FINISH,n),r.once(ge.HOLD,i),a()})}getCurrentPosition(){var e,t;return null!=(t=null==(e=this._axes)?void 0:e.get([_e])[_e])?t:0}updateDirection(){const e=k(this._flicking),t=this._axes,n=this._panInput;t.disconnect(n),t.connect(e.horizontal?[_e,""]:["",_e],n),n.options.scale=e.horizontal?[e.camera.panelOrder===x.RTL?1:-1,0]:[0,-1]}_resetInternalValues(){this._flicking=null,this._axes=null,this._panInput=null,this._animatingContext={start:0,end:0,offset:0},this._dragged=!1}}let be=class{get controller(){return this._controller}get activeIndex(){var e,t;return null!=(t=null==(e=this._activePanel)?void 0:e.index)?t:-1}get activePanel(){return this._activePanel}get animating(){return this._controller.state.animating}get holding(){return this._controller.state.holding}constructor(){this._flicking=null,this._controller=new Te,this._activePanel=null}init(e){return this._flicking=e,this._controller.init(e),this}destroy(){this._controller.destroy(),this._flicking=null,this._activePanel=null}enable(){return this._controller.enable(),this}disable(){return this._controller.disable(),this}release(){return this._controller.release(),this}updateAnimation(e,t,n){const i=this._controller.state,r=this._getPosition(e,null!=n?n:f.NONE);return i.targetPanel=e,this._controller.updateAnimation(r,t),this}stopAnimation(){return this._controller.state.targetPanel=null,this._controller.stopAnimation(),this}updatePosition(e){const t=k(this._flicking).camera,n=this._activePanel;n&&t.lookAt(t.clampToReachablePosition(n.position))}updateInput(){const e=k(this._flicking).camera;return this._controller.update(e.controlParams),this}resetActive(){return this._activePanel=null,this}moveToPanel(e,t){return p(this,arguments,function*(e,{duration:t,direction:n=f.NONE,axesEvent:i}){const r=this._getPosition(e,n);return this._triggerIndexChangeEvent(e,e.position,i,n),this._animateToPosition({position:r,duration:t,newActivePanel:e,axesEvent:i})})}setActive(t,n,i){var r;const s=k(this._flicking);this._activePanel=t,this._nextPanel=null,s.camera.updateAdaptiveHeight(),t!==n?s.trigger(new e.ComponentEvent(b.CHANGED,{index:t.index,panel:t,prevIndex:null!=(r=null==n?void 0:n.index)?r:-1,prevPanel:n,isTrusted:i,direction:n?G(n.position,t.position):f.NONE})):s.trigger(new e.ComponentEvent(b.RESTORED,{isTrusted:i}))}copy(e){this._flicking=e._flicking,this._activePanel=e._activePanel,this._controller=e._controller}_triggerIndexChangeEvent(t,n,i,r){var s;const o=k(this._flicking),a=t!==this._activePanel?b.WILL_CHANGE:b.WILL_RESTORE,l=o.camera,h=this._activePanel,c=new e.ComponentEvent(a,{index:t.index,panel:t,isTrusted:(null==i?void 0:i.isTrusted)||!1,direction:null!=r?r:G(null!=(s=null==h?void 0:h.position)?s:l.position,n)});if(this._nextPanel=t,o.trigger(c),c.isCanceled())throw new oe(N.STOP_CALLED_BY_USER,S.STOP_CALLED_BY_USER)}_animateToPosition(e){return p(this,arguments,function*({position:e,duration:t,newActivePanel:n,axesEvent:i}){const r=k(this._flicking);let s=t;Math.abs(s-e)<r.animationThreshold&&(s=0);const o=()=>this._controller.animateTo(e,s,i);return this._controller.state.targetPanel=n,s<=0?o():o().then(()=>p(this,null,function*(){r.initialized&&(yield r.renderer.render())})).catch(e=>{if(!(i&&e instanceof oe&&e.code===S.ANIMATION_INTERRUPTED))throw e})})}_getPosition(e,t=f.NONE){const n=k(this._flicking),i=n.camera;let r=e.position;const s=i.findNearestAnchor(r);if(e.removed||!s)throw new oe(N.POSITION_NOT_REACHABLE(e.position),S.POSITION_NOT_REACHABLE);if(i.canReach(e)){if(n.circularEnabled){const e=this._controller.position,n=i.rangeDiff,s=[r,r+n,r-n].filter(n=>t===f.NONE||(t===f.PREV?n<=e:n>=e));r=s.reduce((t,n)=>Math.abs(e-n)<Math.abs(e-t)?n:t,1/0)}}else r=s.position,e=s.panel;return r}};class Re extends be{get stopAtEdge(){return this._stopAtEdge}set stopAtEdge(e){this._stopAtEdge=e}constructor(e={}){super();const{stopAtEdge:t=!0}=e;this._stopAtEdge=t}updatePosition(e){const t=k(this._flicking).camera,n=this._activePanel;if(n){const i=n.range,r=i.min+(i.max-i.min)*e;t.lookAt(t.clampToReachablePosition(r))}}moveToPosition(e,t,n){const i=k(this._flicking).camera,r=i.clampToReachablePosition(e),s=i.findAnchorIncludePosition(r);if(!s)return Promise.reject(new oe(N.POSITION_NOT_REACHABLE(e),S.POSITION_NOT_REACHABLE));const o=s.panel;return o!==this._activePanel&&this._triggerIndexChangeEvent(o,e,n),this._animateToPosition({position:this._stopAtEdge?r:e,duration:t,newActivePanel:o,axesEvent:n})}}class Ie extends be{get count(){return this._count}set count(e){this._count=e}constructor(e={}){super();const{count:t=1/0}=e;this._count=t}moveToPosition(e,t,n){const i=k(this._flicking),r=i.camera,s=r.findActiveAnchor(),o=r.findNearestAnchor(r.position),a=this._controller.state;if(!s||!o)return Promise.reject(new oe(N.POSITION_NOT_REACHABLE(e),S.POSITION_NOT_REACHABLE));const l=this._calcSnapThreshold(i.threshold,e,s),h=i.animating?a.delta:e-r.position,c=Math.abs(h),d=n&&0!==n.delta[_e]?Math.abs(n.delta[_e]):c;let u;if(d>=l&&d>0)u=this._findSnappedAnchor(e,o);else{if(!(c>=i.threshold&&c>0))return this.moveToPanel(o.panel,{duration:t,axesEvent:n});u=this._findAdjacentAnchor(e,h,o)}return this._triggerIndexChangeEvent(u.panel,e,n),this._animateToPosition({position:r.clampToReachablePosition(u.position),duration:t,newActivePanel:u.panel,axesEvent:n})}_findSnappedAnchor(e,t){const n=k(this._flicking),i=n.camera,r=this._count,s=i.position,o=i.clampToReachablePosition(e),a=i.findAnchorIncludePosition(o);if(!t||!a)throw new oe(N.POSITION_NOT_REACHABLE(e),S.POSITION_NOT_REACHABLE);if(!Number.isFinite(r))return a;const l=n.panelCount,h=i.anchorPoints;let c=Math.sign(e-s)*Math.floor(Math.abs(e-s)/i.rangeDiff);e>s&&a.index<t.index||a.position>t.position&&a.index===t.index?c+=1:(e<s&&a.index>t.index||a.position<t.position&&a.index===t.index)&&(c-=1);const d=c*l,u=a.index+d;if(Math.abs(u-t.index)<=r){const e=h[a.index];return new I({index:e.index,position:e.position+c*i.rangeDiff,panel:e.panel})}if(n.circularEnabled){const n=h[Q(t.index+Math.sign(e-s)*r,l)];let o=Math.floor(r/l);return e>s&&n.index<t.index?o+=1:e<s&&n.index>t.index&&(o-=1),new I({index:n.index,position:n.position+o*i.rangeDiff,panel:n.panel})}return h[w(t.index+Math.sign(e-s)*r,0,h.length-1)]}_findAdjacentAnchor(e,t,n){var i;const r=k(this._flicking).camera;if(r.circularEnabled){const t=r.findAnchorIncludePosition(e);if(t&&t.position!==n.position)return t}return null!=(i=t>0?r.getNextAnchor(n):r.getPrevAnchor(n))?i:n}_calcSnapThreshold(e,t,n){const i=t>n.position,r=n.panel,s=r.size,o=r.alignPosition;return Math.max(e,i?s-o+r.margin.next:o+r.margin.prev)}}class Ae extends be{constructor(e={}){super(),this.setActive=(e,t,n)=>{super.setActive(e,t,n),this.updateInput()};const{count:t=1}=e;this._count=t,this._resetIndexRange()}get count(){return this._count}set count(e){this._count=e}destroy(){super.destroy(),this._resetIndexRange()}updateInput(){var e;const t=k(this._flicking),n=t.camera,i=t.renderer,r=this._controller,s=n.controlParams,o=this._count,a=r.state.animating?null==(e=n.findNearestAnchor(n.position))?void 0:e.panel:this._activePanel;if(!a)return r.update(s),this._resetIndexRange(),this;const l=s.range,h=a.position,c=a.index,d=i.panelCount;let u=c-o,g=c+o;u<0&&(u=t.circularEnabled?j((u+1)%d-1,d):w(u,0,d-1)),g>=d&&(g=t.circularEnabled?g%d:w(g,0,d-1));const _=i.panels[u],p=i.panels[g];let m=Math.max(_.position,l.min),f=Math.min(p.position,l.max);return m>h&&(m-=n.rangeDiff),f<h&&(f+=n.rangeDiff),s.range={min:m,max:f},s.circular&&(s.position<m&&(s.position+=n.rangeDiff),s.position>f&&(s.position-=n.rangeDiff)),s.circular=!1,r.update(s),this._indexRange={min:_.index,max:p.index},this}moveToPanel(e,t){return p(this,null,function*(){const n=k(this._flicking).camera;return this._controller.update(n.controlParams),(i=Ae.prototype,r=this,s="moveToPanel",c(a(i),s,r)).call(this,e,t);var i,r,s})}moveToPosition(e,t,n){var i;const r=k(this._flicking),s=r.camera,o=null!=(i=this._nextPanel)?i:this._activePanel,a=this._controller.range,l=this._indexRange,h=s.range,c=this._controller.state,d=w(s.clampToReachablePosition(e),a[0],a[1]),u=s.findAnchorIncludePosition(d);if(!u||!o)return Promise.reject(new oe(N.POSITION_NOT_REACHABLE(e),S.POSITION_NOT_REACHABLE));const g=o.position,_=r.animating?c.delta:e-s.position,p=Math.abs(_)>=r.threshold,m=e>g?s.getNextAnchor(u):s.getPrevAnchor(u);let f,v;const E=s.anchorPoints,P=E[0],x=E[E.length-1],O=e<h.min&&J(P.panel.index,l.min,l.max),T=e>h.max&&J(x.panel.index,l.min,l.max),b=m&&(l.min<=l.max?J(m.index,l.min,l.max):m.index>=l.min||m.index<=l.max);if(O||T){const t=e<h.min?P:x;v=t.panel,f=t.position}else if(p&&u.position!==o.position)v=u.panel,f=u.position;else{if(!p||!b){const i=s.findNearestAnchor(s.position);return i?this.moveToPanel(i.panel,{duration:t,axesEvent:n}):Promise.reject(new oe(N.POSITION_NOT_REACHABLE(e),S.POSITION_NOT_REACHABLE))}v=m.panel,f=m.position}return this._triggerIndexChangeEvent(v,e,n),this._animateToPosition({position:f,duration:t,newActivePanel:v,axesEvent:n})}_resetIndexRange(){this._indexRange={min:0,max:0}}}const Se=Object.freeze(Object.defineProperty({__proto__:null,AnimatingState:fe,AxesController:Te,Control:be,DisabledState:ve,DraggingState:Ee,FreeControl:Re,HoldingState:Pe,IdleState:xe,SnapControl:Ie,State:me,StateMachine:Oe,StrictControl:Ae},Symbol.toStringTag,{value:"Module"}));class Ne{constructor(e){this._onResizeWrapper=()=>{this._onResize([])},this._onResize=e=>{const t=this._flicking,n=t.resizeDebounce,i=t.maxResizeDebounce,r=t.element;if(e.find(e=>e.target===t.element)&&1===e.length){const e={width:t.viewport.width,height:t.viewport.height},n={width:te({el:r,horizontal:!0,useFractionalSize:this._flicking.useFractionalSize,useOffset:!1,style:K(r)}),height:te({el:r,horizontal:!1,useFractionalSize:this._flicking.useFractionalSize,useOffset:!1,style:K(r)})};if(e.height===n.height&&e.width===n.width)return}n<=0?t.resize():(this._maxResizeDebounceTimer<=0&&i>0&&i>=n&&(this._maxResizeDebounceTimer=window.setTimeout(this._doScheduledResize,i)),this._resizeTimer>0&&(clearTimeout(this._resizeTimer),this._resizeTimer=0),this._resizeTimer=window.setTimeout(this._doScheduledResize,n))},this._doScheduledResize=()=>{clearTimeout(this._resizeTimer),clearTimeout(this._maxResizeDebounceTimer),this._maxResizeDebounceTimer=-1,this._resizeTimer=-1,this._flicking.resize()},this._skipFirstResize=(()=>{let e=!0;return t=>{e?e=!1:this._onResize(t)}})(),this._flicking=e,this._enabled=!1,this._resizeObserver=null,this._resizeTimer=-1,this._maxResizeDebounceTimer=-1}get enabled(){return this._enabled}enable(){const e=this._flicking,t=e.viewport;if(this._enabled&&this.disable(),e.useResizeObserver&&window.ResizeObserver){const n=0!==t.width||0!==t.height?new ResizeObserver(this._skipFirstResize):new ResizeObserver(this._onResize);this._resizeObserver=n,this.observe(e.viewport.element),e.observePanelResize&&this.observePanels()}else window.addEventListener("resize",this._onResizeWrapper);return this._enabled=!0,this}observePanels(){return this._flicking.panels.forEach(e=>{this.observe(e.element)}),this}unobservePanels(){return this._flicking.panels.forEach(e=>{this.unobserve(e.element)}),this}observe(e){const t=this._resizeObserver;return t?(t.observe(e),this):this}unobserve(e){const t=this._resizeObserver;return t?(t.unobserve(e),this._flicking.observePanelResize&&this.unobservePanels(),this):this}disable(){if(!this._enabled)return this;const e=this._resizeObserver;return e?(e.disconnect(),this._resizeObserver=null):window.removeEventListener("resize",this._onResizeWrapper),this._enabled=!1,this}}class Ce{get element(){return this._element}get rendered(){return this._rendered}constructor(e){this._element=e,this._rendered=!0}show(e){const t=this.element,n=e.camera.element;t.parentElement!==n&&(n.appendChild(t),this._rendered=!0)}hide(e){const t=this.element,n=e.camera.element;t.parentElement===n&&(n.removeChild(t),this._rendered=!1)}}class ze{get element(){return this._virtualElement.nativeElement}get rendered(){return this._virtualElement.visible}get _virtualElement(){const e=this._flicking,t=this._panel.elementIndex;return e.virtual.elements[t]}constructor(e){this._flicking=e}init(e){this._panel=e}show(){}hide(){}}class ye{get element(){return this._el}get width(){return this._width-this._padding.left-this._padding.right}get height(){return this._height-this._padding.top-this._padding.bottom}get padding(){return this._padding}constructor(e,t){this._flicking=e,this._el=t,this._width=0,this._height=0,this._padding={left:0,right:0,top:0,bottom:0},this._isBorderBoxSizing=!1}setSize(e){const{width:t,height:n}=e,i=this._el,r=this._padding,s=this._isBorderBoxSizing;if(null!=t)if(U(t))i.style.width=t;else{const e=s?t+r.left+r.right:t;i.style.width=`${e}px`}if(null!=n)if(U(n))i.style.height=n;else{const e=s?n+r.top+r.bottom:n;i.style.height=`${e}px`}this.resize()}measureSize(){const{width:e,height:t,padding:n}=this._measure();return{width:e-n.left-n.right,height:t-n.top-n.bottom}}resize(){const{width:e,height:t,padding:n,isBorderBoxSizing:i}=this._measure();this._width=e,this._height=t,this._padding=n,this._isBorderBoxSizing=i}_measure(){const e=this._el,t=K(e),{useFractionalSize:n}=this._flicking;return{width:te({el:e,horizontal:!0,useFractionalSize:n,useOffset:!1,style:t}),height:te({el:e,horizontal:!1,useFractionalSize:n,useOffset:!1,style:t}),padding:{left:t.paddingLeft?parseFloat(t.paddingLeft):0,right:t.paddingRight?parseFloat(t.paddingRight):0,top:t.paddingTop?parseFloat(t.paddingTop):0,bottom:t.paddingBottom?parseFloat(t.paddingBottom):0},isBorderBoxSizing:"border-box"===t.boxSizing}}}class we{get elements(){return this._elements}get renderPanel(){return this._renderPanel}get initialPanelCount(){return this._initialPanelCount}get cache(){return this._cache}get panelClass(){return this._panelClass}set renderPanel(e){this._renderPanel=e,this._flicking.renderer.panels.forEach(e=>e.uncacheRenderResult())}set cache(e){this._cache=e}set panelClass(e){this._panelClass=e}constructor(e,t){var n,i,r,s;this._flicking=e,this._renderPanel=null!=(n=null==t?void 0:t.renderPanel)?n:()=>"",this._initialPanelCount=null!=(i=null==t?void 0:t.initialPanelCount)?i:-1,this._cache=null!=(r=null==t?void 0:t.cache)&&r,this._panelClass=null!=(s=null==t?void 0:t.panelClass)?s:E.DEFAULT_VIRTUAL,this._elements=[]}init(){const e=this._flicking;if(!e.virtualEnabled)return;e.externalRenderer||e.renderExternal||this._initVirtualElements();const t=e.camera.children;this._elements=t.map(e=>({nativeElement:e,visible:!0}))}show(e){const t=this._elements[e],n=t.nativeElement;t.visible=!0,n.style.display&&(n.style.display="")}hide(e){const t=this._elements[e],n=t.nativeElement;t.visible=!1,n.style.display="none"}append(e=1){const t=this._flicking;return this.insert(t.panels.length,e)}prepend(e=1){return this.insert(0,e)}insert(e,t=1){if(t<=0)return[];return this._flicking.renderer.batchInsert({index:e,elements:ee(t),hasDOMInElements:!1})}remove(e,t){if(t<=0)return[];return this._flicking.renderer.batchRemove({index:e,deleteCount:t,hasDOMInElements:!1})}_initVirtualElements(){const e=this._flicking,t=e.camera.element,n=e.panelsPerView,i=document.createDocumentFragment();ee(n+1).map(e=>{const t=document.createElement("div");return t.className=this._panelClass,t.dataset.elementIndex=e.toString(),t}).forEach(e=>{i.appendChild(e)}),t.appendChild(i)}}let ke=class{get panels(){return this._panels}get rendering(){return this._rendering}get panelCount(){return this._panels.length}get strategy(){return this._strategy}get align(){return this._align}set align(e){this._align=e;const t=V(e);this._panels.forEach(e=>{e.align=t})}constructor(e){const{align:t=m.CENTER,strategy:n}=e;this._flicking=null,this._panels=[],this._rendering=!1,this._align=t,this._strategy=n}init(e){return this._flicking=e,this._collectPanels(),this}destroy(){this._flicking=null,this._panels=[]}getPanel(e){return this._panels[e]||null}forceRenderAllPanels(){return this._panels.forEach(e=>e.markForShow()),Promise.resolve()}getRenderedPanels(){return k(this._flicking).renderer.panels.filter(e=>e.rendered)}updatePanelSize(){const e=k(this._flicking),t=this._panels;if(t.length<=0)return this;if(e.panelsPerView>0){const e=t[0];e.resize(),this._updatePanelSizeByGrid(e,t)}else e.panels.forEach(e=>e.resize());return this}batchInsert(...e){const t=this.batchInsertDefer(...e);return t.length<=0?[]:(this.updateAfterPanelChange(t,[]),t)}batchInsertDefer(...e){const t=this._panels,n=k(this._flicking),i=t[0],r=V(this._align);return e.reduce((e,s)=>{var o;const a=j(s.index,t.length),l=t.slice(a),h=s.elements.map((e,t)=>this._createPanel(e,{index:a+t,align:r,flicking:n}));if(t.splice(a,0,...h),s.hasDOMInElements&&this._insertPanelElements(h,null!=(o=l[0])?o:null),n.panelsPerView>0){const e=i||h[0].resize();this._updatePanelSizeByGrid(e,h)}else h.forEach(e=>e.resize());return l.forEach(e=>{e.increaseIndex(h.length),e.updatePosition()}),[...e,...h]},[])}batchRemove(...e){const t=this.batchRemoveDefer(...e);return t.length<=0?[]:(this.updateAfterPanelChange([],t),t)}batchRemoveDefer(...e){const t=this._panels,n=k(this._flicking),{control:i}=n,r=i.activePanel;return e.reduce((e,n)=>{const{index:s,deleteCount:o}=n,a=j(s,t.length),l=t.slice(a+o),h=t.splice(a,o);return h.length<=0?[]:(l.forEach(e=>{e.decreaseIndex(h.length),e.updatePosition()}),n.hasDOMInElements&&this._removePanelElements(h),h.forEach(e=>e.destroy()),W(h,r)&&i.resetActive(),[...e,...h])},[])}updateAfterPanelChange(t,n){var i;const r=k(this._flicking),{camera:s,control:o}=r,a=this._panels,l=o.activePanel;if(this._updateCameraAndControl(),r.autoResize&&r.useResizeObserver&&(t.forEach(e=>{e.element&&r.autoResizer.observe(e.element)}),n.forEach(e=>{e.element&&r.autoResizer.unobserve(e.element)})),this.render(),!r.animating)if(!l||l.removed)if(a.length<=0)s.lookAt(0);else{let e=null!=(i=null==l?void 0:l.index)?i:0;e>a.length-1&&(e=a.length-1),o.moveToPanel(a[e],{duration:0}).catch(()=>{})}else o.moveToPanel(l,{duration:0}).catch(()=>{});r.camera.updateOffset(),(t.length>0||n.length>0)&&(r.trigger(new e.ComponentEvent(b.PANEL_CHANGE,{added:t,removed:n})),this.checkPanelContentsReady([...t,...n]))}checkPanelContentsReady(e){const t=k(this._flicking),i=t.resizeOnContentsReady,r=this._panels;if(!i||t.virtualEnabled)return;if((e=e.filter(e=>(e=>e.element&&!!e.element.querySelector("img, video"))(e))).length<=0)return;const s=new n;e.forEach(e=>{e.loading=!0}),s.on("readyElement",n=>{if(!this._flicking)return void s.destroy();const i=e[n.index],o=t.camera,a=t.control,l=a.activePanel?o.getProgressInPanel(a.activePanel):0;i.loading=!1,i.resize(),r.slice(i.index+1).forEach(e=>e.updatePosition()),t.initialized&&(o.updateRange(),o.updateOffset(),o.updateAnchors(),a.animating||(a.updatePosition(l),a.updateInput()))}),s.on("preReady",e=>{this._flicking&&this.render(),e.readyCount===e.totalCount&&s.destroy()}),s.on("ready",()=>{this._flicking&&this.render(),s.destroy()}),s.check(e.map(e=>e.element))}_updateCameraAndControl(){const e=k(this._flicking),{camera:t,control:n}=e;t.updateRange(),t.updateOffset(),t.updateAnchors(),t.resetNeedPanelHistory(),n.updateInput()}_showOnlyVisiblePanels(e){const t=e.renderer.panels,n=e.camera.visiblePanels.reduce((e,t)=>(e[t.index]=!0,e),{});t.forEach(t=>{t.index in n||t.loading?t.markForShow():e.holding||t.markForHide()})}_updatePanelSizeByGrid(e,t){const n=k(this._flicking),i=n.panelsPerView;if(i<=0)throw new oe(N.WRONG_OPTION("panelsPerView",i),S.WRONG_OPTION);if(t.length<=0)return;const r=(n.camera.size-(e.margin.prev+e.margin.next)*(i-1))/i,s=n.horizontal?{width:r}:{height:r},o=g({size:r,margin:e.margin},!n.horizontal&&{height:e.height});n.noPanelStyleOverride||this._strategy.updatePanelSizes(n,s),n.panels.forEach(e=>e.resize(o))}_removeAllChildsFromCamera(){const e=k(this._flicking).camera.element;for(;e.firstChild;)e.removeChild(e.firstChild)}_insertPanelElements(e,t=null){const n=k(this._flicking).camera.element,i=(null==t?void 0:t.element)||null,r=document.createDocumentFragment();e.forEach(e=>r.appendChild(e.element));const s=i&&i.parentNode===n?i:null;n.insertBefore(r,s)}_removePanelElements(e){const t=k(this._flicking).camera.element;e.forEach(e=>{e.element.parentNode===t&&t.removeChild(e.element)})}_afterRender(){const e=k(this._flicking);if(e.camera.applyTransform(),e.useCSSOrder){const t=e.panels;this._strategy.getRenderingIndexesByOrder(e).forEach((e,n)=>{var i;(null==(i=t[e])?void 0:i.element)&&(t[e].element.style.order=`${n}`)})}}};class De extends ke{render(){return p(this,null,function*(){const e=k(this._flicking),t=this._strategy;t.updateRenderingPanels(e),t.renderPanels(e),this._resetPanelElementOrder(),this._afterRender()})}_collectPanels(){const e=k(this._flicking),t=e.camera;this._removeAllTextNodes(),this._panels=this._strategy.collectPanels(e,t.children)}_createPanel(e,t){return this._strategy.createPanel(e,t)}_resetPanelElementOrder(){const e=k(this._flicking),t=e.camera.element;let n=[];n=e.useCSSOrder?this.getRenderedPanels().map(e=>e.element).reverse():this._strategy.getRenderingElementsByOrder(e).reverse(),n.forEach((e,i)=>{const r=n[i-1]?n[i-1]:null;e.nextElementSibling!==r&&t.insertBefore(e,r)})}_removeAllTextNodes(){const e=k(this._flicking).camera.element;D(e.childNodes).forEach(t=>{t.nodeType===Node.TEXT_NODE&&e.removeChild(t)})}}class Le{get element(){return this._elProvider.element}get elementProvider(){return this._elProvider}get index(){return this._index}get position(){return this._pos+this._alignPos}get size(){return this._size}get sizeIncludingMargin(){return this._size+this._margin.prev+this._margin.next}get height(){return this._height}get margin(){return this._margin}get alignPosition(){return this._alignPos}get removed(){return this._removed}get rendered(){return this._rendered}get loading(){return this._loading}get range(){return{min:this._pos,max:this._pos+this._size}}get toggled(){return this._toggled}get toggleDirection(){return this._toggleDirection}get offset(){const e=this._toggleDirection,t=this._flicking.camera.rangeDiff;return e!==f.NONE&&this._toggled?e===f.PREV?-t:t:0}get progress(){const e=this._flicking;return this.index-e.camera.progress}get outsetProgress(){const e=this.position+this.offset,t=this._alignPos,n=this._flicking.camera,i=n.position;if(i===e)return 0;if(i<e){const r=e+(n.size-n.alignPosition)+t;return-Z(i,e,r)}{const r=e-(n.alignPosition+this._size-t);return 1-Z(i,r,e)}}get visibleRatio(){const e=this.range,t=this._size,n=this.offset,i=this._flicking.camera.visibleRange,r=e.min+n,s=e.max+n;if(s<=i.min||r>=i.max)return 0;let o=t;return i.min>r&&(o-=i.min-r),i.max<s&&(o-=s-i.max),o/t}set loading(e){this._loading=e}get align(){return this._align}set align(e){this._align=e,this._updateAlignPos()}constructor(e){const{index:t,align:n,flicking:i,elementProvider:r}=e;this._index=t,this._flicking=i,this._elProvider=r,this._align=n,this._removed=!1,this._rendered=!0,this._loading=!1,this._resetInternalStates()}markForShow(){this._rendered=!0,this._elProvider.show(this._flicking)}markForHide(){this._rendered=!1,this._elProvider.hide(this._flicking)}resize(e){var t;const n=this.element,i=this._flicking,{horizontal:r,useFractionalSize:s}=i;if(!n)return this;if(e)this._size=e.size,this._margin=g({},e.margin),this._height=null!=(t=e.height)?t:te({el:n,horizontal:!1,useFractionalSize:s,useOffset:!0,style:K(n)});else{const e=K(n);this._size=te({el:n,horizontal:r,useFractionalSize:s,useOffset:!0,style:e}),this._margin=r?{prev:parseFloat(e.marginLeft||"0"),next:parseFloat(e.marginRight||"0")}:{prev:parseFloat(e.marginTop||"0"),next:parseFloat(e.marginBottom||"0")},this._height=r?te({el:n,horizontal:!1,useFractionalSize:s,useOffset:!0,style:e}):this._size}return this.updatePosition(),this._updateAlignPos(),this}setSize(e){return q(this.element,e),this}contains(e){var t;return!!(null==(t=this.element)?void 0:t.contains(e))}destroy(){this._resetInternalStates(),this._removed=!0}includePosition(e,t=!1){return this.includeRange(e,e,t)}includeRange(e,t,n=!1){const i=this._margin,r=this.range;return n&&(r.min-=i.prev,r.max+=i.next),t>=r.min&&e<=r.max}isVisibleOnRange(e,t){const n=this.range;return t>n.min&&e<n.max}focus(e){return this._flicking.moveTo(this._index,e)}prev(){const e=this._index,t=this._flicking,n=t.renderer,i=n.panelCount;return 1===i?null:t.circularEnabled?n.getPanel(0===e?i-1:e-1):n.getPanel(e-1)}next(){const e=this._index,t=this._flicking,n=t.renderer,i=n.panelCount;return 1===i?null:t.circularEnabled?n.getPanel(e===i-1?0:e+1):n.getPanel(e+1)}increaseIndex(e){return this._index+=Math.max(e,0),this}decreaseIndex(e){return this._index-=Math.max(e,0),this}updatePosition(){const e=this._flicking.renderer.panels[this._index-1];return this._pos=e?e.range.max+e.margin.next+this._margin.prev:this._margin.prev,this}toggle(e,t){const n=this._toggleDirection,i=this._togglePosition;if(n===f.NONE||t===e)return!1;const r=this._toggled;return t>e?i>=e&&i<=t&&(this._toggled=n===f.NEXT):i<=e&&i>=t&&(this._toggled=n!==f.NEXT),r!==this._toggled}updateCircularToggleDirection(){const e=this._flicking;if(!e.circularEnabled)return this._toggleDirection=f.NONE,this._togglePosition=0,this._toggled=!1,this;const t=e.camera,n=t.range,i=t.alignPosition,r=t.visibleRange,s=r.max-r.min,o=n.min-i,a=n.max-i+s,l=this.includeRange(a-s,a,!1),h=this.includeRange(o,o+s,!1);return this._toggled=!1,l?(this._toggleDirection=f.PREV,this._togglePosition=this.range.max+n.min-n.max+i,this.toggle(1/0,t.position)):h?(this._toggleDirection=f.NEXT,this._togglePosition=this.range.min+n.max-s+i,this.toggle(-1/0,t.position)):(this._toggleDirection=f.NONE,this._togglePosition=0),this}_updateAlignPos(){this._alignPos=L(this._align,this._size)}_resetInternalStates(){this._size=0,this._pos=0,this._margin={prev:0,next:0},this._height=0,this._alignPos=0,this._toggled=!1,this._togglePosition=0,this._toggleDirection=f.NONE}}class Me{constructor(e){const{providerCtor:t}=e;this._providerCtor=t}renderPanels(){}getRenderingIndexesByOrder(e){const t=e.renderer.panels.filter(e=>e.rendered),n=t.filter(e=>e.toggled&&e.toggleDirection===f.PREV),i=t.filter(e=>e.toggled&&e.toggleDirection===f.NEXT);return[...n,...t.filter(e=>!e.toggled),...i].map(e=>e.index)}getRenderingElementsByOrder(e){const t=e.panels;return this.getRenderingIndexesByOrder(e).map(e=>t[e].element)}updateRenderingPanels(e){e.renderOnlyVisible?this._showOnlyVisiblePanels(e):e.panels.forEach(e=>e.markForShow())}collectPanels(e,t){const n=V(e.renderer.align);return t.map((t,i)=>new Le({index:i,elementProvider:new this._providerCtor(t),align:n,flicking:e}))}createPanel(e,t){return new Le(_(g({},t),{elementProvider:new this._providerCtor(e)}))}updatePanelSizes(e,t){e.panels.forEach(e=>e.setSize(t))}_showOnlyVisiblePanels(e){const t=e.renderer.panels,n=e.camera,i=n.visiblePanels.reduce((e,t)=>(e[t.index]=!0,e),{});t.forEach(t=>{t.index in i||t.loading?t.markForShow():e.holding||t.markForHide()}),n.updateOffset()}}class He extends Le{get element(){return this._elProvider.element}get cachedInnerHTML(){return this._cachedInnerHTML}get elementIndex(){const e=this._flicking,t=e.panelsPerView+1,n=e.panelCount;let i=this._index;return this._toggled&&(i=this._toggleDirection===f.NEXT?i+n:i-n),Q(i,t)}constructor(e){super(e),e.elementProvider.init(this),this._elProvider=e.elementProvider,this._cachedInnerHTML=null}cacheRenderResult(e){this._cachedInnerHTML=e}uncacheRenderResult(){this._cachedInnerHTML=null}render(){const e=this._flicking,{renderPanel:t,cache:n}=e.virtual,i=this._elProvider.element,r=this._cachedInnerHTML||t(this,this._index);r!==i.innerHTML&&(i.innerHTML=r,n&&this.cacheRenderResult(r))}increaseIndex(e){return this.uncacheRenderResult(),super.increaseIndex(e)}decreaseIndex(e){return this.uncacheRenderResult(),super.decreaseIndex(e)}}class Fe{renderPanels(e){const t=e.virtual,n=e.visiblePanels,i=ee(e.panelsPerView+1);n.forEach(e=>{const n=e.elementIndex;e.render(),t.show(n),i[n]=-1}),i.filter(e=>e>=0).forEach(e=>{t.hide(e)})}getRenderingIndexesByOrder(e){const t=e.virtual,n=[...e.visiblePanels].filter(e=>e.rendered).sort((e,t)=>e.position+e.offset-(t.position+t.offset));if(n.length<=0)return t.elements.map((e,t)=>t);return[...n.map(e=>e.elementIndex),...t.elements.map((e,t)=>_(g({},e),{idx:t})).filter(e=>!e.visible).map(e=>e.idx)]}getRenderingElementsByOrder(e){const t=e.virtual.elements;return this.getRenderingIndexesByOrder(e).map(e=>t[e].nativeElement)}updateRenderingPanels(e){const t=e.renderer.panels,n=e.camera,i=n.visiblePanels.reduce((e,t)=>(e[t.index]=!0,e),{});t.forEach(e=>{e.index in i||e.loading?e.markForShow():e.markForHide()}),n.updateOffset()}collectPanels(e){const t=V(e.renderer.align);return ee(e.virtual.initialPanelCount).map(n=>new He({index:n,elementProvider:new ze(e),align:t,flicking:e}))}createPanel(e,t){return new He(_(g({},t),{elementProvider:new ze(t.flicking)}))}updatePanelSizes(e,t){e.virtual.elements.forEach(e=>{q(e.nativeElement,t)}),e.panels.forEach(e=>e.setSize(t))}}const Ve=Object.freeze(Object.defineProperty({__proto__:null,ExternalRenderer:class extends ke{_removePanelElements(e){}_removeAllChildsFromCamera(){}},NormalRenderingStrategy:Me,Renderer:ke,VanillaRenderer:De,VirtualRenderingStrategy:Fe},Symbol.toStringTag,{value:"Module"})),Ge=class extends e{constructor(e,t={}){super(),this._scheduleResize=!1;const{align:n=m.CENTER,defaultIndex:i=0,horizontal:r=!0,circular:s=!1,circularFallback:o=P.LINEAR,bound:a=!1,adaptive:l=!1,panelsPerView:h=-1,noPanelStyleOverride:c=!1,resizeOnContentsReady:u=!1,nested:g=!1,needPanelThreshold:_=0,preventEventsBeforeInit:p=!0,deceleration:f=.0075,duration:v=500,easing:E=e=>1-d(1-e,3),inputType:x=["mouse","touch"],moveType:O="snap",threshold:T=40,dragThreshold:b=1,interruptable:R=!0,bounce:I="20%",iOSEdgeSwipeThreshold:A=30,preventClickOnDrag:S=!0,preventDefaultOnDrag:N=!1,disableOnInit:C=!1,changeOnHold:y=!1,renderOnlyVisible:w=!1,virtual:k=null,autoInit:D=!0,autoResize:L=!0,useResizeObserver:M=!0,resizeDebounce:H=0,observePanelResize:F=!1,maxResizeDebounce:V=100,useFractionalSize:G=!1,usePercentagePos:B=!1,externalRenderer:j=null,renderExternal:W=null,optimizeSizeUpdate:U=!1,animationThreshold:$=.5,useCSSOrder:X=!1}=t;this._initialized=!1,this._plugins=[],this._isResizing=!1,this._align=n,this._defaultIndex=i,this._horizontal=r,this._circular=s,this._circularFallback=o,this._bound=a,this._adaptive=l,this._panelsPerView=h,this._noPanelStyleOverride=c,this._resizeOnContentsReady=u,this._nested=g,this._virtual=k,this._needPanelThreshold=_,this._preventEventsBeforeInit=p,this._deceleration=f,this._duration=v,this._easing=E,this._inputType=x,this._moveType=O,this._threshold=T,this._dragThreshold=b,this._interruptable=R,this._bounce=I,this._iOSEdgeSwipeThreshold=A,this._preventClickOnDrag=S,this._preventDefaultOnDrag=N,this._disableOnInit=C,this._changeOnHold=y,this._renderOnlyVisible=w,this._autoInit=D,this._autoResize=L,this._useResizeObserver=M,this._resizeDebounce=H,this._maxResizeDebounce=V,this._observePanelResize=F,this._useFractionalSize=G,this._usePercentagePos=B,this._externalRenderer=j,this._renderExternal=W,this._optimizeSizeUpdate=U,this._animationThreshold=$,this._useCSSOrder=X,this._viewport=new ye(this,z(e)),this._autoResizer=new Ne(this),this._renderer=this._createRenderer(),this._camera=this._createCamera(),this._control=this._createControl(),this._virtualManager=new we(this,k),this._autoInit&&this.init()}get control(){return this._control}get camera(){return this._camera}get renderer(){return this._renderer}get viewport(){return this._viewport}get autoResizer(){return this._autoResizer}get initialized(){return this._initialized}get circularEnabled(){return this._camera.circularEnabled}get virtualEnabled(){return this._panelsPerView>0&&null!=this._virtual}get index(){return this._control.activeIndex}get element(){return this._viewport.element}get currentPanel(){return this._control.activePanel}get panels(){return this._renderer.panels}get panelCount(){return this._renderer.panelCount}get visiblePanels(){return this._camera.visiblePanels}get animating(){return this._control.animating}get holding(){return this._control.holding}get activePlugins(){return this._plugins}get align(){return this._align}get defaultIndex(){return this._defaultIndex}get horizontal(){return this._horizontal}get circular(){return this._circular}get circularFallback(){return this._circularFallback}get bound(){return this._bound}get adaptive(){return this._adaptive}get panelsPerView(){return this._panelsPerView}get noPanelStyleOverride(){return this._noPanelStyleOverride}get resizeOnContentsReady(){return this._resizeOnContentsReady}get nested(){return this._nested}get needPanelThreshold(){return this._needPanelThreshold}get preventEventsBeforeInit(){return this._preventEventsBeforeInit}get deceleration(){return this._deceleration}get easing(){return this._easing}get duration(){return this._duration}get inputType(){return this._inputType}get moveType(){return this._moveType}get threshold(){return this._threshold}get dragThreshold(){return this._dragThreshold}get animationThreshold(){return this._animationThreshold}get useCSSOrder(){return this._useCSSOrder}get interruptable(){return this._interruptable}get bounce(){return this._bounce}get iOSEdgeSwipeThreshold(){return this._iOSEdgeSwipeThreshold}get preventClickOnDrag(){return this._preventClickOnDrag}get preventDefaultOnDrag(){return this._preventDefaultOnDrag}get disableOnInit(){return this._disableOnInit}get changeOnHold(){return this._changeOnHold}get renderOnlyVisible(){return this._renderOnlyVisible}get virtual(){return this._virtualManager}get autoInit(){return this._autoInit}get autoResize(){return this._autoResize}get useResizeObserver(){return this._useResizeObserver}get observePanelResize(){return this._observePanelResize}get resizeDebounce(){return this._resizeDebounce}get maxResizeDebounce(){return this._maxResizeDebounce}get useFractionalSize(){return this._useFractionalSize}get usePercentagePos(){return this._usePercentagePos}get externalRenderer(){return this._externalRenderer}get renderExternal(){return this._renderExternal}get optimizeSizeUpdate(){return this._optimizeSizeUpdate}set align(e){this._align=e,this._renderer.align=e,this._camera.align=e,this.resize()}set defaultIndex(e){this._defaultIndex=e}set horizontal(e){this._horizontal=e,this._control.controller.updateDirection(),this.resize()}set circular(e){this._circular=e,this.resize()}set bound(e){this._bound=e,this.resize()}set adaptive(e){this._adaptive=e,this.resize()}set panelsPerView(e){this._panelsPerView=e,this.resize()}set noPanelStyleOverride(e){this._noPanelStyleOverride=e,this.resize()}set resizeOnContentsReady(e){this._resizeOnContentsReady=e,e&&this._renderer.checkPanelContentsReady(this._renderer.panels)}set nested(e){this._nested=e;const t=this._control.controller.axes;t&&(t.options.nested=e)}set needPanelThreshold(e){this._needPanelThreshold=e}set preventEventsBeforeInit(e){this._preventEventsBeforeInit=e}set deceleration(e){this._deceleration=e;const t=this._control.controller.axes;t&&(t.options.deceleration=e)}set easing(e){this._easing=e;const t=this._control.controller.axes;t&&(t.options.easing=e)}set duration(e){this._duration=e}set inputType(e){this._inputType=e;const t=this._control.controller.panInput;t&&(t.options.inputType=e)}set moveType(e){this._moveType=e;const t=this._control,n=this._createControl(),i=t.activePanel;n.copy(t);const r=i?this._camera.getProgressInPanel(i):0;this._control=n,this._control.updatePosition(r),this._control.updateInput()}set threshold(e){this._threshold=e}set dragThreshold(e){this._dragThreshold=e;const t=this._control.controller.panInput;t&&(t.options.threshold=e)}set animationThreshold(e){this._animationThreshold=e}set useCSSOrder(e){this._useCSSOrder=e}set interruptable(e){this._interruptable=e;const t=this._control.controller.axes;t&&(t.options.interruptable=e)}set bounce(e){this._bounce=e,this._control.updateInput()}set iOSEdgeSwipeThreshold(e){this._iOSEdgeSwipeThreshold=e;const t=this._control.controller.panInput;t&&(t.options.iOSEdgeSwipeThreshold=e)}set preventClickOnDrag(e){if(e===this._preventClickOnDrag)return;const t=this._control.controller;e?t.addPreventClickHandler():t.removePreventClickHandler(),this._preventClickOnDrag=e}set preventDefaultOnDrag(e){this._preventDefaultOnDrag=e;const t=this._control.controller.panInput;t&&(t.options.preventDefaultOnDrag=e)}set disableOnInit(e){this._disableOnInit=e}set changeOnHold(e){this._changeOnHold=e}set renderOnlyVisible(e){this._renderOnlyVisible=e,this._renderer.render()}set autoResize(e){this._autoResize=e,this._initialized&&(e?this._autoResizer.enable():this._autoResizer.disable())}set useResizeObserver(e){this._useResizeObserver=e,this._initialized&&this._autoResize&&this._autoResizer.enable()}set observePanelResize(e){this._observePanelResize=e,this._initialized&&this._autoResize&&(e?this._autoResizer.observePanels():this._autoResizer.unobservePanels())}set optimizeSizeUpdate(e){this._optimizeSizeUpdate=e}set usePercentagePos(e){this._usePercentagePos=e,this._camera.applyTransform()}init(){if(this._initialized)return Promise.resolve();const t=this._camera,n=this._renderer,i=this._control,r=this._virtualManager,s=this.trigger,o=this._preventEventsBeforeInit;return t.init(),r.init(),n.init(this),i.init(this),o&&(this.trigger=()=>this),this._initialResize(),this._moveToInitialPanel(),this._autoResize&&this._autoResizer.enable(),this._preventClickOnDrag&&i.controller.addPreventClickHandler(),this._disableOnInit&&this.disableInput(),n.checkPanelContentsReady(n.panels),this._initialized=!0,n.render().then(()=>{this._plugins.forEach(e=>e.init(this)),o&&(this.trigger=s),this.trigger(new e.ComponentEvent(b.READY))})}destroy(){this.off(),this._autoResizer.disable(),this._control.destroy(),this._camera.destroy(),this._renderer.destroy(),this._plugins.forEach(e=>e.destroy()),this._scheduleResize=!1,this._initialized=!1,this._isResizing=!1}prev(e=this._duration){var t,n,i;return this.moveTo(null!=(i=null==(n=null==(t=this._control.activePanel)?void 0:t.prev())?void 0:n.index)?i:-1,e,f.PREV)}next(e=this._duration){var t,n,i;return this.moveTo(null!=(i=null==(n=null==(t=this._control.activePanel)?void 0:t.next())?void 0:n.index)?i:this._renderer.panelCount,e,f.NEXT)}moveTo(e,t=this._duration,n=f.NONE){const i=this._renderer,r=i.panelCount,s=i.getPanel(e);return s?this._control.animating?Promise.reject(new oe(N.ANIMATION_ALREADY_PLAYING,S.ANIMATION_ALREADY_PLAYING)):(this._control.holding&&this._control.controller.release(),this._control.moveToPanel(s,{duration:t,direction:n})):Promise.reject(new oe(N.INDEX_OUT_OF_RANGE(e,0,r-1),S.INDEX_OUT_OF_RANGE))}updateAnimation(e,t,n){if(!this._control.animating)return;const i=this._renderer,r=i.panelCount,s=i.getPanel(e);if(!s)throw new oe(N.INDEX_OUT_OF_RANGE(e,0,r-1),S.INDEX_OUT_OF_RANGE);this._control.updateAnimation(s,t,n)}stopAnimation(){this._control.animating&&this._control.stopAnimation()}getPanel(e){return this._renderer.getPanel(e)}enableInput(){return this._control.enable(),this}disableInput(){return this._control.disable(),this}getStatus(e={}){var t,n;const{index:i=!0,position:r=!0,includePanelHTML:s=!1,visiblePanelsOnly:o=!1}=e,a=this._camera,l={panels:(o?this.visiblePanels:this.panels).map(e=>{const t={index:e.index};return s&&(t.html=e.element.outerHTML),t})};if(i&&(l.index=this.index),r){const e=a.findNearestAnchor(a.position);e&&(l.position={panel:e.panel.index,progressInPanel:a.getProgressInPanel(e.panel)})}if(o){const e=this.visiblePanels;l.visibleOffset=null!=(n=null==(t=e[0])?void 0:t.index)?n:0}return l}setStatus(e){var t;if(!this._initialized)throw new oe(N.NOT_INITIALIZED,S.NOT_INITIALIZED);const{index:n,position:i,visibleOffset:r,panels:s}=e,o=this._renderer,a=this._control;if((null==(t=s[0])?void 0:t.html)&&!this._renderExternal&&(o.batchRemove({index:0,deleteCount:this.panels.length,hasDOMInElements:!0}),o.batchInsert({index:0,elements:B(s.map(e=>e.html)),hasDOMInElements:!0})),null!=n){const e=r?n-r:n;this.moveTo(e,0).catch(()=>{})}if(i&&this._moveType===v.FREE_SCROLL){const{panel:e,progressInPanel:t}=i,n=r?e-r:e,s=o.panels[n].range,l=s.min+(s.max-s.min)*t;a.moveToPosition(l,0).catch(()=>{})}}addPlugins(...e){return this._initialized&&e.forEach(e=>e.init(this)),this._plugins.push(...e),this}removePlugins(...e){return e.forEach(e=>{const t=Y(this._plugins,t=>t===e);t>=0&&(e.destroy(),this._plugins.splice(t,1))}),this}resize(){return p(this,null,function*(){if(!this._initialized)return;if(this._isResizing)return void(this._scheduleResize=!0);this._scheduleResize=!1,this._isResizing=!0;const t=this._viewport,n=this._renderer,i=this._camera,r=this._control,s=r.activePanel,o=t.width,a=t.height,l=s?i.getProgressInPanel(s):0;if(this.trigger(new e.ComponentEvent(b.BEFORE_RESIZE,{width:o,height:a,element:t.element})),this._optimizeSizeUpdate){const e=t.measureSize();(this.horizontal&&e.width!==o||!this.horizontal&&e.height!==a)&&(yield n.forceRenderAllPanels())}else yield n.forceRenderAllPanels();if(!this._initialized)return;if(t.resize(),n.updatePanelSize(),i.updateAlignPos(),i.updateRange(),i.updateAnchors(),i.updateAdaptiveHeight(),i.updatePanelOrder(),r.animating||r.updatePosition(l),i.updateOffset(),yield n.render(),!this._initialized)return;r.animating||(r.updatePosition(l),r.updateInput());const h=t.width,c=t.height,d=h!==o||c!==a;this.trigger(new e.ComponentEvent(b.AFTER_RESIZE,{width:t.width,height:t.height,prev:{width:o,height:a},sizeChanged:d,element:t.element})),this._isResizing=!1,this._scheduleResize&&this.resize()})}append(e){return this.insert(this._renderer.panelCount,e)}prepend(e){return this.insert(0,e)}insert(e,t){if(this._renderExternal)throw new oe(N.NOT_ALLOWED_IN_FRAMEWORK,S.NOT_ALLOWED_IN_FRAMEWORK);return this._renderer.batchInsert({index:e,elements:B(t),hasDOMInElements:!0})}remove(e,t=1){if(this._renderExternal)throw new oe(N.NOT_ALLOWED_IN_FRAMEWORK,S.NOT_ALLOWED_IN_FRAMEWORK);return this._renderer.batchRemove({index:e,deleteCount:t,hasDOMInElements:!0})}_createControl(){var e;const t=this._moveType,n=Object.keys(v).map(e=>v[e]),i=Array.isArray(t)?t[0]:t,r=Array.isArray(t)&&null!=(e=t[1])?e:{};if(!W(n,i))throw new oe(N.WRONG_OPTION("moveType",JSON.stringify(t)),S.WRONG_OPTION);switch(i){case v.SNAP:return new Ie(r);case v.FREE_SCROLL:return new Re(r);case v.STRICT:return new Ae(r)}}_createCamera(){return this._circular&&this._bound&&console.warn('"circular" and "bound" option cannot be used together, ignoring bound.'),new de(this,{align:this._align})}_createRenderer(){const e=this._externalRenderer;return this._virtual&&this._panelsPerView<=0&&console.warn('"virtual" and "panelsPerView" option should be used together, ignoring virtual.'),e||(this._renderExternal?this._createExternalRenderer():this._createVanillaRenderer())}_createExternalRenderer(){const{renderer:e,rendererOptions:t}=this._renderExternal;return new e(g({align:this._align},t))}_createVanillaRenderer(){const e=this.virtualEnabled;return new De({align:this._align,strategy:e?new Fe:new Me({providerCtor:Ce})})}_moveToInitialPanel(){const e=this._renderer,t=this._control,n=this._camera,i=e.getPanel(this._defaultIndex)||e.getPanel(0);if(!i)return;const r=n.findNearestAnchor(i.position),s=r&&i.position!==r.panel.position&&i.index!==r.panel.index?r.panel:i;if(t.setActive(s,null,!1),!r)throw new oe(N.POSITION_NOT_REACHABLE(s.position),S.POSITION_NOT_REACHABLE);let o=s.position;n.canReach(s)||(o=r.position),n.lookAt(o),t.updateInput(),n.updateOffset()}_initialResize(){const t=this._viewport,n=this._renderer,i=this._camera,r=this._control;this.trigger(new e.ComponentEvent(b.BEFORE_RESIZE,{width:0,height:0,element:t.element})),t.resize(),n.updatePanelSize(),i.updateAlignPos(),i.updateRange(),i.updateAnchors(),i.updateOffset(),r.updateInput();const s=t.width,o=t.height,a=0!==s||0!==o;this.trigger(new e.ComponentEvent(b.AFTER_RESIZE,{width:t.width,height:t.height,prev:{width:0,height:0},sizeChanged:a,element:t.element}))}};Ge.VERSION="4.17.0";let Be=Ge;const je={HOLD_START:"sideHoldStart",HOLD_END:"sideHoldEnd",MOVE_START:"sideMoveStart",MOVE:"sideMove",MOVE_END:"sideMoveEnd",WILL_CHANGE:"sideWillChange",CHANGED:"sideChanged",WILL_RESTORE:"sideWillRestore",RESTORED:"sideRestored"};const We=Object.freeze(Object.defineProperty({__proto__:null,CrossFlicking:class extends Be{constructor(e,t){super(e,t),this._syncToCategory=(e,t)=>{this._disableIndexSync||(this.stopAnimation(),this._sideFlicking.forEach((n,i)=>{const{start:r,end:s}=this._sideState[i];r<=e&&s>=e&&t!==i&&(n.stopAnimation(),n.moveTo(e,0),this.moveTo(i,0))}))},this._setDraggable=(e,t)=>{if(!this._disableSlideOnHold)return;const n=this._originalDragThreshold,i=t?n&&n>=10?n:10:1/0;e===O.HORIZONTAL===this.horizontal?this.dragThreshold=i:e===O.VERTICAL===this.horizontal&&this._sideFlicking.forEach(e=>{e.dragThreshold=i})},this._setPreviousSideIndex=()=>{this._sideFlicking.forEach((e,t)=>{const{start:n,end:i}=this._sideState[t];this._preserveIndex?this._nextIndex!==t&&(e.index<n?(e.stopAnimation(),e.moveTo(n,0)):e.index>i&&(e.stopAnimation(),e.moveTo(i,0))):this._nextIndex!==t&&e.moveTo(n,0)})},this._addSideIndex=e=>{e.sideIndex=this._sideFlicking[e.index].index},this._onHorizontalHoldStart=()=>{this._setDraggable(O.HORIZONTAL,!0),this._moveDirection=null},this._onHorizontalMove=e=>{e.isTrusted&&!this._moveDirection&&(this._setDraggable(O.VERTICAL,!1),this._moveDirection=O.HORIZONTAL)},this._onHorizontalMoveEnd=e=>{const t=this.visiblePanels;t.length>1?this._nextIndex="NEXT"===e.direction?t[1].index:t[0].index:this._nextIndex=t[0].index,this._setDraggable(O.VERTICAL,!0),this._moveDirection=null,requestAnimationFrame(()=>this._setPreviousSideIndex()),e.isTrusted&&this._syncToCategory(this._sideFlicking[this._nextIndex].index,this._nextIndex)},this._onSideHoldStart=()=>{this._setDraggable(O.VERTICAL,!0),this._moveDirection=null},this._onSideMove=e=>{e.isTrusted&&!this._moveDirection&&(this._setDraggable(O.HORIZONTAL,!1),this._moveDirection=O.VERTICAL)},this._onSideMoveEnd=()=>{this._setDraggable(O.HORIZONTAL,!0),this._moveDirection=null},this._onSideChanged=e=>{this.visiblePanels.length<2&&this._sideFlicking[this.index]===e.currentTarget&&this._syncToCategory(e.index,this.index)};const{sideOptions:n={},preserveIndex:i=!0,disableSlideOnHold:r=!0,disableIndexSync:s=!1}=t;this._moveDirection=null,this._nextIndex=0,this._originalDragThreshold=this.dragThreshold,this._sideOptions=n,this._preserveIndex=i,this._disableSlideOnHold=r,this._disableIndexSync=s}get sideFlicking(){return this._sideFlicking}get sideIndex(){return this._sideFlicking.map(e=>e.index)}get sideState(){return this._sideState}get sideOptions(){return this._sideOptions}get preserveIndex(){return this._preserveIndex}get disableSlideOnHold(){return this._disableSlideOnHold}get disableIndexSync(){return this._disableIndexSync}set sideOptions(e){this._sideOptions=e}set preserveIndex(e){this._preserveIndex=e}set disableSlideOnHold(e){this._disableSlideOnHold=e}set disableIndexSync(e){this._disableIndexSync=e}init(){return super.init().then(()=>{this._sideState=this._createSideState(),this._sideFlicking=this._createSideFlicking(),this._addComponentEvents()})}destroy(){this._sideFlicking.forEach(e=>{e.destroy()}),super.destroy()}_addComponentEvents(){this.on(b.HOLD_START,this._onHorizontalHoldStart),this.on(b.MOVE,this._onHorizontalMove),this.on(b.MOVE_END,this._onHorizontalMoveEnd),[b.CHANGED,b.WILL_CHANGE].forEach(e=>{this.on(e,this._addSideIndex)}),this._sideFlicking.forEach((t,n)=>{t.on(b.HOLD_START,this._onSideHoldStart),t.on(b.MOVE,this._onSideMove),t.on(b.MOVE_END,this._onSideMoveEnd),t.on(b.CHANGED,this._onSideChanged),Object.keys(je).forEach(i=>{t.on(b[i],t=>{this.trigger(new e.ComponentEvent(je[i],g({mainIndex:n},t)))})})})}_createSideState(){const e=this.element,t=this.camera.element,n=D(t.children);let i=[];if(re(e,"data-cross-").structure)i=this._getSideStateFromCrossStructure(n);else{const e=this._getGroupFromAttribute(n),t=Object.keys(e);t.length?(i=this._getSideStateFromGroup(e),this.remove(0,this.panelCount-t.length)):i=this._getSideStateFromPanels(n),this._createCrossStructure(i)}return this.resize(),i}_createCrossStructure(e){const t=document.createElement("div");let n="";t.classList.add(E.CAMERA),e.forEach((e,t)=>{const i=this.camera.children[t];n+=e.element.innerHTML,Array.from(i.attributes).forEach(e=>i.removeAttribute(e.name))}),t.innerHTML=n,e.forEach((e,n)=>{const i=this.camera.children[n];[E.VIEWPORT,E.VERTICAL].forEach(e=>{i.classList.contains(e)||i.classList.add(e)}),i.innerHTML=t.outerHTML}),this.element.setAttribute("data-cross-structure","true")}_getGroupFromAttribute(e){const t=[],n={};return e.forEach(e=>{const i=re(e,"data-cross-").groupkey;i&&!W(t,i)?(t.push(i),n[i]=[e]):i&&n[i].push(e)}),n}_getSideStateFromGroup(e){return Object.keys(e).reduce((t,n)=>{const i=t.length?+t[t.length-1].end+1:0,r=e[n].reduce((e,t)=>(e.innerHTML+=t.outerHTML,e),document.createElement("div"));return[...t,{key:n,start:i,end:i+e[n].length-1,element:r}]},[])}_getSideStateFromPanels(e){return e.reduce((e,t,n)=>{const i=e.length?+e[e.length-1].end+1:0;return[...e,{key:n.toString(),start:i,end:i+t.children.length-1,element:t}]},[])}_getSideStateFromCrossStructure(e){const t=this._getGroupFromAttribute(e);return this._getSideStateFromGroup(t)}_createSideFlicking(){return this.sideState.map((e,t)=>new Be(this.camera.children[t],_(g({},this.sideOptions),{horizontal:!1,panelsPerView:1,defaultIndex:e.start})))}},SIDE_EVENTS:je},Symbol.toStringTag,{value:"Module"})),Ue=Object.freeze(Object.defineProperty({__proto__:null,AnchorPoint:I,Panel:Le,VanillaElementProvider:Ce,Viewport:ye,VirtualElementProvider:ze,VirtualManager:we,VirtualPanel:He},Symbol.toStringTag,{value:"Module"})),$e=e=>{const t="object"==typeof e?e.camera:e;return Ye(t)},Xe=e=>{const t="object"==typeof e?e.panel:e;return F(Ye(t))},Ye=e=>{if("number"==typeof e)return`${e}px`;switch(e){case m.CENTER:return"50%";case m.NEXT:return"100%";case m.PREV:return"0%";default:return e}},Ze=(e,t,n,i,r)=>e.batchInsertDefer(...t.added.slice(i,r).map((e,t)=>({index:e,elements:[n[t]],hasDOMInElements:!1}))),Ke=(e,t,n)=>{const i=e.panels.slice(t,n);return e.batchRemoveDefer({index:t,deleteCount:i.length,hasDOMInElements:!1})},qe=Object.freeze(Object.defineProperty({__proto__:null,getDefaultCameraTransform:(e=m.CENTER,t=!0,n)=>{const i=$e(e),r=Xe(e);if(null==r)return"";const s=`calc(${i} - (${n||"0px"} * ${r.percentage}) - ${r.absolute}px)`;return t?`translate(${s})`:`translate(0, ${s})`},getRenderingPanels:(e,t)=>{const n=t.removed.reduce((e,t)=>(e[t]=!0,e),{}),i=t.maintained.reduce((e,[t,n])=>(e[t]=n,e),{}),r=e.panels.filter(e=>!n[e.index]);return e.useCSSOrder||r.sort((e,t)=>e.position+e.offset-(t.position+t.offset)),[...r.map(e=>t.list[i[e.index]]),...t.added.map(e=>t.list[e])]},sync:(e,t,n)=>{const i=e.renderer,r=i.panels,s=[...t.prevList],o=[],a=[];if(t.removed.length>0){let e=-1,n=-1;t.removed.forEach(t=>{e<0&&(e=t),n>=0&&t!==n-1?(a.push(...Ke(i,n,e+1)),e=t,n=t):n=t,s.splice(t,1)}),a.push(...Ke(i,n,e+1))}if(t.ordered.forEach(([e,t])=>{const n=r.splice(e,1)[0];r.splice(t,0,n)}),t.ordered.length>0&&(r.forEach((e,t)=>{const n=t-e.index;n>0?e.increaseIndex(n):e.decreaseIndex(-n)}),r.sort((e,t)=>e.index-t.index),r.forEach(e=>{e.updatePosition()})),t.added.length>0){let e=-1,r=-1;const a=n.slice(s.length);t.added.forEach((n,s)=>{e<0&&(e=s),r>=0&&n!==r+1?(o.push(...Ze(i,t,a,e,s+1)),e=-1,r=-1):r=n}),e>=0&&o.push(...Ze(i,t,a,e))}if(t.added.length>0||t.removed.length>0)i.updateAfterPanelChange(o,a);else if(t.ordered.length>0){const t=e.camera;t.updateRange(),t.updateOffset(),t.updateAnchors(),t.resetNeedPanelHistory()}},withFlickingMethods:(t,n)=>{[e.prototype,Be.prototype].forEach(e=>{Object.getOwnPropertyNames(e).filter(e=>!t[e]&&0!==e.indexOf("_")&&"constructor"!==e).forEach(i=>{const r=Object.getOwnPropertyDescriptor(e,i);if(r.value)Object.defineProperty(t,i,{value:function(...e){return r.value.call(this[n],...e)}});else{const e={};r.get&&(e.get=function(){var e;const t=this[n];return t&&(null==(e=r.get)?void 0:e.call(t))}),r.set&&(e.set=function(...e){var t;return null==(t=r.set)?void 0:t.call(this[n],...e)}),Object.defineProperty(t,i,e)}})})}},Symbol.toStringTag,{value:"Module"}));function Je(e){return Object.keys(e)}function Qe(e){return"function"==typeof e}var et="__observers__",tt="__CFCS_DETECTED_DEPENDENCIES__";function nt(e,t,n){if(2===arguments.length)for(var i,r=0,s=t.length;r<s;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}function it(){var e=function(){Object[tt]=Object[tt]||{};var e=Object[tt];return e[1]=e[1]||[],e[1]}();return e[e.length-1]}var rt=function(){function t(t){this._emitter=new e,this._current=t}var n=t.prototype;return Object.defineProperty(n,"current",{get:function(){var e=it();return null==e||e.push(this),this._current},set:function(e){this._setCurrent(e)},enumerable:!1,configurable:!0}),n.subscribe=function(e){return this.current,this._emitter.on("update",e),this},n.unsubscribe=function(e){return this._emitter.off("update",e),this},n._setCurrent=function(e){var t=this._current,n=e!==t;this._current=e,n&&this._emitter.trigger("update",e,t)},n.toString=function(){return"".concat(this.current)},n.valueOf=function(){return this.current},t}();function st(e,t,n){void 0===n&&(n=t);var i={configurable:!0,get:function(){return ct(this,n).current},set:function(e){ct(this,n,e).current=e}};Object.defineProperty(e,t,i),n!==t&&Object.defineProperty(e,n,{configurable:!0,get:function(){return ct(this,n).current}})}function ot(e,t){var n,i=Qe(e)?e():e,r={};return lt(r),Je(i).forEach(function(e){var t,n=i[e];(t=n)&&function(e){return"object"==typeof e}(t)&&"current"in t&&"subscribe"in t&&"unsubscribe"in t?dt(r,e,n):dt(r,e,at(n)),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.length>1?st(e[0],e[1]):function(t,n){return st(t,n,e[0])}}(e)(r,e)}),(n=r).subscribe=function(e,t){this[e],ct(this,e).subscribe(t)},n.unsubscribe=function(e,t){var n=this;e?e in this&&ct(this,e).unsubscribe(t):Je(ht(this)).forEach(function(e){n.unsubscribe(e)})},r}function at(e){return new rt(e)}function lt(e){var t={};return Object.defineProperty(e,et,{get:function(){return t}}),t}function ht(e,t){var n,i;e[et]||lt(e);var r=e[et],s=null===(i=null===(n=null==e?void 0:e.constructor)||void 0===n?void 0:n.prototype)||void 0===i?void 0:i.__computed__;return s&&s.forEach(function(t){!(t in r)&&t in e&&e[t]}),r}function ct(e,t,n){var i=ht(e);return i[t]||(i[t]=at(n)),i[t]}function dt(e,t,n){ht(e)[t]=n}const ut=e=>!e.circular&&0===e.index,gt=e=>!e.circular&&e.index===e.panelCount-1,_t=e=>e.panelCount,pt=e=>e.index,mt=e=>{const t=e.camera,n=(t.position-t.range.min)/(t.range.max-t.range.min);return 100*Math.min(Math.max(n,0),1)},ft=({onInit:e,onDestroy:t,setMethods:n,getProps:i})=>{var r,s,o;let a;n(["moveTo"]);const l=i().options,h=ot({isReachStart:!(null==l?void 0:l.defaultIndex)||0===(null==l?void 0:l.defaultIndex),isReachEnd:!(!(null==l?void 0:l.totalPanelCount)||!(null==l?void 0:l.defaultIndex))&&l.defaultIndex===l.totalPanelCount-1,totalPanelCount:null!=(r=null==l?void 0:l.totalPanelCount)?r:0,currentPanelIndex:null!=(s=null==l?void 0:l.defaultIndex)?s:0,progress:0,indexProgress:null!=(o=null==l?void 0:l.defaultIndex)?o:0,moveTo:e=>null==a?Promise.reject(new Error("Flicking instance is not available")):(null==a?void 0:a.animating)?Promise.resolve():a.moveTo(e)});const c=()=>{void 0!==a&&(h.isReachStart=ut(a),h.isReachEnd=gt(a),h.currentPanelIndex=pt(a))},d=()=>{void 0!==a&&(c(),h.totalPanelCount=_t(a))},u=()=>{void 0!==a&&(h.progress=mt(a),h.indexProgress=(e=>{const t=e.camera,n=t.anchorPoints,i=n.length,r=t.position,s=e.circularEnabled;let o=0;const{min:a,max:l}=t.range,h=n[0],c=l-n[i-1].position+(h.position-a);return n.some((e,t)=>{const a=e.position,l=n[t+1];if(0===t&&r<=a)o=s?(r-a)/c:(r-a)/e.panel.size;else if(t===i-1&&r>=a)o=s?t+(r-a)/c:t+(r-a)/e.panel.size;else{if(!(l&&a<=r&&r<=l.position))return!1;o=t+(r-a)/(l.position-a)}return!0}),o})(a))};return e((e,t)=>{a=t.flicking,void 0!==a&&(h.isReachStart=ut(a),h.isReachEnd=gt(a),h.currentPanelIndex=pt(a),h.progress=mt(a),h.totalPanelCount=_t(a),null==a||a.on("changed",c),null==a||a.on("panelChange",d),null==a||a.on("move",u))}),t(()=>{null==a||a.off("changed",c),null==a||a.off("panelChange",d),null==a||a.off("move",u)}),h},vt=Object.freeze(Object.defineProperty({__proto__:null,connectFlickingReactiveAPI:(t,n)=>{const i=function(t,n){var i=Qe(t)?{setup:t}:t;function r(){var e,t,r,s,o;return null!==(o=null!==(r=null!==(e=null==n?void 0:n())&&void 0!==e?e:null===(t=i.props)||void 0===t?void 0:t.call(i))&&void 0!==r?r:null===(s=i.data)||void 0===s?void 0:s.call(i))&&void 0!==o?o:{}}var s=new e,o=[],a=[],l=[],h=[],c={current:null},d=[],u=null,g=[],_=[],p=function(e){o.push(e)},m=function(e){u=e},f=function(e){g=e},v=function(e){_=e};return i.setup&&(c.current=i.setup({getProps:r,setInitialState:m,setEvents:f,setMethods:v,onMounted:p,onDestroy:function(e){l.push(e)},onInit:function(e){a.push(e)},emit:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.trigger.apply(s,nt([e],t,!1))},on:function(e){h.push(e)}})||null),i.created&&(c.current=i.created(r())||null),i.events&&f(i.events),i.state&&m(i.state),i.methods&&v(i.methods),i.mounted&&p(i.mounted),i.destroy&&l.push(i.destroy),i.init&&a.push(i.init),i.on&&h.push(function(e,t,n){var r=i.on(e,t,n);return function(){var s;r&&r(),null===(s=i.off)||void 0===s||s.call(i,e,t,n)}}),{events:function(){return g},state:function(){var e=c.current;if(u)return u;if(e){var t=ht(e);m(Je(t).reduce(function(e,n){return e[n]=t[n].current,e},{}))}return u||{}},instance:function(){return c.current},mounted:function(){var e=r();o.forEach(function(t){c.current=t(e,c.current)||c.current})},init:function(){var e=c.current,t=r();d=g.map(function(e){var t=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];(t=s).trigger.apply(t,nt([e],n,!1))},n=c.current;return h.map(function(i){return i(n,e,t)}).filter(Boolean)}),a.forEach(function(n){n(e,t)})},destroy:function(){d.forEach(function(e){e.forEach(function(e){e()})}),s.off();var e=c.current,t=r();l.forEach(function(n){n(e,t)})},methods:function(){return e=c,n={},(t=_)?(t.forEach(function(t){n[t]=function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=e.current||e.value;return r[t].apply(r,n)}}),n):n;var e,t,n},on:function(e,t){s.on(e,t)},off:function(e,t){s.off(e,t)}}}(ft,()=>({flicking:t,options:n}));i.mounted();const r=i.instance();return i.init(),r},flickingReactiveAPIAdapter:ft},Symbol.toStringTag,{value:"Module"})),Et=g(g({},R),T);return C(Be,Ue),C(Be,ue),C(Be,Se),C(Be,Ve),C(Be,Et),C(Be,qe),C(Be,se),C(Be,We),C(Be,vt),Be});
//# sourceMappingURL=flicking.min.js.map