novo-elements 5.5.2 → 5.8.1
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.
- package/bundles/novo-elements.umd.js +350 -218
- package/bundles/novo-elements.umd.js.map +1 -1
- package/bundles/novo-elements.umd.min.js +2 -2
- package/bundles/novo-elements.umd.min.js.map +1 -1
- package/elements/chips/Chips.scss +6 -0
- package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +5 -1
- package/elements/data-table/cells/data-table-checkbox-cell.component.d.ts +3 -0
- package/elements/data-table/data-table-clear-button.component.d.ts +2 -0
- package/elements/data-table/data-table.component.d.ts +3 -1
- package/elements/data-table/data-table.component.scss +3 -0
- package/elements/data-table/interfaces.d.ts +3 -0
- package/elements/data-table/state/data-table-state.service.d.ts +6 -2
- package/elements/picker/extras/entity-picker-results/EntityPickerResults.d.ts +1 -0
- package/esm2015/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.js +26 -6
- package/esm2015/elements/data-table/cells/data-table-checkbox-cell.component.js +16 -5
- package/esm2015/elements/data-table/data-table-clear-button.component.js +9 -1
- package/esm2015/elements/data-table/data-table.component.js +8 -3
- package/esm2015/elements/data-table/data-table.source.js +5 -2
- package/esm2015/elements/data-table/interfaces.js +1 -1
- package/esm2015/elements/data-table/pagination/data-table-pagination.component.js +4 -1
- package/esm2015/elements/data-table/sort-filter/sort-filter.directive.js +3 -1
- package/esm2015/elements/data-table/state/data-table-state.service.js +31 -7
- package/esm2015/elements/expansion/expansion-panel.js +1 -1
- package/esm2015/elements/picker/extras/entity-picker-results/EntityPickerResults.js +31 -1
- package/esm2015/index.js +1 -1
- package/esm2015/services/novo-label-service.js +2 -1
- package/esm2015/utils/app-bridge/AppBridge.js +54 -16
- package/esm2015/utils/form-utils/FormUtils.js +2 -2
- package/fesm2015/novo-elements.js +375 -231
- package/fesm2015/novo-elements.js.map +1 -1
- package/index.d.ts +1 -1
- package/novo-elements.metadata.json +1 -1
- package/package.json +1 -1
- package/services/novo-label-service.d.ts +1 -0
- package/styles/global/variables.scss +4 -1
- package/utils/app-bridge/AppBridge.d.ts +11 -2
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { CdkColumnDef, CdkHeaderCell } from '@angular/cdk/table';
|
|
2
2
|
import { ChangeDetectorRef, ElementRef, OnDestroy, Renderer2 } from '@angular/core';
|
|
3
|
+
import { NovoToastService } from '../../toast/ToastService';
|
|
3
4
|
import { NovoDataTable } from '../data-table.component';
|
|
4
5
|
export declare class NovoDataTableCheckboxHeaderCell<T> extends CdkHeaderCell implements OnDestroy {
|
|
5
6
|
private dataTable;
|
|
6
7
|
private ref;
|
|
8
|
+
private toaster;
|
|
7
9
|
role: string;
|
|
10
|
+
maxSelected: number;
|
|
8
11
|
checked: boolean;
|
|
9
12
|
private selectionSubscription;
|
|
10
13
|
private paginationSubscription;
|
|
11
14
|
private resetSubscription;
|
|
12
|
-
|
|
15
|
+
get isAtLimit(): boolean;
|
|
16
|
+
constructor(columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2, dataTable: NovoDataTable<T>, ref: ChangeDetectorRef, toaster: NovoToastService);
|
|
13
17
|
ngOnDestroy(): void;
|
|
14
18
|
onClick(): void;
|
|
15
19
|
}
|
|
@@ -7,11 +7,14 @@ export declare class NovoDataTableCheckboxCell<T> extends CdkCell implements OnI
|
|
|
7
7
|
private ref;
|
|
8
8
|
role: string;
|
|
9
9
|
row: T;
|
|
10
|
+
maxSelected: number;
|
|
10
11
|
checked: boolean;
|
|
11
12
|
private selectionSubscription;
|
|
12
13
|
private resetSubscription;
|
|
14
|
+
get isAtLimit(): boolean;
|
|
13
15
|
constructor(columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2, dataTable: NovoDataTable<T>, ref: ChangeDetectorRef);
|
|
14
16
|
ngOnInit(): void;
|
|
15
17
|
onClick(): void;
|
|
18
|
+
getTooltip(): string;
|
|
16
19
|
ngOnDestroy(): void;
|
|
17
20
|
}
|
|
@@ -5,11 +5,13 @@ export declare class NovoDataTableClearButton<T> {
|
|
|
5
5
|
state: DataTableState<T>;
|
|
6
6
|
private ref;
|
|
7
7
|
labels: NovoLabelService;
|
|
8
|
+
selectedClear: EventEmitter<boolean>;
|
|
8
9
|
sortClear: EventEmitter<boolean>;
|
|
9
10
|
filterClear: EventEmitter<boolean>;
|
|
10
11
|
allClear: EventEmitter<boolean>;
|
|
11
12
|
constructor(state: DataTableState<T>, ref: ChangeDetectorRef, labels: NovoLabelService);
|
|
12
13
|
clearSort(): void;
|
|
13
14
|
clearFilter(): void;
|
|
15
|
+
clearSelected(): void;
|
|
14
16
|
clearAll(): void;
|
|
15
17
|
}
|
|
@@ -2,7 +2,7 @@ import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestro
|
|
|
2
2
|
import { NovoLabelService } from '../../services/novo-label-service';
|
|
3
3
|
import { NovoTemplate } from '../common/novo-template/novo-template.directive';
|
|
4
4
|
import { DataTableSource } from './data-table.source';
|
|
5
|
-
import { IDataTableColumn, IDataTablePaginationOptions, IDataTablePreferences, IDataTableSearchOptions, IDataTableService } from './interfaces';
|
|
5
|
+
import { IDataTableColumn, IDataTablePaginationOptions, IDataTablePreferences, IDataTableSearchOptions, IDataTableSelectionOption, IDataTableService } from './interfaces';
|
|
6
6
|
import { DataTableState } from './state/data-table-state.service';
|
|
7
7
|
import { NovoDataTableCellHeader } from './cell-headers/data-table-header-cell.component';
|
|
8
8
|
import { ListInteractionDictionary, ListInteractionEvent } from './ListInteractionTypes';
|
|
@@ -21,6 +21,7 @@ export declare class NovoDataTable<T> implements AfterContentInit, OnDestroy {
|
|
|
21
21
|
private _disabledColumns;
|
|
22
22
|
paginationOptions: IDataTablePaginationOptions;
|
|
23
23
|
searchOptions: IDataTableSearchOptions;
|
|
24
|
+
selectionOptions: IDataTableSelectionOption[];
|
|
24
25
|
defaultSort: {
|
|
25
26
|
id: string;
|
|
26
27
|
value: string;
|
|
@@ -35,6 +36,7 @@ export declare class NovoDataTable<T> implements AfterContentInit, OnDestroy {
|
|
|
35
36
|
};
|
|
36
37
|
fixedHeader: boolean;
|
|
37
38
|
paginatorDataFeatureId: string;
|
|
39
|
+
maxSelected: number;
|
|
38
40
|
set dataTableService(service: IDataTableService<T>);
|
|
39
41
|
set rows(rows: T[]);
|
|
40
42
|
set outsideFilter(outsideFilter: EventEmitter<any>);
|
|
@@ -97,6 +97,9 @@ export interface IDataTableChangeEvent {
|
|
|
97
97
|
export interface IDataTableSelectionChangeEvent {
|
|
98
98
|
selected: any[];
|
|
99
99
|
}
|
|
100
|
+
export interface IDataTableSelectionOption {
|
|
101
|
+
label: 'none' | 'page' | 'pageSize' | 'sort' | 'filter' | 'globalSearch';
|
|
102
|
+
}
|
|
100
103
|
export interface IDataTablePaginationEvent {
|
|
101
104
|
page: number;
|
|
102
105
|
pageSize: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
-
import { IDataTableChangeEvent, IDataTableFilter, IDataTableSort } from '../interfaces';
|
|
3
|
+
import { IDataTableChangeEvent, IDataTableFilter, IDataTableSelectionOption, IDataTableSort } from '../interfaces';
|
|
4
4
|
export declare class DataTableState<T> {
|
|
5
5
|
selectionSource: Subject<unknown>;
|
|
6
6
|
paginationSource: Subject<unknown>;
|
|
@@ -17,16 +17,20 @@ export declare class DataTableState<T> {
|
|
|
17
17
|
expandedRows: Set<string>;
|
|
18
18
|
outsideFilter: any;
|
|
19
19
|
isForceRefresh: boolean;
|
|
20
|
+
selectionOptions: IDataTableSelectionOption[];
|
|
20
21
|
updates: EventEmitter<IDataTableChangeEvent>;
|
|
22
|
+
retainSelected: boolean;
|
|
21
23
|
get userFiltered(): boolean;
|
|
22
24
|
get userFilteredInternal(): boolean;
|
|
23
25
|
get selected(): T[];
|
|
24
|
-
reset(fireUpdate?: boolean, persistUserFilters?:
|
|
26
|
+
reset(fireUpdate?: boolean, persistUserFilters?: any): void;
|
|
25
27
|
clearSort(fireUpdate?: boolean): void;
|
|
26
28
|
clearFilter(fireUpdate?: boolean): void;
|
|
29
|
+
clearSelected(fireUpdate?: boolean): void;
|
|
27
30
|
onSelectionChange(): void;
|
|
28
31
|
onExpandChange(targetId?: number): void;
|
|
29
32
|
onPaginationChange(isPageSizeChange: boolean, pageSize: number): void;
|
|
30
33
|
onSortFilterChange(): void;
|
|
31
34
|
setInitialSortFilter(preferences: any): void;
|
|
35
|
+
checkRetainment(caller: string): void;
|
|
32
36
|
}
|
|
@@ -17,6 +17,7 @@ export declare class EntityPickerResult {
|
|
|
17
17
|
highlight(match: any, query: any): any;
|
|
18
18
|
getIconForResult(result?: any): string;
|
|
19
19
|
renderTimestamp(date?: any): string;
|
|
20
|
+
renderTimeNoOffset(dateStr?: string): string;
|
|
20
21
|
getNameForResult(result?: any): string;
|
|
21
22
|
}
|
|
22
23
|
export declare class EntityPickerResults extends BasePickerResults {
|
package/esm2015/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { CdkColumnDef, CdkHeaderCell } from '@angular/cdk/table';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Renderer2 } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';
|
|
3
|
+
import { NovoToastService } from '../../toast/ToastService';
|
|
3
4
|
import { NovoDataTable } from '../data-table.component';
|
|
4
5
|
export class NovoDataTableCheckboxHeaderCell extends CdkHeaderCell {
|
|
5
|
-
constructor(columnDef, elementRef, renderer, dataTable, ref) {
|
|
6
|
+
constructor(columnDef, elementRef, renderer, dataTable, ref, toaster) {
|
|
6
7
|
super(columnDef, elementRef);
|
|
7
8
|
this.dataTable = dataTable;
|
|
8
9
|
this.ref = ref;
|
|
10
|
+
this.toaster = toaster;
|
|
9
11
|
this.role = 'columnheader';
|
|
12
|
+
this.maxSelected = undefined;
|
|
10
13
|
this.checked = false;
|
|
11
14
|
renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-header-${columnDef.cssClassFriendlyName}`);
|
|
12
15
|
renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);
|
|
@@ -19,6 +22,8 @@ export class NovoDataTableCheckboxHeaderCell extends CdkHeaderCell {
|
|
|
19
22
|
if (event.isPageSizeChange) {
|
|
20
23
|
this.checked = false;
|
|
21
24
|
this.dataTable.selectRows(false);
|
|
25
|
+
this.dataTable.state.checkRetainment('pageSize');
|
|
26
|
+
this.dataTable.state.reset(false, true);
|
|
22
27
|
}
|
|
23
28
|
else {
|
|
24
29
|
this.checked = this.dataTable.allCurrentRowsSelected();
|
|
@@ -30,6 +35,9 @@ export class NovoDataTableCheckboxHeaderCell extends CdkHeaderCell {
|
|
|
30
35
|
this.ref.markForCheck();
|
|
31
36
|
});
|
|
32
37
|
}
|
|
38
|
+
get isAtLimit() {
|
|
39
|
+
return this.maxSelected && this.dataTable.state.selectedRows.size + this.dataTable.dataSource.data.length > this.maxSelected && !this.checked;
|
|
40
|
+
}
|
|
33
41
|
ngOnDestroy() {
|
|
34
42
|
if (this.selectionSubscription) {
|
|
35
43
|
this.selectionSubscription.unsubscribe();
|
|
@@ -42,7 +50,17 @@ export class NovoDataTableCheckboxHeaderCell extends CdkHeaderCell {
|
|
|
42
50
|
}
|
|
43
51
|
}
|
|
44
52
|
onClick() {
|
|
45
|
-
|
|
53
|
+
if (this.isAtLimit) {
|
|
54
|
+
this.toaster.alert({
|
|
55
|
+
theme: 'danger',
|
|
56
|
+
position: 'fixedTop',
|
|
57
|
+
message: 'Error, more than 500 items are not able to be selected at one time',
|
|
58
|
+
icon: 'caution',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.dataTable.selectRows(!this.checked);
|
|
63
|
+
}
|
|
46
64
|
}
|
|
47
65
|
}
|
|
48
66
|
NovoDataTableCheckboxHeaderCell.decorators = [
|
|
@@ -65,9 +83,11 @@ NovoDataTableCheckboxHeaderCell.ctorParameters = () => [
|
|
|
65
83
|
{ type: ElementRef },
|
|
66
84
|
{ type: Renderer2 },
|
|
67
85
|
{ type: NovoDataTable },
|
|
68
|
-
{ type: ChangeDetectorRef }
|
|
86
|
+
{ type: ChangeDetectorRef },
|
|
87
|
+
{ type: NovoToastService }
|
|
69
88
|
];
|
|
70
89
|
NovoDataTableCheckboxHeaderCell.propDecorators = {
|
|
71
|
-
role: [{ type: HostBinding, args: ['attr.role',] }]
|
|
90
|
+
role: [{ type: HostBinding, args: ['attr.role',] }],
|
|
91
|
+
maxSelected: [{ type: Input }]
|
|
72
92
|
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jaGVja2JveC1oZWFkZXItY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbm92by1lbGVtZW50cy9ub3ZvLWVsZW1lbnRzL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjLyIsInNvdXJjZXMiOlsiZWxlbWVudHMvZGF0YS10YWJsZS9jZWxsLWhlYWRlcnMvZGF0YS10YWJsZS1jaGVja2JveC1oZWFkZXItY2VsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFnQnhELE1BQU0sT0FBTywrQkFBbUMsU0FBUSxhQUFhO0lBZW5FLFlBQ0UsU0FBdUIsRUFDdkIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDWCxTQUEyQixFQUMzQixHQUFzQixFQUN0QixPQUF5QjtRQUVqQyxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBSnJCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBbkI1QixTQUFJLEdBQUcsY0FBYyxDQUFDO1FBRXRCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBRWhDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFrQjlCLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSwrQkFBK0IsU0FBUyxD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QUM7U0FDMUM7SUFDSCxDQUFDOzs7WUFyRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQ0FBc0M7Z0JBQ2hELFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O1lBbkJRLFlBQVk7WUFDMkMsVUFBVTtZQUFpQyxTQUFTO1lBRzNHLGFBQWE7WUFIWSxpQkFBaUI7WUFFMUMsZ0JBQWdCOzs7bUJBa0J0QixXQUFXLFNBQUMsV0FBVzswQkFFdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0NvbHVtbkRlZiwgQ2RrSGVhZGVyQ2VsbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3ZvVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QvVG9hc3RTZXJ2aWNlJztcbmltcG9ydCB7IE5vdm9EYXRhVGFibGUgfSBmcm9tICcuLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1kYXRhLXRhYmxlLWNoZWNrYm94LWhlYWRlci1jZWxsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGF0YS10YWJsZS1jaGVja2JveFwiIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJjaGVja2VkXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpIFtjbGFzcy5iaGktY2hlY2tib3gtZW1wdHldPVwiIWNoZWNrZWRcIlxuICAgICAgICAgIFtjbGFzcy5iaGktY2hlY2tib3gtZmlsbGVkXT1cImNoZWNrZWRcIj48L2k+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RhdGFUYWJsZUNoZWNrYm94SGVhZGVyQ2VsbDxUPiBleHRlbmRzIENka0hlYWRlckNlbGwgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gIHB1YmxpYyByb2xlID0gJ2NvbHVtbmhlYWRlcic7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhTZWxlY3RlZDogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc2VsZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcGFnaW5hdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlc2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGlzQXRMaW1pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXhTZWxlY3RlZCAmJiB0aGlzLmRhdGFUYWJsZS5zdGF0ZS5zZWxlY3RlZFJvd3Muc2l6ZSArIHRoaXMuZGF0YVRhYmxlLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPiB0aGlzLm1heFNlbGVjdGVkICYmICF0aGlzLmNoZWNrZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb2x1bW5EZWY6IENka0NvbHVtbkRlZixcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBkYXRhVGFibGU6IE5vdm9EYXRhVGFibGU8VD4sXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm92b1RvYXN0U2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY29sdW1uRGVmLCBlbGVtZW50UmVmKTtcbiAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGF0YS1hdXRvbWF0aW9uLWlkJywgYG5vdm8tY2hlY2tib3gtY29sdW1uLWhlYWRlci0ke2NvbHVtbkRlZi5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKTtcbiAgICByZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGBub3ZvLWNoZWNrYm94LWNvbHVtbi0ke2NvbHVtbkRlZi5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gKTtcbiAgICByZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdub3ZvLWRhdGEtdGFibGUtY2hlY2tib3gtaGVhZGVyLWNlbGwnKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhVGFibGUuc3RhdGUuc2VsZWN0aW9uU291cmNlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmRhdGFUYWJsZS5hbGxDdXJyZW50Um93c1NlbGVjdGVkKCk7XG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgICB0aGlzLnBhZ2luYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFUYWJsZS5zdGF0ZS5wYWdpbmF0aW9uU291cmNlLnN1YnNjcmliZSgoZXZlbnQ6IHsgaXNQYWdlU2l6ZUNoYW5nZTogYm9vbGVhbiB9KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuaXNQYWdlU2l6ZUNoYW5nZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kYXRhVGFibGUuc2VsZWN0Um93cyhmYWxzZSk7XG4gICAgICAgIHRoaXMuZGF0YVRhYmxlLnN0YXRlLmNoZWNrUmV0YWlubWVudCgncGFnZVNpemUnKTtcbiAgICAgICAgdGhpcy5kYXRhVGFibGUuc3RhdGUucmVzZXQoZmFsc2UsIHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5kYXRhVGFibGUuYWxsQ3VycmVudFJvd3NTZWxlY3RlZCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YVRhYmxlLnN0YXRlLnJlc2V0U291cmNlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGFnaW5hdGlvblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc2V0U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJlc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBdExpbWl0KSB7XG4gICAgICB0aGlzLnRvYXN0ZXIuYWxlcnQoe1xuICAgICAgICB0aGVtZTogJ2RhbmdlcicsXG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWRUb3AnLFxuICAgICAgICBtZXNzYWdlOiAnRXJyb3IsIG1vcmUgdGhhbiA1MDAgaXRlbXMgYXJlIG5vdCBhYmxlIHRvIGJlIHNlbGVjdGVkIGF0IG9uZSB0aW1lJyxcbiAgICAgICAgaWNvbjogJ2NhdXRpb24nLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVRhYmxlLnNlbGVjdFJvd3MoIXRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -8,6 +8,7 @@ export class NovoDataTableCheckboxCell extends CdkCell {
|
|
|
8
8
|
this.dataTable = dataTable;
|
|
9
9
|
this.ref = ref;
|
|
10
10
|
this.role = 'gridcell';
|
|
11
|
+
this.maxSelected = undefined;
|
|
11
12
|
this.checked = false;
|
|
12
13
|
renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);
|
|
13
14
|
renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);
|
|
@@ -21,11 +22,19 @@ export class NovoDataTableCheckboxCell extends CdkCell {
|
|
|
21
22
|
this.ref.markForCheck();
|
|
22
23
|
});
|
|
23
24
|
}
|
|
25
|
+
get isAtLimit() {
|
|
26
|
+
return this.maxSelected && this.dataTable.state.selectedRows.size >= this.maxSelected && !this.checked;
|
|
27
|
+
}
|
|
24
28
|
ngOnInit() {
|
|
25
29
|
this.checked = this.dataTable.isSelected(this.row);
|
|
26
30
|
}
|
|
27
31
|
onClick() {
|
|
28
|
-
|
|
32
|
+
if (!this.isAtLimit) {
|
|
33
|
+
this.dataTable.selectRow(this.row);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
getTooltip() {
|
|
37
|
+
return (this.isAtLimit) ? 'More than ' + this.maxSelected + ' items are not able to be selected at one time' : '';
|
|
29
38
|
}
|
|
30
39
|
ngOnDestroy() {
|
|
31
40
|
if (this.selectionSubscription) {
|
|
@@ -40,10 +49,11 @@ NovoDataTableCheckboxCell.decorators = [
|
|
|
40
49
|
{ type: Component, args: [{
|
|
41
50
|
selector: 'novo-data-table-checkbox-cell',
|
|
42
51
|
template: `
|
|
43
|
-
<div class="data-table-checkbox" (click)="onClick()">
|
|
52
|
+
<div class="data-table-checkbox" (click)="onClick()" [tooltip]="getTooltip()" tooltipPosition="right">
|
|
44
53
|
<input type="checkbox" [checked]="checked">
|
|
45
54
|
<label>
|
|
46
|
-
<i [class.bhi-checkbox-
|
|
55
|
+
<i [class.bhi-checkbox-disabled]="isAtLimit"
|
|
56
|
+
[class.bhi-checkbox-empty]="!checked"
|
|
47
57
|
[class.bhi-checkbox-filled]="checked"></i>
|
|
48
58
|
</label>
|
|
49
59
|
</div>
|
|
@@ -60,6 +70,7 @@ NovoDataTableCheckboxCell.ctorParameters = () => [
|
|
|
60
70
|
];
|
|
61
71
|
NovoDataTableCheckboxCell.propDecorators = {
|
|
62
72
|
role: [{ type: HostBinding, args: ['attr.role',] }],
|
|
63
|
-
row: [{ type: Input }]
|
|
73
|
+
row: [{ type: Input }],
|
|
74
|
+
maxSelected: [{ type: Input }]
|
|
64
75
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jaGVja2JveC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9ub3ZvLWVsZW1lbnRzL25vdm8tZWxlbWVudHMvcHJvamVjdHMvbm92by1lbGVtZW50cy9zcmMvIiwic291cmNlcyI6WyJlbGVtZW50cy9kYXRhLXRhYmxlL2NlbGxzL2RhdGEtdGFibGUtY2hlY2tib3gtY2VsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBR1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWdCeEQsTUFBTSxPQUFPLHlCQUE2QixTQUFRLE9BQU87SUFrQnZELFlBQ1MsU0FBdUIsRUFDOUIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDWixTQUEyQixFQUMxQixHQUFzQjtRQUU5QixLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBTnRCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFHdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFyQnpCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFLbEIsZ0JBQVcsR0FBVyxTQUFTLENBQUM7UUFFaEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQWlCOUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ2hJLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSx3QkFBd0IsU0FBUyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN0RyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXhCRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN6RyxDQUFDO0lBd0JNLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0RBQWdELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUM7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUEzRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7O0tBU1A7Z0JBQ0gsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQWxCaUIsWUFBWTtZQVY1QixVQUFVO1lBRVYsU0FBUztZQVdGLGFBQWE7WUFOcEIsaUJBQWlCOzs7bUJBdUJoQixXQUFXLFNBQUMsV0FBVztrQkFHdkIsS0FBSzswQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFJlbmRlcmVyMixcbiAgSG9zdEJpbmRpbmcsXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtDZWxsLCBDZGtDb2x1bW5EZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5vdm9EYXRhVGFibGUgfSBmcm9tICcuLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdm8tZGF0YS10YWJsZS1jaGVja2JveC1jZWxsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGF0YS10YWJsZS1jaGVja2JveFwiIChjbGljayk9XCJvbkNsaWNrKClcIiBbdG9vbHRpcF09XCJnZXRUb29sdGlwKClcIiB0b29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImNoZWNrZWRcIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGkgW2NsYXNzLmJoaS1jaGVja2JveC1kaXNhYmxlZF09XCJpc0F0TGltaXRcIlxuICAgICAgICAgIFtjbGFzcy5iaGktY2hlY2tib3gtZW1wdHldPVwiIWNoZWNrZWRcIlxuICAgICAgICAgIFtjbGFzcy5iaGktY2hlY2tib3gtZmlsbGVkXT1cImNoZWNrZWRcIj48L2k+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvRGF0YVRhYmxlQ2hlY2tib3hDZWxsPFQ+IGV4dGVuZHMgQ2RrQ2VsbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBwdWJsaWMgcm9sZSA9ICdncmlkY2VsbCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvdzogVDtcbiAgQElucHV0KClcbiAgcHVibGljIG1heFNlbGVjdGVkOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHNlbGVjdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlc2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGlzQXRMaW1pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXhTZWxlY3RlZCAmJiB0aGlzLmRhdGFUYWJsZS5zdGF0ZS5zZWxlY3RlZFJvd3Muc2l6ZSA+PSB0aGlzLm1heFNlbGVjdGVkICYmICF0aGlzLmNoZWNrZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29sdW1uRGVmOiBDZGtDb2x1bW5EZWYsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHB1YmxpYyBkYXRhVGFibGU6IE5vdm9EYXRhVGFibGU8VD4sXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihjb2x1bW5EZWYsIGVsZW1lbnRSZWYpO1xuICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkYXRhLWF1dG9tYXRpb24taWQnLCBgbm92by1jaGVja2JveC1jb2x1bW4tJHtjb2x1bW5EZWYuY3NzQ2xhc3NGcmllbmRseU5hbWV9YCk7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgbm92by1jaGVja2JveC1jb2x1bW4tJHtjb2x1bW5EZWYuY3NzQ2xhc3NGcmllbmRseU5hbWV9YCk7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbm92by1kYXRhLXRhYmxlLWNoZWNrYm94LWNlbGwnKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhVGFibGUuc3RhdGUuc2VsZWN0aW9uU291cmNlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmRhdGFUYWJsZS5pc1NlbGVjdGVkKHRoaXMucm93KTtcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICAgIHRoaXMucmVzZXRTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFUYWJsZS5zdGF0ZS5yZXNldFNvdXJjZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmRhdGFUYWJsZS5pc1NlbGVjdGVkKHRoaXMucm93KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0F0TGltaXQpIHtcbiAgICAgIHRoaXMuZGF0YVRhYmxlLnNlbGVjdFJvdyh0aGlzLnJvdyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRvb2x0aXAoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQXRMaW1pdCkgPyAnTW9yZSB0aGFuICcgKyB0aGlzLm1heFNlbGVjdGVkICsgJyBpdGVtcyBhcmUgbm90IGFibGUgdG8gYmUgc2VsZWN0ZWQgYXQgb25lIHRpbWUnIDogJyc7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNldFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -6,6 +6,7 @@ export class NovoDataTableClearButton {
|
|
|
6
6
|
this.state = state;
|
|
7
7
|
this.ref = ref;
|
|
8
8
|
this.labels = labels;
|
|
9
|
+
this.selectedClear = new EventEmitter();
|
|
9
10
|
this.sortClear = new EventEmitter();
|
|
10
11
|
this.filterClear = new EventEmitter();
|
|
11
12
|
this.allClear = new EventEmitter();
|
|
@@ -18,9 +19,14 @@ export class NovoDataTableClearButton {
|
|
|
18
19
|
this.state.clearFilter();
|
|
19
20
|
this.filterClear.emit(true);
|
|
20
21
|
}
|
|
22
|
+
clearSelected() {
|
|
23
|
+
this.state.clearSelected();
|
|
24
|
+
this.selectedClear.emit(true);
|
|
25
|
+
}
|
|
21
26
|
clearAll() {
|
|
22
27
|
this.state.reset();
|
|
23
28
|
this.allClear.emit(true);
|
|
29
|
+
this.selectedClear.emit(true);
|
|
24
30
|
this.sortClear.emit(true);
|
|
25
31
|
this.filterClear.emit(true);
|
|
26
32
|
}
|
|
@@ -32,6 +38,7 @@ NovoDataTableClearButton.decorators = [
|
|
|
32
38
|
<novo-dropdown side="bottom-right" class="novo-data-table-clear-button" data-automation-id="novo-data-table-clear-dropdown">
|
|
33
39
|
<button type="button" theme="primary" color="negative" icon="collapse" data-automation-id="novo-data-table-clear-dropdown-btn">{{ labels.clear }}</button>
|
|
34
40
|
<list>
|
|
41
|
+
<item *ngIf="state.selected.length > 0" (click)="clearSelected()" data-automation-id="novo-data-table-clear-dropdown-clear-selected">{{ labels.clearSelected }}</item>
|
|
35
42
|
<item *ngIf="state.sort" (click)="clearSort()" data-automation-id="novo-data-table-clear-dropdown-clear-sort">{{ labels.clearSort }}</item>
|
|
36
43
|
<item *ngIf="state.filter" (click)="clearFilter()" data-automation-id="novo-data-table-clear-dropdown-clear-filter">{{ labels.clearFilter }}</item>
|
|
37
44
|
<item *ngIf="state.sort && state.filter" (click)="clearAll()" data-automation-id="novo-data-table-clear-dropdown-clear-all">{{ labels.clearAllNormalCase }}</item>
|
|
@@ -47,8 +54,9 @@ NovoDataTableClearButton.ctorParameters = () => [
|
|
|
47
54
|
{ type: NovoLabelService }
|
|
48
55
|
];
|
|
49
56
|
NovoDataTableClearButton.propDecorators = {
|
|
57
|
+
selectedClear: [{ type: Output }],
|
|
50
58
|
sortClear: [{ type: Output }],
|
|
51
59
|
filterClear: [{ type: Output }],
|
|
52
60
|
allClear: [{ type: Output }]
|
|
53
61
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jbGVhci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL25vdm8tZWxlbWVudHMvbm92by1lbGVtZW50cy9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy8iLCJzb3VyY2VzIjpbImVsZW1lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jbGVhci1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFpQnJFLE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFBbUIsS0FBd0IsRUFBVSxHQUFzQixFQUFTLE1BQXdCO1FBQXpGLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQVI1RyxrQkFBYSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFELGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxnQkFBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhELGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUwRCxDQUFDO0lBRWhILFNBQVM7UUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7OztZQWhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsUUFBUSxFQUFFOzs7Ozs7Ozs7O0dBVVQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQWpCUSxjQUFjO1lBRjRDLGlCQUFpQjtZQUczRSxnQkFBZ0I7Ozs0QkFrQnRCLE1BQU07d0JBRU4sTUFBTTswQkFFTixNQUFNO3VCQUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0YVRhYmxlU3RhdGUgfSBmcm9tICcuL3N0YXRlL2RhdGEtdGFibGUtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb3ZvTGFiZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm92by1sYWJlbC1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm92by1kYXRhLXRhYmxlLWNsZWFyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5vdm8tZHJvcGRvd24gc2lkZT1cImJvdHRvbS1yaWdodFwiIGNsYXNzPVwibm92by1kYXRhLXRhYmxlLWNsZWFyLWJ1dHRvblwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm5vdm8tZGF0YS10YWJsZS1jbGVhci1kcm9wZG93blwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGhlbWU9XCJwcmltYXJ5XCIgY29sb3I9XCJuZWdhdGl2ZVwiIGljb249XCJjb2xsYXBzZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm5vdm8tZGF0YS10YWJsZS1jbGVhci1kcm9wZG93bi1idG5cIj57eyBsYWJlbHMuY2xlYXIgfX08L2J1dHRvbj5cbiAgICAgIDxsaXN0PlxuICAgICAgICAgIDxpdGVtICpuZ0lmPVwic3RhdGUuc2VsZWN0ZWQubGVuZ3RoID4gMFwiIChjbGljayk9XCJjbGVhclNlbGVjdGVkKClcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJub3ZvLWRhdGEtdGFibGUtY2xlYXItZHJvcGRvd24tY2xlYXItc2VsZWN0ZWRcIj57eyBsYWJlbHMuY2xlYXJTZWxlY3RlZCB9fTwvaXRlbT5cbiAgICAgICAgICA8aXRlbSAqbmdJZj1cInN0YXRlLnNvcnRcIiAoY2xpY2spPVwiY2xlYXJTb3J0KClcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJub3ZvLWRhdGEtdGFibGUtY2xlYXItZHJvcGRvd24tY2xlYXItc29ydFwiPnt7IGxhYmVscy5jbGVhclNvcnQgfX08L2l0ZW0+XG4gICAgICAgICAgPGl0ZW0gKm5nSWY9XCJzdGF0ZS5maWx0ZXJcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoKVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm5vdm8tZGF0YS10YWJsZS1jbGVhci1kcm9wZG93bi1jbGVhci1maWx0ZXJcIj57eyBsYWJlbHMuY2xlYXJGaWx0ZXIgfX08L2l0ZW0+XG4gICAgICAgICAgPGl0ZW0gKm5nSWY9XCJzdGF0ZS5zb3J0ICYmIHN0YXRlLmZpbHRlclwiIChjbGljayk9XCJjbGVhckFsbCgpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibm92by1kYXRhLXRhYmxlLWNsZWFyLWRyb3Bkb3duLWNsZWFyLWFsbFwiPnt7IGxhYmVscy5jbGVhckFsbE5vcm1hbENhc2UgfX08L2l0ZW0+XG4gICAgICA8L2xpc3Q+XG4gICAgPC9ub3ZvLWRyb3Bkb3duPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RhdGFUYWJsZUNsZWFyQnV0dG9uPFQ+IHtcbiAgQE91dHB1dCgpXG4gIHNlbGVjdGVkQ2xlYXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIHNvcnRDbGVhcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgZmlsdGVyQ2xlYXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIGFsbENsZWFyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0YXRlOiBEYXRhVGFibGVTdGF0ZTxUPiwgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgbGFiZWxzOiBOb3ZvTGFiZWxTZXJ2aWNlKSB7fVxuXG4gIGNsZWFyU29ydCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmNsZWFyU29ydCgpO1xuICAgIHRoaXMuc29ydENsZWFyLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBjbGVhckZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmNsZWFyRmlsdGVyKCk7XG4gICAgdGhpcy5maWx0ZXJDbGVhci5lbWl0KHRydWUpO1xuICB9XG5cbiAgY2xlYXJTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmNsZWFyU2VsZWN0ZWQoKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2xlYXIuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUucmVzZXQoKTtcbiAgICB0aGlzLmFsbENsZWFyLmVtaXQodHJ1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENsZWFyLmVtaXQodHJ1ZSk7XG4gICAgdGhpcy5zb3J0Q2xlYXIuZW1pdCh0cnVlKTtcbiAgICB0aGlzLmZpbHRlckNsZWFyLmVtaXQodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|