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

Method onPointerStart

packages/dockview-core/src/splitview/splitview.ts:437–567  ·  view source on GitHub ↗
(event: PointerEvent)

Source from the content-addressed store, hash-verified

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 =
445 this._orientation === Orientation.HORIZONTAL
446 ? event.clientX
447 : event.clientY;
448
449 const sashIndex = firstIndex(
450 this.sashes,
451 (s) => s.container === sash
452 );
453
454 //
455 const sizes = this.viewItems.map((x) => x.size);
456
457 //
458 let snapBefore: ISashDragSnapState | undefined;
459 let snapAfter: ISashDragSnapState | undefined;
460 const upIndexes = range(sashIndex, -1);
461 const downIndexes = range(sashIndex + 1, this.viewItems.length);
462 const minDeltaUp = upIndexes.reduce(
463 (r, i) => r + (this.viewItems[i].minimumSize - sizes[i]),
464 0
465 );
466 const maxDeltaUp = upIndexes.reduce(
467 (r, i) =>
468 r + (this.viewItems[i].viewMaximumSize - sizes[i]),
469 0
470 );
471 const maxDeltaDown =
472 downIndexes.length === 0
473 ? Number.POSITIVE_INFINITY
474 : downIndexes.reduce(
475 (r, i) =>
476 r +
477 (sizes[i] - this.viewItems[i].minimumSize),
478 0
479 );
480 const minDeltaDown =
481 downIndexes.length === 0
482 ? Number.NEGATIVE_INFINITY
483 : downIndexes.reduce(
484 (r, i) =>
485 r +
486 (sizes[i] -
487 this.viewItems[i].viewMaximumSize),
488 0
489 );
490 const minDelta = Math.max(minDeltaUp, minDeltaDown);
491 const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
492 const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
493 const snapAfterIndex = this.findFirstSnapIndex(downIndexes);
494 if (typeof snapBeforeIndex === 'number') {

Callers

nothing calls this directly

Calls 4

findFirstSnapIndexMethod · 0.95
disableIframePointEventsFunction · 0.90
firstIndexFunction · 0.90
rangeFunction · 0.90

Tested by

no test coverage detected