@spectrum-web-components/overlay 1.1.0-beta.8 → 1.1.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/package.json +7 -7
- package/overlay-trigger.d.ts +0 -6
- package/overlay-trigger.dev.js +0 -5
- package/overlay-trigger.dev.js.map +0 -7
- package/overlay-trigger.js +0 -2
- package/overlay-trigger.js.map +0 -7
- package/sp-overlay.d.ts +0 -6
- package/sp-overlay.dev.js +0 -5
- package/sp-overlay.dev.js.map +0 -7
- package/sp-overlay.js +0 -2
- package/sp-overlay.js.map +0 -7
- package/src/AbstractOverlay.d.ts +0 -72
- package/src/AbstractOverlay.dev.js +0 -234
- package/src/AbstractOverlay.dev.js.map +0 -7
- package/src/AbstractOverlay.js +0 -2
- package/src/AbstractOverlay.js.map +0 -7
- package/src/ClickController.d.ts +0 -14
- package/src/ClickController.dev.js +0 -42
- package/src/ClickController.dev.js.map +0 -7
- package/src/ClickController.js +0 -2
- package/src/ClickController.js.map +0 -7
- package/src/HoverController.d.ts +0 -20
- package/src/HoverController.dev.js +0 -153
- package/src/HoverController.dev.js.map +0 -7
- package/src/HoverController.js +0 -2
- package/src/HoverController.js.map +0 -7
- package/src/InteractionController.d.ts +0 -38
- package/src/InteractionController.dev.js +0 -90
- package/src/InteractionController.dev.js.map +0 -7
- package/src/InteractionController.js +0 -2
- package/src/InteractionController.js.map +0 -7
- package/src/LongpressController.d.ts +0 -21
- package/src/LongpressController.dev.js +0 -156
- package/src/LongpressController.dev.js.map +0 -7
- package/src/LongpressController.js +0 -2
- package/src/LongpressController.js.map +0 -7
- package/src/Overlay.d.ts +0 -134
- package/src/Overlay.dev.js +0 -534
- 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 -139
- 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 -117
- 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 -199
- 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 -44
- package/src/OverlayStack.dev.js +0 -160
- package/src/OverlayStack.dev.js.map +0 -7
- package/src/OverlayStack.js +0 -2
- package/src/OverlayStack.js.map +0 -7
- package/src/OverlayTrigger.d.ts +0 -52
- package/src/OverlayTrigger.dev.js +0 -243
- package/src/OverlayTrigger.dev.js.map +0 -7
- package/src/OverlayTrigger.js +0 -57
- package/src/OverlayTrigger.js.map +0 -7
- package/src/PlacementController.d.ts +0 -40
- package/src/PlacementController.dev.js +0 -212
- package/src/PlacementController.dev.js.map +0 -7
- package/src/PlacementController.js +0 -2
- package/src/PlacementController.js.map +0 -7
- package/src/VirtualTrigger.d.ts +0 -7
- package/src/VirtualTrigger.dev.js +0 -32
- package/src/VirtualTrigger.dev.js.map +0 -7
- package/src/VirtualTrigger.js +0 -2
- package/src/VirtualTrigger.js.map +0 -7
- package/src/events.d.ts +0 -23
- package/src/events.dev.js +0 -39
- package/src/events.dev.js.map +0 -7
- package/src/events.js +0 -2
- package/src/events.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/index.d.ts +0 -6
- package/src/index.dev.js +0 -8
- package/src/index.dev.js.map +0 -7
- package/src/index.js +0 -2
- package/src/index.js.map +0 -7
- package/src/loader.d.ts +0 -4
- package/src/loader.dev.js +0 -11
- package/src/loader.dev.js.map +0 -7
- package/src/loader.js +0 -2
- package/src/loader.js.map +0 -7
- package/src/overlay-events.d.ts +0 -11
- package/src/overlay-events.dev.js +0 -8
- package/src/overlay-events.dev.js.map +0 -7
- package/src/overlay-events.js +0 -2
- package/src/overlay-events.js.map +0 -7
- package/src/overlay-timer.d.ts +0 -22
- package/src/overlay-timer.dev.js +0 -72
- package/src/overlay-timer.dev.js.map +0 -7
- package/src/overlay-timer.js +0 -2
- package/src/overlay-timer.js.map +0 -7
- package/src/overlay-trigger-directive.d.ts +0 -26
- package/src/overlay-trigger-directive.dev.js +0 -87
- package/src/overlay-trigger-directive.dev.js.map +0 -7
- package/src/overlay-trigger-directive.js +0 -2
- package/src/overlay-trigger-directive.js.map +0 -7
- package/src/overlay-trigger.css.d.ts +0 -2
- package/src/overlay-trigger.css.dev.js +0 -7
- package/src/overlay-trigger.css.dev.js.map +0 -7
- package/src/overlay-trigger.css.js +0 -4
- package/src/overlay-trigger.css.js.map +0 -7
- package/src/overlay-types.d.ts +0 -50
- package/src/overlay-types.dev.js +0 -3
- package/src/overlay-types.dev.js.map +0 -7
- package/src/overlay-types.js +0 -2
- package/src/overlay-types.js.map +0 -7
- package/src/overlay.css.d.ts +0 -2
- package/src/overlay.css.dev.js +0 -7
- package/src/overlay.css.dev.js.map +0 -7
- package/src/overlay.css.js +0 -4
- package/src/overlay.css.js.map +0 -7
- package/src/slottable-request-directive.d.ts +0 -17
- package/src/slottable-request-directive.dev.js +0 -66
- package/src/slottable-request-directive.dev.js.map +0 -7
- package/src/slottable-request-directive.js +0 -2
- package/src/slottable-request-directive.js.map +0 -7
- package/src/slottable-request-event.d.ts +0 -12
- package/src/slottable-request-event.dev.js +0 -28
- package/src/slottable-request-event.dev.js.map +0 -7
- package/src/slottable-request-event.js +0 -2
- package/src/slottable-request-event.js.map +0 -7
- package/src/strategies.d.ts +0 -8
- package/src/strategies.dev.js +0 -10
- package/src/strategies.dev.js.map +0 -7
- package/src/strategies.js +0 -2
- package/src/strategies.js.map +0 -7
- package/stories/index.js +0 -40
- package/stories/index.js.map +0 -7
- package/stories/overlay-directive.stories.js +0 -324
- package/stories/overlay-directive.stories.js.map +0 -7
- package/stories/overlay-element.stories.js +0 -675
- package/stories/overlay-element.stories.js.map +0 -7
- package/stories/overlay-story-components.js +0 -338
- package/stories/overlay-story-components.js.map +0 -7
- package/stories/overlay.stories.js +0 -1397
- package/stories/overlay.stories.js.map +0 -7
- package/sync/overlay-trigger.d.ts +0 -6
- package/sync/overlay-trigger.dev.js +0 -6
- package/sync/overlay-trigger.dev.js.map +0 -7
- package/sync/overlay-trigger.js +0 -2
- package/sync/overlay-trigger.js.map +0 -7
- package/test/benchmark/basic-test.js +0 -40
- package/test/benchmark/basic-test.js.map +0 -7
- package/test/benchmark/directive-test.js +0 -43
- package/test/benchmark/directive-test.js.map +0 -7
- package/test/benchmark/element-test.js +0 -40
- package/test/benchmark/element-test.js.map +0 -7
- package/test/benchmark/lazy-test.js +0 -47
- package/test/benchmark/lazy-test.js.map +0 -7
- package/test/index.js +0 -605
- package/test/index.js.map +0 -7
- package/test/overlay-directive.test-vrt.js +0 -5
- package/test/overlay-directive.test-vrt.js.map +0 -7
- package/test/overlay-directive.test.js +0 -162
- package/test/overlay-directive.test.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 -936
- package/test/overlay-element.test.js.map +0 -7
- package/test/overlay-lifecycle.test.js +0 -139
- package/test/overlay-lifecycle.test.js.map +0 -7
- package/test/overlay-memory.test.js +0 -10
- package/test/overlay-memory.test.js.map +0 -7
- package/test/overlay-timer.test.js +0 -118
- package/test/overlay-timer.test.js.map +0 -7
- package/test/overlay-trigger-click.test.js +0 -164
- package/test/overlay-trigger-click.test.js.map +0 -7
- package/test/overlay-trigger-directive.test.js +0 -75
- package/test/overlay-trigger-directive.test.js.map +0 -7
- package/test/overlay-trigger-extended.test.js +0 -235
- package/test/overlay-trigger-extended.test.js.map +0 -7
- package/test/overlay-trigger-hover-click.test.js +0 -225
- package/test/overlay-trigger-hover-click.test.js.map +0 -7
- package/test/overlay-trigger-hover.test.js +0 -308
- package/test/overlay-trigger-hover.test.js.map +0 -7
- package/test/overlay-trigger-longpress.test.js +0 -549
- package/test/overlay-trigger-longpress.test.js.map +0 -7
- package/test/overlay-trigger-sync.test.js +0 -5
- package/test/overlay-trigger-sync.test.js.map +0 -7
- package/test/overlay-trigger.test.js +0 -5
- package/test/overlay-trigger.test.js.map +0 -7
- package/test/overlay-update.test.js +0 -28
- package/test/overlay-update.test.js.map +0 -7
- package/test/overlay-v1.test.js +0 -569
- package/test/overlay-v1.test.js.map +0 -7
- package/test/overlay.test-vrt.js +0 -5
- package/test/overlay.test-vrt.js.map +0 -7
- package/test/overlay.test.js +0 -776
- package/test/overlay.test.js.map +0 -7
package/src/Overlay.d.ts
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { PropertyValues, TemplateResult } from '@spectrum-web-components/base';
|
|
2
|
-
import { ElementResolutionController } from '@spectrum-web-components/reactive-controllers/src/ElementResolution.js';
|
|
3
|
-
import type { OpenableElement, OverlayState, OverlayTypes, Placement, TriggerInteraction } from './overlay-types.js';
|
|
4
|
-
import { AbstractOverlay } from './AbstractOverlay.js';
|
|
5
|
-
import { VirtualTrigger } from './VirtualTrigger.js';
|
|
6
|
-
import { PlacementController } from './PlacementController.js';
|
|
7
|
-
import type { ClickController } from './ClickController.js';
|
|
8
|
-
import type { HoverController } from './HoverController.js';
|
|
9
|
-
import type { LongpressController } from './LongpressController.js';
|
|
10
|
-
export { LONGPRESS_INSTRUCTIONS } from './LongpressController.js';
|
|
11
|
-
declare let OverlayFeatures: typeof AbstractOverlay & import("./overlay-types.js").Constructor<import("@spectrum-web-components/base").SpectrumElement>;
|
|
12
|
-
/**
|
|
13
|
-
* @element sp-overlay
|
|
14
|
-
*
|
|
15
|
-
* @fires sp-opened - announces that an overlay has completed any entry animations
|
|
16
|
-
* @fires sp-closed - announce that an overlay has compelted any exit animations
|
|
17
|
-
* @fires slottable-request - requests to add or remove slottable content
|
|
18
|
-
*/
|
|
19
|
-
export declare class Overlay extends OverlayFeatures {
|
|
20
|
-
static styles: import("@spectrum-web-components/base").CSSResult[];
|
|
21
|
-
/**
|
|
22
|
-
* An Overlay that is `delayed` will wait until a warm-up period of 1000ms
|
|
23
|
-
* has completed before opening. Once the warmup period has completed, all
|
|
24
|
-
* subsequent Overlays will open immediately. When no Overlays are opened,
|
|
25
|
-
* a cooldown period of 1000ms will begin. Once the cooldown has completed,
|
|
26
|
-
* the next Overlay to be opened will be subject to the warm-up period if
|
|
27
|
-
* provided that option.
|
|
28
|
-
*/
|
|
29
|
-
get delayed(): boolean;
|
|
30
|
-
set delayed(delayed: boolean);
|
|
31
|
-
private _delayed;
|
|
32
|
-
dialogEl: HTMLDialogElement & {
|
|
33
|
-
showPopover(): void;
|
|
34
|
-
hidePopover(): void;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Whether the overlay is currently functional or not
|
|
38
|
-
*/
|
|
39
|
-
get disabled(): boolean;
|
|
40
|
-
set disabled(disabled: boolean);
|
|
41
|
-
private _disabled;
|
|
42
|
-
elements: OpenableElement[];
|
|
43
|
-
parentOverlayToForceClose?: Overlay;
|
|
44
|
-
private get hasNonVirtualTrigger();
|
|
45
|
-
/**
|
|
46
|
-
* The `offset` property accepts either a single number, to
|
|
47
|
-
* define the offset of the Overlay along the main axis from
|
|
48
|
-
* the trigger, or 2-tuple, to define the offset along the
|
|
49
|
-
* main axis and the cross axis. This option has no effect
|
|
50
|
-
* when there is no trigger element.
|
|
51
|
-
*/
|
|
52
|
-
offset: number | [number, number];
|
|
53
|
-
protected get placementController(): PlacementController;
|
|
54
|
-
/**
|
|
55
|
-
* Whether the Overlay is projected onto the "top layer" or not.
|
|
56
|
-
*/
|
|
57
|
-
get open(): boolean;
|
|
58
|
-
set open(open: boolean);
|
|
59
|
-
private _open;
|
|
60
|
-
static openCount: number;
|
|
61
|
-
/**
|
|
62
|
-
* Instruct the Overlay where to place itself in
|
|
63
|
-
* relationship to the trigger element.
|
|
64
|
-
* @type {"top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end"}
|
|
65
|
-
*/
|
|
66
|
-
placement?: Placement;
|
|
67
|
-
/**
|
|
68
|
-
* The state in which the last `request-slottable` event was dispatched.
|
|
69
|
-
* Do not allow overlays from dispatching the same state twice in a row.
|
|
70
|
-
*/
|
|
71
|
-
private lastRequestSlottableState;
|
|
72
|
-
/**
|
|
73
|
-
* Whether to pass focus to the overlay once opened, or
|
|
74
|
-
* to the appropriate value based on the "type" of the overlay
|
|
75
|
-
* when set to `"auto"`.
|
|
76
|
-
*
|
|
77
|
-
*/
|
|
78
|
-
receivesFocus: 'true' | 'false' | 'auto';
|
|
79
|
-
slotEl: HTMLSlotElement;
|
|
80
|
-
get state(): OverlayState;
|
|
81
|
-
set state(state: OverlayState);
|
|
82
|
-
_state: OverlayState;
|
|
83
|
-
strategy?: ClickController | HoverController | LongpressController;
|
|
84
|
-
tipPadding?: number;
|
|
85
|
-
/**
|
|
86
|
-
* An optional ID reference for the trigger element combined with the optional
|
|
87
|
-
* interaction (click | hover | longpress) by which the overlay shold open
|
|
88
|
-
* the overlay with an `@`: e.g. `trigger@click` opens the overlay when an
|
|
89
|
-
* element with the ID "trigger" is clicked.
|
|
90
|
-
*/
|
|
91
|
-
trigger?: string;
|
|
92
|
-
/**
|
|
93
|
-
* An element reference for the trigger element that the overlay should relate to.
|
|
94
|
-
*/
|
|
95
|
-
triggerElement: HTMLElement | VirtualTrigger | null;
|
|
96
|
-
/**
|
|
97
|
-
* The specific interaction to listen for on the `triggerElement` to open the overlay.
|
|
98
|
-
*/
|
|
99
|
-
triggerInteraction?: TriggerInteraction;
|
|
100
|
-
/**
|
|
101
|
-
* Configures the open/close heuristics of the Overlay.
|
|
102
|
-
* @type {"auto" | "hint" | "manual" | "modal" | "page"}
|
|
103
|
-
*/
|
|
104
|
-
type: OverlayTypes;
|
|
105
|
-
protected wasOpen: boolean;
|
|
106
|
-
protected get elementResolver(): ElementResolutionController;
|
|
107
|
-
private get usesDialog();
|
|
108
|
-
private get popoverValue();
|
|
109
|
-
protected get requiresPosition(): boolean;
|
|
110
|
-
protected managePosition(): void;
|
|
111
|
-
protected managePopoverOpen(): Promise<void>;
|
|
112
|
-
protected applyFocus(targetOpenState: boolean, focusEl: HTMLElement | null): Promise<void>;
|
|
113
|
-
protected returnFocus(): void;
|
|
114
|
-
private closeOnFocusOut;
|
|
115
|
-
protected manageOpen(oldOpen: boolean): Promise<void>;
|
|
116
|
-
protected bindEvents(): void;
|
|
117
|
-
protected handleBeforetoggle(event: Event & {
|
|
118
|
-
newState: string;
|
|
119
|
-
}): void;
|
|
120
|
-
protected handleBrowserClose(): void;
|
|
121
|
-
manuallyKeepOpen(): void;
|
|
122
|
-
protected handleSlotchange(): void;
|
|
123
|
-
shouldPreventClose(): boolean;
|
|
124
|
-
protected requestSlottable(): void;
|
|
125
|
-
willUpdate(changes: PropertyValues): void;
|
|
126
|
-
protected updated(changes: PropertyValues): void;
|
|
127
|
-
protected renderContent(): TemplateResult;
|
|
128
|
-
private get dialogStyleMap();
|
|
129
|
-
protected renderDialog(): TemplateResult;
|
|
130
|
-
protected renderPopover(): TemplateResult;
|
|
131
|
-
render(): TemplateResult;
|
|
132
|
-
connectedCallback(): void;
|
|
133
|
-
disconnectedCallback(): void;
|
|
134
|
-
}
|
package/src/Overlay.dev.js
DELETED
|
@@ -1,534 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
5
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
6
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
7
|
-
if (decorator = decorators[i])
|
|
8
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
9
|
-
if (kind && result) __defProp(target, key, result);
|
|
10
|
-
return result;
|
|
11
|
-
};
|
|
12
|
-
import {
|
|
13
|
-
html
|
|
14
|
-
} from "@spectrum-web-components/base";
|
|
15
|
-
import {
|
|
16
|
-
property,
|
|
17
|
-
query,
|
|
18
|
-
queryAssignedElements,
|
|
19
|
-
state
|
|
20
|
-
} from "@spectrum-web-components/base/src/decorators.js";
|
|
21
|
-
import {
|
|
22
|
-
ElementResolutionController,
|
|
23
|
-
elementResolverUpdatedSymbol
|
|
24
|
-
} from "@spectrum-web-components/reactive-controllers/src/ElementResolution.js";
|
|
25
|
-
import {
|
|
26
|
-
ifDefined,
|
|
27
|
-
styleMap
|
|
28
|
-
} from "@spectrum-web-components/base/src/directives.js";
|
|
29
|
-
import { randomID } from "@spectrum-web-components/shared/src/random-id.js";
|
|
30
|
-
import { AbstractOverlay, nextFrame } from "./AbstractOverlay.dev.js";
|
|
31
|
-
import { OverlayDialog } from "./OverlayDialog.dev.js";
|
|
32
|
-
import { OverlayPopover } from "./OverlayPopover.dev.js";
|
|
33
|
-
import { OverlayNoPopover } from "./OverlayNoPopover.dev.js";
|
|
34
|
-
import { overlayStack } from "./OverlayStack.dev.js";
|
|
35
|
-
import { VirtualTrigger } from "./VirtualTrigger.dev.js";
|
|
36
|
-
import { PlacementController } from "./PlacementController.dev.js";
|
|
37
|
-
export { LONGPRESS_INSTRUCTIONS } from "./LongpressController.dev.js";
|
|
38
|
-
import { strategies } from "./strategies.dev.js";
|
|
39
|
-
import {
|
|
40
|
-
removeSlottableRequest,
|
|
41
|
-
SlottableRequestEvent
|
|
42
|
-
} from "./slottable-request-event.dev.js";
|
|
43
|
-
import styles from "./overlay.css.js";
|
|
44
|
-
const supportsPopover = "showPopover" in document.createElement("div");
|
|
45
|
-
let OverlayFeatures = OverlayDialog(AbstractOverlay);
|
|
46
|
-
if (supportsPopover) {
|
|
47
|
-
OverlayFeatures = OverlayPopover(OverlayFeatures);
|
|
48
|
-
} else {
|
|
49
|
-
OverlayFeatures = OverlayNoPopover(OverlayFeatures);
|
|
50
|
-
}
|
|
51
|
-
const _Overlay = class _Overlay extends OverlayFeatures {
|
|
52
|
-
constructor() {
|
|
53
|
-
super(...arguments);
|
|
54
|
-
this._delayed = false;
|
|
55
|
-
this._disabled = false;
|
|
56
|
-
this.offset = 0;
|
|
57
|
-
this._open = false;
|
|
58
|
-
/**
|
|
59
|
-
* The state in which the last `request-slottable` event was dispatched.
|
|
60
|
-
* Do not allow overlays from dispatching the same state twice in a row.
|
|
61
|
-
*/
|
|
62
|
-
this.lastRequestSlottableState = false;
|
|
63
|
-
this.receivesFocus = "auto";
|
|
64
|
-
this._state = "closed";
|
|
65
|
-
this.triggerElement = null;
|
|
66
|
-
this.type = "auto";
|
|
67
|
-
this.wasOpen = false;
|
|
68
|
-
this.closeOnFocusOut = (event) => {
|
|
69
|
-
if (!event.relatedTarget) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const relationEvent = new Event("overlay-relation-query", {
|
|
73
|
-
bubbles: true,
|
|
74
|
-
composed: true
|
|
75
|
-
});
|
|
76
|
-
event.relatedTarget.addEventListener(
|
|
77
|
-
relationEvent.type,
|
|
78
|
-
(event2) => {
|
|
79
|
-
if (!event2.composedPath().includes(this)) {
|
|
80
|
-
this.open = false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
event.relatedTarget.dispatchEvent(relationEvent);
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
get delayed() {
|
|
88
|
-
var _a;
|
|
89
|
-
return ((_a = this.elements.at(-1)) == null ? void 0 : _a.hasAttribute("delayed")) || this._delayed;
|
|
90
|
-
}
|
|
91
|
-
set delayed(delayed) {
|
|
92
|
-
this._delayed = delayed;
|
|
93
|
-
}
|
|
94
|
-
get disabled() {
|
|
95
|
-
return this._disabled;
|
|
96
|
-
}
|
|
97
|
-
set disabled(disabled) {
|
|
98
|
-
var _a;
|
|
99
|
-
this._disabled = disabled;
|
|
100
|
-
if (disabled) {
|
|
101
|
-
(_a = this.strategy) == null ? void 0 : _a.abort();
|
|
102
|
-
this.wasOpen = this.open;
|
|
103
|
-
this.open = false;
|
|
104
|
-
} else {
|
|
105
|
-
this.bindEvents();
|
|
106
|
-
this.open = this.open || this.wasOpen;
|
|
107
|
-
this.wasOpen = false;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
get hasNonVirtualTrigger() {
|
|
111
|
-
return !!this.triggerElement && !(this.triggerElement instanceof VirtualTrigger);
|
|
112
|
-
}
|
|
113
|
-
get placementController() {
|
|
114
|
-
if (!this._placementController) {
|
|
115
|
-
this._placementController = new PlacementController(this);
|
|
116
|
-
}
|
|
117
|
-
return this._placementController;
|
|
118
|
-
}
|
|
119
|
-
get open() {
|
|
120
|
-
return this._open;
|
|
121
|
-
}
|
|
122
|
-
set open(open) {
|
|
123
|
-
var _a;
|
|
124
|
-
if (open && this.disabled) return;
|
|
125
|
-
if (open === this.open) return;
|
|
126
|
-
if (((_a = this.strategy) == null ? void 0 : _a.activelyOpening) && !open) return;
|
|
127
|
-
this._open = open;
|
|
128
|
-
if (this.open) {
|
|
129
|
-
_Overlay.openCount += 1;
|
|
130
|
-
}
|
|
131
|
-
this.requestUpdate("open", !this.open);
|
|
132
|
-
if (this.open) {
|
|
133
|
-
this.requestSlottable();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
get state() {
|
|
137
|
-
return this._state;
|
|
138
|
-
}
|
|
139
|
-
set state(state2) {
|
|
140
|
-
var _a;
|
|
141
|
-
if (state2 === this.state) return;
|
|
142
|
-
const oldState = this.state;
|
|
143
|
-
this._state = state2;
|
|
144
|
-
if (this.state === "opened" || this.state === "closed") {
|
|
145
|
-
(_a = this.strategy) == null ? void 0 : _a.shouldCompleteOpen();
|
|
146
|
-
}
|
|
147
|
-
this.requestUpdate("state", oldState);
|
|
148
|
-
}
|
|
149
|
-
get elementResolver() {
|
|
150
|
-
if (!this._elementResolver) {
|
|
151
|
-
this._elementResolver = new ElementResolutionController(this);
|
|
152
|
-
}
|
|
153
|
-
return this._elementResolver;
|
|
154
|
-
}
|
|
155
|
-
get usesDialog() {
|
|
156
|
-
return this.type === "modal" || this.type === "page";
|
|
157
|
-
}
|
|
158
|
-
get popoverValue() {
|
|
159
|
-
const hasPopoverAttribute = "popover" in this;
|
|
160
|
-
if (!hasPopoverAttribute) {
|
|
161
|
-
return void 0;
|
|
162
|
-
}
|
|
163
|
-
switch (this.type) {
|
|
164
|
-
case "modal":
|
|
165
|
-
case "page":
|
|
166
|
-
return void 0;
|
|
167
|
-
case "hint":
|
|
168
|
-
return "manual";
|
|
169
|
-
default:
|
|
170
|
-
return this.type;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
get requiresPosition() {
|
|
174
|
-
if (this.type === "page" || !this.open) return false;
|
|
175
|
-
if (!this.triggerElement || !this.placement && this.type !== "hint")
|
|
176
|
-
return false;
|
|
177
|
-
return true;
|
|
178
|
-
}
|
|
179
|
-
managePosition() {
|
|
180
|
-
if (!this.requiresPosition || !this.open) return;
|
|
181
|
-
const offset = this.offset || 0;
|
|
182
|
-
const trigger = this.triggerElement;
|
|
183
|
-
const placement = this.placement || "right";
|
|
184
|
-
const tipPadding = this.tipPadding;
|
|
185
|
-
this.placementController.placeOverlay(this.dialogEl, {
|
|
186
|
-
offset,
|
|
187
|
-
placement,
|
|
188
|
-
tipPadding,
|
|
189
|
-
trigger,
|
|
190
|
-
type: this.type
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
async managePopoverOpen() {
|
|
194
|
-
super.managePopoverOpen();
|
|
195
|
-
const targetOpenState = this.open;
|
|
196
|
-
if (this.open !== targetOpenState) {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
await this.manageDelay(targetOpenState);
|
|
200
|
-
if (this.open !== targetOpenState) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
await this.ensureOnDOM(targetOpenState);
|
|
204
|
-
if (this.open !== targetOpenState) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
const focusEl = await this.makeTransition(targetOpenState);
|
|
208
|
-
if (this.open !== targetOpenState) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
await this.applyFocus(targetOpenState, focusEl);
|
|
212
|
-
}
|
|
213
|
-
async applyFocus(targetOpenState, focusEl) {
|
|
214
|
-
if (this.receivesFocus === "false" || this.type === "hint") {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
await nextFrame();
|
|
218
|
-
await nextFrame();
|
|
219
|
-
if (targetOpenState === this.open && !this.open) {
|
|
220
|
-
if (this.hasNonVirtualTrigger && this.contains(this.getRootNode().activeElement)) {
|
|
221
|
-
this.triggerElement.focus();
|
|
222
|
-
}
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
focusEl == null ? void 0 : focusEl.focus();
|
|
226
|
-
}
|
|
227
|
-
returnFocus() {
|
|
228
|
-
var _a;
|
|
229
|
-
if (this.open || this.type === "hint") return;
|
|
230
|
-
const getAncestors = () => {
|
|
231
|
-
var _a2, _b;
|
|
232
|
-
const ancestors = [];
|
|
233
|
-
let currentNode = document.activeElement;
|
|
234
|
-
while ((_a2 = currentNode == null ? void 0 : currentNode.shadowRoot) == null ? void 0 : _a2.activeElement) {
|
|
235
|
-
currentNode = currentNode.shadowRoot.activeElement;
|
|
236
|
-
}
|
|
237
|
-
while (currentNode) {
|
|
238
|
-
const ancestor = currentNode.assignedSlot || currentNode.parentElement || ((_b = currentNode.getRootNode()) == null ? void 0 : _b.host);
|
|
239
|
-
if (ancestor) {
|
|
240
|
-
ancestors.push(ancestor);
|
|
241
|
-
}
|
|
242
|
-
currentNode = ancestor;
|
|
243
|
-
}
|
|
244
|
-
return ancestors;
|
|
245
|
-
};
|
|
246
|
-
if (this.receivesFocus !== "false" && !!((_a = this.triggerElement) == null ? void 0 : _a.focus) && (this.contains(this.getRootNode().activeElement) || getAncestors().includes(this) || // eslint-disable-next-line @spectrum-web-components/document-active-element
|
|
247
|
-
document.activeElement === document.body)) {
|
|
248
|
-
this.triggerElement.focus();
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
async manageOpen(oldOpen) {
|
|
252
|
-
if (!this.isConnected && this.open) return;
|
|
253
|
-
if (!this.hasUpdated) {
|
|
254
|
-
await this.updateComplete;
|
|
255
|
-
}
|
|
256
|
-
if (this.open) {
|
|
257
|
-
overlayStack.add(this);
|
|
258
|
-
if (this.willPreventClose) {
|
|
259
|
-
document.addEventListener(
|
|
260
|
-
"pointerup",
|
|
261
|
-
() => {
|
|
262
|
-
this.dialogEl.classList.toggle(
|
|
263
|
-
"not-immediately-closable",
|
|
264
|
-
false
|
|
265
|
-
);
|
|
266
|
-
this.willPreventClose = false;
|
|
267
|
-
},
|
|
268
|
-
{ once: true }
|
|
269
|
-
);
|
|
270
|
-
this.dialogEl.classList.toggle(
|
|
271
|
-
"not-immediately-closable",
|
|
272
|
-
true
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
|
-
} else {
|
|
276
|
-
if (oldOpen) {
|
|
277
|
-
this.dispose();
|
|
278
|
-
}
|
|
279
|
-
overlayStack.remove(this);
|
|
280
|
-
}
|
|
281
|
-
if (this.open && this.state !== "opened") {
|
|
282
|
-
this.state = "opening";
|
|
283
|
-
} else if (!this.open && this.state !== "closed") {
|
|
284
|
-
this.state = "closing";
|
|
285
|
-
}
|
|
286
|
-
if (this.usesDialog) {
|
|
287
|
-
this.manageDialogOpen();
|
|
288
|
-
} else {
|
|
289
|
-
this.managePopoverOpen();
|
|
290
|
-
}
|
|
291
|
-
if (this.type === "auto") {
|
|
292
|
-
const listenerRoot = this.getRootNode();
|
|
293
|
-
if (this.open) {
|
|
294
|
-
listenerRoot.addEventListener(
|
|
295
|
-
"focusout",
|
|
296
|
-
this.closeOnFocusOut,
|
|
297
|
-
{ capture: true }
|
|
298
|
-
);
|
|
299
|
-
} else {
|
|
300
|
-
listenerRoot.removeEventListener(
|
|
301
|
-
"focusout",
|
|
302
|
-
this.closeOnFocusOut,
|
|
303
|
-
{ capture: true }
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
bindEvents() {
|
|
309
|
-
var _a;
|
|
310
|
-
(_a = this.strategy) == null ? void 0 : _a.abort();
|
|
311
|
-
this.strategy = void 0;
|
|
312
|
-
if (!this.hasNonVirtualTrigger) return;
|
|
313
|
-
if (!this.triggerInteraction) return;
|
|
314
|
-
this.strategy = new strategies[this.triggerInteraction](
|
|
315
|
-
this.triggerElement,
|
|
316
|
-
{
|
|
317
|
-
overlay: this
|
|
318
|
-
}
|
|
319
|
-
);
|
|
320
|
-
}
|
|
321
|
-
handleBeforetoggle(event) {
|
|
322
|
-
if (event.newState !== "open") {
|
|
323
|
-
this.handleBrowserClose();
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
handleBrowserClose() {
|
|
327
|
-
var _a;
|
|
328
|
-
if (!((_a = this.strategy) == null ? void 0 : _a.activelyOpening)) {
|
|
329
|
-
this.open = false;
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
this.manuallyKeepOpen();
|
|
333
|
-
}
|
|
334
|
-
manuallyKeepOpen() {
|
|
335
|
-
this.open = true;
|
|
336
|
-
this.placementController.allowPlacementUpdate = true;
|
|
337
|
-
this.manageOpen(false);
|
|
338
|
-
}
|
|
339
|
-
handleSlotchange() {
|
|
340
|
-
var _a, _b;
|
|
341
|
-
if (!this.elements.length) {
|
|
342
|
-
(_a = this.strategy) == null ? void 0 : _a.releaseDescription();
|
|
343
|
-
} else if (this.hasNonVirtualTrigger) {
|
|
344
|
-
(_b = this.strategy) == null ? void 0 : _b.prepareDescription(
|
|
345
|
-
this.triggerElement
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
shouldPreventClose() {
|
|
350
|
-
const shouldPreventClose = this.willPreventClose;
|
|
351
|
-
this.willPreventClose = false;
|
|
352
|
-
return shouldPreventClose;
|
|
353
|
-
}
|
|
354
|
-
requestSlottable() {
|
|
355
|
-
if (this.lastRequestSlottableState === this.open) {
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
if (!this.open) {
|
|
359
|
-
document.body.offsetHeight;
|
|
360
|
-
}
|
|
361
|
-
this.dispatchEvent(
|
|
362
|
-
new SlottableRequestEvent(
|
|
363
|
-
"overlay-content",
|
|
364
|
-
this.open ? {} : removeSlottableRequest
|
|
365
|
-
)
|
|
366
|
-
);
|
|
367
|
-
this.lastRequestSlottableState = this.open;
|
|
368
|
-
}
|
|
369
|
-
willUpdate(changes) {
|
|
370
|
-
var _a;
|
|
371
|
-
if (!this.hasAttribute("id")) {
|
|
372
|
-
this.setAttribute(
|
|
373
|
-
"id",
|
|
374
|
-
`${this.tagName.toLowerCase()}-${randomID()}`
|
|
375
|
-
);
|
|
376
|
-
}
|
|
377
|
-
if (changes.has("open") && (this.hasUpdated || this.open)) {
|
|
378
|
-
this.manageOpen(changes.get("open"));
|
|
379
|
-
}
|
|
380
|
-
if (changes.has("trigger")) {
|
|
381
|
-
const [id, interaction] = ((_a = this.trigger) == null ? void 0 : _a.split("@")) || [];
|
|
382
|
-
this.elementResolver.selector = id ? `#${id}` : "";
|
|
383
|
-
this.triggerInteraction = interaction;
|
|
384
|
-
}
|
|
385
|
-
let oldTrigger = false;
|
|
386
|
-
if (changes.has(elementResolverUpdatedSymbol)) {
|
|
387
|
-
oldTrigger = this.triggerElement;
|
|
388
|
-
this.triggerElement = this.elementResolver.element;
|
|
389
|
-
}
|
|
390
|
-
if (changes.has("triggerElement")) {
|
|
391
|
-
oldTrigger = changes.get("triggerElement");
|
|
392
|
-
}
|
|
393
|
-
if (oldTrigger !== false) {
|
|
394
|
-
this.bindEvents();
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
updated(changes) {
|
|
398
|
-
super.updated(changes);
|
|
399
|
-
if (changes.has("placement")) {
|
|
400
|
-
if (this.placement) {
|
|
401
|
-
this.dialogEl.setAttribute("actual-placement", this.placement);
|
|
402
|
-
} else {
|
|
403
|
-
this.dialogEl.removeAttribute("actual-placement");
|
|
404
|
-
}
|
|
405
|
-
if (this.open && typeof changes.get("placement") !== "undefined") {
|
|
406
|
-
this.placementController.resetOverlayPosition();
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
if (changes.has("state") && this.state === "closed" && typeof changes.get("state") !== "undefined") {
|
|
410
|
-
this.placementController.clearOverlayPosition();
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
renderContent() {
|
|
414
|
-
return html`
|
|
415
|
-
<slot @slotchange=${this.handleSlotchange}></slot>
|
|
416
|
-
`;
|
|
417
|
-
}
|
|
418
|
-
get dialogStyleMap() {
|
|
419
|
-
return {
|
|
420
|
-
"--swc-overlay-open-count": _Overlay.openCount.toString()
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
renderDialog() {
|
|
424
|
-
return html`
|
|
425
|
-
<dialog
|
|
426
|
-
class="dialog"
|
|
427
|
-
part="dialog"
|
|
428
|
-
placement=${ifDefined(
|
|
429
|
-
this.requiresPosition ? this.placement || "right" : void 0
|
|
430
|
-
)}
|
|
431
|
-
style=${styleMap(this.dialogStyleMap)}
|
|
432
|
-
@close=${this.handleBrowserClose}
|
|
433
|
-
@cancel=${this.handleBrowserClose}
|
|
434
|
-
@beforetoggle=${this.handleBeforetoggle}
|
|
435
|
-
?is-visible=${this.state !== "closed"}
|
|
436
|
-
>
|
|
437
|
-
${this.renderContent()}
|
|
438
|
-
</dialog>
|
|
439
|
-
`;
|
|
440
|
-
}
|
|
441
|
-
renderPopover() {
|
|
442
|
-
return html`
|
|
443
|
-
<div
|
|
444
|
-
class="dialog"
|
|
445
|
-
part="dialog"
|
|
446
|
-
placement=${ifDefined(
|
|
447
|
-
this.requiresPosition ? this.placement || "right" : void 0
|
|
448
|
-
)}
|
|
449
|
-
popover=${ifDefined(this.popoverValue)}
|
|
450
|
-
style=${styleMap(this.dialogStyleMap)}
|
|
451
|
-
@beforetoggle=${this.handleBeforetoggle}
|
|
452
|
-
@close=${this.handleBrowserClose}
|
|
453
|
-
?is-visible=${this.state !== "closed"}
|
|
454
|
-
>
|
|
455
|
-
${this.renderContent()}
|
|
456
|
-
</div>
|
|
457
|
-
`;
|
|
458
|
-
}
|
|
459
|
-
render() {
|
|
460
|
-
const isDialog = this.type === "modal" || this.type === "page";
|
|
461
|
-
return html`
|
|
462
|
-
${isDialog ? this.renderDialog() : this.renderPopover()}
|
|
463
|
-
<slot name="longpress-describedby-descriptor"></slot>
|
|
464
|
-
`;
|
|
465
|
-
}
|
|
466
|
-
connectedCallback() {
|
|
467
|
-
super.connectedCallback();
|
|
468
|
-
this.addEventListener("close", () => {
|
|
469
|
-
this.open = false;
|
|
470
|
-
});
|
|
471
|
-
if (this.hasUpdated) {
|
|
472
|
-
this.bindEvents();
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
disconnectedCallback() {
|
|
476
|
-
var _a;
|
|
477
|
-
(_a = this.strategy) == null ? void 0 : _a.releaseDescription();
|
|
478
|
-
this.open = false;
|
|
479
|
-
super.disconnectedCallback();
|
|
480
|
-
}
|
|
481
|
-
};
|
|
482
|
-
_Overlay.styles = [styles];
|
|
483
|
-
_Overlay.openCount = 1;
|
|
484
|
-
__decorateClass([
|
|
485
|
-
property({ type: Boolean })
|
|
486
|
-
], _Overlay.prototype, "delayed", 1);
|
|
487
|
-
__decorateClass([
|
|
488
|
-
query(".dialog")
|
|
489
|
-
], _Overlay.prototype, "dialogEl", 2);
|
|
490
|
-
__decorateClass([
|
|
491
|
-
property({ type: Boolean })
|
|
492
|
-
], _Overlay.prototype, "disabled", 1);
|
|
493
|
-
__decorateClass([
|
|
494
|
-
queryAssignedElements({
|
|
495
|
-
flatten: true,
|
|
496
|
-
selector: ':not([slot="longpress-describedby-descriptor"], slot)'
|
|
497
|
-
// gather only elements slotted into the default slot
|
|
498
|
-
})
|
|
499
|
-
], _Overlay.prototype, "elements", 2);
|
|
500
|
-
__decorateClass([
|
|
501
|
-
property({ type: Number })
|
|
502
|
-
], _Overlay.prototype, "offset", 2);
|
|
503
|
-
__decorateClass([
|
|
504
|
-
property({ type: Boolean, reflect: true })
|
|
505
|
-
], _Overlay.prototype, "open", 1);
|
|
506
|
-
__decorateClass([
|
|
507
|
-
property()
|
|
508
|
-
], _Overlay.prototype, "placement", 2);
|
|
509
|
-
__decorateClass([
|
|
510
|
-
property({ attribute: "receives-focus" })
|
|
511
|
-
], _Overlay.prototype, "receivesFocus", 2);
|
|
512
|
-
__decorateClass([
|
|
513
|
-
query("slot")
|
|
514
|
-
], _Overlay.prototype, "slotEl", 2);
|
|
515
|
-
__decorateClass([
|
|
516
|
-
state()
|
|
517
|
-
], _Overlay.prototype, "state", 1);
|
|
518
|
-
__decorateClass([
|
|
519
|
-
property({ type: Number, attribute: "tip-padding" })
|
|
520
|
-
], _Overlay.prototype, "tipPadding", 2);
|
|
521
|
-
__decorateClass([
|
|
522
|
-
property()
|
|
523
|
-
], _Overlay.prototype, "trigger", 2);
|
|
524
|
-
__decorateClass([
|
|
525
|
-
property({ attribute: false })
|
|
526
|
-
], _Overlay.prototype, "triggerElement", 2);
|
|
527
|
-
__decorateClass([
|
|
528
|
-
property({ attribute: false })
|
|
529
|
-
], _Overlay.prototype, "triggerInteraction", 2);
|
|
530
|
-
__decorateClass([
|
|
531
|
-
property()
|
|
532
|
-
], _Overlay.prototype, "type", 2);
|
|
533
|
-
export let Overlay = _Overlay;
|
|
534
|
-
//# sourceMappingURL=Overlay.dev.js.map
|