dockview-angular 4.13.0 → 5.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.
- package/README.md +49 -17
- package/dist/README.md +88 -0
- package/dist/dockview-angular.d.ts.map +1 -0
- package/dist/dockview.css +63 -7
- package/dist/esm2022/dockview-angular.mjs +5 -0
- package/dist/esm2022/lib/dockview/dockview-angular.component.mjs +185 -0
- package/dist/esm2022/lib/dockview/types.mjs +3 -0
- package/dist/esm2022/lib/dockview-angular.module.mjs +38 -0
- package/dist/esm2022/lib/gridview/angular-gridview-panel.mjs +24 -0
- package/dist/esm2022/lib/gridview/gridview-angular.component.mjs +98 -0
- package/dist/esm2022/lib/gridview/types.mjs +3 -0
- package/dist/esm2022/lib/paneview/angular-pane-part.mjs +26 -0
- package/dist/esm2022/lib/paneview/paneview-angular.component.mjs +122 -0
- package/dist/esm2022/lib/paneview/types.mjs +3 -0
- package/dist/esm2022/lib/splitview/angular-splitview-panel.mjs +24 -0
- package/dist/esm2022/lib/splitview/splitview-angular.component.mjs +98 -0
- package/dist/esm2022/lib/splitview/types.mjs +3 -0
- package/dist/esm2022/lib/utils/angular-renderer.mjs +83 -0
- package/dist/esm2022/lib/utils/component-factory.mjs +100 -0
- package/dist/esm2022/lib/utils/lifecycle-utils.mjs +69 -0
- package/dist/esm2022/public-api.mjs +17 -0
- package/dist/fesm2022/dockview-angular.mjs +846 -0
- package/dist/fesm2022/dockview-angular.mjs.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/{cjs/lib → lib}/dockview/dockview-angular.component.d.ts +4 -0
- package/dist/lib/dockview/dockview-angular.component.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/dockview/types.d.ts +2 -1
- package/dist/lib/dockview/types.d.ts.map +1 -0
- package/dist/lib/dockview-angular.module.d.ts +12 -0
- package/dist/lib/dockview-angular.module.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/gridview/angular-gridview-panel.d.ts +1 -0
- package/dist/lib/gridview/angular-gridview-panel.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/gridview/gridview-angular.component.d.ts +4 -0
- package/dist/lib/gridview/gridview-angular.component.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/gridview/types.d.ts +1 -0
- package/dist/lib/gridview/types.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/paneview/angular-pane-part.d.ts +1 -0
- package/dist/lib/paneview/angular-pane-part.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/paneview/paneview-angular.component.d.ts +4 -0
- package/dist/lib/paneview/paneview-angular.component.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/paneview/types.d.ts +1 -0
- package/dist/lib/paneview/types.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/splitview/angular-splitview-panel.d.ts +1 -0
- package/dist/lib/splitview/angular-splitview-panel.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/splitview/splitview-angular.component.d.ts +4 -0
- package/dist/lib/splitview/splitview-angular.component.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/splitview/types.d.ts +1 -0
- package/dist/lib/splitview/types.d.ts.map +1 -0
- package/dist/lib/utils/angular-renderer.d.ts +21 -0
- package/dist/lib/utils/angular-renderer.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/utils/component-factory.d.ts +1 -0
- package/dist/lib/utils/component-factory.d.ts.map +1 -0
- package/dist/{cjs/lib → lib}/utils/lifecycle-utils.d.ts +1 -0
- package/dist/lib/utils/lifecycle-utils.d.ts.map +1 -0
- package/dist/{cjs/public-api.d.ts → public-api.d.ts} +5 -4
- package/dist/public-api.d.ts.map +1 -0
- package/package.json +72 -66
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +0 -17
- package/dist/cjs/lib/dockview/dockview-angular.component.js +0 -256
- package/dist/cjs/lib/dockview/types.js +0 -8
- package/dist/cjs/lib/dockview-angular.module.d.ts +0 -2
- package/dist/cjs/lib/dockview-angular.module.js +0 -35
- package/dist/cjs/lib/gridview/angular-gridview-panel.js +0 -21
- package/dist/cjs/lib/gridview/gridview-angular.component.d.ts +0 -28
- package/dist/cjs/lib/gridview/gridview-angular.component.js +0 -140
- package/dist/cjs/lib/gridview/types.d.ts +0 -12
- package/dist/cjs/lib/gridview/types.js +0 -6
- package/dist/cjs/lib/paneview/angular-pane-part.d.ts +0 -13
- package/dist/cjs/lib/paneview/angular-pane-part.js +0 -29
- package/dist/cjs/lib/paneview/paneview-angular.component.d.ts +0 -31
- package/dist/cjs/lib/paneview/paneview-angular.component.js +0 -166
- package/dist/cjs/lib/paneview/types.d.ts +0 -14
- package/dist/cjs/lib/paneview/types.js +0 -6
- package/dist/cjs/lib/splitview/angular-splitview-panel.js +0 -21
- package/dist/cjs/lib/splitview/splitview-angular.component.js +0 -140
- package/dist/cjs/lib/splitview/types.js +0 -6
- package/dist/cjs/lib/utils/angular-renderer.d.ts +0 -18
- package/dist/cjs/lib/utils/angular-renderer.js +0 -70
- package/dist/cjs/lib/utils/component-factory.js +0 -103
- package/dist/cjs/lib/utils/lifecycle-utils.js +0 -74
- package/dist/cjs/public-api.js +0 -32
- package/dist/dockview-angular.amd.js +0 -13201
- package/dist/dockview-angular.amd.js.map +0 -1
- package/dist/dockview-angular.amd.min.js +0 -8
- package/dist/dockview-angular.amd.min.js.map +0 -1
- package/dist/dockview-angular.amd.min.noStyle.js +0 -8
- package/dist/dockview-angular.amd.min.noStyle.js.map +0 -1
- package/dist/dockview-angular.amd.noStyle.js +0 -13171
- package/dist/dockview-angular.amd.noStyle.js.map +0 -1
- package/dist/dockview-angular.cjs.js +0 -13203
- package/dist/dockview-angular.cjs.js.map +0 -1
- package/dist/dockview-angular.esm.js +0 -13131
- package/dist/dockview-angular.esm.js.map +0 -1
- package/dist/dockview-angular.esm.min.js +0 -8
- package/dist/dockview-angular.esm.min.js.map +0 -1
- package/dist/dockview-angular.js +0 -13205
- package/dist/dockview-angular.js.map +0 -1
- package/dist/dockview-angular.min.js +0 -8
- package/dist/dockview-angular.min.js.map +0 -1
- package/dist/dockview-angular.min.noStyle.js +0 -8
- package/dist/dockview-angular.min.noStyle.js.map +0 -1
- package/dist/dockview-angular.noStyle.js +0 -13175
- package/dist/dockview-angular.noStyle.js.map +0 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/lib/dockview/dockview-angular.component.d.ts +0 -49
- package/dist/esm/lib/dockview/dockview-angular.component.js +0 -253
- package/dist/esm/lib/dockview/types.d.ts +0 -27
- package/dist/esm/lib/dockview/types.js +0 -2
- package/dist/esm/lib/dockview-angular.module.d.ts +0 -2
- package/dist/esm/lib/dockview-angular.module.js +0 -32
- package/dist/esm/lib/gridview/angular-gridview-panel.d.ts +0 -9
- package/dist/esm/lib/gridview/angular-gridview-panel.js +0 -17
- package/dist/esm/lib/gridview/gridview-angular.component.js +0 -137
- package/dist/esm/lib/gridview/types.js +0 -2
- package/dist/esm/lib/paneview/angular-pane-part.js +0 -25
- package/dist/esm/lib/paneview/paneview-angular.component.js +0 -163
- package/dist/esm/lib/paneview/types.js +0 -2
- package/dist/esm/lib/splitview/angular-splitview-panel.d.ts +0 -9
- package/dist/esm/lib/splitview/angular-splitview-panel.js +0 -17
- package/dist/esm/lib/splitview/splitview-angular.component.d.ts +0 -28
- package/dist/esm/lib/splitview/splitview-angular.component.js +0 -137
- package/dist/esm/lib/splitview/types.d.ts +0 -12
- package/dist/esm/lib/splitview/types.js +0 -2
- package/dist/esm/lib/utils/angular-renderer.d.ts +0 -18
- package/dist/esm/lib/utils/angular-renderer.js +0 -66
- package/dist/esm/lib/utils/component-factory.d.ts +0 -20
- package/dist/esm/lib/utils/component-factory.js +0 -99
- package/dist/esm/lib/utils/lifecycle-utils.d.ts +0 -18
- package/dist/esm/lib/utils/lifecycle-utils.js +0 -68
- package/dist/esm/public-api.d.ts +0 -13
- package/dist/esm/public-api.js +0 -16
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewChild, ChangeDetectionStrategy, EnvironmentInjector, inject, } from '@angular/core';
|
|
2
|
+
import { createGridview, PROPERTY_KEYS_GRIDVIEW, } from 'dockview-core';
|
|
3
|
+
import { AngularFrameworkComponentFactory } from '../utils/component-factory';
|
|
4
|
+
import { AngularLifecycleManager } from '../utils/lifecycle-utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class GridviewAngularComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.ready = new EventEmitter();
|
|
9
|
+
this.lifecycleManager = new AngularLifecycleManager();
|
|
10
|
+
this.injector = inject(Injector);
|
|
11
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.initializeGridview();
|
|
15
|
+
}
|
|
16
|
+
ngOnDestroy() {
|
|
17
|
+
this.lifecycleManager.destroy();
|
|
18
|
+
if (this.gridviewApi) {
|
|
19
|
+
this.gridviewApi.dispose();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ngOnChanges(changes) {
|
|
23
|
+
if (this.gridviewApi) {
|
|
24
|
+
const coreChanges = {};
|
|
25
|
+
let hasChanges = false;
|
|
26
|
+
// Check for changes in core gridview properties
|
|
27
|
+
PROPERTY_KEYS_GRIDVIEW.forEach((key) => {
|
|
28
|
+
if (changes[key] && !changes[key].isFirstChange()) {
|
|
29
|
+
coreChanges[key] = changes[key].currentValue;
|
|
30
|
+
hasChanges = true;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
if (hasChanges) {
|
|
34
|
+
this.gridviewApi.updateOptions(coreChanges);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getGridviewApi() {
|
|
39
|
+
return this.gridviewApi;
|
|
40
|
+
}
|
|
41
|
+
initializeGridview() {
|
|
42
|
+
if (!this.components) {
|
|
43
|
+
throw new Error('GridviewAngularComponent: components input is required');
|
|
44
|
+
}
|
|
45
|
+
const coreOptions = this.extractCoreOptions();
|
|
46
|
+
const frameworkOptions = this.createFrameworkOptions();
|
|
47
|
+
this.gridviewApi = createGridview(this.containerRef.nativeElement, {
|
|
48
|
+
...coreOptions,
|
|
49
|
+
...frameworkOptions,
|
|
50
|
+
});
|
|
51
|
+
// Emit ready event
|
|
52
|
+
this.ready.emit({ api: this.gridviewApi });
|
|
53
|
+
}
|
|
54
|
+
extractCoreOptions() {
|
|
55
|
+
const coreOptions = {};
|
|
56
|
+
PROPERTY_KEYS_GRIDVIEW.forEach((key) => {
|
|
57
|
+
const value = this[key];
|
|
58
|
+
if (value !== undefined) {
|
|
59
|
+
coreOptions[key] = value;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return coreOptions;
|
|
63
|
+
}
|
|
64
|
+
createFrameworkOptions() {
|
|
65
|
+
const componentFactory = new AngularFrameworkComponentFactory(this.components, this.injector, this.environmentInjector);
|
|
66
|
+
return {
|
|
67
|
+
createComponent: (options) => {
|
|
68
|
+
return componentFactory.createGridviewComponent(options);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GridviewAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GridviewAngularComponent, isStandalone: true, selector: "dv-gridview", inputs: { components: "components", className: "className", orientation: "orientation", proportionalLayout: "proportionalLayout", hideBorders: "hideBorders", debug: "debug", disableAutoResizing: "disableAutoResizing" }, outputs: { ready: "ready" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["gridviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #gridviewContainer class="gridview-container"></div>', isInline: true, styles: [":host{display:block;width:100%;height:100%}.gridview-container{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GridviewAngularComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'dv-gridview', standalone: true, template: '<div #gridviewContainer class="gridview-container"></div>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%;height:100%}.gridview-container{width:100%;height:100%}\n"] }]
|
|
78
|
+
}], propDecorators: { containerRef: [{
|
|
79
|
+
type: ViewChild,
|
|
80
|
+
args: ['gridviewContainer', { static: true }]
|
|
81
|
+
}], components: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], className: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], orientation: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], proportionalLayout: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], hideBorders: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], debug: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], disableAutoResizing: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], ready: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHZpZXctYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2dyaWR2aWV3L2dyaWR2aWV3LWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNuQixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdILGNBQWMsRUFDZCxzQkFBc0IsR0FHekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBMkJuRSxNQUFNLE9BQU8sd0JBQXdCO0lBcEJyQztRQWtDYyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFHeEQscUJBQWdCLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FpRjdEO0lBL0VHLFFBQVE7UUFDSixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFB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bUI7c0JBQTNCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBHcmlkdmlld0FwaSxcbiAgICBHcmlkdmlld09wdGlvbnMsXG4gICAgY3JlYXRlR3JpZHZpZXcsXG4gICAgUFJPUEVSVFlfS0VZU19HUklEVklFVyxcbiAgICBHcmlkdmlld0ZyYW1ld29ya09wdGlvbnMsXG4gICAgR3JpZHZpZXdDb21wb25lbnRPcHRpb25zLFxufSBmcm9tICdkb2Nrdmlldy1jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRGYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvY29tcG9uZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgQW5ndWxhckxpZmVjeWNsZU1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9saWZlY3ljbGUtdXRpbHMnO1xuaW1wb3J0IHsgR3JpZHZpZXdBbmd1bGFyUmVhZHlFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWR2aWV3QW5ndWxhck9wdGlvbnMgZXh0ZW5kcyBHcmlkdmlld09wdGlvbnMge1xuICAgIGNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsIFR5cGU8YW55Pj47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHYtZ3JpZHZpZXcnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICc8ZGl2ICNncmlkdmlld0NvbnRhaW5lciBjbGFzcz1cImdyaWR2aWV3LWNvbnRhaW5lclwiPjwvZGl2PicsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ncmlkdmlldy1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHcmlkdmlld0FuZ3VsYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdncmlkdmlld0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpIGNvbXBvbmVudHMhOiBSZWNvcmQ8c3RyaW5nLCBUeXBlPGFueT4+O1xuXG4gICAgLy8gQ29yZSBncmlkdmlldyBvcHRpb25zIGFzIGlucHV0c1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbj86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG4gICAgQElucHV0KCkgcHJvcG9ydGlvbmFsTGF5b3V0PzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlQm9yZGVycz86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGVidWc/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVBdXRvUmVzaXppbmc/OiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkdmlld0FuZ3VsYXJSZWFkeUV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBncmlkdmlld0FwaT86IEdyaWR2aWV3QXBpO1xuICAgIHByaXZhdGUgbGlmZWN5Y2xlTWFuYWdlciA9IG5ldyBBbmd1bGFyTGlmZWN5Y2xlTWFuYWdlcigpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHcmlkdmlldygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpZmVjeWNsZU1hbmFnZXIuZGVzdHJveSgpO1xuICAgICAgICBpZiAodGhpcy5ncmlkdmlld0FwaSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkdmlld0FwaS5kaXNwb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdyaWR2aWV3QXBpKSB7XG4gICAgICAgICAgICBjb25zdCBjb3JlQ2hhbmdlczogUGFydGlhbDxHcmlkdmlld09wdGlvbnM+ID0ge307XG4gICAgICAgICAgICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBmb3IgY2hhbmdlcyBpbiBjb3JlIGdyaWR2aWV3IHByb3BlcnRpZXNcbiAgICAgICAgICAgIFBST1BFUlRZX0tFWVNfR1JJRFZJRVcuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZXNba2V5XSAmJiAhY2hhbmdlc1trZXldLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgICAgICAgICAoY29yZUNoYW5nZXMgYXMgYW55KVtrZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkdmlld0FwaS51cGRhdGVPcHRpb25zKGNvcmVDaGFuZ2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEdyaWR2aWV3QXBpKCk6IEdyaWR2aWV3QXBpIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZHZpZXdBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplR3JpZHZpZXcoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ0dyaWR2aWV3QW5ndWxhckNvbXBvbmVudDogY29tcG9uZW50cyBpbnB1dCBpcyByZXF1aXJlZCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3JlT3B0aW9ucyA9IHRoaXMuZXh0cmFjdENvcmVPcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IGZyYW1ld29ya09wdGlvbnMgPSB0aGlzLmNyZWF0ZUZyYW1ld29ya09wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLmdyaWR2aWV3QXBpID0gY3JlYXRlR3JpZHZpZXcodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgLi4uY29yZU9wdGlvbnMsXG4gICAgICAgICAgICAuLi5mcmFtZXdvcmtPcHRpb25zLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBFbWl0IHJlYWR5IGV2ZW50XG4gICAgICAgIHRoaXMucmVhZHkuZW1pdCh7IGFwaTogdGhpcy5ncmlkdmlld0FwaSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RDb3JlT3B0aW9ucygpOiBHcmlkdmlld09wdGlvbnMge1xuICAgICAgICBjb25zdCBjb3JlT3B0aW9uczogUGFydGlhbDxHcmlkdmlld0NvbXBvbmVudE9wdGlvbnM+ID0ge307XG5cbiAgICAgICAgUFJPUEVSVFlfS0VZU19HUklEVklFVy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKHRoaXMgYXMgYW55KVtrZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAoY29yZU9wdGlvbnMgYXMgYW55KVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb3JlT3B0aW9ucyBhcyBHcmlkdmlld09wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGcmFtZXdvcmtPcHRpb25zKCk6IEdyaWR2aWV3RnJhbWV3b3JrT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBuZXcgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudEluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNyZWF0ZUNvbXBvbmVudDogKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50RmFjdG9yeS5jcmVhdGVHcmlkdmlld0NvbXBvbmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Re-export commonly used types from dockview-core
|
|
2
|
+
export { GridviewApi } from 'dockview-core';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2dyaWR2aWV3L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLG1EQUFtRDtBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyaWR2aWV3T3B0aW9ucywgR3JpZHZpZXdBcGkgfSBmcm9tICdkb2Nrdmlldy1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmlkdmlld0FuZ3VsYXJSZWFkeUV2ZW50IHtcbiAgICBhcGk6IEdyaWR2aWV3QXBpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWR2aWV3QW5ndWxhck9wdGlvbnMgZXh0ZW5kcyBHcmlkdmlld09wdGlvbnMge1xuICAgIGNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsIFR5cGU8YW55Pj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZHZpZXdBbmd1bGFyRXZlbnRzIHtcbiAgICByZWFkeTogR3JpZHZpZXdBbmd1bGFyUmVhZHlFdmVudDtcbn1cblxuLy8gUmUtZXhwb3J0IGNvbW1vbmx5IHVzZWQgdHlwZXMgZnJvbSBkb2Nrdmlldy1jb3JlXG5leHBvcnQgeyBHcmlkdmlld0FwaSwgR3JpZHZpZXdPcHRpb25zIH0gZnJvbSAnZG9ja3ZpZXctY29yZSc7XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AngularRenderer } from '../utils/angular-renderer';
|
|
2
|
+
export class AngularPanePart {
|
|
3
|
+
constructor(angularComponent, injector, environmentInjector) {
|
|
4
|
+
this.angularComponent = angularComponent;
|
|
5
|
+
this.injector = injector;
|
|
6
|
+
this.environmentInjector = environmentInjector;
|
|
7
|
+
this.renderer = new AngularRenderer({
|
|
8
|
+
component: this.angularComponent,
|
|
9
|
+
injector: this.injector,
|
|
10
|
+
environmentInjector: this.environmentInjector,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
get element() {
|
|
14
|
+
return this.renderer.element;
|
|
15
|
+
}
|
|
16
|
+
init(parameters) {
|
|
17
|
+
this.renderer.init(parameters);
|
|
18
|
+
}
|
|
19
|
+
update(params) {
|
|
20
|
+
this.renderer.update(params);
|
|
21
|
+
}
|
|
22
|
+
dispose() {
|
|
23
|
+
this.renderer.dispose();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYW5lLXBhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhbmV2aWV3L2FuZ3VsYXItcGFuZS1wYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUNxQixnQkFBMkIsRUFDM0IsUUFBa0IsRUFDbEIsbUJBQXlDO1FBRnpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBVztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFFMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQztZQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUNoRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQTJDO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBd0I7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIEluamVjdG9yLCBFbnZpcm9ubWVudEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIElQYW5lUGFydCxcbiAgICBQYW5lbFVwZGF0ZUV2ZW50LFxuICAgIFBhbmVQYW5lbENvbXBvbmVudEluaXRQYXJhbWV0ZXIsXG59IGZyb20gJ2RvY2t2aWV3LWNvcmUnO1xuaW1wb3J0IHsgQW5ndWxhclJlbmRlcmVyIH0gZnJvbSAnLi4vdXRpbHMvYW5ndWxhci1yZW5kZXJlcic7XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyUGFuZVBhcnQgaW1wbGVtZW50cyBJUGFuZVBhcnQge1xuICAgIHByaXZhdGUgcmVuZGVyZXI6IEFuZ3VsYXJSZW5kZXJlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFuZ3VsYXJDb21wb25lbnQ6IFR5cGU8YW55PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnRJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG5ldyBBbmd1bGFyUmVuZGVyZXIoe1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmFuZ3VsYXJDb21wb25lbnQsXG4gICAgICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5lbGVtZW50O1xuICAgIH1cblxuICAgIGluaXQocGFyYW1ldGVyczogUGFuZVBhbmVsQ29tcG9uZW50SW5pdFBhcmFtZXRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluaXQocGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgdXBkYXRlKHBhcmFtczogUGFuZWxVcGRhdGVFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnVwZGF0ZShwYXJhbXMpO1xuICAgIH1cblxuICAgIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuZGlzcG9zZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewChild, ChangeDetectionStrategy, EnvironmentInjector, inject, } from '@angular/core';
|
|
2
|
+
import { createPaneview, PROPERTY_KEYS_PANEVIEW, } from 'dockview-core';
|
|
3
|
+
import { AngularFrameworkComponentFactory } from '../utils/component-factory';
|
|
4
|
+
import { AngularLifecycleManager } from '../utils/lifecycle-utils';
|
|
5
|
+
import { AngularPanePart } from './angular-pane-part';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class PaneviewAngularComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.ready = new EventEmitter();
|
|
10
|
+
this.drop = new EventEmitter();
|
|
11
|
+
this.lifecycleManager = new AngularLifecycleManager();
|
|
12
|
+
this.injector = inject(Injector);
|
|
13
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.initializePaneview();
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
this.lifecycleManager.destroy();
|
|
20
|
+
if (this.paneviewApi) {
|
|
21
|
+
this.paneviewApi.dispose();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ngOnChanges(changes) {
|
|
25
|
+
if (this.paneviewApi) {
|
|
26
|
+
const coreChanges = {};
|
|
27
|
+
let hasChanges = false;
|
|
28
|
+
// Check for changes in core paneview properties
|
|
29
|
+
PROPERTY_KEYS_PANEVIEW.forEach((key) => {
|
|
30
|
+
if (changes[key] && !changes[key].isFirstChange()) {
|
|
31
|
+
coreChanges[key] = changes[key].currentValue;
|
|
32
|
+
hasChanges = true;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (hasChanges) {
|
|
36
|
+
this.paneviewApi.updateOptions(coreChanges);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
getPaneviewApi() {
|
|
41
|
+
return this.paneviewApi;
|
|
42
|
+
}
|
|
43
|
+
initializePaneview() {
|
|
44
|
+
if (!this.components) {
|
|
45
|
+
throw new Error('PaneviewAngularComponent: components input is required');
|
|
46
|
+
}
|
|
47
|
+
const coreOptions = this.extractCoreOptions();
|
|
48
|
+
const frameworkOptions = this.createFrameworkOptions();
|
|
49
|
+
this.paneviewApi = createPaneview(this.containerRef.nativeElement, {
|
|
50
|
+
...coreOptions,
|
|
51
|
+
...frameworkOptions,
|
|
52
|
+
});
|
|
53
|
+
// Set up event listeners
|
|
54
|
+
this.setupEventListeners();
|
|
55
|
+
// Emit ready event
|
|
56
|
+
this.ready.emit({ api: this.paneviewApi });
|
|
57
|
+
}
|
|
58
|
+
extractCoreOptions() {
|
|
59
|
+
const coreOptions = {};
|
|
60
|
+
PROPERTY_KEYS_PANEVIEW.forEach((key) => {
|
|
61
|
+
const value = this[key];
|
|
62
|
+
if (value !== undefined) {
|
|
63
|
+
coreOptions[key] = value;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return coreOptions;
|
|
67
|
+
}
|
|
68
|
+
createFrameworkOptions() {
|
|
69
|
+
const componentFactory = new AngularFrameworkComponentFactory(this.components, this.injector, this.environmentInjector, this.headerComponents);
|
|
70
|
+
return {
|
|
71
|
+
createComponent: (options) => {
|
|
72
|
+
return componentFactory.createPaneviewComponent(options);
|
|
73
|
+
},
|
|
74
|
+
createHeaderComponent: this.headerComponents
|
|
75
|
+
? (options) => {
|
|
76
|
+
return new AngularPanePart(this.headerComponents[options.name], this.injector, this.environmentInjector);
|
|
77
|
+
}
|
|
78
|
+
: undefined,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
setupEventListeners() {
|
|
82
|
+
if (!this.paneviewApi) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// Set up event subscriptions using lifecycle manager
|
|
86
|
+
const api = this.paneviewApi;
|
|
87
|
+
if (this.drop.observers.length > 0) {
|
|
88
|
+
const disposable = api.onDidDrop((event) => {
|
|
89
|
+
this.drop.emit(event);
|
|
90
|
+
});
|
|
91
|
+
this.lifecycleManager.addDisposable(disposable);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaneviewAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaneviewAngularComponent, isStandalone: true, selector: "dv-paneview", inputs: { components: "components", headerComponents: "headerComponents", className: "className", orientation: "orientation", hideBorders: "hideBorders", debug: "debug", disableAutoResizing: "disableAutoResizing" }, outputs: { ready: "ready", drop: "drop" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["paneviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #paneviewContainer class="paneview-container"></div>', isInline: true, styles: [":host{display:block;width:100%;height:100%}.paneview-container{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaneviewAngularComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'dv-paneview', standalone: true, template: '<div #paneviewContainer class="paneview-container"></div>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%;height:100%}.paneview-container{width:100%;height:100%}\n"] }]
|
|
100
|
+
}], propDecorators: { containerRef: [{
|
|
101
|
+
type: ViewChild,
|
|
102
|
+
args: ['paneviewContainer', { static: true }]
|
|
103
|
+
}], components: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], headerComponents: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], className: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], orientation: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], hideBorders: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], debug: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], disableAutoResizing: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], ready: [{
|
|
118
|
+
type: Output
|
|
119
|
+
}], drop: [{
|
|
120
|
+
type: Output
|
|
121
|
+
}] } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZXZpZXctYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhbmV2aWV3L3BhbmV2aWV3LWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNuQixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlILGNBQWMsRUFDZCxzQkFBc0IsR0FHekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQTJCdEQsTUFBTSxPQUFPLHdCQUF3QjtJQXBCckM7UUFrQ2MsVUFBSyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQ3RELFNBQUksR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUcvQyxxQkFBZ0IsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1Qix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQThHN0Q7SUE1R0csUUFBUTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxF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ICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBQYW5ldmlld0FwaSxcbiAgICBQYW5ldmlld09wdGlvbnMsXG4gICAgUGFuZXZpZXdEcm9wRXZlbnQsXG4gICAgY3JlYXRlUGFuZXZpZXcsXG4gICAgUFJPUEVSVFlfS0VZU19QQU5FVklFVyxcbiAgICBQYW5ldmlld0ZyYW1ld29ya09wdGlvbnMsXG4gICAgUGFuZXZpZXdDb21wb25lbnRPcHRpb25zLFxufSBmcm9tICdkb2Nrdmlldy1jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRGYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvY29tcG9uZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgQW5ndWxhckxpZmVjeWNsZU1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9saWZlY3ljbGUtdXRpbHMnO1xuaW1wb3J0IHsgUGFuZXZpZXdBbmd1bGFyUmVhZHlFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW5ndWxhclBhbmVQYXJ0IH0gZnJvbSAnLi9hbmd1bGFyLXBhbmUtcGFydCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuZXZpZXdBbmd1bGFyT3B0aW9ucyBleHRlbmRzIFBhbmV2aWV3T3B0aW9ucyB7XG4gICAgY29tcG9uZW50czogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+PjtcbiAgICBoZWFkZXJDb21wb25lbnRzPzogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkdi1wYW5ldmlldycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogJzxkaXYgI3BhbmV2aWV3Q29udGFpbmVyIGNsYXNzPVwicGFuZXZpZXctY29udGFpbmVyXCI+PC9kaXY+JyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBhbmV2aWV3LWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBhbmV2aWV3QW5ndWxhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ3BhbmV2aWV3Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQElucHV0KCkgY29tcG9uZW50cyE6IFJlY29yZDxzdHJpbmcsIFR5cGU8YW55Pj47XG4gICAgQElucHV0KCkgaGVhZGVyQ29tcG9uZW50cz86IFJlY29yZDxzdHJpbmcsIFR5cGU8YW55Pj47XG5cbiAgICAvLyBDb3JlIHBhbmV2aWV3IG9wdGlvbnMgYXMgaW5wdXRzXG4gICAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9yaWVudGF0aW9uPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcbiAgICBASW5wdXQoKSBoaWRlQm9yZGVycz86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGVidWc/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVBdXRvUmVzaXppbmc/OiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxQYW5ldmlld0FuZ3VsYXJSZWFkeUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBkcm9wID0gbmV3IEV2ZW50RW1pdHRlcjxQYW5ldmlld0Ryb3BFdmVudD4oKTtcblxuICAgIHByaXZhdGUgcGFuZXZpZXdBcGk/OiBQYW5ldmlld0FwaTtcbiAgICBwcml2YXRlIGxpZmVjeWNsZU1hbmFnZXIgPSBuZXcgQW5ndWxhckxpZmVjeWNsZU1hbmFnZXIoKTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUGFuZXZpZXcoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saWZlY3ljbGVNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMucGFuZXZpZXdBcGkpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZXZpZXdBcGkuZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYW5ldmlld0FwaSkge1xuICAgICAgICAgICAgY29uc3QgY29yZUNoYW5nZXM6IFBhcnRpYWw8UGFuZXZpZXdPcHRpb25zPiA9IHt9O1xuICAgICAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGNoYW5nZXMgaW4gY29yZSBwYW5ldmlldyBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBQUk9QRVJUWV9LRVlTX1BBTkVWSUVXLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VzW2tleV0gJiYgIWNoYW5nZXNba2V5XS5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgKGNvcmVDaGFuZ2VzIGFzIGFueSlba2V5XSA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZXZpZXdBcGkudXBkYXRlT3B0aW9ucyhjb3JlQ2hhbmdlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYW5ldmlld0FwaSgpOiBQYW5ldmlld0FwaSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhbmV2aWV3QXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVBhbmV2aWV3KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdQYW5ldmlld0FuZ3VsYXJDb21wb25lbnQ6IGNvbXBvbmVudHMgaW5wdXQgaXMgcmVxdWlyZWQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29yZU9wdGlvbnMgPSB0aGlzLmV4dHJhY3RDb3JlT3B0aW9ucygpO1xuICAgICAgICBjb25zdCBmcmFtZXdvcmtPcHRpb25zID0gdGhpcy5jcmVhdGVGcmFtZXdvcmtPcHRpb25zKCk7XG5cbiAgICAgICAgdGhpcy5wYW5ldmlld0FwaSA9IGNyZWF0ZVBhbmV2aWV3KHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICAgIC4uLmNvcmVPcHRpb25zLFxuICAgICAgICAgICAgLi4uZnJhbWV3b3JrT3B0aW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IHVwIGV2ZW50IGxpc3RlbmVyc1xuICAgICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKTtcblxuICAgICAgICAvLyBFbWl0IHJlYWR5IGV2ZW50XG4gICAgICAgIHRoaXMucmVhZHkuZW1pdCh7IGFwaTogdGhpcy5wYW5ldmlld0FwaSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RDb3JlT3B0aW9ucygpOiBQYW5ldmlld09wdGlvbnMge1xuICAgICAgICBjb25zdCBjb3JlT3B0aW9uczogUGFydGlhbDxQYW5ldmlld0NvbXBvbmVudE9wdGlvbnM+ID0ge307XG5cbiAgICAgICAgUFJPUEVSVFlfS0VZU19QQU5FVklFVy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKHRoaXMgYXMgYW55KVtrZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAoY29yZU9wdGlvbnMgYXMgYW55KVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb3JlT3B0aW9ucyBhcyBQYW5ldmlld09wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGcmFtZXdvcmtPcHRpb25zKCk6IFBhbmV2aWV3RnJhbWV3b3JrT3B0aW9ucyB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBuZXcgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgICAgdGhpcy5oZWFkZXJDb21wb25lbnRzXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNyZWF0ZUNvbXBvbmVudDogKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50RmFjdG9yeS5jcmVhdGVQYW5ldmlld0NvbXBvbmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVIZWFkZXJDb21wb25lbnQ6IHRoaXMuaGVhZGVyQ29tcG9uZW50c1xuICAgICAgICAgICAgICAgID8gKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFuZ3VsYXJQYW5lUGFydChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJDb21wb25lbnRzIVtvcHRpb25zLm5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50SW5qZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhbmV2aWV3QXBpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdXAgZXZlbnQgc3Vic2NyaXB0aW9ucyB1c2luZyBsaWZlY3ljbGUgbWFuYWdlclxuICAgICAgICBjb25zdCBhcGkgPSB0aGlzLnBhbmV2aWV3QXBpO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3Aub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3Bvc2FibGUgPSBhcGkub25EaWREcm9wKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5saWZlY3ljbGVNYW5hZ2VyLmFkZERpc3Bvc2FibGUoZGlzcG9zYWJsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Re-export commonly used types from dockview-core
|
|
2
|
+
export { PaneviewApi } from 'dockview-core';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhbmV2aWV3L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxtREFBbUQ7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBc0MsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYW5ldmlld09wdGlvbnMsIFBhbmV2aWV3QXBpLCBQYW5ldmlld0Ryb3BFdmVudCB9IGZyb20gJ2RvY2t2aWV3LWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhbmV2aWV3QW5ndWxhclJlYWR5RXZlbnQge1xuICAgIGFwaTogUGFuZXZpZXdBcGk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuZXZpZXdBbmd1bGFyT3B0aW9ucyBleHRlbmRzIFBhbmV2aWV3T3B0aW9ucyB7XG4gICAgY29tcG9uZW50czogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+PjtcbiAgICBoZWFkZXJDb21wb25lbnRzPzogUmVjb3JkPHN0cmluZywgVHlwZTxhbnk+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYW5ldmlld0FuZ3VsYXJFdmVudHMge1xuICAgIHJlYWR5OiBQYW5ldmlld0FuZ3VsYXJSZWFkeUV2ZW50O1xuICAgIGRyb3A6IFBhbmV2aWV3RHJvcEV2ZW50O1xufVxuXG4vLyBSZS1leHBvcnQgY29tbW9ubHkgdXNlZCB0eXBlcyBmcm9tIGRvY2t2aWV3LWNvcmVcbmV4cG9ydCB7IFBhbmV2aWV3QXBpLCBQYW5ldmlld0Ryb3BFdmVudCwgUGFuZXZpZXdPcHRpb25zIH0gZnJvbSAnZG9ja3ZpZXctY29yZSc7XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SplitviewPanel } from 'dockview-core';
|
|
2
|
+
import { AngularRenderer } from '../utils/angular-renderer';
|
|
3
|
+
export class AngularSplitviewPanel extends SplitviewPanel {
|
|
4
|
+
constructor(id, component, angularComponent, injector, environmentInjector) {
|
|
5
|
+
super(id, component);
|
|
6
|
+
this.angularComponent = angularComponent;
|
|
7
|
+
this.injector = injector;
|
|
8
|
+
this.environmentInjector = environmentInjector;
|
|
9
|
+
}
|
|
10
|
+
getComponent() {
|
|
11
|
+
const renderer = new AngularRenderer({
|
|
12
|
+
component: this.angularComponent,
|
|
13
|
+
injector: this.injector,
|
|
14
|
+
environmentInjector: this.environmentInjector,
|
|
15
|
+
});
|
|
16
|
+
renderer.init({
|
|
17
|
+
params: this._params?.params ?? {},
|
|
18
|
+
api: this.api,
|
|
19
|
+
});
|
|
20
|
+
this.element.appendChild(renderer.element);
|
|
21
|
+
return renderer;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1zcGxpdHZpZXctcGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NwbGl0dmlldy9hbmd1bGFyLXNwbGl0dmlldy1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGNBQWM7SUFDckQsWUFDSSxFQUFVLEVBQ1YsU0FBaUIsRUFDQSxnQkFBMkIsRUFDM0IsUUFBa0IsRUFDbEIsbUJBQXlDO1FBRTFELEtBQUssQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFKSixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVc7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO0lBRzlELENBQUM7SUFFRCxZQUFZO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUM7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDaEQsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFO1lBQ2xDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSwgSW5qZWN0b3IsIEVudmlyb25tZW50SW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwbGl0dmlld1BhbmVsLCBJRnJhbWV3b3JrUGFydCB9IGZyb20gJ2RvY2t2aWV3LWNvcmUnO1xuaW1wb3J0IHsgQW5ndWxhclJlbmRlcmVyIH0gZnJvbSAnLi4vdXRpbHMvYW5ndWxhci1yZW5kZXJlcic7XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyU3BsaXR2aWV3UGFuZWwgZXh0ZW5kcyBTcGxpdHZpZXdQYW5lbCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGlkOiBzdHJpbmcsXG4gICAgICAgIGNvbXBvbmVudDogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFuZ3VsYXJDb21wb25lbnQ6IFR5cGU8YW55PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnRJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaWQsIGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50KCk6IElGcmFtZXdvcmtQYXJ0IHtcbiAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgQW5ndWxhclJlbmRlcmVyKHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5hbmd1bGFyQ29tcG9uZW50LFxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIH0pO1xuICAgICAgICByZW5kZXJlci5pbml0KHtcbiAgICAgICAgICAgIHBhcmFtczogdGhpcy5fcGFyYW1zPy5wYXJhbXMgPz8ge30sXG4gICAgICAgICAgICBhcGk6IHRoaXMuYXBpLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHJlbmRlcmVyLmVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gcmVuZGVyZXI7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewChild, ChangeDetectionStrategy, EnvironmentInjector, inject, } from '@angular/core';
|
|
2
|
+
import { createSplitview, PROPERTY_KEYS_SPLITVIEW, } from 'dockview-core';
|
|
3
|
+
import { AngularFrameworkComponentFactory } from '../utils/component-factory';
|
|
4
|
+
import { AngularLifecycleManager } from '../utils/lifecycle-utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SplitviewAngularComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.ready = new EventEmitter();
|
|
9
|
+
this.lifecycleManager = new AngularLifecycleManager();
|
|
10
|
+
this.injector = inject(Injector);
|
|
11
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.initializeSplitview();
|
|
15
|
+
}
|
|
16
|
+
ngOnDestroy() {
|
|
17
|
+
this.lifecycleManager.destroy();
|
|
18
|
+
if (this.splitviewApi) {
|
|
19
|
+
this.splitviewApi.dispose();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
ngOnChanges(changes) {
|
|
23
|
+
if (this.splitviewApi) {
|
|
24
|
+
const coreChanges = {};
|
|
25
|
+
let hasChanges = false;
|
|
26
|
+
// Check for changes in core splitview properties
|
|
27
|
+
PROPERTY_KEYS_SPLITVIEW.forEach((key) => {
|
|
28
|
+
if (changes[key] && !changes[key].isFirstChange()) {
|
|
29
|
+
coreChanges[key] = changes[key].currentValue;
|
|
30
|
+
hasChanges = true;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
if (hasChanges) {
|
|
34
|
+
this.splitviewApi.updateOptions(coreChanges);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getSplitviewApi() {
|
|
39
|
+
return this.splitviewApi;
|
|
40
|
+
}
|
|
41
|
+
initializeSplitview() {
|
|
42
|
+
if (!this.components) {
|
|
43
|
+
throw new Error('SplitviewAngularComponent: components input is required');
|
|
44
|
+
}
|
|
45
|
+
const coreOptions = this.extractCoreOptions();
|
|
46
|
+
const frameworkOptions = this.createFrameworkOptions();
|
|
47
|
+
this.splitviewApi = createSplitview(this.containerRef.nativeElement, {
|
|
48
|
+
...coreOptions,
|
|
49
|
+
...frameworkOptions,
|
|
50
|
+
});
|
|
51
|
+
// Emit ready event
|
|
52
|
+
this.ready.emit({ api: this.splitviewApi });
|
|
53
|
+
}
|
|
54
|
+
extractCoreOptions() {
|
|
55
|
+
const coreOptions = {};
|
|
56
|
+
PROPERTY_KEYS_SPLITVIEW.forEach((key) => {
|
|
57
|
+
const value = this[key];
|
|
58
|
+
if (value !== undefined) {
|
|
59
|
+
coreOptions[key] = value;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return coreOptions;
|
|
63
|
+
}
|
|
64
|
+
createFrameworkOptions() {
|
|
65
|
+
const componentFactory = new AngularFrameworkComponentFactory(this.components, this.injector, this.environmentInjector);
|
|
66
|
+
return {
|
|
67
|
+
createComponent: (options) => {
|
|
68
|
+
return componentFactory.createSplitviewComponent(options);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SplitviewAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SplitviewAngularComponent, isStandalone: true, selector: "dv-splitview", inputs: { components: "components", className: "className", orientation: "orientation", proportionalLayout: "proportionalLayout", hideBorders: "hideBorders", debug: "debug", disableAutoResizing: "disableAutoResizing" }, outputs: { ready: "ready" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["splitviewContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div #splitviewContainer class="splitview-container"></div>', isInline: true, styles: [":host{display:block;width:100%;height:100%}.splitview-container{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SplitviewAngularComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'dv-splitview', standalone: true, template: '<div #splitviewContainer class="splitview-container"></div>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%;height:100%}.splitview-container{width:100%;height:100%}\n"] }]
|
|
78
|
+
}], propDecorators: { containerRef: [{
|
|
79
|
+
type: ViewChild,
|
|
80
|
+
args: ['splitviewContainer', { static: true }]
|
|
81
|
+
}], components: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], className: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], orientation: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], proportionalLayout: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], hideBorders: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], debug: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], disableAutoResizing: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], ready: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR2aWV3LWFuZ3VsYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zcGxpdHZpZXcvc3BsaXR2aWV3LWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNuQixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdILGVBQWUsRUFDZix1QkFBdUIsR0FHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBMkJuRSxNQUFNLE9BQU8seUJBQXlCO0lBcEJ0QztRQWtDYyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUFHekQscUJBQWdCLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FpRjdEO0lBL0VHLFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFlBQVks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QkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBTcGxpdHZpZXdBcGksXG4gICAgU3BsaXR2aWV3T3B0aW9ucyxcbiAgICBjcmVhdGVTcGxpdHZpZXcsXG4gICAgUFJPUEVSVFlfS0VZU19TUExJVFZJRVcsXG4gICAgU3BsaXR2aWV3RnJhbWV3b3JrT3B0aW9ucyxcbiAgICBTcGxpdHZpZXdDb21wb25lbnRPcHRpb25zLFxufSBmcm9tICdkb2Nrdmlldy1jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRGYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvY29tcG9uZW50LWZhY3RvcnknO1xuaW1wb3J0IHsgQW5ndWxhckxpZmVjeWNsZU1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9saWZlY3ljbGUtdXRpbHMnO1xuaW1wb3J0IHsgU3BsaXR2aWV3QW5ndWxhclJlYWR5RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGxpdHZpZXdBbmd1bGFyT3B0aW9ucyBleHRlbmRzIFNwbGl0dmlld09wdGlvbnMge1xuICAgIGNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsIFR5cGU8YW55Pj47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHYtc3BsaXR2aWV3JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPGRpdiAjc3BsaXR2aWV3Q29udGFpbmVyIGNsYXNzPVwic3BsaXR2aWV3LWNvbnRhaW5lclwiPjwvZGl2PicsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGxpdHZpZXctY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR2aWV3QW5ndWxhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ3NwbGl0dmlld0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpIGNvbXBvbmVudHMhOiBSZWNvcmQ8c3RyaW5nLCBUeXBlPGFueT4+O1xuXG4gICAgLy8gQ29yZSBzcGxpdHZpZXcgb3B0aW9ucyBhcyBpbnB1dHNcbiAgICBASW5wdXQoKSBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgb3JpZW50YXRpb24/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xuICAgIEBJbnB1dCgpIHByb3BvcnRpb25hbExheW91dD86IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZUJvcmRlcnM/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRlYnVnPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlQXV0b1Jlc2l6aW5nPzogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR2aWV3QW5ndWxhclJlYWR5RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIHNwbGl0dmlld0FwaT86IFNwbGl0dmlld0FwaTtcbiAgICBwcml2YXRlIGxpZmVjeWNsZU1hbmFnZXIgPSBuZXcgQW5ndWxhckxpZmVjeWNsZU1hbmFnZXIoKTtcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplU3BsaXR2aWV3KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlTWFuYWdlci5kZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLnNwbGl0dmlld0FwaSkge1xuICAgICAgICAgICAgdGhpcy5zcGxpdHZpZXdBcGkuZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zcGxpdHZpZXdBcGkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvcmVDaGFuZ2VzOiBQYXJ0aWFsPFNwbGl0dmlld09wdGlvbnM+ID0ge307XG4gICAgICAgICAgICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBmb3IgY2hhbmdlcyBpbiBjb3JlIHNwbGl0dmlldyBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBQUk9QRVJUWV9LRVlTX1NQTElUVklFVy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhbmdlc1trZXldICYmICFjaGFuZ2VzW2tleV0uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIChjb3JlQ2hhbmdlcyBhcyBhbnkpW2tleV0gPSBjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0dmlld0FwaS51cGRhdGVPcHRpb25zKGNvcmVDaGFuZ2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFNwbGl0dmlld0FwaSgpOiBTcGxpdHZpZXdBcGkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGxpdHZpZXdBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplU3BsaXR2aWV3KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdTcGxpdHZpZXdBbmd1bGFyQ29tcG9uZW50OiBjb21wb25lbnRzIGlucHV0IGlzIHJlcXVpcmVkJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvcmVPcHRpb25zID0gdGhpcy5leHRyYWN0Q29yZU9wdGlvbnMoKTtcbiAgICAgICAgY29uc3QgZnJhbWV3b3JrT3B0aW9ucyA9IHRoaXMuY3JlYXRlRnJhbWV3b3JrT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuc3BsaXR2aWV3QXBpID0gY3JlYXRlU3BsaXR2aWV3KHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICAgIC4uLmNvcmVPcHRpb25zLFxuICAgICAgICAgICAgLi4uZnJhbWV3b3JrT3B0aW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRW1pdCByZWFkeSBldmVudFxuICAgICAgICB0aGlzLnJlYWR5LmVtaXQoeyBhcGk6IHRoaXMuc3BsaXR2aWV3QXBpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdENvcmVPcHRpb25zKCk6IFNwbGl0dmlld09wdGlvbnMge1xuICAgICAgICBjb25zdCBjb3JlT3B0aW9uczogUGFydGlhbDxTcGxpdHZpZXdDb21wb25lbnRPcHRpb25zPiA9IHt9O1xuXG4gICAgICAgIFBST1BFUlRZX0tFWVNfU1BMSVRWSUVXLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAodGhpcyBhcyBhbnkpW2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIChjb3JlT3B0aW9ucyBhcyBhbnkpW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNvcmVPcHRpb25zIGFzIFNwbGl0dmlld09wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGcmFtZXdvcmtPcHRpb25zKCk6IFNwbGl0dmlld0ZyYW1ld29ya09wdGlvbnMge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gbmV3IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRGYWN0b3J5KFxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRJbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjcmVhdGVDb21wb25lbnQ6IChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlU3BsaXR2aWV3Q29tcG9uZW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Re-export commonly used types from dockview-core
|
|
2
|
+
export { SplitviewApi } from 'dockview-core';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NwbGl0dmlldy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxtREFBbUQ7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGxpdHZpZXdPcHRpb25zLCBTcGxpdHZpZXdBcGkgfSBmcm9tICdkb2Nrdmlldy1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGxpdHZpZXdBbmd1bGFyUmVhZHlFdmVudCB7XG4gICAgYXBpOiBTcGxpdHZpZXdBcGk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BsaXR2aWV3QW5ndWxhck9wdGlvbnMgZXh0ZW5kcyBTcGxpdHZpZXdPcHRpb25zIHtcbiAgICBjb21wb25lbnRzOiBSZWNvcmQ8c3RyaW5nLCBUeXBlPGFueT4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwbGl0dmlld0FuZ3VsYXJFdmVudHMge1xuICAgIHJlYWR5OiBTcGxpdHZpZXdBbmd1bGFyUmVhZHlFdmVudDtcbn1cblxuLy8gUmUtZXhwb3J0IGNvbW1vbmx5IHVzZWQgdHlwZXMgZnJvbSBkb2Nrdmlldy1jb3JlXG5leHBvcnQgeyBTcGxpdHZpZXdBcGksIFNwbGl0dmlld09wdGlvbnMgfSBmcm9tICdkb2Nrdmlldy1jb3JlJztcbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createComponent, ApplicationRef, } from '@angular/core';
|
|
2
|
+
export class AngularRenderer {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.options = options;
|
|
5
|
+
this.componentRef = null;
|
|
6
|
+
this._element = null;
|
|
7
|
+
this.appRef = options.injector.get(ApplicationRef);
|
|
8
|
+
}
|
|
9
|
+
get element() {
|
|
10
|
+
if (!this._element) {
|
|
11
|
+
throw new Error('Angular renderer not initialized');
|
|
12
|
+
}
|
|
13
|
+
return this._element;
|
|
14
|
+
}
|
|
15
|
+
get component() {
|
|
16
|
+
return this.componentRef;
|
|
17
|
+
}
|
|
18
|
+
init(parameters) {
|
|
19
|
+
// Only forward params, api, and containerApi to the component
|
|
20
|
+
// (matching the React renderer). Other init parameters like
|
|
21
|
+
// 'title' are internal to the framework.
|
|
22
|
+
const filtered = {};
|
|
23
|
+
if ('params' in parameters) {
|
|
24
|
+
filtered['params'] = parameters['params'];
|
|
25
|
+
}
|
|
26
|
+
if ('api' in parameters) {
|
|
27
|
+
filtered['api'] = parameters['api'];
|
|
28
|
+
}
|
|
29
|
+
if ('containerApi' in parameters) {
|
|
30
|
+
filtered['containerApi'] = parameters['containerApi'];
|
|
31
|
+
}
|
|
32
|
+
if (this.componentRef) {
|
|
33
|
+
this.update(filtered);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.render(filtered);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
update(params) {
|
|
40
|
+
if (!this.componentRef) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const instance = this.componentRef.instance;
|
|
44
|
+
for (const key of Object.keys(params)) {
|
|
45
|
+
if (key in instance) {
|
|
46
|
+
instance[key] = params[key];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// trigger change detection
|
|
50
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
51
|
+
}
|
|
52
|
+
render(parameters) {
|
|
53
|
+
try {
|
|
54
|
+
// Create the component using modern Angular API
|
|
55
|
+
this.componentRef = createComponent(this.options.component, {
|
|
56
|
+
environmentInjector: this.options.environmentInjector ||
|
|
57
|
+
this.options.injector,
|
|
58
|
+
elementInjector: this.options.injector,
|
|
59
|
+
});
|
|
60
|
+
// Set initial parameters
|
|
61
|
+
this.update(parameters);
|
|
62
|
+
// Get the DOM element
|
|
63
|
+
const hostView = this.componentRef.hostView;
|
|
64
|
+
this._element = hostView.rootNodes[0];
|
|
65
|
+
// attach to change detection
|
|
66
|
+
this.appRef.attachView(hostView);
|
|
67
|
+
// trigger change detection
|
|
68
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.error('Error creating Angular component:', error);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
dispose() {
|
|
76
|
+
if (this.componentRef) {
|
|
77
|
+
this.componentRef.destroy();
|
|
78
|
+
this.componentRef = null;
|
|
79
|
+
}
|
|
80
|
+
this._element = null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvYW5ndWxhci1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsZUFBZSxFQUVmLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFTdkIsTUFBTSxPQUFPLGVBQWU7SUFPeEIsWUFBb0IsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFKOUMsaUJBQVksR0FBMkIsSUFBSSxDQUFDO1FBQzVDLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBSXhDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQXNCO1FBQ3ZCLDhEQUE4RDtRQUM5RCw0REFBNEQ7UUFDNUQseUNBQXlDO1FBQ3pDLE1BQU0sUUFBUSxHQUE0QixFQUFFLENBQUM7UUFDN0MsSUFBSSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxjQUFjLElBQUksVUFBVSxFQUFFLENBQUM7WUFDL0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBa0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBbUMsQ0FBQztRQUV2RSxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0wsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTyxNQUFNLENBQUMsVUFBc0I7UUFDakMsSUFBSSxDQUFDO1lBQ0QsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN4RCxtQkFBbUIsRUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtvQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFnQztnQkFDbEQsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTthQUN6QyxDQUFDLENBQUM7WUFFSCx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUV4QixzQkFBc0I7WUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFnQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFFckQsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWpDLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxNQUFNLEtBQUssQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudFJlZixcbiAgICBJbmplY3RvcixcbiAgICBUeXBlLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBjcmVhdGVDb21wb25lbnQsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBBcHBsaWNhdGlvblJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ29udGVudFJlbmRlcmVyLCBJRnJhbWV3b3JrUGFydCwgUGFyYW1ldGVycyB9IGZyb20gJ2RvY2t2aWV3LWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJSZW5kZXJlck9wdGlvbnM8VCA9IGFueT4ge1xuICAgIGNvbXBvbmVudDogVHlwZTxUPjtcbiAgICBpbmplY3RvcjogSW5qZWN0b3I7XG4gICAgZW52aXJvbm1lbnRJbmplY3Rvcj86IEVudmlyb25tZW50SW5qZWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyUmVuZGVyZXI8VCA9IGFueT5cbiAgICBpbXBsZW1lbnRzIElDb250ZW50UmVuZGVyZXIsIElGcmFtZXdvcmtQYXJ0XG57XG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBBbmd1bGFyUmVuZGVyZXJPcHRpb25zPFQ+KSB7XG4gICAgICAgIHRoaXMuYXBwUmVmID0gb3B0aW9ucy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuZ3VsYXIgcmVuZGVyZXIgbm90IGluaXRpYWxpemVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIGluaXQocGFyYW1ldGVyczogUGFyYW1ldGVycyk6IHZvaWQge1xuICAgICAgICAvLyBPbmx5IGZvcndhcmQgcGFyYW1zLCBhcGksIGFuZCBjb250YWluZXJBcGkgdG8gdGhlIGNvbXBvbmVudFxuICAgICAgICAvLyAobWF0Y2hpbmcgdGhlIFJlYWN0IHJlbmRlcmVyKS4gT3RoZXIgaW5pdCBwYXJhbWV0ZXJzIGxpa2VcbiAgICAgICAgLy8gJ3RpdGxlJyBhcmUgaW50ZXJuYWwgdG8gdGhlIGZyYW1ld29yay5cbiAgICAgICAgY29uc3QgZmlsdGVyZWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgICAgIGlmICgncGFyYW1zJyBpbiBwYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFsncGFyYW1zJ10gPSBwYXJhbWV0ZXJzWydwYXJhbXMnXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2FwaScgaW4gcGFyYW1ldGVycykge1xuICAgICAgICAgICAgZmlsdGVyZWRbJ2FwaSddID0gcGFyYW1ldGVyc1snYXBpJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdjb250YWluZXJBcGknIGluIHBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkWydjb250YWluZXJBcGknXSA9IHBhcmFtZXRlcnNbJ2NvbnRhaW5lckFwaSddO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShmaWx0ZXJlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcihmaWx0ZXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGUocGFyYW1zOiBQYXJhbWV0ZXJzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgICAgICAgaWYgKGtleSBpbiBpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlW2tleV0gPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlcihwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGNvbXBvbmVudCB1c2luZyBtb2Rlcm4gQW5ndWxhciBBUElcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KHRoaXMub3B0aW9ucy5jb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZW52aXJvbm1lbnRJbmplY3RvciB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmluamVjdG9yIGFzIEVudmlyb25tZW50SW5qZWN0b3IpLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRJbmplY3RvcjogdGhpcy5vcHRpb25zLmluamVjdG9yLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFNldCBpbml0aWFsIHBhcmFtZXRlcnNcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHBhcmFtZXRlcnMpO1xuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIERPTSBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBob3N0VmlldyA9IHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudCA9IGhvc3RWaWV3LnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgLy8gYXR0YWNoIHRvIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoaG9zdFZpZXcpO1xuXG4gICAgICAgICAgICAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY3JlYXRpbmcgQW5ndWxhciBjb21wb25lbnQ6JywgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNwb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50ID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|