@skyux/list-builder-view-grids 5.0.1 → 5.5.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.
Files changed (113) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-list-builder-view-grids.umd.js +37 -37
  3. package/documentation.json +359 -123
  4. package/esm2015/index.js +21 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/column-selector/column-selector-context.js +9 -0
  7. package/esm2015/lib/modules/column-selector/column-selector-context.js.map +1 -0
  8. package/esm2015/lib/modules/column-selector/column-selector-modal.component.js +41 -0
  9. package/esm2015/lib/modules/column-selector/column-selector-modal.component.js.map +1 -0
  10. package/esm2015/lib/modules/column-selector/column-selector-modal.module.js +41 -0
  11. package/esm2015/lib/modules/column-selector/column-selector-modal.module.js.map +1 -0
  12. package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js +136 -0
  13. package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.component.js.map +1 -0
  14. package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js +47 -0
  15. package/esm2015/lib/modules/list-column-selector-action/list-column-selector-action.module.js.map +1 -0
  16. package/esm2015/{modules → lib/modules}/list-column-selector-action/list-column-selector-button.component.js +4 -4
  17. package/esm2015/lib/modules/list-column-selector-action/list-column-selector-button.component.js.map +1 -0
  18. package/esm2015/lib/modules/list-view-grid/list-view-grid.component.js +466 -0
  19. package/esm2015/lib/modules/list-view-grid/list-view-grid.component.js.map +1 -0
  20. package/esm2015/lib/modules/list-view-grid/list-view-grid.module.js +42 -0
  21. package/esm2015/lib/modules/list-view-grid/list-view-grid.module.js.map +1 -0
  22. package/esm2015/lib/modules/list-view-grid/state/columns/columns.orchestrator.js +22 -0
  23. package/esm2015/lib/modules/list-view-grid/state/columns/columns.orchestrator.js.map +1 -0
  24. package/esm2015/lib/modules/list-view-grid/state/columns/load.action.js +10 -0
  25. package/esm2015/lib/modules/list-view-grid/state/columns/load.action.js.map +1 -0
  26. package/esm2015/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js +22 -0
  27. package/esm2015/lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js.map +1 -0
  28. package/esm2015/lib/modules/list-view-grid/state/displayed-columns/load.action.js +10 -0
  29. package/esm2015/lib/modules/list-view-grid/state/displayed-columns/load.action.js.map +1 -0
  30. package/esm2015/lib/modules/list-view-grid/state/grid-state-action.type.js +2 -0
  31. package/esm2015/lib/modules/list-view-grid/state/grid-state-action.type.js.map +1 -0
  32. package/esm2015/lib/modules/list-view-grid/state/grid-state.model.js +11 -0
  33. package/esm2015/lib/modules/list-view-grid/state/grid-state.model.js.map +1 -0
  34. package/esm2015/lib/modules/list-view-grid/state/grid-state.rxstate.js +19 -0
  35. package/esm2015/lib/modules/list-view-grid/state/grid-state.rxstate.js.map +1 -0
  36. package/esm2015/lib/modules/list-view-grid/state/grid-state.state-node.js +27 -0
  37. package/esm2015/lib/modules/list-view-grid/state/grid-state.state-node.js.map +1 -0
  38. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-message-type.js +15 -0
  39. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-message-type.js.map +1 -0
  40. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-message.js +2 -0
  41. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-message.js.map +1 -0
  42. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-row-delete-cancel-args.js +2 -0
  43. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-row-delete-cancel-args.js.map +1 -0
  44. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-row-delete-confirm-args.js +2 -0
  45. package/esm2015/lib/modules/list-view-grid/types/list-view-grid-row-delete-confirm-args.js.map +1 -0
  46. package/esm2015/lib/modules/shared/sky-list-builder-view-grids-resources.module.js +56 -0
  47. package/esm2015/lib/modules/shared/sky-list-builder-view-grids-resources.module.js.map +1 -0
  48. package/esm2015/skyux-list-builder-view-grids.js +2 -2
  49. package/esm2015/skyux-list-builder-view-grids.js.map +1 -0
  50. package/esm2015/testing/list-view-grid-fixture-cell.js +1 -1
  51. package/esm2015/testing/list-view-grid-fixture-cell.js.map +1 -0
  52. package/esm2015/testing/list-view-grid-fixture-header.js +1 -1
  53. package/esm2015/testing/list-view-grid-fixture-header.js.map +1 -0
  54. package/esm2015/testing/list-view-grid-fixture-row.js +1 -1
  55. package/esm2015/testing/list-view-grid-fixture-row.js.map +1 -0
  56. package/esm2015/testing/list-view-grid-fixture.js +1 -1
  57. package/esm2015/testing/list-view-grid-fixture.js.map +1 -0
  58. package/esm2015/testing/public-api.js +1 -1
  59. package/esm2015/testing/public-api.js.map +1 -0
  60. package/esm2015/testing/skyux-list-builder-view-grids-testing.js +1 -1
  61. package/esm2015/testing/skyux-list-builder-view-grids-testing.js.map +1 -0
  62. package/fesm2015/skyux-list-builder-view-grids-testing.js.map +1 -1
  63. package/fesm2015/skyux-list-builder-view-grids.js +222 -222
  64. package/fesm2015/skyux-list-builder-view-grids.js.map +1 -1
  65. package/index.d.ts +18 -0
  66. package/{modules → lib/modules}/column-selector/column-selector-context.d.ts +0 -0
  67. package/{modules → lib/modules}/column-selector/column-selector-modal.component.d.ts +0 -0
  68. package/{modules → lib/modules}/column-selector/column-selector-modal.module.d.ts +0 -0
  69. package/{modules → lib/modules}/list-column-selector-action/list-column-selector-action.component.d.ts +0 -0
  70. package/{modules → lib/modules}/list-column-selector-action/list-column-selector-action.module.d.ts +0 -0
  71. package/{modules → lib/modules}/list-column-selector-action/list-column-selector-button.component.d.ts +0 -0
  72. package/{modules → lib/modules}/list-view-grid/list-view-grid.component.d.ts +3 -3
  73. package/{modules → lib/modules}/list-view-grid/list-view-grid.module.d.ts +0 -0
  74. package/{modules → lib/modules}/list-view-grid/state/columns/columns.orchestrator.d.ts +0 -0
  75. package/{modules → lib/modules}/list-view-grid/state/columns/load.action.d.ts +0 -0
  76. package/{modules → lib/modules}/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.d.ts +0 -0
  77. package/{modules → lib/modules}/list-view-grid/state/displayed-columns/load.action.d.ts +0 -0
  78. package/{modules → lib/modules}/list-view-grid/state/grid-state-action.type.d.ts +0 -0
  79. package/{modules → lib/modules}/list-view-grid/state/grid-state.model.d.ts +0 -0
  80. package/{modules → lib/modules}/list-view-grid/state/grid-state.rxstate.d.ts +0 -0
  81. package/{modules → lib/modules}/list-view-grid/state/grid-state.state-node.d.ts +0 -0
  82. package/{modules → lib/modules}/list-view-grid/types/list-view-grid-message-type.d.ts +0 -0
  83. package/{modules → lib/modules}/list-view-grid/types/list-view-grid-message.d.ts +0 -0
  84. package/{modules → lib/modules}/list-view-grid/types/list-view-grid-row-delete-cancel-args.d.ts +0 -0
  85. package/{modules → lib/modules}/list-view-grid/types/list-view-grid-row-delete-confirm-args.d.ts +0 -0
  86. package/{modules → lib/modules}/shared/sky-list-builder-view-grids-resources.module.d.ts +0 -0
  87. package/package.json +24 -10
  88. package/skyux-list-builder-view-grids.d.ts +1 -1
  89. package/LICENSE +0 -21
  90. package/bundles/skyux-list-builder-view-grids-testing.umd.js.map +0 -1
  91. package/bundles/skyux-list-builder-view-grids.umd.js.map +0 -1
  92. package/esm2015/modules/column-selector/column-selector-context.js +0 -9
  93. package/esm2015/modules/column-selector/column-selector-modal.component.js +0 -39
  94. package/esm2015/modules/column-selector/column-selector-modal.module.js +0 -41
  95. package/esm2015/modules/list-column-selector-action/list-column-selector-action.component.js +0 -134
  96. package/esm2015/modules/list-column-selector-action/list-column-selector-action.module.js +0 -47
  97. package/esm2015/modules/list-view-grid/list-view-grid.component.js +0 -466
  98. package/esm2015/modules/list-view-grid/list-view-grid.module.js +0 -42
  99. package/esm2015/modules/list-view-grid/state/columns/columns.orchestrator.js +0 -22
  100. package/esm2015/modules/list-view-grid/state/columns/load.action.js +0 -10
  101. package/esm2015/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator.js +0 -22
  102. package/esm2015/modules/list-view-grid/state/displayed-columns/load.action.js +0 -10
  103. package/esm2015/modules/list-view-grid/state/grid-state-action.type.js +0 -2
  104. package/esm2015/modules/list-view-grid/state/grid-state.model.js +0 -11
  105. package/esm2015/modules/list-view-grid/state/grid-state.rxstate.js +0 -19
  106. package/esm2015/modules/list-view-grid/state/grid-state.state-node.js +0 -25
  107. package/esm2015/modules/list-view-grid/types/list-view-grid-message-type.js +0 -15
  108. package/esm2015/modules/list-view-grid/types/list-view-grid-message.js +0 -2
  109. package/esm2015/modules/list-view-grid/types/list-view-grid-row-delete-cancel-args.js +0 -2
  110. package/esm2015/modules/list-view-grid/types/list-view-grid-row-delete-confirm-args.js +0 -2
  111. package/esm2015/modules/shared/sky-list-builder-view-grids-resources.module.js +0 -56
  112. package/esm2015/public-api.js +0 -21
  113. package/public-api.d.ts +0 -18
@@ -0,0 +1,21 @@
1
+ export * from './lib/modules/column-selector/column-selector-context';
2
+ export * from './lib/modules/column-selector/column-selector-modal.module';
3
+ export * from './lib/modules/list-column-selector-action/list-column-selector-action.module';
4
+ export * from './lib/modules/list-view-grid/list-view-grid.component';
5
+ export * from './lib/modules/list-view-grid/list-view-grid.module';
6
+ export * from './lib/modules/list-view-grid/state/grid-state-action.type';
7
+ export * from './lib/modules/list-view-grid/state/grid-state.model';
8
+ export * from './lib/modules/list-view-grid/state/grid-state.rxstate';
9
+ export * from './lib/modules/list-view-grid/state/grid-state.state-node';
10
+ export * from './lib/modules/list-view-grid/state/columns/columns.orchestrator';
11
+ export * from './lib/modules/list-view-grid/state/columns/load.action';
12
+ export * from './lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator';
13
+ export * from './lib/modules/list-view-grid/state/displayed-columns/load.action';
14
+ export * from './lib/modules/list-view-grid/types/list-view-grid-message';
15
+ export * from './lib/modules/list-view-grid/types/list-view-grid-message-type';
16
+ export * from './lib/modules/list-view-grid/types/list-view-grid-row-delete-cancel-args';
17
+ export * from './lib/modules/list-view-grid/types/list-view-grid-row-delete-confirm-args';
18
+ // Components and directives must be exported to support Angular’s “partial” Ivy compiler.
19
+ // Obscure names are used to indicate types are not part of the public API.
20
+ export { SkyListColumnSelectorActionComponent as λ1 } from './lib/modules/list-column-selector-action/list-column-selector-action.component';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/components/list-builder-view-grids/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uDAAuD,CAAC;AACtE,cAAc,4DAA4D,CAAC;AAE3E,cAAc,8EAA8E,CAAC;AAE7F,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0DAA0D,CAAC;AACzE,cAAc,iEAAiE,CAAC;AAChF,cAAc,wDAAwD,CAAC;AACvE,cAAc,qFAAqF,CAAC;AACpG,cAAc,kEAAkE,CAAC;AAEjF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,0EAA0E,CAAC;AACzF,cAAc,2EAA2E,CAAC;AAE1F,0FAA0F;AAC1F,2EAA2E;AAC3E,OAAO,EAAE,oCAAoC,IAAI,EAAE,EAAE,MAAM,iFAAiF,CAAC","sourcesContent":["export * from './lib/modules/column-selector/column-selector-context';\nexport * from './lib/modules/column-selector/column-selector-modal.module';\n\nexport * from './lib/modules/list-column-selector-action/list-column-selector-action.module';\n\nexport * from './lib/modules/list-view-grid/list-view-grid.component';\nexport * from './lib/modules/list-view-grid/list-view-grid.module';\n\nexport * from './lib/modules/list-view-grid/state/grid-state-action.type';\nexport * from './lib/modules/list-view-grid/state/grid-state.model';\nexport * from './lib/modules/list-view-grid/state/grid-state.rxstate';\nexport * from './lib/modules/list-view-grid/state/grid-state.state-node';\nexport * from './lib/modules/list-view-grid/state/columns/columns.orchestrator';\nexport * from './lib/modules/list-view-grid/state/columns/load.action';\nexport * from './lib/modules/list-view-grid/state/displayed-columns/displayed-columns.orchestrator';\nexport * from './lib/modules/list-view-grid/state/displayed-columns/load.action';\n\nexport * from './lib/modules/list-view-grid/types/list-view-grid-message';\nexport * from './lib/modules/list-view-grid/types/list-view-grid-message-type';\nexport * from './lib/modules/list-view-grid/types/list-view-grid-row-delete-cancel-args';\nexport * from './lib/modules/list-view-grid/types/list-view-grid-row-delete-confirm-args';\n\n// Components and directives must be exported to support Angular’s “partial” Ivy compiler.\n// Obscure names are used to indicate types are not part of the public API.\nexport { SkyListColumnSelectorActionComponent as λ1 } from './lib/modules/list-column-selector-action/list-column-selector-action.component';\n"]}
@@ -0,0 +1,9 @@
1
+ /* istanbul ignore next */
2
+ /* Code coverage having problems with no statements in classes */
3
+ export class SkyColumnSelectorContext {
4
+ }
5
+ /* istanbul ignore next */
6
+ /* Code coverage having problems with no statements in classes */
7
+ export class SkyColumnSelectorModel {
8
+ }
9
+ //# sourceMappingURL=column-selector-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-selector-context.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-context.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,iEAAiE;AACjE,MAAM,OAAO,wBAAwB;CAGpC;AAED,0BAA0B;AAC1B,iEAAiE;AACjE,MAAM,OAAO,sBAAsB;CAIlC","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"]}
@@ -0,0 +1,41 @@
1
+ import { Component } from '@angular/core';
2
+ import { SkyModalInstance } from '@skyux/modals';
3
+ import { SkyColumnSelectorContext } from './column-selector-context';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./column-selector-context";
6
+ import * as i2 from "@skyux/modals";
7
+ import * as i3 from "@skyux/list-builder";
8
+ import * as i4 from "@skyux/list-builder-view-checklist";
9
+ import * as i5 from "@skyux/i18n";
10
+ export class SkyColumnSelectorComponent {
11
+ constructor(context, instance) {
12
+ this.context = context;
13
+ this.instance = instance;
14
+ this.newSelectedColumnIds = [];
15
+ this.newSelectedColumnIds = context.selectedColumnIds;
16
+ }
17
+ selectedColumnsChange(selectedMap) {
18
+ this.newSelectedColumnIds = [];
19
+ selectedMap.forEach((value, key) => {
20
+ if (value) {
21
+ this.newSelectedColumnIds.push(key);
22
+ }
23
+ });
24
+ }
25
+ cancelChanges() {
26
+ this.instance.cancel();
27
+ }
28
+ applyChanges() {
29
+ this.instance.save(this.newSelectedColumnIds);
30
+ }
31
+ }
32
+ SkyColumnSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorComponent, deps: [{ token: i1.SkyColumnSelectorContext }, { token: i2.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
33
+ SkyColumnSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyColumnSelectorComponent, selector: "sky-column-selector", ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_grid_column_picker_header' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-list\n #list\n [data]=\"context.columns\"\n [selectedIds]=\"context.selectedColumnIds\"\n (selectedIdsChange)=\"selectedColumnsChange($event)\"\n >\n <sky-list-toolbar\n [placeholder]=\"\n 'skyux_grid_column_picker_search_placeholder' | skyLibResources\n \"\n >\n </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", components: [{ type: i2.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i2.λ4, selector: "sky-modal-header" }, { type: i2.λ2, selector: "sky-modal-content" }, { type: i3.SkyListComponent, selector: "sky-list", inputs: ["data", "dataProvider", "defaultView", "initialTotal", "selectedIds", "sortFields", "appliedFilters", "search"], outputs: ["selectedIdsChange", "appliedFiltersChange"] }, { type: i3.SkyListToolbarComponent, selector: "sky-list-toolbar", inputs: ["inMemorySearchEnabled", "placeholder", "searchEnabled", "sortSelectorEnabled", "toolbarType", "searchText"] }, { type: i4.SkyListViewChecklistComponent, selector: "sky-list-view-checklist", inputs: ["name", "search", "label", "description", "selectMode", "showOnlySelected"] }, { type: i2.λ3, selector: "sky-modal-footer" }], pipes: { "skyLibResources": i5.SkyLibResourcesPipe } });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorComponent, decorators: [{
35
+ type: Component,
36
+ args: [{
37
+ selector: 'sky-column-selector',
38
+ templateUrl: './column-selector-modal.component.html',
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i1.SkyColumnSelectorContext }, { type: i2.SkyModalInstance }]; } });
41
+ //# sourceMappingURL=column-selector-modal.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-selector-modal.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;;;;;;AAMrE,MAAM,OAAO,0BAA0B;IAGrC,YACS,OAAiC,EACjC,QAA0B;QAD1B,YAAO,GAAP,OAAO,CAA0B;QACjC,aAAQ,GAAR,QAAQ,CAAkB;QAJ5B,yBAAoB,GAAkB,EAAE,CAAC;QAM9C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACxD,CAAC;IAEM,qBAAqB,CAAC,WAAiC;QAC5D,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC;;wHAzBU,0BAA0B;4GAA1B,0BAA0B,2DCVvC,ymCAuCA;4FD7Ba,0BAA0B;kBAJtC,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,WAAW,EAAE,wCAAwC;iBACtD","sourcesContent":["import { Component } from '@angular/core';\n\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"]}
@@ -0,0 +1,41 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SkyColumnSelectorComponent } from './column-selector-modal.component';
4
+ import { SkyI18nModule } from '@skyux/i18n';
5
+ import { SkyModalModule } from '@skyux/modals';
6
+ import { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';
7
+ import { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';
8
+ import * as i0 from "@angular/core";
9
+ export class SkyColumnSelectorModule {
10
+ }
11
+ SkyColumnSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ SkyColumnSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorModule, declarations: [SkyColumnSelectorComponent], imports: [CommonModule,
13
+ SkyI18nModule,
14
+ SkyModalModule,
15
+ SkyListModule,
16
+ SkyListToolbarModule,
17
+ SkyListViewChecklistModule] });
18
+ SkyColumnSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorModule, imports: [[
19
+ CommonModule,
20
+ SkyI18nModule,
21
+ SkyModalModule,
22
+ SkyListModule,
23
+ SkyListToolbarModule,
24
+ SkyListViewChecklistModule,
25
+ ]] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyColumnSelectorModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ declarations: [SkyColumnSelectorComponent],
30
+ imports: [
31
+ CommonModule,
32
+ SkyI18nModule,
33
+ SkyModalModule,
34
+ SkyListModule,
35
+ SkyListToolbarModule,
36
+ SkyListViewChecklistModule,
37
+ ],
38
+ entryComponents: [SkyColumnSelectorComponent],
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=column-selector-modal.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-selector-modal.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/column-selector/column-selector-modal.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;;AAchF,MAAM,OAAO,uBAAuB;;qHAAvB,uBAAuB;sHAAvB,uBAAuB,iBAXnB,0BAA0B,aAEvC,YAAY;QACZ,aAAa;QACb,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,0BAA0B;sHAIjB,uBAAuB,YAVzB;YACP,YAAY;YACZ,aAAa;YACb,cAAc;YACd,aAAa;YACb,oBAAoB;YACpB,0BAA0B;SAC3B;4FAGU,uBAAuB;kBAZnC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,oBAAoB;wBACpB,0BAA0B;qBAC3B;oBACD,eAAe,EAAE,CAAC,0BAA0B,CAAC;iBAC9C","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SkyColumnSelectorComponent } from './column-selector-modal.component';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\n\nimport { SkyListViewChecklistModule } from '@skyux/list-builder-view-checklist';\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"]}
@@ -0,0 +1,136 @@
1
+ import { Component, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
2
+ import { distinctUntilChanged, map as observableMap, take, } from 'rxjs/operators';
3
+ import { ListState, ListStateDispatcher, ListToolbarItemModel, SkyListSecondaryActionsComponent, } from '@skyux/list-builder';
4
+ import { SkyModalService } from '@skyux/modals';
5
+ import { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';
6
+ import { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';
7
+ import { SkyColumnSelectorContext, } from '../column-selector/column-selector-context';
8
+ import { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@skyux/list-builder";
11
+ import * as i2 from "@skyux/modals";
12
+ import * as i3 from "./list-column-selector-button.component";
13
+ import * as i4 from "@angular/common";
14
+ import * as i5 from "@skyux/i18n";
15
+ /**
16
+ * Provides a column selector modal for a list grid view when placed in a
17
+ * [list toolbar](https://developer.blackbaud.com/skyux/components/list/toolbar).
18
+ */
19
+ export class SkyListColumnSelectorActionComponent {
20
+ constructor(listState, modalService, dispatcher, secondaryActions) {
21
+ this.listState = listState;
22
+ this.modalService = modalService;
23
+ this.dispatcher = dispatcher;
24
+ this.secondaryActions = secondaryActions;
25
+ /**
26
+ * Fires when users click the help button and broadcasts the `helpKey`.
27
+ */
28
+ this.helpOpened = new EventEmitter();
29
+ this.columnSelectorActionItemToolbarIndex = 7000;
30
+ }
31
+ ngAfterContentInit() {
32
+ if (!this.secondaryActions) {
33
+ let columnChooserItem = new ListToolbarItemModel({
34
+ id: 'column-chooser',
35
+ template: this.columnChooserTemplate,
36
+ location: 'left',
37
+ });
38
+ this.dispatcher.toolbarAddItems([columnChooserItem], this.columnSelectorActionItemToolbarIndex);
39
+ }
40
+ }
41
+ get isInGridView() {
42
+ return this.listState.pipe(observableMap((s) => s.views.active), observableMap((activeView) => {
43
+ return this.gridView && activeView === this.gridView.id;
44
+ }), distinctUntilChanged());
45
+ }
46
+ get isInGridViewAndSecondary() {
47
+ return this.listState.pipe(observableMap((s) => s.views.active), observableMap((activeView) => {
48
+ return (this.secondaryActions &&
49
+ this.gridView &&
50
+ activeView === this.gridView.id);
51
+ }), distinctUntilChanged());
52
+ }
53
+ openColumnSelector() {
54
+ /* istanbul ignore else */
55
+ /* sanity check */
56
+ if (this.gridView) {
57
+ let columns = [];
58
+ let selectedColumnIds = [];
59
+ this.gridView.gridState
60
+ .pipe(take(1))
61
+ .subscribe((state) => {
62
+ columns = state.columns.items
63
+ .filter((item) => {
64
+ return !item.locked;
65
+ })
66
+ .map((item) => {
67
+ return {
68
+ id: item.id,
69
+ heading: item.heading,
70
+ description: item.description,
71
+ };
72
+ });
73
+ selectedColumnIds = state.displayedColumns.items
74
+ .filter((item) => {
75
+ return !item.locked;
76
+ })
77
+ .map((item) => {
78
+ return item.id;
79
+ });
80
+ });
81
+ const modalInstance = this.modalService.open(SkyColumnSelectorComponent, {
82
+ providers: [
83
+ {
84
+ provide: SkyColumnSelectorContext,
85
+ useValue: {
86
+ columns,
87
+ selectedColumnIds,
88
+ },
89
+ },
90
+ ],
91
+ helpKey: this.helpKey,
92
+ });
93
+ modalInstance.helpOpened.subscribe((helpKey) => {
94
+ this.helpOpened.emit(helpKey);
95
+ this.helpOpened.complete();
96
+ });
97
+ modalInstance.closed.subscribe((result) => {
98
+ if (result.reason === 'save' && result.data) {
99
+ let newSelectedIds = result.data;
100
+ let newDisplayedColumns = [];
101
+ this.gridView.gridState
102
+ .pipe(take(1))
103
+ .subscribe((state) => {
104
+ newDisplayedColumns = state.columns.items.filter((item) => {
105
+ return newSelectedIds.indexOf(item.id) > -1 || item.locked;
106
+ });
107
+ });
108
+ this.gridView.gridDispatcher.next(new ListViewDisplayedGridColumnsLoadAction(newDisplayedColumns, true));
109
+ }
110
+ });
111
+ }
112
+ }
113
+ }
114
+ SkyListColumnSelectorActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionComponent, deps: [{ token: i1.ListState }, { token: i2.SkyModalService }, { token: i1.ListStateDispatcher }, { token: i1.SkyListSecondaryActionsComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
115
+ SkyListColumnSelectorActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyListColumnSelectorActionComponent, selector: "sky-list-column-selector-action", inputs: { gridView: "gridView", helpKey: "helpKey" }, outputs: { helpOpened: "helpOpened" }, viewQueries: [{ propertyName: "columnChooserTemplate", first: true, predicate: ["columnChooser"], descendants: true, static: true }], ngImport: i0, template: "<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", components: [{ type: i1.λ6, selector: "sky-list-secondary-action" }, { type: i3.SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe, "skyLibResources": i5.SkyLibResourcesPipe } });
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionComponent, decorators: [{
117
+ type: Component,
118
+ args: [{
119
+ selector: 'sky-list-column-selector-action',
120
+ templateUrl: './list-column-selector-action.component.html',
121
+ }]
122
+ }], ctorParameters: function () { return [{ type: i1.ListState }, { type: i2.SkyModalService }, { type: i1.ListStateDispatcher }, { type: i1.SkyListSecondaryActionsComponent, decorators: [{
123
+ type: Optional
124
+ }] }]; }, propDecorators: { gridView: [{
125
+ type: Input
126
+ }], helpKey: [{
127
+ type: Input
128
+ }], helpOpened: [{
129
+ type: Output
130
+ }], columnChooserTemplate: [{
131
+ type: ViewChild,
132
+ args: ['columnChooser', {
133
+ static: true,
134
+ }]
135
+ }] } });
136
+ //# sourceMappingURL=list-column-selector-action.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-column-selector-action.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.ts","../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport {\n distinctUntilChanged,\n map as observableMap,\n take,\n} from 'rxjs/operators';\n\nimport {\n ListState,\n ListStateDispatcher,\n ListToolbarItemModel,\n SkyListSecondaryActionsComponent,\n} from '@skyux/list-builder';\n\nimport { SkyGridColumnModel } from '@skyux/grids';\n\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { SkyListViewGridComponent } from '../list-view-grid/list-view-grid.component';\n\nimport { GridStateModel } from '../list-view-grid/state/grid-state.model';\n\nimport { ListViewDisplayedGridColumnsLoadAction } from '../list-view-grid/state/displayed-columns/load.action';\n\nimport {\n SkyColumnSelectorContext,\n SkyColumnSelectorModel,\n} from '../column-selector/column-selector-context';\n\nimport { SkyColumnSelectorComponent } from '../column-selector/column-selector-modal.component';\n\n/**\n * Provides a column selector modal for a list grid view when placed in a\n * [list toolbar](https://developer.blackbaud.com/skyux/components/list/toolbar).\n */\n@Component({\n selector: 'sky-list-column-selector-action',\n templateUrl: './list-column-selector-action.component.html',\n})\nexport class SkyListColumnSelectorActionComponent implements AfterContentInit {\n /**\n * Enables the column selector in the list toolbar. Set this attribute to the instance of\n * the `sky-grid-view` component using the component's template reference variable.\n */\n @Input()\n public gridView: SkyListViewGridComponent;\n\n /**\n * Specifies a `helpKey` string and dispays a help button in the grid header. When users select\n * the button, the `helpOpened` event broadcasts the `helpKey` parameter.\n */\n @Input()\n public helpKey: string;\n\n /**\n * Fires when users click the help button and broadcasts the `helpKey`.\n */\n @Output()\n public helpOpened = new EventEmitter<string>();\n\n @ViewChild('columnChooser', {\n static: true,\n })\n private columnChooserTemplate: TemplateRef<any>;\n\n private columnSelectorActionItemToolbarIndex: number = 7000;\n\n constructor(\n public listState: ListState,\n private modalService: SkyModalService,\n private dispatcher: ListStateDispatcher,\n @Optional() public secondaryActions: SkyListSecondaryActionsComponent\n ) {}\n\n public ngAfterContentInit() {\n if (!this.secondaryActions) {\n let columnChooserItem = new ListToolbarItemModel({\n id: 'column-chooser',\n template: this.columnChooserTemplate,\n location: 'left',\n });\n\n this.dispatcher.toolbarAddItems(\n [columnChooserItem],\n this.columnSelectorActionItemToolbarIndex\n );\n }\n }\n\n get isInGridView(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return this.gridView && activeView === this.gridView.id;\n }),\n distinctUntilChanged()\n );\n }\n\n get isInGridViewAndSecondary(): Observable<boolean> {\n return this.listState.pipe(\n observableMap((s) => s.views.active),\n observableMap((activeView) => {\n return (\n this.secondaryActions &&\n this.gridView &&\n activeView === this.gridView.id\n );\n }),\n distinctUntilChanged()\n );\n }\n\n public openColumnSelector() {\n /* istanbul ignore else */\n /* sanity check */\n if (this.gridView) {\n let columns: Array<SkyColumnSelectorModel> = [];\n let selectedColumnIds: Array<string> = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n columns = state.columns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return {\n id: item.id,\n heading: item.heading,\n description: item.description,\n };\n });\n selectedColumnIds = state.displayedColumns.items\n .filter((item: SkyGridColumnModel) => {\n return !item.locked;\n })\n .map((item: SkyGridColumnModel) => {\n return item.id;\n });\n });\n\n const modalInstance = this.modalService.open(SkyColumnSelectorComponent, {\n providers: [\n {\n provide: SkyColumnSelectorContext,\n useValue: {\n columns,\n selectedColumnIds,\n },\n },\n ],\n helpKey: this.helpKey,\n });\n\n modalInstance.helpOpened.subscribe((helpKey: string) => {\n this.helpOpened.emit(helpKey);\n this.helpOpened.complete();\n });\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save' && result.data) {\n let newSelectedIds = result.data;\n let newDisplayedColumns: Array<SkyGridColumnModel> = [];\n this.gridView.gridState\n .pipe(take(1))\n .subscribe((state: GridStateModel) => {\n newDisplayedColumns = state.columns.items.filter((item) => {\n return newSelectedIds.indexOf(item.id) > -1 || item.locked;\n });\n });\n this.gridView.gridDispatcher.next(\n new ListViewDisplayedGridColumnsLoadAction(\n newDisplayedColumns,\n true\n )\n );\n }\n });\n }\n }\n}\n","<ng-container *ngIf=\"isInGridViewAndSecondary | async\">\n <sky-list-secondary-action>\n <button type=\"button\" (click)=\"openColumnSelector()\">\n {{ 'skyux_grid_columns_button' | skyLibResources }}\n </button>\n </sky-list-secondary-action>\n</ng-container>\n\n<ng-template #columnChooser>\n <sky-list-column-selector-button\n *ngIf=\"isInGridView | async\"\n (click)=\"openColumnSelector()\"\n >\n </sky-list-column-selector-button>\n</ng-template>\n"]}
@@ -0,0 +1,47 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SkyI18nModule } from '@skyux/i18n';
4
+ import { SkyIconModule } from '@skyux/indicators';
5
+ import { SkyListToolbarModule, SkyListSecondaryActionsModule, } from '@skyux/list-builder';
6
+ import { SkyModalModule } from '@skyux/modals';
7
+ import { SkyColumnSelectorModule } from '../column-selector/column-selector-modal.module';
8
+ import { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';
9
+ import { SkyListColumnSelectorButtonComponent } from './list-column-selector-button.component';
10
+ import * as i0 from "@angular/core";
11
+ export class SkyListColumnSelectorActionModule {
12
+ }
13
+ SkyListColumnSelectorActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ SkyListColumnSelectorActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionModule, declarations: [SkyListColumnSelectorActionComponent,
15
+ SkyListColumnSelectorButtonComponent], imports: [CommonModule,
16
+ SkyI18nModule,
17
+ SkyModalModule,
18
+ SkyListSecondaryActionsModule,
19
+ SkyListToolbarModule,
20
+ SkyIconModule], exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule] });
21
+ SkyListColumnSelectorActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionModule, imports: [[
22
+ CommonModule,
23
+ SkyI18nModule,
24
+ SkyModalModule,
25
+ SkyListSecondaryActionsModule,
26
+ SkyListToolbarModule,
27
+ SkyIconModule,
28
+ ], SkyColumnSelectorModule] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorActionModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ declarations: [
33
+ SkyListColumnSelectorActionComponent,
34
+ SkyListColumnSelectorButtonComponent,
35
+ ],
36
+ imports: [
37
+ CommonModule,
38
+ SkyI18nModule,
39
+ SkyModalModule,
40
+ SkyListSecondaryActionsModule,
41
+ SkyListToolbarModule,
42
+ SkyIconModule,
43
+ ],
44
+ exports: [SkyListColumnSelectorActionComponent, SkyColumnSelectorModule],
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=list-column-selector-action.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-column-selector-action.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/list-builder-view-grids/src/lib/modules/list-column-selector-action/list-column-selector-action.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;AAE/F,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;;AAiB/F,MAAM,OAAO,iCAAiC;;+HAAjC,iCAAiC;gIAAjC,iCAAiC,iBAb1C,oCAAoC;QACpC,oCAAoC,aAGpC,YAAY;QACZ,aAAa;QACb,cAAc;QACd,6BAA6B;QAC7B,oBAAoB;QACpB,aAAa,aAEL,oCAAoC,EAAE,uBAAuB;gIAE5D,iCAAiC,YAVnC;YACP,YAAY;YACZ,aAAa;YACb,cAAc;YACd,6BAA6B;YAC7B,oBAAoB;YACpB,aAAa;SACd,EAC+C,uBAAuB;4FAE5D,iCAAiC;kBAf7C,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,oCAAoC;wBACpC,oCAAoC;qBACrC;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,6BAA6B;wBAC7B,oBAAoB;wBACpB,aAAa;qBACd;oBACD,OAAO,EAAE,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;iBACzE","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport {\n SkyListToolbarModule,\n SkyListSecondaryActionsModule,\n} from '@skyux/list-builder';\n\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { SkyColumnSelectorModule } from '../column-selector/column-selector-modal.module';\n\nimport { SkyListColumnSelectorActionComponent } from './list-column-selector-action.component';\n\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"]}
@@ -5,9 +5,9 @@ import * as i2 from "@skyux/i18n";
5
5
  export class SkyListColumnSelectorButtonComponent {
6
6
  constructor() { }
7
7
  }
8
- SkyListColumnSelectorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListColumnSelectorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- SkyListColumnSelectorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button", ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon 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", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"], components: [{ type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], pipes: { "skyLibResources": i2.SkyLibResourcesPipe } });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: SkyListColumnSelectorButtonComponent, decorators: [{
8
+ SkyListColumnSelectorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ SkyListColumnSelectorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyListColumnSelectorButtonComponent, selector: "sky-list-column-selector-button", ngImport: i0, template: "<button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_grid_columns_button' | skyLibResources\"\n [title]=\"'skyux_grid_columns_button' | skyLibResources\"\n>\n <sky-icon 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", styles: [":host .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-column-selector-action-btn-text{display:inline}\n"], components: [{ type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], pipes: { "skyLibResources": i2.SkyLibResourcesPipe } });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyListColumnSelectorButtonComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{
13
13
  selector: 'sky-list-column-selector-button',
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
15
15
  styleUrls: ['./list-column-selector-button.component.scss'],
16
16
  }]
17
17
  }], ctorParameters: function () { return []; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4tc2VsZWN0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpc3QtYnVpbGRlci12aWV3LWdyaWRzL3NyYy9tb2R1bGVzL2xpc3QtY29sdW1uLXNlbGVjdG9yLWFjdGlvbi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC1idWlsZGVyLXZpZXctZ3JpZHMvc3JjL21vZHVsZXMvbGlzdC1jb2x1bW4tc2VsZWN0b3ItYWN0aW9uL2xpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzFDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDL0MsZ0JBQWUsQ0FBQzs7a0lBREwsb0NBQW9DO3NIQUFwQyxvQ0FBb0MsdUVDUGpELG1ZQVdBOzRGREphLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUNBQWlDO29CQUMzQyxXQUFXLEVBQUUsOENBQThDO29CQUMzRCxTQUFTLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3QtY29sdW1uLXNlbGVjdG9yLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LWNvbHVtbi1zZWxlY3Rvci1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdENvbHVtblNlbGVjdG9yQnV0dG9uQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPGJ1dHRvblxuICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2dyaWRfY29sdW1uc19idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgW3RpdGxlXT1cIidza3l1eF9ncmlkX2NvbHVtbnNfYnV0dG9uJyB8IHNreUxpYlJlc291cmNlc1wiXG4+XG4gIDxza3ktaWNvbiBpY29uPVwiY29sdW1uc1wiPjwvc2t5LWljb24+XG4gIDxzcGFuIGNsYXNzPVwic2t5LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24tYnRuLXRleHRcIj5cbiAgICB7eyAnc2t5dXhfZ3JpZF9jb2x1bW5zX3Rvb2xiYXJfYnV0dG9uJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
18
+ //# sourceMappingURL=list-column-selector-button.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-column-selector-button.component.js","sourceRoot":"","sources":["../../../../../../../../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"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;;AAO1C,MAAM,OAAO,oCAAoC;IAC/C,gBAAe,CAAC;;kIADL,oCAAoC;sHAApC,oCAAoC,uECPjD,mYAWA;4FDJa,oCAAoC;kBALhD,SAAS;mBAAC;oBACT,QAAQ,EAAE,iCAAiC;oBAC3C,WAAW,EAAE,8CAA8C;oBAC3D,SAAS,EAAE,CAAC,8CAA8C,CAAC;iBAC5D","sourcesContent":["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 constructor() {}\n}\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"]}