@spectrum-web-components/overlay 0.33.2 → 0.33.3-overlay.65
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 +227 -152
- package/custom-elements.json +1387 -527
- package/package.json +48 -22
- package/sp-overlay.d.ts +6 -0
- package/sp-overlay.dev.js +5 -0
- package/{active-overlay.dev.js.map → sp-overlay.dev.js.map} +3 -3
- package/sp-overlay.js +2 -0
- package/{active-overlay.js.map → sp-overlay.js.map} +4 -4
- package/src/Overlay.d.ts +29 -0
- package/src/Overlay.dev.js +91 -0
- package/src/Overlay.dev.js.map +7 -0
- package/src/Overlay.js +2 -0
- package/src/Overlay.js.map +7 -0
- package/src/OverlayBase.d.ts +124 -0
- package/src/OverlayBase.dev.js +744 -0
- package/src/OverlayBase.dev.js.map +7 -0
- package/src/OverlayBase.js +31 -0
- package/src/OverlayBase.js.map +7 -0
- package/src/OverlayDialog.d.ts +8 -0
- package/src/OverlayDialog.dev.js +160 -0
- package/src/OverlayDialog.dev.js.map +7 -0
- package/src/OverlayDialog.js +2 -0
- package/src/OverlayDialog.js.map +7 -0
- package/src/OverlayNoPopover.d.ts +8 -0
- package/src/OverlayNoPopover.dev.js +149 -0
- package/src/OverlayNoPopover.dev.js.map +7 -0
- package/src/OverlayNoPopover.js +2 -0
- package/src/OverlayNoPopover.js.map +7 -0
- package/src/OverlayPopover.d.ts +8 -0
- package/src/OverlayPopover.dev.js +199 -0
- package/src/OverlayPopover.dev.js.map +7 -0
- package/src/OverlayPopover.js +2 -0
- package/src/OverlayPopover.js.map +7 -0
- package/src/OverlayStack.d.ts +29 -0
- package/src/OverlayStack.dev.js +122 -0
- package/src/OverlayStack.dev.js.map +7 -0
- package/src/OverlayStack.js +2 -0
- package/src/OverlayStack.js.map +7 -0
- package/src/OverlayTrigger.d.ts +23 -31
- package/src/OverlayTrigger.dev.js +135 -245
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +52 -22
- package/src/OverlayTrigger.js.map +3 -3
- package/src/PlacementController.d.ts +36 -0
- package/src/PlacementController.dev.js +191 -0
- package/src/PlacementController.dev.js.map +7 -0
- package/src/PlacementController.js +2 -0
- package/src/PlacementController.js.map +7 -0
- package/src/VirtualTrigger.dev.js +0 -2
- package/src/VirtualTrigger.dev.js.map +2 -2
- package/src/VirtualTrigger.js +1 -1
- package/src/VirtualTrigger.js.map +3 -3
- package/src/fullSizePlugin.d.ts +12 -0
- package/src/fullSizePlugin.dev.js +39 -0
- package/src/fullSizePlugin.dev.js.map +7 -0
- package/src/fullSizePlugin.js +2 -0
- package/src/fullSizePlugin.js.map +7 -0
- package/src/index.d.ts +2 -3
- package/src/index.dev.js +2 -3
- 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 -2
- package/src/loader.dev.js +2 -19
- package/src/loader.dev.js.map +2 -2
- package/src/loader.js +1 -1
- package/src/loader.js.map +3 -3
- package/src/overlay-base.css.dev.js +9 -0
- package/src/overlay-base.css.dev.js.map +7 -0
- package/src/overlay-base.css.js +6 -0
- package/src/overlay-base.css.js.map +7 -0
- 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 +6 -4
- package/src/overlay-types.dev.js +1 -0
- 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/topLayerOverTransforms.d.ts +23 -0
- package/src/topLayerOverTransforms.dev.js +170 -0
- package/src/topLayerOverTransforms.dev.js.map +7 -0
- package/src/topLayerOverTransforms.js +2 -0
- package/src/topLayerOverTransforms.js.map +7 -0
- package/stories/overlay-element.stories.js +247 -0
- package/stories/overlay-element.stories.js.map +7 -0
- package/stories/overlay-story-components.js +9 -8
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +780 -683
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +4 -0
- package/sync/overlay-trigger.dev.js +1 -4
- 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 +407 -376
- package/test/index.js.map +3 -3
- package/test/overlay-element.test-vrt.js +5 -0
- package/test/overlay-element.test-vrt.js.map +7 -0
- package/test/overlay-element.test.js +664 -0
- package/test/overlay-element.test.js.map +7 -0
- package/test/overlay-lifecycle.test.js +34 -106
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +11 -5
- package/test/overlay-trigger-click.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +1 -6
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +23 -23
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +40 -34
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +98 -80
- 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 → overlay-v1.test.js} +267 -249
- package/test/overlay-v1.test.js.map +7 -0
- package/test/overlay-v2.test.js +720 -0
- package/test/overlay-v2.test.js.map +7 -0
- package/active-overlay.d.ts +0 -6
- package/active-overlay.dev.js +0 -5
- package/active-overlay.js +0 -2
- package/src/ActiveOverlay.d.ts +0 -84
- package/src/ActiveOverlay.dev.js +0 -517
- package/src/ActiveOverlay.dev.js.map +0 -7
- package/src/ActiveOverlay.js +0 -16
- package/src/ActiveOverlay.js.map +0 -7
- package/src/active-overlay.css.dev.js +0 -13
- package/src/active-overlay.css.dev.js.map +0 -7
- package/src/active-overlay.css.js +0 -10
- package/src/active-overlay.css.js.map +0 -7
- package/src/overlay-stack.d.ts +0 -50
- package/src/overlay-stack.dev.js +0 -515
- package/src/overlay-stack.dev.js.map +0 -7
- package/src/overlay-stack.js +0 -34
- package/src/overlay-stack.js.map +0 -7
- package/src/overlay-utils.d.ts +0 -3
- package/src/overlay-utils.dev.js +0 -31
- package/src/overlay-utils.dev.js.map +0 -7
- package/src/overlay-utils.js +0 -2
- package/src/overlay-utils.js.map +0 -7
- package/src/overlay.d.ts +0 -59
- package/src/overlay.dev.js +0 -127
- package/src/overlay.dev.js.map +0 -7
- package/src/overlay.js +0 -2
- package/src/overlay.js.map +0 -7
- package/test/overlay.test.js.map +0 -7
- /package/src/{active-overlay.css.d.ts → overlay-base.css.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/overlay",
|
|
3
|
-
"version": "0.33.
|
|
3
|
+
"version": "0.33.3-overlay.65+e3bf25c5c",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -25,19 +25,46 @@
|
|
|
25
25
|
"default": "./src/index.js"
|
|
26
26
|
},
|
|
27
27
|
"./package.json": "./package.json",
|
|
28
|
-
"./src/
|
|
29
|
-
"development": "./src/
|
|
30
|
-
"default": "./src/
|
|
28
|
+
"./src/Overlay.js": {
|
|
29
|
+
"development": "./src/Overlay.dev.js",
|
|
30
|
+
"default": "./src/Overlay.js"
|
|
31
|
+
},
|
|
32
|
+
"./src/OverlayBase.js": {
|
|
33
|
+
"development": "./src/OverlayBase.dev.js",
|
|
34
|
+
"default": "./src/OverlayBase.js"
|
|
35
|
+
},
|
|
36
|
+
"./src/OverlayDialog.js": {
|
|
37
|
+
"development": "./src/OverlayDialog.dev.js",
|
|
38
|
+
"default": "./src/OverlayDialog.js"
|
|
39
|
+
},
|
|
40
|
+
"./src/OverlayNoPopover.js": {
|
|
41
|
+
"development": "./src/OverlayNoPopover.dev.js",
|
|
42
|
+
"default": "./src/OverlayNoPopover.js"
|
|
43
|
+
},
|
|
44
|
+
"./src/OverlayPopover.js": {
|
|
45
|
+
"development": "./src/OverlayPopover.dev.js",
|
|
46
|
+
"default": "./src/OverlayPopover.js"
|
|
47
|
+
},
|
|
48
|
+
"./src/OverlayStack.js": {
|
|
49
|
+
"development": "./src/OverlayStack.dev.js",
|
|
50
|
+
"default": "./src/OverlayStack.js"
|
|
31
51
|
},
|
|
32
52
|
"./src/OverlayTrigger.js": {
|
|
33
53
|
"development": "./src/OverlayTrigger.dev.js",
|
|
34
54
|
"default": "./src/OverlayTrigger.js"
|
|
35
55
|
},
|
|
56
|
+
"./src/PlacementController.js": {
|
|
57
|
+
"development": "./src/PlacementController.dev.js",
|
|
58
|
+
"default": "./src/PlacementController.js"
|
|
59
|
+
},
|
|
36
60
|
"./src/VirtualTrigger.js": {
|
|
37
61
|
"development": "./src/VirtualTrigger.dev.js",
|
|
38
62
|
"default": "./src/VirtualTrigger.js"
|
|
39
63
|
},
|
|
40
|
-
"./src/
|
|
64
|
+
"./src/fullSizePlugin.js": {
|
|
65
|
+
"development": "./src/fullSizePlugin.dev.js",
|
|
66
|
+
"default": "./src/fullSizePlugin.js"
|
|
67
|
+
},
|
|
41
68
|
"./src/index.js": {
|
|
42
69
|
"development": "./src/index.dev.js",
|
|
43
70
|
"default": "./src/index.js"
|
|
@@ -46,14 +73,11 @@
|
|
|
46
73
|
"development": "./src/loader.dev.js",
|
|
47
74
|
"default": "./src/loader.js"
|
|
48
75
|
},
|
|
76
|
+
"./src/overlay-base.css.js": "./src/overlay-base.css.js",
|
|
49
77
|
"./src/overlay-events.js": {
|
|
50
78
|
"development": "./src/overlay-events.dev.js",
|
|
51
79
|
"default": "./src/overlay-events.js"
|
|
52
80
|
},
|
|
53
|
-
"./src/overlay-stack.js": {
|
|
54
|
-
"development": "./src/overlay-stack.dev.js",
|
|
55
|
-
"default": "./src/overlay-stack.js"
|
|
56
|
-
},
|
|
57
81
|
"./src/overlay-timer.js": {
|
|
58
82
|
"development": "./src/overlay-timer.dev.js",
|
|
59
83
|
"default": "./src/overlay-timer.js"
|
|
@@ -63,13 +87,9 @@
|
|
|
63
87
|
"development": "./src/overlay-types.dev.js",
|
|
64
88
|
"default": "./src/overlay-types.js"
|
|
65
89
|
},
|
|
66
|
-
"./src/
|
|
67
|
-
"development": "./src/
|
|
68
|
-
"default": "./src/
|
|
69
|
-
},
|
|
70
|
-
"./src/overlay.js": {
|
|
71
|
-
"development": "./src/overlay.dev.js",
|
|
72
|
-
"default": "./src/overlay.js"
|
|
90
|
+
"./src/topLayerOverTransforms.js": {
|
|
91
|
+
"development": "./src/topLayerOverTransforms.dev.js",
|
|
92
|
+
"default": "./src/topLayerOverTransforms.js"
|
|
73
93
|
},
|
|
74
94
|
"./active-overlay.js": {
|
|
75
95
|
"development": "./active-overlay.dev.js",
|
|
@@ -82,6 +102,10 @@
|
|
|
82
102
|
"./sync/overlay-trigger.js": {
|
|
83
103
|
"development": "./sync/overlay-trigger.dev.js",
|
|
84
104
|
"default": "./sync/overlay-trigger.js"
|
|
105
|
+
},
|
|
106
|
+
"./sp-overlay.js": {
|
|
107
|
+
"development": "./sp-overlay.dev.js",
|
|
108
|
+
"default": "./sp-overlay.js"
|
|
85
109
|
}
|
|
86
110
|
},
|
|
87
111
|
"scripts": {
|
|
@@ -102,20 +126,22 @@
|
|
|
102
126
|
"lit-html"
|
|
103
127
|
],
|
|
104
128
|
"dependencies": {
|
|
105
|
-
"@floating-ui/dom": "
|
|
106
|
-
"@spectrum-web-components/action-button": "^0.33.
|
|
107
|
-
"@spectrum-web-components/base": "^0.33.
|
|
108
|
-
"@spectrum-web-components/
|
|
109
|
-
"@spectrum-web-components/
|
|
129
|
+
"@floating-ui/dom": "1.2.1",
|
|
130
|
+
"@spectrum-web-components/action-button": "^0.33.3-overlay.65+e3bf25c5c",
|
|
131
|
+
"@spectrum-web-components/base": "^0.33.3-overlay.65+e3bf25c5c",
|
|
132
|
+
"@spectrum-web-components/reactive-controllers": "^0.33.3-overlay.65+e3bf25c5c",
|
|
133
|
+
"@spectrum-web-components/shared": "^0.33.3-overlay.65+e3bf25c5c",
|
|
134
|
+
"@spectrum-web-components/theme": "^0.33.3-overlay.65+e3bf25c5c"
|
|
110
135
|
},
|
|
111
136
|
"types": "./src/index.d.ts",
|
|
112
137
|
"customElements": "custom-elements.json",
|
|
113
138
|
"sideEffects": [
|
|
114
139
|
"./active-overlay.js",
|
|
115
140
|
"./overlay-trigger.js",
|
|
141
|
+
"./sp-overlay.js",
|
|
116
142
|
"./sync/overlay-trigger.js",
|
|
117
143
|
"./stories/overlay-story-components.js",
|
|
118
144
|
"./**/*.dev.js"
|
|
119
145
|
],
|
|
120
|
-
"gitHead": "
|
|
146
|
+
"gitHead": "e3bf25c5c6676cb5ade2ca9ea633540cb08aee23"
|
|
121
147
|
}
|
package/sp-overlay.d.ts
ADDED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["/*\nCopyright
|
|
5
|
-
"mappings": ";AAWA,SAAS,qBAAqB;AAC9B,SAAS,
|
|
3
|
+
"sources": ["sp-overlay.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 { defineElement } from '@spectrum-web-components/base/src/define-element.js';\nimport { Overlay } from './src/Overlay.dev.js'\n\ndefineElement('sp-overlay', Overlay);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-overlay': Overlay;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AAExB,cAAc,cAAc,OAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/sp-overlay.js
ADDED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["/*\nCopyright
|
|
5
|
-
"mappings": "aAWA,OAAS,iBAAAA,MAAqB,sDAC9B,OAAS,
|
|
6
|
-
"names": ["defineElement", "
|
|
3
|
+
"sources": ["sp-overlay.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 { defineElement } from '@spectrum-web-components/base/src/define-element.js';\nimport { Overlay } from './src/Overlay.js';\n\ndefineElement('sp-overlay', Overlay);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-overlay': Overlay;\n }\n}\n"],
|
|
5
|
+
"mappings": "aAWA,OAAS,iBAAAA,MAAqB,sDAC9B,OAAS,WAAAC,MAAe,mBAExBD,EAAc,aAAcC,CAAO",
|
|
6
|
+
"names": ["defineElement", "Overlay"]
|
|
7
7
|
}
|
package/src/Overlay.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { OverlayBase } from './OverlayBase.js';
|
|
2
|
+
import type { OverlayOptions, TriggerInteractionsV1 } from './overlay-types.js';
|
|
3
|
+
import { Placement } from '@floating-ui/dom/src/types.js';
|
|
4
|
+
import { VirtualTrigger } from './VirtualTrigger.js';
|
|
5
|
+
declare let OverlayFeatures: typeof OverlayBase & {
|
|
6
|
+
new (...args: any[]): import("lit").ReactiveElement;
|
|
7
|
+
prototype: import("lit").ReactiveElement;
|
|
8
|
+
};
|
|
9
|
+
declare type OverlayOptionsV2 = {
|
|
10
|
+
delayed?: boolean;
|
|
11
|
+
notImmediatelyClosable?: boolean;
|
|
12
|
+
offset?: number | [number, number];
|
|
13
|
+
placement?: Placement;
|
|
14
|
+
receivesFocus?: 'auto' | 'true' | 'false';
|
|
15
|
+
trigger?: HTMLElement | VirtualTrigger;
|
|
16
|
+
type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* @element sp-overlay
|
|
20
|
+
*
|
|
21
|
+
* @fires sp-opened - announces that an overlay has completed any entry animations
|
|
22
|
+
* @fires sp-closed - announce that an overlay has compelted any exit animations
|
|
23
|
+
*/
|
|
24
|
+
export declare class Overlay extends OverlayFeatures {
|
|
25
|
+
static update(): void;
|
|
26
|
+
static open(target: HTMLElement, interaction: TriggerInteractionsV1, content: HTMLElement, options: OverlayOptions): Promise<() => void>;
|
|
27
|
+
static open(content: HTMLElement, options?: OverlayOptionsV2): Promise<Overlay>;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { noop, OverlayBase } from "./OverlayBase.dev.js";
|
|
3
|
+
import { OverlayDialog } from "./OverlayDialog.dev.js";
|
|
4
|
+
import { OverlayPopover } from "./OverlayPopover.dev.js";
|
|
5
|
+
import { OverlayNoPopover } from "./OverlayNoPopover.dev.js";
|
|
6
|
+
import { reparentChildren } from "@spectrum-web-components/shared";
|
|
7
|
+
const supportsPopover = "showPopover" in document.createElement("div");
|
|
8
|
+
let OverlayFeatures = OverlayDialog(OverlayBase);
|
|
9
|
+
if (supportsPopover) {
|
|
10
|
+
OverlayFeatures = OverlayPopover(OverlayFeatures);
|
|
11
|
+
} else {
|
|
12
|
+
OverlayFeatures = OverlayNoPopover(OverlayFeatures);
|
|
13
|
+
}
|
|
14
|
+
export class Overlay extends OverlayFeatures {
|
|
15
|
+
static update() {
|
|
16
|
+
const overlayUpdateEvent = new CustomEvent("sp-update-overlays", {
|
|
17
|
+
bubbles: true,
|
|
18
|
+
composed: true,
|
|
19
|
+
cancelable: true
|
|
20
|
+
});
|
|
21
|
+
document.dispatchEvent(overlayUpdateEvent);
|
|
22
|
+
}
|
|
23
|
+
static async open(targetOrContent, interactionOrOptions, content, options) {
|
|
24
|
+
var _a, _b, _c;
|
|
25
|
+
const v2 = arguments.length === 2;
|
|
26
|
+
const overlayContent = content || targetOrContent;
|
|
27
|
+
const overlay = new Overlay();
|
|
28
|
+
overlay.dispose = () => {
|
|
29
|
+
overlay.addEventListener("sp-closed", () => {
|
|
30
|
+
if (!restored) {
|
|
31
|
+
restoreContent();
|
|
32
|
+
restored = true;
|
|
33
|
+
}
|
|
34
|
+
requestAnimationFrame(() => {
|
|
35
|
+
overlay.remove();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
overlay.open = false;
|
|
39
|
+
overlay.dispose = noop;
|
|
40
|
+
};
|
|
41
|
+
let restored = false;
|
|
42
|
+
const restoreContent = reparentChildren([overlayContent], overlay, {
|
|
43
|
+
position: "beforeend",
|
|
44
|
+
prepareCallback: (el) => {
|
|
45
|
+
const slot = el.slot;
|
|
46
|
+
el.removeAttribute("slot");
|
|
47
|
+
return () => {
|
|
48
|
+
el.slot = slot;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (v2) {
|
|
53
|
+
const options2 = interactionOrOptions;
|
|
54
|
+
overlay.append(overlayContent);
|
|
55
|
+
overlay.receivesFocus = (_a = options2.receivesFocus) != null ? _a : "auto";
|
|
56
|
+
overlay.triggerElement = options2.trigger || null;
|
|
57
|
+
overlay.type = options2.type || "modal";
|
|
58
|
+
overlay.offset = options2.offset || 6;
|
|
59
|
+
overlay.placement = options2.placement;
|
|
60
|
+
overlay.willPreventClose = !!options2.notImmediatelyClosable;
|
|
61
|
+
requestAnimationFrame(() => {
|
|
62
|
+
requestAnimationFrame(() => {
|
|
63
|
+
overlay.open = true;
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return overlay;
|
|
67
|
+
} else if (overlayContent && options) {
|
|
68
|
+
const target = targetOrContent;
|
|
69
|
+
const interaction = interactionOrOptions;
|
|
70
|
+
overlay.receivesFocus = (_b = options.receivesFocus) != null ? _b : "auto";
|
|
71
|
+
overlay.triggerElement = options.virtualTrigger || target;
|
|
72
|
+
overlay.type = interaction === "modal" ? "modal" : interaction === "hover" ? "hint" : "auto";
|
|
73
|
+
overlay.offset = (_c = options.offset) != null ? _c : 6;
|
|
74
|
+
overlay.placement = options.placement;
|
|
75
|
+
overlay.willPreventClose = !!options.notImmediatelyClosable;
|
|
76
|
+
const parent = target.getRootNode();
|
|
77
|
+
if (parent === document) {
|
|
78
|
+
target.insertAdjacentElement("afterend", overlay);
|
|
79
|
+
} else {
|
|
80
|
+
parent.append(overlay);
|
|
81
|
+
}
|
|
82
|
+
await new Promise(
|
|
83
|
+
(res) => requestAnimationFrame(() => requestAnimationFrame(() => res()))
|
|
84
|
+
);
|
|
85
|
+
overlay.open = true;
|
|
86
|
+
return overlay.dispose;
|
|
87
|
+
}
|
|
88
|
+
return overlay;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=Overlay.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["Overlay.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 { noop, OverlayBase } from './OverlayBase.dev.js'\nimport { OverlayDialog } from './OverlayDialog.dev.js'\nimport { OverlayPopover } from './OverlayPopover.dev.js'\nimport { OverlayNoPopover } from './OverlayNoPopover.dev.js'\nimport type { OverlayOptions, TriggerInteractionsV1 } from './overlay-types.dev.js'\nimport { Placement } from '@floating-ui/dom/src/types.js';\nimport { VirtualTrigger } from './VirtualTrigger.dev.js'\nimport { reparentChildren } from '@spectrum-web-components/shared';\n\nconst supportsPopover = 'showPopover' in document.createElement('div');\n\nlet OverlayFeatures = OverlayDialog(OverlayBase);\nif (supportsPopover) {\n OverlayFeatures = OverlayPopover(OverlayFeatures);\n} else {\n OverlayFeatures = OverlayNoPopover(OverlayFeatures);\n}\n\ntype OverlayOptionsV2 = {\n delayed?: boolean;\n notImmediatelyClosable?: boolean;\n offset?: number | [number, number]; // supporting multi-axis\n placement?: Placement;\n receivesFocus?: 'auto' | 'true' | 'false';\n trigger?: HTMLElement | VirtualTrigger;\n type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';\n};\n\n/**\n * @element sp-overlay\n *\n * @fires sp-opened - announces that an overlay has completed any entry animations\n * @fires sp-closed - announce that an overlay has compelted any exit animations\n */\nexport class Overlay extends OverlayFeatures {\n public static update(): void {\n const overlayUpdateEvent = new CustomEvent('sp-update-overlays', {\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n document.dispatchEvent(overlayUpdateEvent);\n }\n\n public static async open(\n target: HTMLElement,\n interaction: TriggerInteractionsV1,\n content: HTMLElement,\n options: OverlayOptions\n ): Promise<() => void>;\n public static async open(\n content: HTMLElement,\n options?: OverlayOptionsV2\n ): Promise<Overlay>;\n public static async open(\n targetOrContent: HTMLElement,\n interactionOrOptions:\n | TriggerInteractionsV1\n | OverlayOptionsV2\n | undefined,\n content?: HTMLElement,\n options?: OverlayOptions\n ): Promise<Overlay | (() => void)> {\n const v2 = arguments.length === 2;\n const overlayContent = content || targetOrContent;\n const overlay = new Overlay();\n overlay.dispose = () => {\n overlay.addEventListener('sp-closed', () => {\n if (!restored) {\n restoreContent();\n restored = true;\n }\n requestAnimationFrame(() => {\n overlay.remove();\n });\n });\n overlay.open = false;\n overlay.dispose = noop;\n };\n let restored = false;\n const restoreContent = reparentChildren([overlayContent], overlay, {\n position: 'beforeend',\n prepareCallback: (el) => {\n const slot = el.slot;\n el.removeAttribute('slot');\n return () => {\n el.slot = slot;\n };\n },\n });\n if (v2) {\n const options = interactionOrOptions as OverlayOptionsV2;\n overlay.append(overlayContent);\n overlay.receivesFocus = options.receivesFocus ?? 'auto';\n overlay.triggerElement = options.trigger || null;\n overlay.type = options.type || 'modal';\n overlay.offset = options.offset || 6;\n overlay.placement = options.placement;\n overlay.willPreventClose = !!options.notImmediatelyClosable;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // Do we want to \"open\" this path, or leave that to the consumer?\n overlay.open = true;\n });\n });\n return overlay;\n } else if (overlayContent && options) {\n const target = targetOrContent;\n const interaction = interactionOrOptions;\n overlay.receivesFocus = options.receivesFocus ?? 'auto';\n overlay.triggerElement = options.virtualTrigger || target;\n overlay.type =\n interaction === 'modal'\n ? 'modal'\n : interaction === 'hover'\n ? 'hint'\n : 'auto';\n overlay.offset = options.offset ?? 6;\n overlay.placement = options.placement;\n overlay.willPreventClose = !!options.notImmediatelyClosable;\n // This is super dirty...find a better way.\n // Maybe imperative open should go _at the end_ of everything?\n // Having an option is likely useful.\n // Make imperative overlays less useful?\n // Delete the imperative approach to an overlay?\n // Possibly the giving all of the responsiblities to the user is the best path.\n const parent = target.getRootNode() as Document;\n if (parent === document) {\n target.insertAdjacentElement('afterend', overlay);\n } else {\n parent.append(overlay);\n }\n await new Promise<void>((res) =>\n requestAnimationFrame(() => requestAnimationFrame(() => res()))\n );\n overlay.open = true;\n return overlay.dispose;\n }\n /* c8 ignore next 1 */\n return overlay;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,MAAM,mBAAmB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AAIjC,SAAS,wBAAwB;AAEjC,MAAM,kBAAkB,iBAAiB,SAAS,cAAc,KAAK;AAErE,IAAI,kBAAkB,cAAc,WAAW;AAC/C,IAAI,iBAAiB;AACjB,oBAAkB,eAAe,eAAe;AACpD,OAAO;AACH,oBAAkB,iBAAiB,eAAe;AACtD;AAkBO,aAAM,gBAAgB,gBAAgB;AAAA,EACzC,OAAc,SAAe;AACzB,UAAM,qBAAqB,IAAI,YAAY,sBAAsB;AAAA,MAC7D,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,IAChB,CAAC;AACD,aAAS,cAAc,kBAAkB;AAAA,EAC7C;AAAA,EAYA,aAAoB,KAChB,iBACA,sBAIA,SACA,SAC+B;AAzEvC;AA0EQ,UAAM,KAAK,UAAU,WAAW;AAChC,UAAM,iBAAiB,WAAW;AAClC,UAAM,UAAU,IAAI,QAAQ;AAC5B,YAAQ,UAAU,MAAM;AACpB,cAAQ,iBAAiB,aAAa,MAAM;AACxC,YAAI,CAAC,UAAU;AACX,yBAAe;AACf,qBAAW;AAAA,QACf;AACA,8BAAsB,MAAM;AACxB,kBAAQ,OAAO;AAAA,QACnB,CAAC;AAAA,MACL,CAAC;AACD,cAAQ,OAAO;AACf,cAAQ,UAAU;AAAA,IACtB;AACA,QAAI,WAAW;AACf,UAAM,iBAAiB,iBAAiB,CAAC,cAAc,GAAG,SAAS;AAAA,MAC/D,UAAU;AAAA,MACV,iBAAiB,CAAC,OAAO;AACrB,cAAM,OAAO,GAAG;AAChB,WAAG,gBAAgB,MAAM;AACzB,eAAO,MAAM;AACT,aAAG,OAAO;AAAA,QACd;AAAA,MACJ;AAAA,IACJ,CAAC;AACD,QAAI,IAAI;AACJ,YAAMA,WAAU;AAChB,cAAQ,OAAO,cAAc;AAC7B,cAAQ,iBAAgB,KAAAA,SAAQ,kBAAR,YAAyB;AACjD,cAAQ,iBAAiBA,SAAQ,WAAW;AAC5C,cAAQ,OAAOA,SAAQ,QAAQ;AAC/B,cAAQ,SAASA,SAAQ,UAAU;AACnC,cAAQ,YAAYA,SAAQ;AAC5B,cAAQ,mBAAmB,CAAC,CAACA,SAAQ;AACrC,4BAAsB,MAAM;AACxB,8BAAsB,MAAM;AAExB,kBAAQ,OAAO;AAAA,QACnB,CAAC;AAAA,MACL,CAAC;AACD,aAAO;AAAA,IACX,WAAW,kBAAkB,SAAS;AAClC,YAAM,SAAS;AACf,YAAM,cAAc;AACpB,cAAQ,iBAAgB,aAAQ,kBAAR,YAAyB;AACjD,cAAQ,iBAAiB,QAAQ,kBAAkB;AACnD,cAAQ,OACJ,gBAAgB,UACV,UACA,gBAAgB,UAChB,SACA;AACV,cAAQ,UAAS,aAAQ,WAAR,YAAkB;AACnC,cAAQ,YAAY,QAAQ;AAC5B,cAAQ,mBAAmB,CAAC,CAAC,QAAQ;AAOrC,YAAM,SAAS,OAAO,YAAY;AAClC,UAAI,WAAW,UAAU;AACrB,eAAO,sBAAsB,YAAY,OAAO;AAAA,MACpD,OAAO;AACH,eAAO,OAAO,OAAO;AAAA,MACzB;AACA,YAAM,IAAI;AAAA,QAAc,CAAC,QACrB,sBAAsB,MAAM,sBAAsB,MAAM,IAAI,CAAC,CAAC;AAAA,MAClE;AACA,cAAQ,OAAO;AACf,aAAO,QAAQ;AAAA,IACnB;AAEA,WAAO;AAAA,EACX;AACJ;",
|
|
6
|
+
"names": ["options"]
|
|
7
|
+
}
|
package/src/Overlay.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";import{noop as g,OverlayBase as b}from"./OverlayBase.js";import{OverlayDialog as O}from"./OverlayDialog.js";import{OverlayPopover as E}from"./OverlayPopover.js";import{OverlayNoPopover as P}from"./OverlayNoPopover.js";import{reparentChildren as T}from"@spectrum-web-components/shared";const F="showPopover"in document.createElement("div");let r=O(b);F?r=E(r):r=P(r);export class Overlay extends r{static update(){const n=new CustomEvent("sp-update-overlays",{bubbles:!0,composed:!0,cancelable:!0});document.dispatchEvent(n)}static async open(n,i,v,o){var m,p,c;const d=arguments.length===2,s=v||n,e=new Overlay;e.dispose=()=>{e.addEventListener("sp-closed",()=>{l||(y(),l=!0),requestAnimationFrame(()=>{e.remove()})}),e.open=!1,e.dispose=g};let l=!1;const y=T([s],e,{position:"beforeend",prepareCallback:t=>{const a=t.slot;return t.removeAttribute("slot"),()=>{t.slot=a}}});if(d){const t=i;return e.append(s),e.receivesFocus=(m=t.receivesFocus)!=null?m:"auto",e.triggerElement=t.trigger||null,e.type=t.type||"modal",e.offset=t.offset||6,e.placement=t.placement,e.willPreventClose=!!t.notImmediatelyClosable,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.open=!0})}),e}else if(s&&o){const t=n,a=i;e.receivesFocus=(p=o.receivesFocus)!=null?p:"auto",e.triggerElement=o.virtualTrigger||t,e.type=a==="modal"?"modal":a==="hover"?"hint":"auto",e.offset=(c=o.offset)!=null?c:6,e.placement=o.placement,e.willPreventClose=!!o.notImmediatelyClosable;const u=t.getRootNode();return u===document?t.insertAdjacentElement("afterend",e):u.append(e),await new Promise(f=>requestAnimationFrame(()=>requestAnimationFrame(()=>f()))),e.open=!0,e.dispose}return e}}
|
|
2
|
+
//# sourceMappingURL=Overlay.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["Overlay.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 { noop, OverlayBase } from './OverlayBase.js';\nimport { OverlayDialog } from './OverlayDialog.js';\nimport { OverlayPopover } from './OverlayPopover.js';\nimport { OverlayNoPopover } from './OverlayNoPopover.js';\nimport type { OverlayOptions, TriggerInteractionsV1 } from './overlay-types.js';\nimport { Placement } from '@floating-ui/dom/src/types.js';\nimport { VirtualTrigger } from './VirtualTrigger.js';\nimport { reparentChildren } from '@spectrum-web-components/shared';\n\nconst supportsPopover = 'showPopover' in document.createElement('div');\n\nlet OverlayFeatures = OverlayDialog(OverlayBase);\nif (supportsPopover) {\n OverlayFeatures = OverlayPopover(OverlayFeatures);\n} else {\n OverlayFeatures = OverlayNoPopover(OverlayFeatures);\n}\n\ntype OverlayOptionsV2 = {\n delayed?: boolean;\n notImmediatelyClosable?: boolean;\n offset?: number | [number, number]; // supporting multi-axis\n placement?: Placement;\n receivesFocus?: 'auto' | 'true' | 'false';\n trigger?: HTMLElement | VirtualTrigger;\n type?: 'modal' | 'page' | 'hint' | 'auto' | 'manual';\n};\n\n/**\n * @element sp-overlay\n *\n * @fires sp-opened - announces that an overlay has completed any entry animations\n * @fires sp-closed - announce that an overlay has compelted any exit animations\n */\nexport class Overlay extends OverlayFeatures {\n public static update(): void {\n const overlayUpdateEvent = new CustomEvent('sp-update-overlays', {\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n document.dispatchEvent(overlayUpdateEvent);\n }\n\n public static async open(\n target: HTMLElement,\n interaction: TriggerInteractionsV1,\n content: HTMLElement,\n options: OverlayOptions\n ): Promise<() => void>;\n public static async open(\n content: HTMLElement,\n options?: OverlayOptionsV2\n ): Promise<Overlay>;\n public static async open(\n targetOrContent: HTMLElement,\n interactionOrOptions:\n | TriggerInteractionsV1\n | OverlayOptionsV2\n | undefined,\n content?: HTMLElement,\n options?: OverlayOptions\n ): Promise<Overlay | (() => void)> {\n const v2 = arguments.length === 2;\n const overlayContent = content || targetOrContent;\n const overlay = new Overlay();\n overlay.dispose = () => {\n overlay.addEventListener('sp-closed', () => {\n if (!restored) {\n restoreContent();\n restored = true;\n }\n requestAnimationFrame(() => {\n overlay.remove();\n });\n });\n overlay.open = false;\n overlay.dispose = noop;\n };\n let restored = false;\n const restoreContent = reparentChildren([overlayContent], overlay, {\n position: 'beforeend',\n prepareCallback: (el) => {\n const slot = el.slot;\n el.removeAttribute('slot');\n return () => {\n el.slot = slot;\n };\n },\n });\n if (v2) {\n const options = interactionOrOptions as OverlayOptionsV2;\n overlay.append(overlayContent);\n overlay.receivesFocus = options.receivesFocus ?? 'auto';\n overlay.triggerElement = options.trigger || null;\n overlay.type = options.type || 'modal';\n overlay.offset = options.offset || 6;\n overlay.placement = options.placement;\n overlay.willPreventClose = !!options.notImmediatelyClosable;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // Do we want to \"open\" this path, or leave that to the consumer?\n overlay.open = true;\n });\n });\n return overlay;\n } else if (overlayContent && options) {\n const target = targetOrContent;\n const interaction = interactionOrOptions;\n overlay.receivesFocus = options.receivesFocus ?? 'auto';\n overlay.triggerElement = options.virtualTrigger || target;\n overlay.type =\n interaction === 'modal'\n ? 'modal'\n : interaction === 'hover'\n ? 'hint'\n : 'auto';\n overlay.offset = options.offset ?? 6;\n overlay.placement = options.placement;\n overlay.willPreventClose = !!options.notImmediatelyClosable;\n // This is super dirty...find a better way.\n // Maybe imperative open should go _at the end_ of everything?\n // Having an option is likely useful.\n // Make imperative overlays less useful?\n // Delete the imperative approach to an overlay?\n // Possibly the giving all of the responsiblities to the user is the best path.\n const parent = target.getRootNode() as Document;\n if (parent === document) {\n target.insertAdjacentElement('afterend', overlay);\n } else {\n parent.append(overlay);\n }\n await new Promise<void>((res) =>\n requestAnimationFrame(() => requestAnimationFrame(() => res()))\n );\n overlay.open = true;\n return overlay.dispose;\n }\n /* c8 ignore next 1 */\n return overlay;\n }\n}\n"],
|
|
5
|
+
"mappings": "aAWA,OAAS,QAAAA,EAAM,eAAAC,MAAmB,mBAClC,OAAS,iBAAAC,MAAqB,qBAC9B,OAAS,kBAAAC,MAAsB,sBAC/B,OAAS,oBAAAC,MAAwB,wBAIjC,OAAS,oBAAAC,MAAwB,kCAEjC,MAAMC,EAAkB,gBAAiB,SAAS,cAAc,KAAK,EAErE,IAAIC,EAAkBL,EAAcD,CAAW,EAC3CK,EACAC,EAAkBJ,EAAeI,CAAe,EAEhDA,EAAkBH,EAAiBG,CAAe,EAmB/C,aAAM,gBAAgBA,CAAgB,CACzC,OAAc,QAAe,CACzB,MAAMC,EAAqB,IAAI,YAAY,qBAAsB,CAC7D,QAAS,GACT,SAAU,GACV,WAAY,EAChB,CAAC,EACD,SAAS,cAAcA,CAAkB,CAC7C,CAYA,aAAoB,KAChBC,EACAC,EAIAC,EACAC,EAC+B,CAzEvC,IAAAC,EAAAC,EAAAC,EA0EQ,MAAMC,EAAK,UAAU,SAAW,EAC1BC,EAAiBN,GAAWF,EAC5BS,EAAU,IAAI,QACpBA,EAAQ,QAAU,IAAM,CACpBA,EAAQ,iBAAiB,YAAa,IAAM,CACnCC,IACDC,EAAe,EACfD,EAAW,IAEf,sBAAsB,IAAM,CACxBD,EAAQ,OAAO,CACnB,CAAC,CACL,CAAC,EACDA,EAAQ,KAAO,GACfA,EAAQ,QAAUlB,CACtB,EACA,IAAImB,EAAW,GACf,MAAMC,EAAiBf,EAAiB,CAACY,CAAc,EAAGC,EAAS,CAC/D,SAAU,YACV,gBAAkBG,GAAO,CACrB,MAAMC,EAAOD,EAAG,KAChB,OAAAA,EAAG,gBAAgB,MAAM,EAClB,IAAM,CACTA,EAAG,KAAOC,CACd,CACJ,CACJ,CAAC,EACD,GAAIN,EAAI,CACJ,MAAMJ,EAAUF,EAChB,OAAAQ,EAAQ,OAAOD,CAAc,EAC7BC,EAAQ,eAAgBL,EAAAD,EAAQ,gBAAR,KAAAC,EAAyB,OACjDK,EAAQ,eAAiBN,EAAQ,SAAW,KAC5CM,EAAQ,KAAON,EAAQ,MAAQ,QAC/BM,EAAQ,OAASN,EAAQ,QAAU,EACnCM,EAAQ,UAAYN,EAAQ,UAC5BM,EAAQ,iBAAmB,CAAC,CAACN,EAAQ,uBACrC,sBAAsB,IAAM,CACxB,sBAAsB,IAAM,CAExBM,EAAQ,KAAO,EACnB,CAAC,CACL,CAAC,EACMA,UACAD,GAAkBL,EAAS,CAClC,MAAMW,EAASd,EACTe,EAAcd,EACpBQ,EAAQ,eAAgBJ,EAAAF,EAAQ,gBAAR,KAAAE,EAAyB,OACjDI,EAAQ,eAAiBN,EAAQ,gBAAkBW,EACnDL,EAAQ,KACJM,IAAgB,QACV,QACAA,IAAgB,QAChB,OACA,OACVN,EAAQ,QAASH,EAAAH,EAAQ,SAAR,KAAAG,EAAkB,EACnCG,EAAQ,UAAYN,EAAQ,UAC5BM,EAAQ,iBAAmB,CAAC,CAACN,EAAQ,uBAOrC,MAAMa,EAASF,EAAO,YAAY,EAClC,OAAIE,IAAW,SACXF,EAAO,sBAAsB,WAAYL,CAAO,EAEhDO,EAAO,OAAOP,CAAO,EAEzB,MAAM,IAAI,QAAeQ,GACrB,sBAAsB,IAAM,sBAAsB,IAAMA,EAAI,CAAC,CAAC,CAClE,EACAR,EAAQ,KAAO,GACRA,EAAQ,QAGnB,OAAOA,CACX,CACJ",
|
|
6
|
+
"names": ["noop", "OverlayBase", "OverlayDialog", "OverlayPopover", "OverlayNoPopover", "reparentChildren", "supportsPopover", "OverlayFeatures", "overlayUpdateEvent", "targetOrContent", "interactionOrOptions", "content", "options", "_a", "_b", "_c", "v2", "overlayContent", "overlay", "restored", "restoreContent", "el", "slot", "target", "interaction", "parent", "res"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { Placement } from '@floating-ui/dom';
|
|
2
|
+
import { PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
|
|
3
|
+
import { VirtualTrigger } from './VirtualTrigger.js';
|
|
4
|
+
import { PlacementController } from './PlacementController.js';
|
|
5
|
+
import { OverlayTypes } from './overlay-types.js';
|
|
6
|
+
import { OverlayTimer } from './overlay-timer.js';
|
|
7
|
+
export declare const overlayTimer: OverlayTimer;
|
|
8
|
+
export declare type OpenableElement = HTMLElement & {
|
|
9
|
+
open: boolean;
|
|
10
|
+
tipElement?: HTMLElement;
|
|
11
|
+
updateComplete?: Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export declare type LongpressEvent = {
|
|
14
|
+
source: 'pointer' | 'keyboard';
|
|
15
|
+
};
|
|
16
|
+
export declare const LONGPRESS_INSTRUCTIONS: {
|
|
17
|
+
touch: string;
|
|
18
|
+
keyboard: string;
|
|
19
|
+
mouse: string;
|
|
20
|
+
};
|
|
21
|
+
export declare class BeforetoggleClosedEvent extends Event {
|
|
22
|
+
currentState: string;
|
|
23
|
+
newState: string;
|
|
24
|
+
constructor();
|
|
25
|
+
}
|
|
26
|
+
export declare class BeforetoggleOpenEvent extends Event {
|
|
27
|
+
currentState: string;
|
|
28
|
+
newState: string;
|
|
29
|
+
constructor();
|
|
30
|
+
}
|
|
31
|
+
export declare const noop: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* Apply a "transitionend" listener to an element that may not transition but
|
|
34
|
+
* guarantee the callback will be fired either way.
|
|
35
|
+
*
|
|
36
|
+
* @param el {HTMLElement} - Target of the "transition" listeners.
|
|
37
|
+
* @param action {Function} - Method to trigger the "transition".
|
|
38
|
+
* @param cb {Function} - Callback to trigger when the "transition" has ended.
|
|
39
|
+
*/
|
|
40
|
+
export declare const guaranteedTransitionend: (el: HTMLElement, action: () => void, cb: () => void) => void;
|
|
41
|
+
export declare class OverlayBase extends SpectrumElement {
|
|
42
|
+
static styles: import("@spectrum-web-components/base").CSSResult[];
|
|
43
|
+
delayed: boolean;
|
|
44
|
+
dialogEl: HTMLDialogElement & {
|
|
45
|
+
showPopover(): void;
|
|
46
|
+
hidePopover(): void;
|
|
47
|
+
};
|
|
48
|
+
get disabled(): boolean;
|
|
49
|
+
set disabled(disabled: boolean);
|
|
50
|
+
private _disabled;
|
|
51
|
+
protected dispose: () => void;
|
|
52
|
+
elements: OpenableElement[];
|
|
53
|
+
parentOverlayToForceClose?: OverlayBase;
|
|
54
|
+
private get hasNonVirtualTrigger();
|
|
55
|
+
protected longpressed: boolean;
|
|
56
|
+
private longressTimeout;
|
|
57
|
+
offset: number | [number, number];
|
|
58
|
+
placementController: PlacementController;
|
|
59
|
+
get open(): boolean;
|
|
60
|
+
set open(open: boolean);
|
|
61
|
+
private _open;
|
|
62
|
+
static openCount: number;
|
|
63
|
+
placement?: Placement;
|
|
64
|
+
receivesFocus: 'true' | 'false' | 'auto';
|
|
65
|
+
private releaseAriaDescribedby;
|
|
66
|
+
private releaseLongpressDescribedby;
|
|
67
|
+
slotEl: HTMLSlotElement;
|
|
68
|
+
trigger?: string;
|
|
69
|
+
triggerElement: HTMLElement | VirtualTrigger | null;
|
|
70
|
+
triggerInteraction?: 'click' | 'longpress' | 'hover';
|
|
71
|
+
type: OverlayTypes;
|
|
72
|
+
protected wasOpen: boolean;
|
|
73
|
+
private elementResolver;
|
|
74
|
+
private get usesDialog();
|
|
75
|
+
private get popoverValue();
|
|
76
|
+
protected manageDialogOpen(): Promise<void>;
|
|
77
|
+
protected managePopoverOpen(): Promise<void>;
|
|
78
|
+
protected get requiresPosition(): boolean;
|
|
79
|
+
protected managePosition(): void;
|
|
80
|
+
protected manageOpen(oldOpen: boolean): Promise<void>;
|
|
81
|
+
protected unbindEvents(triggerElement: HTMLElement): void;
|
|
82
|
+
protected bindEvents(): void;
|
|
83
|
+
protected bindClickEvents(triggerElement: HTMLElement): void;
|
|
84
|
+
protected bindLongpressEvents(triggerElement: HTMLElement): void;
|
|
85
|
+
protected bindHoverEvents(triggerElement: HTMLElement): void;
|
|
86
|
+
protected manageTriggerElement(triggerElement: HTMLElement | null): void;
|
|
87
|
+
private elementIds;
|
|
88
|
+
private prepareLongpressDescription;
|
|
89
|
+
private prepareAriaDescribedby;
|
|
90
|
+
private handlePointerdown;
|
|
91
|
+
private handlePointerup;
|
|
92
|
+
/**
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
protected handleKeydown: (event: KeyboardEvent) => void;
|
|
96
|
+
protected handleKeyup: (event: KeyboardEvent) => void;
|
|
97
|
+
private preventNextToggle;
|
|
98
|
+
protected handlePointerdownForClick: () => void;
|
|
99
|
+
protected handleClick: () => void;
|
|
100
|
+
private focusedin;
|
|
101
|
+
protected handleFocusin: () => void;
|
|
102
|
+
protected handleFocusout: () => void;
|
|
103
|
+
private pointerentered;
|
|
104
|
+
protected handlePointerenter: () => void;
|
|
105
|
+
protected handlePointerleave: (event: PointerEvent) => void;
|
|
106
|
+
protected handleOverlayPointerleave: (event: PointerEvent) => void;
|
|
107
|
+
protected doPointerleave(): void;
|
|
108
|
+
protected handleLongpress: () => void;
|
|
109
|
+
protected handleBeforetoggle(event: Event & {
|
|
110
|
+
newState: string;
|
|
111
|
+
}): void;
|
|
112
|
+
protected handleBrowserClose(): void;
|
|
113
|
+
protected handleSlotchange(): void;
|
|
114
|
+
willPreventClose: boolean;
|
|
115
|
+
shouldPreventClose(): boolean;
|
|
116
|
+
willUpdate(changes: PropertyValues): void;
|
|
117
|
+
protected updated(changes: PropertyValues): void;
|
|
118
|
+
protected renderContent(): TemplateResult;
|
|
119
|
+
protected renderDialog(): TemplateResult;
|
|
120
|
+
protected renderPopover(): TemplateResult;
|
|
121
|
+
render(): TemplateResult;
|
|
122
|
+
connectedCallback(): void;
|
|
123
|
+
disconnectedCallback(): void;
|
|
124
|
+
}
|