@skyux/data-manager 15.0.0-alpha.0 → 15.0.0-alpha.10

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.
@@ -51,10 +51,10 @@ class SkyDataManagerFilterStateService {
51
51
  getFilterStateUpdates(sourceId) {
52
52
  return this.#filterStateChange.pipe(filter((c) => c.sourceId !== sourceId), map((c) => c.filterState));
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerFilterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerFilterStateService }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerFilterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerFilterStateService }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerFilterStateService, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerFilterStateService, decorators: [{
58
58
  type: Injectable
59
59
  }] });
60
60
 
@@ -150,11 +150,11 @@ SkyLibResourcesService.addResources(RESOURCES);
150
150
  * Import into any component library module that needs to use resource strings.
151
151
  */
152
152
  class SkyDataManagerResourcesModule {
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
154
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] }); }
155
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerResourcesModule, imports: [SkyI18nModule] }); }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
154
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] }); }
155
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerResourcesModule, imports: [SkyI18nModule] }); }
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{
158
158
  type: NgModule,
159
159
  args: [{
160
160
  exports: [SkyI18nModule],
@@ -192,10 +192,10 @@ class SkyDataManagerColumnPickerContext {
192
192
  * https://angular.dev/errors/NG3003
193
193
  */
194
194
  class SkyDataManagerColumnPickerService {
195
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
196
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerService }); }
195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
196
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerService }); }
197
197
  }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{
199
199
  type: Injectable
200
200
  }] });
201
201
 
@@ -368,7 +368,10 @@ class SkyDataManagerService {
368
368
  #ngUnsubscribe;
369
369
  #initSource;
370
370
  #uiConfigService;
371
- constructor(uiConfigService) {
371
+ #logger;
372
+ #incomparableStateCount;
373
+ // eslint-disable-next-line @angular-eslint/prefer-inject -- constructor injection is required to maintain the public API for consumers who may instantiate this service directly (e.g. `new SkyDataManagerService(...)`).
374
+ constructor(uiConfigService, logger) {
372
375
  /**
373
376
  * @internal
374
377
  */
@@ -380,7 +383,9 @@ class SkyDataManagerService {
380
383
  this.#dataSummary = new Subject();
381
384
  this.#ngUnsubscribe = new Subject();
382
385
  this.#initSource = 'dataManagerServiceInit';
386
+ this.#incomparableStateCount = 0;
383
387
  this.#uiConfigService = uiConfigService;
388
+ this.#logger = logger;
384
389
  }
385
390
  ngOnDestroy() {
386
391
  this.#activeViewId.complete();
@@ -509,14 +514,20 @@ class SkyDataManagerService {
509
514
  */
510
515
  getDataStateUpdates(sourceId, updateFilter) {
511
516
  // filter out events from the provided source and emit just the dataState
512
- if (updateFilter) {
513
- return this.#dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
514
- ? distinctUntilChanged(updateFilter.comparator)
515
- : distinctUntilChanged(this.#getDefaultStateComparator(updateFilter.properties)));
517
+ const dataStateUpdates = this.#dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
518
+ if (!updateFilter) {
519
+ return dataStateUpdates;
516
520
  }
517
- else {
518
- return this.#dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
521
+ if (updateFilter.comparator) {
522
+ const comparator = updateFilter.comparator;
523
+ // Emit a clone of the state and compare a second, independent clone. Data manager
524
+ // participants may mutate the state instance they were handed in place before
525
+ // republishing it, which would otherwise make distinctUntilChanged's retained
526
+ // "previous" value silently match the new one, dropping a real change.
527
+ return dataStateUpdates.pipe(map((state) => new SkyDataManagerState(state.getStateOptions())), distinctUntilChanged((state1, state2) => this.#compareStatesSafely(comparator, state1, state2), (state) => new SkyDataManagerState(state.getStateOptions())));
519
528
  }
529
+ const properties = updateFilter.properties;
530
+ return dataStateUpdates.pipe(distinctUntilChanged((key1, key2) => key1 === key2, (state) => this.#getStateComparisonKey(state, properties)));
520
531
  }
521
532
  /**
522
533
  * Updates the data state and emits a new value to entities subscribed to data state changes.
@@ -634,19 +645,40 @@ class SkyDataManagerService {
634
645
  }
635
646
  return filteredStateProperties;
636
647
  }
637
- #getDefaultStateComparator(properties) {
638
- return (state1, state2) => {
639
- const filteredState1 = this.#filterDataStateProperties(state1, properties);
640
- const filteredState2 = this.#filterDataStateProperties(state2, properties);
641
- return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
642
- };
648
+ /**
649
+ * Returns a string key representing the given state's filtered properties, for use as a
650
+ * `distinctUntilChanged` key selector. If the filtered properties cannot be serialized (for
651
+ * example, a circular reference), a unique key is returned so the state is treated as changed
652
+ * rather than allowing the comparison to throw and end the subscription.
653
+ */
654
+ #getStateComparisonKey(state, properties) {
655
+ try {
656
+ return JSON.stringify(this.#filterDataStateProperties(state, properties));
657
+ }
658
+ catch (err) {
659
+ this.#logger?.warn('The data manager state could not be serialized for comparison in getDataStateUpdates and will be treated as a change.', [err]);
660
+ return `__skyDataManagerIncomparableState${++this.#incomparableStateCount}`;
661
+ }
662
+ }
663
+ /**
664
+ * Calls the given comparator and returns its result. If the comparator throws, the states are
665
+ * treated as changed rather than allowing the error to end the subscription.
666
+ */
667
+ #compareStatesSafely(comparator, state1, state2) {
668
+ try {
669
+ return comparator(state1, state2);
670
+ }
671
+ catch (err) {
672
+ this.#logger?.warn('The comparator provided to getDataStateUpdates threw an error while comparing data manager state and will be treated as a change.', [err]);
673
+ return false;
674
+ }
643
675
  }
644
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
645
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerService }); }
676
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }, { token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
677
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerService }); }
646
678
  }
647
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerService, decorators: [{
679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerService, decorators: [{
648
680
  type: Injectable
649
- }], ctorParameters: () => [{ type: i1.SkyUIConfigService }] });
681
+ }], ctorParameters: () => [{ type: i1.SkyUIConfigService }, { type: i1.SkyLogService }] });
650
682
 
651
683
  /**
652
684
  * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are
@@ -654,10 +686,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
654
686
  * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.
655
687
  */
656
688
  class SkyDataManagerToolbarLeftItemComponent {
657
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
658
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyDataManagerToolbarLeftItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-left-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
689
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
690
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: SkyDataManagerToolbarLeftItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-left-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
659
691
  }
660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{
692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{
661
693
  type: Component,
662
694
  args: [{ selector: 'sky-data-manager-toolbar-left-item', changeDetection: ChangeDetectionStrategy.Eager, imports: [SkyToolbarModule], template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n" }]
663
695
  }] });
@@ -668,10 +700,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
668
700
  * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.
669
701
  */
670
702
  class SkyDataManagerToolbarPrimaryItemComponent {
671
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
672
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyDataManagerToolbarPrimaryItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-primary-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
703
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
704
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: SkyDataManagerToolbarPrimaryItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-primary-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
673
705
  }
674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{
706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{
675
707
  type: Component,
676
708
  args: [{ selector: 'sky-data-manager-toolbar-primary-item', changeDetection: ChangeDetectionStrategy.Eager, imports: [SkyToolbarModule], template: "<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n" }]
677
709
  }] });
@@ -683,10 +715,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
683
715
  * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.
684
716
  */
685
717
  class SkyDataManagerToolbarRightItemComponent {
686
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
687
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyDataManagerToolbarRightItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-right-item", ngImport: i0, template: "<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.Eager }); }
718
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
719
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: SkyDataManagerToolbarRightItemComponent, isStandalone: true, selector: "sky-data-manager-toolbar-right-item", ngImport: i0, template: "<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.Eager }); }
688
720
  }
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{
721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{
690
722
  type: Component,
691
723
  args: [{ selector: 'sky-data-manager-toolbar-right-item', changeDetection: ChangeDetectionStrategy.Eager, template: "<ng-content />\n" }]
692
724
  }] });
@@ -697,10 +729,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
697
729
  * toolbar (if present).
698
730
  */
699
731
  class SkyDataManagerToolbarSectionComponent {
700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
701
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyDataManagerToolbarSectionComponent, isStandalone: true, selector: "sky-data-manager-toolbar-section", ngImport: i0, template: "<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
732
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
733
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: SkyDataManagerToolbarSectionComponent, isStandalone: true, selector: "sky-data-manager-toolbar-section", ngImport: i0, template: "<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n", dependencies: [{ kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
702
734
  }
703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{
735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{
704
736
  type: Component,
705
737
  args: [{ selector: 'sky-data-manager-toolbar-section', changeDetection: ChangeDetectionStrategy.Eager, imports: [SkyToolbarModule], template: "<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n" }]
706
738
  }] });
@@ -830,8 +862,9 @@ class SkyDataManagerToolbarComponent {
830
862
  }
831
863
  sortSelected(sortOption) {
832
864
  if (this.dataState) {
833
- this.dataState.activeSortOption = sortOption;
834
- this.#dataManagerService.updateDataState(this.dataState, this.#_source);
865
+ const options = this.dataState.getStateOptions();
866
+ options.activeSortOption = sortOption;
867
+ this.dataState = new SkyDataManagerState(options);
835
868
  }
836
869
  }
837
870
  onViewChange(viewId) {
@@ -839,8 +872,9 @@ class SkyDataManagerToolbarComponent {
839
872
  }
840
873
  searchApplied(text) {
841
874
  if (this.dataState) {
842
- this.dataState.searchText = text;
843
- this.#dataManagerService.updateDataState(this.dataState, this.#_source);
875
+ const options = this.dataState.getStateOptions();
876
+ options.searchText = text;
877
+ this.dataState = new SkyDataManagerState(options);
844
878
  }
845
879
  }
846
880
  filterButtonClicked() {
@@ -864,8 +898,9 @@ class SkyDataManagerToolbarComponent {
864
898
  const modalInstance = this.#modalService.open(filterModal, options);
865
899
  modalInstance.closed.subscribe((result) => {
866
900
  if (this.dataState && result.reason === 'save') {
867
- this.dataState.filterData = result.data;
868
- this.#dataManagerService.updateDataState(this.dataState, this.#_source);
901
+ const options = this.dataState.getStateOptions();
902
+ options.filterData = result.data;
903
+ this.dataState = new SkyDataManagerState(options);
869
904
  }
870
905
  });
871
906
  }
@@ -892,9 +927,10 @@ class SkyDataManagerToolbarComponent {
892
927
  modalInstance.closed.subscribe((result) => {
893
928
  if (result.reason === 'save') {
894
929
  const displayedColumnIds = result.data.map((col) => col.id);
895
- viewState.displayedColumnIds = displayedColumnIds;
930
+ const updatedViewState = new SkyDataViewState(viewState.getViewStateOptions());
931
+ updatedViewState.displayedColumnIds = displayedColumnIds;
896
932
  if (this.dataState && this.activeView) {
897
- this.dataState = this.dataState.addOrUpdateView(this.activeView.id, viewState);
933
+ this.dataState = this.dataState.addOrUpdateView(this.activeView.id, updatedViewState);
898
934
  }
899
935
  }
900
936
  });
@@ -915,14 +951,15 @@ class SkyDataManagerToolbarComponent {
915
951
  }
916
952
  onOnlyShowSelected(event) {
917
953
  if (this.dataState) {
918
- this.dataState.onlyShowSelected = !!event.checked;
919
- this.#dataManagerService.updateDataState(this.dataState, this.#_source);
954
+ const options = this.dataState.getStateOptions();
955
+ options.onlyShowSelected = !!event.checked;
956
+ this.dataState = new SkyDataManagerState(options);
920
957
  }
921
958
  }
922
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
923
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: "sky-data-manager-toolbar", queries: [{ propertyName: "primaryItems", predicate: SkyDataManagerToolbarPrimaryItemComponent, isSignal: true }, { propertyName: "leftItems", predicate: SkyDataManagerToolbarLeftItemComponent, isSignal: true }, { propertyName: "rightItems", predicate: SkyDataManagerToolbarRightItemComponent, isSignal: true }, { propertyName: "sections", predicate: SkyDataManagerToolbarSectionComponent, isSignal: true }], ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n @if (hasToolbarContent) {\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title'\n | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{\n 'skyux_data_manager_columns_button_title' | skyLibResources\n }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n }\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media(min-width:768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "iconName", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyFilterModule }, { kind: "component", type: i2$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "ariaLabel", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "ngmodule", type: SkyRadioModule }, { kind: "component", type: i2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "helpPopoverContent", "helpPopoverTitle", "iconName", "radioType", "labelText", "labelHidden", "hintText", "helpKey"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "headingLevel", "headingStyle", "name", "required", "stacked", "value", "tabIndex", "headingText", "headingHidden", "hintText", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i5.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkySortModule }, { kind: "component", type: i2$1.λ14, selector: "sky-sort", inputs: ["ariaLabel", "showButtonText"] }, { kind: "component", type: i2$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i6.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
960
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: "sky-data-manager-toolbar", queries: [{ propertyName: "primaryItems", predicate: SkyDataManagerToolbarPrimaryItemComponent, isSignal: true }, { propertyName: "leftItems", predicate: SkyDataManagerToolbarLeftItemComponent, isSignal: true }, { propertyName: "rightItems", predicate: SkyDataManagerToolbarRightItemComponent, isSignal: true }, { propertyName: "sections", predicate: SkyDataManagerToolbarSectionComponent, isSignal: true }], ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n @if (hasToolbarContent) {\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title'\n | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{\n 'skyux_data_manager_columns_button_title' | skyLibResources\n }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n }\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media(min-width:768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "iconName", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyFilterModule }, { kind: "component", type: i2$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "ariaLabel", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "ngmodule", type: SkyRadioModule }, { kind: "component", type: i2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "helpPopoverContent", "helpPopoverTitle", "iconName", "radioType", "labelText", "labelHidden", "hintText", "helpKey"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "headingLevel", "headingStyle", "name", "required", "stacked", "value", "tabIndex", "headingText", "headingHidden", "hintText", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i5.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkySortModule }, { kind: "component", type: i2$1.λ14, selector: "sky-sort", inputs: ["ariaLabel", "showButtonText"] }, { kind: "component", type: i2$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i6.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i6.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i6.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i6.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
924
961
  }
925
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
926
963
  type: Component,
927
964
  args: [{ selector: 'sky-data-manager-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
928
965
  FormsModule,
@@ -1052,10 +1089,10 @@ class SkyDataManagerComponent {
1052
1089
  this.#liveAnnouncer.announce(internationalizedString);
1053
1090
  });
1054
1091
  }
1055
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1056
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyDataManagerComponent, isStandalone: true, selector: "sky-data-manager", inputs: { dock: { classPropertyName: "dock", publicName: "dock", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isInitialized) {\n <div\n #dataManager\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [class]=\"'sky-data-manager ' + dockClass()\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <div class=\"sky-data-manager-toolbar-container\">\n <ng-content select=\"sky-data-manager-toolbar\" />\n </div>\n <div class=\"sky-data-manager-content\">\n <ng-content />\n </div>\n </div>\n}\n", styles: [".sky-data-manager-dock-fill.sky-data-manager{position:absolute;inset:0;display:flex;flex-direction:column}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-toolbar-container{flex-grow:0;display:block}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-content{display:block;flex-grow:1;overflow:auto;position:relative}.sky-data-manager-content{height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: SkyBackToTopModule }, { kind: "directive", type: i6.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i1.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper", "skyViewkeeperOmitShadow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1093
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: SkyDataManagerComponent, isStandalone: true, selector: "sky-data-manager", inputs: { dock: { classPropertyName: "dock", publicName: "dock", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isInitialized) {\n <div\n #dataManager\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [class]=\"'sky-data-manager ' + dockClass()\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <div class=\"sky-data-manager-toolbar-container\">\n <ng-content select=\"sky-data-manager-toolbar\" />\n </div>\n <div class=\"sky-data-manager-content\">\n <ng-content />\n </div>\n </div>\n}\n", styles: [".sky-data-manager-dock-fill.sky-data-manager{position:absolute;inset:0;display:flex;flex-direction:column}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-toolbar-container{flex-grow:0;display:block}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-content{display:block;flex-grow:1;overflow:auto;position:relative}.sky-data-manager-content{height:100%;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: SkyBackToTopModule }, { kind: "directive", type: i6.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i1.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper", "skyViewkeeperOmitShadow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1057
1094
  }
1058
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
1095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
1059
1096
  type: Component,
1060
1097
  args: [{ selector: 'sky-data-manager', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyBackToTopModule, SkyViewkeeperModule], template: "@if (isInitialized) {\n <div\n #dataManager\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [class]=\"'sky-data-manager ' + dockClass()\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <div class=\"sky-data-manager-toolbar-container\">\n <ng-content select=\"sky-data-manager-toolbar\" />\n </div>\n <div class=\"sky-data-manager-content\">\n <ng-content />\n </div>\n </div>\n}\n", styles: [".sky-data-manager-dock-fill.sky-data-manager{position:absolute;inset:0;display:flex;flex-direction:column}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-toolbar-container{flex-grow:0;display:block}.sky-data-manager-dock-fill.sky-data-manager .sky-data-manager-content{display:block;flex-grow:1;overflow:auto;position:relative}.sky-data-manager-content{height:100%;width:100%}\n"] }]
1061
1098
  }], propDecorators: { dock: [{ type: i0.Input, args: [{ isSignal: true, alias: "dock", required: false }] }] } });
@@ -1130,10 +1167,10 @@ class SkyDataViewComponent {
1130
1167
  }
1131
1168
  }
1132
1169
  }
1133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyDataViewComponent, isStandalone: true, selector: "sky-data-view", inputs: { viewId: "viewId" }, host: { properties: { "attr.data-view-id": "this.dataViewId" } }, hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }, { directive: i2$2.SkyTextHighlightDirective }], ngImport: i0, template: "@if (isActive) {\n <ng-content />\n}\n", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: SkyDataViewComponent, isStandalone: true, selector: "sky-data-view", inputs: { viewId: "viewId" }, host: { properties: { "attr.data-view-id": "this.dataViewId" } }, hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }, { directive: i2$2.SkyTextHighlightDirective }], ngImport: i0, template: "@if (isActive) {\n <ng-content />\n}\n", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1135
1172
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataViewComponent, decorators: [{
1173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataViewComponent, decorators: [{
1137
1174
  type: Component,
1138
1175
  args: [{ selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective, SkyTextHighlightDirective], template: "@if (isActive) {\n <ng-content />\n}\n", styles: [":host{display:block}\n"] }]
1139
1176
  }], propDecorators: { viewId: [{
@@ -1279,10 +1316,10 @@ class SkyDataManagerColumnPickerComponent {
1279
1316
  }
1280
1317
  return formattedColumnOptions;
1281
1318
  }
1282
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyDataManagerColumnPickerComponent, isStandalone: true, selector: "sky-data-manager-column-picker", providers: [SkyDataManagerService], ngImport: i0, template: "<sky-modal class=\"sky-data-manager-column-picker\">\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\n"], dependencies: [{ kind: "component", type: SkyDataManagerComponent, selector: "sky-data-manager", inputs: ["dock"] }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "component", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar" }, { kind: "component", type: SkyDataViewComponent, selector: "sky-data-view", inputs: ["viewId"] }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i1$2.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout", "headingHidden"] }, { kind: "component", type: i1$2.λ2, selector: "sky-modal-content" }, { kind: "component", type: i1$2.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i1$2.λ4, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i2$1.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i2$1.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i2$1.λ8, selector: "sky-repeater-item-content" }, { kind: "component", type: i2$1.λ12, selector: "sky-repeater-item-title" }, { kind: "ngmodule", type: SkyStatusIndicatorModule }, { kind: "component", type: i2$2.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1320
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: SkyDataManagerColumnPickerComponent, isStandalone: true, selector: "sky-data-manager-column-picker", providers: [SkyDataManagerService], ngImport: i0, template: "<sky-modal\n class=\"sky-data-manager-column-picker\"\n [headingText]=\"'skyux_data_manager_column_picker_title' | skyLibResources\"\n>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\" selectionMode=\"multiple\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\n"], dependencies: [{ kind: "component", type: SkyDataManagerComponent, selector: "sky-data-manager", inputs: ["dock"] }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "component", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar" }, { kind: "component", type: SkyDataViewComponent, selector: "sky-data-view", inputs: ["viewId"] }, { kind: "ngmodule", type: SkyModalModule }, { kind: "component", type: i1$2.λ5, selector: "sky-modal", inputs: ["formErrors", "headingText", "helpKey", "helpPopoverContent", "helpPopoverTitle", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy", "layout", "headingHidden"] }, { kind: "component", type: i1$2.λ2, selector: "sky-modal-content" }, { kind: "component", type: i1$2.λ3, selector: "sky-modal-footer" }, { kind: "ngmodule", type: SkyRepeaterModule }, { kind: "component", type: i2$1.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode", "selectionMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i2$1.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i2$1.λ8, selector: "sky-repeater-item-content" }, { kind: "component", type: i2$1.λ12, selector: "sky-repeater-item-title" }, { kind: "ngmodule", type: SkyStatusIndicatorModule }, { kind: "component", type: i2$2.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1284
1321
  }
1285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{
1322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{
1286
1323
  type: Component,
1287
1324
  args: [{ selector: 'sky-data-manager-column-picker', providers: [SkyDataManagerService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1288
1325
  SkyDataManagerComponent,
@@ -1292,17 +1329,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
1292
1329
  SkyModalModule,
1293
1330
  SkyRepeaterModule,
1294
1331
  SkyStatusIndicatorModule,
1295
- ], template: "<sky-modal class=\"sky-data-manager-column-picker\">\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\n"] }]
1332
+ ], template: "<sky-modal\n class=\"sky-data-manager-column-picker\"\n [headingText]=\"'skyux_data_manager_column_picker_title' | skyLibResources\"\n>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\" selectionMode=\"multiple\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\n"] }]
1296
1333
  }] });
1297
1334
 
1298
1335
  class SkyDataManagerColumnPickerImplService {
1299
1336
  getComponentType() {
1300
1337
  return SkyDataManagerColumnPickerComponent;
1301
1338
  }
1302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1303
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerImplService }); }
1339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1340
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService }); }
1304
1341
  }
1305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{
1342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{
1306
1343
  type: Injectable
1307
1344
  }] });
1308
1345
 
@@ -1355,12 +1392,19 @@ class SkyDataManagerFilterControllerDirective {
1355
1392
  filtersApplied: !!(filters?.appliedFilters && filters.appliedFilters.length > 0),
1356
1393
  filters,
1357
1394
  };
1358
- this.#currentDataState.filterData = filterData;
1395
+ // Build a new state rather than mutating `#currentDataState` in place. The data manager
1396
+ // service hands the same state instance to every subscriber, so mutating it directly would
1397
+ // corrupt the "previous" value that other subscribers' distinctUntilChanged comparisons rely
1398
+ // on, silently dropping this update for them.
1399
+ const options = this.#currentDataState.getStateOptions();
1400
+ options.filterData = filterData;
1401
+ const newDataState = new SkyDataManagerState(options);
1402
+ this.#currentDataState = newDataState;
1359
1403
  // Update the data manager state
1360
- this.#dataManagerService.updateDataState(this.#currentDataState, this.#sourceId);
1404
+ this.#dataManagerService.updateDataState(newDataState, this.#sourceId);
1361
1405
  }
1362
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerFilterControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1363
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.1", type: SkyDataManagerFilterControllerDirective, isStandalone: true, selector: "[skyDataManagerFilterController]", providers: [
1406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerFilterControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1407
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: SkyDataManagerFilterControllerDirective, isStandalone: true, selector: "[skyDataManagerFilterController]", providers: [
1364
1408
  SkyDataManagerFilterStateService,
1365
1409
  {
1366
1410
  provide: SkyFilterStateService,
@@ -1368,7 +1412,7 @@ class SkyDataManagerFilterControllerDirective {
1368
1412
  },
1369
1413
  ], ngImport: i0 }); }
1370
1414
  }
1371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerFilterControllerDirective, decorators: [{
1415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerFilterControllerDirective, decorators: [{
1372
1416
  type: Directive,
1373
1417
  args: [{
1374
1418
  selector: '[skyDataManagerFilterController]',
@@ -1383,8 +1427,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImpor
1383
1427
  }] });
1384
1428
 
1385
1429
  class SkyDataManagerModule {
1386
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1387
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerModule, imports: [SkyDataManagerComponent,
1430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1431
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerModule, imports: [SkyDataManagerComponent,
1388
1432
  SkyDataManagerFilterControllerDirective,
1389
1433
  SkyDataManagerToolbarComponent,
1390
1434
  SkyDataManagerToolbarLeftItemComponent,
@@ -1399,13 +1443,13 @@ class SkyDataManagerModule {
1399
1443
  SkyDataManagerToolbarRightItemComponent,
1400
1444
  SkyDataManagerToolbarSectionComponent,
1401
1445
  SkyDataViewComponent] }); }
1402
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerModule, providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS], imports: [SkyDataManagerComponent,
1446
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerModule, providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS], imports: [SkyDataManagerComponent,
1403
1447
  SkyDataManagerToolbarComponent,
1404
1448
  SkyDataManagerToolbarLeftItemComponent,
1405
1449
  SkyDataManagerToolbarPrimaryItemComponent,
1406
1450
  SkyDataManagerToolbarSectionComponent] }); }
1407
1451
  }
1408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyDataManagerModule, decorators: [{
1452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyDataManagerModule, decorators: [{
1409
1453
  type: NgModule,
1410
1454
  args: [{
1411
1455
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-data-manager.mjs","sources":["../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filter-context.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filters/data-manager-filter-state.service.ts","../../../../../libs/components/data-manager/src/lib/modules/shared/sky-data-manager-resources.module.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/safe-structured-clone.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-change.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filters/data-manager-filter-controller.directive.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.module.ts","../../../../../libs/components/data-manager/src/skyux-data-manager.ts"],"sourcesContent":["import { SkyDataManagerFilterData } from './models/data-manager-filter-data';\n\n// TODO: In a future breaking change convert this to an interface\n/**\n * Sets the state of the filters.\n */\nexport class SkyDataManagerFilterModalContext {\n /**\n * Sets the state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n}\n","import { Injectable } from '@angular/core';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\ninterface SkyFilterStateChange {\n filterState: SkyFilterState;\n sourceId: string;\n}\n\n/**\n * Concrete implementation of SkyFilterStateService that manages filter state\n * for integration between list components and data managers.\n * @internal\n */\n@Injectable()\nexport class SkyDataManagerFilterStateService implements SkyFilterStateService {\n readonly #filterStateChange = new ReplaySubject<SkyFilterStateChange>(1);\n\n public updateFilterState(data: SkyFilterState, sourceId: string): void {\n const nextState: SkyFilterState = {\n appliedFilters: data.appliedFilters,\n selectedFilterIds: data.selectedFilterIds,\n };\n\n this.#filterStateChange.next({\n filterState: nextState,\n sourceId: sourceId,\n });\n }\n\n public getFilterStateUpdates(sourceId: string): Observable<SkyFilterState> {\n return this.#filterStateChange.pipe(\n filter((c) => c.sourceId !== sourceId),\n map((c) => c.filterState),\n );\n }\n}\n","/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-data-manager' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_data_manager_column_picker_title: {\n message: 'Choose columns to show in the list',\n },\n skyux_data_manager_apply_changes_button_title: { message: 'Apply changes' },\n skyux_data_manager_cancel_button_title: { message: 'Cancel' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Select all {0}',\n },\n skyux_data_manager_select_all_button_title: { message: 'Select all' },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Clear all selected {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Clear all' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Show only selected {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Show only selected items',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choose columns for {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Columns' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Select at least one column.',\n },\n skyux_data_manager_status_update_with_selections: {\n message: '{0} of {1} items meet criteria and {2} selected.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} of {1} items meet criteria.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} of {1} items meet criteria and {2} selected. Only selected items are displayed.',\n },\n },\n 'FR-CA': {\n skyux_data_manager_column_picker_title: {\n message: 'Choisir les colonnes à indiquer dans la liste',\n },\n skyux_data_manager_apply_changes_button_title: {\n message: 'Appliquez les changements',\n },\n skyux_data_manager_cancel_button_title: { message: 'Annuler' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Sélectionner tout {0}',\n },\n skyux_data_manager_select_all_button_title: {\n message: 'Sélectionner tout',\n },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Supprimer tous les éléments sélectionnés {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Effacer tout' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Montrer seulement ce qui est sélectionné {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Montrer seulement les éléments sélectionnés',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choisir les colonnes pour {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Colonnes' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Sélectionnez au moins une colonne.',\n },\n skyux_data_manager_status_update_with_selections: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} de {1} éléments répondent aux critères.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés. Seuls les éléments sélectionnés sont affichés.',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyDataManagerResourcesModule {}\n","/**\n * These options specify the sorting strategy applied to columns when `columnPickerEnabled` is enabled.\n */\nexport enum SkyDataManagerColumnPickerSortStrategy {\n /**\n * No sorting is applied to the columns.\n */\n None = 'none',\n /**\n * If `sortEnabled` is set to `true`, then the selected columns are displayed before the unselected columns. Unselected columns are sorted alphabetically.\n * If `sortEnabled` is set to `false`, then the columns are displayed in the order specified by `columnOptions`.\n */\n SelectedThenAlphabetical = 'selectedThenAlphabetical',\n}\n","import { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\n\nexport class SkyDataManagerColumnPickerContext {\n constructor(\n public columnOptions: SkyDataManagerColumnPickerOption[],\n public displayedColumnIds: string[],\n public columnPickerSortStrategy: SkyDataManagerColumnPickerSortStrategy = SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical,\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport type { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n/**\n * Service that provides the column picker component type so it can be dynamically\n * created in the toolbar component. This avoids a circular reference between column\n * picker and toolbar.\n * https://angular.dev/errors/NG3003\n */\n@Injectable()\nexport abstract class SkyDataManagerColumnPickerService {\n public abstract getComponentType(): typeof SkyDataManagerColumnPickerComponent;\n}\n","/**\n * @internal\n */\nexport function safeStructuredClone<T>(value: T): T {\n if (value === undefined || value === null) {\n return value;\n }\n\n try {\n // structuredClone may throw if the value is not cloneable.\n return structuredClone(value);\n } catch {\n // Fall back to returning the original reference to avoid unexpected runtime errors.\n return value;\n }\n}\n","import { SkyDataViewColumnWidths } from './data-view-column-widths';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\nimport { safeStructuredClone } from './safe-structured-clone';\n\n/**\n * Provides options for defining how data is displayed, such as which columns appear.\n */\nexport class SkyDataViewState {\n /**\n * The IDs of the columns able to be displayed for column-based views. This property is required when utilizing a grid-based view, a column picker, or both.\n */\n public columnIds: string[] = [];\n\n /**\n * The widths of columns in column-based views for xs and sm+ breakpoints. If using sticky settings, the widths a user sets will be persisted.\n */\n public columnWidths: SkyDataViewColumnWidths = { xs: {}, sm: {} };\n /**\n * The IDs of the columns displayed for column-based views.\n */\n public displayedColumnIds: string[] = [];\n /**\n * The ID of this view.\n */\n public viewId: string;\n /**\n * An untyped property that tracks any view-specific state information\n * that is relevant to a data manager but that existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n\n constructor(data: SkyDataViewStateOptions) {\n this.viewId = data.viewId;\n this.columnIds = data.columnIds || [];\n const widths = data.columnWidths || { xs: {}, sm: {} };\n this.columnWidths = {\n xs: widths.xs ?? {},\n sm: widths.sm ?? {},\n };\n this.displayedColumnIds = data.displayedColumnIds || [];\n this.additionalData = data.additionalData;\n }\n\n /**\n * Returns the `SkyDataViewStateOptions` for the current view.\n * @returns The `SkyDataViewStateOptions`.\n */\n public getViewStateOptions(): SkyDataViewStateOptions {\n return {\n viewId: this.viewId,\n columnIds: [...this.columnIds],\n columnWidths: {\n xs: { ...(this.columnWidths?.xs ?? {}) },\n sm: { ...(this.columnWidths?.sm ?? {}) },\n },\n displayedColumnIds: [...this.displayedColumnIds],\n additionalData:\n this.additionalData !== undefined\n ? safeStructuredClone(this.additionalData)\n : undefined,\n };\n }\n}\n","import { SkyDataManagerFilterData } from './data-manager-filter-data';\nimport { SkyDataManagerSortOption } from './data-manager-sort-option';\nimport { SkyDataManagerStateOptions } from './data-manager-state-options';\nimport { SkyDataViewState } from './data-view-state';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\nimport { safeStructuredClone } from './safe-structured-clone';\n\n/**\n * Provides options that control which data to display.\n */\nexport class SkyDataManagerState {\n /**\n * The selected SkyDataManagerSortOption to apply.\n */\n public activeSortOption: SkyDataManagerSortOption | undefined;\n /**\n * An untyped property that tracks any state information that's relevant to a data\n * manager but that the existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n /**\n * The state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n /**\n * Whether to display only the selected rows or objects. The multiselect toolbar\n * uses this property.\n */\n public onlyShowSelected: boolean | undefined;\n /**\n * The search text to apply.\n */\n public searchText: string | undefined;\n /**\n * The currently selected rows or objects.\n */\n public selectedIds: string[] | undefined;\n /**\n * The states of the individual views.\n */\n public views: SkyDataViewState[] = [];\n\n constructor(data: SkyDataManagerStateOptions) {\n const views =\n data.views && data.views.map((view) => new SkyDataViewState(view));\n\n this.activeSortOption = data.activeSortOption;\n this.additionalData = data.additionalData;\n this.filterData = data.filterData;\n this.onlyShowSelected = data.onlyShowSelected;\n this.selectedIds = data.selectedIds;\n this.searchText = data.searchText;\n this.views = views || [];\n }\n\n /**\n * Returns the `SkyDataManagerStateOptions` for the data manager.\n * @returns The `SkyDataManagerStateOptions` for the data manager.\n */\n public getStateOptions(): SkyDataManagerStateOptions {\n const viewStates: SkyDataViewStateOptions[] = this.views.map((view) => {\n return view.getViewStateOptions();\n });\n\n return {\n activeSortOption: this.activeSortOption\n ? { ...this.activeSortOption }\n : undefined,\n additionalData:\n this.additionalData !== undefined\n ? safeStructuredClone(this.additionalData)\n : undefined,\n filterData: this.filterData\n ? {\n filtersApplied: this.filterData.filtersApplied,\n filters:\n this.filterData.filters !== undefined\n ? safeStructuredClone(this.filterData.filters)\n : undefined,\n }\n : undefined,\n onlyShowSelected: this.onlyShowSelected,\n searchText: this.searchText,\n selectedIds: this.selectedIds ? [...this.selectedIds] : undefined,\n views: viewStates,\n };\n }\n\n /**\n * Returns the `SkyDataViewState` for the specified view.\n * @param viewId The ID for the view.\n * @returns The `SkyDataViewState` for the specified view.\n */\n public getViewStateById(viewId: string): SkyDataViewState | undefined {\n return this.views.find((view) => view.viewId === viewId);\n }\n\n /**\n * Adds a `SkyDataViewState` to a view or updates an existing view.\n * @param viewId The ID for the view.\n * @param view The `SkyDataViewState` option to add or update.\n * @returns The state of the data manager for the specified view.\n */\n public addOrUpdateView(\n viewId: string,\n view: SkyDataViewState,\n ): SkyDataManagerState {\n const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);\n\n const newViews = this.views.slice();\n if (existingViewIndex !== -1) {\n newViews.splice(existingViewIndex, 1, view);\n } else {\n newViews.push(view);\n }\n\n const options = this.getStateOptions();\n options.views = newViews.map((v) => v.getViewStateOptions());\n\n return new SkyDataManagerState(options);\n }\n}\n","import { SkyDataManagerState } from './data-manager-state';\n\n/**\n * @internal\n */\nexport class SkyDataManagerStateChange {\n public dataState: SkyDataManagerState;\n public source: string;\n\n constructor(dataState: SkyDataManagerState, source: string) {\n this.dataState = new SkyDataManagerState(dataState.getStateOptions());\n this.source = source;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n Subject,\n switchMap,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { SkyDataManagerConfig } from './models/data-manager-config';\nimport { SkyDataManagerInitArgs } from './models/data-manager-init-args';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerStateChange } from './models/data-manager-state-change';\nimport { SkyDataManagerStateOptions } from './models/data-manager-state-options';\nimport { SkyDataManagerStateUpdateFilterArgs } from './models/data-manager-state-update-filter-args';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\nimport { SkyDataManagerSummaryChange } from './models/data-manager-summary-change';\nimport { SkyDataViewConfig } from './models/data-view-config';\nimport { SkyDataViewState } from './models/data-view-state';\n\n/**\n * The data manager service provides ways for data views, toolbar items, and more to stay up to date\n * with the active view ID, data manager config, registered views and their configs, and data state.\n * There are methods to get current values, update values, and get subscriptions to the changing values.\n *\n * Provide this service at the component level for each instance of a data manager. Do not\n * provide it at the module level or in `app-extras`. This allows multiple data\n * managers to be used and self-contained.\n */\n@Injectable()\nexport class SkyDataManagerService implements OnDestroy {\n /**\n * @internal\n */\n public viewkeeperClasses = new BehaviorSubject<Record<string, string[]>>({});\n\n readonly #activeViewId = new ReplaySubject<string>(1);\n readonly #dataManagerConfig = new BehaviorSubject<SkyDataManagerConfig>({});\n readonly #views = new BehaviorSubject<SkyDataViewConfig[]>([]);\n readonly #dataStateChange = new ReplaySubject<SkyDataManagerStateChange>(1);\n readonly #dataSummary = new Subject<SkyDataManagerSummaryChange>();\n\n #isInitialized: boolean | undefined;\n #ngUnsubscribe = new Subject<void>();\n #initSource = 'dataManagerServiceInit';\n #uiConfigService: SkyUIConfigService;\n\n constructor(uiConfigService: SkyUIConfigService) {\n this.#uiConfigService = uiConfigService;\n }\n\n public ngOnDestroy(): void {\n this.#activeViewId.complete();\n this.#dataManagerConfig.complete();\n this.#views.complete();\n this.#dataStateChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Initializes the data manager with the given settings and sets `isInitialized` to `true`.\n * This must be called for the data manager to render.\n * @param args The initial active view ID, data manager config, and state to use for the data manager.\n * If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state\n * and saves any state changes to the service.\n */\n public initDataManager(args: SkyDataManagerInitArgs): void {\n if (this.#isInitialized) {\n console.warn('This data manager instance has already been initialized.');\n return;\n }\n\n this.#isInitialized = true;\n\n const defaultDataState = args.defaultDataState;\n const settingsKey = args.settingsKey;\n\n this.updateActiveViewId(args.activeViewId);\n this.updateDataManagerConfig(args.dataManagerConfig);\n\n if (settingsKey) {\n this.#uiConfigService\n .getConfig(settingsKey, defaultDataState.getStateOptions())\n .pipe(take(1))\n .subscribe((config: SkyDataManagerStateOptions) => {\n this.updateDataState(\n new SkyDataManagerState(config),\n this.#initSource,\n );\n });\n } else {\n this.updateDataState(defaultDataState, this.#initSource);\n }\n\n if (settingsKey) {\n this.getDataStateUpdates(this.#initSource)\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n switchMap((state: SkyDataManagerState) =>\n this.#uiConfigService.setConfig(\n settingsKey,\n state.getStateOptions(),\n ),\n ),\n )\n .subscribe({\n error: (err) => {\n console.warn('Could not save data manager settings.');\n console.warn(err);\n },\n });\n }\n }\n\n /**\n * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.\n * @param viewConfig The SkyDataViewConfig settings for the view being registered.\n */\n public initDataView(viewConfig: SkyDataViewConfig): void {\n const currentViews = this.#views.value;\n\n if (this.getViewById(viewConfig.id)) {\n console.warn(\n `A data manager view with the id ${viewConfig.id} has already been initialized.`,\n );\n return;\n }\n\n currentViews.push(viewConfig);\n this.#views.next(currentViews);\n\n // When the initial activeViewId is set there are no views registered. We have to re-emit\n // the activeId so the newly registered view is notified that it is active.\n this.#activeViewId.pipe(take(1)).subscribe((id) => {\n this.#activeViewId.next(id);\n });\n\n this.#dataStateChange\n .pipe(takeUntil(this.#ngUnsubscribe), take(1))\n .subscribe((change) => {\n const dataState = change.dataState;\n const currentViewState = dataState.getViewStateById(viewConfig.id);\n\n if (!currentViewState) {\n const newViewState = new SkyDataViewState({ viewId: viewConfig.id });\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add columns to the `displayedColumnIds` as long as they are not `initialHide`\n if (viewConfig.columnOptions) {\n const columnIds = viewConfig.columnOptions.map((columnOptions) => {\n return columnOptions.id;\n });\n const displayedColumnIds = viewConfig.columnOptions\n .filter((columnOption) => {\n return !columnOption.initialHide;\n })\n .map((columnOption) => {\n return columnOption.id;\n });\n\n newViewState.columnIds = columnIds;\n newViewState.displayedColumnIds = displayedColumnIds;\n }\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n newViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n } else {\n const updatedViewState = new SkyDataViewState(\n currentViewState.getViewStateOptions(),\n );\n\n const currentAvailableColumnIds =\n viewConfig.columnOptions?.map((columnOptions) => {\n return columnOptions.id;\n }) || [];\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.\n // We only add columns to `displayedColumnsIds` if we had previously tracked\n // `columnIds` to avoid breaking changes.\n if (updatedViewState.columnIds.length > 0) {\n let newColumnIds = currentAvailableColumnIds?.filter(\n (id) => updatedViewState.columnIds.indexOf(id) < 0,\n );\n newColumnIds = newColumnIds?.filter((columnId) => {\n return viewConfig.columnOptions?.find(\n (columnOption) =>\n columnOption.id === columnId && !columnOption.initialHide,\n );\n });\n\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n updatedViewState.displayedColumnIds =\n updatedViewState.displayedColumnIds.concat(newColumnIds);\n }\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n updatedViewState.columnIds = currentAvailableColumnIds;\n\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n updatedViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n }\n })\n .unsubscribe();\n }\n\n /**\n * Returns an observable of data state changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the state.\n */\n public getDataStateUpdates(\n sourceId: string,\n updateFilter?: SkyDataManagerStateUpdateFilterArgs,\n ): Observable<SkyDataManagerState> {\n // filter out events from the provided source and emit just the dataState\n if (updateFilter) {\n return this.#dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n updateFilter.comparator\n ? distinctUntilChanged(updateFilter.comparator)\n : distinctUntilChanged(\n this.#getDefaultStateComparator(\n updateFilter.properties as (keyof SkyDataManagerStateOptions)[],\n ),\n ),\n );\n } else {\n return this.#dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n );\n }\n }\n\n /**\n * Updates the data state and emits a new value to entities subscribed to data state changes.\n * @param state The new `SkyDataManagerState` value.\n * @param sourceId The ID of the entity updating the state. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to state changes from `getDataStateUpdates`.\n */\n public updateDataState(state: SkyDataManagerState, sourceId: string): void {\n const newState = new SkyDataManagerState(state.getStateOptions());\n const newStateChange = new SkyDataManagerStateChange(newState, sourceId);\n\n this.#dataStateChange.next(newStateChange);\n }\n\n /**\n * Returns an observable of data summary changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data summary updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the summary.\n */\n public getDataSummaryUpdates(\n sourceId: string,\n ): Observable<SkyDataManagerSummary> {\n return this.#dataSummary.pipe(\n filter((summaryChange) => sourceId !== summaryChange.source),\n map((summaryChange) => summaryChange.dataSummary),\n );\n }\n\n /**\n * Updates the data summary and emits a new value to entities subscribed to data summary changes.\n * @param summary The new `SkyDataManagerSummary` value.\n * @param sourceId The ID of the entity updating the summary. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to summary changes from `getDataSummaryUpdates`.\n */\n public updateDataSummary(\n summary: SkyDataManagerSummary,\n sourceId: string,\n ): void {\n this.#dataSummary.next({ dataSummary: summary, source: sourceId });\n }\n\n /**\n * Returns the current `SkyDataManagerConfig`.\n */\n public getCurrentDataManagerConfig(): SkyDataManagerConfig {\n return this.#dataManagerConfig.value;\n }\n\n /**\n * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.\n */\n public getDataManagerConfigUpdates(): Observable<SkyDataManagerConfig> {\n return this.#dataManagerConfig;\n }\n\n /**\n * Updates the data manager config and emits a new value to entities subscribed to data config changes.\n * @param value The new `SkyDataManagerConfig` value.\n */\n public updateDataManagerConfig(value: SkyDataManagerConfig): void {\n this.#dataManagerConfig.next(value);\n }\n\n /**\n * Returns an observable of data view config changes that views and other data manager entities can subscribe to.\n */\n public getDataViewsUpdates(): Observable<SkyDataViewConfig[]> {\n return this.#views;\n }\n\n /**\n * Returns an observable of the active view ID that views and other data manager entities can subscribe to.\n */\n public getActiveViewIdUpdates(): Observable<string> {\n return this.#activeViewId;\n }\n\n /**\n * Updates the active view ID. The data manager changes the displayed view.\n * @param id The new active view ID.\n */\n public updateActiveViewId(id: string): void {\n this.#activeViewId.next(id);\n }\n\n /**\n * Returns the `SkyDataViewConfig` for the given view ID.\n * @param viewId The ID of the view config to get.\n */\n public getViewById(viewId: string): SkyDataViewConfig | undefined {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const viewConfig: SkyDataViewConfig | undefined = currentViews.find(\n (view) => view.id === viewId,\n );\n\n return viewConfig;\n }\n\n /**\n * Updates the given view config. The registered view with the same ID is updated to the\n * provided config, so include all properties regardless of whether they changed. If the\n * view was not initialized already, no update happens.\n * @param view The new `SkyDataViewConfig` containing all properties.\n */\n public updateViewConfig(view: SkyDataViewConfig): void {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const existingViewIndex = currentViews.findIndex(\n (currentView) => currentView.id === view.id,\n );\n\n if (existingViewIndex === -1) {\n console.error('A view with the id {id} does not exist.', view.id);\n } else {\n currentViews[existingViewIndex] = view;\n this.#views.next(currentViews);\n }\n }\n\n /**\n * @internal\n */\n public setViewkeeperClasses(viewId: string, classes: string[]): void {\n const viewkeeperClasses = this.viewkeeperClasses.value;\n viewkeeperClasses[viewId] = classes;\n\n this.viewkeeperClasses.next(viewkeeperClasses);\n }\n\n #filterDataStateProperties(\n state: SkyDataManagerState,\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): Record<string, unknown> {\n const stateProperties = state.getStateOptions();\n const filteredStateProperties: Record<string, unknown> = {};\n\n if (properties) {\n for (const property of properties) {\n if (property in stateProperties) {\n filteredStateProperties[property] = stateProperties[property];\n }\n }\n }\n\n return filteredStateProperties;\n }\n\n #getDefaultStateComparator(\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): (state1: SkyDataManagerState, state2: SkyDataManagerState) => boolean {\n return (\n state1: SkyDataManagerState,\n state2: SkyDataManagerState,\n ): boolean => {\n const filteredState1 = this.#filterDataStateProperties(\n state1,\n properties,\n );\n const filteredState2 = this.#filterDataStateProperties(\n state2,\n properties,\n );\n return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);\n };\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered after the standard toolbar actions and before the search box. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-left-item',\n templateUrl: './data-manager-toolbar-left-item.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarLeftItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered as the first items in the toolbar and should be standard actions. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-primary-item',\n templateUrl: './data-manager-toolbar-primary-item.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarPrimaryItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in `sky-toolbar-view-actions` on the right side of the toolbar and before the view\n * switcher icons (if present). Each item should be wrapped in its own\n * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-right-item',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './data-manager-toolbar-right-item.component.html',\n})\nexport class SkyDataManagerToolbarRightItemComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for items to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in an additional toolbar row beneath the primary toolbar and above the multiselect\n * toolbar (if present).\n */\n@Component({\n selector: 'sky-data-manager-toolbar-section',\n templateUrl: './data-manager-toolbar-section.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarSectionComponent {}\n","<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n contentChildren,\n inject,\n isStandalone,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport {\n SkyCheckboxChange,\n SkyCheckboxModule,\n SkyRadioModule,\n} from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\nimport {\n SkyModalCloseArgs,\n SkyModalConfigurationInterface,\n SkyModalLegacyService,\n SkyModalService,\n} from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerColumnPickerContext } from '../data-manager-column-picker/data-manager-column-picker-context';\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from '../data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerColumnPickerService } from '../data-manager-column-picker/data-manager-column-picker.service';\nimport { SkyDataManagerFilterModalContext } from '../data-manager-filter-context';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerConfig } from '../models/data-manager-config';\nimport { SkyDataManagerSortOption } from '../models/data-manager-sort-option';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\n\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar-section.component';\n\n/**\n * Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`\n * and the `SkyDataManagerToolbarLeftItemComponent`, `SkyDataManagerToolbarRightItemComponent`,\n * and `SkyDataManagerToolbarSectionComponent` wrappers.\n */\n@Component({\n selector: 'sky-data-manager-toolbar',\n templateUrl: './data-manager-toolbar.component.html',\n styleUrls: ['./data-manager-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n SkyCheckboxModule,\n SkyDataManagerResourcesModule,\n SkyIconModule,\n SkyFilterModule,\n SkyRadioModule,\n SkySearchModule,\n SkySortModule,\n SkyToolbarModule,\n ],\n})\nexport class SkyDataManagerToolbarComponent implements OnDestroy, OnInit {\n public get activeView(): SkyDataViewConfig | undefined {\n return this.#_activeView;\n }\n\n public set activeView(value: SkyDataViewConfig | undefined) {\n this.#_activeView = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataManagerConfig(): SkyDataManagerConfig | undefined {\n return this.#_dataManagerConfig;\n }\n\n public set dataManagerConfig(value: SkyDataManagerConfig | undefined) {\n this.#_dataManagerConfig = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataState(): SkyDataManagerState | undefined {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState | undefined) {\n this.#_dataState = value;\n if (value) {\n this.#dataManagerService.updateDataState(value, this.#_source);\n }\n }\n\n public get views(): SkyDataViewConfig[] {\n return this.#_views;\n }\n\n public set views(value: SkyDataViewConfig[]) {\n this.#_views = value;\n this.#changeDetector.markForCheck();\n }\n\n public onlyShowSelected: boolean | undefined;\n\n protected readonly primaryItems = contentChildren(\n SkyDataManagerToolbarPrimaryItemComponent,\n );\n protected readonly leftItems = contentChildren(\n SkyDataManagerToolbarLeftItemComponent,\n );\n protected readonly rightItems = contentChildren(\n SkyDataManagerToolbarRightItemComponent,\n );\n protected readonly sections = contentChildren(\n SkyDataManagerToolbarSectionComponent,\n );\n\n /**\n * Whether the main toolbar has any content to display. Used to avoid\n * rendering an empty toolbar when the only projected content is a\n * `sky-filter-bar` or `sky-list-summary`, which render outside the toolbar.\n */\n protected get hasToolbarContent(): boolean {\n return (\n !!this.activeView?.filterButtonEnabled ||\n !!this.activeView?.sortEnabled ||\n !!this.activeView?.columnPickerEnabled ||\n !!this.activeView?.searchEnabled ||\n (!!this.activeView && this.views.length > 1) ||\n this.primaryItems().length > 0 ||\n this.leftItems().length > 0 ||\n this.rightItems().length > 0 ||\n this.sections().length > 0\n );\n }\n\n readonly #logger = inject(SkyLogService, { optional: true });\n\n #ngUnsubscribe = new Subject<void>();\n\n // the source to provide for data state changes\n #_source = 'toolbar';\n #_activeView: SkyDataViewConfig | undefined;\n #_dataManagerConfig: SkyDataManagerConfig | undefined;\n #_dataState: SkyDataManagerState | undefined;\n #_views: SkyDataViewConfig[] = [];\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #columnPickerService = inject(SkyDataManagerColumnPickerService);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #modalService = inject(SkyModalService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n /* istanbul ignore else */\n if (activeViewId) {\n this.activeView = this.#dataManagerService.getViewById(activeViewId);\n this.#changeDetector.markForCheck();\n }\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((views) => {\n this.views = views;\n if (this.activeView) {\n this.activeView = this.#dataManagerService.getViewById(\n this.activeView.id,\n );\n }\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataStateUpdates(this.#_source)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#_dataState = dataState;\n this.onlyShowSelected = dataState.onlyShowSelected;\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataManagerConfigUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((config) => {\n this.dataManagerConfig = config;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public sortSelected(sortOption: SkyDataManagerSortOption): void {\n if (this.dataState) {\n this.dataState.activeSortOption = sortOption;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n\n public onViewChange(viewId: string): void {\n this.#dataManagerService.updateActiveViewId(viewId);\n }\n\n public searchApplied(text: string): void {\n if (this.dataState) {\n this.dataState.searchText = text;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n\n public filterButtonClicked(): void {\n const context = new SkyDataManagerFilterModalContext();\n const filterModal =\n this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;\n\n context.filterData = this.dataState?.filterData;\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n { provide: SkyDataManagerFilterModalContext, useValue: context },\n ],\n size: 'large',\n };\n\n if (filterModal) {\n if (\n !(this.#modalService instanceof SkyModalLegacyService) &&\n !isStandalone(filterModal)\n ) {\n this.#logger?.deprecated(\n 'SkyDataManagerConfig.filterModalComponent not standalone',\n {\n deprecationMajorVersion: 9,\n replacementRecommendation: `The SkyDataManagerConfig.filterModalComponent must be a standalone component in order to receive the right dependency injector context.`,\n },\n );\n }\n const modalInstance = this.#modalService.open(filterModal, options);\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (this.dataState && result.reason === 'save') {\n this.dataState.filterData = result.data;\n this.#dataManagerService.updateDataState(\n this.dataState,\n this.#_source,\n );\n }\n });\n }\n }\n\n public openColumnPicker(): void {\n if (this.dataState && this.activeView && this.activeView.columnOptions) {\n const viewState = this.dataState.getViewStateById(this.activeView.id);\n if (viewState) {\n const context = new SkyDataManagerColumnPickerContext(\n this.activeView.columnOptions,\n viewState.displayedColumnIds,\n );\n\n if (this.activeView.columnPickerSortStrategy) {\n context.columnPickerSortStrategy =\n this.activeView.columnPickerSortStrategy;\n }\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS,\n {\n provide: SkyDataManagerColumnPickerContext,\n useValue: context,\n },\n ],\n };\n\n const modalInstance = this.#modalService.open(\n this.#columnPickerService.getComponentType(),\n options,\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save') {\n const displayedColumnIds = result.data.map(\n (col: SkyDataManagerColumnPickerOption) => col.id,\n );\n\n viewState.displayedColumnIds = displayedColumnIds;\n if (this.dataState && this.activeView) {\n this.dataState = this.dataState.addOrUpdateView(\n this.activeView.id,\n viewState,\n );\n }\n }\n });\n }\n }\n }\n\n public selectAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onSelectAllClick) {\n this.activeView.onSelectAllClick();\n }\n }\n\n public clearAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onClearAllClick) {\n this.activeView.onClearAllClick();\n }\n }\n\n public onOnlyShowSelected(event: SkyCheckboxChange): void {\n if (this.dataState) {\n this.dataState.onlyShowSelected = !!event.checked;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n}\n","<div class=\"sky-data-manager-toolbar\">\n @if (hasToolbarContent) {\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title'\n | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{\n 'skyux_data_manager_columns_button_title' | skyLibResources\n }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n }\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyBackToTopMessage,\n SkyBackToTopMessageType,\n SkyBackToTopModule,\n} from '@skyux/layout';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\nimport { SkyDataManagerDockType } from './types/data-manager-dock-type';\n\nconst VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];\nconst DEFAULT_DOCK_TYPE: SkyDataManagerDockType = 'none';\n\n/**\n * The top-level data manager component. Provide `SkyDataManagerService` at this level.\n */\n@Component({\n selector: 'sky-data-manager',\n templateUrl: './data-manager.component.html',\n styleUrl: './data-manager.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyBackToTopModule, SkyViewkeeperModule],\n})\nexport class SkyDataManagerComponent implements OnDestroy, OnInit {\n public get currentViewkeeperClasses(): string[] {\n return this.#_currentViewkeeperClasses;\n }\n\n public set currentViewkeeperClasses(value: string[] | undefined) {\n this.#_currentViewkeeperClasses = [\n ...VIEWKEEPER_CLASSES_DEFAULT,\n ...(value || []),\n ];\n this.#changeDetection.markForCheck();\n }\n\n public get isInitialized(): boolean {\n return this.#_isInitialized;\n }\n\n public set isInitialized(value: boolean) {\n this.#_isInitialized = value;\n this.#changeDetection.markForCheck();\n }\n\n /**\n * How the data manager docks to the page. Use `fill` to dock the data manager\n * to the container's size where the container is a `sky-page` component with\n * its `layout` set to `fit`, or where the container is another element with\n * a `relative` or `absolute` position and a fixed size.\n * `sky-data-manager-toolbar` will be docked to the top of all other content.\n * @default \"none\"\n */\n public readonly dock = input<SkyDataManagerDockType>(DEFAULT_DOCK_TYPE);\n\n protected readonly dockClass = computed(() => {\n return 'sky-data-manager-dock-' + (this.dock() || DEFAULT_DOCK_TYPE);\n });\n\n public backToTopController = new Subject<SkyBackToTopMessage>();\n\n public backToTopOptions = {\n buttonHidden: true,\n };\n\n #activeViewId: string | undefined;\n #allViewkeeperClasses: Record<string, string[]> = {};\n #ngUnsubscribe = new Subject<void>();\n #sourceId = 'dataManagerComponent';\n #dataState: SkyDataManagerState | undefined;\n\n #_isInitialized = false;\n #_currentViewkeeperClasses = VIEWKEEPER_CLASSES_DEFAULT;\n\n readonly #changeDetection = inject(ChangeDetectorRef);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #liveAnnouncer = inject(SkyLiveAnnouncerService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.isInitialized = true;\n this.#dataState = state;\n });\n\n this.#dataManagerService\n .getDataSummaryUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((summary: SkyDataManagerSummary) => {\n const itemsSelected = this.#dataState?.selectedIds?.length || 0;\n const resourceString = `skyux_data_manager_status_update_${\n this.#dataState?.onlyShowSelected\n ? 'only_selected'\n : itemsSelected\n ? 'with_selections'\n : 'without_selections'\n }`;\n\n this.#announceState(\n resourceString,\n summary.itemsMatching,\n summary.totalItems,\n itemsSelected,\n );\n });\n\n this.#dataManagerService.viewkeeperClasses\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((classes) => {\n this.#allViewkeeperClasses = classes;\n this.currentViewkeeperClasses = this.#activeViewId\n ? classes[this.#activeViewId]\n : undefined;\n });\n\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.#activeViewId = activeViewId;\n this.backToTopController.next({\n type: SkyBackToTopMessageType.BackToTop,\n });\n this.currentViewkeeperClasses =\n this.#allViewkeeperClasses[this.#activeViewId];\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #announceState(\n resourceString: string,\n itemsMatching: number,\n totalItems: number,\n itemsSelected: number,\n ): void {\n this.#resourceSvc\n .getString(resourceString, itemsMatching, totalItems, itemsSelected)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncer.announce(internationalizedString);\n });\n }\n}\n","@if (isInitialized) {\n <div\n #dataManager\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [class]=\"'sky-data-manager ' + dockClass()\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <div class=\"sky-data-manager-toolbar-container\">\n <ng-content select=\"sky-data-manager-toolbar\" />\n </div>\n <div class=\"sky-data-manager-content\">\n <ng-content />\n </div>\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyTextHighlightDirective } from '@skyux/indicators';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\n\n/**\n * A data view is rendered within a data manager component.\n * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,\n * search text, and more to the data it displays.\n */\n@Component({\n selector: 'sky-data-view',\n templateUrl: './data-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [SkyResponsiveHostDirective, SkyTextHighlightDirective],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class SkyDataViewComponent implements OnDestroy, OnInit {\n /**\n * The configuration for the view. See the `SkyDataViewConfig` interface.\n * @required\n */\n @Input()\n public viewId: string | undefined;\n\n @HostBinding('attr.data-view-id')\n public get dataViewId(): string | undefined {\n return this.viewId;\n }\n\n public get isActive(): boolean {\n return this.#_isActive;\n }\n\n public set isActive(value: boolean) {\n this.#_isActive = value;\n this.#changeDetector.markForCheck();\n }\n\n public get textHighlight(): string | undefined {\n return this.#_textHighlight;\n }\n\n public set textHighlight(value: string | undefined) {\n this.#_textHighlight = value;\n this.#textHighlight.skyHighlight = value;\n this.#changeDetector.markForCheck();\n }\n\n #_isActive = false;\n #_textHighlight: string | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n #currentState: SkyDataManagerState | undefined;\n\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n #textHighlight: SkyTextHighlightDirective = inject(\n SkyTextHighlightDirective,\n { self: true },\n );\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.isActive = this.viewId === activeViewId;\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateSearchHighlight(this.#currentState);\n });\n\n /* istanbul ignore else */\n if (this.viewId) {\n this.#dataManagerService\n .getDataStateUpdates(this.viewId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state: SkyDataManagerState) => {\n this.#currentState = state;\n this.#updateSearchHighlight(state);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #updateSearchHighlight(state?: SkyDataManagerState): void {\n if (this.viewId) {\n const view = this.#dataManagerService.getViewById(this.viewId);\n\n if (view?.searchHighlightEnabled) {\n this.textHighlight = state?.searchText;\n } else if (this.textHighlight) {\n this.textHighlight = undefined;\n }\n }\n }\n}\n","@if (isActive) {\n <ng-content />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyModalInstance, SkyModalModule } from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerToolbarComponent } from '../data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from '../data-manager.component';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataViewComponent } from '../data-view.component';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\n\nimport { SkyDataManagerColumnPickerContext } from './data-manager-column-picker-context';\n\n/**\n * @internal\n */\ninterface Column extends SkyDataManagerColumnPickerOption {\n isSelected: boolean;\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-data-manager-column-picker',\n templateUrl: './data-manager-column-picker.component.html',\n styleUrls: ['./data-manager-column-picker.component.scss'],\n providers: [SkyDataManagerService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerResourcesModule,\n SkyDataManagerToolbarComponent,\n SkyDataViewComponent,\n SkyModalModule,\n SkyRepeaterModule,\n SkyStatusIndicatorModule,\n ],\n})\nexport class SkyDataManagerColumnPickerComponent implements OnDestroy, OnInit {\n public get dataState(): SkyDataManagerState {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState) {\n this.#_dataState = value;\n this.updateData();\n }\n\n public columnData: Column[] = [];\n public displayedColumnData: Column[] = [];\n public viewConfig: SkyDataViewConfig = {\n id: 'columnPicker',\n name: 'Column Picker',\n searchEnabled: true,\n searchExpandMode: 'fit',\n multiselectToolbarEnabled: true,\n onSelectAllClick: this.selectAll.bind(this),\n onClearAllClick: this.clearAll.bind(this),\n };\n\n public isAnyDisplayedColumnSelected = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_dataState = new SkyDataManagerState({});\n\n public readonly context = inject(SkyDataManagerColumnPickerContext);\n protected readonly dataManagerService = inject(SkyDataManagerService);\n protected readonly instance = inject(SkyModalInstance);\n\n public ngOnInit(): void {\n this.dataManagerService.initDataManager({\n activeViewId: this.viewConfig.id,\n dataManagerConfig: {},\n defaultDataState: this.dataState,\n });\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.columnData = this.#formatColumnOptions();\n\n this.dataManagerService\n .getDataStateUpdates('columnPicker')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.dataState = state;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public updateData(): void {\n this.displayedColumnData = this.searchColumns(\n this.columnData.filter((col) => !col.alwaysDisplayed),\n );\n\n if (this.dataState.onlyShowSelected) {\n this.displayedColumnData = this.displayedColumnData.filter(\n (col) => col.isSelected,\n );\n }\n\n this.isAnyDisplayedColumnSelected = this.displayedColumnData.some(\n (col) => col.isSelected,\n );\n }\n\n public searchColumns(columns: Column[]): Column[] {\n let searchedColumns = columns;\n const searchText =\n this.dataState && this.dataState.searchText?.toUpperCase();\n\n if (searchText) {\n searchedColumns = columns.filter((item) => {\n for (const property in item) {\n if (\n Object.prototype.hasOwnProperty.call(item, property) &&\n (property === 'label' || property === 'description')\n ) {\n const propertyText = item[property]?.toUpperCase();\n if (propertyText && propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n return searchedColumns;\n }\n\n public selectAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = true));\n this.updateData();\n }\n\n public clearAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = false));\n this.updateData();\n }\n\n public onIsSelectedChange(): void {\n this.updateData();\n }\n\n public cancelChanges(): void {\n this.instance.cancel();\n }\n\n public isSelected(id: string): boolean {\n return (\n this.context.displayedColumnIds.findIndex((colId) => colId === id) !== -1\n );\n }\n\n public applyChanges(): void {\n this.instance.save(\n this.columnData.filter((col) => col.isSelected || col.alwaysDisplayed),\n );\n }\n\n #formatColumnOptions(): Column[] {\n const allColumnOptions = this.context.columnOptions;\n const visibleColumnIds = this.context.displayedColumnIds;\n let formattedColumnOptions: Column[] = [];\n const unselectedColumnOptions: Column[] = [];\n\n for (const columnOption of allColumnOptions) {\n // format the column with the properties the column picker needs\n const colIndex = visibleColumnIds.indexOf(columnOption.id);\n const formattedColumn: Column = {\n alwaysDisplayed: columnOption.alwaysDisplayed,\n id: columnOption.id,\n label: columnOption.label,\n description: columnOption.description,\n isSelected: colIndex !== -1,\n };\n\n // if column picker sorting is currently enabled sort columns by order displayed then alphabetical\n // else display column in order they were specified in the columnOptions\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n if (formattedColumn.isSelected) {\n formattedColumnOptions[colIndex] = formattedColumn;\n } else {\n unselectedColumnOptions.push(formattedColumn);\n }\n } else {\n formattedColumnOptions.push(formattedColumn);\n }\n }\n\n // if column picker sorting is enabled, sort the columns that are not currently displayed\n // and add them after the currently displayed options\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n unselectedColumnOptions.sort((col1, col2) =>\n col1.label.localeCompare(col2.label),\n );\n formattedColumnOptions = formattedColumnOptions.concat(\n unselectedColumnOptions,\n );\n }\n\n return formattedColumnOptions;\n }\n}\n","<sky-modal class=\"sky-data-manager-column-picker\">\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n","import { Injectable } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n@Injectable()\nexport class SkyDataManagerColumnPickerImplService {\n public getComponentType(): typeof SkyDataManagerColumnPickerComponent {\n return SkyDataManagerColumnPickerComponent;\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerImplService } from './data-manager-column-picker-impl.service';\nimport { SkyDataManagerColumnPickerService } from './data-manager-column-picker.service';\n\nexport const SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS: Provider[] = [\n {\n provide: SkyDataManagerColumnPickerService,\n useClass: SkyDataManagerColumnPickerImplService,\n },\n];\n","import { DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerState } from '../models/data-manager-state';\n\nimport { SkyDataManagerFilterStateService } from './data-manager-filter-state.service';\n\n/**\n * A directive applied to a filtering component that enables integration with a data manager.\n */\n@Directive({\n selector: '[skyDataManagerFilterController]',\n providers: [\n SkyDataManagerFilterStateService,\n {\n provide: SkyFilterStateService,\n useExisting: SkyDataManagerFilterStateService,\n },\n ],\n})\nexport class SkyDataManagerFilterControllerDirective implements OnInit {\n #currentDataState = new SkyDataManagerState({});\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #adapterService = inject(SkyFilterStateService);\n readonly #destroyRef = inject(DestroyRef);\n readonly #sourceId = 'skyDataManagerFilterController';\n\n public ngOnInit(): void {\n // Subscribe to data manager state changes to update the adapter\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((dataState: SkyDataManagerState) => {\n this.#currentDataState = dataState;\n this.#updateAdapterFromDataState(dataState);\n });\n\n // Subscribe to adapter changes (excluding those this controller originated)\n this.#adapterService\n .getFilterStateUpdates(this.#sourceId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((data: SkyFilterState) => {\n this.#updateDataManagerFromAdapter(data);\n });\n }\n\n /**\n * Updates the adapter's applied filters based on the data manager state.\n */\n #updateAdapterFromDataState(dataState: SkyDataManagerState): void {\n if (dataState.filterData?.filters) {\n this.#adapterService.updateFilterState(\n dataState.filterData.filters,\n this.#sourceId,\n );\n }\n }\n\n /**\n * Updates the data manager state based on adapter changes.\n */\n #updateDataManagerFromAdapter(filters: SkyFilterState | undefined): void {\n const filterData = {\n filtersApplied: !!(\n filters?.appliedFilters && filters.appliedFilters.length > 0\n ),\n filters,\n };\n\n this.#currentDataState.filterData = filterData;\n\n // Update the data manager state\n this.#dataManagerService.updateDataState(\n this.#currentDataState,\n this.#sourceId,\n );\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from './data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerFilterControllerDirective } from './data-manager-filters/data-manager-filter-controller.directive';\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar/data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar/data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar/data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar/data-manager-toolbar-section.component';\nimport { SkyDataManagerToolbarComponent } from './data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from './data-manager.component';\nimport { SkyDataViewComponent } from './data-view.component';\n\n@NgModule({\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerFilterControllerDirective,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n exports: [\n SkyDataManagerComponent,\n SkyDataManagerFilterControllerDirective,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS],\n})\nexport class SkyDataManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-data-manager.mjs","sources":["../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filter-context.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filters/data-manager-filter-state.service.ts","../../../../../libs/components/data-manager/src/lib/modules/shared/sky-data-manager-resources.module.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/safe-structured-clone.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-change.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filters/data-manager-filter-controller.directive.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.module.ts","../../../../../libs/components/data-manager/src/skyux-data-manager.ts"],"sourcesContent":["import { SkyDataManagerFilterData } from './models/data-manager-filter-data';\n\n// TODO: In a future breaking change convert this to an interface\n/**\n * Sets the state of the filters.\n */\nexport class SkyDataManagerFilterModalContext {\n /**\n * Sets the state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n}\n","import { Injectable } from '@angular/core';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\ninterface SkyFilterStateChange {\n filterState: SkyFilterState;\n sourceId: string;\n}\n\n/**\n * Concrete implementation of SkyFilterStateService that manages filter state\n * for integration between list components and data managers.\n * @internal\n */\n@Injectable()\nexport class SkyDataManagerFilterStateService implements SkyFilterStateService {\n readonly #filterStateChange = new ReplaySubject<SkyFilterStateChange>(1);\n\n public updateFilterState(data: SkyFilterState, sourceId: string): void {\n const nextState: SkyFilterState = {\n appliedFilters: data.appliedFilters,\n selectedFilterIds: data.selectedFilterIds,\n };\n\n this.#filterStateChange.next({\n filterState: nextState,\n sourceId: sourceId,\n });\n }\n\n public getFilterStateUpdates(sourceId: string): Observable<SkyFilterState> {\n return this.#filterStateChange.pipe(\n filter((c) => c.sourceId !== sourceId),\n map((c) => c.filterState),\n );\n }\n}\n","/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-data-manager' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_data_manager_column_picker_title: {\n message: 'Choose columns to show in the list',\n },\n skyux_data_manager_apply_changes_button_title: { message: 'Apply changes' },\n skyux_data_manager_cancel_button_title: { message: 'Cancel' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Select all {0}',\n },\n skyux_data_manager_select_all_button_title: { message: 'Select all' },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Clear all selected {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Clear all' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Show only selected {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Show only selected items',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choose columns for {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Columns' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Select at least one column.',\n },\n skyux_data_manager_status_update_with_selections: {\n message: '{0} of {1} items meet criteria and {2} selected.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} of {1} items meet criteria.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} of {1} items meet criteria and {2} selected. Only selected items are displayed.',\n },\n },\n 'FR-CA': {\n skyux_data_manager_column_picker_title: {\n message: 'Choisir les colonnes à indiquer dans la liste',\n },\n skyux_data_manager_apply_changes_button_title: {\n message: 'Appliquez les changements',\n },\n skyux_data_manager_cancel_button_title: { message: 'Annuler' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Sélectionner tout {0}',\n },\n skyux_data_manager_select_all_button_title: {\n message: 'Sélectionner tout',\n },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Supprimer tous les éléments sélectionnés {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Effacer tout' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Montrer seulement ce qui est sélectionné {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Montrer seulement les éléments sélectionnés',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choisir les colonnes pour {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Colonnes' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Sélectionnez au moins une colonne.',\n },\n skyux_data_manager_status_update_with_selections: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} de {1} éléments répondent aux critères.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés. Seuls les éléments sélectionnés sont affichés.',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyDataManagerResourcesModule {}\n","/**\n * These options specify the sorting strategy applied to columns when `columnPickerEnabled` is enabled.\n */\nexport enum SkyDataManagerColumnPickerSortStrategy {\n /**\n * No sorting is applied to the columns.\n */\n None = 'none',\n /**\n * If `sortEnabled` is set to `true`, then the selected columns are displayed before the unselected columns. Unselected columns are sorted alphabetically.\n * If `sortEnabled` is set to `false`, then the columns are displayed in the order specified by `columnOptions`.\n */\n SelectedThenAlphabetical = 'selectedThenAlphabetical',\n}\n","import { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\n\nexport class SkyDataManagerColumnPickerContext {\n constructor(\n public columnOptions: SkyDataManagerColumnPickerOption[],\n public displayedColumnIds: string[],\n public columnPickerSortStrategy: SkyDataManagerColumnPickerSortStrategy = SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical,\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport type { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n/**\n * Service that provides the column picker component type so it can be dynamically\n * created in the toolbar component. This avoids a circular reference between column\n * picker and toolbar.\n * https://angular.dev/errors/NG3003\n */\n@Injectable()\nexport abstract class SkyDataManagerColumnPickerService {\n public abstract getComponentType(): typeof SkyDataManagerColumnPickerComponent;\n}\n","/**\n * @internal\n */\nexport function safeStructuredClone<T>(value: T): T {\n if (value === undefined || value === null) {\n return value;\n }\n\n try {\n // structuredClone may throw if the value is not cloneable.\n return structuredClone(value);\n } catch {\n // Fall back to returning the original reference to avoid unexpected runtime errors.\n return value;\n }\n}\n","import { SkyDataViewColumnWidths } from './data-view-column-widths';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\nimport { safeStructuredClone } from './safe-structured-clone';\n\n/**\n * Provides options for defining how data is displayed, such as which columns appear.\n */\nexport class SkyDataViewState {\n /**\n * The IDs of the columns able to be displayed for column-based views. This property is required when utilizing a grid-based view, a column picker, or both.\n */\n public columnIds: string[] = [];\n\n /**\n * The widths of columns in column-based views for xs and sm+ breakpoints. If using sticky settings, the widths a user sets will be persisted.\n */\n public columnWidths: SkyDataViewColumnWidths = { xs: {}, sm: {} };\n /**\n * The IDs of the columns displayed for column-based views.\n */\n public displayedColumnIds: string[] = [];\n /**\n * The ID of this view.\n */\n public viewId: string;\n /**\n * An untyped property that tracks any view-specific state information\n * that is relevant to a data manager but that existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n\n constructor(data: SkyDataViewStateOptions) {\n this.viewId = data.viewId;\n this.columnIds = data.columnIds || [];\n const widths = data.columnWidths || { xs: {}, sm: {} };\n this.columnWidths = {\n xs: widths.xs ?? {},\n sm: widths.sm ?? {},\n };\n this.displayedColumnIds = data.displayedColumnIds || [];\n this.additionalData = data.additionalData;\n }\n\n /**\n * Returns the `SkyDataViewStateOptions` for the current view.\n * @returns The `SkyDataViewStateOptions`.\n */\n public getViewStateOptions(): SkyDataViewStateOptions {\n return {\n viewId: this.viewId,\n columnIds: [...this.columnIds],\n columnWidths: {\n xs: { ...(this.columnWidths?.xs ?? {}) },\n sm: { ...(this.columnWidths?.sm ?? {}) },\n },\n displayedColumnIds: [...this.displayedColumnIds],\n additionalData:\n this.additionalData !== undefined\n ? safeStructuredClone(this.additionalData)\n : undefined,\n };\n }\n}\n","import { SkyDataManagerFilterData } from './data-manager-filter-data';\nimport { SkyDataManagerSortOption } from './data-manager-sort-option';\nimport { SkyDataManagerStateOptions } from './data-manager-state-options';\nimport { SkyDataViewState } from './data-view-state';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\nimport { safeStructuredClone } from './safe-structured-clone';\n\n/**\n * Provides options that control which data to display.\n */\nexport class SkyDataManagerState {\n /**\n * The selected SkyDataManagerSortOption to apply.\n */\n public activeSortOption: SkyDataManagerSortOption | undefined;\n /**\n * An untyped property that tracks any state information that's relevant to a data\n * manager but that the existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n /**\n * The state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n /**\n * Whether to display only the selected rows or objects. The multiselect toolbar\n * uses this property.\n */\n public onlyShowSelected: boolean | undefined;\n /**\n * The search text to apply.\n */\n public searchText: string | undefined;\n /**\n * The currently selected rows or objects.\n */\n public selectedIds: string[] | undefined;\n /**\n * The states of the individual views.\n */\n public views: SkyDataViewState[] = [];\n\n constructor(data: SkyDataManagerStateOptions) {\n const views =\n data.views && data.views.map((view) => new SkyDataViewState(view));\n\n this.activeSortOption = data.activeSortOption;\n this.additionalData = data.additionalData;\n this.filterData = data.filterData;\n this.onlyShowSelected = data.onlyShowSelected;\n this.selectedIds = data.selectedIds;\n this.searchText = data.searchText;\n this.views = views || [];\n }\n\n /**\n * Returns the `SkyDataManagerStateOptions` for the data manager.\n * @returns The `SkyDataManagerStateOptions` for the data manager.\n */\n public getStateOptions(): SkyDataManagerStateOptions {\n const viewStates: SkyDataViewStateOptions[] = this.views.map((view) => {\n return view.getViewStateOptions();\n });\n\n return {\n activeSortOption: this.activeSortOption\n ? { ...this.activeSortOption }\n : undefined,\n additionalData:\n this.additionalData !== undefined\n ? safeStructuredClone(this.additionalData)\n : undefined,\n filterData: this.filterData\n ? {\n filtersApplied: this.filterData.filtersApplied,\n filters:\n this.filterData.filters !== undefined\n ? safeStructuredClone(this.filterData.filters)\n : undefined,\n }\n : undefined,\n onlyShowSelected: this.onlyShowSelected,\n searchText: this.searchText,\n selectedIds: this.selectedIds ? [...this.selectedIds] : undefined,\n views: viewStates,\n };\n }\n\n /**\n * Returns the `SkyDataViewState` for the specified view.\n * @param viewId The ID for the view.\n * @returns The `SkyDataViewState` for the specified view.\n */\n public getViewStateById(viewId: string): SkyDataViewState | undefined {\n return this.views.find((view) => view.viewId === viewId);\n }\n\n /**\n * Adds a `SkyDataViewState` to a view or updates an existing view.\n * @param viewId The ID for the view.\n * @param view The `SkyDataViewState` option to add or update.\n * @returns The state of the data manager for the specified view.\n */\n public addOrUpdateView(\n viewId: string,\n view: SkyDataViewState,\n ): SkyDataManagerState {\n const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);\n\n const newViews = this.views.slice();\n if (existingViewIndex !== -1) {\n newViews.splice(existingViewIndex, 1, view);\n } else {\n newViews.push(view);\n }\n\n const options = this.getStateOptions();\n options.views = newViews.map((v) => v.getViewStateOptions());\n\n return new SkyDataManagerState(options);\n }\n}\n","import { SkyDataManagerState } from './data-manager-state';\n\n/**\n * @internal\n */\nexport class SkyDataManagerStateChange {\n public dataState: SkyDataManagerState;\n public source: string;\n\n constructor(dataState: SkyDataManagerState, source: string) {\n this.dataState = new SkyDataManagerState(dataState.getStateOptions());\n this.source = source;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { SkyLogService, SkyUIConfigService } from '@skyux/core';\n\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n Subject,\n switchMap,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { SkyDataManagerConfig } from './models/data-manager-config';\nimport { SkyDataManagerInitArgs } from './models/data-manager-init-args';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerStateChange } from './models/data-manager-state-change';\nimport { SkyDataManagerStateOptions } from './models/data-manager-state-options';\nimport { SkyDataManagerStateUpdateFilterArgs } from './models/data-manager-state-update-filter-args';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\nimport { SkyDataManagerSummaryChange } from './models/data-manager-summary-change';\nimport { SkyDataViewConfig } from './models/data-view-config';\nimport { SkyDataViewState } from './models/data-view-state';\n\n/**\n * The data manager service provides ways for data views, toolbar items, and more to stay up to date\n * with the active view ID, data manager config, registered views and their configs, and data state.\n * There are methods to get current values, update values, and get subscriptions to the changing values.\n *\n * Provide this service at the component level for each instance of a data manager. Do not\n * provide it at the module level or in `app-extras`. This allows multiple data\n * managers to be used and self-contained.\n */\n@Injectable()\nexport class SkyDataManagerService implements OnDestroy {\n /**\n * @internal\n */\n public viewkeeperClasses = new BehaviorSubject<Record<string, string[]>>({});\n\n readonly #activeViewId = new ReplaySubject<string>(1);\n readonly #dataManagerConfig = new BehaviorSubject<SkyDataManagerConfig>({});\n readonly #views = new BehaviorSubject<SkyDataViewConfig[]>([]);\n readonly #dataStateChange = new ReplaySubject<SkyDataManagerStateChange>(1);\n readonly #dataSummary = new Subject<SkyDataManagerSummaryChange>();\n\n #isInitialized: boolean | undefined;\n #ngUnsubscribe = new Subject<void>();\n #initSource = 'dataManagerServiceInit';\n #uiConfigService: SkyUIConfigService;\n #logger: SkyLogService | undefined;\n #incomparableStateCount = 0;\n\n // eslint-disable-next-line @angular-eslint/prefer-inject -- constructor injection is required to maintain the public API for consumers who may instantiate this service directly (e.g. `new SkyDataManagerService(...)`).\n constructor(uiConfigService: SkyUIConfigService, logger?: SkyLogService) {\n this.#uiConfigService = uiConfigService;\n this.#logger = logger;\n }\n\n public ngOnDestroy(): void {\n this.#activeViewId.complete();\n this.#dataManagerConfig.complete();\n this.#views.complete();\n this.#dataStateChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Initializes the data manager with the given settings and sets `isInitialized` to `true`.\n * This must be called for the data manager to render.\n * @param args The initial active view ID, data manager config, and state to use for the data manager.\n * If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state\n * and saves any state changes to the service.\n */\n public initDataManager(args: SkyDataManagerInitArgs): void {\n if (this.#isInitialized) {\n console.warn('This data manager instance has already been initialized.');\n return;\n }\n\n this.#isInitialized = true;\n\n const defaultDataState = args.defaultDataState;\n const settingsKey = args.settingsKey;\n\n this.updateActiveViewId(args.activeViewId);\n this.updateDataManagerConfig(args.dataManagerConfig);\n\n if (settingsKey) {\n this.#uiConfigService\n .getConfig(settingsKey, defaultDataState.getStateOptions())\n .pipe(take(1))\n .subscribe((config: SkyDataManagerStateOptions) => {\n this.updateDataState(\n new SkyDataManagerState(config),\n this.#initSource,\n );\n });\n } else {\n this.updateDataState(defaultDataState, this.#initSource);\n }\n\n if (settingsKey) {\n this.getDataStateUpdates(this.#initSource)\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n switchMap((state: SkyDataManagerState) =>\n this.#uiConfigService.setConfig(\n settingsKey,\n state.getStateOptions(),\n ),\n ),\n )\n .subscribe({\n error: (err) => {\n console.warn('Could not save data manager settings.');\n console.warn(err);\n },\n });\n }\n }\n\n /**\n * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.\n * @param viewConfig The SkyDataViewConfig settings for the view being registered.\n */\n public initDataView(viewConfig: SkyDataViewConfig): void {\n const currentViews = this.#views.value;\n\n if (this.getViewById(viewConfig.id)) {\n console.warn(\n `A data manager view with the id ${viewConfig.id} has already been initialized.`,\n );\n return;\n }\n\n currentViews.push(viewConfig);\n this.#views.next(currentViews);\n\n // When the initial activeViewId is set there are no views registered. We have to re-emit\n // the activeId so the newly registered view is notified that it is active.\n this.#activeViewId.pipe(take(1)).subscribe((id) => {\n this.#activeViewId.next(id);\n });\n\n this.#dataStateChange\n .pipe(takeUntil(this.#ngUnsubscribe), take(1))\n .subscribe((change) => {\n const dataState = change.dataState;\n const currentViewState = dataState.getViewStateById(viewConfig.id);\n\n if (!currentViewState) {\n const newViewState = new SkyDataViewState({ viewId: viewConfig.id });\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add columns to the `displayedColumnIds` as long as they are not `initialHide`\n if (viewConfig.columnOptions) {\n const columnIds = viewConfig.columnOptions.map((columnOptions) => {\n return columnOptions.id;\n });\n const displayedColumnIds = viewConfig.columnOptions\n .filter((columnOption) => {\n return !columnOption.initialHide;\n })\n .map((columnOption) => {\n return columnOption.id;\n });\n\n newViewState.columnIds = columnIds;\n newViewState.displayedColumnIds = displayedColumnIds;\n }\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n newViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n } else {\n const updatedViewState = new SkyDataViewState(\n currentViewState.getViewStateOptions(),\n );\n\n const currentAvailableColumnIds =\n viewConfig.columnOptions?.map((columnOptions) => {\n return columnOptions.id;\n }) || [];\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.\n // We only add columns to `displayedColumnsIds` if we had previously tracked\n // `columnIds` to avoid breaking changes.\n if (updatedViewState.columnIds.length > 0) {\n let newColumnIds = currentAvailableColumnIds?.filter(\n (id) => updatedViewState.columnIds.indexOf(id) < 0,\n );\n newColumnIds = newColumnIds?.filter((columnId) => {\n return viewConfig.columnOptions?.find(\n (columnOption) =>\n columnOption.id === columnId && !columnOption.initialHide,\n );\n });\n\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n updatedViewState.displayedColumnIds =\n updatedViewState.displayedColumnIds.concat(newColumnIds);\n }\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n updatedViewState.columnIds = currentAvailableColumnIds;\n\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n updatedViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n }\n })\n .unsubscribe();\n }\n\n /**\n * Returns an observable of data state changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the state.\n */\n public getDataStateUpdates(\n sourceId: string,\n updateFilter?: SkyDataManagerStateUpdateFilterArgs,\n ): Observable<SkyDataManagerState> {\n // filter out events from the provided source and emit just the dataState\n const dataStateUpdates = this.#dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n );\n\n if (!updateFilter) {\n return dataStateUpdates;\n }\n\n if (updateFilter.comparator) {\n const comparator = updateFilter.comparator;\n\n // Emit a clone of the state and compare a second, independent clone. Data manager\n // participants may mutate the state instance they were handed in place before\n // republishing it, which would otherwise make distinctUntilChanged's retained\n // \"previous\" value silently match the new one, dropping a real change.\n return dataStateUpdates.pipe(\n map((state) => new SkyDataManagerState(state.getStateOptions())),\n distinctUntilChanged<SkyDataManagerState, SkyDataManagerState>(\n (state1, state2) =>\n this.#compareStatesSafely(comparator, state1, state2),\n (state) => new SkyDataManagerState(state.getStateOptions()),\n ),\n );\n }\n\n const properties = updateFilter.properties as\n (keyof SkyDataManagerStateOptions)[] | undefined;\n\n return dataStateUpdates.pipe(\n distinctUntilChanged(\n (key1, key2) => key1 === key2,\n (state) => this.#getStateComparisonKey(state, properties),\n ),\n );\n }\n\n /**\n * Updates the data state and emits a new value to entities subscribed to data state changes.\n * @param state The new `SkyDataManagerState` value.\n * @param sourceId The ID of the entity updating the state. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to state changes from `getDataStateUpdates`.\n */\n public updateDataState(state: SkyDataManagerState, sourceId: string): void {\n const newState = new SkyDataManagerState(state.getStateOptions());\n const newStateChange = new SkyDataManagerStateChange(newState, sourceId);\n\n this.#dataStateChange.next(newStateChange);\n }\n\n /**\n * Returns an observable of data summary changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data summary updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the summary.\n */\n public getDataSummaryUpdates(\n sourceId: string,\n ): Observable<SkyDataManagerSummary> {\n return this.#dataSummary.pipe(\n filter((summaryChange) => sourceId !== summaryChange.source),\n map((summaryChange) => summaryChange.dataSummary),\n );\n }\n\n /**\n * Updates the data summary and emits a new value to entities subscribed to data summary changes.\n * @param summary The new `SkyDataManagerSummary` value.\n * @param sourceId The ID of the entity updating the summary. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to summary changes from `getDataSummaryUpdates`.\n */\n public updateDataSummary(\n summary: SkyDataManagerSummary,\n sourceId: string,\n ): void {\n this.#dataSummary.next({ dataSummary: summary, source: sourceId });\n }\n\n /**\n * Returns the current `SkyDataManagerConfig`.\n */\n public getCurrentDataManagerConfig(): SkyDataManagerConfig {\n return this.#dataManagerConfig.value;\n }\n\n /**\n * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.\n */\n public getDataManagerConfigUpdates(): Observable<SkyDataManagerConfig> {\n return this.#dataManagerConfig;\n }\n\n /**\n * Updates the data manager config and emits a new value to entities subscribed to data config changes.\n * @param value The new `SkyDataManagerConfig` value.\n */\n public updateDataManagerConfig(value: SkyDataManagerConfig): void {\n this.#dataManagerConfig.next(value);\n }\n\n /**\n * Returns an observable of data view config changes that views and other data manager entities can subscribe to.\n */\n public getDataViewsUpdates(): Observable<SkyDataViewConfig[]> {\n return this.#views;\n }\n\n /**\n * Returns an observable of the active view ID that views and other data manager entities can subscribe to.\n */\n public getActiveViewIdUpdates(): Observable<string> {\n return this.#activeViewId;\n }\n\n /**\n * Updates the active view ID. The data manager changes the displayed view.\n * @param id The new active view ID.\n */\n public updateActiveViewId(id: string): void {\n this.#activeViewId.next(id);\n }\n\n /**\n * Returns the `SkyDataViewConfig` for the given view ID.\n * @param viewId The ID of the view config to get.\n */\n public getViewById(viewId: string): SkyDataViewConfig | undefined {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const viewConfig: SkyDataViewConfig | undefined = currentViews.find(\n (view) => view.id === viewId,\n );\n\n return viewConfig;\n }\n\n /**\n * Updates the given view config. The registered view with the same ID is updated to the\n * provided config, so include all properties regardless of whether they changed. If the\n * view was not initialized already, no update happens.\n * @param view The new `SkyDataViewConfig` containing all properties.\n */\n public updateViewConfig(view: SkyDataViewConfig): void {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const existingViewIndex = currentViews.findIndex(\n (currentView) => currentView.id === view.id,\n );\n\n if (existingViewIndex === -1) {\n console.error('A view with the id {id} does not exist.', view.id);\n } else {\n currentViews[existingViewIndex] = view;\n this.#views.next(currentViews);\n }\n }\n\n /**\n * @internal\n */\n public setViewkeeperClasses(viewId: string, classes: string[]): void {\n const viewkeeperClasses = this.viewkeeperClasses.value;\n viewkeeperClasses[viewId] = classes;\n\n this.viewkeeperClasses.next(viewkeeperClasses);\n }\n\n #filterDataStateProperties(\n state: SkyDataManagerState,\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): Record<string, unknown> {\n const stateProperties = state.getStateOptions();\n const filteredStateProperties: Record<string, unknown> = {};\n\n if (properties) {\n for (const property of properties) {\n if (property in stateProperties) {\n filteredStateProperties[property] = stateProperties[property];\n }\n }\n }\n\n return filteredStateProperties;\n }\n\n /**\n * Returns a string key representing the given state's filtered properties, for use as a\n * `distinctUntilChanged` key selector. If the filtered properties cannot be serialized (for\n * example, a circular reference), a unique key is returned so the state is treated as changed\n * rather than allowing the comparison to throw and end the subscription.\n */\n #getStateComparisonKey(\n state: SkyDataManagerState,\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): string {\n try {\n return JSON.stringify(this.#filterDataStateProperties(state, properties));\n } catch (err) {\n this.#logger?.warn(\n 'The data manager state could not be serialized for comparison in getDataStateUpdates and will be treated as a change.',\n [err],\n );\n return `__skyDataManagerIncomparableState${++this.#incomparableStateCount}`;\n }\n }\n\n /**\n * Calls the given comparator and returns its result. If the comparator throws, the states are\n * treated as changed rather than allowing the error to end the subscription.\n */\n #compareStatesSafely(\n comparator: (\n state1: SkyDataManagerState,\n state2: SkyDataManagerState,\n ) => boolean,\n state1: SkyDataManagerState,\n state2: SkyDataManagerState,\n ): boolean {\n try {\n return comparator(state1, state2);\n } catch (err) {\n this.#logger?.warn(\n 'The comparator provided to getDataStateUpdates threw an error while comparing data manager state and will be treated as a change.',\n [err],\n );\n return false;\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered after the standard toolbar actions and before the search box. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-left-item',\n templateUrl: './data-manager-toolbar-left-item.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarLeftItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered as the first items in the toolbar and should be standard actions. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-primary-item',\n templateUrl: './data-manager-toolbar-primary-item.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarPrimaryItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in `sky-toolbar-view-actions` on the right side of the toolbar and before the view\n * switcher icons (if present). Each item should be wrapped in its own\n * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-right-item',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './data-manager-toolbar-right-item.component.html',\n})\nexport class SkyDataManagerToolbarRightItemComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for items to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in an additional toolbar row beneath the primary toolbar and above the multiselect\n * toolbar (if present).\n */\n@Component({\n selector: 'sky-data-manager-toolbar-section',\n templateUrl: './data-manager-toolbar-section.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarSectionComponent {}\n","<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n contentChildren,\n inject,\n isStandalone,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport {\n SkyCheckboxChange,\n SkyCheckboxModule,\n SkyRadioModule,\n} from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\nimport {\n SkyModalCloseArgs,\n SkyModalConfigurationInterface,\n SkyModalLegacyService,\n SkyModalService,\n} from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerColumnPickerContext } from '../data-manager-column-picker/data-manager-column-picker-context';\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from '../data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerColumnPickerService } from '../data-manager-column-picker/data-manager-column-picker.service';\nimport { SkyDataManagerFilterModalContext } from '../data-manager-filter-context';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerConfig } from '../models/data-manager-config';\nimport { SkyDataManagerSortOption } from '../models/data-manager-sort-option';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\nimport { SkyDataViewState } from '../models/data-view-state';\n\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar-section.component';\n\n/**\n * Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`\n * and the `SkyDataManagerToolbarLeftItemComponent`, `SkyDataManagerToolbarRightItemComponent`,\n * and `SkyDataManagerToolbarSectionComponent` wrappers.\n */\n@Component({\n selector: 'sky-data-manager-toolbar',\n templateUrl: './data-manager-toolbar.component.html',\n styleUrls: ['./data-manager-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n SkyCheckboxModule,\n SkyDataManagerResourcesModule,\n SkyIconModule,\n SkyFilterModule,\n SkyRadioModule,\n SkySearchModule,\n SkySortModule,\n SkyToolbarModule,\n ],\n})\nexport class SkyDataManagerToolbarComponent implements OnDestroy, OnInit {\n public get activeView(): SkyDataViewConfig | undefined {\n return this.#_activeView;\n }\n\n public set activeView(value: SkyDataViewConfig | undefined) {\n this.#_activeView = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataManagerConfig(): SkyDataManagerConfig | undefined {\n return this.#_dataManagerConfig;\n }\n\n public set dataManagerConfig(value: SkyDataManagerConfig | undefined) {\n this.#_dataManagerConfig = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataState(): SkyDataManagerState | undefined {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState | undefined) {\n this.#_dataState = value;\n if (value) {\n this.#dataManagerService.updateDataState(value, this.#_source);\n }\n }\n\n public get views(): SkyDataViewConfig[] {\n return this.#_views;\n }\n\n public set views(value: SkyDataViewConfig[]) {\n this.#_views = value;\n this.#changeDetector.markForCheck();\n }\n\n public onlyShowSelected: boolean | undefined;\n\n protected readonly primaryItems = contentChildren(\n SkyDataManagerToolbarPrimaryItemComponent,\n );\n protected readonly leftItems = contentChildren(\n SkyDataManagerToolbarLeftItemComponent,\n );\n protected readonly rightItems = contentChildren(\n SkyDataManagerToolbarRightItemComponent,\n );\n protected readonly sections = contentChildren(\n SkyDataManagerToolbarSectionComponent,\n );\n\n /**\n * Whether the main toolbar has any content to display. Used to avoid\n * rendering an empty toolbar when the only projected content is a\n * `sky-filter-bar` or `sky-list-summary`, which render outside the toolbar.\n */\n protected get hasToolbarContent(): boolean {\n return (\n !!this.activeView?.filterButtonEnabled ||\n !!this.activeView?.sortEnabled ||\n !!this.activeView?.columnPickerEnabled ||\n !!this.activeView?.searchEnabled ||\n (!!this.activeView && this.views.length > 1) ||\n this.primaryItems().length > 0 ||\n this.leftItems().length > 0 ||\n this.rightItems().length > 0 ||\n this.sections().length > 0\n );\n }\n\n readonly #logger = inject(SkyLogService, { optional: true });\n\n #ngUnsubscribe = new Subject<void>();\n\n // the source to provide for data state changes\n #_source = 'toolbar';\n #_activeView: SkyDataViewConfig | undefined;\n #_dataManagerConfig: SkyDataManagerConfig | undefined;\n #_dataState: SkyDataManagerState | undefined;\n #_views: SkyDataViewConfig[] = [];\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #columnPickerService = inject(SkyDataManagerColumnPickerService);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #modalService = inject(SkyModalService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n /* istanbul ignore else */\n if (activeViewId) {\n this.activeView = this.#dataManagerService.getViewById(activeViewId);\n this.#changeDetector.markForCheck();\n }\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((views) => {\n this.views = views;\n if (this.activeView) {\n this.activeView = this.#dataManagerService.getViewById(\n this.activeView.id,\n );\n }\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataStateUpdates(this.#_source)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#_dataState = dataState;\n this.onlyShowSelected = dataState.onlyShowSelected;\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataManagerConfigUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((config) => {\n this.dataManagerConfig = config;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public sortSelected(sortOption: SkyDataManagerSortOption): void {\n if (this.dataState) {\n const options = this.dataState.getStateOptions();\n options.activeSortOption = sortOption;\n this.dataState = new SkyDataManagerState(options);\n }\n }\n\n public onViewChange(viewId: string): void {\n this.#dataManagerService.updateActiveViewId(viewId);\n }\n\n public searchApplied(text: string): void {\n if (this.dataState) {\n const options = this.dataState.getStateOptions();\n options.searchText = text;\n this.dataState = new SkyDataManagerState(options);\n }\n }\n\n public filterButtonClicked(): void {\n const context = new SkyDataManagerFilterModalContext();\n const filterModal =\n this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;\n\n context.filterData = this.dataState?.filterData;\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n { provide: SkyDataManagerFilterModalContext, useValue: context },\n ],\n size: 'large',\n };\n\n if (filterModal) {\n if (\n !(this.#modalService instanceof SkyModalLegacyService) &&\n !isStandalone(filterModal)\n ) {\n this.#logger?.deprecated(\n 'SkyDataManagerConfig.filterModalComponent not standalone',\n {\n deprecationMajorVersion: 9,\n replacementRecommendation: `The SkyDataManagerConfig.filterModalComponent must be a standalone component in order to receive the right dependency injector context.`,\n },\n );\n }\n const modalInstance = this.#modalService.open(filterModal, options);\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (this.dataState && result.reason === 'save') {\n const options = this.dataState.getStateOptions();\n options.filterData = result.data;\n this.dataState = new SkyDataManagerState(options);\n }\n });\n }\n }\n\n public openColumnPicker(): void {\n if (this.dataState && this.activeView && this.activeView.columnOptions) {\n const viewState = this.dataState.getViewStateById(this.activeView.id);\n if (viewState) {\n const context = new SkyDataManagerColumnPickerContext(\n this.activeView.columnOptions,\n viewState.displayedColumnIds,\n );\n\n if (this.activeView.columnPickerSortStrategy) {\n context.columnPickerSortStrategy =\n this.activeView.columnPickerSortStrategy;\n }\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS,\n {\n provide: SkyDataManagerColumnPickerContext,\n useValue: context,\n },\n ],\n };\n\n const modalInstance = this.#modalService.open(\n this.#columnPickerService.getComponentType(),\n options,\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save') {\n const displayedColumnIds = result.data.map(\n (col: SkyDataManagerColumnPickerOption) => col.id,\n );\n\n const updatedViewState = new SkyDataViewState(\n viewState.getViewStateOptions(),\n );\n updatedViewState.displayedColumnIds = displayedColumnIds;\n\n if (this.dataState && this.activeView) {\n this.dataState = this.dataState.addOrUpdateView(\n this.activeView.id,\n updatedViewState,\n );\n }\n }\n });\n }\n }\n }\n\n public selectAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onSelectAllClick) {\n this.activeView.onSelectAllClick();\n }\n }\n\n public clearAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onClearAllClick) {\n this.activeView.onClearAllClick();\n }\n }\n\n public onOnlyShowSelected(event: SkyCheckboxChange): void {\n if (this.dataState) {\n const options = this.dataState.getStateOptions();\n options.onlyShowSelected = !!event.checked;\n this.dataState = new SkyDataManagerState(options);\n }\n }\n}\n","<div class=\"sky-data-manager-toolbar\">\n @if (hasToolbarContent) {\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title'\n | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{\n 'skyux_data_manager_columns_button_title' | skyLibResources\n }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n }\n\n <ng-content select=\"sky-filter-bar\" />\n <ng-content select=\"sky-list-summary\" />\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyBackToTopMessage,\n SkyBackToTopMessageType,\n SkyBackToTopModule,\n} from '@skyux/layout';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\nimport { SkyDataManagerDockType } from './types/data-manager-dock-type';\n\nconst VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];\nconst DEFAULT_DOCK_TYPE: SkyDataManagerDockType = 'none';\n\n/**\n * The top-level data manager component. Provide `SkyDataManagerService` at this level.\n */\n@Component({\n selector: 'sky-data-manager',\n templateUrl: './data-manager.component.html',\n styleUrl: './data-manager.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyBackToTopModule, SkyViewkeeperModule],\n})\nexport class SkyDataManagerComponent implements OnDestroy, OnInit {\n public get currentViewkeeperClasses(): string[] {\n return this.#_currentViewkeeperClasses;\n }\n\n public set currentViewkeeperClasses(value: string[] | undefined) {\n this.#_currentViewkeeperClasses = [\n ...VIEWKEEPER_CLASSES_DEFAULT,\n ...(value || []),\n ];\n this.#changeDetection.markForCheck();\n }\n\n public get isInitialized(): boolean {\n return this.#_isInitialized;\n }\n\n public set isInitialized(value: boolean) {\n this.#_isInitialized = value;\n this.#changeDetection.markForCheck();\n }\n\n /**\n * How the data manager docks to the page. Use `fill` to dock the data manager\n * to the container's size where the container is a `sky-page` component with\n * its `layout` set to `fit`, or where the container is another element with\n * a `relative` or `absolute` position and a fixed size.\n * `sky-data-manager-toolbar` will be docked to the top of all other content.\n * @default \"none\"\n */\n public readonly dock = input<SkyDataManagerDockType>(DEFAULT_DOCK_TYPE);\n\n protected readonly dockClass = computed(() => {\n return 'sky-data-manager-dock-' + (this.dock() || DEFAULT_DOCK_TYPE);\n });\n\n public backToTopController = new Subject<SkyBackToTopMessage>();\n\n public backToTopOptions = {\n buttonHidden: true,\n };\n\n #activeViewId: string | undefined;\n #allViewkeeperClasses: Record<string, string[]> = {};\n #ngUnsubscribe = new Subject<void>();\n #sourceId = 'dataManagerComponent';\n #dataState: SkyDataManagerState | undefined;\n\n #_isInitialized = false;\n #_currentViewkeeperClasses = VIEWKEEPER_CLASSES_DEFAULT;\n\n readonly #changeDetection = inject(ChangeDetectorRef);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #liveAnnouncer = inject(SkyLiveAnnouncerService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.isInitialized = true;\n this.#dataState = state;\n });\n\n this.#dataManagerService\n .getDataSummaryUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((summary: SkyDataManagerSummary) => {\n const itemsSelected = this.#dataState?.selectedIds?.length || 0;\n const resourceString = `skyux_data_manager_status_update_${\n this.#dataState?.onlyShowSelected\n ? 'only_selected'\n : itemsSelected\n ? 'with_selections'\n : 'without_selections'\n }`;\n\n this.#announceState(\n resourceString,\n summary.itemsMatching,\n summary.totalItems,\n itemsSelected,\n );\n });\n\n this.#dataManagerService.viewkeeperClasses\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((classes) => {\n this.#allViewkeeperClasses = classes;\n this.currentViewkeeperClasses = this.#activeViewId\n ? classes[this.#activeViewId]\n : undefined;\n });\n\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.#activeViewId = activeViewId;\n this.backToTopController.next({\n type: SkyBackToTopMessageType.BackToTop,\n });\n this.currentViewkeeperClasses =\n this.#allViewkeeperClasses[this.#activeViewId];\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #announceState(\n resourceString: string,\n itemsMatching: number,\n totalItems: number,\n itemsSelected: number,\n ): void {\n this.#resourceSvc\n .getString(resourceString, itemsMatching, totalItems, itemsSelected)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncer.announce(internationalizedString);\n });\n }\n}\n","@if (isInitialized) {\n <div\n #dataManager\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [class]=\"'sky-data-manager ' + dockClass()\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <div class=\"sky-data-manager-toolbar-container\">\n <ng-content select=\"sky-data-manager-toolbar\" />\n </div>\n <div class=\"sky-data-manager-content\">\n <ng-content />\n </div>\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyTextHighlightDirective } from '@skyux/indicators';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\n\n/**\n * A data view is rendered within a data manager component.\n * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,\n * search text, and more to the data it displays.\n */\n@Component({\n selector: 'sky-data-view',\n templateUrl: './data-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [SkyResponsiveHostDirective, SkyTextHighlightDirective],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class SkyDataViewComponent implements OnDestroy, OnInit {\n /**\n * The configuration for the view. See the `SkyDataViewConfig` interface.\n * @required\n */\n @Input()\n public viewId: string | undefined;\n\n @HostBinding('attr.data-view-id')\n public get dataViewId(): string | undefined {\n return this.viewId;\n }\n\n public get isActive(): boolean {\n return this.#_isActive;\n }\n\n public set isActive(value: boolean) {\n this.#_isActive = value;\n this.#changeDetector.markForCheck();\n }\n\n public get textHighlight(): string | undefined {\n return this.#_textHighlight;\n }\n\n public set textHighlight(value: string | undefined) {\n this.#_textHighlight = value;\n this.#textHighlight.skyHighlight = value;\n this.#changeDetector.markForCheck();\n }\n\n #_isActive = false;\n #_textHighlight: string | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n #currentState: SkyDataManagerState | undefined;\n\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n #textHighlight: SkyTextHighlightDirective = inject(\n SkyTextHighlightDirective,\n { self: true },\n );\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.isActive = this.viewId === activeViewId;\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateSearchHighlight(this.#currentState);\n });\n\n /* istanbul ignore else */\n if (this.viewId) {\n this.#dataManagerService\n .getDataStateUpdates(this.viewId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state: SkyDataManagerState) => {\n this.#currentState = state;\n this.#updateSearchHighlight(state);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #updateSearchHighlight(state?: SkyDataManagerState): void {\n if (this.viewId) {\n const view = this.#dataManagerService.getViewById(this.viewId);\n\n if (view?.searchHighlightEnabled) {\n this.textHighlight = state?.searchText;\n } else if (this.textHighlight) {\n this.textHighlight = undefined;\n }\n }\n }\n}\n","@if (isActive) {\n <ng-content />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyModalInstance, SkyModalModule } from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerToolbarComponent } from '../data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from '../data-manager.component';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataViewComponent } from '../data-view.component';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\n\nimport { SkyDataManagerColumnPickerContext } from './data-manager-column-picker-context';\n\n/**\n * @internal\n */\ninterface Column extends SkyDataManagerColumnPickerOption {\n isSelected: boolean;\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-data-manager-column-picker',\n templateUrl: './data-manager-column-picker.component.html',\n styleUrls: ['./data-manager-column-picker.component.scss'],\n providers: [SkyDataManagerService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerResourcesModule,\n SkyDataManagerToolbarComponent,\n SkyDataViewComponent,\n SkyModalModule,\n SkyRepeaterModule,\n SkyStatusIndicatorModule,\n ],\n})\nexport class SkyDataManagerColumnPickerComponent implements OnDestroy, OnInit {\n public get dataState(): SkyDataManagerState {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState) {\n this.#_dataState = value;\n this.updateData();\n }\n\n public columnData: Column[] = [];\n public displayedColumnData: Column[] = [];\n public viewConfig: SkyDataViewConfig = {\n id: 'columnPicker',\n name: 'Column Picker',\n searchEnabled: true,\n searchExpandMode: 'fit',\n multiselectToolbarEnabled: true,\n onSelectAllClick: this.selectAll.bind(this),\n onClearAllClick: this.clearAll.bind(this),\n };\n\n public isAnyDisplayedColumnSelected = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_dataState = new SkyDataManagerState({});\n\n public readonly context = inject(SkyDataManagerColumnPickerContext);\n protected readonly dataManagerService = inject(SkyDataManagerService);\n protected readonly instance = inject(SkyModalInstance);\n\n public ngOnInit(): void {\n this.dataManagerService.initDataManager({\n activeViewId: this.viewConfig.id,\n dataManagerConfig: {},\n defaultDataState: this.dataState,\n });\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.columnData = this.#formatColumnOptions();\n\n this.dataManagerService\n .getDataStateUpdates('columnPicker')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.dataState = state;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public updateData(): void {\n this.displayedColumnData = this.searchColumns(\n this.columnData.filter((col) => !col.alwaysDisplayed),\n );\n\n if (this.dataState.onlyShowSelected) {\n this.displayedColumnData = this.displayedColumnData.filter(\n (col) => col.isSelected,\n );\n }\n\n this.isAnyDisplayedColumnSelected = this.displayedColumnData.some(\n (col) => col.isSelected,\n );\n }\n\n public searchColumns(columns: Column[]): Column[] {\n let searchedColumns = columns;\n const searchText =\n this.dataState && this.dataState.searchText?.toUpperCase();\n\n if (searchText) {\n searchedColumns = columns.filter((item) => {\n for (const property in item) {\n if (\n Object.prototype.hasOwnProperty.call(item, property) &&\n (property === 'label' || property === 'description')\n ) {\n const propertyText = item[property]?.toUpperCase();\n if (propertyText && propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n return searchedColumns;\n }\n\n public selectAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = true));\n this.updateData();\n }\n\n public clearAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = false));\n this.updateData();\n }\n\n public onIsSelectedChange(): void {\n this.updateData();\n }\n\n public cancelChanges(): void {\n this.instance.cancel();\n }\n\n public isSelected(id: string): boolean {\n return (\n this.context.displayedColumnIds.findIndex((colId) => colId === id) !== -1\n );\n }\n\n public applyChanges(): void {\n this.instance.save(\n this.columnData.filter((col) => col.isSelected || col.alwaysDisplayed),\n );\n }\n\n #formatColumnOptions(): Column[] {\n const allColumnOptions = this.context.columnOptions;\n const visibleColumnIds = this.context.displayedColumnIds;\n let formattedColumnOptions: Column[] = [];\n const unselectedColumnOptions: Column[] = [];\n\n for (const columnOption of allColumnOptions) {\n // format the column with the properties the column picker needs\n const colIndex = visibleColumnIds.indexOf(columnOption.id);\n const formattedColumn: Column = {\n alwaysDisplayed: columnOption.alwaysDisplayed,\n id: columnOption.id,\n label: columnOption.label,\n description: columnOption.description,\n isSelected: colIndex !== -1,\n };\n\n // if column picker sorting is currently enabled sort columns by order displayed then alphabetical\n // else display column in order they were specified in the columnOptions\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n if (formattedColumn.isSelected) {\n formattedColumnOptions[colIndex] = formattedColumn;\n } else {\n unselectedColumnOptions.push(formattedColumn);\n }\n } else {\n formattedColumnOptions.push(formattedColumn);\n }\n }\n\n // if column picker sorting is enabled, sort the columns that are not currently displayed\n // and add them after the currently displayed options\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n unselectedColumnOptions.sort((col1, col2) =>\n col1.label.localeCompare(col2.label),\n );\n formattedColumnOptions = formattedColumnOptions.concat(\n unselectedColumnOptions,\n );\n }\n\n return formattedColumnOptions;\n }\n}\n","<sky-modal\n class=\"sky-data-manager-column-picker\"\n [headingText]=\"'skyux_data_manager_column_picker_title' | skyLibResources\"\n>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\" selectionMode=\"multiple\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n","import { Injectable } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n@Injectable()\nexport class SkyDataManagerColumnPickerImplService {\n public getComponentType(): typeof SkyDataManagerColumnPickerComponent {\n return SkyDataManagerColumnPickerComponent;\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerImplService } from './data-manager-column-picker-impl.service';\nimport { SkyDataManagerColumnPickerService } from './data-manager-column-picker.service';\n\nexport const SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS: Provider[] = [\n {\n provide: SkyDataManagerColumnPickerService,\n useClass: SkyDataManagerColumnPickerImplService,\n },\n];\n","import { DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerState } from '../models/data-manager-state';\n\nimport { SkyDataManagerFilterStateService } from './data-manager-filter-state.service';\n\n/**\n * A directive applied to a filtering component that enables integration with a data manager.\n */\n@Directive({\n selector: '[skyDataManagerFilterController]',\n providers: [\n SkyDataManagerFilterStateService,\n {\n provide: SkyFilterStateService,\n useExisting: SkyDataManagerFilterStateService,\n },\n ],\n})\nexport class SkyDataManagerFilterControllerDirective implements OnInit {\n #currentDataState = new SkyDataManagerState({});\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #adapterService = inject(SkyFilterStateService);\n readonly #destroyRef = inject(DestroyRef);\n readonly #sourceId = 'skyDataManagerFilterController';\n\n public ngOnInit(): void {\n // Subscribe to data manager state changes to update the adapter\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((dataState: SkyDataManagerState) => {\n this.#currentDataState = dataState;\n this.#updateAdapterFromDataState(dataState);\n });\n\n // Subscribe to adapter changes (excluding those this controller originated)\n this.#adapterService\n .getFilterStateUpdates(this.#sourceId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((data: SkyFilterState) => {\n this.#updateDataManagerFromAdapter(data);\n });\n }\n\n /**\n * Updates the adapter's applied filters based on the data manager state.\n */\n #updateAdapterFromDataState(dataState: SkyDataManagerState): void {\n if (dataState.filterData?.filters) {\n this.#adapterService.updateFilterState(\n dataState.filterData.filters,\n this.#sourceId,\n );\n }\n }\n\n /**\n * Updates the data manager state based on adapter changes.\n */\n #updateDataManagerFromAdapter(filters: SkyFilterState | undefined): void {\n const filterData = {\n filtersApplied: !!(\n filters?.appliedFilters && filters.appliedFilters.length > 0\n ),\n filters,\n };\n\n // Build a new state rather than mutating `#currentDataState` in place. The data manager\n // service hands the same state instance to every subscriber, so mutating it directly would\n // corrupt the \"previous\" value that other subscribers' distinctUntilChanged comparisons rely\n // on, silently dropping this update for them.\n const options = this.#currentDataState.getStateOptions();\n options.filterData = filterData;\n\n const newDataState = new SkyDataManagerState(options);\n this.#currentDataState = newDataState;\n\n // Update the data manager state\n this.#dataManagerService.updateDataState(newDataState, this.#sourceId);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from './data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerFilterControllerDirective } from './data-manager-filters/data-manager-filter-controller.directive';\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar/data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar/data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar/data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar/data-manager-toolbar-section.component';\nimport { SkyDataManagerToolbarComponent } from './data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from './data-manager.component';\nimport { SkyDataViewComponent } from './data-view.component';\n\n@NgModule({\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerFilterControllerDirective,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n exports: [\n SkyDataManagerComponent,\n SkyDataManagerFilterControllerDirective,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS],\n})\nexport class SkyDataManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4","i2","i3"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/data-manager",
3
- "version": "15.0.0-alpha.0",
3
+ "version": "15.0.0-alpha.10",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,19 +16,19 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/cdk": "^22.0.1",
20
- "@angular/common": "^22.0.1",
21
- "@angular/core": "^22.0.1",
22
- "@angular/forms": "^22.0.1",
23
- "@skyux/core": "15.0.0-alpha.0",
24
- "@skyux/forms": "15.0.0-alpha.0",
25
- "@skyux/i18n": "15.0.0-alpha.0",
26
- "@skyux/icon": "15.0.0-alpha.0",
27
- "@skyux/indicators": "15.0.0-alpha.0",
28
- "@skyux/layout": "15.0.0-alpha.0",
29
- "@skyux/lists": "15.0.0-alpha.0",
30
- "@skyux/lookup": "15.0.0-alpha.0",
31
- "@skyux/modals": "15.0.0-alpha.0"
19
+ "@angular/cdk": "^22.1.2",
20
+ "@angular/common": "^22.1.2",
21
+ "@angular/core": "^22.1.2",
22
+ "@angular/forms": "^22.1.2",
23
+ "@skyux/core": "15.0.0-alpha.10",
24
+ "@skyux/forms": "15.0.0-alpha.10",
25
+ "@skyux/i18n": "15.0.0-alpha.10",
26
+ "@skyux/icon": "15.0.0-alpha.10",
27
+ "@skyux/indicators": "15.0.0-alpha.10",
28
+ "@skyux/layout": "15.0.0-alpha.10",
29
+ "@skyux/lists": "15.0.0-alpha.10",
30
+ "@skyux/lookup": "15.0.0-alpha.10",
31
+ "@skyux/modals": "15.0.0-alpha.10"
32
32
  },
33
33
  "dependencies": {
34
34
  "tslib": "^2.8.1"
@@ -5,7 +5,7 @@ import { OnDestroy, OnInit } from '@angular/core';
5
5
  import { SkyBackToTopMessage } from '@skyux/layout';
6
6
  import { SkyCheckboxChange } from '@skyux/forms';
7
7
  import * as i1 from '@skyux/core';
8
- import { SkyUIConfigService } from '@skyux/core';
8
+ import { SkyUIConfigService, SkyLogService } from '@skyux/core';
9
9
  import * as i2 from '@skyux/indicators';
10
10
  import { SkyModalInstance } from '@skyux/modals';
11
11
 
@@ -610,7 +610,7 @@ declare class SkyDataManagerService implements OnDestroy {
610
610
  * @internal
611
611
  */
612
612
  viewkeeperClasses: BehaviorSubject<Record<string, string[]>>;
613
- constructor(uiConfigService: SkyUIConfigService);
613
+ constructor(uiConfigService: SkyUIConfigService, logger?: SkyLogService);
614
614
  ngOnDestroy(): void;
615
615
  /**
616
616
  * Initializes the data manager with the given settings and sets `isInitialized` to `true`.