{ "version": 3, "sources": ["src/app/user-settings/restriction-selector/restriction-selector.component.ts", "src/app/user-settings/restriction-selector/restriction-selector.component.html"], "sourcesContent": ["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { AgeRestriction } from 'src/app/_models/metadata/age-restriction';\r\nimport { Member } from 'src/app/_models/auth/member';\r\nimport { AgeRating } from 'src/app/_models/metadata/age-rating';\r\nimport { AgeRatingDto } from 'src/app/_models/metadata/age-rating-dto';\r\nimport { User } from 'src/app/_models/user';\r\nimport { MetadataService } from 'src/app/_services/metadata.service';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\nimport {NgIf, NgFor, TitleCasePipe, NgTemplateOutlet} from '@angular/common';\r\nimport {TranslocoModule} from \"@ngneat/transloco\";\r\n\r\n@Component({\r\n selector: 'app-restriction-selector',\r\n templateUrl: './restriction-selector.component.html',\r\n styleUrls: ['./restriction-selector.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf, ReactiveFormsModule, NgFor, NgbTooltip, TitleCasePipe, TranslocoModule, NgTemplateOutlet]\r\n})\r\nexport class RestrictionSelectorComponent implements OnInit, OnChanges {\r\n\r\n @Input() member: Member | undefined | User;\r\n @Input() isAdmin: boolean = false;\r\n /**\r\n * Show labels and description around the form\r\n */\r\n @Input() showContext: boolean = true;\r\n @Input() reset: EventEmitter | undefined;\r\n @Output() selected: EventEmitter = new EventEmitter();\r\n\r\n\r\n ageRatings: Array = [];\r\n restrictionForm: FormGroup | undefined;\r\n\r\n constructor(private metadataService: MetadataService, private readonly cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.restrictionForm = new FormGroup({\r\n 'ageRating': new FormControl(this.member?.ageRestriction.ageRating || AgeRating.NotApplicable || AgeRating.NotApplicable, []),\r\n 'ageRestrictionIncludeUnknowns': new FormControl(this.member?.ageRestriction.includeUnknowns || false, []),\r\n\r\n });\r\n\r\n if (this.isAdmin) {\r\n this.restrictionForm.get('ageRating')?.disable();\r\n this.restrictionForm.get('ageRestrictionIncludeUnknowns')?.disable();\r\n }\r\n\r\n if (this.reset) {\r\n this.reset.subscribe(e => {\r\n this.restrictionForm?.get('ageRating')?.setValue(e.ageRating);\r\n this.restrictionForm?.get('ageRestrictionIncludeUnknowns')?.setValue(e.includeUnknowns);\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n this.restrictionForm.get('ageRating')?.valueChanges.subscribe(e => {\r\n this.selected.emit({\r\n ageRating: parseInt(e, 10),\r\n includeUnknowns: this.restrictionForm?.get('ageRestrictionIncludeUnknowns')?.value\r\n });\r\n if (parseInt(e, 10) === AgeRating.NotApplicable) {\r\n this.restrictionForm!.get('ageRestrictionIncludeUnknowns')?.disable();\r\n } else {\r\n this.restrictionForm!.get('ageRestrictionIncludeUnknowns')?.enable();\r\n }\r\n });\r\n\r\n this.restrictionForm.get('ageRestrictionIncludeUnknowns')?.valueChanges.subscribe(e => {\r\n this.selected.emit({\r\n ageRating: parseInt(this.restrictionForm?.get('ageRating')?.value, 10),\r\n includeUnknowns: e\r\n });\r\n });\r\n\r\n this.metadataService.getAllAgeRatings().subscribe(ratings => {\r\n this.ageRatings = ratings;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.member) return;\r\n this.restrictionForm?.get('ageRating')?.setValue(this.member?.ageRestriction.ageRating || AgeRating.NotApplicable);\r\n this.restrictionForm?.get('ageRestrictionIncludeUnknowns')?.setValue(this.member?.ageRestriction.includeUnknowns);\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n}\r\n", "\r\n \r\n \r\n

{{t('title')}}

\r\n

{{t('description')}}\r\n {{t('not-applicable-for-admins')}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n {{t('include-unknowns-tooltip')}}\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n"], "mappings": "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", "names": ["\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r1", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275template", "RestrictionSelectorComponent_ng_container_0_ng_container_1_ng_container_1_ng_container_5_Template", "\u0275\u0275textInterpolate1", "\u0275\u0275property", "ctx_r1", "isAdmin", "opt_r3", "value", "\u0275\u0275pipeBind1", "title", "RestrictionSelectorComponent_ng_container_0_ng_container_1_ng_container_1_Template", "RestrictionSelectorComponent_ng_container_0_ng_container_1_option_10_Template", "\u0275\u0275element", "RestrictionSelectorComponent_ng_container_0_ng_container_1_ng_template_17_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275elementContainer", "showContext", "restrictionForm", "ageRatings", "includeUnknownsTooltip_r4", "RestrictionSelectorComponent_ng_container_0_ng_container_1_Template", "RestrictionSelectorComponent", "constructor", "metadataService", "cdRef", "selected", "EventEmitter", "ngOnInit", "FormGroup", "FormControl", "member", "ageRestriction", "ageRating", "AgeRating", "NotApplicable", "includeUnknowns", "get", "disable", "reset", "subscribe", "e", "setValue", "markForCheck", "valueChanges", "emit", "parseInt", "enable", "getAllAgeRatings", "ratings", "ngOnChanges", "\u0275\u0275directiveInject", "MetadataService", "ChangeDetectorRef", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "RestrictionSelectorComponent_ng_container_0_Template", "NgIf", "ReactiveFormsModule", "\u0275NgNoValidate", "NgSelectOption", "\u0275NgSelectMultipleOption", "CheckboxControlValueAccessor", "SelectControlValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgFor", "NgbTooltip", "TitleCasePipe", "TranslocoModule", "TranslocoDirective", "NgTemplateOutlet", "changeDetection", "_RestrictionSelectorComponent"] }