MCPcopy
hub / github.com/mathuo/dockview / addView

Method addView

packages/dockview-core/src/splitview/splitview.ts:387–596  ·  view source on GitHub ↗
(
        view: IView,
        size: number | Sizing = { type: 'distribute' },
        index: number = this.viewItems.length,
        skipLayout?: boolean
    )

Source from the content-addressed store, hash-verified

385 }
386
387 public addView(
388 view: IView,
389 size: number | Sizing = { type: 'distribute' },
390 index: number = this.viewItems.length,
391 skipLayout?: boolean
392 ): void {
393 const container = document.createElement('div');
394 container.className = 'dv-view';
395
396 container.appendChild(view.element);
397
398 let viewSize: ViewItemSize;
399
400 if (typeof size === 'number') {
401 viewSize = size;
402 } else if (size.type === 'split') {
403 viewSize = this.getViewSize(size.index) / 2;
404 } else if (size.type === 'invisible') {
405 viewSize = { cachedVisibleSize: size.cachedVisibleSize };
406 } else {
407 viewSize = view.minimumSize;
408 }
409
410 const disposable = view.onDidChange((newSize) =>
411 this.onDidChange(viewItem, newSize.size)
412 );
413
414 const viewItem = new ViewItem(container, view, viewSize, {
415 dispose: () => {
416 disposable.dispose();
417 this.viewContainer.removeChild(container);
418 },
419 });
420
421 if (index === this.viewItems.length) {
422 this.viewContainer.appendChild(container);
423 } else {
424 this.viewContainer.insertBefore(
425 container,
426 this.viewContainer.children.item(index)
427 );
428 }
429
430 this.viewItems.splice(index, 0, viewItem);
431
432 if (this.viewItems.length > 1) {
433 //add sash
434 const sash = document.createElement('div');
435 sash.className = 'dv-sash';
436
437 const onPointerStart = (event: PointerEvent) => {
438 for (const item of this.viewItems) {
439 item.enabled = false;
440 }
441
442 const iframes = disableIframePointEvents();
443
444 const start =

Callers 3

constructorMethod · 0.95
moveViewMethod · 0.95
addPanelMethod · 0.45

Calls 8

getViewSizeMethod · 0.95
onDidChangeMethod · 0.95
relayoutMethod · 0.95
distributeViewSizesMethod · 0.95
removeChildMethod · 0.80
pushMethod · 0.80
disposeMethod · 0.65
fireMethod · 0.65

Tested by

no test coverage detected