(e: DragEvent, isLongDragOver?: boolean)
| 507 | |
| 508 | @longDragOverHandler("[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab]") |
| 509 | _onHeaderDragOver(e: DragEvent, isLongDragOver?: boolean) { |
| 510 | if (!(e.target instanceof HTMLElement) || !e.target.closest("[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end],[role=tab],[role=separator]")) { |
| 511 | this.dropIndicatorDOM!.targetReference = null; |
| 512 | return; |
| 513 | } |
| 514 | |
| 515 | const draggedElement = DragRegistry.getDraggedElement(); |
| 516 | const closestPosition = findClosestPosition( |
| 517 | [...this._getTabStrip().querySelectorAll<HTMLElement>(`[role="tab"]:not([hidden])`)], |
| 518 | e.clientX, |
| 519 | Orientation.Horizontal, |
| 520 | ); |
| 521 | const overflowButton = e.target.closest<HTMLElement>("[data-ui5-stable=overflow-start],[data-ui5-stable=overflow-end]"); |
| 522 | let popoverTarget = null; |
| 523 | |
| 524 | if (overflowButton) { |
| 525 | popoverTarget = overflowButton; |
| 526 | e.preventDefault(); |
| 527 | } else if (closestPosition) { |
| 528 | const dropTarget = (closestPosition.element as TabInStrip).realTabReference; |
| 529 | |
| 530 | if (dropTarget === draggedElement) { |
| 531 | closestPosition.placements = closestPosition.placements.filter(placement => placement !== MovePlacement.On); |
| 532 | } |
| 533 | |
| 534 | const { targetReference, placement } = handleDragOver(e, this, closestPosition, dropTarget); |
| 535 | this.dropIndicatorDOM!.targetReference = targetReference; |
| 536 | this.dropIndicatorDOM!.placement = placement; |
| 537 | if (placement === MovePlacement.On && (closestPosition.element as TabInStrip).realTabReference.items.length) { |
| 538 | popoverTarget = closestPosition.element; |
| 539 | } else if (!placement) { |
| 540 | this.dropIndicatorDOM!.targetReference = null; |
| 541 | } |
| 542 | } |
| 543 | |
| 544 | if (popoverTarget && isLongDragOver) { |
| 545 | this._showPopoverAt(popoverTarget, false, true); |
| 546 | } else { |
| 547 | this._closePopover(); |
| 548 | } |
| 549 | } |
| 550 | |
| 551 | _onHeaderDrop(e: DragEvent) { |
| 552 | if (e.target === this._getStartOverflowBtnDOM() || e.target === this._getEndOverflowBtnDOM()) { |
nothing calls this directly
no test coverage detected