@guiexpert/angular-table 14.0.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.eslintrc.json +46 -0
  2. package/.idea/angular-table.iml +12 -0
  3. package/.idea/modules.xml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/ng-package.json +7 -0
  6. package/package.json +7 -36
  7. package/project.json +37 -0
  8. package/src/lib/angular-table/component-renderer.if.ts +12 -0
  9. package/src/lib/angular-table/service/dom-service.ts +54 -0
  10. package/src/lib/angular-table/service/render-wrapper-factory.ts +24 -0
  11. package/src/lib/angular-table/service/renderer-wrapper.ts +86 -0
  12. package/src/lib/angular-table/table-color-classes.css +90 -0
  13. package/src/lib/angular-table/table-color-vars.css +141 -0
  14. package/src/lib/angular-table/table.component.css +88 -0
  15. package/src/lib/angular-table/table.component.ts +152 -0
  16. package/tsconfig.json +28 -0
  17. package/tsconfig.lib.json +18 -0
  18. package/tsconfig.lib.prod.json +9 -0
  19. package/esm2020/guiexpert-angular-table.mjs +0 -5
  20. package/esm2020/index.mjs +0 -6
  21. package/esm2020/lib/angular-table/component-renderer.if.mjs +0 -2
  22. package/esm2020/lib/angular-table/service/dom-service.mjs +0 -47
  23. package/esm2020/lib/angular-table/service/render-wrapper-factory.mjs +0 -22
  24. package/esm2020/lib/angular-table/service/renderer-wrapper.mjs +0 -44
  25. package/esm2020/lib/angular-table/table.component.mjs +0 -104
  26. package/fesm2015/guiexpert-angular-table.mjs +0 -215
  27. package/fesm2015/guiexpert-angular-table.mjs.map +0 -1
  28. package/fesm2020/guiexpert-angular-table.mjs +0 -215
  29. package/fesm2020/guiexpert-angular-table.mjs.map +0 -1
  30. package/lib/angular-table/component-renderer.if.d.ts +0 -4
  31. package/lib/angular-table/service/dom-service.d.ts +0 -16
  32. package/lib/angular-table/service/render-wrapper-factory.d.ts +0 -13
  33. package/lib/angular-table/service/renderer-wrapper.d.ts +0 -14
  34. package/lib/angular-table/table.component.d.ts +0 -41
  35. /package/{index.d.ts → src/index.ts} +0 -0
@@ -0,0 +1,152 @@
1
+ import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ ElementRef,
5
+ Input,
6
+ NgZone,
7
+ OnDestroy,
8
+ OnInit,
9
+ Output,
10
+ Renderer2,
11
+ ViewEncapsulation
12
+ } from "@angular/core";
13
+ import { CommonModule } from "@angular/common";
14
+ import { debounceTime, Subject, takeWhile } from "rxjs";
15
+ import {
16
+ EventListenerIf,
17
+ GeModelChangeEvent,
18
+ GeMouseEvent,
19
+ TableApi,
20
+ TableModelIf,
21
+ TableOptions,
22
+ TableOptionsIf,
23
+ TableScope
24
+ } from "@guiexpert/table";
25
+ import { DomService } from "./service/dom-service";
26
+
27
+
28
+ @Component({
29
+ selector: "guiexpert-table",
30
+ standalone: true,
31
+ imports: [CommonModule],
32
+ providers: [DomService],
33
+ template: "",
34
+ styleUrls: [
35
+ "./table.component.css",
36
+ "./table-color-vars.css",
37
+ "./table-color-classes.css"
38
+ ],
39
+ encapsulation: ViewEncapsulation.None,
40
+ changeDetection: ChangeDetectionStrategy.OnPush
41
+ })
42
+ export class TableComponent implements OnInit, OnDestroy, EventListenerIf {
43
+
44
+ @Output()
45
+ tableReady = new Subject<TableApi>();
46
+
47
+ @Output()
48
+ mouseMoved: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
49
+
50
+ @Output()
51
+ mouseDragging: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
52
+
53
+ @Output()
54
+ mouseDraggingEnded: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
55
+
56
+ @Output()
57
+ contextmenu: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
58
+
59
+ @Output()
60
+ mouseClicked: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
61
+
62
+ @Output()
63
+ modelChanged: Subject<GeModelChangeEvent> = new Subject<GeModelChangeEvent>();
64
+
65
+ @Output()
66
+ checkboxChanged: Subject<any[]> = new Subject<any[]>();
67
+
68
+ @Input()
69
+ tableModel?: TableModelIf;
70
+
71
+ @Input()
72
+ tableOptions: TableOptionsIf = new TableOptions();
73
+
74
+ @Input()
75
+ debounceMouseClickDelay: number = 150;
76
+
77
+ private debounceMouseClick: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
78
+
79
+ private tableScope?: TableScope;
80
+ private alive = true;
81
+
82
+
83
+ constructor(
84
+ private readonly renderer: Renderer2,
85
+ private readonly elementRef: ElementRef,
86
+ private readonly zone: NgZone,
87
+ private readonly domService: DomService
88
+ ) {
89
+ }
90
+
91
+
92
+ onContextmenu(evt: GeMouseEvent): void {
93
+ this.contextmenu.next(evt);
94
+ }
95
+
96
+ onMouseMoved(evt: GeMouseEvent): void {
97
+ this.mouseMoved.next(evt);
98
+ }
99
+
100
+ // will be called by table-scope:
101
+ onMouseClicked(evt: GeMouseEvent): void {
102
+ this.debounceMouseClick.next(evt);
103
+ }
104
+
105
+ onCheckboxChanged(arr: any[]): void {
106
+ this.checkboxChanged.next(arr);
107
+ }
108
+
109
+ onModelChanged(evt: GeModelChangeEvent): void {
110
+ this.modelChanged.next(evt);
111
+ }
112
+
113
+ ngOnInit(): void {
114
+ this.initModel();
115
+ this.debounceMouseClick
116
+ .pipe(
117
+ debounceTime(this.debounceMouseClickDelay),
118
+ takeWhile(() => this.alive)
119
+ )
120
+ .subscribe((value) => this.mouseClicked.next(value));
121
+ }
122
+
123
+ ngOnDestroy(): void {
124
+ this.alive = false;
125
+ }
126
+
127
+
128
+ onMouseDragging(evt: GeMouseEvent): void {
129
+ this.mouseDragging.next(evt);
130
+ }
131
+
132
+ onMouseDraggingEnd(evt: GeMouseEvent): void {
133
+ this.mouseDraggingEnded.next(evt);
134
+ }
135
+
136
+
137
+ private initModel() {
138
+ this.zone.runOutsideAngular(this.init.bind(this));
139
+ }
140
+
141
+ private init() {
142
+ if (this.tableModel) {
143
+ this.tableScope = new TableScope(
144
+ this.elementRef.nativeElement, this.tableModel, this.domService, this.tableOptions, this
145
+ );
146
+ this.tableScope.firstInit();
147
+ this.tableReady.next(this.tableScope.getApi());
148
+ }
149
+ }
150
+
151
+
152
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "./tsconfig.lib.json"
8
+ },
9
+ {
10
+ "path": "./tsconfig.lib.prod.json"
11
+ }
12
+ ],
13
+ "compilerOptions": {
14
+ "target": "es2020",
15
+ "forceConsistentCasingInFileNames": true,
16
+ "strict": true,
17
+ "noImplicitOverride": true,
18
+ "noPropertyAccessFromIndexSignature": true,
19
+ "noImplicitReturns": true,
20
+ "noFallthroughCasesInSwitch": true
21
+ },
22
+ "angularCompilerOptions": {
23
+ "enableI18nLegacyMessageIdFormat": false,
24
+ "strictInjectionParameters": true,
25
+ "strictInputAccessModifiers": true,
26
+ "strictTemplates": true
27
+ }
28
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "inlineSources": true,
8
+ "types": []
9
+ },
10
+ "exclude": [
11
+ "jest.config.ts",
12
+ "**/*.test.ts",
13
+ "**/*.spec.ts"
14
+ ],
15
+ "include": [
16
+ "**/*.ts"
17
+ ]
18
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.lib.json",
3
+ "compilerOptions": {
4
+ "declarationMap": false
5
+ },
6
+ "angularCompilerOptions": {
7
+ "compilationMode": "partial"
8
+ }
9
+ }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZXhwZXJ0LWFuZ3VsYXItdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGFibGUvc3JjL2d1aWV4cGVydC1hbmd1bGFyLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
package/esm2020/index.mjs DELETED
@@ -1,6 +0,0 @@
1
- export * from './lib/angular-table/table.component';
2
- export * from './lib/angular-table/component-renderer.if';
3
- export * from './lib/angular-table/service/dom-service';
4
- export * from './lib/angular-table/service/renderer-wrapper';
5
- export * from './lib/angular-table/service/render-wrapper-factory';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGFibGUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdGFibGUvdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdGFibGUvY29tcG9uZW50LXJlbmRlcmVyLmlmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdGFibGUvc2VydmljZS9kb20tc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXRhYmxlL3NlcnZpY2UvcmVuZGVyZXItd3JhcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXRhYmxlL3NlcnZpY2UvcmVuZGVyLXdyYXBwZXItZmFjdG9yeSc7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlbmRlcmVyLmlmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRhYmxlL3NyYy9saWIvYW5ndWxhci10YWJsZS9jb21wb25lbnQtcmVuZGVyZXIuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJlYUlkZW50LCBBcmVhTW9kZWxJZiwgUmVuZGVyZXJDbGVhbnVwRm5UeXBlfSBmcm9tIFwiQGd1aWV4cGVydC90YWJsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFJlbmRlcmVySWY8VD4ge1xuXG4gIHNldERhdGEoXG4gICAgcm93SW5kZXg6IG51bWJlcixcbiAgICBjb2x1bW5JbmRleDogbnVtYmVyLFxuICAgIGFyZWFJZGVudDogQXJlYUlkZW50LFxuICAgIGFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgY2VsbFZhbHVlOiBhbnkpOiBSZW5kZXJlckNsZWFudXBGblR5cGUgfCB1bmRlZmluZWQ7XG5cbn1cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Injectable, Renderer2 } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class DomService {
4
- constructor(renderer) {
5
- this.renderer = renderer;
6
- }
7
- setStyle(el, style, value) {
8
- this.renderer.setStyle(el, style, value);
9
- return el;
10
- }
11
- ;
12
- appendText(parent, text) {
13
- const div = this.renderer.createText(text);
14
- this.renderer.appendChild(parent, div);
15
- return div;
16
- }
17
- addClass(div, clazz) {
18
- if (clazz.includes(' ')) {
19
- clazz.split(' ').forEach(c => this.renderer.addClass(div, c));
20
- }
21
- else {
22
- this.renderer.addClass(div, clazz);
23
- }
24
- return div;
25
- }
26
- appendChild(parent, child) {
27
- this.renderer.appendChild(parent, child);
28
- }
29
- createElement(name) {
30
- return this.renderer.createElement(name);
31
- }
32
- createText(text) {
33
- return this.renderer.createText(text);
34
- }
35
- setAttribute(ele, key, value) {
36
- this.renderer.setAttribute(ele, key, value);
37
- }
38
- }
39
- DomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DomService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
40
- DomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DomService, providedIn: "root" });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DomService, decorators: [{
42
- type: Injectable,
43
- args: [{
44
- providedIn: "root"
45
- }]
46
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGFibGUvc3JjL2xpYi9hbmd1bGFyLXRhYmxlL3NlcnZpY2UvZG9tLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxVQUFVO0lBRXJCLFlBQ1csUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUU5QixDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQU8sRUFBRSxLQUFhLEVBQUUsS0FBVTtRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUFBLENBQUM7SUFHRixVQUFVLENBQUMsTUFBc0IsRUFBRSxJQUFZO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFHRCxRQUFRLENBQUMsR0FBbUIsRUFBRSxLQUFhO1FBQ3pDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzlEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBbUIsRUFBRSxLQUFrQjtRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWEsQ0FBSSxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFnQixFQUFFLEdBQVcsRUFBRSxLQUFhO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7dUdBM0NVLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFJlbmRlcmVyMn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7RG9tU2VydmljZUlmfSBmcm9tIFwiQGd1aWV4cGVydC90YWJsZVwiO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRG9tU2VydmljZSBpbXBsZW1lbnRzIERvbVNlcnZpY2VJZiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7XG4gIH1cblxuICBzZXRTdHlsZShlbDogYW55LCBzdHlsZTogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCBzdHlsZSwgdmFsdWUpO1xuICAgIHJldHVybiBlbDtcbiAgfTtcblxuXG4gIGFwcGVuZFRleHQocGFyZW50OiBIVE1MRGl2RWxlbWVudCwgdGV4dDogc3RyaW5nKTogSFRNTERpdkVsZW1lbnQge1xuICAgIGNvbnN0IGRpdiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0ZXh0KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudCwgZGl2KTtcbiAgICByZXR1cm4gZGl2O1xuICB9XG5cblxuICBhZGRDbGFzcyhkaXY6IEhUTUxEaXZFbGVtZW50LCBjbGF6ejogc3RyaW5nKSB7XG4gICAgaWYgKGNsYXp6LmluY2x1ZGVzKCcgJykpIHtcbiAgICAgIGNsYXp6LnNwbGl0KCcgJykuZm9yRWFjaChjID0+IHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZGl2LCBjKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkaXYsIGNsYXp6KTtcbiAgICB9XG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIGFwcGVuZENoaWxkKHBhcmVudDogSFRNTEVsZW1lbnQsIGNoaWxkOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjaGlsZCk7XG4gIH1cblxuICBjcmVhdGVFbGVtZW50PFQ+KG5hbWU6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQobmFtZSk7XG4gIH1cblxuICBjcmVhdGVUZXh0KHRleHQ6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRleHQpO1xuICB9XG5cbiAgc2V0QXR0cmlidXRlKGVsZTogSFRNTEVsZW1lbnQsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlLCBrZXksIHZhbHVlKTtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { ApplicationRef, EnvironmentInjector, Injectable, NgZone } from "@angular/core";
2
- import { RendererWrapper } from "./renderer-wrapper";
3
- import * as i0 from "@angular/core";
4
- export class RenderWrapperFactory {
5
- constructor(appRef, injector, zone) {
6
- this.appRef = appRef;
7
- this.injector = injector;
8
- this.zone = zone;
9
- }
10
- create(componentType, cdr) {
11
- return new RendererWrapper(componentType, this.appRef, this.injector, cdr, this.zone);
12
- }
13
- }
14
- RenderWrapperFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RenderWrapperFactory, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
15
- RenderWrapperFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RenderWrapperFactory, providedIn: "root" });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RenderWrapperFactory, decorators: [{
17
- type: Injectable,
18
- args: [{
19
- providedIn: "root"
20
- }]
21
- }], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i0.NgZone }]; } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXdyYXBwZXItZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10YWJsZS9zcmMvbGliL2FuZ3VsYXItdGFibGUvc2VydmljZS9yZW5kZXItd3JhcHBlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQXFCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQU8sTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ21CLE1BQXNCLEVBQ3RCLFFBQTZCLEVBQzdCLElBQVk7UUFGWixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFRO0lBRS9CLENBQUM7SUFFRCxNQUFNLENBQ0osYUFBMkMsRUFDM0MsR0FBc0I7UUFFdEIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEYsQ0FBQzs7aUhBZFUsb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvblJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGFibGUsIE5nWm9uZSwgVHlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tcG9uZW50UmVuZGVyZXJJZn0gZnJvbSBcIi4uL2NvbXBvbmVudC1yZW5kZXJlci5pZlwiO1xuaW1wb3J0IHtSZW5kZXJlcldyYXBwZXJ9IGZyb20gXCIuL3JlbmRlcmVyLXdyYXBwZXJcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBSZW5kZXJXcmFwcGVyRmFjdG9yeSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gIH1cblxuICBjcmVhdGU8VD4oXG4gICAgY29tcG9uZW50VHlwZTogVHlwZTxDb21wb25lbnRSZW5kZXJlcklmPFQ+PixcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHJldHVybiBuZXcgUmVuZGVyZXJXcmFwcGVyKGNvbXBvbmVudFR5cGUsIHRoaXMuYXBwUmVmLCB0aGlzLmluamVjdG9yLCBjZHIsIHRoaXMuem9uZSk7XG4gIH1cblxufVxuIl19
@@ -1,44 +0,0 @@
1
- import { createComponent, EventEmitter } from "@angular/core";
2
- import { Subject, takeUntil } from "rxjs";
3
- export class RendererWrapper {
4
- constructor(componentType, appRef, injector, cdr, zone) {
5
- this.componentType = componentType;
6
- this.appRef = appRef;
7
- this.injector = injector;
8
- this.cdr = cdr;
9
- this.zone = zone;
10
- this.event$ = new EventEmitter();
11
- this.closed$ = new Subject();
12
- }
13
- render(cellDiv, rowIndex, columnIndex, areaIdent, areaModel, cellValue, domService) {
14
- const componentRef = createComponent(this.componentType, {
15
- environmentInjector: this.injector
16
- });
17
- componentRef.instance.setData(rowIndex, columnIndex, areaIdent, areaModel, cellValue);
18
- const emmiterNames = Object.keys(componentRef.instance)
19
- .filter(key => {
20
- // @ts-ignore
21
- const t = componentRef.instance[key];
22
- return t['subscribe'];
23
- });
24
- // @ts-ignore
25
- const observables = (emmiterNames.map(key => componentRef.instance[key]));
26
- observables.forEach(obs => obs
27
- .pipe(takeUntil(this.closed$))
28
- .subscribe((event) => {
29
- console.info('RendererWrapper event >', event); // TODO hmm?
30
- this.event$.next(event);
31
- }));
32
- cellDiv.appendChild(componentRef.location.nativeElement);
33
- this.appRef.attachView(componentRef.hostView);
34
- this.zone.run(() => {
35
- this.cdr.detectChanges();
36
- });
37
- return () => {
38
- // clean up:
39
- this.appRef.detachView(componentRef.hostView);
40
- this.closed$.next(Date.now());
41
- };
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXItd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10YWJsZS9zcmMvbGliL2FuZ3VsYXItdGFibGUvc2VydmljZS9yZW5kZXJlci13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFHTCxlQUFlLEVBRWYsWUFBWSxFQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSXhDLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ1UsYUFBMkMsRUFDM0MsTUFBc0IsRUFDdEIsUUFBNkIsRUFDN0IsR0FBc0IsRUFDYixJQUFZO1FBSnJCLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7UUFSZixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQVNqRCxDQUFDO0lBRUQsTUFBTSxDQUNKLE9BQXVCLEVBQ3ZCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLFNBQW9CLEVBQ3BCLFNBQXNCLEVBQ3RCLFNBQWMsRUFDZCxVQUF3QjtRQUV4QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2RCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNuQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDM0IsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsQ0FBQyxDQUFDO1FBR2IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2FBQ3BELE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNaLGFBQWE7WUFDYixNQUFNLENBQUMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBRUwsYUFBYTtRQUNiLE1BQU0sV0FBVyxHQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDeEcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUc7YUFDM0IsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ3hCO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRTtZQUNWLFlBQVk7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmVhSWRlbnQsIEFyZWFNb2RlbElmLCBDZWxsUmVuZGVyZXJJZiwgRG9tU2VydmljZUlmLCBSZW5kZXJlckNsZWFudXBGblR5cGV9IGZyb20gXCJAZ3VpZXhwZXJ0L3RhYmxlXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgRXZlbnRFbWl0dGVyLFxuICBOZ1pvbmUsXG4gIFR5cGVcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tcG9uZW50UmVuZGVyZXJJZn0gZnJvbSBcIi4uL2NvbXBvbmVudC1yZW5kZXJlci5pZlwiO1xuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWx9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzL2ludGVybmFsL09ic2VydmFibGVcIjtcblxuXG5leHBvcnQgY2xhc3MgUmVuZGVyZXJXcmFwcGVyPFQgZXh0ZW5kcyBDb21wb25lbnRSZW5kZXJlcklmPFQ+PlxuICBpbXBsZW1lbnRzIENlbGxSZW5kZXJlcklmIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnQkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xvc2VkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbXBvbmVudFR5cGU6IFR5cGU8Q29tcG9uZW50UmVuZGVyZXJJZjxUPj4sXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lXG4gICkge1xuICB9XG5cbiAgcmVuZGVyKFxuICAgIGNlbGxEaXY6IEhUTUxEaXZFbGVtZW50LFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgY29sdW1uSW5kZXg6IG51bWJlcixcbiAgICBhcmVhSWRlbnQ6IEFyZWFJZGVudCxcbiAgICBhcmVhTW9kZWw6IEFyZWFNb2RlbElmLFxuICAgIGNlbGxWYWx1ZTogYW55LFxuICAgIGRvbVNlcnZpY2U6IERvbVNlcnZpY2VJZik6IFJlbmRlcmVyQ2xlYW51cEZuVHlwZSB8IHVuZGVmaW5lZCB7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQodGhpcy5jb21wb25lbnRUeXBlLCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmluamVjdG9yXG4gICAgfSk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNldERhdGEoXG4gICAgICByb3dJbmRleCxcbiAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgYXJlYUlkZW50LFxuICAgICAgYXJlYU1vZGVsLFxuICAgICAgY2VsbFZhbHVlKTtcblxuXG4gICAgY29uc3QgZW1taXRlck5hbWVzID0gT2JqZWN0LmtleXMoY29tcG9uZW50UmVmLmluc3RhbmNlKVxuICAgICAgLmZpbHRlcihrZXkgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IHQgPSBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XTtcbiAgICAgICAgcmV0dXJuIHRbJ3N1YnNjcmliZSddXG4gICAgICB9KTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZVtdID0gKGVtbWl0ZXJOYW1lcy5tYXAoa2V5ID0+IChjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSBhcyBPYnNlcnZhYmxlKSkpO1xuICAgIG9ic2VydmFibGVzLmZvckVhY2gob2JzID0+IG9ic1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNsb3NlZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnUmVuZGVyZXJXcmFwcGVyIGV2ZW50ID4nLCBldmVudCk7IC8vIFRPRE8gaG1tP1xuICAgICAgICB0aGlzLmV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNlbGxEaXYuYXBwZW5kQ2hpbGQoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gY2xlYW4gdXA6XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICB0aGlzLmNsb3NlZCQubmV4dChEYXRlLm5vdygpKTtcbiAgICB9O1xuICB9XG5cblxufVxuIl19
@@ -1,104 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, Input, NgZone, Output, Renderer2, ViewEncapsulation } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import { debounceTime, Subject, takeWhile } from "rxjs";
4
- import { TableOptions, TableScope } from "@guiexpert/table";
5
- import { DomService } from "./service/dom-service";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./service/dom-service";
8
- export class TableComponent {
9
- constructor(renderer, elementRef, zone, domService) {
10
- this.renderer = renderer;
11
- this.elementRef = elementRef;
12
- this.zone = zone;
13
- this.domService = domService;
14
- this.tableReady = new Subject();
15
- this.mouseMoved = new Subject();
16
- this.mouseDragging = new Subject();
17
- this.mouseDraggingEnded = new Subject();
18
- this.contextmenu = new Subject();
19
- this.mouseClicked = new Subject();
20
- this.modelChanged = new Subject();
21
- this.checkboxChanged = new Subject();
22
- this.tableOptions = new TableOptions();
23
- this.debounceMouseClickDelay = 150;
24
- this.debounceMouseClick = new Subject();
25
- this.alive = true;
26
- this._if = true;
27
- }
28
- set tableIf(value) {
29
- this._if = value;
30
- Promise.resolve().then(this.initModel.bind(this));
31
- }
32
- onContextmenu(evt) {
33
- this.contextmenu.next(evt);
34
- }
35
- onMouseMoved(evt) {
36
- this.mouseMoved.next(evt);
37
- }
38
- // will be called by table-scope:
39
- onMouseClicked(evt) {
40
- this.debounceMouseClick.next(evt);
41
- }
42
- onCheckboxChanged(arr) {
43
- this.checkboxChanged.next(arr);
44
- }
45
- onModelChanged(evt) {
46
- this.modelChanged.next(evt);
47
- }
48
- ngOnInit() {
49
- this.initModel();
50
- this.debounceMouseClick
51
- .pipe(debounceTime(this.debounceMouseClickDelay), takeWhile(() => this.alive))
52
- .subscribe((value) => this.mouseClicked.next(value));
53
- }
54
- ngOnDestroy() {
55
- this.alive = false;
56
- }
57
- onMouseDragging(evt) {
58
- this.mouseDragging.next(evt);
59
- }
60
- onMouseDraggingEnd(evt) {
61
- this.mouseDraggingEnded.next(evt);
62
- }
63
- initModel() {
64
- this.zone.runOutsideAngular(this.init.bind(this));
65
- }
66
- init() {
67
- if (this.tableModel) {
68
- this.tableScope = new TableScope(this.elementRef.nativeElement, this.tableModel, this.domService, this.tableOptions, this);
69
- this.tableScope.firstInit();
70
- this.tableReady.next(this.tableScope.getApi());
71
- }
72
- }
73
- }
74
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.DomService }], target: i0.ɵɵFactoryTarget.Component });
75
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: TableComponent, isStandalone: true, selector: "guiexpert-table", inputs: { tableModel: "tableModel", tableOptions: "tableOptions", debounceMouseClickDelay: "debounceMouseClickDelay", tableIf: "tableIf" }, outputs: { tableReady: "tableReady", mouseMoved: "mouseMoved", mouseDragging: "mouseDragging", mouseDraggingEnded: "mouseDraggingEnded", contextmenu: "contextmenu", mouseClicked: "mouseClicked", modelChanged: "modelChanged", checkboxChanged: "checkboxChanged" }, providers: [DomService], ngImport: i0, template: "", isInline: true, styles: [":root{--ge-table-color-error-text: #e00034;--ge-table-color-selected-range-bg: rgba(0, 152, 219, .4);--ge-table-color-col-resize-handle-hover-bg: rgb(0, 255, 255);--ge-table-color-drop-zone: rgba(244, 255, 242, .6);--ge-table-color-drop-zone-bg: rgba(244, 255, 242, .6);--ge-table-color-dragged-col-div-bg: lightcyan;--ge-table-color-focus-border-bg: rgb(0, 255, 255);--ge-table-color-header-bg: rgba(233, 233, 233, .5);--ge-table-color-footer-bg: rgba(233, 233, 233, .5);--ge-table-color-body-west-bg: rgba(244, 244, 244, .5);--ge-table-color-body-east-bg: rgba(244, 244, 244, .5);--ge-table-color-hover-column-bg: rgba(224, 255, 255, .5);--ge-table-color-hover-row-bg: rgba(224, 255, 255, .5);--ge-table-color-west-fixed-column-border-bg: #bbb;--ge-table-color-east-fixed-column-border-bg: #bbb;--ge-table-color-footer-border-bg: #bbb;--ge-table-color-header-border-bg: #bbb;--ge-table-color-row-border-bg: #ddd;--ge-table-color-column-border-bg: #dadada;--ge-table-color-tree-arrow-collapsed-color: #e00034;--ge-table-color-true-text-color: green;--ge-table-color-false-text-color: #e00034}.ge-true-text-color{color:var(--ge-table-color-true-text-color)}.ge-false-text-color{color:var(--ge-table-color-false-text-color)}.ge-table-col-div{text-align:center;line-height:2.5;-webkit-user-select:none;user-select:none}.ge-table-label-div{padding:0;display:block;text-overflow:ellipsis;overflow:hidden}.ge-cell-error{color:var(--ge-table-color-error-text)}.ge-table-selected-range{background-color:var(--ge-table-color-selected-range-bg)}.ge-table-col-resize-handle:hover{background-color:var(--ge-table-color-col-resize-handle-hover-bg)}.ge-table-drop-zone{background-color:var(--ge-table-color-drop-zone-bg)}.ge-table-dragged-col-div{background-color:var(--ge-table-color-dragged-col-div-bg)}.ge-table-focus-border{background-color:var(--ge-table-color-focus-border-bg)}.ge-table-label-div .ge-table-label{padding-left:10px;padding-right:10px}.ge-table-text-align-left{text-align:left}.ge-table-text-align-right{text-align:right}.ge-table-text-align-center{text-align:center}.ge-table-row-checkbox-div{padding-left:14px}.ge-table-header{background-color:var(--ge-table-color-header-bg)}.ge-table-footer{background-color:var(--ge-table-color-footer-bg)}.ge-table-body-west{background-color:var(--ge-table-color-body-west-bg)}.ge-table-body-east{background-color:var(--ge-table-color-body-east-bg)}.ge-table-hover-column{background-color:var(--ge-table-color-hover-column-bg)}.ge-table-hover-row{background-color:var(--ge-table-color-hover-row-bg)}.ge-table-west-fixed-column-border{background-color:var(--ge-table-color-west-fixed-column-border-bg)}.ge-table-east-fixed-column-border{background-color:var(--ge-table-color-east-fixed-column-border-bg)}.ge-table-footer-border{background-color:var(--ge-table-color-footer-border-bg)}.ge-table-header-border{background-color:var(--ge-table-color-header-border-bg)}.ge-table-row-border{background-color:var(--ge-table-color-row-border-bg)}.ge-table-column-border{background-color:var(--ge-table-color-column-border-bg)}.ge-table-col-div.ge-table-col-div-0.ge-table-tree-cell{text-align:left}.ge-table-tree-cell .ge-table-label-div{padding-left:0;padding-right:10px;display:inline}.ge-tree-arrow-collapsed{color:var(--ge-table-color-tree-arrow-collapsed-color)}.ge-table-col-tree{text-align:left}.ge-table-col-tree.ge-table-tree-deep-0{padding-left:16px}.ge-table-col-tree.ge-table-tree-deep-1{padding-left:36px}.ge-table-col-tree.ge-table-tree-deep-2{padding-left:56px}.ge-table-col-tree.ge-table-tree-deep-3{padding-left:76px}.ge-table-col-tree.ge-table-tree-deep-4{padding-left:96px}.ge-table-col-tree.ge-table-tree-deep-5{padding-left:116px}.ge-table-col-tree.ge-table-tree-deep-5{padding-left:136px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TableComponent, decorators: [{
77
- type: Component,
78
- args: [{ selector: "guiexpert-table", standalone: true, imports: [CommonModule], providers: [DomService], template: "", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":root{--ge-table-color-error-text: #e00034;--ge-table-color-selected-range-bg: rgba(0, 152, 219, .4);--ge-table-color-col-resize-handle-hover-bg: rgb(0, 255, 255);--ge-table-color-drop-zone: rgba(244, 255, 242, .6);--ge-table-color-drop-zone-bg: rgba(244, 255, 242, .6);--ge-table-color-dragged-col-div-bg: lightcyan;--ge-table-color-focus-border-bg: rgb(0, 255, 255);--ge-table-color-header-bg: rgba(233, 233, 233, .5);--ge-table-color-footer-bg: rgba(233, 233, 233, .5);--ge-table-color-body-west-bg: rgba(244, 244, 244, .5);--ge-table-color-body-east-bg: rgba(244, 244, 244, .5);--ge-table-color-hover-column-bg: rgba(224, 255, 255, .5);--ge-table-color-hover-row-bg: rgba(224, 255, 255, .5);--ge-table-color-west-fixed-column-border-bg: #bbb;--ge-table-color-east-fixed-column-border-bg: #bbb;--ge-table-color-footer-border-bg: #bbb;--ge-table-color-header-border-bg: #bbb;--ge-table-color-row-border-bg: #ddd;--ge-table-color-column-border-bg: #dadada;--ge-table-color-tree-arrow-collapsed-color: #e00034;--ge-table-color-true-text-color: green;--ge-table-color-false-text-color: #e00034}.ge-true-text-color{color:var(--ge-table-color-true-text-color)}.ge-false-text-color{color:var(--ge-table-color-false-text-color)}.ge-table-col-div{text-align:center;line-height:2.5;-webkit-user-select:none;user-select:none}.ge-table-label-div{padding:0;display:block;text-overflow:ellipsis;overflow:hidden}.ge-cell-error{color:var(--ge-table-color-error-text)}.ge-table-selected-range{background-color:var(--ge-table-color-selected-range-bg)}.ge-table-col-resize-handle:hover{background-color:var(--ge-table-color-col-resize-handle-hover-bg)}.ge-table-drop-zone{background-color:var(--ge-table-color-drop-zone-bg)}.ge-table-dragged-col-div{background-color:var(--ge-table-color-dragged-col-div-bg)}.ge-table-focus-border{background-color:var(--ge-table-color-focus-border-bg)}.ge-table-label-div .ge-table-label{padding-left:10px;padding-right:10px}.ge-table-text-align-left{text-align:left}.ge-table-text-align-right{text-align:right}.ge-table-text-align-center{text-align:center}.ge-table-row-checkbox-div{padding-left:14px}.ge-table-header{background-color:var(--ge-table-color-header-bg)}.ge-table-footer{background-color:var(--ge-table-color-footer-bg)}.ge-table-body-west{background-color:var(--ge-table-color-body-west-bg)}.ge-table-body-east{background-color:var(--ge-table-color-body-east-bg)}.ge-table-hover-column{background-color:var(--ge-table-color-hover-column-bg)}.ge-table-hover-row{background-color:var(--ge-table-color-hover-row-bg)}.ge-table-west-fixed-column-border{background-color:var(--ge-table-color-west-fixed-column-border-bg)}.ge-table-east-fixed-column-border{background-color:var(--ge-table-color-east-fixed-column-border-bg)}.ge-table-footer-border{background-color:var(--ge-table-color-footer-border-bg)}.ge-table-header-border{background-color:var(--ge-table-color-header-border-bg)}.ge-table-row-border{background-color:var(--ge-table-color-row-border-bg)}.ge-table-column-border{background-color:var(--ge-table-color-column-border-bg)}.ge-table-col-div.ge-table-col-div-0.ge-table-tree-cell{text-align:left}.ge-table-tree-cell .ge-table-label-div{padding-left:0;padding-right:10px;display:inline}.ge-tree-arrow-collapsed{color:var(--ge-table-color-tree-arrow-collapsed-color)}.ge-table-col-tree{text-align:left}.ge-table-col-tree.ge-table-tree-deep-0{padding-left:16px}.ge-table-col-tree.ge-table-tree-deep-1{padding-left:36px}.ge-table-col-tree.ge-table-tree-deep-2{padding-left:56px}.ge-table-col-tree.ge-table-tree-deep-3{padding-left:76px}.ge-table-col-tree.ge-table-tree-deep-4{padding-left:96px}.ge-table-col-tree.ge-table-tree-deep-5{padding-left:116px}.ge-table-col-tree.ge-table-tree-deep-5{padding-left:136px}\n"] }]
79
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DomService }]; }, propDecorators: { tableReady: [{
80
- type: Output
81
- }], mouseMoved: [{
82
- type: Output
83
- }], mouseDragging: [{
84
- type: Output
85
- }], mouseDraggingEnded: [{
86
- type: Output
87
- }], contextmenu: [{
88
- type: Output
89
- }], mouseClicked: [{
90
- type: Output
91
- }], modelChanged: [{
92
- type: Output
93
- }], checkboxChanged: [{
94
- type: Output
95
- }], tableModel: [{
96
- type: Input
97
- }], tableOptions: [{
98
- type: Input
99
- }], debounceMouseClickDelay: [{
100
- type: Input
101
- }], tableIf: [{
102
- type: Input
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRhYmxlL3NyYy9saWIvYW5ndWxhci10YWJsZS90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBTUwsWUFBWSxFQUVaLFVBQVUsRUFDWCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBYW5ELE1BQU0sT0FBTyxjQUFjO0lBMEN6QixZQUNtQixRQUFtQixFQUNuQixVQUFzQixFQUN0QixJQUFZLEVBQ1osVUFBc0I7UUFIdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBM0N6QyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUdyQyxlQUFVLEdBQTBCLElBQUksT0FBTyxFQUFnQixDQUFDO1FBR2hFLGtCQUFhLEdBQTBCLElBQUksT0FBTyxFQUFnQixDQUFDO1FBR25FLHVCQUFrQixHQUEwQixJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUd4RSxnQkFBVyxHQUEwQixJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUdqRSxpQkFBWSxHQUEwQixJQUFJLE9BQU8sRUFBZ0IsQ0FBQztR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LENBQUMsMEJBQ2IsRUFBRSwrdUhBRkYsWUFBWTsyRkFPWCxjQUFjO2tCQVYxQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxhQUNaLENBQUMsVUFBVSxDQUFDLFlBQ2IsRUFBRSxpQkFFRyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3VLQUsvQyxVQUFVO3NCQURULE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsZUFBZTtzQkFEZCxNQUFNO2dCQUlQLFVBQVU7c0JBRFQsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQW1CRixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QsIHRha2VXaGlsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICBFdmVudExpc3RlbmVySWYsXG4gIEdlTW9kZWxDaGFuZ2VFdmVudCxcbiAgR2VNb3VzZUV2ZW50LFxuICBUYWJsZUFwaSxcbiAgVGFibGVNb2RlbElmLFxuICBUYWJsZU9wdGlvbnMsXG4gIFRhYmxlT3B0aW9uc0lmLFxuICBUYWJsZVNjb3BlXG59IGZyb20gXCJAZ3VpZXhwZXJ0L3RhYmxlXCI7XG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9kb20tc2VydmljZVwiO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJndWlleHBlcnQtdGFibGVcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW0RvbVNlcnZpY2VdLFxuICB0ZW1wbGF0ZTogXCJcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3RhYmxlLmNvbXBvbmVudC5jc3NcIl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEV2ZW50TGlzdGVuZXJJZiB7XG5cbiAgQE91dHB1dCgpXG4gIHRhYmxlUmVhZHkgPSBuZXcgU3ViamVjdDxUYWJsZUFwaT4oKTtcblxuICBAT3V0cHV0KClcbiAgbW91c2VNb3ZlZDogU3ViamVjdDxHZU1vdXNlRXZlbnQ+ID0gbmV3IFN1YmplY3Q8R2VNb3VzZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBtb3VzZURyYWdnaW5nOiBTdWJqZWN0PEdlTW91c2VFdmVudD4gPSBuZXcgU3ViamVjdDxHZU1vdXNlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG1vdXNlRHJhZ2dpbmdFbmRlZDogU3ViamVjdDxHZU1vdXNlRXZlbnQ+ID0gbmV3IFN1YmplY3Q8R2VNb3VzZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBjb250ZXh0bWVudTogU3ViamVjdDxHZU1vdXNlRXZlbnQ+ID0gbmV3IFN1YmplY3Q8R2VNb3VzZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBtb3VzZUNsaWNrZWQ6IFN1YmplY3Q8R2VNb3VzZUV2ZW50PiA9IG5ldyBTdWJqZWN0PEdlTW91c2VFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgbW9kZWxDaGFuZ2VkOiBTdWJqZWN0PEdlTW9kZWxDaGFuZ2VFdmVudD4gPSBuZXcgU3ViamVjdDxHZU1vZGVsQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNoZWNrYm94Q2hhbmdlZDogU3ViamVjdDxhbnlbXT4gPSBuZXcgU3ViamVjdDxhbnlbXT4oKTtcblxuICBASW5wdXQoKVxuICB0YWJsZU1vZGVsPzogVGFibGVNb2RlbElmO1xuXG4gIEBJbnB1dCgpXG4gIHRhYmxlT3B0aW9uczogVGFibGVPcHRpb25zSWYgPSBuZXcgVGFibGVPcHRpb25zKCk7XG5cbiAgQElucHV0KClcbiAgZGVib3VuY2VNb3VzZUNsaWNrRGVsYXk6IG51bWJlciA9IDE1MDtcblxuICBwcml2YXRlIGRlYm91bmNlTW91c2VDbGljazogU3ViamVjdDxHZU1vdXNlRXZlbnQ+ID0gbmV3IFN1YmplY3Q8R2VNb3VzZUV2ZW50PigpO1xuXG4gIHByaXZhdGUgdGFibGVTY29wZT86IFRhYmxlU2NvcGU7XG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9pZjogYm9vbGVhbiA9IHRydWU7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2VydmljZTogRG9tU2VydmljZVxuICApIHtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0YWJsZUlmKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faWYgPSB2YWx1ZTtcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKHRoaXMuaW5pdE1vZGVsLmJpbmQodGhpcykpO1xuICB9XG5cbiAgb25Db250ZXh0bWVudShldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dG1lbnUubmV4dChldnQpO1xuICB9XG5cbiAgb25Nb3VzZU1vdmVkKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5tb3VzZU1vdmVkLm5leHQoZXZ0KTtcbiAgfVxuXG4gIC8vIHdpbGwgYmUgY2FsbGVkIGJ5IHRhYmxlLXNjb3BlOlxuICBvbk1vdXNlQ2xpY2tlZChldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZGVib3VuY2VNb3VzZUNsaWNrLm5leHQoZXZ0KTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hDaGFuZ2VkKGFycjogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrYm94Q2hhbmdlZC5uZXh0KGFycik7XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlZChldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWxDaGFuZ2VkLm5leHQoZXZ0KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdE1vZGVsKCk7XG4gICAgdGhpcy5kZWJvdW5jZU1vdXNlQ2xpY2tcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZU1vdXNlQ2xpY2tEZWxheSksXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMubW91c2VDbGlja2VkLm5leHQodmFsdWUpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG5cbiAgb25Nb3VzZURyYWdnaW5nKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5tb3VzZURyYWdnaW5nLm5leHQoZXZ0KTtcbiAgfVxuXG4gIG9uTW91c2VEcmFnZ2luZ0VuZChldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMubW91c2VEcmFnZ2luZ0VuZGVkLm5leHQoZXZ0KTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBpbml0TW9kZWwoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKHRoaXMuaW5pdC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJsZU1vZGVsKSB7XG4gICAgICB0aGlzLnRhYmxlU2NvcGUgPSBuZXcgVGFibGVTY29wZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGFibGVNb2RlbCwgdGhpcy5kb21TZXJ2aWNlLCB0aGlzLnRhYmxlT3B0aW9ucywgdGhpc1xuICAgICAgKTtcbiAgICAgIHRoaXMudGFibGVTY29wZS5maXJzdEluaXQoKTtcbiAgICAgIHRoaXMudGFibGVSZWFkeS5uZXh0KHRoaXMudGFibGVTY29wZS5nZXRBcGkoKSk7XG4gICAgfVxuICB9XG5cblxufVxuIl19