ngssm-ag-grid 16.2.2 → 16.2.3

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.
@@ -2,4 +2,5 @@ export * from './ngssm-actions-cell-renderer';
2
2
  export * from './ngssm-ag-grid-config';
3
3
  export * from './ngssm-ag-grid-theme.directive';
4
4
  export * from './ngssm-ag-grid.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1hY3Rpb25zLWNlbGwtcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1hZy1ncmlkLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWFnLWdyaWQtdGhlbWUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tYWctZ3JpZC5kaXJlY3RpdmUnO1xuIl19
5
+ export * from './ngssm-base-cell-editor';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25nc3NtLWFjdGlvbnMtY2VsbC1yZW5kZXJlcic7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWFnLWdyaWQtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbmdzc20tYWctZ3JpZC10aGVtZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWJhc2UtY2VsbC1lZGl0b3InO1xuIl19
@@ -1,13 +1,21 @@
1
1
  import { Directive, HostBinding, Inject, Optional } from '@angular/core';
2
2
  import { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../ngssm-ag-grid-options";
4
+ import * as i1 from "ag-grid-angular";
5
+ import * as i2 from "../ngssm-ag-grid-options";
5
6
  export class NgssmAgGridThemeDirective {
6
- constructor(options) {
7
+ constructor(options, agGridAngular) {
8
+ this.agGridAngular = agGridAngular;
7
9
  this.className = '';
8
10
  this.className = (options ?? new NgssmAgGridOptions()).theme;
11
+ if (this.agGridAngular.statusBar === undefined) {
12
+ this.agGridAngular.statusBar = options?.statusBar;
13
+ }
14
+ if (this.agGridAngular.defaultColDef === undefined) {
15
+ this.agGridAngular.defaultColDef = options?.defaultColDef;
16
+ }
9
17
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }, { token: i1.AgGridAngular }], target: i0.ɵɵFactoryTarget.Directive }); }
11
19
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.8", type: NgssmAgGridThemeDirective, isStandalone: true, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 }); }
12
20
  }
13
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
@@ -16,13 +24,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
16
24
  selector: '[ngssmAgGridTheme]',
17
25
  standalone: true
18
26
  }]
19
- }], ctorParameters: function () { return [{ type: i1.NgssmAgGridOptions, decorators: [{
27
+ }], ctorParameters: function () { return [{ type: i2.NgssmAgGridOptions, decorators: [{
20
28
  type: Inject,
21
29
  args: [NGSSM_AG_GRID_OPTIONS]
22
30
  }, {
23
31
  type: Optional
24
- }] }]; }, propDecorators: { className: [{
32
+ }] }, { type: i1.AgGridAngular }]; }, propDecorators: { className: [{
25
33
  type: HostBinding,
26
34
  args: ['class']
27
35
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC10aGVtZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLXRoZW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFNckYsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUF1RCxPQUEyQjtRQUY1RCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBR25DLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9ELENBQUM7OEdBTFUseUJBQXlCLGtCQUdoQixxQkFBcUI7a0dBSDlCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUljLE1BQU07MkJBQUMscUJBQXFCOzswQkFBRyxRQUFROzRDQUY5QixTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nc3NtQWdHcmlkT3B0aW9ucywgTkdTU01fQUdfR1JJRF9PUFRJT05TIH0gZnJvbSAnLi4vbmdzc20tYWctZ3JpZC1vcHRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nc3NtQWdHcmlkVGhlbWVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbUFnR3JpZFRoZW1lRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdTU01fQUdfR1JJRF9PUFRJT05TKSBAT3B0aW9uYWwoKSBvcHRpb25zOiBOZ3NzbUFnR3JpZE9wdGlvbnMpIHtcbiAgICB0aGlzLmNsYXNzTmFtZSA9IChvcHRpb25zID8/IG5ldyBOZ3NzbUFnR3JpZE9wdGlvbnMoKSkudGhlbWU7XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC10aGVtZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLXRoZW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTXJGLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFDNkMsT0FBMkIsRUFDOUQsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFKaEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQU1uQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQztTQUMzRDtJQUNILENBQUM7OEdBZlUseUJBQXlCLGtCQUkxQixxQkFBcUI7a0dBSnBCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUtJLE1BQU07MkJBQUMscUJBQXFCOzswQkFBRyxRQUFRO3dFQUhwQixTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBOZ3NzbUFnR3JpZE9wdGlvbnMsIE5HU1NNX0FHX0dSSURfT1BUSU9OUyB9IGZyb20gJy4uL25nc3NtLWFnLWdyaWQtb3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3NzbUFnR3JpZFRoZW1lXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21BZ0dyaWRUaGVtZURpcmVjdGl2ZSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE5HU1NNX0FHX0dSSURfT1BUSU9OUykgQE9wdGlvbmFsKCkgb3B0aW9uczogTmdzc21BZ0dyaWRPcHRpb25zLFxuICAgIHByaXZhdGUgYWdHcmlkQW5ndWxhcjogQWdHcmlkQW5ndWxhclxuICApIHtcbiAgICB0aGlzLmNsYXNzTmFtZSA9IChvcHRpb25zID8/IG5ldyBOZ3NzbUFnR3JpZE9wdGlvbnMoKSkudGhlbWU7XG4gICAgaWYgKHRoaXMuYWdHcmlkQW5ndWxhci5zdGF0dXNCYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLnN0YXR1c0JhciA9IG9wdGlvbnM/LnN0YXR1c0JhcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hZ0dyaWRBbmd1bGFyLmRlZmF1bHRDb2xEZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmRlZmF1bHRDb2xEZWYgPSBvcHRpb25zPy5kZWZhdWx0Q29sRGVmO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,23 +1,18 @@
1
- import { Directive, Inject, Input, Optional } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import { BehaviorSubject, combineLatest, map, Subject, take, takeUntil } from 'rxjs';
3
3
  import { AgGridAction, AgGridActionType, RegisterAgGridStateAction, RegisterSelectedRowsAction } from '../actions';
4
4
  import { ChangeOrigin, selectAgGridState } from '../state';
5
- import { NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "ngssm-store";
8
7
  import * as i2 from "ag-grid-angular";
9
- import * as i3 from "../ngssm-ag-grid-options";
10
8
  export class NgssmAgGridDirective {
11
- constructor(store, agGridAngular, options) {
9
+ constructor(store, agGridAngular) {
12
10
  this.store = store;
13
11
  this.agGridAngular = agGridAngular;
14
12
  this.unsubsribeAll$ = new Subject();
15
13
  this._config$ = new BehaviorSubject({
16
14
  gridId: ''
17
15
  });
18
- if (this.agGridAngular.statusBar === undefined) {
19
- this.agGridAngular.statusBar = options?.statusBar;
20
- }
21
16
  this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {
22
17
  combineLatest([
23
18
  this.store.state$.pipe(take(1), map((s) => selectAgGridState(s))),
@@ -135,7 +130,7 @@ export class NgssmAgGridDirective {
135
130
  }
136
131
  return menuItems;
137
132
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2.AgGridAngular }], target: i0.ɵɵFactoryTarget.Directive }); }
139
134
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.8", type: NgssmAgGridDirective, isStandalone: true, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 }); }
140
135
  }
141
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
@@ -144,13 +139,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
144
139
  selector: '[ngssmAgGrid]',
145
140
  standalone: true
146
141
  }]
147
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.AgGridAngular }, { type: i3.NgssmAgGridOptions, decorators: [{
148
- type: Inject,
149
- args: [NGSSM_AG_GRID_OPTIONS]
150
- }, {
151
- type: Optional
152
- }] }]; }, propDecorators: { config: [{
142
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.AgGridAngular }]; }, propDecorators: { config: [{
153
143
  type: Input,
154
144
  args: ['ngssmAgGrid']
155
145
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU9yRixPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0QsT0FBTyxFQUFzQixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQU1yRixNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQ1UsS0FBWSxFQUNaLGFBQTRCLEVBQ08sT0FBMkI7UUFGOUQsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBUHJCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW9CO1lBQ2pFLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQyxDQUFDO1FBT0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FB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LElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO29CQUM3RCxJQUFJLEVBQUUsK0NBQStDO2lCQUN0RDthQUNGLENBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0F0SlUsb0JBQW9CLG9FQVNyQixxQkFBcUI7a0dBVHBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFVSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQUcsUUFBUTs0Q0FpRVQsTUFBTTtzQkFBdEMsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR2V0Q29udGV4dE1lbnVJdGVtc1BhcmFtcywgTWVudUl0ZW1EZWYgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBY3Rpb24sIEFnR3JpZEFjdGlvblR5cGUsIFJlZ2lzdGVyQWdHcmlkU3RhdGVBY3Rpb24sIFJlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VPcmlnaW4sIHNlbGVjdEFnR3JpZFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgTmdzc21BZ0dyaWRDb25maWcgfSBmcm9tICcuL25nc3NtLWFnLWdyaWQtY29uZmlnJztcbmltcG9ydCB7IE5nc3NtQWdHcmlkT3B0aW9ucywgTkdTU01fQUdfR1JJRF9PUFRJT05TIH0gZnJvbSAnLi4vbmdzc20tYWctZ3JpZC1vcHRpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nc3NtQWdHcmlkXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21BZ0dyaWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tmdzc21BZ0dyaWRDb25maWc+KHtcbiAgICBncmlkSWQ6ICcnXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgYWdHcmlkQW5ndWxhcjogQWdHcmlkQW5ndWxhcixcbiAgICBASW5qZWN0KE5HU1NNX0FHX0dSSURfT1BUSU9OUykgQE9wdGlvbmFsKCkgb3B0aW9uczogTmdzc21BZ0dyaWRPcHRpb25zXG4gICkge1xuICAgIGlmICh0aGlzLmFnR3JpZEFuZ3VsYXIuc3RhdHVzQmFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5zdGF0dXNCYXIgPSBvcHRpb25zPy5zdGF0dXNCYXI7XG4gICAgfVxuXG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmdyaWRSZWFkeS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUkLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtYXAoKHMpID0+IHNlbGVjdEFnR3JpZFN0YXRlKHMpKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLl9jb25maWckXG4gICAgICBdKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWVzWzBdLmdyaWRTdGF0ZXNbdmFsdWVzWzFdLmdyaWRJZF0pIHtcbiAgICAgICAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5BcGkuYXBwbHlDb2x1bW5TdGF0ZSh7XG4gICAgICAgICAgICAgIHN0YXRlOiB2YWx1ZXNbMF0uZ3JpZFN0YXRlc1t2YWx1ZXNbMV0uZ3JpZElkXS5jb2x1bW5zU3RhdGUsXG4gICAgICAgICAgICAgIGFwcGx5T3JkZXI6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2YWx1ZXNbMF0uc2VsZWN0ZWRSb3dzW3ZhbHVlc1sxXS5ncmlkSWRdKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVzWzFdLmtlZXBTZWxlY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gdmFsdWVzWzBdLnNlbGVjdGVkUm93c1t2YWx1ZXNbMV0uZ3JpZElkXT8uaWRzID8/IFtdO1xuICAgICAgICAgICAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuYXBpLmZvckVhY2hOb2RlKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQoaWRzLmluY2x1ZGVzKG5vZGUuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaW5pdFNhdGVDaGFuZ2VMaXN0ZW5lcigpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc3RhdGUkLnBpcGUobWFwKChzKSA9PiBzZWxlY3RBZ0dyaWRTdGF0ZShzKS5ncmlkU3RhdGVzKSksIHRoaXMuX2NvbmZpZyRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWVzKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZXNbMF1bdmFsdWVzWzFdLmdyaWRJZF0/Lm9yaWdpbiA9PT0gQ2hhbmdlT3JpZ2luLm90aGVyKSB7XG4gICAgICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgICAgIHN0YXRlOiB2YWx1ZXNbMF1bdmFsdWVzWzFdLmdyaWRJZF0uY29sdW1uc1N0YXRlLFxuICAgICAgICAgICAgYXBwbHlPcmRlcjogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc3RhdGUkLnBpcGUobWFwKChzKSA9PiBzZWxlY3RBZ0dyaWRTdGF0ZShzKS5zZWxlY3RlZFJvd3MpKSwgdGhpcy5fY29uZmlnJF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXT8ub3JpZ2luID09PSBDaGFuZ2VPcmlnaW4ub3RoZXIgJiYgdmFsdWVzWzFdLmtlZXBTZWxlY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgICBjb25zdCBpZHMgPSB2YWx1ZXNbMF1bdmFsdWVzWzFdLmdyaWRJZF0/LmlkcyA/PyBbXTtcbiAgICAgICAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuYXBpLmZvckVhY2hOb2RlKChub2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAobm9kZS5pZCkge1xuICAgICAgICAgICAgICBub2RlLnNldFNlbGVjdGVkKGlkcy5pbmNsdWRlcyhub2RlLmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmdldENvbnRleHRNZW51SXRlbXMgPSAocGFyYW1zKSA9PiB0aGlzLmdldENvbnRleHRNZW51SXRlbXMocGFyYW1zKTtcbiAgfVxuXG4gIEBJbnB1dCgnbmdzc21BZ0dyaWQnKSBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogc3RyaW5nIHwgTmdzc21BZ0dyaWRDb25maWcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fY29uZmlnJC5uZXh0KHtcbiAgICAgICAgZ3JpZElkOiB2YWx1ZSBhcyBzdHJpbmdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jb25maWckLm5leHQodmFsdWUgYXMgTmdzc21BZ0dyaWRDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic3JpYmVBbGwkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic3JpYmVBbGwkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTYXRlQ2hhbmdlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLnNvcnRDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zYXZlR3JpZFN0YXRlKCkpO1xuICAgIHRoaXMuYWdHcmlkQW5ndWxhci5maWx0ZXJDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zYXZlR3JpZFN0YXRlKCkpO1xuICAgIHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5QaW5uZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtblJlc2l6ZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmRpc3BsYXllZENvbHVtbnNDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zYXZlR3JpZFN0YXRlKCkpO1xuICAgIHRoaXMuYWdHcmlkQW5ndWxhci5yb3dTZWxlY3RlZC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucHJvY2Vzc1NlbGVjdGlvbkNoYW5nZWQoKSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVHcmlkU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uQXBpLmdldENvbHVtblN0YXRlKCk7XG4gICAgdGhpcy5fY29uZmlnJFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGdyaWRJZCkgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgUmVnaXN0ZXJBZ0dyaWRTdGF0ZUFjdGlvbihncmlkSWQuZ3JpZElkLCBDaGFuZ2VPcmlnaW4uYWdHcmlkLCBzdGF0ZSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlbGVjdGlvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzID0gdGhpcy5hZ0dyaWRBbmd1bGFyLmFwaVxuICAgICAgLmdldFNlbGVjdGVkTm9kZXMoKVxuICAgICAgLm1hcCgobikgPT4gbi5pZCA/PyAnJylcbiAgICAgIC5maWx0ZXIoKG4pID0+IG4gIT09ICcnKTtcbiAgICB0aGlzLl9jb25maWckLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIGlmIChjb25maWcua2VlcFNlbGVjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlclNlbGVjdGVkUm93c0FjdGlvbihjb25maWcuZ3JpZElkLCBDaGFuZ2VPcmlnaW4uYWdHcmlkLCBzZWxlY3RlZFJvd3MpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dE1lbnVJdGVtcyhwYXJhbXM6IEdldENvbnRleHRNZW51SXRlbXNQYXJhbXMpOiAoc3RyaW5nIHwgTWVudUl0ZW1EZWYpW10ge1xuICAgIGNvbnN0IG1lbnVJdGVtczogKHN0cmluZyB8IE1lbnVJdGVtRGVmKVtdID0gWy4uLihwYXJhbXMuZGVmYXVsdEl0ZW1zID8/IFtdKV07XG4gICAgaWYgKHRoaXMuX2NvbmZpZyQuZ2V0VmFsdWUoKS5jYW5TYXZlT25EaXNrQ29sdW1uc1N0YXRlID09PSB0cnVlKSB7XG4gICAgICBtZW51SXRlbXMucHVzaChcbiAgICAgICAgLi4uW1xuICAgICAgICAgICdzZXBhcmF0b3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTYXZlIGNvbHVtbnMgc3RhdGUnLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PlxuICAgICAgICAgICAgICB0aGlzLl9jb25maWckXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IEFnR3JpZEFjdGlvbihBZ0dyaWRBY3Rpb25UeXBlLnNhdmVDb2x1bW5zU3RhdGVPbkRpc2ssIGNvbmZpZy5ncmlkSWQpKSksXG4gICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWZsb3BweS1kaXNrXCI+PC9pPidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSZXN0b3JlIGNvbHVtbnMgc3RhdGUnLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PlxuICAgICAgICAgICAgICB0aGlzLl9jb25maWckXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBBZ0dyaWRBY3Rpb24oQWdHcmlkQWN0aW9uVHlwZS5yZXNldENvbHVtbnNTdGF0ZUZyb21EaXNrLCBjb25maWcuZ3JpZElkKSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0XCI+PC9pPidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdSZXNldCBjb2x1bW5zIHN0YXRlIHRvIGRlZmF1bHQnLFxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uQXBpLnJlc2V0Q29sdW1uU3RhdGUoKSxcbiAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb2NrLXJvdGF0ZS1sZWZ0XCI+PC9pPidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBtZW51SXRlbXM7XG4gIH1cbn1cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1hZy1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9uZ3NzbS1hZy1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPckYsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBTzNELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFDVSxLQUFZLEVBQ1osYUFBNEI7UUFENUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBUHJCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW9CO1lBQ2pFLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQyxDQUFDO1FBTUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pELGFBQWEsQ0FBQztnQkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFp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VCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dIQXNFa0MsTUFBTTtzQkFBdEMsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgR2V0Q29udGV4dE1lbnVJdGVtc1BhcmFtcywgTWVudUl0ZW1EZWYgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBY3Rpb24sIEFnR3JpZEFjdGlvblR5cGUsIFJlZ2lzdGVyQWdHcmlkU3RhdGVBY3Rpb24sIFJlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VPcmlnaW4sIHNlbGVjdEFnR3JpZFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgTmdzc21BZ0dyaWRDb25maWcgfSBmcm9tICcuL25nc3NtLWFnLWdyaWQtY29uZmlnJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nc3NtQWdHcmlkXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21BZ0dyaWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tmdzc21BZ0dyaWRDb25maWc+KHtcbiAgICBncmlkSWQ6ICcnXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgYWdHcmlkQW5ndWxhcjogQWdHcmlkQW5ndWxhclxuICApIHtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZ3JpZFJlYWR5LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1hcCgocykgPT4gc2VsZWN0QWdHcmlkU3RhdGUocykpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgIF0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZXNbMF0uZ3JpZFN0YXRlc1t2YWx1ZXNbMV0uZ3JpZElkXSkge1xuICAgICAgICAgICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgICAgICAgc3RhdGU6IHZhbHVlc1swXS5ncmlkU3RhdGVzW3ZhbHVlc1sxXS5ncmlkSWRdLmNvbHVtbnNTdGF0ZSxcbiAgICAgICAgICAgICAgYXBwbHlPcmRlcjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZhbHVlc1swXS5zZWxlY3RlZFJvd3NbdmFsdWVzWzFdLmdyaWRJZF0pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNbMV0ua2VlcFNlbGVjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBjb25zdCBpZHMgPSB2YWx1ZXNbMF0uc2VsZWN0ZWRSb3dzW3ZhbHVlc1sxXS5ncmlkSWRdPy5pZHMgPz8gW107XG4gICAgICAgICAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5hcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5pZCkge1xuICAgICAgICAgICAgICAgICAgbm9kZS5zZXRTZWxlY3RlZChpZHMuaW5jbHVkZXMobm9kZS5pZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5pbml0U2F0ZUNoYW5nZUxpc3RlbmVyKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShtYXAoKHMpID0+IHNlbGVjdEFnR3JpZFN0YXRlKHMpLmdyaWRTdGF0ZXMpKSwgdGhpcy5fY29uZmlnJF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXT8ub3JpZ2luID09PSBDaGFuZ2VPcmlnaW4ub3RoZXIpIHtcbiAgICAgICAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uQXBpLmFwcGx5Q29sdW1uU3RhdGUoe1xuICAgICAgICAgICAgc3RhdGU6IHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXS5jb2x1bW5zU3RhdGUsXG4gICAgICAgICAgICBhcHBseU9yZGVyOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zdGF0ZSQucGlwZShtYXAoKHMpID0+IHNlbGVjdEFnR3JpZFN0YXRlKHMpLnNlbGVjdGVkUm93cykpLCB0aGlzLl9jb25maWckXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xuICAgICAgICBpZiAodmFsdWVzWzBdW3ZhbHVlc1sxXS5ncmlkSWRdPy5vcmlnaW4gPT09IENoYW5nZU9yaWdpbi5vdGhlciAmJiB2YWx1ZXNbMV0ua2VlcFNlbGVjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IGlkcyA9IHZhbHVlc1swXVt2YWx1ZXNbMV0uZ3JpZElkXT8uaWRzID8/IFtdO1xuICAgICAgICAgIHRoaXMuYWdHcmlkQW5ndWxhci5hcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLmlkKSB7XG4gICAgICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQoaWRzLmluY2x1ZGVzKG5vZGUuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZ2V0Q29udGV4dE1lbnVJdGVtcyA9IChwYXJhbXMpID0+IHRoaXMuZ2V0Q29udGV4dE1lbnVJdGVtcyhwYXJhbXMpO1xuICB9XG5cbiAgQElucHV0KCduZ3NzbUFnR3JpZCcpIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBzdHJpbmcgfCBOZ3NzbUFnR3JpZENvbmZpZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9jb25maWckLm5leHQoe1xuICAgICAgICBncmlkSWQ6IHZhbHVlIGFzIHN0cmluZ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbmZpZyQubmV4dCh2YWx1ZSBhcyBOZ3NzbUFnR3JpZENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzcmliZUFsbCQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzcmliZUFsbCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNhdGVDaGFuZ2VMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuc29ydENoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmZpbHRlckNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLmNvbHVtblBpbm5lZC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2F2ZUdyaWRTdGF0ZSgpKTtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuY29sdW1uUmVzaXplZC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic3JpYmVBbGwkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2F2ZUdyaWRTdGF0ZSgpKTtcbiAgICB0aGlzLmFnR3JpZEFuZ3VsYXIuZGlzcGxheWVkQ29sdW1uc0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNyaWJlQWxsJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNhdmVHcmlkU3RhdGUoKSk7XG4gICAgdGhpcy5hZ0dyaWRBbmd1bGFyLnJvd1NlbGVjdGVkLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzcmliZUFsbCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZUdyaWRTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5BcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgICB0aGlzLl9jb25maWckXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoZ3JpZElkKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBSZWdpc3RlckFnR3JpZFN0YXRlQWN0aW9uKGdyaWRJZC5ncmlkSWQsIENoYW5nZU9yaWdpbi5hZ0dyaWQsIHN0YXRlKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLmFnR3JpZEFuZ3VsYXIuYXBpXG4gICAgICAuZ2V0U2VsZWN0ZWROb2RlcygpXG4gICAgICAubWFwKChuKSA9PiBuLmlkID8/ICcnKVxuICAgICAgLmZpbHRlcigobikgPT4gbiAhPT0gJycpO1xuICAgIHRoaXMuX2NvbmZpZyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgaWYgKGNvbmZpZy5rZWVwU2VsZWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IFJlZ2lzdGVyU2VsZWN0ZWRSb3dzQWN0aW9uKGNvbmZpZy5ncmlkSWQsIENoYW5nZU9yaWdpbi5hZ0dyaWQsIHNlbGVjdGVkUm93cykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0TWVudUl0ZW1zKHBhcmFtczogR2V0Q29udGV4dE1lbnVJdGVtc1BhcmFtcyk6IChzdHJpbmcgfCBNZW51SXRlbURlZilbXSB7XG4gICAgY29uc3QgbWVudUl0ZW1zOiAoc3RyaW5nIHwgTWVudUl0ZW1EZWYpW10gPSBbLi4uKHBhcmFtcy5kZWZhdWx0SXRlbXMgPz8gW10pXTtcbiAgICBpZiAodGhpcy5fY29uZmlnJC5nZXRWYWx1ZSgpLmNhblNhdmVPbkRpc2tDb2x1bW5zU3RhdGUgPT09IHRydWUpIHtcbiAgICAgIG1lbnVJdGVtcy5wdXNoKFxuICAgICAgICAuLi5bXG4gICAgICAgICAgJ3NlcGFyYXRvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1NhdmUgY29sdW1ucyBzdGF0ZScsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgQWdHcmlkQWN0aW9uKEFnR3JpZEFjdGlvblR5cGUuc2F2ZUNvbHVtbnNTdGF0ZU9uRGlzaywgY29uZmlnLmdyaWRJZCkpKSxcbiAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtZmxvcHB5LWRpc2tcIj48L2k+J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Jlc3RvcmUgY29sdW1ucyBzdGF0ZScsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMuX2NvbmZpZyRcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT5cbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24obmV3IEFnR3JpZEFjdGlvbihBZ0dyaWRBY3Rpb25UeXBlLnJlc2V0Q29sdW1uc1N0YXRlRnJvbURpc2ssIGNvbmZpZy5ncmlkSWQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtcmlnaHRcIj48L2k+J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Jlc2V0IGNvbHVtbnMgc3RhdGUgdG8gZGVmYXVsdCcsXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMuYWdHcmlkQW5ndWxhci5jb2x1bW5BcGkucmVzZXRDb2x1bW5TdGF0ZSgpLFxuICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2xvY2stcm90YXRlLWxlZnRcIj48L2k+J1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxufVxuIl19
@@ -0,0 +1,25 @@
1
+ import { NgSsmComponent } from 'ngssm-store';
2
+ export class NgssmBaseCellEditor extends NgSsmComponent {
3
+ constructor(store) {
4
+ super(store);
5
+ }
6
+ agInit(params) {
7
+ this.params = params;
8
+ }
9
+ getValue() {
10
+ return '';
11
+ }
12
+ isPopup() {
13
+ return true;
14
+ }
15
+ getPopupPosition() {
16
+ return 'over';
17
+ }
18
+ isCancelAfterEnd() {
19
+ return true;
20
+ }
21
+ cancel() {
22
+ this.params?.stopEditing();
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYmFzZS1jZWxsLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL25nc3NtLWJhc2UtY2VsbC1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGNBQWMsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUVwRCxNQUFNLE9BQWdCLG1CQUFvQixTQUFRLGNBQWM7SUFHOUQsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBd0M7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdzc21CYXNlQ2VsbEVkaXRvciBleHRlbmRzIE5nU3NtQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB7XG4gIHByb3RlY3RlZCBwYXJhbXM/OiBJQ2VsbEVkaXRvclBhcmFtcztcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogSUNlbGxFZGl0b3JQYXJhbXM8YW55LCBhbnksIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgaXNQb3B1cCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3B1cFBvc2l0aW9uKCk6ICdvdmVyJyB8ICd1bmRlcicgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAnb3Zlcic7XG4gIH1cblxuICBwdWJsaWMgaXNDYW5jZWxBZnRlckVuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXM/LnN0b3BFZGl0aW5nKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,9 @@
1
1
  export const getColDefWithNoPadding = () => ({
2
2
  cellClass: ['cell-with-no-padding']
3
3
  });
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzVELFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0NBQ3BDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbERlZiB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuZXhwb3J0IGNvbnN0IGdldENvbERlZldpdGhOb1BhZGRpbmcgPSAoKTogUGFydGlhbDxDb2xEZWY+ID0+ICh7XG4gIGNlbGxDbGFzczogWydjZWxsLXdpdGgtbm8tcGFkZGluZyddXG59KTtcbiJdfQ==
4
+ export const getColDefForEditableColumn = () => ({
5
+ editable: true,
6
+ headerClass: 'ngssm-ag-editable-cell',
7
+ valueSetter: () => false
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLWFnLWdyaWQvc3JjL2xpYi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzVELFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0NBQ3BDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLFFBQVEsRUFBRSxJQUFJO0lBQ2QsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztDQUN6QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xEZWYgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmV4cG9ydCBjb25zdCBnZXRDb2xEZWZXaXRoTm9QYWRkaW5nID0gKCk6IFBhcnRpYWw8Q29sRGVmPiA9PiAoe1xuICBjZWxsQ2xhc3M6IFsnY2VsbC13aXRoLW5vLXBhZGRpbmcnXVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRDb2xEZWZGb3JFZGl0YWJsZUNvbHVtbiA9ICgpOiBQYXJ0aWFsPENvbERlZj4gPT4gKHtcbiAgZWRpdGFibGU6IHRydWUsXG4gIGhlYWRlckNsYXNzOiAnbmdzc20tYWctZWRpdGFibGUtY2VsbCcsXG4gIHZhbHVlU2V0dGVyOiAoKSA9PiBmYWxzZVxufSk7XG4iXX0=
@@ -3,7 +3,8 @@ export class NgssmAgGridOptions {
3
3
  constructor() {
4
4
  this.theme = 'ag-theme-material';
5
5
  this.statusBar = undefined;
6
+ this.defaultColDef = undefined;
6
7
  }
7
8
  }
8
9
  export const NGSSM_AG_GRID_OPTIONS = new InjectionToken('NGSSM_AG_GRID_OPTIONS');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tYWctZ3JpZC9zcmMvbGliL25nc3NtLWFnLWdyaWQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRSxVQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDNUIsY0FBUyxHQUlPLFNBQVMsQ0FBQztJQUM1QixDQUFDO0NBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0dXNQYW5lbERlZiB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuZXhwb3J0IGNsYXNzIE5nc3NtQWdHcmlkT3B0aW9ucyB7XG4gIHRoZW1lID0gJ2FnLXRoZW1lLW1hdGVyaWFsJztcbiAgc3RhdHVzQmFyOlxuICAgIHwge1xuICAgICAgICBzdGF0dXNQYW5lbHM6IFN0YXR1c1BhbmVsRGVmW107XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBOR1NTTV9BR19HUklEX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmdzc21BZ0dyaWRPcHRpb25zPignTkdTU01fQUdfR1JJRF9PUFRJT05TJyk7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tYWctZ3JpZC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tYWctZ3JpZC9zcmMvbGliL25nc3NtLWFnLWdyaWQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRSxVQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDNUIsY0FBUyxHQUlPLFNBQVMsQ0FBQztRQUMxQixrQkFBYSxHQUF1QixTQUFTLENBQUM7SUFDaEQsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sRGVmLCBTdGF0dXNQYW5lbERlZiB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuZXhwb3J0IGNsYXNzIE5nc3NtQWdHcmlkT3B0aW9ucyB7XG4gIHRoZW1lID0gJ2FnLXRoZW1lLW1hdGVyaWFsJztcbiAgc3RhdHVzQmFyOlxuICAgIHwge1xuICAgICAgICBzdGF0dXNQYW5lbHM6IFN0YXR1c1BhbmVsRGVmW107XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGRlZmF1bHRDb2xEZWY6IENvbERlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IE5HU1NNX0FHX0dSSURfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3NzbUFnR3JpZE9wdGlvbnM+KCdOR1NTTV9BR19HUklEX09QVElPTlMnKTtcbiJdfQ==
@@ -13,7 +13,7 @@ import { MatIconModule } from '@angular/material/icon';
13
13
  import * as i5 from '@angular/material/tooltip';
14
14
  import { MatTooltipModule } from '@angular/material/tooltip';
15
15
  import { BehaviorSubject, isObservable, takeUntil, Subject, take, combineLatest, map } from 'rxjs';
16
- import * as i2$1 from 'ag-grid-angular';
16
+ import * as i1$1 from 'ag-grid-angular';
17
17
 
18
18
  var AgGridActionType;
19
19
  (function (AgGridActionType) {
@@ -144,16 +144,24 @@ class NgssmAgGridOptions {
144
144
  constructor() {
145
145
  this.theme = 'ag-theme-material';
146
146
  this.statusBar = undefined;
147
+ this.defaultColDef = undefined;
147
148
  }
148
149
  }
149
150
  const NGSSM_AG_GRID_OPTIONS = new InjectionToken('NGSSM_AG_GRID_OPTIONS');
150
151
 
151
152
  class NgssmAgGridThemeDirective {
152
- constructor(options) {
153
+ constructor(options, agGridAngular) {
154
+ this.agGridAngular = agGridAngular;
153
155
  this.className = '';
154
156
  this.className = (options ?? new NgssmAgGridOptions()).theme;
157
+ if (this.agGridAngular.statusBar === undefined) {
158
+ this.agGridAngular.statusBar = options?.statusBar;
159
+ }
160
+ if (this.agGridAngular.defaultColDef === undefined) {
161
+ this.agGridAngular.defaultColDef = options?.defaultColDef;
162
+ }
155
163
  }
156
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, deps: [{ token: NGSSM_AG_GRID_OPTIONS, optional: true }, { token: i1$1.AgGridAngular }], target: i0.ɵɵFactoryTarget.Directive }); }
157
165
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.8", type: NgssmAgGridThemeDirective, isStandalone: true, selector: "[ngssmAgGridTheme]", host: { properties: { "class": "this.className" } }, ngImport: i0 }); }
158
166
  }
159
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridThemeDirective, decorators: [{
@@ -167,22 +175,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
167
175
  args: [NGSSM_AG_GRID_OPTIONS]
168
176
  }, {
169
177
  type: Optional
170
- }] }]; }, propDecorators: { className: [{
178
+ }] }, { type: i1$1.AgGridAngular }]; }, propDecorators: { className: [{
171
179
  type: HostBinding,
172
180
  args: ['class']
173
181
  }] } });
174
182
 
175
183
  class NgssmAgGridDirective {
176
- constructor(store, agGridAngular, options) {
184
+ constructor(store, agGridAngular) {
177
185
  this.store = store;
178
186
  this.agGridAngular = agGridAngular;
179
187
  this.unsubsribeAll$ = new Subject();
180
188
  this._config$ = new BehaviorSubject({
181
189
  gridId: ''
182
190
  });
183
- if (this.agGridAngular.statusBar === undefined) {
184
- this.agGridAngular.statusBar = options?.statusBar;
185
- }
186
191
  this.agGridAngular.gridReady.pipe(take(1)).subscribe((v) => {
187
192
  combineLatest([
188
193
  this.store.state$.pipe(take(1), map((s) => selectAgGridState(s))),
@@ -300,7 +305,7 @@ class NgssmAgGridDirective {
300
305
  }
301
306
  return menuItems;
302
307
  }
303
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i2$1.AgGridAngular }, { token: NGSSM_AG_GRID_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
308
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, deps: [{ token: i1.Store }, { token: i1$1.AgGridAngular }], target: i0.ɵɵFactoryTarget.Directive }); }
304
309
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.8", type: NgssmAgGridDirective, isStandalone: true, selector: "[ngssmAgGrid]", inputs: { config: ["ngssmAgGrid", "config"] }, ngImport: i0 }); }
305
310
  }
306
311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: NgssmAgGridDirective, decorators: [{
@@ -309,19 +314,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
309
314
  selector: '[ngssmAgGrid]',
310
315
  standalone: true
311
316
  }]
312
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.AgGridAngular }, { type: NgssmAgGridOptions, decorators: [{
313
- type: Inject,
314
- args: [NGSSM_AG_GRID_OPTIONS]
315
- }, {
316
- type: Optional
317
- }] }]; }, propDecorators: { config: [{
317
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.AgGridAngular }]; }, propDecorators: { config: [{
318
318
  type: Input,
319
319
  args: ['ngssmAgGrid']
320
320
  }] } });
321
321
 
322
+ class NgssmBaseCellEditor extends NgSsmComponent {
323
+ constructor(store) {
324
+ super(store);
325
+ }
326
+ agInit(params) {
327
+ this.params = params;
328
+ }
329
+ getValue() {
330
+ return '';
331
+ }
332
+ isPopup() {
333
+ return true;
334
+ }
335
+ getPopupPosition() {
336
+ return 'over';
337
+ }
338
+ isCancelAfterEnd() {
339
+ return true;
340
+ }
341
+ cancel() {
342
+ this.params?.stopEditing();
343
+ }
344
+ }
345
+
322
346
  const getColDefWithNoPadding = () => ({
323
347
  cellClass: ['cell-with-no-padding']
324
348
  });
349
+ const getColDefForEditableColumn = () => ({
350
+ editable: true,
351
+ headerClass: 'ngssm-ag-editable-cell',
352
+ valueSetter: () => false
353
+ });
325
354
 
326
355
  class LocalStorageEffect {
327
356
  constructor(logger) {
@@ -435,5 +464,5 @@ const provideNgssmAgGrid = () => {
435
464
  * Generated bundle index. Do not edit.
436
465
  */
437
466
 
438
- export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmActionsCellRendererComponent, NgssmAgGridDirective, NgssmAgGridOptions, NgssmAgGridThemeDirective, RegisterAgGridStateAction, RegisterSelectedRowsAction, getColDefWithNoPadding, getNgssmActionsCellColDef, provideNgssmAgGrid, selectAgGridState, updateAgGridState };
467
+ export { AgGridAction, AgGridActionType, AgGridStateSpecification, ChangeOrigin, NGSSM_AG_GRID_OPTIONS, NgssmActionsCellRendererComponent, NgssmAgGridDirective, NgssmAgGridOptions, NgssmAgGridThemeDirective, NgssmBaseCellEditor, RegisterAgGridStateAction, RegisterSelectedRowsAction, getColDefForEditableColumn, getColDefWithNoPadding, getNgssmActionsCellColDef, provideNgssmAgGrid, selectAgGridState, updateAgGridState };
439
468
  //# 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/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/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer-params.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/helpers.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.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/provide-ngssm-ag-grid.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(\n public readonly gridId: string,\n public readonly origin: ChangeOrigin,\n public readonly columnStates: ColumnState[]\n ) {}\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(\n public readonly gridId: string,\n public readonly origin: ChangeOrigin,\n public readonly ids: string[]\n ) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(\n public readonly type: string,\n public readonly gridId: string\n ) {}\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 { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 hidden$: BehaviorSubject<boolean>;\n\n actionConfig: ActionConfig;\n\n tooltip: string;\n}\n\n@Component({\n selector: 'ngssm-actions-cell-renderer',\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule],\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 if (a.actionConfig.isHidden instanceof Function) {\n a.hidden$.next(a.actionConfig.isHidden(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 hidden$: new BehaviorSubject<boolean>(false),\n actionConfig: a,\n tooltip: a.tooltip ?? ''\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 if (a.isHidden instanceof Function) {\n actionButton.hidden$.next(a.isHidden(rendererParams as any));\n } else if (isObservable(a.isHidden)) {\n a.isHidden.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.hidden$.next(v));\n }\n\n return actionButton;\n });\n\n this._actionButtons$.next(actionButtons);\n }\n}\n","<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>","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","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, 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 standalone: true\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 { 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 standalone: true\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 { ColDef } from 'ag-grid-community';\n\nexport const getColDefWithNoPadding = (): Partial<ColDef> => ({\n cellClass: ['cell-with-no-padding']\n});\n","import { Injectable } from '@angular/core';\n\nimport { Effect, Store, State, Action, Logger } from 'ngssm-store';\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","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } 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","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } 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","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nimport { provideEffect, provideReducers } from 'ngssm-store';\n\nimport { LocalStorageEffect } from './effects/local-storage.effect';\nimport { GridStatesReducer } from './reducers/grid-states.reducer';\nimport { SelectedRowsReducer } from './reducers/selected-rows.reducer';\n\nexport const provideNgssmAgGrid = (): EnvironmentProviders => {\n return makeEnvironmentProviders([provideReducers(GridStatesReducer, SelectedRowsReducer), provideEffect(LocalStorageEffect)]);\n};\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/helpers';\nexport * from './lib/provide-ngssm-ag-grid';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"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/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/components/ngssm-actions-cell-renderer/ngssm-actions-cell-renderer-params.ts","../../../projects/ngssm-ag-grid/src/lib/ngssm-ag-grid-options.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid-theme.directive.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-ag-grid.directive.ts","../../../projects/ngssm-ag-grid/src/lib/components/ngssm-base-cell-editor.ts","../../../projects/ngssm-ag-grid/src/lib/helpers.ts","../../../projects/ngssm-ag-grid/src/lib/effects/local-storage.effect.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/provide-ngssm-ag-grid.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(\n public readonly gridId: string,\n public readonly origin: ChangeOrigin,\n public readonly columnStates: ColumnState[]\n ) {}\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(\n public readonly gridId: string,\n public readonly origin: ChangeOrigin,\n public readonly ids: string[]\n ) {}\n}\n","import { Action } from 'ngssm-store';\n\nexport class AgGridAction implements Action {\n constructor(\n public readonly type: string,\n public readonly gridId: string\n ) {}\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 { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 hidden$: BehaviorSubject<boolean>;\n\n actionConfig: ActionConfig;\n\n tooltip: string;\n}\n\n@Component({\n selector: 'ngssm-actions-cell-renderer',\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule],\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 if (a.actionConfig.isHidden instanceof Function) {\n a.hidden$.next(a.actionConfig.isHidden(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 hidden$: new BehaviorSubject<boolean>(false),\n actionConfig: a,\n tooltip: a.tooltip ?? ''\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 if (a.isHidden instanceof Function) {\n actionButton.hidden$.next(a.isHidden(rendererParams as any));\n } else if (isObservable(a.isHidden)) {\n a.isHidden.pipe(takeUntil(this.unsubscribeAll$)).subscribe((v) => actionButton.hidden$.next(v));\n }\n\n return actionButton;\n });\n\n this._actionButtons$.next(actionButtons);\n }\n}\n","<div class=\"ngssm-actions-cell\">\n <div *ngFor=\"let actionButton of actionButtons$ | async; let index=index\">\n <button mat-icon-button class=\"ngssm-actions-cell-button\" [color]=\"actionButton.color\" id=\"action_{{index}}\"\n [disabled]=\"actionButton.disabled$ | async\" (click)=\"executeAction(actionButton)\"\n [matTooltip]=\"actionButton.tooltip\" *ngIf=\"(actionButton.hidden$ | async) === false\">\n <mat-icon [class]=\"actionButton.cssClass\"></mat-icon>\n </button>\n </div>\n\n</div>","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","import { InjectionToken } from '@angular/core';\nimport { ColDef, 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 defaultColDef: ColDef | undefined = undefined;\n}\n\nexport const NGSSM_AG_GRID_OPTIONS = new InjectionToken<NgssmAgGridOptions>('NGSSM_AG_GRID_OPTIONS');\n","import { Directive, HostBinding, Inject, Optional } from '@angular/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\n\nimport { NgssmAgGridOptions, NGSSM_AG_GRID_OPTIONS } from '../ngssm-ag-grid-options';\n\n@Directive({\n selector: '[ngssmAgGridTheme]',\n standalone: true\n})\nexport class NgssmAgGridThemeDirective {\n @HostBinding('class') className = '';\n\n constructor(\n @Inject(NGSSM_AG_GRID_OPTIONS) @Optional() options: NgssmAgGridOptions,\n private agGridAngular: AgGridAngular\n ) {\n this.className = (options ?? new NgssmAgGridOptions()).theme;\n if (this.agGridAngular.statusBar === undefined) {\n this.agGridAngular.statusBar = options?.statusBar;\n }\n\n if (this.agGridAngular.defaultColDef === undefined) {\n this.agGridAngular.defaultColDef = options?.defaultColDef;\n }\n }\n}\n","import { Directive, Input, OnDestroy } 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';\n\n@Directive({\n selector: '[ngssmAgGrid]',\n standalone: true\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 ) {\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 { ICellEditorAngularComp } from 'ag-grid-angular';\nimport { ICellEditorParams } from 'ag-grid-community';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nexport abstract class NgssmBaseCellEditor extends NgSsmComponent implements ICellEditorAngularComp {\n protected params?: ICellEditorParams;\n\n constructor(store: Store) {\n super(store);\n }\n\n public agInit(params: ICellEditorParams<any, any, any>): void {\n this.params = params;\n }\n\n public getValue() {\n return '';\n }\n\n public isPopup(): boolean {\n return true;\n }\n\n public getPopupPosition(): 'over' | 'under' | undefined {\n return 'over';\n }\n\n public isCancelAfterEnd(): boolean {\n return true;\n }\n\n public cancel(): void {\n this.params?.stopEditing();\n }\n}\n","import { ColDef } from 'ag-grid-community';\n\nexport const getColDefWithNoPadding = (): Partial<ColDef> => ({\n cellClass: ['cell-with-no-padding']\n});\n\nexport const getColDefForEditableColumn = (): Partial<ColDef> => ({\n editable: true,\n headerClass: 'ngssm-ag-editable-cell',\n valueSetter: () => false\n});\n","import { Injectable } from '@angular/core';\n\nimport { Effect, Store, State, Action, Logger } from 'ngssm-store';\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","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } 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","import { Injectable } from '@angular/core';\n\nimport { Reducer, State, Action } 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","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nimport { provideEffect, provideReducers } from 'ngssm-store';\n\nimport { LocalStorageEffect } from './effects/local-storage.effect';\nimport { GridStatesReducer } from './reducers/grid-states.reducer';\nimport { SelectedRowsReducer } from './reducers/selected-rows.reducer';\n\nexport const provideNgssmAgGrid = (): EnvironmentProviders => {\n return makeEnvironmentProviders([provideReducers(GridStatesReducer, SelectedRowsReducer), provideEffect(LocalStorageEffect)]);\n};\n","/*\n * Public API Surface of ngssm-ag-grid\n */\n\nexport * from './lib/actions';\nexport * from './lib/state';\nexport * from './lib/components';\nexport * from './lib/ngssm-ag-grid-options';\nexport * from './lib/helpers';\nexport * from './lib/provide-ngssm-ag-grid';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -2,3 +2,4 @@ export * from './ngssm-actions-cell-renderer';
2
2
  export * from './ngssm-ag-grid-config';
3
3
  export * from './ngssm-ag-grid-theme.directive';
4
4
  export * from './ngssm-ag-grid.directive';
5
+ export * from './ngssm-base-cell-editor';
@@ -1,8 +1,10 @@
1
+ import { AgGridAngular } from 'ag-grid-angular';
1
2
  import { NgssmAgGridOptions } from '../ngssm-ag-grid-options';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class NgssmAgGridThemeDirective {
5
+ private agGridAngular;
4
6
  className: string;
5
- constructor(options: NgssmAgGridOptions);
6
- static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAgGridThemeDirective, [{ optional: true; }]>;
7
+ constructor(options: NgssmAgGridOptions, agGridAngular: AgGridAngular);
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAgGridThemeDirective, [{ optional: true; }, null]>;
7
9
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgssmAgGridThemeDirective, "[ngssmAgGridTheme]", never, {}, {}, never, never, true, never>;
8
10
  }
@@ -2,20 +2,19 @@ import { OnDestroy } from '@angular/core';
2
2
  import { AgGridAngular } from 'ag-grid-angular';
3
3
  import { Store } from 'ngssm-store';
4
4
  import { NgssmAgGridConfig } from './ngssm-ag-grid-config';
5
- import { NgssmAgGridOptions } from '../ngssm-ag-grid-options';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class NgssmAgGridDirective implements OnDestroy {
8
7
  private store;
9
8
  private agGridAngular;
10
9
  private readonly unsubsribeAll$;
11
10
  private readonly _config$;
12
- constructor(store: Store, agGridAngular: AgGridAngular, options: NgssmAgGridOptions);
11
+ constructor(store: Store, agGridAngular: AgGridAngular);
13
12
  set config(value: string | NgssmAgGridConfig);
14
13
  ngOnDestroy(): void;
15
14
  private initSateChangeListener;
16
15
  private saveGridState;
17
16
  private processSelectionChanged;
18
17
  private getContextMenuItems;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAgGridDirective, [null, null, { optional: true; }]>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAgGridDirective, never>;
20
19
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgssmAgGridDirective, "[ngssmAgGrid]", never, { "config": { "alias": "ngssmAgGrid"; "required": false; }; }, {}, never, never, true, never>;
21
20
  }
@@ -0,0 +1,13 @@
1
+ import { ICellEditorAngularComp } from 'ag-grid-angular';
2
+ import { ICellEditorParams } from 'ag-grid-community';
3
+ import { NgSsmComponent, Store } from 'ngssm-store';
4
+ export declare abstract class NgssmBaseCellEditor extends NgSsmComponent implements ICellEditorAngularComp {
5
+ protected params?: ICellEditorParams;
6
+ constructor(store: Store);
7
+ agInit(params: ICellEditorParams<any, any, any>): void;
8
+ getValue(): string;
9
+ isPopup(): boolean;
10
+ getPopupPosition(): 'over' | 'under' | undefined;
11
+ isCancelAfterEnd(): boolean;
12
+ cancel(): void;
13
+ }
package/lib/helpers.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { ColDef } from 'ag-grid-community';
2
2
  export declare const getColDefWithNoPadding: () => Partial<ColDef>;
3
+ export declare const getColDefForEditableColumn: () => Partial<ColDef>;
@@ -1,9 +1,10 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { StatusPanelDef } from 'ag-grid-community';
2
+ import { ColDef, StatusPanelDef } from 'ag-grid-community';
3
3
  export declare class NgssmAgGridOptions {
4
4
  theme: string;
5
5
  statusBar: {
6
6
  statusPanels: StatusPanelDef[];
7
7
  } | undefined;
8
+ defaultColDef: ColDef | undefined;
8
9
  }
9
10
  export declare const NGSSM_AG_GRID_OPTIONS: InjectionToken<NgssmAgGridOptions>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-ag-grid",
3
- "version": "16.2.2",
3
+ "version": "16.2.3",
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": ">=16.0.0",
10
10
  "ag-grid-angular": ">=29.0.0",
11
11
  "ag-grid-community": ">=29.0.0",
12
- "ngssm-store": "16.2.2"
12
+ "ngssm-store": "16.2.3"
13
13
  },
14
14
  "dependencies": {
15
15
  "tslib": ">=2.4.0"
@@ -1,4 +1,17 @@
1
1
  .cell-with-no-padding {
2
2
  padding-right: 0 !important;
3
3
  padding-left: 0 !important;
4
+ }
5
+
6
+ .ngssm-ag-editable-cell {
7
+ display: flex !important;
8
+ flex-direction: row;
9
+ }
10
+
11
+ .ngssm-ag-editable-cell::before {
12
+ font-family: 'FontAwesome', sans-serif;
13
+ display: inline-block;
14
+ padding-right: 6px;
15
+ vertical-align: middle;
16
+ content: "\f303";
4
17
  }