ngssm-ag-grid 15.1.1 → 15.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci9hY3Rpb24tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkRpc2FibGVkRnVuYzxURGF0YSA9IGFueSwgVFZhbHVlID0gYW55PiB7XG4gIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXM8VERhdGEsIFRWYWx1ZT4pOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbmZpZzxURGF0YSA9IGFueSwgVFZhbHVlID0gYW55PiB7XG4gIGNzc0NsYXNzOiBzdHJpbmc7XG5cbiAgLy8gVGhlbWVQYWxldHRlIChwcmltYXJ5LCBhY2NlbnQsIHdhcm4pID0+IGJ5IGRlZmF1bHQgJ3ByaW1hcnknXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIGlzRGlzYWJsZWQ/OiBBY3Rpb25EaXNhYmxlZEZ1bmM8VERhdGEsIFRWYWx1ZT4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNsaWNrPzogKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtczxURGF0YSwgVFZhbHVlPikgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './ngssm-actions-cell-renderer.component';
2
+ export * from './action-config';
3
+ export * from './ngssm-actions-cell-renderer-params';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLXBhcmFtcyc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import { NgssmActionsCellRendererComponent } from './ngssm-actions-cell-renderer.component';
2
+ export const getNgssmActionsCellColDef = (params) => ({
3
+ cellRenderer: NgssmActionsCellRendererComponent,
4
+ cellRendererParams: params
5
+ });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXItcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBUTVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3ZDLE1BQXFELEVBQ3BDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLFlBQVksRUFBRSxpQ0FBaUM7SUFDL0Msa0JBQWtCLEVBQUUsTUFBTTtDQUMzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xEZWYgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IEFjdGlvbkNvbmZpZyB9IGZyb20gJy4vYWN0aW9uLWNvbmZpZyc7XG5pbXBvcnQgeyBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuXG4vLyBQYXJhbWV0ZXJzIG9mIHRoZSBhY3Rpb25zIGNlbGwgcmVuZGVyZXJcbi8vIEZvciBub3csIGFuIGFjdGlvbiBpcyByZW5kZXJlZCBhcyBhIG1hdC1pY29uLWJ1dHRvbiB3aXRoIHRoZSBjbGFzcyBwYXNzZWQgaW4gQWN0aW9uQ29uZmlnXG5leHBvcnQgaW50ZXJmYWNlIE5nc3NtQWN0aW9uc0NlbGxSZW5kZXJlclBhcmFtczxURGF0YSA9IGFueSwgVFZhbHVlID0gYW55PiB7XG4gIGFjdGlvbnM6IEFjdGlvbkNvbmZpZzxURGF0YSwgVFZhbHVlPltdO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Tmdzc21BY3Rpb25zQ2VsbENvbERlZiA9IDxURGF0YSA9IGFueSwgVFZhbHVlID0gYW55PihcbiAgcGFyYW1zOiBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJQYXJhbXM8VERhdGEsIFRWYWx1ZT5cbik6IFBhcnRpYWw8Q29sRGVmPiA9PiAoe1xuICBjZWxsUmVuZGVyZXI6IE5nc3NtQWN0aW9uc0NlbGxSZW5kZXJlckNvbXBvbmVudCxcbiAgY2VsbFJlbmRlcmVyUGFyYW1zOiBwYXJhbXNcbn0pO1xuIl19
@@ -0,0 +1,58 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { BehaviorSubject, isObservable, takeUntil } from 'rxjs';
3
+ import { NgSsmComponent } from 'ngssm-store';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngssm-store";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/icon";
9
+ export class NgssmActionsCellRendererComponent extends NgSsmComponent {
10
+ constructor(store) {
11
+ super(store);
12
+ this._actionButtons$ = new BehaviorSubject([]);
13
+ }
14
+ get actionButtons$() {
15
+ return this._actionButtons$.asObservable();
16
+ }
17
+ agInit(params) {
18
+ this.cellParams = params;
19
+ this.setupActions(params);
20
+ }
21
+ refresh(params) {
22
+ this.cellParams = params;
23
+ this._actionButtons$.getValue().forEach((a) => {
24
+ if (a.actionConfig.isDisabled instanceof Function) {
25
+ a.disabled$.next(a.actionConfig.isDisabled(params));
26
+ }
27
+ });
28
+ return true;
29
+ }
30
+ executeAction(action) {
31
+ action.actionConfig.click?.(this.cellParams);
32
+ }
33
+ setupActions(rendererParams) {
34
+ const actionButtons = (rendererParams?.actions ?? []).map((a) => {
35
+ const actionButton = {
36
+ cssClass: a.cssClass,
37
+ color: a.color ?? 'primary',
38
+ disabled$: new BehaviorSubject(false),
39
+ actionConfig: a
40
+ };
41
+ if (a.isDisabled instanceof Function) {
42
+ actionButton.disabled$.next(a.isDisabled(rendererParams));
43
+ }
44
+ else if (isObservable(a.isDisabled)) {
45
+ a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));
46
+ }
47
+ return actionButton;
48
+ });
49
+ this._actionButtons$.next(actionButtons);
50
+ }
51
+ }
52
+ NgssmActionsCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
53
+ NgssmActionsCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgssmActionsCellRendererComponent, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'ngssm-actions-cell-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>" }]
57
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tYWctZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs1RSxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFtQnBELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxjQUFjO0lBS25FLFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFMRSxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztJQU0zRSxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBYSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxNQUFxQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLFlBQVksUUFBUSxFQUFFO2dCQUNqRCxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFhLENBQUMsQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBb0I7UUFDdkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBaUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxZQUFZLENBQUMsY0FBOEM7UUFDakUsTUFBTSxhQUFhLEdBQW1CLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5RSxNQUFNLFlBQVksR0FBaUI7Z0JBQ2pDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUztnQkFDM0IsU0FBUyxFQUFFLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQztnQkFDOUMsWUFBWSxFQUFFLENBQUM7YUFDaEIsQ0FBQztZQUVGLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxRQUFRLEVBQUU7Z0JBQ3BDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBcUIsQ0FBQyxDQUFDLENBQUM7YUFDbEU7aUJBQU0sSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1lBRUQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs4SEFuRFUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsMEZDekI5QyxvYUFNTTsyRkRtQk8saUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IE5nU3NtQ29tcG9uZW50LCBTdG9yZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21BY3Rpb25zQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnLi9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXItcGFyYW1zJztcbmltcG9ydCB7IEFjdGlvbkNvbmZpZyB9IGZyb20gJy4vYWN0aW9uLWNvbmZpZyc7XG5cbmludGVyZmFjZSBBY3Rpb25CdXR0b24ge1xuICBjc3NDbGFzczogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBhY3Rpb25Db25maWc6IEFjdGlvbkNvbmZpZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBOZ1NzbUNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGlvbkJ1dHRvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25CdXR0b25bXT4oW10pO1xuXG4gIHByaXZhdGUgY2VsbFBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtczxhbnksIGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25CdXR0b25zJCgpOiBPYnNlcnZhYmxlPEFjdGlvbkJ1dHRvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbkJ1dHRvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXM8YW55LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jZWxsUGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuc2V0dXBBY3Rpb25zKHBhcmFtcyBhcyBhbnkpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zPGFueSwgYW55Pik6IGJvb2xlYW4ge1xuICAgIHRoaXMuY2VsbFBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLl9hY3Rpb25CdXR0b25zJC5nZXRWYWx1ZSgpLmZvckVhY2goKGEpID0+IHtcbiAgICAgIGlmIChhLmFjdGlvbkNvbmZpZy5pc0Rpc2FibGVkIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgYS5kaXNhYmxlZCQubmV4dChhLmFjdGlvbkNvbmZpZy5pc0Rpc2FibGVkKHBhcmFtcyBhcyBhbnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlQWN0aW9uKGFjdGlvbjogQWN0aW9uQnV0dG9uKTogdm9pZCB7XG4gICAgYWN0aW9uLmFjdGlvbkNvbmZpZy5jbGljaz8uKHRoaXMuY2VsbFBhcmFtcyBhcyBhbnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEFjdGlvbnMocmVuZGVyZXJQYXJhbXM6IE5nc3NtQWN0aW9uc0NlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbkJ1dHRvbnM6IEFjdGlvbkJ1dHRvbltdID0gKHJlbmRlcmVyUGFyYW1zPy5hY3Rpb25zID8/IFtdKS5tYXAoKGEpID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvbkJ1dHRvbjogQWN0aW9uQnV0dG9uID0ge1xuICAgICAgICBjc3NDbGFzczogYS5jc3NDbGFzcyxcbiAgICAgICAgY29sb3I6IGEuY29sb3IgPz8gJ3ByaW1hcnknLFxuICAgICAgICBkaXNhYmxlZCQ6IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpLFxuICAgICAgICBhY3Rpb25Db25maWc6IGFcbiAgICAgIH07XG5cbiAgICAgIGlmIChhLmlzRGlzYWJsZWQgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICBhY3Rpb25CdXR0b24uZGlzYWJsZWQkLm5leHQoYS5pc0Rpc2FibGVkKHJlbmRlcmVyUGFyYW1zIGFzIGFueSkpO1xuICAgICAgfSBlbHNlIGlmIChpc09ic2VydmFibGUoYS5pc0Rpc2FibGVkKSkge1xuICAgICAgICBhLmlzRGlzYWJsZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKS5zdWJzY3JpYmUoKHYpID0+IGFjdGlvbkJ1dHRvbi5kaXNhYmxlZCQubmV4dCh2KSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY3Rpb25CdXR0b247XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hY3Rpb25CdXR0b25zJC5uZXh0KGFjdGlvbkJ1dHRvbnMpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmdzc20tYWN0aW9ucy1jZWxsXCI+XG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uQnV0dG9uIG9mIGFjdGlvbkJ1dHRvbnMkIHwgYXN5bmM7IGxldCBpbmRleD1pbmRleFwiIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBjbGFzcz1cIm5nc3NtLWFjdGlvbnMtY2VsbC1idXR0b25cIiBbY29sb3JdPVwiYWN0aW9uQnV0dG9uLmNvbG9yXCIgaWQ9XCJhY3Rpb25fe3tpbmRleH19XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkJ1dHRvbi5kaXNhYmxlZCQgfCBhc3luY1wiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKGFjdGlvbkJ1dHRvbilcIj5cbiAgICAgICAgPG1hdC1pY29uIFtjbGFzc109XCJhY3Rpb25CdXR0b24uY3NzQ2xhc3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+Il19
@@ -8,9 +8,9 @@ export class NgssmAgGridThemeDirective {
8
8
  this.className = (options ?? new NgssmAgGridOptions()).theme;
9
9
  }
10
10
  }
11
- NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
12
- NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
11
+ NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
12
+ NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: '[ngssmAgGridTheme]'
@@ -136,9 +136,9 @@ export class NgssmAgGridDirective {
136
136
  return menuItems;
137
137
  }
138
138
  }
139
- NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
140
- NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
139
+ NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
140
+ NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
142
142
  type: Directive,
143
143
  args: [{
144
144
  selector: '[ngssmAgGrid]'
@@ -42,9 +42,9 @@ export class LocalStorageEffect {
42
42
  return `ngssm-ag-grid_${gridId}`;
43
43
  }
44
44
  }
45
- LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
46
- LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, decorators: [{
45
+ LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, decorators: [{
48
48
  type: Injectable
49
49
  }], ctorParameters: function () { return [{ type: i1.Logger }]; } });
50
50
  export const localStorageEffectProvider = {
@@ -1,9 +1,13 @@
1
1
  import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatIconModule } from '@angular/material/icon';
2
5
  import { NgssmAgGridDirective } from './components/ngssm-ag-grid.directive';
3
6
  import { gridStatesReducerProvider } from './reducers/grid-states.reducer';
4
7
  import { selectedRowsReducerProvider } from './reducers/selected-rows.reducer';
5
8
  import { localStorageEffectProvider } from './effects/local-storage.effect';
6
9
  import { NgssmAgGridThemeDirective } from './components/ngssm-ag-grid-theme.directive';
10
+ import { NgssmActionsCellRendererComponent } from './components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component';
7
11
  import * as i0 from "@angular/core";
8
12
  export class NgssmAgGridModule {
9
13
  static forRoot() {
@@ -13,16 +17,16 @@ export class NgssmAgGridModule {
13
17
  };
14
18
  }
15
19
  }
16
- NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
18
- NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, decorators: [{
20
+ NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent], imports: [CommonModule, MatButtonModule, MatIconModule], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
22
+ NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, imports: [CommonModule, MatButtonModule, MatIconModule] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, decorators: [{
20
24
  type: NgModule,
21
25
  args: [{
22
- declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
23
- imports: [],
26
+ declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent],
27
+ imports: [CommonModule, MatButtonModule, MatIconModule],
24
28
  exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
25
29
  providers: []
26
30
  }]
27
31
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvbmdzc20tYWctZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBUXZGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsQ0FBQztTQUNoRyxDQUFDO0lBQ0osQ0FBQzs7OEdBTlUsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBTGIsb0JBQW9CLEVBQUUseUJBQXlCLGFBRXBELG9CQUFvQixFQUFFLHlCQUF5QjsrR0FHOUMsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBTjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUseUJBQXlCLENBQUM7b0JBQy9ELE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO29CQUMxRCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3NzbUFnR3JpZERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBncmlkU3RhdGVzUmVkdWNlclByb3ZpZGVyIH0gZnJvbSAnLi9yZWR1Y2Vycy9ncmlkLXN0YXRlcy5yZWR1Y2VyJztcbmltcG9ydCB7IHNlbGVjdGVkUm93c1JlZHVjZXJQcm92aWRlciB9IGZyb20gJy4vcmVkdWNlcnMvc2VsZWN0ZWQtcm93cy5yZWR1Y2VyJztcbmltcG9ydCB7IGxvY2FsU3RvcmFnZUVmZmVjdFByb3ZpZGVyIH0gZnJvbSAnLi9lZmZlY3RzL2xvY2FsLXN0b3JhZ2UuZWZmZWN0JztcbmltcG9ydCB7IE5nc3NtQWdHcmlkVGhlbWVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbmdzc20tYWctZ3JpZC10aGVtZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ3NzbUFnR3JpZERpcmVjdGl2ZSwgTmdzc21BZ0dyaWRUaGVtZURpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbTmdzc21BZ0dyaWREaXJlY3RpdmUsIE5nc3NtQWdHcmlkVGhlbWVEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQWdHcmlkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3NzbUFnR3JpZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmdzc21BZ0dyaWRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtncmlkU3RhdGVzUmVkdWNlclByb3ZpZGVyLCBzZWxlY3RlZFJvd3NSZWR1Y2VyUHJvdmlkZXIsIGxvY2FsU3RvcmFnZUVmZmVjdFByb3ZpZGVyXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvbmdzc20tYWctZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7O0FBUW5JLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsQ0FBQztTQUNoRyxDQUFDO0lBQ0osQ0FBQzs7OEdBTlUsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBTGIsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsaUNBQWlDLGFBQ3ZGLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxhQUM1QyxvQkFBb0IsRUFBRSx5QkFBeUI7K0dBRzlDLGlCQUFpQixZQUpsQixZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWE7MkZBSTNDLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxpQ0FBaUMsQ0FBQztvQkFDbEcsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7b0JBQ3ZELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO29CQUMxRCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgTmdzc21BZ0dyaWREaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbmdzc20tYWctZ3JpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ3JpZFN0YXRlc1JlZHVjZXJQcm92aWRlciB9IGZyb20gJy4vcmVkdWNlcnMvZ3JpZC1zdGF0ZXMucmVkdWNlcic7XG5pbXBvcnQgeyBzZWxlY3RlZFJvd3NSZWR1Y2VyUHJvdmlkZXIgfSBmcm9tICcuL3JlZHVjZXJzL3NlbGVjdGVkLXJvd3MucmVkdWNlcic7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2VFZmZlY3RQcm92aWRlciB9IGZyb20gJy4vZWZmZWN0cy9sb2NhbC1zdG9yYWdlLmVmZmVjdCc7XG5pbXBvcnQgeyBOZ3NzbUFnR3JpZFRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL25nc3NtLWFnLWdyaWQtdGhlbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nc3NtQWN0aW9uc0NlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXIvbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05nc3NtQWdHcmlkRGlyZWN0aXZlLCBOZ3NzbUFnR3JpZFRoZW1lRGlyZWN0aXZlLCBOZ3NzbUFjdGlvbnNDZWxsUmVuZGVyZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTmdzc21BZ0dyaWREaXJlY3RpdmUsIE5nc3NtQWdHcmlkVGhlbWVEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQWdHcmlkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3NzbUFnR3JpZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmdzc21BZ0dyaWRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtncmlkU3RhdGVzUmVkdWNlclByb3ZpZGVyLCBzZWxlY3RlZFJvd3NSZWR1Y2VyUHJvdmlkZXIsIGxvY2FsU3RvcmFnZUVmZmVjdFByb3ZpZGVyXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -25,9 +25,9 @@ export class GridStatesReducer {
25
25
  return state;
26
26
  }
27
27
  }
28
- GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, decorators: [{
28
+ GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, decorators: [{
31
31
  type: Injectable
32
32
  }] });
33
33
  export const gridStatesReducerProvider = {
@@ -25,9 +25,9 @@ export class SelectedRowsReducer {
25
25
  return state;
26
26
  }
27
27
  }
28
- SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, decorators: [{
28
+ SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, decorators: [{
31
31
  type: Injectable
32
32
  }] });
33
33
  export const selectedRowsReducerProvider = {
@@ -8,4 +8,5 @@ export * from './lib/components/ngssm-ag-grid.directive';
8
8
  export * from './lib/components/ngssm-ag-grid-config';
9
9
  export * from './lib/ngssm-ag-grid-options';
10
10
  export * from './lib/components/ngssm-ag-grid-theme.directive';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nc3NtLWFnLWdyaWRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1hZy1ncmlkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmdzc20tYWctZ3JpZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1hZy1ncmlkLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLXRoZW1lLmRpcmVjdGl2ZSc7XG4iXX0=
11
+ export * from './lib/components/ngssm-actions-cell-renderer';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw4Q0FBOEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmdzc20tYWctZ3JpZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25nc3NtLWFnLWdyaWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25nc3NtLWFnLWdyaWQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nc3NtLWFnLWdyaWQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25nc3NtLWFnLWdyaWQtdGhlbWUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmdzc20tYWN0aW9ucy1jZWxsLXJlbmRlcmVyJztcbiJdfQ==
@@ -1,10 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Directive, Inject, Optional, Input, Injectable, HostBinding, NgModule } from '@angular/core';
3
- import { Subject, BehaviorSubject, take, combineLatest, map, takeUntil } from 'rxjs';
2
+ import { InjectionToken, Directive, Inject, Optional, Input, Injectable, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import * as i2$1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i3 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i4 from '@angular/material/icon';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { Subject, BehaviorSubject, take, combineLatest, map, takeUntil, isObservable } from 'rxjs';
4
10
  import { __decorate } from 'tslib';
5
11
  import update from 'immutability-helper';
6
12
  import * as i1 from 'ngssm-store';
7
- import { NgSsmFeatureState, NGSSM_REDUCER, NGSSM_EFFECT } from 'ngssm-store';
13
+ import { NgSsmFeatureState, NGSSM_REDUCER, NGSSM_EFFECT, NgSsmComponent } from 'ngssm-store';
8
14
  import * as i2 from 'ag-grid-angular';
9
15
  import * as i1$1 from 'ngssm-toolkit';
10
16
 
@@ -207,9 +213,9 @@ class NgssmAgGridDirective {
207
213
  return menuItems;
208
214
  }
209
215
  }
210
- NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
211
- NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
216
+ NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
217
+ NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
213
219
  type: Directive,
214
220
  args: [{
215
221
  selector: '[ngssmAgGrid]'
@@ -248,9 +254,9 @@ class GridStatesReducer {
248
254
  return state;
249
255
  }
250
256
  }
251
- GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
252
- GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer });
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, decorators: [{
257
+ GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
258
+ GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer });
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, decorators: [{
254
260
  type: Injectable
255
261
  }] });
256
262
  const gridStatesReducerProvider = {
@@ -281,9 +287,9 @@ class SelectedRowsReducer {
281
287
  return state;
282
288
  }
283
289
  }
284
- SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
285
- SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer });
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, decorators: [{
290
+ SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
291
+ SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer });
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, decorators: [{
287
293
  type: Injectable
288
294
  }] });
289
295
  const selectedRowsReducerProvider = {
@@ -330,9 +336,9 @@ class LocalStorageEffect {
330
336
  return `ngssm-ag-grid_${gridId}`;
331
337
  }
332
338
  }
333
- LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1$1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
334
- LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect });
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, decorators: [{
339
+ LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1$1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
340
+ LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect });
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, decorators: [{
336
342
  type: Injectable
337
343
  }], ctorParameters: function () { return [{ type: i1$1.Logger }]; } });
338
344
  const localStorageEffectProvider = {
@@ -347,9 +353,9 @@ class NgssmAgGridThemeDirective {
347
353
  this.className = (options !== null && options !== void 0 ? options : new NgssmAgGridOptions()).theme;
348
354
  }
349
355
  }
350
- NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
351
- NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
356
+ NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
357
+ NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
353
359
  type: Directive,
354
360
  args: [{
355
361
  selector: '[ngssmAgGridTheme]'
@@ -366,6 +372,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
366
372
  args: ['class']
367
373
  }] } });
368
374
 
375
+ class NgssmActionsCellRendererComponent extends NgSsmComponent {
376
+ constructor(store) {
377
+ super(store);
378
+ this._actionButtons$ = new BehaviorSubject([]);
379
+ }
380
+ get actionButtons$() {
381
+ return this._actionButtons$.asObservable();
382
+ }
383
+ agInit(params) {
384
+ this.cellParams = params;
385
+ this.setupActions(params);
386
+ }
387
+ refresh(params) {
388
+ this.cellParams = params;
389
+ this._actionButtons$.getValue().forEach((a) => {
390
+ if (a.actionConfig.isDisabled instanceof Function) {
391
+ a.disabled$.next(a.actionConfig.isDisabled(params));
392
+ }
393
+ });
394
+ return true;
395
+ }
396
+ executeAction(action) {
397
+ var _a, _b;
398
+ (_b = (_a = action.actionConfig).click) === null || _b === void 0 ? void 0 : _b.call(_a, this.cellParams);
399
+ }
400
+ setupActions(rendererParams) {
401
+ var _a;
402
+ const actionButtons = ((_a = rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.actions) !== null && _a !== void 0 ? _a : []).map((a) => {
403
+ var _a;
404
+ const actionButton = {
405
+ cssClass: a.cssClass,
406
+ color: (_a = a.color) !== null && _a !== void 0 ? _a : 'primary',
407
+ disabled$: new BehaviorSubject(false),
408
+ actionConfig: a
409
+ };
410
+ if (a.isDisabled instanceof Function) {
411
+ actionButton.disabled$.next(a.isDisabled(rendererParams));
412
+ }
413
+ else if (isObservable(a.isDisabled)) {
414
+ a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));
415
+ }
416
+ return actionButton;
417
+ });
418
+ this._actionButtons$.next(actionButtons);
419
+ }
420
+ }
421
+ NgssmActionsCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
422
+ NgssmActionsCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgssmActionsCellRendererComponent, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
424
+ type: Component,
425
+ args: [{ selector: 'ngssm-actions-cell-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>" }]
426
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
427
+
369
428
  class NgssmAgGridModule {
370
429
  static forRoot() {
371
430
  return {
@@ -374,19 +433,24 @@ class NgssmAgGridModule {
374
433
  };
375
434
  }
376
435
  }
377
- NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
378
- NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
379
- NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule });
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, decorators: [{
436
+ NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
437
+ NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent], imports: [CommonModule, MatButtonModule, MatIconModule], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
438
+ NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, imports: [CommonModule, MatButtonModule, MatIconModule] });
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, decorators: [{
381
440
  type: NgModule,
382
441
  args: [{
383
- declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
384
- imports: [],
442
+ declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent],
443
+ imports: [CommonModule, MatButtonModule, MatIconModule],
385
444
  exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
386
445
  providers: []
387
446
  }]
388
447
  }] });
389
448
 
449
+ const getNgssmActionsCellColDef = (params) => ({
450
+ cellRenderer: NgssmActionsCellRendererComponent,
451
+ cellRendererParams: params
452
+ });
453
+
390
454
  /*
391
455
  * Public API Surface of ngssm-ag-grid
392
456
  */
@@ -395,5 +459,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
395
459
  * Generated bundle index. Do not edit.
396
460
  */
397
461
 
398
- export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmAgGridDirective, NgssmAgGridModule, NgssmAgGridOptions, NgssmAgGridThemeDirective, RegisterAgGridStateAction, RegisterSelectedRowsAction, selectAgGridState, updateAgGridState };
462
+ export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmActionsCellRendererComponent, NgssmAgGridDirective, NgssmAgGridModule, NgssmAgGridOptions, NgssmAgGridThemeDirective, RegisterAgGridStateAction, RegisterSelectedRowsAction, getNgssmActionsCellColDef, selectAgGridState, updateAgGridState };
399
463
  //# sourceMappingURL=ngssm-ag-grid.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-ag-grid.mjs","sources":["../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid-action-type.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-ag-grid-state.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-selected-rows.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid.action.ts","../../../projects/ngssm-ag-grid/src/lib/state/ag-grid.state.ts","../../../projects/ngssm-ag-grid/src/lib/state/change-origin.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/grid-states.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/selected-rows.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid.module.ts","../../../projects/ngssm-ag-grid/src/public-api.ts","../../../projects/ngssm-ag-grid/src/ngssm-ag-grid.ts"],"sourcesContent":["export enum AgGridActionType {\n registerAgGridState = '[AgGridActionType] registerAgGridState',\n registerSelectedRows = '[AgGridActionType] registerSelectedRows',\n saveColumnsStateOnDisk = '[AgGridActionType] saveColumnsStateOnDisk',\n resetColumnsStateFromDisk = '[AgGridActionType] resetColumnsStateFromDisk'\n}\n","import { ColumnState } from 'ag-grid-community';\n\nimport { Action } from 'ngssm-store';\n\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterAgGridStateAction implements Action {\n public readonly type: string = AgGridActionType.registerAgGridState;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly columnStates: ColumnState[]) {}\n}\n","import { Action } from 'ngssm-store';\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterSelectedRowsAction implements Action {\n public readonly type: string = AgGridActionType.registerSelectedRows;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly ids: string[]) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(public readonly type: string, public readonly gridId: string) {}\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { GridState } from './grid-state';\nimport { SelectedRows } from './selected-rows';\n\nexport const selectAgGridState = (state: State): AgGridState => state[AgGridStateSpecification.featureStateKey] as AgGridState;\n\nexport const updateAgGridState = (state: State, command: Spec<AgGridState, never>): State =>\n update(state, {\n [AgGridStateSpecification.featureStateKey]: command\n });\n\nexport interface AgGridState {\n gridStates: { [key: string]: GridState };\n selectedRows: { [key: string]: SelectedRows };\n}\n\n@NgSsmFeatureState({\n featureStateKey: AgGridStateSpecification.featureStateKey,\n initialState: AgGridStateSpecification.initialState\n})\nexport class AgGridStateSpecification {\n public static readonly featureStateKey = 'ag-grid-state';\n public static readonly initialState: AgGridState = {\n gridStates: {},\n selectedRows: {}\n };\n}\n","export enum ChangeOrigin {\n agGrid = 'agGrid',\n other = 'other'\n}\n","import { InjectionToken } from '@angular/core';\nimport { StatusPanelDef } from 'ag-grid-community';\n\nexport class NgssmAgGridOptions {\n theme = 'ag-theme-material';\n statusBar:\n | {\n statusPanels: StatusPanelDef[];\n }\n | undefined = undefined;\n}\n\nexport const NGSSM_AG_GRID_OPTIONS = new InjectionToken<NgssmAgGridOptions>('NGSSM_AG_GRID_OPTIONS');\n","import { Directive, Inject, Input, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { GetContextMenuItemsParams, MenuItemDef } from 'ag-grid-community';\n\nimport { Store } from 'ngssm-store';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\nimport { NgssmAgGridConfig } from './ngssm-ag-grid-config';\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGrid]'\n})\nexport class NgssmAgGridDirective implements OnDestroy {\n private readonly unsubsribeAll$ = new Subject<void>();\n private readonly _config$ = new BehaviorSubject<NgssmAgGridConfig>({\n gridId: ''\n });\n\n constructor(\n private store: Store,\n private agGridAngular: AgGridAngular,\n @Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions\n ) {\n if (this.agGridAngular.statusBar === undefined) {\n this.agGridAngular.statusBar = options?.statusBar;\n }\n\n this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {\n combineLatest([\n this.store.state$.pipe(\n take(1),\n map((s) => selectAgGridState(s))\n ),\n this._config$\n ])\n .pipe(take(1))\n .subscribe((values) => {\n if (values[0].gridStates[values[1].gridId]) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0].gridStates[values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n\n if (values[0].selectedRows[values[1].gridId]) {\n if (values[1].keepSelection === true) {\n const ids = values[0].selectedRows[values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n }\n\n this.initSateChangeListener();\n });\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).gridStates)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0][values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).selectedRows)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other && values[1].keepSelection === true) {\n const ids = values[0][values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n });\n\n this.agGridAngular.getContextMenuItems = (params) => this.getContextMenuItems(params);\n }\n\n @Input('ngssmAgGrid') public set config(value: string | NgssmAgGridConfig) {\n if (typeof value === 'string') {\n this._config$.next({\n gridId: value as string\n });\n } else {\n this._config$.next(value as NgssmAgGridConfig);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubsribeAll$.next();\n this.unsubsribeAll$.complete();\n }\n\n private initSateChangeListener(): void {\n this.agGridAngular.sortChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.filterChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnPinned.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnResized.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.displayedColumnsChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.rowSelected.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.processSelectionChanged());\n }\n\n private saveGridState(): void {\n const state = this.agGridAngular.columnApi.getColumnState();\n this._config$\n .pipe(take(1))\n .subscribe((gridId) => this.store.dispatchAction(new RegisterAgGridStateAction(gridId.gridId, ChangeOrigin.agGrid, state)));\n }\n\n private processSelectionChanged(): void {\n const selectedRows = this.agGridAngular.api\n .getSelectedNodes()\n .map((n) => n.id ?? '')\n .filter((n) => n !== '');\n this._config$.pipe(take(1)).subscribe((config) => {\n if (config.keepSelection === true) {\n this.store.dispatchAction(new RegisterSelectedRowsAction(config.gridId, ChangeOrigin.agGrid, selectedRows));\n }\n });\n }\n\n private getContextMenuItems(params: GetContextMenuItemsParams): (string | MenuItemDef)[] {\n const menuItems: (string | MenuItemDef)[] = [...(params.defaultItems ?? [])];\n if (this._config$.getValue().canSaveOnDiskColumnsState === true) {\n menuItems.push(\n ...[\n 'separator',\n {\n name: 'Save columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.saveColumnsStateOnDisk, config.gridId))),\n icon: '<i class=\"fa-regular fa-floppy-disk\"></i>'\n },\n {\n name: 'Restore columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) =>\n this.store.dispatchAction(new AgGridAction(AgGridActionType.resetColumnsStateFromDisk, config.gridId))\n ),\n icon: '<i class=\"fa-solid fa-rotate-right\"></i>'\n },\n {\n name: 'Reset columns state to default',\n action: () => this.agGridAngular.columnApi.resetColumnState(),\n icon: '<i class=\"fa-solid fa-clock-rotate-left\"></i>'\n }\n ]\n );\n }\n return menuItems;\n }\n}\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class GridStatesReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerAgGridState];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerAgGridState:\n const registerAgGridStateAction = action as RegisterAgGridStateAction;\n return updateAgGridState(state, {\n gridStates: {\n [registerAgGridStateAction.gridId]: {\n $set: {\n origin: registerAgGridStateAction.origin,\n columnsState: registerAgGridStateAction.columnStates\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const gridStatesReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: GridStatesReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterSelectedRowsAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class SelectedRowsReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerSelectedRows];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerSelectedRows:\n const registerSelectedRowsAction = action as RegisterSelectedRowsAction;\n return updateAgGridState(state, {\n selectedRows: {\n [registerSelectedRowsAction.gridId]: {\n $set: {\n origin: registerSelectedRowsAction.origin,\n ids: registerSelectedRowsAction.ids\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const selectedRowsReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: SelectedRowsReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\nimport { Logger } from 'ngssm-toolkit';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\n\n@Injectable()\nexport class LocalStorageEffect implements Effect {\n public readonly processedActions: string[] = [AgGridActionType.saveColumnsStateOnDisk, AgGridActionType.resetColumnsStateFromDisk];\n\n constructor(private logger: Logger) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const agGridAction = action as AgGridAction;\n\n switch (action.type) {\n case AgGridActionType.saveColumnsStateOnDisk:\n const columnsState = selectAgGridState(state).gridStates[agGridAction.gridId];\n if (columnsState) {\n localStorage.setItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId), JSON.stringify(columnsState.columnsState));\n }\n\n break;\n\n case AgGridActionType.resetColumnsStateFromDisk:\n const stored = localStorage.getItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId));\n console.log(stored);\n if (stored) {\n try {\n const columnsState = JSON.parse(stored);\n if (Array.isArray(columnsState)) {\n store.dispatchAction(new RegisterAgGridStateAction(agGridAction.gridId, ChangeOrigin.other, columnsState));\n } else {\n this.logger.error(`Wrong columns state config for grid '${agGridAction.gridId}'`, stored);\n }\n } catch (error) {\n this.logger.error(`Unable to load config for grid '${agGridAction.gridId}'`, error);\n }\n }\n\n break;\n }\n }\n\n private getColumnsStateLocalStorageKey(gridId: string): string {\n return `ngssm-ag-grid_${gridId}`;\n }\n}\n\nexport const localStorageEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: LocalStorageEffect,\n multi: true\n};\n","import { Directive, HostBinding, Inject, Optional } from '@angular/core';\n\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGridTheme]'\n})\nexport class NgssmAgGridThemeDirective {\n @HostBinding('class') className = '';\n\n constructor(@Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions) {\n this.className = (options ?? new NgssmAgGridOptions()).theme;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgssmAgGridDirective } from './components/ngssm-ag-grid.directive';\nimport { gridStatesReducerProvider } from './reducers/grid-states.reducer';\nimport { selectedRowsReducerProvider } from './reducers/selected-rows.reducer';\nimport { localStorageEffectProvider } from './effects/local-storage.effect';\nimport { NgssmAgGridThemeDirective } from './components/ngssm-ag-grid-theme.directive';\n\n@NgModule({\n declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n imports: [],\n exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n providers: []\n})\nexport class NgssmAgGridModule {\n static forRoot(): ModuleWithProviders<NgssmAgGridModule> {\n return {\n ngModule: NgssmAgGridModule,\n providers: [gridStatesReducerProvider, selectedRowsReducerProvider, localStorageEffectProvider]\n };\n }\n}\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/ngssm-ag-grid.module';\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components/ngssm-ag-grid.directive';\nexport * from './lib/components/ngssm-ag-grid-config';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/components/ngssm-ag-grid-theme.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-ag-grid.mjs","sources":["../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid-action-type.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-ag-grid-state.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-selected-rows.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid.action.ts","../../../projects/ngssm-ag-grid/src/lib/state/ag-grid.state.ts","../../../projects/ngssm-ag-grid/src/lib/state/change-origin.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/grid-states.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/selected-rows.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.html","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid.module.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer-params.ts","../../../projects/ngssm-ag-grid/src/public-api.ts","../../../projects/ngssm-ag-grid/src/ngssm-ag-grid.ts"],"sourcesContent":["export enum AgGridActionType {\n registerAgGridState = '[AgGridActionType] registerAgGridState',\n registerSelectedRows = '[AgGridActionType] registerSelectedRows',\n saveColumnsStateOnDisk = '[AgGridActionType] saveColumnsStateOnDisk',\n resetColumnsStateFromDisk = '[AgGridActionType] resetColumnsStateFromDisk'\n}\n","import { ColumnState } from 'ag-grid-community';\n\nimport { Action } from 'ngssm-store';\n\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterAgGridStateAction implements Action {\n public readonly type: string = AgGridActionType.registerAgGridState;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly columnStates: ColumnState[]) {}\n}\n","import { Action } from 'ngssm-store';\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterSelectedRowsAction implements Action {\n public readonly type: string = AgGridActionType.registerSelectedRows;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly ids: string[]) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(public readonly type: string, public readonly gridId: string) {}\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { GridState } from './grid-state';\nimport { SelectedRows } from './selected-rows';\n\nexport const selectAgGridState = (state: State): AgGridState => state[AgGridStateSpecification.featureStateKey] as AgGridState;\n\nexport const updateAgGridState = (state: State, command: Spec<AgGridState, never>): State =>\n update(state, {\n [AgGridStateSpecification.featureStateKey]: command\n });\n\nexport interface AgGridState {\n gridStates: { [key: string]: GridState };\n selectedRows: { [key: string]: SelectedRows };\n}\n\n@NgSsmFeatureState({\n featureStateKey: AgGridStateSpecification.featureStateKey,\n initialState: AgGridStateSpecification.initialState\n})\nexport class AgGridStateSpecification {\n public static readonly featureStateKey = 'ag-grid-state';\n public static readonly initialState: AgGridState = {\n gridStates: {},\n selectedRows: {}\n };\n}\n","export enum ChangeOrigin {\n agGrid = 'agGrid',\n other = 'other'\n}\n","import { InjectionToken } from '@angular/core';\nimport { StatusPanelDef } from 'ag-grid-community';\n\nexport class NgssmAgGridOptions {\n theme = 'ag-theme-material';\n statusBar:\n | {\n statusPanels: StatusPanelDef[];\n }\n | undefined = undefined;\n}\n\nexport const NGSSM_AG_GRID_OPTIONS = new InjectionToken<NgssmAgGridOptions>('NGSSM_AG_GRID_OPTIONS');\n","import { Directive, Inject, Input, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { GetContextMenuItemsParams, MenuItemDef } from 'ag-grid-community';\n\nimport { Store } from 'ngssm-store';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\nimport { NgssmAgGridConfig } from './ngssm-ag-grid-config';\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGrid]'\n})\nexport class NgssmAgGridDirective implements OnDestroy {\n private readonly unsubsribeAll$ = new Subject<void>();\n private readonly _config$ = new BehaviorSubject<NgssmAgGridConfig>({\n gridId: ''\n });\n\n constructor(\n private store: Store,\n private agGridAngular: AgGridAngular,\n @Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions\n ) {\n if (this.agGridAngular.statusBar === undefined) {\n this.agGridAngular.statusBar = options?.statusBar;\n }\n\n this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {\n combineLatest([\n this.store.state$.pipe(\n take(1),\n map((s) => selectAgGridState(s))\n ),\n this._config$\n ])\n .pipe(take(1))\n .subscribe((values) => {\n if (values[0].gridStates[values[1].gridId]) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0].gridStates[values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n\n if (values[0].selectedRows[values[1].gridId]) {\n if (values[1].keepSelection === true) {\n const ids = values[0].selectedRows[values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n }\n\n this.initSateChangeListener();\n });\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).gridStates)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0][values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).selectedRows)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other && values[1].keepSelection === true) {\n const ids = values[0][values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n });\n\n this.agGridAngular.getContextMenuItems = (params) => this.getContextMenuItems(params);\n }\n\n @Input('ngssmAgGrid') public set config(value: string | NgssmAgGridConfig) {\n if (typeof value === 'string') {\n this._config$.next({\n gridId: value as string\n });\n } else {\n this._config$.next(value as NgssmAgGridConfig);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubsribeAll$.next();\n this.unsubsribeAll$.complete();\n }\n\n private initSateChangeListener(): void {\n this.agGridAngular.sortChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.filterChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnPinned.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnResized.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.displayedColumnsChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.rowSelected.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.processSelectionChanged());\n }\n\n private saveGridState(): void {\n const state = this.agGridAngular.columnApi.getColumnState();\n this._config$\n .pipe(take(1))\n .subscribe((gridId) => this.store.dispatchAction(new RegisterAgGridStateAction(gridId.gridId, ChangeOrigin.agGrid, state)));\n }\n\n private processSelectionChanged(): void {\n const selectedRows = this.agGridAngular.api\n .getSelectedNodes()\n .map((n) => n.id ?? '')\n .filter((n) => n !== '');\n this._config$.pipe(take(1)).subscribe((config) => {\n if (config.keepSelection === true) {\n this.store.dispatchAction(new RegisterSelectedRowsAction(config.gridId, ChangeOrigin.agGrid, selectedRows));\n }\n });\n }\n\n private getContextMenuItems(params: GetContextMenuItemsParams): (string | MenuItemDef)[] {\n const menuItems: (string | MenuItemDef)[] = [...(params.defaultItems ?? [])];\n if (this._config$.getValue().canSaveOnDiskColumnsState === true) {\n menuItems.push(\n ...[\n 'separator',\n {\n name: 'Save columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.saveColumnsStateOnDisk, config.gridId))),\n icon: '<i class=\"fa-regular fa-floppy-disk\"></i>'\n },\n {\n name: 'Restore columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) =>\n this.store.dispatchAction(new AgGridAction(AgGridActionType.resetColumnsStateFromDisk, config.gridId))\n ),\n icon: '<i class=\"fa-solid fa-rotate-right\"></i>'\n },\n {\n name: 'Reset columns state to default',\n action: () => this.agGridAngular.columnApi.resetColumnState(),\n icon: '<i class=\"fa-solid fa-clock-rotate-left\"></i>'\n }\n ]\n );\n }\n return menuItems;\n }\n}\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class GridStatesReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerAgGridState];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerAgGridState:\n const registerAgGridStateAction = action as RegisterAgGridStateAction;\n return updateAgGridState(state, {\n gridStates: {\n [registerAgGridStateAction.gridId]: {\n $set: {\n origin: registerAgGridStateAction.origin,\n columnsState: registerAgGridStateAction.columnStates\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const gridStatesReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: GridStatesReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterSelectedRowsAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class SelectedRowsReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerSelectedRows];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerSelectedRows:\n const registerSelectedRowsAction = action as RegisterSelectedRowsAction;\n return updateAgGridState(state, {\n selectedRows: {\n [registerSelectedRowsAction.gridId]: {\n $set: {\n origin: registerSelectedRowsAction.origin,\n ids: registerSelectedRowsAction.ids\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const selectedRowsReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: SelectedRowsReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\nimport { Logger } from 'ngssm-toolkit';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\n\n@Injectable()\nexport class LocalStorageEffect implements Effect {\n public readonly processedActions: string[] = [AgGridActionType.saveColumnsStateOnDisk, AgGridActionType.resetColumnsStateFromDisk];\n\n constructor(private logger: Logger) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const agGridAction = action as AgGridAction;\n\n switch (action.type) {\n case AgGridActionType.saveColumnsStateOnDisk:\n const columnsState = selectAgGridState(state).gridStates[agGridAction.gridId];\n if (columnsState) {\n localStorage.setItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId), JSON.stringify(columnsState.columnsState));\n }\n\n break;\n\n case AgGridActionType.resetColumnsStateFromDisk:\n const stored = localStorage.getItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId));\n console.log(stored);\n if (stored) {\n try {\n const columnsState = JSON.parse(stored);\n if (Array.isArray(columnsState)) {\n store.dispatchAction(new RegisterAgGridStateAction(agGridAction.gridId, ChangeOrigin.other, columnsState));\n } else {\n this.logger.error(`Wrong columns state config for grid '${agGridAction.gridId}'`, stored);\n }\n } catch (error) {\n this.logger.error(`Unable to load config for grid '${agGridAction.gridId}'`, error);\n }\n }\n\n break;\n }\n }\n\n private getColumnsStateLocalStorageKey(gridId: string): string {\n return `ngssm-ag-grid_${gridId}`;\n }\n}\n\nexport const localStorageEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: LocalStorageEffect,\n multi: true\n};\n","import { Directive, HostBinding, Inject, Optional } from '@angular/core';\n\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGridTheme]'\n})\nexport class NgssmAgGridThemeDirective {\n @HostBinding('class') className = '';\n\n constructor(@Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions) {\n this.className = (options ?? new NgssmAgGridOptions()).theme;\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BehaviorSubject, isObservable, Observable, takeUntil } from 'rxjs';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { NgssmActionsCellRendererParams } from './ngssm-actions-cell-renderer-params';\nimport { ActionConfig } from './action-config';\n\ninterface ActionButton {\n cssClass: string;\n color: string;\n disabled$: BehaviorSubject<boolean>;\n\n actionConfig: ActionConfig;\n}\n\n@Component({\n selector: 'ngssm-actions-cell-renderer',\n templateUrl: './ngssm-actions-cell-renderer.component.html',\n styleUrls: ['./ngssm-actions-cell-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmActionsCellRendererComponent extends NgSsmComponent implements ICellRendererAngularComp {\n private readonly _actionButtons$ = new BehaviorSubject<ActionButton[]>([]);\n\n private cellParams: ICellRendererParams<any, any> | undefined;\n\n constructor(store: Store) {\n super(store);\n }\n\n public get actionButtons$(): Observable<ActionButton[]> {\n return this._actionButtons$.asObservable();\n }\n\n public agInit(params: ICellRendererParams<any, any>): void {\n this.cellParams = params;\n this.setupActions(params as any);\n }\n\n public refresh(params: ICellRendererParams<any, any>): boolean {\n this.cellParams = params;\n this._actionButtons$.getValue().forEach((a) => {\n if (a.actionConfig.isDisabled instanceof Function) {\n a.disabled$.next(a.actionConfig.isDisabled(params as any));\n }\n });\n return true;\n }\n\n public executeAction(action: ActionButton): void {\n action.actionConfig.click?.(this.cellParams as any);\n }\n\n private setupActions(rendererParams: NgssmActionsCellRendererParams): void {\n const actionButtons: ActionButton[] = (rendererParams?.actions ?? []).map((a) => {\n const actionButton: ActionButton = {\n cssClass: a.cssClass,\n color: a.color ?? 'primary',\n disabled$: new BehaviorSubject<boolean>(false),\n actionConfig: a\n };\n\n if (a.isDisabled instanceof Function) {\n actionButton.disabled$.next(a.isDisabled(rendererParams as any));\n } else if (isObservable(a.isDisabled)) {\n a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));\n }\n\n return actionButton;\n });\n\n this._actionButtons$.next(actionButtons);\n }\n}\n","<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { NgssmAgGridDirective } from './components/ngssm-ag-grid.directive';\nimport { gridStatesReducerProvider } from './reducers/grid-states.reducer';\nimport { selectedRowsReducerProvider } from './reducers/selected-rows.reducer';\nimport { localStorageEffectProvider } from './effects/local-storage.effect';\nimport { NgssmAgGridThemeDirective } from './components/ngssm-ag-grid-theme.directive';\nimport { NgssmActionsCellRendererComponent } from './components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component';\n\n@NgModule({\n declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule],\n exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n providers: []\n})\nexport class NgssmAgGridModule {\n static forRoot(): ModuleWithProviders<NgssmAgGridModule> {\n return {\n ngModule: NgssmAgGridModule,\n providers: [gridStatesReducerProvider, selectedRowsReducerProvider, localStorageEffectProvider]\n };\n }\n}\n","import { ColDef } from 'ag-grid-community';\n\nimport { ActionConfig } from './action-config';\nimport { NgssmActionsCellRendererComponent } from './ngssm-actions-cell-renderer.component';\n\n// Parameters of the actions cell renderer\n// For now, an action is rendered as a mat-icon-button with the class passed in ActionConfig\nexport interface NgssmActionsCellRendererParams<TData = any, TValue = any> {\n actions: ActionConfig<TData, TValue>[];\n}\n\nexport const getNgssmActionsCellColDef = <TData = any, TValue = any>(\n params: NgssmActionsCellRendererParams<TData, TValue>\n): Partial<ColDef> => ({\n cellRenderer: NgssmActionsCellRendererComponent,\n cellRendererParams: params\n});\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/ngssm-ag-grid.module';\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components/ngssm-ag-grid.directive';\nexport * from './lib/components/ngssm-ag-grid-config';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/components/ngssm-ag-grid-theme.directive';\nexport * from './lib/components/ngssm-actions-cell-renderer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Directive, Inject, Optional, Input, Injectable, HostBinding, NgModule } from '@angular/core';
3
- import { Subject, BehaviorSubject, take, combineLatest, map, takeUntil } from 'rxjs';
2
+ import { InjectionToken, Directive, Inject, Optional, Input, Injectable, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import * as i2$1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i3 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i4 from '@angular/material/icon';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { Subject, BehaviorSubject, take, combineLatest, map, takeUntil, isObservable } from 'rxjs';
4
10
  import { __decorate } from 'tslib';
5
11
  import update from 'immutability-helper';
6
12
  import * as i1 from 'ngssm-store';
7
- import { NgSsmFeatureState, NGSSM_REDUCER, NGSSM_EFFECT } from 'ngssm-store';
13
+ import { NgSsmFeatureState, NGSSM_REDUCER, NGSSM_EFFECT, NgSsmComponent } from 'ngssm-store';
8
14
  import * as i2 from 'ag-grid-angular';
9
15
  import * as i1$1 from 'ngssm-toolkit';
10
16
 
@@ -203,9 +209,9 @@ class NgssmAgGridDirective {
203
209
  return menuItems;
204
210
  }
205
211
  }
206
- NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
207
- NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
212
+ NgssmAgGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
213
+ NgssmAgGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridDirective, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 });
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
209
215
  type: Directive,
210
216
  args: [{
211
217
  selector: '[ngssmAgGrid]'
@@ -242,9 +248,9 @@ class GridStatesReducer {
242
248
  return state;
243
249
  }
244
250
  }
245
- GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
246
- GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: GridStatesReducer, decorators: [{
251
+ GridStatesReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
252
+ GridStatesReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer });
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GridStatesReducer, decorators: [{
248
254
  type: Injectable
249
255
  }] });
250
256
  const gridStatesReducerProvider = {
@@ -275,9 +281,9 @@ class SelectedRowsReducer {
275
281
  return state;
276
282
  }
277
283
  }
278
- SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
279
- SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer });
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectedRowsReducer, decorators: [{
284
+ SelectedRowsReducer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
285
+ SelectedRowsReducer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer });
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SelectedRowsReducer, decorators: [{
281
287
  type: Injectable
282
288
  }] });
283
289
  const selectedRowsReducerProvider = {
@@ -324,9 +330,9 @@ class LocalStorageEffect {
324
330
  return `ngssm-ag-grid_${gridId}`;
325
331
  }
326
332
  }
327
- LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1$1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
328
- LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect });
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocalStorageEffect, decorators: [{
333
+ LocalStorageEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, deps: [{ token: i1$1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
334
+ LocalStorageEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect });
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: LocalStorageEffect, decorators: [{
330
336
  type: Injectable
331
337
  }], ctorParameters: function () { return [{ type: i1$1.Logger }]; } });
332
338
  const localStorageEffectProvider = {
@@ -341,9 +347,9 @@ class NgssmAgGridThemeDirective {
341
347
  this.className = (options ?? new NgssmAgGridOptions()).theme;
342
348
  }
343
349
  }
344
- NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
345
- NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
350
+ NgssmAgGridThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
351
+ NgssmAgGridThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgssmAgGridThemeDirective, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
347
353
  type: Directive,
348
354
  args: [{
349
355
  selector: '[ngssmAgGridTheme]'
@@ -358,6 +364,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
358
364
  args: ['class']
359
365
  }] } });
360
366
 
367
+ class NgssmActionsCellRendererComponent extends NgSsmComponent {
368
+ constructor(store) {
369
+ super(store);
370
+ this._actionButtons$ = new BehaviorSubject([]);
371
+ }
372
+ get actionButtons$() {
373
+ return this._actionButtons$.asObservable();
374
+ }
375
+ agInit(params) {
376
+ this.cellParams = params;
377
+ this.setupActions(params);
378
+ }
379
+ refresh(params) {
380
+ this.cellParams = params;
381
+ this._actionButtons$.getValue().forEach((a) => {
382
+ if (a.actionConfig.isDisabled instanceof Function) {
383
+ a.disabled$.next(a.actionConfig.isDisabled(params));
384
+ }
385
+ });
386
+ return true;
387
+ }
388
+ executeAction(action) {
389
+ action.actionConfig.click?.(this.cellParams);
390
+ }
391
+ setupActions(rendererParams) {
392
+ const actionButtons = (rendererParams?.actions ?? []).map((a) => {
393
+ const actionButton = {
394
+ cssClass: a.cssClass,
395
+ color: a.color ?? 'primary',
396
+ disabled$: new BehaviorSubject(false),
397
+ actionConfig: a
398
+ };
399
+ if (a.isDisabled instanceof Function) {
400
+ actionButton.disabled$.next(a.isDisabled(rendererParams));
401
+ }
402
+ else if (isObservable(a.isDisabled)) {
403
+ a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));
404
+ }
405
+ return actionButton;
406
+ });
407
+ this._actionButtons$.next(actionButtons);
408
+ }
409
+ }
410
+ NgssmActionsCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
411
+ NgssmActionsCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgssmActionsCellRendererComponent, selector: "ngssm-actions-cell-renderer", usesInheritance: true, ngImport: i0, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmActionsCellRendererComponent, decorators: [{
413
+ type: Component,
414
+ args: [{ selector: 'ngssm-actions-cell-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>" }]
415
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
416
+
361
417
  class NgssmAgGridModule {
362
418
  static forRoot() {
363
419
  return {
@@ -366,19 +422,24 @@ class NgssmAgGridModule {
366
422
  };
367
423
  }
368
424
  }
369
- NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
370
- NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
371
- NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule });
372
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgssmAgGridModule, decorators: [{
425
+ NgssmAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
426
+ NgssmAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent], imports: [CommonModule, MatButtonModule, MatIconModule], exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective] });
427
+ NgssmAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, imports: [CommonModule, MatButtonModule, MatIconModule] });
428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgssmAgGridModule, decorators: [{
373
429
  type: NgModule,
374
430
  args: [{
375
- declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
376
- imports: [],
431
+ declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent],
432
+ imports: [CommonModule, MatButtonModule, MatIconModule],
377
433
  exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],
378
434
  providers: []
379
435
  }]
380
436
  }] });
381
437
 
438
+ const getNgssmActionsCellColDef = (params) => ({
439
+ cellRenderer: NgssmActionsCellRendererComponent,
440
+ cellRendererParams: params
441
+ });
442
+
382
443
  /*
383
444
  * Public API Surface of ngssm-ag-grid
384
445
  */
@@ -387,5 +448,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
387
448
  * Generated bundle index. Do not edit.
388
449
  */
389
450
 
390
- export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmAgGridDirective, NgssmAgGridModule, NgssmAgGridOptions, NgssmAgGridThemeDirective, RegisterAgGridStateAction, RegisterSelectedRowsAction, selectAgGridState, updateAgGridState };
451
+ export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmActionsCellRendererComponent, NgssmAgGridDirective, NgssmAgGridModule, NgssmAgGridOptions, NgssmAgGridThemeDirective, RegisterAgGridStateAction, RegisterSelectedRowsAction, getNgssmActionsCellColDef, selectAgGridState, updateAgGridState };
391
452
  //# sourceMappingURL=ngssm-ag-grid.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-ag-grid.mjs","sources":["../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid-action-type.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-ag-grid-state.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-selected-rows.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid.action.ts","../../../projects/ngssm-ag-grid/src/lib/state/ag-grid.state.ts","../../../projects/ngssm-ag-grid/src/lib/state/change-origin.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/grid-states.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/selected-rows.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid.module.ts","../../../projects/ngssm-ag-grid/src/public-api.ts","../../../projects/ngssm-ag-grid/src/ngssm-ag-grid.ts"],"sourcesContent":["export enum AgGridActionType {\n registerAgGridState = '[AgGridActionType] registerAgGridState',\n registerSelectedRows = '[AgGridActionType] registerSelectedRows',\n saveColumnsStateOnDisk = '[AgGridActionType] saveColumnsStateOnDisk',\n resetColumnsStateFromDisk = '[AgGridActionType] resetColumnsStateFromDisk'\n}\n","import { ColumnState } from 'ag-grid-community';\n\nimport { Action } from 'ngssm-store';\n\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterAgGridStateAction implements Action {\n public readonly type: string = AgGridActionType.registerAgGridState;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly columnStates: ColumnState[]) {}\n}\n","import { Action } from 'ngssm-store';\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterSelectedRowsAction implements Action {\n public readonly type: string = AgGridActionType.registerSelectedRows;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly ids: string[]) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(public readonly type: string, public readonly gridId: string) {}\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { GridState } from './grid-state';\nimport { SelectedRows } from './selected-rows';\n\nexport const selectAgGridState = (state: State): AgGridState => state[AgGridStateSpecification.featureStateKey] as AgGridState;\n\nexport const updateAgGridState = (state: State, command: Spec<AgGridState, never>): State =>\n update(state, {\n [AgGridStateSpecification.featureStateKey]: command\n });\n\nexport interface AgGridState {\n gridStates: { [key: string]: GridState };\n selectedRows: { [key: string]: SelectedRows };\n}\n\n@NgSsmFeatureState({\n featureStateKey: AgGridStateSpecification.featureStateKey,\n initialState: AgGridStateSpecification.initialState\n})\nexport class AgGridStateSpecification {\n public static readonly featureStateKey = 'ag-grid-state';\n public static readonly initialState: AgGridState = {\n gridStates: {},\n selectedRows: {}\n };\n}\n","export enum ChangeOrigin {\n agGrid = 'agGrid',\n other = 'other'\n}\n","import { InjectionToken } from '@angular/core';\nimport { StatusPanelDef } from 'ag-grid-community';\n\nexport class NgssmAgGridOptions {\n theme = 'ag-theme-material';\n statusBar:\n | {\n statusPanels: StatusPanelDef[];\n }\n | undefined = undefined;\n}\n\nexport const NGSSM_AG_GRID_OPTIONS = new InjectionToken<NgssmAgGridOptions>('NGSSM_AG_GRID_OPTIONS');\n","import { Directive, Inject, Input, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { GetContextMenuItemsParams, MenuItemDef } from 'ag-grid-community';\n\nimport { Store } from 'ngssm-store';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\nimport { NgssmAgGridConfig } from './ngssm-ag-grid-config';\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGrid]'\n})\nexport class NgssmAgGridDirective implements OnDestroy {\n private readonly unsubsribeAll$ = new Subject<void>();\n private readonly _config$ = new BehaviorSubject<NgssmAgGridConfig>({\n gridId: ''\n });\n\n constructor(\n private store: Store,\n private agGridAngular: AgGridAngular,\n @Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions\n ) {\n if (this.agGridAngular.statusBar === undefined) {\n this.agGridAngular.statusBar = options?.statusBar;\n }\n\n this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {\n combineLatest([\n this.store.state$.pipe(\n take(1),\n map((s) => selectAgGridState(s))\n ),\n this._config$\n ])\n .pipe(take(1))\n .subscribe((values) => {\n if (values[0].gridStates[values[1].gridId]) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0].gridStates[values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n\n if (values[0].selectedRows[values[1].gridId]) {\n if (values[1].keepSelection === true) {\n const ids = values[0].selectedRows[values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n }\n\n this.initSateChangeListener();\n });\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).gridStates)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0][values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).selectedRows)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other && values[1].keepSelection === true) {\n const ids = values[0][values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n });\n\n this.agGridAngular.getContextMenuItems = (params) => this.getContextMenuItems(params);\n }\n\n @Input('ngssmAgGrid') public set config(value: string | NgssmAgGridConfig) {\n if (typeof value === 'string') {\n this._config$.next({\n gridId: value as string\n });\n } else {\n this._config$.next(value as NgssmAgGridConfig);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubsribeAll$.next();\n this.unsubsribeAll$.complete();\n }\n\n private initSateChangeListener(): void {\n this.agGridAngular.sortChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.filterChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnPinned.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnResized.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.displayedColumnsChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.rowSelected.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.processSelectionChanged());\n }\n\n private saveGridState(): void {\n const state = this.agGridAngular.columnApi.getColumnState();\n this._config$\n .pipe(take(1))\n .subscribe((gridId) => this.store.dispatchAction(new RegisterAgGridStateAction(gridId.gridId, ChangeOrigin.agGrid, state)));\n }\n\n private processSelectionChanged(): void {\n const selectedRows = this.agGridAngular.api\n .getSelectedNodes()\n .map((n) => n.id ?? '')\n .filter((n) => n !== '');\n this._config$.pipe(take(1)).subscribe((config) => {\n if (config.keepSelection === true) {\n this.store.dispatchAction(new RegisterSelectedRowsAction(config.gridId, ChangeOrigin.agGrid, selectedRows));\n }\n });\n }\n\n private getContextMenuItems(params: GetContextMenuItemsParams): (string | MenuItemDef)[] {\n const menuItems: (string | MenuItemDef)[] = [...(params.defaultItems ?? [])];\n if (this._config$.getValue().canSaveOnDiskColumnsState === true) {\n menuItems.push(\n ...[\n 'separator',\n {\n name: 'Save columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.saveColumnsStateOnDisk, config.gridId))),\n icon: '<i class=\"fa-regular fa-floppy-disk\"></i>'\n },\n {\n name: 'Restore columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) =>\n this.store.dispatchAction(new AgGridAction(AgGridActionType.resetColumnsStateFromDisk, config.gridId))\n ),\n icon: '<i class=\"fa-solid fa-rotate-right\"></i>'\n },\n {\n name: 'Reset columns state to default',\n action: () => this.agGridAngular.columnApi.resetColumnState(),\n icon: '<i class=\"fa-solid fa-clock-rotate-left\"></i>'\n }\n ]\n );\n }\n return menuItems;\n }\n}\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class GridStatesReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerAgGridState];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerAgGridState:\n const registerAgGridStateAction = action as RegisterAgGridStateAction;\n return updateAgGridState(state, {\n gridStates: {\n [registerAgGridStateAction.gridId]: {\n $set: {\n origin: registerAgGridStateAction.origin,\n columnsState: registerAgGridStateAction.columnStates\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const gridStatesReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: GridStatesReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterSelectedRowsAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class SelectedRowsReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerSelectedRows];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerSelectedRows:\n const registerSelectedRowsAction = action as RegisterSelectedRowsAction;\n return updateAgGridState(state, {\n selectedRows: {\n [registerSelectedRowsAction.gridId]: {\n $set: {\n origin: registerSelectedRowsAction.origin,\n ids: registerSelectedRowsAction.ids\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const selectedRowsReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: SelectedRowsReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\nimport { Logger } from 'ngssm-toolkit';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\n\n@Injectable()\nexport class LocalStorageEffect implements Effect {\n public readonly processedActions: string[] = [AgGridActionType.saveColumnsStateOnDisk, AgGridActionType.resetColumnsStateFromDisk];\n\n constructor(private logger: Logger) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const agGridAction = action as AgGridAction;\n\n switch (action.type) {\n case AgGridActionType.saveColumnsStateOnDisk:\n const columnsState = selectAgGridState(state).gridStates[agGridAction.gridId];\n if (columnsState) {\n localStorage.setItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId), JSON.stringify(columnsState.columnsState));\n }\n\n break;\n\n case AgGridActionType.resetColumnsStateFromDisk:\n const stored = localStorage.getItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId));\n console.log(stored);\n if (stored) {\n try {\n const columnsState = JSON.parse(stored);\n if (Array.isArray(columnsState)) {\n store.dispatchAction(new RegisterAgGridStateAction(agGridAction.gridId, ChangeOrigin.other, columnsState));\n } else {\n this.logger.error(`Wrong columns state config for grid '${agGridAction.gridId}'`, stored);\n }\n } catch (error) {\n this.logger.error(`Unable to load config for grid '${agGridAction.gridId}'`, error);\n }\n }\n\n break;\n }\n }\n\n private getColumnsStateLocalStorageKey(gridId: string): string {\n return `ngssm-ag-grid_${gridId}`;\n }\n}\n\nexport const localStorageEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: LocalStorageEffect,\n multi: true\n};\n","import { Directive, HostBinding, Inject, Optional } from '@angular/core';\n\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGridTheme]'\n})\nexport class NgssmAgGridThemeDirective {\n @HostBinding('class') className = '';\n\n constructor(@Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions) {\n this.className = (options ?? new NgssmAgGridOptions()).theme;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgssmAgGridDirective } from './components/ngssm-ag-grid.directive';\nimport { gridStatesReducerProvider } from './reducers/grid-states.reducer';\nimport { selectedRowsReducerProvider } from './reducers/selected-rows.reducer';\nimport { localStorageEffectProvider } from './effects/local-storage.effect';\nimport { NgssmAgGridThemeDirective } from './components/ngssm-ag-grid-theme.directive';\n\n@NgModule({\n declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n imports: [],\n exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n providers: []\n})\nexport class NgssmAgGridModule {\n static forRoot(): ModuleWithProviders<NgssmAgGridModule> {\n return {\n ngModule: NgssmAgGridModule,\n providers: [gridStatesReducerProvider, selectedRowsReducerProvider, localStorageEffectProvider]\n };\n }\n}\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/ngssm-ag-grid.module';\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components/ngssm-ag-grid.directive';\nexport * from './lib/components/ngssm-ag-grid-config';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/components/ngssm-ag-grid-theme.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-ag-grid.mjs","sources":["../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid-action-type.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-ag-grid-state.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/register-selected-rows.action.ts","../../../projects/ngssm-ag-grid/src/lib/actions/ag-grid.action.ts","../../../projects/ngssm-ag-grid/src/lib/state/ag-grid.state.ts","../../../projects/ngssm-ag-grid/src/lib/state/change-origin.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/grid-states.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/reducers/selected-rows.reducer.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component.html","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid.module.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer-params.ts","../../../projects/ngssm-ag-grid/src/public-api.ts","../../../projects/ngssm-ag-grid/src/ngssm-ag-grid.ts"],"sourcesContent":["export enum AgGridActionType {\n registerAgGridState = '[AgGridActionType] registerAgGridState',\n registerSelectedRows = '[AgGridActionType] registerSelectedRows',\n saveColumnsStateOnDisk = '[AgGridActionType] saveColumnsStateOnDisk',\n resetColumnsStateFromDisk = '[AgGridActionType] resetColumnsStateFromDisk'\n}\n","import { ColumnState } from 'ag-grid-community';\n\nimport { Action } from 'ngssm-store';\n\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterAgGridStateAction implements Action {\n public readonly type: string = AgGridActionType.registerAgGridState;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly columnStates: ColumnState[]) {}\n}\n","import { Action } from 'ngssm-store';\nimport { ChangeOrigin } from '../state';\nimport { AgGridActionType } from './ag-grid-action-type';\n\nexport class RegisterSelectedRowsAction implements Action {\n public readonly type: string = AgGridActionType.registerSelectedRows;\n\n constructor(public readonly gridId: string, public readonly origin: ChangeOrigin, public readonly ids: string[]) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(public readonly type: string, public readonly gridId: string) {}\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\nimport { GridState } from './grid-state';\nimport { SelectedRows } from './selected-rows';\n\nexport const selectAgGridState = (state: State): AgGridState => state[AgGridStateSpecification.featureStateKey] as AgGridState;\n\nexport const updateAgGridState = (state: State, command: Spec<AgGridState, never>): State =>\n update(state, {\n [AgGridStateSpecification.featureStateKey]: command\n });\n\nexport interface AgGridState {\n gridStates: { [key: string]: GridState };\n selectedRows: { [key: string]: SelectedRows };\n}\n\n@NgSsmFeatureState({\n featureStateKey: AgGridStateSpecification.featureStateKey,\n initialState: AgGridStateSpecification.initialState\n})\nexport class AgGridStateSpecification {\n public static readonly featureStateKey = 'ag-grid-state';\n public static readonly initialState: AgGridState = {\n gridStates: {},\n selectedRows: {}\n };\n}\n","export enum ChangeOrigin {\n agGrid = 'agGrid',\n other = 'other'\n}\n","import { InjectionToken } from '@angular/core';\nimport { StatusPanelDef } from 'ag-grid-community';\n\nexport class NgssmAgGridOptions {\n theme = 'ag-theme-material';\n statusBar:\n | {\n statusPanels: StatusPanelDef[];\n }\n | undefined = undefined;\n}\n\nexport const NGSSM_AG_GRID_OPTIONS = new InjectionToken<NgssmAgGridOptions>('NGSSM_AG_GRID_OPTIONS');\n","import { Directive, Inject, Input, OnDestroy, Optional } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { GetContextMenuItemsParams, MenuItemDef } from 'ag-grid-community';\n\nimport { Store } from 'ngssm-store';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\nimport { NgssmAgGridConfig } from './ngssm-ag-grid-config';\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGrid]'\n})\nexport class NgssmAgGridDirective implements OnDestroy {\n private readonly unsubsribeAll$ = new Subject<void>();\n private readonly _config$ = new BehaviorSubject<NgssmAgGridConfig>({\n gridId: ''\n });\n\n constructor(\n private store: Store,\n private agGridAngular: AgGridAngular,\n @Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions\n ) {\n if (this.agGridAngular.statusBar === undefined) {\n this.agGridAngular.statusBar = options?.statusBar;\n }\n\n this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {\n combineLatest([\n this.store.state$.pipe(\n take(1),\n map((s) => selectAgGridState(s))\n ),\n this._config$\n ])\n .pipe(take(1))\n .subscribe((values) => {\n if (values[0].gridStates[values[1].gridId]) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0].gridStates[values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n\n if (values[0].selectedRows[values[1].gridId]) {\n if (values[1].keepSelection === true) {\n const ids = values[0].selectedRows[values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n }\n\n this.initSateChangeListener();\n });\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).gridStates)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other) {\n this.agGridAngular.columnApi.applyColumnState({\n state: values[0][values[1].gridId].columnsState,\n applyOrder: true\n });\n }\n });\n\n combineLatest([this.store.state$.pipe(map((s) => selectAgGridState(s).selectedRows)), this._config$])\n .pipe(takeUntil(this.unsubsribeAll$))\n .subscribe((values) => {\n if (values[0][values[1].gridId]?.origin === ChangeOrigin.other && values[1].keepSelection === true) {\n const ids = values[0][values[1].gridId]?.ids ?? [];\n this.agGridAngular.api.forEachNode((node) => {\n if (node.id) {\n node.setSelected(ids.includes(node.id));\n }\n });\n }\n });\n\n this.agGridAngular.getContextMenuItems = (params) => this.getContextMenuItems(params);\n }\n\n @Input('ngssmAgGrid') public set config(value: string | NgssmAgGridConfig) {\n if (typeof value === 'string') {\n this._config$.next({\n gridId: value as string\n });\n } else {\n this._config$.next(value as NgssmAgGridConfig);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubsribeAll$.next();\n this.unsubsribeAll$.complete();\n }\n\n private initSateChangeListener(): void {\n this.agGridAngular.sortChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.filterChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnPinned.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.columnResized.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.displayedColumnsChanged.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.saveGridState());\n this.agGridAngular.rowSelected.pipe(takeUntil(this.unsubsribeAll$)).subscribe(() => this.processSelectionChanged());\n }\n\n private saveGridState(): void {\n const state = this.agGridAngular.columnApi.getColumnState();\n this._config$\n .pipe(take(1))\n .subscribe((gridId) => this.store.dispatchAction(new RegisterAgGridStateAction(gridId.gridId, ChangeOrigin.agGrid, state)));\n }\n\n private processSelectionChanged(): void {\n const selectedRows = this.agGridAngular.api\n .getSelectedNodes()\n .map((n) => n.id ?? '')\n .filter((n) => n !== '');\n this._config$.pipe(take(1)).subscribe((config) => {\n if (config.keepSelection === true) {\n this.store.dispatchAction(new RegisterSelectedRowsAction(config.gridId, ChangeOrigin.agGrid, selectedRows));\n }\n });\n }\n\n private getContextMenuItems(params: GetContextMenuItemsParams): (string | MenuItemDef)[] {\n const menuItems: (string | MenuItemDef)[] = [...(params.defaultItems ?? [])];\n if (this._config$.getValue().canSaveOnDiskColumnsState === true) {\n menuItems.push(\n ...[\n 'separator',\n {\n name: 'Save columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) => this.store.dispatchAction(new AgGridAction(AgGridActionType.saveColumnsStateOnDisk, config.gridId))),\n icon: '<i class=\"fa-regular fa-floppy-disk\"></i>'\n },\n {\n name: 'Restore columns state',\n action: () =>\n this._config$\n .pipe(take(1))\n .subscribe((config) =>\n this.store.dispatchAction(new AgGridAction(AgGridActionType.resetColumnsStateFromDisk, config.gridId))\n ),\n icon: '<i class=\"fa-solid fa-rotate-right\"></i>'\n },\n {\n name: 'Reset columns state to default',\n action: () => this.agGridAngular.columnApi.resetColumnState(),\n icon: '<i class=\"fa-solid fa-clock-rotate-left\"></i>'\n }\n ]\n );\n }\n return menuItems;\n }\n}\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class GridStatesReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerAgGridState];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerAgGridState:\n const registerAgGridStateAction = action as RegisterAgGridStateAction;\n return updateAgGridState(state, {\n gridStates: {\n [registerAgGridStateAction.gridId]: {\n $set: {\n origin: registerAgGridStateAction.origin,\n columnsState: registerAgGridStateAction.columnStates\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const gridStatesReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: GridStatesReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Reducer, State, Action, NGSSM_REDUCER } from 'ngssm-store';\n\nimport { AgGridActionType, RegisterSelectedRowsAction } from '../actions';\nimport { updateAgGridState } from '../state';\n\n@Injectable()\nexport class SelectedRowsReducer implements Reducer {\n public readonly processedActions: string[] = [AgGridActionType.registerSelectedRows];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case AgGridActionType.registerSelectedRows:\n const registerSelectedRowsAction = action as RegisterSelectedRowsAction;\n return updateAgGridState(state, {\n selectedRows: {\n [registerSelectedRowsAction.gridId]: {\n $set: {\n origin: registerSelectedRowsAction.origin,\n ids: registerSelectedRowsAction.ids\n }\n }\n }\n });\n }\n\n return state;\n }\n}\n\nexport const selectedRowsReducerProvider: Provider = {\n provide: NGSSM_REDUCER,\n useClass: SelectedRowsReducer,\n multi: true\n};\n","import { Injectable, Provider } from '@angular/core';\n\nimport { Effect, Store, State, Action, NGSSM_EFFECT } from 'ngssm-store';\nimport { Logger } from 'ngssm-toolkit';\n\nimport { AgGridAction, AgGridActionType, RegisterAgGridStateAction } from '../actions';\nimport { ChangeOrigin, selectAgGridState } from '../state';\n\n@Injectable()\nexport class LocalStorageEffect implements Effect {\n public readonly processedActions: string[] = [AgGridActionType.saveColumnsStateOnDisk, AgGridActionType.resetColumnsStateFromDisk];\n\n constructor(private logger: Logger) {}\n\n public processAction(store: Store, state: State, action: Action): void {\n const agGridAction = action as AgGridAction;\n\n switch (action.type) {\n case AgGridActionType.saveColumnsStateOnDisk:\n const columnsState = selectAgGridState(state).gridStates[agGridAction.gridId];\n if (columnsState) {\n localStorage.setItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId), JSON.stringify(columnsState.columnsState));\n }\n\n break;\n\n case AgGridActionType.resetColumnsStateFromDisk:\n const stored = localStorage.getItem(this.getColumnsStateLocalStorageKey(agGridAction.gridId));\n console.log(stored);\n if (stored) {\n try {\n const columnsState = JSON.parse(stored);\n if (Array.isArray(columnsState)) {\n store.dispatchAction(new RegisterAgGridStateAction(agGridAction.gridId, ChangeOrigin.other, columnsState));\n } else {\n this.logger.error(`Wrong columns state config for grid '${agGridAction.gridId}'`, stored);\n }\n } catch (error) {\n this.logger.error(`Unable to load config for grid '${agGridAction.gridId}'`, error);\n }\n }\n\n break;\n }\n }\n\n private getColumnsStateLocalStorageKey(gridId: string): string {\n return `ngssm-ag-grid_${gridId}`;\n }\n}\n\nexport const localStorageEffectProvider: Provider = {\n provide: NGSSM_EFFECT,\n useClass: LocalStorageEffect,\n multi: true\n};\n","import { Directive, HostBinding, Inject, Optional } from '@angular/core';\n\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGridTheme]'\n})\nexport class NgssmAgGridThemeDirective {\n @HostBinding('class') className = '';\n\n constructor(@Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions) {\n this.className = (options ?? new NgssmAgGridOptions()).theme;\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BehaviorSubject, isObservable, Observable, takeUntil } from 'rxjs';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { NgssmActionsCellRendererParams } from './ngssm-actions-cell-renderer-params';\nimport { ActionConfig } from './action-config';\n\ninterface ActionButton {\n cssClass: string;\n color: string;\n disabled$: BehaviorSubject<boolean>;\n\n actionConfig: ActionConfig;\n}\n\n@Component({\n selector: 'ngssm-actions-cell-renderer',\n templateUrl: './ngssm-actions-cell-renderer.component.html',\n styleUrls: ['./ngssm-actions-cell-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmActionsCellRendererComponent extends NgSsmComponent implements ICellRendererAngularComp {\n private readonly _actionButtons$ = new BehaviorSubject<ActionButton[]>([]);\n\n private cellParams: ICellRendererParams<any, any> | undefined;\n\n constructor(store: Store) {\n super(store);\n }\n\n public get actionButtons$(): Observable<ActionButton[]> {\n return this._actionButtons$.asObservable();\n }\n\n public agInit(params: ICellRendererParams<any, any>): void {\n this.cellParams = params;\n this.setupActions(params as any);\n }\n\n public refresh(params: ICellRendererParams<any, any>): boolean {\n this.cellParams = params;\n this._actionButtons$.getValue().forEach((a) => {\n if (a.actionConfig.isDisabled instanceof Function) {\n a.disabled$.next(a.actionConfig.isDisabled(params as any));\n }\n });\n return true;\n }\n\n public executeAction(action: ActionButton): void {\n action.actionConfig.click?.(this.cellParams as any);\n }\n\n private setupActions(rendererParams: NgssmActionsCellRendererParams): void {\n const actionButtons: ActionButton[] = (rendererParams?.actions ?? []).map((a) => {\n const actionButton: ActionButton = {\n cssClass: a.cssClass,\n color: a.color ?? 'primary',\n disabled$: new BehaviorSubject<boolean>(false),\n actionConfig: a\n };\n\n if (a.isDisabled instanceof Function) {\n actionButton.disabled$.next(a.isDisabled(rendererParams as any));\n } else if (isObservable(a.isDisabled)) {\n a.isDisabled.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.disabled$.next(v));\n }\n\n return actionButton;\n });\n\n this._actionButtons$.next(actionButtons);\n }\n}\n","<div class=\"ngssm-actions-cell\">\n <button *ngFor=\"let actionButton of actionButtons$ | async; let index=index\" mat-icon-button\n class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { NgssmAgGridDirective } from './components/ngssm-ag-grid.directive';\nimport { gridStatesReducerProvider } from './reducers/grid-states.reducer';\nimport { selectedRowsReducerProvider } from './reducers/selected-rows.reducer';\nimport { localStorageEffectProvider } from './effects/local-storage.effect';\nimport { NgssmAgGridThemeDirective } from './components/ngssm-ag-grid-theme.directive';\nimport { NgssmActionsCellRendererComponent } from './components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component';\n\n@NgModule({\n declarations: [NgssmAgGridDirective, NgssmAgGridThemeDirective, NgssmActionsCellRendererComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule],\n exports: [NgssmAgGridDirective, NgssmAgGridThemeDirective],\n providers: []\n})\nexport class NgssmAgGridModule {\n static forRoot(): ModuleWithProviders<NgssmAgGridModule> {\n return {\n ngModule: NgssmAgGridModule,\n providers: [gridStatesReducerProvider, selectedRowsReducerProvider, localStorageEffectProvider]\n };\n }\n}\n","import { ColDef } from 'ag-grid-community';\n\nimport { ActionConfig } from './action-config';\nimport { NgssmActionsCellRendererComponent } from './ngssm-actions-cell-renderer.component';\n\n// Parameters of the actions cell renderer\n// For now, an action is rendered as a mat-icon-button with the class passed in ActionConfig\nexport interface NgssmActionsCellRendererParams<TData = any, TValue = any> {\n actions: ActionConfig<TData, TValue>[];\n}\n\nexport const getNgssmActionsCellColDef = <TData = any, TValue = any>(\n params: NgssmActionsCellRendererParams<TData, TValue>\n): Partial<ColDef> => ({\n cellRenderer: NgssmActionsCellRendererComponent,\n cellRendererParams: params\n});\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/ngssm-ag-grid.module';\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components/ngssm-ag-grid.directive';\nexport * from './lib/components/ngssm-ag-grid-config';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/components/ngssm-ag-grid-theme.directive';\nexport * from './lib/components/ngssm-actions-cell-renderer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ICellRendererParams } from 'ag-grid-community';
2
+ import { Observable } from 'rxjs';
3
+ export interface ActionDisabledFunc<TData = any, TValue = any> {
4
+ (params: ICellRendererParams<TData, TValue>): boolean;
5
+ }
6
+ export interface ActionConfig<TData = any, TValue = any> {
7
+ cssClass: string;
8
+ color?: string;
9
+ isDisabled?: ActionDisabledFunc<TData, TValue> | Observable<boolean>;
10
+ click?: (params: ICellRendererParams<TData, TValue>) => void;
11
+ }
@@ -0,0 +1,3 @@
1
+ export * from './ngssm-actions-cell-renderer.component';
2
+ export * from './action-config';
3
+ export * from './ngssm-actions-cell-renderer-params';
@@ -0,0 +1,6 @@
1
+ import { ColDef } from 'ag-grid-community';
2
+ import { ActionConfig } from './action-config';
3
+ export interface NgssmActionsCellRendererParams<TData = any, TValue = any> {
4
+ actions: ActionConfig<TData, TValue>[];
5
+ }
6
+ export declare const getNgssmActionsCellColDef: <TData = any, TValue = any>(params: NgssmActionsCellRendererParams<TData, TValue>) => Partial<ColDef>;
@@ -0,0 +1,25 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { ICellRendererAngularComp } from 'ag-grid-angular';
3
+ import { ICellRendererParams } from 'ag-grid-community';
4
+ import { NgSsmComponent, Store } from 'ngssm-store';
5
+ import { ActionConfig } from './action-config';
6
+ import * as i0 from "@angular/core";
7
+ interface ActionButton {
8
+ cssClass: string;
9
+ color: string;
10
+ disabled$: BehaviorSubject<boolean>;
11
+ actionConfig: ActionConfig;
12
+ }
13
+ export declare class NgssmActionsCellRendererComponent extends NgSsmComponent implements ICellRendererAngularComp {
14
+ private readonly _actionButtons$;
15
+ private cellParams;
16
+ constructor(store: Store);
17
+ get actionButtons$(): Observable<ActionButton[]>;
18
+ agInit(params: ICellRendererParams<any, any>): void;
19
+ refresh(params: ICellRendererParams<any, any>): boolean;
20
+ executeAction(action: ActionButton): void;
21
+ private setupActions;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmActionsCellRendererComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgssmActionsCellRendererComponent, "ngssm-actions-cell-renderer", never, {}, {}, never, never, false, never>;
24
+ }
25
+ export {};
@@ -2,9 +2,13 @@ import { ModuleWithProviders } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./components/ngssm-ag-grid.directive";
4
4
  import * as i2 from "./components/ngssm-ag-grid-theme.directive";
5
+ import * as i3 from "./components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer.component";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/material/button";
8
+ import * as i6 from "@angular/material/icon";
5
9
  export declare class NgssmAgGridModule {
6
10
  static forRoot(): ModuleWithProviders<NgssmAgGridModule>;
7
11
  static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAgGridModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgssmAgGridModule, [typeof i1.NgssmAgGridDirective, typeof i2.NgssmAgGridThemeDirective], never, [typeof i1.NgssmAgGridDirective, typeof i2.NgssmAgGridThemeDirective]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgssmAgGridModule, [typeof i1.NgssmAgGridDirective, typeof i2.NgssmAgGridThemeDirective, typeof i3.NgssmActionsCellRendererComponent], [typeof i4.CommonModule, typeof i5.MatButtonModule, typeof i6.MatIconModule], [typeof i1.NgssmAgGridDirective, typeof i2.NgssmAgGridThemeDirective]>;
9
13
  static ɵinj: i0.ɵɵInjectorDeclaration<NgssmAgGridModule>;
10
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-ag-grid",
3
- "version": "15.1.1",
3
+ "version": "15.2.0",
4
4
  "description": "NgSsm - Helpers for ag-grid and columns state save/restore feature.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",
@@ -9,7 +9,7 @@
9
9
  "@angular/core": ">=15.0.0",
10
10
  "ag-grid-angular": ">=29.0.0",
11
11
  "ag-grid-community": ">=29.0.0",
12
- "ngssm-store": "15.1.1"
12
+ "ngssm-store": "15.2.0"
13
13
  },
14
14
  "dependencies": {
15
15
  "tslib": ">=2.4.0"
package/public-api.d.ts CHANGED
@@ -5,3 +5,4 @@ export * from './lib/components/ngssm-ag-grid.directive';
5
5
  export * from './lib/components/ngssm-ag-grid-config';
6
6
  export * from './lib/ngssm-ag-grid-options';
7
7
  export * from './lib/components/ngssm-ag-grid-theme.directive';
8
+ export * from './lib/components/ngssm-actions-cell-renderer';
@@ -0,0 +1,33 @@
1
+ .ngssm-actions-cell {
2
+ --ngssm-actions-cell-button-size: 20px;
3
+ --ngssm-actions-cell-icon-size: 18px;
4
+ --ngssm-actions-cell-icon-font-size: 10px;
5
+
6
+ display: flex;
7
+ flex-direction: row;
8
+ align-items: center;
9
+
10
+ .ngssm-actions-cell-button {
11
+ line-height: var(--ngssm-actions-cell-button-size);
12
+ height: var(--ngssm-actions-cell-button-size);
13
+ width: var(--ngssm-actions-cell-button-size);
14
+ padding: 0 !important;
15
+ display: flex !important;
16
+ flex-direction: column !important;
17
+ align-items: center;
18
+ justify-content: center;
19
+
20
+ mat-icon {
21
+ font-size: var(--ngssm-actions-cell-icon-font-size);
22
+ line-height: var(--ngssm-actions-cell-icon-size);
23
+ height: var(--ngssm-actions-cell-icon-size);
24
+ width: var(--ngssm-actions-cell-icon-size);
25
+ }
26
+
27
+ .mat-mdc-button-touch-target {
28
+ width: var(--ngssm-actions-cell-button-size);
29
+ height: var(--ngssm-actions-cell-button-size);
30
+ line-height: var(--ngssm-actions-cell-button-size);
31
+ }
32
+ }
33
+ }