PageSourceSearch

https://infosoft.ate-bus.ch:4443/9161.915f7fd995871fae.js

js ate-bus.ch collected 2026-10-08 08:32:41 UTC 39,709 bytes, 1 lines download raw bytes

1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[9161],{9161:(P,x,l)=>{"use strict";l.r(x),l.d(x,{DiensteinteilungPageModule:()=>E});var A=l(31635),u=l(17705),F=l(60177),I=l(89417),w=l(35933),T=l(43559),o=l(10467);var L=l(32243),z=l.n(L),p=l(97586),f=l(21192);class G{constructor(){this.DienstortfremdeAnzeigen=!1,this.SucheArbeitAnzeigen=!1}}class N{}class O{constructor(){this.DienstortFremde=!1}}class R{}var y,D,g=l(72491),v=l(39440),H=l(7141),K=l(28874),m=l(86225),W=l(82014),V=l(94228),U=l(72515),Z=l(45918),Y=l(83915),j=l(34535);let M=(y=class{set firstCol(e){e&&(this.firstColWidth=(e.nativeElement.getBoundingClientRect().width+2).toString()+"px",this.ngZone.run)}get isSmallScreen(){return f.Z.isSmallScreen}constructor(e,n,t,i,r,s,a,h,d,b,c,k,q){this.hubFactory=e,this.languageService=n,this.documentViewer=t,this.actionSheetController=i,this.menuCtrl=r,this.modalService=s,this.loadingService=a,this.helper=h,this.timeService=d,this.cdRef=b,this.gesture=c,this.storageService=k,this.ngZone=q,this.items=Array.from({length:1e5}).map((ee,_)=>`Item #${_}`),this.dateArray=new Array,this.weekdayArray=new Array,this.tagesbemerkungIDArray=[],this.DienstortFremde=!1,this.dispoReportLoading=!1,this.persDispoLoading=!1,this.dienstEinteilungLoading=!1,this.permission=new N,this.personenListe=[],this.SucheArbeitColors=new R,this.AktualisierungsIntervall=5,this.personHervorhebung="rgb(255, 182, 193)",this.minDate=void 0,this.maxDate=void 0,this.isLoading=!1,this.GestureStartPos=0,this.GestureEndPos=0,this.MenuSwipeActive=!0,this.MonthSwipeCount=0,this.DaysLoading=14,this.daysLoaded=0,this._isLoadingEntries=!1,this.contactsOpening=!1,this.NurEigenedetails=null,this.setMonth(new Date)}isOffline(){return f.Z.isAppModeOffline()}ngOnInit(){var e=this;return(0,o.A)(function*(){var n,t;(p.locale(yield e.languageService.getLanguage()),null==D.AppModeSubscription||null!==(n=D.AppModeSubscription)&&void 0!==n&&n.closed)&&(D.AppModeSubscription=null===(t=f.Z.AppMode)||void 0===t?void 0:t.subscribe(function(){var i=(0,o.A)(function*(r){(r==g.Sq.Offline||r==g.Sq.Online)&&e.loadData()});return function(r){return i.apply(this,arguments)}}()));if(e.person=yield e.helper.getPerson(),!e.isOffline()){e.getSucheArbeitColors(),e.permission=yield(yield e.hubFactory.permissionService()).getDiensteinteilungPermission();try{e.personHervorhebung=yield(yield e.hubFactory.settingService()).GetDiensteinteilungPersonHervorhebung()}catch(i){m.K.Fehler("\u{1f680} ~ DiensteinteilungPage ~ ngOnInit ~ err:",i)}}e.setNgIfs(),e.initFilter()})()}ngOnDestroy(){var e;this.unsubscribeSignalREvents(),null===(e=D.AppModeSubscription)||void 0===e||e.unsubscribe(),clearInterval(this.AktualisierungsTimer)}ionViewWillEnter(){var e=this;return(0,o.A)(function*(){e.subscribeScrollToIchHeute(),e.loadData().then((0,o.A)(function*(){f.Z.isMobile||(e.AktualisierungsIntervall=yield(yield e.hubFactory.settingService()).GetDispoAktualisierungsIntervall(),e.AktualisierungsIntervall>0&&(e.AktualisierungsTimer=setInterval((0,o.A)(function*(){e.daysLoaded<=0&&e.showEntries()}),60*e.AktualisierungsIntervall*1e3)))}));e.gesture.create({el:document.querySelector("tbody"),gestureName:"NextMonthGesture",threshold:e.customSwipeDistance(),gesturePriority:1,direction:"x",onStart:t=>{e.onStart(t)},onEnd:t=>{e.onEnd(t)}},!0);e.enableSwipeInMenu(!1),e.ngZone.run})()}ionViewWillLeave(){var e=this;return(0,o.A)(function*(){e.enableSwipeInMenu(!0)})()}customSwipeDistance(){return f.Z.isSmallScreen?.6*f.Z.deviceWidth:.4*f.Z.deviceWidth}onStart(e){this.GestureStartPos=e.startX}onEnd(e){var n=this;return(0,o.A)(function*(){if(!f.Z.isAppModeOnline())return;n.GestureEndPos=e.currentX,(yield(yield n.hubFactory.diensteinteilungService()).getDiensteinteilungBySwipe(n.getDiensteinteilungsFilter,n.daysLoaded,n.personenListe)).forEach(r=>{let s=n.personenListe.filter(a=>a.ID==r.ID)[0];s&&s.TagesEinteilung.push(...r.TagesEinteilung)}),n.dateArray=[...Array(n.dateArray.length+14).keys()].map(r=>++r);let i=null;n.personenListe.forEach(r=>{(null==i||i.TagesEinteilung.length<r.TagesEinteilung.length)&&(i=r)});for(let r=i.MonthLength;r<i.TagesEinteilung.length;r++)n.weekdayArray.push(i.TagesEinteilung[r].Wochentag);n.personenListe.forEach(r=>r.MonthLength+=14),n.daysLoaded+=14,n.cdRef.detectChanges()})()}loadData(){var e=this;return(0,o.A)(function*(){if(!e.isLoading)try{if(e.isLoading=!0,yield e.loadingService.showLoader(),e.isOffline()){let n=new Date;e.maxDate=p(new Date(n.getFullYear(),n.getMonth(),1)).add(2,"months").subtract(1,"day").format("yyyy-MM-DD"),e.minDate=p(new Date(n.getFullYear(),n.getMonth(),1)).format("yyyy-MM-DD")}else{let n=new Date;e.minDate=p(new Date(n.getFullYear(),n.getMonth(),1)).subtract(1,"year").format("yyyy-MM-DD"),e.maxDate=p(new Date(n.getFullYear(),n.getMonth(),1)).add(2,"years").format("yyyy-MM-DD")}yield e.setDate(e.SelectedMonth)}catch(n){m.K.Fehler("\u{1f680} ~ DiensteinteilungPage ~ loadData ~ err:",n)}finally{yield e.loadingService.dismiss(),e.isLoading=!1}})()}setPool(e){this.DropDownPool=e}loadPools(){var e=this;return(0,o.A)(function*(){var n;try{let t=yield(yield e.hubFactory.poolService()).GetPubliziertePools(e.FilterMonth);t&&(e.einteilungFilterPool=Object.values(t),e.einteilungFilterPool.sort((i,r)=>i.Bezeichnung.localeCompare(r.Bezeichnung)),e.cdRef.detectChanges())}catch(t){m.K.Fehler("\u{1f680} ~ DiensteinteilungPage ~ loadPools ~ err:",t)}null!==(n=e.einteilungFilterPool)&&void 0!==n&&n.find(t=>t.ID==Number(e.DropDownPool))||(e.DropDownPool="-1")})()}getPermission(){return(0,o.A)(function*(){})()}enableSwipeInMenu(e){this.menuCtrl.swipeGesture(e,"Filter"),this.menuCtrl.swipeGesture(e,"MainMenu")}initFilter(){var e,n;this.DropDownPool="-1",null!==(e=this.permission)&&void 0!==e&&e.SucheArbeitAnzeigen&&this.ckBoxSucheArbeit&&(this.ckBoxSucheArbeit.checked=!1),null!==(n=this.permission)&&void 0!==n&&n.DienstortfremdeAnzeigen&&(this.DienstortFremde=!1)}resetFilter(){var e=this;return(0,o.A)(function*(){e.initFilter(),e.setDate()})()}closeFilter(){var e=this;return(0,o.A)(function*(){yield e.menuCtrl.close("DiensteinteilungFilter")})()}openFilter(){var e=this;return(0,o.A)(function*(){yield e.menuCtrl.open("DiensteinteilungFilter")})()}toggleFilter(){var e=this;return(0,o.A)(function*(){yield e.content.scrollToTop(200),yield e.menuCtrl.enable(!0,"DiensteinteilungFilter"),yield e.menuCtrl.toggle("DiensteinteilungFilter")})()}loadLastFilterSelection(){var e=this;return(0,o.A)(function*(){var n,t;let i,r,s;var a;(e.initFilter(),e.isOffline()||(i=yield(yield e.hubFactory.personService()).GetUsersetting("Diensteinteilung_Selected_Pool"),r=yield(yield e.hubFactory.personService()).GetUsersetting("Diensteinteilung_Suchearbeit"),s=yield(yield e.hubFactory.personService()).GetUsersetting("Diensteinteilung_Dienstortfremd")),i||(i=yield e.storageService.getValue(g.mG.LastPool)),r||(r=yield e.storageService.getValue(g.mG.DispoSucheArbeit)),s||(s=yield e.storageService.getValue(g.mG.DispoDienstortfremd)),m.K.Debug("\u{1f680} ~ DiensteinteilungPage ~ loadLastFilterSelection ~ lastPool:",i),i)&&(void 0!==(null===(a=e.einteilungFilterPool)||void 0===a?void 0:a.find(h=>h.ID==Number(i)))&&(e.DropDownPool=i));null!==(n=e.permission)&&void 0!==n&&n.SucheArbeitAnzeigen&&e.ckBoxSucheArbeit&&r&&(e.ckBoxSucheArbeit.checked="true"==r),null!==(t=e.permission)&&void 0!==t&&t.DienstortfremdeAnzeigen&&s&&(e.DienstortFremde="true"==s)})()}saveLastFilterSelection(){var e=this;return(0,o.A)(function*(){var n,t,i;let r=e.DropDownPool.toString();var s,a,h;(m.K.Debug("\u{1f680} ~ DiensteinteilungPage ~ saveLastFilterSelection ~ pool:",r),yield e.storageService.setValue(g.mG.LastPool,r),null!==(n=e.permission)&&void 0!==n&&n.SucheArbeitAnzeigen&&void 0!==(null===(t=e.ckBoxSucheArbeit)||void 0===t?void 0:t.checked)&&(yield e.storageService.setValue(g.mG.DispoSucheArbeit,e.ckBoxSucheArbeit.checked.toString())),null!==(i=e.permission)&&void 0!==i&&i.DienstortfremdeAnzeigen&&(yield e.storageService.setValue(g.mG.DispoDienstortfremd,e.DienstortFremde.toString())),e.isOffline())||(yield(yield e.hubFactory.personService()).SetUsersetting("Diensteinteilung_Selected_Pool",r),null!==(s=e.permission)&&void 0!==s&&s.SucheArbeitAnzeigen&&void 0!==(null===(a=e.ckBoxSucheArbeit)||void 0===a?void 0:a.checked)&&(yield(yield e.hubFactory.personService()).SetUsersetting("Diensteinteilung_Suchearbeit",e.ckBoxSucheArbeit.checked.toString())),null!==(h=e.permission)&&void 0!==h&&h.DienstortfremdeAnzeigen&&(yield(yield e.hubFactory.personService()).SetUsersetting("Diensteinteilung_Dienstortfremd",e.DienstortFremde.toString())))})()}setDate(){var e=this;return(0,o.A)(function*(n=new Date){e.setMonth(n),yield e.loadPools(),e.daysLoaded=0,yield e.showEntries()}).apply(this,arguments)}setMonth(e){"string"==typeof e&&(e=this.timeService.addUtcTimezone(e),e=new Date(e)),e.setDate(1),this.FilterMonth=this.timeService.toLocaleISOString(e),m.K.Debug("\u{1f680} ~ DiensteinteilungPage ~ setMonth ~ this.FilterMonth:",this.FilterMonth),this.SelectedMonth=this.FilterMonth,this.SelectedMonthDisplay=this.SelectedMonth}prevMonth(){var e=this;return(0,o.A)(function*(){e.setDate(e.timeService.addMonth(e.FilterMonth,-1))})()}nextMonth(){var e=this;return(0,o.A)(function*(){e.setDate(e.timeService.addMonth(e.FilterMonth,1))})()}getEntriesByFilter(){var e=this;return(0,o.A)(function*(){e.isOffline()||(yield e.saveLastFilterSelection()),e.setDate(e.FilterMonth),e.closeFilter()})()}resetArrays(){this.dateArray=[],this.weekdayArray=[],this.tagesbemerkungIDArray=[]}showEntries(){var e=this;return(0,o.A)(function*(){if(!e._isLoadingEntries){e._isLoadingEntries=!0,e.isLoading||(yield e.loadingService.showLoader());try{var n,t;yield e.loadLastFilterSelection();let d=e.getDiensteinteilungsFilter;var i;if(null!==(n=e.permission)&&void 0!==n&&n.DienstortfremdeAnzeigen?d.DienstortfremdeAnzeigen=e.Die
1nstortFremde:d.DienstortfremdeAnzeigen=!1,null!==(t=e.permission)&&void 0!==t&&t.SucheArbeitAnzeigen&&e.ckBoxSucheArbeit)d.SucheArbeitAnzeigen=null===(i=e.ckBoxSucheArbeit)||void 0===i?void 0:i.checked;else d.SucheArbeitAnzeigen=!1;if(yield(yield e.hubFactory.diensteinteilungService()).getEinteilungen(d).then(b=>{e.personenListe=void 0,e.personenListe=Object.values(b)}),e.resetArrays(),e.personenListe.length>0){for(let c=1;c<=e.personenListe[0].MonthLength;c++)e.dateArray.push(c);for(let c=0;c<e.personenListe[0].MonthLength;c++)e.weekdayArray.push(e.personenListe[0].TagesEinteilung[c].Wochentag);let b=0;for(;b<e.personenListe[0].MonthLength;){var r,s,a,h;let c=new X;c.BemerkungenIDArr=[],c.Bemerkungen=[],null===(r=e.personenListe[0].TagesEinteilung[b])||void 0===r||r.TagesbemerkungID.forEach(k=>{c.BemerkungenIDArr.push(k)}),null===(s=e.personenListe[0].TagesEinteilung[b])||void 0===s||s.Tagesbemerkungen.forEach(k=>{c.Bemerkungen.push(k)}),c.Colspan=e.getTagesbemerkungColspan(b),e.tagesbemerkungIDArray.push(c),c.Color=null===(a=e.personenListe[0].TagesEinteilung[b])||void 0===a?void 0:a.TagesbemerkungColor,c.Backgroun
1d=null===(h=e.personenListe[0].TagesEinteilung[b])||void 0===h?void 0:h.TagesbemerkungBackground,b+=c.Colspan}}e.lastSyncTime=new Date,e.showTagesbemerkung=e.HasTagesbemerkung()}catch(d){m.K.Fehler("\u{1f680} ~ DiensteinteilungPage ~ showEntries ~ err:",d)}finally{e.cdRef.detectChanges(),yield e.loadingService.dismiss(),e._isLoadingEntries=!1}}})()}HasTagesbemerkung(){let e=!1;return this.tagesbemerkungIDArray.forEach(n=>{n.BemerkungenIDArr.length>0&&(e=!0)}),e}openTagesBemerkung(e){var n=this;return(0,o.A)(function*(){yield(yield n.hubFactory.tagesbemerkungService()).GetTagesbemerkungenByIDArray(e).then(t=>{let i=String(Object.values(t)).split(","),r="";i.forEach(s=>{r+="<span>"+s+"</span><br> <hr><br>"}),n.hubFactory.alertService.createInfoAlertHTML(null,r,null)})})()}getTagesbemerkungCount(e){return e.length}getTagesbemerkungColspan(e,n=null){var t,i,r;return(null===(t=this.personenListe[0].TagesEinteilung[e])||void 0===t||null===(t=t.TagesbemerkungID)||void 0===t?void 0:t.length)>0?null!==n?JSON.stringify(null===(i=this.personenListe[0].TagesEinteilung[e])||void 0===i?void 0:i.TagesbemerkungID)===JSON.stringify(n)?1+this.getTagesbemerkungColspan(e+1,n):1:this.getTagesbemerkungColspan(e+1,null===(r=this.personenListe[0].TagesEinteilung[e])||void 0===r?void 0:r.TagesbemerkungID):1}isUser(e){var n;return e==(null===(n=this.person)||void 0===n?void 0:n.ID)}unsubscribeSignalREvents(){return(0,o.A)(function*(){v.V.removeHubEvent("getPersEinsatzplan"),v.V.removeHubEvent("getDispoReport"),v.V.removeHubEvent("getDiensteinteilungReport")})()}downloadPDF(e){var n=this;return(0,o.A)(function*(){if(!e)return;let t=yield n.helper.formatURL(e);return yield n.documentViewer.openFile(t)})()}persEinsatzplanPDF(){var e=this;return(0,o.A)(function*(){e.persDispoLoading||(e.persDispoLoading=!0,v.V.bindHubEvent("getPersEinsatzplan",function(){var n=(0,o.A)(function*(t){e.persDispoLoading=!1,e.downloadPDF(t)});return function(t){return n.apply(this,arguments)}}(),!1),(yield e.hubFactory.reportingService()).GetPersEinsatzplan(new Date(e.SelectedMonth)))})()}dispoReport(){var e=this;return(0,o.A)(function*(){e.dispoReportLoading||(e.dispoReportLoading=!0,v.V.bindHubEvent("getDispoReport",function(){var n=(0,o.A)(function*(t){e.dispoReportLoading=!1,e.downloadPDF(t)});return function(t){return n.apply(this,arguments)}}(),!1),(yield e.hubFactory.reportingService()).GetDispoReport(e.getReportParams()))})()}dienstEinteilungPDF(){var e=this;return(0,o.A)(function*(){e.dienstEinteilungLoading||(e.dienstEinteilungLoading=!0,v.V.bindHubEvent("getDiensteinteilungReport",function(){var n=(0,o.A)(function*(t){e.dienstEinteilungLoading=!1,e.downloadPDF(t)});return function(t){return n.apply(this,arguments)}}(),!1),(yield e.hubFactory.reportingService()).GetDiensteinteilungPDF(e.getReportParams()))})()}getReportParams(){let e=new O,n=new Date(this.SelectedMonth);return n.setDate(1),e.Datum=n,e.PoolId=Number(this.DropDownPool),e.DienstortFremde=this.DienstortFremde,e}openContacts(e){var n=this;return(0,o.A)(function*(){if(n.contactsOpening)return;n.contactsOpening=!0;let t=yield n.storageService.getValue(g.mG.ClientID);(yield n.hubFactory.personService()).getKommunikationsMittel(t,e.ID).then(i=>{let r=[];r=i;let s=[];r.forEach(a=>{let h,d;a.Typ==g.tu.EMail?(h="at",d="mailto:"):(a.Typ==g.tu.Telefon||a.Typ==g.tu.MobilTelefon||a.Typ==g.tu.Fax||a.Typ==g.tu.Fax)&&(h="call",d="tel:"),s.push({text:a.Kontakt,icon:h,handler:()=>{window.open(d+a.Kontakt)}})}),n.openActionSheet(s,e.Name)}).finally(()=>{n.contactsOpening=!1})})()}openActionSheet(e,n){var t=this;return(0,o.A)(function*(){let i=yield t.actionSheetController.create({header:n,buttons:e});i.onWillDismiss().then(()=>{f.Z.OpenDialogs.pop()}),f.Z.OpenDialogs.push(i),yield i.present()})()}openModal(e,n){var t=this;return(0,o.A)(function*(){var i;if(t.isOffline()?t.NurEigenedetails=!0:t.NurEigenedetails=yield(yield t.hubFactory.personFlagService()).GetPersonFlag("NurEigeneEinteilungsdetails"),!0===t.NurEigenedetails&&n!=(null===(i=t.person)||void 0===i?void 0:i.ID))return void t.hubFactory.alertService.createErrorAlert(t.languageService.translate("lblFehler"),t.languageService.translate("lblKeineBerechtigung"));const r=yield t.modalService.openEinteilungDetail(e,"Dispo");null==r||r.present()})()}trackByMethod(e,n){return e}getSucheArbeitColors(){var e=this;return(0,o.A)(function*(){yield(yield e.hubFactory.sucheArbeitService()).GetSucheArbeitColors().then(n=>{e.SucheArbeitColors=n})})()}getVGStyle(e){var n;let t=e.Vordergrund;var i;if(null!==(n=this.permission)&&void 0!==n&&n.SucheArbeitAnzeigen&&this.ckBoxSucheArbeit&&(null!==(i=this.ckBoxSucheArbeit)&&void 0!==i&&i.checked))switch(e.SucheArbeitCSS){case" einteilungSucheArbeitKannNichtArbeiten":case" einteilungSucheArbeitKannNichtArbeitenMorgen":case" einteilungSucheArbeitKannNichtNachmittag":t=this.SucheArbeitColors.KannNichtArbeitenVG;break;case" einteilungSucheArbeitKannArbeiten":case" einteilungSucheArbeitKannArbeitenMorgen":case" einteilungSucheArbeitKannArbeitenNachmittag":t=this.SucheArbeitColors.KannArbeitenVG;break;case" einteilungSucheArbeitWillArbeiten":case" einteilungSucheArbeitWillArbeitenMorgen":case" einteilungSucheArbeitWillArbeitenNachmittag":t=this.SucheArbeitColors.WillArbeitenVG}return t}
1getBackgroundStyle(e){var n;let t=e.Hintergrund;var i;if(null!==(n=this.permission)&&void 0!==n&&n.SucheArbeitAnzeigen&&this.ckBoxSucheArbeit&&(null!==(i=this.ckBoxSucheArbeit)&&void 0!==i&&i.checked))switch(e.SucheArbeitCSS){case" einteilungSucheArbeitPflichtkonsum":t=this.getSchraffurGanzTag(this.SucheArbeitColors.PflichtkonsumSchraffur,this.SucheArbeitColors.PflichtkonsumHG);break;case" einteilungSucheArbeitKannNichtArbeiten":t=this.getSchraffurGanzTag(this.SucheArbeitColors.KannNichtArbeitenSchraffur,this.SucheArbeitColors.KannNichtArbeitenHG);break;case" einteilungSucheArbeitKannArbeiten":t=this.getSchraffurGanzTag(this.SucheArbeitColors.KannArbeitenSchraffur,this.SucheArbeitColors.KannArbeitenHG);break;case" einteilungSucheArbeitWillArbeiten":t=this.getSchraffurGanzTag(this.SucheArbeitColors.WillArbeitenSchraffur,this.SucheArbeitColors.WillArbeitenHG);break;case" einteilungSucheArbeitKannNichtArbeitenMorgen":t=this.getSchraffurMorgen(this.SucheArbeitColors.KannNichtArbeitenSchraffur,this.SucheArbeitColors.KannNichtArbeitenHG);break;case" einteilungSucheArbeitKannArbeitenMorgen":t=this.getSchraffurMorgen(this.SucheArbeitColors.KannArbeitenSchraffur,this.SucheArbeitColors.KannArbeitenHG);break;case" einteilungSucheArbeitWillArbeitenMorgen":t=this.getSchraffurMorgen(this.SucheArbeitColors.WillArbeitenSchraffur,this.SucheArbeitColors.WillArbeitenHG);break;case" einteilungSucheArbeitKannNichtNachmittag":t=this.getSchraffurNachmittag(this.SucheArbeitColors.KannNichtArbeitenSchraffur,this.SucheArbeitColors.KannNichtArbeitenHG);break;case" einteilungSucheArbeitKannArbeitenNachmittag":t=this.getSchraffurNachmittag(this.SucheArbeitColors.KannArbeitenSchraffur,this.SucheArbeitColors.KannArbeitenHG);break;case" einteilungSucheArbeitWillArbeitenNachmittag":t=this.getSchraffurNachmittag(this.SucheArbeitColors.WillArbeitenSchraffur,this.SucheArbeitColors.WillArbeitenHG)}return t}getSchraffurGanzTag(e,n){return"linear-gradient(165deg, rgba(255, 255, 255, 0.0) 100%, rgb(255, 255, 255) 100%), repeating-linear-gradient(90deg, "+e+", "+n+" 8%, "+n+" 16%)"}getSchraffurNachmittag(e,n){return"linear-gradient(-165deg, rgba(255, 255, 255, 0.0)50%,rgb(255, 255, 255)50%), repeating-linear-gradient(90deg, "+e+", "+n+" 8%, "+n+" 16%)"}getSchraffurMorgen(e,n){return"linear-gradient(165deg, rgba(255, 255, 255, 0.0)50%,rgb(255, 255, 255)50%), repeating-linear-gradient(90deg, "+e+", "+n+" 8%, "+n+" 16%)"}getBorderColor(e){var n;let t="";var i;e.GeaendertNachPublikation&&null!==(n=this.permission)&&void 0!==n&&n.GeaendertNachPublikation?t=null===(i=this.permission)||void 0===i?void 0:i.GeaendertNachPublikationColor:t="black";return t}getBorderWidth(e){var n;let t="";return t=e.GeaendertNachPublikation&&null!==(n=this.permission)&&void 0!==n&&n.GeaendertNachPublikation?"thick":"thin",t}getPersonHervorhebungStyle(){return"background-color: "+this.personHervorhebung+" !important;"}getCurrentDayBackground(e){return"background-color: "+e+" !important;"}checkIsToday(e){this.SelectedMonth=this.timeService.removeTime(this.SelectedMonth);let n=this.timeService.addDays(this.SelectedMonth,e-1);return this.checkDateToday(n)}checkDateToday(e){return this.timeService.isToday(e)}subscribeScrollToIchHeute(){this.ichHeute.changes.subscribe(e=>{if(this.daysLoaded>0)return;this.tableScroll.nativeElement.scrollTo(0,0);let n=0,t=0,i=0,r=0;e.length>0&&setTimeout(()=>{let s=null==e?void 0:e.find(a=>!(!a.nativeElement.classList.contains("ich")||!a.nativeElement.classList.contains("heute")));s||(s=e.first),s&&(t=s.nativeElement.getBoundingClientRect().top-s.nativeElement.offsetTop+1,n=s.nativeElement.getBoundingClientRect().left-1,i=Number(this.firstColWidth.substring(0,this.firstColWidth.length-2))+4,r=this.dispoPerson.first.nativeElement.getBoundingClientRect().top),t-=r,n-=i,this.tableScroll.nativeElement.scrollTo(n,t)},100)})}getEinteilungName(e){var n;let t="";return t=null!=e.WebPlatzhalter&&e.WebPlatzhalter.length>0&&e.FkPerson!=(null===(n=this.person)||void 0===n?void 0:n.ID)?e.WebPlatzhalter:e.Name,t}setNgIfs(){var e,n,t,i,r;this.showChbSucheArbeit=!this.isOffline()&&(null===(e=this.permission)||void 0===e?void 0:e.SucheArbeitAnzeigen),this.showChbSucheArbeitSD=!this.isOffline()&&(null===(n=this.permission)||void 0===n?void 0:n.SucheArbeitAnzeigen)&&this.isSmallScreen,this.showChbDienstortfremde=!this.isOffline()&&(null===(t=this.permission)||void 0===t?void 0:t.DienstortfremdeAnzeigen),this.showChbDienstortfremdeSD=!this.isOffline()&&(null===(i=this.permission)||void 0===i?void 0:i.DienstortfremdeAnzeigen)&&this.isSmallScreen,this.showAktualisiert=this.AktualisierungsIntervall>0,this.showTagesbemerkung=this.HasTagesbemerkung(),this.showReports=!this.isOffline(),this.showDiensteinteilung=!this.isOffline()&&(null===(r=this.permission)||void 0===r?void 0:r.DiensteinteilungDownloadErlauben)}get getMonthName(){if(this.personenListe=this.personenListe.sort((e,n)=>e.TagesEinteilung.length-n.TagesEinteilung.length),this.daysLoaded>0){let e=p(this.SelectedMonth),n=p(this.SelectedMonth).add(1,"month").subtract(1,"second").add(this.daysLoaded,"day");return`${e.format("DD.MM.YY")} - ${n.format("DD.MM.YY")}`}return this.timeService.getMonthName(this.SelectedMonth)}get getDiensteinteilungsFilter(){let e=Number(this.DropDownPool),n=new G;return n.Monat=this.SelectedMonth,n.FkPool=e,n}getDayFormat(e){var n;let t=this.timeService.addDays(null!==(n=this.BeforeGestureStartDate)&&void 0!==n?n:this.SelectedMonth,e);return this.timeService.dateFormatddMM(t.toISOString())}},D=y,y.AppModeSubscription=void 0,y.ctorParameters=()=>[{type:H.d},{type:V.g},{type:Z.r},{type:w.GD},{type:w._t},{type:U.B},{type:W.U},{type:K.N},{type:j.v},{type:u.gRc},{type:w.wH},{type:Y.n},{type:u.SKi}],y.propDecorators={content:[{type:u.Uct,args:["content"]}],einteilungPerson:[{type:u.Uct,args:["einteilungPerson"]}],firstCol:[{type:u.Uct,args:["firstCol",{static:!1}]}],ckBoxSucheArbeit:[{type:u.Uct,args:["ckBoxSucheArbeit",{static:!1}]}],ichHeute:[{type:u.b2L,args:["Heute"]}],dispoPerson:[{type:u.b2L,args:["personen"]}],tableScroll:[{type:u.Uct,args:["tableScroll"]}],einteilungScroll:[{type:u.Uct,args:["einteilungScroll"]}]},y);M=D=(0,A.Cg)([(0,u.uAl)({selector:"app-diensteinteilung",template:'\x3c!-- TODO: Refactor and reduce duplicated code. --\x3e\r\n<ion-header>\r\n  <app-offline-banner></app-offline-banner>\r\n  <isg-header [Title]="\'lblDiensteinteilung\' | translate" [Lauftext-Enable]="true"\r\n              [Filter-Enable]="true" (Filter-Event)="toggleFilter()" [Filter-Icon]="this.isSmallScreen ? \'search\' : \'document-attach\'">\r\n  </isg-header>\r\n</ion-header>
1\r\n\r\n<ion-content #content id="DiensteinteilungContent" class="h-100" scrollX="false" scrollY="false">\r\n  <ion-grid class="ion-no-padding">\r\n    \x3c!-- Desktop Filter --\x3e\r\n    <ion-row *ngIf="!this.isSmallScreen">\r\n      <ion-col>\r\n        <ion-item lines="none">\r\n          <ion-select [(ngModel)]="DropDownPool" interface="popover" label="{{\'lblPool\' | translate}}"\r\n            labelPlacement="floating">\r\n            \x3c!-- * Attention: Don\'t add newlines on ion-select-options! --\x3e\r\n            <ion-select-option value="-1">{{\'lblIch\' | translate}}</ion-select-option>\r\n            <ion-select-option *ngFor="let pool of einteilungFilterPool"\r\n              [value]="pool.ID.toString()">{{pool.Bezeichnung}}</ion-select-option> \x3c!-- | orderBy:\'Bezeichnung\'--\x3e\r\n          </ion-select>\r\n        </ion-item>\r\n      </ion-col>\r\n      <ion-col *ngIf="showChbSucheArbeit">\r\n        <ion-item class="checkbox-item" lines="none">\r\n          <ion-checkbox #ckBoxSucheArbeit>\r\n            {{\'lblSuchearbeit\' | translate}}\r\n          </ion-checkbox>\r\n        </ion-item>\r\n      </ion-col>\r\n      <ion-col *ngIf="showChbDienstortfremde">\r\n        <ion-item class="checkbox-item" lines="none">\r\n          <ion-checkbox #ckBoxDienstortFremde [(ngModel)]="DienstortFremde">\r\n            {{\'lblDienstortfremdeAnzeigen\' | translate}}\r\n          </ion-checkbox>\r\n        </ion-item>\r\n      </ion-col>\r\n      <ion-col *ngIf="showAktualisiert && lastSyncTime">\r\n        <ion-item lines="none">\r\n          <ion-input label="{{\'lblAktualisiert\' | translate}}" labelPlacement="floating" readonly="true"\r\n            [value]="this.timeService.convertDateTime(this.lastSyncTime.toString())"></ion-input>\r\n        </ion-item>\r\n      </ion-col>\r\n      <ion-col>\r\n        <ion-button expand="block" class="infoSoftButton filter-btn" (click)="getEntriesByFilter()">\r\n          <ion-icon slot="icon-only" name="checkmark"></ion-icon>\r\n        </ion-button>\r\n      </ion-col>\r\n    </ion-row>\r\n\r\n    <ion-row class="ion-justify-content-center ion-align-items-center">\r\n      <ion-col size="3" sizeSm="2">\r\n        <ion-button expand="block" shape="round" fill="clear" (click)="this.prevMonth()">\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" sizeSm="auto">\r\n        <isg-datetime Presentation="month-year" LastDayOfMonth="false" TextDisabled="true"\r\n                      [Value]="this.FilterMonth"\r\n                      (changeEvent)="setDate($event)"\r\n                      [Min]="this.minDate" [Max]="this.maxDate"\r\n                      label="{{\'lblMonat\' | translate}}" labelPlacement="floating">\r\n        </isg-datetime>\r\n      </ion-col>\r\n      <ion-col size="3" sizeSm="2">\r\n        <ion-button expand="block" shape="round" fill="clear" (click)="this.nextMonth()">\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\r\n  \x3c!-- Content --\x3e\r\n  <ion-grid class="h-100 ion-no-padding content-padding">\r\n    <ion-row class="h-100 ion-no-padding">\r\n      <ion-col size="12" class="h-100">\r\n        <div #tableScroll id="table-scroll" class="table-scroll h-100">\r\n          <table id="main-table" class="main-table">\r\n            <thead>\r\n              <tr>\r\n                <th #firstCol id="firstCol" style="z-index: 20;"></th>\r\n                <th *ngFor="let column of dateArray; let i = index" class="px-8"\r\n                    [ngClass]="{\'currentDayBackground\': this.checkIsToday(column)}">\r\n                  <span *ngIf="column != \'-1\'">{{this.getDayFormat(i)}}</span>\r\n                </th>\r\n              </tr>\r\n              <tr>\r\n                <th class="ion-text-start font-large px-8" style="top: 26px; z-index: 20;">{{this.getMonthName}}</th>\r\n                <th *ngFor="let weekday of weekdayArray; let i = index" style="top: 26px;
1"\r\n                    [ngClass]="{\'currentDayBackground\': this.checkIsToday(i+1)}">{{weekday}}</th>\r\n              </tr>\r\n\r\n              <ng-container *ngIf="showTagesbemerkung">\r\n                <tr>\r\n                  <th class="p-8" style="top: 53px; z-index: 20;"></th>\r\n                  <th *ngFor="let bemerkungen of tagesbemerkungIDArray" style="top: 53px;"\r\n                      class="ion-text-start TagesbemerkungTH"\r\n                      [ngClass]="{\'TBBadge\':bemerkungen?.Bemerkungen?.length > 1}"\r\n                      [attr.colspan]="bemerkungen.Colspan"\r\n                      [ngStyle]="{\'background-color\':bemerkungen.Background}">\r\n                    <p *ngIf="bemerkungen?.Bemerkungen?.length == 1"\r\n                      class="TagesbemerkungLabel"\r\n                      [ngStyle]="{\'left\':this.firstColWidth,\'color\':bemerkungen?.Color,\'max-width\':(bemerkungen?.Colspan * 4) + \'em\'}"\r\n                      (click)="openTagesBemerkung(bemerkungen?.BemerkungenIDArr)">\r\n                      {{bemerkungen.Bemerkungen[0]}}</p>\r\n                    <ion-badge button color="danger" mode="ios"\r\n                               *ngIf="bemerkungen?.Bemerkungen?.length > 1"\r\n                               [ngStyle]="{\'left\':this.firstColWidth}"\r\n                               (click)="openTagesBemerkung(bemerkungen?.BemerkungenIDArr)">\r\n                      {{this.getTagesbemerkungCount(bemerkungen.BemerkungenIDArr)}}\r\n                    </ion-badge>\r\n                  </th>\r\n                </tr>\r\n              </ng-container>\r\n            </thead>\r\n            <tbody>\r\n              <tr #personen *ngFor="let person of personenListe; let i = index">\r\n                <th class="ion-text-start personName p-8"\r\n                    [style]="this.isUser(person.ID) ? this.getPersonHervorhebungStyle() : \'\'"\r\n                    (click)="openContacts(person)">\r\n                  <ion-label [style]="this.isUser(person.ID) ? this.getPersonHervorhebungStyle() : \'\'">\r\n                    {{person.Name}}\r\n                  </ion-label>\r\n                </th>\r\n                <td *ngFor="let tag of person.TagesEinteilung" id="einteilungPerson" class="p-4"\r\n                    [style]="!this.isUser(person.ID) ? this.getCurrentDayBackground(tag.Hintergrund) : this.getPersonHervorhebungStyle()"\r\n                    [ngClass]="{\'currentDayBackground\': this.checkDateToday(tag.Datum)}">\r\n                  <div #Heute *ngIf="checkDateToday(tag.Datum) || this.isUser(person.ID)"\r\n                       [ngClass]="{\'ich\': this.isUser(person.ID), \'heute\': this.checkDateToday(tag.Datum)}">\r\n                  </div>\r\n                  <ng-container *ngFor="let et of tag.Einteilungen; trackBy:trackByMethod ">\r\n                    <ion-label *ngIf="!et?.Geaendert && et?.Name?.length > 0" button fill="clear"\r\n                               (click)="openModal(et.ID, person.ID)"\r\n                               class="Einteilung ion-text-center no-text-select p-4"\r\n                               [ngStyle]="{\'color\': this.getVGStyle(et), \'background\':this.getBackgroundStyle(et), \'border-color\':this.getBorderColor(et), \'border-width\':this.getBorderWidth(et)}">\r\n                      {{this.getEinteilungName(et)}}\r\n                      <ion-icon *ngIf="et.Instruktor" name="school-sharp" size="small" class="align-bottom Instruktor"></ion-icon>\r\n                      <ion-icon *ngIf="et.Fahrauftrag" src="assets/ionicons/submit_document.svg" size="small"></ion-icon>\r\n                    </ion-label>\r\n\r\n                    <ion-label *ngIf="et?.Geaendert" button (click)="openModal(et.ID, person.ID)" fill="clear"\r\n                               class="Einteilung Einteilung-Draft ion-text-center no-text-select p-4">\r\n                      <ion-icon name="construct" size="small"></ion-icon>\r\n                    </ion-label>\r\n                  </ng-container>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n        </div>\r\n      </ion-col>\r\n    </ion-row>\r\n  </ion-grid>\r\n</ion-content>\r\n\r\n\x3c!-- Mobile Filter --\x3e\r\n<ion-menu side="end" type="overlay" menuId="DiensteinteilungFilter" #MenuFilter contentId="isgHeaderContent"\r\n  [swipeGesture]="false">\r\n  <ion-header>\r\n    <ion-toolbar>\r\n      <ion-title *ngIf="!this.isSmallScreen">{{\'lblDokumente\' | translate}}</ion-title>\r\n      <ion-title *ngIf="this.isSmallScreen">{{\'lblFilter\' | translate}}</ion-title>\r\n      <ion-buttons slot="end">\r\n        <ion-button (click)="closeFilter()">\r\n          <ion-icon slot="icon-only" name="close"></ion-icon>\r\n        </ion-button>\r\n      </ion-buttons>\r\n    </ion-toolbar>\r\n  </ion-header>\r\n\r\n  <ion-content scrollY="false" class="h-100">\r\n    <ng-container *ngIf="this.isSmallScreen" class="ion-justify-content-start">\r\n      <ion-item lines="full">\r\n        <ion-select [(ngModel)]="DropDownPool" [interfaceOptions]="\'action-sheet\'"\r\n          [cancelText]="\'lblAbbrechen\' | translate" label="{{\'lblPool\' | translate}}" labelPlacement="floating">\r\n          \x3c!-- * Attention: Don\'t add newlines on ion-select-options! --\x3e\r\n          <ion-select-option value="-1">{{\'lblIch\' | translate}}</ion-select-option>\r\n          <ion-select-option *ngFor="let pool of einteilungFilterPool"\r\n            [value]="pool.ID.toString()">{{pool.Bezeichnung}}</ion-select-option>\x3c!--  | orderBy:\'Bezeichnung\'--\x3e\r\n        </ion-select>\r\n      </ion-item>\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf="showChbSucheArbeitSD" class="ion-justify-content-start">\r\n      <ion-item lines="full">\r\n        <ion-checkbox #ckBoxSucheArbeit>\r\n          {{\'lblSuchearbeit\' | translate}}\r\n        </ion-checkbox>\r\n      </ion-item>\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf="showChbDienstortfremdeSD" class="ion-justify-content-start">\r\n      <ion-item lines="full">\r\n        <ion-checkbox #ckBoxDienstortFremde [(ngModel)]="DienstortFremde">\r\n          {{\'lblDienstortfremdeAnzeigen\' | translate}}\r\n        </ion-checkbox>\r\n      </ion-item>\r\n    </ng-container>\r\n\r\n    <ion-grid fixed *ngIf="showReports" class="h-100">\r\n      <ion-row class="ion-align-items-center">\r\n        <ion-col>\r\n          <ion-button class="infoSoftButton ion-text-start ion-justify-content-start"\r\n            style="align-content: space-between;" expand="block" (click)="dispoReport()">\r\n            <ion-label class="pdfButtonLabel" slot="start">\r\n              {{\'lblDisposition\' | translate}}\r\n            </ion-label>\r\n            <ion-icon name="document-attach" slot="end"></ion-icon>\r\n            <ion-spinner *ngIf="this.dispoReportLoading" name="dots"></ion-spinner>\r\n          </ion-button>\r\n        </ion-col>\r\n      </ion-row>\r\n      <ion-row class="ion-align-items-center">\r\n        <ion-col>\r\n          <ion-button class="infoSoftButton" expand="block" (click)="persEinsatzplanPDF()">\r\n            <ion-label class="pdfButtonLabel">\r\n              {{\'lblPersEinsatzplan\' | translate}}\r\n            </ion-label>\r\n            <ion-icon name="document-attach" slot="end"></ion-icon>\r\n            <ion-spinner *ngIf="this.persDispoLoading" name="dots"></ion-spinner>\r\n          </ion-button>\r\n        </ion-col>\r\n      </ion-row>\r\n      <ion-row *ngIf="showDiensteinteilung" class="ion-align-items-center">\r\n        <ion-col>\r\n          <ion-button class="infoSoftButton" expand="block" (click)="dienstEinteilungPDF()">\r\n            <ion-label class="pdfButtonLabel" slot="start">\r\n              {{\'lblDiensteinteilung\' | translate}}\r\n            </ion-label>\r\n            <ion-icon name="document-attach" slot="end"></ion-icon>\r\n            <ion-spinner *ngIf="this.dienstEinteilungLoading" name="dots"></ion-spinner>\r\n          </ion-button>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n  </ion-content>\r\n\r\n  <ion-footer>\r\n    <ion-grid fixed *ngIf="this.isSmallScreen" class="h-100">\r\n      <ion-row>\r\n        <ion-col size="6">\r\n          <ion-button expand="block" class="infoSoftButton" (click)="resetFilter()">\r\n            <ion-icon slot="icon-only" name="refresh"></ion-icon>\r\n          </ion-button>\r\n        </ion-col>\r\n        <ion-col size="6">\r\n          <ion-button expand="block" class="infoSoftButton" (click)="getEntriesByFilter()">\r\n            <ion-icon slot="icon-only" name="checkmark"></ion-icon>\r\n          </ion-button>\r\n        </ion-col>\r\n      </ion-row>\r\n    </ion-grid>\r\n  </ion-footer>\r\n</ion-menu>\r\n',styles:[z()]})],M);class X{}const J=[{path:"",component:M}];let C=class{};C=(0,A.Cg)([(0,u.UQu)({imports:[T.iI.forChild(J)],exports:[T.iI]})],C);var Q=l(1775),$=l(73955);let E=class{};E=(0,A.Cg)([(0,u.UQu)({imports:[F.MD,I.YN,w.bv,C,Q.G,$.h],declarations:[M]})],E)},32243:(P,x,l)=>{var A=l(8564),F=l(98557)(A);F.push([P.id,"ion-menu {\n  pointer-events: auto !important;\n}\n\n.Instruktor {\n  color: black;\n}\n\n.main-table {\n  border-collapse: collapse;\n}\n\n@media (max-width: 991.9px) {\n  .table-scroll {\n    height: calc(100% - 57px) !important;\n  }\n}\n@media (min-width: 992px) {\n  .table-scroll {\n    height: calc(100% - 113px) !important;\n  }\n}\n.table-scroll {\n  position: sticky;\n  width: 100%;\n  z-index: 1;\n  margin: auto;\n  overflow: auto;\n}\n\n.table-scroll table {\n  width: 100%;\n  min-width: 1280px;\n  margin: auto;\n  border-collapse: separate;\n  border-spacing: 0;\n}\n\n.table-scroll th,\n.table-scroll td {\n  background-color: var(--dispo-row-color);\n  vertical-align: middle;\n  border: 1px solid var(--dispo-border-color);\n  border-left-width: 0;\n  border-top-width: 0;\n}\n\n.table-scroll thead {\n  position: sticky;\n  top: 0;\n  z-index: 5;\n}\n\n.table-scroll tr th {\n  position: sticky;\n  top: 0;\n  z-index: 5;\n}\n\n.table-scroll thead th {\n  height: 2em;\n  border-bottom-width: 0;\n}\n\n/* safari and ios need the tfoot itself to be position:sticky also  */\n.table-scroll tfoot,\n.table-scroll tfoot th,\n.table-scroll tfoot td {\n  position: sticky;\n  bottom: 0;\n  background-color: var(--dispo-row-color);\n  color: #fff;\n  z-index: 4;\n}\n\nthead th,\ntbody td {\n  width: 48px;\n}\n\nth:first-child {\n  position: sticky;\n  left: 0;\n  z-index: 10;\n  font-weight: 500;\n  background-color: var(--dispo-header-color);\n}\n\nthead th:first-child,\ntfoot th:first-child {\n  z-index: 5;\n}
1\n\nthead tr th:not(.currentDayBackground) {\n  background-color: var(--dispo-header-color);\n  font-weight: 500;\n}\n\n#main-table thead tr td {\n  background-color: var(--dispo-row-color);\n}\n\n#main-table thead tr {\n  z-index: 5;\n  font-size: smaller;\n}\n\n#main-table tbody td {\n  font-size: smaller;\n}\n\n#main-table tbody tr {\n  position: sticky;\n  position: -webkit-sticky;\n  background-color: var(--dispo-row-color);\n}\n\ndiv > table > thead > tr > .currentDayBackground {\n  font-weight: bold;\n  background-color: deepskyblue;\n}\n\ndiv > table > tbody > tr > .currentDayBackground {\n  border-left: 4px solid deepskyblue !important;\n  border-right: 4px solid deepskyblue !important;\n}\n\n/* Wenn du oben/unten auch einen Rahmen willst */\n.main-table tr:first-child .currentDayBackground {\n  border-top: 4px solid deepskyblue !important;\n}\n\n.main-table tr:last-child .currentDayBackground {\n  border-bottom: 4px solid deepskyblue !important;\n}\n\n.Einteilung {\n  border-style: solid;\n  border-width: thin;\n  min-height: 2em;\n  min-width: 4em;\n  cursor: pointer;\n}\n\n.Einteilung-Draft {\n  color: black;\n  background-color: white;\n  border-color: black;\n  border-width: thin;\n}\n\ntd > .Einteilung {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\ntd > .Einteilung:not(:last-child) {\n  margin-bottom: 5px;\n}\n\n.pdfButtonLabel {\n  margin-right: auto;\n}\n\n.personName {\n  min-width: 8em;\n  cursor: pointer;\n}\n\n.TagesbemerkungLabel {\n  position: sticky;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  overflow: hidden;\n  width: min-content;\n  height: 2em;\n  margin: 0;\n  line-height: 2em;\n}\n\n.TagesbemerkungTH {\n  text-align: start;\n  max-width: 4em;\n}\n\n.TBBadge {\n  --background: red;\n  background-color: red !important;\n}\n\nion-badge {\n  border: solid 1px white;\n  position: sticky;\n}\n\n.checkbox-item ion-checkbox {\n  margin: 9px 0px 9px 0px;\n}\n\n.filter-btn {\n  margin: 10px 16px 10px 0px;\n}\n\n.content-padding {\n  padding-bottom: 10px;\n}",""]),P.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.