import { Component, ViewEncapsulation, AfterViewInit } from '@angular/core'; import { TdLoadingService } from '@covalent/core'; import { GridOptions, IGetRowsParams, IRowModel } from 'ag-grid/main'; import { StatementBase } from '../../../models/statement.base'; import { FlowIntensityService } from '../../../services/flow-intensity.service'; import { FlowIntensity } from '../../../models/flow-intensity'; import { EditorComponent } from '../../../helpers/editor.component'; import { RendererComponent } from '../../../helpers/renderer.component'; import { FlowIntensityCreateService } from '../../../services/flow-intensity-create.service'; import { RegionSelectList } from '../../../models/region-select-list'; import { RoadDirectionSelectList } from '../../../models/road-direction-select-list'; import { RoadSelectList } from '../../../models/road-select-list'; import { SettlementSelectList } from '../../../models/settlement-select-list'; import { routerTransition } from '../../../animations/router.animation'; @Component({ // tslint:disable-next-line:component-selector selector: 'flow-grid', templateUrl: 'flow-intensity.component.html', styleUrls: ['flow-intensity.scss'], encapsulation: ViewEncapsulation.None, }) export class FlowIntensityComponent extends StatementBase { public regions: RegionSelectList[]; public settlements: SettlementSelectList[]; public roads: RoadSelectList[]; public roadDirections: RoadDirectionSelectList[]; constructor( protected service: FlowIntensityService, protected dataService: FlowIntensityCreateService, 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: 'location', editable: true, }, { headerName: 'Місцезнаходження ділянки з однорідною інтенсивністю руху, км+, початок', field: 'begin', editable: true, }, { headerName: 'Місцезнаходження ділянки з однорідною інтенсивністю руху, км+, кінець', field: 'end', editable: true, }, { headerName: 'Напрямок смуги руху', field: 'roadDirectionId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.roadDirections, valueCol: 'roadDirectionId', labelCol: 'name', }, }, { headerName: 'Найближчий населений пункт', field: 'settlementId', editable: true, cellEditorFramework: EditorComponent, cellRendererFramework: RendererComponent, cellEditorParams: { data: this.settlements, valueCol: 'settlementId', labelCol: 'name', }, }, { headerName: 'Інтенсивність руху, авт/добу, всього', field: 'intensityTotal', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, приріст', field: 'intensityIncrease', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, мотоцикл без коляски та мопед', field: 'intensityMoto', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, мотоцикл з коляскою', field: 'intensityMotoSidecar', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, легковий автомобіль', field: 'intensityCar', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: до 2 т.', field: 'intensityTruckTwo', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 2 т. до 6 т.', field: 'intensityTruckTwoSix', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 6 т. до 8 т.', field: 'intensityTruckSixEight', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 8 т. до 14 т.', field: 'intensityTruckEightFourteen', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: понад 14 т.', field: 'intensityTruckFourteen', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: до 12 т.', field: 'intensityLorryTwelve', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: від 12 т. до 20 т.', field: 'intensityLorryTwelveTwenty', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: від 20 т. до 30 т.', field: 'intensityLorryTwentyThirty', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: понад 30 т.', field: 'intensityLorryThirty', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, колісний трактор з причепами до 10 т.', field: 'intensityTractorUnderTen', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, колісний трактор з причепами понад 10 т.', field: 'intensityTractorOverTen', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автобус, тролейбус', field: 'intensityBus', editable: true, }, { headerName: 'Інтенсивність руху, авт/добу, автобус зчеплений (здвоєний)', field: 'intensityBusCoupled', editable: true, }, ]; } protected initFunction(): void { this.dataService.getModels().then((models: any) => { this.regions = models.regionSelectListDsM as RegionSelectList[]; this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; this.roads = models.roadSelectListDsM as RoadSelectList[]; this.roadDirections = models.roadDirectionSelectListDsM as RoadDirectionSelectList[]; }).then(() => { this.bootstrapGrid(); }); } }