@spectrum-web-components/overlay 0.35.1-rc.41 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -237
- package/active-overlay.d.ts +6 -0
- package/active-overlay.dev.js +5 -0
- package/{sp-overlay.dev.js.map → active-overlay.dev.js.map} +3 -3
- package/active-overlay.js +2 -0
- package/{sp-overlay.js.map → active-overlay.js.map} +4 -4
- package/custom-elements.json +1215 -0
- package/package.json +22 -49
- package/src/ActiveOverlay.d.ts +84 -0
- package/src/ActiveOverlay.dev.js +517 -0
- package/src/ActiveOverlay.dev.js.map +7 -0
- package/src/ActiveOverlay.js +16 -0
- package/src/ActiveOverlay.js.map +7 -0
- package/src/OverlayTrigger.d.ts +41 -24
- package/src/OverlayTrigger.dev.js +295 -133
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +22 -52
- package/src/OverlayTrigger.js.map +3 -3
- package/src/VirtualTrigger.dev.js +1 -2
- package/src/VirtualTrigger.dev.js.map +2 -2
- package/src/VirtualTrigger.js +1 -1
- package/src/VirtualTrigger.js.map +2 -2
- package/src/active-overlay.css.dev.js +13 -0
- package/src/active-overlay.css.dev.js.map +7 -0
- package/src/active-overlay.css.js +10 -0
- package/src/active-overlay.css.js.map +7 -0
- package/src/index.d.ts +3 -2
- package/src/index.dev.js +3 -2
- package/src/index.dev.js.map +2 -2
- package/src/index.js +1 -1
- package/src/index.js.map +2 -2
- package/src/loader.d.ts +2 -1
- package/src/loader.dev.js +19 -2
- package/src/loader.dev.js.map +2 -2
- package/src/loader.js +1 -1
- package/src/loader.js.map +3 -3
- package/src/overlay-stack.d.ts +50 -0
- package/src/overlay-stack.dev.js +515 -0
- package/src/overlay-stack.dev.js.map +7 -0
- package/src/overlay-stack.js +34 -0
- package/src/overlay-stack.js.map +7 -0
- package/src/overlay-timer.dev.js.map +2 -2
- package/src/overlay-timer.js.map +2 -2
- package/src/overlay-trigger.css.dev.js +1 -1
- package/src/overlay-trigger.css.dev.js.map +1 -1
- package/src/overlay-trigger.css.js +1 -1
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay-types.d.ts +31 -25
- package/src/overlay-types.dev.js +0 -1
- package/src/overlay-types.dev.js.map +3 -3
- package/src/overlay-types.js +1 -1
- package/src/overlay-types.js.map +3 -3
- package/src/overlay-utils.d.ts +3 -0
- package/src/overlay-utils.dev.js +31 -0
- package/src/overlay-utils.dev.js.map +7 -0
- package/src/overlay-utils.js +2 -0
- package/src/overlay-utils.js.map +7 -0
- package/src/overlay.d.ts +59 -0
- package/src/overlay.dev.js +127 -0
- package/src/overlay.dev.js.map +7 -0
- package/src/overlay.js +2 -0
- package/src/overlay.js.map +7 -0
- package/stories/overlay-story-components.js +8 -9
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +697 -825
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +0 -4
- package/sync/overlay-trigger.dev.js +4 -1
- package/sync/overlay-trigger.dev.js.map +2 -2
- package/sync/overlay-trigger.js +1 -1
- package/sync/overlay-trigger.js.map +3 -3
- package/test/benchmark/basic-test.js +1 -1
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/index.js +377 -408
- package/test/index.js.map +3 -3
- package/test/overlay-lifecycle.test.js +106 -34
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +5 -11
- package/test/overlay-trigger-click.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +36 -42
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +24 -27
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +35 -41
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +81 -206
- package/test/overlay-trigger-longpress.test.js.map +2 -2
- package/test/overlay-trigger-sync.test.js +1 -1
- package/test/overlay-trigger-sync.test.js.map +2 -2
- package/test/overlay-trigger.test.js +1 -1
- package/test/overlay-trigger.test.js.map +2 -2
- package/test/overlay-update.test.js +4 -4
- package/test/overlay-update.test.js.map +2 -2
- package/test/overlay.test.js +268 -386
- package/test/overlay.test.js.map +3 -3
- package/sp-overlay.d.ts +0 -6
- package/sp-overlay.dev.js +0 -5
- package/sp-overlay.js +0 -2
- package/src/AbstractOverlay.d.ts +0 -56
- package/src/AbstractOverlay.dev.js +0 -202
- package/src/AbstractOverlay.dev.js.map +0 -7
- package/src/AbstractOverlay.js +0 -2
- package/src/AbstractOverlay.js.map +0 -7
- package/src/Overlay.d.ts +0 -147
- package/src/Overlay.dev.js +0 -777
- package/src/Overlay.dev.js.map +0 -7
- package/src/Overlay.js +0 -33
- package/src/Overlay.js.map +0 -7
- package/src/OverlayDialog.d.ts +0 -4
- package/src/OverlayDialog.dev.js +0 -135
- package/src/OverlayDialog.dev.js.map +0 -7
- package/src/OverlayDialog.js +0 -2
- package/src/OverlayDialog.js.map +0 -7
- package/src/OverlayNoPopover.d.ts +0 -4
- package/src/OverlayNoPopover.dev.js +0 -110
- package/src/OverlayNoPopover.dev.js.map +0 -7
- package/src/OverlayNoPopover.js +0 -2
- package/src/OverlayNoPopover.js.map +0 -7
- package/src/OverlayPopover.d.ts +0 -4
- package/src/OverlayPopover.dev.js +0 -169
- package/src/OverlayPopover.dev.js.map +0 -7
- package/src/OverlayPopover.js +0 -2
- package/src/OverlayPopover.js.map +0 -7
- package/src/OverlayStack.d.ts +0 -43
- package/src/OverlayStack.dev.js +0 -150
- package/src/OverlayStack.dev.js.map +0 -7
- package/src/OverlayStack.js +0 -2
- package/src/OverlayStack.js.map +0 -7
- package/src/PlacementController.d.ts +0 -38
- package/src/PlacementController.dev.js +0 -199
- package/src/PlacementController.dev.js.map +0 -7
- package/src/PlacementController.js +0 -2
- package/src/PlacementController.js.map +0 -7
- package/src/fullSizePlugin.d.ts +0 -12
- package/src/fullSizePlugin.dev.js +0 -39
- package/src/fullSizePlugin.dev.js.map +0 -7
- package/src/fullSizePlugin.js +0 -2
- package/src/fullSizePlugin.js.map +0 -7
- package/src/overlay.css.dev.js +0 -9
- package/src/overlay.css.dev.js.map +0 -7
- package/src/overlay.css.js +0 -6
- package/src/overlay.css.js.map +0 -7
- package/src/topLayerOverTransforms.d.ts +0 -2
- package/src/topLayerOverTransforms.dev.js +0 -90
- package/src/topLayerOverTransforms.dev.js.map +0 -7
- package/src/topLayerOverTransforms.js +0 -2
- package/src/topLayerOverTransforms.js.map +0 -7
- package/stories/overlay-element.stories.js +0 -366
- package/stories/overlay-element.stories.js.map +0 -7
- package/test/overlay-element.test-vrt.js +0 -5
- package/test/overlay-element.test-vrt.js.map +0 -7
- package/test/overlay-element.test.js +0 -681
- package/test/overlay-element.test.js.map +0 -7
- package/test/overlay-v1.test.js +0 -651
- package/test/overlay-v1.test.js.map +0 -7
- /package/src/{overlay.css.d.ts → active-overlay.css.d.ts} +0 -0
package/src/OverlayStack.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["OverlayStack.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { Overlay } from './Overlay.js';\n\nconst supportsPopover = 'showPopover' in document.createElement('div');\n\nclass OverlayStack {\n private get document(): Document {\n return this.root.ownerDocument /* c8 ignore next */ || document;\n }\n\n private pointerdownPath?: EventTarget[];\n\n private root: HTMLElement = document.body;\n\n stack: Overlay[] = [];\n\n constructor() {\n this.bindEvents();\n }\n\n bindEvents(): void {\n this.document.addEventListener('pointerdown', this.handlePointerdown);\n this.document.addEventListener('pointerup', this.handlePointerup);\n this.document.addEventListener('keydown', this.handleKeydown);\n }\n\n private closeOverlay(overlay: Overlay): void {\n const overlayIndex = this.stack.indexOf(overlay);\n if (overlayIndex > -1) {\n this.stack.splice(overlayIndex, 1);\n }\n overlay.open = false;\n }\n\n /**\n * Cach the `pointerdownTarget` for later testing\n *\n * @param event {ClickEvent}\n */\n handlePointerdown = (event: Event): void => {\n this.pointerdownPath = event.composedPath();\n };\n\n /**\n * Close all overlays that are not ancestors of this click event\n *\n * @param event {ClickEvent}\n */\n handlePointerup = (): void => {\n if (!this.stack.length) return;\n if (!this.pointerdownPath?.length) return;\n\n // Test against the composed path in `pointerdown` in case the visitor moved their\n // pointer during the course of the interaction.\n const composedPath = this.pointerdownPath;\n this.pointerdownPath = undefined;\n const nonAncestorOverlays = this.stack.filter((overlay) => {\n const inStack = composedPath.find(\n (el) => el === overlay || el === overlay?.triggerElement\n );\n return !inStack && !overlay.shouldPreventClose();\n }) as Overlay[];\n nonAncestorOverlays.reverse();\n nonAncestorOverlays.forEach((overlay) => {\n this.closeOverlay(overlay);\n let parentToClose = overlay.parentOverlayToForceClose;\n while (parentToClose) {\n this.closeOverlay(parentToClose);\n parentToClose = parentToClose.parentOverlayToForceClose;\n }\n });\n };\n\n handleBeforetoggle = (event: Event): void => {\n const { target, newState: open } = event as Event & {\n newState: string;\n };\n if (open === 'open') return;\n this.closeOverlay(target as Overlay);\n };\n\n private handleKeydown = (event: KeyboardEvent): void => {\n if (event.code !== 'Escape') return;\n const last = this.stack.at(-1);\n if (last?.type === 'page') {\n event.preventDefault();\n return;\n }\n if (supportsPopover) return;\n if (!this.stack.length) return;\n\n if (!last) return;\n this.closeOverlay(last);\n };\n\n /**\n * Get an array of Overlays that all share the same trigger element.\n *\n * @param triggerElement {HTMLELement}\n * @returns {Overlay[]}\n */\n overlaysByTriggerElement(triggerElement: HTMLElement): Overlay[] {\n return this.stack.filter(\n (overlay) => overlay.triggerElement === triggerElement\n );\n }\n\n /**\n * When overlays are added manage the open state of exisiting overlays appropriately:\n * - 'modal': should close other overlays\n * - 'page': should close other overlays\n * - 'hint': shouldn't close other overlays\n * - 'auto': should close other 'auto' overlays and other 'hint' overlays, but not 'manual' overlays\n * - 'manual': shouldn't close other overlays\n */\n add(overlay: Overlay): void {\n if (this.stack.includes(overlay)) {\n const overlayIndex = this.stack.indexOf(overlay);\n if (overlayIndex > -1) {\n this.stack.splice(overlayIndex, 1);\n this.stack.push(overlay);\n }\n return;\n }\n if (\n overlay.type === 'auto' ||\n overlay.type === 'modal' ||\n overlay.type === 'page'\n ) {\n // manage closing open overlays\n const queryPathEventName = 'sp-overlay-query-path';\n const queryPathEvent = new Event(queryPathEventName, {\n composed: true,\n bubbles: true,\n });\n overlay.addEventListener(\n queryPathEventName,\n (event: Event) => {\n const path = event.composedPath();\n this.stack.forEach((overlayEl) => {\n const inPath = path.find((el) => el === overlayEl);\n if (!inPath && overlayEl.type !== 'manual') {\n this.closeOverlay(overlayEl);\n }\n });\n },\n { once: true }\n );\n overlay.dispatchEvent(queryPathEvent);\n } else if (overlay.type === 'hint') {\n this.stack.forEach((overlayEl) => {\n if (overlayEl.type === 'hint') {\n this.closeOverlay(overlayEl);\n }\n });\n }\n requestAnimationFrame(() => {\n this.stack.push(overlay);\n overlay.addEventListener('beforetoggle', this.handleBeforetoggle, {\n once: true,\n });\n });\n }\n\n remove(overlay: Overlay): void {\n this.closeOverlay(overlay);\n }\n}\n\nexport const overlayStack = new OverlayStack();\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["supportsPopover", "OverlayStack", "event", "_a", "composedPath", "nonAncestorOverlays", "overlay", "el", "parentToClose", "target", "open", "last", "overlayIndex", "triggerElement", "queryPathEventName", "queryPathEvent", "path", "overlayEl"]
|
|
7
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { ReactiveController, ReactiveElement } from '@spectrum-web-components/base';
|
|
2
|
-
import { Placement } from '@floating-ui/dom';
|
|
3
|
-
import type { VirtualTrigger } from './VirtualTrigger.js';
|
|
4
|
-
import type { OpenableElement } from './overlay-types.js';
|
|
5
|
-
declare type OverlayOptionsV1 = {
|
|
6
|
-
abortPromise?: Promise<boolean>;
|
|
7
|
-
delayed?: boolean;
|
|
8
|
-
offset?: number | [number, number];
|
|
9
|
-
placement: Placement;
|
|
10
|
-
notImmediatelyClosable?: boolean;
|
|
11
|
-
receivesFocus?: 'auto';
|
|
12
|
-
root?: HTMLElement;
|
|
13
|
-
tipPadding?: number;
|
|
14
|
-
trigger: HTMLElement | VirtualTrigger;
|
|
15
|
-
type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';
|
|
16
|
-
};
|
|
17
|
-
export declare const placementUpdatedSymbol: unique symbol;
|
|
18
|
-
export declare class PlacementController implements ReactiveController {
|
|
19
|
-
private cleanup?;
|
|
20
|
-
initialHeight?: number;
|
|
21
|
-
isConstrained?: boolean;
|
|
22
|
-
private host;
|
|
23
|
-
private options;
|
|
24
|
-
private originalPlacements;
|
|
25
|
-
private target;
|
|
26
|
-
constructor(host: ReactiveElement & {
|
|
27
|
-
elements: OpenableElement[];
|
|
28
|
-
});
|
|
29
|
-
placeOverlay(target?: HTMLElement, options?: OverlayOptionsV1): Promise<void>;
|
|
30
|
-
allowPlacementUpdate: boolean;
|
|
31
|
-
updatePlacement: () => void;
|
|
32
|
-
computePlacement(): Promise<void>;
|
|
33
|
-
resetOverlayPosition: () => void;
|
|
34
|
-
hostConnected(): void;
|
|
35
|
-
hostUpdated(): void;
|
|
36
|
-
hostDisconnected(): void;
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import {
|
|
3
|
-
arrow,
|
|
4
|
-
autoUpdate,
|
|
5
|
-
computePosition,
|
|
6
|
-
flip,
|
|
7
|
-
offset,
|
|
8
|
-
shift,
|
|
9
|
-
size
|
|
10
|
-
} from "@floating-ui/dom";
|
|
11
|
-
import { topLayerOverTransforms } from "./topLayerOverTransforms.dev.js";
|
|
12
|
-
function roundByDPR(num) {
|
|
13
|
-
if (typeof num === "undefined")
|
|
14
|
-
return 0;
|
|
15
|
-
const dpr = window.devicePixelRatio || 1;
|
|
16
|
-
return Math.round(num * dpr) / dpr;
|
|
17
|
-
}
|
|
18
|
-
const REQUIRED_DISTANCE_TO_EDGE = 8;
|
|
19
|
-
const MIN_OVERLAY_HEIGHT = 100;
|
|
20
|
-
const getFallbackPlacements = (placement) => {
|
|
21
|
-
var _a;
|
|
22
|
-
const fallbacks = {
|
|
23
|
-
left: ["right", "bottom", "top"],
|
|
24
|
-
"left-start": ["right-start", "bottom", "top"],
|
|
25
|
-
"left-end": ["right-end", "bottom", "top"],
|
|
26
|
-
right: ["left", "bottom", "top"],
|
|
27
|
-
"right-start": ["left-start", "bottom", "top"],
|
|
28
|
-
"right-end": ["left-end", "bottom", "top"],
|
|
29
|
-
top: ["bottom", "left", "right"],
|
|
30
|
-
"top-start": ["bottom-start", "left", "right"],
|
|
31
|
-
"top-end": ["bottom-end", "left", "right"],
|
|
32
|
-
bottom: ["top", "left", "right"],
|
|
33
|
-
"bottom-start": ["top-start", "left", "right"],
|
|
34
|
-
"bottom-end": ["top-end", "left", "right"]
|
|
35
|
-
};
|
|
36
|
-
return (_a = fallbacks[placement]) != null ? _a : [placement];
|
|
37
|
-
};
|
|
38
|
-
export const placementUpdatedSymbol = Symbol("placement updated");
|
|
39
|
-
export class PlacementController {
|
|
40
|
-
constructor(host) {
|
|
41
|
-
this.originalPlacements = /* @__PURE__ */ new WeakMap();
|
|
42
|
-
this.allowPlacementUpdate = false;
|
|
43
|
-
this.updatePlacement = () => {
|
|
44
|
-
if (!this.allowPlacementUpdate && this.options.type !== "modal" && this.cleanup) {
|
|
45
|
-
this.target.dispatchEvent(new Event("close", { bubbles: true }));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this.computePlacement();
|
|
49
|
-
this.allowPlacementUpdate = false;
|
|
50
|
-
};
|
|
51
|
-
this.resetOverlayPosition = () => {
|
|
52
|
-
if (!this.target || !this.options)
|
|
53
|
-
return;
|
|
54
|
-
this.target.style.removeProperty("max-height");
|
|
55
|
-
this.target.style.removeProperty("height");
|
|
56
|
-
this.initialHeight = void 0;
|
|
57
|
-
this.isConstrained = false;
|
|
58
|
-
this.host.offsetHeight;
|
|
59
|
-
this.computePlacement();
|
|
60
|
-
};
|
|
61
|
-
this.host = host;
|
|
62
|
-
this.host.addController(this);
|
|
63
|
-
}
|
|
64
|
-
async placeOverlay(target = this.target, options = this.options) {
|
|
65
|
-
this.target = target;
|
|
66
|
-
this.options = options;
|
|
67
|
-
if (!target || !options)
|
|
68
|
-
return;
|
|
69
|
-
const cleanup = autoUpdate(
|
|
70
|
-
options.trigger,
|
|
71
|
-
target,
|
|
72
|
-
this.updatePlacement,
|
|
73
|
-
{
|
|
74
|
-
elementResize: false,
|
|
75
|
-
layoutShift: false
|
|
76
|
-
}
|
|
77
|
-
);
|
|
78
|
-
this.cleanup = () => {
|
|
79
|
-
var _a;
|
|
80
|
-
(_a = this.host.elements) == null ? void 0 : _a.forEach((element) => {
|
|
81
|
-
element.addEventListener(
|
|
82
|
-
"sp-closed",
|
|
83
|
-
() => {
|
|
84
|
-
const placement = this.originalPlacements.get(element);
|
|
85
|
-
if (placement) {
|
|
86
|
-
element.setAttribute("placement", placement);
|
|
87
|
-
}
|
|
88
|
-
this.originalPlacements.delete(element);
|
|
89
|
-
},
|
|
90
|
-
{ once: true }
|
|
91
|
-
);
|
|
92
|
-
});
|
|
93
|
-
cleanup();
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
async computePlacement() {
|
|
97
|
-
var _a, _b;
|
|
98
|
-
const { options, target } = this;
|
|
99
|
-
await (document.fonts ? document.fonts.ready : Promise.resolve());
|
|
100
|
-
const flipMiddleware = !(options.trigger instanceof HTMLElement) ? flip({
|
|
101
|
-
padding: REQUIRED_DISTANCE_TO_EDGE,
|
|
102
|
-
fallbackPlacements: getFallbackPlacements(options.placement)
|
|
103
|
-
}) : flip();
|
|
104
|
-
const [mainAxis = 0, crossAxis = 0] = Array.isArray(options == null ? void 0 : options.offset) ? options.offset : [options.offset, 0];
|
|
105
|
-
const tipElement = (_a = this.host.elements.find(
|
|
106
|
-
(el) => el.tipElement
|
|
107
|
-
)) == null ? void 0 : _a.tipElement;
|
|
108
|
-
const middleware = [
|
|
109
|
-
offset({
|
|
110
|
-
mainAxis,
|
|
111
|
-
crossAxis
|
|
112
|
-
}),
|
|
113
|
-
shift({ padding: REQUIRED_DISTANCE_TO_EDGE }),
|
|
114
|
-
flipMiddleware,
|
|
115
|
-
size({
|
|
116
|
-
padding: REQUIRED_DISTANCE_TO_EDGE,
|
|
117
|
-
apply: ({
|
|
118
|
-
availableWidth,
|
|
119
|
-
availableHeight,
|
|
120
|
-
rects: { floating }
|
|
121
|
-
}) => {
|
|
122
|
-
const maxHeight = Math.max(
|
|
123
|
-
MIN_OVERLAY_HEIGHT,
|
|
124
|
-
Math.floor(availableHeight)
|
|
125
|
-
);
|
|
126
|
-
const actualHeight = floating.height;
|
|
127
|
-
this.initialHeight = !this.isConstrained ? actualHeight : this.initialHeight || actualHeight;
|
|
128
|
-
this.isConstrained = actualHeight < this.initialHeight || maxHeight <= actualHeight;
|
|
129
|
-
const appliedHeight = this.isConstrained ? `${maxHeight}px` : "";
|
|
130
|
-
Object.assign(target.style, {
|
|
131
|
-
maxWidth: `${Math.floor(availableWidth)}px`,
|
|
132
|
-
maxHeight: appliedHeight,
|
|
133
|
-
height: appliedHeight
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}),
|
|
137
|
-
...tipElement ? [
|
|
138
|
-
arrow({
|
|
139
|
-
element: tipElement,
|
|
140
|
-
padding: options.tipPadding || REQUIRED_DISTANCE_TO_EDGE
|
|
141
|
-
})
|
|
142
|
-
] : [],
|
|
143
|
-
topLayerOverTransforms()
|
|
144
|
-
];
|
|
145
|
-
const { x, y, placement, middlewareData } = await computePosition(
|
|
146
|
-
options.trigger,
|
|
147
|
-
target,
|
|
148
|
-
{
|
|
149
|
-
placement: options.placement,
|
|
150
|
-
middleware,
|
|
151
|
-
strategy: "fixed"
|
|
152
|
-
}
|
|
153
|
-
);
|
|
154
|
-
Object.assign(target.style, {
|
|
155
|
-
top: "0px",
|
|
156
|
-
left: "0px",
|
|
157
|
-
translate: `${roundByDPR(x)}px ${roundByDPR(y)}px`
|
|
158
|
-
});
|
|
159
|
-
target.setAttribute("actual-placement", placement);
|
|
160
|
-
(_b = this.host.elements) == null ? void 0 : _b.forEach((element) => {
|
|
161
|
-
this.originalPlacements.set(
|
|
162
|
-
element,
|
|
163
|
-
element.getAttribute("placement")
|
|
164
|
-
);
|
|
165
|
-
element.setAttribute("placement", placement);
|
|
166
|
-
});
|
|
167
|
-
if (tipElement && middlewareData.arrow) {
|
|
168
|
-
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
169
|
-
Object.assign(tipElement.style, {
|
|
170
|
-
top: placement.startsWith("right") || placement.startsWith("left") ? "0px" : "",
|
|
171
|
-
left: placement.startsWith("bottom") || placement.startsWith("top") ? "0px" : "",
|
|
172
|
-
translate: `${roundByDPR(arrowX)}px ${roundByDPR(arrowY)}px`
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
hostConnected() {
|
|
177
|
-
document.addEventListener(
|
|
178
|
-
"sp-update-overlays",
|
|
179
|
-
this.resetOverlayPosition
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
hostUpdated() {
|
|
183
|
-
var _a;
|
|
184
|
-
if (!this.host.open) {
|
|
185
|
-
(_a = this.cleanup) == null ? void 0 : _a.call(this);
|
|
186
|
-
this.cleanup = void 0;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
hostDisconnected() {
|
|
190
|
-
var _a;
|
|
191
|
-
(_a = this.cleanup) == null ? void 0 : _a.call(this);
|
|
192
|
-
this.cleanup = void 0;
|
|
193
|
-
document.removeEventListener(
|
|
194
|
-
"sp-update-overlays",
|
|
195
|
-
this.resetOverlayPosition
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=PlacementController.dev.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["PlacementController.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type {\n ReactiveController,\n ReactiveElement,\n} from '@spectrum-web-components/base';\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n size,\n} from '@floating-ui/dom';\nimport type { VirtualTrigger } from './VirtualTrigger.dev.js'\nimport { topLayerOverTransforms } from './topLayerOverTransforms.dev.js'\nimport type { OpenableElement } from './overlay-types.dev.js'\nimport type { Overlay } from './Overlay.dev.js'\n\ntype OverlayOptionsV1 = {\n abortPromise?: Promise<boolean>;\n delayed?: boolean;\n offset?: number | [number, number]; // supporting multi-axis\n placement: Placement;\n notImmediatelyClosable?: boolean; // rename or place behind other API options\n receivesFocus?: 'auto';\n root?: HTMLElement;\n tipPadding?: number;\n trigger: HTMLElement | VirtualTrigger;\n type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';\n};\n\nfunction roundByDPR(num?: number): number {\n if (typeof num === 'undefined') return 0;\n const dpr = window.devicePixelRatio || 1;\n return Math.round(num * dpr) / dpr ?? -10000;\n}\n\n// See: https://spectrum.adobe.com/page/popover/#Container-padding\nconst REQUIRED_DISTANCE_TO_EDGE = 8;\n// See: https://github.com/adobe/spectrum-web-components/issues/910\nconst MIN_OVERLAY_HEIGHT = 100;\n\nconst getFallbackPlacements = (placement: Placement): Placement[] => {\n const fallbacks: Record<Placement, Placement[]> = {\n left: ['right', 'bottom', 'top'],\n 'left-start': ['right-start', 'bottom', 'top'],\n 'left-end': ['right-end', 'bottom', 'top'],\n right: ['left', 'bottom', 'top'],\n 'right-start': ['left-start', 'bottom', 'top'],\n 'right-end': ['left-end', 'bottom', 'top'],\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left', 'right'],\n 'top-end': ['bottom-end', 'left', 'right'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left', 'right'],\n 'bottom-end': ['top-end', 'left', 'right'],\n };\n return fallbacks[placement] ?? [placement];\n};\n\nexport const placementUpdatedSymbol = Symbol('placement updated');\n\nexport class PlacementController implements ReactiveController {\n private cleanup?: () => void;\n\n initialHeight?: number;\n\n isConstrained?: boolean;\n\n private host!: ReactiveElement & { elements: OpenableElement[] };\n\n private options!: OverlayOptionsV1;\n\n private originalPlacements = new WeakMap<HTMLElement, Placement>();\n\n private target!: HTMLElement;\n\n constructor(host: ReactiveElement & { elements: OpenableElement[] }) {\n this.host = host;\n // Add the controller after the MutationObserver has been created in preparation\n // for the `hostConnected`/`hostDisconnected` callbacks to be run.\n this.host.addController(this);\n }\n\n public async placeOverlay(\n target: HTMLElement = this.target,\n options: OverlayOptionsV1 = this.options\n ): Promise<void> {\n this.target = target;\n this.options = options;\n if (!target || !options) return;\n\n const cleanup = autoUpdate(\n options.trigger,\n target,\n this.updatePlacement,\n {\n elementResize: false,\n layoutShift: false,\n }\n );\n this.cleanup = () => {\n this.host.elements?.forEach((element) => {\n element.addEventListener(\n 'sp-closed',\n () => {\n const placement = this.originalPlacements.get(element);\n if (placement) {\n element.setAttribute('placement', placement);\n }\n this.originalPlacements.delete(element);\n },\n { once: true }\n );\n });\n cleanup();\n };\n }\n\n allowPlacementUpdate = false;\n\n updatePlacement = (): void => {\n if (\n !this.allowPlacementUpdate &&\n this.options.type !== 'modal' &&\n this.cleanup\n ) {\n this.target.dispatchEvent(new Event('close', { bubbles: true }));\n return;\n }\n this.computePlacement();\n this.allowPlacementUpdate = false;\n };\n\n async computePlacement(): Promise<void> {\n const { options, target } = this;\n\n await (document.fonts ? document.fonts.ready : Promise.resolve());\n\n const flipMiddleware = !(options.trigger instanceof HTMLElement)\n ? flip({\n padding: REQUIRED_DISTANCE_TO_EDGE,\n fallbackPlacements: getFallbackPlacements(options.placement),\n })\n : flip();\n\n const [mainAxis = 0, crossAxis = 0] = Array.isArray(options?.offset)\n ? options.offset\n : [options.offset, 0];\n\n const tipElement = this.host.elements.find(\n (el) => el.tipElement\n )?.tipElement;\n\n const middleware = [\n offset({\n mainAxis,\n crossAxis,\n }),\n shift({ padding: REQUIRED_DISTANCE_TO_EDGE }),\n flipMiddleware,\n size({\n padding: REQUIRED_DISTANCE_TO_EDGE,\n apply: ({\n availableWidth,\n availableHeight,\n rects: { floating },\n }) => {\n const maxHeight = Math.max(\n MIN_OVERLAY_HEIGHT,\n Math.floor(availableHeight)\n );\n const actualHeight = floating.height;\n this.initialHeight = !this.isConstrained // && !this.virtualTrigger\n ? actualHeight\n : this.initialHeight || actualHeight;\n this.isConstrained =\n actualHeight < this.initialHeight ||\n maxHeight <= actualHeight;\n const appliedHeight = this.isConstrained\n ? `${maxHeight}px`\n : '';\n Object.assign(target.style, {\n maxWidth: `${Math.floor(availableWidth)}px`,\n maxHeight: appliedHeight,\n height: appliedHeight,\n });\n },\n }),\n ...(tipElement\n ? [\n arrow({\n element: tipElement,\n padding:\n options.tipPadding || REQUIRED_DISTANCE_TO_EDGE,\n }),\n ]\n : []),\n topLayerOverTransforms(),\n ];\n const { x, y, placement, middlewareData } = await computePosition(\n options.trigger,\n target,\n {\n placement: options.placement,\n middleware,\n strategy: 'fixed',\n }\n );\n Object.assign(target.style, {\n top: '0px',\n left: '0px',\n translate: `${roundByDPR(x)}px ${roundByDPR(y)}px`,\n });\n\n target.setAttribute('actual-placement', placement);\n this.host.elements?.forEach((element) => {\n this.originalPlacements.set(\n element,\n element.getAttribute('placement') as Placement\n );\n element.setAttribute('placement', placement);\n });\n\n if (tipElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(tipElement.style, {\n top:\n placement.startsWith('right') ||\n placement.startsWith('left')\n ? '0px'\n : '',\n left:\n placement.startsWith('bottom') ||\n placement.startsWith('top')\n ? '0px'\n : '',\n translate: `${roundByDPR(arrowX)}px ${roundByDPR(arrowY)}px`,\n });\n }\n }\n\n public resetOverlayPosition = (): void => {\n if (!this.target || !this.options) return;\n\n this.target.style.removeProperty('max-height');\n this.target.style.removeProperty('height');\n this.initialHeight = undefined;\n this.isConstrained = false;\n // force paint\n this.host.offsetHeight;\n this.computePlacement();\n };\n\n hostConnected(): void {\n document.addEventListener(\n 'sp-update-overlays',\n this.resetOverlayPosition\n );\n }\n\n hostUpdated(): void {\n if (!(this.host as Overlay).open) {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n }\n\n hostDisconnected(): void {\n this.cleanup?.();\n this.cleanup = undefined;\n document.removeEventListener(\n 'sp-update-overlays',\n this.resetOverlayPosition\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";import{arrow as O,autoUpdate as w,computePosition as H,flip as y,offset as M,shift as T,size as C}from"@floating-ui/dom";import{topLayerOverTransforms as R}from"./topLayerOverTransforms.js";function p(o){if(typeof o=="undefined")return 0;const t=window.devicePixelRatio||1;return Math.round(o*t)/t}const m=8,L=100,A=o=>{var e;return(e={left:["right","bottom","top"],"left-start":["right-start","bottom","top"],"left-end":["right-end","bottom","top"],right:["left","bottom","top"],"right-start":["left-start","bottom","top"],"right-end":["left-end","bottom","top"],top:["bottom","left","right"],"top-start":["bottom-start","left","right"],"top-end":["bottom-end","left","right"],bottom:["top","left","right"],"bottom-start":["top-start","left","right"],"bottom-end":["top-end","left","right"]}[o])!=null?e:[o]};export const placementUpdatedSymbol=Symbol("placement updated");export class PlacementController{constructor(t){this.originalPlacements=new WeakMap;this.allowPlacementUpdate=!1;this.updatePlacement=()=>{if(!this.allowPlacementUpdate&&this.options.type!=="modal"&&this.cleanup){this.target.dispatchEvent(new Event("close",{bubbles:!0}));return}this.computePlacement(),this.allowPlacementUpdate=!1};this.resetOverlayPosition=()=>{!this.target||!this.options||(this.target.style.removeProperty("max-height"),this.target.style.removeProperty("height"),this.initialHeight=void 0,this.isConstrained=!1,this.host.offsetHeight,this.computePlacement())};this.host=t,this.host.addController(this)}async placeOverlay(t=this.target,e=this.options){if(this.target=t,this.options=e,!t||!e)return;const c=w(e.trigger,t,this.updatePlacement,{elementResize:!1,layoutShift:!1});this.cleanup=()=>{var r;(r=this.host.elements)==null||r.forEach(s=>{s.addEventListener("sp-closed",()=>{const a=this.originalPlacements.get(s);a&&s.setAttribute("placement",a),this.originalPlacements.delete(s)},{once:!0})}),c()}}async computePlacement(){var f,g;const{options:t,target:e}=this;await(document.fonts?document.fonts.ready:Promise.resolve());const c=t.trigger instanceof HTMLElement?y():y({padding:m,fallbackPlacements:A(t.placement)}),[r=0,s=0]=Array.isArray(t==null?void 0:t.offset)?t.offset:[t.offset,0],a=(f=this.host.elements.find(i=>i.tipElement))==null?void 0:f.tipElement,v=[M({mainAxis:r,crossAxis:s}),T({padding:m}),c,C({padding:m,apply:({availableWidth:i,availableHeight:h,rects:{floating:x}})=>{const u=Math.max(L,Math.floor(h)),l=x.height;this.initialHeight=this.isConstrained&&this.initialHeight||l,this.isConstrained=l<this.initialHeight||u<=l;const b=this.isConstrained?`${u}px`:"";Object.assign(e.style,{maxWidth:`${Math.floor(i)}px`,maxHeight:b,height:b})}}),...a?[O({element:a,padding:t.tipPadding||m})]:[],R()],{x:P,y:E,placement:n,middlewareData:d}=await H(t.trigger,e,{placement:t.placement,middleware:v,strategy:"fixed"});if(Object.assign(e.style,{top:"0px",left:"0px",translate:`${p(P)}px ${p(E)}px`}),e.setAttribute("actual-placement",n),(g=this.host.elements)==null||g.forEach(i=>{this.originalPlacements.set(i,i.getAttribute("placement")),i.setAttribute("placement",n)}),a&&d.arrow){const{x:i,y:h}=d.arrow;Object.assign(a.style,{top:n.startsWith("right")||n.startsWith("left")?"0px":"",left:n.startsWith("bottom")||n.startsWith("top")?"0px":"",translate:`${p(i)}px ${p(h)}px`})}}hostConnected(){document.addEventListener("sp-update-overlays",this.resetOverlayPosition)}hostUpdated(){var t;this.host.open||((t=this.cleanup)==null||t.call(this),this.cleanup=void 0)}hostDisconnected(){var t;(t=this.cleanup)==null||t.call(this),this.cleanup=void 0,document.removeEventListener("sp-update-overlays",this.resetOverlayPosition)}}
|
|
2
|
-
//# sourceMappingURL=PlacementController.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["PlacementController.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type {\n ReactiveController,\n ReactiveElement,\n} from '@spectrum-web-components/base';\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n Placement,\n shift,\n size,\n} from '@floating-ui/dom';\nimport type { VirtualTrigger } from './VirtualTrigger.js';\nimport { topLayerOverTransforms } from './topLayerOverTransforms.js';\nimport type { OpenableElement } from './overlay-types.js';\nimport type { Overlay } from './Overlay.js';\n\ntype OverlayOptionsV1 = {\n abortPromise?: Promise<boolean>;\n delayed?: boolean;\n offset?: number | [number, number]; // supporting multi-axis\n placement: Placement;\n notImmediatelyClosable?: boolean; // rename or place behind other API options\n receivesFocus?: 'auto';\n root?: HTMLElement;\n tipPadding?: number;\n trigger: HTMLElement | VirtualTrigger;\n type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';\n};\n\nfunction roundByDPR(num?: number): number {\n if (typeof num === 'undefined') return 0;\n const dpr = window.devicePixelRatio || 1;\n return Math.round(num * dpr) / dpr ?? -10000;\n}\n\n// See: https://spectrum.adobe.com/page/popover/#Container-padding\nconst REQUIRED_DISTANCE_TO_EDGE = 8;\n// See: https://github.com/adobe/spectrum-web-components/issues/910\nconst MIN_OVERLAY_HEIGHT = 100;\n\nconst getFallbackPlacements = (placement: Placement): Placement[] => {\n const fallbacks: Record<Placement, Placement[]> = {\n left: ['right', 'bottom', 'top'],\n 'left-start': ['right-start', 'bottom', 'top'],\n 'left-end': ['right-end', 'bottom', 'top'],\n right: ['left', 'bottom', 'top'],\n 'right-start': ['left-start', 'bottom', 'top'],\n 'right-end': ['left-end', 'bottom', 'top'],\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left', 'right'],\n 'top-end': ['bottom-end', 'left', 'right'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left', 'right'],\n 'bottom-end': ['top-end', 'left', 'right'],\n };\n return fallbacks[placement] ?? [placement];\n};\n\nexport const placementUpdatedSymbol = Symbol('placement updated');\n\nexport class PlacementController implements ReactiveController {\n private cleanup?: () => void;\n\n initialHeight?: number;\n\n isConstrained?: boolean;\n\n private host!: ReactiveElement & { elements: OpenableElement[] };\n\n private options!: OverlayOptionsV1;\n\n private originalPlacements = new WeakMap<HTMLElement, Placement>();\n\n private target!: HTMLElement;\n\n constructor(host: ReactiveElement & { elements: OpenableElement[] }) {\n this.host = host;\n // Add the controller after the MutationObserver has been created in preparation\n // for the `hostConnected`/`hostDisconnected` callbacks to be run.\n this.host.addController(this);\n }\n\n public async placeOverlay(\n target: HTMLElement = this.target,\n options: OverlayOptionsV1 = this.options\n ): Promise<void> {\n this.target = target;\n this.options = options;\n if (!target || !options) return;\n\n const cleanup = autoUpdate(\n options.trigger,\n target,\n this.updatePlacement,\n {\n elementResize: false,\n layoutShift: false,\n }\n );\n this.cleanup = () => {\n this.host.elements?.forEach((element) => {\n element.addEventListener(\n 'sp-closed',\n () => {\n const placement = this.originalPlacements.get(element);\n if (placement) {\n element.setAttribute('placement', placement);\n }\n this.originalPlacements.delete(element);\n },\n { once: true }\n );\n });\n cleanup();\n };\n }\n\n allowPlacementUpdate = false;\n\n updatePlacement = (): void => {\n if (\n !this.allowPlacementUpdate &&\n this.options.type !== 'modal' &&\n this.cleanup\n ) {\n this.target.dispatchEvent(new Event('close', { bubbles: true }));\n return;\n }\n this.computePlacement();\n this.allowPlacementUpdate = false;\n };\n\n async computePlacement(): Promise<void> {\n const { options, target } = this;\n\n await (document.fonts ? document.fonts.ready : Promise.resolve());\n\n const flipMiddleware = !(options.trigger instanceof HTMLElement)\n ? flip({\n padding: REQUIRED_DISTANCE_TO_EDGE,\n fallbackPlacements: getFallbackPlacements(options.placement),\n })\n : flip();\n\n const [mainAxis = 0, crossAxis = 0] = Array.isArray(options?.offset)\n ? options.offset\n : [options.offset, 0];\n\n const tipElement = this.host.elements.find(\n (el) => el.tipElement\n )?.tipElement;\n\n const middleware = [\n offset({\n mainAxis,\n crossAxis,\n }),\n shift({ padding: REQUIRED_DISTANCE_TO_EDGE }),\n flipMiddleware,\n size({\n padding: REQUIRED_DISTANCE_TO_EDGE,\n apply: ({\n availableWidth,\n availableHeight,\n rects: { floating },\n }) => {\n const maxHeight = Math.max(\n MIN_OVERLAY_HEIGHT,\n Math.floor(availableHeight)\n );\n const actualHeight = floating.height;\n this.initialHeight = !this.isConstrained // && !this.virtualTrigger\n ? actualHeight\n : this.initialHeight || actualHeight;\n this.isConstrained =\n actualHeight < this.initialHeight ||\n maxHeight <= actualHeight;\n const appliedHeight = this.isConstrained\n ? `${maxHeight}px`\n : '';\n Object.assign(target.style, {\n maxWidth: `${Math.floor(availableWidth)}px`,\n maxHeight: appliedHeight,\n height: appliedHeight,\n });\n },\n }),\n ...(tipElement\n ? [\n arrow({\n element: tipElement,\n padding:\n options.tipPadding || REQUIRED_DISTANCE_TO_EDGE,\n }),\n ]\n : []),\n topLayerOverTransforms(),\n ];\n const { x, y, placement, middlewareData } = await computePosition(\n options.trigger,\n target,\n {\n placement: options.placement,\n middleware,\n strategy: 'fixed',\n }\n );\n Object.assign(target.style, {\n top: '0px',\n left: '0px',\n translate: `${roundByDPR(x)}px ${roundByDPR(y)}px`,\n });\n\n target.setAttribute('actual-placement', placement);\n this.host.elements?.forEach((element) => {\n this.originalPlacements.set(\n element,\n element.getAttribute('placement') as Placement\n );\n element.setAttribute('placement', placement);\n });\n\n if (tipElement && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(tipElement.style, {\n top:\n placement.startsWith('right') ||\n placement.startsWith('left')\n ? '0px'\n : '',\n left:\n placement.startsWith('bottom') ||\n placement.startsWith('top')\n ? '0px'\n : '',\n translate: `${roundByDPR(arrowX)}px ${roundByDPR(arrowY)}px`,\n });\n }\n }\n\n public resetOverlayPosition = (): void => {\n if (!this.target || !this.options) return;\n\n this.target.style.removeProperty('max-height');\n this.target.style.removeProperty('height');\n this.initialHeight = undefined;\n this.isConstrained = false;\n // force paint\n this.host.offsetHeight;\n this.computePlacement();\n };\n\n hostConnected(): void {\n document.addEventListener(\n 'sp-update-overlays',\n this.resetOverlayPosition\n );\n }\n\n hostUpdated(): void {\n if (!(this.host as Overlay).open) {\n this.cleanup?.();\n this.cleanup = undefined;\n }\n }\n\n hostDisconnected(): void {\n this.cleanup?.();\n this.cleanup = undefined;\n document.removeEventListener(\n 'sp-update-overlays',\n this.resetOverlayPosition\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "aAgBA,OACI,SAAAA,EACA,cAAAC,EACA,mBAAAC,EACA,QAAAC,EACA,UAAAC,EAEA,SAAAC,EACA,QAAAC,MACG,mBAEP,OAAS,0BAAAC,MAA8B,8BAiBvC,SAASC,EAAWC,EAAsB,CACtC,GAAI,OAAOA,GAAQ,YAAa,MAAO,GACvC,MAAMC,EAAM,OAAO,kBAAoB,EACvC,OAAO,KAAK,MAAMD,EAAMC,CAAG,EAAIA,CACnC,CAGA,MAAMC,EAA4B,EAE5BC,EAAqB,IAErBC,EAAyBC,GAAsC,CAvDrE,IAAAC,EAsEI,OAAOA,EAd2C,CAC9C,KAAM,CAAC,QAAS,SAAU,KAAK,EAC/B,aAAc,CAAC,cAAe,SAAU,KAAK,EAC7C,WAAY,CAAC,YAAa,SAAU,KAAK,EACzC,MAAO,CAAC,OAAQ,SAAU,KAAK,EAC/B,cAAe,CAAC,aAAc,SAAU,KAAK,EAC7C,YAAa,CAAC,WAAY,SAAU,KAAK,EACzC,IAAK,CAAC,SAAU,OAAQ,OAAO,EAC/B,YAAa,CAAC,eAAgB,OAAQ,OAAO,EAC7C,UAAW,CAAC,aAAc,OAAQ,OAAO,EACzC,OAAQ,CAAC,MAAO,OAAQ,OAAO,EAC/B,eAAgB,CAAC,YAAa,OAAQ,OAAO,EAC7C,aAAc,CAAC,UAAW,OAAQ,OAAO,CAC7C,EACiBD,CAAS,IAAnB,KAAAC,EAAwB,CAACD,CAAS,CAC7C,EAEO,aAAM,uBAAyB,OAAO,mBAAmB,EAEzD,aAAM,mBAAkD,CAe3D,YAAYE,EAAyD,CAJrE,KAAQ,mBAAqB,IAAI,QA8CjC,0BAAuB,GAEvB,qBAAkB,IAAY,CAC1B,GACI,CAAC,KAAK,sBACN,KAAK,QAAQ,OAAS,SACtB,KAAK,QACP,CACE,KAAK,OAAO,cAAc,IAAI,MAAM,QAAS,CAAE,QAAS,EAAK,CAAC,CAAC,EAC/D,MACJ,CACA,KAAK,iBAAiB,EACtB,KAAK,qBAAuB,EAChC,EA+GA,KAAO,qBAAuB,IAAY,CAClC,CAAC,KAAK,QAAU,CAAC,KAAK,UAE1B,KAAK,OAAO,MAAM,eAAe,YAAY,EAC7C,KAAK,OAAO,MAAM,eAAe,QAAQ,EACzC,KAAK,cAAgB,OACrB,KAAK,cAAgB,GAErB,KAAK,KAAK,aACV,KAAK,iBAAiB,EAC1B,EA/KI,KAAK,KAAOA,EAGZ,KAAK,KAAK,cAAc,IAAI,CAChC,CAEA,MAAa,aACTC,EAAsB,KAAK,OAC3BC,EAA4B,KAAK,QACpB,CAGb,GAFA,KAAK,OAASD,EACd,KAAK,QAAUC,EACX,CAACD,GAAU,CAACC,EAAS,OAEzB,MAAMC,EAAUlB,EACZiB,EAAQ,QACRD,EACA,KAAK,gBACL,CACI,cAAe,GACf,YAAa,EACjB,CACJ,EACA,KAAK,QAAU,IAAM,CAlH7B,IAAAF,GAmHYA,EAAA,KAAK,KAAK,WAAV,MAAAA,EAAoB,QAASK,GAAY,CACrCA,EAAQ,iBACJ,YACA,IAAM,CACF,MAAMN,EAAY,KAAK,mBAAmB,IAAIM,CAAO,EACjDN,GACAM,EAAQ,aAAa,YAAaN,CAAS,EAE/C,KAAK,mBAAmB,OAAOM,CAAO,CAC1C,EACA,CAAE,KAAM,EAAK,CACjB,CACJ,GACAD,EAAQ,CACZ,CACJ,CAiBA,MAAM,kBAAkC,CAnJ5C,IAAAJ,EAAAM,EAoJQ,KAAM,CAAE,QAAAH,EAAS,OAAAD,CAAO,EAAI,KAE5B,MAAO,SAAS,MAAQ,SAAS,MAAM,MAAQ,QAAQ,QAAQ,GAE/D,MAAMK,EAAmBJ,EAAQ,mBAAmB,YAK9Cf,EAAK,EAJLA,EAAK,CACD,QAASQ,EACT,mBAAoBE,EAAsBK,EAAQ,SAAS,CAC/D,CAAC,EAGD,CAACK,EAAW,EAAGC,EAAY,CAAC,EAAI,MAAM,QAAQN,GAAA,YAAAA,EAAS,MAAM,EAC7DA,EAAQ,OACR,CAACA,EAAQ,OAAQ,CAAC,EAElBO,GAAaV,EAAA,KAAK,KAAK,SAAS,KACjCW,GAAOA,EAAG,UACf,IAFmB,YAAAX,EAEhB,WAEGY,EAAa,CACfvB,EAAO,CACH,SAAAmB,EACA,UAAAC,CACJ,CAAC,EACDnB,EAAM,CAAE,QAASM,CAA0B,CAAC,EAC5CW,EACAhB,EAAK,CACD,QAASK,EACT,MAAO,CAAC,CACJ,eAAAiB,EACA,gBAAAC,EACA,MAAO,CAAE,SAAAC,CAAS,CACtB,IAAM,CACF,MAAMC,EAAY,KAAK,IACnBnB,EACA,KAAK,MAAMiB,CAAe,CAC9B,EACMG,EAAeF,EAAS,OAC9B,KAAK,cAAiB,KAAK,eAErB,KAAK,eAAiBE,EAC5B,KAAK,cACDA,EAAe,KAAK,eACpBD,GAAaC,EACjB,MAAMC,EAAgB,KAAK,cACrB,GAAGF,CAAS,KACZ,GACN,OAAO,OAAOd,EAAO,MAAO,CACxB,SAAU,GAAG,KAAK,MAAMW,CAAc,CAAC,KACvC,UAAWK,EACX,OAAQA,CACZ,CAAC,CACL,CACJ,CAAC,EACD,GAAIR,EACE,CACIzB,EAAM,CACF,QAASyB,EACT,QACIP,EAAQ,YAAcP,CAC9B,CAAC,CACL,EACA,CAAC,EACPJ,EAAuB,CAC3B,EACM,CAAE,EAAA2B,EAAG,EAAAC,EAAG,UAAArB,EAAW,eAAAsB,CAAe,EAAI,MAAMlC,EAC9CgB,EAAQ,QACRD,EACA,CACI,UAAWC,EAAQ,UACnB,WAAAS,EACA,SAAU,OACd,CACJ,EAgBA,GAfA,OAAO,OAAOV,EAAO,MAAO,CACxB,IAAK,MACL,KAAM,MACN,UAAW,GAAGT,EAAW0B,CAAC,CAAC,MAAM1B,EAAW2B,CAAC,CAAC,IAClD,CAAC,EAEDlB,EAAO,aAAa,mBAAoBH,CAAS,GACjDO,EAAA,KAAK,KAAK,WAAV,MAAAA,EAAoB,QAASD,GAAY,CACrC,KAAK,mBAAmB,IACpBA,EACAA,EAAQ,aAAa,WAAW,CACpC,EACAA,EAAQ,aAAa,YAAaN,CAAS,CAC/C,GAEIW,GAAcW,EAAe,MAAO,CACpC,KAAM,CAAE,EAAGC,EAAQ,EAAGC,CAAO,EAAIF,EAAe,MAEhD,OAAO,OAAOX,EAAW,MAAO,CAC5B,IACIX,EAAU,WAAW,OAAO,GAC5BA,EAAU,WAAW,MAAM,EACrB,MACA,GACV,KACIA,EAAU,WAAW,QAAQ,GAC7BA,EAAU,WAAW,KAAK,EACpB,MACA,GACV,UAAW,GAAGN,EAAW6B,CAAM,CAAC,MAAM7B,EAAW8B,CAAM,CAAC,IAC5D,CAAC,CACL,CACJ,CAcA,eAAsB,CAClB,SAAS,iBACL,qBACA,KAAK,oBACT,CACJ,CAEA,aAAoB,CAnRxB,IAAAvB,EAoRc,KAAK,KAAiB,QACxBA,EAAA,KAAK,UAAL,MAAAA,EAAA,WACA,KAAK,QAAU,OAEvB,CAEA,kBAAyB,CA1R7B,IAAAA,GA2RQA,EAAA,KAAK,UAAL,MAAAA,EAAA,WACA,KAAK,QAAU,OACf,SAAS,oBACL,qBACA,KAAK,oBACT,CACJ,CACJ",
|
|
6
|
-
"names": ["arrow", "autoUpdate", "computePosition", "flip", "offset", "shift", "size", "topLayerOverTransforms", "roundByDPR", "num", "dpr", "REQUIRED_DISTANCE_TO_EDGE", "MIN_OVERLAY_HEIGHT", "getFallbackPlacements", "placement", "_a", "host", "target", "options", "cleanup", "element", "_b", "flipMiddleware", "mainAxis", "crossAxis", "tipElement", "el", "middleware", "availableWidth", "availableHeight", "floating", "maxHeight", "actualHeight", "appliedHeight", "x", "y", "middlewareData", "arrowX", "arrowY"]
|
|
7
|
-
}
|
package/src/fullSizePlugin.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { MiddlewareArguments, MiddlewareReturn } from '@floating-ui/dom';
|
|
2
|
-
export declare const fullSize: (options?: {
|
|
3
|
-
padding: number;
|
|
4
|
-
}) => {
|
|
5
|
-
name: string;
|
|
6
|
-
fn(middlewareArguments: MiddlewareArguments): Promise<MiddlewareReturn & {
|
|
7
|
-
data: {
|
|
8
|
-
availableWidth: number;
|
|
9
|
-
availableHeight: number;
|
|
10
|
-
};
|
|
11
|
-
}>;
|
|
12
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import {
|
|
3
|
-
detectOverflow
|
|
4
|
-
} from "@floating-ui/dom";
|
|
5
|
-
export const fullSize = (options = { padding: 0 }) => ({
|
|
6
|
-
name: "fullSize",
|
|
7
|
-
async fn(middlewareArguments) {
|
|
8
|
-
var _a, _b, _c, _d;
|
|
9
|
-
const overflow = await detectOverflow(middlewareArguments, options);
|
|
10
|
-
let availableHeight = -overflow.top - overflow.bottom + middlewareArguments.rects.floating.height;
|
|
11
|
-
let availableWidth = -overflow.left - overflow.right + middlewareArguments.rects.floating.width;
|
|
12
|
-
if (middlewareArguments.placement.startsWith("bottom")) {
|
|
13
|
-
availableHeight -= middlewareArguments.rects.reference.height;
|
|
14
|
-
availableHeight -= middlewareArguments.rects.reference.y;
|
|
15
|
-
availableHeight -= ((_a = middlewareArguments.middlewareData.offset) == null ? void 0 : _a.y) || 0;
|
|
16
|
-
availableHeight += options.padding;
|
|
17
|
-
} else if (middlewareArguments.placement.startsWith("top")) {
|
|
18
|
-
availableHeight = middlewareArguments.rects.reference.y;
|
|
19
|
-
availableHeight -= ((_b = middlewareArguments.middlewareData.offset) == null ? void 0 : _b.y) || 0;
|
|
20
|
-
availableHeight += options.padding;
|
|
21
|
-
} else if (middlewareArguments.placement.startsWith("right")) {
|
|
22
|
-
availableWidth -= middlewareArguments.rects.reference.width;
|
|
23
|
-
availableWidth -= middlewareArguments.rects.reference.x;
|
|
24
|
-
availableWidth -= ((_c = middlewareArguments.middlewareData.offset) == null ? void 0 : _c.x) || 0;
|
|
25
|
-
availableWidth += options.padding;
|
|
26
|
-
} else if (middlewareArguments.placement.startsWith("left")) {
|
|
27
|
-
availableWidth = middlewareArguments.rects.reference.x;
|
|
28
|
-
availableWidth -= ((_d = middlewareArguments.middlewareData.offset) == null ? void 0 : _d.x) || 0;
|
|
29
|
-
availableWidth += options.padding;
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
data: {
|
|
33
|
-
availableWidth,
|
|
34
|
-
availableHeight
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=fullSizePlugin.dev.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["fullSizePlugin.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n detectOverflow,\n MiddlewareArguments,\n MiddlewareReturn,\n} from '@floating-ui/dom';\n\nexport const fullSize = (options: { padding: number } = { padding: 0 }) => ({\n name: 'fullSize',\n async fn(middlewareArguments: MiddlewareArguments): Promise<\n MiddlewareReturn & {\n data: { availableWidth: number; availableHeight: number };\n }\n > {\n const overflow = await detectOverflow(middlewareArguments, options);\n let availableHeight =\n -overflow.top -\n overflow.bottom +\n middlewareArguments.rects.floating.height;\n let availableWidth =\n -overflow.left -\n overflow.right +\n middlewareArguments.rects.floating.width;\n if (middlewareArguments.placement.startsWith('bottom')) {\n availableHeight -= middlewareArguments.rects.reference.height;\n availableHeight -= middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('top')) {\n availableHeight = middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('right')) {\n availableWidth -= middlewareArguments.rects.reference.width;\n availableWidth -= middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n } else if (middlewareArguments.placement.startsWith('left')) {\n availableWidth = middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n }\n return {\n data: {\n availableWidth,\n availableHeight,\n },\n };\n },\n});\n"],
|
|
5
|
-
"mappings": ";AAWA;AAAA,EACI;AAAA,OAGG;AAEA,aAAM,WAAW,CAAC,UAA+B,EAAE,SAAS,EAAE,OAAO;AAAA,EACxE,MAAM;AAAA,EACN,MAAM,GAAG,qBAIP;AAvBN;AAwBQ,UAAM,WAAW,MAAM,eAAe,qBAAqB,OAAO;AAClE,QAAI,kBACA,CAAC,SAAS,MACV,SAAS,SACT,oBAAoB,MAAM,SAAS;AACvC,QAAI,iBACA,CAAC,SAAS,OACV,SAAS,QACT,oBAAoB,MAAM,SAAS;AACvC,QAAI,oBAAoB,UAAU,WAAW,QAAQ,GAAG;AACpD,yBAAmB,oBAAoB,MAAM,UAAU;AACvD,yBAAmB,oBAAoB,MAAM,UAAU;AACvD,2BACI,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AACpD,yBAAmB,QAAQ;AAAA,IAC/B,WAAW,oBAAoB,UAAU,WAAW,KAAK,GAAG;AACxD,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,2BACI,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AACpD,yBAAmB,QAAQ;AAAA,IAC/B,WAAW,oBAAoB,UAAU,WAAW,OAAO,GAAG;AAC1D,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,0BAAkB,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AAClE,wBAAkB,QAAQ;AAAA,IAC9B,WAAW,oBAAoB,UAAU,WAAW,MAAM,GAAG;AACzD,uBAAiB,oBAAoB,MAAM,UAAU;AACrD,0BAAkB,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AAClE,wBAAkB,QAAQ;AAAA,IAC9B;AACA,WAAO;AAAA,MACH,MAAM;AAAA,QACF;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/src/fullSizePlugin.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";import{detectOverflow as o}from"@floating-ui/dom";export const fullSize=(f={padding:0})=>({name:"fullSize",async fn(t){var c,l,r,h;const i=await o(t,f);let e=-i.top-i.bottom+t.rects.floating.height,a=-i.left-i.right+t.rects.floating.width;return t.placement.startsWith("bottom")?(e-=t.rects.reference.height,e-=t.rects.reference.y,e-=((c=t.middlewareData.offset)==null?void 0:c.y)||0,e+=f.padding):t.placement.startsWith("top")?(e=t.rects.reference.y,e-=((l=t.middlewareData.offset)==null?void 0:l.y)||0,e+=f.padding):t.placement.startsWith("right")?(a-=t.rects.reference.width,a-=t.rects.reference.x,a-=((r=t.middlewareData.offset)==null?void 0:r.x)||0,a+=f.padding):t.placement.startsWith("left")&&(a=t.rects.reference.x,a-=((h=t.middlewareData.offset)==null?void 0:h.x)||0,a+=f.padding),{data:{availableWidth:a,availableHeight:e}}}});
|
|
2
|
-
//# sourceMappingURL=fullSizePlugin.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["fullSizePlugin.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n detectOverflow,\n MiddlewareArguments,\n MiddlewareReturn,\n} from '@floating-ui/dom';\n\nexport const fullSize = (options: { padding: number } = { padding: 0 }) => ({\n name: 'fullSize',\n async fn(middlewareArguments: MiddlewareArguments): Promise<\n MiddlewareReturn & {\n data: { availableWidth: number; availableHeight: number };\n }\n > {\n const overflow = await detectOverflow(middlewareArguments, options);\n let availableHeight =\n -overflow.top -\n overflow.bottom +\n middlewareArguments.rects.floating.height;\n let availableWidth =\n -overflow.left -\n overflow.right +\n middlewareArguments.rects.floating.width;\n if (middlewareArguments.placement.startsWith('bottom')) {\n availableHeight -= middlewareArguments.rects.reference.height;\n availableHeight -= middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('top')) {\n availableHeight = middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('right')) {\n availableWidth -= middlewareArguments.rects.reference.width;\n availableWidth -= middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n } else if (middlewareArguments.placement.startsWith('left')) {\n availableWidth = middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n }\n return {\n data: {\n availableWidth,\n availableHeight,\n },\n };\n },\n});\n"],
|
|
5
|
-
"mappings": "aAWA,OACI,kBAAAA,MAGG,mBAEA,aAAM,SAAW,CAACC,EAA+B,CAAE,QAAS,CAAE,KAAO,CACxE,KAAM,WACN,MAAM,GAAGC,EAIP,CAvBN,IAAAC,EAAAC,EAAAC,EAAAC,EAwBQ,MAAMC,EAAW,MAAMP,EAAeE,EAAqBD,CAAO,EAClE,IAAIO,EACA,CAACD,EAAS,IACVA,EAAS,OACTL,EAAoB,MAAM,SAAS,OACnCO,EACA,CAACF,EAAS,KACVA,EAAS,MACTL,EAAoB,MAAM,SAAS,MACvC,OAAIA,EAAoB,UAAU,WAAW,QAAQ,GACjDM,GAAmBN,EAAoB,MAAM,UAAU,OACvDM,GAAmBN,EAAoB,MAAM,UAAU,EACvDM,KACIL,EAAAD,EAAoB,eAAe,SAAnC,YAAAC,EAA2C,IAAK,EACpDK,GAAmBP,EAAQ,SACpBC,EAAoB,UAAU,WAAW,KAAK,GACrDM,EAAkBN,EAAoB,MAAM,UAAU,EACtDM,KACIJ,EAAAF,EAAoB,eAAe,SAAnC,YAAAE,EAA2C,IAAK,EACpDI,GAAmBP,EAAQ,SACpBC,EAAoB,UAAU,WAAW,OAAO,GACvDO,GAAkBP,EAAoB,MAAM,UAAU,MACtDO,GAAkBP,EAAoB,MAAM,UAAU,EACtDO,KAAkBJ,EAAAH,EAAoB,eAAe,SAAnC,YAAAG,EAA2C,IAAK,EAClEI,GAAkBR,EAAQ,SACnBC,EAAoB,UAAU,WAAW,MAAM,IACtDO,EAAiBP,EAAoB,MAAM,UAAU,EACrDO,KAAkBH,EAAAJ,EAAoB,eAAe,SAAnC,YAAAI,EAA2C,IAAK,EAClEG,GAAkBR,EAAQ,SAEvB,CACH,KAAM,CACF,eAAAQ,EACA,gBAAAD,CACJ,CACJ,CACJ,CACJ",
|
|
6
|
-
"names": ["detectOverflow", "options", "middlewareArguments", "_a", "_b", "_c", "_d", "overflow", "availableHeight", "availableWidth"]
|
|
7
|
-
}
|
package/src/overlay.css.dev.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import { css } from "@spectrum-web-components/base";
|
|
3
|
-
const styles = css`
|
|
4
|
-
:host{--swc-overlay-animation-distance:var(
|
|
5
|
-
--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)
|
|
6
|
-
);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}.dialog::backdrop{display:none}.dialog:before{content:"";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){--mod-popover-pointer-width:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));--mod-popover-pointer-height:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}
|
|
7
|
-
`;
|
|
8
|
-
export default styles;
|
|
9
|
-
//# sourceMappingURL=overlay.css.dev.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["overlay.css.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--swc-overlay-animation-distance:var(\n--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)\n);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}.dialog::backdrop{display:none}.dialog:before{content:\"\";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){--mod-popover-pointer-width:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));--mod-popover-pointer-height:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}\n`;\nexport default styles;"],
|
|
5
|
-
"mappings": ";AAWA,SAAS,WAAW;AACpB,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAKf,eAAe;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/src/overlay.css.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";import{css as a}from"@spectrum-web-components/base";const o=a`
|
|
2
|
-
:host{--swc-overlay-animation-distance:var(
|
|
3
|
-
--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)
|
|
4
|
-
);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}.dialog::backdrop{display:none}.dialog:before{content:"";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){--mod-popover-pointer-width:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));--mod-popover-pointer-height:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}
|
|
5
|
-
`;export default o;
|
|
6
|
-
//# sourceMappingURL=overlay.css.js.map
|
package/src/overlay.css.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["overlay.css.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { css } from '@spectrum-web-components/base';\nconst styles = css`\n:host{--swc-overlay-animation-distance:var(\n--spectrum-picker-m-texticon-popover-offset-y,var(--spectrum-global-dimension-size-75)\n);display:contents;pointer-events:none}.dialog{--sp-overlay-open:true;background:none;border:0;box-sizing:border-box;display:flex;inset:auto;left:0;margin:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);opacity:1!important;overflow:visible;padding:0;position:fixed;top:0}:host(:not([open])) .dialog{--sp-overlay-open:false}.dialog:not([is-visible]){translate:-999em -999em!important}.dialog:focus{outline:none}.dialog::backdrop{display:none}.dialog:before{content:\"\";inset:-999em;pointer-events:auto!important;position:absolute}.dialog:not(.not-immediately-closable):before{display:none}.dialog>div{width:100%}::slotted(*){pointer-events:auto}::slotted(sp-popover){--mod-popover-pointer-width:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));--mod-popover-pointer-height:max(var(--spectrum-popover-pointer-width),var(--spectrum-popover-pointer-height));position:static}::slotted(sp-tooltip){--swc-tooltip-margin:0}.dialog:not([actual-placement])[placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog:not([actual-placement])[placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=top]{margin-top:var(--swc-overlay-animation-distance);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=right]{margin-left:calc(var(--swc-overlay-animation-distance)*-1);padding-inline:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=bottom]{margin-top:calc(var(--swc-overlay-animation-distance)*-1);padding-block:var(--swc-overlay-animation-distance)}.dialog[actual-placement*=left]{margin-left:var(--swc-overlay-animation-distance);padding-inline:var(--swc-overlay-animation-distance)}slot[name=longpress-describedby-descriptor]{display:none}@supports selector(:open){.dialog{opacity:0}.dialog:open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports selector(:popover-open){.dialog{opacity:0}.dialog:popover-open{--mod-popover-filter:var(--spectrum-popover-filter);opacity:1}}@supports (not selector(:open)) and (not selector(:popover-open)){:host:not([open]) .dialog{pointer-events:none}.dialog[actual-placement]{z-index:calc(var(--swc-overlay-z-index-base, 1000) + var(--swc-overlay-open-count))}}\n`;\nexport default styles;"],
|
|
5
|
-
"mappings": "aAWA,OAAS,OAAAA,MAAW,gCACpB,MAAMC,EAASD;AAAA;AAAA;AAAA;AAAA,EAKf,eAAeC",
|
|
6
|
-
"names": ["css", "styles"]
|
|
7
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import {
|
|
3
|
-
getContainingBlock,
|
|
4
|
-
getWindow,
|
|
5
|
-
isContainingBlock
|
|
6
|
-
} from "@floating-ui/utils/dom";
|
|
7
|
-
import { VirtualTrigger } from "./VirtualTrigger.dev.js";
|
|
8
|
-
export const topLayerOverTransforms = () => ({
|
|
9
|
-
name: "topLayer",
|
|
10
|
-
async fn(middlewareArguments) {
|
|
11
|
-
const {
|
|
12
|
-
x,
|
|
13
|
-
y,
|
|
14
|
-
elements: { reference, floating }
|
|
15
|
-
} = middlewareArguments;
|
|
16
|
-
let onTopLayer = false;
|
|
17
|
-
let topLayerIsFloating = false;
|
|
18
|
-
let withinReference = false;
|
|
19
|
-
const diffCoords = {
|
|
20
|
-
x: 0,
|
|
21
|
-
y: 0
|
|
22
|
-
};
|
|
23
|
-
try {
|
|
24
|
-
onTopLayer = onTopLayer || floating.matches(":popover-open");
|
|
25
|
-
} catch (error) {
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
onTopLayer = onTopLayer || floating.matches(":open");
|
|
29
|
-
} catch (error) {
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
onTopLayer = onTopLayer || floating.matches(":modal");
|
|
33
|
-
} catch (error) {
|
|
34
|
-
}
|
|
35
|
-
topLayerIsFloating = onTopLayer;
|
|
36
|
-
const dialogAncestorQueryEvent = new Event("floating-ui-dialog-test", {
|
|
37
|
-
composed: true,
|
|
38
|
-
bubbles: true
|
|
39
|
-
});
|
|
40
|
-
floating.addEventListener(
|
|
41
|
-
"floating-ui-dialog-test",
|
|
42
|
-
(event) => {
|
|
43
|
-
event.composedPath().forEach((el) => {
|
|
44
|
-
withinReference = withinReference || el === reference;
|
|
45
|
-
if (el === floating || el.localName !== "dialog")
|
|
46
|
-
return;
|
|
47
|
-
try {
|
|
48
|
-
onTopLayer = onTopLayer || el.matches(":modal");
|
|
49
|
-
} catch (error) {
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
{ once: true }
|
|
54
|
-
);
|
|
55
|
-
floating.dispatchEvent(dialogAncestorQueryEvent);
|
|
56
|
-
let overTransforms = false;
|
|
57
|
-
if (!(reference instanceof VirtualTrigger)) {
|
|
58
|
-
const containingBlock = isContainingBlock(reference) ? reference : getContainingBlock(reference);
|
|
59
|
-
if (containingBlock !== null && getWindow(containingBlock) !== containingBlock) {
|
|
60
|
-
const css = getComputedStyle(containingBlock);
|
|
61
|
-
overTransforms = withinReference && (css.transform !== "none" || css.filter !== "none");
|
|
62
|
-
}
|
|
63
|
-
if (onTopLayer && overTransforms && containingBlock) {
|
|
64
|
-
const rect = containingBlock.getBoundingClientRect();
|
|
65
|
-
diffCoords.x = rect.x;
|
|
66
|
-
diffCoords.y = rect.y;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (onTopLayer && topLayerIsFloating) {
|
|
70
|
-
return {
|
|
71
|
-
x: x + diffCoords.x,
|
|
72
|
-
y: y + diffCoords.y,
|
|
73
|
-
data: diffCoords
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
if (onTopLayer) {
|
|
77
|
-
return {
|
|
78
|
-
x,
|
|
79
|
-
y,
|
|
80
|
-
data: diffCoords
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
x: x - diffCoords.x,
|
|
85
|
-
y: y - diffCoords.y,
|
|
86
|
-
data: diffCoords
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=topLayerOverTransforms.dev.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["topLayerOverTransforms.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport type { Middleware, MiddlewareState } from '@floating-ui/dom';\nimport {\n getContainingBlock,\n getWindow,\n isContainingBlock,\n} from '@floating-ui/utils/dom';\nimport { VirtualTrigger } from './VirtualTrigger.dev.js'\n\nexport const topLayerOverTransforms = (): Middleware => ({\n name: 'topLayer',\n async fn(middlewareArguments: MiddlewareState) {\n const {\n x,\n y,\n elements: { reference, floating },\n } = middlewareArguments;\n let onTopLayer = false;\n let topLayerIsFloating = false;\n let withinReference = false;\n const diffCoords = {\n x: 0,\n y: 0,\n };\n try {\n onTopLayer = onTopLayer || floating.matches(':popover-open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':open');\n // eslint-disable-next-line no-empty\n } catch (error) {}\n try {\n onTopLayer = onTopLayer || floating.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next 3 */\n } catch (error) {}\n topLayerIsFloating = onTopLayer;\n const dialogAncestorQueryEvent = new Event('floating-ui-dialog-test', {\n composed: true,\n bubbles: true,\n });\n floating.addEventListener(\n 'floating-ui-dialog-test',\n (event: Event) => {\n (event.composedPath() as unknown as Element[]).forEach((el) => {\n withinReference = withinReference || el === reference;\n if (el === floating || el.localName !== 'dialog') return;\n try {\n onTopLayer = onTopLayer || el.matches(':modal');\n // eslint-disable-next-line no-empty\n /* c8 ignore next */\n } catch (error) {}\n });\n },\n { once: true }\n );\n floating.dispatchEvent(dialogAncestorQueryEvent);\n let overTransforms = false;\n if (!(reference instanceof VirtualTrigger)) {\n const containingBlock = isContainingBlock(reference as Element)\n ? (reference as Element)\n : getContainingBlock(reference as Element);\n if (\n containingBlock !== null &&\n getWindow(containingBlock) !==\n (containingBlock as unknown as Window)\n ) {\n const css = getComputedStyle(containingBlock);\n overTransforms =\n withinReference &&\n (css.transform !== 'none' || css.filter !== 'none');\n }\n\n if (onTopLayer && overTransforms && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n diffCoords.x = rect.x;\n diffCoords.y = rect.y;\n }\n }\n\n if (onTopLayer && topLayerIsFloating) {\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords,\n };\n }\n\n if (onTopLayer) {\n return {\n x,\n y,\n data: diffCoords,\n };\n }\n\n return {\n x: x - diffCoords.x,\n y: y - diffCoords.y,\n data: diffCoords,\n };\n },\n});\n"],
|
|
5
|
-
"mappings": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,sBAAsB;AAExB,aAAM,yBAAyB,OAAmB;AAAA,EACrD,MAAM;AAAA,EACN,MAAM,GAAG,qBAAsC;AAC3C,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA,UAAU,EAAE,WAAW,SAAS;AAAA,IACpC,IAAI;AACJ,QAAI,aAAa;AACjB,QAAI,qBAAqB;AACzB,QAAI,kBAAkB;AACtB,UAAM,aAAa;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AACA,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,eAAe;AAAA,IAE/D,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,OAAO;AAAA,IAEvD,SAAS,OAAO;AAAA,IAAC;AACjB,QAAI;AACA,mBAAa,cAAc,SAAS,QAAQ,QAAQ;AAAA,IAGxD,SAAS,OAAO;AAAA,IAAC;AACjB,yBAAqB;AACrB,UAAM,2BAA2B,IAAI,MAAM,2BAA2B;AAAA,MAClE,UAAU;AAAA,MACV,SAAS;AAAA,IACb,CAAC;AACD,aAAS;AAAA,MACL;AAAA,MACA,CAAC,UAAiB;AACd,QAAC,MAAM,aAAa,EAA2B,QAAQ,CAAC,OAAO;AAC3D,4BAAkB,mBAAmB,OAAO;AAC5C,cAAI,OAAO,YAAY,GAAG,cAAc;AAAU;AAClD,cAAI;AACA,yBAAa,cAAc,GAAG,QAAQ,QAAQ;AAAA,UAGlD,SAAS,OAAO;AAAA,UAAC;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IACjB;AACA,aAAS,cAAc,wBAAwB;AAC/C,QAAI,iBAAiB;AACrB,QAAI,EAAE,qBAAqB,iBAAiB;AACxC,YAAM,kBAAkB,kBAAkB,SAAoB,IACvD,YACD,mBAAmB,SAAoB;AAC7C,UACI,oBAAoB,QACpB,UAAU,eAAe,MACpB,iBACP;AACE,cAAM,MAAM,iBAAiB,eAAe;AAC5C,yBACI,oBACC,IAAI,cAAc,UAAU,IAAI,WAAW;AAAA,MACpD;AAEA,UAAI,cAAc,kBAAkB,iBAAiB;AACjD,cAAM,OAAO,gBAAgB,sBAAsB;AACnD,mBAAW,IAAI,KAAK;AACpB,mBAAW,IAAI,KAAK;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI,cAAc,oBAAoB;AAClC,aAAO;AAAA,QACH,GAAG,IAAI,WAAW;AAAA,QAClB,GAAG,IAAI,WAAW;AAAA,QAClB,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,QAAI,YAAY;AACZ,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,GAAG,IAAI,WAAW;AAAA,MAClB,GAAG,IAAI,WAAW;AAAA,MAClB,MAAM;AAAA,IACV;AAAA,EACJ;AACJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";import{getContainingBlock as y,getWindow as g,isContainingBlock as u}from"@floating-ui/utils/dom";import{VirtualTrigger as p}from"./VirtualTrigger.js";export const topLayerOverTransforms=()=>({name:"topLayer",async fn(f){const{x:i,y:s,elements:{reference:a,floating:r}}=f;let e=!1,l=!1,c=!1;const o={x:0,y:0};try{e=e||r.matches(":popover-open")}catch(t){}try{e=e||r.matches(":open")}catch(t){}try{e=e||r.matches(":modal")}catch(t){}l=e;const m=new Event("floating-ui-dialog-test",{composed:!0,bubbles:!0});r.addEventListener("floating-ui-dialog-test",t=>{t.composedPath().forEach(n=>{if(c=c||n===a,!(n===r||n.localName!=="dialog"))try{e=e||n.matches(":modal")}catch(h){}})},{once:!0}),r.dispatchEvent(m);let d=!1;if(!(a instanceof p)){const t=u(a)?a:y(a);if(t!==null&&g(t)!==t){const n=getComputedStyle(t);d=c&&(n.transform!=="none"||n.filter!=="none")}if(e&&d&&t){const n=t.getBoundingClientRect();o.x=n.x,o.y=n.y}}return e&&l?{x:i+o.x,y:s+o.y,data:o}:e?{x:i,y:s,data:o}:{x:i-o.x,y:s-o.y,data:o}}});
|
|
2
|
-
//# sourceMappingURL=topLayerOverTransforms.js.map
|