1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[4182],{24182:(b,A,r)=>{"use strict";r.r(A),r.d(A,{AnmeldekontrollePageModule:()=>P});var h=r(31635),l=r(17705),f=r(60177),S=r(89417),T=r(35933),I=r(43559),d=r(10467);var C=r(58861),O=r.n(C),y=r(97586);class R{}var m,k=r(28874),x=r(7141),L=r(94228),z=r(82014),v=r(86225),w=r(59545);let p=((m=class{constructor(e,n,t,i,o,c){this.hubFactory=e,this.helper=n,this.nfcService=t,this.languageService=i,this.loadingService=o,this.cdRef=c,this.isLoading=!1,this.title="",this.user=void 0,this.anmeldungBerechtigung=new R,this.antritte=[],this.weckrufe=[],this.selectedDate=new Date,this.config={shortSwipeDuration:180},this.refreshIntervalInSec=60,this.activeTabIndex=0,this.yPos=0,this.yPosOld=void 0}ngOnInit(){var e=this;return(0,d.A)(function*(){e.user=yield e.helper.getPerson(),e.anmeldungBerechtigung=yield(yield e.hubFactory.permissionService()).getAnmeldekontrolleBerechtigung(),e.title=e.getTitle()})()}ionViewWillEnter(){var e=this;return(0,d.A)(function*(){e.loadData()})()}ionViewDidEnter(){this.refreshInterval=setInterval(()=>{this.loadData()},1e3*this.refreshIntervalInSec),this.hubFactory.alertService.setAfterCloseFunction(this.navigateTo,this)}ionViewDidLeave(){this.hubFactory.alertService.setAfterCloseFunction(void 0,void 0),clearInterval(this.refreshInterval),this.yPosOld=void 0}get hasCheckInPermission(){var e,n;return(null===(e=this.anmeldungBerechtigung)||void 0===e?void 0:e.ZugriffAnmeldungMobil)||(null===(n=this.anmeldungBerechtigung)||void 0===n?void 0:n.AnAbmeldungNFC)}get hasCheckOutPermission(){var e,n;return(null===(e=this.anmeldungBerechtigung)||void 0===e?void 0:e.ZugriffAbmeldungMobil)||(null===(n=this.anmeldungBerechtigung)||void 0===n?void 0:n.AnAbmeldungNFC)}getTitle(){var e,n;let t="";return this.hasCheckInPermission&&(t+=this.languageService.translate("lblCheckIn")),this.hasCheckOutPermission&&(""!=t&&(t+=" / "),t+=this.languageService.translate("lblCheckOut")),""==t&&null!==(e=this.anmeldungBerechtigung)&&void 0!==e&&e.AntrittDeaktivieren&&(t=this.languageService.translate("lblAlarme")),""==t&&null!==(n=this.anmeldungBerechtigung)&&void 0!==n&&n.ZugriffWeckruf&&(t=this.languageService.translate("lblWeckruf")),t}loadData(e){var n=this;return(0,d.A)(function*(){if(!n.isLoading){try{var t,i,o,c;if(n.isLoading=!0,yield n.loadingService.showLoader(),null==e||e==u.Antritt)n.antritte=[],n.antritte=yield(yield n.hubFactory.anmeldekontrolleService()).getAntritte(),null===(t=n.antritte)||void 0===t||t.sort((a,g)=>k.N.sortByDate(null==a?void 0:a.AntrittSoll,null==g?void 0:g.AntrittSoll)),v.K.Debug("\u{1f680} ~ AnmeldekontrollePage ~ loadData ~ Antritte:",null===(i=n.antritte)||void 0===i?void 0:i.length);if(null==e||e==u.Weckruf)n.weckrufe=[],n.weckrufe=yield(yield n.hubFactory.anmeldekontrolleService()).getWeckrufe(n.selectedDate),null===(o=n.weckrufe)||void 0===o||o.sort((a,g)=>k.N.sortByDate(null==a?void 0:a.AntrittSoll,null==g?void 0:g.AntrittSoll)),v.K.Debug("\u{1f680} ~ AnmeldekontrollePage ~ loadData ~ Weckrufe:",null===(c=n.weckrufe)||void 0===c?void 0:c.length);e&&n.superTabs&&(n.superTabs.activeTabIndex=e),n.scrollToAlarm()}catch(a){v.K.Fehler("\u{1f680} ~ AnmeldekontrollePage ~ loadData ~ err:",a)}finally{yield n.loadingService.dismiss(),n.isLoading=!1}n.cdRef.detectChanges()}})()}tabChanged(e){var n;e&&(this.activeTabIndex=null==e||null===(n=e.detail)||void 0===n?void 0:n.index,this.superTabs.activeTabIndex=this.activeTabIndex)}navigateToIndex(e){var n=this;return(0,d.A)(function*(){setTimeout((0,d.A)(function*(){var t;null===(t=n.superTabs)||void 0===t||t.selectTab(e,!1),yield n.loadData(e)}),500)})()}navigateTo(e){null==e||e.navigateToIndex(null==e?void 0:e.activeTabIndex)}scrollToAlarm(){var e;null===(e=this.personAlarm)||void 0===e||null===(e=e.changes)||void 0===e||e.subscribe(n=>{null!=n&&n.last?setTimeout(()=>{var t,i,o;null==this.yPosOld?(this.yPos=null==n||null===(t=n.last)||void 0===t||null===(t=t.nativeElement)||void 0===t||null===(t=t.offsetParent)||void 0===t?void 0:t.offsetTop,null===(i=this.content)||void 0===i||i.scrollToPoint(0,this.yPos-5,500)):null===(o=this.content)||void 0===o||o.scrollToPoint(0,this.yPosOld)},100):setTimeout(()=>{var t;null!=this.yPosOld&&(null===(t=this.content)||void 0===t||t.scrollToPoint(0,this.yPosOld))},100)})}getScrollPosition(e){var n,t;0!=(null==e||null===(n=e.detail)||void 0===n?void 0:n.deltaY)&&(this.yPosOld=null==e||null===(t=e.detail)||void 0===t?void 0:t.scrollTop)}nextDate(){this.selectedDate=y(this.selectedDate).add(1,"day").toDate(),this.loadData(u.Weckruf)}prevDate(){this.selectedDate=y(this.selectedDate).add(-1,"day").toDate(),this.loadData(u.Weckruf)}setDate(e){var n=this;return(0,d.A)(function*(){n.selectedDate=y(e).endOf("day").toDate(),n.loadData(u.Weckruf)})()}doRefresh(){var e=this;return(0,d.A)(function*(n=null,t){try{e.loadData(t)}catch(c){v.K.Debug("\u{1f680} ~ AnmeldekontrollePage ~ doRefresh ~ err:",c)}finally{var i,o;null===(i=e.refresherAntritt)||void 0===i||i.complete(),null===(o=e.refresherWeckruf)||void 0===o||o.complete()}}).apply(this,arguments)}}).ctorParameters=()=>[{type:x.d},{type:k.N}
1,{type:w.z},{type:L.g},{type:z.U},{type:l.gRc}],m.propDecorators={refresherAntritt:[{type:l.Uct,args:["refresherAntritt"]}],refresherWeckruf:[{type:l.Uct,args:["refresherWeckruf"]}],content:[{type:l.Uct,args:["content"]}],personAlarm:[{type:l.b2L,args:["personAlarm"]}],superTabs:[{type:l.Uct,args:["superTabs"]}]},m);var u,s;p=(0,h.Cg)([(0,l.uAl)({selector:"app-anmeldekontrolle",template:'<ion-header>\r\n <isg-header [Title]="this.title"\r\n [Reload-Enable]="true" (Reload-Event)="doRefresh($event)">\r\n </isg-header>\r\n</ion-header>\r\n\r\n\x3c!-- TODO: Replace with ion-tabs (https://ionicframework.com/docs/api/tabs). (https://infosoft-systems.atlassian.net/browse/INFOSOFT-588) --\x3e\r\n<super-tabs [config]="this.config" #superTabs (tabChange)="tabChanged($event)">\r\n <super-tabs-toolbar color="light" slot="top">\r\n <super-tab-button\r\n *ngIf="this.hasCheckInPermission || this.hasCheckOutPermission || this.anmeldungBerechtigung?.AntrittDeaktivieren">\r\n <ion-label class="text-pre-wrap">{{this.title}}</ion-label>\r\n </super-tab-button>\r\n <super-tab-button *ngIf="this.anmeldungBerechtigung?.ZugriffWeckruf">\r\n <ion-label>{{\'lblWeckruf\' | translate}}</ion-label>\r\n </super-tab-button>\r\n </super-tabs-toolbar>\r\n\r\n <super-tabs-container>\r\n <super-tab *ngIf="this.hasCheckInPermission || this.hasCheckOutPermission || this.anmeldungBerechtigung?.AntrittDeaktivieren">\r\n <ion-content #content [scrollEvents]="true" (ionScroll)="getScrollPosition($event)">\r\n <ion-refresher #refresherAntritt slot="fixed" (ionRefresh)="doRefresh($event,0)">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col sizeXl="10" offsetXl="1">\r\n\r\n <ion-grid *ngIf="this.isLoading">\r\n <ion-row>\r\n <ion-col size="12" sizeLg="6" sizeXl="4"\r\n *ngFor="let item of this.helper.placeholderArray(3)">\r\n <app-skeleton-text-card></app-skeleton-text-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-item lines="full" *ngIf="!this.isLoading && this.antritte?.length <= 0">\r\n <ion-label class="ion-text-wrap font-bold ion-padding-vertical ion-text-center">\r\n {{\'lblKeineDatenVerfuegbar\' | translate}}\r\n </ion-label>\r\n </ion-item>\r\n\r\n <ion-grid *ngIf="!this.isLoading && this.antritte?.length > 0">\r\n <ion-row>\r\n <ion-col size="12" sizeLg="6" sizeXl="4"\r\n *ngFor="let antritt of this.antritte; let i = index">\r\n <div #personAlarm\r\n *ngIf="antritt?.fkPerson == this.user?.ID && antritt.ErledigtWann == undefined">\r\n </div>\r\n <app-alarm-card [page]="this" [antritt]="antritt"\r\n [anmeldungBerechtigung]="this.anmeldungBerechtigung"\r\n [canAbtausch]="this.user?.ZugriffAnmeldungAbtausch">\r\n </app-alarm-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-content>\r\n </super-tab>\r\n\r\n <super-tab *ngIf="this.anmeldungBerechtigung?.ZugriffWeckruf">\r\n <ion-content class="center">\r\n <ion-refresher #refresherWeckruf slot="fixed" (ionRefresh)="doRefresh($event,1)">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col sizeMd="8" offsetMd="2" sizeLg="6" offsetLg="3" sizeXl="4" offsetXl="4">\r\n\r\n <ion-item lines="full" class="ion-text-center">\r\n <ion-grid>\r\n <ion-row class="ion-justify-content-center ion-align-items-center">\r\n <ion-col size="3">\r\n <ion-button shape="round" fill="clear" expand="block" (click)="this.prevDate()">\r\n <ion-icon slot="icon-only" name="chevron-back-outline"></ion-icon>\r\n </ion-button>\r\n </ion-col>\r\n <ion-col size="6">\r\n <isg-datetime Presentation="date" LastDayOfMonth="false"\r\n [Value]="this.selectedDate?.toISOString()"\r\n (changeEvent)="this.setDate($event)">\r\n </isg-datetime>\r\n </ion-col>\r\n <ion-col size="3">\r\n <ion-button shape="round" fill="clear" expand="block" (click)="this.nextDate()">\r\n <ion-icon slot="icon-only" name="chevron-forward-outline"></ion-icon>\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-item>\r\n\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col sizeXl="10" offsetXl="1">\r\n\r\n <ion-grid *ngIf="this.isLoading">\r\n <ion-row>\r\n <ion-col size="12" sizeLg="6" sizeXl="4"\r\n *ngFor="let item of this.helper.placeholderArray(3)">\r\n <app-skeleton-text-card></app-skeleton-text-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-item lines="full" *ngIf="!this.isLoading && this.weckrufe?.length <= 0">\r\n <ion-label class="ion-text-wrap font-bold ion-padding-vertical ion-text-center">\r\n {{\'lblKeineDatenVerfuegbar\' | translate}}\r\n </ion-label>\r\n </ion-item>\r\n\r\n <ion-grid *ngIf="!this.isLoading && this.weckrufe?.length > 0">\r\n <ion-row>\r\n <ion-col size="12" sizeLg="6" sizeXl="4"\r\n *ngFor="let weckruf of this.weckrufe; let i = index">\r\n <app-alarm-card [page]="this" [antritt]="weckruf"\r\n [anmeldungBerechtigung]="this.anmeldungBerechtigung"\r\n [canAbtausch]="this.user?.ZugriffAnmeldungAbtausch">\r\n </app-alarm-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-content>\r\n </super-tab>\r\n </super-tabs-container>\r\n</super-tabs>\r\n\r\n<ion-footer *ngIf="this.anmeldungBerechtigung?.AnAbmeldungNFC && this.nfcService.showNfcButton" class="ion-no-border">\r\n <ion-button extend="block" class="infoSoftButton"\r\n *ngIf="this.anmeldungBerechtigung?.AnAbmeldungNFC && this.nfcService.showNfcButton"\r\n (click)="this.nfcService.readNfcTag()">\r\n <ion-icon name="radio-outline" slot="start"></ion-icon>\r\n {{\'lblNfcLesen\' | translate}}\r\n </ion-button>\r\n</ion-footer>\r\n',styles:[O()]})],p),(s=u||(u={}))[s.Antritt=0]="Antritt",s[s.Weckruf=1]="Weckruf";const F=[{path:"",component:p}];let D=class{};D=(0,h.Cg)([(0,l.UQu)({imports:[I.iI.forChild(F)],exports:[I.iI]})],D);var W=r(73955),M=r(1775),N=r(68470),E=r(69991);let P=class{};P=(0,h.Cg)([(0,l.UQu)({imports:[f.MD,S.YN,T.bv,D,M.G,W.h,N.Qv,E.tZ],declarations:[p]})],P)},58861:(b,A,r)=>{var h=r(8564),f=r(98557)(h);
1f.push([b.id,"",""]),b.exports=f.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.