ngssm-ag-grid 15.3.14 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2022/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.mjs +75 -0
  2. package/esm2022/lib/components/ngssm-ag-grid-theme.directive.mjs +29 -0
  3. package/esm2022/lib/components/ngssm-ag-grid.directive.mjs +157 -0
  4. package/esm2022/lib/effects/local-storage.effect.mjs +56 -0
  5. package/esm2022/lib/reducers/grid-states.reducer.mjs +39 -0
  6. package/esm2022/lib/reducers/selected-rows.reducer.mjs +39 -0
  7. package/esm2022/lib/state/ag-grid.state.mjs +23 -0
  8. package/{fesm2020 → fesm2022}/ngssm-ag-grid.mjs +23 -23
  9. package/{fesm2020 → fesm2022}/ngssm-ag-grid.mjs.map +1 -1
  10. package/lib/components/ngssm-ag-grid.directive.d.ts +1 -1
  11. package/package.json +8 -14
  12. package/esm2020/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.mjs +0 -74
  13. package/esm2020/lib/components/ngssm-ag-grid-theme.directive.mjs +0 -28
  14. package/esm2020/lib/components/ngssm-ag-grid.directive.mjs +0 -156
  15. package/esm2020/lib/effects/local-storage.effect.mjs +0 -55
  16. package/esm2020/lib/reducers/grid-states.reducer.mjs +0 -38
  17. package/esm2020/lib/reducers/selected-rows.reducer.mjs +0 -38
  18. package/esm2020/lib/state/ag-grid.state.mjs +0 -23
  19. package/fesm2015/ngssm-ag-grid.mjs +0 -464
  20. package/fesm2015/ngssm-ag-grid.mjs.map +0 -1
  21. /package/{esm2020 → esm2022}/lib/actions/ag-grid-action-type.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/actions/ag-grid.action.mjs +0 -0
  23. /package/{esm2020 → esm2022}/lib/actions/index.mjs +0 -0
  24. /package/{esm2020 → esm2022}/lib/actions/register-ag-grid-state.action.mjs +0 -0
  25. /package/{esm2020 → esm2022}/lib/actions/register-selected-rows.action.mjs +0 -0
  26. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  27. /package/{esm2020 → esm2022}/lib/components/ngssm-actions-cell-renderer/action-config.mjs +0 -0
  28. /package/{esm2020 → esm2022}/lib/components/ngssm-actions-cell-renderer/index.mjs +0 -0
  29. /package/{esm2020 → esm2022}/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer-params.mjs +0 -0
  30. /package/{esm2020 → esm2022}/lib/components/ngssm-ag-grid-config.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/helpers.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/ngssm-ag-grid-options.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/provide-ngssm-ag-grid.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/state/change-origin.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/state/grid-state.mjs +0 -0
  36. /package/{esm2020 → esm2022}/lib/state/index.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/state/selected-rows.mjs +0 -0
  38. /package/{esm2020 → esm2022}/ngssm-ag-grid.mjs +0 -0
  39. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,75 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatTooltipModule } from '@angular/material/tooltip';
6
+ import { BehaviorSubject, isObservable, takeUntil } from 'rxjs';
7
+ import { NgSsmComponent } from 'ngssm-store';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "ngssm-store";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/material/button";
12
+ import * as i4 from "@angular/material/icon";
13
+ import * as i5 from "@angular/material/tooltip";
14
+ class NgssmActionsCellRendererComponent extends NgSsmComponent {
15
+ constructor(store) {
16
+ super(store);
17
+ this._actionButtons$ = new BehaviorSubject([]);
18
+ }
19
+ get actionButtons$() {
20
+ return this._actionButtons$.asObservable();
21
+ }
22
+ agInit(params) {
23
+ this.cellParams = params;
24
+ this.setupActions(params);
25
+ }
26
+ refresh(params) {
27
+ this.cellParams = params;
28
+ this._actionButtons$.getValue().forEach((a) => {
29
+ if (a.actionConfig.isDisabled instanceof Function) {
30
+ a.disabled$.next(a.actionConfig.isDisabled(params));
31
+ }
32
+ if (a.actionConfig.isHidden instanceof Function) {
33
+ a.hidden$.next(a.actionConfig.isHidden(params));
34
+ }
35
+ });
36
+ return true;
37
+ }
38
+ executeAction(action) {
39
+ action.actionConfig.click?.(this.cellParams);
40
+ }
41
+ setupActions(rendererParams) {
42
+ const actionButtons = (rendererParams?.actions ?? []).map((a) => {
43
+ const actionButton = {
44
+ cssClass: a.cssClass,
45
+ color: a.color ?? 'primary',
46
+ disabled$: new BehaviorSubject(false),
47
+ hidden$: new BehaviorSubject(false),
48
+ actionConfig: a,
49
+ tooltip: a.tooltip ?? ''
50
+ };
51
+ if (a.isDisabled instanceof Function) {
52
+ actionButton.disabled$.next(a.isDisabled(rendererParams));
53
+ }
54
+ else if (isObservable(a.isDisabled)) {
55
+ a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));
56
+ }
57
+ if (a.isHidden instanceof Function) {
58
+ actionButton.hidden$.next(a.isHidden(rendererParams));
59
+ }
60
+ else if (isObservable(a.isHidden)) {
61
+ a.isHidden.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.hidden$.next(v));
62
+ }
63
+ return actionButton;
64
+ });
65
+ this._actionButtons$.next(actionButtons);
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmActionsCellRendererComponent, isStandalone: true, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
+ }
70
+ export { NgssmActionsCellRendererComponent };
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'ngssm-actions-cell-renderer', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>" }]
74
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tYWctZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs1RSxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBZ0JwRCxNQVFhLGlDQUFrQyxTQUFRLGNBQWM7SUFLbkUsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUxFLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBTTNFLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFB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SUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBL0RVLGlDQUFpQztrR0FBakMsaUNBQWlDLDhHQ2xDOUMsMGlCQVNNLHlERG9CTSxZQUFZLG9UQUFFLGVBQWUsMkxBQUUsYUFBYSxtTEFBRSxnQkFBZ0I7O1NBSzdELGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQVI3QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHeEQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICcuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci1wYXJhbXMnO1xuaW1wb3J0IHsgQWN0aW9uQ29uZmlnIH0gZnJvbSAnLi9hY3Rpb24tY29uZmlnJztcblxuaW50ZXJmYWNlIEFjdGlvbkJ1dHRvbiB7XG4gIGNzc0NsYXNzOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGRpc2FibGVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBoaWRkZW4kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgYWN0aW9uQ29uZmlnOiBBY3Rpb25Db25maWc7XG5cbiAgdG9vbHRpcDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQWN0aW9uc0NlbGxSZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIE5nU3NtQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uQnV0dG9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkJ1dHRvbltdPihbXSk7XG5cbiAgcHJpdmF0ZSBjZWxsUGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zPGFueSwgYW55PiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbkJ1dHRvbnMkKCk6IE9ic2VydmFibGU8QWN0aW9uQnV0dG9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uQnV0dG9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtczxhbnksIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLmNlbGxQYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5zZXR1cEFjdGlvbnMocGFyYW1zIGFzIGFueSk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXM8YW55LCBhbnk+KTogYm9vbGVhbiB7XG4gICAgdGhpcy5jZWxsUGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuX2FjdGlvbkJ1dHRvbnMkLmdldFZhbHVlKCkuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgaWYgKGEuYWN0aW9uQ29uZmlnLmlzRGlzYWJsZWQgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICBhLmRpc2FibGVkJC5uZXh0KGEuYWN0aW9uQ29uZmlnLmlzRGlzYWJsZWQocGFyYW1zIGFzIGFueSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYS5hY3Rpb25Db25maWcuaXNIaWRkZW4gaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICBhLmhpZGRlbiQubmV4dChhLmFjdGlvbkNvbmZpZy5pc0hpZGRlbihwYXJhbXMgYXMgYW55KSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZUFjdGlvbihhY3Rpb246IEFjdGlvbkJ1dHRvbik6IHZvaWQge1xuICAgIGFjdGlvbi5hY3Rpb25Db25maWcuY2xpY2s/Lih0aGlzLmNlbGxQYXJhbXMgYXMgYW55KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBBY3Rpb25zKHJlbmRlcmVyUGFyYW1zOiBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb25CdXR0b25zOiBBY3Rpb25CdXR0b25bXSA9IChyZW5kZXJlclBhcmFtcz8uYWN0aW9ucyA/PyBbXSkubWFwKChhKSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb25CdXR0b246IEFjdGlvbkJ1dHRvbiA9IHtcbiAgICAgICAgY3NzQ2xhc3M6IGEuY3NzQ2xhc3MsXG4gICAgICAgIGNvbG9yOiBhLmNvbG9yID8/ICdwcmltYXJ5JyxcbiAgICAgICAgZGlzYWJsZWQkOiBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKSxcbiAgICAgICAgaGlkZGVuJDogbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSksXG4gICAgICAgIGFjdGlvbkNvbmZpZzogYSxcbiAgICAgICAgdG9vbHRpcDogYS50b29sdGlwID8/ICcnXG4gICAgICB9O1xuXG4gICAgICBpZiAoYS5pc0Rpc2FibGVkIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgYWN0aW9uQnV0dG9uLmRpc2FibGVkJC5uZXh0KGEuaXNEaXNhYmxlZChyZW5kZXJlclBhcmFtcyBhcyBhbnkpKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKGEuaXNEaXNhYmxlZCkpIHtcbiAgICAgICAgYS5pc0Rpc2FibGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwkKSkuc3Vic2NyaWJlKCh2KSA9PiBhY3Rpb25CdXR0b24uZGlzYWJsZWQkLm5leHQodikpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYS5pc0hpZGRlbiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgIGFjdGlvbkJ1dHRvbi5oaWRkZW4kLm5leHQoYS5pc0hpZGRlbihyZW5kZXJlclBhcmFtcyBhcyBhbnkpKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKGEuaXNIaWRkZW4pKSB7XG4gICAgICAgIGEuaXNIaWRkZW4ucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKS5zdWJzY3JpYmUoKHYpID0+IGFjdGlvbkJ1dHRvbi5oaWRkZW4kLm5leHQodikpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWN0aW9uQnV0dG9uO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYWN0aW9uQnV0dG9ucyQubmV4dChhY3Rpb25CdXR0b25zKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5nc3NtLWFjdGlvbnMtY2VsbFwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGFjdGlvbkJ1dHRvbiBvZiBhY3Rpb25CdXR0b25zJCB8IGFzeW5jOyBsZXQgaW5kZXg9aW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJuZ3NzbS1hY3Rpb25zLWNlbGwtYnV0dG9uXCIgW2NvbG9yXT1cImFjdGlvbkJ1dHRvbi5jb2xvclwiIGlkPVwiYWN0aW9uX3t7aW5kZXh9fVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uLmRpc2FibGVkJCB8IGFzeW5jXCIgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uQnV0dG9uKVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb25CdXR0b24udG9vbHRpcFwiICpuZ0lmPVwiKGFjdGlvbkJ1dHRvbi5oaWRkZW4kIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIFtjbGFzc109XCJhY3Rpb25CdXR0b24uY3NzQ2xhc3NcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19
@@ -0,0 +1,29 @@
1
+ import { Directive, HostBinding, Inject, Optional } from '@angular/core';
2
+ import { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../ngssm-ag-grid-options";
5
+ class NgssmAgGridThemeDirective {
6
+ constructor(options) {
7
+ this.className = '';
8
+ this.className = (options ?? new NgssmAgGridOptions()).theme;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmAgGridThemeDirective, isStandalone: true, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 }); }
12
+ }
13
+ export { NgssmAgGridThemeDirective };
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
15
+ type: Directive,
16
+ args: [{
17
+ selector: '[ngssmAgGridTheme]',
18
+ standalone: true
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.NgssmAgGridOptions, decorators: [{
21
+ type: Inject,
22
+ args: [NGSSM_AG_GRID_OPTIONS]
23
+ }, {
24
+ type: Optional
25
+ }] }]; }, propDecorators: { className: [{
26
+ type: HostBinding,
27
+ args: ['class']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC10aGVtZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLXRoZW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFckYsTUFJYSx5QkFBeUI7SUFHcEMsWUFBdUQsT0FBMkI7UUFGNUQsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUduQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvRCxDQUFDOzhHQUxVLHlCQUF5QixrQkFHaEIscUJBQXFCO2tHQUg5Qix5QkFBeUI7O1NBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBSWMsTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUFHLFFBQVE7NENBRjlCLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdzc21BZ0dyaWRPcHRpb25zLCBOR1NTTV9BR19HUklEX09QVElPTlMgfSBmcm9tICcuLi9uZ3NzbS1hZy1ncmlkLW9wdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdzc21BZ0dyaWRUaGVtZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQWdHcmlkVGhlbWVEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJyc7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChOR1NTTV9BR19HUklEX09QVElPTlMpIEBPcHRpb25hbCgpIG9wdGlvbnM6IE5nc3NtQWdHcmlkT3B0aW9ucykge1xuICAgIHRoaXMuY2xhc3NOYW1lID0gKG9wdGlvbnMgPz8gbmV3IE5nc3NtQWdHcmlkT3B0aW9ucygpKS50aGVtZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,157 @@
1
+ import { Directive, Inject, Input, Optional } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';
3
+ import { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';
4
+ import { ChangeOrigin, selectAgGridState } from '../state';
5
+ import { NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ngssm-store";
8
+ import * as i2 from "ag-grid-angular";
9
+ import * as i3 from "../ngssm-ag-grid-options";
10
+ class NgssmAgGridDirective {
11
+ constructor(store, agGridAngular, options) {
12
+ this.store = store;
13
+ this.agGridAngular = agGridAngular;
14
+ this.unsubsribeAll$ = new Subject();
15
+ this._config$ = new BehaviorSubject({
16
+ gridId: ''
17
+ });
18
+ if (this.agGridAngular.statusBar === undefined) {
19
+ this.agGridAngular.statusBar = options?.statusBar;
20
+ }
21
+ this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {
22
+ combineLatest([
23
+ this.store.state$.pipe(take(1), map((s) => selectAgGridState(s))),
24
+ this._config$
25
+ ])
26
+ .pipe(take(1))
27
+ .subscribe((values) => {
28
+ if (values[0].gridStates[values[1].gridId]) {
29
+ this.agGridAngular.columnApi.applyColumnState({
30
+ state: values[0].gridStates[values[1].gridId].columnsState,
31
+ applyOrder: true
32
+ });
33
+ }
34
+ if (values[0].selectedRows[values[1].gridId]) {
35
+ if (values[1].keepSelection === true) {
36
+ const ids = values[0].selectedRows[values[1].gridId]?.ids ?? [];
37
+ this.agGridAngular.api.forEachNode((node) => {
38
+ if (node.id) {
39
+ node.setSelected(ids.includes(node.id));
40
+ }
41
+ });
42
+ }
43
+ }
44
+ this.initSateChangeListener();
45
+ });
46
+ });
47
+ combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).gridStates)), this._config$])
48
+ .pipe(takeUntil(this.unsubsribeAll$))
49
+ .subscribe((values) => {
50
+ if (values[0][values[1].gridId]?.origin === ChangeOrigin.other) {
51
+ this.agGridAngular.columnApi.applyColumnState({
52
+ state: values[0][values[1].gridId].columnsState,
53
+ applyOrder: true
54
+ });
55
+ }
56
+ });
57
+ combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).selectedRows)), this._config$])
58
+ .pipe(takeUntil(this.unsubsribeAll$))
59
+ .subscribe((values) => {
60
+ if (values[0][values[1].gridId]?.origin === ChangeOrigin.other && values[1].keepSelection === true) {
61
+ const ids = values[0][values[1].gridId]?.ids ?? [];
62
+ this.agGridAngular.api.forEachNode((node) => {
63
+ if (node.id) {
64
+ node.setSelected(ids.includes(node.id));
65
+ }
66
+ });
67
+ }
68
+ });
69
+ this.agGridAngular.getContextMenuItems = (params) => this.getContextMenuItems(params);
70
+ }
71
+ set config(value) {
72
+ if (typeof value === 'string') {
73
+ this._config$.next({
74
+ gridId: value
75
+ });
76
+ }
77
+ else {
78
+ this._config$.next(value);
79
+ }
80
+ }
81
+ ngOnDestroy() {
82
+ this.unsubsribeAll$.next();
83
+ this.unsubsribeAll$.complete();
84
+ }
85
+ initSateChangeListener() {
86
+ this.agGridAngular.sortChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());
87
+ this.agGridAngular.filterChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());
88
+ this.agGridAngular.columnPinned.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());
89
+ this.agGridAngular.columnResized.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());
90
+ this.agGridAngular.displayedColumnsChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());
91
+ this.agGridAngular.rowSelected.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.processSelectionChanged());
92
+ }
93
+ saveGridState() {
94
+ const state = this.agGridAngular.columnApi.getColumnState();
95
+ this._config$
96
+ .pipe(take(1))
97
+ .subscribe((gridId) => this.store.dispatchAction(new RegisterAgGridStateAction(gridId.gridId, ChangeOrigin.agGrid, state)));
98
+ }
99
+ processSelectionChanged() {
100
+ const selectedRows = this.agGridAngular.api
101
+ .getSelectedNodes()
102
+ .map((n) => n.id ?? '')
103
+ .filter((n) => n !== '');
104
+ this._config$.pipe(take(1)).subscribe((config) => {
105
+ if (config.keepSelection === true) {
106
+ this.store.dispatchAction(new RegisterSelectedRowsAction(config.gridId, ChangeOrigin.agGrid, selectedRows));
107
+ }
108
+ });
109
+ }
110
+ getContextMenuItems(params) {
111
+ const menuItems = [...(params.defaultItems ?? [])];
112
+ if (this._config$.getValue().canSaveOnDiskColumnsState === true) {
113
+ menuItems.push(...[
114
+ 'separator',
115
+ {
116
+ name: 'Save columns state',
117
+ action: () => this._config$
118
+ .pipe(take(1))
119
+ .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.saveColumnsStateOnDisk, config.gridId))),
120
+ icon: '<i class="fa-regular fa-floppy-disk"></i>'
121
+ },
122
+ {
123
+ name: 'Restore columns state',
124
+ action: () => this._config$
125
+ .pipe(take(1))
126
+ .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.resetColumnsStateFromDisk, config.gridId))),
127
+ icon: '<i class="fa-solid fa-rotate-right"></i>'
128
+ },
129
+ {
130
+ name: 'Reset columns state to default',
131
+ action: () => this.agGridAngular.columnApi.resetColumnState(),
132
+ icon: '<i class="fa-solid fa-clock-rotate-left"></i>'
133
+ }
134
+ ]);
135
+ }
136
+ return menuItems;
137
+ }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
139
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmAgGridDirective, isStandalone: true, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 }); }
140
+ }
141
+ export { NgssmAgGridDirective };
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
143
+ type: Directive,
144
+ args: [{
145
+ selector: '[ngssmAgGrid]',
146
+ standalone: true
147
+ }]
148
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.AgGridAngular }, { type: i3.NgssmAgGridOptions, decorators: [{
149
+ type: Inject,
150
+ args: [NGSSM_AG_GRID_OPTIONS]
151
+ }, {
152
+ type: Optional
153
+ }] }]; }, propDecorators: { config: [{
154
+ type: Input,
155
+ args: ['ngssmAgGrid']
156
+ }] } });
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU9yRixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0QsT0FBTyxFQUFzQixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUVyRixNQUlhLG9CQUFvQjtJQU0vQixZQUNVLEtBQVksRUFDWixhQUE0QixFQUNPLE9BQTJCO1FBRjlELFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVByQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFvQjtZQUNqRSxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUMsQ0FBQztRQU9ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7U0FDbkQ7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFB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LENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDN0QsSUFBSSxFQUFFLCtDQUErQztpQkFDdEQ7YUFDRixDQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBdEpVLG9CQUFvQixvRUFTckIscUJBQXFCO2tHQVRwQixvQkFBb0I7O1NBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQVVJLE1BQU07MkJBQUMscUJBQXFCOzswQkFBRyxRQUFROzRDQWlFVCxNQUFNO3NCQUF0QyxLQUFLO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBHZXRDb250ZXh0TWVudUl0ZW1zUGFyYW1zLCBNZW51SXRlbURlZiB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFjdGlvbiwgQWdHcmlkQWN0aW9uVHlwZSwgUmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbiwgUmVnaXN0ZXJTZWxlY3RlZFJvd3NBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IENoYW5nZU9yaWdpbiwgc2VsZWN0QWdHcmlkU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBOZ3NzbUFnR3JpZENvbmZpZyB9IGZyb20gJy4vbmdzc20tYWctZ3JpZC1jb25maWcnO1xuaW1wb3J0IHsgTmdzc21BZ0dyaWRPcHRpb25zLCBOR1NTTV9BR19HUklEX09QVElPTlMgfSBmcm9tICcuLi9uZ3NzbS1hZy1ncmlkLW9wdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdzc21BZ0dyaWRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbUFnR3JpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZ3NzbUFnR3JpZENvbmZpZz4oe1xuICAgIGdyaWRJZDogJydcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBhZ0dyaWRBbmd1bGFyOiBBZ0dyaWRBbmd1bGFyLFxuICAgIEBJbmplY3QoTkdTU01fQUdfR1JJRF9PUFRJT05TKSBAT3B0aW9uYWwoKSBvcHRpb25zOiBOZ3NzbUFnR3JpZE9wdGlvbnNcbiAgKSB7XG4gICAgaWYgKHRoaXMuYWdHcmlkQW5ndWxhci5zdGF0dXNCYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLnN0YXR1c0JhciA9IG9wdGlvbnM/LnN0YXR1c0JhcjtcbiAgICB9XG5cbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZ3JpZFJlYWR5LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1hcCgocykgPT4gc2VsZWN0QWdHcmlkU3RhdGUocykpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgIF0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZXNbMF0uZ3JpZFN0YXRlc1t2YWx1ZXNbMV0uZ3JpZElkXSkge1xuICAgICAgICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgICAgICAgc3RhdGU6IHZhbHVlc1swXS5ncmlkU3RhdGVzW3ZhbHVlc1sxXS5ncmlkSWRdLmNvbHVtbnNTdGF0ZSxcbiAgICAgICAgICAgICAgYXBwbHlPcmRlcjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbHVlc1swXS5zZWxlY3RlZFJvd3NbdmFsdWVzWzFdLmdyaWRJZF0pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNbMV0ua2VlcFNlbGVjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBjb25zdCBpZHMgPSB2YWx1ZXNbMF0uc2VsZWN0ZWRSb3dzW3ZhbHVlc1sxXS5ncmlkSWRdPy5pZHMgPz8gW107XG4gICAgICAgICAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5hcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5pZCkge1xuICAgICAgICAgICAgICAgICAgbm9kZS5zZXRTZWxlY3RlZChpZHMuaW5jbHVkZXMobm9kZS5pZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5pbml0U2F0ZUNoYW5nZUxpc3RlbmVyKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShtYXAoKHMpID0+IHNlbGVjdEFnR3JpZFN0YXRlKHMpLmdyaWRTdGF0ZXMpKSwgdGhpcy5fY29uZmlnJF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXT8ub3JpZ2luID09PSBDaGFuZ2VPcmlnaW4ub3RoZXIpIHtcbiAgICAgICAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uQXBpLmFwcGx5Q29sdW1uU3RhdGUoe1xuICAgICAgICAgICAgc3RhdGU6IHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXS5jb2x1bW5zU3RhdGUsXG4gICAgICAgICAgICBhcHBseU9yZGVyOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShtYXAoKHMpID0+IHNlbGVjdEFnR3JpZFN0YXRlKHMpLnNlbGVjdGVkUm93cykpLCB0aGlzLl9jb25maWckXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAodmFsdWVzWzBdW3ZhbHVlc1sxXS5ncmlkSWRdPy5vcmlnaW4gPT09IENoYW5nZU9yaWdpbi5vdGhlciAmJiB2YWx1ZXNbMV0ua2VlcFNlbGVjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IGlkcyA9IHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXT8uaWRzID8/IFtdO1xuICAgICAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5hcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLmlkKSB7XG4gICAgICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQoaWRzLmluY2x1ZGVzKG5vZGUuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZ2V0Q29udGV4dE1lbnVJdGVtcyA9IChwYXJhbXMpID0+IHRoaXMuZ2V0Q29udGV4dE1lbnVJdGVtcyhwYXJhbXMpO1xuICB9XG5cbiAgQElucHV0KCduZ3NzbUFnR3JpZCcpIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBzdHJpbmcgfCBOZ3NzbUFnR3JpZENvbmZpZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9jb25maWckLm5leHQoe1xuICAgICAgICBncmlkSWQ6IHZhbHVlIGFzIHN0cmluZ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbmZpZyQubmV4dCh2YWx1ZSBhcyBOZ3NzbUFnR3JpZENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzcmliZUFsbCQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzcmliZUFsbCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNhdGVDaGFuZ2VMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuc29ydENoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmZpbHRlckNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtblBpbm5lZC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2F2ZUdyaWRTdGF0ZSgpKTtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uUmVzaXplZC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2F2ZUdyaWRTdGF0ZSgpKTtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZGlzcGxheWVkQ29sdW1uc0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLnJvd1NlbGVjdGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZUdyaWRTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5BcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICB0aGlzLl9jb25maWckXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoZ3JpZElkKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlckFnR3JpZFN0YXRlQWN0aW9uKGdyaWRJZC5ncmlkSWQsIENoYW5nZU9yaWdpbi5hZ0dyaWQsIHN0YXRlKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLmFnR3JpZEFuZ3VsYXIuYXBpXG4gICAgICAuZ2V0U2VsZWN0ZWROb2RlcygpXG4gICAgICAubWFwKChuKSA9PiBuLmlkID8/ICcnKVxuICAgICAgLmZpbHRlcigobikgPT4gbiAhPT0gJycpO1xuICAgIHRoaXMuX2NvbmZpZyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgaWYgKGNvbmZpZy5rZWVwU2VsZWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IFJlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uKGNvbmZpZy5ncmlkSWQsIENoYW5nZU9yaWdpbi5hZ0dyaWQsIHNlbGVjdGVkUm93cykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0TWVudUl0ZW1zKHBhcmFtczogR2V0Q29udGV4dE1lbnVJdGVtc1BhcmFtcyk6IChzdHJpbmcgfCBNZW51SXRlbURlZilbXSB7XG4gICAgY29uc3QgbWVudUl0ZW1zOiAoc3RyaW5nIHwgTWVudUl0ZW1EZWYpW10gPSBbLi4uKHBhcmFtcy5kZWZhdWx0SXRlbXMgPz8gW10pXTtcbiAgICBpZiAodGhpcy5fY29uZmlnJC5nZXRWYWx1ZSgpLmNhblNhdmVPbkRpc2tDb2x1bW5zU3RhdGUgPT09IHRydWUpIHtcbiAgICAgIG1lbnVJdGVtcy5wdXNoKFxuICAgICAgICAuLi5bXG4gICAgICAgICAgJ3NlcGFyYXRvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1NhdmUgY29sdW1ucyBzdGF0ZScsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgQWdHcmlkQWN0aW9uKEFnR3JpZEFjdGlvblR5cGUuc2F2ZUNvbHVtbnNTdGF0ZU9uRGlzaywgY29uZmlnLmdyaWRJZCkpKSxcbiAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtZmxvcHB5LWRpc2tcIj48L2k+J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Jlc3RvcmUgY29sdW1ucyBzdGF0ZScsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IEFnR3JpZEFjdGlvbihBZ0dyaWRBY3Rpb25UeXBlLnJlc2V0Q29sdW1uc1N0YXRlRnJvbURpc2ssIGNvbmZpZy5ncmlkSWQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtcmlnaHRcIj48L2k+J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Jlc2V0IGNvbHVtbnMgc3RhdGUgdG8gZGVmYXVsdCcsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5BcGkucmVzZXRDb2x1bW5TdGF0ZSgpLFxuICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2xvY2stcm90YXRlLWxlZnRcIj48L2k+J1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxufVxuIl19
@@ -0,0 +1,56 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NGSSM_EFFECT } from 'ngssm-store';
3
+ import { AgGridActionType, RegisterAgGridStateAction } from '../actions';
4
+ import { ChangeOrigin, selectAgGridState } from '../state';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "ngssm-store";
7
+ class LocalStorageEffect {
8
+ constructor(logger) {
9
+ this.logger = logger;
10
+ this.processedActions = [AgGridActionType.saveColumnsStateOnDisk, AgGridActionType.resetColumnsStateFromDisk];
11
+ }
12
+ processAction(store, state, action) {
13
+ const agGridAction = action;
14
+ switch (action.type) {
15
+ case AgGridActionType.saveColumnsStateOnDisk:
16
+ const columnsState = selectAgGridState(state).gridStates[agGridAction.gridId];
17
+ if (columnsState) {
18
+ localStorage.setItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId), JSON.stringify(columnsState.columnsState));
19
+ }
20
+ break;
21
+ case AgGridActionType.resetColumnsStateFromDisk:
22
+ const stored = localStorage.getItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId));
23
+ console.log(stored);
24
+ if (stored) {
25
+ try {
26
+ const columnsState = JSON.parse(stored);
27
+ if (Array.isArray(columnsState)) {
28
+ store.dispatchAction(new RegisterAgGridStateAction(agGridAction.gridId, ChangeOrigin.other, columnsState));
29
+ }
30
+ else {
31
+ this.logger.error(`Wrong columns state config for grid '${agGridAction.gridId}'`, stored);
32
+ }
33
+ }
34
+ catch (error) {
35
+ this.logger.error(`Unable to load config for grid '${agGridAction.gridId}'`, error);
36
+ }
37
+ }
38
+ break;
39
+ }
40
+ }
41
+ getColumnsStateLocalStorageKey(gridId) {
42
+ return `ngssm-ag-grid_${gridId}`;
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect }); }
46
+ }
47
+ export { LocalStorageEffect };
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect, decorators: [{
49
+ type: Injectable
50
+ }], ctorParameters: function () { return [{ type: i1.Logger }]; } });
51
+ export const localStorageEffectProvider = {
52
+ provide: NGSSM_EFFECT,
53
+ useClass: LocalStorageEffect,
54
+ multi: true
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvZWZmZWN0cy9sb2NhbC1zdG9yYWdlLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBZ0MsWUFBWSxFQUFVLE1BQU0sYUFBYSxDQUFDO0FBRWpGLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRTNELE1BQ2Esa0JBQWtCO0lBRzdCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRmxCLHFCQUFnQixHQUFhLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUU5RixDQUFDO0lBRS9CLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBWSxFQUFFLE1BQWM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBc0IsQ0FBQztRQUU1QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDbkIsS0FBSyxnQkFBZ0IsQ0FBQyxzQkFBc0I7Z0JBQzFDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlFLElBQUksWUFBWSxFQUFFO29CQUNoQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDM0g7Z0JBRUQsTUFBTTtZQUVSLEtBQUssZ0JBQWdCLENBQUMseUJBQXlCO2dCQUM3QyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsSUFBSTt3QkFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7NEJBQy9CLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzt5QkFDNUc7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDM0Y7cUJBQ0Y7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFDckY7aUJBQ0Y7Z0JBRUQsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVPLDhCQUE4QixDQUFDLE1BQWM7UUFDbkQsT0FBTyxpQkFBaUIsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0F2Q1Usa0JBQWtCO2tIQUFsQixrQkFBa0I7O1NBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOztBQTJDWCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBYTtJQUNsRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVmZmVjdCwgU3RvcmUsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX0VGRkVDVCwgTG9nZ2VyIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBY3Rpb24sIEFnR3JpZEFjdGlvblR5cGUsIFJlZ2lzdGVyQWdHcmlkU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IENoYW5nZU9yaWdpbiwgc2VsZWN0QWdHcmlkU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VFZmZlY3QgaW1wbGVtZW50cyBFZmZlY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbQWdHcmlkQWN0aW9uVHlwZS5zYXZlQ29sdW1uc1N0YXRlT25EaXNrLCBBZ0dyaWRBY3Rpb25UeXBlLnJlc2V0Q29sdW1uc1N0YXRlRnJvbURpc2tdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIpIHt9XG5cbiAgcHVibGljIHByb2Nlc3NBY3Rpb24oc3RvcmU6IFN0b3JlLCBzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkQWN0aW9uID0gYWN0aW9uIGFzIEFnR3JpZEFjdGlvbjtcblxuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgQWdHcmlkQWN0aW9uVHlwZS5zYXZlQ29sdW1uc1N0YXRlT25EaXNrOlxuICAgICAgICBjb25zdCBjb2x1bW5zU3RhdGUgPSBzZWxlY3RBZ0dyaWRTdGF0ZShzdGF0ZSkuZ3JpZFN0YXRlc1thZ0dyaWRBY3Rpb24uZ3JpZElkXTtcbiAgICAgICAgaWYgKGNvbHVtbnNTdGF0ZSkge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0Q29sdW1uc1N0YXRlTG9jYWxTdG9yYWdlS2V5KGFnR3JpZEFjdGlvbi5ncmlkSWQpLCBKU09OLnN0cmluZ2lmeShjb2x1bW5zU3RhdGUuY29sdW1uc1N0YXRlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBBZ0dyaWRBY3Rpb25UeXBlLnJlc2V0Q29sdW1uc1N0YXRlRnJvbURpc2s6XG4gICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0Q29sdW1uc1N0YXRlTG9jYWxTdG9yYWdlS2V5KGFnR3JpZEFjdGlvbi5ncmlkSWQpKTtcbiAgICAgICAgY29uc29sZS5sb2coc3RvcmVkKTtcbiAgICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zU3RhdGUgPSBKU09OLnBhcnNlKHN0b3JlZCk7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2x1bW5zU3RhdGUpKSB7XG4gICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlckFnR3JpZFN0YXRlQWN0aW9uKGFnR3JpZEFjdGlvbi5ncmlkSWQsIENoYW5nZU9yaWdpbi5vdGhlciwgY29sdW1uc1N0YXRlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgV3JvbmcgY29sdW1ucyBzdGF0ZSBjb25maWcgZm9yIGdyaWQgJyR7YWdHcmlkQWN0aW9uLmdyaWRJZH0nYCwgc3RvcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYFVuYWJsZSB0byBsb2FkIGNvbmZpZyBmb3IgZ3JpZCAnJHthZ0dyaWRBY3Rpb24uZ3JpZElkfSdgLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5zU3RhdGVMb2NhbFN0b3JhZ2VLZXkoZ3JpZElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgbmdzc20tYWctZ3JpZF8ke2dyaWRJZH1gO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBsb2NhbFN0b3JhZ2VFZmZlY3RQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HU1NNX0VGRkVDVCxcbiAgdXNlQ2xhc3M6IExvY2FsU3RvcmFnZUVmZmVjdCxcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NGSSM_REDUCER } from 'ngssm-store';
3
+ import { AgGridActionType } from '../actions';
4
+ import { updateAgGridState } from '../state';
5
+ import * as i0 from "@angular/core";
6
+ class GridStatesReducer {
7
+ constructor() {
8
+ this.processedActions = [AgGridActionType.registerAgGridState];
9
+ }
10
+ updateState(state, action) {
11
+ switch (action.type) {
12
+ case AgGridActionType.registerAgGridState:
13
+ const registerAgGridStateAction = action;
14
+ return updateAgGridState(state, {
15
+ gridStates: {
16
+ [registerAgGridStateAction.gridId]: {
17
+ $set: {
18
+ origin: registerAgGridStateAction.origin,
19
+ columnsState: registerAgGridStateAction.columnStates
20
+ }
21
+ }
22
+ }
23
+ });
24
+ }
25
+ return state;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer }); }
29
+ }
30
+ export { GridStatesReducer };
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer, decorators: [{
32
+ type: Injectable
33
+ }] });
34
+ export const gridStatesReducerProvider = {
35
+ provide: NGSSM_REDUCER,
36
+ useClass: GridStatesReducer,
37
+ multi: true
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zdGF0ZXMucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9yZWR1Y2Vycy9ncmlkLXN0YXRlcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEUsT0FBTyxFQUFFLGdCQUFnQixFQUE2QixNQUFNLFlBQVksQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRTdDLE1BQ2EsaUJBQWlCO0lBRDlCO1FBRWtCLHFCQUFnQixHQUFhLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQW9CckY7SUFsQlEsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLGdCQUFnQixDQUFDLG1CQUFtQjtnQkFDdkMsTUFBTSx5QkFBeUIsR0FBRyxNQUFtQyxDQUFDO2dCQUN0RSxPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRTtvQkFDOUIsVUFBVSxFQUFFO3dCQUNWLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQ2xDLElBQUksRUFBRTtnQ0FDSixNQUFNLEVBQUUseUJBQXlCLENBQUMsTUFBTTtnQ0FDeEMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLFlBQVk7NkJBQ3JEO3lCQUNGO3FCQUNGO2lCQUNGLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQXBCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7O0FBd0JYLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFhO0lBQ2pELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVkdWNlciwgU3RhdGUsIEFjdGlvbiwgTkdTU01fUkVEVUNFUiB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgQWdHcmlkQWN0aW9uVHlwZSwgUmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXBkYXRlQWdHcmlkU3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHcmlkU3RhdGVzUmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbQWdHcmlkQWN0aW9uVHlwZS5yZWdpc3RlckFnR3JpZFN0YXRlXTtcblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIEFnR3JpZEFjdGlvblR5cGUucmVnaXN0ZXJBZ0dyaWRTdGF0ZTpcbiAgICAgICAgY29uc3QgcmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbiA9IGFjdGlvbiBhcyBSZWdpc3RlckFnR3JpZFN0YXRlQWN0aW9uO1xuICAgICAgICByZXR1cm4gdXBkYXRlQWdHcmlkU3RhdGUoc3RhdGUsIHtcbiAgICAgICAgICBncmlkU3RhdGVzOiB7XG4gICAgICAgICAgICBbcmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbi5ncmlkSWRdOiB7XG4gICAgICAgICAgICAgICRzZXQ6IHtcbiAgICAgICAgICAgICAgICBvcmlnaW46IHJlZ2lzdGVyQWdHcmlkU3RhdGVBY3Rpb24ub3JpZ2luLFxuICAgICAgICAgICAgICAgIGNvbHVtbnNTdGF0ZTogcmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbi5jb2x1bW5TdGF0ZXNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBncmlkU3RhdGVzUmVkdWNlclByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdTU01fUkVEVUNFUixcbiAgdXNlQ2xhc3M6IEdyaWRTdGF0ZXNSZWR1Y2VyLFxuICBtdWx0aTogdHJ1ZVxufTtcbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NGSSM_REDUCER } from 'ngssm-store';
3
+ import { AgGridActionType } from '../actions';
4
+ import { updateAgGridState } from '../state';
5
+ import * as i0 from "@angular/core";
6
+ class SelectedRowsReducer {
7
+ constructor() {
8
+ this.processedActions = [AgGridActionType.registerSelectedRows];
9
+ }
10
+ updateState(state, action) {
11
+ switch (action.type) {
12
+ case AgGridActionType.registerSelectedRows:
13
+ const registerSelectedRowsAction = action;
14
+ return updateAgGridState(state, {
15
+ selectedRows: {
16
+ [registerSelectedRowsAction.gridId]: {
17
+ $set: {
18
+ origin: registerSelectedRowsAction.origin,
19
+ ids: registerSelectedRowsAction.ids
20
+ }
21
+ }
22
+ }
23
+ });
24
+ }
25
+ return state;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer }); }
29
+ }
30
+ export { SelectedRowsReducer };
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer, decorators: [{
32
+ type: Injectable
33
+ }] });
34
+ export const selectedRowsReducerProvider = {
35
+ provide: NGSSM_REDUCER,
36
+ useClass: SelectedRowsReducer,
37
+ multi: true
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtcm93cy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tYWctZ3JpZC9zcmMvbGliL3JlZHVjZXJzL3NlbGVjdGVkLXJvd3MucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBMEIsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSxZQUFZLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUU3QyxNQUNhLG1CQUFtQjtJQURoQztRQUVrQixxQkFBZ0IsR0FBYSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FvQnRGO0lBbEJRLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDbkIsS0FBSyxnQkFBZ0IsQ0FBQyxvQkFBb0I7Z0JBQ3hDLE1BQU0sMEJBQTBCLEdBQUcsTUFBb0MsQ0FBQztnQkFDeEUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7b0JBQzlCLFlBQVksRUFBRTt3QkFDWixDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNuQyxJQUFJLEVBQUU7Z0NBQ0osTUFBTSxFQUFFLDBCQUEwQixDQUFDLE1BQU07Z0NBQ3pDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQyxHQUFHOzZCQUNwQzt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FwQlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOztBQXdCWCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBYTtJQUNuRCxPQUFPLEVBQUUsYUFBYTtJQUN0QixRQUFRLEVBQUUsbUJBQW1CO0lBQzdCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX1JFRFVDRVIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFjdGlvblR5cGUsIFJlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyB1cGRhdGVBZ0dyaWRTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkUm93c1JlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW0FnR3JpZEFjdGlvblR5cGUucmVnaXN0ZXJTZWxlY3RlZFJvd3NdO1xuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgQWdHcmlkQWN0aW9uVHlwZS5yZWdpc3RlclNlbGVjdGVkUm93czpcbiAgICAgICAgY29uc3QgcmVnaXN0ZXJTZWxlY3RlZFJvd3NBY3Rpb24gPSBhY3Rpb24gYXMgUmVnaXN0ZXJTZWxlY3RlZFJvd3NBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVBZ0dyaWRTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIHNlbGVjdGVkUm93czoge1xuICAgICAgICAgICAgW3JlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uLmdyaWRJZF06IHtcbiAgICAgICAgICAgICAgJHNldDoge1xuICAgICAgICAgICAgICAgIG9yaWdpbjogcmVnaXN0ZXJTZWxlY3RlZFJvd3NBY3Rpb24ub3JpZ2luLFxuICAgICAgICAgICAgICAgIGlkczogcmVnaXN0ZXJTZWxlY3RlZFJvd3NBY3Rpb24uaWRzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0ZWRSb3dzUmVkdWNlclByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdTU01fUkVEVUNFUixcbiAgdXNlQ2xhc3M6IFNlbGVjdGVkUm93c1JlZHVjZXIsXG4gIG11bHRpOiB0cnVlXG59O1xuIl19
@@ -0,0 +1,23 @@
1
+ var AgGridStateSpecification_1;
2
+ import { __decorate } from "tslib";
3
+ import update from 'immutability-helper';
4
+ import { NgSsmFeatureState } from 'ngssm-store';
5
+ export const selectAgGridState = (state) => state[AgGridStateSpecification.featureStateKey];
6
+ export const updateAgGridState = (state, command) => update(state, {
7
+ [AgGridStateSpecification.featureStateKey]: command
8
+ });
9
+ let AgGridStateSpecification = AgGridStateSpecification_1 = class AgGridStateSpecification {
10
+ static { this.featureStateKey = 'ag-grid-state'; }
11
+ static { this.initialState = {
12
+ gridStates: {},
13
+ selectedRows: {}
14
+ }; }
15
+ };
16
+ AgGridStateSpecification = AgGridStateSpecification_1 = __decorate([
17
+ NgSsmFeatureState({
18
+ featureStateKey: AgGridStateSpecification_1.featureStateKey,
19
+ initialState: AgGridStateSpecification_1.initialState
20
+ })
21
+ ], AgGridStateSpecification);
22
+ export { AgGridStateSpecification };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9zdGF0ZS9hZy1ncmlkLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxNQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVksRUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBZ0IsQ0FBQztBQUUvSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVksRUFBRSxPQUFpQyxFQUFTLEVBQUUsQ0FDMUYsTUFBTSxDQUFDLEtBQUssRUFBRTtJQUNaLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTztDQUNwRCxDQUFDLENBQUM7QUFXTCxJQUFhLHdCQUF3QixnQ0FBckMsTUFBYSx3QkFBd0I7YUFDWixvQkFBZSxHQUFHLGVBQWUsQUFBbEIsQ0FBbUI7YUFDbEMsaUJBQVksR0FBZ0I7UUFDakQsVUFBVSxFQUFFLEVBQUU7UUFDZCxZQUFZLEVBQUUsRUFBRTtLQUNqQixBQUhrQyxDQUdqQzs7QUFMUyx3QkFBd0I7SUFKcEMsaUJBQWlCLENBQUM7UUFDakIsZUFBZSxFQUFFLDBCQUF3QixDQUFDLGVBQWU7UUFDekQsWUFBWSxFQUFFLDBCQUF3QixDQUFDLFlBQVk7S0FDcEQsQ0FBQztHQUNXLHdCQUF3QixDQU1wQztTQU5ZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1cGRhdGUsIHsgU3BlYyB9IGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuXG5pbXBvcnQgeyBOZ1NzbUZlYXR1cmVTdGF0ZSwgU3RhdGUgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5pbXBvcnQgeyBHcmlkU3RhdGUgfSBmcm9tICcuL2dyaWQtc3RhdGUnO1xuaW1wb3J0IHsgU2VsZWN0ZWRSb3dzIH0gZnJvbSAnLi9zZWxlY3RlZC1yb3dzJztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFnR3JpZFN0YXRlID0gKHN0YXRlOiBTdGF0ZSk6IEFnR3JpZFN0YXRlID0+IHN0YXRlW0FnR3JpZFN0YXRlU3BlY2lmaWNhdGlvbi5mZWF0dXJlU3RhdGVLZXldIGFzIEFnR3JpZFN0YXRlO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWdHcmlkU3RhdGUgPSAoc3RhdGU6IFN0YXRlLCBjb21tYW5kOiBTcGVjPEFnR3JpZFN0YXRlLCBuZXZlcj4pOiBTdGF0ZSA9PlxuICB1cGRhdGUoc3RhdGUsIHtcbiAgICBbQWdHcmlkU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV06IGNvbW1hbmRcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdHcmlkU3RhdGUge1xuICBncmlkU3RhdGVzOiB7IFtrZXk6IHN0cmluZ106IEdyaWRTdGF0ZSB9O1xuICBzZWxlY3RlZFJvd3M6IHsgW2tleTogc3RyaW5nXTogU2VsZWN0ZWRSb3dzIH07XG59XG5cbkBOZ1NzbUZlYXR1cmVTdGF0ZSh7XG4gIGZlYXR1cmVTdGF0ZUtleTogQWdHcmlkU3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleSxcbiAgaW5pdGlhbFN0YXRlOiBBZ0dyaWRTdGF0ZVNwZWNpZmljYXRpb24uaW5pdGlhbFN0YXRlXG59KVxuZXhwb3J0IGNsYXNzIEFnR3JpZFN0YXRlU3BlY2lmaWNhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZmVhdHVyZVN0YXRlS2V5ID0gJ2FnLWdyaWQtc3RhdGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGluaXRpYWxTdGF0ZTogQWdHcmlkU3RhdGUgPSB7XG4gICAgZ3JpZFN0YXRlczoge30sXG4gICAgc2VsZWN0ZWRSb3dzOiB7fVxuICB9O1xufVxuIl19
@@ -54,11 +54,11 @@ const updateAgGridState = (state, command) => update(state, {
54
54
  [AgGridStateSpecification.featureStateKey]: command
55
55
  });
56
56
  let AgGridStateSpecification = AgGridStateSpecification_1 = class AgGridStateSpecification {
57
- };
58
- AgGridStateSpecification.featureStateKey = 'ag-grid-state';
59
- AgGridStateSpecification.initialState = {
60
- gridStates: {},
61
- selectedRows: {}
57
+ static { this.featureStateKey = 'ag-grid-state'; }
58
+ static { this.initialState = {
59
+ gridStates: {},
60
+ selectedRows: {}
61
+ }; }
62
62
  };
63
63
  AgGridStateSpecification = AgGridStateSpecification_1 = __decorate([
64
64
  NgSsmFeatureState({
@@ -126,10 +126,10 @@ class NgssmActionsCellRendererComponent extends NgSsmComponent {
126
126
  });
127
127
  this._actionButtons$.next(actionButtons);
128
128
  }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmActionsCellRendererComponent, isStandalone: true, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
131
  }
130
- NgssmActionsCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
131
- NgssmActionsCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgssmActionsCellRendererComponent, isStandalone: true, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
133
133
  type: Component,
134
134
  args: [{ selector: 'ngssm-actions-cell-renderer', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>" }]
135
135
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
@@ -152,10 +152,10 @@ class NgssmAgGridThemeDirective {
152
152
  this.className = '';
153
153
  this.className = (options ?? new NgssmAgGridOptions()).theme;
154
154
  }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
156
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmAgGridThemeDirective, isStandalone: true, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 }); }
155
157
  }
156
- NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
157
- NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: NgssmAgGridThemeDirective, isStandalone: true, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
159
159
  type: Directive,
160
160
  args: [{
161
161
  selector: '[ngssmAgGridTheme]',
@@ -299,10 +299,10 @@ class NgssmAgGridDirective {
299
299
  }
300
300
  return menuItems;
301
301
  }
302
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2$1.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
303
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmAgGridDirective, isStandalone: true, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 }); }
302
304
  }
303
- NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2$1.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
304
- NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: NgssmAgGridDirective, isStandalone: true, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
306
306
  type: Directive,
307
307
  args: [{
308
308
  selector: '[ngssmAgGrid]',
@@ -359,10 +359,10 @@ class LocalStorageEffect {
359
359
  getColumnsStateLocalStorageKey(gridId) {
360
360
  return `ngssm-ag-grid_${gridId}`;
361
361
  }
362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
363
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect }); }
362
364
  }
363
- LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
364
- LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: LocalStorageEffect });
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: LocalStorageEffect, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LocalStorageEffect, decorators: [{
366
366
  type: Injectable
367
367
  }], ctorParameters: function () { return [{ type: i1.Logger }]; } });
368
368
  const localStorageEffectProvider = {
@@ -392,10 +392,10 @@ class GridStatesReducer {
392
392
  }
393
393
  return state;
394
394
  }
395
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
396
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer }); }
395
397
  }
396
- GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
397
- GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: GridStatesReducer });
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: GridStatesReducer, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GridStatesReducer, decorators: [{
399
399
  type: Injectable
400
400
  }] });
401
401
  const gridStatesReducerProvider = {
@@ -425,10 +425,10 @@ class SelectedRowsReducer {
425
425
  }
426
426
  return state;
427
427
  }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer }); }
428
430
  }
429
- SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
430
- SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SelectedRowsReducer });
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SelectedRowsReducer, decorators: [{
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectedRowsReducer, decorators: [{
432
432
  type: Injectable
433
433
  }] });
434
434
  const selectedRowsReducerProvider = {