{"version":3,"sources":["src/app/pages/internal/incidents/pages/new/new-incident.component.ts","src/app/pages/internal/incidents/pages/new/new-incident.component.html"],"sourcesContent":["import { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport {\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Actions, Store, ofActionSuccessful } from '@ngxs/store';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ReplaySubject, map, takeUntil } from 'rxjs';\nimport { SharedModule } from 'src/app/core/shared.module';\nimport { LoadServices } from 'src/app/store/services/services.actions';\nimport { ServicesState } from 'src/app/store/services/services.state';\nimport { LoadStatuspagesAction } from 'src/app/store/statuspages/statuspages.actions';\nimport { StatuspageState } from 'src/app/store/statuspages/statuspages.state';\nimport { VButtonComponent } from '../../../../../core/components/ui-kit/buttons/button/button.component';\nimport { VDropdownComponent } from '../../../../../core/components/ui-kit/dropdown/dropdown.component';\nimport { VInputFieldComponent } from '../../../../../core/components/ui-kit/input-field/input-field.component';\nimport { VInputComponent } from '../../../../../core/components/ui-kit/input/input.component';\nimport { VMultiselectComponent } from '../../../../../core/components/ui-kit/multiselect/multiselect.component';\nimport { VTextareaComponent } from '../../../../../core/components/ui-kit/textarea/textarea.component';\nimport {\n CreateIncidentAction,\n IncidentCreatedAction,\n LoadIncidentSchemaVersionAction,\n LoadIncidentSchemasAction,\n} from '../../../../../store/incidents/incidents.actions';\nimport { IncidentsState } from '../../../../../store/incidents/incidents.state';\n\n@Component({\n selector: 'app-page-incidents-new',\n templateUrl: './new-incident.component.html',\n styleUrls: ['./new-incident.component.scss'],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VInputFieldComponent,\n VDropdownComponent,\n VInputComponent,\n VTextareaComponent,\n VMultiselectComponent,\n VButtonComponent,\n SharedModule,\n ],\n})\nexport class NewIncidentPageComponent implements OnInit, OnDestroy {\n private destroy$ = new ReplaySubject(1);\n private store = inject(Store);\n private dialog = inject(DialogService);\n private router = inject(Router);\n private actions$ = inject(Actions);\n\n newIncidentFormGroup = new FormGroup({\n schemaVersionId: new FormControl('', Validators.required),\n priority: new FormControl('', Validators.required),\n title: new FormControl('', Validators.required),\n summary: new FormControl(''),\n affectedServices: new FormControl(),\n statuspages: new FormControl(),\n });\n\n // all incident schemas\n schemas$ = this.store.select(IncidentsState.schemas).pipe(\n map(schemas => {\n if (schemas?.entities) {\n return Object.values(schemas.entities).map(schema => {\n return {\n label: schema.data?.name,\n value: schema.data?.currentVersion?.id,\n };\n });\n } else {\n return [];\n }\n })\n );\n\n // all avaiable services\n services$ = this.store.select(ServicesState.services).pipe(\n map(services => {\n if (services?.entities) {\n return Object.values(services.entities).map(services => {\n return {\n name: services.data?.name,\n id: services.data?.id,\n };\n });\n } else {\n return [];\n }\n })\n );\n\n // all avaiable statuspages\n statuspages$ = this.store.select(StatuspageState.statuspages).pipe(\n map(statuspages => {\n if (statuspages?.entities) {\n return Object.values(statuspages.entities).map(statuspage => {\n return {\n name: statuspage.data?.name,\n id: statuspage.data?.id,\n };\n });\n } else {\n return [];\n }\n })\n );\n\n schemaVersion$ = this.store.select(IncidentsState.currentSchemaVersion);\n\n close() {\n this.dialog.dialogComponentRefMap.forEach(d => d.destroy());\n }\n\n async onFormSubmit() {\n this.store.dispatch(\n new CreateIncidentAction({\n schemaVersionId: this.newIncidentFormGroup.value.schemaVersionId!,\n priorityId: this.newIncidentFormGroup.value.priority!,\n title: this.newIncidentFormGroup.value.title!,\n summary: this.newIncidentFormGroup.value.summary!,\n affectedServiceIds: this.newIncidentFormGroup.value.affectedServices,\n statuspageIds: this.newIncidentFormGroup.value.statuspages,\n })\n );\n }\n\n ngOnInit() {\n this.newIncidentFormGroup.reset();\n\n // redirect to incident page after creation\n this.actions$\n .pipe(ofActionSuccessful(IncidentCreatedAction), takeUntil(this.destroy$))\n .subscribe(({ incidentId }) => {\n this.router.navigate(['/incidents', incidentId]);\n this.close();\n });\n\n // load schema version when schema is selected\n this.newIncidentFormGroup.controls.schemaVersionId.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(schemaVersionId => {\n if (!schemaVersionId) return;\n this.store.dispatch(\n new LoadIncidentSchemaVersionAction(schemaVersionId)\n );\n });\n\n // when schemas are loaded, select the first one by default\n this.schemas$.pipe(takeUntil(this.destroy$)).subscribe(schemas => {\n if (\n !this.newIncidentFormGroup.controls.schemaVersionId.value &&\n schemas.length > 0\n ) {\n this.newIncidentFormGroup.controls.schemaVersionId.setValue(\n schemas[0].value!\n );\n }\n });\n\n this.schemaVersion$\n .pipe(takeUntil(this.destroy$))\n .subscribe(schemaVersion => {\n if (schemaVersion.data?.priorities) {\n this.newIncidentFormGroup.controls.priority.setValue(\n schemaVersion.data.priorities[0].id\n );\n }\n });\n\n // load all required data\n this.store.dispatch(new LoadStatuspagesAction());\n this.store.dispatch(new LoadServices());\n this.store.dispatch(new LoadIncidentSchemasAction());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n }\n}\n","
\n
\n \n \n \n\n @if (schemaVersion$ | async; as schemaVersion) {\n @if (schemaVersion.isLoading) {\n Loading..\n } @else {\n @if (schemaVersion.data) {\n
\n
\n \n \n \n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n \n
\n
\n }\n }\n }\n\n
\n \n \n
\n \n
\n"],"names":["ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ɵɵadvance","schemas_r1","ɵɵtext","schemaVersion_r2","data","priorities","ɵɵpureFunction0","_c0","ctx_r2","services$","statuspages$","ɵɵtemplate","NewIncidentPageComponent_Conditional_4_Conditional_1_Conditional_0_Template","ɵɵconditional","NewIncidentPageComponent_Conditional_4_Conditional_0_Template","NewIncidentPageComponent_Conditional_4_Conditional_1_Template","ctx","isLoading","NewIncidentPageComponent","constructor","destroy$","ReplaySubject","store","inject","Store","dialog","DialogService","router","Router","actions$","Actions","newIncidentFormGroup","FormGroup","schemaVersionId","FormControl","Validators","required","priority","title","summary","affectedServices","statuspages","schemas$","select","IncidentsState","schemas","pipe","map","entities","Object","values","schema","label","name","value","currentVersion","id","ServicesState","services","StatuspageState","statuspage","schemaVersion$","currentSchemaVersion","close","dialogComponentRefMap","forEach","d","destroy","onFormSubmit","__async","dispatch","CreateIncidentAction","priorityId","affectedServiceIds","statuspageIds","ngOnInit","reset","ofActionSuccessful","IncidentCreatedAction","takeUntil","subscribe","incidentId","navigate","controls","valueChanges","LoadIncidentSchemaVersionAction","length","setValue","schemaVersion","LoadStatuspagesAction","LoadServices","LoadIncidentSchemasAction","ngOnDestroy","next","selectors","decls","vars","consts","template","rf","ɵɵlistener","NewIncidentPageComponent_v_input_field_2_Template","NewIncidentPageComponent_Conditional_4_Template","tmp_2_0","valid","FormsModule","ɵNgNoValidate","NgControlStatusGroup","ReactiveFormsModule","FormGroupDirective","VInputFieldComponent","VDropdownComponent","VInputComponent","VTextareaComponent","VMultiselectComponent","VButtonComponent","SharedModule","NgIf","AsyncPipe","TranslatePipe","styles"],"mappings":"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","debug_id":"429f4512-be8b-5cab-9b32-7501a685362a"}