MCPcopy Create free account
hub / github.com/UI5/webcomponents / _onHeaderDragOver

Method _onHeaderDragOver

packages/main/src/TabContainer.ts:509–549  ·  view source on GitHub ↗
(e: DragEvent, isLongDragOver?: boolean)

Source from the content-addressed store, hash-verified

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()) {

Callers

nothing calls this directly

Calls 5

_getTabStripMethod · 0.95
_showPopoverAtMethod · 0.95
_closePopoverMethod · 0.95
findClosestPositionFunction · 0.85
handleDragOverFunction · 0.85

Tested by

no test coverage detected