import { Component, Input, ContentChildren, Inject, forwardRef, Optional, ElementRef, OnChanges, OnDestroy, AfterContentInit } from '@angular/core';
import { Subscription } from "rxjs/internal/Subscription";
import { AppComponent } from "../../app.component";
import { RdComponent } from '../../base/rdComponent';
import { RdLib } from '../../base/rdLib';
import { ServiceProviderPagingBase } from '../serviceProvider/serviceProviderPagingBase';
import { GridColumn, IGridColumn, IGridColumns } from './gridColumn';
import { Portlet } from '../portlet/portlet';
import { GridColumnColorScale } from './gridColumnColorScale';
export type GridColumnAligns = 'left' | 'right' | 'center';
export enum GridSortingByType {
Key,
Property
}
export interface IPreHeaderItem {
text: string;
index: number;
colspan: number;
background: string;
}
export interface IMapPreHeader {
[key: number]: IPreHeaderItem
}
export interface IMapColumnStyleItem {
[index: number]: object
}
export interface IMapColumnStyle {
[key: string]: IMapColumnStyleItem // [column.key] : {0:{'color':''}}
}
@Component({
selector: 'rd-grid:[rd-provider]',
template: `
|
{{preHeaders[index].text}}
|
|
{{column.text}}
|
|
|
{{warningText}}
`,
// host: { '(window:scroll)': 'onScroll($event,"window")' },
})
export class GridWithProvider extends RdComponent implements OnChanges, AfterContentInit, OnDestroy {
@Input("rd-provider") provider: ServiceProviderPagingBase;
@Input("rd-height") height: number | string;
@Input("rd-align") align: GridColumnAligns = "left";
@Input("rd-enableSorting") enableSorting: boolean = false;
@Input("rd-sortingByType") sortingType: GridSortingByType = GridSortingByType.Key;
@Input("rd-pre-headers") preHeaders: IMapPreHeader = {};
@Input("rd-row-style") rowStyle: IMapColumnStyleItem = {};
@Input("rd-show-paging") showPaging = true;
@Input("rd-additional-page-size") additionalPageSizeList: Array = [];
@Input("rd-warning-text") warningText: string = RdLib.localization.translateEn("No result had found") + ".";
@Input("rd-color-scale-palette") colorScalePalette = ["#CCFF90", "#B2FF59", "#00E676", "#FFE57F", "#FFFF00", "#FFEA00", "#FF8A80", "#FF5252", "#FF1744"];
@Input("rd-thead-zIndex") tHeadZIndex = 1;
@ContentChildren(GridColumn) columns: IGridColumns;
JSON = JSON;
Object = Object;
document = document;
public uniqueHeaderID;
public selectedItemString: string = null;
public refreshBlocker: boolean = false;
public phColumnIndexList: Array = [];
private originalList: Array