@skyux/list-builder-view-grids 15.0.0-alpha.0 → 15.0.0-alpha.2
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.
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i3$1 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { NgModule, ChangeDetectionStrategy, Component, EventEmitter, ViewChild, Output, Input,
|
|
5
|
-
import * as
|
|
6
|
-
import { SkyListModule, SkyListToolbarModule, ListToolbarItemModel, SkyListSecondaryActionsModule, ListViewComponent, ListSearchModel } from '@skyux/list-builder';
|
|
7
|
-
import * as
|
|
4
|
+
import { NgModule, inject, ChangeDetectionStrategy, Component, EventEmitter, ViewChild, Output, Input, Injectable, forwardRef, ContentChildren } from '@angular/core';
|
|
5
|
+
import * as i2 from '@skyux/list-builder';
|
|
6
|
+
import { SkyListModule, SkyListToolbarModule, ListState, SkyListSecondaryActionsComponent, ListStateDispatcher, ListToolbarItemModel, SkyListSecondaryActionsModule, ListViewComponent, ListSearchModel } from '@skyux/list-builder';
|
|
7
|
+
import * as i3 from '@skyux/list-builder-view-checklist';
|
|
8
8
|
import { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';
|
|
9
|
-
import * as
|
|
10
|
-
import { SkyModalModule } from '@skyux/modals';
|
|
11
|
-
import * as
|
|
9
|
+
import * as i1 from '@skyux/modals';
|
|
10
|
+
import { SkyModalInstance, SkyModalModule, SkyModalService } from '@skyux/modals';
|
|
11
|
+
import * as i4 from '@skyux/i18n';
|
|
12
12
|
import { SkyLibResourcesService, SkyI18nModule } from '@skyux/i18n';
|
|
13
13
|
import * as i1$1 from '@skyux/icon';
|
|
14
14
|
import { SkyIconModule } from '@skyux/icon';
|
|
15
15
|
import { map, distinctUntilChanged, take, takeUntil, scan } from 'rxjs/operators';
|
|
16
|
-
import
|
|
16
|
+
import { SkyLogService } from '@skyux/core';
|
|
17
|
+
import * as i2$1 from '@skyux/grids';
|
|
17
18
|
import { SkyGridColumnModel, SkyGridSelectedRowsSource, SkyGridMessageType, SkyGridComponent, SkyGridColumnComponent, SkyGridModule } from '@skyux/grids';
|
|
18
19
|
import { AsyncList, StateDispatcher, StateOrchestrator, StateNode, isObservable, getValue, getData } from '@skyux/list-builder-common';
|
|
19
20
|
import { of, Subject } from 'rxjs';
|
|
20
|
-
import * as
|
|
21
|
-
import * as i5$1 from '@skyux/indicators';
|
|
21
|
+
import * as i1$2 from '@skyux/indicators';
|
|
22
22
|
import { SkyWaitModule } from '@skyux/indicators';
|
|
23
23
|
|
|
24
24
|
/* istanbul ignore next */
|
|
@@ -62,11 +62,11 @@ SkyLibResourcesService.addResources(RESOURCES);
|
|
|
62
62
|
* Import into any component library module that needs to use resource strings.
|
|
63
63
|
*/
|
|
64
64
|
class SkyListBuilderViewGridsResourcesModule {
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
66
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
67
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListBuilderViewGridsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
66
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: SkyListBuilderViewGridsResourcesModule, exports: [SkyI18nModule] }); }
|
|
67
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListBuilderViewGridsResourcesModule, imports: [SkyI18nModule] }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListBuilderViewGridsResourcesModule, decorators: [{
|
|
70
70
|
type: NgModule,
|
|
71
71
|
args: [{
|
|
72
72
|
exports: [SkyI18nModule],
|
|
@@ -74,11 +74,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
74
74
|
}] });
|
|
75
75
|
|
|
76
76
|
class SkyColumnSelectorComponent {
|
|
77
|
-
constructor(
|
|
78
|
-
this.context =
|
|
79
|
-
this.instance =
|
|
80
|
-
this.newSelectedColumnIds =
|
|
81
|
-
this.newSelectedColumnIds = context.selectedColumnIds;
|
|
77
|
+
constructor() {
|
|
78
|
+
this.context = inject(SkyColumnSelectorContext);
|
|
79
|
+
this.instance = inject(SkyModalInstance);
|
|
80
|
+
this.newSelectedColumnIds = this.context.selectedColumnIds;
|
|
82
81
|
}
|
|
83
82
|
selectedColumnsChange(selectedMap) {
|
|
84
83
|
this.newSelectedColumnIds = [];
|
|
@@ -94,33 +93,33 @@ class SkyColumnSelectorComponent {
|
|
|
94
93
|
applyChanges() {
|
|
95
94
|
this.instance.save(this.newSelectedColumnIds);
|
|
96
95
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
98
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: SkyColumnSelectorComponent, isStandalone: false, selector: "sky-column-selector", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n />\n\n <sky-list-view-checklist label=\"heading\" description=\"description\" />\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", dependencies: [{ kind: "component", type: i1.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout", "headingHidden"] }, { kind: "component", type: i1.λ2, selector: "sky-modal-content" }, { kind: "component", type: i1.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i1.λ4, selector: "sky-modal-header" }, { kind: "component", type: i2.SkyListComponent, selector: "sky-list", inputs: ["data", "dataProvider", "defaultView", "initialTotal", "selectedIds", "sortFields", "appliedFilters", "search"], outputs: ["selectedIdsChange", "appliedFiltersChange"] }, { kind: "component", type: i2.SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: ["inMemorySearchEnabled", "placeholder", "searchEnabled", "sortSelectorEnabled", "toolbarType", "searchText"] }, { kind: "component", type: i3.SkyListViewChecklistComponent, selector: "sky-list-view-checklist", inputs: ["name", "search", "label", "description", "selectMode", "showOnlySelected"] }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
99
98
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorComponent, decorators: [{
|
|
101
100
|
type: Component,
|
|
102
101
|
args: [{ selector: 'sky-column-selector', changeDetection: ChangeDetectionStrategy.Eager, standalone: false, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n />\n\n <sky-list-view-checklist label=\"heading\" description=\"description\" />\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n" }]
|
|
103
|
-
}]
|
|
102
|
+
}] });
|
|
104
103
|
|
|
105
104
|
/**
|
|
106
105
|
* @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.
|
|
107
106
|
*/
|
|
108
107
|
class SkyColumnSelectorModule {
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
110
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
109
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorModule, declarations: [SkyColumnSelectorComponent], imports: [CommonModule,
|
|
111
110
|
SkyModalModule,
|
|
112
111
|
SkyListBuilderViewGridsResourcesModule,
|
|
113
112
|
SkyListModule,
|
|
114
113
|
SkyListToolbarModule,
|
|
115
114
|
SkyListViewChecklistModule] }); }
|
|
116
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
115
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorModule, imports: [CommonModule,
|
|
117
116
|
SkyModalModule,
|
|
118
117
|
SkyListBuilderViewGridsResourcesModule,
|
|
119
118
|
SkyListModule,
|
|
120
119
|
SkyListToolbarModule,
|
|
121
120
|
SkyListViewChecklistModule] }); }
|
|
122
121
|
}
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyColumnSelectorModule, decorators: [{
|
|
124
123
|
type: NgModule,
|
|
125
124
|
args: [{
|
|
126
125
|
declarations: [SkyColumnSelectorComponent],
|
|
@@ -147,10 +146,10 @@ class ListViewDisplayedGridColumnsLoadAction {
|
|
|
147
146
|
}
|
|
148
147
|
|
|
149
148
|
class SkyListColumnSelectorButtonComponent {
|
|
150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
151
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: SkyListColumnSelectorButtonComponent, isStandalone: false, selector: "sky-list-column-selector-button", ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media(min-width:768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "component", type: i1$1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
152
151
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorButtonComponent, decorators: [{
|
|
154
153
|
type: Component,
|
|
155
154
|
args: [{ selector: 'sky-list-column-selector-button', changeDetection: ChangeDetectionStrategy.Eager, standalone: false, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media(min-width:768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"] }]
|
|
156
155
|
}] });
|
|
@@ -160,16 +159,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
160
159
|
* [list toolbar](https://developer.blackbaud.com/skyux/components/list-toolbar).
|
|
161
160
|
*/
|
|
162
161
|
class SkyListColumnSelectorActionComponent {
|
|
163
|
-
constructor(
|
|
164
|
-
this.listState = listState;
|
|
165
|
-
this.modalService = modalService;
|
|
166
|
-
this.dispatcher = dispatcher;
|
|
167
|
-
this.secondaryActions = secondaryActions;
|
|
162
|
+
constructor() {
|
|
168
163
|
/**
|
|
169
164
|
* Fires when users click the help button and broadcasts the `helpKey`.
|
|
170
165
|
*/
|
|
171
166
|
this.helpOpened = new EventEmitter();
|
|
172
167
|
this.columnSelectorActionItemToolbarIndex = 7000;
|
|
168
|
+
this.listState = inject(ListState);
|
|
169
|
+
this.secondaryActions = inject(SkyListSecondaryActionsComponent, {
|
|
170
|
+
optional: true,
|
|
171
|
+
});
|
|
172
|
+
this.modalService = inject(SkyModalService);
|
|
173
|
+
this.dispatcher = inject(ListStateDispatcher);
|
|
173
174
|
}
|
|
174
175
|
ngAfterContentInit() {
|
|
175
176
|
if (!this.secondaryActions) {
|
|
@@ -253,15 +254,13 @@ class SkyListColumnSelectorActionComponent {
|
|
|
253
254
|
});
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
257
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
257
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
258
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SkyListColumnSelectorActionComponent, isStandalone: false, selector: "sky-list-column-selector-action", inputs: { gridView: "gridView", helpKey: "helpKey" }, outputs: { helpOpened: "helpOpened" }, viewQueries: [{ propertyName: "columnChooserTemplate", first: true, predicate: ["columnChooser"], descendants: true, static: true }], ngImport: i0, template: "@if (isInGridViewAndSecondary | async) {\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n}\n\n<ng-template #columnChooser>\n @if (isInGridView | async) {\n <sky-list-column-selector-button (click)=\"openColumnSelector()\" />\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: i2.λ6, selector: "sky-list-secondary-action" }, { kind: "component", type: SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
258
259
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionComponent, decorators: [{
|
|
260
261
|
type: Component,
|
|
261
262
|
args: [{ selector: 'sky-list-column-selector-action', changeDetection: ChangeDetectionStrategy.Eager, standalone: false, template: "@if (isInGridViewAndSecondary | async) {\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n}\n\n<ng-template #columnChooser>\n @if (isInGridView | async) {\n <sky-list-column-selector-button (click)=\"openColumnSelector()\" />\n }\n</ng-template>\n" }]
|
|
262
|
-
}],
|
|
263
|
-
type: Optional
|
|
264
|
-
}] }], propDecorators: { gridView: [{
|
|
263
|
+
}], propDecorators: { gridView: [{
|
|
265
264
|
type: Input
|
|
266
265
|
}], helpKey: [{
|
|
267
266
|
type: Input
|
|
@@ -278,22 +277,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
278
277
|
* @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.
|
|
279
278
|
*/
|
|
280
279
|
class SkyListColumnSelectorActionModule {
|
|
281
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
282
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
280
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
281
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionModule, declarations: [SkyListColumnSelectorActionComponent,
|
|
283
282
|
SkyListColumnSelectorButtonComponent], imports: [CommonModule,
|
|
284
283
|
SkyModalModule,
|
|
285
284
|
SkyListBuilderViewGridsResourcesModule,
|
|
286
285
|
SkyListSecondaryActionsModule,
|
|
287
286
|
SkyListToolbarModule,
|
|
288
287
|
SkyIconModule], exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule] }); }
|
|
289
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
288
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionModule, imports: [CommonModule,
|
|
290
289
|
SkyModalModule,
|
|
291
290
|
SkyListBuilderViewGridsResourcesModule,
|
|
292
291
|
SkyListSecondaryActionsModule,
|
|
293
292
|
SkyListToolbarModule,
|
|
294
293
|
SkyIconModule, SkyColumnSelectorModule] }); }
|
|
295
294
|
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListColumnSelectorActionModule, decorators: [{
|
|
297
296
|
type: NgModule,
|
|
298
297
|
args: [{
|
|
299
298
|
declarations: [
|
|
@@ -339,10 +338,10 @@ class GridStateModel {
|
|
|
339
338
|
* @deprecated
|
|
340
339
|
*/
|
|
341
340
|
class GridStateDispatcher extends StateDispatcher {
|
|
342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
343
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
341
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
342
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridStateDispatcher }); }
|
|
344
343
|
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridStateDispatcher, decorators: [{
|
|
346
345
|
type: Injectable
|
|
347
346
|
}] });
|
|
348
347
|
/**
|
|
@@ -395,18 +394,18 @@ class ListViewDisplayedGridColumnsOrchestrator extends GridStateOrchestrator {
|
|
|
395
394
|
*/
|
|
396
395
|
class GridState extends StateNode {
|
|
397
396
|
/* istanbul ignore next */
|
|
398
|
-
constructor(
|
|
399
|
-
super(
|
|
397
|
+
constructor() {
|
|
398
|
+
super(inject(GridStateModel), inject(GridStateDispatcher));
|
|
400
399
|
this.register('columns', ListViewGridColumnsOrchestrator)
|
|
401
400
|
.register('displayedColumns', ListViewDisplayedGridColumnsOrchestrator)
|
|
402
401
|
.begin();
|
|
403
402
|
}
|
|
404
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
405
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.
|
|
403
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
404
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridState }); }
|
|
406
405
|
}
|
|
407
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridState, decorators: [{
|
|
408
407
|
type: Injectable
|
|
409
|
-
}], ctorParameters: () => [
|
|
408
|
+
}], ctorParameters: () => [] });
|
|
410
409
|
|
|
411
410
|
/**
|
|
412
411
|
* The command for the list view grid to respond to.
|
|
@@ -466,11 +465,8 @@ class SkyListViewGridComponent extends ListViewComponent {
|
|
|
466
465
|
? of(this.width)
|
|
467
466
|
: this.width;
|
|
468
467
|
}
|
|
469
|
-
constructor(
|
|
470
|
-
super(
|
|
471
|
-
this.dispatcher = dispatcher;
|
|
472
|
-
this.gridState = gridState;
|
|
473
|
-
this.gridDispatcher = gridDispatcher;
|
|
468
|
+
constructor() {
|
|
469
|
+
super(inject(ListState), 'Grid View');
|
|
474
470
|
/**
|
|
475
471
|
* How the grid fits to its parent. `"width"` fits the grid to the parent's full
|
|
476
472
|
* width, and `"scroll"` allows the grid to exceed the parent's width. If the grid does not have
|
|
@@ -513,7 +509,10 @@ class SkyListViewGridComponent extends ListViewComponent {
|
|
|
513
509
|
this.multiselectSelectedIds = [];
|
|
514
510
|
this.ngUnsubscribe = new Subject();
|
|
515
511
|
this._messageStream = new Subject();
|
|
516
|
-
|
|
512
|
+
this.dispatcher = inject(ListStateDispatcher);
|
|
513
|
+
this.gridState = inject(GridState);
|
|
514
|
+
this.gridDispatcher = inject(GridStateDispatcher);
|
|
515
|
+
inject(SkyLogService).deprecated('SkyListViewGridComponent', {
|
|
517
516
|
deprecationMajorVersion: 6,
|
|
518
517
|
moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/data-entry-grid',
|
|
519
518
|
replacementRecommendation: 'Use data entry grid instead.',
|
|
@@ -804,8 +803,8 @@ class SkyListViewGridComponent extends ListViewComponent {
|
|
|
804
803
|
return (arrayA.length === arrayB.length &&
|
|
805
804
|
arrayA.every((value, index) => value === arrayB[index]));
|
|
806
805
|
}
|
|
807
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
808
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
806
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
807
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SkyListViewGridComponent, isStandalone: false, selector: "sky-list-view-grid", inputs: { name: "name", displayedColumns: "displayedColumns", hiddenColumns: "hiddenColumns", fit: "fit", width: "width", height: "height", highlightSearchText: "highlightSearchText", messageStream: "messageStream", rowHighlightedId: "rowHighlightedId", enableMultiselect: "enableMultiselect", settingsKey: "settingsKey", searchFunction: ["search", "searchFunction"] }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", selectedColumnIdsChange: "selectedColumnIdsChange" }, providers: [
|
|
809
808
|
{
|
|
810
809
|
provide: ListViewComponent,
|
|
811
810
|
useExisting: forwardRef(() => SkyListViewGridComponent),
|
|
@@ -813,9 +812,9 @@ class SkyListViewGridComponent extends ListViewComponent {
|
|
|
813
812
|
GridState,
|
|
814
813
|
GridStateDispatcher,
|
|
815
814
|
GridStateModel,
|
|
816
|
-
], queries: [{ propertyName: "columnComponents", predicate: SkyGridColumnComponent }], viewQueries: [{ propertyName: "gridComponent", first: true, predicate: SkyGridComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (active | async) {\n <div>\n <sky-grid\n #skyGrid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n />\n <sky-wait [isWaiting]=\"loading | async\" />\n </div>\n}\n", styles: [":host ::ng-deep .sky-grid-heading{border-top:0!important}\n"], dependencies: [{ kind: "component", type:
|
|
815
|
+
], queries: [{ propertyName: "columnComponents", predicate: SkyGridColumnComponent }], viewQueries: [{ propertyName: "gridComponent", first: true, predicate: SkyGridComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (active | async) {\n <div>\n <sky-grid\n #skyGrid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n />\n <sky-wait [isWaiting]=\"loading | async\" />\n </div>\n}\n", styles: [":host ::ng-deep .sky-grid-heading{border-top:0!important}\n"], dependencies: [{ kind: "component", type: i1$2.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "component", type: i2$1.SkyGridComponent, selector: "sky-grid", inputs: ["columns", "data", "enableMultiselect", "fit", "hasToolbar", "height", "highlightText", "messageStream", "multiselectRowId", "rowHighlightedId", "selectedColumnIds", "selectedRowIds", "settingsKey", "sortField", "width"], outputs: ["columnWidthChange", "multiselectSelectionChange", "rowDeleteCancel", "rowDeleteConfirm", "selectedColumnIdsChange", "sortFieldChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
817
816
|
}
|
|
818
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
817
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridComponent, decorators: [{
|
|
819
818
|
type: Component,
|
|
820
819
|
args: [{ selector: 'sky-list-view-grid', providers: [
|
|
821
820
|
{
|
|
@@ -826,7 +825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
826
825
|
GridStateDispatcher,
|
|
827
826
|
GridStateModel,
|
|
828
827
|
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (active | async) {\n <div>\n <sky-grid\n #skyGrid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n />\n <sky-wait [isWaiting]=\"loading | async\" />\n </div>\n}\n", styles: [":host ::ng-deep .sky-grid-heading{border-top:0!important}\n"] }]
|
|
829
|
-
}], ctorParameters: () => [
|
|
828
|
+
}], ctorParameters: () => [], propDecorators: { name: [{
|
|
830
829
|
type: Input
|
|
831
830
|
}], displayedColumns: [{
|
|
832
831
|
type: Input
|
|
@@ -869,20 +868,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
|
|
|
869
868
|
* @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.
|
|
870
869
|
*/
|
|
871
870
|
class SkyListViewGridModule {
|
|
872
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
873
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.
|
|
871
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
872
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridModule, declarations: [SkyListViewGridComponent], imports: [CommonModule,
|
|
874
873
|
SkyWaitModule,
|
|
875
874
|
SkyGridModule,
|
|
876
875
|
SkyListBuilderViewGridsResourcesModule], exports: [SkyListViewGridComponent,
|
|
877
876
|
SkyListColumnSelectorActionModule,
|
|
878
877
|
SkyGridModule] }); }
|
|
879
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.
|
|
878
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridModule, imports: [CommonModule,
|
|
880
879
|
SkyWaitModule,
|
|
881
880
|
SkyGridModule,
|
|
882
881
|
SkyListBuilderViewGridsResourcesModule, SkyListColumnSelectorActionModule,
|
|
883
882
|
SkyGridModule] }); }
|
|
884
883
|
}
|
|
885
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SkyListViewGridModule, decorators: [{
|
|
886
885
|
type: NgModule,
|
|
887
886
|
args: [{
|
|
888
887
|
declarations: [SkyListViewGridComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-list-builder-view-grids.mjs","sources":["../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-context.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/shared/sky-list-builder-view-grids-resources.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/load.action.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-button.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-button.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/load.action.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.model.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.rxstate.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/columns.orchestrator.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.state-node.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/types/list-view-grid-message-type.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.module.ts","../../../../../libs/components/list-builder-view-grids/src/skyux-list-builder-view-grids.ts"],"sourcesContent":["/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\n/**\n * @deprecated\n */\nexport class SkyColumnSelectorContext {\n public columns: SkyColumnSelectorModel[];\n public selectedColumnIds: string[];\n}\n\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\n/**\n * @deprecated\n */\nexport class SkyColumnSelectorModel {\n public id: string;\n public heading: string;\n public description: string;\n}\n","/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-list-builder-view-grids' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_grid_column_picker_cancel: { message: 'Cancel' },\n skyux_grid_column_picker_header: {\n message: 'Choose columns to show in the list',\n },\n skyux_grid_column_picker_search_placeholder: {\n message: 'Search for columns',\n },\n skyux_grid_column_picker_submit: { message: 'Apply changes' },\n skyux_grid_columns_button: { message: 'Choose columns' },\n skyux_grid_columns_toolbar_button: { message: 'Columns' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyListBuilderViewGridsResourcesModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { SkyColumnSelectorContext } from './column-selector-context';\n\n@Component({\n selector: 'sky-column-selector',\n templateUrl: './column-selector-modal.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyColumnSelectorComponent {\n public newSelectedColumnIds: string[] = [];\n\n constructor(\n public context: SkyColumnSelectorContext,\n public instance: SkyModalInstance,\n ) {\n this.newSelectedColumnIds = context.selectedColumnIds;\n }\n\n public selectedColumnsChange(selectedMap: Map<string, boolean>): void {\n this.newSelectedColumnIds = [];\n selectedMap.forEach((value, key) => {\n if (value) {\n this.newSelectedColumnIds.push(key);\n }\n });\n }\n\n public cancelChanges(): void {\n this.instance.cancel();\n }\n\n public applyChanges(): void {\n this.instance.save(this.newSelectedColumnIds);\n }\n}\n","<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n />\n\n <sky-list-view-checklist label=\"heading\" description=\"description\" />\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\nimport { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyColumnSelectorComponent } from './column-selector-modal.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [SkyColumnSelectorComponent],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyListBuilderViewGridsResourcesModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewChecklistModule,\n ],\n})\nexport class SkyColumnSelectorModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewDisplayedGridColumnsLoadAction {\n constructor(\n public columns: SkyGridColumnModel[],\n public refresh = false,\n ) {}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'sky-list-column-selector-button',\n templateUrl: './list-column-selector-button.component.html',\n styleUrls: ['./list-column-selector-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyListColumnSelectorButtonComponent {}\n","<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { SkyGridColumnModel } from '@skyux/grids';\nimport {\n ListState,\n ListStateDispatcher,\n ListToolbarItemModel,\n SkyListSecondaryActionsComponent,\n} from '@skyux/list-builder';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { Observable } from 'rxjs';\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n} from 'rxjs/operators';\n\nimport {\n SkyColumnSelectorContext,\n SkyColumnSelectorModel,\n} from '../column-selector/column-selector-context';\nimport { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';\nimport { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';\nimport { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';\nimport { GridStateModel } from '../list-view-grid/state/grid-state.model';\n\n/**\n * Provides a column selector modal for a list grid view when placed in a\n * [list toolbar](https://developer.blackbaud.com/skyux/components/list-toolbar).\n */\n@Component({\n selector: 'sky-list-column-selector-action',\n templateUrl: './list-column-selector-action.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyListColumnSelectorActionComponent implements AfterContentInit {\n /**\n * Enables the column selector in the list toolbar. Set this attribute to the instance of\n * the `sky-grid-view` component using the component's template reference variable.\n */\n @Input()\n public gridView: SkyListViewGridComponent;\n\n /**\n * The `helpKey` string to associate with a help button in the grid header. When users select\n * the button, the `helpOpened` event broadcasts the `helpKey` parameter.\n */\n @Input()\n public helpKey: string;\n\n /**\n * Fires when users click the help button and broadcasts the `helpKey`.\n */\n @Output()\n public helpOpened = new EventEmitter<string>();\n\n @ViewChild('columnChooser', {\n static: true,\n })\n private columnChooserTemplate: TemplateRef<unknown>;\n\n private columnSelectorActionItemToolbarIndex = 7000;\n\n constructor(\n public listState: ListState,\n private modalService: SkyModalService,\n private dispatcher: ListStateDispatcher,\n @Optional() public secondaryActions: SkyListSecondaryActionsComponent,\n ) {}\n\n public ngAfterContentInit(): void {\n if (!this.secondaryActions) {\n const columnChooserItem = new ListToolbarItemModel({\n id: 'column-chooser',\n template: this.columnChooserTemplate,\n location: 'left',\n });\n\n this.dispatcher.toolbarAddItems(\n [columnChooserItem],\n this.columnSelectorActionItemToolbarIndex,\n );\n }\n }\n\n public get isInGridView(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return this.gridView && activeView === this.gridView.id;\n }),\n distinctUntilChanged(),\n );\n }\n\n public get isInGridViewAndSecondary(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return (\n this.secondaryActions &&\n this.gridView &&\n activeView === this.gridView.id\n );\n }),\n distinctUntilChanged(),\n );\n }\n\n public openColumnSelector(): void {\n /* istanbul ignore else */\n /* sanity check */\n if (this.gridView) {\n let columns: SkyColumnSelectorModel[] = [];\n let selectedColumnIds: string[] = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n columns = state.columns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return {\n id: item.id,\n heading: item.heading,\n description: item.description,\n };\n });\n selectedColumnIds = state.displayedColumns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return item.id;\n });\n });\n\n const modalInstance = this.modalService.open(SkyColumnSelectorComponent, {\n providers: [\n {\n provide: SkyColumnSelectorContext,\n useValue: {\n columns,\n selectedColumnIds,\n },\n },\n ],\n helpKey: this.helpKey,\n });\n\n modalInstance.helpOpened.subscribe((helpKey: string) => {\n this.helpOpened.emit(helpKey);\n this.helpOpened.complete();\n });\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save' && result.data) {\n const newSelectedIds = result.data;\n let newDisplayedColumns: SkyGridColumnModel[] = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n newDisplayedColumns = state.columns.items.filter((item) => {\n return newSelectedIds.indexOf(item.id) > -1 || item.locked;\n });\n });\n this.gridView.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n newDisplayedColumns,\n true,\n ),\n );\n }\n });\n }\n }\n}\n","@if (isInGridViewAndSecondary | async) {\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n}\n\n<ng-template #columnChooser>\n @if (isInGridView | async) {\n <sky-list-column-selector-button (click)=\"openColumnSelector()\" />\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyColumnSelectorModule } from '../column-selector/column-selector-modal.module';\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';\nimport { SkyListColumnSelectorButtonComponent } from './list-column-selector-button.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [\n SkyListColumnSelectorActionComponent,\n SkyListColumnSelectorButtonComponent,\n ],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyListBuilderViewGridsResourcesModule,\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n SkyIconModule,\n ],\n exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule],\n})\nexport class SkyListColumnSelectorActionModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewGridColumnsLoadAction {\n constructor(\n public columns: SkyGridColumnModel[],\n public refresh = false,\n ) {}\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\n/**\n * @internal\n * @deprecated\n */\nexport class GridStateModel {\n public columns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n public displayedColumns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n}\n","import { Injectable } from '@angular/core';\nimport { StateDispatcher, StateOrchestrator } from '@skyux/list-builder-common';\n\nimport { GridStateAction } from './grid-state-action.type';\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class GridStateDispatcher extends StateDispatcher<GridStateAction> {}\n\n/**\n * @internal\n */\nexport class GridStateOrchestrator<T> extends StateOrchestrator<\n T,\n GridStateAction\n> {}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\nimport { GridStateOrchestrator } from '../grid-state.rxstate';\n\nimport { ListViewGridColumnsLoadAction } from './load.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewGridColumnsOrchestrator extends GridStateOrchestrator<\n AsyncList<SkyGridColumnModel>\n> {\n /* istanbul ignore next */\n constructor() {\n super();\n\n this.register(ListViewGridColumnsLoadAction, this.load);\n }\n\n private load(\n state: AsyncList<SkyGridColumnModel>,\n action: ListViewGridColumnsLoadAction,\n ): AsyncList<SkyGridColumnModel> {\n const newColumns = action.columns.map(\n (g) => new SkyGridColumnModel(g.template, g),\n );\n\n if (action.refresh) {\n return new AsyncList<SkyGridColumnModel>([...newColumns], new Date());\n }\n\n return new AsyncList<SkyGridColumnModel>(\n [...state.items, ...newColumns],\n new Date(),\n );\n }\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\nimport { GridStateOrchestrator } from '../grid-state.rxstate';\n\nimport { ListViewDisplayedGridColumnsLoadAction } from './load.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewDisplayedGridColumnsOrchestrator extends GridStateOrchestrator<\n AsyncList<SkyGridColumnModel>\n> {\n /* istanbul ignore next */\n constructor() {\n super();\n\n this.register(ListViewDisplayedGridColumnsLoadAction, this.load);\n }\n\n private load(\n state: AsyncList<SkyGridColumnModel>,\n action: ListViewDisplayedGridColumnsLoadAction,\n ): AsyncList<SkyGridColumnModel> {\n const newColumns = action.columns.map(\n (g) => new SkyGridColumnModel(g.template, g),\n );\n\n if (action.refresh) {\n return new AsyncList<SkyGridColumnModel>([...newColumns], new Date());\n }\n\n return new AsyncList<SkyGridColumnModel>(\n [...state.items, ...newColumns],\n new Date(),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StateNode } from '@skyux/list-builder-common';\n\nimport { ListViewGridColumnsOrchestrator } from './columns/columns.orchestrator';\nimport { ListViewDisplayedGridColumnsOrchestrator } from './displayed-columns/displayed-columns.orchestrator';\nimport { GridStateModel } from './grid-state.model';\nimport { GridStateDispatcher } from './grid-state.rxstate';\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class GridState extends StateNode<GridStateModel> {\n /* istanbul ignore next */\n constructor(initialState: GridStateModel, dispatcher: GridStateDispatcher) {\n super(initialState, dispatcher);\n\n this.register('columns', ListViewGridColumnsOrchestrator)\n .register('displayedColumns', ListViewDisplayedGridColumnsOrchestrator)\n .begin();\n }\n}\n","/**\n * The command for the list view grid to respond to.\n * @deprecated\n */\nexport enum SkyListViewGridMessageType {\n /**\n * Deletes of a row in the list view grid.\n */\n PromptDeleteRow = 0,\n\n /**\n * Cancels the deletion of a row in the list view grid.\n */\n AbortDeleteRow = 1,\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport {\n SkyGridColumnComponent,\n SkyGridColumnDescriptionModelChange,\n SkyGridColumnHeadingModelChange,\n SkyGridColumnModel,\n SkyGridComponent,\n SkyGridMessage,\n SkyGridMessageType,\n SkyGridSelectedRowsModelChange,\n SkyGridSelectedRowsSource,\n} from '@skyux/grids';\nimport {\n ListSearchModel,\n ListSelectedModel,\n ListState,\n ListStateDispatcher,\n ListViewComponent,\n} from '@skyux/list-builder';\nimport {\n AsyncList,\n ListItemModel,\n ListSortFieldSelectorModel,\n getData,\n getValue,\n isObservable,\n} from '@skyux/list-builder-common';\n\nimport { Observable, Subject, of as observableOf } from 'rxjs';\nimport {\n distinctUntilChanged,\n map as observableMap,\n scan,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { ListViewGridColumnsLoadAction } from './state/columns/load.action';\nimport { ListViewDisplayedGridColumnsLoadAction } from './state/displayed-columns/load.action';\nimport { GridStateModel } from './state/grid-state.model';\nimport { GridStateDispatcher } from './state/grid-state.rxstate';\nimport { GridState } from './state/grid-state.state-node';\nimport { SkyListViewGridMessage } from './types/list-view-grid-message';\nimport { SkyListViewGridMessageType } from './types/list-view-grid-message-type';\nimport { SkyListViewGridRowDeleteCancelArgs } from './types/list-view-grid-row-delete-cancel-args';\nimport { SkyListViewGridRowDeleteConfirmArgs } from './types/list-view-grid-row-delete-confirm-args';\n\n/**\n * Displays a grid for a\n * [SKY UX-themed list of data](https://developer.blackbaud.com/skyux/components/list-overview)\n * using the [grid component](https://developer.blackbaud.com/skyux/components/grid).\n * You must install `SkyListModule` as a dependency.\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@Component({\n selector: 'sky-list-view-grid',\n templateUrl: './list-view-grid.component.html',\n styleUrls: ['./list-view-grid.component.scss'],\n providers: [\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewGridComponent),\n },\n GridState,\n GridStateDispatcher,\n GridStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyListViewGridComponent\n extends ListViewComponent\n implements AfterContentInit, OnDestroy\n{\n /**\n * The name of the view.\n * @required\n */\n @Input()\n public set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * The columns to display by default based on the ID or field of the item.\n */\n @Input()\n public displayedColumns: string[] | Observable<string[]>;\n\n /**\n * The columns to hide by default based on the ID or field of the item.\n */\n @Input()\n public hiddenColumns: string[] | Observable<string[]>;\n\n /**\n * How the grid fits to its parent. `\"width\"` fits the grid to the parent's full\n * width, and `\"scroll\"` allows the grid to exceed the parent's width. If the grid does not have\n * enough columns to fill the parent's width, it always stretches to the parent's full width.\n * @default \"width\"\n */\n @Input()\n public fit = 'width';\n\n /**\n * The width of the grid.\n */\n @Input()\n public width: number | Observable<number>;\n\n /**\n * The height of the grid.\n */\n @Input()\n public height: number | Observable<number>;\n\n /**\n * Whether to highlight search text within the grid.\n * @default true\n */\n @Input()\n public highlightSearchText = true;\n\n /**\n * The observable to send commands to the grid.\n * The commands should respect the `SkyListViewGridMessage` type.\n */\n @Input()\n public set messageStream(stream: Subject<SkyListViewGridMessage>) {\n /* istanbul ignore else */\n if (this._messageStream) {\n this._messageStream.unsubscribe();\n }\n\n this._messageStream = stream;\n\n this.initInlineDeleteMessages();\n }\n\n public get messageStream(): Subject<SkyListViewGridMessage> {\n return this._messageStream;\n }\n\n /**\n * The ID of the row to highlight. The ID matches the `id` property of\n * the `data` object. Typically, this property is used in conjunction with the\n * [flyout component](https://developer.blackbaud.com/skyux/components/flyout) to\n * indicate the currently selected row.\n */\n @Input()\n public rowHighlightedId: string;\n\n /**\n * Whether to enable the multiselect feature to display a column of checkboxes\n * on the left side of the grid. Multiselect also displays an action bar with buttons to\n * select and clear all checkboxes. Multiselect defaults to the `id` property on the list's\n * `data` object.\n * @default false\n */\n @Input()\n public enableMultiselect = false;\n\n /**\n * The unique key for the UI Config Service that retrieves stored settings from\n * a database. The service saves configuration settings for users and returns `selectedColumnIds`\n * for the columns to display and the preferred column order. For more information, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/develop/sticky-settings/overview).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Fires when users cancel the deletion of a row.\n */\n @Output()\n public rowDeleteCancel =\n new EventEmitter<SkyListViewGridRowDeleteCancelArgs>();\n\n /**\n * Fires when users confirm the deletion of a row.\n */\n @Output()\n public rowDeleteConfirm =\n new EventEmitter<SkyListViewGridRowDeleteConfirmArgs>();\n\n /**\n * Fires when columns change. This includes changes to the displayed columns and changes\n * to the order of columns. The event emits an array of IDs for the displayed columns that\n * reflects the column order.\n */\n @Output()\n public selectedColumnIdsChange = new EventEmitter<string[]>();\n\n @ViewChild(SkyGridComponent)\n public gridComponent: SkyGridComponent;\n\n public get gridHeight(): Observable<number> {\n /* istanbul ignore next */\n return typeof this.height === 'number'\n ? observableOf(this.height)\n : this.height;\n }\n\n public get gridWidth(): Observable<number> {\n /* istanbul ignore next */\n return typeof this.width === 'number'\n ? observableOf(this.width)\n : this.width;\n }\n\n public columns: Observable<SkyGridColumnModel[]>;\n\n public selectedColumnIds: Observable<string[]>;\n\n public items: Observable<ListItemModel[]>;\n\n /**\n * Message stream for communicating with the internal grid instance\n * @internal\n */\n public gridMessageStream = new Subject<SkyGridMessage>();\n\n public loading: Observable<boolean>;\n\n public sortField: Observable<ListSortFieldSelectorModel>;\n\n public currentSearchText: Observable<string>;\n\n public multiselectSelectedIds: string[] = [];\n\n /**\n * The search function to apply on the view data.\n * @param data Specifies the data to search.\n * @param searchText Specifies a text string to search for.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('search')\n public searchFunction: (data: any, searchText: string) => boolean;\n\n @ContentChildren(SkyGridColumnComponent)\n private columnComponents: QueryList<SkyGridColumnComponent>;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _messageStream = new Subject<SkyListViewGridMessage>();\n\n constructor(\n state: ListState,\n private dispatcher: ListStateDispatcher,\n public gridState: GridState,\n public gridDispatcher: GridStateDispatcher,\n logger: SkyLogService,\n ) {\n super(state, 'Grid View');\n\n logger.deprecated('SkyListViewGridComponent', {\n deprecationMajorVersion: 6,\n moreInfoUrl:\n 'https://developer.blackbaud.com/skyux/components/data-entry-grid',\n replacementRecommendation: 'Use data entry grid instead.',\n });\n }\n\n public ngAfterContentInit(): void {\n // Watch for selection changes and update multiselectSelectedIds for local comparison.\n this.state\n .pipe(\n observableMap((s) => s.selected.item),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.selectedMapEqual),\n )\n .subscribe((items: ListSelectedModel) => {\n const selectedIds: string[] = [];\n\n items.selectedIdMap.forEach((isSelected, id) => {\n if (items.selectedIdMap.get(id) === true) {\n selectedIds.push(id);\n }\n });\n\n this.multiselectSelectedIds = selectedIds;\n });\n\n /* istanbul ignore next */\n if (this.columnComponents.length === 0) {\n throw new Error(\n 'Grid view requires at least one sky-grid-column to render.',\n );\n }\n\n const columnModels = this.columnComponents.map((columnComponent) => {\n return new SkyGridColumnModel(columnComponent.template, columnComponent);\n });\n\n if (this.width && !isObservable(this.width)) {\n this.width = observableOf(this.width);\n }\n\n if (this.height && !isObservable(this.height)) {\n this.height = observableOf(this.height);\n }\n\n // Setup Observables for template\n this.columns = this.gridState.pipe(\n observableMap((s) => s.columns.items),\n distinctUntilChanged(this.arraysEqual),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.selectedColumnIds = this.getSelectedIds();\n\n this.items = this.getGridItems();\n\n this.loading = this.state.pipe(\n observableMap((s) => {\n return s.items.loading;\n }),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.sortField = this.state.pipe(\n observableMap((s) => {\n /* istanbul ignore else */\n /* sanity check */\n if (s.sort && s.sort.fieldSelectors) {\n return s.sort.fieldSelectors[0];\n }\n /* istanbul ignore next */\n /* sanity check */\n return undefined;\n }),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.gridState\n .pipe(\n observableMap((s) => s.columns.items),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.arraysEqual),\n )\n .subscribe((columns) => {\n /* istanbul ignore else */\n if (this.hiddenColumns) {\n getValue(this.hiddenColumns, (hiddenColumns: string[]) => {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter((x) => {\n /* istanbul ignore next */\n /* sanity check */\n const id = x.id || x.field;\n return hiddenColumns.indexOf(id) === -1;\n }),\n true,\n ),\n );\n });\n } else if (this.displayedColumns) {\n /* istanbul ignore next */\n getValue(this.displayedColumns, (displayedColumns: string[]) => {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter(\n (x) => displayedColumns.indexOf(x.id || x.field) !== -1,\n ),\n true,\n ),\n );\n });\n } else {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter((x) => !x.hidden),\n true,\n ),\n );\n }\n });\n\n this.currentSearchText = this.state.pipe(\n observableMap((s) => s.search.searchText),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.gridDispatcher.next(\n new ListViewGridColumnsLoadAction(columnModels, true),\n );\n\n this.handleColumnChange();\n\n if (this.enableMultiselect) {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n }\n\n this.initInlineDeleteMessages();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * If user makes selection, tell list-builder to update the list state.\n * This logic should only run on user interaction - NOT programmatic updates.\n */\n public onMultiselectSelectionChange(\n event: SkyGridSelectedRowsModelChange,\n ): void {\n if (\n event.source === SkyGridSelectedRowsSource.CheckboxChange ||\n event.source === SkyGridSelectedRowsSource.RowClick\n ) {\n this.state\n .pipe(\n observableMap((s) => s.items.items),\n take(1),\n )\n .subscribe((items: ListItemModel[]) => {\n const newItemIds = this.arrayIntersection(\n items.map((i) => i.id),\n this.multiselectSelectedIds,\n );\n const newIds = items.filter((i) => i.isSelected).map((i) => i.id);\n\n // Check for deselected ids & send message to dispatcher.\n const deselectedIds = this.arrayDiff(newItemIds, newIds);\n if (deselectedIds.length > 0) {\n this.dispatcher.setSelected(deselectedIds, false);\n }\n\n // Check for selected ids & send message to dispatcher.\n const selectedIds = this.arrayDiff(newIds, newItemIds);\n if (selectedIds.length > 0) {\n this.dispatcher.setSelected(selectedIds, true);\n }\n });\n }\n }\n\n public columnIdsChanged(selectedColumnIds: string[]): void {\n this.selectedColumnIds.pipe(take(1)).subscribe((currentIds) => {\n if (!this.arraysEqual(selectedColumnIds, currentIds)) {\n this.gridState\n .pipe(\n observableMap((s) => s.columns.items),\n take(1),\n )\n .subscribe((columns) => {\n const displayedColumns = selectedColumnIds.map(\n (columnId) => columns.filter((c) => c.id === columnId)[0],\n );\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n displayedColumns,\n true,\n ),\n );\n });\n }\n });\n }\n\n public cancelRowDelete(args: SkyListViewGridRowDeleteCancelArgs): void {\n this.rowDeleteCancel.emit(args);\n }\n\n public confirmRowDelete(args: SkyListViewGridRowDeleteConfirmArgs): void {\n this.rowDeleteConfirm.emit(args);\n }\n\n public sortFieldChanged(sortField: ListSortFieldSelectorModel): void {\n this.dispatcher.sortSetFieldSelectors([sortField]);\n }\n\n public override onViewActive(): void {\n /*\n Ran into problem where state updates were consumed out of order. For example, on search text\n update, the searchText update was consumed after the resulting list item update. Scanning the\n previous value of items lastUpdate ensures that we only receive the latest items.\n */\n this.gridState\n .pipe(\n takeUntil(this.ngUnsubscribe),\n scan((previousValue: GridStateModel, newValue: GridStateModel) => {\n if (\n previousValue.displayedColumns.lastUpdate >\n newValue.displayedColumns.lastUpdate\n ) {\n return previousValue;\n } else {\n return newValue;\n }\n }),\n observableMap((s) => s.displayedColumns.items),\n distinctUntilChanged(this.arraysEqual),\n )\n .subscribe((displayedColumns) => {\n const setFunctions =\n this.searchFunction !== undefined\n ? [this.searchFunction]\n : displayedColumns\n .map(\n (column) =>\n (data: any, searchText: string): any =>\n column.searchFunction(\n getData(data, column.field),\n searchText,\n ),\n )\n .filter((c) => c !== undefined);\n\n this.state.pipe(take(1)).subscribe((s) => {\n this.dispatcher.searchSetOptions(\n new ListSearchModel({\n searchText: s.search.searchText,\n functions: setFunctions,\n fieldSelectors: displayedColumns.map((d) => d.field),\n }),\n );\n });\n });\n }\n\n private initInlineDeleteMessages(): void {\n /* istanbul ignore next */\n if (this.messageStream) {\n this.messageStream.subscribe((message: SkyListViewGridMessage) => {\n if (message.type === SkyListViewGridMessageType.AbortDeleteRow) {\n this.gridMessageStream.next({\n type: SkyGridMessageType.AbortDeleteRow,\n data: {\n abortDeleteRow: message.data.abortDeleteRow,\n },\n });\n } else if (\n message.type === SkyListViewGridMessageType.PromptDeleteRow\n ) {\n this.gridMessageStream.next({\n type: SkyGridMessageType.PromptDeleteRow,\n data: {\n promptDeleteRow: message.data.promptDeleteRow,\n },\n });\n }\n });\n }\n }\n\n private handleColumnChange(): void {\n // watch for changes in column components\n this.columnComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((columnComponents) => {\n const columnModels = this.columnComponents.map((column) => {\n return new SkyGridColumnModel(column.template, column);\n });\n this.gridDispatcher.next(\n new ListViewGridColumnsLoadAction(columnModels, true),\n );\n });\n\n // Watch for column heading changes:\n this.columnComponents.forEach((comp) => {\n comp.headingModelChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyGridColumnHeadingModelChange) => {\n this.gridComponent.updateColumnHeading(change);\n });\n comp.descriptionModelChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyGridColumnDescriptionModelChange) => {\n this.gridComponent.updateColumnDescription(change);\n });\n });\n }\n\n private getGridItems(): Observable<ListItemModel[]> {\n /*\n Same problem as above. We should move from having a state object observable with a bunch of\n static properties to a static state object with observable properties that you can subscribe\n to.\n */\n return this.state.pipe(\n observableMap((s) => {\n return s.items;\n }),\n scan(\n (\n previousValue: AsyncList<ListItemModel>,\n newValue: AsyncList<ListItemModel>,\n ) => {\n if (previousValue.lastUpdate > newValue.lastUpdate) {\n return previousValue;\n } else {\n return newValue;\n }\n },\n ),\n observableMap((result: AsyncList<ListItemModel>) => {\n return result.items;\n }),\n distinctUntilChanged(),\n );\n }\n\n private getSelectedIds(): Observable<string[]> {\n /*\n Same problem as above. We should move from having a state object observable with a bunch of\n static properties to a static state object with observable properties that you can subscribe\n to.\n */\n return this.gridState.pipe(\n observableMap((s) => s.displayedColumns),\n scan(\n (\n previousValue: AsyncList<SkyGridColumnModel>,\n newValue: AsyncList<SkyGridColumnModel>,\n ) => {\n if (previousValue.lastUpdate > newValue.lastUpdate) {\n return previousValue;\n } else {\n return newValue;\n }\n },\n ),\n observableMap((result: AsyncList<SkyGridColumnModel>) => {\n /* istanbul ignore next */\n /* sanity check */\n return result.items.map((column: SkyGridColumnModel) => {\n return column.id || column.field;\n });\n }),\n distinctUntilChanged((previousValue: string[], newValue: string[]) => {\n return this.haveColumnIdsChanged(previousValue, newValue);\n }),\n );\n }\n\n private haveColumnIdsChanged(\n previousValue: string[],\n newValue: string[],\n ): boolean {\n if (previousValue.length !== newValue.length) {\n this.selectedColumnIdsChange.emit(newValue);\n return false;\n }\n\n for (let i = 0; i < previousValue.length; i++) {\n /* istanbul ignore if */\n if (previousValue[i] !== newValue[i]) {\n this.selectedColumnIdsChange.emit(newValue);\n return false;\n }\n }\n return true;\n }\n\n private selectedMapEqual(\n prev: ListSelectedModel,\n next: ListSelectedModel,\n ): boolean {\n if (prev.selectedIdMap.size !== next.selectedIdMap.size) {\n return false;\n }\n\n const keys: string[] = [];\n next.selectedIdMap.forEach((value, key) => {\n keys.push(key);\n });\n\n for (const key of keys) {\n const value = next.selectedIdMap.get(key);\n if (value !== prev.selectedIdMap.get(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n private arrayDiff(arrA: any[], arrB: any[]): any[] {\n return arrA.filter((i) => arrB.indexOf(i) < 0);\n }\n\n private arrayIntersection(arrA: any[], arrB: any[]): any[] {\n return arrA.filter((value) => -1 !== arrB.indexOf(value));\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]): boolean {\n return (\n arrayA.length === arrayB.length &&\n arrayA.every((value, index) => value === arrayB[index])\n );\n }\n}\n","@if (active | async) {\n <div>\n <sky-grid\n #skyGrid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n />\n <sky-wait [isWaiting]=\"loading | async\" />\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyGridModule } from '@skyux/grids';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { SkyListColumnSelectorActionModule } from '../list-column-selector-action/list-column-selector-action.module';\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyListViewGridComponent } from './list-view-grid.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [SkyListViewGridComponent],\n imports: [\n CommonModule,\n SkyWaitModule,\n SkyGridModule,\n SkyListBuilderViewGridsResourcesModule,\n ],\n exports: [\n SkyListViewGridComponent,\n SkyListColumnSelectorActionModule,\n SkyGridModule,\n ],\n})\nexport class SkyListViewGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyColumnSelectorContext","i3","i1","i2","observableMap","i3.SkyListColumnSelectorButtonComponent","i4","i1.GridStateModel","i2.GridStateDispatcher","observableOf","i2.GridState","i3.GridStateDispatcher","i5","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-list-builder-view-grids.mjs","sources":["../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-context.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/shared/sky-list-builder-view-grids-resources.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/load.action.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-button.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-button.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.module.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/load.action.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.model.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.rxstate.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/columns.orchestrator.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.state-node.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/types/list-view-grid-message-type.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.component.ts","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.component.html","../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.module.ts","../../../../../libs/components/list-builder-view-grids/src/skyux-list-builder-view-grids.ts"],"sourcesContent":["/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\n/**\n * @deprecated\n */\nexport class SkyColumnSelectorContext {\n public columns: SkyColumnSelectorModel[];\n public selectedColumnIds: string[];\n}\n\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\n/**\n * @deprecated\n */\nexport class SkyColumnSelectorModel {\n public id: string;\n public heading: string;\n public description: string;\n}\n","/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-list-builder-view-grids' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_grid_column_picker_cancel: { message: 'Cancel' },\n skyux_grid_column_picker_header: {\n message: 'Choose columns to show in the list',\n },\n skyux_grid_column_picker_search_placeholder: {\n message: 'Search for columns',\n },\n skyux_grid_column_picker_submit: { message: 'Apply changes' },\n skyux_grid_columns_button: { message: 'Choose columns' },\n skyux_grid_columns_toolbar_button: { message: 'Columns' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyListBuilderViewGridsResourcesModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { SkyColumnSelectorContext } from './column-selector-context';\n\n@Component({\n selector: 'sky-column-selector',\n templateUrl: './column-selector-modal.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyColumnSelectorComponent {\n public readonly context = inject(SkyColumnSelectorContext);\n public readonly instance = inject(SkyModalInstance);\n\n public newSelectedColumnIds: string[] = this.context.selectedColumnIds;\n\n public selectedColumnsChange(selectedMap: Map<string, boolean>): void {\n this.newSelectedColumnIds = [];\n selectedMap.forEach((value, key) => {\n if (value) {\n this.newSelectedColumnIds.push(key);\n }\n });\n }\n\n public cancelChanges(): void {\n this.instance.cancel();\n }\n\n public applyChanges(): void {\n this.instance.save(this.newSelectedColumnIds);\n }\n}\n","<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n />\n\n <sky-list-view-checklist label=\"heading\" description=\"description\" />\n </sky-list>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_grid_column_picker_submit' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_grid_column_picker_cancel' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\nimport { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyColumnSelectorComponent } from './column-selector-modal.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [SkyColumnSelectorComponent],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyListBuilderViewGridsResourcesModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewChecklistModule,\n ],\n})\nexport class SkyColumnSelectorModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewDisplayedGridColumnsLoadAction {\n constructor(\n public columns: SkyGridColumnModel[],\n public refresh = false,\n ) {}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'sky-list-column-selector-button',\n templateUrl: './list-column-selector-button.component.html',\n styleUrls: ['./list-column-selector-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyListColumnSelectorButtonComponent {}\n","<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_grid_columns_toolbar_button' | skyLibResources }}\n </span>\n</button>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { SkyGridColumnModel } from '@skyux/grids';\nimport {\n ListState,\n ListStateDispatcher,\n ListToolbarItemModel,\n SkyListSecondaryActionsComponent,\n} from '@skyux/list-builder';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { Observable } from 'rxjs';\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n} from 'rxjs/operators';\n\nimport {\n SkyColumnSelectorContext,\n SkyColumnSelectorModel,\n} from '../column-selector/column-selector-context';\nimport { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';\nimport { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';\nimport { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';\nimport { GridStateModel } from '../list-view-grid/state/grid-state.model';\n\n/**\n * Provides a column selector modal for a list grid view when placed in a\n * [list toolbar](https://developer.blackbaud.com/skyux/components/list-toolbar).\n */\n@Component({\n selector: 'sky-list-column-selector-action',\n templateUrl: './list-column-selector-action.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SkyListColumnSelectorActionComponent implements AfterContentInit {\n /**\n * Enables the column selector in the list toolbar. Set this attribute to the instance of\n * the `sky-grid-view` component using the component's template reference variable.\n */\n @Input()\n public gridView: SkyListViewGridComponent;\n\n /**\n * The `helpKey` string to associate with a help button in the grid header. When users select\n * the button, the `helpOpened` event broadcasts the `helpKey` parameter.\n */\n @Input()\n public helpKey: string;\n\n /**\n * Fires when users click the help button and broadcasts the `helpKey`.\n */\n @Output()\n public helpOpened = new EventEmitter<string>();\n\n @ViewChild('columnChooser', {\n static: true,\n })\n private columnChooserTemplate: TemplateRef<unknown>;\n\n private columnSelectorActionItemToolbarIndex = 7000;\n\n public readonly listState = inject(ListState);\n public readonly secondaryActions = inject(SkyListSecondaryActionsComponent, {\n optional: true,\n });\n\n private readonly modalService = inject(SkyModalService);\n private readonly dispatcher = inject(ListStateDispatcher);\n\n public ngAfterContentInit(): void {\n if (!this.secondaryActions) {\n const columnChooserItem = new ListToolbarItemModel({\n id: 'column-chooser',\n template: this.columnChooserTemplate,\n location: 'left',\n });\n\n this.dispatcher.toolbarAddItems(\n [columnChooserItem],\n this.columnSelectorActionItemToolbarIndex,\n );\n }\n }\n\n public get isInGridView(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return this.gridView && activeView === this.gridView.id;\n }),\n distinctUntilChanged(),\n );\n }\n\n public get isInGridViewAndSecondary(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return (\n this.secondaryActions &&\n this.gridView &&\n activeView === this.gridView.id\n );\n }),\n distinctUntilChanged(),\n );\n }\n\n public openColumnSelector(): void {\n /* istanbul ignore else */\n /* sanity check */\n if (this.gridView) {\n let columns: SkyColumnSelectorModel[] = [];\n let selectedColumnIds: string[] = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n columns = state.columns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return {\n id: item.id,\n heading: item.heading,\n description: item.description,\n };\n });\n selectedColumnIds = state.displayedColumns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return item.id;\n });\n });\n\n const modalInstance = this.modalService.open(SkyColumnSelectorComponent, {\n providers: [\n {\n provide: SkyColumnSelectorContext,\n useValue: {\n columns,\n selectedColumnIds,\n },\n },\n ],\n helpKey: this.helpKey,\n });\n\n modalInstance.helpOpened.subscribe((helpKey: string) => {\n this.helpOpened.emit(helpKey);\n this.helpOpened.complete();\n });\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save' && result.data) {\n const newSelectedIds = result.data;\n let newDisplayedColumns: SkyGridColumnModel[] = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n newDisplayedColumns = state.columns.items.filter((item) => {\n return newSelectedIds.indexOf(item.id) > -1 || item.locked;\n });\n });\n this.gridView.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n newDisplayedColumns,\n true,\n ),\n );\n }\n });\n }\n }\n}\n","@if (isInGridViewAndSecondary | async) {\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n}\n\n<ng-template #columnChooser>\n @if (isInGridView | async) {\n <sky-list-column-selector-button (click)=\"openColumnSelector()\" />\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyColumnSelectorModule } from '../column-selector/column-selector-modal.module';\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';\nimport { SkyListColumnSelectorButtonComponent } from './list-column-selector-button.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [\n SkyListColumnSelectorActionComponent,\n SkyListColumnSelectorButtonComponent,\n ],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyListBuilderViewGridsResourcesModule,\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n SkyIconModule,\n ],\n exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule],\n})\nexport class SkyListColumnSelectorActionModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewGridColumnsLoadAction {\n constructor(\n public columns: SkyGridColumnModel[],\n public refresh = false,\n ) {}\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\n/**\n * @internal\n * @deprecated\n */\nexport class GridStateModel {\n public columns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n public displayedColumns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n}\n","import { Injectable } from '@angular/core';\nimport { StateDispatcher, StateOrchestrator } from '@skyux/list-builder-common';\n\nimport { GridStateAction } from './grid-state-action.type';\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class GridStateDispatcher extends StateDispatcher<GridStateAction> {}\n\n/**\n * @internal\n */\nexport class GridStateOrchestrator<T> extends StateOrchestrator<\n T,\n GridStateAction\n> {}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\nimport { GridStateOrchestrator } from '../grid-state.rxstate';\n\nimport { ListViewGridColumnsLoadAction } from './load.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewGridColumnsOrchestrator extends GridStateOrchestrator<\n AsyncList<SkyGridColumnModel>\n> {\n /* istanbul ignore next */\n constructor() {\n super();\n\n this.register(ListViewGridColumnsLoadAction, this.load);\n }\n\n private load(\n state: AsyncList<SkyGridColumnModel>,\n action: ListViewGridColumnsLoadAction,\n ): AsyncList<SkyGridColumnModel> {\n const newColumns = action.columns.map(\n (g) => new SkyGridColumnModel(g.template, g),\n );\n\n if (action.refresh) {\n return new AsyncList<SkyGridColumnModel>([...newColumns], new Date());\n }\n\n return new AsyncList<SkyGridColumnModel>(\n [...state.items, ...newColumns],\n new Date(),\n );\n }\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\nimport { GridStateOrchestrator } from '../grid-state.rxstate';\n\nimport { ListViewDisplayedGridColumnsLoadAction } from './load.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewDisplayedGridColumnsOrchestrator extends GridStateOrchestrator<\n AsyncList<SkyGridColumnModel>\n> {\n /* istanbul ignore next */\n constructor() {\n super();\n\n this.register(ListViewDisplayedGridColumnsLoadAction, this.load);\n }\n\n private load(\n state: AsyncList<SkyGridColumnModel>,\n action: ListViewDisplayedGridColumnsLoadAction,\n ): AsyncList<SkyGridColumnModel> {\n const newColumns = action.columns.map(\n (g) => new SkyGridColumnModel(g.template, g),\n );\n\n if (action.refresh) {\n return new AsyncList<SkyGridColumnModel>([...newColumns], new Date());\n }\n\n return new AsyncList<SkyGridColumnModel>(\n [...state.items, ...newColumns],\n new Date(),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { StateNode } from '@skyux/list-builder-common';\n\nimport { ListViewGridColumnsOrchestrator } from './columns/columns.orchestrator';\nimport { ListViewDisplayedGridColumnsOrchestrator } from './displayed-columns/displayed-columns.orchestrator';\nimport { GridStateModel } from './grid-state.model';\nimport { GridStateDispatcher } from './grid-state.rxstate';\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class GridState extends StateNode<GridStateModel> {\n /* istanbul ignore next */\n constructor() {\n super(inject(GridStateModel), inject(GridStateDispatcher));\n\n this.register('columns', ListViewGridColumnsOrchestrator)\n .register('displayedColumns', ListViewDisplayedGridColumnsOrchestrator)\n .begin();\n }\n}\n","/**\n * The command for the list view grid to respond to.\n * @deprecated\n */\nexport enum SkyListViewGridMessageType {\n /**\n * Deletes of a row in the list view grid.\n */\n PromptDeleteRow = 0,\n\n /**\n * Cancels the deletion of a row in the list view grid.\n */\n AbortDeleteRow = 1,\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport {\n SkyGridColumnComponent,\n SkyGridColumnDescriptionModelChange,\n SkyGridColumnHeadingModelChange,\n SkyGridColumnModel,\n SkyGridComponent,\n SkyGridMessage,\n SkyGridMessageType,\n SkyGridSelectedRowsModelChange,\n SkyGridSelectedRowsSource,\n} from '@skyux/grids';\nimport {\n ListSearchModel,\n ListSelectedModel,\n ListState,\n ListStateDispatcher,\n ListViewComponent,\n} from '@skyux/list-builder';\nimport {\n AsyncList,\n ListItemModel,\n ListSortFieldSelectorModel,\n getData,\n getValue,\n isObservable,\n} from '@skyux/list-builder-common';\n\nimport { Observable, Subject, of as observableOf } from 'rxjs';\nimport {\n distinctUntilChanged,\n map as observableMap,\n scan,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { ListViewGridColumnsLoadAction } from './state/columns/load.action';\nimport { ListViewDisplayedGridColumnsLoadAction } from './state/displayed-columns/load.action';\nimport { GridStateModel } from './state/grid-state.model';\nimport { GridStateDispatcher } from './state/grid-state.rxstate';\nimport { GridState } from './state/grid-state.state-node';\nimport { SkyListViewGridMessage } from './types/list-view-grid-message';\nimport { SkyListViewGridMessageType } from './types/list-view-grid-message-type';\nimport { SkyListViewGridRowDeleteCancelArgs } from './types/list-view-grid-row-delete-cancel-args';\nimport { SkyListViewGridRowDeleteConfirmArgs } from './types/list-view-grid-row-delete-confirm-args';\n\n/**\n * Displays a grid for a\n * [SKY UX-themed list of data](https://developer.blackbaud.com/skyux/components/list-overview)\n * using the [grid component](https://developer.blackbaud.com/skyux/components/grid).\n * You must install `SkyListModule` as a dependency.\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@Component({\n selector: 'sky-list-view-grid',\n templateUrl: './list-view-grid.component.html',\n styleUrls: ['./list-view-grid.component.scss'],\n providers: [\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewGridComponent),\n },\n GridState,\n GridStateDispatcher,\n GridStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyListViewGridComponent\n extends ListViewComponent\n implements AfterContentInit, OnDestroy\n{\n /**\n * The name of the view.\n * @required\n */\n @Input()\n public set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * The columns to display by default based on the ID or field of the item.\n */\n @Input()\n public displayedColumns: string[] | Observable<string[]>;\n\n /**\n * The columns to hide by default based on the ID or field of the item.\n */\n @Input()\n public hiddenColumns: string[] | Observable<string[]>;\n\n /**\n * How the grid fits to its parent. `\"width\"` fits the grid to the parent's full\n * width, and `\"scroll\"` allows the grid to exceed the parent's width. If the grid does not have\n * enough columns to fill the parent's width, it always stretches to the parent's full width.\n * @default \"width\"\n */\n @Input()\n public fit = 'width';\n\n /**\n * The width of the grid.\n */\n @Input()\n public width: number | Observable<number>;\n\n /**\n * The height of the grid.\n */\n @Input()\n public height: number | Observable<number>;\n\n /**\n * Whether to highlight search text within the grid.\n * @default true\n */\n @Input()\n public highlightSearchText = true;\n\n /**\n * The observable to send commands to the grid.\n * The commands should respect the `SkyListViewGridMessage` type.\n */\n @Input()\n public set messageStream(stream: Subject<SkyListViewGridMessage>) {\n /* istanbul ignore else */\n if (this._messageStream) {\n this._messageStream.unsubscribe();\n }\n\n this._messageStream = stream;\n\n this.initInlineDeleteMessages();\n }\n\n public get messageStream(): Subject<SkyListViewGridMessage> {\n return this._messageStream;\n }\n\n /**\n * The ID of the row to highlight. The ID matches the `id` property of\n * the `data` object. Typically, this property is used in conjunction with the\n * [flyout component](https://developer.blackbaud.com/skyux/components/flyout) to\n * indicate the currently selected row.\n */\n @Input()\n public rowHighlightedId: string;\n\n /**\n * Whether to enable the multiselect feature to display a column of checkboxes\n * on the left side of the grid. Multiselect also displays an action bar with buttons to\n * select and clear all checkboxes. Multiselect defaults to the `id` property on the list's\n * `data` object.\n * @default false\n */\n @Input()\n public enableMultiselect = false;\n\n /**\n * The unique key for the UI Config Service that retrieves stored settings from\n * a database. The service saves configuration settings for users and returns `selectedColumnIds`\n * for the columns to display and the preferred column order. For more information, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/develop/sticky-settings/overview).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Fires when users cancel the deletion of a row.\n */\n @Output()\n public rowDeleteCancel =\n new EventEmitter<SkyListViewGridRowDeleteCancelArgs>();\n\n /**\n * Fires when users confirm the deletion of a row.\n */\n @Output()\n public rowDeleteConfirm =\n new EventEmitter<SkyListViewGridRowDeleteConfirmArgs>();\n\n /**\n * Fires when columns change. This includes changes to the displayed columns and changes\n * to the order of columns. The event emits an array of IDs for the displayed columns that\n * reflects the column order.\n */\n @Output()\n public selectedColumnIdsChange = new EventEmitter<string[]>();\n\n @ViewChild(SkyGridComponent)\n public gridComponent: SkyGridComponent;\n\n public get gridHeight(): Observable<number> {\n /* istanbul ignore next */\n return typeof this.height === 'number'\n ? observableOf(this.height)\n : this.height;\n }\n\n public get gridWidth(): Observable<number> {\n /* istanbul ignore next */\n return typeof this.width === 'number'\n ? observableOf(this.width)\n : this.width;\n }\n\n public columns: Observable<SkyGridColumnModel[]>;\n\n public selectedColumnIds: Observable<string[]>;\n\n public items: Observable<ListItemModel[]>;\n\n /**\n * Message stream for communicating with the internal grid instance\n * @internal\n */\n public gridMessageStream = new Subject<SkyGridMessage>();\n\n public loading: Observable<boolean>;\n\n public sortField: Observable<ListSortFieldSelectorModel>;\n\n public currentSearchText: Observable<string>;\n\n public multiselectSelectedIds: string[] = [];\n\n /**\n * The search function to apply on the view data.\n * @param data Specifies the data to search.\n * @param searchText Specifies a text string to search for.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('search')\n public searchFunction: (data: any, searchText: string) => boolean;\n\n @ContentChildren(SkyGridColumnComponent)\n private columnComponents: QueryList<SkyGridColumnComponent>;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _messageStream = new Subject<SkyListViewGridMessage>();\n\n private readonly dispatcher = inject(ListStateDispatcher);\n public readonly gridState = inject(GridState);\n public readonly gridDispatcher = inject(GridStateDispatcher);\n\n constructor() {\n super(inject(ListState), 'Grid View');\n\n inject(SkyLogService).deprecated('SkyListViewGridComponent', {\n deprecationMajorVersion: 6,\n moreInfoUrl:\n 'https://developer.blackbaud.com/skyux/components/data-entry-grid',\n replacementRecommendation: 'Use data entry grid instead.',\n });\n }\n\n public ngAfterContentInit(): void {\n // Watch for selection changes and update multiselectSelectedIds for local comparison.\n this.state\n .pipe(\n observableMap((s) => s.selected.item),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.selectedMapEqual),\n )\n .subscribe((items: ListSelectedModel) => {\n const selectedIds: string[] = [];\n\n items.selectedIdMap.forEach((isSelected, id) => {\n if (items.selectedIdMap.get(id) === true) {\n selectedIds.push(id);\n }\n });\n\n this.multiselectSelectedIds = selectedIds;\n });\n\n /* istanbul ignore next */\n if (this.columnComponents.length === 0) {\n throw new Error(\n 'Grid view requires at least one sky-grid-column to render.',\n );\n }\n\n const columnModels = this.columnComponents.map((columnComponent) => {\n return new SkyGridColumnModel(columnComponent.template, columnComponent);\n });\n\n if (this.width && !isObservable(this.width)) {\n this.width = observableOf(this.width);\n }\n\n if (this.height && !isObservable(this.height)) {\n this.height = observableOf(this.height);\n }\n\n // Setup Observables for template\n this.columns = this.gridState.pipe(\n observableMap((s) => s.columns.items),\n distinctUntilChanged(this.arraysEqual),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.selectedColumnIds = this.getSelectedIds();\n\n this.items = this.getGridItems();\n\n this.loading = this.state.pipe(\n observableMap((s) => {\n return s.items.loading;\n }),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.sortField = this.state.pipe(\n observableMap((s) => {\n /* istanbul ignore else */\n /* sanity check */\n if (s.sort && s.sort.fieldSelectors) {\n return s.sort.fieldSelectors[0];\n }\n /* istanbul ignore next */\n /* sanity check */\n return undefined;\n }),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.gridState\n .pipe(\n observableMap((s) => s.columns.items),\n takeUntil(this.ngUnsubscribe),\n distinctUntilChanged(this.arraysEqual),\n )\n .subscribe((columns) => {\n /* istanbul ignore else */\n if (this.hiddenColumns) {\n getValue(this.hiddenColumns, (hiddenColumns: string[]) => {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter((x) => {\n /* istanbul ignore next */\n /* sanity check */\n const id = x.id || x.field;\n return hiddenColumns.indexOf(id) === -1;\n }),\n true,\n ),\n );\n });\n } else if (this.displayedColumns) {\n /* istanbul ignore next */\n getValue(this.displayedColumns, (displayedColumns: string[]) => {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter(\n (x) => displayedColumns.indexOf(x.id || x.field) !== -1,\n ),\n true,\n ),\n );\n });\n } else {\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n columns.filter((x) => !x.hidden),\n true,\n ),\n );\n }\n });\n\n this.currentSearchText = this.state.pipe(\n observableMap((s) => s.search.searchText),\n distinctUntilChanged(),\n takeUntil(this.ngUnsubscribe),\n );\n\n this.gridDispatcher.next(\n new ListViewGridColumnsLoadAction(columnModels, true),\n );\n\n this.handleColumnChange();\n\n if (this.enableMultiselect) {\n this.dispatcher.toolbarShowMultiselectToolbar(true);\n }\n\n this.initInlineDeleteMessages();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * If user makes selection, tell list-builder to update the list state.\n * This logic should only run on user interaction - NOT programmatic updates.\n */\n public onMultiselectSelectionChange(\n event: SkyGridSelectedRowsModelChange,\n ): void {\n if (\n event.source === SkyGridSelectedRowsSource.CheckboxChange ||\n event.source === SkyGridSelectedRowsSource.RowClick\n ) {\n this.state\n .pipe(\n observableMap((s) => s.items.items),\n take(1),\n )\n .subscribe((items: ListItemModel[]) => {\n const newItemIds = this.arrayIntersection(\n items.map((i) => i.id),\n this.multiselectSelectedIds,\n );\n const newIds = items.filter((i) => i.isSelected).map((i) => i.id);\n\n // Check for deselected ids & send message to dispatcher.\n const deselectedIds = this.arrayDiff(newItemIds, newIds);\n if (deselectedIds.length > 0) {\n this.dispatcher.setSelected(deselectedIds, false);\n }\n\n // Check for selected ids & send message to dispatcher.\n const selectedIds = this.arrayDiff(newIds, newItemIds);\n if (selectedIds.length > 0) {\n this.dispatcher.setSelected(selectedIds, true);\n }\n });\n }\n }\n\n public columnIdsChanged(selectedColumnIds: string[]): void {\n this.selectedColumnIds.pipe(take(1)).subscribe((currentIds) => {\n if (!this.arraysEqual(selectedColumnIds, currentIds)) {\n this.gridState\n .pipe(\n observableMap((s) => s.columns.items),\n take(1),\n )\n .subscribe((columns) => {\n const displayedColumns = selectedColumnIds.map(\n (columnId) => columns.filter((c) => c.id === columnId)[0],\n );\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n displayedColumns,\n true,\n ),\n );\n });\n }\n });\n }\n\n public cancelRowDelete(args: SkyListViewGridRowDeleteCancelArgs): void {\n this.rowDeleteCancel.emit(args);\n }\n\n public confirmRowDelete(args: SkyListViewGridRowDeleteConfirmArgs): void {\n this.rowDeleteConfirm.emit(args);\n }\n\n public sortFieldChanged(sortField: ListSortFieldSelectorModel): void {\n this.dispatcher.sortSetFieldSelectors([sortField]);\n }\n\n public override onViewActive(): void {\n /*\n Ran into problem where state updates were consumed out of order. For example, on search text\n update, the searchText update was consumed after the resulting list item update. Scanning the\n previous value of items lastUpdate ensures that we only receive the latest items.\n */\n this.gridState\n .pipe(\n takeUntil(this.ngUnsubscribe),\n scan((previousValue: GridStateModel, newValue: GridStateModel) => {\n if (\n previousValue.displayedColumns.lastUpdate >\n newValue.displayedColumns.lastUpdate\n ) {\n return previousValue;\n } else {\n return newValue;\n }\n }),\n observableMap((s) => s.displayedColumns.items),\n distinctUntilChanged(this.arraysEqual),\n )\n .subscribe((displayedColumns) => {\n const setFunctions =\n this.searchFunction !== undefined\n ? [this.searchFunction]\n : displayedColumns\n .map(\n (column) =>\n (data: any, searchText: string): any =>\n column.searchFunction(\n getData(data, column.field),\n searchText,\n ),\n )\n .filter((c) => c !== undefined);\n\n this.state.pipe(take(1)).subscribe((s) => {\n this.dispatcher.searchSetOptions(\n new ListSearchModel({\n searchText: s.search.searchText,\n functions: setFunctions,\n fieldSelectors: displayedColumns.map((d) => d.field),\n }),\n );\n });\n });\n }\n\n private initInlineDeleteMessages(): void {\n /* istanbul ignore next */\n if (this.messageStream) {\n this.messageStream.subscribe((message: SkyListViewGridMessage) => {\n if (message.type === SkyListViewGridMessageType.AbortDeleteRow) {\n this.gridMessageStream.next({\n type: SkyGridMessageType.AbortDeleteRow,\n data: {\n abortDeleteRow: message.data.abortDeleteRow,\n },\n });\n } else if (\n message.type === SkyListViewGridMessageType.PromptDeleteRow\n ) {\n this.gridMessageStream.next({\n type: SkyGridMessageType.PromptDeleteRow,\n data: {\n promptDeleteRow: message.data.promptDeleteRow,\n },\n });\n }\n });\n }\n }\n\n private handleColumnChange(): void {\n // watch for changes in column components\n this.columnComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((columnComponents) => {\n const columnModels = this.columnComponents.map((column) => {\n return new SkyGridColumnModel(column.template, column);\n });\n this.gridDispatcher.next(\n new ListViewGridColumnsLoadAction(columnModels, true),\n );\n });\n\n // Watch for column heading changes:\n this.columnComponents.forEach((comp) => {\n comp.headingModelChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyGridColumnHeadingModelChange) => {\n this.gridComponent.updateColumnHeading(change);\n });\n comp.descriptionModelChanges\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyGridColumnDescriptionModelChange) => {\n this.gridComponent.updateColumnDescription(change);\n });\n });\n }\n\n private getGridItems(): Observable<ListItemModel[]> {\n /*\n Same problem as above. We should move from having a state object observable with a bunch of\n static properties to a static state object with observable properties that you can subscribe\n to.\n */\n return this.state.pipe(\n observableMap((s) => {\n return s.items;\n }),\n scan(\n (\n previousValue: AsyncList<ListItemModel>,\n newValue: AsyncList<ListItemModel>,\n ) => {\n if (previousValue.lastUpdate > newValue.lastUpdate) {\n return previousValue;\n } else {\n return newValue;\n }\n },\n ),\n observableMap((result: AsyncList<ListItemModel>) => {\n return result.items;\n }),\n distinctUntilChanged(),\n );\n }\n\n private getSelectedIds(): Observable<string[]> {\n /*\n Same problem as above. We should move from having a state object observable with a bunch of\n static properties to a static state object with observable properties that you can subscribe\n to.\n */\n return this.gridState.pipe(\n observableMap((s) => s.displayedColumns),\n scan(\n (\n previousValue: AsyncList<SkyGridColumnModel>,\n newValue: AsyncList<SkyGridColumnModel>,\n ) => {\n if (previousValue.lastUpdate > newValue.lastUpdate) {\n return previousValue;\n } else {\n return newValue;\n }\n },\n ),\n observableMap((result: AsyncList<SkyGridColumnModel>) => {\n /* istanbul ignore next */\n /* sanity check */\n return result.items.map((column: SkyGridColumnModel) => {\n return column.id || column.field;\n });\n }),\n distinctUntilChanged((previousValue: string[], newValue: string[]) => {\n return this.haveColumnIdsChanged(previousValue, newValue);\n }),\n );\n }\n\n private haveColumnIdsChanged(\n previousValue: string[],\n newValue: string[],\n ): boolean {\n if (previousValue.length !== newValue.length) {\n this.selectedColumnIdsChange.emit(newValue);\n return false;\n }\n\n for (let i = 0; i < previousValue.length; i++) {\n /* istanbul ignore if */\n if (previousValue[i] !== newValue[i]) {\n this.selectedColumnIdsChange.emit(newValue);\n return false;\n }\n }\n return true;\n }\n\n private selectedMapEqual(\n prev: ListSelectedModel,\n next: ListSelectedModel,\n ): boolean {\n if (prev.selectedIdMap.size !== next.selectedIdMap.size) {\n return false;\n }\n\n const keys: string[] = [];\n next.selectedIdMap.forEach((value, key) => {\n keys.push(key);\n });\n\n for (const key of keys) {\n const value = next.selectedIdMap.get(key);\n if (value !== prev.selectedIdMap.get(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n private arrayDiff(arrA: any[], arrB: any[]): any[] {\n return arrA.filter((i) => arrB.indexOf(i) < 0);\n }\n\n private arrayIntersection(arrA: any[], arrB: any[]): any[] {\n return arrA.filter((value) => -1 !== arrB.indexOf(value));\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]): boolean {\n return (\n arrayA.length === arrayB.length &&\n arrayA.every((value, index) => value === arrayB[index])\n );\n }\n}\n","@if (active | async) {\n <div>\n <sky-grid\n #skyGrid\n [columns]=\"columns | async\"\n [data]=\"items | async\"\n [enableMultiselect]=\"enableMultiselect\"\n [fit]=\"fit\"\n [height]=\"gridHeight | async\"\n [highlightText]=\"\n highlightSearchText ? (currentSearchText | async) : undefined\n \"\n [rowHighlightedId]=\"rowHighlightedId\"\n [messageStream]=\"gridMessageStream\"\n [selectedColumnIds]=\"selectedColumnIds | async\"\n [selectedRowIds]=\"multiselectSelectedIds\"\n [settingsKey]=\"settingsKey\"\n [sortField]=\"sortField | async\"\n [width]=\"gridWidth | async\"\n (multiselectSelectionChange)=\"onMultiselectSelectionChange($event)\"\n (rowDeleteCancel)=\"cancelRowDelete($event)\"\n (rowDeleteConfirm)=\"confirmRowDelete($event)\"\n (selectedColumnIdsChange)=\"columnIdsChanged($event)\"\n (sortFieldChange)=\"sortFieldChanged($event)\"\n />\n <sky-wait [isWaiting]=\"loading | async\" />\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyGridModule } from '@skyux/grids';\nimport { SkyWaitModule } from '@skyux/indicators';\n\nimport { SkyListColumnSelectorActionModule } from '../list-column-selector-action/list-column-selector-action.module';\nimport { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';\n\nimport { SkyListViewGridComponent } from './list-view-grid.component';\n\n/**\n * @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.\n */\n@NgModule({\n declarations: [SkyListViewGridComponent],\n imports: [\n CommonModule,\n SkyWaitModule,\n SkyGridModule,\n SkyListBuilderViewGridsResourcesModule,\n ],\n exports: [\n SkyListViewGridComponent,\n SkyListColumnSelectorActionModule,\n SkyGridModule,\n ],\n})\nexport class SkyListViewGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","observableMap","i2.SkyListColumnSelectorButtonComponent","i3","observableOf"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/list-builder-view-grids",
|
|
3
|
-
"version": "15.0.0-alpha.
|
|
3
|
+
"version": "15.0.0-alpha.2",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/common": "^22.0.
|
|
20
|
-
"@angular/core": "^22.0.
|
|
21
|
-
"@angular/platform-browser": "^22.0.
|
|
22
|
-
"@skyux-sdk/testing": "15.0.0-alpha.
|
|
23
|
-
"@skyux/core": "15.0.0-alpha.
|
|
24
|
-
"@skyux/grids": "15.0.0-alpha.
|
|
25
|
-
"@skyux/i18n": "15.0.0-alpha.
|
|
26
|
-
"@skyux/icon": "15.0.0-alpha.
|
|
27
|
-
"@skyux/indicators": "15.0.0-alpha.
|
|
28
|
-
"@skyux/list-builder": "15.0.0-alpha.
|
|
29
|
-
"@skyux/list-builder-common": "15.0.0-alpha.
|
|
30
|
-
"@skyux/list-builder-view-checklist": "15.0.0-alpha.
|
|
31
|
-
"@skyux/modals": "15.0.0-alpha.
|
|
19
|
+
"@angular/common": "^22.0.6",
|
|
20
|
+
"@angular/core": "^22.0.6",
|
|
21
|
+
"@angular/platform-browser": "^22.0.6",
|
|
22
|
+
"@skyux-sdk/testing": "15.0.0-alpha.2",
|
|
23
|
+
"@skyux/core": "15.0.0-alpha.2",
|
|
24
|
+
"@skyux/grids": "15.0.0-alpha.2",
|
|
25
|
+
"@skyux/i18n": "15.0.0-alpha.2",
|
|
26
|
+
"@skyux/icon": "15.0.0-alpha.2",
|
|
27
|
+
"@skyux/indicators": "15.0.0-alpha.2",
|
|
28
|
+
"@skyux/list-builder": "15.0.0-alpha.2",
|
|
29
|
+
"@skyux/list-builder-common": "15.0.0-alpha.2",
|
|
30
|
+
"@skyux/list-builder-view-checklist": "15.0.0-alpha.2",
|
|
31
|
+
"@skyux/modals": "15.0.0-alpha.2"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"tslib": "^2.8.1"
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { AfterContentInit, OnDestroy, EventEmitter } from '@angular/core';
|
|
3
3
|
import * as i3 from '@skyux/modals';
|
|
4
|
-
import { SkyModalInstance
|
|
4
|
+
import { SkyModalInstance } from '@skyux/modals';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
6
6
|
import * as i1 from '@skyux/i18n';
|
|
7
7
|
import * as i5 from '@skyux/list-builder';
|
|
8
|
-
import { ListViewComponent, ListState,
|
|
8
|
+
import { ListViewComponent, ListState, SkyListSecondaryActionsComponent } from '@skyux/list-builder';
|
|
9
9
|
import * as i6 from '@skyux/list-builder-view-checklist';
|
|
10
10
|
import { Observable, Subject } from 'rxjs';
|
|
11
|
-
import { SkyLogService } from '@skyux/core';
|
|
12
11
|
import * as i4 from '@skyux/grids';
|
|
13
12
|
import { SkyGridColumnModel, SkyGridComponent, SkyGridMessage, SkyGridSelectedRowsModelChange } from '@skyux/grids';
|
|
14
13
|
import { StateDispatcher, StateOrchestrator, AsyncList, StateNode, ListItemModel, ListSortFieldSelectorModel } from '@skyux/list-builder-common';
|
|
@@ -32,10 +31,9 @@ declare class SkyColumnSelectorModel {
|
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
declare class SkyColumnSelectorComponent {
|
|
35
|
-
context: SkyColumnSelectorContext;
|
|
36
|
-
instance: SkyModalInstance;
|
|
34
|
+
readonly context: SkyColumnSelectorContext;
|
|
35
|
+
readonly instance: SkyModalInstance;
|
|
37
36
|
newSelectedColumnIds: string[];
|
|
38
|
-
constructor(context: SkyColumnSelectorContext, instance: SkyModalInstance);
|
|
39
37
|
selectedColumnsChange(selectedMap: Map<string, boolean>): void;
|
|
40
38
|
cancelChanges(): void;
|
|
41
39
|
applyChanges(): void;
|
|
@@ -105,7 +103,7 @@ declare class GridStateModel {
|
|
|
105
103
|
* @deprecated
|
|
106
104
|
*/
|
|
107
105
|
declare class GridState extends StateNode<GridStateModel> {
|
|
108
|
-
constructor(
|
|
106
|
+
constructor();
|
|
109
107
|
static ɵfac: i0.ɵɵFactoryDeclaration<GridState, never>;
|
|
110
108
|
static ɵprov: i0.ɵɵInjectableDeclaration<GridState>;
|
|
111
109
|
}
|
|
@@ -175,9 +173,6 @@ interface SkyListViewGridRowDeleteConfirmArgs {
|
|
|
175
173
|
* @deprecated List builder view grid and its features are deprecated. Use data entry grid instead. For more information, see https://developer.blackbaud.com/skyux/components/data-entry-grid.
|
|
176
174
|
*/
|
|
177
175
|
declare class SkyListViewGridComponent extends ListViewComponent implements AfterContentInit, OnDestroy {
|
|
178
|
-
private dispatcher;
|
|
179
|
-
gridState: GridState;
|
|
180
|
-
gridDispatcher: GridStateDispatcher;
|
|
181
176
|
/**
|
|
182
177
|
* The name of the view.
|
|
183
178
|
* @required
|
|
@@ -277,7 +272,10 @@ declare class SkyListViewGridComponent extends ListViewComponent implements Afte
|
|
|
277
272
|
private columnComponents;
|
|
278
273
|
private ngUnsubscribe;
|
|
279
274
|
private _messageStream;
|
|
280
|
-
|
|
275
|
+
private readonly dispatcher;
|
|
276
|
+
readonly gridState: GridState;
|
|
277
|
+
readonly gridDispatcher: GridStateDispatcher;
|
|
278
|
+
constructor();
|
|
281
279
|
ngAfterContentInit(): void;
|
|
282
280
|
ngOnDestroy(): void;
|
|
283
281
|
/**
|
|
@@ -308,10 +306,6 @@ declare class SkyListViewGridComponent extends ListViewComponent implements Afte
|
|
|
308
306
|
* [list toolbar](https://developer.blackbaud.com/skyux/components/list-toolbar).
|
|
309
307
|
*/
|
|
310
308
|
declare class SkyListColumnSelectorActionComponent implements AfterContentInit {
|
|
311
|
-
listState: ListState;
|
|
312
|
-
private modalService;
|
|
313
|
-
private dispatcher;
|
|
314
|
-
secondaryActions: SkyListSecondaryActionsComponent;
|
|
315
309
|
/**
|
|
316
310
|
* Enables the column selector in the list toolbar. Set this attribute to the instance of
|
|
317
311
|
* the `sky-grid-view` component using the component's template reference variable.
|
|
@@ -328,12 +322,15 @@ declare class SkyListColumnSelectorActionComponent implements AfterContentInit {
|
|
|
328
322
|
helpOpened: EventEmitter<string>;
|
|
329
323
|
private columnChooserTemplate;
|
|
330
324
|
private columnSelectorActionItemToolbarIndex;
|
|
331
|
-
|
|
325
|
+
readonly listState: ListState;
|
|
326
|
+
readonly secondaryActions: SkyListSecondaryActionsComponent;
|
|
327
|
+
private readonly modalService;
|
|
328
|
+
private readonly dispatcher;
|
|
332
329
|
ngAfterContentInit(): void;
|
|
333
330
|
get isInGridView(): Observable<boolean>;
|
|
334
331
|
get isInGridViewAndSecondary(): Observable<boolean>;
|
|
335
332
|
openColumnSelector(): void;
|
|
336
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SkyListColumnSelectorActionComponent,
|
|
333
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SkyListColumnSelectorActionComponent, never>;
|
|
337
334
|
static ɵcmp: i0.ɵɵComponentDeclaration<SkyListColumnSelectorActionComponent, "sky-list-column-selector-action", never, { "gridView": { "alias": "gridView"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "helpOpened": "helpOpened"; }, never, never, false, never>;
|
|
338
335
|
}
|
|
339
336
|
|