@egjs/flicking 4.16.0 → 4.16.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/flicking.cjs.js +271 -190
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +271 -190
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.js +273 -192
- package/dist/flicking.js.map +1 -1
- package/dist/flicking.min.js +1 -1
- package/dist/flicking.min.js.map +1 -1
- package/dist/flicking.pkgd.js +273 -192
- package/dist/flicking.pkgd.js.map +1 -1
- package/dist/flicking.pkgd.min.js +1 -1
- package/dist/flicking.pkgd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/flicking.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!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";const i={PREV:"prev",CENTER:"center",NEXT:"next"},r={PREV:"PREV",NEXT:"NEXT",NONE:null},s={SNAP:"snap",FREE_SCROLL:"freeScroll",STRICT:"strict"},o={VIEWPORT:"flicking-viewport",CAMERA:"flicking-camera",VERTICAL:"vertical",HIDDEN:"flicking-hidden",DEFAULT_VIRTUAL:"flicking-panel"},a={LINEAR:"linear",BOUND:"bound"},l={LTR:"ltr",RTL:"rtl"},h={HORIZONTAL:"horizontal",VERTICAL:"vertical"},c=Object.freeze(Object.defineProperty({__proto__:null,ALIGN:i,CIRCULAR_FALLBACK:a,CLASS:o,DIRECTION:r,MOVE_DIRECTION:h,MOVE_TYPE:s,ORDER:l},Symbol.toStringTag,{value:"Module"})),d={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"},u=Object.freeze(Object.defineProperty({__proto__:null,EVENTS:d},Symbol.toStringTag,{value:"Module"}));class g{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 _={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"}},p=Object.keys(_).reduce((e,t)=>(e[t]=_[t].code,e),{}),m=Object.keys(_).reduce((e,t)=>(e[t]=_[t].message,e),{}),f=(e,...t)=>(t.forEach(t=>{Object.keys(t).forEach(n=>{e[n]=t[n]})}),e),E=(e,t)=>{let n=null;if(y(e)){const i=(t||document).querySelector(e);if(!i)throw new X(m.ELEMENT_NOT_FOUND(e),p.ELEMENT_NOT_FOUND);n=i}else e&&e.nodeType===Node.ELEMENT_NODE&&(n=e);if(!n)throw new X(m.WRONG_TYPE(e,["HTMLElement","string"]),p.WRONG_TYPE);return n},v=(e,t)=>{if(null==e)throw new X(m.VAL_MUST_NOT_NULL(e,t),p.VAL_MUST_NOT_NULL)},P=(e,t,n)=>Math.max(Math.min(e,n),t),x=e=>{if(!e)throw new X(m.NOT_ATTACHED_TO_FLICKING,p.NOT_ATTACHED_TO_FLICKING);return e},O=e=>[].slice.call(e),T=(e,t)=>{let n;if(y(e))switch(e){case i.PREV:n=0;break;case i.CENTER:n=.5*t;break;case i.NEXT:n=t;break;default:if(n=R(e,t),null==n)throw new X(m.WRONG_OPTION("align",e),p.WRONG_OPTION)}else n=e;return n},b=(e,t)=>{let n;if(Array.isArray(e))n=e.map(e=>R(e,t));else{const i=R(e,t);n=[i,i]}return n.map(t=>{if(null==t)throw new X(m.WRONG_OPTION("bounce",e),p.WRONG_OPTION);return t})},R=(e,t)=>{const n=I(e);return null==n?null:n.percentage*t+n.absolute},I=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},A=e=>"object"==typeof e?e.panel:e,S=(e,t)=>e===t?r.NONE:e<t?r.NEXT:r.PREV,N=e=>{Array.isArray(e)||(e=[e]);const t=[];return e.forEach(e=>{if(y(e)){const n=document.createElement("div");for(n.innerHTML=e,t.push(...O(n.children));n.firstChild;)n.removeChild(n.firstChild)}else{if(!e||e.nodeType!==Node.ELEMENT_NODE)throw new X(m.WRONG_TYPE(e,["HTMLElement","string"]),p.WRONG_TYPE);t.push(e)}}),t},C=(e,t)=>P(e<0?e+t:e,0,t),z=(e,t)=>{for(const n of e)if(n===t)return!0;return!1},y=e=>"string"==typeof e,w=(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},k=(e,t)=>{for(const n of e)if(t(n))return n;return null},D=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n]))return n;return-1},L=(e,t,n)=>(e-t)/(n-t),M=e=>e?window.getComputedStyle(e)||e.currentStyle:{},H=(e,{width:t,height:n})=>{e&&(null!=t&&(y(t)?e.style.width=t:e.style.width=`${t}px`),null!=n&&(y(n)?e.style.height=n:e.style.height=`${n}px`))},F=(e,t,n)=>e>=t&&e<=n,V=(e,t)=>e>=t?e%t:e<0?C((e+1)%t-1,t):e,G=e=>{const t=new Array(e);for(let n=0;n<e;n++)t[n]=n;return t},B=({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)},j=Object.setPrototypeOf||((e,t)=>(e.__proto__=t,e)),W=e=>e.replace(/[\s-_]([a-z])/g,(e,t)=>t.toUpperCase()),U=(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[W(r.replace(t,""))]=o)}return n},$=Object.freeze(Object.defineProperty({__proto__:null,camelize:W,checkExistence:v,circulateIndex:V,circulatePosition:w,clamp:P,find:k,findIndex:D,findRight:(e,t)=>{for(let n=e.length-1;n>=0;n--){const i=e[n];if(t(i))return i}return null},getDataAttributes:U,getDirection:S,getElement:E,getElementSize:B,getFlickingAttached:x,getMinusCompensatedIndex:C,getProgress:L,getStyle:M,includes:z,isBetween:F,isString:y,merge:f,parseAlign:T,parseArithmeticExpression:I,parseArithmeticSize:R,parseBounce:b,parseCSSSizeValue:e=>y(e)?e:`${e}px`,parseElement:N,parsePanelAlign:A,range:G,setPrototypeOf:j,setSize:H,toArray:O},Symbol.toStringTag,{value:"Module"}));class X extends Error{constructor(e,t){super(e),j(this,X.prototype),this.name="FlickingError",this.code=t}}class Y{constructor(e){this._flicking=e}getAnchors(){return this._flicking.renderer.panels.map((e,t)=>new g({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 P(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 Z extends Y{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+T(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 g({index:t+s,position:e.position,panel:e}));return e&&o.splice(0,0,new g({index:0,position:i.min,panel:n[r[0].index-1]})),t&&o.push(new g({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 g({index:0,position:i.min,panel:t}),new g({index:1,position:i.max,panel:r})]}return[new g({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 K extends Y{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 g({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=w(e,n.min,n.max);let a=super.findAnchorIncludePosition(o);if(s>0&&(e===n.min||e===n.max)){const t=[a,new g({index:0,position:i[0].position+r,panel:i[0].panel}),new g({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 g({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 g({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===r.PREV),i=t.filter(e=>e.toggleDirection===r.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 q extends Y{checkAvailability(){return!0}getRange(){const e=this._flicking.renderer,t=e.getPanel(0),n=e.getPanel(e.panelCount-1);return{min:t?.position??0,max:n?.position??0}}}let J=class{constructor(e,{align:t=i.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 X(m.TRANSFORM_NOT_SUPPORTED,p.TRANSFORM_NOT_SUPPORTED);this._transform=n},this._flicking=e,this._resetInternalValues(),this._align=t}get element(){return this._el}get children(){return O(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+L(t,n,r)}{const e=i.next();let n=e?e.position+e.offset:a+s[1];return n<r&&(n+=l),i.index+L(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 v(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=x(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 g({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 g({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(){const e=x(this._flicking).control.activePanel;return e?k(this._anchors,t=>t.panel.index===e.index)??this.findNearestAnchor(e.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=x(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=T(t,this.size),this}updateAnchors(){return this._anchors=this._mode.getAnchors(),this}updateAdaptiveHeight(){const e=x(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=x(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=x(this._flicking);if(!e.horizontal)return this;const t=this._el,n=M(t).direction;return n!==this._panelOrder&&(this._panelOrder=n===l.RTL?l.RTL:l.LTR,e.initialized&&e.control.controller.updateDirection()),this}resetNeedPanelHistory(){return this._needPanelTriggered={prev:!1,next:!1},this}applyTransform(){const e=this._el,t=x(this._flicking);if(t.renderer.rendering||!t.initialized)return this;const n=this._position-this._alignPos-this._offset+this._circularOffset;return e.style[this._transform]=t.horizontal?`translate(${this._panelOrder===l.RTL?n:-n}px)`:`translate(0, ${-n}px)`,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=x(this._flicking),n=t.renderer.panels.filter(e=>this.canSee(e)),i=this._visiblePanels;this._visiblePanels=n;const r=n.filter(e=>!z(i,e)),s=i.filter(e=>!z(n,e));(r.length>0||s.length>0)&&t.renderer.render().then(()=>{t.trigger(new e.ComponentEvent(d.VISIBLE_CHANGE,{added:r,removed:s,visiblePanels:n}))})}_checkNeedPanel(){const t=this._needPanelTriggered;if(t.prev&&t.next)return;const n=x(this._flicking),i=n.renderer.panels;if(i.length<=0)return t.prev||(n.trigger(new e.ComponentEvent(d.NEED_PANEL,{direction:r.PREV})),t.prev=!0),void(t.next||(n.trigger(new e.ComponentEvent(d.NEED_PANEL,{direction:r.NEXT})),t.next=!0));const s=this._position,o=this.size,a=this._range,l=n.needPanelThreshold,h=s-this._alignPos,c=h+o,u=i[0],g=i[i.length-1];if(!t.prev){(h<=u.range.min+l||s<=a.min+l)&&(n.trigger(new e.ComponentEvent(d.NEED_PANEL,{direction:r.PREV})),t.prev=!0)}if(!t.next){(c>=g.range.max-l||s>=a.max-l)&&(n.trigger(new e.ComponentEvent(d.NEED_PANEL,{direction:r.NEXT})),t.next=!0)}}_checkReachEnd(t,n){const i=x(this._flicking),s=this._range,o=t>s.min&&t<s.max,a=n>s.min&&n<s.max;if(!o||a)return;const l=n<=s.min?r.PREV:r.NEXT;i.trigger(new e.ComponentEvent(d.REACH_EDGE,{direction:l}))}_updateMode(){const e=x(this._flicking);if(e.circular){const t=new K(e),n=t.checkAvailability();if(n)this._mode=t;else{const t=e.circularFallback;this._mode=t===a.BOUND?new Z(e):new q(e)}this._circularEnabled=n}else this._mode=e.bound?new Z(e):new q(e),this._circularEnabled=!1}_togglePanels(e,t){if(t===e)return!1;return x(this._flicking).renderer.panels.map(n=>n.toggle(e,t)).some(e=>e)}};const Q=Object.freeze(Object.defineProperty({__proto__:null,BoundCameraMode:Z,Camera:J,CircularCameraMode:K,LinearCameraMode:q},Symbol.toStringTag,{value:"Module"})),ee={HOLD:"hold",CHANGE:"change",RELEASE:"release",ANIMATION_END:"animationEnd",FINISH:"finish"},te="flick";var ne=(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))(ne||{});class ie{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[te];if(!s)return;this._delta+=s;const o=n.camera,a=o.position,l=i.pos[te],h=n.circularEnabled?w(l,o.range.min,o.range.max):l;o.lookAt(h);const c=new e.ComponentEvent(d.MOVE,{isTrusted:i.isTrusted,holding:this.holding,direction:S(0,i.delta[te]),axesEvent:i});n.trigger(c),c.isCanceled()&&(o.lookAt(a),r(4))}}class re extends ie{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(d.HOLD_START,{axesEvent:i});n.trigger(a),a.isCanceled()?r(ne.DISABLED):r(ne.DRAGGING)}onChange(e){this._moveToChangedPosition(e)}onFinish(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=n.control,o=s.controller.animatingContext;r(ne.IDLE),n.trigger(new e.ComponentEvent(d.MOVE_END,{isTrusted:i.isTrusted,direction:S(o.start,o.end),axesEvent:i}));const a=this._targetPanel;a&&s.setActive(a,s.activePanel,i.isTrusted)}}class se extends ie{constructor(){super(...arguments),this.holding=!1,this.animating=!0}onAnimationEnd(e){const{transitTo:t}=e;t(ne.IDLE)}onChange(e){const{axesEvent:t,transitTo:n}=e;t.stop(),n(ne.IDLE)}onRelease(e){const{axesEvent:t,transitTo:n}=e;0===t.delta.flick&&n(ne.IDLE)}}class oe extends ie{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(d.HOLD_END,{axesEvent:i})),n.renderer.panelCount<=0)return void r(ne.IDLE);r(ne.ANIMATING);const s=n.control,o=i.destPos[te],a=Math.max(i.duration,n.duration);try{s.moveToPosition(o,a,i)}catch(l){r(ne.IDLE),i.setTo({[te]:n.camera.position},0)}}}class ae extends ie{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(d.MOVE_START,{isTrusted:i.isTrusted,holding:this.holding,direction:S(0,-o),axesEvent:i});n.trigger(a),a.isCanceled()?r(ne.DISABLED):r(ne.DRAGGING).onChange(t)}onRelease(t){const{flicking:n,axesEvent:i,transitTo:r}=t;if(n.trigger(new e.ComponentEvent(d.HOLD_END,{axesEvent:i})),0!==i.delta.flick)return i.setTo({flick:n.camera.position},0),void r(ne.IDLE);this._releaseEvent=i}onFinish(t){const{flicking:n,transitTo:i}=t;if(i(ne.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(d.SELECT,{index:a.index,panel:a,direction:S(t,i)}))}}}class le extends ie{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(ne.DISABLED);const s=new e.ComponentEvent(d.HOLD_START,{axesEvent:i});n.trigger(s),s.isCanceled()?r(ne.DISABLED):r(ne.HOLDING)}onChange(t){const{flicking:n,axesEvent:i,transitTo:r}=t,s=n.control.controller.animatingContext,o=new e.ComponentEvent(d.MOVE_START,{isTrusted:i.isTrusted,holding:this.holding,direction:S(s.start,s.end),axesEvent:i});n.trigger(o),o.isCanceled()?r(ne.DISABLED):r(ne.ANIMATING).onChange(t)}}class he{constructor(){this.transitTo=e=>{let t;switch(e){case ne.IDLE:t=new le;break;case ne.HOLDING:t=new ae;break;case ne.DRAGGING:t=new oe;break;case ne.ANIMATING:t=new re;break;case ne.DISABLED:t=new se}return t.onEnter(this._state),this._state=t,this._state},this._state=new le}get state(){return this._state}fire(e,t){const n=this._state,i={...t,transitTo:this.transitTo};switch(e){case ee.HOLD:n.onHold(i);break;case ee.CHANGE:n.onChange(i);break;case ee.RELEASE:n.onRelease(i);break;case ee.ANIMATION_END:n.onAnimationEnd(i);break;case ee.FINISH:n.onFinish(i)}}}class ce{constructor(){this._onAxesHold=()=>{this._dragged=!1},this._onAxesChange=()=>{this._dragged=!!this._panInput?.isEnabled()},this._preventClickWhenDragged=e=>{this._dragged&&(e.preventDefault(),e.stopPropagation()),this._dragged=!1},this._resetInternalValues(),this._stateMachine=new he}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[te];return{range:{min:t.range[0],max:t.range[1]},circular:t.circular[0],position:this.position}}get enabled(){return this._panInput?.isEnabled()??!1}get position(){return this._axes?.get([te])[te]??0}get range(){return this._axes?.axis[te].range??[0,0]}get bounce(){return this._axes?.axis[te].bounce}init(e){this._flicking=e,this._axes=new t({[te]:{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===l.RTL?1:-1,0]:[0,-1],releaseOnScroll:!0});const n=this._axes;n.connect(e.horizontal?[te,""]:["",te],this._panInput);for(const t in ee){const i=ee[t];n.on(i,t=>{this._stateMachine.fire(i,{flicking:e,axesEvent:t})})}return this}destroy(){this._axes&&(this.removePreventClickHandler(),this._axes.destroy()),this._panInput?.destroy(),this._resetInternalValues()}enable(){return this._panInput?.enable(),this}disable(){return this._panInput?.disable(),this}release(){return this._panInput?.release(),this}updateAnimation(e,t){return this._animatingContext={...this._animatingContext,end:e},this._axes?.updateAnimation({destPos:{[te]:e},duration:t}),this}stopAnimation(){return this._axes?.stopAnimation(),this}update(e){const t=x(this._flicking),n=t.camera,i=this._axes,r=i.axis[te];return r.circular=[e.circular,e.circular],r.range=[e.range.min,e.range.max],r.bounce=b(t.bounce,n.size),i.axisManager.set({[te]:e.position}),this}addPreventClickHandler(){const e=x(this._flicking),t=this._axes,n=e.camera.element;return t.on(ee.HOLD,this._onAxesHold),t.on(ee.CHANGE,this._onAxesChange),n.addEventListener("click",this._preventClickWhenDragged,!0),this}removePreventClickHandler(){const e=x(this._flicking),t=this._axes,n=e.camera.element;return t.off(ee.HOLD,this._onAxesHold),t.off(ee.CHANGE,this._onAxesChange),n.removeEventListener("click",this._preventClickWhenDragged,!0),this}animateTo(e,t,n){const i=this._axes,r=this._stateMachine.state;if(!i)return Promise.reject(new X(m.NOT_ATTACHED_TO_FLICKING,p.NOT_ATTACHED_TO_FLICKING));const s=this.getCurrentPosition();if(s===e){const t=x(this._flicking);return t.camera.lookAt(e),r.targetPanel&&t.control.setActive(r.targetPanel,t.control.activePanel,n?.isTrusted??!1),Promise.resolve()}this._animatingContext={start:s,end:e,offset:0};const o=()=>{i.once(ee.FINISH,()=>{this._animatingContext={start:0,end:0,offset:0}}),n?n.setTo({[te]:e},t):i.setTo({[te]:e},t)};return new Promise((e,t)=>{const n=()=>{i.off(ee.HOLD,r),e()},r=()=>{i.off(ee.FINISH,n),t(new X(m.ANIMATION_INTERRUPTED,p.ANIMATION_INTERRUPTED))};i.once(ee.FINISH,n),i.once(ee.HOLD,r),o()})}getCurrentPosition(){return this._axes?.get([te])[te]??0}updateDirection(){const e=x(this._flicking),t=this._axes,n=this._panInput;t.disconnect(n),t.connect(e.horizontal?[te,""]:["",te],n),n.options.scale=e.horizontal?[e.camera.panelOrder===l.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 de=class{get controller(){return this._controller}get activeIndex(){return this._activePanel?.index??-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 ce,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,s=this._getPosition(e,n??r.NONE);return i.targetPanel=e,this._controller.updateAnimation(s,t),this}stopAnimation(){return this._controller.state.targetPanel=null,this._controller.stopAnimation(),this}updatePosition(e){const t=x(this._flicking).camera,n=this._activePanel;n&&t.lookAt(t.clampToReachablePosition(n.position))}updateInput(){const e=x(this._flicking).camera;return this._controller.update(e.controlParams),this}resetActive(){return this._activePanel=null,this}async moveToPanel(e,{duration:t,direction:n=r.NONE,axesEvent:i}){const s=this._getPosition(e,n);return this._triggerIndexChangeEvent(e,e.position,i,n),this._animateToPosition({position:s,duration:t,newActivePanel:e,axesEvent:i})}setActive(t,n,i){const s=x(this._flicking);this._activePanel=t,this._nextPanel=null,s.camera.updateAdaptiveHeight(),t!==n?s.trigger(new e.ComponentEvent(d.CHANGED,{index:t.index,panel:t,prevIndex:n?.index??-1,prevPanel:n,isTrusted:i,direction:n?S(n.position,t.position):r.NONE})):s.trigger(new e.ComponentEvent(d.RESTORED,{isTrusted:i}))}copy(e){this._flicking=e._flicking,this._activePanel=e._activePanel,this._controller=e._controller}_triggerIndexChangeEvent(t,n,i,r){const s=x(this._flicking),o=t!==this._activePanel?d.WILL_CHANGE:d.WILL_RESTORE,a=s.camera,l=this._activePanel,h=new e.ComponentEvent(o,{index:t.index,panel:t,isTrusted:i?.isTrusted||!1,direction:r??S(l?.position??a.position,n)});if(this._nextPanel=t,s.trigger(h),h.isCanceled())throw new X(m.STOP_CALLED_BY_USER,p.STOP_CALLED_BY_USER)}async _animateToPosition({position:e,duration:t,newActivePanel:n,axesEvent:i}){const r=x(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(async()=>{r.initialized&&await r.renderer.render()}).catch(e=>{if(!(i&&e instanceof X&&e.code===p.ANIMATION_INTERRUPTED))throw e})}_getPosition(e,t=r.NONE){const n=x(this._flicking),i=n.camera;let s=e.position;const o=i.findNearestAnchor(s);if(e.removed||!o)throw new X(m.POSITION_NOT_REACHABLE(e.position),p.POSITION_NOT_REACHABLE);if(i.canReach(e)){if(n.circularEnabled){const e=this._controller.position,n=i.rangeDiff,o=[s,s+n,s-n].filter(n=>t===r.NONE||(t===r.PREV?n<=e:n>=e));s=o.reduce((t,n)=>Math.abs(e-n)<Math.abs(e-t)?n:t,1/0)}}else s=o.position,e=o.panel;return s}};class ue extends de{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=x(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=x(this._flicking).camera,r=i.clampToReachablePosition(e),s=i.findAnchorIncludePosition(r);if(!s)return Promise.reject(new X(m.POSITION_NOT_REACHABLE(e),p.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 ge extends de{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=x(this._flicking),r=i.camera,s=r.findActiveAnchor(),o=r.findNearestAnchor(r.position),a=this._controller.state;if(!s||!o)return Promise.reject(new X(m.POSITION_NOT_REACHABLE(e),p.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[te]?Math.abs(n.delta[te]):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=x(this._flicking),i=n.camera,r=this._count,s=i.position,o=i.clampToReachablePosition(e),a=i.findAnchorIncludePosition(o);if(!t||!a)throw new X(m.POSITION_NOT_REACHABLE(e),p.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 g({index:e.index,position:e.position+c*i.rangeDiff,panel:e.panel})}if(n.circularEnabled){const n=h[V(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 g({index:n.index,position:n.position+o*i.rangeDiff,panel:n.panel})}return h[P(t.index+Math.sign(e-s)*r,0,h.length-1)]}_findAdjacentAnchor(e,t,n){const i=x(this._flicking).camera;if(i.circularEnabled){const t=i.findAnchorIncludePosition(e);if(t&&t.position!==n.position)return t}return(t>0?i.getNextAnchor(n):i.getPrevAnchor(n))??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 _e extends de{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(){const e=x(this._flicking),t=e.camera,n=e.renderer,i=this._controller,r=t.controlParams,s=this._count,o=i.state.animating?t.findNearestAnchor(t.position)?.panel:this._activePanel;if(!o)return i.update(r),this._resetIndexRange(),this;const a=r.range,l=o.position,h=o.index,c=n.panelCount;let d=h-s,u=h+s;d<0&&(d=e.circularEnabled?C((d+1)%c-1,c):P(d,0,c-1)),u>=c&&(u=e.circularEnabled?u%c:P(u,0,c-1));const g=n.panels[d],_=n.panels[u];let p=Math.max(g.position,a.min),m=Math.min(_.position,a.max);return p>l&&(p-=t.rangeDiff),m<l&&(m+=t.rangeDiff),r.range={min:p,max:m},r.circular&&(r.position<p&&(r.position+=t.rangeDiff),r.position>m&&(r.position-=t.rangeDiff)),r.circular=!1,i.update(r),this._indexRange={min:g.index,max:_.index},this}async moveToPanel(e,t){const n=x(this._flicking).camera;return this._controller.update(n.controlParams),super.moveToPanel(e,t)}moveToPosition(e,t,n){const i=x(this._flicking),r=i.camera,s=this._nextPanel??this._activePanel,o=this._controller.range,a=this._indexRange,l=r.range,h=this._controller.state,c=P(r.clampToReachablePosition(e),o[0],o[1]),d=r.findAnchorIncludePosition(c);if(!d||!s)return Promise.reject(new X(m.POSITION_NOT_REACHABLE(e),p.POSITION_NOT_REACHABLE));const u=s.position,g=i.animating?h.delta:e-r.position,_=Math.abs(g)>=i.threshold,f=e>u?r.getNextAnchor(d):r.getPrevAnchor(d);let E,v;const O=r.anchorPoints,T=O[0],b=O[O.length-1],R=e<l.min&&F(T.panel.index,a.min,a.max),I=e>l.max&&F(b.panel.index,a.min,a.max),A=f&&(a.min<=a.max?F(f.index,a.min,a.max):f.index>=a.min||f.index<=a.max);if(R||I){const t=e<l.min?T:b;v=t.panel,E=t.position}else if(_&&d.position!==s.position)v=d.panel,E=d.position;else{if(!_||!A){const i=r.findNearestAnchor(r.position);return i?this.moveToPanel(i.panel,{duration:t,axesEvent:n}):Promise.reject(new X(m.POSITION_NOT_REACHABLE(e),p.POSITION_NOT_REACHABLE))}v=f.panel,E=f.position}return this._triggerIndexChangeEvent(v,e,n),this._animateToPosition({position:E,duration:t,newActivePanel:v,axesEvent:n})}_resetIndexRange(){this._indexRange={min:0,max:0}}}const pe=Object.freeze(Object.defineProperty({__proto__:null,AnimatingState:re,AxesController:ce,Control:de,DisabledState:se,DraggingState:oe,FreeControl:ue,HoldingState:ae,IdleState:le,SnapControl:ge,State:ie,StateMachine:he,StrictControl:_e},Symbol.toStringTag,{value:"Module"}));class me{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:B({el:r,horizontal:!0,useFractionalSize:this._flicking.useFractionalSize,useOffset:!1,style:M(r)}),height:B({el:r,horizontal:!1,useFractionalSize:this._flicking.useFractionalSize,useOffset:!1,style:M(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 fe{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 Ee{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 ve{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(y(t))i.style.width=t;else{const e=s?t+r.left+r.right:t;i.style.width=`${e}px`}if(null!=n)if(y(n))i.style.height=n;else{const e=s?n+r.top+r.bottom:n;i.style.height=`${e}px`}this.resize()}resize(){const e=this._el,t=M(e),{useFractionalSize:n}=this._flicking;this._width=B({el:e,horizontal:!0,useFractionalSize:n,useOffset:!1,style:t}),this._height=B({el:e,horizontal:!1,useFractionalSize:n,useOffset:!1,style:t}),this._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},this._isBorderBoxSizing="border-box"===t.boxSizing}}class Pe{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){this._flicking=e,this._renderPanel=t?.renderPanel??(()=>""),this._initialPanelCount=t?.initialPanelCount??-1,this._cache=t?.cache??!1,this._panelClass=t?.panelClass??o.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:G(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();G(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 xe=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=A(e);this._panels.forEach(e=>{e.align=t})}constructor(e){const{align:t=i.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 x(this._flicking).renderer.panels.filter(e=>e.rendered)}updatePanelSize(){const e=x(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=x(this._flicking),i=t[0],r=A(this._align);return e.reduce((e,s)=>{const o=C(s.index,t.length),a=t.slice(o),l=s.elements.map((e,t)=>this._createPanel(e,{index:o+t,align:r,flicking:n}));if(t.splice(o,0,...l),s.hasDOMInElements&&this._insertPanelElements(l,a[0]??null),n.panelsPerView>0){const e=i||l[0].resize();this._updatePanelSizeByGrid(e,l)}else l.forEach(e=>e.resize());return a.forEach(e=>{e.increaseIndex(l.length),e.updatePosition()}),[...e,...l]},[])}batchRemove(...e){const t=this.batchRemoveDefer(...e);return t.length<=0?[]:(this.updateAfterPanelChange([],t),t)}batchRemoveDefer(...e){const t=this._panels,n=x(this._flicking),{control:i}=n,r=i.activePanel;return e.reduce((e,n)=>{const{index:s,deleteCount:o}=n,a=C(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()),z(h,r)&&i.resetActive(),[...e,...h])},[])}updateAfterPanelChange(t,n){const i=x(this._flicking),{camera:r,control:s}=i,o=this._panels,a=s.activePanel;if(this._updateCameraAndControl(),i.autoResize&&i.useResizeObserver&&(t.forEach(e=>{e.element&&i.autoResizer.observe(e.element)}),n.forEach(e=>{e.element&&i.autoResizer.unobserve(e.element)})),this.render(),!i.animating)if(!a||a.removed)if(o.length<=0)r.lookAt(0);else{let e=a?.index??0;e>o.length-1&&(e=o.length-1),s.moveToPanel(o[e],{duration:0}).catch(()=>{})}else s.moveToPanel(a,{duration:0}).catch(()=>{});i.camera.updateOffset(),(t.length>0||n.length>0)&&(i.trigger(new e.ComponentEvent(d.PANEL_CHANGE,{added:t,removed:n})),this.checkPanelContentsReady([...t,...n]))}checkPanelContentsReady(e){const t=x(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=x(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=x(this._flicking),i=n.panelsPerView;if(i<=0)throw new X(m.WRONG_OPTION("panelsPerView",i),p.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={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=x(this._flicking).camera.element;for(;e.firstChild;)e.removeChild(e.firstChild)}_insertPanelElements(e,t=null){const n=x(this._flicking).camera.element,i=t?.element||null,r=document.createDocumentFragment();e.forEach(e=>r.appendChild(e.element)),n.insertBefore(r,i)}_removePanelElements(e){const t=x(this._flicking).camera.element;e.forEach(e=>{t.removeChild(e.element)})}_afterRender(){const e=x(this._flicking);if(e.camera.applyTransform(),e.useCSSOrder){const t=e.renderer.panels.filter(e=>e.rendered);this._strategy.getRenderingIndexesByOrder(e).forEach((e,n)=>{t[e].element&&(t[e].element.style.order=`${n}`)})}}};class Oe extends xe{async render(){const e=x(this._flicking),t=this._strategy;t.updateRenderingPanels(e),t.renderPanels(e),this._resetPanelElementOrder(),this._afterRender()}_collectPanels(){const e=x(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=x(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=x(this._flicking).camera.element;O(e.childNodes).forEach(t=>{t.nodeType===Node.TEXT_NODE&&e.removeChild(t)})}}class Te{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!==r.NONE&&this._toggled?e===r.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-L(i,e,r)}{const r=e-(n.alignPosition+this._size-t);return 1-L(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){const t=this.element,n=this._flicking,{horizontal:i,useFractionalSize:r}=n;if(!t)return this;if(e)this._size=e.size,this._margin={...e.margin},this._height=e.height??B({el:t,horizontal:!1,useFractionalSize:r,useOffset:!0,style:M(t)});else{const e=M(t);this._size=B({el:t,horizontal:i,useFractionalSize:r,useOffset:!0,style:e}),this._margin=i?{prev:parseFloat(e.marginLeft||"0"),next:parseFloat(e.marginRight||"0")}:{prev:parseFloat(e.marginTop||"0"),next:parseFloat(e.marginBottom||"0")},this._height=i?B({el:t,horizontal:!1,useFractionalSize:r,useOffset:!0,style:e}):this._size}return this.updatePosition(),this._updateAlignPos(),this}setSize(e){return H(this.element,e),this}contains(e){return!!this.element?.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===r.NONE||t===e)return!1;const s=this._toggled;return t>e?i>=e&&i<=t&&(this._toggled=n===r.NEXT):i<=e&&i>=t&&(this._toggled=n!==r.NEXT),s!==this._toggled}updateCircularToggleDirection(){const e=this._flicking;if(!e.circularEnabled)return this._toggleDirection=r.NONE,this._togglePosition=0,this._toggled=!1,this;const t=e.camera,n=t.range,i=t.alignPosition,s=t.visibleRange,o=s.max-s.min,a=n.min-i,l=n.max-i+o,h=this.includeRange(l-o,l,!1),c=this.includeRange(a,a+o,!1);return this._toggled=!1,h?(this._toggleDirection=r.PREV,this._togglePosition=this.range.max+n.min-n.max+i,this.toggle(1/0,t.position)):c?(this._toggleDirection=r.NEXT,this._togglePosition=this.range.min+n.max-o+i,this.toggle(-1/0,t.position)):(this._toggleDirection=r.NONE,this._togglePosition=0),this}_updateAlignPos(){this._alignPos=T(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=r.NONE}}class be{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===r.PREV),i=t.filter(e=>e.toggled&&e.toggleDirection===r.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=A(e.renderer.align);return t.map((t,i)=>new Te({index:i,elementProvider:new this._providerCtor(t),align:n,flicking:e}))}createPanel(e,t){return new Te({...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 Re extends Te{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===r.NEXT?i+n:i-n),V(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 Ie{renderPanels(e){const t=e.virtual,n=e.visiblePanels,i=G(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)=>({...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=A(e.renderer.align);return G(e.virtual.initialPanelCount).map(n=>new Re({index:n,elementProvider:new Ee(e),align:t,flicking:e}))}createPanel(e,t){return new Re({...t,elementProvider:new Ee(t.flicking)})}updatePanelSizes(e,t){e.virtual.elements.forEach(e=>{H(e.nativeElement,t)}),e.panels.forEach(e=>e.setSize(t))}}const Ae=Object.freeze(Object.defineProperty({__proto__:null,ExternalRenderer:class extends xe{_removePanelElements(e){}_removeAllChildsFromCamera(){}},NormalRenderingStrategy:be,Renderer:xe,VanillaRenderer:Oe,VirtualRenderingStrategy:Ie},Symbol.toStringTag,{value:"Module"})),Se=class extends e{constructor(e,t={}){super(),this._scheduleResize=!1;const{align:n=i.CENTER,defaultIndex:r=0,horizontal:s=!0,circular:o=!1,circularFallback:l=a.LINEAR,bound:h=!1,adaptive:c=!1,panelsPerView:d=-1,noPanelStyleOverride:u=!1,resizeOnContentsReady:g=!1,nested:_=!1,needPanelThreshold:p=0,preventEventsBeforeInit:m=!0,deceleration:f=.0075,duration:v=500,easing:P=e=>1-(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:z=!1,renderOnlyVisible:y=!1,virtual:w=null,autoInit:k=!0,autoResize:D=!0,useResizeObserver:L=!0,resizeDebounce:M=0,observePanelResize:H=!1,maxResizeDebounce:F=100,useFractionalSize:V=!1,externalRenderer:G=null,renderExternal:B=null,optimizeSizeUpdate:j=!1,animationThreshold:W=.5,useCSSOrder:U=!1}=t;this._initialized=!1,this._plugins=[],this._isResizing=!1,this._align=n,this._defaultIndex=r,this._horizontal=s,this._circular=o,this._circularFallback=l,this._bound=h,this._adaptive=c,this._panelsPerView=d,this._noPanelStyleOverride=u,this._resizeOnContentsReady=g,this._nested=_,this._virtual=w,this._needPanelThreshold=p,this._preventEventsBeforeInit=m,this._deceleration=f,this._duration=v,this._easing=P,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=z,this._renderOnlyVisible=y,this._autoInit=k,this._autoResize=D,this._useResizeObserver=L,this._resizeDebounce=M,this._maxResizeDebounce=F,this._observePanelResize=H,this._useFractionalSize=V,this._externalRenderer=G,this._renderExternal=B,this._optimizeSizeUpdate=j,this._animationThreshold=W,this._useCSSOrder=U,this._viewport=new ve(this,E(e)),this._autoResizer=new me(this),this._renderer=this._createRenderer(),this._camera=this._createCamera(),this._control=this._createControl(),this._virtualManager=new Pe(this,w),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 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}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(d.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){return this.moveTo(this._control.activePanel?.prev()?.index??-1,e,r.PREV)}next(e=this._duration){return this.moveTo(this._control.activePanel?.next()?.index??this._renderer.panelCount,e,r.NEXT)}moveTo(e,t=this._duration,n=r.NONE){const i=this._renderer,s=i.panelCount,o=i.getPanel(e);return o?this._control.animating?Promise.reject(new X(m.ANIMATION_ALREADY_PLAYING,p.ANIMATION_ALREADY_PLAYING)):(this._control.holding&&this._control.controller.release(),this._control.moveToPanel(o,{duration:t,direction:n})):Promise.reject(new X(m.INDEX_OUT_OF_RANGE(e,0,s-1),p.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 X(m.INDEX_OUT_OF_RANGE(e,0,r-1),p.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={}){const{index:t=!0,position:n=!0,includePanelHTML:i=!1,visiblePanelsOnly:r=!1}=e,s=this._camera,o={panels:(r?this.visiblePanels:this.panels).map(e=>{const t={index:e.index};return i&&(t.html=e.element.outerHTML),t})};if(t&&(o.index=this.index),n){const e=s.findNearestAnchor(s.position);e&&(o.position={panel:e.panel.index,progressInPanel:s.getProgressInPanel(e.panel)})}if(r){const e=this.visiblePanels;o.visibleOffset=e[0]?.index??0}return o}setStatus(e){if(!this._initialized)throw new X(m.NOT_INITIALIZED,p.NOT_INITIALIZED);const{index:t,position:n,visibleOffset:i,panels:r}=e,o=this._renderer,a=this._control;if(r[0]?.html&&!this._renderExternal&&(o.batchRemove({index:0,deleteCount:this.panels.length,hasDOMInElements:!0}),o.batchInsert({index:0,elements:N(r.map(e=>e.html)),hasDOMInElements:!0})),null!=t){const e=i?t-i:t;this.moveTo(e,0).catch(()=>{})}if(n&&this._moveType===s.FREE_SCROLL){const{panel:e,progressInPanel:t}=n,r=i?e-i:e,s=o.panels[r].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=D(this._plugins,t=>t===e);t>=0&&(e.destroy(),this._plugins.splice(t,1))}),this}async resize(){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(d.BEFORE_RESIZE,{width:o,height:a,element:t.element})),t.resize(),this._optimizeSizeUpdate?(this.horizontal&&t.width!==o||!this.horizontal&&t.height!==a)&&await n.forceRenderAllPanels():await n.forceRenderAllPanels(),!this._initialized)return;if(n.updatePanelSize(),i.updateAlignPos(),i.updateRange(),i.updateAnchors(),i.updateAdaptiveHeight(),i.updatePanelOrder(),i.updateOffset(),await n.render(),!this._initialized)return;r.animating||(r.updatePosition(l),r.updateInput());const h=t.width,c=t.height,u=h!==o||c!==a;this.trigger(new e.ComponentEvent(d.AFTER_RESIZE,{width:t.width,height:t.height,prev:{width:o,height:a},sizeChanged:u,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 X(m.NOT_ALLOWED_IN_FRAMEWORK,p.NOT_ALLOWED_IN_FRAMEWORK);return this._renderer.batchInsert({index:e,elements:N(t),hasDOMInElements:!0})}remove(e,t=1){if(this._renderExternal)throw new X(m.NOT_ALLOWED_IN_FRAMEWORK,p.NOT_ALLOWED_IN_FRAMEWORK);return this._renderer.batchRemove({index:e,deleteCount:t,hasDOMInElements:!0})}_createControl(){const e=this._moveType,t=Object.keys(s).map(e=>s[e]),n=Array.isArray(e)?e[0]:e,i=Array.isArray(e)?e[1]??{}:{};if(!z(t,n))throw new X(m.WRONG_OPTION("moveType",JSON.stringify(e)),p.WRONG_OPTION);switch(n){case s.SNAP:return new ge(i);case s.FREE_SCROLL:return new ue(i);case s.STRICT:return new _e(i)}}_createCamera(){return this._circular&&this._bound&&console.warn('"circular" and "bound" option cannot be used together, ignoring bound.'),new J(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({align:this._align,...t})}_createVanillaRenderer(){const e=this.virtualEnabled;return new Oe({align:this._align,strategy:e?new Ie:new be({providerCtor:fe})})}_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 X(m.POSITION_NOT_REACHABLE(s.position),p.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(d.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(d.AFTER_RESIZE,{width:t.width,height:t.height,prev:{width:0,height:0},sizeChanged:a,element:t.element}))}};Se.VERSION="4.16.0";let Ne=Se;const Ce={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 ze=Object.freeze(Object.defineProperty({__proto__:null,CrossFlicking:class extends Ne{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===h.HORIZONTAL===this.horizontal?this.dragThreshold=i:e===h.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(h.HORIZONTAL,!0),this._moveDirection=null},this._onHorizontalMove=e=>{e.isTrusted&&!this._moveDirection&&(this._setDraggable(h.VERTICAL,!1),this._moveDirection=h.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(h.VERTICAL,!0),this._moveDirection=null,requestAnimationFrame(()=>this._setPreviousSideIndex()),e.isTrusted&&this._syncToCategory(this._sideFlicking[this._nextIndex].index,this._nextIndex)},this._onSideHoldStart=()=>{this._setDraggable(h.VERTICAL,!0),this._moveDirection=null},this._onSideMove=e=>{e.isTrusted&&!this._moveDirection&&(this._setDraggable(h.HORIZONTAL,!1),this._moveDirection=h.VERTICAL)},this._onSideMoveEnd=()=>{this._setDraggable(h.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(d.HOLD_START,this._onHorizontalHoldStart),this.on(d.MOVE,this._onHorizontalMove),this.on(d.MOVE_END,this._onHorizontalMoveEnd),[d.CHANGED,d.WILL_CHANGE].forEach(e=>{this.on(e,this._addSideIndex)}),this._sideFlicking.forEach((t,n)=>{t.on(d.HOLD_START,this._onSideHoldStart),t.on(d.MOVE,this._onSideMove),t.on(d.MOVE_END,this._onSideMoveEnd),t.on(d.CHANGED,this._onSideChanged),Object.keys(Ce).forEach(i=>{t.on(d[i],t=>{this.trigger(new e.ComponentEvent(Ce[i],{mainIndex:n,...t}))})})})}_createSideState(){const e=this.element,t=this.camera.element,n=O(t.children);let i=[];if(U(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(o.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];[o.VIEWPORT,o.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=U(e,"data-cross-").groupkey;i&&!z(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 Ne(this.camera.children[t],{...this.sideOptions,horizontal:!1,panelsPerView:1,defaultIndex:e.start}))}},SIDE_EVENTS:Ce},Symbol.toStringTag,{value:"Module"})),ye=Object.freeze(Object.defineProperty({__proto__:null,AnchorPoint:g,Panel:Te,VanillaElementProvider:fe,Viewport:ve,VirtualElementProvider:Ee,VirtualManager:Pe,VirtualPanel:Re},Symbol.toStringTag,{value:"Module"})),we=e=>{const t="object"==typeof e?e.camera:e;return De(t)},ke=e=>{const t="object"==typeof e?e.panel:e;return I(De(t))},De=e=>{if("number"==typeof e)return`${e}px`;switch(e){case i.CENTER:return"50%";case i.NEXT:return"100%";case i.PREV:return"0%";default:return e}},Le=(e,t,n,i,r)=>e.batchInsertDefer(...t.added.slice(i,r).map((e,t)=>({index:e,elements:[n[t]],hasDOMInElements:!1}))),Me=(e,t,n)=>{const i=e.panels.slice(t,n);return e.batchRemoveDefer({index:t,deleteCount:i.length,hasDOMInElements:!1})},He=Object.freeze(Object.defineProperty({__proto__:null,getDefaultCameraTransform:(e=i.CENTER,t=!0,n)=>{const r=we(e),s=ke(e);if(null==s)return"";const o=`calc(${r} - (${n||"0px"} * ${s.percentage}) - ${s.absolute}px)`;return t?`translate(${o})`:`translate(0, ${o})`},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(...Me(i,n,e+1)),e=t,n=t):n=t,s.splice(t,1)}),a.push(...Me(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(...Le(i,t,a,e,s+1)),e=-1,r=-1):r=n}),e>=0&&o.push(...Le(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,Ne.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(){const e=this[n];return e&&r.get?.call(e)}),r.set&&(e.set=function(...e){return r.set?.call(this[n],...e)}),Object.defineProperty(t,i,e)}})})}},Symbol.toStringTag,{value:"Module"}));function Fe(e){return Object.keys(e)}function Ve(e){return"function"==typeof e}var Ge="__observers__",Be="__CFCS_DETECTED_DEPENDENCIES__";function je(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 We(){var e=function(){Object[Be]=Object[Be]||{};var e=Object[Be];return e[1]=e[1]||[],e[1]}();return e[e.length-1]}var Ue=function(){function t(t){this._emitter=new e,this._current=t}var n=t.prototype;return Object.defineProperty(n,"current",{get:function(){var e=We();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 $e(e,t,n){void 0===n&&(n=t);var i={configurable:!0,get:function(){return qe(this,n).current},set:function(e){qe(this,n,e).current=e}};Object.defineProperty(e,t,i),n!==t&&Object.defineProperty(e,n,{configurable:!0,get:function(){return qe(this,n).current}})}function Xe(e,t){var n,i=Ve(e)?e():e,r={};return Ze(r),Fe(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?Je(r,e,n):Je(r,e,Ye(n)),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.length>1?$e(e[0],e[1]):function(t,n){return $e(t,n,e[0])}}(e)(r,e)}),(n=r).subscribe=function(e,t){this[e],qe(this,e).subscribe(t)},n.unsubscribe=function(e,t){var n=this;e?e in this&&qe(this,e).unsubscribe(t):Fe(Ke(this)).forEach(function(e){n.unsubscribe(e)})},r}function Ye(e){return new Ue(e)}function Ze(e){var t={};return Object.defineProperty(e,Ge,{get:function(){return t}}),t}function Ke(e,t){var n,i;e[Ge]||Ze(e);var r=e[Ge],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 qe(e,t,n){var i=Ke(e);return i[t]||(i[t]=Ye(n)),i[t]}function Je(e,t,n){Ke(e)[t]=n}const Qe=e=>!e.circular&&0===e.index,et=e=>!e.circular&&e.index===e.panelCount-1,tt=e=>e.panelCount,nt=e=>e.index,it=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)},rt=({onInit:e,onDestroy:t,setMethods:n,getProps:i})=>{let r;n(["moveTo"]);const s=i().options,o=Xe({isReachStart:!s?.defaultIndex||0===s?.defaultIndex,isReachEnd:!(!s?.totalPanelCount||!s?.defaultIndex)&&s.defaultIndex===s.totalPanelCount-1,totalPanelCount:s?.totalPanelCount??0,currentPanelIndex:s?.defaultIndex??0,progress:0,indexProgress:s?.defaultIndex??0,moveTo:e=>null==r?Promise.reject(new Error("Flicking instance is not available")):r?.animating?Promise.resolve():r.moveTo(e)});const a=()=>{void 0!==r&&(o.isReachStart=Qe(r),o.isReachEnd=et(r),o.currentPanelIndex=nt(r))},l=()=>{void 0!==r&&(a(),o.totalPanelCount=tt(r))},h=()=>{void 0!==r&&(o.progress=it(r),o.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})(r))};return e((e,t)=>{r=t.flicking,void 0!==r&&(o.isReachStart=Qe(r),o.isReachEnd=et(r),o.currentPanelIndex=nt(r),o.progress=it(r),o.totalPanelCount=tt(r),r?.on("changed",a),r?.on("panelChange",l),r?.on("move",h))}),t(()=>{r?.off("changed",a),r?.off("panelChange",l),r?.off("move",h)}),o},st=Object.freeze(Object.defineProperty({__proto__:null,connectFlickingReactiveAPI:(t,n)=>{const i=function(t,n){var i=Ve(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},E=function(e){_=e};return i.setup&&(c.current=i.setup({getProps:r,setInitialState:m,setEvents:f,setMethods:E,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,je([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&&E(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=Ke(e);m(Fe(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,je([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)}}}(rt,()=>({flicking:t,options:n}));i.mounted();const r=i.instance();return i.init(),r},flickingReactiveAPIAdapter:rt},Symbol.toStringTag,{value:"Module"})),ot={...u,...c};return f(Ne,ye),f(Ne,Q),f(Ne,pe),f(Ne,Ae),f(Ne,ot),f(Ne,He),f(Ne,$),f(Ne,ze),f(Ne,st),Ne});
|
|
1
|
+
!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,j=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},B=(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?B((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:B,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:j,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;return e.style[this._transform]=t.horizontal?`translate(${this._panelOrder===x.RTL?n:-n}px)`:`translate(0, ${-n}px)`,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?B((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()}resize(){const e=this._el,t=K(e),{useFractionalSize:n}=this._flicking;this._width=te({el:e,horizontal:!0,useFractionalSize:n,useOffset:!1,style:t}),this._height=te({el:e,horizontal:!1,useFractionalSize:n,useOffset:!1,style:t}),this._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},this._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=B(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=B(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)),n.insertBefore(r,i)}_removePanelElements(e){const t=k(this._flicking).camera.element;e.forEach(e=>{t.removeChild(e.element)})}_afterRender(){const e=k(this._flicking);if(e.camera.applyTransform(),e.useCSSOrder){const t=e.renderer.panels.filter(e=>e.rendered);this._strategy.getRenderingIndexesByOrder(e).forEach((e,n)=>{t[e].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,externalRenderer:j=null,renderExternal:B=null,optimizeSizeUpdate:W=!1,animationThreshold:U=.5,useCSSOrder:$=!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._externalRenderer=j,this._renderExternal=B,this._optimizeSizeUpdate=W,this._animationThreshold=U,this._useCSSOrder=$,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 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}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:j(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})),t.resize(),this._optimizeSizeUpdate?(this.horizontal&&t.width!==o||!this.horizontal&&t.height!==a)&&(yield n.forceRenderAllPanels()):yield n.forceRenderAllPanels(),!this._initialized)return;if(n.updatePanelSize(),i.updateAlignPos(),i.updateRange(),i.updateAnchors(),i.updateAdaptiveHeight(),i.updatePanelOrder(),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:j(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.16.1-beta.0";let je=Ge;const Be={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 je{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(Be).forEach(i=>{t.on(b[i],t=>{this.trigger(new e.ComponentEvent(Be[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 je(this.camera.children[t],_(g({},this.sideOptions),{horizontal:!1,panelsPerView:1,defaultIndex:e.start})))}},SIDE_EVENTS:Be},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,je.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(je,Ue),C(je,ue),C(je,Se),C(je,Ve),C(je,Et),C(je,qe),C(je,se),C(je,We),C(je,vt),je});
|
|
2
2
|
//# sourceMappingURL=flicking.min.js.map
|