1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[8410],{8410:(v,p,e)=>{"use strict";e.r(p),e.d(p,{AntragAufFreiPageModule:()=>m});var c=e(31635),i=e(17705),d=e(60177),I=e(89417),b=e(35933),S=e(43559),l=e(10467);var h,D=e(14787),R=e.n(D),u=e(21192),g=e(18470),C=e(72491),T=e(51617),O=e(25220),x=e(51051),E=e(7141),y=e(28874),M=e(94228),F=e(86225),B=e(72515),L=e(34535),G=e(32653);let f=((h=class{constructor(r,n,t,a,s,o,Z,W,Y){this.hubFactory=r,this.helper=n,this.fabService=t,this.timeService=a,this.alertService=s,this.languageService=o,this.modalService=Z,this.toastService=W,this.popoverController=Y,this.isLoading=!1,this.antraege=[],this.absenzen=[]}get isSmallScreen(){return u.Z.isSmallScreen}ngOnInit(){}ionViewWillEnter(){var r=this;return(0,l.A)(function*(){r.loadData()})()}eAntragStatus(){return g.n}doRefresh(){var r=this;return(0,l.A)(function*(n=null){try{r.loadData()}catch(a){F.K.Debug("\u{1f680} ~ AntragAufFreiPage ~ doRefresh ~ err:",a)}finally{var t;null===(t=r.ionRefresher)||void 0===t||t.complete()}}).apply(this,arguments)}loadData(){var r=this;return(0,l.A)(function*(){if(!r.isLoading)try{var n;r.isLoading=!0,r.selectedAntrag=void 0,r.selectedAntragId=void 0,r.absenzen=[],r.absenzen=yield(yield r.hubFactory.diensteinteilungService()).getWebAbsenzen(),r.antraege=[],r.antraege=yield(yield r.hubFactory.personService()).GetAntraegeAufFreiFromCurrentPerson(),null===(n=r.antraege)||void 0===n||n.sort((t,a)=>y.N.sortByDate(null==t?void 0:t.Von,null==a?void 0:a.Von))}catch(t){F.K.Fehler("\u{1f680} ~ AntragAufFreiPage ~ loadAntraegeAufFrei ~ err:",t)}finally{r.isLoading=!1}})()}evaluateAntragStatusText(r){switch(r.Status){case g.n.Abgewiesen:return"lblAntragAbgewiesen";case g.n.Akzeptiert:return"lblAntragAkzeptiert";case g.n.Pendent:return"lblAntragPendent";case g.n.UebersteuertVonSucheArbeit:return"lblAntragUebersteuert";default:return"lblAntragUnbekannt"}}deleteFreiwunsch(r){var n=this;return(0,l.A)(function*(){let t=yield n.alertService.createYesNoAlert("",n.languageService.translate("msgAntragAufFreiLoeschen"));var a;if(null!=t&&t.isConfirmed&&(null===(a=n.antraege)||void 0===a?void 0:a.indexOf(r))>=0){let o=yield(yield n.hubFactory.freiwunschService()).deleteFreiwunsch(r.id);null!=o&&o.IsValid?(n.toastService.presentSuccessToast("",(null==o?void 0:o.Message)||n.languageService.translate("msgFreiGeloescht")),yield n.hubFactory.offlineCache.removeValue(C.nu.DashboardCards),n.doRefresh()):n.alertService.createErrorAlertHTML(n.languageService.translate("lblFehler"),(null==o?void 0:o.Message)||n.languageService.translate("msgFreiNichtGeloescht"))}})()}openPopoverOptions(r){var n=this;return(0,l.A)(function*(){return n.popover=yield n.popoverController.create({component:T.Y,translucent:!0,mode:"ios",event:r,arrow:!0,reference:"trigger",showBackdrop:!0,backdropDismiss:!0,keyboardClose:!0}),n.DetailFabButton.activated=!0,n.popover.onWillDismiss().then(t=>{n.DetailFabButton.activated=!1,u.Z.OpenPopovers.pop(),null!=t&&t.data&&n.doRefresh()}),u.Z.OpenPopovers.push(n.popover),yield n.popover.present()})()}changeSelectedET(r){var n=this;return(0,l.A)(function*(){let t=yield(yield n.hubFactory.freiwunschService()).getByID(r.id);if(n.selectedAntrag=t,n.selectedAntragId=r.id,u.Z.isSmallScreen){let a=yield n.modalService.openFreiwunschDetail(t);null==a||a.onDidDismiss().then(s=>{null!=s&&s.data&&n.doRefresh()}),null==a||a.present()}})()}}).ctorParameters=()=>[{type:E.d},{type:y.N},{type:x.h},{type:L.v},{type:O.u},{type:M.g},{type:B.B},{type:G.f},{type:b.IE}],h.propDecorators={ionRefresher:[{type:i.Uct,args:["ionRefresher"]}],DetailFabButton:[{type:i.Uct,args:["DetailFab"]}]},h);f=(0,c.Cg)([(0,i.uAl)({selector:"app-antrag-auf-frei",template:'<ion-header>\r\n <isg-header [Title]="\'lblAntragAufFrei\' | translate"\r\n [Reload-Enable]="true" (Reload-Event)="doRefresh($event)">\r\n </isg-header>\r\n</ion-header>\r\n\r\n<ion-content>\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 <div *ngIf="this.isLoading">\r\n <div *ngFor="let item of this.helper.placeholderArray(5)">\r\n <app-skeleton-text-item></app-skeleton-text-item>\r\n </div>\r\n </div>\r\n\r\n <ion-item *ngIf="!this.isLoading && this.antraege?.length <= 0" lines="full">\r\n <ion-label class="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.antraege?.length > 0" class="h-100">\r\n <ion-row class="h-100">\r\n <ion-col>\r\n \x3c!-- TODO: Refactor out into new AntragAufFreiCardComponent.--\x3e\r\n <ion-card *ngFor="let antrag of this.antraege"
1class="cursor-pointer"\r\n [ngClass]="{\'selected\': (antrag.id == this.selectedAntragId && !this.isSmallScreen)}"\r\n (click)="changeSelectedET(antrag)">\r\n <ion-card-header class="ion-no-padding ion-padding-top ion-padding-horizontal">\r\n <ion-card-title>\r\n <ion-grid class="ion-no-padding">\r\n <ion-row class="ion-no-padding">\r\n <ion-col size="auto" class="ion-text-center">\r\n <ion-label>{{this.timeService.dateFormat(antrag.Von)}}</ion-label>\r\n <br *ngIf="!antrag.IsGanzerTag"/>\r\n <ion-label *ngIf="!antrag.IsGanzerTag" class="font-medium">{{this.timeService.convertToTime(antrag.Von)}}</ion-label>\r\n </ion-col>\r\n\r\n <ion-col size="auto" class="ion-text-center">\r\n <ion-label> - </ion-label>\r\n </ion-col>\r\n\r\n <ion-col size="auto" class="ion-text-center">\r\n <ion-label>{{this.timeService.dateFormat(antrag.Bis)}}</ion-label>\r\n <br *ngIf="!antrag.IsGanzerTag"/>\r\n <ion-label *ngIf="!antrag.IsGanzerTag" class="font-medium">{{this.timeService.convertToTime(antrag.Bis)}}</ion-label>\r\n </ion-col>\r\n\r\n <ion-col></ion-col>\r\n\r\n <ion-col size="auto" *ngIf="antrag.Status == this.eAntragStatus().Pendent && antrag.Antrag?.length > 0">\r\n <ion-button shape="round" fill="clear"\r\n class="ion-no-margin ion-no-padding"\r\n (click)="this.helper.showInfo(antrag?.Antrag); $event.stopPropagation()">\r\n <ion-icon slot="icon-only" name="information-circle-outline" size="large" color="medium"></ion-icon>\r\n </ion-button>\r\n </ion-col>\r\n\r\n <ion-col size="auto" *ngIf="antrag.Status != this.eAntragStatus().Pendent && antrag.Entscheid?.length > 0">\r\n <ion-button shape="round" fill="clear"\r\n class="ion-no-margin ion-no-padding"\r\n (click)="this.helper.showInfo(antrag?.Entscheid); $event.stopPropagation()">\r\n <ion-icon slot="icon-only" name="information-circle-outline" size="large" color="medium"></ion-icon>\r\n </ion-button>\r\n </ion-col>\r\n\r\n <ion-col size="auto" *ngIf="antrag.Status == this.eAntragStatus().Akzeptiert || antrag.Status == this.eAntragStatus().Abgewiesen">\r\n <ion-icon *ngIf="antrag.Status == this.eAntragStatus().Akzeptiert" name="checkmark" color="success" size="large"></ion-icon>\r\n <ion-icon *ngIf="antrag.Status == this.eAntragStatus().Abgewiesen" name="close" color="danger" size="large"></ion-icon>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-card-title>\r\n </ion-card-header>\r\n\r\n <ion-card-content class="ion-no-padding">\r\n <ion-grid>\r\n <ion-row>\r\n \x3c!-- Antrag --\x3e\r\n <ion-col class="mx-4">\r\n <ion-row>\r\n <ion-label class="font-bold">{{\'lblAbsenz\' | translate}}: </ion-label>\r\n <ion-label>{{antrag.DienstelementBezeichnung}}</ion-label>\r\n </ion-row>\r\n\r\n <ion-row>\r\n <ion-label class="font-bold">{{\'lblStatus\' | translate}}: </ion-label>\r\n <ion-label>{{this.evaluateAntragStatusText(antrag) | translate}}</ion-label>\r\n </ion-row>\r\n\r\n <ion-row>\r\n <ion-label class="font-bold">{{\'lblEingereichtAm\' | translate}}: </ion-label>\r\n <ion-label>{{this.timeService.dateFormat(antrag.Created)}}</ion-label>\r\n </ion-row>\r\n </ion-col>\r\n\r\n \x3c!-- Buttons --\x3e\r\n \x3c!-- `$event.stopPropagation()` is needed so that parent\'s (click) is not run. --\x3e\r\n <ion-col size="auto">\r\n <ion-row *ngIf="antrag.Status == this.eAntragStatus().Pendent">\r\n <ion-col>\r\n <ion-button button expand="block" class="infoSoftButton"\r\n (click)="deleteFreiwunsch(antrag); $event.stopPropagation()">\r\n <ion-icon slot="icon-only" name="trash"></ion-icon>\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-col>\r\n\r\n <ion-col [hidden]="this.isSmallScreen">\r\n <ion-item *ngIf="!this.selectedAntrag && this.antraege?.length > 0" lines="full">\r\n <ion-label>{{\'msgKeinAntragGewaehlt\' | translate}}</ion-label>\r\n </ion-item>\r\n <app-antrag-auf-frei-detail *ngIf="this.selectedAntrag"\r\n [FreiwunschDTO]="selectedAntrag"\r\n [Absenzen]="absenzen"\r\n [NoHeader]="true" (OnDelete)="doRefresh($event)">\r\n </app-antrag-auf-frei-detail>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <ion-fab slot="fixed" vertical="bottom"\r\n [horizontal]="this.fabService.DefaultPosition? this.fabService.DefaultPosition : \'center\'">\r\n <ion-fab-button #DetailFab (click)="openPopoverOptions($event)">\r\n <ion-icon name="ellipsis-horizontal"></ion-icon>\r\n </ion-fab-button>\r\n </ion-fab>\r\n</ion-content>\r\n',styles:[R()]})],f);const w=[{path:"",component:f}];let A=class{};A=(0,c.Cg)([(0,i.UQu)({imports:[S.iI.forChild(w)],exports:[S.iI]})],A);var V=e(1775),U=e(73955),N=e(51846),K=e(70971);let m=class{};
1m=(0,c.Cg)([(0,i.UQu)({imports:[d.MD,I.YN,b.bv,A,N.AntragAufFreiModalPageModule,K.EinteilungDetailPageModule,V.G,U.h],declarations:[f]})],m)},14787:(v,p,e)=>{var c=e(8564),d=e(98557)(c);d.push([v.id,"",""]),v.exports=d.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.