dockview-angular 0.0.0-beta-0 → 0.0.0-experimental-e3d91d1-20251227
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 +56 -56
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/lib/dockview/dockview-angular.component.d.ts +49 -0
- package/dist/cjs/lib/dockview/dockview-angular.component.js +256 -0
- package/dist/cjs/lib/dockview/types.d.ts +27 -0
- package/dist/cjs/lib/dockview/types.js +8 -0
- package/dist/cjs/lib/dockview-angular.module.d.ts +2 -0
- package/dist/cjs/lib/dockview-angular.module.js +35 -0
- package/dist/cjs/lib/gridview/angular-gridview-panel.d.ts +9 -0
- package/dist/cjs/lib/gridview/angular-gridview-panel.js +21 -0
- package/dist/cjs/lib/gridview/gridview-angular.component.d.ts +28 -0
- package/dist/cjs/lib/gridview/gridview-angular.component.js +140 -0
- package/dist/cjs/lib/gridview/types.d.ts +12 -0
- package/dist/cjs/lib/gridview/types.js +6 -0
- package/dist/cjs/lib/paneview/angular-pane-part.d.ts +13 -0
- package/dist/cjs/lib/paneview/angular-pane-part.js +29 -0
- package/dist/cjs/lib/paneview/paneview-angular.component.d.ts +31 -0
- package/dist/cjs/lib/paneview/paneview-angular.component.js +166 -0
- package/dist/cjs/lib/paneview/types.d.ts +14 -0
- package/dist/cjs/lib/paneview/types.js +6 -0
- package/dist/cjs/lib/splitview/angular-splitview-panel.d.ts +9 -0
- package/dist/cjs/lib/splitview/angular-splitview-panel.js +21 -0
- package/dist/cjs/lib/splitview/splitview-angular.component.d.ts +28 -0
- package/dist/cjs/lib/splitview/splitview-angular.component.js +140 -0
- package/dist/cjs/lib/splitview/types.d.ts +12 -0
- package/dist/cjs/lib/splitview/types.js +6 -0
- package/dist/cjs/lib/utils/angular-renderer.d.ts +18 -0
- package/dist/cjs/lib/utils/angular-renderer.js +70 -0
- package/dist/cjs/lib/utils/component-factory.d.ts +20 -0
- package/dist/cjs/lib/utils/component-factory.js +103 -0
- package/dist/cjs/lib/utils/lifecycle-utils.d.ts +18 -0
- package/dist/cjs/lib/utils/lifecycle-utils.js +74 -0
- package/dist/cjs/public-api.d.ts +13 -0
- package/dist/cjs/public-api.js +32 -0
- package/dist/dockview-angular.amd.js +7632 -3730
- package/dist/dockview-angular.amd.js.map +1 -1
- package/dist/dockview-angular.amd.min.js +2 -2
- package/dist/dockview-angular.amd.min.js.map +1 -1
- package/dist/dockview-angular.amd.min.noStyle.js +2 -2
- package/dist/dockview-angular.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.amd.noStyle.js +7629 -3727
- package/dist/dockview-angular.amd.noStyle.js.map +1 -1
- package/dist/dockview-angular.cjs.js +7644 -3738
- package/dist/dockview-angular.cjs.js.map +1 -1
- package/dist/dockview-angular.esm.js +7607 -3721
- package/dist/dockview-angular.esm.js.map +1 -1
- package/dist/dockview-angular.esm.min.js +2 -2
- package/dist/dockview-angular.esm.min.js.map +1 -1
- package/dist/dockview-angular.js +7635 -3733
- package/dist/dockview-angular.js.map +1 -1
- package/dist/dockview-angular.min.js +2 -2
- package/dist/dockview-angular.min.js.map +1 -1
- package/dist/dockview-angular.min.noStyle.js +2 -2
- package/dist/dockview-angular.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.noStyle.js +7632 -3730
- package/dist/dockview-angular.noStyle.js.map +1 -1
- package/dist/dockview.css +1229 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/dockview/dockview-angular.component.d.ts +49 -0
- package/dist/esm/lib/dockview/dockview-angular.component.js +253 -0
- package/dist/esm/lib/dockview/types.d.ts +27 -0
- package/dist/esm/lib/dockview/types.js +2 -0
- package/dist/esm/lib/dockview-angular.module.d.ts +2 -0
- package/dist/esm/lib/dockview-angular.module.js +32 -0
- package/dist/esm/lib/gridview/angular-gridview-panel.d.ts +9 -0
- package/dist/esm/lib/gridview/angular-gridview-panel.js +17 -0
- package/dist/esm/lib/gridview/gridview-angular.component.d.ts +28 -0
- package/dist/esm/lib/gridview/gridview-angular.component.js +137 -0
- package/dist/esm/lib/gridview/types.d.ts +12 -0
- package/dist/esm/lib/gridview/types.js +2 -0
- package/dist/esm/lib/paneview/angular-pane-part.d.ts +13 -0
- package/dist/esm/lib/paneview/angular-pane-part.js +25 -0
- package/dist/esm/lib/paneview/paneview-angular.component.d.ts +31 -0
- package/dist/esm/lib/paneview/paneview-angular.component.js +163 -0
- package/dist/esm/lib/paneview/types.d.ts +14 -0
- package/dist/esm/lib/paneview/types.js +2 -0
- package/dist/esm/lib/splitview/angular-splitview-panel.d.ts +9 -0
- package/dist/esm/lib/splitview/angular-splitview-panel.js +17 -0
- package/dist/esm/lib/splitview/splitview-angular.component.d.ts +28 -0
- package/dist/esm/lib/splitview/splitview-angular.component.js +137 -0
- package/dist/esm/lib/splitview/types.d.ts +12 -0
- package/dist/esm/lib/splitview/types.js +2 -0
- package/dist/esm/lib/utils/angular-renderer.d.ts +18 -0
- package/dist/esm/lib/utils/angular-renderer.js +66 -0
- package/dist/esm/lib/utils/component-factory.d.ts +20 -0
- package/dist/esm/lib/utils/component-factory.js +99 -0
- package/dist/esm/lib/utils/lifecycle-utils.d.ts +18 -0
- package/dist/esm/lib/utils/lifecycle-utils.js +68 -0
- package/dist/esm/public-api.d.ts +13 -0
- package/dist/esm/public-api.js +16 -0
- package/package.json +67 -58
- package/dist/cjs/utils.d.ts +0 -49
- package/dist/cjs/utils.js +0 -141
- package/dist/esm/utils.d.ts +0 -49
- package/dist/esm/utils.js +0 -119
- package/dist/styles/dockview.css +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { takeUntil } from 'rxjs/operators';
|
|
3
|
+
export class AngularDisposable {
|
|
4
|
+
constructor() {
|
|
5
|
+
this._isDisposed = false;
|
|
6
|
+
this.disposeCallbacks = [];
|
|
7
|
+
}
|
|
8
|
+
get isDisposed() {
|
|
9
|
+
return this._isDisposed;
|
|
10
|
+
}
|
|
11
|
+
addDisposeCallback(callback) {
|
|
12
|
+
if (this._isDisposed) {
|
|
13
|
+
callback();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.disposeCallbacks.push(callback);
|
|
17
|
+
}
|
|
18
|
+
dispose() {
|
|
19
|
+
if (this._isDisposed) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this._isDisposed = true;
|
|
23
|
+
this.disposeCallbacks.forEach(callback => {
|
|
24
|
+
try {
|
|
25
|
+
callback();
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error('Error in dispose callback:', error);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
this.disposeCallbacks = [];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class AngularLifecycleManager {
|
|
35
|
+
constructor() {
|
|
36
|
+
this.destroySubject = new Subject();
|
|
37
|
+
this.disposables = [];
|
|
38
|
+
}
|
|
39
|
+
get destroy$() {
|
|
40
|
+
return this.destroySubject.asObservable();
|
|
41
|
+
}
|
|
42
|
+
addDisposable(disposable) {
|
|
43
|
+
this.disposables.push(disposable);
|
|
44
|
+
}
|
|
45
|
+
takeUntilDestroy() {
|
|
46
|
+
return takeUntil(this.destroySubject);
|
|
47
|
+
}
|
|
48
|
+
destroy() {
|
|
49
|
+
this.destroySubject.next();
|
|
50
|
+
this.destroySubject.complete();
|
|
51
|
+
this.disposables.forEach(disposable => {
|
|
52
|
+
try {
|
|
53
|
+
disposable.dispose();
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error('Error disposing resource:', error);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
this.disposables = [];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function createAngularDisposable(disposeCallback) {
|
|
63
|
+
const disposable = new AngularDisposable();
|
|
64
|
+
if (disposeCallback) {
|
|
65
|
+
disposable.addDisposeCallback(disposeCallback);
|
|
66
|
+
}
|
|
67
|
+
return disposable;
|
|
68
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from 'dockview-core';
|
|
2
|
+
export * from './lib/dockview-angular.module';
|
|
3
|
+
export * from './lib/dockview/dockview-angular.component';
|
|
4
|
+
export * from './lib/gridview/gridview-angular.component';
|
|
5
|
+
export * from './lib/paneview/paneview-angular.component';
|
|
6
|
+
export * from './lib/splitview/splitview-angular.component';
|
|
7
|
+
export { DockviewAngularOptions, DockviewAngularEvents, IDockviewAngularPanelProps, IDockviewAngularPanelHeaderProps, IDockviewAngularWatermarkProps, IDockviewAngularHeaderActionsProps, DockviewAngularComponentOptions } from './lib/dockview/types';
|
|
8
|
+
export { GridviewAngularOptions, GridviewAngularEvents, GridviewAngularReadyEvent } from './lib/gridview/types';
|
|
9
|
+
export { PaneviewAngularOptions, PaneviewAngularEvents, PaneviewAngularReadyEvent } from './lib/paneview/types';
|
|
10
|
+
export { SplitviewAngularOptions, SplitviewAngularEvents, SplitviewAngularReadyEvent } from './lib/splitview/types';
|
|
11
|
+
export * from './lib/utils/angular-renderer';
|
|
12
|
+
export * from './lib/utils/component-factory';
|
|
13
|
+
export * from './lib/utils/lifecycle-utils';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of dockview-angular
|
|
3
|
+
*/
|
|
4
|
+
// Re-export everything from dockview-core
|
|
5
|
+
export * from 'dockview-core';
|
|
6
|
+
// Angular module
|
|
7
|
+
export * from './lib/dockview-angular.module';
|
|
8
|
+
// Components
|
|
9
|
+
export * from './lib/dockview/dockview-angular.component';
|
|
10
|
+
export * from './lib/gridview/gridview-angular.component';
|
|
11
|
+
export * from './lib/paneview/paneview-angular.component';
|
|
12
|
+
export * from './lib/splitview/splitview-angular.component';
|
|
13
|
+
// Utilities
|
|
14
|
+
export * from './lib/utils/angular-renderer';
|
|
15
|
+
export * from './lib/utils/component-factory';
|
|
16
|
+
export * from './lib/utils/lifecycle-utils';
|
package/package.json
CHANGED
|
@@ -1,59 +1,68 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
2
|
+
"name": "dockview-angular",
|
|
3
|
+
"version": "0.0.0-experimental-e3d91d1-20251227",
|
|
4
|
+
"description": "Zero dependency layout manager supporting tabs, grids and splitviews",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"splitview",
|
|
7
|
+
"split-view",
|
|
8
|
+
"gridview",
|
|
9
|
+
"grid-view",
|
|
10
|
+
"dockview",
|
|
11
|
+
"dock-view",
|
|
12
|
+
"grid",
|
|
13
|
+
"tabs",
|
|
14
|
+
"layout",
|
|
15
|
+
"layout manager",
|
|
16
|
+
"dock layout",
|
|
17
|
+
"dock",
|
|
18
|
+
"docking",
|
|
19
|
+
"splitter",
|
|
20
|
+
"drag-and-drop",
|
|
21
|
+
"drag",
|
|
22
|
+
"drop",
|
|
23
|
+
"angular",
|
|
24
|
+
"angular-component"
|
|
25
|
+
],
|
|
26
|
+
"homepage": "https://github.com/mathuo/dockview",
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/mathuo/dockview/issues"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/mathuo/dockview.git"
|
|
33
|
+
},
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"author": "https://github.com/mathuo",
|
|
36
|
+
"main": "./dist/cjs/index.js",
|
|
37
|
+
"module": "./dist/esm/index.js",
|
|
38
|
+
"types": "./dist/cjs/index.d.ts",
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build:bundle": "rollup -c",
|
|
45
|
+
"build:cjs": "cross-env ../../node_modules/.bin/tsc --build ./tsconfig.json --verbose --extendedDiagnostics",
|
|
46
|
+
"build:esm": "cross-env ../../node_modules/.bin/tsc --build ./tsconfig.esm.json --verbose --extendedDiagnostics",
|
|
47
|
+
"build:css": "node scripts/copy-css.js",
|
|
48
|
+
"build": "npm run build:cjs && npm run build:esm && npm run build:css",
|
|
49
|
+
"clean": "rimraf dist/ .build/ .rollup.cache/",
|
|
50
|
+
"prepublishOnly": "npm run rebuild && npm run build:bundle && npm run test",
|
|
51
|
+
"rebuild": "npm run clean && npm run build",
|
|
52
|
+
"test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-angular",
|
|
53
|
+
"test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-angular --coverage"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"dockview-core": "0.0.0-experimental-e3d91d1-20251227"
|
|
57
|
+
},
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"@angular/common": ">=14.0.0",
|
|
60
|
+
"@angular/core": ">=14.0.0",
|
|
61
|
+
"rxjs": ">=7.0.0"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"jest-preset-angular": "^14.6.1",
|
|
65
|
+
"ng-packagr": "^17.0.0",
|
|
66
|
+
"zone.js": "^0.15.1"
|
|
67
|
+
}
|
|
68
|
+
}
|
package/dist/cjs/utils.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { DockviewGroupPanel, GroupPanelPartInitParameters, IContentRenderer, ITabRenderer, IWatermarkRenderer, PanelUpdateEvent, Parameters, WatermarkRendererInitParameters } from 'dockview-core';
|
|
2
|
-
import { type ComponentOptionsBase } from 'vue';
|
|
3
|
-
export type ComponentInterface = ComponentOptionsBase<any, any, any, any, any, any, any, any>;
|
|
4
|
-
/**
|
|
5
|
-
* TODO List
|
|
6
|
-
*
|
|
7
|
-
* 1. handle vue context-ish stuff (appContext? provides?)
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @see https://vuejs.org/api/render-function.html#clonevnode
|
|
12
|
-
* @see https://vuejs.org/api/render-function.html#mergeprops
|
|
13
|
-
*/
|
|
14
|
-
export declare function mountVueComponent(component: ComponentInterface, props: any, element: HTMLElement): {
|
|
15
|
-
update: (newProps: any) => void;
|
|
16
|
-
dispose: () => void;
|
|
17
|
-
};
|
|
18
|
-
export declare class VueContentRenderer implements IContentRenderer {
|
|
19
|
-
private readonly component;
|
|
20
|
-
private _element;
|
|
21
|
-
private _renderDisposable;
|
|
22
|
-
get element(): HTMLElement;
|
|
23
|
-
constructor(component: ComponentInterface);
|
|
24
|
-
init(parameters: GroupPanelPartInitParameters): void;
|
|
25
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
26
|
-
focus(): void;
|
|
27
|
-
dispose(): void;
|
|
28
|
-
}
|
|
29
|
-
export declare class VueTabRenderer implements ITabRenderer {
|
|
30
|
-
private readonly component;
|
|
31
|
-
private _element;
|
|
32
|
-
private _renderDisposable;
|
|
33
|
-
get element(): HTMLElement;
|
|
34
|
-
constructor(component: ComponentInterface);
|
|
35
|
-
init(parameters: GroupPanelPartInitParameters): void;
|
|
36
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
37
|
-
dispose(): void;
|
|
38
|
-
}
|
|
39
|
-
export declare class VueWatermarkRenderer implements IWatermarkRenderer {
|
|
40
|
-
private readonly component;
|
|
41
|
-
private _element;
|
|
42
|
-
private _renderDisposable;
|
|
43
|
-
get element(): HTMLElement;
|
|
44
|
-
constructor(component: ComponentInterface);
|
|
45
|
-
init(parameters: WatermarkRendererInitParameters): void;
|
|
46
|
-
updateParentGroup(group: DockviewGroupPanel, visible: boolean): void;
|
|
47
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
48
|
-
dispose(): void;
|
|
49
|
-
}
|
package/dist/cjs/utils.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VueWatermarkRenderer = exports.VueTabRenderer = exports.VueContentRenderer = exports.mountVueComponent = void 0;
|
|
4
|
-
var vue_1 = require("vue");
|
|
5
|
-
/**
|
|
6
|
-
* TODO List
|
|
7
|
-
*
|
|
8
|
-
* 1. handle vue context-ish stuff (appContext? provides?)
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @see https://vuejs.org/api/render-function.html#clonevnode
|
|
13
|
-
* @see https://vuejs.org/api/render-function.html#mergeprops
|
|
14
|
-
*/
|
|
15
|
-
function mountVueComponent(component, props, element) {
|
|
16
|
-
var vNode = (0, vue_1.createVNode)(component, props);
|
|
17
|
-
(0, vue_1.render)(vNode, element);
|
|
18
|
-
return {
|
|
19
|
-
update: function (newProps) {
|
|
20
|
-
vNode = (0, vue_1.cloneVNode)(vNode, (0, vue_1.mergeProps)(props, newProps));
|
|
21
|
-
(0, vue_1.render)(vNode, element);
|
|
22
|
-
},
|
|
23
|
-
dispose: function () {
|
|
24
|
-
(0, vue_1.render)(null, element);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
exports.mountVueComponent = mountVueComponent;
|
|
29
|
-
var VueContentRenderer = /** @class */ (function () {
|
|
30
|
-
function VueContentRenderer(component) {
|
|
31
|
-
this.component = component;
|
|
32
|
-
this._element = document.createElement('div');
|
|
33
|
-
this.element.className = 'dv-vue-part';
|
|
34
|
-
}
|
|
35
|
-
Object.defineProperty(VueContentRenderer.prototype, "element", {
|
|
36
|
-
get: function () {
|
|
37
|
-
return this._element;
|
|
38
|
-
},
|
|
39
|
-
enumerable: false,
|
|
40
|
-
configurable: true
|
|
41
|
-
});
|
|
42
|
-
VueContentRenderer.prototype.init = function (parameters) {
|
|
43
|
-
var _a;
|
|
44
|
-
var props = {
|
|
45
|
-
params: parameters.params,
|
|
46
|
-
api: parameters.api,
|
|
47
|
-
containerApi: parameters.containerApi
|
|
48
|
-
};
|
|
49
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
50
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
51
|
-
};
|
|
52
|
-
VueContentRenderer.prototype.update = function (event) {
|
|
53
|
-
var _a;
|
|
54
|
-
var params = event.params;
|
|
55
|
-
// TODO: handle prop updates somehow?
|
|
56
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
57
|
-
};
|
|
58
|
-
VueContentRenderer.prototype.focus = function () {
|
|
59
|
-
// TODO: make optional on interface
|
|
60
|
-
};
|
|
61
|
-
VueContentRenderer.prototype.dispose = function () {
|
|
62
|
-
var _a;
|
|
63
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
64
|
-
};
|
|
65
|
-
return VueContentRenderer;
|
|
66
|
-
}());
|
|
67
|
-
exports.VueContentRenderer = VueContentRenderer;
|
|
68
|
-
var VueTabRenderer = /** @class */ (function () {
|
|
69
|
-
function VueTabRenderer(component) {
|
|
70
|
-
this.component = component;
|
|
71
|
-
this._element = document.createElement('div');
|
|
72
|
-
this.element.className = 'dv-vue-part';
|
|
73
|
-
}
|
|
74
|
-
Object.defineProperty(VueTabRenderer.prototype, "element", {
|
|
75
|
-
get: function () {
|
|
76
|
-
return this._element;
|
|
77
|
-
},
|
|
78
|
-
enumerable: false,
|
|
79
|
-
configurable: true
|
|
80
|
-
});
|
|
81
|
-
VueTabRenderer.prototype.init = function (parameters) {
|
|
82
|
-
var _a;
|
|
83
|
-
var props = {
|
|
84
|
-
params: parameters.params,
|
|
85
|
-
api: parameters.api,
|
|
86
|
-
containerApi: parameters.containerApi
|
|
87
|
-
};
|
|
88
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
89
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
90
|
-
};
|
|
91
|
-
VueTabRenderer.prototype.update = function (event) {
|
|
92
|
-
var _a;
|
|
93
|
-
var params = event.params;
|
|
94
|
-
// TODO: handle prop updates somehow?
|
|
95
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
96
|
-
};
|
|
97
|
-
VueTabRenderer.prototype.dispose = function () {
|
|
98
|
-
var _a;
|
|
99
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
100
|
-
};
|
|
101
|
-
return VueTabRenderer;
|
|
102
|
-
}());
|
|
103
|
-
exports.VueTabRenderer = VueTabRenderer;
|
|
104
|
-
var VueWatermarkRenderer = /** @class */ (function () {
|
|
105
|
-
function VueWatermarkRenderer(component) {
|
|
106
|
-
this.component = component;
|
|
107
|
-
this._element = document.createElement('div');
|
|
108
|
-
this.element.className = 'dv-vue-part';
|
|
109
|
-
}
|
|
110
|
-
Object.defineProperty(VueWatermarkRenderer.prototype, "element", {
|
|
111
|
-
get: function () {
|
|
112
|
-
return this._element;
|
|
113
|
-
},
|
|
114
|
-
enumerable: false,
|
|
115
|
-
configurable: true
|
|
116
|
-
});
|
|
117
|
-
VueWatermarkRenderer.prototype.init = function (parameters) {
|
|
118
|
-
var _a;
|
|
119
|
-
var props = {
|
|
120
|
-
group: parameters.group,
|
|
121
|
-
containerApi: parameters.containerApi
|
|
122
|
-
};
|
|
123
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
124
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
125
|
-
};
|
|
126
|
-
VueWatermarkRenderer.prototype.updateParentGroup = function (group, visible) {
|
|
127
|
-
// TODO: make optional on interface
|
|
128
|
-
};
|
|
129
|
-
VueWatermarkRenderer.prototype.update = function (event) {
|
|
130
|
-
var _a;
|
|
131
|
-
var params = event.params;
|
|
132
|
-
// TODO: handle prop updates somehow?
|
|
133
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
134
|
-
};
|
|
135
|
-
VueWatermarkRenderer.prototype.dispose = function () {
|
|
136
|
-
var _a;
|
|
137
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
138
|
-
};
|
|
139
|
-
return VueWatermarkRenderer;
|
|
140
|
-
}());
|
|
141
|
-
exports.VueWatermarkRenderer = VueWatermarkRenderer;
|
package/dist/esm/utils.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { DockviewGroupPanel, GroupPanelPartInitParameters, IContentRenderer, ITabRenderer, IWatermarkRenderer, PanelUpdateEvent, Parameters, WatermarkRendererInitParameters } from 'dockview-core';
|
|
2
|
-
import { type ComponentOptionsBase } from 'vue';
|
|
3
|
-
export type ComponentInterface = ComponentOptionsBase<any, any, any, any, any, any, any, any>;
|
|
4
|
-
/**
|
|
5
|
-
* TODO List
|
|
6
|
-
*
|
|
7
|
-
* 1. handle vue context-ish stuff (appContext? provides?)
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @see https://vuejs.org/api/render-function.html#clonevnode
|
|
12
|
-
* @see https://vuejs.org/api/render-function.html#mergeprops
|
|
13
|
-
*/
|
|
14
|
-
export declare function mountVueComponent(component: ComponentInterface, props: any, element: HTMLElement): {
|
|
15
|
-
update: (newProps: any) => void;
|
|
16
|
-
dispose: () => void;
|
|
17
|
-
};
|
|
18
|
-
export declare class VueContentRenderer implements IContentRenderer {
|
|
19
|
-
private readonly component;
|
|
20
|
-
private _element;
|
|
21
|
-
private _renderDisposable;
|
|
22
|
-
get element(): HTMLElement;
|
|
23
|
-
constructor(component: ComponentInterface);
|
|
24
|
-
init(parameters: GroupPanelPartInitParameters): void;
|
|
25
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
26
|
-
focus(): void;
|
|
27
|
-
dispose(): void;
|
|
28
|
-
}
|
|
29
|
-
export declare class VueTabRenderer implements ITabRenderer {
|
|
30
|
-
private readonly component;
|
|
31
|
-
private _element;
|
|
32
|
-
private _renderDisposable;
|
|
33
|
-
get element(): HTMLElement;
|
|
34
|
-
constructor(component: ComponentInterface);
|
|
35
|
-
init(parameters: GroupPanelPartInitParameters): void;
|
|
36
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
37
|
-
dispose(): void;
|
|
38
|
-
}
|
|
39
|
-
export declare class VueWatermarkRenderer implements IWatermarkRenderer {
|
|
40
|
-
private readonly component;
|
|
41
|
-
private _element;
|
|
42
|
-
private _renderDisposable;
|
|
43
|
-
get element(): HTMLElement;
|
|
44
|
-
constructor(component: ComponentInterface);
|
|
45
|
-
init(parameters: WatermarkRendererInitParameters): void;
|
|
46
|
-
updateParentGroup(group: DockviewGroupPanel, visible: boolean): void;
|
|
47
|
-
update(event: PanelUpdateEvent<Parameters>): void;
|
|
48
|
-
dispose(): void;
|
|
49
|
-
}
|
package/dist/esm/utils.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { createVNode, render, cloneVNode, mergeProps } from 'vue';
|
|
2
|
-
/**
|
|
3
|
-
* TODO List
|
|
4
|
-
*
|
|
5
|
-
* 1. handle vue context-ish stuff (appContext? provides?)
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @see https://vuejs.org/api/render-function.html#clonevnode
|
|
10
|
-
* @see https://vuejs.org/api/render-function.html#mergeprops
|
|
11
|
-
*/
|
|
12
|
-
export function mountVueComponent(component, props, element) {
|
|
13
|
-
let vNode = createVNode(component, props);
|
|
14
|
-
render(vNode, element);
|
|
15
|
-
return {
|
|
16
|
-
update: (newProps) => {
|
|
17
|
-
vNode = cloneVNode(vNode, mergeProps(props, newProps));
|
|
18
|
-
render(vNode, element);
|
|
19
|
-
},
|
|
20
|
-
dispose: () => {
|
|
21
|
-
render(null, element);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export class VueContentRenderer {
|
|
26
|
-
get element() {
|
|
27
|
-
return this._element;
|
|
28
|
-
}
|
|
29
|
-
constructor(component) {
|
|
30
|
-
this.component = component;
|
|
31
|
-
this._element = document.createElement('div');
|
|
32
|
-
this.element.className = 'dv-vue-part';
|
|
33
|
-
}
|
|
34
|
-
init(parameters) {
|
|
35
|
-
var _a;
|
|
36
|
-
const props = {
|
|
37
|
-
params: parameters.params,
|
|
38
|
-
api: parameters.api,
|
|
39
|
-
containerApi: parameters.containerApi
|
|
40
|
-
};
|
|
41
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
42
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
43
|
-
}
|
|
44
|
-
update(event) {
|
|
45
|
-
var _a;
|
|
46
|
-
const params = event.params;
|
|
47
|
-
// TODO: handle prop updates somehow?
|
|
48
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
49
|
-
}
|
|
50
|
-
focus() {
|
|
51
|
-
// TODO: make optional on interface
|
|
52
|
-
}
|
|
53
|
-
dispose() {
|
|
54
|
-
var _a;
|
|
55
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export class VueTabRenderer {
|
|
59
|
-
get element() {
|
|
60
|
-
return this._element;
|
|
61
|
-
}
|
|
62
|
-
constructor(component) {
|
|
63
|
-
this.component = component;
|
|
64
|
-
this._element = document.createElement('div');
|
|
65
|
-
this.element.className = 'dv-vue-part';
|
|
66
|
-
}
|
|
67
|
-
init(parameters) {
|
|
68
|
-
var _a;
|
|
69
|
-
const props = {
|
|
70
|
-
params: parameters.params,
|
|
71
|
-
api: parameters.api,
|
|
72
|
-
containerApi: parameters.containerApi
|
|
73
|
-
};
|
|
74
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
75
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
76
|
-
}
|
|
77
|
-
update(event) {
|
|
78
|
-
var _a;
|
|
79
|
-
const params = event.params;
|
|
80
|
-
// TODO: handle prop updates somehow?
|
|
81
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
82
|
-
}
|
|
83
|
-
dispose() {
|
|
84
|
-
var _a;
|
|
85
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
export class VueWatermarkRenderer {
|
|
89
|
-
get element() {
|
|
90
|
-
return this._element;
|
|
91
|
-
}
|
|
92
|
-
constructor(component) {
|
|
93
|
-
this.component = component;
|
|
94
|
-
this._element = document.createElement('div');
|
|
95
|
-
this.element.className = 'dv-vue-part';
|
|
96
|
-
}
|
|
97
|
-
init(parameters) {
|
|
98
|
-
var _a;
|
|
99
|
-
const props = {
|
|
100
|
-
group: parameters.group,
|
|
101
|
-
containerApi: parameters.containerApi
|
|
102
|
-
};
|
|
103
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
104
|
-
this._renderDisposable = mountVueComponent(this.component, props, this.element);
|
|
105
|
-
}
|
|
106
|
-
updateParentGroup(group, visible) {
|
|
107
|
-
// TODO: make optional on interface
|
|
108
|
-
}
|
|
109
|
-
update(event) {
|
|
110
|
-
var _a;
|
|
111
|
-
const params = event.params;
|
|
112
|
-
// TODO: handle prop updates somehow?
|
|
113
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.update(params);
|
|
114
|
-
}
|
|
115
|
-
dispose() {
|
|
116
|
-
var _a;
|
|
117
|
-
(_a = this._renderDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
118
|
-
}
|
|
119
|
-
}
|
package/dist/styles/dockview.css
DELETED
|
File without changes
|