1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[1538],{51268:(N,k,s)=>{s.d(k,{w:()=>M});var g=s(34553),T=s(5900),y=s(83668);let M=(()=>{class v{constructor(h){this.customerDB=h}load(){var h=this;return(0,g.Z)(function*(){const Z=h.customerDB.getProfile();if(!Z)return;const p=yield Z.get();if(p.empty)return;const u=p.docs[0];return{id:u.id,...u.data()}})()}update(h){return this.customerDB.updateProfile(h)}create(h){return this.customerDB.createProfile(h)}}return v.\u0275fac=function(h){return new(h||v)(y.LFG(T.E))},v.\u0275prov=y.Yz7({token:v,factory:v.\u0275fac,providedIn:"root"}),v})()},88920:(N,k,s)=>{s.d(k,{N:()=>P});var g=s(34553),T=s(82023),y=s(5900),M=s(83668),v=s(44522);let P=(()=>{class h{constructor(p,u){this.customerDB=p,this.http=u}listAll(){var p=this;return(0,g.Z)(function*(){return(yield p.customerDB.getTeammembers().get()).docs.map(f=>({id:f.id,...f.data()}))})()}getOne(p){return this.customerDB.getTeammember(p)}invite(p,u,f,C,A){var e=this;return(0,g.Z)(function*(){return yield e.customerDB.inviteTeammember(p,u,f,C,A)})()}delete(p){return this.customerDB.deleteTeammember(p)}updateStatus(p,u){return this.customerDB.updateTeammemberStatus(p,u)}updateLocation(p,u){return this.customerDB.updateTeammemberLocation(p,u)}updateName(p,u){return this.customerDB.updateTeammemberName(p,u)}loadInvite(p,u){return this.http.post(T.d.getTeamInvite,{customerId:p,inviteToken:u}).toPromise()}acceptInvite(p,u,f){var C=this;return(0,g.Z)(function*(){return(yield C.http.post(T.d.acceptTeamInvite,{customerId:p,inviteToken:u,password:f}).toPromise()).uid})()}}return h.\u0275fac=function(p){return new(p||h)(M.LFG(y.E),M.LFG(v.eN))},h.\u0275prov=M.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"}),h})()},41538:(N,k,s)=>{s.r(k),s.d(k,{TeamManagementPageModule:()=>u});var g=s(86019),T=s(49133),y=s(94545),M=s(99843),v=s(61591),P=s(83668);const h=[{path:"",component:v.C}];let Z=(()=>{class f{}return f.\u0275fac=function(A){return new(A||f)},f.\u0275mod=P.oAB({type:f}),f.\u0275inj=P.cJS({imports:[[M.Bz.forChild(h)],M.Bz]}),f})();var p=s(32178);let u=(()=>{class f{}return f.\u0275fac=function(A){return new(A||f)},f.\u0275mod=P.oAB({type:f}),f.\u0275inj=P.cJS({imports:[[g.ez,T.u5,y.Pc,T.UX,Z,p.M]]}),f})()},61591:(N,k,s)=>{s.d(k,{C:()=>fe});var g=s(34553),T=s(44522),y=s(18260),M=s(82023),v=s(36636),P=s(5900),h=s(88920),Z=s(51268),p=s(81990),u=s(16447),f=s(72515),C=s(1e4),A=s(67483),e=s(83668),R=s(99843),I=s(94545),S=s(86019),L=s(49133),F=s(77518);function q(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",36),e.NdJ("click",function(){e.CHM(t);const i=e.oxw();return i.closeLocationDropdown(),i.closeRoleDropdown()}),e.qZA()}}function U(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"label",45),e.TgZ(1,"input",41),e.NdJ("change",function(){const o=e.CHM(t).$implicit,r=e.oxw(2);return r.toggleLocation(r.currentDropdownTeammember,o.name)}),e.qZA(),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()}if(2&a){const t=c.$implicit,n=e.oxw(2);e.xp6(1),e.Q6J("checked",n.isLocationSelected(n.currentDropdownTeammember,t.name)),e.xp6(2),e.Oqu(t.name)}}function J(a,c){if(1&a&&(e.TgZ(0,"div",46),e._uU(1),e.qZA()),2&a){const t=e.oxw(2);e.xp6(1),e.hij(" ",t.translationObject.KeineErgebnisse||"Keine Ergebnisse"," ")}}function j(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",37),e.NdJ("click",function(i){return i.stopPropagation()}),e.TgZ(1,"div",38),e.TgZ(2,"input",39),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().locationSearchQuery=i}),e.qZA(),e.qZA(),e.TgZ(3,"label",40),e.TgZ(4,"input",41),e.NdJ("change",function(){e.CHM(t);const i=e.oxw();return i.toggleSelectAllFilteredLocations(i.currentDropdownTeammember)}),e.qZA(),e.TgZ(5,"span"),e._uU(6),e.qZA(),e.qZA(),e.TgZ(7,"div",42),e.YNc(8,U,4,2,"label",43),e.YNc(9,J,2,1,"div",44),e.qZA(),e.qZA()}if(2&a){const t=e.oxw();e.Udp("top",null==t.locationDropdownPos?null:t.locationDropdownPos.top,"px")("left",null==t.locationDropdownPos?null:t.locationDropdownPos.left,"px"),e.xp6(2),e.Q6J("ngModel",t.locationSearchQuery)("placeholder",t.translationObject.Suchen||"Suchen..."),e.xp6(2),e.Q6J("checked",t.areAllFilteredLocationsSelected(t.currentDropdownTeammember)),e.xp6(2),e.Oqu(t.translationObject.AlleStandorte||"Alle Standorte"),e.xp6(2),e.Q6J("ngForOf",t.filteredLocationOptions()),e.xp6(1),e.Q6J("ngIf",0===t.filteredLocationOptions().length)}}function B(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"label",45),e.TgZ(1,"input",48),e.NdJ("change",function(){const o=e.CHM(t).$implicit,r=e.oxw(2);return r.selectRole(r.currentRoleDropdownTeammember,o.id)}),e.qZA(),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()}if(2&a){const t=c.$implicit,n=e.oxw(2);e.xp6(1),e.Q6J("checked",n.isRoleSelected(n.currentRoleDropdownTeammember,t.id)),e.xp6(2),e.Oqu(t.name)}}function z(a,c){if(1&a&&(e.TgZ(0,"div",47),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(1,"div",42),e.YNc(2,B,4,2,"label",43),e.qZA(),e.qZA()),2&a){const t=e.oxw();e.Udp("top",null==t.roleDropdownPos?null:t.roleDropdownPos.top,"px")("left",null==t.roleDropdownPos?null:t.roleDropdownPos.left,"px"),e.xp6(2),e.Q6J("ngForOf",t.selectableRoles)}}function Q(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",49),e.NdJ("click",function(){return e.CHM(t),e.oxw().closeDeleteModal()}),e.qZA()}}
1function K(a,c){1&a&&e._UZ(0,"ion-spinner",65)}function H(a,c){1&a&&e._UZ(0,"ion-icon",66)}function V(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",50),e.NdJ("click",function(i){return i.stopPropagation()}),e.TgZ(1,"div",51),e.TgZ(2,"h4"),e._uU(3),e.qZA(),e.TgZ(4,"button",52),e.NdJ("click",function(){return e.CHM(t),e.oxw().closeDeleteModal()}),e._UZ(5,"ion-icon",53),e.qZA(),e.qZA(),e.TgZ(6,"form",54,55),e.NdJ("ngSubmit",function(){return e.CHM(t),e.oxw().confirmDeleteTeammember()}),e.TgZ(8,"p",56),e._uU(9),e.TgZ(10,"strong"),e._uU(11),e.qZA(),e._uU(12),e.qZA(),e.TgZ(13,"label",57),e.TgZ(14,"span",58),e._uU(15),e.TgZ(16,"strong"),e._uU(17,"l\xf6schen"),e.qZA(),e.qZA(),e.TgZ(18,"input",59),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().deleteConfirmText=i}),e.qZA(),e.qZA(),e.TgZ(19,"div",60),e.TgZ(20,"button",61),e.NdJ("click",function(){return e.CHM(t),e.oxw().closeDeleteModal()}),e._uU(21),e.qZA(),e.TgZ(22,"button",62),e.YNc(23,K,1,0,"ion-spinner",63),e.YNc(24,H,1,0,"ion-icon",64),e.TgZ(25,"span"),e._uU(26),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&a){const t=e.oxw();e.xp6(3),e.Oqu(t.translationObject.TeammitgliedLoeschen||"Benutzer l\xf6schen"),e.xp6(1),e.Q6J("disabled",t.isDeletingTeammember),e.uIk("aria-label",t.translationObject.Schlie\u00dfen||"Close"),e.xp6(5),e.hij(" ",t.translationObject.LoeschenBestaetigung1||"M\xf6chtest du"," "),e.xp6(2),e.Oqu(t.teammemberToDelete.name||t.teammemberToDelete.email),e.xp6(1),e.hij(" ",t.translationObject.LoeschenBestaetigung2||"wirklich entfernen? Diese Aktion kann nicht r\xfcckg\xe4ngig gemacht werden."," "),e.xp6(3),e.hij(" ",t.translationObject.ZumBestaetigenTippen||"Zum Best\xe4tigen tippe"," "),e.xp6(3),e.Q6J("ngModel",t.deleteConfirmText)("disabled",t.isDeletingTeammember),e.xp6(2),e.Q6J("disabled",t.isDeletingTeammember),e.xp6(1),e.hij(" ",t.translationObject.Abbrechen||"Abbrechen"," "),e.xp6(1),e.Q6J("disabled",!t.isDeleteConfirmValid||t.isDeletingTeammember),e.xp6(1),e.Q6J("ngIf",t.isDeletingTeammember),e.xp6(1),e.Q6J("ngIf",!t.isDeletingTeammember),e.xp6(2),e.Oqu(t.isDeletingTeammember?t.translationObject.LoescheTeammitglied||"L\xf6sche...":t.translationObject.Loeschen||"L\xf6schen")}}function Y(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",67),e.TgZ(1,"div",68),e._UZ(2,"ion-icon",69),e.qZA(),e.TgZ(3,"div",70),e.TgZ(4,"strong"),e._uU(5),e.qZA(),e.TgZ(6,"div",71),e.TgZ(7,"span"),e._uU(8),e.qZA(),e.TgZ(9,"span",72),e._uU(10,"|"),e.qZA(),e.TgZ(11,"span"),e._uU(12),e.qZA(),e.TgZ(13,"span",72),e._uU(14,"|"),e.qZA(),e.TgZ(15,"span"),e._uU(16),e.qZA(),e.qZA(),e.qZA(),e.TgZ(17,"button",73),e.NdJ("click",function(){return e.CHM(t),e.oxw().copyAccountId()}),e._UZ(18,"ion-icon",74),e.TgZ(19,"span"),e._uU(20),e.ALo(21,"slice"),e.qZA(),e.qZA(),e.qZA()}if(2&a){const t=e.oxw();e.xp6(5),e.hij("",t.isAgentsEnterprise?"Agents Enterprise":"Enterprise"," Users"),e.xp6(3),e.AsE("",t.totalLicenses," ",t.translationObject.Lizenzen||"Lizenzen",""),e.xp6(4),e.AsE("",t.usedLicenses," ",t.translationObject.Verwendet||"verwendet",""),e.xp6(3),e.ekj("tm-banner__warn",t.remainingLicenses<=1),e.xp6(1),e.AsE("",t.remainingLicenses," ",t.translationObject.Verbleibend||"verbleibend",""),e.xp6(4),e.hij("",e.Dn7(21,10,t.accountId,0,12),"...")}}
1function $(a,c){if(1&a&&(e.TgZ(0,"div",75),e._UZ(1,"ion-icon",76),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()),2&a){const t=e.oxw();e.xp6(3),e.Oqu(t.translationObject.AlleLizenzenVergeben||"Alle Lizenzen sind vergeben. Bitte erwerben Sie zus\xe4tzliche Lizenzen.")}}function W(a,c){if(1&a&&(e.TgZ(0,"div",77),e._UZ(1,"ion-icon",78),e.TgZ(2,"div"),e.TgZ(3,"strong"),e._uU(4),e.qZA(),e.TgZ(5,"p"),e._uU(6),e.qZA(),e.qZA(),e.qZA()),2&a){const t=e.oxw();e.xp6(4),e.Oqu(t.translationObject.Eingeschr\u00e4nkterZugriff||"Eingeschr\xe4nkter Zugriff"),e.xp6(2),e.Oqu(t.translationObject.NurAdminKann||"Nur der Account-Administrator kann Benutzer einladen, Lizenzen verwalten und Benutzer entfernen.")}}function G(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",83),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).toggleTeamAuditPanel()}),e._UZ(1,"ion-icon",84),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()}if(2&a){const t=e.oxw(2);e.xp6(3),e.Oqu(t.translationObject.AuditLogs||"Audit Logs")}}function X(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",79),e.TgZ(1,"div",80),e.NdJ("click",function(){return e.CHM(t),e.oxw().openInvitePanel()}),e._UZ(2,"ion-icon",81),e.TgZ(3,"span"),e._uU(4),e.qZA(),e.qZA(),e.YNc(5,G,4,1,"div",82),e.qZA()}if(2&a){const t=e.oxw();e.xp6(4),e.Oqu(t.translationObject.Einladen||"Invite"),e.xp6(1),e.Q6J("ngIf",t.auditLogsEnabled)}}function ee(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"input",93,94),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw(2).nameEditValue=i})("keydown.enter",function(i){e.CHM(t);const o=e.oxw().$implicit;return e.oxw().saveEditName(o),i.preventDefault()})("keydown.escape",function(){return e.CHM(t),e.oxw(2).cancelEditName()})("blur",function(){e.CHM(t);const i=e.oxw().$implicit;return e.oxw().saveEditName(i)}),e.qZA()}if(2&a){const t=e.oxw(2);e.Q6J("ngModel",t.nameEditValue)}}function te(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"span",95),e.NdJ("click",function(){e.CHM(t);const i=e.oxw().$implicit;return e.oxw().startEditName(i)}),e._uU(1),e.qZA()}if(2&a){const t=e.oxw().$implicit,n=e.oxw();e.ekj("is-editable",n.canManageTeam),e.Q6J("title",n.canManageTeam?n.translationObject.NameBearbeiten||"Name bearbeiten":null),e.xp6(1),e.hij(" ",t.name||"-"," ")}}function ne(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"button",96),e.NdJ("click",function(){e.CHM(t);const i=e.oxw().$implicit;return e.oxw().requestDeleteTeammember(i)}
1),e._UZ(1,"ion-icon",66),e.qZA()}if(2&a){const t=e.oxw().$implicit,n=e.oxw();e.Q6J("disabled",n.isSelf(t))("title",n.isSelf(t)?n.translationObject.EigenerAccountNichtLoeschbar||"Du kannst deinen eigenen Account nicht l\xf6schen.":n.translationObject.L\u00f6schen||"L\xf6schen")}}function ie(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"tr"),e.TgZ(1,"td",17),e.TgZ(2,"div",85),e.TgZ(3,"span",86),e._uU(4),e.qZA(),e.TgZ(5,"div",87),e.YNc(6,ee,2,1,"input",88),e.YNc(7,te,2,4,"span",89),e.TgZ(8,"span",90),e._uU(9),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.TgZ(10,"td",18),e.TgZ(11,"button",91),e.NdJ("click",function(i){const r=e.CHM(t).$implicit;return e.oxw().toggleLocationDropdown(r,i)}),e._uU(12),e.qZA(),e.qZA(),e.TgZ(13,"td",19),e.TgZ(14,"button",91),e.NdJ("click",function(i){const r=e.CHM(t).$implicit;return e.oxw().toggleRoleDropdown(r,i)}),e._uU(15),e.qZA(),e.qZA(),e.TgZ(16,"td",20),e.YNc(17,ne,2,2,"button",92),e.qZA(),e.qZA()}if(2&a){const t=c.$implicit,n=e.oxw();e.xp6(4),e.Oqu(n.getInitials(t.name)),e.xp6(2),e.Q6J("ngIf",n.editingNameFor===t.email),e.xp6(1),e.Q6J("ngIf",n.editingNameFor!==t.email),e.xp6(2),e.Oqu(t.email),e.xp6(2),e.ekj("is-open",n.locationDropdownOpenFor===t.email),e.Q6J("disabled",!n.canChangeLocation)("title",n.canChangeLocation?null:n.translationObject.KeineBerechtigungStandort||"Keine Berechtigung Standorte zu \xe4ndern."),e.xp6(1),e.hij(" ",n.getLocationDisplayText(t)," "),e.xp6(2),e.ekj("is-open",n.roleDropdownOpenFor===t.email),e.Q6J("disabled",!n.canChangeRole)("title",n.canChangeRole?null:n.translationObject.KeineBerechtigungRolle||"Nur SuperAdmin, Admin oder Niederlassungsleiter d\xfcrfen die Rolle \xe4ndern."),e.xp6(1),e.hij(" ",n.getRoleDisplayText(t)," "),e.xp6(2),e.Q6J("ngIf",n.isSuperAdmin)}}function oe(a,c){if(1&a&&(e.TgZ(0,"tr"),e.TgZ(1,"td",97),e._UZ(2,"ion-icon",98),e.TgZ(3,"span"),e._uU(4),e.qZA(),e.qZA(),e.qZA()),2&a){const t=e.oxw();e.xp6(4),e.Oqu(t.translationObject.KeineTeammitglieder||"Keine Benutzer gefunden")}}function ae(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",109),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).closeInviteRolePicker()}),e.qZA()}}function re(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"label",45),e.TgZ(1,"input",111),e.NdJ("change",function(){const o=e.CHM(t).$implicit;return e.oxw(3).selectInviteRole(o.id)}),e.qZA(),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()}if(2&a){const t=c.$implicit,n=e.oxw(3);e.xp6(1),e.Q6J("checked",n.inviteRole==t.id),e.xp6(2),e.Oqu(t.name)}}function se(a,c){if(1&a&&(e.TgZ(0,"div",110),e.NdJ("click",function(n){return n.stopPropagation()}),e.TgZ(1,"div",42),e.YNc(2,re,4,2,"label",43),e.qZA(),e.qZA()),2&a){const t=e.oxw(2);e.xp6(2),e.Q6J("ngForOf",t.selectableRoles)}}function le(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",109),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).closeInviteLocationPicker()}),e.qZA()}}function ce(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"label",45),e.TgZ(1,"input",41),e.NdJ("change",function(){const o=e.CHM(t).$implicit;return e.oxw(3).toggleInviteLocation(o.name)}),e.qZA(),e.TgZ(2,"span"),e._uU(3),e.qZA(),e.qZA()}if(2&a){const t=c.$implicit,n=e.oxw(3);e.xp6(1),e.Q6J("checked",n.isInviteLocationSelected(t.name)),e.xp6(2),e.Oqu(t.name)}}function de(a,c){if(1&a&&(e.TgZ(0,"div",46),e._uU(1),e.qZA()),2&a){const t=e.oxw(3);e.xp6(1),e.hij(" ",t.translationObject.KeineErgebnisse||"Keine Ergebnisse"," ")}}function me(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",110),e.NdJ("click",function(i){return i.stopPropagation()}),e.TgZ(1,"div",38),e.TgZ(2,"input",112),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw(2).inviteLocationSearchQuery=i}),e.qZA(),e.qZA(),e.TgZ(3,"label",40),e.TgZ(4,"input",41),e.NdJ("change",function(){return e.CHM(t),e.oxw(2).toggleSelectAllFilteredInviteLocations()}),e.qZA(),e.TgZ(5,"span"),e._uU(6),e.qZA(),e.qZA(),e.TgZ(7,"div",42),e.YNc(8,ce,4,2,"label",43),e.YNc(9,de,2,1,"div",44),e.qZA(),e.qZA()}if(2&a){const t=e.oxw(2);e.xp6(2),e.Q6J("ngModel",t.inviteLocationSearchQuery)("placeholder",t.translationObject.Suchen||"Suchen..."),e.xp6(2),e.Q6J("checked",t.areAllFilteredInviteLocationsSelected()),e.xp6(2),e.Oqu(t.translationObject.AlleStandorte||"Alle Standorte"),e.xp6(2),e.Q6J("ngForOf",t.filteredInviteLocationOptions()),e.xp6(1),e.Q6J("ngIf",0===t.filteredInviteLocationOptions().length)}}function pe(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"form",99,100),e.NdJ("ngSubmit",function(){return e.CHM(t),e.oxw().submitInvite()}),e.TgZ(2,"div",101),e.TgZ(3,"ion-input",102),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().inviteFirstname=i}),e.qZA(),e.TgZ(4,"ion-input",103),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().inviteLastname=i}),e.qZA(),e.TgZ(5,"ion-input",104),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().emailInput=i}),e.qZA(),e.TgZ(6,"div",105),e.TgZ(7,"button",106),e.NdJ("click",function(){return e.CHM(t),e.oxw().toggleInviteRolePicker()}),e._uU(8),e.qZA(),e.YNc(9,ae,1,0,"div",107),e.YNc(10,se,3,1,"div",108),e.qZA(),e.TgZ(11,"div",105),e.TgZ(12,"button",106),e.NdJ("click",function(){return e.CHM(t),e.oxw().toggleInviteLocationPicker()}),e._uU(13),e.qZA(),e.YNc(14,le,1,0,"div",107),e.YNc(15,me,10,6,"div",108),e.qZA(),e.qZA(),e.qZA()}if(2&a){const t=e.oxw();e.xp6(3),e.Q6J("ngModel",t.inviteFirstname)("placeholder",t.translationObject.Vorname||"Vorname")("disabled",t.isSendingInvite),e.xp6(1),e.Q6J("ngModel",t.inviteLastname)("placeholder",t.translationObject.Nachname||"Nachname")("disabled",t.isSendingInvite),e.xp6(1),e.Q6J("ngModel",t.emailInput)("disabled",t.isSendingInvite),e.xp6(2),e.ekj("is-open",t.isInviteRolePickerOpen),e.Q6J("disabled",t.isSendingInvite),e.xp6(1),e.hij(" ",t.getInviteRoleDisplayText()," "),e.xp6(1),e.Q6J("ngIf",t.isInviteRolePickerOpen),e.xp6(1),e.Q6J("ngIf",t.isInviteRolePickerOpen),e.xp6(2),e.ekj("is-open",t.isInviteLocationPickerOpen),e.Q6J("disabled",t.isSendingInvite),e.xp6(1),e.hij(" ",t.getInviteLocationDisplayText()," "),e.xp6(1),e.Q6J("ngIf",t.isInviteLocationPickerOpen),e.xp6(1),e.Q6J("ngIf",t.isInviteLocationPickerOpen)}}function ge(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"div",113),e.TgZ(1,"p",114),e._uU(2),e.qZA(),e.TgZ(3,"div",115),e.TgZ(4,"ion-input",116),e.NdJ("focus",function(i){return i.target.select()}),e.qZA(),e.TgZ(5,"button",117),e.NdJ("click",function(){return e.CHM(t),e.oxw().copyInviteLink()}),e._UZ(6,"ion-icon",118),e.qZA(),e.qZA(),e.qZA()}if(2&a){const t=e.oxw();e.xp6(2),e.hij(" ",t.translationObject.EinladungsLinkBeschreibung||"Sende diesen Link an deinen neuen Benutzer, falls die E-Mail nicht ankommt:"," "),e.xp6(2),e.Q6J("value",t.lastInviteLink),e.xp6(1),e.Q6J("title",t.linkCopied?t.translationObject.Kopiert||"Kopiert!":t.translationObject.Kopieren||"Kopieren"),e.uIk("aria-label",t.translationObject.Kopieren||"Kopieren"),e.xp6(1),e.Q6J("name",t.linkCopied?"checkmark-outline":"copy-outline")}}function _e(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"button",119),e.NdJ("click",function(){return e.CHM(t),e.oxw().submitInvite()}
1),e._UZ(1,"ion-icon",81),e._uU(2),e.qZA()}if(2&a){const t=e.oxw();e.Q6J("disabled",t.isSendingInvite||!t.isInviteFormValid),e.xp6(2),e.hij(" ",t.translationObject.Einladen||"Einladen"," ")}}function ue(a,c){if(1&a){const t=e.EpF();e.TgZ(0,"button",120),e.NdJ("click",function(){return e.CHM(t),e.oxw().closeInvitePanel()}),e._uU(1),e.qZA()}if(2&a){const t=e.oxw();e.xp6(1),e.hij(" ",t.translationObject.Fertig||"Fertig"," ")}}let fe=(()=>{class a{constructor(t,n,i,o,r,d,l,m,_,b){this.router=t,this.http=n,this.customerDB=i,this.authService=o,this.toastController=r,this.loadingController=d,this.profileService=l,this.teammemberRepo=m,this.brandingRepo=_,this.auditLogService=b,this.teammembers=[],this.emailInput="",this.isInviteModalOpen=!1,this.isInvitePanelOpen=!1,this.inviteFirstname="",this.inviteLastname="",this.inviteRole=null,this.inviteLocationNames=[],this.isInviteRolePickerOpen=!1,this.isInviteLocationPickerOpen=!1,this.inviteLocationSearchQuery="",this.isSendingInvite=!1,this.lastInviteLink=null,this.linkCopied=!1,this.INVITE_LINK_BASE="https://monaai.de",this.isDeleteModalOpen=!1,this.teammemberToDelete=null,this.deleteConfirmText="",this.isDeletingTeammember=!1,this.deleteConfirmKeywords=["l\xf6schen","loeschen","delete"],this.ipPt=y.N.server,this.teammemberId="",this.customerId="",this.locations=[],this.currentUser=null,this.availableRoles=[],this.rightsForMandanten=!1,this.isEnterpriseAdmin=!1,this.isAgentsEnterprise=!1,this.totalLicenses=0,this.usedLicenses=0,this.remainingLicenses=0,this.accountId="",this.currentInvitationId="",this.searchQuery="",this.selectedRoleFilter=null,this.locationDropdownOpenFor=null,this.locationSearchQuery="",this.locationDropdownPos=null,this.roleDropdownOpenFor=null,this.roleDropdownPos=null,this.editingNameFor=null,this.nameEditValue="",this.showInvitePanel=!1,this.showTeamAuditPanel=!1,this.auditLogsEnabled=!1,this.teamFieldLabels={email:"Email",name:"Name",role:"Role",locationNames:"Locations",locationName:"Location",status:"Status"},this._locationSnapshotBefore=null,this.translationObject=p.w.TRANSLATION_OBJECT}get filteredTeammembers(){let t=this.teammembers;if(this.searchQuery&&""!==this.searchQuery.trim()){const n=this.searchQuery.toLowerCase();t=t.filter(i=>(i.name||"").toLowerCase().includes(n)||(i.email||"").toLowerCase().includes(n))}return null!==this.selectedRoleFilter&&(t=t.filter(n=>n.status==this.selectedRoleFilter)),t}onSearchChange(t){this.searchQuery=t}onRoleFilterChange(t){this.selectedRoleFilter=t?Number(t):null}isSelf(t){const n=(this.currentUser?.email||"").toLowerCase();return!!n&&!!t?.email&&t.email.toLowerCase()===n}get isSuperAdmin(){const t=(this.currentUser?.email||"").toLowerCase();if(!t)return!1;if((0,u.s)(t))return!0;const i=this.teammembers.find(o=>(o.email||"").toLowerCase()===t)?.status;return 5===i||"5"===i||"SuperAdmin"===i}get isNiederlassungsleiter(){const t=(this.currentUser?.email||"").toLowerCase();if(!t)return!1;const i=this.teammembers.find(o=>(o.email||"").toLowerCase()===t)?.status;return 4===i||"4"===i||"Niederlassungsleiter"===i}get isAdmin(){const t=(this.currentUser?.email||"").toLowerCase();if(!t)return!1;const i=this.teammembers.find(o=>(o.email||"").toLowerCase()===t)?.status;return 6===i||"6"===i||"Admin"===i}get canManageTeam(){return this.isSuperAdmin||this.isAdmin||this.isNiederlassungsleiter}get canChangeRole(){return this.canManageTeam}get canChangeLocation(){return this.canManageTeam}get canInvite(){return this.canManageTeam}get selectableRoles(){return(0,u.s)(this.currentUser?.email)?this.availableRoles:this.availableRoles.filter(t=>5!==t.id&&"SuperAdmin"!==t.name)}getInitials(t){if(!t)return"?";const n=t.trim().split(/\s+/);return n.length>=2?(n[0][0]+n[1][0]).toUpperCase():n[0][0]?.toUpperCase()||"?"}getRoleName(t){if(!t&&0!==t)return"-";const n=this.availableRoles.find(i=>i.id==t);return n?n.name:String(t)}normalizeLocations(t,n){return Array.isArray(t)?t.filter(i=>"string"==typeof i&&""!==i.trim()):"string"==typeof n&&""!==n.trim()?[n]:[]}ngOnInit(){var t=this;return(0,g.Z)(function*(){t.auditLogsEnabled=t.auditLogService.isAuditLogsEnabled(),yield t.loadCurrentUser(),yield t.loadEnterpriseData(),yield t.loadData(),t.availableRoles=C.u,yield t.getAvailableRoles(),console.log("Available roles: ",t.availableRoles)})()}ngOnDestroy(){var t=this;return(0,g.Z)(function*(){yield t.toastController.dismiss()})()}loadCurrentUser(){var t=this;return(0,g.Z)(function*(){try{t.currentUser=yield t.profileService.getCurrentUser(),console.log("Current user: ",t.currentUser)}catch(n){console.error("Fehler beim Laden des aktuellen Benutzers:",n)}})()}loadEnterpriseData(){var t=this;return(0,g.Z)(function*(){try{const n=t.customerDB.returnCurrentPlan();if(t.isAgentsEnterprise=n&&n.includes("agents-enterprise"),t.isAgentsEnterprise){const i=t.authService.returnUserId(),o=t.customerDB.accountId||i;if(t.isEnterpriseAdmin=i===o,t.isEnterpriseAdmin){t.accountId=o;const r=yield t.getEnterpriseLicenses(i);t.totalLicenses=r.licenses||2,t.usedLicenses=t.teammembers.length+1,t.remainingLicenses=Math.max(0,t.totalLicenses-t.usedLicenses)}else t.accountId=o}}catch(n){console.error("Fehler beim Laden der Agent-Enterprise-Daten:",
1n)}})()}getEnterpriseLicenses(t){return(0,g.Z)(function*(){try{const n=window.firebase;if(!n)return console.error("Firebase is not available"),{licenses:2};const o=yield n.firestore().collection("customers").doc(t).get();if(o.exists){const r=o.data();if((r.plan||"").includes("agents-enterprise"))return{licenses:r.agentEnterpriseLicenses||r.licenses||2}}return{licenses:2}}catch(n){return console.error("Fehler beim Abrufen der Lizenzen:",n),{licenses:2}}})()}createTeammateCustomerDoc(t,n,i){var o=this;return(0,g.Z)(function*(){try{const r=window.firebase;if(!r)return console.error("Firebase is not available"),!1;const d=r.firestore(),l=o.authService.returnUserId(),m=d.collection("customers").doc(t),_={account_id:l,accountId:l,email:n,uid:t,createdAt:r.firestore.FieldValue.serverTimestamp(),invitedBy:l,teamMemberStatus:"active"};return i&&(_.displayName=i,_.name=i),yield m.set(_,{merge:!0}),console.log("Teammate customer doc created successfully:",t),!0}catch(r){return console.error("Fehler beim Erstellen des Teammitglied-Dokuments:",r),!1}})()}copyAccountId(){var t=this;return(0,g.Z)(function*(){try{if(navigator.clipboard)yield navigator.clipboard.writeText(t.accountId),yield(yield t.toastController.create({message:"Account ID kopiert!",duration:2e3,position:"top",color:"success"})).present();else{const n=document.createElement("textarea");n.value=t.accountId,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),yield(yield t.toastController.create({message:"Account ID kopiert!",duration:2e3,position:"top",color:"success"})).present()}}catch(n){console.error("Fehler beim Kopieren der Account ID:",n),yield(yield t.toastController.create({message:"Fehler beim Kopieren",duration:2e3,position:"top",color:"danger"})).present()}})()}loadData(){var t=this;return(0,g.Z)(function*(){const n=yield t.loadingController.create({message:"Lade Daten..."});yield n.present();try{yield Promise.all([t.getTeammembers(),t.loadLocations()])}catch(i){console.error("Fehler beim Laden der Daten:",i)}finally{yield n.dismiss()}})()}ionViewDidLeave(){this.toastController.dismiss()}presentToastMessage(t){var n=this;return(0,g.Z)(function*(){(yield n.toastController.create({message:t,duration:2e3})).present()})()}captureLocationSnapshot(t){this._locationSnapshotBefore=Array.isArray(t.locationNames)?[...t.locationNames]:[]}onLocationsChange(t){const n=Array.isArray(t.locationNames)?t.locationNames:[];console.log("this.locationNames: ",n),t.locationName=n[0]||"",this.updateTeammember(t.email,n,"locationNames");const i=this._locationSnapshotBefore||[];JSON.stringify(i)!==JSON.stringify(n)&&this.auditLogService.logChange("team-management","update",[{field:"locationNames",oldValue:i,newValue:n}],t.email),this._locationSnapshotBefore=null,this.presentToastMessage("Standorte wurden erfolgreich ge\xe4ndert")}toggleLocationDropdown(t,n){if(!this.canChangeLocation)return;if(this.locationDropdownOpenFor===t.email)return void this.closeLocationDropdown();if(this.closeRoleDropdown(),this.locationDropdownOpenFor=t.email,this.locationSearchQuery="",!(n&&n.currentTarget instanceof HTMLElement))return void(this.locationDropdownPos=null);const i=n.currentTarget,o=i.getBoundingClientRect();let r=0,d=0;for(let l=i.parentElement;l;l=l.parentElement){const m=getComputedStyle(l);if("none"!==m.transform||"none"!==m.perspective||"none"!==m.filter||"transform"===m.willChange){const _=l.getBoundingClientRect();r=_.top,d=_.left;break}}this.locationDropdownPos={top:o.bottom+4-r,left:o.left-d},"function"==typeof requestAnimationFrame&&requestAnimationFrame(()=>{const l=document.querySelector(".tm-location-picker__panel--fixed");if(!l||!this.locationDropdownPos)return;const m=window.innerWidth,_=window.innerHeight,E=l.offsetWidth,w=l.offsetHeight;let x=o.left;x+E>m-8&&(x=Math.max(8,m-E-8));let O=o.bottom+4;if(O+w>_-8){const D=o.top-4-w;O=D>=8?D:Math.max(8,_-w-8)}this.locationDropdownPos={top:O-r,left:x-d}})}closeLocationDropdown(){this.locationDropdownOpenFor=null,this.locationSearchQuery="",this.locationDropdownPos=null}get currentDropdownTeammember(){return this.locationDropdownOpenFor&&this.teammembers.find(t=>t.email===this.locationDropdownOpenFor)||null}filteredLocationOptions(){const t=(this.locationSearchQuery||"").toLowerCase().trim();return t?this.locations.filter(n=>(n.name||"").toLowerCase().includes(t)):this.locations}isLocationSelected(t,n){return Array.isArray(t.locationNames)&&-1!==t.locationNames.indexOf(n)}toggleLocation(t,n){this.captureLocationSnapshot(t);const i=Array.isArray(t.locationNames)?[...t.locationNames]:[],o=i.indexOf(n);-1===o?i.push(n):i.splice(o,1),t.locationNames=i,this.onLocationsChange(t)}
1areAllFilteredLocationsSelected(t){const n=this.filteredLocationOptions();if(0===n.length)return!1;const i=new Set(t.locationNames||[]);return n.every(o=>i.has(o.name))}toggleSelectAllFilteredLocations(t){this.captureLocationSnapshot(t);const n=this.filteredLocationOptions();if(0===n.length)return;const i=new Set(t.locationNames||[]);n.every(r=>i.has(r.name))?n.forEach(r=>i.delete(r.name)):n.forEach(r=>i.add(r.name)),t.locationNames=Array.from(i),this.onLocationsChange(t)}getLocationDisplayText(t){const n=t.locationNames||[];return 0===n.length||this.locations.length>0&&n.length>=this.locations.length?this.translationObject.AlleStandorte||"Alle Standorte":1===n.length?n[0]:`${n.length} ${this.translationObject.Standorte||"Standorte"}`}startEditName(t){!this.canManageTeam||(this.editingNameFor=t.email,this.nameEditValue=t.name||"",setTimeout(()=>{const n=document.querySelector(".tm-member__name-input");n&&(n.focus(),n.select())},0))}cancelEditName(){this.editingNameFor=null,this.nameEditValue=""}saveEditName(t){if(this.editingNameFor!==t.email)return;const n=(this.nameEditValue||"").trim(),i=(t.name||"").trim();n&&n!==i?(t.name=n,this.updateTeammember(t.email,n,"name"),this.presentToastMessage("Name wurde erfolgreich ge\xe4ndert"),this.cancelEditName()):this.cancelEditName()}onRoleChange(t){this.canChangeRole?(console.log("this.status: ",t.status),this.updateTeammember(t.email,t.status,"status"),this.presentToastMessage("Rolle wurde erfolgreich ge\xe4ndert")):this.presentToastMessage(this.translationObject.KeineBerechtigungRolle||"Nur SuperAdmin, Admin oder Niederlassungsleiter d\xfcrfen die Rolle \xe4ndern.")}toggleRoleDropdown(t,n){if(!this.canChangeRole)return;if(this.roleDropdownOpenFor===t.email)return void this.closeRoleDropdown();if(this.closeLocationDropdown(),this.roleDropdownOpenFor=t.email,!(n&&n.currentTarget instanceof HTMLElement))return void(this.roleDropdownPos=null);const i=n.currentTarget,o=i.getBoundingClientRect();let r=0,d=0;for(let l=i.parentElement;l;l=l.parentElement){const m=getComputedStyle(l);if("none"!==m.transform||"none"!==m.perspective||"none"!==m.filter||"transform"===m.willChange){const _=l.getBoundingClientRect();r=_.top,d=_.left;break}}this.roleDropdownPos={top:o.bottom+4-r,left:o.left-d},"function"==typeof requestAnimationFrame&&requestAnimationFrame(()=>{const l=document.querySelector(".tm-role-picker__panel--fixed");if(!l||!this.roleDropdownPos)return;const m=window.innerWidth,_=window.innerHeight,E=l.offsetWidth,w=l.offsetHeight;let x=o.left;x+E>m-8&&(x=Math.max(8,m-E-8));let O=o.bottom+4;if(O+w>_-8){const D=o.top-4-w;O=D>=8?D:Math.max(8,_-w-8)}this.roleDropdownPos={top:O-r,left:x-d}})}closeRoleDropdown(){this.roleDropdownOpenFor=null,this.roleDropdownPos=null}get currentRoleDropdownTeammember(){return this.roleDropdownOpenFor&&this.teammembers.find(t=>t.email===this.roleDropdownOpenFor)||null}isRoleSelected(t,n){return String(t.status)===String(n)}selectRole(t,n){const i=t.status,o=this.availableRoles.find(d=>String(d.id)===String(i))?.name||String(i);t.status=n;const r=this.availableRoles.find(d=>String(d.id)===String(n))?.name||String(n);this.auditLogService.logChange("team-management","update",[{field:"role",oldValue:o,newValue:r}],t.email),this.onRoleChange(t),this.closeRoleDropdown()}getRoleDisplayText(t){const n=this.availableRoles.find(i=>String(i.id)===String(t.status));return n?n.name:this.translationObject.SelectRole||"Rolle..."}openInvitePanel(){if(!this.canInvite||this.isAgentsEnterprise&&!this.isEnterpriseAdmin&&!this.isSuperAdmin)return;this.emailInput="",this.inviteFirstname="",this.inviteLastname="";const t=this.selectableRoles;this.inviteRole=t&&t.length>0?t[0].id:null,this.inviteLocationNames=[],this.lastInviteLink=null,this.linkCopied=!1,this.showInvitePanel=!0}closeInvitePanel(){this.isSendingInvite||(this.showInvitePanel=!1,this.inviteLocationNames=[],this.isInviteRolePickerOpen=!1,this.isInviteLocationPickerOpen=!1,this.inviteLocationSearchQuery="",this.lastInviteLink=null,this.linkCopied=!1)}toggleInviteRolePicker(){this.isInviteRolePickerOpen=!this.isInviteRolePickerOpen}closeInviteRolePicker(){this.isInviteRolePickerOpen=!1}selectInviteRole(t){this.inviteRole=t,this.closeInviteRolePicker()}getInviteRoleDisplayText(){const t=this.selectableRoles.find(n=>String(n.id)===String(this.inviteRole));return t?t.name:this.translationObject.SelectRole||"Rolle w\xe4hlen..."}get isInviteFormValid(){const t=(this.inviteFirstname||"").trim(),n=(this.inviteLastname||"").trim(),i=(this.emailInput||"").trim();return!!t&&!!n&&!!i&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i)&&null!==this.inviteRole}toggleInviteLocationPicker(){this.isInviteLocationPickerOpen=!this.isInviteLocationPickerOpen,this.isInviteLocationPickerOpen||(this.inviteLocationSearchQuery="")}closeInviteLocationPicker(){this.isInviteLocationPickerOpen=!1,this.inviteLocationSearchQuery=""}filteredInviteLocationOptions(){const t=(this.inviteLocationSearchQuery||"").toLowerCase().trim();return t?this.locations.filter(n=>(n.name||"").toLowerCase().includes(t)):this.locations}isInviteLocationSelected(t){return Array.isArray(this.inviteLocationNames)&&-1!==this.inviteLocationNames.indexOf(t)}toggleInviteLocation(t){const n=Array.isArray(this.inviteLocationNames)?[...this.inviteLocationNames]:[],i=n.indexOf(t);-1===i?n.push(t):n.splice(i,1),this.inviteLocationNames=n}areAllFilteredInviteLocationsSelected(){const t=this.filteredInviteLocationOptions();if(0===t.length)return!1;const n=new Set(this.inviteLocationNames||[]);return t.every(i=>n.has(i.name))}toggleSelectAllFilteredInviteLocations(){const t=this.filteredInviteLocationOptions();if(0===t.length)return;const n=new Set(this.inviteLocationNames||[]);t.every(o=>n.has(o.name))?t.forEach(o=>n.delete(o.name)):t.forEach(o=>n.add(o.name)),this.inviteLocationNames=Array.from(n)}getInviteLocationDisplayText(){const t=this.inviteLocationNames||[];return 0===t.length||this.locations.length>0&&t.length>=this.locations.length?this.translationObject.AlleStandorte||"Alle Standorte":1===t.length?t[0]:`${t.length} ${this.translationObject.Standorte||"Standorte"}`}openInviteModal(){if(!this.canInvite||this.isAgentsEnterprise&&!this.isEnterpriseAdmin)return;this.emailInput="",this.inviteFirstname="",this.inviteLastname="";const t=this.selectableRoles;this.inviteRole=t&&t.length>0?t[0].id:null,this.inviteLocationNames=[],this.isInviteRolePickerOpen=!1,this.isInviteLocationPickerOpen=!1,this.inviteLocationSearchQuery="",this.lastInviteLink=null,this.linkCopied=!1,this.isInviteModalOpen=!0}closeInviteModal(){this.isSendingInvite||(this.isInviteModalOpen=!1,this.inviteLocationNames=[],this.isInviteRolePickerOpen=!1,this.isInviteLocationPickerOpen=!1,this.inviteLocationSearchQuery="",this.lastInviteLink=null,this.linkCopied=!1)}submitInvite(){var t=this;return(0,g.Z)(function*(){const n=(t.emailInput||"").trim(),i=(t.inviteFirstname||"").trim(),o=(t.inviteLastname||"").trim();
1if(n&&i&&o&&null!==t.inviteRole){t.isSendingInvite=!0;try{yield t.inviteTeammember(`${i} ${o}`,t.inviteRole,i,o),t.inviteLocationNames&&t.inviteLocationNames.length>0&&(yield t.teammemberRepo.updateLocation(n,t.inviteLocationNames));const r=t.availableRoles.find(d=>d.id===t.inviteRole)?.name||String(t.inviteRole);t.auditLogService.logChange("team-management","create",[{field:"email",oldValue:null,newValue:n},{field:"name",oldValue:null,newValue:`${i} ${o}`},{field:"role",oldValue:null,newValue:r},{field:"locationNames",oldValue:null,newValue:t.inviteLocationNames.length>0?t.inviteLocationNames:null}],n),t.lastInviteLink||(t.isInviteModalOpen=!1),yield t.getTeammembers()}finally{t.isSendingInvite=!1}}else t.presentToastMessage(t.translationObject.BitteAlleFelderAusfuellen||"Bitte alle Felder ausf\xfcllen")})()}handleInviteAndClose(){var t=this;return(0,g.Z)(function*(){const n=(t.emailInput||"").trim();if(!n)return void t.presentToastMessage(t.translationObject.BitteAlleFelderAusfuellen||"Bitte alle Felder ausf\xfcllen");if(t.isSendingInvite)return;const i=n.split("@")[0]||n,o=(t.inviteFirstname||"").trim()||i,r=(t.inviteLastname||"").trim(),d=null!==t.inviteRole?t.inviteRole:t.availableRoles&&t.availableRoles.length>0?t.availableRoles[0].id:null;t.isSendingInvite=!0;try{yield t.inviteTeammember(`${o} ${r}`.trim(),d,o,r),yield t.getTeammembers()}finally{t.isSendingInvite=!1}t.closeInvitePanel()})()}copyInviteLink(){var t=this;return(0,g.Z)(function*(){if(t.lastInviteLink)try{if(navigator.clipboard&&window.isSecureContext)yield navigator.clipboard.writeText(t.lastInviteLink);else{const n=document.createElement("textarea");n.value=t.lastInviteLink,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}t.linkCopied=!0,setTimeout(()=>{t.linkCopied=!1},2e3)}catch(n){console.error("copyInviteLink failed",n),t.presentToastMessage(t.translationObject.FehlerKopieren||"Kopieren fehlgeschlagen")}})()}inviteTeammember(){var t=this;return(0,g.Z)(function*(n="",i=null,o="",r=""){try{let d="";if(t.isAgentsEnterprise){if(!t.isEnterpriseAdmin)return void(yield(yield t.toastController.create({message:"Nur der Account-Administrator kann Benutzer einladen.",duration:3e3,position:"top",color:"warning"})).present());if(t.remainingLicenses<=0)return void(yield(yield t.toastController.create({message:"Keine verf\xfcgbaren Lizenzen. Bitte erwerben Sie zus\xe4tzliche Lizenzen.",duration:3e3,position:"top",color:"danger"})).present());d=t.generateInvitationId(),t.currentInvitationId=d,yield t.storePendingInvitation(d,t.emailInput,n)}const l=yield t.teammemberRepo.invite(t.emailInput,n,i,o,r);t.customerId=l.customerId,t.teammemberId=l.teammemberId;const m=l.inviteToken,_=window.location.origin;let b="";t.isAgentsEnterprise&&t.isEnterpriseAdmin&&t.accountId?b=`${_}/signup?referralId=${t.accountId}&accountId=${t.accountId}&agentEnterprise=true&invitationId=${d}&email=${encodeURIComponent(t.emailInput)}`:(b=`${_}/customer/${t.customerId}/teammember/${t.teammemberId}/invite/${m}`,t.lastInviteLink=`${t.INVITE_LINK_BASE}/customer/${t.customerId}/teammember/${t.teammemberId}/invite/${m}`);const E={customerId:t.customerId,teammemberId:t.teammemberId,inviteToken:m,email:t.emailInput.trim()},w=new T.WM({"Content-Type":"application/json","x-api-key":"as8das890da90sd890sa"});t.http.post(M.d.sendTeammemberInviteMail,E,{headers:w}).subscribe(x=>{x&&x.success?(console.log("Email sent successfully:",x.message),t.presentToastMessage("Einladung erfolgreich versendet")):(console.error("Unexpected response format:",x),t.presentToastMessage("Fehler beim Versenden der Einladung"))},x=>{console.error("Error sending invite mail:",x);const O=x?.error?.error||x?.message||"Unbekannter Fehler";console.error("Error details:",O),t.presentToastMessage(`Fehler beim Versenden der Einladung: ${O}`)})}catch(d){console.error("Fehler beim Einladen des Teammitglieds:",d),t.presentToastMessage("Fehler beim Einladen des Benutzers")}}).apply(this,arguments)}getTeammembers(){var t=this;return(0,g.Z)(function*(){t.teammembers=[];const n=t.customerDB.returnCurrentPlan(),i=n&&n.includes("agents-enterprise");try{if(i&&t.accountId){const o=window.firebase;o&&(yield o.firestore().collection(`accounts/${t.accountId}
1/users`).get()).forEach(l=>{if(l.id!==t.accountId){const m=l.data();if(!t.isTeammemberSet(m)){const _=t.normalizeLocations(m.locationNames,m.locationName);t.teammembers.push({email:m.email||"",name:m.name||m.userName||"",menu:m.menu||[],status:m.status||"active",locationName:_[0]||"",locationNames:_,role:m.role||"user"})}}})}else{const o=yield t.teammemberRepo.listAll();for(const r of o)if(!t.isTeammemberSet(r)){const d=t.normalizeLocations(r.locationNames,r.locationName);t.teammembers.push({email:r.email,name:r.name,menu:r.menu||[],status:Number(r.status??4),locationName:d[0]||"",locationNames:d,role:String(r.status??"")})}}console.log("Teammembers loaded: ",t.teammembers),t.isEnterpriseAdmin&&(t.usedLicenses=t.teammembers.length+1,t.remainingLicenses=Math.max(0,t.totalLicenses-t.usedLicenses))}catch(o){console.error("Fehler beim Laden der Teammitglieder:",o)}})()}isTeammemberSet(t){return this.teammembers.some(n=>n.email===t.email)}requestDeleteTeammember(t){if(!this.isSuperAdmin)return void this.presentToastMessage(this.translationObject.NurSuperAdminLoeschen||"Nur ein SuperAdmin kann Benutzer l\xf6schen.");if(this.isAgentsEnterprise&&!this.isEnterpriseAdmin)return void this.presentToastMessage(this.translationObject.NurAdminLoeschen||"Nur der Account-Administrator kann Benutzer entfernen.");const n=(this.currentUser?.email||"").toLowerCase();n&&t.email&&t.email.toLowerCase()===n?this.presentToastMessage(this.translationObject.EigenerAccountNichtLoeschbar||"Du kannst deinen eigenen Account nicht l\xf6schen."):(this.teammemberToDelete=t,this.deleteConfirmText="",this.isDeleteModalOpen=!0)}closeDeleteModal(){this.isDeletingTeammember||(this.isDeleteModalOpen=!1,this.teammemberToDelete=null,this.deleteConfirmText="")}get isDeleteConfirmValid(){const t=(this.deleteConfirmText||"").trim().toLowerCase();return!!t&&this.deleteConfirmKeywords.includes(t)}confirmDeleteTeammember(){var t=this;return(0,g.Z)(function*(){if(!t.isDeleteConfirmValid||!t.teammemberToDelete)return;t.isDeletingTeammember=!0;const n={...t.teammemberToDelete};try{yield t.deleteTeammember(t.teammemberToDelete);const i=t.availableRoles.find(o=>String(o.id)===String(n.status))?.name||String(n.status);t.auditLogService.logChange("team-management","delete",[{field:"email",oldValue:n.email,newValue:null},{field:"name",oldValue:n.name,newValue:null},{field:"role",oldValue:i,newValue:null},{field:"locationNames",oldValue:n.locationNames||null,newValue:null}],n.email),t.isDeleteModalOpen=!1,t.teammemberToDelete=null,t.deleteConfirmText=""}finally{t.isDeletingTeammember=!1}})()}deleteTeammember(t){var n=this;return(0,g.Z)(function*(){if(n.isAgentsEnterprise){if(!n.isEnterpriseAdmin)return void(yield(yield n.toastController.create({message:"Nur der Account-Administrator kann Benutzer entfernen.",duration:3e3,position:"top",color:"warning"})).present());try{const i=window.firebase;if(i&&n.accountId){const r=yield i.firestore().collection(`accounts/${n.accountId}/users`).where("email","==",t.email).limit(1).get();if(!r.empty){yield r.docs[0].ref.delete();const d=n.teammembers.indexOf(t);d>-1&&n.teammembers.splice(d,1),n.usedLicenses=n.teammembers.length+1,n.remainingLicenses=Math.max(0,n.totalLicenses-n.usedLicenses),yield(yield n.toastController.create({message:"Benutzer erfolgreich entfernt.",duration:2e3,position:"top",color:"success"})).present()}}}catch(i){console.error("Fehler beim L\xf6schen des Teammitglieds:",i),yield(yield n.toastController.create({message:"Fehler beim Entfernen des Benutzers.",duration:3e3,position:"top",color:"danger"})).present()}}else try{yield n.teammemberRepo.delete(t.email);const i=n.teammembers.indexOf(t);i>-1&&n.teammembers.splice(i,1),n.presentToastMessage(n.translationObject.TeammitgliedGeloescht||"Benutzer erfolgreich entfernt.")}catch(i){console.error("Fehler beim L\xf6schen des Teammitglieds:",i),n.presentToastMessage(n.translationObject.FehlerLoeschen||"Fehler beim Entfernen des Benutzers.")}})()}generateInvitationId(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}storePendingInvitation(t,n){var i=this;return(0,g.Z)(function*(o,r,d=""){try{const l=window.firebase;if(!l)return void console.error("Firebase is not available");const m=l.firestore(),_=i.authService.returnUserId();yield m.collection("pendingInvitations").doc(o).set({adminUid:_,email:r,name:d||"",createdAt:l.firestore.FieldValue.serverTimestamp(),status:"pending",type:"agent-enterprise"}),console.log("Pending invitation stored:",o)}catch(l){console.error("Error storing pending invitation:",l)}}).apply(this,arguments)}backToSettings(){this.router.navigateByUrl("/settings")}loadLocations(){this.brandingRepo.load().then(t=>{t.standorte.forEach(i=>
1{this.locations.push({name:i.name})})})}getAvailableRoles(){const t=(0,u.s)(this.currentUser?.email);if(!(t||this.currentUser&&this.currentUser.status))return[];if(this.rightsForMandanten=!1,console.log("Current user role: ",this.currentUser),t)this.rightsForMandanten=!0;else{if("admin"!==this.currentUser.status&&"Niederlassungsleiter"!==this.currentUser.status)return[];this.rightsForMandanten=!1,this.availableRoles=this.availableRoles.filter(n=>5!==n.id)}}updateTeammember(t,n,i){var o=this;return(0,g.Z)(function*(){console.log("Update teammember: ",t,n,i);let r=null;"status"===i?r=yield o.teammemberRepo.updateStatus(t,n):"locationName"===i||"locationNames"===i?r=yield o.teammemberRepo.updateLocation(t,n):"name"===i&&(r=yield o.teammemberRepo.updateName(t,n)),console.log("Update result: ",r)})()}toggleTeamAuditPanel(){this.showTeamAuditPanel=!this.showTeamAuditPanel}closeTeamAuditPanel(){this.showTeamAuditPanel=!1}}return a.\u0275fac=function(t){return new(t||a)(e.Y36(R.F0),e.Y36(T.eN),e.Y36(P.E),e.Y36(v.e),e.Y36(I.yF),e.Y36(I.HT),e.Y36(f.H),e.Y36(h.N),e.Y36(Z.w),e.Y36(A.Z))},a.\u0275cmp=e.Xpm({type:a,selectors:[["app-team-management"]],decls:47,vars:32,consts:[["data-testid","team-management-content"],["class","tm-picker__backdrop",3,"click",4,"ngIf"],["class","tm-picker__panel tm-location-picker__panel--fixed",3,"top","left","click",4,"ngIf"],["class","tm-picker__panel tm-role-picker__panel--fixed",3,"top","left","click",4,"ngIf"],["class","tm-modal__backdrop",3,"click",4,"ngIf"],["class","tm-modal tm-modal--danger",3,"click",4,"ngIf"],[1,"tm-page"],["class","tm-banner tm-banner--info",4,"ngIf"],["class","tm-banner tm-banner--danger",4,"ngIf"],["class","tm-banner tm-banner--warning",4,"ngIf"],[1,"page-header",2,"margin-bottom","24px"],[1,"header-title"],["class","action-items",4,"ngIf"],[1,"search-bar-container"],["data-testid","team-management-search-input",3,"ngModel","placeholder","ngModelChange"],[1,"tm-table-container",3,"scroll"],[1,"tm-table"],[1,"tm-table__col-name"],[1,"tm-table__col-location"],[1,"tm-table__col-role"],[1,"tm-table__col-actions"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"tm-footer"],[1,"mona-sidebar-backdrop",3,"click"],[1,"invite-panel"],[1,"mona-sidebar-header"],[1,"mona-close-icon",3,"click"],["name","close"],[1,"mona-sidebar-title"],["class","panel-content",3,"ngSubmit",4,"ngIf"],["class","panel-content",4,"ngIf"],[1,"mona-sidebar-footer"],["type","submit","class","mona-footer-btn primary",3,"disabled","click",4,"ngIf"],["type","button","class","mona-footer-btn primary",3,"click",4,"ngIf"],["pageKey","team-management","groupMode","general","testIdPrefix","team-management",3,"open","fieldLabels","closed"],[1,"tm-picker__backdrop",3,"click"],[1,"tm-picker__panel","tm-location-picker__panel--fixed",3,"click"],[1,"tm-picker__search"],["type","search","autocomplete","off",1,"tm-picker__search-input",3,"ngModel","placeholder","ngModelChange"],[1,"tm-picker__option","tm-picker__option--all"],["type","checkbox",3,"checked","change"],[1,"tm-picker__list"],["class","tm-picker__option",4,"ngFor","ngForOf"],["class","tm-picker__empty",4,"ngIf"],[1,"tm-picker__option"],[1,"tm-picker__empty"],[1,"tm-picker__panel","tm-role-picker__panel--fixed",3,"click"],["type","radio","name","tm-role-picker",3,"checked","change"],[1,"tm-modal__backdrop",3,"click"],[1,"tm-modal","tm-modal--danger",3,"click"],[1,"tm-modal__header"],["type","button","data-testid","team-management-delete-close",1,"tm-modal__close",3,"disabled","click"],["name","close-outline"],[1,"tm-modal__body",3,"ngSubmit"],["deleteForm","ngForm"],[1,"tm-modal__text"],[1,"tm-field"],[1,"tm-field__label"],["type","text","name","deleteConfirmText","placeholder","l\xf6schen","autocomplete","off","required","",1,"tm-field__input",3,"ngModel","disabled","ngModelChange"],[1,"tm-modal__actions"],["type","button",1,"tm-btn","tm-btn--secondary",3,"disabled","click"],["type","submit",1,"tm-btn","tm-btn--danger",3,"disabled"],["name","crescent",4,"ngIf"],["name","trash-outline",4,"ngIf"],["name","crescent"],["name","trash-outline"],[1,"tm-banner","tm-banner--info"],[1,"tm-banner__icon"],["name","business-outline"],[1,"tm-banner__body"],[1,"tm-banner__stats"],[1,"tm-banner__divider"],["title","Account ID kopieren",1,"tm-banner__copy",3,"click"],["name","copy-outline"],[1,"tm-banner","tm-banner--danger"],["name","warning-outline"],[1,"tm-banner","tm-banner--warning"],["name","information-circle-outline"],[1,"action-items"],[1,"action-item",3,"click"],["name","person-add-outline"],["class","action-item","data-testid","team-management-audit-logs-btn",3,"click",4,"ngIf"],["data-testid","team-management-audit-logs-btn",1,"action-item",3,"click"],["name","time-outline"],[1,"tm-member"],[1,"tm-avatar"],[1,"tm-member__info"],["type","text","class","tm-member__name-input","autofocus","",3,"ngModel","ngModelChange","keydown.enter","keydown.escape","blur",4,"ngIf"],["class","tm-member__name",3,"is-editable","t
1itle","click",4,"ngIf"],[1,"tm-member__email"],["type","button",1,"tm-inline-select","tm-picker__trigger",3,"disabled","title","click"],["class","tm-icon-btn tm-icon-btn--danger",3,"disabled","title","click",4,"ngIf"],["type","text","autofocus","",1,"tm-member__name-input",3,"ngModel","ngModelChange","keydown.enter","keydown.escape","blur"],["nameInput",""],[1,"tm-member__name",3,"title","click"],[1,"tm-icon-btn","tm-icon-btn--danger",3,"disabled","title","click"],["colspan","4",1,"tm-table__empty"],["name","people-outline"],[1,"panel-content",3,"ngSubmit"],["inviteForm","ngForm"],[1,"invite-form"],["name","inviteFirstname","type","text","required","",1,"mona-input","invite-input",3,"ngModel","placeholder","disabled","ngModelChange"],["name","inviteLastname","type","text","required","",1,"mona-input","invite-input",3,"ngModel","placeholder","disabled","ngModelChange"],["name","inviteEmail","placeholder","[email protected]","type","email","inputmode","email","autocomplete","email","required","",1,"mona-input","invite-input",3,"ngModel","disabled","ngModelChange"],[1,"tm-invite-field"],["type","button",1,"tm-inline-select","tm-picker__trigger",3,"disabled","click"],["class","tm-picker__backdrop tm-picker__backdrop--inline",3,"click",4,"ngIf"],["class","tm-picker__panel tm-picker__panel--inline",3,"click",4,"ngIf"],[1,"tm-picker__backdrop","tm-picker__backdrop--inline",3,"click"],[1,"tm-picker__panel","tm-picker__panel--inline",3,"click"],["type","radio","name","invite-role-picker",3,"checked","change"],["type","search","name","inviteLocationSearch","autocomplete","off",1,"tm-picker__search-input",3,"ngModel","placeholder","ngModelChange"],[1,"panel-content"],[1,"invite-description"],[1,"invite-link-container"],["readonly","",1,"mona-input","invite-input",3,"value","focus"],["type","button",1,"invite-link-container__copy",3,"title","click"],[3,"name"],["type","submit",1,"mona-footer-btn","primary",3,"disabled","click"],["type","button",1,"mona-footer-btn","primary",3,"click"]],template:function(t,n){1&t&&(e.TgZ(0,"ion-content",0),e.YNc(1,q,1,0,"div",1),e.YNc(2,j,10,10,"div",2),e.YNc(3,z,3,5,"div",3),e.YNc(4,Q,1,0,"div",4),e.YNc(5,V,27,15,"div",5),e.TgZ(6,"div",6),e.YNc(7,Y,22,14,"div",7),e.YNc(8,$,4,1,"div",8),e.YNc(9,W,7,2,"div",9),e.TgZ(10,"div",10),e.TgZ(11,"h2",11),e._uU(12),e.qZA(),e.YNc(13,X,6,2,"div",12),e.qZA(),e.TgZ(14,"div",13),e.TgZ(15,"ion-searchbar",14),e.NdJ("ngModelChange",function(o){return n.searchQuery=o}),e.qZA(),e.qZA(),e.TgZ(16,"div",15),e.NdJ("scroll",function(){return n.closeLocationDropdown(),n.closeRoleDropdown()}),e.TgZ(17,"table",16),e.TgZ(18,"thead"),e.TgZ(19,"tr"),e.TgZ(20,"th",17),e._uU(21),e.qZA(),e.TgZ(22,"th",18),e._uU(23),e.qZA(),e.TgZ(24,"th",19),e._uU(25),e.qZA(),e._UZ(26,"th",20),e.qZA(),e.qZA(),e.TgZ(27,"tbody"),e.YNc(28,ie,18,15,"tr",21),e.YNc(29,oe,5,1,"tr",22),e.qZA(),e.qZA(),e.qZA(),e.TgZ(30,"div",23),e.TgZ(31,"span"),e._uU(32),e.qZA(),e.qZA(),e.TgZ(33,"div",24),e.NdJ("click",function(){return n.closeInvitePanel()}),e.qZA(),e.TgZ(34,"div",25),e.TgZ(35,"div",26),e.TgZ(36,"div",27),e.NdJ("click",function(){return n.closeInvitePanel()}),e._UZ(37,"ion-icon",28),e.qZA(),e.TgZ(38,"div",29),e.TgZ(39,"h2"),e._uU(40),e.qZA(),e.qZA(),e.qZA(),e.YNc(41,pe,16,20,"form",30),e.YNc(42,ge,7,5,"div",31),e.TgZ(43,"div",32),e.YNc(44,_e,3,2,"button",33),e.YNc(45,ue,2,1,"button",34),e.qZA(),e.qZA(),e.qZA(),e.TgZ(46,"app-audit-log-side-panel",35),e.NdJ("closed",function(){return n.closeTeamAuditPanel()}),e.qZA(),e.qZA()),2&t&&(e.xp6(1),e.Q6J("ngIf",n.locationDropdownOpenFor||n.roleDropdownOpenFor),e.xp6(1),e.Q6J("ngIf",n.locationDropdownOpenFor&&n.currentDropdownTeammember),e.xp6(1),e.Q6J("ngIf",n.roleDropdownOpenFor&&n.currentRoleDropdownTeammember),e.xp6(1),e.Q6J("ngIf",n.isDeleteModalOpen),e.xp6(1),e.Q6J("ngIf",n.isDeleteModalOpen&&n.teammemberToDelete),e.xp6(2),e.Q6J("ngIf",n.isEnterpriseAdmin),e.xp6(1),e.Q6J("ngIf",0===n.remainingLicenses&&n.isEnterpriseAdmin),e.xp6(1),e.Q6J("ngIf",!n.isEnterpriseAdmin&&!n.isSuperAdmin&&n.isAgentsEnterprise),e.xp6(3),e.Oqu(n.translationObject.Teamverwaltung||"Benutzer"),e.xp6(1),e.Q6J("ngIf",n.canInvite&&(!n.isAgentsEnterprise||n.isEnterpriseAdmin||n.isSuperAdmin)),e.xp6(2),e.Q6J("ngModel",n.searchQuery)("placeholder",n.translationObject.Suchen||"Suchen..."),e.xp6(6),e.Oqu(n.translationObject.Name||"Name"),e.xp6(2),e.Oqu(n.translationObject.Standort||"Standort"),e.xp6(2),e.Oqu(n.translationObject.Rolle||"Rolle"),e.xp6(3),e.Q6J("ngForOf",n.filteredTeammembers),e.xp6(1),e.Q6J("ngIf",0===n.filteredTeammembers.length),e.xp6(3),e.HOy("",n.filteredTeammembers.length," ",n.translationObject.von||"von"," ",n.teammembers.length," ",n.translationObject.Teammitglieder||"Benutzer",""),e.xp6(1),e.ekj("open",n.showInvitePanel),e.xp6(1),e.ekj("open",n.showInvitePanel),e.xp6(6),e.Oqu(n.translationObject.TeammitgliedEinladen||"Benutzer einladen"),e.xp6(1),e.Q6J("ngIf",!n.lastInviteLink),e.xp6(1),e.Q6J("ngIf",n.lastInviteLink),e.xp6(2),e.Q6J("ngIf",!n.lastInviteLink),e.xp6(1),e.Q6J("ngIf",n.lastInviteLink),e.xp6(1),e.Q6J("open",n.showTeamAuditPanel)("fieldLabels",n.teamFieldLabels))},directives:[I.W2,S.O5,I.VI,I.j9,L.JJ,L.On,S.sg,I.gu,F.f,L.Fj,L._Y,L.JL,L.F,L.Q7,I.PQ,I.pK],pipes:[S.OU],styles:["ion-content[_ngcontent-%COMP%]{--background: white}.tm-page[_ngcontent-%COMP%]{max-width:1280px;margin:0 auto;padding:24px 24px 32px}@media (min-width: 1024px){.tm-page[_ngcontent-%COMP%]{padding:48px 48px 40px}}.tm-banner[_ngcontent-%COMP%]{display:flex;align-items:flex-start;grid-gap:12px;gap:12px;padding:14px 18px;border-radius:12px;margin-bottom:16px;font-size:14px;line-height:1.5}.tm-banner[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:20px;flex-shrink:0;margin-top:2px}.tm-banner[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:4px 0 0;font-size:13px}.tm-banner--info[_ngcontent-%COMP%]{background:#f0f4ff;border:1px solid #c7d6f7;color:#1e3a6e}.tm-banner--warning[_ngcontent-%COMP%]{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.tm-banner--danger[_ngcontent-%COMP%]{background:#fff5f5;border:1px solid #fecaca;color:#991b1b}.tm-banner__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:rgba(37,99,235,.1);flex-shrink:0}.tm-banner__icon[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:18px;color:#2563eb}.tm-banner__body[_ngcontent-%COMP%]{flex:1;min-width:0}.tm-banner__body[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;font-weight:600;margin-bottom:2px}.tm-banner__stats[_ngcontent-%COMP%]{display:flex;grid-gap:6px;gap:6px;flex-wrap:wrap;font-size:13px;color:#4b6a9b}.tm-banner__divider[_ngcontent-%COMP%]{opacity:.35}.tm-banner__warn[_ngcontent-%COMP%]{color:#f59e0b;font-weight:600}.tm-banner__copy[_ngcontent-%COMP%]{display:inline-flex;align-items:center;grid-gap:6px;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid #d1d5db;background:white;font-size:12px;color:#6b7280;cursor:pointer;transition:all .15s;white-space:nowrap}.tm-banner__copy[_ngcontent-%COMP%]:hover{border-color:#2563eb;
1color:#2563eb}.tm-banner__copy[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:14px}.tm-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;grid-gap:16px;gap:16px;margin-bottom:24px;flex-wrap:wrap}.tm-header__text[_ngcontent-%COMP%]{flex:1;min-width:0}.tm-header__text[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:18px;font-weight:600;margin:0 0 4px;color:#111827}.tm-header__text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.tm-header__text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-weight:600;color:#374151}.tm-header__actions[_ngcontent-%COMP%]{display:flex;align-items:center;grid-gap:8px;gap:8px;flex-shrink:0}.tm-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;grid-gap:6px;gap:6px;padding:8px 16px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .15s;white-space:nowrap}.tm-btn[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:16px}.tm-btn--primary[_ngcontent-%COMP%]{background:#111827;color:#fff}.tm-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:#1f2937}.tm-btn--primary[_ngcontent-%COMP%]:active:not(:disabled){background:#374151}.tm-btn--secondary[_ngcontent-%COMP%]{background:#fff;color:#374151;border:1px solid #e5e7eb}.tm-btn--secondary[_ngcontent-%COMP%]:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.tm-btn--danger[_ngcontent-%COMP%]{background:#dc2626;color:#fff}.tm-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){background:#b91c1c}.tm-btn--danger[_ngcontent-%COMP%]:active:not(:disabled){background:#991b1b}.tm-btn[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.tm-filter[_ngcontent-%COMP%]{height:36px;padding:0 32px 0 12px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:inherit;background:#fff;color:#111827;cursor:pointer;outline:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236b7280' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.25a.74.74 0 0 1-.53-.22l-5-5a.75.75 0 1 1 1.06-1.06L12 13.44l4.47-4.47a.75.75 0 0 1 1.06 1.06l-5 5a.74.74 0 0 1-.53.22z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;min-width:140px;transition:border-color .15s}.tm-filter[_ngcontent-%COMP%]:hover{border-color:#d1d5db}.tm-filter[_ngcontent-%COMP%]:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f114}@media (max-width: 640px){.tm-filter[_ngcontent-%COMP%]{width:100%}}.tm-table-container[_ngcontent-%COMP%]{border:1px solid #e5e7eb;border-radius:12px;height:560px;max-height:calc(100vh - 320px);min-height:320px;overflow-y:auto;overflow-x:hidden;background:#fff}.tm-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.tm-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%]{position:sticky;top:0;z-index:2;background:#f9fafb}.tm-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding:10px 12px;text-align:left;font-weight:500;font-size:13px;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap}.tm-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:10px 12px;vertical-align:middle;border-bottom:1px solid #f3f4f6;color:#374151}.tm-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]{transition:background-color .1s}.tm-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background:#f9fafb}.tm-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%]{border-bottom:none}.tm-table__col-name[_ngcontent-%COMP%]{width:40%}.tm-table__col-location[_ngcontent-%COMP%]{width:22%}.tm-table__col-role[_ngcontent-%COMP%]{width:22%}.tm-table__col-actions[_ngcontent-%COMP%]{width:16%;text-align:right;padding-right:16px!important}.tm-table__empty[_ngcontent-%COMP%]{text-align:center;padding:48px 16px!important;color:#9ca3af}.tm-table__empty[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{display:block;font-size:40px;margin:0 auto 12px;color:#d1d5db}.tm-table__empty[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px}.tm-member[_ngcontent-%COMP%]{display:flex;align-items:center;grid-gap:12px;gap:12px;min-width:0}.tm-member__info[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0}.tm-member__name[_ngcontent-%COMP%]{font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tm-member__name.is-editable[_ngcontent-%COMP%]{cursor:text;border-radius:4px;padding:1px 4px;margin-left:-4px;transition:background-color .15s}.tm-member__name.is-editable[_ngcontent-%COMP%]:hover{background:#f3f4f6}.tm-member__name-input[_ngcontent-%COMP%]{font-weight:500;font-size:14px;color:#111827;font-family:inherit;width:100%;max-width:220px;height:24px;padding:1px 6px;margin-left:-4px;border:1px solid #6366f1;border-radius:4px;background:#fff;outline:none;box-shadow:0 0 0 3px #6366f11f}.tm-member__email[_ngcontent-%COMP%]{font-size:12px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-2px}
1.tm-avatar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:12px;font-weight:600;flex-shrink:0;text-transform:uppercase;-webkit-user-select:none;user-select:none}.tm-inline-select[_ngcontent-%COMP%]{display:inline-flex;align-items:center;width:100%;height:32px;padding:0 28px 0 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-family:inherit;background:#fff;color:#374151;cursor:pointer;outline:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%239ca3af' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.25a.74.74 0 0 1-.53-.22l-5-5a.75.75 0 1 1 1.06-1.06L12 13.44l4.47-4.47a.75.75 0 0 1 1.06 1.06l-5 5a.74.74 0 0 1-.53.22z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 8px center;background-size:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .15s}.tm-inline-select[_ngcontent-%COMP%]:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.tm-inline-select.is-open[_ngcontent-%COMP%], .tm-inline-select[_ngcontent-%COMP%]:focus{border-color:#6366f1;background-color:#fff;box-shadow:0 0 0 3px #6366f114}.tm-inline-select[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.tm-picker__backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:transparent}.tm-picker__panel[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1001;width:260px;max-height:320px;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px #1118271f;overflow:hidden}.tm-picker__search[_ngcontent-%COMP%]{padding:8px;border-bottom:1px solid #f3f4f6}.tm-picker__search-input[_ngcontent-%COMP%]{width:100%;height:32px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;font-family:inherit;color:#374151;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.tm-picker__search-input[_ngcontent-%COMP%]:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f114}.tm-picker__list[_ngcontent-%COMP%]{overflow-y:auto;flex:1;padding:4px 0}.tm-picker__option[_ngcontent-%COMP%]{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:6px 12px;font-size:13px;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;border:none;background:transparent;text-align:left;font-family:inherit}.tm-picker__option[_ngcontent-%COMP%]:hover{background:#f9fafb}.tm-picker__option[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%], .tm-picker__option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{width:14px;height:14px;accent-color:#6366f1;cursor:pointer;flex-shrink:0}.tm-picker__option[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.tm-picker__option--all[_ngcontent-%COMP%]{font-weight:500;color:#111827;border-bottom:1px solid #f3f4f6;padding:8px 12px}.tm-picker__empty[_ngcontent-%COMP%]{padding:12px;font-size:13px;color:#9ca3af;text-align:center}.tm-icon-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;cursor:pointer;transition:all .15s;color:#9ca3af}.tm-icon-btn[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:16px}.tm-icon-btn[_ngcontent-%COMP%]:hover{background:#f3f4f6;color:#6b7280}.tm-icon-btn--danger[_ngcontent-%COMP%]:hover{background:#fef2f2;color:#ef4444}.tm-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;padding:12px 4px 0;font-size:13px;color:#9ca3af}.tm-modal[_ngcontent-%COMP%]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,100vw - 32px);max-height:calc(100vh - 32px);background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 24px 48px #0f172a2e;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.tm-modal--danger[_ngcontent-%COMP%] .tm-modal__header[_ngcontent-%COMP%] h4[_ng
1content-%COMP%]{color:#b91c1c}.tm-modal__text[_ngcontent-%COMP%]{margin:0;font-size:14px;line-height:1.5;color:#475569}.tm-modal__text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#0f172a}.tm-modal__backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1000}.tm-modal__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f1f5f9}.tm-modal__header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0;font-size:16px;font-weight:600;color:#0f172a}.tm-modal__close[_ngcontent-%COMP%]{background:transparent;border:none;cursor:pointer;color:#64748b;font-size:22px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}.tm-modal__close[_ngcontent-%COMP%]:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.tm-modal__close[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.tm-modal__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;grid-gap:14px;gap:14px;padding:20px;overflow-y:auto}.tm-modal__actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;grid-gap:10px;gap:10px;margin-top:6px}.tm-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.tm-field__label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:#475569}.tm-field__input[_ngcontent-%COMP%]{height:40px;padding:0 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;color:#0f172a;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.tm-field__input[_ngcontent-%COMP%]::placeholder{color:#94a3b8}.tm-field__input[_ngcontent-%COMP%]:hover:not(:disabled){border-color:#d1d5db}.tm-field__input[_ngcontent-%COMP%]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.tm-field__input[_ngcontent-%COMP%]:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}select.tm-field__input[_ngcontent-%COMP%]{padding-right:32px;cursor:pointer}.tm-invite-link[_ngcontent-%COMP%]{display:flex;grid-gap:8px;gap:8px;align-items:stretch;margin-top:8px}.tm-invite-link__input[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;padding:10px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#f9fafb;color:#111827;font-family:monospace}.tm-invite-link__input[_ngcontent-%COMP%]:focus{outline:none;border-color:#3b82f6;background:#ffffff}.tm-invite-link__copy[_ngcontent-%COMP%]{flex:0 0 auto;white-space:nowrap}.invite-panel[_ngcontent-%COMP%]{position:fixed;top:0;right:0;width:450px;height:100vh;background:white;z-index:1001;display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000026;transform:translate(100%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s}.invite-panel.open[_ngcontent-%COMP%]{transform:translate(0);visibility:visible;transition:transform .3s ease,visibility 0s linear 0s}.invite-panel[_ngcontent-%COMP%] .invite-link-container[_ngcontent-%COMP%]{display:flex;align-items:stretch;margin-top:8px;border:2px solid #d0d0d0;border-radius:10px;overflow:hidden;background:#fff;transition:border-color .15s}.invite-panel[_ngcontent-%COMP%] .invite-link-container[_ngcontent-%COMP%]:focus-within{border-color:var(--mona-primary)}.invite-panel[_ngcontent-%COMP%] .invite-link-container[_ngcontent-%COMP%] ion-input.mona-input.invite-input[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;border:none;border-radius:0;height:36px;min-height:36px;max-height:36px}.invite-panel[_ngcontent-%COMP%] .invite-link-container__copy[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:36px;padding:0;border:none;border-left:1px solid #e5e7eb;border-radius:0;background:#fff;color:#374151;cursor:pointer;transition:background-color .15s,color .15s}.invite-panel[_ngcontent-%COMP%] .invite-link-container__copy[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:18px}.invite-panel[_ngcontent-%COMP%] .invite-link-container__copy[_ngcontent-%COMP%]:hover:not(:disabled){background:#f3f4f6;color:#111827}.invite-panel[_ngcontent-%COMP%] .invite-link-container__copy[_ngcontent-%COMP%]:active:not(:disabled){background:#e5e7eb}.invite-panel[_ngcontent-%COMP%] .panel-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:20px}.invite-panel[_ngcontent-%COMP%] .panel-content[_ngcontent-%COMP%] .invite-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.invite-panel[_ngcontent-%COMP%] .panel-content[_ngcontent-%COMP%] .invite-form[_ngcontent-%COMP%] ion-input.mona-input.invite-input[_ngcontent-%COMP%]{--padding-start: 16px;--padding-end: 16px}.invite-panel[_ngcontent-%COMP%] .tm-invite-field[_ngcontent-%COMP%]{position:relative}.invite-panel[_ngcontent-%COMP%] .tm-invite-field[_ngcontent-%COMP%] .tm-inline-select[_ngcontent-%COMP%]{height:40px;font-size:14px}.invite-panel[_ngcontent-%COMP%] .tm-picker__panel--inline[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;width:100%;z-index:1002}
1.invite-panel[_ngcontent-%COMP%] .tm-picker__backdrop--inline[_ngcontent-%COMP%]{position:fixed;inset:0;background:transparent;z-index:1001}@media (max-width: 768px){.tm-table[_ngcontent-%COMP%]{table-layout:auto}.tm-table__col-name[_ngcontent-%COMP%]{width:auto}.tm-table__col-location[_ngcontent-%COMP%]{width:auto}.tm-table__col-role[_ngcontent-%COMP%]{width:auto}.tm-table__col-actions[_ngcontent-%COMP%]{width:60px}.tm-header[_ngcontent-%COMP%]{flex-direction:column;grid-gap:12px;gap:12px}.invite-panel[_ngcontent-%COMP%]{width:100%}} .toast-centered{position:fixed!important;left:50%!important;transform:translate(-50%)!important;max-width:600px!important;width:auto!important;min-width:400px!important} .toast-class .toast-wrapper{margin:0 auto}"]}),a})()}}]);
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.