1import{$t as ZC,H as Ji,Hr as wC,Jt as Xw,M as ID,Rn as kd,S as Fe,Tt as TC,X as Ld,cn as bC,f as D$1,hr as qy,j as IC,mn as dC,pn as cw,s as Bl,tn as _C,xn as em,xr as rm,yn as eC,zr as vV}from"./chunk-DFujMvHX.js";import{a as Qi}from"./chunk-C6t77vqJ.js";import{i as Ot,o as wt}from"./main-PT2455ZF.js";var P=[`track`];var D=[`wrapper`];var O=[`*`];function V(n,T){if(n&1){let t=dC();Ji(0,`button`,7),em(`click`,function(){kd(t);return Ld(IC().prev())}),Ji(1,`mat-icon`),ZC(2,`chevron_left`),Bl()()}}function L(n,T){if(n&1){let t=dC();Ji(0,`button`,8),em(`click`,function(){kd(t);return Ld(IC().next())}),Ji(1,`mat-icon`),ZC(2,`chevron_right`),Bl()()}}var Z=(()=>{class n{constructor(){this.currentIndex=0,this.itemWidth=0,this.totalItems=0,this.maxVisibleItems=0,this.maxIndex=0,this._isBrowser=Qi(D$1(qy)),this._cd=D$1(vV),this._ngZone=D$1(Fe),this._startX=0,this._isSwiping=!1}ngAfterViewInit(){this._isBrowser&&(this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._calculateDimensions()},0)}),window.addEventListener(`resize`,this._calculateDimensions.bind(this)),this.track.nativeElement.addEventListener(`touchstart`,this._onTouchStart.bind(this),{passive:!0}),this.track.nativeElement.addEventListener(`touchmove`,this._onTouchMove.bind(this),{passive:!0}),this.track.nativeElement.addEventListener(`touchend`,this._onTouchEnd.bind(this)))}ngOnDestroy(){this._isBrowser&&(window.removeEventListener(`resize`,this._calculateDimensions.bind(this)),this.track.nativeElement.removeEventListener(`touchstart`,this._onTouchStart.bind(this)),this.track.nativeElement.removeEventListener(`touchmove`,this._onTouchMove.bind(this)),this.track.nativeElement.removeEventListener(`touchend`,this._onTouchEnd.bind(this)))}prev(){this._isBrowser&&(this.currentIndex>0?this.currentIndex--:this.currentIndex=0,this._updateCarouselPosition())}next(){this._isBrowser&&(this.currentIndex<this.maxIndex&&this.currentIndex++,this._updateCarouselPosition())}_calculateDimensions(){let t=this.track.nativeElement.children;t.length>0&&(this.itemWidth=t[0].clientWidth,this.totalItems=t.length,this.maxVisibleItems=Math.floor(this.wrapper.nativeElement.clientWidth/this.itemWidth),this.track.nativeElement.style.width=`${this.itemWidth*this.totalItems}px`,this.maxIndex=Math.max(this.totalItems-this.maxVisibleItems,0),this._updateCarouselPosition()),this._cd.detectChanges()}_updateCarouselPosition(){if(this._isBrowser&&this.track&&this.itemWidth>0){let t=-(this.currentIndex*this.itemWidth);this.track.nativeElement.style.transform=`translateX(${t}px)`}}_onTouchStart(t){this._startX=t.touches[0].clientX,this._isSwiping=!0}_onTouchMove(t){if(!this._isSwiping)return;let e=this._startX-t.touches[0].clientX;Math.abs(e)>50&&(this._isSwiping=!1,e>0?this.next():this.prev())}_onTouchEnd(){this._isSwiping=!1}static{this.ɵfac=function(e){return new(e||n)}}static{this.ɵcmp=cw({type:n,selectors:[[`app-carousel`]],viewQuery:function(e,i){if(e&1&&rm(P,5)(D,5),e&2){let r;bC(r=_C())&&(i.track=r.first),bC(r=_C())&&(i.wrapper=r.first)}},ngContentSelectors:O,decls:8,vars:2,consts:[[`wrapper`,``],[`track`,``],[1,`carousel-container`],[`mat-icon-button`,``,1,`nav-button`,`prev-button`],[1,`carousel-wrapper`],[1,`carousel-track`],[`mat-icon-button`,``,1,`nav-button`,`next-button`],[`mat-icon-button`,``,1,`nav-button`,`prev-button`,3,`click`],[`mat-icon-button`,``,1,`nav-button`,`next-button`,3,`click`]],template:function(e,i){e&1&&(TC(),Ji(0,`div`,2),Xw(1,V,3,0,`button`,3),Ji(2,`div`,4,0)(4,`div`,5,1),wC(6),Bl()(),Xw(7,L,3,0,`button`,6),Bl()),e&2&&(ID(),eC(i.currentIndex>0?1:-1),ID(6),eC(i.currentIndex<i.maxIndex?7:-1))},dependencies:[wt,Ot],styles:[`.carousel-container[_ngcontent-%COMP%]{position:relative;width:100%}.carousel-wrapper[_ngcontent-%COMP%]{width:100%;overflow:hidden;position:relative}.carousel-track[_ngcontent-%COMP%]{display:flex;transition:transform .5s ease-in-out;will-change:transform}.carousel-item[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;box-sizing:border-box}.nav-button[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);background-color:#fff;border-radius:50%;box-shadow:0 2px 5px #0003;z-index:1;display:flex;align-items:center;justify-content:center}.prev-button[_ngcontent-%COMP%]{left:-1.25rem}.next-button[_ngcontent-%COMP%]{right:-1.25rem}@media(max-width:768px){.nav-button[_ngcontent-%COMP%]{display:none}}`]})}}return n})();export{Z as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.