PageSourceSearch

https://infosoft.ate-bus.ch:4443/476.9cc5ca4196e8baed.js

js ate-bus.ch collected 2026-10-08 08:30:38 UTC 27,222 bytes, 1 lines download raw bytes

1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[476],{88189:(B,D,i)=>{"use strict";i.d(D,{n:()=>O});var N,l=i(10467),g=i(31635),I=i(34535),U=i(35933),m=i(21192),T=i(17705),d=i(7141),M=i(88645),W=i(20963),z=i(61964),Z=i(81823),S=i(72491),V=i(6284),s=i(94228),v=i(86225),P=i(83915),_=i(28874);let O=((N=class{constructor(n,t,o,h,u,E,C,x){this.hubFactory=n,this.androidPermission=t,this.nfc=o,this.TimeService=h,this.Kalender=u,this.alertCtrl=E,this.storageService=C,this.languageService=x,this.androidPermissionRequested=!1}hasNotificationPermission(){return(0,l.A)(function*(){let n=yield M.h.checkPermissions(),t=yield W.W.checkPermissions();return"granted"===(null==n?void 0:n.receive)&&"granted"===(null==t?void 0:t.display)})()}requestNotificationPermission(){return(0,l.A)(function*(){if(!m.Z.isMobile)return!1;let n=!1;try{let h=yield M.h.requestPermissions(),u=yield W.W.requestPermissions();var t,o;if(n="granted"===(null==h?void 0:h.receive)&&"granted"===(null==u?void 0:u.display),v.K.Debug("\u{1f680} ~ PermissionService ~ requestNotificationPermission ~ hasPermission:",n),n&&m.Z.isLoggedIn&&m.Z.loggedInPerson)v.K.Debug("\u{1f680} ~ PermissionService ~ requestNotificationPermission ~ Register PushNotifications for:",(null===(t=m.Z.loggedInPerson)||void 0===t?void 0:t.Name)+"("+(null===(o=m.Z.loggedInPerson)||void 0===o?void 0:o.ID)+")"),M.h.register()}catch(h){v.K.Fehler("\u{1f680} ~ PermissionService ~ requestNotificationPermission ~ error:",h)}return n})()}hasCalenderPermission(){var n=this;return(0,l.A)(function*(){return!!m.Z.isMobile&&(yield n.Kalender.hasReadWritePermission())})()}requestCalenderPermission(){var n=this;return(0,l.A)(function*(){return m.Z.isMobile&&((0,l.A)(function*(){yield n.Kalender.requestReadWritePermission()})(),yield _.N.sleep(5e3)),yield n.hasCalenderPermission()})()}checkNFCPermission(){var n=this;return(0,l.A)(function*(){let t=!1,o=yield(yield n.hubFactory.permissionService()).getZugriffZeiterfassungPermission();if(v.K.Debug("\u{1f680} ~ PermissionService ~ checkNFCPermission ~ permZeiterfassung:",o),!o)return t;if(m.Z.isAndroid)try{yield n.androidPermission.checkPermission(n.androidPermission.PERMISSION.NFC)}catch(u){v.K.Fehler("\u{1f680} ~ PermissionService ~ checkNFCPermission ~ this.androidPermission.checkPermission() ~ err:",u),n.androidPermission.requestPermission(n.androidPermission.PERMISSION.NFC)}let h=yield n.storageService.getValue(S.mG.PermissonLastNFCRequest);if(!h||n.TimeService.datumIsInFuture(new Date(h).toString()))try{t=yield n.nfc.enabled()}catch(u){v.K.Fehler("\u{1f680} ~ PermissionService ~ checkNFCPermission ~ this.nfc.enabled() ~ err:",u),t=!1,"NO_NFC"==u?n.openNFCNotSupportedOnDevice():n.openNFCNativeSettingAlert()}finally{yield n.storageService.setValue(S.mG.PermissonLastNFCRequest,(new Date).toISOString())}return t})()}openNFCNotSupportedOnDevice(){var n=this;return(0,l.A)(function*(){let t=yield n.alertCtrl.create({header:n.languageService.translate("lblNFCnotSupported"),message:n.languageService.translate("lblNFCnotSupportedMessage"),backdropDismiss:!0,keyboardClose:!0,animated:!0,buttons:[{text:"OK",role:"accept"}]});return null==t||t.present(),t})()}openNFCNativeSettingAlert(){var n=this;return(0,l.A)(function*(){let t=yield n.alertCtrl.create({header:n.languageService.translate("lblEinstellungen\xd6ffnen"),message:n.languageService.translate("lblNFCnotEnabled"),backdropDismiss:!0,keyboardClose:!0,animated:!0,buttons:[{text:"OK",role:"accept"},{text:n.languageService.translate("lblAbbrechen"),role:"cancel"}]});null==t||t.onDidDismiss().then(o=>{"accept"==(null==o?void 0:o.role)&&n.nfc.showSettings()}),null==t||t.present()})()}hasStoragePermission(){var n=this;return(0,l.A)(function*(){if(m.Z.isAndroid){yield n.requestStoragePermission();let t=yield n.hasStorageReadPermission();return(yield n.hasStorageWritePermission())||t}return!0})()}hasStorageReadPermission(){var n=this;return(0,l.A)(function*(){var t;return"true"==(null!==(t=yield n.storageService.getValue(S.mG.AndroidFileReadPermission))&&void 0!==t?t:"false")})()}hasStorageWritePermission(){var n=this;return(0,l.A)(function*(){var t;return"true"==(null!==(t=yield n.storageService.getValue(S.mG.AndroidFileWritePermission))&&void 0!==t?t:"false")})()}requestStoragePermission(){var n=this;return(0,l.A)(function*(){if(m.Z.isAndroid){var t,o,h,u;let E=null!==(t=null===(o=yield n.androidPermission.checkPermission(n.androidPermission.PERMISSION.READ_EXTERNAL_STORAGE))||void 0===o?void 0:o.hasPermission)&&void 0!==t&&t;v.K.Debug("\u{1f680} ~ PermissionService ~ requestStoragePermissions ~ extStorageReadPermission:",E),yield n.storageService.setValue(S.mG.AndroidFileReadPermission,E);let C=null!==(h=null===(u=yield n.androidPermission.checkPermission(n.androidPermission.PERMISSION.WRITE_EXTERNAL_STORAGE))||void 0===u?void 0:u.hasPermission)&&void 0!==h&&h;v.K.Debug("\u{1f680} ~ PermissionService ~ requestStoragePermissions ~ extStorageWritePermission:",C),yield n.storageService.setValue(S.mG.AndroidFileWritePermission,C)}})()}}).ctorParameters=()=>[{type:d.d},{type:z.K},{type:Z._Z},{type:I.v},{type:V.V},{type:U.hG},{type:P.n},{type:s.g}],N);O=(0,g.Cg)([(0,T._qm)({providedIn:"root"})],O)},70476:(B,D,i)=>{"use strict";i.r(D),i.d(D,{IntroPageModule:()=>G});var l=i(31635),g=i(17705),I=i(60177),U=i(89417),m=i(35933),T=i(43559),d=i(104
167);var x,W=i(5744),z=i.n(W),Z=i(96625),S=i(40334),V=i(84412),s=i(21192),v=i(47669),P=i(72491),_=i(39440),N=i(25220),O=i(28874),Y=i(78746),n=i(7141),t=i(94228),o=i(86225),h=i(62630),u=i(88189),E=i(83812),C=i(83915);let L=((x=class{constructor(e,r,a,y,ae,ce,de,he,ue,ge){this.permissionService=e,this.networkService=r,this.alertCtrl=a,this.hubFactory=y,this.languageService=ae,this.qrCodeCtrl=ce,this.orientation=de,this.storageService=he,this.helper=ue,this.helperLogin=ge,this.hasNotificationPermission=!0,this.isServerValidating=!1,this.ShowUeberpruefen=!1,this.Pager=!0,this.reachedEndofSlides=!1,this.currentSlideIndex=0,this.CurrentSlideIndexBS=new V.t(-1),this.slideOpts={slidesPerView:3,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},on:{beforeInit(){const c=this;c.classNames.push(`${c.params.containerModifierClass}coverflow`),c.classNames.push(`${c.params.containerModifierClass}3d`),c.params.watchSlidesProgress=!0,c.originalParams.watchSlidesProgress=!0},setTranslate(){const c=this,{width:q,height:me,slides:ee,$wrapperEl:ve,slidesSizesGrid:fe,$:ye}=c,w=c.params.coverflowEffect,f=c.isHorizontal(),ne=c.translate,ie=f?q/2-ne:me/2-ne,re=f?w.rotate:-w.rotate,pe=w.depth;for(let A=0,Se=ee.length;A<Se;A+=1){const b=ee.eq(A),te=fe[A],p=(ie-b[0].swiperSlideOffset-te/2)/te*w.modifier;let j=f?re*p:0,X=f?0:re*p,$=-pe*Math.abs(p),H=f?0:w.stretch*p,Q=f?w.stretch*p:0;Math.abs(Q)<.001&&(Q=0),Math.abs(H)<.001&&(H=0),Math.abs($)<.001&&($=0),Math.abs(j)<.001&&(j=0),Math.abs(X)<.001&&(X=0);const Pe=`translate3d(${Q}px,${H}px,${$}px)  rotateX(${X}deg) rotateY(${j}deg)`;if(b.transform(Pe),b[0].style.zIndex=1-Math.abs(Math.round(p)),w.slideShadows){let K=f?b.find(".swiper-slide-shadow-left"):b.find(".swiper-slide-shadow-top"),F=f?b.find(".swiper-slide-shadow-right"):b.find(".swiper-slide-shadow-bottom");0===K.length&&(K=c.$(`<div class="swiper-slide-shadow-${f?"left":"top"}"></div>`),b.append(K)),0===F.length&&(F=c.$(`<div class="swiper-slide-shadow-${f?"right":"bottom"}"></div>`),b.append(F)),K.length&&(K[0].style.opacity=p>0?p:0),F.length&&(F[0].style.opacity=-p>0?-p:0)}}if(c.support.pointerEvents||c.support.prefixedPointerEvents){ve[0].style.perspectiveOrigin=`${ie}px 50%`}},setTransition(c){this.slides.transition(c).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(c)}}}}ngOnInit(){var e=this;return(0,d.A)(function*(){s.Z.isMobile&&e.orientation.lock(e.orientation.ORIENTATIONS.PORTRAIT),yield e.storageService.removeValue(P.mG.Server),yield e.languageService.setLanguage(),s.Z.addKeyboardScrollListeners()})()}ngOnDestroy(){s.Z.isMobile&&this.orientation.unlock(),this.CurrentSlideIndexBS.unsubscribe(),s.Z.removeKeyboardListeners()}ionViewWillEnter(){var e=this;return(0,d.A)(function*(){var r;e.validateRouting().then(a=>{a&&(o.K.Debug("\u{1f680} ~ IntroPage ~ ionViewWillEnter ~ this.validateRouting ~ url:",a),e.helper.navigateTo(a,{replaceUrl:!0}))}),yield e.helperLogin.removeClientIdAndPerson(),yield e.helperLogin.removeLoginId(),e.slidesCount=(null===(r=e.slides)||void 0===r?void 0:r.nativeElement.swiper.length)-1,o.K.Debug("\u{1f680} ~ IntroPage ~ ionViewWillEnter ~ slidesCount:",e.slidesCount),e.CurrentSlideIndexBS.subscribe(function(){var a=(0,d.A)(function*(y){e.performBS(y)});return function(y){return a.apply(this,arguments)}}())})()}ionViewDidEnter(){var e=this;return(0,d.A)(function*(){var r;e.rgLanguage&&(e.rgLanguage.value=null!==(r=s.Z.language)&&void 0!==r?r:"de");s.Z.hideSplashscreen()})()}slideIndexChanged(e=null){var r;this.currentSlideIndex=null===(r=this.slides)||void 0===r?void 0:r.nativeElement.swiper.activeIndex,o.K.Debug("\u{1f680} ~ IntroPage ~ slideIndexChanged ~ currentSlideIndex:",this.currentSlideIndex),this.CurrentSlideIndexBS.next(this.currentSlideIndex)}nextSlide(e=null){this.slides.nativeElement.swiper.isEnd||(this.slides.nativeElement.swiper.allowSlideNext=!0,this.slides.nativeElement.swiper.slideNext(200),this.slides.nativeElement.swiper.allowSlideNext=!1),this.slideIndexChanged()}performBS(e){var r=this;return(0,d.A)(function*(){switch(o.K.Debug("\u{1f680} ~ IntroPage ~ performBS ~ value:",e),r.ShowUeberpruefen=!1,e){case 1:r.ShowUeberpruefen=!0,yield r.ServerDomain.setFocus();break;case 2:s.Z.isMobile&&(yield S.s3.hide(),r.hasNotificationPermission=yield r.permissionService.hasNotificationPermission()),r.animateFeatures();break;case 4:r.reachedEndofSlides=!0}})()}validateRouting(){var e=this;return(0,d.A)(function*(){const r=yield e.storageService.getValue(P.mG.IntroKey);o.K.Debug("\u{1f680} ~ IntroPage ~ validateRouting ~ introKey:",r);const a=yield e.storageService.getValue(P.mG.Server);return o.K.Debug("\u{1f680} ~ IntroPage ~ validateRouting ~ serverAdress:",a),s.Z.isWeb||r&&String(a).length>1?"/home":a?"/login":"/intro"})()}languageChanged(){var e=this;return(0,d.A)(function*(){yield e.languageService.setLanguage(e.rgLanguage.value),o.K.Debug("\u{1f680} ~ IntroPage ~ languageChanged","AppComponent.language: "+s.Z.language+" "+typeof s.Z.language)})()}requestNotificationPermission(){var e=this;return(0,d.A)(function*(){s.Z.isMobile&&(e.hasNotificationPermission=yield e.permissionService.requestNotificationPermission())})()}saveServerIP(){var e=this;return(0,d.A)(function*(){var r;s.Z.isMobile&&(yield S.s3.hide());let a=e.processServerUrl(String(null===(r=e.ServerDomain)||void 0===r?void 0:r.value));if(a)try{e.isServerValidating=!0,e.CheckButton.disabled=!0,yield _.V.buildHubConnection(a+"/MasterHub").start(),s.Z.isMobile&&(yield e.storageService.setValue(P.mG.Server,a)),s.Z.hasServer=!0,s.Z.get
1ServerVersion(e.hubFactory),e.successfullConnection()}catch(y){o.K.Fehler("\u{1f680} ~ IntroPage ~ saveServerIP ~ err:",y),e.errorConnection(a)}finally{e.CheckButton.disabled=!1,e.isServerValidating=!1}})()}processServerUrl(e){return v.c.localhostServer&&(e=v.c.localhostUrl),e=this.checkUrl(e),!v.c.localhostServer&&!e.startsWith("https://")&&(e.includes("localhost")||e.includes("10.0.2.2")?e.startsWith("http://")||(e="http://"+e):e="https://"+e),o.K.Debug("\u{1f680} ~ IntroPage ~ processServerUrl ~ url:",e),e}checkUrl(e){return/([A-Za-z0-9])/.test(e[e.length-1])?e:this.checkUrl(e.substring(0,e.length-1))}errorConnection(e){var r=this;return(0,d.A)(function*(){(yield r.networkService.isConnected())?r.alertCtrl.createErrorAlert(r.languageService.translate("lblFehler"),r.languageService.translate("lblFehlerVerbindungsherstellungServers")+" "+e):r.alertCtrl.createErrorAlert(r.languageService.translate("lblFehler"),r.languageService.translate("msgNetzwerkPruefen"))})()}successfullConnection(){var e=this;return(0,d.A)(function*(){e.alertCtrl.createSuccessAlert(e.languageService.translate("lblErfolg"),e.languageService.translate("lblTestverbindungerfolgreich")),e.nextSlide()})()}scanQRCode(){var e=this;return(0,d.A)(function*(){let r=yield e.qrCodeCtrl.readQRCode();null!=r&&r.hasContent&&null!=r&&r.content&&(e.ServerDomain.value=null==r?void 0:r.content,yield e.saveServerIP())})()}finishSetup(){var e=this;return(0,d.A)(function*(){s.Z.isMobile&&(yield e.storageService.setValue(P.mG.IntroKey,"true"),s.Z.hasSeenIntro=!0),e.helper.navigateTo("/login",{replaceUrl:!0})})()}animateFeatures(){return(0,d.A)(function*(){let e=document.querySelectorAll(".menuItem");for(let r=0;r<e.length;r++){e[r]}})()}info(){this.alertCtrl.createInfoAlertHTML(null,"<p>"+this.languageService.translate("msgInfoServeradresse")+"</p><p><b>"+this.languageService.translate("msgKeinKunde")+"</b><br/>"+this.languageService.translate("msgMeldenBeiUns")+"</p><p><a href='"+this.languageService.translate("lblWebseite")+"'>"+this.languageService.translate("lblWebseite")+"</a></p>")}}).ctorParameters=()=>[{type:u.n},{type:h.A},{type:N.u},{type:n.d},{type:t.g},{type:E.r},{type:Z.Z},{type:C.n},{type:O.N},{type:Y.A}],x.propDecorators={slides:[{type:g.Uct,args:["Carousel",{read:g.aKT,static:!1}]}],NextButton:[{type:g.Uct,args:["NextButton",{read:m.Jm}]}],CheckButton:[{type:g.Uct,args:["CheckButton",{read:m.Jm}]}],rgLanguage:[{type:g.Uct,args:["rgLanguage"]}],ServerDomain:[{type:g.Uct,args:["ServerDomain"]}],hasNotificationPermission:[{type:g.pde,args:["hasNotificationPermission"]}]},x);var J,R;L=(0,l.Cg)([(0,g.uAl)({selector:"app-intro",template:'<ion-header>\r\n  <ion-toolbar>\r\n    <ion-title>{{\'lblWillkommen\' | translate}}</ion-title>\r\n    <ion-buttons slot="end">\r\n      <ion-button *ngIf="!this.reachedEndofSlides && !this.ShowUeberpruefen" (click)="nextSlide($event)" expand="block">\r\n        <ion-icon slot="icon-only" name="arrow-forward-outline"></ion-icon>\r\n      </ion-button>\r\n\r\n      <ion-button *ngIf="this.ShowUeberpruefen" (click)="form.ngSubmit.emit()" [disabled]="form.invalid" expand="block">\r\n        <ion-icon slot="icon-only" name="cloud-done-outline"></ion-icon>\r\n      </ion-button>\r\n\r\n      <ion-button *ngIf="this.reachedEndofSlides" (click)="finishSetup()" expand="block">\r\n        <ion-icon slot="icon-only" name="checkmark-done-outline"></ion-icon>\r\n      </ion-button>\r\n    </ion-buttons>\r\n  </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content [forceOverscroll]="false" [fullscreen]="true" [scrollY]="true">\r\n  <swiper-container #Carousel (slideChange)="slideIndexChanged($event)" [initialSlide]="0" [allowSlidePrev]="false"\r\n    [allowSlideNext]="false">\r\n\r\n    <swiper-slide>\r\n      <ion-grid class="slideElements ion-text-center">\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <div class="appIcon">\r\n              <img id="AppIcon" src="./assets/images/AppIconTransparent_rand.png" />\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <ion-label class="title" style="font-size: 1.5em;">\r\n              {{\'lblMitarbeiterportal\' | translate}}\r\n            </ion-label>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <ion-label>{{\'lblWillkommen\' | translate}}</ion-label>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <ion-label class="title">{{\'lblSpracheWaehlen\' | translate}}</ion-label>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <ion-radio-group mode="md" #rgLanguage (ionChange)="languageChanged()">\r\n              <ion-item>\r\n                <ion-radio value="de" mode="md">Deutsch</ion-radio>\r\n              </ion-item>\r\n\r\n              <ion-item>\r\n                <ion-radio value="fr" mode="md">Fran\xe7ais</ion-radio>\r\n              </ion-item>\r\n\r\n              <ion-item>\r\n                <ion-radio value="it" mode="md">Italiano</ion-radio>\r\n              </ion-item>\r\n            </ion-radio-group>\r\n          </ion-col>\r\n        </ion-row>\r\n      </ion-grid>
1\r\n    </swiper-slide>\r\n\r\n    <swiper-slide>\r\n      <ion-grid class="slideElements ion-text-center">\r\n        <form #form="ngForm" id="ngForm" (ngSubmit)="saveServerIP()">\r\n          <ion-row>\r\n            <ion-col size="12">\r\n              <lottie-player class="lottieServeradress" autoplay loop\r\n                src="./assets/lottieFiles/server-sync.json"></lottie-player>\r\n            </ion-col>\r\n          </ion-row>\r\n\r\n          <ion-row class="ion-margin-bottom">\r\n            <ion-col size="12">\r\n              <h3 class="title">{{\'lblServeradresseEingeben\' | translate}}</h3>\r\n            </ion-col>\r\n          </ion-row>\r\n\r\n          <ion-row class="ion-margin-bottom">\r\n            <ion-col size="12">\r\n              <ion-item>\r\n                <ion-input ngModel required #ServerDomain type="url" name="Server" class="ion-text-start"\r\n                           placeholder="z.B subdomain.domain.ch">\r\n                </ion-input>\r\n                <ion-spinner #loadingSpinner name="crescent" color="primary" *ngIf="this.isServerValidating"></ion-spinner>\r\n                <ion-button class="infoSoftButton" (click)="scanQRCode()" [disabled]="this.isServerValidating">\r\n                  <ion-icon slot="icon-only" name="qr-code-outline"></ion-icon>\r\n                </ion-button>\r\n                <ion-button fill="clear" (click)="info()">\r\n                  <ion-icon size="large" class="color-text" slot="icon-only" ios="help-circle-outline"\r\n                    md="help-circle-sharp">\r\n                  </ion-icon>\r\n                </ion-button>\r\n              </ion-item>\r\n            </ion-col>\r\n          </ion-row>\r\n        </form>\r\n      </ion-grid>\r\n    </swiper-slide>\r\n\r\n    <swiper-slide>\r\n      <ion-grid class="slideElements ion-text-center">\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <div>\r\n              <ion-label class="title">\r\n                {{\'lblPushnachrichten\' | translate}}:\r\n              </ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <div>\r\n              <ion-label class="title">\r\n                {{\'msgImmerDirektInformiert\' | translate}}\r\n              </ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <div>\r\n              <lottie-player class="lottiePushNotifications" autoplay loop\r\n                src="./assets/lottieFiles/PushNotificationsPermission.json"></lottie-player>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom ion-margin-vertical">\r\n          <ion-col size="12" style="font-style:italic; font-size: 12px;">\r\n            <div>\r\n              <ion-label>\r\n                {{\'msgPushBerechtigungSetzen\' | translate}}\r\n              </ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12" style="font-style:italic; font-size: 12px;">\r\n            <ion-label class="title">\r\n              {{\'lblBerechtigungen\' | translate}}{{\':\'}}\r\n            </ion-label>\r\n          </ion-col>\r\n        </ion-row>\r\n        <ion-row class="ion-margin-bottom ion-justify-content-center">\r\n          <ion-col size="12" class="ion-align-self-center">\r\n            <ion-item detail button [disabled]="this.hasNotificationPermission"\r\n              (click)="requestNotificationPermission()">\r\n              <ion-label>\r\n                {{\'lblBenachrichtigungen\' | translate}}\r\n              </ion-label>\r\n              <ng-container>\r\n                <ion-icon *ngIf="this.hasNotificationPermission" size="large" color="success"\r\n                  name="checkmark-outline"></ion-icon>\r\n                <ion-icon *ngIf="!this.hasNotificationPermission" size="large" color="danger"\r\n                  name="close-outline"></ion-icon>\r\n              </ng-container>\r\n            </ion-item>\r\n          </ion-col>\r\n        </ion-row>\r\n      </ion-grid>
1\r\n    </swiper-slide>\r\n\r\n    <swiper-slide>\r\n      <ion-grid class="slideElements ion-text-center">\r\n        <ion-row class="ion-margin-bottom">\r\n          <ion-col size="12">\r\n            <div>\r\n              <ion-label class="title">\r\n                {{\'lblDashboard\' | translate}}:\r\n              </ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12" class="title">\r\n            <div>\r\n              <ion-label>\r\n                {{\'msgAllesAufEinenBlick\' | translate}}\r\n              </ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <div>\r\n              <lottie-player class="lottieDashboard" autoplay loop src="./assets/lottieFiles/Dashboard.json">\r\n              </lottie-player>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-bottom ion-align-items-center ion-justify-content-center">\r\n          <ion-col size="12">\r\n            <div class="list-center">\r\n              <ul>\r\n                <li>\r\n                  <ion-label>{{\'lblDiensteinteilung\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblFahrauftrag\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblCheckInCheckOut\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblNachrichten\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblAbtausche\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblBoerse\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblShortcuts\' | translate}}</ion-label>\r\n                </li>\r\n                <li>\r\n                  <ion-label>{{\'lblUndVielesMehr\' | translate}}</ion-label>\r\n                </li>\r\n              </ul>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n      </ion-grid>\r\n    </swiper-slide>\r\n\r\n    <swiper-slide>\r\n      <ion-grid class="slideElements ion-text-center">\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <div class="appIcon">\r\n              <img id="AppIcon" src="./assets/images/AppIconTransparent_rand.png" />\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <lottie-player autoplay loop class="lottieRating" speed="1.5"\r\n              src="./assets/lottieFiles/rating.json"></lottie-player>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <div>\r\n              <ion-label class="title">{{\'msgGefaelttIhnendieApp\' | translate}}</ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row class="ion-margin-vertical">\r\n          <ion-col size="12">\r\n            <div>\r\n              <ion-label>{{\'msgBewertungErwuenscht\'| translate}}</ion-label>\r\n            </div>\r\n          </ion-col>\r\n        </ion-row>\r\n\r\n        <ion-row>\r\n          <ion-col size="12">\r\n            <ion-label class="title">{{\'msgViewlVergnuegen\' | translate}}</ion-label>\r\n          </ion-col>\r\n        </ion-row>\r\n      </ion-grid>\r\n    </swiper-slide>\r\n  </swiper-container>\r\n</ion-content>\r\n\r\n<ion-footer>\r\n  <ion-grid>\r\n    <ion-row class="ion-align-items-center">\r\n      <ion-col size="12" class="ion-align-self-center ion-text-center">\r\n        <ion-button #NextButton *ngIf="!this.reachedEndofSlides && !this.ShowUeberpruefen" (click)="nextSlide($event)" class="infoSoftButton" expand="block">\r\n          <ion-icon slot="end" name="arrow-forward-outline"></ion-icon>\r\n          {{\'lblWeiter\' | translate}}\r\n        </ion-button>\r\n\r\n        <ion-button #CheckButton *ngIf="this.ShowUeberpruefen" (click)="form.ngSubmit.emit()"\r\n            [disabled]="form.invali
1d" class="infoSoftButton" expand="block">\r\n          <ion-icon slot="end" name="cloud-done-outline"></ion-icon>\r\n          {{\'lblUeberpruefen\' | translate}}\r\n        </ion-button>\r\n\r\n        <ion-button *ngIf="this.reachedEndofSlides" (click)="finishSetup()" class="infoSoftButton" expand="block">\r\n          <ion-icon slot="end" name="checkmark-done-outline"></ion-icon>\r\n          {{\'lblAbschliessen\' | translate}}\r\n        </ion-button>\r\n      </ion-col>\r\n    </ion-row>\r\n  </ion-grid>\r\n</ion-footer>\r\n',styles:[z()]})],L),(R=J||(J={})).PushNotificationPermission="./assets/lottieFiles/PushNotificationsPermission.json",R.Dashboard="./assets/lottieFiles/Dashboard.json";const oe=[{path:"",component:L}];let k=class{};k=(0,l.Cg)([(0,g.UQu)({imports:[T.iI.forChild(oe)],exports:[T.iI]})],k);var se=i(1775),le=i(73955);let G=class{};G=(0,l.Cg)([(0,g.UQu)({imports:[I.MD,U.YN,m.bv,k,se.G,le.h,U.X1],declarations:[L],schemas:[g.CkJ]})],G)},5744:(B,D,i)=>{var l=i(8564),I=i(98557)(l);I.push([B.id,".slideElements {\n  height: 90%;\n  margin-top: 30px;\n}\n\n.title {\n  font-weight: bold;\n}\n\nion-radio-group {\n  width: 100%;\n}\n\nion-grid {\n  height: 96%;\n}\n\n.list-center {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.list-center li {\n  margin: 5px 0px;\n  text-align: left;\n}\n\n.appIcon {\n  max-height: 240px;\n  max-width: 240px;\n  min-height: 200px;\n  min-width: 200px;\n  width: 100%;\n  height: 100%;\n  margin: 0 auto;\n}\n\n.appIconBorder {\n  border-width: 1px;\n  border-style: solid;\n  border-color: darkgrey;\n  border-radius: 25%;\n}\n\n#AppIcon {\n  max-width: 160px;\n  min-width: 30px;\n  width: 80%;\n}\n\n.lottieServeradress {\n  max-width: 250px;\n  max-height: 250px;\n  width: 100%;\n  height: 100%;\n  margin: 0 auto;\n}\n\n.lottiePushNotifications {\n  max-width: 140px;\n  max-height: 140px;\n  width: 100%;\n  height: 100%;\n  margin: 0 auto;\n}\n\n.lottieDashboard {\n  max-width: 250px;\n  max-height: 250px;\n  width: 100%;\n  height: 100%;\n  margin: 0 auto;\n}\n\n.lottieRating {\n  max-height: 150px;\n  max-width: 460px;\n  width: 100%;\n  height: 100%;\n  margin: 0 auto;\n}",""]),B.exports=I.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.