@skyux/list-builder-view-grids 5.7.0 → 5.8.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.
@@ -21,7 +21,7 @@
21
21
  "originalName": "",
22
22
  "children": [
23
23
  {
24
- "id": 705,
24
+ "id": 711,
25
25
  "name": "SkyListViewGridMessageType",
26
26
  "kind": 8,
27
27
  "kindString": "Enumeration",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "children": [
33
33
  {
34
- "id": 707,
34
+ "id": 713,
35
35
  "name": "AbortDeleteRow",
36
36
  "kind": 16,
37
37
  "kindString": "Enumeration member",
@@ -49,7 +49,7 @@
49
49
  "defaultValue": "1"
50
50
  },
51
51
  {
52
- "id": 706,
52
+ "id": 712,
53
53
  "name": "PromptDeleteRow",
54
54
  "kind": 16,
55
55
  "kindString": "Enumeration member",
@@ -72,8 +72,8 @@
72
72
  "title": "Enumeration members",
73
73
  "kind": 16,
74
74
  "children": [
75
- 707,
76
- 706
75
+ 713,
76
+ 712
77
77
  ]
78
78
  }
79
79
  ],
@@ -984,7 +984,7 @@
984
984
  "typeArguments": [
985
985
  {
986
986
  "type": "reference",
987
- "id": 708,
987
+ "id": 714,
988
988
  "name": "SkyListViewGridRowDeleteCancelArgs"
989
989
  }
990
990
  ],
@@ -1029,7 +1029,7 @@
1029
1029
  "typeArguments": [
1030
1030
  {
1031
1031
  "type": "reference",
1032
- "id": 710,
1032
+ "id": 716,
1033
1033
  "name": "SkyListViewGridRowDeleteConfirmArgs"
1034
1034
  }
1035
1035
  ],
@@ -1469,7 +1469,7 @@
1469
1469
  "typeArguments": [
1470
1470
  {
1471
1471
  "type": "reference",
1472
- "id": 695,
1472
+ "id": 701,
1473
1473
  "name": "SkyListViewGridMessage"
1474
1474
  }
1475
1475
  ],
@@ -1501,7 +1501,7 @@
1501
1501
  "typeArguments": [
1502
1502
  {
1503
1503
  "type": "reference",
1504
- "id": 695,
1504
+ "id": 701,
1505
1505
  "name": "SkyListViewGridMessage"
1506
1506
  }
1507
1507
  ],
@@ -1612,7 +1612,7 @@
1612
1612
  "flags": {},
1613
1613
  "type": {
1614
1614
  "type": "reference",
1615
- "id": 708,
1615
+ "id": 714,
1616
1616
  "name": "SkyListViewGridRowDeleteCancelArgs"
1617
1617
  }
1618
1618
  }
@@ -1700,7 +1700,7 @@
1700
1700
  "flags": {},
1701
1701
  "type": {
1702
1702
  "type": "reference",
1703
- "id": 710,
1703
+ "id": 716,
1704
1704
  "name": "SkyListViewGridRowDeleteConfirmArgs"
1705
1705
  }
1706
1706
  }
@@ -2199,7 +2199,7 @@
2199
2199
  "isPublic": true
2200
2200
  },
2201
2201
  "comment": {
2202
- "shortText": "Specifies a `helpKey` string and dispays a help button in the grid header. When users select\nthe button, the `helpOpened` event broadcasts the `helpKey` parameter."
2202
+ "shortText": "Specifies a `helpKey` string and displays a help button in the grid header. When users select\nthe button, the `helpOpened` event broadcasts the `helpKey` parameter."
2203
2203
  },
2204
2204
  "decorators": [
2205
2205
  {
@@ -2459,7 +2459,7 @@
2459
2459
  ]
2460
2460
  },
2461
2461
  {
2462
- "id": 695,
2462
+ "id": 701,
2463
2463
  "name": "SkyListViewGridMessage",
2464
2464
  "kind": 256,
2465
2465
  "kindString": "Interface",
@@ -2469,7 +2469,7 @@
2469
2469
  },
2470
2470
  "children": [
2471
2471
  {
2472
- "id": 697,
2472
+ "id": 703,
2473
2473
  "name": "data",
2474
2474
  "kind": 1024,
2475
2475
  "kindString": "Property",
@@ -2489,14 +2489,14 @@
2489
2489
  "type": {
2490
2490
  "type": "reflection",
2491
2491
  "declaration": {
2492
- "id": 698,
2492
+ "id": 704,
2493
2493
  "name": "__type",
2494
2494
  "kind": 65536,
2495
2495
  "kindString": "Type literal",
2496
2496
  "flags": {},
2497
2497
  "children": [
2498
2498
  {
2499
- "id": 699,
2499
+ "id": 705,
2500
2500
  "name": "abortDeleteRow",
2501
2501
  "kind": 1024,
2502
2502
  "kindString": "Property",
@@ -2513,14 +2513,14 @@
2513
2513
  "type": {
2514
2514
  "type": "reflection",
2515
2515
  "declaration": {
2516
- "id": 700,
2516
+ "id": 706,
2517
2517
  "name": "__type",
2518
2518
  "kind": 65536,
2519
2519
  "kindString": "Type literal",
2520
2520
  "flags": {},
2521
2521
  "children": [
2522
2522
  {
2523
- "id": 701,
2523
+ "id": 707,
2524
2524
  "name": "id",
2525
2525
  "kind": 1024,
2526
2526
  "kindString": "Property",
@@ -2543,7 +2543,7 @@
2543
2543
  "title": "Properties",
2544
2544
  "kind": 1024,
2545
2545
  "children": [
2546
- 701
2546
+ 707
2547
2547
  ]
2548
2548
  }
2549
2549
  ]
@@ -2551,7 +2551,7 @@
2551
2551
  }
2552
2552
  },
2553
2553
  {
2554
- "id": 702,
2554
+ "id": 708,
2555
2555
  "name": "promptDeleteRow",
2556
2556
  "kind": 1024,
2557
2557
  "kindString": "Property",
@@ -2568,14 +2568,14 @@
2568
2568
  "type": {
2569
2569
  "type": "reflection",
2570
2570
  "declaration": {
2571
- "id": 703,
2571
+ "id": 709,
2572
2572
  "name": "__type",
2573
2573
  "kind": 65536,
2574
2574
  "kindString": "Type literal",
2575
2575
  "flags": {},
2576
2576
  "children": [
2577
2577
  {
2578
- "id": 704,
2578
+ "id": 710,
2579
2579
  "name": "id",
2580
2580
  "kind": 1024,
2581
2581
  "kindString": "Property",
@@ -2598,7 +2598,7 @@
2598
2598
  "title": "Properties",
2599
2599
  "kind": 1024,
2600
2600
  "children": [
2601
- 704
2601
+ 710
2602
2602
  ]
2603
2603
  }
2604
2604
  ]
@@ -2611,8 +2611,8 @@
2611
2611
  "title": "Properties",
2612
2612
  "kind": 1024,
2613
2613
  "children": [
2614
- 699,
2615
- 702
2614
+ 705,
2615
+ 708
2616
2616
  ]
2617
2617
  }
2618
2618
  ]
@@ -2620,7 +2620,7 @@
2620
2620
  }
2621
2621
  },
2622
2622
  {
2623
- "id": 696,
2623
+ "id": 702,
2624
2624
  "name": "type",
2625
2625
  "kind": 1024,
2626
2626
  "kindString": "Property",
@@ -2637,7 +2637,7 @@
2637
2637
  ],
2638
2638
  "type": {
2639
2639
  "type": "reference",
2640
- "id": 705,
2640
+ "id": 711,
2641
2641
  "name": "SkyListViewGridMessageType"
2642
2642
  }
2643
2643
  }
@@ -2647,8 +2647,8 @@
2647
2647
  "title": "Properties",
2648
2648
  "kind": 1024,
2649
2649
  "children": [
2650
- 697,
2651
- 696
2650
+ 703,
2651
+ 702
2652
2652
  ]
2653
2653
  }
2654
2654
  ],
@@ -2661,14 +2661,14 @@
2661
2661
  ]
2662
2662
  },
2663
2663
  {
2664
- "id": 708,
2664
+ "id": 714,
2665
2665
  "name": "SkyListViewGridRowDeleteCancelArgs",
2666
2666
  "kind": 256,
2667
2667
  "kindString": "Interface",
2668
2668
  "flags": {},
2669
2669
  "children": [
2670
2670
  {
2671
- "id": 709,
2671
+ "id": 715,
2672
2672
  "name": "id",
2673
2673
  "kind": 1024,
2674
2674
  "kindString": "Property",
@@ -2694,7 +2694,7 @@
2694
2694
  "title": "Properties",
2695
2695
  "kind": 1024,
2696
2696
  "children": [
2697
- 709
2697
+ 715
2698
2698
  ]
2699
2699
  }
2700
2700
  ],
@@ -2707,14 +2707,14 @@
2707
2707
  ]
2708
2708
  },
2709
2709
  {
2710
- "id": 710,
2710
+ "id": 716,
2711
2711
  "name": "SkyListViewGridRowDeleteConfirmArgs",
2712
2712
  "kind": 256,
2713
2713
  "kindString": "Interface",
2714
2714
  "flags": {},
2715
2715
  "children": [
2716
2716
  {
2717
- "id": 711,
2717
+ "id": 717,
2718
2718
  "name": "id",
2719
2719
  "kind": 1024,
2720
2720
  "kindString": "Property",
@@ -2740,7 +2740,7 @@
2740
2740
  "title": "Properties",
2741
2741
  "kind": 1024,
2742
2742
  "children": [
2743
- 711
2743
+ 717
2744
2744
  ]
2745
2745
  }
2746
2746
  ],
@@ -2758,7 +2758,7 @@
2758
2758
  "title": "Enumerations",
2759
2759
  "kind": 8,
2760
2760
  "children": [
2761
- 705
2761
+ 711
2762
2762
  ]
2763
2763
  },
2764
2764
  {
@@ -2778,9 +2778,9 @@
2778
2778
  "title": "Interfaces",
2779
2779
  "kind": 256,
2780
2780
  "children": [
2781
- 695,
2782
- 708,
2783
- 710
2781
+ 701,
2782
+ 714,
2783
+ 716
2784
2784
  ]
2785
2785
  }
2786
2786
  ],
@@ -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';\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"]}
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 displays 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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-list-builder-view-grids.js","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/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/columns/load.action.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-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-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/shared/sky-list-builder-view-grids-resources.module.ts","../../../../../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 */\nexport class SkyColumnSelectorContext {\n public columns: Array<SkyColumnSelectorModel>;\n public selectedColumnIds: Array<string>;\n}\n\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyColumnSelectorModel {\n public id: string;\n public heading: string;\n public description: string;\n}\n","import { 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})\nexport class SkyColumnSelectorComponent {\n public newSelectedColumnIds: Array<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>) {\n this.newSelectedColumnIds = [];\n selectedMap.forEach((value, key) => {\n if (value) {\n this.newSelectedColumnIds.push(key);\n }\n });\n }\n\n public cancelChanges() {\n this.instance.cancel();\n }\n\n public applyChanges() {\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 </sky-list-toolbar>\n\n <sky-list-view-checklist label=\"heading\" description=\"description\">\n </sky-list-view-checklist>\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 (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 (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 { SkyI18nModule } from '@skyux/i18n';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\nimport { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyColumnSelectorComponent } from './column-selector-modal.component';\n\n@NgModule({\n declarations: [SkyColumnSelectorComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyModalModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewChecklistModule,\n ],\n entryComponents: [SkyColumnSelectorComponent],\n})\nexport class SkyColumnSelectorModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n */\nexport class ListViewGridColumnsLoadAction {\n constructor(\n public columns: Array<SkyGridColumnModel>,\n public refresh: boolean = false\n ) {}\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n */\nexport class ListViewDisplayedGridColumnsLoadAction {\n constructor(\n public columns: Array<SkyGridColumnModel>,\n public refresh: boolean = false\n ) {}\n}\n","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","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","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","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","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","/**\n * The command for the list view grid to respond to.\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 {\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","import { 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})\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 icon=\"columns\"></sky-icon>\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 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","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","/**\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 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(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\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","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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf","observableMap"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-list-builder-view-grids.js","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/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/columns/load.action.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-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-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/shared/sky-list-builder-view-grids-resources.module.ts","../../../../../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 */\nexport class SkyColumnSelectorContext {\n public columns: Array<SkyColumnSelectorModel>;\n public selectedColumnIds: Array<string>;\n}\n\n/* istanbul ignore next */\n/* Code coverage having problems with no statements in classes */\nexport class SkyColumnSelectorModel {\n public id: string;\n public heading: string;\n public description: string;\n}\n","import { 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})\nexport class SkyColumnSelectorComponent {\n public newSelectedColumnIds: Array<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>) {\n this.newSelectedColumnIds = [];\n selectedMap.forEach((value, key) => {\n if (value) {\n this.newSelectedColumnIds.push(key);\n }\n });\n }\n\n public cancelChanges() {\n this.instance.cancel();\n }\n\n public applyChanges() {\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 </sky-list-toolbar>\n\n <sky-list-view-checklist label=\"heading\" description=\"description\">\n </sky-list-view-checklist>\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 (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 (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 { SkyI18nModule } from '@skyux/i18n';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\nimport { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyColumnSelectorComponent } from './column-selector-modal.component';\n\n@NgModule({\n declarations: [SkyColumnSelectorComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyModalModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewChecklistModule,\n ],\n entryComponents: [SkyColumnSelectorComponent],\n})\nexport class SkyColumnSelectorModule {}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n */\nexport class ListViewGridColumnsLoadAction {\n constructor(\n public columns: Array<SkyGridColumnModel>,\n public refresh: boolean = false\n ) {}\n}\n","import { SkyGridColumnModel } from '@skyux/grids';\n\n/**\n * @internal\n */\nexport class ListViewDisplayedGridColumnsLoadAction {\n constructor(\n public columns: Array<SkyGridColumnModel>,\n public refresh: boolean = false\n ) {}\n}\n","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","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","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","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","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","/**\n * The command for the list view grid to respond to.\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 {\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","import { 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})\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 icon=\"columns\"></sky-icon>\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 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 displays 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","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","/**\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 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(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\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","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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf","observableMap"],"mappings":"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"}
@@ -19,7 +19,7 @@ export declare class SkyListColumnSelectorActionComponent implements AfterConten
19
19
  */
20
20
  gridView: SkyListViewGridComponent;
21
21
  /**
22
- * Specifies a `helpKey` string and dispays a help button in the grid header. When users select
22
+ * Specifies a `helpKey` string and displays a help button in the grid header. When users select
23
23
  * the button, the `helpOpened` event broadcasts the `helpKey` parameter.
24
24
  */
25
25
  helpKey: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/list-builder-view-grids",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -19,14 +19,14 @@
19
19
  "@angular/common": "^12.2.16",
20
20
  "@angular/core": "^12.2.16",
21
21
  "@angular/platform-browser": "^12.2.16",
22
- "@skyux-sdk/testing": "5.7.0",
23
- "@skyux/grids": "5.7.0",
24
- "@skyux/i18n": "5.7.0",
25
- "@skyux/indicators": "5.7.0",
26
- "@skyux/list-builder": "5.7.0",
27
- "@skyux/list-builder-common": "5.7.0",
28
- "@skyux/list-builder-view-checklist": "5.7.0",
29
- "@skyux/modals": "5.7.0"
22
+ "@skyux-sdk/testing": "5.8.0",
23
+ "@skyux/grids": "5.8.0",
24
+ "@skyux/i18n": "5.8.0",
25
+ "@skyux/indicators": "5.8.0",
26
+ "@skyux/list-builder": "5.8.0",
27
+ "@skyux/list-builder-common": "5.8.0",
28
+ "@skyux/list-builder-view-checklist": "5.8.0",
29
+ "@skyux/modals": "5.8.0"
30
30
  },
31
31
  "dependencies": {
32
32
  "tslib": "^2.3.1"
@@ -38,4 +38,4 @@
38
38
  "fesm2015": "fesm2015/skyux-list-builder-view-grids.js",
39
39
  "typings": "skyux-list-builder-view-grids.d.ts",
40
40
  "sideEffects": false
41
- }
41
+ }