Blame view

src/app/helpers/renderer.component.ts 1.38 KB
6c0454b9   Yarik   Table
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  import { Component } from '@angular/core';
  
  import { AgRendererComponent } from 'ag-grid-ng2/main';
  
  import { RegionSelectList } from '../models/regionselectlist';
  
  @Component({
      selector: 'render-cell',
      template: `<span *ngIf="this.model !== undefined">{{this.label}}</span>`
  })
  export class RendererComponent implements AgRendererComponent {
      private params: any;
      private valueCol: string = 'id';
      private labelCol: string = 'name';
      private model: Object = null;
      private label: string = null;
      agInit(params: any): void {
          this.params = params;
          if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.valueCol) {
              this.valueCol = params.colDef.cellEditorParams.valueCol;
          }
          if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.labelCol) {
              this.labelCol = params.colDef.cellEditorParams.labelCol;
          }
          this.setValue(params);
      }
      refresh(params: any): void {
          this.params = params;
          this.setValue(params);
      }
      private setValue(params) {
          this.model = params.value;
          let label = this.params.colDef.cellEditorParams.data.find((element, index, array) => {
              if (element[this.valueCol] === params.value) {
                  return true;
              }
          });
          if (label) {
              this.label = label[this.labelCol];
          }
      }
  }