diff --git a/packages/dockview-angular/package.json b/packages/dockview-angular/package.json index ed4c59156..4ecc7038e 100644 --- a/packages/dockview-angular/package.json +++ b/packages/dockview-angular/package.json @@ -1,7 +1,7 @@ { "name": "dockview-angular", "version": "0.0.0-beta-0", - "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support", + "description": "Zero dependency layout manager supporting tabs, grids and splitviews", "keywords": [ "splitview", "split-view", diff --git a/packages/dockview-angular/src/dockview.vue b/packages/dockview-angular/src/dockview.vue deleted file mode 100644 index 60265cf53..000000000 --- a/packages/dockview-angular/src/dockview.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - diff --git a/packages/dockview-angular/src/index.scss b/packages/dockview-angular/src/index.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/dockview-angular/src/utils.ts b/packages/dockview-angular/src/utils.ts deleted file mode 100644 index b91901ec4..000000000 --- a/packages/dockview-angular/src/utils.ts +++ /dev/null @@ -1,151 +0,0 @@ -import type { - DockviewGroupPanel, - GroupPanelPartInitParameters, - IContentRenderer, - ITabRenderer, - IWatermarkRenderer, - PanelUpdateEvent, - Parameters, - WatermarkRendererInitParameters -} from 'dockview-core' -import { createVNode, type ComponentOptionsBase, render, cloneVNode, mergeProps } from 'vue' - -export type ComponentInterface = ComponentOptionsBase - -/** - * TODO List - * - * 1. handle vue context-ish stuff (appContext? provides?) - * - * - * - * @see https://vuejs.org/api/render-function.html#clonevnode - * @see https://vuejs.org/api/render-function.html#mergeprops - */ -export function mountVueComponent(component: ComponentInterface, props: any, element: HTMLElement) { - let vNode = createVNode(component, props) - - render(vNode, element) - - return { - update: (newProps: any) => { - vNode = cloneVNode(vNode, mergeProps(props, newProps)) - render(vNode, element) - }, - dispose: () => { - render(null, element) - } - } -} - -export class VueContentRenderer implements IContentRenderer { - private _element: HTMLElement - private _renderDisposable: { update: (props: any) => void; dispose: () => void } | undefined - - get element(): HTMLElement { - return this._element - } - - constructor(private readonly component: ComponentInterface) { - this._element = document.createElement('div') - this.element.className = 'dv-vue-part' - } - - init(parameters: GroupPanelPartInitParameters): void { - const props = { - params: parameters.params, - api: parameters.api, - containerApi: parameters.containerApi - } - - this._renderDisposable?.dispose() - this._renderDisposable = mountVueComponent(this.component, props, this.element) - } - - update(event: PanelUpdateEvent): void { - const params = event.params - // TODO: handle prop updates somehow? - this._renderDisposable?.update(params) - } - - focus(): void { - // TODO: make optional on interface - } - - dispose(): void { - this._renderDisposable?.dispose() - } -} - -export class VueTabRenderer implements ITabRenderer { - private _element: HTMLElement - private _renderDisposable: { update: (props: any) => void; dispose: () => void } | undefined - - get element(): HTMLElement { - return this._element - } - - constructor(private readonly component: ComponentInterface) { - this._element = document.createElement('div') - this.element.className = 'dv-vue-part' - } - - init(parameters: GroupPanelPartInitParameters): void { - const props = { - params: parameters.params, - api: parameters.api, - containerApi: parameters.containerApi - } - - this._renderDisposable?.dispose() - this._renderDisposable = mountVueComponent(this.component, props, this.element) - } - - update(event: PanelUpdateEvent): void { - const params = event.params - // TODO: handle prop updates somehow? - this._renderDisposable?.update(params) - } - - dispose(): void { - this._renderDisposable?.dispose() - } -} - -export class VueWatermarkRenderer implements IWatermarkRenderer { - private _element: HTMLElement - private _renderDisposable: { update: (props: any) => void; dispose: () => void } | undefined - - get element(): HTMLElement { - return this._element - } - - constructor(private readonly component: ComponentInterface) { - this._element = document.createElement('div') - this.element.className = 'dv-vue-part' - } - - init(parameters: WatermarkRendererInitParameters): void { - const props = { - group: parameters.group, - containerApi: parameters.containerApi - } - - this._renderDisposable?.dispose() - this._renderDisposable = mountVueComponent(this.component, props, this.element) - } - - updateParentGroup(group: DockviewGroupPanel, visible: boolean): void { - // TODO: make optional on interface - } - - update(event: PanelUpdateEvent): void { - const params = event.params - // TODO: handle prop updates somehow? - this._renderDisposable?.update(params) - } - - dispose(): void { - this._renderDisposable?.dispose() - } -} diff --git a/packages/dockview-core/package.json b/packages/dockview-core/package.json index 9d813e173..7febf1438 100644 --- a/packages/dockview-core/package.json +++ b/packages/dockview-core/package.json @@ -1,7 +1,7 @@ { "name": "dockview-core", "version": "1.10.1", - "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support", + "description": "Zero dependency layout manager supporting tabs, grids and splitviews", "keywords": [ "splitview", "split-view", diff --git a/packages/dockview-react/package.json b/packages/dockview-react/package.json index 5362373f3..43c16d147 100644 --- a/packages/dockview-react/package.json +++ b/packages/dockview-react/package.json @@ -1,7 +1,7 @@ { "name": "dockview-react", "version": "0.0.0-beta-0", - "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support", + "description": "Zero dependency layout manager supporting tabs, grids and splitviews", "keywords": [ "splitview", "split-view", @@ -56,4 +56,4 @@ "dependencies": { "dockview": "^1.10.1" } -} \ No newline at end of file +} diff --git a/packages/dockview-vue/package.json b/packages/dockview-vue/package.json index 8cbd9df60..c5b0cefc1 100644 --- a/packages/dockview-vue/package.json +++ b/packages/dockview-vue/package.json @@ -1,7 +1,7 @@ { "name": "dockview-vue", "version": "0.0.0-beta-0", - "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support", + "description": "Zero dependency layout manager supporting tabs, grids and splitviews", "keywords": [ "splitview", "split-view", @@ -58,4 +58,4 @@ "dependencies": { "dockview-core": "^1.10.1" } -} \ No newline at end of file +} diff --git a/packages/dockview/package.json b/packages/dockview/package.json index 9260d11fc..8c841353a 100644 --- a/packages/dockview/package.json +++ b/packages/dockview/package.json @@ -1,7 +1,7 @@ { "name": "dockview", "version": "1.10.1", - "description": "Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support", + "description": "Zero dependency layout manager supporting tabs, grids and splitviews", "keywords": [ "splitview", "split-view",