{ "version": 3, "sources": ["src/app/components/base/base.component.ts"], "sourcesContent": ["import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { IAction } from 'src/app/interfaces/IAction';\r\nimport { IDialogData } from 'src/app/interfaces/IDialogData';\r\nimport { IPigeon } from 'src/app/interfaces/IPigeon';\r\nimport { ApiService } from 'src/app/services/api.service';\r\nimport { AppData } from 'src/app/services/app-data.service';\r\n\r\n@Component({\n selector: 'base-component',\n template: ``,\n standalone: false\n})\r\nexport class BaseComponent implements OnInit, OnDestroy {\r\n\r\n public page?: number = null;\r\n public itemCount?: number = null;\r\n public itemsPerPage = 25;\r\n public title: string;\r\n public actions?: IAction[];\r\n public sideNavItem: IDialogData;\r\n public closeSideNav = true;\r\n\r\n protected subs: Subscription = new Subscription();\r\n\r\n get user() { return this.appData.user(); }\r\n get settings$() { return this.appData.user().settings$; }\r\n get fancierId() { return this.appData.user().id; }\r\n get tableDefinitions() { return this.appData.tableDefinitions; }\r\n\r\n protected route = inject(ActivatedRoute);\r\n protected router = inject(Router);\r\n public api = inject(ApiService);\r\n public appData = inject(AppData);\r\n public cdr = inject(ChangeDetectorRef);\r\n public snackBar = inject(MatSnackBar);\r\n public translate = inject(TranslateService);\r\n public fb = inject(UntypedFormBuilder);\r\n\r\n ngOnInit(): void {\r\n if (this.route.snapshot.data) {\r\n Object.assign(this, this.route.snapshot.data);\r\n }\r\n\r\n this.subscribeToRouteParams();\r\n this.subscribeToContentWidth();\r\n console.log(this, this.title);\r\n this.setToolbarTitle(this.title);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.actions) {\r\n this.appData.updateActionData([]);\r\n }\r\n this.subs.unsubscribe();\r\n }\r\n\r\n /** Implement in inheritance components */\r\n public onRouteParamsChanged?(value: Params): void;\r\n /** Implement in inheritance components */\r\n public onContentWidthChanged?(value: number): void;\r\n\r\n protected setToolbarTitle(title: string) {\r\n this.appData.setToolbarTitle(title);\r\n }\r\n\r\n protected subscribeToContentWidth() {\r\n if (this.onContentWidthChanged) {\r\n this.subs.add(this.appData.contentWidth.subscribe(width => this.onContentWidthChanged(width)));\r\n }\r\n }\r\n\r\n protected subscribeToRouteParams() {\r\n if (this.onRouteParamsChanged) {\r\n this.subs.add(this.route.params.subscribe(params => this.onRouteParamsChanged(params)));\r\n }\r\n }\r\n\r\n public showFancier(id: number, displayName: string): void {\r\n this.appData.showFancier(id);\r\n }\r\n\r\n public showPigeonByObject(pigeon: IPigeon): void {\r\n if (pigeon) {\r\n this.showPigeon(pigeon.id);\r\n }\r\n }\r\n\r\n public showPigeon(id: number): void {\r\n this.appData.showPigeon(id);\r\n }\r\n\r\n public showDialog(data: IDialogData, afterClosed?: (res?: any) => void) {\r\n data.afterClosed = afterClosed;\r\n this.appData.showDialog(data);\r\n }\r\n\r\n public goToRanking(department: number, seasonNumber?: number) {\r\n this.router.navigate(['ranking', seasonNumber || this.user.activeSeasonNumber, 'regional', department, 'fancier', 'elder']);\r\n }\r\n\r\n public goToFlight(id: number) {\r\n this.router.navigate(['results', id]);\r\n }\r\n\r\n getArrayControls(control: AbstractControl) {\r\n return (control as UntypedFormArray)?.controls;\r\n }\r\n\r\n protected markForCheck() {\r\n this.cdr.markForCheck();\r\n }\r\n\r\n protected detectChanges() {\r\n // this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n }\r\n}"], "mappings": ";;;;;;;;;;;;;;;;;;;;AAiBM,IAAO,gBAAP,MAAO,eAAa;EAL1B,cAAA;AAOS,SAAA,OAAgB;AAChB,SAAA,YAAqB;AACrB,SAAA,eAAe;AAIf,SAAA,eAAe;AAEZ,SAAA,OAAqB,IAAI,aAAY;AAOrC,SAAA,QAAQ,OAAO,cAAc;AAC7B,SAAA,SAAS,OAAO,MAAM;AACzB,SAAA,MAAM,OAAO,UAAU;AACvB,SAAA,UAAU,OAAO,OAAO;AACxB,SAAA,MAAM,OAAO,iBAAiB;AAC9B,SAAA,WAAW,OAAO,WAAW;AAC7B,SAAA,YAAY,OAAO,gBAAgB;AACnC,SAAA,KAAK,OAAO,kBAAkB;;EAZrC,IAAI,OAAI;AAAK,WAAO,KAAK,QAAQ,KAAI;EAAI;EACzC,IAAI,YAAS;AAAK,WAAO,KAAK,QAAQ,KAAI,EAAG;EAAW;EACxD,IAAI,YAAS;AAAK,WAAO,KAAK,QAAQ,KAAI,EAAG;EAAI;EACjD,IAAI,mBAAgB;AAAK,WAAO,KAAK,QAAQ;EAAkB;EAW/D,WAAQ;AACN,QAAI,KAAK,MAAM,SAAS,MAAM;AAC5B,aAAO,OAAO,MAAM,KAAK,MAAM,SAAS,IAAI;IAC9C;AAEA,SAAK,uBAAsB;AAC3B,SAAK,wBAAuB;AAC5B,YAAQ,IAAI,MAAM,KAAK,KAAK;AAC5B,SAAK,gBAAgB,KAAK,KAAK;EACjC;EAEA,cAAW;AACT,QAAI,KAAK,SAAS;AAChB,WAAK,QAAQ,iBAAiB,CAAA,CAAE;IAClC;AACA,SAAK,KAAK,YAAW;EACvB;EAOU,gBAAgB,OAAa;AACrC,SAAK,QAAQ,gBAAgB,KAAK;EACpC;EAEU,0BAAuB;AAC/B,QAAI,KAAK,uBAAuB;AAC9B,WAAK,KAAK,IAAI,KAAK,QAAQ,aAAa,UAAU,WAAS,KAAK,sBAAsB,KAAK,CAAC,CAAC;IAC/F;EACF;EAEU,yBAAsB;AAC9B,QAAI,KAAK,sBAAsB;AAC7B,WAAK,KAAK,IAAI,KAAK,MAAM,OAAO,UAAU,YAAU,KAAK,qBAAqB,MAAM,CAAC,CAAC;IACxF;EACF;EAEO,YAAY,IAAY,aAAmB;AAChD,SAAK,QAAQ,YAAY,EAAE;EAC7B;EAEO,mBAAmB,QAAe;AACvC,QAAI,QAAQ;AACV,WAAK,WAAW,OAAO,EAAE;IAC3B;EACF;EAEO,WAAW,IAAU;AAC1B,SAAK,QAAQ,WAAW,EAAE;EAC5B;EAEO,WAAW,MAAmB,aAAiC;AACpE,SAAK,cAAc;AACnB,SAAK,QAAQ,WAAW,IAAI;EAC9B;EAEO,YAAY,YAAoB,cAAqB;AAC1D,SAAK,OAAO,SAAS,CAAC,WAAW,gBAAgB,KAAK,KAAK,oBAAoB,YAAY,YAAY,WAAW,OAAO,CAAC;EAC5H;EAEO,WAAW,IAAU;AAC1B,SAAK,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;EACtC;EAEA,iBAAiB,SAAwB;AACvC,WAAQ,SAA8B;EACxC;EAEU,eAAY;AACpB,SAAK,IAAI,aAAY;EACvB;EAEU,gBAAa;AAErB,SAAK,IAAI,cAAa;EACxB;;;uCAvGW,gBAAa;IAAA;EAAA;;yEAAb,gBAAa,WAAA,CAAA,CAAA,gBAAA,CAAA,GAAA,YAAA,OAAA,OAAA,GAAA,MAAA,GAAA,UAAA,SAAA,uBAAA,IAAA,KAAA;IAAA,GAAA,eAAA,EAAA,CAAA;EAAA;;;6EAAb,eAAa,EAAA,WAAA,iBAAA,UAAA,6CAAA,YAAA,GAAA,CAAA;AAAA,GAAA;", "names": [] }