PHP 8.2.30
Preview: detectOverflow.js.flow Size: 3.19 KB
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/@popperjs/core/lib/utils/detectOverflow.js.flow

// @flow
import type { State, SideObject, Padding, PositioningStrategy } from '../types';
import type { Placement, Boundary, RootBoundary, Context } from '../enums';
import getClippingRect from '../dom-utils/getClippingRect';
import getDocumentElement from '../dom-utils/getDocumentElement';
import getBoundingClientRect from '../dom-utils/getBoundingClientRect';
import computeOffsets from './computeOffsets';
import rectToClientRect from './rectToClientRect';
import {
  clippingParents,
  reference,
  popper,
  bottom,
  top,
  right,
  basePlacements,
  viewport,
} from '../enums';
import { isElement } from '../dom-utils/instanceOf';
import mergePaddingObject from './mergePaddingObject';
import expandToHashMap from './expandToHashMap';

// eslint-disable-next-line import/no-unused-modules
export type Options = {
  placement: Placement,
  strategy: PositioningStrategy,
  boundary: Boundary,
  rootBoundary: RootBoundary,
  elementContext: Context,
  altBoundary: boolean,
  padding: Padding,
};

export default function detectOverflow(
  state: State,
  options: $Shape<Options> = {}
): SideObject {
  const {
    placement = state.placement,
    strategy = state.strategy,
    boundary = clippingParents,
    rootBoundary = viewport,
    elementContext = popper,
    altBoundary = false,
    padding = 0,
  } = options;

  const paddingObject = mergePaddingObject(
    typeof padding !== 'number'
      ? padding
      : expandToHashMap(padding, basePlacements)
  );

  const altContext = elementContext === popper ? reference : popper;

  const popperRect = state.rects.popper;
  const element = state.elements[altBoundary ? altContext : elementContext];

  const clippingClientRect = getClippingRect(
    isElement(element)
      ? element
      : element.contextElement || getDocumentElement(state.elements.popper),
    boundary,
    rootBoundary,
    strategy
  );

  const referenceClientRect = getBoundingClientRect(state.elements.reference);

  const popperOffsets = computeOffsets({
    reference: referenceClientRect,
    element: popperRect,
    strategy: 'absolute',
    placement,
  });

  const popperClientRect = rectToClientRect({
    ...popperRect,
    ...popperOffsets,
  });

  const elementClientRect =
    elementContext === popper ? popperClientRect : referenceClientRect;

  // positive = overflowing the clipping rect
  // 0 or negative = within the clipping rect
  const overflowOffsets = {
    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
    bottom:
      elementClientRect.bottom -
      clippingClientRect.bottom +
      paddingObject.bottom,
    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
    right:
      elementClientRect.right - clippingClientRect.right + paddingObject.right,
  };

  const offsetData = state.modifiersData.offset;

  // Offsets can be applied only to the popper element
  if (elementContext === popper && offsetData) {
    const offset = offsetData[placement];

    Object.keys(overflowOffsets).forEach((key) => {
      const multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
      const axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
      overflowOffsets[key] += offset[axis] * multiply;
    });
  }

  return overflowOffsets;
}

Directory Contents

Dirs: 0 × Files: 63

Name Size Perms Modified Actions
466 B lrw-r--r-- 2026-02-28 00:30:38
Edit Download
1.64 KB lrw-r--r-- 2026-02-28 00:30:38
Edit Download
1.75 KB lrw-r--r-- 2026-02-28 00:30:38
Edit Download
353 B lrw-r--r-- 2026-02-28 00:30:38
Edit Download
1.70 KB lrw-r--r-- 2026-02-28 00:30:40
Edit Download
1.92 KB lrw-r--r-- 2026-02-28 00:30:40
Edit Download
89 B lrw-r--r-- 2026-02-28 00:30:42
Edit Download
302 B lrw-r--r-- 2026-02-28 00:30:42
Edit Download
327 B lrw-r--r-- 2026-02-28 00:30:42
Edit Download
480 B lrw-r--r-- 2026-02-28 00:30:42
Edit Download
3.45 KB lrw-r--r-- 2026-02-28 00:30:44
Edit Download
3.19 KB lrw-r--r-- 2026-02-28 00:30:44
Edit Download
149 B lrw-r--r-- 2026-02-28 00:30:44
Edit Download
159 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
246 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
64 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
79 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
112 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
80 B lrw-r--r-- 2026-02-28 00:30:46
Edit Download
89 B lrw-r--r-- 2026-02-28 00:30:48
Edit Download
140 B lrw-r--r-- 2026-02-28 00:30:48
Edit Download
152 B lrw-r--r-- 2026-02-28 00:30:50
Edit Download
125 B lrw-r--r-- 2026-02-28 00:30:50
Edit Download
220 B lrw-r--r-- 2026-02-28 00:30:52
Edit Download
102 B lrw-r--r-- 2026-02-28 00:30:52
Edit Download
117 B lrw-r--r-- 2026-02-28 00:30:54
Edit Download
185 B lrw-r--r-- 2026-02-28 00:30:54
Edit Download
126 B lrw-r--r-- 2026-02-28 00:30:54
Edit Download
127 B lrw-r--r-- 2026-02-28 00:30:54
Edit Download
207 B lrw-r--r-- 2026-02-28 00:30:56
Edit Download
122 B lrw-r--r-- 2026-02-28 00:30:56
Edit Download
248 B lrw-r--r-- 2026-02-28 00:30:56
Edit Download
312 B lrw-r--r-- 2026-02-28 00:30:56
Edit Download
131 B lrw-r--r-- 2026-02-28 00:30:56
Edit Download
209 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
269 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
139 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
85 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
185 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
169 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
84 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
100 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
162 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
524 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
639 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
136 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
184 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
274 B lrw-r--r-- 2026-02-28 00:30:58
Edit Download
147 B lrw-r--r-- 2026-02-28 00:31:00
Edit Download
1.21 KB lrw-r--r-- 2026-02-28 00:31:00
Edit Download
1.33 KB lrw-r--r-- 2026-02-28 00:31:00
Edit Download
128 B lrw-r--r-- 2026-02-28 00:31:00
Edit Download
191 B lrw-r--r-- 2026-02-28 00:31:00
Edit Download
271 B lrw-r--r-- 2026-02-28 00:31:00
Edit Download
84 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
252 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
293 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
47 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
301 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
493 B lrw-r--r-- 2026-02-28 00:31:02
Edit Download
170 B lrw-r--r-- 2026-02-28 00:31:04
Edit Download
262 B lrw-r--r-- 2026-02-28 00:31:04
Edit Download
329 B lrw-r--r-- 2026-02-28 00:31:04
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).