import {Component, ViewEncapsulation} from '@angular/core'; import {GridOptions} from 'ag-grid/main'; import { TdLoadingService } from '@covalent/core'; import { StatementBase } from '../../../models/statement.base'; import { ServiceObjectService } from '../../../services/service-object.service'; import { ServiceObject } from '../../../models/service-object'; import { EditorComponent } from '../../../helpers/editor.component'; import { RendererComponent } from '../../../helpers/renderer.component'; import { ServiceObjectCreateService } from '../../../services/service-object-create.service'; import { BooleanSelectListService } from '../../../services/boolean-select-list.service'; import { RegionSelectList } from '../../../models/region-select-list'; import { ServiceObjectTypeSelectList } from '../../../models/service-object-type-select-list'; import { RoadSelectList } from '../../../models/road-select-list'; import { DepartmentAffiliationSelectList } from '../../../models/department-affiliation-select-list'; import { BooleanSelectList } from '../../../models/boolean-select-list'; import { SettlementSelectList } from '../../../models/settlement-select-list'; import { routerTransition } from '../../../animations/router.animation'; @Component({ selector: 'service-object', templateUrl: 'service-object.component.html', styleUrls: ['service-object.scss'], encapsulation: ViewEncapsulation.None, }) export class ServiceObjectComponent extends StatementBase { public regions: RegionSelectList[]; public serviceObjectType: ServiceObjectTypeSelectList[]; public departmentAffiliation: DepartmentAffiliationSelectList[]; public settlements: SettlementSelectList[]; public roads: RoadSelectList[]; public boolean: BooleanSelectList[]; constructor( protected service: ServiceObjectService, protected dataService: ServiceObjectCreateService, protected booleanService: BooleanSelectListService, protected loadingService: TdLoadingService, ) { super(); } protected createColumnDefs(): any[] { return [ { headerName: '#', width: 30, checkboxSelection: true, suppressSorting: true, suppressMenu: true, pinned: true, }, { headerName: 'ID', field: 'id', }, { headerName: 'Назва дороги', field: 'roadId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.roads, valueCol: 'roadId', labelCol: 'name', }, }, { headerName: 'Область', field: 'regionId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.regions, valueCol: 'regionId', labelCol: 'name', }, }, { headerName: 'Вид споруди чи об\'єкту', field: 'serviceObjectTypeId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.serviceObjectType, valueCol: 'serviceObjectTypeId', labelCol: 'name', }, }, { headerName: 'Назва підприємства та населеного пункту', field: 'settlementId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.settlements, valueCol: 'settlementId', labelCol: 'name', }, }, { headerName: 'Відоча приналежність', field: 'departmentAffiliationId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.departmentAffiliation, valueCol: 'departmentAffiliationId', labelCol: 'name', }, }, { headerName: 'Місцезнаходження, км+ справа', field: 'locationRight', editable: true, }, { headerName: 'Місцезнаходження, км+ зліва', field: 'locationLeft', editable: true, }, { headerName: 'Місцезнаходження, км+ по осі', field: 'locationAxis', editable: true, }, { headerName: 'Відстань до об\'єкту від вісі дор., м', field: 'distance', editable: true, }, { headerName: 'Потужність', field: 'capacity', editable: true, }, { headerName: 'Елементи облаштування', field: 'arrangementElements', editable: true, cellEditor: 'largeText', }, ]; } protected initFunction(): void { this.booleanService.getModels().then((models: BooleanSelectList[]) => this.boolean = models); this.dataService.getModels().then((models: any) => { this.regions = models.regionSelectListDsM as RegionSelectList[]; this.serviceObjectType = models.serviceObjectTypeSelectListDsM as ServiceObjectTypeSelectList[]; this.departmentAffiliation = models.departmentAffiliationSelectListDsM as DepartmentAffiliationSelectList[]; this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; this.roads = models.roadSelectListDsM as RoadSelectList[]; }).then(() => { this.bootstrapGrid(); }); } // tslint:disable-next-line:member-ordering public CreateModel(): Object { return new ServiceObject(); } }