PageSourceSearch

https://infosoft.ate-bus.ch:4443/1705.04bc117fe824c75e.js

js ate-bus.ch collected 2026-10-08 08:30:57 UTC 22,570 bytes, 1 lines download raw bytes

1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[1705],{71705:(g,p,r)=>{"use strict";r.r(p),r.d(p,{HomePageModule:()=>F});var h=r(31635),a=r(17705),u=r(60177),B=r(89417),T=r(35933),l=r(10467);var v,m,H=r(22043),V=r.n(H),x=r(43559),E=r(88254),O=r(97586),N=r(45312),d=r(21192),S=r(72491),Z=r(17521),K=r(20786),$=r(25220),U=r(87952),L=r(7141),b=r(28874),z=r(94228),c=r(86225),G=r(59545),J=r(88189),A=r(34535),W=r(32653);let y=(v=class{get isSmallScreen(){return d.Z.isSmallScreen}constructor(e,n,t,i,s,f,R,oe,se,le,de,he,ce){this.hubFactory=e,this.helper=n,this.languageService=t,this.calendarSyncService=i,this.timeService=s,this.alertService=f,this.menu=R,this.nfc=oe,this.offlineHandler=se,this.permissionService=le,this.toastService=de,this.cdRef=he,this.router=ce,this.PersonData="",this.Begruessung="",this.dashboardShortcuts=[],this.dashboardCards=[],this.showDashboardSkeleton=!0,this.initialSubscription=!0,this.isLoading=!1,this.isDev=!d.Z.isProduction,this.isMobile=d.Z.isMobile,this.languageService.setLanguage(),this.PersonData="",this.Begruessung=this.languageService.translate(this.timeService.getBegruessung())}ngOnInit(){var e=this;return(0,l.A)(function*(){var n,t;e.Person=yield e.helper.getPerson(),e.PersonData=null===(n=e.Person)||void 0===n?void 0:n.Name,d.Z.isMobile&&(yield e.nfc.checkNfcDevice()),(null==m.AppModeSubscription||null!==(t=m.AppModeSubscription)&&void 0!==t&&t.closed)&&(m.AppModeSubscription=d.Z.AppMode.subscribe(i=>{(i==S.Sq.Offline||i==S.Sq.Online)&&!e.initialSubscription&&e.loadData(!0),e.initialSubscription=!1}))})()}ngOnDestroy(){m.AppModeSubscription.unsubscribe()}ionViewWillEnter(){var e=this;return(0,l.A)(function*(){d.Z.hideSplashscreen(),yield e.menu.enable(!0,"MainMenu"),c.K.Debug("\u{1f680} ~ HomePage ~ ionViewWillEnter ~ router.url:",e.router.url),e.router.url.includes("refresh=1")?e.loadData(!0):e.loadData()})()}ionViewDidEnter(){var e=this;return(0,l.A)(function*(){d.Z.isMobile&&e.permissionService.requestNotificationPermission(),e.showBetriebsStoerungSweetAlert(),e.OfflineModeData()})()}showBetriebsStoerungSweetAlert(){var e=this;return(0,l.A)(function*(){let n=yield(yield e.hubFactory.lauftextService()).GetBetriebsStoerungenByPersonID();null==n||n.forEach(function(){var t=(0,l.A)(function*(i){let s=(yield E.p.get({key:"BetriebsStoerung_"+i.ID.toString()})).value;c.K.Debug("\u{1f680} ~ file: home.page.ts:127 ~ HomePage ~ showBetriebsStoerungSweetAlert ~ value:",s),s||(E.p.set({key:"BetriebsStoerung_"+i.ID.toString(),value:(new Date).toISOString()}),(yield e.alertService.createYesNoAlert(e.languageService.translate("lblNeueBetriebsSt\xf6rung"),e.languageService.translate("msgBetriebsSt\xf6rung"),"warning")).isConfirmed&&e.helper.navigateTo("/lauftext"))});return function(i){return t.apply(this,arguments)}}())})()}loadData(){var e=this;return(0,l.A)(function*(n=!1){try{if(n||!e.LastLoaded||e.LastLoaded<new Date(O().subtract(N.c.MenuCacheTTL,"seconds").toString())){e.isLoading=!0,yield e.offlineBanner.getCacheDatum();let t=yield e.hubFactory.menuService();yield t.loadMenu(),t.Page=e,yield e.loadDashboard(t),d.Z.isMobile&&d.Z.isOnlineAndReachable()&&e.calendarSyncService.performResume(),e.LastLoaded=new Date}}catch(t){c.K.Fehler("\u{1f680} ~ HomePage ~ loadData ~ err:",t)}finally{e.isLoading=!1}e.cdRef.detectChanges()}).apply(this,arguments)}loadDashboard(e){var n=this;return(0,l.A)(function*(){n.showDashboardSkeleton=!0;try{n.getDashboardDayInfo(),n.dashboardShortcuts=yield e.GetDashboardShortcuts(),n.dashboardCards=yield e.GetDashboard()}catch(t){c.K.Fehler("\u{1f680} ~ HomePage ~ loadDashboard ~ err:",t);try{yield n.helper.waitUntilOnlineAndLoggedIn(),yield n.loadDashboard(e)}catch(i){c.K.Fehler("\u{1f680} ~ HomePage ~ loadDashboard ~ err:",i),n.toastService.presentWarningToast(n.languageService.translate("msgFehler"))}}finally{n.showDashboardSkeleton=!1}})()}getDashboardDayInfo(){var e=this;return(0,l.A)(function*(){var n,t;yield null===(n=e.dashboardDayInfo)||void 0===n?void 0:n.loadData(),e.cdRef.detectChanges(),null===(t=e.dashboardDayInfo)||void 0===t||t.slideToCurrentDate()})()}setDashboard(e){var n=this;return(0,l.A)(function*(){n.dashboardCards=e})()}
1reloadDashboardCards(){var e=this;return(0,l.A)(function*(){try{let n=yield(yield e.hubFactory.menuService()).GetDashboard();n&&(e.dashboardCards=n)}catch(n){c.K.Fehler("\u{1f680} ~ HomePage ~ reloadDashboardCards ~ err:",n)}})()}updateDashboardCard(e){var n;if(!e||!this.dashboardCards)return;let t=null===(n=this.dashboardCards)||void 0===n?void 0:n.findIndex(i=>i.Typ==(null==e?void 0:e.Typ));t>=0&&(this.dashboardCards[t]=e)}updateDashboardDayInfo(e){var n;e&&(null===(n=this.dashboardDayInfo)||void 0===n||null===(n=n.DashboardDays)||void 0===n||n.forEach(t=>{var i;this.timeService.dateFormatddMM(t.Datum.toString())==this.timeService.dateFormatddMM(null==e||null===(i=e[0])||void 0===i?void 0:i.Datum.toString())&&(t.Einteilungen=[],null==e||e.forEach(s=>t.Einteilungen.push(s)))}))}OfflineModeData(){var e=this;return(0,l.A)(function*(){try{d.Z.isAppModeOnline()&&d.Z.isLoggedIn&&(yield e.sendOfflineTankungen(),yield e.offlineHandler.checkLoadOfflineData())}catch(n){c.K.Fehler("\u{1f680} ~ HomePage ~ OfflineModeData ~ err:",n)}})()}sendOfflineTankungen(){var e=this;return(0,l.A)(function*(){let n=yield e.hubFactory.offlineCache.getValue(S.nu.OfflineTankungen);if(void 0!==n){let t=n;for(let i of n)if(i.AnzKm&&i.AnzLiter&&i.FkTankstelle&&(yield(yield e.hubFactory.wagenbuchService()).TankungSpeichern(i))==Z.q9.KeinFehler){let f=n.findIndex(R=>JSON.stringify(R)==JSON.stringify(i));t.splice(f,1)}yield e.hubFactory.offlineCache.setValue(S.nu.OfflineTankungen,t)}})()}doRefresh(e){var n=this;return(0,l.A)(function*(){try{yield d.Z.reconnectServer(),n.loadData(!0),n.OfflineModeData(),n.showBetriebsStoerungSweetAlert()}catch(i){c.K.Debug("\u{1f680} ~ HomePage ~ doRefresh ~ ex:",i)}finally{var t;null===(t=n.ionRefresher)||void 0===t||t.complete()}})()}},m=v,v.AppModeSubscription=void 0,v.ctorParameters=()=>[{type:L.d},{type:b.N},{type:z.g},{type:U.t},{type:A.v},{type:$.u},{type:T._t},{type:G.z},{type:K.c},{type:J.n},{type:W.f},{type:a.gRc},{type:x.Ix}],v.propDecorators={ionRefresher:[{type:a.Uct,args:["ionRefresher"]}],dashboardDayInfo:[{type:a.Uct,args:["dashboardDayInfo"]}],offlineBanner:[{type:a.Uct,args:["offlineBanner"]}]},v);y=m=(0,h.Cg)([(0,a.uAl)({selector:"app-home",template:'<ion-header translucent="true">\r\n  <app-offline-banner #offlineBanner></app-offline-banner>\r\n  <isg-header [Title]="\'lblHome\' | translate" [Home-Enable]="true"\r\n              [Reload-Enable]="true" (Reload-Event)="doRefresh($event)">\r\n  </isg-header>\r\n</ion-header>\r\n\r\n<ion-content fullscreen="true" class="background-infosoft-gradient">\r\n  <ion-refresher #ionRefresher slot="fixed" (ionRefresh)="doRefresh($event)">\r\n    <ion-refresher-content></ion-refresher-content>\r\n  </ion-refresher>\r\n\r\n  <ion-grid [ngClass]="!this.isSmallScreen ? \'w-90\' : \'\'">\r\n    <ion-row>\r\n      <ion-col size="12" class="color-white font-large ion-text-center">\r\n        <ion-label *ngIf="!this.isSmallScreen" [ngStyle]="!this.isSmallScreen ? {\'font-size\': \'1.5em\'} : {}">{{this.Begruessung}}, {{this.PersonData}}</ion-label>\r\n        <ion-label *ngIf="this.isSmallScreen">{{this.Begruessung}}<br/>{{this.PersonData}}</ion-label>\r\n      </ion-col>\r\n    </ion-row>\r\n\r\n    <ion-row>\r\n      <ion-col size="12" class="px-8">\r\n        <app-dashboard-day-info #dashboardDayInfo></app-dashboard-day-info>\r\n      </ion-col>\r\n    </ion-row>\r\n\r\n    <ion-row class="ion-align-items-center">\r\n      \x3c!-- Mobile --\x3e\r\n      <ion-col *ngIf="this.isSmallScreen && this.dashboardShortcuts.length > 0 && this.dashboardShortcuts.length < 3" size="6" class="ion-no-padding">\r\n        <dashboard-shortcut-card [MenuItems]="this.dashboardShortcuts"></dashboard-shortcut-card>\r\n      </ion-col>\r\n      <ion-col *ngIf="this.isSmallScreen && this.dashboardShortcuts.length > 0 && this.dashboardShortcuts.length >= 3" size="12" class="ion-no-padding">\r\n        <dashboard-shortcut-card [MenuItems]="this.dashboardShortcuts"></dashboard-shortcut-card>\r\n      </ion-col>\r\n\r\n      \x3c!-- Desktop --\x3e\r\n      <ion-col *ngIf="!this.isSmallScreen && this.dashboardShortcuts.length > 0" size="12" sizeMd="8" sizeLg="6" class="ion-no-padding">\r\n        <dashboard-shortcut-card [MenuItems]="this.dashboardShortcuts"></dashboard-shortcut-card>\r\n      </ion-col>\r\n\r\n      <ng-container *ngIf="this.showDashboardSkeleton">\r\n        <ng-container *ngFor="let item of this.helper.placeholderArray(6)">\r\n          <ion-col size="6" sizeMd="4" sizeLg="3" class="ion-no-padding">\r\n            <app-skeleton-text-card></app-skeleton-text-card>\r\n          </ion-col>\r\n        </ng-container>\r\n      </ng-container>\r\n\r\n      <ng-container *ngIf="!this.showDashboardSkeleton">\r\n        <ng-container *ngFor="let item of this.dashboardCards">\r\n          <ion-col size="6" sizeMd="4" sizeLg="3" class="ion-no-padding">\r\n            <dashboard-card [dashboardItem]="item" (opened)="reloadDashboardCards()"></dashboard-card>\r\n          </ion-col>\r\n        </ng-container>\r\n      </ng-container>\r\n    </ion-row>\r\n  </ion-grid>\r\n</ion-content>\r\n',styles:[V()]})],y);const j=[{path:"",component:y}];let P=class{};P=(0,h.Cg)([(0,a.UQu)({imports:[x.iI.forChild(j)],exports:[x.iI]})],P);var X=r(1775),Q=r(73955);var D,o,_=r(7583),q=r.n(_);(o=D||(D={}))[o.Anmeldekontolle=1]="Anmeldekontolle",o[o.Infopoint=2]="Infopoint",o[o.Nachricht=3]="Nachricht",o[o.Abtausch=4]="Abtausch",o[o.Boerse=5]="Boerse",o[o.FPS=6]="FPS",o[o.Lauftext=7]="Lauftext";var I,ee=r(36566);let w=((I=class{get isSmallScreen(){return d.Z.isSmallScreen}constructor(e,n,t,i){this.helper=e,this.languageService=n,this.time=t,this.serverClock=i,this.opened=new a.bkB,this.isLoading=!1,this.oeffnetSoon=!1}ngOnInit(){this.startOrStopCountdown()}ngOnChanges(){this.startOrStopCountdown()}ngOnDestroy(){var e;null===(e=this.tickSub)||void 0===e||e.unsubscribe()}startOrStopCountdown(){var e,n;const t=(null===(e=this.dashboardItem)||void 0===e?void 0:e.Typ)==D.FPS&&!(null===(n=this.dashboardItem)||void 0===n||!n.OeffnetAm)&&this.time.getMinuteDifference(this.serverClock.now,new Date(this.dashboardItem.OeffnetAm))>0;this.buildDisplay(this.serverClock.now),t&&!this.tickSub?this.tickSub=this.serverClock.serverTime$.subscribe(i=>{var s;this.buildDisplay(i)||(null===(s=this.tickSub)||void 0===s||s.unsubscribe(),this.tickSub=void 0,this.opened.emit())}):!t&&this.tickSub&&(this.tickSub.unsubscribe(),this.tickSub=void 0)}buildDisplay(e){var n,t;if(this.oeffnetSoon=!1,this.lineValue=null===(n=this.dashboardItem)||void 0===n?void 0:n.ItemValue,this.lineValue2=null===(t=this.dashboardItem)||void 0===t?void 0:t.ItemValue2,!this.dashboardItem||this.dashboardItem.Typ!=D.FPS||!this.dashboardItem.OeffnetAm)return!1;const i=this.dashboardItem.OeffnetAm,s=this.time.getMinuteDifference(e,new Date(i));if(s<=0)return!1;if(s<60){const f=Math.max(1,Math.ceil(s));this.lineValue=this.languageService.translate("lblFPSOeffnetIn"),this.lineValue2=this.languageService.formatString(this.languageService.translate("lblFPSOeffnetMin"),String(f)),this.oeffnetSoon=!0}else if(s<=2880){const f=Math.round(s/60);this.lineValue=this.languageService.translate("lblFPSOeffnetIn"),this.lineValue2=this.languageService.formatString(this.languageService.translate("lblFPSOeffnetStd"),String(f))}return!0}navigateToUrl(e){var n=this;return(0,l.A)(function*(){var t;n.dashboardItem&&(null!==(t=n.dashboardItem)&&void 0!==t&&t.Disabled||(c.K.Debug("\u{1f680} ~ DashboardCardComponent ~ navigateToUrl ~ Dashboard State:",JSON.stringify(n.dashboardItem.State)),n.helper.navigateTo(e,{state:{data:{State:n.dashboardItem.State}}})))})()}}).ctorParameters=()=>[{type:b.N},{type:z.g},{type:A.v},{type:ee.J}],I.propDecorators={dashboardItem:[{type:a.pde}],opened:[{type:a.k7i}]},I);w=(0,h.Cg)([(0,a.uAl)({selector:"dashboard-card",template:'<ion-spinner *ngIf="!this.dashboardItem" name="crescent" class="center"></ion-spinner>\r\n\r\n<ion-card *ngIf="this.dashboardItem" mode="md"\r\n          [disabled]="this.dashboardItem?.Disabled"\r\n          (click)="this.navigateToUrl(this.dashboardItem.RedirectTo)"\r\n          [ngClass]="{\'showDanger\': this.dashboardItem?.ShowDanger == true}">\r\n  <ion-card-header>\r\n    <ion-card-title class="ion-text-nowrap">\r\n      <ion-label class="font-bold"\r\n                 [ngClass]="this.isSmallScreen ? \'font-medium\' : \'font-large\'">\r\n        {{this.dashboardItem.HeaderKey | translate}}\r\n      </ion-label>\r\n    </ion-card-title>\r\n  </ion-card-header>\r\n\r\n  <ion-card-content>\r\n    <ion-grid class="ion-no-padding">\r\n      <ion-row>\r\n        <ion-col size="6">\r\n          <ion-icon *ngIf="!this.dashboardItem.IsCustomIonicon && this.dashboardItem.Icon != undefined" [name]="this.dashboardItem.Icon" size="large"></ion-icon>\r\n          <ion-icon *ngIf="this.dashboardItem.IsCustomIonicon" [src]="this.dashboardItem.CustomIconUrl" size="large"></ion-icon>\r\n        </ion-col>\r\n        <ion-col size="6">\r\n          <ion-title class="font-bold ion-text-end ion-no-padding"\r\n                     [ngClass]="[this.isSmallScreen ? \'font-medium\' : \'font-large\',\r\n                                 this.lineValue2 != null ? \'cardValueHigh\' : \'\']"\r\n                     [color]="this.dashboardItem.Color">\r\n            {{this.lineValue}}\r\n          </ion-title>\r\n          <ion-title class="font-bold ion-text-end ion-no-padding"\r\n                     [ngClass]="[this.isSmallScreen ? \'font-medium\' : \'font-large\',\r\n                                 this.oeffnetSoon ? \'cardOeffnetSoon\' : \'\']"\r\n                     [color]="this.dashboardItem.Color">\r\n            {{this.lineValue2}}\r\n          </ion-title>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n  </ion-card-content>\r\n</ion-card>\r\n',styles:[q()]})],w);var C,te=r(34545),ie=r.n(te),re=r(57157),ae=r(72515);let M=((C=class{get isSmallScreen(){return d.Z.isSmallScreen}constructor(e,n,t,i,s){this.hubFactory=e,this.helper=n,this.timeService=t,this.modalService=i,this.platform=s,this.slideOpts={slidesPerView:1,centeredSlides:!0,centeredSlidesB
1ounds:!0,spaceBetween:5,initialSlide:7},this.isLoading=!1,this.isDev=!d.Z.isProduction,this.isMobile=d.Z.isMobile,this.changeSliderVisibleCount(),this.platform.resize.subscribe(()=>{this.changeSliderVisibleCount()})}ngOnInit(){}changeSliderVisibleCount(){this.slideOpts.slidesPerView=this.isSmallScreen?1:3,this.updateSwiper()}loadData(){var e=this;return(0,l.A)(function*(){if(!e.isLoading)try{e.isLoading=!0;let n=new Date,t=O(n).subtract(8,"d").toDate(),i=O(n).add(7,"d").toDate();e.DashboardDays=yield(yield e.hubFactory.diensteinteilungService()).GetDashboardDayInfo(t,i,null,!0),e.updateSwiper(),yield e.slideToCurrentDate()}catch(n){c.K.Fehler("\u{1f680} ~ DashboardDayInfoComponent ~ loadData ~ err:",n)}finally{e.isLoading=!1}})()}updateSwiper(){var e;null===(e=this.slides)||void 0===e||null===(e=e.nativeElement.swiper)||void 0===e||e.update()}openDetail(e){var n=this;return(0,l.A)(function*(){var t;let i;i=d.Z.isAppModeOffline()?yield n.modalService.openEinteilungDetailByObject(e,"Dashboard"):yield n.modalService.openEinteilungDetail(e.ID,"Dashboard"),null===(t=i)||void 0===t||t.present()})()}slideToCurrentDate(){var e=this;return(0,l.A)(function*(){var n;e.updateSwiper(),yield b.N.sleepWhile(()=>{var i;return!((null===(i=e.slides)||void 0===i||null===(i=i.nativeElement.swiper)||void 0===i||null===(i=i.slides)||void 0===i?void 0:i.length)>1)});c.K.Debug("\u{1f680} ~ DashboardDayInfoComponent ~ slideToCurrentDate ~ Slide to index 7, total slides:",null===(n=e.slides)||void 0===n||null===(n=n.nativeElement.swiper)||void 0===n||null===(n=n.slides)||void 0===n?void 0:n.length),e.slides.nativeElement.swiper.slideTo(7,200)})()}slideForward(){this.slides.nativeElement.swiper.slideNext()}slideBack(){this.slides.nativeElement.swiper.slidePrev()}}).ctorParameters=()=>[{type:L.d},{type:b.N},{type:A.v},{type:ae.B},{type:re.OD}],C.propDecorators={slides:[{type:a.Uct,args:["slides",{read:a.aKT}]}]},C);M=(0,h.Cg)([(0,a.uAl)({selector:"app-dashboard-day-info",template:'<div class="wrapper">\r\n  <ion-icon *ngIf="!this.isLoading" id="btnSlideLeft" icon="chevron-back" size="large" (click)="this.slideBack()"\r\n    class="sliderButtons" [hidden]="this.isSmallScreen"></ion-icon>\r\n\r\n  <ion-icon *ngIf="!this.isLoading" id="btnSlideRight" icon="chevron-forward" size="large" (click)="this.slideForward()"\r\n    class="sliderButtons" [hidden]="this.isSmallScreen"></ion-icon>\r\n\r\n  <swiper-container #slides [slidesPerView]="this.slideOpts.slidesPerView" [centeredSlides]="this.slideOpts.centeredSlides"\r\n    [centeredSlidesBounds]="this.slideOpts.centeredSlidesBounds" [spaceBetween]="this.slideOpts.spaceBetween" [initialSlide]="this.slideOpts.initialSlide" pagination="true">\r\n    <ng-container *ngIf="this.isLoading">\r\n      <swiper-slide *ngFor="let item of this.helper.placeholderArray(3)">\r\n        <ion-card mode="md">\r\n          <ion-grid fixed class="ion-no-padding">\r\n            <ion-row class="ion-align-items-center">\r\n              <ion-col size="2" class="ion-text-nowrap ion-text-start">\r\n                <div class="ion-text-start">\r\n                  <ion-skeleton-text animated></ion-skeleton-text>\r\n                  <br />\r\n                  <ion-skeleton-text animated></ion-skeleton-text>\r\n                </div>\r\n              </ion-col>\r\n              <ion-col size="8" class="ion-text-center ion-no-padding">\r\n                <ion-skeleton-text animated></ion-skeleton-text>\r\n              </ion-col>\r\n              <ion-col size="2" class="ion-text-nowrap ion-text-end">\r\n                <div class="ion-text-end">\r\n                  <ion-skeleton-text animated></ion-skeleton-text>\r\n                  <br />\r\n                  <ion-skeleton-text animated></ion-skeleton-text>\r\n                </div>\r\n              </ion-col>\r\n            </ion-row>\r\n          </ion-grid>\r\n        </ion-card>\r\n      </swiper-slide>\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf="!this.isLoading">\r\n      <swiper-slide *ngFor="let Day of this.DashboardDays">\r\n        <ion-card mode="md" [ngClass]="{\'heuteCard\': Day.IsToday}">\r\n          <ion-grid fixed>\r\n            <ion-row class="ion-align-items-center">\r\n              <ion-col size="2" class="ion-text-nowrap ion-text-start">\r\n                <div class="ion-text-start">\r\n                  <ion-label [ngClass]="{\'dayInfoHeute\': Day.IsToday}" class="ion-text-start">\r\n                    {{this.timeService.getDayWeekName(Day.Datum, true) }}\r\n                  </ion-label>\r\n                  <br />\r\n                  <ion-label [ngClass]="{\'dayInfoHeute\': Day.IsToday}" class="ion-text-start">\r\n                    {{this.timeService.dateFormatddMM(Day.Datum, true) }}\r\n                  </ion-label>\r\n                </div>\r\n              </ion-col>\r\n              <ion-col size="8" class="ion-text-center ion-no-padding">
1\r\n                <span *ngFor="let Einteilung of Day.Einteilungen" button (click)="openDetail(Einteilung)">\r\n                  <app-einteilung-cell [Einteilung]="Einteilung" [ShowInfopointIcon]="true"></app-einteilung-cell>\r\n                </span>\r\n              </ion-col>\r\n              <ion-col size="2" class="ion-text-nowrap ion-text-end">\r\n                <div class="ion-text-end">\r\n                  <ion-label [ngClass]="{\'dayInfoHeute\': Day.IsToday}" class="ion-text-end">\r\n                    {{this.timeService.convertToTime(Day.ErsterAntritt)}}\r\n                  </ion-label>\r\n                  <br />\r\n                  <ion-label [ngClass]="{\'dayInfoHeute\': Day.IsToday}" class="ion-text-end">\r\n                    {{this.timeService.convertToTime(Day.LetztesEnde)}}\r\n                  </ion-label>\r\n                </div>\r\n              </ion-col>\r\n            </ion-row>\r\n\r\n            <ng-container *ngIf="Day?.Freitexte != null && (Day.Freitexte.Freitext1 != null || Day.Freitexte.Freitext2 != null)">\r\n              <ion-row class="ion-align-items-center">\r\n                <ion-col size="2" />\r\n                <ion-col size="8">\r\n                  <ion-row class="freiText p-4" [ngClass]="{\'color-black\': Day.Freitexte.Farbe1 != false || Day.IsToday, \'color-text\': !Day.Freitexte.Farbe1 && !Day.IsToday}" [ngStyle]="{\'background\': Day.Freitexte.Farbe1}">{{Day.Freitexte.Freitext1}}</ion-row>\r\n                  <hr class="border-top" />\r\n                  <ion-row class="freiText p-4" [ngClass]="{\'color-black\': Day.Freitexte.Farbe2 != false || Day.IsToday, \'color-text\': !Day.Freitexte.Farbe2 && !Day.IsToday}" [ngStyle]="{\'background\': Day.Freitexte.Farbe2}">{{Day.Freitexte.Freitext2}}</ion-row>\r\n                </ion-col>\r\n                <ion-col size="2" />\r\n              </ion-row>\r\n            </ng-container>\r\n          </ion-grid>\r\n        </ion-card>\r\n      </swiper-slide>\r\n    </ng-container>\r\n  </swiper-container>\r\n</div>\r\n',styles:[ie()]})],M);let F=class{};F=(0,h.Cg)([(0,a.UQu)({imports:[T.bv,u.MD,B.YN,P,X.G,Q.h],declarations:[y,w,M],schemas:[a.CkJ]})],F)},7583:(g,p,r)=>{var h=r(8564),u=r(98557)(h);u.push([g.id,"ion-card {\n  height: 7em;\n  border-radius: 10px;\n  cursor: pointer;\n}\n\nion-label {\n  word-wrap: normal;\n  word-break: break-all;\n}\n\n.cardValueHigh {\n  margin-top: -1em;\n}\n\n.cardOeffnetSoon {\n  font-weight: 800;\n  letter-spacing: 0.02em;\n}",""]),g.exports=u.toString()},34545:(g,p,r)=>{var h=r(8564),u=r(98557)(h);u.push([g.id,"/* TODO: Refactor and replace custom classes with those from Ionic. Delete unreferenced classes. */\nion-card {\n  width: 100%;\n  border-radius: 10px;\n  margin: 0;\n  margin-bottom: 2.5em;\n}\n\n.heuteCard {\n  background-color: hsl(50, 100%, 70%);\n  color: black;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.freiText {\n  margin-top: 4px;\n  min-height: 36px;\n}\n\n#btnSlideLeft {\n  position: absolute;\n  top: 13px;\n  left: 13px;\n  z-index: 100;\n}\n\n#btnSlideRight {\n  position: absolute;\n  top: 13px;\n  right: 13px;\n  z-index: 100;\n}\n\n.sliderButtons {\n  color: rgba(125, 125, 125, 0.5);\n  cursor: pointer;\n}",""]),g.exports=u.toString()},22043:(g,p,r)=>{var h=r(8564),u=r(98557)(h);u.push([g.id,"",""]),g.exports=u.toString()}}]);

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.