bways-grid 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +76 -0
  2. package/fesm2022/bways-grid.mjs +3440 -0
  3. package/fesm2022/bways-grid.mjs.map +1 -0
  4. package/index.d.ts +5 -0
  5. package/lib/bways-grid.module.d.ts +13 -0
  6. package/lib/components/cell/cell.component.d.ts +20 -0
  7. package/lib/components/choose-columns/choose-columns.component.d.ts +17 -0
  8. package/lib/components/column-tool-panel/column-tool-panel.component.d.ts +36 -0
  9. package/lib/components/filter-tool-panel/filter-tool-panel.component.d.ts +63 -0
  10. package/lib/components/header/header.component.d.ts +42 -0
  11. package/lib/components/header-filter/header-filter.component.d.ts +31 -0
  12. package/lib/components/header-menu/header-menu.component.d.ts +41 -0
  13. package/lib/components/pagination/pagination.component.d.ts +22 -0
  14. package/lib/components/row/row.component.d.ts +19 -0
  15. package/lib/components/side-bar/side-bar.component.d.ts +42 -0
  16. package/lib/components/ultra-grid/ultra-grid.component.d.ts +155 -0
  17. package/lib/core/grid-engine.service.d.ts +14 -0
  18. package/lib/core/grid-flattener.service.d.ts +8 -0
  19. package/lib/core/row-cache.d.ts +10 -0
  20. package/lib/core/viewport-manager.d.ts +21 -0
  21. package/lib/datasources/infinite-scroll.datasource.d.ts +17 -0
  22. package/lib/datasources/server-datasource.interface.d.ts +14 -0
  23. package/lib/directives/column-resize.directive.d.ts +18 -0
  24. package/lib/models/column.model.d.ts +21 -0
  25. package/lib/models/csv-export.model.d.ts +12 -0
  26. package/lib/models/filter.model.d.ts +18 -0
  27. package/lib/models/grid-config.model.d.ts +11 -0
  28. package/lib/models/row.model.d.ts +26 -0
  29. package/lib/services/csv-export.service.d.ts +11 -0
  30. package/lib/workers/generated/export.worker.code.d.ts +1 -0
  31. package/lib/workers/generated/sorting.worker.code.d.ts +1 -0
  32. package/package.json +23 -0
  33. package/public-api.d.ts +19 -0
  34. package/src/lib/workers/export.worker.ts +110 -0
  35. package/src/lib/workers/generated/export.worker.code.ts +7 -0
  36. package/src/lib/workers/generated/sorting.worker.code.ts +4 -0
  37. package/src/lib/workers/sorting.worker.ts +423 -0
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./components/ultra-grid/ultra-grid.component";
3
+ import * as i2 from "./components/header/header.component";
4
+ import * as i3 from "./components/row/row.component";
5
+ import * as i4 from "./components/cell/cell.component";
6
+ import * as i5 from "./components/pagination/pagination.component";
7
+ import * as i6 from "./directives/column-resize.directive";
8
+ import * as i7 from "./components/side-bar/side-bar.component";
9
+ export declare class BwaysGridModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<BwaysGridModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BwaysGridModule, never, [typeof i1.UltraGridComponent, typeof i2.HeaderComponent, typeof i3.RowComponent, typeof i4.CellComponent, typeof i5.PaginationComponent, typeof i6.ColumnResizeDirective, typeof i7.SideBarComponent], [typeof i1.UltraGridComponent, typeof i2.HeaderComponent, typeof i3.RowComponent, typeof i4.CellComponent, typeof i5.PaginationComponent, typeof i6.ColumnResizeDirective, typeof i7.SideBarComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<BwaysGridModule>;
13
+ }
@@ -0,0 +1,20 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { UltraGridColumn } from '../../models/column.model';
3
+ import { UltraGridRow } from '../../models/row.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CellComponent {
6
+ column: UltraGridColumn;
7
+ row: UltraGridRow;
8
+ isSelected?: boolean;
9
+ isFirstColumn: boolean;
10
+ groupExpanded: boolean;
11
+ groupToggleClicked: EventEmitter<void>;
12
+ get isGroup(): boolean;
13
+ get isGroupFooter(): boolean;
14
+ get value(): any;
15
+ get formattedFooterValue(): string;
16
+ onCheckboxClick(event: MouseEvent): void;
17
+ onGroupToggleClick(event: MouseEvent): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<CellComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<CellComponent, "ug-cell", never, { "column": { "alias": "column"; "required": false; }; "row": { "alias": "row"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "isFirstColumn": { "alias": "isFirstColumn"; "required": false; }; "groupExpanded": { "alias": "groupExpanded"; "required": false; }; }, { "groupToggleClicked": "groupToggleClicked"; }, never, never, true, never>;
20
+ }
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
3
+ import { UltraGridColumn } from '../../models/column.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ChooseColumnsComponent {
6
+ columns: UltraGridColumn[];
7
+ columnsChanged: EventEmitter<UltraGridColumn[]>;
8
+ closePanel: EventEmitter<void>;
9
+ searchQuery: string;
10
+ onClose(): void;
11
+ matchesSearch(col: UltraGridColumn): boolean;
12
+ toggleVisibility(col: UltraGridColumn): void;
13
+ onDrop(event: CdkDragDrop<UltraGridColumn[]>): void;
14
+ private emitChange;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChooseColumnsComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChooseColumnsComponent, "ug-choose-columns", never, { "columns": { "alias": "columns"; "required": false; }; }, { "columnsChanged": "columnsChanged"; "closePanel": "closePanel"; }, never, never, true, never>;
17
+ }
@@ -0,0 +1,36 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
3
+ import { UltraGridColumn, ValueColumnModel } from '../../models/column.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ColumnToolPanelComponent implements OnChanges {
6
+ columns: UltraGridColumn[];
7
+ groupModel: string[];
8
+ valuesModel: ValueColumnModel[];
9
+ columnsUpdated: EventEmitter<UltraGridColumn[]>;
10
+ groupModelChanged: EventEmitter<string[]>;
11
+ valuesModelChanged: EventEmitter<ValueColumnModel[]>;
12
+ exportCsvClicked: EventEmitter<void>;
13
+ displayColumns: UltraGridColumn[];
14
+ groupColumns: UltraGridColumn[];
15
+ valueColumns: ValueColumnModel[];
16
+ searchQuery: string;
17
+ pivotMode: boolean;
18
+ openDropdownField: string | null;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ private rebuildGroupColumns;
21
+ getColumnHeader(field: string): string;
22
+ applySearch(): void;
23
+ toggleVisibility(col: UltraGridColumn): void;
24
+ onDrop(event: CdkDragDrop<UltraGridColumn[]>): void;
25
+ onGroupDrop(event: CdkDragDrop<UltraGridColumn[]>): void;
26
+ removeGroup(col: UltraGridColumn): void;
27
+ private emitGroupChange;
28
+ private rebuildValueColumns;
29
+ onValueDrop(event: CdkDragDrop<any[]>): void;
30
+ removeValue(field: string): void;
31
+ toggleAggDropdown(field: string): void;
32
+ setAggFunc(vCol: ValueColumnModel, func: 'sum' | 'min' | 'max' | 'count' | 'avg'): void;
33
+ private emitValuesChange;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnToolPanelComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnToolPanelComponent, "ug-column-tool-panel", never, { "columns": { "alias": "columns"; "required": false; }; "groupModel": { "alias": "groupModel"; "required": false; }; "valuesModel": { "alias": "valuesModel"; "required": false; }; }, { "columnsUpdated": "columnsUpdated"; "groupModelChanged": "groupModelChanged"; "valuesModelChanged": "valuesModelChanged"; "exportCsvClicked": "exportCsvClicked"; }, never, never, true, never>;
36
+ }
@@ -0,0 +1,63 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
2
+ import { UltraGridColumn } from '../../models/column.model';
3
+ import { FilterConditionType, JoinOperator, ColumnConditionFilter } from '../../models/filter.model';
4
+ import * as i0 from "@angular/core";
5
+ interface FilterSection {
6
+ column: UltraGridColumn;
7
+ expanded: boolean;
8
+ searchQuery: string;
9
+ uniqueValues: any[];
10
+ displayValues: any[];
11
+ selectedValues: Set<any>;
12
+ hasActiveFilter: boolean;
13
+ filterOptions: {
14
+ value: FilterConditionType;
15
+ label: string;
16
+ }[];
17
+ cond1Type: FilterConditionType;
18
+ cond1Value: string;
19
+ condOperator: JoinOperator;
20
+ cond2Type: FilterConditionType;
21
+ cond2Value: string;
22
+ cond2ValueTo: string;
23
+ hasConditionFilter: boolean;
24
+ }
25
+ export declare class FilterToolPanelComponent implements OnChanges {
26
+ private cdr;
27
+ columns: UltraGridColumn[];
28
+ rowData: any[];
29
+ activeFilters: Map<string, Set<any>>;
30
+ filterApplied: EventEmitter<{
31
+ field: string;
32
+ selected: Set<any>;
33
+ }>;
34
+ conditionFilterChanged: EventEmitter<{
35
+ field: string;
36
+ filter: ColumnConditionFilter | null;
37
+ }>;
38
+ clearAllFilters: EventEmitter<void>;
39
+ sections: FilterSection[];
40
+ private _loadedFields;
41
+ constructor(cdr: ChangeDetectorRef);
42
+ get hasAnyActiveFilter(): boolean;
43
+ ngOnChanges(changes: SimpleChanges): void;
44
+ private buildSections;
45
+ private detectNumericColumn;
46
+ private ensureSectionLoaded;
47
+ private syncActiveFilters;
48
+ onConditionChanged(section: FilterSection): void;
49
+ toggleSection(section: FilterSection): void;
50
+ expandAll(): void;
51
+ collapseAll(): void;
52
+ onSectionSearch(section: FilterSection): void;
53
+ private applySearchOnSection;
54
+ isSectionAllSelected(section: FilterSection): boolean;
55
+ toggleSectionAll(section: FilterSection): void;
56
+ toggleValue(section: FilterSection, val: any): void;
57
+ private emitFilter;
58
+ onClearAll(): void;
59
+ trackByField(index: number, section: FilterSection): string;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterToolPanelComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterToolPanelComponent, "ug-filter-tool-panel", never, { "columns": { "alias": "columns"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "activeFilters": { "alias": "activeFilters"; "required": false; }; }, { "filterApplied": "filterApplied"; "conditionFilterChanged": "conditionFilterChanged"; "clearAllFilters": "clearAllFilters"; }, never, never, true, never>;
62
+ }
63
+ export {};
@@ -0,0 +1,42 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
3
+ import { UltraGridColumn } from '../../models/column.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class HeaderComponent {
6
+ columns: UltraGridColumn[];
7
+ sortModel: {
8
+ field: string;
9
+ direction: 'asc' | 'desc';
10
+ }[];
11
+ isAllSelected: boolean;
12
+ sortChanged: EventEmitter<{
13
+ field: string;
14
+ direction: "asc" | "desc" | null;
15
+ }>;
16
+ columnsReordered: EventEmitter<UltraGridColumn[]>;
17
+ columnResized: EventEmitter<{
18
+ field: string;
19
+ width: number;
20
+ }>;
21
+ headerCheckboxClicked: EventEmitter<boolean>;
22
+ menuClicked: EventEmitter<{
23
+ column: UltraGridColumn;
24
+ event: MouseEvent;
25
+ }>;
26
+ filterClicked: EventEmitter<{
27
+ column: UltraGridColumn;
28
+ event: MouseEvent;
29
+ }>;
30
+ getSortDirection(field: string): 'asc' | 'desc' | null;
31
+ onSort(col: UltraGridColumn): void;
32
+ onColumnDrop(event: CdkDragDrop<string[]>): void;
33
+ onResize(event: {
34
+ field: string;
35
+ width: number;
36
+ }): void;
37
+ onHeaderCheckboxClick(event: MouseEvent): void;
38
+ onMenuClick(column: UltraGridColumn, event: MouseEvent): void;
39
+ onFilterClick(column: UltraGridColumn, event: MouseEvent): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "ug-header", never, { "columns": { "alias": "columns"; "required": false; }; "sortModel": { "alias": "sortModel"; "required": false; }; "isAllSelected": { "alias": "isAllSelected"; "required": false; }; }, { "sortChanged": "sortChanged"; "columnsReordered": "columnsReordered"; "columnResized": "columnResized"; "headerCheckboxClicked": "headerCheckboxClicked"; "menuClicked": "menuClicked"; "filterClicked": "filterClicked"; }, never, never, true, never>;
42
+ }
@@ -0,0 +1,31 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { UltraGridColumn } from '../../models/column.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HeaderFilterComponent implements OnChanges {
5
+ column?: UltraGridColumn;
6
+ isOpen: boolean;
7
+ position: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ uniqueValues: any[];
12
+ activeFilterSet: Set<any>;
13
+ closeFilter: EventEmitter<void>;
14
+ filterApplied: EventEmitter<{
15
+ field: string;
16
+ selected: Set<any>;
17
+ }>;
18
+ searchQuery: string;
19
+ displayValues: any[];
20
+ selectedValues: Set<any>;
21
+ ngOnChanges(changes: SimpleChanges): void;
22
+ onClose(): void;
23
+ onSearchChanged(): void;
24
+ private applySearch;
25
+ get isAllSelected(): boolean;
26
+ toggleAll(): void;
27
+ toggleValue(val: any): void;
28
+ private emitFilter;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderFilterComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderFilterComponent, "ug-header-filter", never, { "column": { "alias": "column"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "position": { "alias": "position"; "required": false; }; "uniqueValues": { "alias": "uniqueValues"; "required": false; }; "activeFilterSet": { "alias": "activeFilterSet"; "required": false; }; }, { "closeFilter": "closeFilter"; "filterApplied": "filterApplied"; }, never, never, true, never>;
31
+ }
@@ -0,0 +1,41 @@
1
+ import { EventEmitter, ElementRef } from '@angular/core';
2
+ import { UltraGridColumn } from '../../models/column.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HeaderMenuComponent {
5
+ private el;
6
+ column?: UltraGridColumn;
7
+ isOpen: boolean;
8
+ position: {
9
+ x: number;
10
+ y: number;
11
+ };
12
+ groupModel: string[];
13
+ closeMenu: EventEmitter<void>;
14
+ sort: EventEmitter<{
15
+ field: string;
16
+ direction: "asc" | "desc";
17
+ }>;
18
+ pin: EventEmitter<{
19
+ field: string;
20
+ pinned: "left" | "right" | null;
21
+ }>;
22
+ autosize: EventEmitter<{
23
+ field: string;
24
+ all: boolean;
25
+ }>;
26
+ group: EventEmitter<{
27
+ field: string;
28
+ }>;
29
+ chooseColumns: EventEmitter<void>;
30
+ showPinSubmenu: boolean;
31
+ get isGrouped(): boolean;
32
+ constructor(el: ElementRef);
33
+ onClose(): void;
34
+ onSort(direction: 'asc' | 'desc'): void;
35
+ onPin(pinned: 'left' | 'right' | null): void;
36
+ onAutosize(all: boolean): void;
37
+ onGroup(): void;
38
+ onChooseColumns(): void;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderMenuComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderMenuComponent, "ug-header-menu", never, { "column": { "alias": "column"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "position": { "alias": "position"; "required": false; }; "groupModel": { "alias": "groupModel"; "required": false; }; }, { "closeMenu": "closeMenu"; "sort": "sort"; "pin": "pin"; "autosize": "autosize"; "group": "group"; "chooseColumns": "chooseColumns"; }, never, never, true, never>;
41
+ }
@@ -0,0 +1,22 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PaginationComponent {
4
+ totalCount: number;
5
+ pageSize: number;
6
+ currentPage: number;
7
+ pageChanged: EventEmitter<number>;
8
+ pageSizeChanged: EventEmitter<number>;
9
+ get showControls(): boolean;
10
+ get totalPages(): number;
11
+ get isFirstPage(): boolean;
12
+ get isLastPage(): boolean;
13
+ get startRow(): number;
14
+ get endRow(): number;
15
+ onPrev(): void;
16
+ onNext(): void;
17
+ onPage(page: number): void;
18
+ get isAllSelectedSize(): boolean;
19
+ onPageSizeChange(size: any): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "ug-pagination", never, { "totalCount": { "alias": "totalCount"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; }, { "pageChanged": "pageChanged"; "pageSizeChanged": "pageSizeChanged"; }, never, never, true, never>;
22
+ }
@@ -0,0 +1,19 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { UltraGridColumn } from '../../models/column.model';
3
+ import { UltraGridRow } from '../../models/row.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class RowComponent {
6
+ columns: UltraGridColumn[];
7
+ row: UltraGridRow;
8
+ rowHeight: number;
9
+ isExpanded: boolean;
10
+ selectionVersion: number;
11
+ groupToggled: EventEmitter<void>;
12
+ get isSelected(): boolean | undefined;
13
+ get isGroupFooter(): boolean;
14
+ get height(): number;
15
+ trackByField(index: number, col: UltraGridColumn): string;
16
+ onGroupToggle(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<RowComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<RowComponent, "ug-row", never, { "columns": { "alias": "columns"; "required": false; }; "row": { "alias": "row"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "selectionVersion": { "alias": "selectionVersion"; "required": false; }; }, { "groupToggled": "groupToggled"; }, never, never, true, never>;
19
+ }
@@ -0,0 +1,42 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { UltraGridColumn, ValueColumnModel } from '../../models/column.model';
3
+ import { ColumnConditionFilter } from '../../models/filter.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SideBarComponent {
6
+ columns: UltraGridColumn[];
7
+ rowData: any[];
8
+ activeFilters: Map<string, Set<any>>;
9
+ groupModel: string[];
10
+ valuesModel: ValueColumnModel[];
11
+ columnsUpdated: EventEmitter<UltraGridColumn[]>;
12
+ groupModelUpdated: EventEmitter<string[]>;
13
+ valuesModelUpdated: EventEmitter<ValueColumnModel[]>;
14
+ exportCsvClicked: EventEmitter<void>;
15
+ filterApplied: EventEmitter<{
16
+ field: string;
17
+ selected: Set<any>;
18
+ }>;
19
+ conditionFilterChanged: EventEmitter<{
20
+ field: string;
21
+ filter: ColumnConditionFilter | null;
22
+ }>;
23
+ clearAllFilters: EventEmitter<void>;
24
+ activeTab: 'columns' | 'filters' | null;
25
+ toggleTab(tab: 'columns' | 'filters'): void;
26
+ closePanel(): void;
27
+ onColumnsChanged(updatedCols: UltraGridColumn[]): void;
28
+ onGroupModelChanged(model: string[]): void;
29
+ onExportCsvClicked(): void;
30
+ onFilterApplied(event: {
31
+ field: string;
32
+ selected: Set<any>;
33
+ }): void;
34
+ onClearAllFilters(): void;
35
+ onConditionFilterChanged(event: {
36
+ field: string;
37
+ filter: ColumnConditionFilter | null;
38
+ }): void;
39
+ onValuesModelChanged(model: ValueColumnModel[]): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<SideBarComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideBarComponent, "ug-side-bar", never, { "columns": { "alias": "columns"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "activeFilters": { "alias": "activeFilters"; "required": false; }; "groupModel": { "alias": "groupModel"; "required": false; }; "valuesModel": { "alias": "valuesModel"; "required": false; }; }, { "columnsUpdated": "columnsUpdated"; "groupModelUpdated": "groupModelUpdated"; "valuesModelUpdated": "valuesModelUpdated"; "exportCsvClicked": "exportCsvClicked"; "filterApplied": "filterApplied"; "conditionFilterChanged": "conditionFilterChanged"; "clearAllFilters": "clearAllFilters"; }, never, never, true, never>;
42
+ }
@@ -0,0 +1,155 @@
1
+ import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, ChangeDetectorRef, NgZone } from '@angular/core';
2
+ import { ColumnConditionFilter } from '../../models/filter.model';
3
+ import { UltraGridColumn, ValueColumnModel } from '../../models/column.model';
4
+ import { UltraGridRow, UltraGridNode } from '../../models/row.model';
5
+ import { UltraGridConfig } from '../../models/grid-config.model';
6
+ import { ServerDataSource } from '../../datasources/server-datasource.interface';
7
+ import { InfiniteScrollDataSource } from '../../datasources/infinite-scroll.datasource';
8
+ import { GridFlattenerService } from '../../core/grid-flattener.service';
9
+ import { CsvExportService } from '../../services/csv-export.service';
10
+ import { CsvExportOptions } from '../../models/csv-export.model';
11
+ import * as i0 from "@angular/core";
12
+ export declare class UltraGridComponent implements OnInit, OnDestroy, OnChanges {
13
+ private cdr;
14
+ private ngZone;
15
+ private flattener;
16
+ private csvExportService;
17
+ private _workerInitialized;
18
+ columns: UltraGridColumn[];
19
+ rowData: any[];
20
+ serverDataSource?: ServerDataSource;
21
+ config: UltraGridConfig;
22
+ pagination: boolean;
23
+ pageSize: number;
24
+ rowClicked: EventEmitter<UltraGridRow>;
25
+ sortChanged: EventEmitter<{
26
+ field: string;
27
+ direction: "asc" | "desc" | null;
28
+ }[]>;
29
+ isBrowser: boolean;
30
+ visibleColumns: UltraGridColumn[];
31
+ sortModel: {
32
+ field: string;
33
+ direction: 'asc' | 'desc';
34
+ }[];
35
+ groupModel: string[];
36
+ valuesModel: ValueColumnModel[];
37
+ groupStateMap: Map<string, boolean>;
38
+ _internalDataSource?: InfiniteScrollDataSource<UltraGridRow>;
39
+ _localTreeData: UltraGridNode[];
40
+ _unpaginatedLocalData: UltraGridRow[];
41
+ _mappedRowData: UltraGridRow[];
42
+ renderedLocalData: UltraGridRow[];
43
+ ssrData: UltraGridRow[];
44
+ totalCount: number;
45
+ currentPage: number;
46
+ selectionVersion: number;
47
+ isMenuOpen: boolean;
48
+ activeMenuColumn?: UltraGridColumn;
49
+ menuPosition: {
50
+ x: number;
51
+ y: number;
52
+ };
53
+ isFilterOpen: boolean;
54
+ activeFilterColumn?: UltraGridColumn;
55
+ filterPosition: {
56
+ x: number;
57
+ y: number;
58
+ };
59
+ activeFilterUniqueValues: any[];
60
+ activeFilters: Map<string, Set<any>>;
61
+ conditionFilters: Map<string, ColumnConditionFilter>;
62
+ isChooseColumnsOpen: boolean;
63
+ chooseColumnsPosition: {
64
+ x: number;
65
+ y: number;
66
+ };
67
+ private destroy$;
68
+ private sortingWorker?;
69
+ private sortingWorkerUrl?;
70
+ private _unflattenedTreeData;
71
+ private hasCheckboxSelection;
72
+ private hasHeaderCheckboxSelection;
73
+ get rowHeight(): number;
74
+ get showPagination(): boolean;
75
+ constructor(platformId: Object, cdr: ChangeDetectorRef, ngZone: NgZone, flattener: GridFlattenerService, csvExportService: CsvExportService);
76
+ ngOnInit(): void;
77
+ get selectedRowsCount(): number;
78
+ ngOnChanges(changes: SimpleChanges): void;
79
+ ngOnDestroy(): void;
80
+ private initSortingWorker;
81
+ private updateVisibleColumns;
82
+ private wrapServerDataSource;
83
+ applyLocalData(): void;
84
+ refreshFlattener(): void;
85
+ private isNumericColumn;
86
+ toggleGroup(groupId: string): void;
87
+ isGroupExpanded(row: UltraGridRow): boolean;
88
+ private sortLocal;
89
+ private updatePaginationForLocalData;
90
+ fetchServerPage(page: number): void;
91
+ /**
92
+ * Triggers a Web-Worker powered CSV export of the grid data.
93
+ * @param options Configures whether to export all records or just visible records, as well as CSV formatting.
94
+ */
95
+ exportCsv(options?: CsvExportOptions): Promise<void>;
96
+ onPageChanged(page: number): void;
97
+ onSortChanged(event: {
98
+ field: string;
99
+ direction: 'asc' | 'desc' | null;
100
+ }): void;
101
+ onColumnsReordered(cols: UltraGridColumn[]): void;
102
+ onSideBarColumnsUpdated(cols: UltraGridColumn[]): void;
103
+ onSideBarGroupModelUpdated(model: string[]): void;
104
+ onValuesModelUpdated(model: ValueColumnModel[]): void;
105
+ onColumnResized(event: {
106
+ field: string;
107
+ width: number;
108
+ }): void;
109
+ get isAllSelected(): boolean;
110
+ onHeaderCheckboxClicked(selected: boolean): void;
111
+ onPageSizeChanged(size: number): void;
112
+ private selectNodeAndChildren;
113
+ onRowClicked(row: UltraGridRow | undefined): void;
114
+ getPlaceholderRow(index: number): UltraGridRow;
115
+ trackByRowId(index: number, item: UltraGridRow | undefined): string | number;
116
+ onHeaderMenuClicked(event: {
117
+ column: UltraGridColumn;
118
+ event: MouseEvent;
119
+ }): void;
120
+ onMenuClosed(): void;
121
+ onMenuSort(event: {
122
+ field: string;
123
+ direction: 'asc' | 'desc';
124
+ }): void;
125
+ onMenuPin(event: {
126
+ field: string;
127
+ pinned: 'left' | 'right' | null;
128
+ }): void;
129
+ onMenuAutosize(event: {
130
+ field: string;
131
+ all: boolean;
132
+ }): void;
133
+ onMenuGroup(event: {
134
+ field: string;
135
+ }): void;
136
+ onMenuChooseColumns(): void;
137
+ onChooseColumnsUpdated(columns: UltraGridColumn[]): void;
138
+ getFilterSetForColumn(field?: string): Set<any>;
139
+ onHeaderFilterClicked(event: {
140
+ column: UltraGridColumn;
141
+ event: MouseEvent;
142
+ }): void;
143
+ onFilterClosed(): void;
144
+ onFilterApplied(event: {
145
+ field: string;
146
+ selected: Set<any>;
147
+ }): void;
148
+ onClearAllFilters(): void;
149
+ onConditionFilterChanged(event: {
150
+ field: string;
151
+ filter: ColumnConditionFilter | null;
152
+ }): void;
153
+ static ɵfac: i0.ɵɵFactoryDeclaration<UltraGridComponent, never>;
154
+ static ɵcmp: i0.ɵɵComponentDeclaration<UltraGridComponent, "bways-grid", never, { "columns": { "alias": "columns"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "serverDataSource": { "alias": "serverDataSource"; "required": false; }; "config": { "alias": "config"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "rowClicked": "rowClicked"; "sortChanged": "sortChanged"; }, never, never, true, never>;
155
+ }
@@ -0,0 +1,14 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ export type GridEventName = 'rowClicked' | 'columnResized' | 'sortChanged' | 'filterChanged' | 'selectionChanged';
4
+ export interface GridEvent {
5
+ name: GridEventName;
6
+ payload: any;
7
+ }
8
+ export declare class GridEngineService {
9
+ private _eventBus;
10
+ get events$(): Observable<GridEvent>;
11
+ dispatch(name: GridEventName, payload: any): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<GridEngineService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<GridEngineService>;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { UltraGridNode } from '../models/row.model';
2
+ import * as i0 from "@angular/core";
3
+ export declare class GridFlattenerService {
4
+ flatten(nodes: UltraGridNode[], groupStateMap: Map<string, boolean>, groupIncludeFooter?: boolean): UltraGridNode[];
5
+ private traverse;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<GridFlattenerService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<GridFlattenerService>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { UltraGridRow } from '../models/row.model';
2
+ import * as i0 from "@angular/core";
3
+ export declare class RowCache {
4
+ private _cache;
5
+ getRow(data: any): UltraGridRow | undefined;
6
+ setRow(data: any, row: UltraGridRow): void;
7
+ clear(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<RowCache, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<RowCache>;
10
+ }
@@ -0,0 +1,21 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ViewportManager {
3
+ private _scrollTop;
4
+ private _viewportHeight;
5
+ private _rowHeight;
6
+ private _bufferSize;
7
+ get scrollTop(): number;
8
+ set scrollTop(val: number);
9
+ get viewportHeight(): number;
10
+ set viewportHeight(val: number);
11
+ get rowHeight(): number;
12
+ set rowHeight(val: number);
13
+ get bufferSize(): number;
14
+ set bufferSize(val: number);
15
+ getVisibleRange(): {
16
+ start: number;
17
+ end: number;
18
+ };
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ViewportManager, never>;
20
+ static ɵprov: i0.ɵɵInjectableDeclaration<ViewportManager>;
21
+ }
@@ -0,0 +1,17 @@
1
+ import { CollectionViewer, DataSource } from '@angular/cdk/collections';
2
+ import { Observable } from 'rxjs';
3
+ import { ServerDataSource } from './server-datasource.interface';
4
+ export declare class InfiniteScrollDataSource<T> extends DataSource<T | undefined> {
5
+ private _serverDataSource;
6
+ private _bufferSize;
7
+ private _cachedData;
8
+ private _dataStream;
9
+ private _subscription;
10
+ private _fetchedPages;
11
+ private _pageSize;
12
+ constructor(_serverDataSource: ServerDataSource<T>, _bufferSize?: number);
13
+ connect(collectionViewer: CollectionViewer): Observable<(T | undefined)[]>;
14
+ disconnect(): void;
15
+ private _getPageForIndex;
16
+ private _fetchPage;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { Observable } from 'rxjs';
2
+ export interface ServerResponse<T = any> {
3
+ rows: T[];
4
+ totalCount: number;
5
+ }
6
+ export interface GetRowsParams {
7
+ startRow: number;
8
+ endRow: number;
9
+ sortModel?: any;
10
+ filterModel?: any;
11
+ }
12
+ export interface ServerDataSource<T = any> {
13
+ getRows(params: GetRowsParams): Observable<ServerResponse<T>>;
14
+ }
@@ -0,0 +1,18 @@
1
+ import { ElementRef, EventEmitter, Renderer2 } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ColumnResizeDirective {
4
+ private el;
5
+ private renderer;
6
+ columnField: string;
7
+ resizeEnd: EventEmitter<{
8
+ field: string;
9
+ width: number;
10
+ }>;
11
+ private startX;
12
+ private startWidth;
13
+ private minWidth;
14
+ constructor(el: ElementRef, renderer: Renderer2);
15
+ onMouseDown(event: MouseEvent): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnResizeDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnResizeDirective, "[ugColumnResize]", never, { "columnField": { "alias": "ugColumnResize"; "required": false; }; }, { "resizeEnd": "resizeEnd"; }, never, never, true, never>;
18
+ }
@@ -0,0 +1,21 @@
1
+ export interface UltraGridColumn {
2
+ field: string;
3
+ headerName?: string;
4
+ width?: number;
5
+ minWidth?: number;
6
+ maxWidth?: number;
7
+ sortable?: boolean;
8
+ resizable?: boolean;
9
+ hide?: boolean;
10
+ pinned?: 'left' | 'right';
11
+ cellTemplate?: any;
12
+ headerCheckboxSelection?: boolean;
13
+ checkboxSelection?: boolean;
14
+ aggFunc?: 'sum' | 'min' | 'max' | 'count' | 'avg';
15
+ _leftOffset?: number;
16
+ _rightOffset?: number;
17
+ }
18
+ export interface ValueColumnModel {
19
+ field: string;
20
+ aggFunc: 'sum' | 'min' | 'max' | 'count' | 'avg';
21
+ }