1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[2177],{99703:(L,v,o)=>{o.d(v,{x:()=>g});var a=o(54438);let g=(()=>{class e{renderer;hostElement;_isActive=!1;_selected$=new a.bkB;_deselect$=new a.bkB;_identifier;constructor(r,l){this.renderer=r,this.hostElement=l}onClick(){this.toggleActiveState()}set identifier(r){this._identifier=r}get selected$(){return this._selected$}get deselect$(){return this._deselect$}resetState(){this._isActive=!1,this.renderer.removeClass(this.hostElement.nativeElement,"-active")}activate(){this._isActive||(this._isActive=!0,this.renderer.addClass(this.hostElement.nativeElement,"-active"),this._selected$.emit(this._identifier))}deActivate(){this._isActive&&(this._isActive=!1,this.renderer.removeClass(this.hostElement.nativeElement,"-active"),this._deselect$.emit(this._identifier))}toggleActiveState(){this._isActive?(this._isActive=!1,this.renderer.removeClass(this.hostElement.nativeElement,"-active"),this._deselect$.emit(this._identifier)):(this._isActive=!0,this.renderer.addClass(this.hostElement.nativeElement,"-active"),this._selected$.emit(this._identifier))}static \u0275fac=function(l){return new(l||e)(a.rXU(a.sFG),a.rXU(a.aKT))};static \u0275dir=a.FsC({type:e,selectors:[["","appAnyButtonSelector",""]],hostBindings:function(l,_){1&l&&a.bIt("click",function(){return _.onClick()})},inputs:{identifier:"identifier"},outputs:{selected$:"selected$",deselect$:"deselect$"},standalone:!1})}return e})()},76540:(L,v,o)=>{o.d(v,{p:()=>g});var a=o(54438);let g=(()=>{class e{renderer;hostElement;_isActive=!1;_selected$=new a.bkB;_deselect$=new a.bkB;_player;constructor(r,l){this.renderer=r,this.hostElement=l}onClick(){this.toggleActiveState()}set isActive(r){this._isActive=r}set player(r){this._player=r}get deselect$(){return this._deselect$}get selected$(){return this._selected$}resetState(){this._isActive=!1,this.renderer.removeClass(this.hostElement.nativeElement,"-active")}toggleActiveState(){this._isActive?(this._isActive=!1,this.renderer.removeClass(this.hostElement.nativeElement,"-active"),this._deselect$.emit(this._player)):(this._isActive=!0,this.renderer.addClass(this.hostElement.nativeElement,"-active"),this._selected$.emit(this._player))}static \u0275fac=function(l){return new(l||e)(a.rXU(a.sFG),a.rXU(a.aKT))};static \u0275dir=a.FsC({type:e,selectors:[["","appButtonSelector",""]],hostBindings:function(l,_){1&l&&a.bIt("click",function(){return _.onClick()})},inputs:{isActive:"isActive",player:"player"},outputs:{deselect$:"deselect$",selected$:"selected$"},standalone:!1})}return e})()},10009:(L,v,o)=>{o.d(v,{h:()=>c});var a=o(73465),g=o(60177),l=(o(99703),o(76540),o(22470),o(54438));let c=(()=>{class d{static \u0275fac=function(T){return new(T||d)};static \u0275mod=l.$C({type:d});static \u0275inj=l.G2t({imports:[a.bv,g.MD]})}return d})()},22470:(L,v,o)=>{o.d(v,{u:()=>r});var a=o(10467),g=o(54438),e=o(66401),f=function(l){return l.RIGHT_ARROW="ArrowRight",l.LEFT_ARROW="ArrowLeft",l.SPACE=" ",l}(f||{});let r=(()=>{class l{hostElement;logger;renderer;_stepSize=10;_player;constructor(c,d,y){this.hostElement=c,this.logger=d,this.renderer=y}set stepSize(c){this._stepSize=c}keyEventDown(c){var d=this;return(0,a.A)(function*(){return c.key===f.RIGHT_ARROW?(d.logger.debug("GamePvComponent.keyEventDown(), RIGHT_ARROW"),!1):c.key===f.LEFT_ARROW?(d.logger.debug("GamePvComponent.keyEventDown(), LEFT_ARROW"),!1):c.key!==f.SPACE||(d.logger.debug("GamePvComponent.keyEventUp(), SPACE"),!1)})()}ngAfterViewInit(){this._player=this.hostElement.nativeElement,this._player.removeAttribute("controls")}static \u0275fac=function(d){return new(d||l)(g.rXU(g.aKT),g.rXU(e.so),g.rXU(g.sFG))};static \u0275dir=g.FsC({type:l,selectors:[["","appVideoKeyEnhancer",""]],hostBindings:function(d,y){1&d&&g.bIt("keydown",function(T){return y.keyEventDown(T)},!1,g.EBC)},inputs:{stepSize:"stepSize"},standalone:!1})}return l})()},13505:(L,v,o)=>{o.d(v,{U:()=>I});var a=o(73465),g=o(60177),e=o(89417),f=o(78708),r=o(14199),l=o(10009),c=(o(96354),o(54438));o(64357),o(7361),o(95975);let b=(()=>{class m{static \u0275fac=function(E){return new(E||m)};static \u0275mod=c.$C({type:m});static \u0275inj=c.G2t({imports:[a.bv,g.MD]})}return m})();const A=[a.bv,g.MD,e.YN,e.X1,f.MQ,r.h,l.h,b];let I=(()=>{class m{static \u0275fac=function(E){return new(E||m)};static \u0275mod=c.$C({type:m});static \u0275inj=c.G2t({imports:[A,a.bv,g.MD,e.YN,e.X1,f.MQ,r.h,l.h,b]})}return m})()},92177:(L,v,o)=>{o.r(v),o.d(v,{LoginPageModule:()=>V});var a=o(78887),g=o(10467),e=o(54438),f=o(66401),r=o(69957),l=o(12872),_=o(73465),c=o(62161),d=o(99926),y=o(24265),p=o(89417),T=o(60177),k=o(78708),b=o(73955);const A=()=>["/auth/forgot"],I=()=>["/auth/register"];function m(i,C){if(1&i&&(e.j41(0,"span",26),e.nrm(1,"img",27),e.EFF(2),e.k0s()),2&i){const t=e.XpG().item;e.R7$(),e.Y8G("src","assets/i18n/"+t.code+".svg",e.B4B)("alt",t.label),e.R7$(),e.SpI(" ",t.label," ")}}function M(i,C){1&i&&e.DNE(0,m,3,3,"span",25),2&i&&e.Y8G("ngIf",C.item)}function S(i,C){if(1&i&&(e.j41(0,"span",26),e.nrm(1,"img",27),e.EFF(2),e.k0s()),2&i){const t=C.item;e.R7$(),e.Y8G("src","assets/i18n/"+t.code+".svg",e.B4B)("alt",t.label),e.R7$(),e.SpI(" ",t.label," ")}}function E(i,C){1&i&&(e.j41(0,"div",28),e.nrm(1,"ion-icon",29),e.j41(2,"span",30),e.EFF(3),e.nI1(4,"translate"),e.k0s()()),2&i&&(e.R7$(3),e.JRh(e.bMT(4,1,"User (Email) is required!")))}function B(i,C){1&i&&(e.j41(0,"div",28),e.nrm(1,"ion-icon",29),e.j41(2,"span",30),e.EFF(3),e.nI1(4,"translate"),e.k0s()()),2&i&&(e.R7$(3),e.JRh(e.bMT(4,1,"Password is required!")))}function w(i,C){1&i&&e.nrm(0,"span",31)}function j(i,C){1&i&&(e.nrm(0,"ion-icon",32),e.j41(1,"span"),e.EFF(2),e.nI1(3,"translate"),e.k0s()),2&i&&(e.R7$(2),e.JRh(e.bMT(3,1,"Login")))}let U=(()=>{class i{logger;fb;i18nService;_fg;_loginDto$=new e.bkB;_langSelected$=new e.bkB;showPassword=!1;loading=!1;constructor(t,s,n){this.logger=t,this.fb=s,this.i18nService=n}ngOnInit(){this.initForm(this.i18nService.currLang$.value.code)}get fg(){return this._fg}get items(){return this.i18nService.languageSelectorItems}get langSelected$(){return this._langSelected$}get loginDto$(){return this._loginDto$}onButtonClicked(){if(this.loading||!this._fg.valid)return;const t={email:this._fg.controls.userFc.value,password:this._fg.controls.passwordFc.value};this.logger.debug("Login button clicked: ",t),this._loginDto$.emit(t)}onLangSelected(t){this._langSelected$.emit(t)}togglePasswordVisibility(){this.showPassword=!this.showPassword}initForm(t){this._fg=this.fb.group({langFc:[t,p.k0.required],userFc:["",[p.k0.email,p.k0.required]],passwordFc:["",p.k0.required]})}static \u0275fac=function(s){return new(s||i)(e.rXU(f.so),e.rXU(p.ok),e.rXU(d.W))};static \u0275cmp=e.VBU({type:i,selectors:[["app-login-form"]],inputs:{loading:"loading"},outputs:{langSelected$:"langSelected$",loginDto$:"loginDto$"},standalone:!1,decls:53,vars:57,consts:[["loginLabel",""],["novalidate","",1,"auth-form",3,"formGroup"],[1,"auth-form__header"],[1,"auth-form__heading"],[1,"auth-form__subheading"],[1,"auth-form__main"],[1,"auth-form__field"],[1,"auth-form__label"],["formControlName","langFc","bindLabel","label","bindValue","code",1,"custom","auth-form__select",3,"change","items","placeholder","searchable","clearable"],["ng-label-tmp",""],["ng-option-tmp",""],[1,"auth-form__input-wrapper"],["name","mail-outline",1,"auth-form__input-icon"],["type","email","autocapitalize","none","formControlName","userFc",1,"auth-form__input",3,"keyup.enter","placeholder"],["class","global__form-elements-vali
1dator-msg auth-form__error",4,"ngIf"],[1,"auth-form__field-header"],[1,"auth-form__inline-link",3,"routerLink"],["name","lock-closed-outline",1,"auth-form__input-icon"],["formControlName","passwordFc",1,"auth-form__input","auth-form__input--with-toggle",3,"keyup.enter","type","placeholder"],["type","button",1,"auth-form__password-toggle",3,"click"],[3,"name"],["type","button",1,"auth-form__submit",3,"click","disabled"],["class","auth-form__spinner","aria-hidden","true",4,"ngIf","ngIfElse"],[1,"auth-form__footer"],[1,"auth-form__footer-link",3,"routerLink"],["class","flex items-center gap-2",4,"ngIf"],[1,"flex","items-center","gap-2"],[1,"auth-form__lang-flag",3,"src","alt"],[1,"global__form-elements-validator-msg","auth-form__error"],["name","warning-outline",1,"global__icon-text","mr-0.5"],[1,"global__icon-text"],["aria-hidden","true",1,"auth-form__spinner"],["name","log-in-outline"]],template:function(s,n){if(1&s){const u=e.RV6();e.j41(0,"form",1)(1,"div",2)(2,"h2",3),e.EFF(3),e.nI1(4,"translate"),e.k0s(),e.j41(5,"p",4),e.EFF(6),e.nI1(7,"translate"),e.k0s()(),e.j41(8,"div",5)(9,"div",6)(10,"label",7),e.EFF(11),e.nI1(12,"translate"),e.k0s(),e.j41(13,"ng-select",8),e.nI1(14,"translate"),e.bIt("change",function(R){return e.eBV(u),e.Njj(n.onLangSelected(R))}),e.DNE(15,M,1,1,"ng-template",9)(16,S,3,3,"ng-template",10),e.k0s()(),e.j41(17,"div",6)(18,"label",7),e.EFF(19),e.nI1(20,"translate"),e.k0s(),e.j41(21,"div",11),e.nrm(22,"ion-icon",12),e.j41(23,"input",13),e.nI1(24,"translate"),e.bIt("keyup.enter",function(){return e.eBV(u),e.Njj(n.onButtonClicked())}),e.k0s()(),e.DNE(25,E,5,3,"div",14),e.k0s(),e.j41(26,"div",6)(27,"div",15)(28,"label",7),e.EFF(29),e.nI1(30,"translate"),e.k0s(),e.j41(31,"a",16),e.EFF(32),e.nI1(33,"translate"),e.k0s()(),e.j41(34,"div",11),e.nrm(35,"ion-icon",17),e.j41(36,"input",18),e.nI1(37,"translate"),e.bIt("keyup.enter",function(){return e.eBV(u),e.Njj(n.onButtonClicked())}),e.k0s(),e.j41(38,"button",19),e.nI1(39,"translate"),e.bIt("click",function(){return e.eBV(u),e.Njj(n.togglePasswordVisibility())}),e.nrm(40,"ion-icon",20),e.k0s()(),e.DNE(41,B,5,3,"div",14),e.k0s(),e.j41(42,"button",21),e.bIt("click",function(){return e.eBV(u),e.Njj(n.onButtonClicked())}),e.DNE(43,w,1,0,"span",22)(44,j,4,3,"ng-template",null,0,e.C5r),e.k0s(),e.j41(46,"div",23)(47,"span"),e.EFF(48),e.nI1(49,"translate"),e.k0s(),e.j41(50,"a",24),e.EFF(51),e.nI1(52,"translate"),e.k0s()()()()}if(2&s){const u=e.sdS(45);e.Y8G("formGroup",n.fg),e.R7$(3),e.JRh(e.bMT(4,31,"Welcome back")),e.R7$(3),e.JRh(e.bMT(7,33,"Sign in to your account to continue.")),e.R7$(5),e.JRh(e.bMT(12,35,"Language")),e.R7$(2),e.Y8G("items",n.items)("placeholder",e.bMT(14,37,"Language"))("searchable",!1)("clearable",!1),e.R7$(6),e.JRh(e.bMT(20,39,"Email")),e.R7$(2),e.AVh("auth-form__input-wrapper--error",(null==n.fg||null==n.fg.controls.userFc?null:n.fg.controls.userFc.errors)&&(null==n.fg||null==n.fg.controls.userFc?null:n.fg.controls.userFc.dirty)),e.R7$(2),e.Y8G("placeholder",e.bMT(24,41,"[email protected]")),e.R7$(2),e.Y8G("ngIf",(null==n.fg||null==n.fg.controls.userFc?null:n.fg.controls.userFc.errors)&&(null==n.fg||null==n.fg.controls.userFc?null:n.fg.controls.userFc.dirty)),e.R7$(4),e.JRh(e.bMT(30,43,"Password")),e.R7$(2),e.Y8G("routerLink",e.lJ4(55,A)),e.R7$(),e.JRh(e.bMT(33,45,"Forgot your Password")),e.R7$(2),e.AVh("auth-form__input-wrapper--error",(null==n.fg||null==n.fg.controls.passwordFc?null:n.fg.controls.passwordFc.errors)&&(null==n.fg||null==n.fg.controls.passwordFc?null:n.fg.controls.passwordFc.dirty)),e.R7$(2),e.Y8G("type",n.showPassword?"text":"password")("placeholder",e.bMT(37,47,"Enter your password")),e.R7$(2),e.BMQ("aria-label",e.bMT(39,49,n.showPassword?"Hide password":"Show password")),e.R7$(2),e.Y8G("name",n.showPassword?"eye-off-outline":"eye-outline"),e.R7$(),e.Y8G("ngIf",(null==n.fg||null==n.fg.controls.passwordFc?null:n.fg.controls.passwordFc.errors)&&(null==n.fg||null==n.fg.controls.passwordFc?null:n.fg.controls.passwordFc.dirty)),e.R7$(),e.AVh("auth-form__submit--loading",n.loading),e.Y8G("disabled",!n.fg.valid||n.loading),e.R7$(),e.Y8G("ngIf",n.loading)("ngIfElse",u),e.R7$(5),e.JRh(e.bMT(49,51,"New user?")),e.R7$(2),e.Y8G("routerLink",e.lJ4(56,I)),e.R7$(),e.JRh(e.bMT(52,53,"Sign up"))}},dependencies:[a.Wk,_.iq,_.oY,T.bT,p.qT,p.me,p.BC,p.cb,p.j4,p.JD,k.vr,k.Uq,k.ZZ,b.D9],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;align-items:center;flex:1;padding:24px;overflow-y:auto}@media screen and (max-width: 768px){[_nghost-%COMP%]{padding:16px}.auth-form[_ngcontent-%COMP%]{max-width:100%}}"]})}return i})();const $=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,63,62,62,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,63,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],G=[{path:"",component:(()=>{class i{logger;core;nav;userService;i18nService;zone;cdr;constructor(t,s,n,u,h,R,F){this.logger=t,this.core=s,this.nav=n,this.userService=u,this.i18nService=h,this.zone=R,this.cdr=F}ionViewWillEnter(){this.logger.debug("Login page ionViewWillEnter"),this.loading=!1,this.userService.resetLoginState()}ngOnInit(){this.logger.debug("Login page ngOnInit"),this.loading=!1,this.userService.resetLoginState(),this.core.userService.user$.getValue()&&this.core.navigateToUserAllowedPlace()}loading=!1;onLogin(t){var s=this;return(0,g.A)(function*(){if(!s.loading){s.loading=!0;try{yield s.userService.login(t)}finally{s.stopLoading()}}})()}stopLoading(){this.zone.run(()=>{this.loading=!1;try{this.cdr.detectChanges()}catch{}})}onLangSelected(t){this.logger.debug("LoginPage.onLangSelected, selected language",t),this.i18nService.curLangCode=t}static \u0275fac=function(s){return new(s||i)(e.rXU(f.so),e.rXU(r.P),e.rXU(l.q9),e.rXU(c.D),e.rXU(d.W),e.rXU(e.SKi),e.rXU(e.gRc))};static \u0275cmp=e.VBU({type:i,selectors:[["app-login"]],standalone:!1,decls:12,vars:7,consts:[[1,"background"],[1,"login-content"],["src","/assets/login-logo.svg","alt","handball.ai",1,"login-logo-img"],[1,"side-logo-content"],["
1width","96","height","78"],[1,"login-title"],[1,"side-tagline"],[3,"loginDto$","langSelected$","loading"]],template:function(s,n){1&s&&(e.j41(0,"ion-content",0)(1,"div",1),e.nrm(2,"img",2),e.j41(3,"div",3),e.nrm(4,"app-handballai-logo",4),e.j41(5,"h1",5),e.EFF(6),e.nI1(7,"translate"),e.k0s(),e.j41(8,"p",6),e.EFF(9),e.nI1(10,"translate"),e.k0s()(),e.j41(11,"app-login-form",7),e.bIt("loginDto$",function(h){return n.onLogin(h)})("langSelected$",function(h){return n.onLangSelected(h)}),e.k0s()()()),2&s&&(e.R7$(6),e.SpI(" ",e.bMT(7,3,"Lead before play")," "),e.R7$(3),e.SpI(" ",e.bMT(10,5,"The handball intelligence platform built for coaches, scouts and analysts.")," "),e.R7$(2),e.Y8G("loading",n.loading))},dependencies:[_.W9,y.x,U,b.D9],styles:["@media screen and (max-width: 768px){.side-logo-content[_ngcontent-%COMP%]{display:none}}"]})}return i})()},{path:"token/:token",component:(()=>{class i{logger;core;nav;activatedRoute;userService;constructor(t,s,n,u,h){this.logger=t,this.core=s,this.nav=n,this.activatedRoute=u,this.userService=h,this.checkLogin()}b64decode(t){const s=t.length;if(0===s)return t;const n="="===t.charAt(s-1),u=n||s%4>0?1:0,h=4*(Math.floor((s+3)/4)-u);var R=[];for(let P=0;P<h;P+=4){var F=$[t.charCodeAt(P)]<<18|$[t.charCodeAt(P+1)]<<12|$[t.charCodeAt(P+2)]<<6|$[t.charCodeAt(P+3)];R.push(String.fromCharCode(F>>16,F>>8&255,255&F))}return u&&(F=$[t.charCodeAt(h)]<<18|$[t.charCodeAt(h+1)]<<12,R.push(String.fromCharCode(F>>16)),s>h+2&&("="!=t.charAt(h+2)||!n)&&(F|=$[t.charCodeAt(h+2)]<<6,R.push(String.fromCharCode(F>>8&255)))),R.join("")}checkLogin(){var t=this;return(0,g.A)(function*(){console.log("TokenLogin page ngOnInit"),t.logger.debug("TokenLogin page ngOnInit");const s=t.activatedRoute.snapshot.params.token,n=t.activatedRoute.snapshot.queryParams.redirect;if(s){const u=JSON.parse(t.b64decode(s));"accessToken"in u&&"refresherToken"in u?(console.log("Login by token",u),yield t.userService.loginByToken(u),n?t.nav.navigateRoot(n):t.core.navigateToUserAllowedPlace()):console.error("Invalid decodedToken",u,s)}else console.error("No token provided")})()}static \u0275fac=function(s){return new(s||i)(e.rXU(f.so),e.rXU(r.P),e.rXU(l.q9),e.rXU(a.nX),e.rXU(c.D))};static \u0275cmp=e.VBU({type:i,selectors:[["app-token-login"]],standalone:!1,decls:8,vars:0,consts:[[1,"background"],[1,"login-content"],[1,"side-logo-content"],[1,"login-title"],["width","80","height","65"]],template:function(s,n){1&s&&(e.j41(0,"ion-content",0)(1,"div",1)(2,"div",2)(3,"h1",3),e.EFF(4," Lead before play "),e.k0s(),e.nrm(5,"app-handballai-logo",4),e.j41(6,"h5"),e.EFF(7," Redirecting... "),e.k0s()()()())},dependencies:[_.W9,y.x],styles:[".side-logo-content[_ngcontent-%COMP%]{width:100%}h5[_ngcontent-%COMP%]{color:#fff}"]})}return i})()}];let W=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[a.iI.forChild(G),a.iI]})}return i})();var X=o(13505);let V=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=e.$C({type:i});static \u0275inj=e.G2t({imports:[W,X.U,b.h.forChild()]})}return i})()},95975:(L,v,o)=>{o.d(v,{U:()=>f});var a=o(96354),g=o(54438);let f=(()=>{class r{transform(_){return _.pipe((0,a.T)(c=>c.map(d=>(r=>({goals:r.goals,failedShots:r.failedShots,saves:r.saves,postOuts:r.postOuts,goalsReceived:r.goalsReceived,playerId:r.playerId,playerPosition:r.playerPosition,lostBalls:r.lostBalls}))(d))))}static \u0275fac=function(c){return new(c||r)};static \u0275pipe=g.EJ8({name:"overviewStatsTransformer",type:r,pure:!0,standalone:!1})}return r})()}}]);
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.