diff --git a/.codesandbox/ci.json b/.codesandbox/ci.json index e450b957b..23c5a9b2c 100644 --- a/.codesandbox/ci.json +++ b/.codesandbox/ci.json @@ -1,6 +1,7 @@ { "packages": [ "packages/dockview-core", + "packages/dockview-vue", "packages/dockview" ], "sandboxes": [ @@ -41,4 +42,4 @@ "/packages/docs/sandboxes/javascript/vanilla-dockview" ], "node": "18" -} \ No newline at end of file +} diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 9b43e8fdc..b8f24b0d3 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -26,6 +26,8 @@ jobs: working-directory: packages/dockview-core - run: npm run build working-directory: packages/dockview + - run: npm run build + working-directory: packages/dockview-vue - run: npm run build working-directory: packages/docs - run: npm run docs diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 23b0df832..090304bdf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,6 +35,9 @@ jobs: - name: Publish dockview run: npm publish --provenance working-directory: packages/dockview + - name: Publish dockview-vue + run: npm publish --provenance + working-directory: packages/dockview-vue publish-experimental: if: github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest @@ -64,3 +67,6 @@ jobs: - name: Publish dockview run: npm publish --provenance --tag experimental working-directory: packages/dockview + - name: Publish dockview-vue + run: npm publish --provenance --tag experimental + working-directory: packages/dockview-vue diff --git a/package.json b/package.json index 17bcfe6d0..f9f51a541 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "packages/*" ], "scripts": { - "build": "lerna run build --scope '{dockview-core,dockview}'", + "build": "lerna run build --scope '{dockview-core,dockview,dockview-vue}'", "clean": "lerna run clean", "docs": "typedoc", "generate-docs": "node scripts/docs.mjs", diff --git a/packages/dockview-core/src/dockview/components/tab/tab.ts b/packages/dockview-core/src/dockview/components/tab/tab.ts index 946da58b8..c97f1f110 100644 --- a/packages/dockview-core/src/dockview/components/tab/tab.ts +++ b/packages/dockview-core/src/dockview/components/tab/tab.ts @@ -12,7 +12,6 @@ import { DockviewGroupPanel } from '../../dockviewGroupPanel'; import { DroptargetEvent, Droptarget, - Position, WillShowOverlayEvent, } from '../../../dnd/droptarget'; import { DragHandler } from '../../../dnd/abstractDragHandler'; diff --git a/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts b/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts index 8271c8f56..54aa322d4 100644 --- a/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts +++ b/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts @@ -10,11 +10,7 @@ import { VoidContainer } from './voidContainer'; import { toggleClass } from '../../../dom'; import { DockviewPanel, IDockviewPanel } from '../../dockviewPanel'; import { DockviewComponent } from '../../dockviewComponent'; -import { WillShowOverlayEvent } from '../../../dnd/droptarget'; -import { - DockviewGroupDropLocation, - WillShowOverlayLocationEvent, -} from '../../dockviewGroupPanelModel'; +import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel'; import { getPanelData } from '../../../dnd/dataTransfer'; export interface TabDropIndexEvent { diff --git a/packages/dockview-core/src/dockview/types.ts b/packages/dockview-core/src/dockview/types.ts index 34da58a34..da38ed544 100644 --- a/packages/dockview-core/src/dockview/types.ts +++ b/packages/dockview-core/src/dockview/types.ts @@ -2,7 +2,6 @@ import { IDockviewComponent } from './dockviewComponent'; import { DockviewPanelApi } from '../api/dockviewPanelApi'; import { PanelInitParameters, IPanel } from '../panel/types'; import { DockviewApi } from '../api/component.api'; -import { Event } from '../events'; import { Optional } from '../types'; import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel'; import { DockviewPanelRenderer } from '../overlayRenderContainer'; diff --git a/packages/dockview-core/src/gridview/gridviewPanel.ts b/packages/dockview-core/src/gridview/gridviewPanel.ts index f398f5b7a..74672c1c4 100644 --- a/packages/dockview-core/src/gridview/gridviewPanel.ts +++ b/packages/dockview-core/src/gridview/gridviewPanel.ts @@ -1,8 +1,5 @@ import { PanelInitParameters } from '../panel/types'; -import { - GridviewComponent, - IGridPanelComponentView, -} from './gridviewComponent'; +import { IGridPanelComponentView } from './gridviewComponent'; import { FunctionOrValue } from '../types'; import { BasePanelView, diff --git a/packages/dockview-core/src/splitview/options.ts b/packages/dockview-core/src/splitview/options.ts index 9590139ae..a81f47200 100644 --- a/packages/dockview-core/src/splitview/options.ts +++ b/packages/dockview-core/src/splitview/options.ts @@ -1,5 +1,5 @@ -import { IPanel, PanelInitParameters } from '../panel/types'; -import { IView, SplitViewOptions, LayoutPriority } from './splitview'; +import { PanelInitParameters } from '../panel/types'; +import { SplitViewOptions, LayoutPriority } from './splitview'; import { SplitviewPanel } from './splitviewPanel'; import { SplitviewComponent } from './splitviewComponent'; import { diff --git a/packages/dockview-react/gulpfile.js b/packages/dockview-react/gulpfile.js deleted file mode 100644 index 4b62c983d..000000000 --- a/packages/dockview-react/gulpfile.js +++ /dev/null @@ -1,6 +0,0 @@ -const gulp = require('gulp'); -const buildfile = require('../../scripts/build'); - -buildfile.init(); - -gulp.task('run', gulp.series(['sass'])); diff --git a/packages/dockview-react/src/index.scss b/packages/dockview-react/src/index.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/dockview-vue/gulpfile.js b/packages/dockview-vue/gulpfile.js deleted file mode 100644 index 4b62c983d..000000000 --- a/packages/dockview-vue/gulpfile.js +++ /dev/null @@ -1,6 +0,0 @@ -const gulp = require('gulp'); -const buildfile = require('../../scripts/build'); - -buildfile.init(); - -gulp.task('run', gulp.series(['sass'])); diff --git a/packages/dockview-vue/jest.config.ts b/packages/dockview-vue/jest.config.ts index 2452cd216..93f45f1e3 100644 --- a/packages/dockview-vue/jest.config.ts +++ b/packages/dockview-vue/jest.config.ts @@ -4,7 +4,7 @@ const config: JestConfigWithTsJest = { preset: 'ts-jest', roots: ['/packages/dockview-vue'], modulePaths: ['/packages/dockview-vue/src'], - displayName: { name: 'dockview', color: 'blue' }, + displayName: { name: 'dockview-vue', color: 'blue' }, rootDir: '../../', collectCoverageFrom: [ '/packages/dockview-vue/src/**/*.{js,jsx,ts,tsx}', diff --git a/packages/dockview-vue/package.json b/packages/dockview-vue/package.json index 7b55a799e..bfbdce884 100644 --- a/packages/dockview-vue/package.json +++ b/packages/dockview-vue/package.json @@ -41,21 +41,16 @@ "README.md" ], "scripts": { - "build-only": "vite build", - "build": "npm run build:package", - "build:bundles": "rollup -c", - "build:cjs": "cross-env ../../node_modules/.bin/vue-tsc --build ./tsconfig.json --verbose --extendedDiagnostics", - "build:css": "gulp sass", - "build:esm": "cross-env ../../node_modules/.bin/vue-tsc --build ./tsconfig.esm.json --verbose --extendedDiagnostics", - "build:package": "npm run build-only && npm run build:types", + "build:js": "vite build", + "build:types": "vue-tsc --project tsconfig.build-types.json --declaration --emitDeclarationOnly --outDir dist/types", + "build": "npm run build:js && npm run build:types", "clean": "rimraf dist/ .build/ .rollup.cache/", "prepublishOnly": "npm run rebuild && npm run test", "rebuild": "npm run clean && npm run build", - "test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview", - "test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview --coverage", - "build:types": "vue-tsc --project tsconfig.build-types.json --declaration --emitDeclarationOnly --outDir dist/types " + "test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-vue", + "test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-vue --coverage" }, "dependencies": { "dockview-core": "^1.13.1" } -} +} \ No newline at end of file diff --git a/packages/dockview-vue/rollup.config.js b/packages/dockview-vue/rollup.config.js deleted file mode 100644 index 37d41f545..000000000 --- a/packages/dockview-vue/rollup.config.js +++ /dev/null @@ -1,116 +0,0 @@ -/* eslint-disable */ - -const { join } = require('path'); -const typescript = require('@rollup/plugin-typescript'); -const terser = require('@rollup/plugin-terser'); -const postcss = require('rollup-plugin-postcss'); -const nodeResolve = require('@rollup/plugin-node-resolve'); -const vue = require('@vitejs/plugin-vue'); - -const { name, version, homepage, license } = require('./package.json'); -const main = join(__dirname, './scripts/rollupEntryTarget.ts'); -const mainNoStyles = join(__dirname, './src/index.ts'); -const outputDir = join(__dirname, 'dist'); - -function outputFile(format, isMinified, withStyles) { - let filename = join(outputDir, name); - - if (format !== 'umd') { - filename += `.${format}`; - } - if (isMinified) { - filename += '.min'; - } - if (!withStyles) { - filename += '.noStyle'; - } - - return `${filename}.js`; -} - -function getInput(options) { - const { withStyles } = options; - - if (withStyles) { - return main; - } - - return mainNoStyles; -} - -function createBundle(format, options) { - const { withStyles, isMinified } = options; - const input = getInput(options); - const file = outputFile(format, isMinified, withStyles); - - const external = []; - - const output = { - file, - format, - sourcemap: true, - globals: {}, - banner: [ - `/**`, - ` * ${name}`, - ` * @version ${version}`, - ` * @link ${homepage}`, - ` * @license ${license}`, - ` */`, - ].join('\n'), - }; - - const plugins = [ - nodeResolve({ - include: ['node_modules/dockview-core/**'], - }), - - typescript({ - tsconfig: 'tsconfig.config.json', - }), - vue({}), - ]; - - if (isMinified) { - plugins.push(terser()); - } - if (withStyles) { - plugins.push(postcss()); - } - - if (format === 'umd') { - output['name'] = name; - } - - external.push('react', 'react-dom'); - - if (format === 'umd') { - output.globals['react'] = 'React'; - output.globals['react-dom'] = 'ReactDOM'; - } - - return { - input, - output, - plugins, - external, - }; -} - -module.exports = [ - // amd - createBundle('amd', { withStyles: false, isMinified: false }), - createBundle('amd', { withStyles: true, isMinified: false }), - createBundle('amd', { withStyles: false, isMinified: true }), - createBundle('amd', { withStyles: true, isMinified: true }), - // umd - createBundle('umd', { withStyles: false, isMinified: false }), - createBundle('umd', { withStyles: true, isMinified: false }), - createBundle('umd', { withStyles: false, isMinified: true }), - createBundle('umd', { withStyles: true, isMinified: true }), - // cjs - createBundle('cjs', { withStyles: true, isMinified: false }), - // esm - createBundle('esm', { withStyles: true, isMinified: false }), - createBundle('esm', { withStyles: true, isMinified: true }), -]; diff --git a/packages/dockview-vue/scripts/rollupEntryTarget.ts b/packages/dockview-vue/scripts/rollupEntryTarget.ts deleted file mode 100644 index 6ce476579..000000000 --- a/packages/dockview-vue/scripts/rollupEntryTarget.ts +++ /dev/null @@ -1,2 +0,0 @@ -import '../dist/styles/dockview.css'; -export * from '../src/index'; diff --git a/packages/dockview-vue/src/dockview/dockview.vue b/packages/dockview-vue/src/dockview/dockview.vue index 38a05ec75..0b9fa0243 100644 --- a/packages/dockview-vue/src/dockview/dockview.vue +++ b/packages/dockview-vue/src/dockview/dockview.vue @@ -2,13 +2,6 @@ import { DockviewApi, DockviewComponent, - type IContentRenderer, - type ITabRenderer, - type IWatermarkRenderer, - type IDockviewPanelProps, - type IDockviewPanelHeaderProps, - type IGroupPanelBaseProps, - type IWatermarkPanelProps, type DockviewOptions, PROPERTY_KEYS, type DockviewFrameworkOptions, @@ -22,13 +15,11 @@ import { watch, onBeforeUnmount, markRaw, - toRaw, getCurrentInstance, } from 'vue'; import { - VueContentRenderer, VueHeaderActionsRenderer, - VueTabRenderer, + VueRenderer, VueWatermarkRenderer, findComponent, } from '../utils'; @@ -41,18 +32,6 @@ interface VueProps { prefixHeaderActionsComponent?: string; } -const VUE_PROPERTIES = (() => { - const _value: Record = { - watermarkComponent: undefined, - defaultTabComponent: undefined, - rightHeaderActionsComponent: undefined, - leftHeaderActionsComponent: undefined, - prefixHeaderActionsComponent: undefined, - }; - - return Object.keys(_value) as (keyof VueProps)[]; -})(); - type VueEvents = { ready: [event: DockviewReadyEvent]; }; @@ -73,10 +52,6 @@ function extractCoreOptions(props: IDockviewVueProps): DockviewOptions { const emit = defineEmits(); -/** - * Anything here that is a Vue.js component should not be reactive - * i.e. markRaw(toRaw(...)) - */ const props = defineProps(); const el = ref(null); @@ -105,7 +80,7 @@ onMounted(() => { getCurrentInstance()!, options.name ); - return new VueContentRenderer(component!, getCurrentInstance()!); + return new VueRenderer(component!, getCurrentInstance()!); }, createTabComponent(options) { let component = findComponent(getCurrentInstance()!, options.name); @@ -118,7 +93,7 @@ onMounted(() => { } if (component) { - return new VueTabRenderer(component, getCurrentInstance()!); + return new VueRenderer(component, getCurrentInstance()!); } return undefined; }, @@ -199,8 +174,6 @@ onMounted(() => { */ instance.value = markRaw(dockview); - console.log(getCurrentInstance()); - emit('ready', { api: new DockviewApi(dockview) }); }); diff --git a/packages/dockview-vue/src/utils.ts b/packages/dockview-vue/src/utils.ts index 3125cf892..a4e18a5fe 100644 --- a/packages/dockview-vue/src/utils.ts +++ b/packages/dockview-vue/src/utils.ts @@ -1,9 +1,10 @@ import type { + DockviewApi, DockviewGroupPanel, + DockviewPanelApi, GroupPanelPartInitParameters, IContentRenderer, IDockviewPanelHeaderProps, - IDockviewPanelProps, IGroupHeaderProps, IHeaderActionsRenderer, ITabRenderer, @@ -59,12 +60,6 @@ export function findComponent( } /** - * 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 */ @@ -84,8 +79,8 @@ export function mountVueComponent>( return { update: (newProps: any) => { - runningProps = { ...props, newProps }; - vNode = cloneVNode(vNode, Object.freeze(runningProps)); + runningProps = { ...props, ...newProps }; + vNode = cloneVNode(vNode, runningProps); render(vNode, element); }, dispose: () => { @@ -94,78 +89,38 @@ export function mountVueComponent>( }; } -export class VueContentRenderer implements IContentRenderer { - private _element: HTMLElement; - private _renderDisposable: - | { update: (props: any) => void; dispose: () => void } - | undefined; +abstract class AbstractVueRenderer { + protected readonly _element: HTMLElement; get element(): HTMLElement { return this._element; } constructor( - private readonly component: VueComponent, - private readonly parent: ComponentInternalInstance + protected readonly component: VueComponent, + protected readonly parent: ComponentInternalInstance ) { this._element = document.createElement('div'); this.element.className = 'dv-vue-part'; this.element.style.height = '100%'; this.element.style.width = '100%'; } - - init(parameters: GroupPanelPartInitParameters): void { - const props: IDockviewPanelProps = { - params: parameters.params, - api: parameters.api, - containerApi: parameters.containerApi, - }; - - this._renderDisposable?.dispose(); - this._renderDisposable = mountVueComponent( - this.component, - this.parent, - { params: 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; +export class VueRenderer + extends AbstractVueRenderer + implements ITabRenderer, IContentRenderer +{ private _renderDisposable: | { update: (props: any) => void; dispose: () => void } | undefined; - - get element(): HTMLElement { - return this._element; - } - - constructor( - private readonly component: VueComponent, - private readonly parent: ComponentInternalInstance - ) { - this._element = document.createElement('div'); - this.element.className = 'dv-vue-part'; - this.element.style.height = '100%'; - this.element.style.width = '100%'; - } + private _api: DockviewPanelApi | undefined; + private _containerApi: DockviewApi | undefined; init(parameters: GroupPanelPartInitParameters): void { + this._api = parameters.api; + this._containerApi = parameters.containerApi; + const props: IDockviewPanelHeaderProps = { params: parameters.params, api: parameters.api, @@ -182,9 +137,18 @@ export class VueTabRenderer implements ITabRenderer { } update(event: PanelUpdateEvent): void { + if (!this._api || !this._containerApi) { + return; + } + const params = event.params; - // TODO: handle prop updates somehow? - this._renderDisposable?.update(params); + this._renderDisposable?.update({ + params: { + params: params, + api: this._api, + containerApi: this._containerApi, + }, + }); } dispose(): void { @@ -192,8 +156,10 @@ export class VueTabRenderer implements ITabRenderer { } } -export class VueWatermarkRenderer implements IWatermarkRenderer { - private _element: HTMLElement; +export class VueWatermarkRenderer + extends AbstractVueRenderer + implements IWatermarkRenderer +{ private _renderDisposable: | { update: (props: any) => void; dispose: () => void } | undefined; @@ -202,16 +168,6 @@ export class VueWatermarkRenderer implements IWatermarkRenderer { return this._element; } - constructor( - private readonly component: VueComponent, - private readonly parent: ComponentInternalInstance - ) { - this._element = document.createElement('div'); - this.element.className = 'dv-vue-part'; - this.element.style.height = '100%'; - this.element.style.width = '100%'; - } - init(parameters: WatermarkRendererInitParameters): void { const props: IWatermarkPanelProps = { group: parameters.group, @@ -232,9 +188,7 @@ export class VueWatermarkRenderer implements IWatermarkRenderer { } update(event: PanelUpdateEvent): void { - const params = event.params; - // TODO: handle prop updates somehow? - this._renderDisposable?.update(params); + // noop } dispose(): void { @@ -242,8 +196,10 @@ export class VueWatermarkRenderer implements IWatermarkRenderer { } } -export class VueHeaderActionsRenderer implements IHeaderActionsRenderer { - private _element: HTMLElement; +export class VueHeaderActionsRenderer + extends AbstractVueRenderer + implements IHeaderActionsRenderer +{ private _renderDisposable: | { update: (props: any) => void; dispose: () => void } | undefined; @@ -253,14 +209,11 @@ export class VueHeaderActionsRenderer implements IHeaderActionsRenderer { } constructor( - private readonly component: VueComponent, - private readonly parent: ComponentInternalInstance, + component: VueComponent, + parent: ComponentInternalInstance, group: DockviewGroupPanel ) { - this._element = document.createElement('div'); - this.element.className = 'dv-vue-header-action-part'; - this._element.style.width = '100%'; - this._element.style.height = '100%'; + super(component, parent); } init(props: IGroupHeaderProps): void { diff --git a/packages/dockview-vue/vite.config.ts b/packages/dockview-vue/vite.config.ts index 074ed3fbb..5bccc90f9 100644 --- a/packages/dockview-vue/vite.config.ts +++ b/packages/dockview-vue/vite.config.ts @@ -5,6 +5,7 @@ import vue from '@vitejs/plugin-vue'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], + build: { minify: false, lib: { @@ -13,6 +14,7 @@ export default defineConfig({ name: 'dockview-vue', // the name of the output files when the build is run fileName: (format) => `dockview-vue.${format}.js`, + formats: ['es', 'umd', 'cjs'], }, rollupOptions: { // make sure to externalize deps that shouldn't be bundled diff --git a/packages/dockview/src/dockview/dockview.tsx b/packages/dockview/src/dockview/dockview.tsx index 3f4102ce5..bf14b7f4e 100644 --- a/packages/dockview/src/dockview/dockview.tsx +++ b/packages/dockview/src/dockview/dockview.tsx @@ -3,8 +3,6 @@ import { DockviewComponent, DockviewWillDropEvent, DockviewApi, - IContentRenderer, - ITabRenderer, DockviewGroupPanel, IHeaderActionsRenderer, DockviewDidDropEvent, @@ -16,13 +14,11 @@ import { PROPERTY_KEYS, DockviewComponentOptions, DockviewFrameworkOptions, - IDockviewDisposable, DockviewDndOverlayEvent, DockviewReadyEvent, } from 'dockview-core'; import { ReactPanelContentPart } from './reactContentPart'; import { ReactPanelHeaderPart } from './reactHeaderPart'; - import { ReactPortalStore, usePortalsLifecycle } from '../react'; import { ReactWatermarkPart } from './reactWatermarkPart'; import { ReactHeaderActionsRendererPart } from './headerActionsRenderer'; diff --git a/packages/docs/docs/core/overview.mdx b/packages/docs/docs/core/overview.mdx index c0f2e0dfa..abedc5738 100644 --- a/packages/docs/docs/core/overview.mdx +++ b/packages/docs/docs/core/overview.mdx @@ -22,12 +22,21 @@ function onReady(event: DockviewReadyEvent) { ``` - - + ```tsx -const component = new DockviewComponent({ - /** options */ -}); +const App = { + name: 'App', + methods: { + onReady(event: DockviewReadyEvent) { + const api: DockviewApi = event.api; + }, + }, + template: ` + + `, +}; ``` diff --git a/packages/docs/docs/core/panels/register.mdx b/packages/docs/docs/core/panels/register.mdx index 8bd7cde96..81d16d702 100644 --- a/packages/docs/docs/core/panels/register.mdx +++ b/packages/docs/docs/core/panels/register.mdx @@ -39,6 +39,37 @@ return + +```tsx +const App = { + name: 'App', + components: { + 'component_1': VueComponent1, + 'component_2': VueComponent2, + }, + methods: { + onReady(event: DockviewReadyEvent) { + event.api.addPanel({ + id: 'panel_1', + component: 'component_1' + }); + + event.api.addPanel({ + id: 'panel_2', + component: 'component_2' + }); + }, + }, + template: ` + + `, +}; +``` + + + Each panel has an [api](/docs/api/dockview/panelApi) which is used to control specific features on that individual panel. The panel also has access the [group api](/docs/api/dockview/groupApi) and the container diff --git a/packages/docs/docs/core/panels/tabs.mdx b/packages/docs/docs/core/panels/tabs.mdx index 224052fc7..880bd86c2 100644 --- a/packages/docs/docs/core/panels/tabs.mdx +++ b/packages/docs/docs/core/panels/tabs.mdx @@ -31,6 +31,32 @@ return ``` + +```tsx +const App = { + name: 'App', + components: { + 'component_1': VueComponent1, + 'tab_1': VueComponent2, + }, + methods: { + onReady(event: DockviewReadyEvent) { + event.api.addPanel({ + id: 'panel_1', + component: 'component_1', + tabComponent: 'tab_1' + }); + }, + }, + template: ` + + `, +}; +``` + + not implemented @@ -51,6 +77,32 @@ return ``` + +```tsx +const App = { + name: 'App', + components: { + 'component_1': VueComponent1, + 'tab_1': VueComponent2, + }, + methods: { + onReady(event: DockviewReadyEvent) { + event.api.addPanel({ + id: 'panel_1', + component: 'component_1', + }); + }, + }, + template: ` + + `, +}; +``` + + not implemented diff --git a/packages/docs/src/generated/api.output.json b/packages/docs/src/generated/api.output.json index 40bb4e160..33cb17484 100644 --- a/packages/docs/src/generated/api.output.json +++ b/packages/docs/src/generated/api.output.json @@ -127,11 +127,11 @@ }, { "name": "_bufferOnDidLayoutChange", - "code": "TickDelayedEvent", + "code": "AsapEvent", "kind": "property", "type": { "type": "reference", - "value": "TickDelayedEvent", + "value": "AsapEvent", "source": "dockview-core" }, "flags": { @@ -2457,6 +2457,28 @@ ] } }, + { + "name": "onUnhandledDragOverEvent", + "code": "Event", + "kind": "accessor", + "value": { + "name": "onUnhandledDragOverEvent", + "code": "Event", + "kind": "getSignature", + "returnType": { + "type": "reference", + "value": "Event", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewDndOverlayEvent", + "source": "dockview-core" + } + ] + } + } + }, { "name": "onWillDragGroup", "code": "Event", @@ -3955,11 +3977,11 @@ }, { "name": "_bufferOnDidLayoutChange", - "code": "TickDelayedEvent", + "code": "AsapEvent", "kind": "property", "type": { "type": "reference", - "value": "TickDelayedEvent", + "value": "AsapEvent", "source": "dockview-core" }, "flags": { @@ -4299,6 +4321,26 @@ "isReadonly": true } }, + { + "name": "onUnhandledDragOverEvent", + "code": "Event", + "kind": "property", + "type": { + "type": "reference", + "value": "Event", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewDndOverlayEvent", + "source": "dockview-core" + } + ] + }, + "flags": { + "isReadonly": true + } + }, { "name": "onWillDragGroup", "code": "Event", @@ -6367,7 +6409,7 @@ }, { "name": "updateOptions", - "code": "(options: DockviewComponentUpdateOptions): void", + "code": "(options: Partial): void", "kind": "method", "signature": [ { @@ -6376,11 +6418,18 @@ "parameters": [ { "name": "options", - "code": "options: DockviewComponentUpdateOptions", + "code": "options: Partial", "type": { "type": "reference", - "value": "DockviewComponentUpdateOptions", - "source": "dockview-core" + "value": "Partial", + "source": "typescript", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewComponentOptions", + "source": "dockview-core" + } + ] }, "kind": "parameter" } @@ -6389,7 +6438,7 @@ "type": "intrinsic", "value": "void" }, - "code": "(options: DockviewComponentUpdateOptions): void", + "code": "(options: Partial): void", "kind": "callSignature" } ] @@ -7715,6 +7764,26 @@ "isReadonly": true } }, + { + "name": "onUnhandledDragOverEvent", + "code": "Event", + "kind": "property", + "type": { + "type": "reference", + "value": "Event", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewDndOverlayEvent", + "source": "dockview-core" + } + ] + }, + "flags": { + "isReadonly": true + } + }, { "name": "onWillDrop", "code": "Event", @@ -9236,6 +9305,141 @@ } ] }, + "DockviewUnhandledDragOverEvent": { + "kind": "class", + "name": "DockviewUnhandledDragOverEvent", + "children": [ + { + "name": "constructor", + "kind": "constructor", + "code": "" + }, + { + "name": "getData", + "code": "(): PanelTransfer | undefined", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(): PanelTransfer | undefined", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [], + "returnType": { + "type": "or", + "values": [ + { + "type": "reference", + "value": "PanelTransfer", + "source": "dockview-core" + }, + { + "type": "intrinsic", + "value": "undefined" + } + ] + }, + "code": "(): PanelTransfer | undefined", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isReadonly": true + } + }, + { + "name": "group", + "code": "DockviewGroupPanel", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewGroupPanel", + "source": "dockview-core" + }, + "flags": { + "isOptional": true, + "isReadonly": true + } + }, + { + "name": "nativeEvent", + "code": "DragEvent", + "kind": "property", + "type": { + "type": "reference", + "value": "DragEvent", + "source": "typescript" + }, + "flags": { + "isReadonly": true + } + }, + { + "name": "position", + "code": "Position", + "kind": "property", + "type": { + "type": "reference", + "value": "Position", + "source": "dockview-core" + }, + "flags": { + "isReadonly": true + } + }, + { + "name": "target", + "code": "DockviewGroupDropLocation", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewGroupDropLocation", + "source": "dockview-core" + }, + "flags": { + "isReadonly": true + } + }, + { + "name": "isAccepted", + "code": "boolean", + "kind": "accessor", + "value": { + "name": "isAccepted", + "code": "boolean", + "kind": "getSignature", + "returnType": { + "type": "intrinsic", + "value": "boolean" + } + } + }, + { + "name": "accept", + "code": "(): void", + "kind": "method", + "signature": [ + { + "name": "accept", + "typeParameters": [], + "parameters": [], + "returnType": { + "type": "intrinsic", + "value": "void" + }, + "code": "(): void", + "kind": "callSignature" + } + ] + } + ] + }, "DockviewWillDropEvent": { "kind": "class", "name": "DockviewWillDropEvent", @@ -12190,11 +12394,11 @@ }, { "name": "_bufferOnDidLayoutChange", - "code": "TickDelayedEvent", + "code": "AsapEvent", "kind": "property", "type": { "type": "reference", - "value": "TickDelayedEvent", + "value": "AsapEvent", "source": "dockview-core" }, "flags": { @@ -22353,514 +22557,6 @@ } ] }, - "DockviewComponentOptions": { - "kind": "interface", - "name": "DockviewComponentOptions", - "children": [ - { - "name": "components", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "createLeftHeaderActionsElement", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "typeLiteral", - "signatures": [ - { - "name": "__type", - "typeParameters": [], - "parameters": [ - { - "name": "group", - "code": "group: DockviewGroupPanel", - "type": { - "type": "reference", - "value": "DockviewGroupPanel", - "source": "dockview-core" - }, - "kind": "parameter" - } - ], - "returnType": { - "type": "reference", - "value": "IHeaderActionsRenderer", - "source": "dockview-core" - }, - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "callSignature" - } - ] - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "createPrefixHeaderActionsElement", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "typeLiteral", - "signatures": [ - { - "name": "__type", - "typeParameters": [], - "parameters": [ - { - "name": "group", - "code": "group: DockviewGroupPanel", - "type": { - "type": "reference", - "value": "DockviewGroupPanel", - "source": "dockview-core" - }, - "kind": "parameter" - } - ], - "returnType": { - "type": "reference", - "value": "IHeaderActionsRenderer", - "source": "dockview-core" - }, - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "callSignature" - } - ] - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "createRightHeaderActionsElement", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "typeLiteral", - "signatures": [ - { - "name": "__type", - "typeParameters": [], - "parameters": [ - { - "name": "group", - "code": "group: DockviewGroupPanel", - "type": { - "type": "reference", - "value": "DockviewGroupPanel", - "source": "dockview-core" - }, - "kind": "parameter" - } - ], - "returnType": { - "type": "reference", - "value": "IHeaderActionsRenderer", - "source": "dockview-core" - }, - "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", - "kind": "callSignature" - } - ] - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "debug", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "defaultRenderer", - "code": "'always' | 'onlyWhenVisible'", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "literal", - "value": "always" - }, - { - "type": "literal", - "value": "onlyWhenVisible" - } - ] - }, - "flags": { - "isOptional": true - } - }, - { - "name": "defaultTabComponent", - "code": "string", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "string" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "disableAutoResizing", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "disableDnd", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "disableFloatingGroups", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "floatingGroupBounds", - "code": "'boundedWithinViewport' | { minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number }", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "literal", - "value": "boundedWithinViewport" - }, - { - "type": "reflection", - "value": { - "name": "__type", - "code": "{ minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number }", - "kind": "typeLiteral", - "properties": [ - { - "name": "minimumHeightWithinViewport", - "code": "number", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "number" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "minimumWidthWithinViewport", - "code": "number", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "number" - }, - "flags": { - "isOptional": true - } - } - ] - } - } - ] - }, - "flags": { - "isOptional": true - } - }, - { - "name": "frameworkComponentFactory", - "code": "GroupPanelFrameworkComponentFactory", - "kind": "property", - "type": { - "type": "reference", - "value": "GroupPanelFrameworkComponentFactory", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "frameworkComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "frameworkTabComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "locked", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "orientation", - "code": "Orientation.VERTICAL | Orientation.HORIZONTAL", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "reference", - "value": "Orientation.VERTICAL", - "source": "dockview-core" - }, - { - "type": "reference", - "value": "Orientation.HORIZONTAL", - "source": "dockview-core" - } - ] - }, - "flags": { - "isOptional": true - } - }, - { - "name": "parentElement", - "code": "HTMLElement", - "kind": "property", - "type": { - "type": "reference", - "value": "HTMLElement", - "source": "typescript" - }, - "flags": {} - }, - { - "name": "popoutUrl", - "code": "string", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "string" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "rootOverlayModel", - "code": "DroptargetOverlayModel", - "kind": "property", - "type": { - "type": "reference", - "value": "DroptargetOverlayModel", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "showDndOverlay", - "code": "(event: DockviewDndOverlayEvent): boolean", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "(event: DockviewDndOverlayEvent): boolean", - "kind": "typeLiteral", - "signatures": [ - { - "name": "__type", - "typeParameters": [], - "parameters": [ - { - "name": "event", - "code": "event: DockviewDndOverlayEvent", - "type": { - "type": "reference", - "value": "DockviewDndOverlayEvent", - "source": "dockview-core" - }, - "kind": "parameter" - } - ], - "returnType": { - "type": "intrinsic", - "value": "boolean" - }, - "code": "(event: DockviewDndOverlayEvent): boolean", - "kind": "callSignature" - } - ] - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "singleTabMode", - "code": "'default' | 'fullwidth'", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "literal", - "value": "default" - }, - { - "type": "literal", - "value": "fullwidth" - } - ] - }, - "flags": { - "isOptional": true - } - }, - { - "name": "styles", - "code": "ISplitviewStyles", - "kind": "property", - "type": { - "type": "reference", - "value": "ISplitviewStyles", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "tabComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "watermarkComponent", - "code": "WatermarkConstructor", - "kind": "property", - "type": { - "type": "reference", - "value": "WatermarkConstructor", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "watermarkFrameworkComponent", - "code": "any", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "any" - }, - "flags": { - "isOptional": true - } - } - ] - }, "DockviewDndOverlayEvent": { "kind": "interface", "name": "DockviewDndOverlayEvent", @@ -22915,6 +22611,16 @@ "isOptional": true } }, + { + "name": "isAccepted", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": {} + }, { "name": "nativeEvent", "code": "DragEvent", @@ -22947,6 +22653,345 @@ "source": "dockview-core" }, "flags": {} + }, + { + "name": "accept", + "code": "(): void", + "kind": "method", + "signature": [ + { + "name": "accept", + "typeParameters": [], + "parameters": [], + "returnType": { + "type": "intrinsic", + "value": "void" + }, + "code": "(): void", + "kind": "callSignature" + } + ] + } + ] + }, + "DockviewFrameworkOptions": { + "kind": "interface", + "name": "DockviewFrameworkOptions", + "children": [ + { + "name": "createComponent", + "code": "(options: { id: string, name: string }): IContentRenderer", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(options: { id: string, name: string }): IContentRenderer", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [ + { + "name": "options", + "code": "options: { id: string, name: string }", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "{ id: string, name: string }", + "kind": "typeLiteral", + "properties": [ + { + "name": "id", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": {} + }, + { + "name": "name", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": {} + } + ] + } + }, + "kind": "parameter" + } + ], + "returnType": { + "type": "reference", + "value": "IContentRenderer", + "source": "dockview-core" + }, + "code": "(options: { id: string, name: string }): IContentRenderer", + "kind": "callSignature" + } + ] + } + }, + "flags": {} + }, + { + "name": "createLeftHeaderActionComponent", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [ + { + "name": "group", + "code": "group: DockviewGroupPanel", + "type": { + "type": "reference", + "value": "DockviewGroupPanel", + "source": "dockview-core" + }, + "kind": "parameter" + } + ], + "returnType": { + "type": "reference", + "value": "IHeaderActionsRenderer", + "source": "dockview-core" + }, + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isOptional": true + } + }, + { + "name": "createPrefixHeaderActionComponent", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [ + { + "name": "group", + "code": "group: DockviewGroupPanel", + "type": { + "type": "reference", + "value": "DockviewGroupPanel", + "source": "dockview-core" + }, + "kind": "parameter" + } + ], + "returnType": { + "type": "reference", + "value": "IHeaderActionsRenderer", + "source": "dockview-core" + }, + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isOptional": true + } + }, + { + "name": "createRightHeaderActionComponent", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [ + { + "name": "group", + "code": "group: DockviewGroupPanel", + "type": { + "type": "reference", + "value": "DockviewGroupPanel", + "source": "dockview-core" + }, + "kind": "parameter" + } + ], + "returnType": { + "type": "reference", + "value": "IHeaderActionsRenderer", + "source": "dockview-core" + }, + "code": "(group: DockviewGroupPanel): IHeaderActionsRenderer", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isOptional": true + } + }, + { + "name": "createTabComponent", + "code": "(options: { id: string, name: string }): ITabRenderer | undefined", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(options: { id: string, name: string }): ITabRenderer | undefined", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [ + { + "name": "options", + "code": "options: { id: string, name: string }", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "{ id: string, name: string }", + "kind": "typeLiteral", + "properties": [ + { + "name": "id", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": {} + }, + { + "name": "name", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": {} + } + ] + } + }, + "kind": "parameter" + } + ], + "returnType": { + "type": "or", + "values": [ + { + "type": "reference", + "value": "ITabRenderer", + "source": "dockview-core" + }, + { + "type": "intrinsic", + "value": "undefined" + } + ] + }, + "code": "(options: { id: string, name: string }): ITabRenderer | undefined", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isOptional": true + } + }, + { + "name": "createWatermarkComponent", + "code": "(): IWatermarkRenderer", + "kind": "property", + "type": { + "type": "reflection", + "value": { + "name": "__type", + "code": "(): IWatermarkRenderer", + "kind": "typeLiteral", + "signatures": [ + { + "name": "__type", + "typeParameters": [], + "parameters": [], + "returnType": { + "type": "reference", + "value": "IWatermarkRenderer", + "source": "dockview-core" + }, + "code": "(): IWatermarkRenderer", + "kind": "callSignature" + } + ] + } + }, + "flags": { + "isOptional": true + } + }, + { + "name": "defaultTabComponent", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "parentElement", + "code": "HTMLElement", + "kind": "property", + "type": { + "type": "reference", + "value": "HTMLElement", + "source": "typescript" + }, + "flags": {} } ] }, @@ -23126,6 +23171,26 @@ "isReadonly": true } }, + { + "name": "onDidActivePanelChange", + "code": "Event", + "kind": "property", + "type": { + "type": "reference", + "value": "Event", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewGroupChangeEvent", + "source": "dockview-core" + } + ] + }, + "flags": { + "isReadonly": true + } + }, { "name": "onDidConstraintsChange", "code": "Event", @@ -23657,6 +23722,202 @@ } ] }, + "DockviewOptions": { + "kind": "interface", + "name": "DockviewOptions", + "children": [ + { + "name": "debug", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "defaultRenderer", + "code": "'always' | 'onlyWhenVisible'", + "kind": "property", + "type": { + "type": "or", + "values": [ + { + "type": "literal", + "value": "always" + }, + { + "type": "literal", + "value": "onlyWhenVisible" + } + ] + }, + "flags": { + "isOptional": true + } + }, + { + "name": "disableAutoResizing", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "disableDnd", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "disableFloatingGroups", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "floatingGroupBounds", + "code": "{ minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number } | 'boundedWithinViewport'", + "kind": "property", + "type": { + "type": "or", + "values": [ + { + "type": "reflection", + "value": { + "name": "__type", + "code": "{ minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number }", + "kind": "typeLiteral", + "properties": [ + { + "name": "minimumHeightWithinViewport", + "code": "number", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "number" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "minimumWidthWithinViewport", + "code": "number", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "number" + }, + "flags": { + "isOptional": true + } + } + ] + } + }, + { + "type": "literal", + "value": "boundedWithinViewport" + } + ] + }, + "flags": { + "isOptional": true + } + }, + { + "name": "hideBorders", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "locked", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "popoutUrl", + "code": "string", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "string" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "rootOverlayModel", + "code": "DroptargetOverlayModel", + "kind": "property", + "type": { + "type": "reference", + "value": "DroptargetOverlayModel", + "source": "dockview-core" + }, + "flags": { + "isOptional": true + } + }, + { + "name": "singleTabMode", + "code": "'default' | 'fullwidth'", + "kind": "property", + "type": { + "type": "or", + "values": [ + { + "type": "literal", + "value": "default" + }, + { + "type": "literal", + "value": "fullwidth" + } + ] + }, + "flags": { + "isOptional": true + } + } + ] + }, "DockviewPanelApi": { "kind": "interface", "name": "DockviewPanelApi", @@ -24484,73 +24745,20 @@ } ] }, - "DockviewRenderFunctions": { + "DockviewReadyEvent": { "kind": "interface", - "name": "DockviewRenderFunctions", + "name": "DockviewReadyEvent", "children": [ { - "name": "components", - "code": "", + "name": "api", + "code": "DockviewApi", "kind": "property", "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } + "type": "reference", + "value": "DockviewApi", + "source": "dockview-core" }, - "flags": { - "isOptional": true - } - }, - { - "name": "frameworkComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "frameworkTabComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } - }, - { - "name": "tabComponents", - "code": "", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "", - "kind": "typeLiteral" - } - }, - "flags": { - "isOptional": true - } + "flags": {} } ] }, @@ -25823,126 +26031,6 @@ } ] }, - "GroupPanelContentPartInitParameters": { - "kind": "interface", - "name": "GroupPanelContentPartInitParameters", - "children": [ - { - "name": "api", - "code": "DockviewPanelApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewPanelApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "containerApi", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "params", - "code": "Parameters", - "kind": "property", - "type": { - "type": "reference", - "value": "Parameters", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "tab", - "code": "ITabRenderer", - "kind": "property", - "type": { - "type": "reference", - "value": "ITabRenderer", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "title", - "code": "string", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "string" - }, - "flags": {} - } - ] - }, - "GroupPanelFrameworkComponentFactory": { - "kind": "interface", - "name": "GroupPanelFrameworkComponentFactory", - "children": [ - { - "name": "content", - "code": "FrameworkFactory", - "kind": "property", - "type": { - "type": "reference", - "value": "FrameworkFactory", - "source": "dockview-core", - "typeArguments": [ - { - "type": "reference", - "value": "IContentRenderer", - "source": "dockview-core" - } - ] - }, - "flags": {} - }, - { - "name": "tab", - "code": "FrameworkFactory", - "kind": "property", - "type": { - "type": "reference", - "value": "FrameworkFactory", - "source": "dockview-core", - "typeArguments": [ - { - "type": "reference", - "value": "ITabRenderer", - "source": "dockview-core" - } - ] - }, - "flags": {} - }, - { - "name": "watermark", - "code": "FrameworkFactory", - "kind": "property", - "type": { - "type": "reference", - "value": "FrameworkFactory", - "source": "dockview-core", - "typeArguments": [ - { - "type": "reference", - "value": "IWatermarkRenderer", - "source": "dockview-core" - } - ] - }, - "flags": {} - } - ] - }, "GroupPanelPartInitParameters": { "kind": "interface", "name": "GroupPanelPartInitParameters", @@ -27065,46 +27153,6 @@ "isReadonly": true } }, - { - "name": "onDidBlur", - "code": "Event", - "kind": "property", - "type": { - "type": "reference", - "value": "Event", - "source": "dockview-core", - "typeArguments": [ - { - "type": "intrinsic", - "value": "void" - } - ] - }, - "flags": { - "isOptional": true, - "isReadonly": true - } - }, - { - "name": "onDidFocus", - "code": "Event", - "kind": "property", - "type": { - "type": "reference", - "value": "Event", - "source": "dockview-core", - "typeArguments": [ - { - "type": "intrinsic", - "value": "void" - } - ] - }, - "flags": { - "isOptional": true, - "isReadonly": true - } - }, { "name": "dispose", "code": "(): void", @@ -27143,7 +27191,7 @@ }, { "name": "init", - "code": "(parameters: GroupPanelContentPartInitParameters): void", + "code": "(parameters: GroupPanelPartInitParameters): void", "kind": "method", "signature": [ { @@ -27152,10 +27200,10 @@ "parameters": [ { "name": "parameters", - "code": "parameters: GroupPanelContentPartInitParameters", + "code": "parameters: GroupPanelPartInitParameters", "type": { "type": "reference", - "value": "GroupPanelContentPartInitParameters", + "value": "GroupPanelPartInitParameters", "source": "dockview-core" }, "kind": "parameter" @@ -27165,7 +27213,7 @@ "type": "intrinsic", "value": "void" }, - "code": "(parameters: GroupPanelContentPartInitParameters): void", + "code": "(parameters: GroupPanelPartInitParameters): void", "kind": "callSignature" } ] @@ -27721,6 +27769,26 @@ "isReadonly": true } }, + { + "name": "onUnhandledDragOverEvent", + "code": "Event", + "kind": "property", + "type": { + "type": "reference", + "value": "Event", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "DockviewDndOverlayEvent", + "source": "dockview-core" + } + ] + }, + "flags": { + "isReadonly": true + } + }, { "name": "onWillDragGroup", "code": "Event", @@ -28873,7 +28941,7 @@ }, { "name": "updateOptions", - "code": "(options: DockviewComponentUpdateOptions): void", + "code": "(options: DockviewOptions): void", "kind": "method", "signature": [ { @@ -28882,10 +28950,10 @@ "parameters": [ { "name": "options", - "code": "options: DockviewComponentUpdateOptions", + "code": "options: DockviewOptions", "type": { "type": "reference", - "value": "DockviewComponentUpdateOptions", + "value": "DockviewOptions", "source": "dockview-core" }, "kind": "parameter" @@ -28895,7 +28963,7 @@ "type": "intrinsic", "value": "void" }, - "code": "(options: DockviewComponentUpdateOptions): void", + "code": "(options: DockviewOptions): void", "kind": "callSignature" } ] @@ -30127,6 +30195,89 @@ } ] }, + "IDockviewHeaderActionsProps": { + "kind": "interface", + "name": "IDockviewHeaderActionsProps", + "children": [ + { + "name": "activePanel", + "code": "IDockviewPanel | undefined", + "kind": "property", + "type": { + "type": "or", + "values": [ + { + "type": "reference", + "value": "IDockviewPanel", + "source": "dockview-core" + }, + { + "type": "intrinsic", + "value": "undefined" + } + ] + }, + "flags": {} + }, + { + "name": "api", + "code": "DockviewGroupPanelApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewGroupPanelApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "containerApi", + "code": "DockviewApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "group", + "code": "DockviewGroupPanel", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewGroupPanel", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "isGroupActive", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": {} + }, + { + "name": "panels", + "code": "IDockviewPanel[]", + "kind": "property", + "type": { + "type": "array", + "value": { + "type": "reference", + "value": "IDockviewPanel", + "source": "dockview-core" + } + }, + "flags": {} + } + ] + }, "IDockviewPanel": { "kind": "interface", "name": "IDockviewPanel", @@ -32799,6 +32950,85 @@ } ] }, + "IGroupHeaderProps": { + "kind": "interface", + "name": "IGroupHeaderProps", + "children": [ + { + "name": "api", + "code": "DockviewGroupPanelApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewGroupPanelApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "containerApi", + "code": "DockviewApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "group", + "code": "IDockviewGroupPanel", + "kind": "property", + "type": { + "type": "reference", + "value": "IDockviewGroupPanel", + "source": "dockview-core" + }, + "flags": {} + } + ] + }, + "IGroupPanelBaseProps": { + "kind": "interface", + "name": "IGroupPanelBaseProps", + "children": [ + { + "name": "api", + "code": "DockviewPanelApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewPanelApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "containerApi", + "code": "DockviewApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "params", + "code": "IGroupPanelBaseProps.T", + "kind": "property", + "type": { + "type": "reference", + "value": "T", + "source": "dockview-core", + "refersToTypeParameter": true + }, + "flags": {} + } + ] + }, "IGroupPanelInitParameters": { "kind": "interface", "name": "IGroupPanelInitParameters", @@ -32879,7 +33109,7 @@ }, { "name": "init", - "code": "(params: { api: DockviewGroupPanelApi, containerApi: DockviewApi }): void", + "code": "(params: IGroupHeaderProps): void", "kind": "method", "signature": [ { @@ -32888,38 +33118,11 @@ "parameters": [ { "name": "params", - "code": "params: { api: DockviewGroupPanelApi, containerApi: DockviewApi }", + "code": "params: IGroupHeaderProps", "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "{ api: DockviewGroupPanelApi, containerApi: DockviewApi }", - "kind": "typeLiteral", - "properties": [ - { - "name": "api", - "code": "DockviewGroupPanelApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewGroupPanelApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "containerApi", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - } - ] - } + "type": "reference", + "value": "IGroupHeaderProps", + "source": "dockview-core" }, "kind": "parameter" } @@ -32928,7 +33131,7 @@ "type": "intrinsic", "value": "void" }, - "code": "(params: { api: DockviewGroupPanelApi, containerApi: DockviewApi }): void", + "code": "(params: IGroupHeaderProps): void", "kind": "callSignature" } ] @@ -35877,6 +36080,36 @@ } ] }, + "IWatermarkPanelProps": { + "kind": "interface", + "name": "IWatermarkPanelProps", + "children": [ + { + "name": "containerApi", + "code": "DockviewApi", + "kind": "property", + "type": { + "type": "reference", + "value": "DockviewApi", + "source": "dockview-core" + }, + "flags": {} + }, + { + "name": "group", + "code": "IDockviewGroupPanel", + "kind": "property", + "type": { + "type": "reference", + "value": "IDockviewGroupPanel", + "source": "dockview-core" + }, + "flags": { + "isOptional": true + } + } + ] + }, "IWatermarkRenderer": { "kind": "interface", "name": "IWatermarkRenderer", @@ -39748,7 +39981,7 @@ }, "AddPanelOptions": { "name": "AddPanelOptions", - "code": "Partial & { component: string, id: string, params?: P, renderer?: DockviewPanelRenderer, tabComponent?: string, title?: string }", + "code": "Partial & { component: string, id: string, inactive?: boolean, params?: P, renderer?: DockviewPanelRenderer, tabComponent?: string, title?: string }", "typeParameters": [], "type": { "type": "intersection", @@ -39769,7 +40002,7 @@ "type": "reflection", "value": { "name": "__type", - "code": "{ component: string, id: string, params?: P, renderer?: DockviewPanelRenderer, tabComponent?: string, title?: string }", + "code": "{ component: string, id: string, inactive?: boolean, params?: P, renderer?: DockviewPanelRenderer, tabComponent?: string, title?: string }", "kind": "typeLiteral", "properties": [ { @@ -39780,7 +40013,15 @@ "type": "intrinsic", "value": "string" }, - "flags": {} + "flags": {}, + "comment": { + "summary": [ + { + "kind": "text", + "text": "The id of the component renderer" + } + ] + } }, { "name": "id", @@ -39790,7 +40031,43 @@ "type": "intrinsic", "value": "string" }, - "flags": {} + "flags": {}, + "comment": { + "summary": [ + { + "kind": "text", + "text": "The unique id for the panel" + } + ] + } + }, + { + "name": "inactive", + "code": "boolean", + "kind": "property", + "type": { + "type": "intrinsic", + "value": "boolean" + }, + "flags": { + "isOptional": true + }, + "comment": { + "summary": [ + { + "kind": "text", + "text": "If true then add the panel without setting it as the active panel.\r\n\r\nDefaults to " + }, + { + "kind": "code", + "text": "`false`" + }, + { + "kind": "text", + "text": " which forces newly added panels to become active." + } + ] + } }, { "name": "params", @@ -39817,6 +40094,14 @@ }, "flags": { "isOptional": true + }, + "comment": { + "summary": [ + { + "kind": "text", + "text": "The rendering mode of the panel.\r\n\r\nThis dictates what happens to the HTML of the panel when it is hidden." + } + ] } }, { @@ -39829,6 +40114,14 @@ }, "flags": { "isOptional": true + }, + "comment": { + "summary": [ + { + "kind": "text", + "text": "The id of the tab componnet renderer" + } + ] } }, { @@ -39841,6 +40134,14 @@ }, "flags": { "isOptional": true + }, + "comment": { + "summary": [ + { + "kind": "text", + "text": "The title for the panel which can be accessed within both the tab and component.\r\n\r\nIf using the default tab renderer this title will be displayed in the tab." + } + ] } } ] @@ -39954,84 +40255,22 @@ }, "kind": "typeAlias" }, - "DockviewComponentUpdateOptions": { - "name": "DockviewComponentUpdateOptions", - "code": "Pick", + "DockviewComponentOptions": { + "name": "DockviewComponentOptions", + "code": "DockviewFrameworkOptions & DockviewOptions", "typeParameters": [], "type": { - "type": "reference", - "value": "Pick", - "source": "typescript", - "typeArguments": [ + "type": "intersection", + "values": [ { "type": "reference", - "value": "DockviewComponentOptions", + "value": "DockviewFrameworkOptions", "source": "dockview-core" }, { - "type": "or", - "values": [ - { - "type": "literal", - "value": "disableDnd" - }, - { - "type": "literal", - "value": "rootOverlayModel" - }, - { - "type": "literal", - "value": "floatingGroupBounds" - }, - { - "type": "literal", - "value": "disableFloatingGroups" - }, - { - "type": "literal", - "value": "createPrefixHeaderActionsElement" - }, - { - "type": "literal", - "value": "createRightHeaderActionsElement" - }, - { - "type": "literal", - "value": "createLeftHeaderActionsElement" - }, - { - "type": "literal", - "value": "defaultTabComponent" - }, - { - "type": "literal", - "value": "watermarkFrameworkComponent" - }, - { - "type": "literal", - "value": "showDndOverlay" - }, - { - "type": "literal", - "value": "frameworkTabComponents" - }, - { - "type": "literal", - "value": "tabComponents" - }, - { - "type": "literal", - "value": "frameworkComponents" - }, - { - "type": "literal", - "value": "components" - }, - { - "type": "literal", - "value": "orientation" - } - ] + "type": "reference", + "value": "DockviewOptions", + "source": "dockview-core" } ] }, @@ -40326,6 +40565,44 @@ }, "kind": "typeAlias" }, + "IDockviewPanelHeaderProps": { + "name": "IDockviewPanelHeaderProps", + "code": "IGroupPanelBaseProps", + "typeParameters": [], + "type": { + "type": "reference", + "value": "IGroupPanelBaseProps", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "T", + "source": "dockview-core", + "refersToTypeParameter": true + } + ] + }, + "kind": "typeAlias" + }, + "IDockviewPanelProps": { + "name": "IDockviewPanelProps", + "code": "IGroupPanelBaseProps", + "typeParameters": [], + "type": { + "type": "reference", + "value": "IGroupPanelBaseProps", + "source": "dockview-core", + "typeArguments": [ + { + "type": "reference", + "value": "T", + "source": "dockview-core", + "refersToTypeParameter": true + } + ] + }, + "kind": "typeAlias" + }, "ISerializedNode": { "name": "ISerializedNode", "code": "ISerializedBranchNode | ISerializedLeafNode", @@ -40530,6 +40807,11 @@ }, "kind": "typeAlias" }, + "PROPERTY_KEYS": { + "name": "PROPERTY_KEYS", + "code": "", + "kind": "variable" + }, "createComponent": { "name": "createComponent", "code": "(id: string, componentName?: string, components: , frameworkComponents: , createFrameworkComponent?: FrameworkFactory, fallback?: (): T): T", @@ -41238,23 +41520,6 @@ } ] }, - "DockviewReadyEvent": { - "kind": "interface", - "name": "DockviewReadyEvent", - "children": [ - { - "name": "api", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - } - ] - }, "GridviewReadyEvent": { "kind": "interface", "name": "GridviewReadyEvent", @@ -41272,89 +41537,6 @@ } ] }, - "IDockviewHeaderActionsProps": { - "kind": "interface", - "name": "IDockviewHeaderActionsProps", - "children": [ - { - "name": "activePanel", - "code": "IDockviewPanel | undefined", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "reference", - "value": "IDockviewPanel", - "source": "dockview-core" - }, - { - "type": "intrinsic", - "value": "undefined" - } - ] - }, - "flags": {} - }, - { - "name": "api", - "code": "DockviewGroupPanelApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewGroupPanelApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "containerApi", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "group", - "code": "DockviewGroupPanel", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewGroupPanel", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "isGroupActive", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": {} - }, - { - "name": "panels", - "code": "IDockviewPanel[]", - "kind": "property", - "type": { - "type": "array", - "value": { - "type": "reference", - "value": "IDockviewPanel", - "source": "dockview-core" - } - }, - "flags": {} - } - ] - }, "IDockviewReactProps": { "kind": "interface", "name": "IDockviewReactProps", @@ -41373,21 +41555,26 @@ }, { "name": "components", - "code": "PanelCollection>", + "code": "Record>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "IDockviewPanelProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "IDockviewPanelProps", + "source": "dockview-core" } ] } @@ -41395,42 +41582,9 @@ }, "flags": {} }, - { - "name": "debug", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "defaultRenderer", - "code": "'always' | 'onlyWhenVisible'", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "literal", - "value": "always" - }, - { - "type": "literal", - "value": "onlyWhenVisible" - } - ] - }, - "flags": { - "isOptional": true - } - }, { "name": "defaultTabComponent", - "code": "React.FunctionComponent>", + "code": "React.FunctionComponent", "kind": "property", "type": { "type": "reference", @@ -41440,13 +41594,7 @@ { "type": "reference", "value": "IDockviewPanelHeaderProps", - "source": "dockview", - "typeArguments": [ - { - "type": "intrinsic", - "value": "any" - } - ] + "source": "dockview-core" } ] }, @@ -41454,105 +41602,6 @@ "isOptional": true } }, - { - "name": "disableAutoResizing", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "disableDnd", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "disableFloatingGroups", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "floatingGroupBounds", - "code": "'boundedWithinViewport' | { minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number }", - "kind": "property", - "type": { - "type": "or", - "values": [ - { - "type": "literal", - "value": "boundedWithinViewport" - }, - { - "type": "reflection", - "value": { - "name": "__type", - "code": "{ minimumHeightWithinViewport?: number, minimumWidthWithinViewport?: number }", - "kind": "typeLiteral", - "properties": [ - { - "name": "minimumHeightWithinViewport", - "code": "number", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "number" - }, - "flags": { - "isOptional": true - } - }, - { - "name": "minimumWidthWithinViewport", - "code": "number", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "number" - }, - "flags": { - "isOptional": true - } - } - ] - } - } - ] - }, - "flags": { - "isOptional": true - } - }, - { - "name": "hideBorders", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, { "name": "leftHeaderActionsComponent", "code": "React.FunctionComponent", @@ -41565,7 +41614,7 @@ { "type": "reference", "value": "IDockviewHeaderActionsProps", - "source": "dockview" + "source": "dockview-core" } ] }, @@ -41573,18 +41622,6 @@ "isOptional": true } }, - { - "name": "locked", - "code": "boolean", - "kind": "property", - "type": { - "type": "intrinsic", - "value": "boolean" - }, - "flags": { - "isOptional": true - } - }, { "name": "onDidDrop", "code": "(event: DockviewDidDropEvent): void", @@ -41646,7 +41683,7 @@ "type": { "type": "reference", "value": "DockviewReadyEvent", - "source": "dockview" + "source": "dockview-core" }, "kind": "parameter" } @@ -41715,7 +41752,7 @@ { "type": "reference", "value": "IDockviewHeaderActionsProps", - "source": "dockview" + "source": "dockview-core" } ] }, @@ -41735,7 +41772,7 @@ { "type": "reference", "value": "IDockviewHeaderActionsProps", - "source": "dockview" + "source": "dockview-core" } ] }, @@ -41743,19 +41780,6 @@ "isOptional": true } }, - { - "name": "rootOverlayModel", - "code": "DroptargetOverlayModel", - "kind": "property", - "type": { - "type": "reference", - "value": "DroptargetOverlayModel", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - }, { "name": "showDndOverlay", "code": "(event: DockviewDndOverlayEvent): boolean", @@ -41769,6 +41793,28 @@ "signatures": [ { "name": "__type", + "comment": { + "summary": [], + "blockTags": [ + { + "tag": "@deprecated", + "content": [ + { + "kind": "text", + "text": "use " + }, + { + "kind": "code", + "text": "`api.onUnhandledDragOverEvent`" + }, + { + "kind": "text", + "text": " instead. This will be removed in the next release." + } + ] + } + ] + }, "typeParameters": [], "parameters": [ { @@ -41794,46 +41840,52 @@ }, "flags": { "isOptional": true - } - }, - { - "name": "singleTabMode", - "code": "'default' | 'fullwidth'", - "kind": "property", - "type": { - "type": "or", - "values": [ + }, + "comment": { + "summary": [], + "blockTags": [ { - "type": "literal", - "value": "default" - }, - { - "type": "literal", - "value": "fullwidth" + "tag": "@deprecated", + "content": [ + { + "kind": "text", + "text": "use " + }, + { + "kind": "code", + "text": "`api.onUnhandledDragOverEvent`" + }, + { + "kind": "text", + "text": " instead. This will be removed in the next release." + } + ] } ] - }, - "flags": { - "isOptional": true } }, { "name": "tabComponents", - "code": "PanelCollection>", + "code": "Record>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "IDockviewPanelHeaderProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "IDockviewPanelHeaderProps", + "source": "dockview-core" } ] } @@ -41855,7 +41907,7 @@ { "type": "reference", "value": "IWatermarkPanelProps", - "source": "dockview" + "source": "dockview-core" } ] }, @@ -41923,21 +41975,32 @@ }, { "name": "components", - "code": "PanelCollection>", + "code": "Record>>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "IGridviewPanelProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "IGridviewPanelProps", + "source": "dockview", + "typeArguments": [ + { + "type": "intrinsic", + "value": "any" + } + ] } ] } @@ -42044,46 +42107,6 @@ } ] }, - "IGroupPanelBaseProps": { - "kind": "interface", - "name": "IGroupPanelBaseProps", - "children": [ - { - "name": "api", - "code": "DockviewPanelApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewPanelApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "containerApi", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "params", - "code": "IGroupPanelBaseProps.T", - "kind": "property", - "type": { - "type": "reference", - "value": "T", - "source": "dockview", - "refersToTypeParameter": true - }, - "flags": {} - } - ] - }, "IPaneviewPanelProps": { "kind": "interface", "name": "IPaneviewPanelProps", @@ -42152,21 +42175,32 @@ }, { "name": "components", - "code": "PanelCollection>", + "code": "Record>>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "IPaneviewPanelProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "IPaneviewPanelProps", + "source": "dockview", + "typeArguments": [ + { + "type": "intrinsic", + "value": "any" + } + ] } ] } @@ -42200,21 +42234,32 @@ }, { "name": "headerComponents", - "code": "PanelCollection>", + "code": "Record>>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "IPaneviewPanelProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "IPaneviewPanelProps", + "source": "dockview", + "typeArguments": [ + { + "type": "intrinsic", + "value": "any" + } + ] } ] } @@ -42391,21 +42436,32 @@ }, { "name": "components", - "code": "PanelCollection>", + "code": "Record>>", "kind": "property", "type": { "type": "reference", - "value": "PanelCollection", - "source": "dockview", + "value": "Record", + "source": "typescript", "typeArguments": [ + { + "type": "intrinsic", + "value": "string" + }, { "type": "reference", - "value": "ISplitviewPanelProps", - "source": "dockview", + "value": "React.FunctionComponent", + "source": "@types/react", "typeArguments": [ { - "type": "intrinsic", - "value": "any" + "type": "reference", + "value": "ISplitviewPanelProps", + "source": "dockview", + "typeArguments": [ + { + "type": "intrinsic", + "value": "any" + } + ] } ] } @@ -42512,68 +42568,6 @@ } ] }, - "IWatermarkPanelProps": { - "kind": "interface", - "name": "IWatermarkPanelProps", - "children": [ - { - "name": "close", - "code": "(): void", - "kind": "property", - "type": { - "type": "reflection", - "value": { - "name": "__type", - "code": "(): void", - "kind": "typeLiteral", - "signatures": [ - { - "name": "__type", - "typeParameters": [], - "parameters": [], - "returnType": { - "type": "intrinsic", - "value": "void" - }, - "code": "(): void", - "kind": "callSignature" - } - ] - } - }, - "flags": {} - }, - { - "name": "containerApi", - "code": "DockviewApi", - "kind": "property", - "type": { - "type": "reference", - "value": "DockviewApi", - "source": "dockview-core" - }, - "flags": {} - }, - { - "name": "group", - "code": "IDockviewGroupPanel", - "kind": "property", - "type": { - "type": "reference", - "value": "IDockviewGroupPanel", - "source": "dockview-core" - }, - "flags": { - "isOptional": true - } - } - ] - }, - "PanelCollection": { - "name": "PanelCollection", - "code": "", - "kind": "interface" - }, "PanelParameters": { "kind": "interface", "name": "PanelParameters", @@ -42744,45 +42738,7 @@ { "type": "reference", "value": "IDockviewPanelHeaderProps", - "source": "dockview" - } - ] - }, - "kind": "typeAlias" - }, - "IDockviewPanelHeaderProps": { - "name": "IDockviewPanelHeaderProps", - "code": "IGroupPanelBaseProps", - "typeParameters": [], - "type": { - "type": "reference", - "value": "IGroupPanelBaseProps", - "source": "dockview", - "typeArguments": [ - { - "type": "reference", - "value": "T", - "source": "dockview", - "refersToTypeParameter": true - } - ] - }, - "kind": "typeAlias" - }, - "IDockviewPanelProps": { - "name": "IDockviewPanelProps", - "code": "IGroupPanelBaseProps", - "typeParameters": [], - "type": { - "type": "reference", - "value": "IGroupPanelBaseProps", - "source": "dockview", - "typeArguments": [ - { - "type": "reference", - "value": "T", - "source": "dockview", - "refersToTypeParameter": true + "source": "dockview-core" } ] }, diff --git a/packages/docs/templates/dockview/basic/typescript/src/index.ts b/packages/docs/templates/dockview/basic/typescript/src/index.ts index fdd92a2bc..11820784b 100644 --- a/packages/docs/templates/dockview/basic/typescript/src/index.ts +++ b/packages/docs/templates/dockview/basic/typescript/src/index.ts @@ -15,7 +15,6 @@ class Panel implements IContentRenderer { constructor() { this._element = document.createElement('div'); - this._element.style.color = 'white'; } @@ -28,7 +27,12 @@ document.getElementById('app').className = 'dockview-theme-abyss'; const dockview = new DockviewComponent({ parentElement: document.getElementById('app'), - components: { default: Panel }, + createComponent: (options) => { + switch (options.name) { + case 'default': + return new Panel(); + } + }, }); const api = new DockviewApi(dockview); diff --git a/packages/docs/templates/dockview/update-parameters/vue/src/index.ts b/packages/docs/templates/dockview/update-parameters/vue/src/index.ts index df0d139cd..ba18612c1 100644 --- a/packages/docs/templates/dockview/update-parameters/vue/src/index.ts +++ b/packages/docs/templates/dockview/update-parameters/vue/src/index.ts @@ -27,7 +27,7 @@ const Panel = defineComponent({ }, }, mounted() { - const disposable = this.api.onDidTitleChange(() => { + const disposable = this.params.api.onDidTitleChange(() => { this.title = this.api.title; }); this.title = this.api.title; @@ -64,14 +64,16 @@ const Tab = defineComponent({ name: 'Tab', props: { params: { - type: Object as PropType, + type: Object as PropType< + IDockviewPanelHeaderProps<{ myValue: number }> + >, required: true, }, }, data() { return { title: '', - value: null, + value: this.params.params.myValue, }; }, mounted() { @@ -80,11 +82,12 @@ const Tab = defineComponent({ }); const disposable2 = this.params.api.onDidParametersChange(() => { - this.value = this.params.myValue; + console.log(this.params); + this.value = this.params.params.myValue; }); this.title = this.api.title; - this.value = this.params.myValue; + this.value = this.params.params.myValue; return () => { disposable.dispose(); diff --git a/scripts/set-experimental-versions.js b/scripts/set-experimental-versions.js index 537812f5f..1c14cb38d 100644 --- a/scripts/set-experimental-versions.js +++ b/scripts/set-experimental-versions.js @@ -50,22 +50,35 @@ fs.writeFileSync( // dockview -const dockviewPath = path.join(rootDir, 'packages', 'dockview', 'package.json'); -const dockviewPackageJson = JSON.parse( - fs.readFileSync(dockviewPath).toString() -); +const depPackages = ['dockview', 'dockview-vue']; -dockviewPackageJson.version = version; -dockviewPackageJson.dependencies['dockview-core'] = dockviewPackageJson.version; +for (const depPackage of depPackages) { + const dockviewPath = path.join( + rootDir, + 'packages', + depPackage, + 'package.json' + ); + const dockviewPackageJson = JSON.parse( + fs.readFileSync(dockviewPath).toString() + ); -fs.writeFileSync(dockviewPath, JSON.stringify(dockviewPackageJson, null, 4)); + dockviewPackageJson.version = version; + dockviewPackageJson.dependencies['dockview-core'] = + dockviewPackageJson.version; -// sanity check + fs.writeFileSync( + dockviewPath, + JSON.stringify(dockviewPackageJson, null, 4) + ); -const dvCore = JSON.parse(fs.readFileSync(dockviewCorePath).toString()); -const dv = JSON.parse(fs.readFileSync(dockviewPath).toString()); + // sanity check -console.log(`dockview-core version: ${dvCore.version}`); -console.log( - `dockview version: ${dv.version} dockview-core dependency version: ${dv.dependencies['dockview-core']}` -); + const dvCore = JSON.parse(fs.readFileSync(dockviewCorePath).toString()); + const dv = JSON.parse(fs.readFileSync(dockviewPath).toString()); + + console.log(`dockview-core version: ${dvCore.version}`); + console.log( + `${depPackage} version: ${dv.version} dockview-core dependency version: ${dv.dependencies['dockview-core']}` + ); +} diff --git a/sonar-project.properties b/sonar-project.properties index a6f0eea51..6f63e9e23 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,9 +1,9 @@ sonar.projectKey=mathuo_dockview sonar.organization=dockview -sonar.inclusions=packages/dockview/src/**/*,packages/dockview-core/src/**/* -sonar.exclusions=packages/dockview/src/__tests__/**,packages/dockview-core/src/__tests__/** -sonar.tests=packages/dockview/src/__tests__,packages/dockview-core/src/__tests__ +sonar.inclusions=packages/dockview/src/**/*,packages/dockview-core/src/**/*,packages/dockview-vue/src/**/* +sonar.exclusions=packages/dockview/src/__tests__/**,packages/dockview-core/src/__tests__/**,packages/dockview-vue/src/__tests__/** +sonar.tests=packages/dockview/src/__tests__,packages/dockview-core/src/__tests__,packages/dockview-vue/src/__tests__ sonar.testExecutionReportPaths=test-report.xml sonar.javascript.lcov.reportPaths=coverage/lcov.info diff --git a/tsconfig.json b/tsconfig.json index a9ac894b9..d22e10685 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,9 @@ }, { "path": "./packages/dockview-core" + }, + { + "path": "./packages/dockview-vue" } ] }