(event: PointerEvent)
| 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') { |
nothing calls this directly
no test coverage detected