import {Component, ViewEncapsulation} from '@angular/core'; import {GridOptions} from 'ag-grid/main'; import { TdLoadingService } from '@covalent/core'; import { StatementBase } from '../../../models/statement.base'; import { CrossSectionService } from '../../../services/cross-section.service'; import { CrossSection } from '../../../models/cross-section'; import { EditorComponent } from '../../../helpers/editor.component'; import { RendererComponent } from '../../../helpers/renderer.component'; import { CrossSectionCreateService } from '../../../services/cross-section-create.service'; import { RegionSelectList } from '../../../models/region-select-list'; import { RoadSelectList } from '../../../models/road-select-list'; import { StateCommonSelectList } from '../../../models/state-common-select-list'; import { SurfaceTypeSelectList } from '../../../models/surface-type-select-list'; import { BooleanSelectListService } from '../../../services/boolean-select-list.service'; import { BooleanSelectList } from '../../../models/boolean-select-list'; import { routerTransition } from '../../../animations/router.animation'; @Component({ selector: 'cross-section', templateUrl: 'cross-section.component.html', styleUrls: ['cross-section.scss'], encapsulation: ViewEncapsulation.None, }) export class CrossSectionComponent extends StatementBase { public regions: RegionSelectList[]; public roads: RoadSelectList[]; public surfaceTypes: SurfaceTypeSelectList[]; public states: StateCommonSelectList[]; public boolean: BooleanSelectList[]; constructor( protected service: CrossSectionService, protected booleanService: BooleanSelectListService, protected dataService: CrossSectionCreateService, 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: 'stateCommonId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.states, valueCol: 'stateCommonId', labelCol: 'value', }, }, { headerName: 'Наявність облаштування, труба', field: 'tubeAvailability', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.boolean, valueCol: 'value', labelCol: 'label', }, }, { headerName: 'Наявність облаштування, острівок безпеки', field: 'safetyAvailability', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.boolean, valueCol: 'value', labelCol: 'label', }, }, { headerName: 'Місцеположення, км+ зліва', field: 'locationLeft', editable: true, }, { headerName: 'Місцеположення, км+ справа', field: 'locationRight', editable: true, }, { headerName: 'Напрямок з\'їзду', field: 'direction', editable: true, }, { headerName: 'Фактична довжина, м з\'їзду', field: 'lengthSection', editable: true, }, { headerName: 'Фактична довжина, м покриття', field: 'lengthSurface', editable: true, }, { headerName: 'Відстань від крайки проїзної частики, м', field: 'distanceEdge', editable: true, }, { headerName: 'Ширина, м', field: 'width', editable: true, }, { headerName: 'Кут примикання', field: 'angle', editable: true, }, { headerName: 'Рік спорудження', field: 'yearBuild', editable: true, }, { headerName: 'Рік ремонту', field: 'yearRepair', editable: true, }, ]; } 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.roads = models.roadSelectListDsM as RoadSelectList[]; this.surfaceTypes = models.surfaceTypeSelectListDsM as SurfaceTypeSelectList[]; this.states = models.stateCommonSelectListDsM as StateCommonSelectList[]; }).then(() => { this.bootstrapGrid(); }); } // tslint:disable-next-line:member-ordering public CreateModel(): Object { return new CrossSection(); } }