@acorex/data-grid 3.0.63 → 3.0.64
Sign up to get free protection for your applications and to get access to all the features.
- package/acorex-data-grid.metadata.json +1 -1
- package/bundles/acorex-data-grid.umd.js +25 -13
- package/bundles/acorex-data-grid.umd.js.map +1 -1
- package/bundles/acorex-data-grid.umd.min.js +1 -1
- package/bundles/acorex-data-grid.umd.min.js.map +1 -1
- package/esm2015/lib/data-grid/datagrid.component.js +26 -14
- package/esm5/lib/data-grid/datagrid.component.js +26 -14
- package/fesm2015/acorex-data-grid.js +25 -13
- package/fesm2015/acorex-data-grid.js.map +1 -1
- package/fesm5/acorex-data-grid.js +25 -13
- package/fesm5/acorex-data-grid.js.map +1 -1
- package/lib/data-grid/datagrid.component.d.ts +5 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-data-grid.js","sources":["ng://@acorex/data-grid/lib/data-grid/templates/cell-template.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/check-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/command-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/date-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/selection-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/text-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/row-number-column.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/row-template.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/detail-template.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.component.ts","ng://@acorex/data-grid/lib/data-grid/filters/filter.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.module.ts","ng://@acorex/data-grid/lib/data-lov/data-lov-popup/data-lov-popup.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.module.ts","ng://@acorex/data-grid/acorex-data-grid.ts"],"sourcesContent":["import { Component, ContentChild, TemplateRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-cell-template',\r\n template: `<ng-content></ng-content>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridCellTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ng-container *ngTemplateOutlet='templateRef; context: { $implicit: rowData }'>\r\n </ng-container>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateRenderer implements ICellRendererAngularComp {\r\n rowData: any;\r\n templateRef: TemplateRef<any>;\r\n\r\n constructor() { }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.rowData = params.data;\r\n this.templateRef = (params as any).templateRef;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.rowData = params.data;\r\n return true;\r\n }\r\n}","import { AXConfig } from '@acorex/core';\r\nimport { Input, ContentChild, TemplateRef } from '@angular/core';\r\nimport { AXGridCellParams } from '../datagrid.events';\r\nimport { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';\r\nimport { AXDatePickerFilterComponent } from './date-column.component';\r\n\r\n\r\nexport abstract class AXGridDataColumn {\r\n\r\n\r\n @ContentChild(AXDataGridCellTemplateComponent)\r\n cellTemplate: AXDataGridCellTemplateComponent;\r\n\r\n @Input()\r\n width: number = 100;\r\n\r\n @Input()\r\n maxWidth: number;\r\n\r\n @Input()\r\n minWidth: number;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' | null = null;\r\n\r\n @Input()\r\n allowSorting: boolean = true;\r\n\r\n @Input()\r\n allowFiltering: boolean = AXConfig.get('datagrid.allowFiltering') || false;;\r\n\r\n @Input()\r\n cellClass: (params: AXGridCellParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n sort: 'asc' | 'desc' | null = null;\r\n\r\n @Input()\r\n field: string = '';\r\n\r\n @Input()\r\n caption: string = '';\r\n\r\n @Input()\r\n cellRendererParams: any;\r\n\r\n @Input()\r\n checkbox: boolean = false;\r\n\r\n @Input()\r\n headerCheckbox: boolean = false;\r\n\r\n @Input()\r\n groupIndex: number = -1;\r\n\r\n @Input()\r\n treeIndex: number = -1;\r\n\r\n @Input()\r\n enableRowGroup: boolean = false;\r\n\r\n @Input()\r\n hide: boolean = false;\r\n\r\n @Input()\r\n floatingFilter: boolean = AXConfig.get('datagrid.floatingFilter') || false;\r\n\r\n @Input()\r\n disableMenu: boolean = false;\r\n\r\n @Input()\r\n resizable: boolean = true;\r\n\r\n @Input()\r\n menuColumnDisable: boolean = false;\r\n\r\n @Input()\r\n menuItemDisable: boolean = false;\r\n\r\n constructor() { }\r\n\r\n render(): any {\r\n const col: any = {\r\n field: this.field,\r\n width: this.width,\r\n };\r\n col.resizable = this.resizable;\r\n col.suppressMenu = this.disableMenu;\r\n col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab']\r\n col.floatingFilter = this.floatingFilter;\r\n\r\n if (!this.allowFiltering) {\r\n col.filter = false;\r\n col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');\r\n col.floatingFilter = false;\r\n }\r\n if (this.menuColumnDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');\r\n }\r\n if (this.menuItemDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');\r\n }\r\n if (this.caption) {\r\n col.headerName = this.caption;\r\n }\r\n if (this.minWidth) {\r\n col.minWidth = this.minWidth;\r\n }\r\n if (this.maxWidth) {\r\n col.maxWidth = this.maxWidth;\r\n }\r\n if (this.pinned) {\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n // TODO: Change based on layout\r\n }\r\n if (this.allowSorting) {\r\n col.sortable = this.allowSorting;\r\n }\r\n if (this.sort) {\r\n col.sort = this.sort;\r\n }\r\n\r\n if (this.groupIndex >= 0) {\r\n col.rowGroupIndex = this.groupIndex;\r\n col.rowGroup = true;\r\n this.enableRowGroup = true;\r\n }\r\n\r\n if (this.treeIndex >= 0) {\r\n col.rowGroupIndex = this.treeIndex;\r\n col.rowGroup = false;\r\n }\r\n if (this.hide) {\r\n col.hide = true;\r\n\r\n }\r\n if (this.enableRowGroup) {\r\n col.enableRowGroup = this.enableRowGroup;\r\n }\r\n\r\n if (this.cellClass) {\r\n const THAT = this;\r\n if (this.cellClass instanceof Function) {\r\n col.cellClass = (p) => {\r\n return THAT.cellClass({\r\n column: THAT,\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data,\r\n value: p.value\r\n });\r\n };\r\n }\r\n else {\r\n col.cellClass = this.cellClass;\r\n\r\n }\r\n }\r\n //\r\n if (this.cellTemplate != null) {\r\n col.cellRendererFramework = this.cellTemplate.renderer;\r\n col.cellRendererParams = this.cellTemplate.params;\r\n }\r\n\r\n if (this.checkbox) {\r\n col.checkboxSelection = (params) => {\r\n return true;\r\n };\r\n // col.headerCheckboxSelection = this.headerCheckbox;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { ICellRendererAngularComp, IFilterAngularComp } from 'ag-grid-angular';\r\nimport {\r\n ICellRendererParams,\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-check-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class AXGridCheckColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = BooleanRenderer;\r\n }\r\n if (this.allowFiltering) {\r\n col.filterFramework = BooleanFilterRenderer;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-check-box [value]='value' readonly='true'></ax-check-box>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanRenderer implements ICellRendererAngularComp {\r\n value: boolean;\r\n constructor() { }\r\n agInit(params: ICellRendererParams): void {\r\n this.value = params.value;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.value = params.value;\r\n return true;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-select-box\r\n label='Select Box'\r\n [items]='selectItem'\r\n ></ax-select-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanFilterRenderer implements IFilterAngularComp {\r\n public value?: boolean = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild('input', { static: true, read: ViewContainerRef }) public input;\r\n\r\n selectItem = [\r\n { value: 0, label: 'True' },\r\n { value: 1, label: 'False' },\r\n ];\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n this.value = model ? model.value : null;\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.element.nativeElement.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input, EventEmitter, ViewEncapsulation, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { AXGridRowCommandEvent } from '../datagrid.events';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\nexport type AXGridRowCommandFunction = (row: any) => AXMenuItem[];\r\n\r\n@Component({\r\n selector: 'ax-command-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCommandColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXGridCommandColumn extends AXGridDataColumn {\r\n @Input()\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXGridRowCommandEvent> = new EventEmitter<AXGridRowCommandEvent>();\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = CommandRenderer;\r\n }\r\n col.cellRendererParams = {\r\n items: this.items,\r\n onClick: (e) => {\r\n this.onItemClick.emit({\r\n command: e.name,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n rowLevel: e.rowLevel,\r\n htmlEvent: e.htmlEvent\r\n });\r\n }\r\n };\r\n col.sortable = false;\r\n col.filter = false;\r\n col.valueGetter = (params) => {\r\n return this.items;\r\n };\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-command-cell',\r\n template: `\r\n <button\r\n *ngFor=\"let item of items; let i = index\"\r\n class=\"ax button md ax-grid-command-button {{ item.style || 'ax primary blank' }}\"\r\n [class.disabled]=\"item.disable\"\r\n type=\"button\"\r\n [title]=\"item.tooltip\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"onClick(item, $event)\"\r\n >\r\n <i [ngClass]=\"item.icon\"></i>{{ item.text }}\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommandRenderer implements ICellRendererAngularComp {\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n node: any;\r\n private clickCallback: Function;\r\n\r\n constructor() {}\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.mapParams(params);\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.mapParams(params);\r\n return true;\r\n }\r\n\r\n private mapParams(params: any) {\r\n this.node = params.node;\r\n this.items = typeof params.items == 'function' ? params.items({ data: this.node.data }) : Array.isArray(params.items) ? params.items : [];\r\n this.clickCallback = params.onClick;\r\n }\r\n\r\n onClick(item: AXMenuItem, e: MouseEvent) {\r\n if (this.clickCallback && !item.disable) {\r\n this.clickCallback({\r\n name: item.name,\r\n rowLevel: this.node.level,\r\n rowIndex: this.node.rowIndex,\r\n data: this.node.data,\r\n htmlEvent: e\r\n });\r\n }\r\n }\r\n}\r\n","\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ViewEncapsulation,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { AXDateTime, AXConfig, AXCalendarType } from '@acorex/core';\r\nimport { AXDatePickerComponent } from '@acorex/components';\r\n@Component({\r\n selector: 'ax-date-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridDateColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridDateColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input()\r\n format: string;\r\n\r\n @Input()\r\n type: AXCalendarType = AXConfig.get('dateTime.type');\r\n\r\n render() {\r\n const col = super.render();\r\n col.cellRendererParams = {\r\n format: this.format,\r\n };\r\n\r\n col.comparator = (valueA: any, valueB: any) => {\r\n const date1 = AXDateTime.convert(valueA);\r\n const date2 = AXDateTime.convert(valueB);\r\n //\r\n if (date1 === null && date2 === null) {\r\n return 0;\r\n }\r\n if (date1 === null) {\r\n return -1;\r\n }\r\n if (date2 === null) {\r\n return 1;\r\n }\r\n return (date1.date.getTime() - date2.date.getTime());\r\n };\r\n\r\n col.valueFormatter = (params) => {\r\n const date: AXDateTime = AXDateTime.convert(params.value, this.type);\r\n if (date) {\r\n return date.format(this.format);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n col.filter = 'agDateColumnFilter';\r\n // col.floatingFilter = true;\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-picker-filter',\r\n template: `<ax-date-picker [selectableHoliday]=\"selectableHoliday\" [allowClear]=\"true\" (onValueChanged)=\"onValueChanged($event)\" size=\"sm\">\r\n </ax-date-picker>`,\r\n host: { },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDatePickerFilterComponent {\r\n @ViewChild(AXDatePickerComponent)\r\n datePicker: AXDatePickerComponent;\r\n @ViewChild('div', { read: ElementRef }) div: ElementRef;\r\n selectableHoliday: boolean = false;\r\n type: string = 'jalali';\r\n date: Date;\r\n params: any;\r\n picker: any;\r\n\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n ngOnDestroy() {\r\n console.log(`Destroying DateComponent`);\r\n }\r\n\r\n onDateChanged(selectedDates) {\r\n //this.date = selectedDates[0] || null;\r\n this.params.onDateChanged();\r\n }\r\n\r\n getDate(): Date {\r\n return this.date;\r\n }\r\n\r\n setDate(date: Date): void {\r\n this.date = date || null;\r\n //this.picker.setDate(date);\r\n }\r\n\r\n setInputPlaceholder(placeholder: string): void {\r\n //this.div.nativeElement.setAttribute('placeholder', placeholder);\r\n }\r\n onValueChanged(e) {\r\n\r\n this.setDate(e.value);\r\n this.onDateChanged(e.value);\r\n }\r\n\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-selection-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridSelectionColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' = 'start';\r\n\r\n @Input()\r\n width: number = 40;\r\n\r\n render() {\r\n const col = super.render();\r\n col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n col.filter = false;\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.minWidth = 5;\r\n col.width = this.width;\r\n col.floatingFilter = false;\r\n return col;\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\nimport { IFilterAngularComp } from 'ag-grid-angular';\r\nimport { AXTextBoxComponent } from '@acorex/components';\r\n\r\n\r\n@Component({\r\n selector: 'ax-text-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridTextColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n // if (this.allowFiltering) {\r\n // col.filterFramework = TextFilterRenderer;\r\n // }\r\n col.filter = 'agTextColumnFilter';\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>\r\n </ax-text-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TextFilterRenderer implements IFilterAngularComp {\r\n public value?: string = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n private input: AXTextBoxComponent;\r\n\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n ;\r\n this.onChange(model ? model.value : null);\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n if (this.value === '') {\r\n this.value = null;\r\n }\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-row-number-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridRowNumberColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridRowNumberColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n render() {\r\n const col = super.render();\r\n // col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n\r\n (col.headerName = this.caption ? this.caption : AXConfig.get('layout.rtl') ? 'ردیف' : 'Row'),\r\n (col.valueGetter = 'node.rowIndex + 1'),\r\n (col.pinned = this.pinned == null ? null : this.pinned === 'start' ? 'right' : 'left'),\r\n (col.filter = false);\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.width = this.width;\r\n\r\n return col;\r\n }\r\n}\r\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-row-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridRowTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n templateRef: TemplateRef<any>;\r\n\r\n data: any;\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n agInit(params: any): void {\r\n this.data = params.data.callRecords;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import { Component, ContentChild, TemplateRef, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-grid-detail-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridDetailTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n\r\n @Input()\r\n height: number = 100;\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n templateRef: TemplateRef<any>;\r\n data: any;\r\n\r\n agInit(params: any): void {\r\n this.data = params.data;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import {\r\n Component,\r\n ContentChild,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { AXDataSourceComponent } from '@acorex/components';\r\nimport { AXGridDataColumn } from './columns/column.component';\r\nimport { AXDataSourceReadParams } from '@acorex/components';\r\nimport {\r\n GridOptions,\r\n CellClickedEvent,\r\n RowClickedEvent,\r\n CellEvent,\r\n RowEvent,\r\n FirstDataRenderedEvent,\r\n GridSizeChangedEvent,\r\n GridApi\r\n} from 'ag-grid-community';\r\n\r\nimport { LicenseManager } from 'ag-grid-enterprise';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { AXGridCellEvent, AXGridRowEvent, AXGridRowSelectionEvent, AXGridRowParams } from './datagrid.events';\r\n\r\nimport { AXDataGridRowTemplateComponent } from './templates/row-template.component';\r\nimport { AXToolbarSearchComponent, AXToolbarComponent, AXDataEvent, AXValueEvent } from '@acorex/components';\r\nimport { AXDataGridDetailTemplateComponent } from './templates/detail-template.component';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nLicenseManager.prototype.validateLicense = function () {\r\n //console.info('Cracked by Arash Oshnoudi!');\r\n};\r\n\r\n// WatermarkComp.prototype.shouldDisplayWatermark = function () {\r\n// return false;\r\n// }\r\n\r\nexport class AXDataGridColumnsChangeEvent extends AXValueEvent<AXGridDataColumn[]> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDataGridCellEvent extends AXDataEvent<AXGridCellEvent> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDaagridRowClickEvent extends AXDataEvent<AXGridRowEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridSelectionChangeEvent extends AXDataEvent<AXGridRowSelectionEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridRowSelectionChangeEvent extends AXDataEvent<any> {\r\n component: AXDataGridComponent;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-grid',\r\n templateUrl: './datagrid.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXDataGridComponent {\r\n private gridApi;\r\n private dataSourceSuccessCallback;\r\n localeText: any;\r\n\r\n gridOptions: GridOptions;\r\n columnDefs: any[] = [];\r\n rowModelType = 'clientSide';\r\n fullWidthCellRendererFramework: any;\r\n fullWidthCellRendererParams: any;\r\n frameworkComponents: any = {};\r\n isFullWidthCell: Function;\r\n internalHeight: string = '100%';\r\n detailCellRenderer: any;\r\n detailCellRendererParams: any;\r\n detailRowHeight: number;\r\n masterDetail: boolean = false;\r\n treeData: boolean = false;\r\n enabelSelect: boolean = false;\r\n gridView: boolean = false;\r\n groupSelectsChildren: boolean = false;\r\n oldSelectionNodes: any[] = [];\r\n paginationAutoPageSize: boolean = true;\r\n paginationPageSize: number = 10;\r\n cacheBlockSize: number = 10;\r\n // @Input()\r\n // showRowNumber: boolean = true;\r\n\r\n @Input()\r\n public remoteOperation: boolean = false;\r\n\r\n @Input()\r\n public rowMultiSelectWithClick: boolean = true;\r\n\r\n @Input()\r\n public suppressRowClickSelection: boolean = true;\r\n\r\n @Input()\r\n public suppressCellSelection: boolean = false;\r\n\r\n @Input()\r\n public sizeColumnsToFit: boolean = true;\r\n\r\n @Input()\r\n showCheckBox: boolean = true;\r\n\r\n @Input()\r\n floatingFilter: boolean = false;\r\n\r\n @Input()\r\n takeCount: number;\r\n\r\n autoGroupColumnDef: any = {};\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n // @Input()\r\n // allowFiltering: boolean = false;\r\n\r\n @Input()\r\n selectRow: any[] = [];\r\n\r\n @Input()\r\n rowGroupPanelShow: 'always' | 'never' = 'never';\r\n\r\n @Input()\r\n loadOnInit: boolean = true;\r\n\r\n // @Input()\r\n // groupDefaultExpanded: number = 0;\r\n\r\n @Input()\r\n keyField: string = 'null';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n private _searchText: string;\r\n @Input()\r\n public get searchText(): string {\r\n return this._searchText;\r\n }\r\n public set searchText(v: string) {\r\n if (v !== this._searchText) {\r\n this._searchText = v;\r\n if (this.gridApi) {\r\n this.refresh();\r\n this.gridApi.setQuickFilter(this.searchText);\r\n }\r\n }\r\n }\r\n\r\n private _filter: any[];\r\n @Input()\r\n public get filter(): any[] {\r\n return this._filter;\r\n }\r\n public set filter(v: any[]) {\r\n if (v !== this._filter) {\r\n this._filter = v;\r\n this._filter.forEach((f) => {\r\n const fc = this.gridApi.getFilterInstance(f.field);\r\n if (fc) {\r\n const ff = fc.getFrameworkComponentInstance();\r\n ff.setModel(f);\r\n }\r\n });\r\n }\r\n }\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private _inlineColumns: QueryList<AXGridDataColumn>;\r\n\r\n @Output()\r\n columnsChange: EventEmitter<AXDataGridColumnsChangeEvent> = new EventEmitter<AXDataGridColumnsChangeEvent>();\r\n\r\n private _columns: AXGridDataColumn[] = [];\r\n @Input()\r\n public get columns(): AXGridDataColumn[] {\r\n return this._inlineColumns ? [...this._columns, ...this._inlineColumns.toArray()] : this._columns;\r\n }\r\n\r\n public set columns(val: AXGridDataColumn[]) {\r\n if (val && val.length) {\r\n let old = this._columns;\r\n this._columns = val;\r\n this.columnsChange.emit({ component: this, value: val, oldValue: old, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n defaultColDef: any = {\r\n filter: true,\r\n floatingFilter: true\r\n };\r\n\r\n @Input()\r\n rowHeight: any;\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchInput: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXToolbarComponent, { static: true })\r\n toolbar: AXToolbarComponent;\r\n\r\n @ContentChild(AXDataGridRowTemplateComponent, { static: true })\r\n rowTemplate: AXDataGridRowTemplateComponent;\r\n\r\n @ContentChild(AXDataGridDetailTemplateComponent, { static: true })\r\n gridDetailTemplate: AXDataGridDetailTemplateComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n @Input()\r\n groupHideOpenParents: boolean = false;\r\n\r\n @Output()\r\n cellClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellDbClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellFocuse: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n rowClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n rowDbClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n rowSelectionChange: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n onRowSelectionChanged: EventEmitter<AXDataGridRowSelectionChangeEvent> = new EventEmitter<AXDataGridRowSelectionChangeEvent>();\r\n\r\n getRowHeight(param) {\r\n if (param.data && param.data.rowHeight && param.node.level == 0) {\r\n return param.data.rowHeight;\r\n } else if (this.masterDetail == true && param.node.level == 1) {\r\n return this.detailRowHeight;\r\n } else if (this.masterDetail == false && param.data && param.data.rowHeight) {\r\n return param.data.rowHeight;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n @Input()\r\n rowClass?: (params: AXGridRowParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n this.localeText = AXTranslator.get('dataGrid');\r\n }\r\n\r\n private calcHeight(): void {\r\n if (this.toolbar) {\r\n this.internalHeight = `calc(100% - ${40}px)`;\r\n } else {\r\n this.internalHeight = '100%';\r\n }\r\n }\r\n\r\n private get intenalGridDataSource() {\r\n const that = this;\r\n return {\r\n rowCount: null,\r\n getRows: (params) => {\r\n // that.gridApi.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount ? this.takeCount : params.api.paginationGetPageSize());\r\n that.dataSourceSuccessCallback = params.successCallback;\r\n const loadParams: AXDataSourceReadParams = {};\r\n loadParams.searchText = that.searchText;\r\n loadParams.skip = params.request.startRow;\r\n // loadParams.take = params.request.endRow - params.request.startRow;\r\n loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;\r\n loadParams.sort = params.request.sortModel.map((c) => {\r\n return {\r\n field: c.colId,\r\n dir: c.sort\r\n };\r\n });\r\n // loadParams.groups = params.request.rowGroupCols.map(r => r.field);\r\n // loadParams.groupKeys = params.request.groupKeys;\r\n // loadParams.data = params.parentNode.data;\r\n loadParams.group = {\r\n fields: params.request.rowGroupCols.map((r) => r.field),\r\n keys: params.request.groupKeys,\r\n parentData: params.parentNode.data\r\n };\r\n loadParams.filter = params.request.filterModel;\r\n that.dataSource.fetch(loadParams);\r\n }\r\n };\r\n }\r\n getMainMenuItems(e) {\r\n return ['pinSubMenu', 'separator'];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.gridApi.destroy();\r\n }\r\n\r\n isServerSideGroup = (e) => {\r\n return e[this.hasChildField];\r\n };\r\n\r\n getColumnDefs = () => {\r\n return this.gridApi.getColumnDefs();\r\n };\r\n\r\n getServerSideGroupKey = (e) => {\r\n return e[this.keyField];\r\n };\r\n // todo gridOptions: GridOptions\r\n internalGridReady(gridOptions) {\r\n gridOptions.api.checkGridSize();\r\n this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;\r\n // this.takeCount = this.takeCount < 20 ? 20 : this.takeCount;\r\n gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);\r\n this.gridApi = gridOptions.api;\r\n\r\n this.mapColumns();\r\n this.calcHeight();\r\n\r\n if (!this.loadOnInit) {\r\n this.loadOnInit = true;\r\n return;\r\n }\r\n\r\n if (this.remoteOperation) {\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n }\r\n\r\n if (!this.remoteOperation) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const that = this;\r\n if (this.rowTemplate) {\r\n this.fullWidthCellRendererFramework = this.rowTemplate.renderer;\r\n this.fullWidthCellRendererParams = this.rowTemplate.params;\r\n }\r\n this.frameworkComponents.agDateInput = AXDatePickerFilterComponent;\r\n\r\n if (this.gridDetailTemplate) {\r\n this.masterDetail = true;\r\n this.detailCellRendererParams = this.gridDetailTemplate.params;\r\n this.detailCellRenderer = 'detailRendererFramework';\r\n this.frameworkComponents.detailRendererFramework = this.gridDetailTemplate.renderer;\r\n\r\n this.detailRowHeight = this.gridDetailTemplate.height;\r\n }\r\n this.isFullWidthCell = () => {\r\n return that.rowTemplate != null;\r\n };\r\n //this.cdr\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.takeCount && this.takeCount > 0) {\r\n this.paginationPageSize = this.takeCount;\r\n this.paginationAutoPageSize = false;\r\n this.cacheBlockSize = this.takeCount;\r\n }\r\n if (this.selectionMode === 'single') {\r\n this.groupSelectsChildren = false;\r\n }\r\n if (this.keyField !== 'null' && this.hasChildField !== 'null') {\r\n this.rowGroupPanelShow = 'never';\r\n this.treeData = true;\r\n }\r\n if (this.remoteOperation) {\r\n this.rowModelType = 'serverSide';\r\n }\r\n //\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n //\r\n }\r\n\r\n gridSelectRow() {\r\n if (this.gridApi) {\r\n if (this.selectRow && this.selectRow.length > 0 && this.gridApi !== undefined && typeof this.selectRow[0] != 'object') {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((id) => {\r\n if (node.data[this.keyField] === id) {\r\n select = true;\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((item) => {\r\n if (item.rowIndex != undefined && item.rowLevel != undefined) {\r\n if (node.data[this.keyField] === item.data[this.keyField]) {\r\n select = true;\r\n }\r\n } else {\r\n if (node.data[this.keyField] === item[this.keyField]) {\r\n select = true;\r\n }\r\n }\r\n });\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // ngAfterViewChecked(): void {\r\n\r\n // //Called after every check of the component's view. Applies to components only.\r\n // //Add 'implements AfterViewChecked' to the class.\r\n // // this.selectByValues();\r\n // this.enabelSelect = false;\r\n\r\n // }\r\n rebuildGrid() {\r\n this.mapColumns();\r\n setTimeout(() => {\r\n if (this.sizeColumnsToFit) {\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n }, 10);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.treeData === true) {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex == '0' && c.field !== '');\r\n\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n //setTimeout(() => {\r\n this.gridView = true;\r\n //});\r\n\r\n this.enabelSelect = true;\r\n this.dataSource.onDataReceived.subscribe((_data) => {\r\n const result = _data.data.result;\r\n this.hideLoading();\r\n let items: any[];\r\n let totalCount: number;\r\n if (Array.isArray(result)) {\r\n items = result;\r\n totalCount = result.length;\r\n } else {\r\n items = result.items;\r\n totalCount = result.totalCount;\r\n }\r\n if (this.dataSourceSuccessCallback) {\r\n if (!this.loadOnInit) {\r\n this.dataSourceSuccessCallback([], 0);\r\n } else {\r\n this.dataSourceSuccessCallback(items, totalCount);\r\n }\r\n } else {\r\n if (!this.loadOnInit && this.gridApi !== undefined) {\r\n this.gridApi.setRowData([]);\r\n } else if (this.gridApi !== undefined) {\r\n this.gridApi.setRowData(items);\r\n }\r\n }\r\n\r\n this.gridSelectRow();\r\n });\r\n\r\n this.dataSource.onFetchStart.subscribe(() => {\r\n this.showLoading();\r\n });\r\n\r\n if (this.searchInput) {\r\n this.searchInput.onValueChanged.subscribe((c) => {\r\n this.searchText = c.value;\r\n });\r\n }\r\n //\r\n this.cdr.detectChanges();\r\n }\r\n\r\n mapColumns() {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n // if (this.showRowNumber) {\r\n // this.columnDefs.push({\r\n // headerName: AXConfig.get('layout.rtl') ? 'ردیف' : 'Row',\r\n // valueGetter: 'node.rowIndex + 1',\r\n // pinned: AXConfig.get('layout.rtl') ? 'right' : 'left'\r\n // });\r\n // }\r\n\r\n if (this.gridDetailTemplate) {\r\n if (this.columnDefs[0].checkboxSelection === true && this.columnDefs[0].field === '') {\r\n this.columnDefs[1].cellRenderer = 'agGroupCellRenderer';\r\n } else {\r\n this.columnDefs[0].cellRenderer = 'agGroupCellRenderer';\r\n }\r\n }\r\n\r\n if (this.hasChildField === 'null') {\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex === undefined && c.field !== '');\r\n if (groupColumn && this.groupHideOpenParents == false) {\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n // groupColumn.hide = true;\r\n }\r\n }\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n\r\n displayedColumnsChanged(e) {\r\n if (this.hasChildField === 'null') {\r\n const ee = e.columnApi.getAllDisplayedColumnGroups();\r\n const eee = ee.find((c) => c.colId !== 'ag-Grid-AutoColumn' && c.colId !== '0');\r\n if (eee && eee.colId) {\r\n this.autoGroupColumnDef = {\r\n headerName: eee.colDef.headerName,\r\n width: eee.colDef.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: eee.colDef.field\r\n };\r\n }\r\n // eee.hide = true;\r\n }\r\n }\r\n\r\n refresh(route: any[] = []) {\r\n if (this.remoteOperation && this.gridApi !== undefined) {\r\n // this.gridApi.purgeServerSideCache(route);\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n } else {\r\n // TODO : check fetch param\r\n this.dataSource.fetch(null);\r\n }\r\n }\r\n\r\n internalGridCellClicked(e: CellClickedEvent) {\r\n this.cellClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellDoubleClicked(e: CellClickedEvent) {\r\n this.cellDbClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellFocused(e: CellClickedEvent) {\r\n this.cellFocuse.emit({ data: this.mapCellEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n\r\n internalGridRowClicked(e: RowClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowClick.emit({ data: this.mapRowEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n internalGridRowDoubleClicked(e: CellClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowDbClick.emit({ data: this.mapRowEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n }\r\n\r\n differenceOf2Arrays(array1: any, array2: any) {\r\n const temp = [];\r\n for (const i in array1) {\r\n if (array2.indexOf(array1[i]) === -1) {\r\n temp.push(array1[i]);\r\n }\r\n }\r\n for (const i in array2) {\r\n if (array1.indexOf(array2[i]) === -1) {\r\n temp.push(array2[i]);\r\n }\r\n }\r\n return temp.sort((a, b) => a - b);\r\n }\r\n\r\n rowSelectionChanged(e) {\r\n // this.gridApi.forEachNode((node) => {\r\n // if (node.data[this.keyField] == e.node.data[this.keyField]) {\r\n // node.setSelected(e.node.selected);\r\n // }\r\n // });\r\n if (e.node.selected == true) {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n this.selectRow.push(e.data);\r\n } else {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n }\r\n this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });\r\n // console.log('e', e);\r\n // console.log('select', e.node.selected);\r\n // console.log('index', e.rowIndex);\r\n }\r\n\r\n internalGridSelectionChanged(e) {\r\n const args: AXGridRowSelectionEvent = { items: [] };\r\n const oldNodes = this.oldSelectionNodes;\r\n const nodes = this.gridApi.getSelectedNodes();\r\n nodes.forEach((i) => {\r\n args.items.push({\r\n rowLevel: i.level,\r\n rowIndex: i.rowIndex,\r\n data: i.data\r\n });\r\n });\r\n this.selectionChanged.emit({ data: args, component: this, htmlElement: this.ref.nativeElement });\r\n let action = nodes.length > oldNodes.length ? true : false;\r\n const node = this.differenceOf2Arrays(nodes, oldNodes);\r\n this.onRowSelectionChanged.emit({ component: this, selected: action, data: node, htmlElement: this.ref.nativeElement });\r\n this.oldSelectionNodes = nodes;\r\n }\r\n\r\n private mapCellEvent(e: CellEvent): AXGridCellEvent {\r\n return {\r\n rowLevel: 0,\r\n column: e.column,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n value: e.value\r\n };\r\n }\r\n\r\n private mapRowEvent(e: RowEvent): AXGridRowEvent {\r\n return {\r\n rowLevel: 0,\r\n data: e.data,\r\n rowIndex: e.rowIndex\r\n };\r\n }\r\n\r\n public deselectAll() {\r\n this.gridApi.deselectAll();\r\n }\r\n\r\n internalGetRowClass = (p: any) => {\r\n if (this.rowClass) {\r\n if (this.rowClass instanceof Function) {\r\n return this.rowClass({\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data\r\n });\r\n } else {\r\n return this.rowClass;\r\n }\r\n }\r\n };\r\n\r\n showLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n }\r\n\r\n hideLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.hideOverlay();\r\n }\r\n }\r\n\r\n internalGridSizeChanged(e: GridSizeChangedEvent) {\r\n if (e.clientWidth > 0 && e.clientHeight > 0) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n // this.refresh();\r\n // this.gridApi.paginationGoToFirstPage();\r\n }\r\n\r\n internalGridFirstDataRendered(e: FirstDataRenderedEvent) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n\r\n private performSizeColumnsToFit(api: GridApi) {\r\n if (this.sizeColumnsToFit) {\r\n api.sizeColumnsToFit();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-data-grid-filter',\r\n template: `\r\n <div class='ax-grid-filter-container'>\r\n <ng-content></ng-content>\r\n <div class='btn-group' role='group'>\r\n <button type='button' class='btn btn-primary btn-sm'>\r\n <i class='fas fa-filter'></i>\r\n </button>\r\n <button type='button' class='btn btn-danger btn-sm'>\r\n <i class='fas fa-trash-alt'></i>\r\n </button>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDataGridFilterComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataGridComponent } from './datagrid.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { AXDataSourceModule } from '@acorex/components';\r\nimport { AXGridTextColumn, TextFilterRenderer } from './columns/text-column.component';\r\nimport { AXGridCheckColumn, BooleanRenderer, BooleanFilterRenderer } from './columns/check-column.component';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXGridSelectionColumn } from './columns/selection-column.component';\r\nimport { CommandRenderer, AXGridCommandColumn } from './columns/command-column.component';\r\nimport { AXDataGridFilterComponent } from './filters/filter.component';\r\nimport { AXGridDateColumn, AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXDataGridRowTemplateComponent, AXDataGridRowTemplateRenderer } from './templates/row-template.component';\r\nimport { AXDataGridCellTemplateComponent, AXDataGridCellTemplateRenderer } from './templates/cell-template.component';\r\nimport { AXDataGridDetailTemplateComponent, AXDataGridDetailTemplateRenderer } from './templates/detail-template.component';\r\nimport { AXTextBoxModule } from '@acorex/components';\r\nimport { AXCheckBoxModule } from '@acorex/components';\r\nimport { AXSelectBoxModule } from '@acorex/components';\r\nimport { AXButtonModule } from '@acorex/components';\r\nimport { AXDatePickerModule } from '@acorex/components';\r\nimport 'ag-grid-enterprise';\r\nimport { AXGridRowNumberColumn } from './columns/row-number-column.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXDataGridComponent,\r\n AXGridTextColumn,\r\n AXGridCheckColumn,\r\n AXGridSelectionColumn,\r\n AXGridDateColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n TextFilterRenderer,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXDatePickerFilterComponent,\r\n CommandRenderer\r\n ],\r\n imports: [\r\n CommonModule,\r\n AXCoreModule,\r\n FormsModule,\r\n //AgGridModule,\r\n AXTextBoxModule,\r\n AXCheckBoxModule,\r\n AXSelectBoxModule,\r\n AXDataSourceModule,\r\n AXButtonModule,\r\n AXDatePickerModule,\r\n AgGridModule.withComponents([AXDatePickerFilterComponent])\r\n ],\r\n exports: [\r\n AXDataGridComponent,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXGridTextColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCheckColumn,\r\n AXGridDateColumn,\r\n AXGridSelectionColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer\r\n ],\r\n entryComponents: [\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer,\r\n TextFilterRenderer,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer\r\n ],\r\n providers: []\r\n})\r\nexport class AXDataGridModule {}\r\n","import { Component, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { AXDataGridComponent, AXDataGridSelectionChangeEvent } from '../../data-grid/datagrid.component';\r\nimport { AXGridDataColumn } from '../../data-grid/columns/column.component';\r\nimport { AXTranslator, AXButtonItem, AXConfig } from '@acorex/core';\r\nimport {\r\n AXToolbarSearchComponent,\r\n AXBasePopupPageComponent,\r\n AXMenuItemClickEvent,\r\n AXDataSourceComponent,\r\n AXDataSourceReadParams\r\n} from '@acorex/components';\r\n\r\n@Component({\r\n templateUrl: './data-lov-popup.component.html'\r\n})\r\nexport class AXDataLovPopupComponent extends AXBasePopupPageComponent {\r\n @ViewChild('grid', { static: true })\r\n grid: AXDataGridComponent;\r\n\r\n @ViewChild('searchBox')\r\n searchBox: AXToolbarSearchComponent;\r\n\r\n columns: AXGridDataColumn[] = [];\r\n\r\n selectedItems: any[] = [];\r\n\r\n keyField: string = '';\r\n allowNull: boolean = true;\r\n\r\n hasChildField: string;\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n selectedRows: any[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n dataSource: AXDataSourceComponent;\r\n\r\n selectionMode: string;\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n onDoneClick() {\r\n if (this.selectedItems) {\r\n this.close(this.selectedItems);\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n rowDoubleClicked(e) {\r\n console.log('s', e.data.data);\r\n if (this.selectionMode == 'single') {\r\n this.selectedItems = [];\r\n }\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.data[this.keyField]);\r\n this.selectedItems.push(e.data.data);\r\n\r\n this.onDoneClick();\r\n }\r\n\r\n onCancelClick() {\r\n this.close();\r\n }\r\n\r\n rowSelectionChange(e) {\r\n if (e.data.node.selected == true) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n this.selectedItems.push(e.data.node.data);\r\n } else {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n }\r\n }\r\n // console.log('ee', e)\r\n // // console.log('e', e);\r\n // console.log('select', e.data.node.selected);\r\n // console.log('index', e.data.rowIndex);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectedItems.forEach((ele) => {\r\n this.selectedRows.push(ele);\r\n });\r\n this.searchBox.focus();\r\n if (this.dataSource.onDataReceived) {\r\n this.dataSource.onDataReceived.subscribe((arg) => {\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n // onValueSearchChanged(e) {\r\n\r\n // const params: AXDataSourceReadParams = {}\r\n // params.searchText = e.value;\r\n // // params.take = 100;\r\n // // params.skip = 0\r\n // this.dataSource.fetch(params);\r\n // }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n text: AXTranslator.get('common.confirm'),\r\n name: 'confirm',\r\n style: 'ax primary',\r\n icon: 'far fa-check-circle'\r\n },\r\n {\r\n text: AXTranslator.get('common.cancel'),\r\n name: 'cancel',\r\n style: 'ax light',\r\n icon: 'far fa-times-circle'\r\n }\r\n ];\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'confirm') {\r\n this.onDoneClick();\r\n }\r\n if (e.name === 'cancel') {\r\n this.onCancelClick();\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ElementRef,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXPopupService, AXBaseInputComponent, AXBaseSizableComponent, AXElementSize, AXValidation } from '@acorex/components';\r\nimport { AXDataSourceComponent, AXSelectBoxComponent, AXDataEvent, AXValidatableComponent } from '@acorex/components';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXGridDataColumn } from '../data-grid/columns/column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-lov',\r\n templateUrl: './data-lov.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { style: 'width: 100%' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }]\r\n})\r\nexport class AXLOVComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private popup: AXPopupService, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @ViewChild('selectBox', { static: true })\r\n selectBox: AXSelectBoxComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n dataSource: AXDataSourceComponent;\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private columns: QueryList<AXGridDataColumn>;\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n textField: string = '';\r\n\r\n @Input()\r\n allowSearch: boolean = true;\r\n\r\n @Input()\r\n valueField: string = '';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n @Input()\r\n allowNull: boolean = true;\r\n\r\n @Input()\r\n popupSize: 'sm' | 'md' | 'lg' | 'full' = 'md';\r\n\r\n @Input()\r\n selectedItems: any[] = [];\r\n\r\n // @Input()\r\n // selectedValues: any[] = [];\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n chipsWidth: string = '';\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n caption: string;\r\n\r\n @Input()\r\n mode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n placeholder: string;\r\n\r\n @Output()\r\n onSelectionChange: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n focus(): void {\r\n this.selectBox.focus();\r\n }\r\n\r\n refresh() {\r\n this.selectBox.refresh();\r\n }\r\n\r\n handleButtonClick() {\r\n this.open();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n // this.selectVal = this.selectedValues;\r\n this.onSelectionChange.subscribe((c) => {\r\n this.clearValidationStyle(this.ref.nativeElement);\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'selectedItems', this.validation);\r\n }\r\n\r\n handleSelectChange(e) {\r\n // console.log('se' + JSON.stringify(e));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n public open(): Promise<any> {\r\n return new Promise((resolve) => {\r\n this.selectBox.dropdown.close();\r\n this.popup\r\n .open(AXDataLovPopupComponent, {\r\n size: this.popupSize,\r\n // closable: false,\r\n data: {\r\n dataSource: this.dataSource,\r\n selectionMode: this.mode,\r\n columns: this.columns.toArray(),\r\n // selectedItems: this.selectedValues,\r\n selectedItems: this.selectedItems,\r\n keyField: this.valueField,\r\n allowNull: this.allowNull,\r\n hasChildField: this.hasChildField,\r\n rtl: this.rtl\r\n },\r\n title: this.caption\r\n // size: this.size,\r\n })\r\n .then((c) => {\r\n if (c.data) {\r\n // this.selectedValues = [];\r\n this.selectedItems = [];\r\n c.data.forEach((elm) => {\r\n this.selectedItems.push(elm);\r\n });\r\n // this.selectedItems = c.data;\r\n // this.selectBox.refresh();\r\n // console.log('se' + JSON.stringify(this.selectedItems));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n if (resolve) {\r\n resolve(c.data);\r\n }\r\n } else {\r\n if (resolve) {\r\n resolve(this.selectedItems);\r\n }\r\n }\r\n\r\n this.selectBox.refresh();\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLOVComponent } from './data-lov.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXDataGridModule } from '../data-grid/datagrid.module';\r\nimport { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXLOVComponent, AXDataLovPopupComponent],\r\n imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],\r\n exports: [AXLOVComponent, AXDataLovPopupComponent],\r\n providers: [],\r\n entryComponents: [AXDataLovPopupComponent]\r\n})\r\nexport class AXLOVModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-data-grid.js","sources":["ng://@acorex/data-grid/lib/data-grid/templates/cell-template.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/check-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/command-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/date-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/selection-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/text-column.component.ts","ng://@acorex/data-grid/lib/data-grid/columns/row-number-column.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/row-template.component.ts","ng://@acorex/data-grid/lib/data-grid/templates/detail-template.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.component.ts","ng://@acorex/data-grid/lib/data-grid/filters/filter.component.ts","ng://@acorex/data-grid/lib/data-grid/datagrid.module.ts","ng://@acorex/data-grid/lib/data-lov/data-lov-popup/data-lov-popup.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.component.ts","ng://@acorex/data-grid/lib/data-lov/data-lov.module.ts","ng://@acorex/data-grid/acorex-data-grid.ts"],"sourcesContent":["import { Component, ContentChild, TemplateRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-cell-template',\r\n template: `<ng-content></ng-content>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridCellTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ng-container *ngTemplateOutlet='templateRef; context: { $implicit: rowData }'>\r\n </ng-container>\r\n `\r\n})\r\n\r\nexport class AXDataGridCellTemplateRenderer implements ICellRendererAngularComp {\r\n rowData: any;\r\n templateRef: TemplateRef<any>;\r\n\r\n constructor() { }\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.rowData = params.data;\r\n this.templateRef = (params as any).templateRef;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.rowData = params.data;\r\n return true;\r\n }\r\n}","import { AXConfig } from '@acorex/core';\r\nimport { Input, ContentChild, TemplateRef } from '@angular/core';\r\nimport { AXGridCellParams } from '../datagrid.events';\r\nimport { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';\r\nimport { AXDatePickerFilterComponent } from './date-column.component';\r\n\r\n\r\nexport abstract class AXGridDataColumn {\r\n\r\n\r\n @ContentChild(AXDataGridCellTemplateComponent)\r\n cellTemplate: AXDataGridCellTemplateComponent;\r\n\r\n @Input()\r\n width: number = 100;\r\n\r\n @Input()\r\n maxWidth: number;\r\n\r\n @Input()\r\n minWidth: number;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' | null = null;\r\n\r\n @Input()\r\n allowSorting: boolean = true;\r\n\r\n @Input()\r\n allowFiltering: boolean = AXConfig.get('datagrid.allowFiltering') || false;;\r\n\r\n @Input()\r\n cellClass: (params: AXGridCellParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n sort: 'asc' | 'desc' | null = null;\r\n\r\n @Input()\r\n field: string = '';\r\n\r\n @Input()\r\n caption: string = '';\r\n\r\n @Input()\r\n cellRendererParams: any;\r\n\r\n @Input()\r\n checkbox: boolean = false;\r\n\r\n @Input()\r\n headerCheckbox: boolean = false;\r\n\r\n @Input()\r\n groupIndex: number = -1;\r\n\r\n @Input()\r\n treeIndex: number = -1;\r\n\r\n @Input()\r\n enableRowGroup: boolean = false;\r\n\r\n @Input()\r\n hide: boolean = false;\r\n\r\n @Input()\r\n floatingFilter: boolean = AXConfig.get('datagrid.floatingFilter') || false;\r\n\r\n @Input()\r\n disableMenu: boolean = false;\r\n\r\n @Input()\r\n resizable: boolean = true;\r\n\r\n @Input()\r\n menuColumnDisable: boolean = false;\r\n\r\n @Input()\r\n menuItemDisable: boolean = false;\r\n\r\n constructor() { }\r\n\r\n render(): any {\r\n const col: any = {\r\n field: this.field,\r\n width: this.width,\r\n };\r\n col.resizable = this.resizable;\r\n col.suppressMenu = this.disableMenu;\r\n col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab']\r\n col.floatingFilter = this.floatingFilter;\r\n\r\n if (!this.allowFiltering) {\r\n col.filter = false;\r\n col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');\r\n col.floatingFilter = false;\r\n }\r\n if (this.menuColumnDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');\r\n }\r\n if (this.menuItemDisable == true) {\r\n col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');\r\n }\r\n if (this.caption) {\r\n col.headerName = this.caption;\r\n }\r\n if (this.minWidth) {\r\n col.minWidth = this.minWidth;\r\n }\r\n if (this.maxWidth) {\r\n col.maxWidth = this.maxWidth;\r\n }\r\n if (this.pinned) {\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n // TODO: Change based on layout\r\n }\r\n if (this.allowSorting) {\r\n col.sortable = this.allowSorting;\r\n }\r\n if (this.sort) {\r\n col.sort = this.sort;\r\n }\r\n\r\n if (this.groupIndex >= 0) {\r\n col.rowGroupIndex = this.groupIndex;\r\n col.rowGroup = true;\r\n this.enableRowGroup = true;\r\n }\r\n\r\n if (this.treeIndex >= 0) {\r\n col.rowGroupIndex = this.treeIndex;\r\n col.rowGroup = false;\r\n }\r\n if (this.hide) {\r\n col.hide = true;\r\n\r\n }\r\n if (this.enableRowGroup) {\r\n col.enableRowGroup = this.enableRowGroup;\r\n }\r\n\r\n if (this.cellClass) {\r\n const THAT = this;\r\n if (this.cellClass instanceof Function) {\r\n col.cellClass = (p) => {\r\n return THAT.cellClass({\r\n column: THAT,\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data,\r\n value: p.value\r\n });\r\n };\r\n }\r\n else {\r\n col.cellClass = this.cellClass;\r\n\r\n }\r\n }\r\n //\r\n if (this.cellTemplate != null) {\r\n col.cellRendererFramework = this.cellTemplate.renderer;\r\n col.cellRendererParams = this.cellTemplate.params;\r\n }\r\n\r\n if (this.checkbox) {\r\n col.checkboxSelection = (params) => {\r\n return true;\r\n };\r\n // col.headerCheckboxSelection = this.headerCheckbox;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { ICellRendererAngularComp, IFilterAngularComp } from 'ag-grid-angular';\r\nimport {\r\n ICellRendererParams,\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'ax-check-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class AXGridCheckColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = BooleanRenderer;\r\n }\r\n if (this.allowFiltering) {\r\n col.filterFramework = BooleanFilterRenderer;\r\n }\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-check-box [value]='value' readonly='true'></ax-check-box>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanRenderer implements ICellRendererAngularComp {\r\n value: boolean;\r\n constructor() { }\r\n agInit(params: ICellRendererParams): void {\r\n this.value = params.value;\r\n }\r\n refresh(params: ICellRendererParams): boolean {\r\n this.value = params.value;\r\n return true;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-select-box\r\n label='Select Box'\r\n [items]='selectItem'\r\n ></ax-select-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BooleanFilterRenderer implements IFilterAngularComp {\r\n public value?: boolean = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild('input', { static: true, read: ViewContainerRef }) public input;\r\n\r\n selectItem = [\r\n { value: 0, label: 'True' },\r\n { value: 1, label: 'False' },\r\n ];\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n this.value = model ? model.value : null;\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.element.nativeElement.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input, EventEmitter, ViewEncapsulation, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { AXGridRowCommandEvent } from '../datagrid.events';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\nexport type AXGridRowCommandFunction = (row: any) => AXMenuItem[];\r\n\r\n@Component({\r\n selector: 'ax-command-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridCommandColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXGridCommandColumn extends AXGridDataColumn {\r\n @Input()\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXGridRowCommandEvent> = new EventEmitter<AXGridRowCommandEvent>();\r\n\r\n render() {\r\n const col = super.render();\r\n if (!col.cellRendererFramework) {\r\n col.cellRendererFramework = CommandRenderer;\r\n }\r\n col.cellRendererParams = {\r\n items: this.items,\r\n onClick: (e) => {\r\n this.onItemClick.emit({\r\n command: e.name,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n rowLevel: e.rowLevel,\r\n htmlEvent: e.htmlEvent\r\n });\r\n }\r\n };\r\n col.sortable = false;\r\n col.filter = false;\r\n col.valueGetter = (params) => {\r\n return this.items;\r\n };\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-command-cell',\r\n template: `\r\n <button\r\n *ngFor=\"let item of items; let i = index\"\r\n class=\"ax button md ax-grid-command-button {{ item.style || 'ax primary blank' }}\"\r\n [class.disabled]=\"item.disable\"\r\n type=\"button\"\r\n [title]=\"item.tooltip\"\r\n [attr.tabindex]=\"i\"\r\n (click)=\"onClick(item, $event)\"\r\n >\r\n <i [ngClass]=\"item.icon\"></i>{{ item.text }}\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CommandRenderer implements ICellRendererAngularComp {\r\n items: AXMenuItem[] | AXGridRowCommandFunction = [];\r\n node: any;\r\n private clickCallback: Function;\r\n\r\n constructor() {}\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.mapParams(params);\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.mapParams(params);\r\n return true;\r\n }\r\n\r\n private mapParams(params: any) {\r\n this.node = params.node;\r\n this.items = typeof params.items == 'function' ? params.items({ data: this.node.data }) : Array.isArray(params.items) ? params.items : [];\r\n this.clickCallback = params.onClick;\r\n }\r\n\r\n onClick(item: AXMenuItem, e: MouseEvent) {\r\n if (this.clickCallback && !item.disable) {\r\n this.clickCallback({\r\n name: item.name,\r\n rowLevel: this.node.level,\r\n rowIndex: this.node.rowIndex,\r\n data: this.node.data,\r\n htmlEvent: e\r\n });\r\n }\r\n }\r\n}\r\n","\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ViewEncapsulation,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\nimport { AXGridDataColumn } from './column.component';\r\nimport { AXDateTime, AXConfig, AXCalendarType } from '@acorex/core';\r\nimport { AXDatePickerComponent } from '@acorex/components';\r\n@Component({\r\n selector: 'ax-date-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridDateColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridDateColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input()\r\n format: string;\r\n\r\n @Input()\r\n type: AXCalendarType = AXConfig.get('dateTime.type');\r\n\r\n render() {\r\n const col = super.render();\r\n col.cellRendererParams = {\r\n format: this.format,\r\n };\r\n\r\n col.comparator = (valueA: any, valueB: any) => {\r\n const date1 = AXDateTime.convert(valueA);\r\n const date2 = AXDateTime.convert(valueB);\r\n //\r\n if (date1 === null && date2 === null) {\r\n return 0;\r\n }\r\n if (date1 === null) {\r\n return -1;\r\n }\r\n if (date2 === null) {\r\n return 1;\r\n }\r\n return (date1.date.getTime() - date2.date.getTime());\r\n };\r\n\r\n col.valueFormatter = (params) => {\r\n const date: AXDateTime = AXDateTime.convert(params.value, this.type);\r\n if (date) {\r\n return date.format(this.format);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n col.filter = 'agDateColumnFilter';\r\n // col.floatingFilter = true;\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-picker-filter',\r\n template: `<ax-date-picker [selectableHoliday]=\"selectableHoliday\" [allowClear]=\"true\" (onValueChanged)=\"onValueChanged($event)\" size=\"sm\">\r\n </ax-date-picker>`,\r\n host: { },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDatePickerFilterComponent {\r\n @ViewChild(AXDatePickerComponent)\r\n datePicker: AXDatePickerComponent;\r\n @ViewChild('div', { read: ElementRef }) div: ElementRef;\r\n selectableHoliday: boolean = false;\r\n type: string = 'jalali';\r\n date: Date;\r\n params: any;\r\n picker: any;\r\n\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n ngOnDestroy() {\r\n console.log(`Destroying DateComponent`);\r\n }\r\n\r\n onDateChanged(selectedDates) {\r\n //this.date = selectedDates[0] || null;\r\n this.params.onDateChanged();\r\n }\r\n\r\n getDate(): Date {\r\n return this.date;\r\n }\r\n\r\n setDate(date: Date): void {\r\n this.date = date || null;\r\n //this.picker.setDate(date);\r\n }\r\n\r\n setInputPlaceholder(placeholder: string): void {\r\n //this.div.nativeElement.setAttribute('placeholder', placeholder);\r\n }\r\n onValueChanged(e) {\r\n\r\n this.setDate(e.value);\r\n this.onDateChanged(e.value);\r\n }\r\n\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-selection-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridSelectionColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n @Input()\r\n pinned: 'start' | 'end' = 'start';\r\n\r\n @Input()\r\n width: number = 40;\r\n\r\n render() {\r\n const col = super.render();\r\n col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n col.pinned = this.pinned === 'start' ? 'right' : 'left';\r\n col.filter = false;\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.minWidth = 5;\r\n col.width = this.width;\r\n col.floatingFilter = false;\r\n return col;\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n IFilterParams,\r\n RowNode,\r\n IDoesFilterPassParams,\r\n IAfterGuiAttachedParams\r\n} from 'ag-grid-community';\r\nimport { IFilterAngularComp } from 'ag-grid-angular';\r\nimport { AXTextBoxComponent } from '@acorex/components';\r\n\r\n\r\n@Component({\r\n selector: 'ax-text-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridTextColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n const col = super.render();\r\n // if (this.allowFiltering) {\r\n // col.filterFramework = TextFilterRenderer;\r\n // }\r\n col.filter = 'agTextColumnFilter';\r\n return col;\r\n }\r\n}\r\n\r\n@Component({\r\n template: `\r\n <ax-data-grid-filter>\r\n <ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>\r\n </ax-text-box>\r\n </ax-data-grid-filter>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TextFilterRenderer implements IFilterAngularComp {\r\n public value?: string = null;\r\n private params: IFilterParams;\r\n private valueGetter: (rowNode: RowNode) => any;\r\n @ViewChild(AXTextBoxComponent, { static: true })\r\n private input: AXTextBoxComponent;\r\n\r\n agInit(params: IFilterParams): void {\r\n this.params = params;\r\n this.valueGetter = params.valueGetter;\r\n }\r\n\r\n isFilterActive(): boolean {\r\n return this.value !== null && this.value !== undefined;\r\n }\r\n\r\n doesFilterPass(params: IDoesFilterPassParams): boolean {\r\n return this.value === this.valueGetter(params.node);\r\n }\r\n\r\n getModel(): any {\r\n return { value: this.value };\r\n }\r\n\r\n setModel(model: any): void {\r\n ;\r\n this.onChange(model ? model.value : null);\r\n }\r\n\r\n ngAfterViewInit(params: IAfterGuiAttachedParams): void {\r\n window.setTimeout(() => {\r\n this.input.focus();\r\n });\r\n }\r\n\r\n onChange(newValue): void {\r\n if (this.value !== newValue) {\r\n this.value = newValue;\r\n if (this.value === '') {\r\n this.value = null;\r\n }\r\n this.params.filterChangedCallback();\r\n }\r\n }\r\n}\r\n","import { AXGridDataColumn } from './column.component';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-row-number-column',\r\n template: '',\r\n providers: [{ provide: AXGridDataColumn, useExisting: AXGridRowNumberColumn }],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXGridRowNumberColumn extends AXGridDataColumn {\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Input()\r\n condition: (params) => boolean;\r\n\r\n render() {\r\n const col = super.render();\r\n // col.checkboxSelection = this.condition ? this.condition : true;\r\n // col.headerCheckboxSelection = true;\r\n\r\n (col.headerName = this.caption ? this.caption : AXConfig.get('layout.rtl') ? 'ردیف' : 'Row'),\r\n (col.valueGetter = 'node.rowIndex + 1'),\r\n (col.pinned = this.pinned == null ? null : this.pinned === 'start' ? 'right' : 'left'),\r\n (col.filter = false);\r\n col.resizable = true;\r\n col.sortable = false;\r\n col.width = this.width;\r\n\r\n return col;\r\n }\r\n}\r\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-row-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridRowTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridRowTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n templateRef: TemplateRef<any>;\r\n\r\n data: any;\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n agInit(params: any): void {\r\n this.data = params.data.callRecords;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import { Component, ContentChild, TemplateRef, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'ax-grid-detail-template',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateComponent {\r\n @ContentChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n renderer: any;\r\n params: any;\r\n constructor() {\r\n this.renderer = AXDataGridDetailTemplateRenderer;\r\n }\r\n ngOnInit(): void {\r\n this.params = {\r\n templateRef: this.templateRef\r\n }\r\n }\r\n\r\n @Input()\r\n height: number = 100;\r\n}\r\n\r\n@Component({\r\n template: `<ng-container *ngTemplateOutlet='templateRef; context: { $implicit: data }'></ng-container>`\r\n})\r\n\r\nexport class AXDataGridDetailTemplateRenderer implements ICellRendererAngularComp {\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n templateRef: TemplateRef<any>;\r\n data: any;\r\n\r\n agInit(params: any): void {\r\n this.data = params.data;\r\n this.templateRef = params.templateRef;\r\n }\r\n}","import {\r\n Component,\r\n ContentChild,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { AXDataSourceComponent } from '@acorex/components';\r\nimport { AXGridDataColumn } from './columns/column.component';\r\nimport { AXDataSourceReadParams } from '@acorex/components';\r\nimport {\r\n GridOptions,\r\n CellClickedEvent,\r\n RowClickedEvent,\r\n CellEvent,\r\n RowEvent,\r\n FirstDataRenderedEvent,\r\n GridSizeChangedEvent,\r\n GridApi\r\n} from 'ag-grid-community';\r\n\r\nimport { LicenseManager } from 'ag-grid-enterprise';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { AXGridCellEvent, AXGridRowEvent, AXGridRowSelectionEvent, AXGridRowParams } from './datagrid.events';\r\n\r\nimport { AXDataGridRowTemplateComponent } from './templates/row-template.component';\r\nimport { AXToolbarSearchComponent, AXToolbarComponent, AXDataEvent, AXValueEvent } from '@acorex/components';\r\nimport { AXDataGridDetailTemplateComponent } from './templates/detail-template.component';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nLicenseManager.prototype.validateLicense = function () {\r\n //console.info('Cracked by Arash Oshnoudi!');\r\n};\r\n\r\n// WatermarkComp.prototype.shouldDisplayWatermark = function () {\r\n// return false;\r\n// }\r\n\r\nexport class AXDataGridColumnsChangeEvent extends AXValueEvent<AXGridDataColumn[]> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDataGridCellEvent extends AXDataEvent<AXGridCellEvent> {\r\n component: AXDataGridComponent;\r\n}\r\nexport class AXDaagridRowClickEvent extends AXDataEvent<AXGridRowEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridSelectionChangeEvent extends AXDataEvent<AXGridRowSelectionEvent> {\r\n component: AXDataGridComponent;\r\n}\r\n\r\nexport class AXDataGridRowSelectionChangeEvent extends AXDataEvent<any> {\r\n component: AXDataGridComponent;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-data-grid',\r\n templateUrl: './datagrid.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n // changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXDataGridComponent {\r\n private gridApi;\r\n private dataSourceSuccessCallback;\r\n localeText: any;\r\n\r\n gridOptions: GridOptions;\r\n columnDefs: any[] = [];\r\n rowModelType = 'clientSide';\r\n fullWidthCellRendererFramework: any;\r\n fullWidthCellRendererParams: any;\r\n frameworkComponents: any = {};\r\n isFullWidthCell: Function;\r\n internalHeight: string = '100%';\r\n detailCellRenderer: any;\r\n detailCellRendererParams: any;\r\n detailRowHeight: number;\r\n masterDetail: boolean = false;\r\n treeData: boolean = false;\r\n enabelSelect: boolean = false;\r\n gridView: boolean = false;\r\n groupSelectsChildren: boolean = false;\r\n oldSelectionNodes: any[] = [];\r\n paginationAutoPageSize: boolean = true;\r\n paginationPageSize: number = 10;\r\n cacheBlockSize: number = 10;\r\n // @Input()\r\n // showRowNumber: boolean = true;\r\n\r\n @Input()\r\n public remoteOperation: boolean = false;\r\n\r\n @Input()\r\n public rowMultiSelectWithClick: boolean = true;\r\n\r\n @Input()\r\n public suppressRowClickSelection: boolean = true;\r\n\r\n @Input()\r\n public suppressCellSelection: boolean = false;\r\n\r\n @Input()\r\n public sizeColumnsToFit: boolean = true;\r\n\r\n @Input()\r\n showCheckBox: boolean = true;\r\n\r\n @Input()\r\n floatingFilter: boolean = false;\r\n\r\n // @Input()\r\n // takeCount: number;\r\n\r\n autoGroupColumnDef: any = {};\r\n\r\n @Input()\r\n selectionMode: 'single' | 'multiple' = 'single';\r\n\r\n // @Input()\r\n // allowFiltering: boolean = false;\r\n\r\n @Input()\r\n selectRow: any[] = [];\r\n\r\n @Input()\r\n rowGroupPanelShow: 'always' | 'never' = 'never';\r\n\r\n @Input()\r\n loadOnInit: boolean = true;\r\n\r\n // @Input()\r\n // groupDefaultExpanded: number = 0;\r\n\r\n @Input()\r\n keyField: string = 'null';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n private _searchText: string;\r\n @Input()\r\n public get searchText(): string {\r\n return this._searchText;\r\n }\r\n public set searchText(v: string) {\r\n if (v !== this._searchText) {\r\n this._searchText = v;\r\n if (this.gridApi) {\r\n this.refresh();\r\n this.gridApi.setQuickFilter(this.searchText);\r\n }\r\n }\r\n }\r\n\r\n private _filter: any[];\r\n @Input()\r\n public get filter(): any[] {\r\n return this._filter;\r\n }\r\n public set filter(v: any[]) {\r\n if (v !== this._filter) {\r\n this._filter = v;\r\n this._filter.forEach((f) => {\r\n const fc = this.gridApi.getFilterInstance(f.field);\r\n if (fc) {\r\n const ff = fc.getFrameworkComponentInstance();\r\n ff.setModel(f);\r\n }\r\n });\r\n }\r\n }\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private _inlineColumns: QueryList<AXGridDataColumn>;\r\n\r\n @Output()\r\n columnsChange: EventEmitter<AXDataGridColumnsChangeEvent> = new EventEmitter<AXDataGridColumnsChangeEvent>();\r\n\r\n private _columns: AXGridDataColumn[] = [];\r\n @Input()\r\n public get columns(): AXGridDataColumn[] {\r\n return this._inlineColumns ? [...this._columns, ...this._inlineColumns.toArray()] : this._columns;\r\n }\r\n\r\n public set columns(val: AXGridDataColumn[]) {\r\n if (val && val.length) {\r\n let old = this._columns;\r\n this._columns = val;\r\n this.columnsChange.emit({ component: this, value: val, oldValue: old, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n defaultColDef: any = {\r\n filter: true,\r\n floatingFilter: true\r\n };\r\n\r\n @Input()\r\n rowHeight: any;\r\n\r\n @ContentChild(AXToolbarSearchComponent, { static: true })\r\n searchInput: AXToolbarSearchComponent;\r\n\r\n @ContentChild(AXToolbarComponent, { static: true })\r\n toolbar: AXToolbarComponent;\r\n\r\n @ContentChild(AXDataGridRowTemplateComponent, { static: true })\r\n rowTemplate: AXDataGridRowTemplateComponent;\r\n\r\n @ContentChild(AXDataGridDetailTemplateComponent, { static: true })\r\n gridDetailTemplate: AXDataGridDetailTemplateComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n private _contentDataSource: AXDataSourceComponent;\r\n\r\n private _dataSource: AXDataSourceComponent;\r\n\r\n @Input()\r\n public get dataSource(): AXDataSourceComponent {\r\n return this._dataSource ? this._dataSource : this._contentDataSource;\r\n }\r\n\r\n public set dataSource(v: AXDataSourceComponent) {\r\n this._dataSource = v;\r\n }\r\n\r\n @Input()\r\n groupHideOpenParents: boolean = false;\r\n\r\n @Output()\r\n cellClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellDbClick: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n cellFocuse: EventEmitter<AXDataGridCellEvent> = new EventEmitter<AXDataGridCellEvent>();\r\n\r\n @Output()\r\n rowClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n rowDbClick: EventEmitter<AXDaagridRowClickEvent> = new EventEmitter<AXDaagridRowClickEvent>();\r\n\r\n @Output()\r\n selectionChanged: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n rowSelectionChange: EventEmitter<AXDataGridSelectionChangeEvent> = new EventEmitter<AXDataGridSelectionChangeEvent>();\r\n\r\n @Output()\r\n onRowSelectionChanged: EventEmitter<AXDataGridRowSelectionChangeEvent> = new EventEmitter<AXDataGridRowSelectionChangeEvent>();\r\n\r\n getRowHeight(param) {\r\n if (param.data && param.data.rowHeight && param.node.level == 0) {\r\n return param.data.rowHeight;\r\n } else if (this.masterDetail == true && param.node.level == 1) {\r\n return this.detailRowHeight;\r\n } else if (this.masterDetail == false && param.data && param.data.rowHeight) {\r\n return param.data.rowHeight;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n @Input()\r\n rowClass?: (params: AXGridRowParams) => (string | string[]) | (string | string[]);\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\r\n this.localeText = AXTranslator.get('dataGrid');\r\n }\r\n\r\n private calcHeight(): void {\r\n if (this.toolbar) {\r\n this.internalHeight = `calc(100% - ${40}px)`;\r\n } else {\r\n this.internalHeight = '100%';\r\n }\r\n }\r\n\r\n private get intenalGridDataSource() {\r\n const that = this;\r\n return {\r\n rowCount: null,\r\n getRows: (params) => {\r\n // that.gridApi.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount ? this.takeCount : params.api.paginationGetPageSize());\r\n that.dataSourceSuccessCallback = params.successCallback;\r\n const loadParams: AXDataSourceReadParams = {};\r\n loadParams.searchText = that.searchText;\r\n loadParams.skip = params.request.startRow;\r\n // loadParams.take = params.request.endRow - params.request.startRow;\r\n //// loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;\r\n\r\n loadParams.take = params.request.endRow - params.request.startRow;\r\n\r\n loadParams.sort = params.request.sortModel.map((c) => {\r\n return {\r\n field: c.colId,\r\n dir: c.sort\r\n };\r\n });\r\n // loadParams.groups = params.request.rowGroupCols.map(r => r.field);\r\n // loadParams.groupKeys = params.request.groupKeys;\r\n // loadParams.data = params.parentNode.data;\r\n loadParams.group = {\r\n fields: params.request.rowGroupCols.map((r) => r.field),\r\n keys: params.request.groupKeys,\r\n parentData: params.parentNode.data\r\n };\r\n loadParams.filter = params.request.filterModel;\r\n debugger;\r\n /// setTimeout(() => {\r\n that.dataSource.fetch(loadParams);\r\n // }, 5000);\r\n }\r\n };\r\n }\r\n getMainMenuItems(e) {\r\n return ['pinSubMenu', 'separator'];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.gridApi.destroy();\r\n }\r\n\r\n isServerSideGroup = (e) => {\r\n return e[this.hasChildField];\r\n };\r\n\r\n getColumnDefs = () => {\r\n return this.gridApi.getColumnDefs();\r\n };\r\n\r\n getCurrentPageNumber = () => {\r\n return {\r\n current: this.gridApi.paginationGetCurrentPage() + 1,\r\n total: this.gridApi.paginationGetTotalPages()\r\n };\r\n };\r\n\r\n paginationGoToPage(number) {\r\n this.gridApi.paginationGoToPage(number - 1);\r\n }\r\n\r\n getServerSideGroupKey = (e) => {\r\n return e[this.keyField];\r\n };\r\n // todo gridOptions: GridOptions\r\n internalGridReady(gridOptions) {\r\n //// gridOptions.api.checkGridSize();\r\n //// this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;\r\n // this.takeCount = this.takeCount < 20 ? 20 : this.takeCount;\r\n //// gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);\r\n\r\n this.gridApi = gridOptions.api;\r\n\r\n this.mapColumns();\r\n this.calcHeight();\r\n\r\n if (!this.loadOnInit) {\r\n this.loadOnInit = true;\r\n return;\r\n }\r\n\r\n if (this.remoteOperation) {\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n }\r\n\r\n if (!this.remoteOperation) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const that = this;\r\n if (this.rowTemplate) {\r\n this.fullWidthCellRendererFramework = this.rowTemplate.renderer;\r\n this.fullWidthCellRendererParams = this.rowTemplate.params;\r\n }\r\n this.frameworkComponents.agDateInput = AXDatePickerFilterComponent;\r\n\r\n if (this.gridDetailTemplate) {\r\n this.masterDetail = true;\r\n this.detailCellRendererParams = this.gridDetailTemplate.params;\r\n this.detailCellRenderer = 'detailRendererFramework';\r\n this.frameworkComponents.detailRendererFramework = this.gridDetailTemplate.renderer;\r\n\r\n this.detailRowHeight = this.gridDetailTemplate.height;\r\n }\r\n this.isFullWidthCell = () => {\r\n return that.rowTemplate != null;\r\n };\r\n //this.cdr\r\n }\r\n\r\n ngOnInit(): void {\r\n // if (this.takeCount && this.takeCount > 0) {\r\n // this.paginationPageSize = this.takeCount;\r\n // this.paginationAutoPageSize = false;\r\n // this.cacheBlockSize = this.takeCount;\r\n // }\r\n if (this.selectionMode === 'single') {\r\n this.groupSelectsChildren = false;\r\n }\r\n if (this.keyField !== 'null' && this.hasChildField !== 'null') {\r\n this.rowGroupPanelShow = 'never';\r\n this.treeData = true;\r\n }\r\n if (this.remoteOperation) {\r\n this.rowModelType = 'serverSide';\r\n }\r\n //\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n //\r\n }\r\n\r\n gridSelectRow() {\r\n if (this.gridApi) {\r\n if (this.selectRow && this.selectRow.length > 0 && this.gridApi !== undefined && typeof this.selectRow[0] != 'object') {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((id) => {\r\n if (node.data[this.keyField] === id) {\r\n select = true;\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.gridApi.forEachNode((node) => {\r\n if (node.data !== undefined) {\r\n let select: boolean = false;\r\n this.selectRow.forEach((item) => {\r\n if (item.rowIndex != undefined && item.rowLevel != undefined) {\r\n if (node.data[this.keyField] === item.data[this.keyField]) {\r\n select = true;\r\n }\r\n } else {\r\n if (node.data[this.keyField] === item[this.keyField]) {\r\n select = true;\r\n }\r\n }\r\n });\r\n node.setSelected(select);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // ngAfterViewChecked(): void {\r\n\r\n // //Called after every check of the component's view. Applies to components only.\r\n // //Add 'implements AfterViewChecked' to the class.\r\n // // this.selectByValues();\r\n // this.enabelSelect = false;\r\n\r\n // }\r\n rebuildGrid() {\r\n this.mapColumns();\r\n setTimeout(() => {\r\n if (this.sizeColumnsToFit) {\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n }, 10);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.treeData === true) {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex == '0' && c.field !== '');\r\n\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n //setTimeout(() => {\r\n this.gridView = true;\r\n //});\r\n\r\n this.enabelSelect = true;\r\n this.dataSource.onDataReceived.subscribe((_data) => {\r\n debugger;\r\n const result = _data.data.result;\r\n this.hideLoading();\r\n let items: any[];\r\n let totalCount: number;\r\n if (Array.isArray(result)) {\r\n items = result;\r\n totalCount = result.length;\r\n } else {\r\n items = result.items;\r\n totalCount = result.totalCount;\r\n }\r\n if (this.dataSourceSuccessCallback) {\r\n if (!this.loadOnInit) {\r\n this.dataSourceSuccessCallback([], 0);\r\n } else {\r\n this.dataSourceSuccessCallback(items, totalCount);\r\n }\r\n } else {\r\n if (!this.loadOnInit && this.gridApi !== undefined) {\r\n this.gridApi.setRowData([]);\r\n } else if (this.gridApi !== undefined) {\r\n this.gridApi.setRowData(items);\r\n }\r\n }\r\n\r\n this.gridSelectRow();\r\n });\r\n\r\n this.dataSource.onFetchStart.subscribe(() => {\r\n this.showLoading();\r\n });\r\n\r\n if (this.searchInput) {\r\n this.searchInput.onValueChanged.subscribe((c) => {\r\n this.searchText = c.value;\r\n });\r\n }\r\n //\r\n this.cdr.detectChanges();\r\n }\r\n\r\n mapColumns() {\r\n this.columnDefs = this.columns.map((c) => c.render());\r\n\r\n // if (this.showRowNumber) {\r\n // this.columnDefs.push({\r\n // headerName: AXConfig.get('layout.rtl') ? 'ردیف' : 'Row',\r\n // valueGetter: 'node.rowIndex + 1',\r\n // pinned: AXConfig.get('layout.rtl') ? 'right' : 'left'\r\n // });\r\n // }\r\n\r\n if (this.gridDetailTemplate) {\r\n if (this.columnDefs[0].checkboxSelection === true && this.columnDefs[0].field === '') {\r\n this.columnDefs[1].cellRenderer = 'agGroupCellRenderer';\r\n } else {\r\n this.columnDefs[0].cellRenderer = 'agGroupCellRenderer';\r\n }\r\n }\r\n\r\n if (this.hasChildField === 'null') {\r\n const groupColumn = this.columnDefs.find((c) => c.rowGroupIndex === undefined && c.field !== '');\r\n if (groupColumn && this.groupHideOpenParents == false) {\r\n this.autoGroupColumnDef = {\r\n headerName: groupColumn.headerName,\r\n width: groupColumn.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: groupColumn.field\r\n };\r\n // groupColumn.hide = true;\r\n }\r\n }\r\n\r\n this.columnDefs.forEach((elm) => {\r\n if (elm.rowGroupIndex > -1) {\r\n elm.hide = true;\r\n }\r\n });\r\n }\r\n\r\n displayedColumnsChanged(e) {\r\n if (this.hasChildField === 'null') {\r\n const ee = e.columnApi.getAllDisplayedColumnGroups();\r\n const eee = ee.find((c) => c.colId !== 'ag-Grid-AutoColumn' && c.colId !== '0');\r\n if (eee && eee.colId) {\r\n this.autoGroupColumnDef = {\r\n headerName: eee.colDef.headerName,\r\n width: eee.colDef.width,\r\n cellRendererParams: { checkbox: this.showCheckBox },\r\n field: eee.colDef.field\r\n };\r\n }\r\n // eee.hide = true;\r\n }\r\n }\r\n\r\n refresh(route: any[] = []) {\r\n if (this.remoteOperation && this.gridApi !== undefined) {\r\n // this.gridApi.purgeServerSideCache(route);\r\n this.gridApi.setServerSideDatasource(this.intenalGridDataSource);\r\n } else {\r\n // TODO : check fetch param\r\n this.dataSource.fetch(null);\r\n }\r\n }\r\n\r\n internalGridCellClicked(e: CellClickedEvent) {\r\n this.cellClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellDoubleClicked(e: CellClickedEvent) {\r\n this.cellDbClick.emit({ data: this.mapCellEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n internalGridCellFocused(e: CellClickedEvent) {\r\n this.cellFocuse.emit({ data: this.mapCellEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n\r\n internalGridRowClicked(e: RowClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowClick.emit({ data: this.mapRowEvent(e), component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n }\r\n\r\n internalGridRowDoubleClicked(e: CellClickedEvent) {\r\n if (!e.node.group) {\r\n this.rowDbClick.emit({ data: this.mapRowEvent(e), htmlElement: this.ref.nativeElement, component: this });\r\n }\r\n }\r\n\r\n differenceOf2Arrays(array1: any, array2: any) {\r\n const temp = [];\r\n for (const i in array1) {\r\n if (array2.indexOf(array1[i]) === -1) {\r\n temp.push(array1[i]);\r\n }\r\n }\r\n for (const i in array2) {\r\n if (array1.indexOf(array2[i]) === -1) {\r\n temp.push(array2[i]);\r\n }\r\n }\r\n return temp.sort((a, b) => a - b);\r\n }\r\n\r\n rowSelectionChanged(e) {\r\n // this.gridApi.forEachNode((node) => {\r\n // if (node.data[this.keyField] == e.node.data[this.keyField]) {\r\n // node.setSelected(e.node.selected);\r\n // }\r\n // });\r\n if (e.node.selected == true) {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n this.selectRow.push(e.data);\r\n } else {\r\n this.selectRow = this.selectRow.filter((c) => c[this.keyField] != e.data[this.keyField]);\r\n }\r\n this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });\r\n // console.log('e', e);\r\n // console.log('select', e.node.selected);\r\n // console.log('index', e.rowIndex);\r\n }\r\n\r\n internalGridSelectionChanged(e) {\r\n const args: AXGridRowSelectionEvent = { items: [] };\r\n const oldNodes = this.oldSelectionNodes;\r\n const nodes = this.gridApi.getSelectedNodes();\r\n nodes.forEach((i) => {\r\n args.items.push({\r\n rowLevel: i.level,\r\n rowIndex: i.rowIndex,\r\n data: i.data\r\n });\r\n });\r\n this.selectionChanged.emit({ data: args, component: this, htmlElement: this.ref.nativeElement });\r\n let action = nodes.length > oldNodes.length ? true : false;\r\n const node = this.differenceOf2Arrays(nodes, oldNodes);\r\n this.onRowSelectionChanged.emit({ component: this, selected: action, data: node, htmlElement: this.ref.nativeElement });\r\n this.oldSelectionNodes = nodes;\r\n }\r\n\r\n private mapCellEvent(e: CellEvent): AXGridCellEvent {\r\n return {\r\n rowLevel: 0,\r\n column: e.column,\r\n data: e.data,\r\n rowIndex: e.rowIndex,\r\n value: e.value\r\n };\r\n }\r\n\r\n private mapRowEvent(e: RowEvent): AXGridRowEvent {\r\n return {\r\n rowLevel: 0,\r\n data: e.data,\r\n rowIndex: e.rowIndex\r\n };\r\n }\r\n\r\n public deselectAll() {\r\n this.gridApi.deselectAll();\r\n }\r\n\r\n internalGetRowClass = (p: any) => {\r\n if (this.rowClass) {\r\n if (this.rowClass instanceof Function) {\r\n return this.rowClass({\r\n rowIndex: p.node.rowIndex,\r\n rowLevel: p.node.level,\r\n data: p.data\r\n });\r\n } else {\r\n return this.rowClass;\r\n }\r\n }\r\n };\r\n\r\n showLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n }\r\n\r\n hideLoading(): void {\r\n if (this.gridApi) {\r\n this.gridApi.hideOverlay();\r\n }\r\n }\r\n\r\n internalGridSizeChanged(e: GridSizeChangedEvent) {\r\n if (e.clientWidth > 0 && e.clientHeight > 0) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n // this.refresh();\r\n // this.gridApi.paginationGoToFirstPage();\r\n }\r\n\r\n internalGridFirstDataRendered(e: FirstDataRenderedEvent) {\r\n this.performSizeColumnsToFit(e.api);\r\n }\r\n\r\n private performSizeColumnsToFit(api: GridApi) {\r\n if (this.sizeColumnsToFit) {\r\n api.sizeColumnsToFit();\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ax-data-grid-filter',\r\n template: `\r\n <div class='ax-grid-filter-container'>\r\n <ng-content></ng-content>\r\n <div class='btn-group' role='group'>\r\n <button type='button' class='btn btn-primary btn-sm'>\r\n <i class='fas fa-filter'></i>\r\n </button>\r\n <button type='button' class='btn btn-danger btn-sm'>\r\n <i class='fas fa-trash-alt'></i>\r\n </button>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDataGridFilterComponent {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataGridComponent } from './datagrid.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { AXDataSourceModule } from '@acorex/components';\r\nimport { AXGridTextColumn, TextFilterRenderer } from './columns/text-column.component';\r\nimport { AXGridCheckColumn, BooleanRenderer, BooleanFilterRenderer } from './columns/check-column.component';\r\nimport { AXCoreModule } from '@acorex/core';\r\nimport { AXGridSelectionColumn } from './columns/selection-column.component';\r\nimport { CommandRenderer, AXGridCommandColumn } from './columns/command-column.component';\r\nimport { AXDataGridFilterComponent } from './filters/filter.component';\r\nimport { AXGridDateColumn, AXDatePickerFilterComponent } from './columns/date-column.component';\r\nimport { AXDataGridRowTemplateComponent, AXDataGridRowTemplateRenderer } from './templates/row-template.component';\r\nimport { AXDataGridCellTemplateComponent, AXDataGridCellTemplateRenderer } from './templates/cell-template.component';\r\nimport { AXDataGridDetailTemplateComponent, AXDataGridDetailTemplateRenderer } from './templates/detail-template.component';\r\nimport { AXTextBoxModule } from '@acorex/components';\r\nimport { AXCheckBoxModule } from '@acorex/components';\r\nimport { AXSelectBoxModule } from '@acorex/components';\r\nimport { AXButtonModule } from '@acorex/components';\r\nimport { AXDatePickerModule } from '@acorex/components';\r\nimport 'ag-grid-enterprise';\r\nimport { AXGridRowNumberColumn } from './columns/row-number-column.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXDataGridComponent,\r\n AXGridTextColumn,\r\n AXGridCheckColumn,\r\n AXGridSelectionColumn,\r\n AXGridDateColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n TextFilterRenderer,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXDatePickerFilterComponent,\r\n CommandRenderer\r\n ],\r\n imports: [\r\n CommonModule,\r\n AXCoreModule,\r\n FormsModule,\r\n //AgGridModule,\r\n AXTextBoxModule,\r\n AXCheckBoxModule,\r\n AXSelectBoxModule,\r\n AXDataSourceModule,\r\n AXButtonModule,\r\n AXDatePickerModule,\r\n AgGridModule.withComponents([AXDatePickerFilterComponent])\r\n ],\r\n exports: [\r\n AXDataGridComponent,\r\n AXDataGridFilterComponent,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer,\r\n AXGridTextColumn,\r\n AXGridRowNumberColumn,\r\n AXGridCheckColumn,\r\n AXGridDateColumn,\r\n AXGridSelectionColumn,\r\n AXGridCommandColumn,\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer\r\n ],\r\n entryComponents: [\r\n BooleanRenderer,\r\n BooleanFilterRenderer,\r\n CommandRenderer,\r\n TextFilterRenderer,\r\n AXDataGridRowTemplateComponent,\r\n AXDataGridDetailTemplateComponent,\r\n AXDataGridRowTemplateRenderer,\r\n AXDataGridDetailTemplateRenderer,\r\n AXDataGridCellTemplateComponent,\r\n AXDataGridCellTemplateRenderer\r\n ],\r\n providers: []\r\n})\r\nexport class AXDataGridModule {}\r\n","import { Component, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { AXDataGridComponent, AXDataGridSelectionChangeEvent } from '../../data-grid/datagrid.component';\r\nimport { AXGridDataColumn } from '../../data-grid/columns/column.component';\r\nimport { AXTranslator, AXButtonItem, AXConfig } from '@acorex/core';\r\nimport {\r\n AXToolbarSearchComponent,\r\n AXBasePopupPageComponent,\r\n AXMenuItemClickEvent,\r\n AXDataSourceComponent,\r\n AXDataSourceReadParams\r\n} from '@acorex/components';\r\n\r\n@Component({\r\n templateUrl: './data-lov-popup.component.html'\r\n})\r\nexport class AXDataLovPopupComponent extends AXBasePopupPageComponent {\r\n @ViewChild('grid', { static: true })\r\n grid: AXDataGridComponent;\r\n\r\n @ViewChild('searchBox')\r\n searchBox: AXToolbarSearchComponent;\r\n\r\n columns: AXGridDataColumn[] = [];\r\n\r\n selectedItems: any[] = [];\r\n\r\n keyField: string = '';\r\n allowNull: boolean = true;\r\n\r\n hasChildField: string;\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n selectedRows: any[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n dataSource: AXDataSourceComponent;\r\n\r\n selectionMode: string;\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n onDoneClick() {\r\n if (this.selectedItems) {\r\n this.close(this.selectedItems);\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n rowDoubleClicked(e) {\r\n console.log('s', e.data.data);\r\n if (this.selectionMode == 'single') {\r\n this.selectedItems = [];\r\n }\r\n\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.data[this.keyField]);\r\n this.selectedItems.push(e.data.data);\r\n\r\n this.onDoneClick();\r\n }\r\n\r\n onCancelClick() {\r\n this.close();\r\n }\r\n\r\n rowSelectionChange(e) {\r\n if (e.data.node.selected == true) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n this.selectedItems.push(e.data.node.data);\r\n } else {\r\n if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {\r\n this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);\r\n }\r\n }\r\n // console.log('ee', e)\r\n // // console.log('e', e);\r\n // console.log('select', e.data.node.selected);\r\n // console.log('index', e.data.rowIndex);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectedItems.forEach((ele) => {\r\n this.selectedRows.push(ele);\r\n });\r\n this.searchBox.focus();\r\n if (this.dataSource.onDataReceived) {\r\n this.dataSource.onDataReceived.subscribe((arg) => {\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n // onValueSearchChanged(e) {\r\n\r\n // const params: AXDataSourceReadParams = {}\r\n // params.searchText = e.value;\r\n // // params.take = 100;\r\n // // params.skip = 0\r\n // this.dataSource.fetch(params);\r\n // }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n text: AXTranslator.get('common.confirm'),\r\n name: 'confirm',\r\n style: 'ax primary',\r\n icon: 'far fa-check-circle'\r\n },\r\n {\r\n text: AXTranslator.get('common.cancel'),\r\n name: 'cancel',\r\n style: 'ax light',\r\n icon: 'far fa-times-circle'\r\n }\r\n ];\r\n }\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'confirm') {\r\n this.onDoneClick();\r\n }\r\n if (e.name === 'cancel') {\r\n this.onCancelClick();\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ContentChildren,\r\n QueryList,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ElementRef,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { AXPopupService, AXBaseInputComponent, AXBaseSizableComponent, AXElementSize, AXValidation } from '@acorex/components';\r\nimport { AXDataSourceComponent, AXSelectBoxComponent, AXDataEvent, AXValidatableComponent } from '@acorex/components';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXGridDataColumn } from '../data-grid/columns/column.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-lov',\r\n templateUrl: './data-lov.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { style: 'width: 100%' },\r\n providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }]\r\n})\r\nexport class AXLOVComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseInputComponent {\r\n @ContentChild(AXValidation, { static: true })\r\n private _contentValidation: AXValidation;\r\n private _validation: AXValidation;\r\n\r\n @Input()\r\n public get validation(): AXValidation {\r\n return this._validation ? this._validation : this._contentValidation;\r\n }\r\n public set validation(v: AXValidation) {\r\n this._validation = v;\r\n }\r\n\r\n constructor(private popup: AXPopupService, private ref: ElementRef) {\r\n super();\r\n }\r\n\r\n @ViewChild('selectBox', { static: true })\r\n selectBox: AXSelectBoxComponent;\r\n\r\n @ContentChild(AXDataSourceComponent, { static: true })\r\n dataSource: AXDataSourceComponent;\r\n\r\n @ContentChildren(AXGridDataColumn)\r\n private columns: QueryList<AXGridDataColumn>;\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n rowTemplate: TemplateRef<any>;\r\n\r\n @Input()\r\n textField: string = '';\r\n\r\n @Input()\r\n allowSearch: boolean = true;\r\n\r\n @Input()\r\n valueField: string = '';\r\n\r\n @Input()\r\n hasChildField: string = 'null';\r\n\r\n @Input()\r\n allowNull: boolean = true;\r\n\r\n @Input()\r\n popupSize: 'sm' | 'md' | 'lg' | 'full' = 'md';\r\n\r\n @Input()\r\n selectedItems: any[] = [];\r\n\r\n // @Input()\r\n // selectedValues: any[] = [];\r\n\r\n @Input()\r\n readonly: boolean = false;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n chipsWidth: string = '';\r\n\r\n @Input()\r\n size: AXElementSize = 'md';\r\n\r\n @Input()\r\n caption: string;\r\n\r\n @Input()\r\n mode: 'single' | 'multiple' = 'single';\r\n\r\n @Input()\r\n placeholder: string;\r\n\r\n @Output()\r\n onSelectionChange: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\r\n\r\n @Input()\r\n rtl: boolean = AXConfig.get('layout.rtl');\r\n\r\n focus(): void {\r\n this.selectBox.focus();\r\n }\r\n\r\n refresh() {\r\n this.selectBox.refresh();\r\n }\r\n\r\n handleButtonClick() {\r\n this.open();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n // this.selectVal = this.selectedValues;\r\n this.onSelectionChange.subscribe((c) => {\r\n this.clearValidationStyle(this.ref.nativeElement);\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.initValidation(this.ref, 'selectedItems', this.validation);\r\n }\r\n\r\n handleSelectChange(e) {\r\n // console.log('se' + JSON.stringify(e));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n }\r\n\r\n public open(): Promise<any> {\r\n return new Promise((resolve) => {\r\n this.selectBox.dropdown.close();\r\n this.popup\r\n .open(AXDataLovPopupComponent, {\r\n size: this.popupSize,\r\n // closable: false,\r\n data: {\r\n dataSource: this.dataSource,\r\n selectionMode: this.mode,\r\n columns: this.columns.toArray(),\r\n // selectedItems: this.selectedValues,\r\n selectedItems: this.selectedItems,\r\n keyField: this.valueField,\r\n allowNull: this.allowNull,\r\n hasChildField: this.hasChildField,\r\n rtl: this.rtl\r\n },\r\n title: this.caption\r\n // size: this.size,\r\n })\r\n .then((c) => {\r\n if (c.data) {\r\n // this.selectedValues = [];\r\n this.selectedItems = [];\r\n c.data.forEach((elm) => {\r\n this.selectedItems.push(elm);\r\n });\r\n // this.selectedItems = c.data;\r\n // this.selectBox.refresh();\r\n // console.log('se' + JSON.stringify(this.selectedItems));\r\n this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });\r\n if (resolve) {\r\n resolve(c.data);\r\n }\r\n } else {\r\n if (resolve) {\r\n resolve(this.selectedItems);\r\n }\r\n }\r\n\r\n this.selectBox.refresh();\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLOVComponent } from './data-lov.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';\r\nimport { AXDataGridModule } from '../data-grid/datagrid.module';\r\nimport { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXLOVComponent, AXDataLovPopupComponent],\r\n imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],\r\n exports: [AXLOVComponent, AXDataLovPopupComponent],\r\n providers: [],\r\n entryComponents: [AXDataLovPopupComponent]\r\n})\r\nexport class AXLOVModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
@@ -864,6 +864,8 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
864
864
|
this.sizeColumnsToFit = true;
|
865
865
|
this.showCheckBox = true;
|
866
866
|
this.floatingFilter = false;
|
867
|
+
// @Input()
|
868
|
+
// takeCount: number;
|
867
869
|
this.autoGroupColumnDef = {};
|
868
870
|
this.selectionMode = 'single';
|
869
871
|
// @Input()
|
@@ -897,6 +899,12 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
897
899
|
this.getColumnDefs = function () {
|
898
900
|
return _this.gridApi.getColumnDefs();
|
899
901
|
};
|
902
|
+
this.getCurrentPageNumber = function () {
|
903
|
+
return {
|
904
|
+
current: _this.gridApi.paginationGetCurrentPage() + 1,
|
905
|
+
total: _this.gridApi.paginationGetTotalPages()
|
906
|
+
};
|
907
|
+
};
|
900
908
|
this.getServerSideGroupKey = function (e) {
|
901
909
|
return e[_this.keyField];
|
902
910
|
};
|
@@ -1010,7 +1018,8 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1010
1018
|
loadParams.searchText = that.searchText;
|
1011
1019
|
loadParams.skip = params.request.startRow;
|
1012
1020
|
// loadParams.take = params.request.endRow - params.request.startRow;
|
1013
|
-
loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;
|
1021
|
+
//// loadParams.take = that.takeCount ? that.takeCount : params.api.paginationGetPageSize() * 2;
|
1022
|
+
loadParams.take = params.request.endRow - params.request.startRow;
|
1014
1023
|
loadParams.sort = params.request.sortModel.map(function (c) {
|
1015
1024
|
return {
|
1016
1025
|
field: c.colId,
|
@@ -1026,7 +1035,10 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1026
1035
|
parentData: params.parentNode.data
|
1027
1036
|
};
|
1028
1037
|
loadParams.filter = params.request.filterModel;
|
1038
|
+
debugger;
|
1039
|
+
/// setTimeout(() => {
|
1029
1040
|
that.dataSource.fetch(loadParams);
|
1041
|
+
// }, 5000);
|
1030
1042
|
}
|
1031
1043
|
};
|
1032
1044
|
},
|
@@ -1039,12 +1051,15 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1039
1051
|
AXDataGridComponent.prototype.ngOnDestroy = function () {
|
1040
1052
|
this.gridApi.destroy();
|
1041
1053
|
};
|
1054
|
+
AXDataGridComponent.prototype.paginationGoToPage = function (number) {
|
1055
|
+
this.gridApi.paginationGoToPage(number - 1);
|
1056
|
+
};
|
1042
1057
|
// todo gridOptions: GridOptions
|
1043
1058
|
AXDataGridComponent.prototype.internalGridReady = function (gridOptions) {
|
1044
|
-
gridOptions.api.checkGridSize();
|
1045
|
-
this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;
|
1059
|
+
//// gridOptions.api.checkGridSize();
|
1060
|
+
//// this.takeCount = this.takeCount ? this.takeCount : gridOptions.api.paginationGetPageSize() * 2;
|
1046
1061
|
// this.takeCount = this.takeCount < 20 ? 20 : this.takeCount;
|
1047
|
-
gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);
|
1062
|
+
//// gridOptions.api.gridOptionsWrapper.setProperty('cacheBlockSize', this.takeCount);
|
1048
1063
|
this.gridApi = gridOptions.api;
|
1049
1064
|
this.mapColumns();
|
1050
1065
|
this.calcHeight();
|
@@ -1079,11 +1094,11 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1079
1094
|
//this.cdr
|
1080
1095
|
};
|
1081
1096
|
AXDataGridComponent.prototype.ngOnInit = function () {
|
1082
|
-
if (this.takeCount && this.takeCount > 0) {
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
}
|
1097
|
+
// if (this.takeCount && this.takeCount > 0) {
|
1098
|
+
// this.paginationPageSize = this.takeCount;
|
1099
|
+
// this.paginationAutoPageSize = false;
|
1100
|
+
// this.cacheBlockSize = this.takeCount;
|
1101
|
+
// }
|
1087
1102
|
if (this.selectionMode === 'single') {
|
1088
1103
|
this.groupSelectsChildren = false;
|
1089
1104
|
}
|
@@ -1175,6 +1190,7 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1175
1190
|
//});
|
1176
1191
|
this.enabelSelect = true;
|
1177
1192
|
this.dataSource.onDataReceived.subscribe(function (_data) {
|
1193
|
+
debugger;
|
1178
1194
|
var result = _data.data.result;
|
1179
1195
|
_this.hideLoading();
|
1180
1196
|
var items;
|
@@ -1422,10 +1438,6 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
1422
1438
|
Input(),
|
1423
1439
|
__metadata("design:type", Boolean)
|
1424
1440
|
], AXDataGridComponent.prototype, "floatingFilter", void 0);
|
1425
|
-
__decorate([
|
1426
|
-
Input(),
|
1427
|
-
__metadata("design:type", Number)
|
1428
|
-
], AXDataGridComponent.prototype, "takeCount", void 0);
|
1429
1441
|
__decorate([
|
1430
1442
|
Input(),
|
1431
1443
|
__metadata("design:type", String)
|