@skyux/list-builder-view-grids 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/skyux-list-builder-view-grids.umd.js +30 -30
- package/documentation.json +53 -53
- package/esm2015/lib/modules/column-selector/column-selector-modal.component.js.map +1 -1
- package/esm2015/lib/modules/column-selector/column-selector-modal.module.js +3 -3
- package/esm2015/lib/modules/column-selector/column-selector-modal.module.js.map +1 -1
- package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js +5 -5
- package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js.map +1 -1
- package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js +2 -2
- package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/list-view-grid.component.js +13 -13
- package/esm2015/lib/modules/list-view-grid/list-view-grid.component.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/list-view-grid.module.js +3 -3
- package/esm2015/lib/modules/list-view-grid/list-view-grid.module.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/state/columns/columns.orchestrator.js +2 -2
- package/esm2015/lib/modules/list-view-grid/state/columns/columns.orchestrator.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js +2 -2
- package/esm2015/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/state/grid-state.model.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/state/grid-state.rxstate.js.map +1 -1
- package/esm2015/lib/modules/list-view-grid/state/grid-state.state-node.js +2 -2
- package/esm2015/lib/modules/list-view-grid/state/grid-state.state-node.js.map +1 -1
- package/esm2015/lib/modules/shared/sky-list-builder-view-grids-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-list-builder-view-grids-resources.module.js.map +1 -1
- package/esm2015/testing/list-view-grid-fixture.js.map +1 -1
- package/fesm2015/skyux-list-builder-view-grids-testing.js.map +1 -1
- package/fesm2015/skyux-list-builder-view-grids.js +36 -36
- package/fesm2015/skyux-list-builder-view-grids.js.map +1 -1
- package/lib/modules/list-column-selector-action/list-column-selector-action.component.d.ts +1 -1
- package/lib/modules/list-view-grid/list-view-grid.component.d.ts +2 -2
- package/lib/modules/list-view-grid/state/columns/columns.orchestrator.d.ts +2 -2
- package/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.d.ts +2 -2
- package/lib/modules/list-view-grid/state/grid-state.model.d.ts +1 -1
- package/package.json +8 -8
package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
-
import { distinctUntilChanged, map as observableMap, take, } from 'rxjs/operators';
|
|
3
2
|
import { ListState, ListStateDispatcher, ListToolbarItemModel, SkyListSecondaryActionsComponent, } from '@skyux/list-builder';
|
|
4
3
|
import { SkyModalService } from '@skyux/modals';
|
|
5
|
-
import {
|
|
6
|
-
import { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';
|
|
4
|
+
import { distinctUntilChanged, map as observableMap, take, } from 'rxjs/operators';
|
|
7
5
|
import { SkyColumnSelectorContext, } from '../column-selector/column-selector-context';
|
|
8
6
|
import { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';
|
|
7
|
+
import { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';
|
|
8
|
+
import { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@skyux/list-builder";
|
|
11
11
|
import * as i2 from "@skyux/modals";
|
|
@@ -30,7 +30,7 @@ export class SkyListColumnSelectorActionComponent {
|
|
|
30
30
|
}
|
|
31
31
|
ngAfterContentInit() {
|
|
32
32
|
if (!this.secondaryActions) {
|
|
33
|
-
|
|
33
|
+
const columnChooserItem = new ListToolbarItemModel({
|
|
34
34
|
id: 'column-chooser',
|
|
35
35
|
template: this.columnChooserTemplate,
|
|
36
36
|
location: 'left',
|
|
@@ -96,7 +96,7 @@ export class SkyListColumnSelectorActionComponent {
|
|
|
96
96
|
});
|
|
97
97
|
modalInstance.closed.subscribe((result) => {
|
|
98
98
|
if (result.reason === 'save' && result.data) {
|
|
99
|
-
|
|
99
|
+
const newSelectedIds = result.data;
|
|
100
100
|
let newDisplayedColumns = [];
|
|
101
101
|
this.gridView.gridState
|
|
102
102
|
.pipe(take(1))
|
package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-column-selector-action.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n} from 'rxjs/operators';\n\nimport {\n ListState,\n ListStateDispatcher,\n ListToolbarItemModel,\n SkyListSecondaryActionsComponent,\n} from '@skyux/list-builder';\n\nimport { SkyGridColumnModel } from '@skyux/grids';\n\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';\n\nimport { GridStateModel } from '../list-view-grid/state/grid-state.model';\n\nimport { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';\n\nimport {\n SkyColumnSelectorContext,\n SkyColumnSelectorModel,\n} from '../column-selector/column-selector-context';\n\nimport { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';\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})\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 * Specifies a `helpKey` string and dispays 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<any>;\n\n private columnSelectorActionItemToolbarIndex: number = 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() {\n if (!this.secondaryActions) {\n let 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 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 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() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.gridView) {\n let columns: Array<SkyColumnSelectorModel> = [];\n let selectedColumnIds: Array<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 let newSelectedIds = result.data;\n let newDisplayedColumns: Array<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","<ng-container *ngIf=\"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</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n"]}
|
|
1
|
+
{"version":3,"file":"list-column-selector-action.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\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})\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 * Specifies a `helpKey` string and dispays 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<any>;\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() {\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 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 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() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.gridView) {\n let columns: Array<SkyColumnSelectorModel> = [];\n let selectedColumnIds: Array<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: Array<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","<ng-container *ngIf=\"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</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n"]}
|
package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
3
|
import { SkyI18nModule } from '@skyux/i18n';
|
|
4
4
|
import { SkyIconModule } from '@skyux/indicators';
|
|
5
|
-
import {
|
|
5
|
+
import { SkyListSecondaryActionsModule, SkyListToolbarModule, } from '@skyux/list-builder';
|
|
6
6
|
import { SkyModalModule } from '@skyux/modals';
|
|
7
7
|
import { SkyColumnSelectorModule } from '../column-selector/column-selector-modal.module';
|
|
8
8
|
import { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';
|
package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-column-selector-action.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-column-selector-action.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;;AAiB/F,MAAM,OAAO,iCAAiC;;+HAAjC,iCAAiC;gIAAjC,iCAAiC,iBAb1C,oCAAoC;QACpC,oCAAoC,aAGpC,YAAY;QACZ,aAAa;QACb,cAAc;QACd,6BAA6B;QAC7B,oBAAoB;QACpB,aAAa,aAEL,oCAAoC,EAAE,uBAAuB;gIAE5D,iCAAiC,YAVnC;YACP,YAAY;YACZ,aAAa;YACb,cAAc;YACd,6BAA6B;YAC7B,oBAAoB;YACpB,aAAa;SACd,EAC+C,uBAAuB;4FAE5D,iCAAiC;kBAf7C,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oCAAoC;wBACpC,oCAAoC;qBACrC;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,6BAA6B;wBAC7B,oBAAoB;wBACpB,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;iBACzE","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\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';\n\nimport { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';\nimport { SkyListColumnSelectorButtonComponent } from './list-column-selector-button.component';\n\n@NgModule({\n declarations: [\n SkyListColumnSelectorActionComponent,\n SkyListColumnSelectorButtonComponent,\n ],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyModalModule,\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n SkyIconModule,\n ],\n exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule],\n})\nexport class SkyListColumnSelectorActionModule {}\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter,
|
|
2
|
-
import { of as observableOf, Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, map as observableMap, scan, take, takeUntil, } from 'rxjs/operators';
|
|
4
|
-
import { getValue } from '@skyux/list-builder-common';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild, forwardRef, } from '@angular/core';
|
|
5
2
|
import { SkyGridColumnComponent, SkyGridColumnModel, SkyGridComponent, SkyGridMessageType, SkyGridSelectedRowsSource, } from '@skyux/grids';
|
|
6
3
|
import { ListSearchModel, ListState, ListStateDispatcher, ListViewComponent, } from '@skyux/list-builder';
|
|
4
|
+
import { getValue } from '@skyux/list-builder-common';
|
|
7
5
|
import { getData, isObservable, } from '@skyux/list-builder-common';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { GridStateModel } from './state/grid-state.model';
|
|
6
|
+
import { Subject, of as observableOf } from 'rxjs';
|
|
7
|
+
import { distinctUntilChanged, map as observableMap, scan, take, takeUntil, } from 'rxjs/operators';
|
|
11
8
|
import { ListViewGridColumnsLoadAction } from './state/columns/load.action';
|
|
12
9
|
import { ListViewDisplayedGridColumnsLoadAction } from './state/displayed-columns/load.action';
|
|
10
|
+
import { GridStateModel } from './state/grid-state.model';
|
|
11
|
+
import { GridStateDispatcher } from './state/grid-state.rxstate';
|
|
12
|
+
import { GridState } from './state/grid-state.state-node';
|
|
13
13
|
import { SkyListViewGridMessageType } from './types/list-view-grid-message-type';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "@skyux/list-builder";
|
|
@@ -124,7 +124,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
124
124
|
if (this.columnComponents.length === 0) {
|
|
125
125
|
throw new Error('Grid view requires at least one sky-grid-column to render.');
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
const columnModels = this.columnComponents.map((columnComponent) => {
|
|
128
128
|
return new SkyGridColumnModel(columnComponent.template, columnComponent);
|
|
129
129
|
});
|
|
130
130
|
if (this.width && !isObservable(this.width)) {
|
|
@@ -159,7 +159,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
159
159
|
this.gridDispatcher.next(new ListViewDisplayedGridColumnsLoadAction(columns.filter((x) => {
|
|
160
160
|
/* istanbul ignore next */
|
|
161
161
|
/* sanity check */
|
|
162
|
-
|
|
162
|
+
const id = x.id || x.field;
|
|
163
163
|
return hiddenColumns.indexOf(id) === -1;
|
|
164
164
|
}), true));
|
|
165
165
|
});
|
|
@@ -217,7 +217,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
217
217
|
this.gridState
|
|
218
218
|
.pipe(observableMap((s) => s.columns.items), take(1))
|
|
219
219
|
.subscribe((columns) => {
|
|
220
|
-
|
|
220
|
+
const displayedColumns = selectedColumnIds.map((columnId) => columns.filter((c) => c.id === columnId)[0]);
|
|
221
221
|
this.gridDispatcher.next(new ListViewDisplayedGridColumnsLoadAction(displayedColumns, true));
|
|
222
222
|
});
|
|
223
223
|
}
|
|
@@ -249,7 +249,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
249
249
|
}
|
|
250
250
|
}), observableMap((s) => s.displayedColumns.items), distinctUntilChanged(this.arraysEqual))
|
|
251
251
|
.subscribe((displayedColumns) => {
|
|
252
|
-
|
|
252
|
+
const setFunctions = this.searchFunction !== undefined
|
|
253
253
|
? [this.searchFunction]
|
|
254
254
|
: displayedColumns
|
|
255
255
|
.map((column) => (data, searchText) => column.searchFunction(getData(data, column.field), searchText))
|
|
@@ -291,7 +291,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
291
291
|
this.columnComponents.changes
|
|
292
292
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
293
293
|
.subscribe((columnComponents) => {
|
|
294
|
-
|
|
294
|
+
const columnModels = this.columnComponents.map((column) => {
|
|
295
295
|
return new SkyGridColumnModel(column.template, column);
|
|
296
296
|
});
|
|
297
297
|
this.gridDispatcher.next(new ListViewGridColumnsLoadAction(columnModels, true));
|
|
@@ -370,7 +370,7 @@ export class SkyListViewGridComponent extends ListViewComponent {
|
|
|
370
370
|
if (prev.selectedIdMap.size !== next.selectedIdMap.size) {
|
|
371
371
|
return false;
|
|
372
372
|
}
|
|
373
|
-
|
|
373
|
+
const keys = [];
|
|
374
374
|
next.selectedIdMap.forEach((value, key) => {
|
|
375
375
|
keys.push(key);
|
|
376
376
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-grid.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\n\nimport { Observable, of as observableOf, Subject } from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map as observableMap,\n scan,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { AsyncList, getValue } from '@skyux/list-builder-common';\n\nimport {\n SkyGridColumnComponent,\n SkyGridColumnHeadingModelChange,\n SkyGridColumnDescriptionModelChange,\n SkyGridColumnModel,\n SkyGridComponent,\n SkyGridMessage,\n SkyGridMessageType,\n SkyGridSelectedRowsModelChange,\n SkyGridSelectedRowsSource,\n} from '@skyux/grids';\n\nimport {\n ListSearchModel,\n ListSelectedModel,\n ListState,\n ListStateDispatcher,\n ListViewComponent,\n} from '@skyux/list-builder';\n\nimport {\n getData,\n isObservable,\n ListItemModel,\n ListSortFieldSelectorModel,\n} from '@skyux/list-builder-common';\n\nimport { GridState } from './state/grid-state.state-node';\n\nimport { GridStateDispatcher } from './state/grid-state.rxstate';\n\nimport { GridStateModel } from './state/grid-state.model';\n\nimport { ListViewGridColumnsLoadAction } from './state/columns/load.action';\n\nimport { ListViewDisplayedGridColumnsLoadAction } from './state/displayed-columns/load.action';\n\nimport { SkyListViewGridMessage } from './types/list-view-grid-message';\n\nimport { SkyListViewGridMessageType } from './types/list-view-grid-message-type';\n\nimport { SkyListViewGridRowDeleteCancelArgs } from './types/list-view-grid-row-delete-cancel-args';\n\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 */\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 /* tslint:disable */\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewGridComponent),\n },\n /* tslint:enable */\n GridState,\n GridStateDispatcher,\n GridStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyListViewGridComponent\n extends ListViewComponent\n implements AfterContentInit, OnDestroy\n{\n /**\n * Specifies the name of the view.\n * @required\n */\n @Input()\n public set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * Specifies the columns to display by default based on the ID or field of the item.\n */\n @Input()\n public displayedColumns: Array<string> | Observable<Array<string>>;\n\n /**\n * Specifies the columns to hide by default based on the ID or field of the item.\n */\n @Input()\n public hiddenColumns: Array<string> | Observable<Array<string>>;\n\n /**\n * Specifies 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: string = 'width';\n\n /**\n * Specifies the width of the grid.\n */\n @Input()\n public width: number | Observable<number>;\n\n /**\n * Specifies the height of the grid.\n */\n @Input()\n public height: number | Observable<number>;\n\n /**\n * Indicates whether to highlight search text within the grid.\n * @default true\n */\n @Input()\n public highlightSearchText: boolean = true;\n\n /**\n * Provides an 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 * Specifies 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 * Indicates 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: boolean = false;\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve 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/get-started/advanced/sticky-settings).\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 = new EventEmitter<SkyListViewGridRowDeleteCancelArgs>();\n\n /**\n * Fires when users confirm the deletion of a row.\n */\n @Output()\n public rowDeleteConfirm = 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<Array<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<Array<SkyGridColumnModel>>;\n\n public selectedColumnIds: Observable<Array<string>>;\n\n public items: Observable<ListItemModel[]>;\n\n /**\n * Message stream for communicating with the internal grid instance\n * @interal\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 * Specifies a 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();\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 ) {\n super(state, 'Grid View');\n }\n\n public ngAfterContentInit() {\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 let 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 let 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() {\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: Array<string>) {\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 let displayedColumns = selectedColumnIds.map(\n (columnId) => columns.filter((c) => c.id === columnId)[0]\n );\n this.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(displayedColumns, true)\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) {\n this.dispatcher.sortSetFieldSelectors([sortField]);\n }\n\n public onViewActive() {\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 let setFunctions =\n this.searchFunction !== undefined\n ? [this.searchFunction]\n : displayedColumns\n .map(\n (column) => (data: any, searchText: string) =>\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() {\n // watch for changes in column components\n this.columnComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((columnComponents) => {\n let 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<Array<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<Array<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(previousValue: string[], newValue: string[]) {\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 let keys: string[] = [];\n next.selectedIdMap.forEach((value, key) => {\n keys.push(key);\n });\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\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: Array<any>, arrB: Array<any>): Array<any> {\n return arrA.filter((i) => arrB.indexOf(i) < 0);\n }\n\n private arrayIntersection(arrA: Array<any>, arrB: Array<any>): Array<any> {\n return arrA.filter((value) => -1 !== arrB.indexOf(value));\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]) {\n return (\n arrayA.length === arrayB.length &&\n arrayA.every((value, index) => value === arrayB[index])\n );\n }\n}\n","<div *ngIf=\"active | async\">\n <sky-grid\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 #skyGrid\n >\n </sky-grid>\n <sky-wait [isWaiting]=\"loading | async\"> </sky-wait>\n</div>\n"]}
|
|
1
|
+
{"version":3,"file":"list-view-grid.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"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","sourcesContent":["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 {\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 { AsyncList, getValue } from '@skyux/list-builder-common';\nimport {\n ListItemModel,\n ListSortFieldSelectorModel,\n getData,\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 */\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 /* tslint:disable */\n {\n provide: ListViewComponent,\n useExisting: forwardRef(() => SkyListViewGridComponent),\n },\n /* tslint:enable */\n GridState,\n GridStateDispatcher,\n GridStateModel,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyListViewGridComponent\n extends ListViewComponent\n implements AfterContentInit, OnDestroy\n{\n /**\n * Specifies the name of the view.\n * @required\n */\n @Input()\n public set name(value: string) {\n this.viewName = value;\n }\n\n /**\n * Specifies the columns to display by default based on the ID or field of the item.\n */\n @Input()\n public displayedColumns: Array<string> | Observable<Array<string>>;\n\n /**\n * Specifies the columns to hide by default based on the ID or field of the item.\n */\n @Input()\n public hiddenColumns: Array<string> | Observable<Array<string>>;\n\n /**\n * Specifies 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 * Specifies the width of the grid.\n */\n @Input()\n public width: number | Observable<number>;\n\n /**\n * Specifies the height of the grid.\n */\n @Input()\n public height: number | Observable<number>;\n\n /**\n * Indicates whether to highlight search text within the grid.\n * @default true\n */\n @Input()\n public highlightSearchText = true;\n\n /**\n * Provides an 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 * Specifies 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 * Indicates 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 * Specifies a unique key for the UI Config Service to retrieve 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/get-started/advanced/sticky-settings).\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 = new EventEmitter<SkyListViewGridRowDeleteCancelArgs>();\n\n /**\n * Fires when users confirm the deletion of a row.\n */\n @Output()\n public rowDeleteConfirm = 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<Array<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<Array<SkyGridColumnModel>>;\n\n public selectedColumnIds: Observable<Array<string>>;\n\n public items: Observable<ListItemModel[]>;\n\n /**\n * Message stream for communicating with the internal grid instance\n * @interal\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 * Specifies a 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();\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 ) {\n super(state, 'Grid View');\n }\n\n public ngAfterContentInit() {\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() {\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: Array<string>) {\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(displayedColumns, true)\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) {\n this.dispatcher.sortSetFieldSelectors([sortField]);\n }\n\n public onViewActive() {\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) => (data: any, searchText: string) =>\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() {\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<Array<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<Array<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(previousValue: string[], newValue: string[]) {\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 (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\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: Array<any>, arrB: Array<any>): Array<any> {\n return arrA.filter((i) => arrB.indexOf(i) < 0);\n }\n\n private arrayIntersection(arrA: Array<any>, arrB: Array<any>): Array<any> {\n return arrA.filter((value) => -1 !== arrB.indexOf(value));\n }\n\n private arraysEqual(arrayA: any[], arrayB: any[]) {\n return (\n arrayA.length === arrayB.length &&\n arrayA.every((value, index) => value === arrayB[index])\n );\n }\n}\n","<div *ngIf=\"active | async\">\n <sky-grid\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 #skyGrid\n >\n </sky-grid>\n <sky-wait [isWaiting]=\"loading | async\"> </sky-wait>\n</div>\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
4
3
|
import { SkyGridModule } from '@skyux/grids';
|
|
5
|
-
import {
|
|
4
|
+
import { SkyWaitModule } from '@skyux/indicators';
|
|
6
5
|
import { SkyListColumnSelectorActionModule } from '../list-column-selector-action/list-column-selector-action.module';
|
|
6
|
+
import { SkyListBuilderViewGridsResourcesModule } from '../shared/sky-list-builder-view-grids-resources.module';
|
|
7
7
|
import { SkyListViewGridComponent } from './list-view-grid.component';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class SkyListViewGridModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-grid.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-view-grid.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/list-view-grid.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,iCAAiC,EAAE,MAAM,mEAAmE,CAAC;AACtH,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;;AAgBtE,MAAM,OAAO,qBAAqB;;mHAArB,qBAAqB;oHAArB,qBAAqB,iBAbjB,wBAAwB,aAErC,YAAY;QACZ,aAAa;QACb,aAAa;QACb,sCAAsC,aAGtC,wBAAwB;QACxB,iCAAiC;QACjC,aAAa;oHAGJ,qBAAqB,YAZvB;YACP,YAAY;YACZ,aAAa;YACb,aAAa;YACb,sCAAsC;SACvC,EAGC,iCAAiC;QACjC,aAAa;4FAGJ,qBAAqB;kBAdjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,sCAAsC;qBACvC;oBACD,OAAO,EAAE;wBACP,wBAAwB;wBACxB,iCAAiC;wBACjC,aAAa;qBACd;iBACF","sourcesContent":["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@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"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GridStateOrchestrator } from '../grid-state.rxstate';
|
|
2
|
-
import { AsyncList } from '@skyux/list-builder-common';
|
|
3
1
|
import { SkyGridColumnModel } from '@skyux/grids';
|
|
2
|
+
import { AsyncList } from '@skyux/list-builder-common';
|
|
3
|
+
import { GridStateOrchestrator } from '../grid-state.rxstate';
|
|
4
4
|
import { ListViewGridColumnsLoadAction } from './load.action';
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/columns.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"columns.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/columns/columns.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,qBAEpD;IACC,0BAA0B;IAC1B;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEO,IAAI,CACV,KAAoC,EACpC,MAAqC;QAErC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC7C,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,IAAI,SAAS,CAAqB,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,SAAS,CAClB,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAC/B,IAAI,IAAI,EAAE,CACX,CAAC;IACJ,CAAC;CACF","sourcesContent":["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 */\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"]}
|
package/esm2015/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GridStateOrchestrator } from '../grid-state.rxstate';
|
|
2
|
-
import { AsyncList } from '@skyux/list-builder-common';
|
|
3
1
|
import { SkyGridColumnModel } from '@skyux/grids';
|
|
2
|
+
import { AsyncList } from '@skyux/list-builder-common';
|
|
3
|
+
import { GridStateOrchestrator } from '../grid-state.rxstate';
|
|
4
4
|
import { ListViewDisplayedGridColumnsLoadAction } from './load.action';
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayed-columns.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"displayed-columns.orchestrator.js","sourceRoot":"","sources":["../../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,sCAAsC,EAAE,MAAM,eAAe,CAAC;AAEvE;;GAEG;AACH,MAAM,OAAO,wCAAyC,SAAQ,qBAE7D;IACC,0BAA0B;IAC1B;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,sCAAsC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAEO,IAAI,CACV,KAAoC,EACpC,MAA8C;QAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC7C,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,IAAI,SAAS,CAAqB,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,SAAS,CAClB,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,EAC/B,IAAI,IAAI,EAAE,CACX,CAAC;IACJ,CAAC;CACF","sourcesContent":["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 */\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-state.model.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grid-state.model.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,cAAc;IAA3B;QACS,YAAO,GACZ,IAAI,SAAS,EAAsB,CAAC;QAC/B,qBAAgB,GACrB,IAAI,SAAS,EAAsB,CAAC;IACxC,CAAC;CAAA","sourcesContent":["import { SkyGridColumnModel } from '@skyux/grids';\nimport { AsyncList } from '@skyux/list-builder-common';\n\n/**\n * @internal\n */\nexport class GridStateModel {\n public columns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n public displayedColumns: AsyncList<SkyGridColumnModel> =\n new AsyncList<SkyGridColumnModel>();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-state.rxstate.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.rxstate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"grid-state.rxstate.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.rxstate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;AAIhF;;GAEG;AAEH,MAAM,OAAO,mBAAoB,SAAQ,eAAgC;;iHAA5D,mBAAmB;qHAAnB,mBAAmB;4FAAnB,mBAAmB;kBAD/B,UAAU;;AAGX;;GAEG;AACH,MAAM,OAAO,qBAAyB,SAAQ,iBAG7C;CAAG","sourcesContent":["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 */\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"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { StateNode } from '@skyux/list-builder-common';
|
|
3
|
-
import { GridStateModel } from './grid-state.model';
|
|
4
|
-
import { GridStateDispatcher } from './grid-state.rxstate';
|
|
5
3
|
import { ListViewGridColumnsOrchestrator } from './columns/columns.orchestrator';
|
|
6
4
|
import { ListViewDisplayedGridColumnsOrchestrator } from './displayed-columns/displayed-columns.orchestrator';
|
|
5
|
+
import { GridStateModel } from './grid-state.model';
|
|
6
|
+
import { GridStateDispatcher } from './grid-state.rxstate';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "./grid-state.model";
|
|
9
9
|
import * as i2 from "./grid-state.rxstate";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-state.state-node.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.state-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"grid-state.state-node.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-view-grid/state/grid-state.state-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,wCAAwC,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;;;;AAE3D;;GAEG;AAEH,MAAM,OAAO,SAAU,SAAQ,SAAyB;IACtD,0BAA0B;IAC1B,YAAY,YAA4B,EAAE,UAA+B;QACvE,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,+BAA+B,CAAC;aACtD,QAAQ,CAAC,kBAAkB,EAAE,wCAAwC,CAAC;aACtE,KAAK,EAAE,CAAC;IACb,CAAC;;uGARU,SAAS;2GAAT,SAAS;4FAAT,SAAS;kBADrB,UAAU","sourcesContent":["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 */\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"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* To update this file, simply rerun the command.
|
|
6
6
|
*/
|
|
7
7
|
import { NgModule } from '@angular/core';
|
|
8
|
-
import {
|
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
const RESOURCES = {
|
|
11
11
|
'EN-US': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-list-builder-view-grids-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/shared/sky-list-builder-view-grids-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sky-list-builder-view-grids-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/shared/sky-list-builder-view-grids-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,+BAA+B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,+BAA+B,EAAE;YAC/B,OAAO,EAAE,oCAAoC;SAC9C;QACD,2CAA2C,EAAE;YAC3C,OAAO,EAAE,oBAAoB;SAC9B;QACD,+BAA+B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;QAC7D,yBAAyB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACxD,iCAAiC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KAC1D;CACF,CAAC;AAEF,MAAM,OAAO,wCAAwC;IAG5C,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,sCAAsC;;oIAAtC,sCAAsC;qIAAtC,sCAAsC,YATvC,aAAa;qIASZ,sCAAsC,aARtC;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,wCAAwC;YAClD,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,sCAAsC;kBAVlD,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,wCAAwC;4BAClD,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\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 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 SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: 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\nexport class SkyListBuilderViewGridsResourcesProvider\n implements SkyLibResourcesProvider\n{\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyListBuilderViewGridsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyListBuilderViewGridsResourcesModule {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view-grid-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/list-builder-view-grids/testing/src/list-view-grid-fixture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-view-grid-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/list-builder-view-grids/testing/src/list-view-grid-fixture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMvD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAY,OAA8B,EAAE,SAAiB;QAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,OAAO,EACP,SAAS,EACT,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAiC,OAAO,CAAC,GAAG,CACxD,CAAC,MAAoB,EAAE,EAAE;YACvB,OAAO;gBACL,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;aAC/C,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,WAAmB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,GAAG,CAAC,CAAC;SAC9D;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAC/C,wBAAwB,CACzB;YACD,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjD,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;IACpC,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,UAAU,CAAC,KAAmB;QACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAChE,CAAC;CACF","sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListViewGridFixtureCell } from './list-view-grid-fixture-cell';\nimport { SkyListViewGridFixtureHeader } from './list-view-grid-fixture-header';\nimport { SkyListViewGridFixtureRow } from './list-view-grid-fixture-row';\n\n/**\n * Allows interaction with a SKY UX list view grid component.\n */\nexport class SkyListViewGridFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-list-view-grid'\n );\n }\n\n /**\n * Gets the row at the specified index.\n * @param index The row's index.\n */\n public getRow(index: number): SkyListViewGridFixtureRow {\n const rowEl = this.getRowEl(index);\n const cellEls = this.getCellEls(rowEl);\n\n const rowCells: SkyListViewGridFixtureCell[] = cellEls.map(\n (cellEl: DebugElement) => {\n return {\n el: cellEl,\n textContent: SkyAppTestUtility.getText(cellEl),\n };\n }\n );\n\n return {\n cells: rowCells,\n };\n }\n\n public getRowCount(): number {\n return this.getRowEls().length;\n }\n\n /**\n * Gets the header at the specified index.\n * @param columnIndex The index of the column to which the header belongs.\n */\n public getHeader(columnIndex: number): SkyListViewGridFixtureHeader {\n const headerEls = this.getHeaderEls();\n\n const headerEl = headerEls[columnIndex];\n\n if (!headerEl) {\n throw new Error(`No column exists at index ${columnIndex}.`);\n }\n\n return {\n locked: headerEl.nativeElement.classList.contains(\n 'sky-grid-header-locked'\n ),\n textContent: SkyAppTestUtility.getText(headerEl),\n };\n }\n\n public getHeaderCount(): number {\n return this.getHeaderEls().length;\n }\n\n private getRowEls(): DebugElement[] {\n return this.debugEl.queryAll(By.css('.sky-grid-row'));\n }\n\n private getRowEl(index: number): DebugElement {\n const rowEls = this.getRowEls();\n\n const rowEl = rowEls[index];\n\n if (!rowEl) {\n throw new Error(`No row exists at index ${index}.`);\n }\n\n return rowEl;\n }\n\n private getHeaderEls(): DebugElement[] {\n return this.debugEl.queryAll(By.css('th.sky-grid-heading > div'));\n }\n\n private getCellEls(rowEl: DebugElement) {\n return rowEl.queryAll(By.css('.sky-grid-cell sky-grid-cell'));\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-list-builder-view-grids-testing.js","sources":["../../../../../libs/components/list-builder-view-grids/testing/src/list-view-grid-fixture.ts","../../../../../libs/components/list-builder-view-grids/testing/src/skyux-list-builder-view-grids-testing.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"skyux-list-builder-view-grids-testing.js","sources":["../../../../../libs/components/list-builder-view-grids/testing/src/list-view-grid-fixture.ts","../../../../../libs/components/list-builder-view-grids/testing/src/skyux-list-builder-view-grids-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListViewGridFixtureCell } from './list-view-grid-fixture-cell';\nimport { SkyListViewGridFixtureHeader } from './list-view-grid-fixture-header';\nimport { SkyListViewGridFixtureRow } from './list-view-grid-fixture-row';\n\n/**\n * Allows interaction with a SKY UX list view grid component.\n */\nexport class SkyListViewGridFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-list-view-grid'\n );\n }\n\n /**\n * Gets the row at the specified index.\n * @param index The row's index.\n */\n public getRow(index: number): SkyListViewGridFixtureRow {\n const rowEl = this.getRowEl(index);\n const cellEls = this.getCellEls(rowEl);\n\n const rowCells: SkyListViewGridFixtureCell[] = cellEls.map(\n (cellEl: DebugElement) => {\n return {\n el: cellEl,\n textContent: SkyAppTestUtility.getText(cellEl),\n };\n }\n );\n\n return {\n cells: rowCells,\n };\n }\n\n public getRowCount(): number {\n return this.getRowEls().length;\n }\n\n /**\n * Gets the header at the specified index.\n * @param columnIndex The index of the column to which the header belongs.\n */\n public getHeader(columnIndex: number): SkyListViewGridFixtureHeader {\n const headerEls = this.getHeaderEls();\n\n const headerEl = headerEls[columnIndex];\n\n if (!headerEl) {\n throw new Error(`No column exists at index ${columnIndex}.`);\n }\n\n return {\n locked: headerEl.nativeElement.classList.contains(\n 'sky-grid-header-locked'\n ),\n textContent: SkyAppTestUtility.getText(headerEl),\n };\n }\n\n public getHeaderCount(): number {\n return this.getHeaderEls().length;\n }\n\n private getRowEls(): DebugElement[] {\n return this.debugEl.queryAll(By.css('.sky-grid-row'));\n }\n\n private getRowEl(index: number): DebugElement {\n const rowEls = this.getRowEls();\n\n const rowEl = rowEls[index];\n\n if (!rowEl) {\n throw new Error(`No row exists at index ${index}.`);\n }\n\n return rowEl;\n }\n\n private getHeaderEls(): DebugElement[] {\n return this.debugEl.queryAll(By.css('th.sky-grid-heading > div'));\n }\n\n private getCellEls(rowEl: DebugElement) {\n return rowEl.queryAll(By.css('.sky-grid-cell sky-grid-cell'));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AASA;;;MAGa,sBAAsB;IAGjC,YAAY,OAA8B,EAAE,SAAiB;QAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,OAAO,EACP,SAAS,EACT,oBAAoB,CACrB,CAAC;KACH;;;;;IAMM,MAAM,CAAC,KAAa;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAiC,OAAO,CAAC,GAAG,CACxD,CAAC,MAAoB;YACnB,OAAO;gBACL,EAAE,EAAE,MAAM;gBACV,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;aAC/C,CAAC;SACH,CACF,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ;SAChB,CAAC;KACH;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;KAChC;;;;;IAMM,SAAS,CAAC,WAAmB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,GAAG,CAAC,CAAC;SAC9D;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAC/C,wBAAwB,CACzB;YACD,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjD,CAAC;KACH;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;KACnC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;KACvD;IAEO,QAAQ,CAAC,KAAa;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;KACd;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;KACnE;IAEO,UAAU,CAAC,KAAmB;QACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;KAC/D;;;AChGH;;;;;;"}
|