@spectrum-web-components/overlay 0.36.0 → 0.37.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 +266 -149
- package/custom-elements.json +1678 -553
- package/package.json +49 -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/AbstractOverlay.d.ts +58 -0
- package/src/AbstractOverlay.dev.js +211 -0
- package/src/AbstractOverlay.dev.js.map +7 -0
- package/src/AbstractOverlay.js +2 -0
- package/src/AbstractOverlay.js.map +7 -0
- package/src/Overlay.d.ts +163 -0
- package/src/Overlay.dev.js +792 -0
- package/src/Overlay.dev.js.map +7 -0
- package/src/Overlay.js +33 -0
- package/src/Overlay.js.map +7 -0
- package/src/OverlayDialog.d.ts +4 -0
- package/src/OverlayDialog.dev.js +135 -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 +4 -0
- package/src/OverlayNoPopover.dev.js +109 -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 +4 -0
- package/src/OverlayPopover.dev.js +169 -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 +43 -0
- package/src/OverlayStack.dev.js +150 -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 +26 -42
- package/src/OverlayTrigger.dev.js +172 -296
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +49 -25
- package/src/OverlayTrigger.js.map +3 -3
- package/src/PlacementController.d.ts +38 -0
- package/src/PlacementController.dev.js +199 -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 +2 -1
- package/src/VirtualTrigger.dev.js.map +2 -2
- package/src/VirtualTrigger.js +1 -1
- package/src/VirtualTrigger.js.map +2 -2
- 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 +1 -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-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 +3 -3
- package/src/overlay-trigger.css.js.map +1 -1
- package/src/overlay-types.d.ts +25 -31
- 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/overlay.css.dev.js +9 -0
- package/src/overlay.css.dev.js.map +7 -0
- package/src/overlay.css.js +6 -0
- package/src/overlay.css.js.map +7 -0
- package/src/topLayerOverTransforms.d.ts +2 -0
- package/src/topLayerOverTransforms.dev.js +91 -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 +476 -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 +824 -680
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +5 -0
- package/sync/overlay-trigger.dev.js +2 -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 +2 -2
- package/test/benchmark/basic-test.js.map +1 -1
- package/test/index.js +414 -377
- 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 +682 -0
- package/test/overlay-element.test.js.map +7 -0
- package/test/overlay-lifecycle.test.js +36 -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 +46 -36
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +38 -25
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +41 -35
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +211 -82
- 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 +5 -5
- package/test/overlay-update.test.js.map +2 -2
- package/test/overlay-v1.test.js +547 -0
- package/test/overlay-v1.test.js.map +7 -0
- package/test/overlay.test.js +385 -269
- package/test/overlay.test.js.map +3 -3
- 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/src/{active-overlay.css.d.ts → overlay.css.d.ts} +0 -0
package/test/index.js
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
import {
|
|
2
|
+
import { fixture, isOnTopLayer } from "../../../test/testing-helpers.js";
|
|
3
3
|
import {
|
|
4
4
|
aTimeout,
|
|
5
5
|
elementUpdated,
|
|
6
6
|
expect,
|
|
7
|
-
fixture,
|
|
8
7
|
html,
|
|
9
8
|
nextFrame,
|
|
10
9
|
oneEvent,
|
|
11
10
|
waitUntil
|
|
12
11
|
} from "@open-wc/testing";
|
|
13
|
-
import {
|
|
14
|
-
OverlayTrigger
|
|
15
|
-
} from "@spectrum-web-components/overlay";
|
|
16
12
|
import "@spectrum-web-components/button/sp-button.js";
|
|
17
13
|
import "@spectrum-web-components/popover/sp-popover.js";
|
|
18
|
-
import { Popover } from "@spectrum-web-components/popover";
|
|
19
14
|
import "@spectrum-web-components/theme/sp-theme.js";
|
|
15
|
+
import { sendMouse } from "../../../test/plugins/browser.js";
|
|
16
|
+
import { sendKeys } from "@web/test-runner-commands";
|
|
20
17
|
function pressKey(code) {
|
|
21
18
|
const up = new KeyboardEvent("keyup", {
|
|
22
19
|
bubbles: true,
|
|
@@ -26,23 +23,12 @@ function pressKey(code) {
|
|
|
26
23
|
});
|
|
27
24
|
document.dispatchEvent(up);
|
|
28
25
|
}
|
|
29
|
-
const pressEscape = () => {
|
|
30
|
-
document.dispatchEvent(escapeEvent());
|
|
31
|
-
};
|
|
32
26
|
const pressSpace = () => pressKey("Space");
|
|
33
|
-
export const runOverlayTriggerTests = () => {
|
|
34
|
-
describe(
|
|
27
|
+
export const runOverlayTriggerTests = (type) => {
|
|
28
|
+
describe(`Overlay Trigger - ${type}`, () => {
|
|
35
29
|
describe("open/close", () => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
let outerTrigger;
|
|
39
|
-
let innerButton;
|
|
40
|
-
let outerButton;
|
|
41
|
-
let innerClickContent;
|
|
42
|
-
let outerClickContent;
|
|
43
|
-
let hoverContent;
|
|
44
|
-
beforeEach(async () => {
|
|
45
|
-
testDiv = await fixture(
|
|
30
|
+
beforeEach(async function() {
|
|
31
|
+
this.testDiv = await fixture(
|
|
46
32
|
html`
|
|
47
33
|
<div>
|
|
48
34
|
<style>
|
|
@@ -65,8 +51,6 @@ export const runOverlayTriggerTests = () => {
|
|
|
65
51
|
slot="click-content"
|
|
66
52
|
direction="bottom"
|
|
67
53
|
tip
|
|
68
|
-
open
|
|
69
|
-
tabindex="0"
|
|
70
54
|
>
|
|
71
55
|
<sp-dialog
|
|
72
56
|
no-divider
|
|
@@ -87,8 +71,6 @@ export const runOverlayTriggerTests = () => {
|
|
|
87
71
|
slot="click-content"
|
|
88
72
|
direction="bottom"
|
|
89
73
|
tip
|
|
90
|
-
open
|
|
91
|
-
tabindex="0"
|
|
92
74
|
>
|
|
93
75
|
<sp-dialog
|
|
94
76
|
no-divider
|
|
@@ -112,407 +94,495 @@ export const runOverlayTriggerTests = () => {
|
|
|
112
94
|
</div>
|
|
113
95
|
`
|
|
114
96
|
);
|
|
115
|
-
|
|
97
|
+
await nextFrame();
|
|
98
|
+
await nextFrame();
|
|
99
|
+
await nextFrame();
|
|
100
|
+
await nextFrame();
|
|
101
|
+
await nextFrame();
|
|
102
|
+
await nextFrame();
|
|
103
|
+
this.innerTrigger = this.testDiv.querySelector(
|
|
116
104
|
"#inner-trigger"
|
|
117
105
|
);
|
|
118
|
-
outerTrigger = testDiv.querySelector(
|
|
106
|
+
this.outerTrigger = this.testDiv.querySelector(
|
|
119
107
|
"#trigger"
|
|
120
108
|
);
|
|
121
|
-
innerButton = testDiv.querySelector(
|
|
122
|
-
|
|
123
|
-
|
|
109
|
+
this.innerButton = this.testDiv.querySelector(
|
|
110
|
+
"#inner-button"
|
|
111
|
+
);
|
|
112
|
+
this.outerButton = this.testDiv.querySelector(
|
|
113
|
+
"#outer-button"
|
|
114
|
+
);
|
|
115
|
+
this.innerClickContent = this.testDiv.querySelector(
|
|
124
116
|
"#inner-popover"
|
|
125
117
|
);
|
|
126
|
-
outerClickContent = testDiv.querySelector(
|
|
118
|
+
this.outerClickContent = this.testDiv.querySelector(
|
|
127
119
|
"#outer-popover"
|
|
128
120
|
);
|
|
129
|
-
hoverContent = testDiv.querySelector(
|
|
121
|
+
this.hoverContent = this.testDiv.querySelector(
|
|
130
122
|
"#hover-content"
|
|
131
123
|
);
|
|
132
124
|
});
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
outerTrigger
|
|
140
|
-
|
|
141
|
-
const closed = oneEvent(innerTrigger, "sp-closed");
|
|
142
|
-
innerTrigger.open = void 0;
|
|
143
|
-
await closed;
|
|
144
|
-
}
|
|
145
|
-
innerTrigger.removeAttribute("type");
|
|
146
|
-
});
|
|
147
|
-
it("loads", async () => {
|
|
148
|
-
if (!(outerClickContent instanceof Popover))
|
|
149
|
-
throw new Error("popover is not an instance of Popover");
|
|
150
|
-
expect(outerClickContent).to.exist;
|
|
151
|
-
expect(outerClickContent.shadowRoot).to.exist;
|
|
152
|
-
expect(outerClickContent.parentElement).to.be.an.instanceOf(
|
|
153
|
-
OverlayTrigger
|
|
154
|
-
);
|
|
155
|
-
});
|
|
156
|
-
it("opens a popover", async () => {
|
|
157
|
-
expect(isVisible(outerClickContent)).to.be.false;
|
|
158
|
-
expect(outerButton).to.exist;
|
|
159
|
-
const open = oneEvent(outerTrigger, "sp-opened");
|
|
160
|
-
outerButton.click();
|
|
125
|
+
it("opens a popover", async function() {
|
|
126
|
+
expect(
|
|
127
|
+
await isOnTopLayer(this.outerClickContent),
|
|
128
|
+
"popover not available at point"
|
|
129
|
+
).to.be.false;
|
|
130
|
+
expect(this.outerButton).to.exist;
|
|
131
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
132
|
+
this.outerButton.click();
|
|
161
133
|
await open;
|
|
162
|
-
expect(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
134
|
+
expect(
|
|
135
|
+
await isOnTopLayer(this.outerClickContent),
|
|
136
|
+
"popover available at point"
|
|
137
|
+
).to.be.true;
|
|
166
138
|
});
|
|
167
|
-
it("[disabled] closes a popover", async ()
|
|
168
|
-
expect(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
139
|
+
it("[disabled] closes a popover", async function() {
|
|
140
|
+
expect(
|
|
141
|
+
await isOnTopLayer(this.outerClickContent),
|
|
142
|
+
"popover not available at point"
|
|
143
|
+
).to.be.false;
|
|
144
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
145
|
+
expect(this.outerButton).to.exist;
|
|
146
|
+
const opened = oneEvent(this.outerButton, "sp-opened");
|
|
147
|
+
this.outerButton.click();
|
|
173
148
|
await opened;
|
|
174
|
-
expect(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const closed = oneEvent(outerButton, "sp-closed");
|
|
179
|
-
outerTrigger.disabled = true;
|
|
149
|
+
expect(
|
|
150
|
+
await isOnTopLayer(this.outerClickContent),
|
|
151
|
+
"popover available at point"
|
|
152
|
+
).to.be.true;
|
|
153
|
+
const closed = oneEvent(this.outerButton, "sp-closed");
|
|
154
|
+
this.outerTrigger.disabled = true;
|
|
180
155
|
await closed;
|
|
181
|
-
expect(
|
|
182
|
-
|
|
156
|
+
expect(
|
|
157
|
+
await isOnTopLayer(this.outerClickContent),
|
|
158
|
+
"popover not available at point"
|
|
159
|
+
).to.be.false;
|
|
183
160
|
});
|
|
184
|
-
it("resizes a popover", async ()
|
|
185
|
-
expect(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
161
|
+
it("resizes a popover", async function() {
|
|
162
|
+
expect(
|
|
163
|
+
await isOnTopLayer(this.outerClickContent),
|
|
164
|
+
"popover not available at point"
|
|
165
|
+
).to.be.false;
|
|
166
|
+
expect(this.outerButton).to.exist;
|
|
167
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
168
|
+
this.outerButton.click();
|
|
189
169
|
await open;
|
|
190
|
-
expect(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
170
|
+
expect(
|
|
171
|
+
await isOnTopLayer(this.outerClickContent),
|
|
172
|
+
"popover available at point"
|
|
173
|
+
).to.be.true;
|
|
194
174
|
window.dispatchEvent(new Event("resize"));
|
|
195
175
|
window.dispatchEvent(new Event("resize"));
|
|
196
|
-
expect(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
176
|
+
expect(
|
|
177
|
+
await isOnTopLayer(this.outerClickContent),
|
|
178
|
+
"popover available at point"
|
|
179
|
+
).to.be.true;
|
|
200
180
|
});
|
|
201
|
-
["modal", "replace", "inline"].map((
|
|
202
|
-
it(`opens a popover - [type="${
|
|
203
|
-
outerTrigger.type =
|
|
204
|
-
await elementUpdated(outerTrigger);
|
|
205
|
-
expect(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
181
|
+
["modal", "replace", "inline"].map((type2) => {
|
|
182
|
+
it(`opens a popover - [type="${type2}"]`, async function() {
|
|
183
|
+
this.outerTrigger.type = type2;
|
|
184
|
+
await elementUpdated(this.outerTrigger);
|
|
185
|
+
expect(
|
|
186
|
+
await isOnTopLayer(this.outerClickContent),
|
|
187
|
+
"popover not available at point"
|
|
188
|
+
).to.be.false;
|
|
189
|
+
expect(this.outerButton).to.exist;
|
|
190
|
+
const opened = oneEvent(this.outerTrigger, "sp-opened");
|
|
191
|
+
this.outerButton.click();
|
|
209
192
|
await opened;
|
|
210
193
|
expect(
|
|
211
|
-
outerClickContent
|
|
212
|
-
|
|
213
|
-
|
|
194
|
+
await isOnTopLayer(this.outerClickContent),
|
|
195
|
+
"popover available at point"
|
|
196
|
+
).to.be.true;
|
|
214
197
|
});
|
|
215
198
|
});
|
|
216
|
-
it("does not open a hover popover when a click popover is open", async ()
|
|
199
|
+
it("does not open a hover popover when a click popover is open", async function() {
|
|
217
200
|
expect(
|
|
218
|
-
|
|
219
|
-
"
|
|
201
|
+
await isOnTopLayer(this.outerClickContent),
|
|
202
|
+
"popover not available at point"
|
|
220
203
|
).to.be.false;
|
|
221
|
-
expect(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
204
|
+
expect(
|
|
205
|
+
await isOnTopLayer(this.hoverContent),
|
|
206
|
+
"hover not available at point"
|
|
207
|
+
).to.be.false;
|
|
208
|
+
expect(this.outerButton).to.exist;
|
|
209
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
210
|
+
this.outerButton.click();
|
|
225
211
|
await open;
|
|
226
|
-
expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
|
|
227
|
-
OverlayTrigger
|
|
228
|
-
);
|
|
229
|
-
expect(isVisible(outerClickContent), "outer popover visible").to.be.true;
|
|
230
212
|
expect(
|
|
231
|
-
|
|
232
|
-
"
|
|
213
|
+
await isOnTopLayer(this.outerClickContent),
|
|
214
|
+
"popover available at point"
|
|
215
|
+
).to.be.true;
|
|
216
|
+
expect(
|
|
217
|
+
await isOnTopLayer(this.hoverContent),
|
|
218
|
+
"hover not available at point"
|
|
233
219
|
).to.be.false;
|
|
234
|
-
outerButton.dispatchEvent(
|
|
220
|
+
this.outerButton.dispatchEvent(
|
|
235
221
|
new Event("mouseenter", {
|
|
236
222
|
bubbles: true,
|
|
237
223
|
composed: true
|
|
238
224
|
})
|
|
239
225
|
);
|
|
240
226
|
await nextFrame();
|
|
241
|
-
expect(hoverContent.parentElement).to.be.instanceOf(
|
|
242
|
-
OverlayTrigger
|
|
243
|
-
);
|
|
244
227
|
expect(
|
|
245
|
-
|
|
246
|
-
"
|
|
228
|
+
await isOnTopLayer(this.outerClickContent),
|
|
229
|
+
"popover available at point"
|
|
247
230
|
).to.be.true;
|
|
248
231
|
expect(
|
|
249
|
-
|
|
250
|
-
"hover
|
|
232
|
+
await isOnTopLayer(this.hoverContent),
|
|
233
|
+
"hover not available at point"
|
|
251
234
|
).to.be.false;
|
|
252
235
|
});
|
|
253
|
-
it("does not open a popover when [disabled]", async ()
|
|
254
|
-
|
|
255
|
-
const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
|
|
256
|
-
const triggerZone = root.querySelector(
|
|
236
|
+
it("does not open a popover when [disabled]", async function() {
|
|
237
|
+
const triggerZone = this.outerTrigger.shadowRoot.querySelector(
|
|
257
238
|
"#trigger"
|
|
258
239
|
);
|
|
259
|
-
expect(outerTrigger.disabled).to.be.false;
|
|
260
|
-
let open = oneEvent(outerTrigger, "sp-opened");
|
|
261
|
-
outerButton.click();
|
|
240
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
241
|
+
let open = oneEvent(this.outerTrigger, "sp-opened");
|
|
242
|
+
this.outerButton.click();
|
|
262
243
|
await open;
|
|
263
|
-
expect(
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
244
|
+
expect(
|
|
245
|
+
await isOnTopLayer(this.outerClickContent),
|
|
246
|
+
"hover available at point"
|
|
247
|
+
).to.be.true;
|
|
248
|
+
let closed = oneEvent(this.outerTrigger, "sp-closed");
|
|
249
|
+
sendMouse({
|
|
250
|
+
steps: [
|
|
251
|
+
{
|
|
252
|
+
type: "click",
|
|
253
|
+
position: [1, 1]
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
});
|
|
268
257
|
await closed;
|
|
269
|
-
expect(
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
expect(outerTrigger.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
258
|
+
expect(
|
|
259
|
+
await isOnTopLayer(this.outerClickContent),
|
|
260
|
+
"hover not available at point"
|
|
261
|
+
).to.be.false;
|
|
262
|
+
this.outerTrigger.disabled = true;
|
|
263
|
+
await elementUpdated(this.outerTrigger);
|
|
264
|
+
expect(this.outerTrigger.disabled).to.be.true;
|
|
265
|
+
expect(this.outerTrigger.hasAttribute("disabled")).to.be.true;
|
|
266
|
+
this.outerButton.click();
|
|
267
|
+
await aTimeout(150);
|
|
268
|
+
expect(
|
|
269
|
+
await isOnTopLayer(this.outerClickContent),
|
|
270
|
+
"hover not available at point"
|
|
271
|
+
).to.be.false;
|
|
281
272
|
triggerZone.dispatchEvent(new Event("mouseenter"));
|
|
282
|
-
await aTimeout(
|
|
283
|
-
expect(
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
expect(outerTrigger.
|
|
290
|
-
|
|
291
|
-
|
|
273
|
+
await aTimeout(150);
|
|
274
|
+
expect(
|
|
275
|
+
await isOnTopLayer(this.outerClickContent),
|
|
276
|
+
"hover not available at point"
|
|
277
|
+
).to.be.false;
|
|
278
|
+
this.outerTrigger.disabled = false;
|
|
279
|
+
await elementUpdated(this.outerTrigger);
|
|
280
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
281
|
+
expect(this.outerTrigger.hasAttribute("disabled")).to.be.false;
|
|
282
|
+
open = oneEvent(this.outerTrigger, "sp-opened");
|
|
283
|
+
this.outerButton.click();
|
|
292
284
|
await open;
|
|
293
|
-
expect(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
285
|
+
expect(
|
|
286
|
+
await isOnTopLayer(this.outerClickContent),
|
|
287
|
+
"hover available at point"
|
|
288
|
+
).to.be.true;
|
|
289
|
+
closed = oneEvent(this.outerTrigger, "sp-closed");
|
|
290
|
+
this.outerButton.click();
|
|
298
291
|
await closed;
|
|
299
|
-
expect(
|
|
300
|
-
|
|
301
|
-
|
|
292
|
+
expect(
|
|
293
|
+
await isOnTopLayer(this.outerClickContent),
|
|
294
|
+
"hover not available at point"
|
|
295
|
+
).to.be.false;
|
|
302
296
|
});
|
|
303
|
-
it("opens a nested popover", async ()
|
|
304
|
-
expect(
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
297
|
+
it("opens a nested popover", async function() {
|
|
298
|
+
expect(
|
|
299
|
+
await isOnTopLayer(this.outerClickContent),
|
|
300
|
+
"hover not available at point"
|
|
301
|
+
).to.be.false;
|
|
302
|
+
expect(
|
|
303
|
+
await isOnTopLayer(this.innerClickContent),
|
|
304
|
+
"hover not available at point"
|
|
305
|
+
).to.be.false;
|
|
306
|
+
expect(this.outerButton).to.exist;
|
|
307
|
+
let open = oneEvent(this.outerTrigger, "sp-opened");
|
|
308
|
+
this.outerButton.click();
|
|
309
309
|
await open;
|
|
310
|
-
expect(
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
expect(
|
|
315
|
-
open = oneEvent(innerTrigger, "sp-opened");
|
|
316
|
-
innerButton.click();
|
|
310
|
+
expect(
|
|
311
|
+
await isOnTopLayer(this.outerClickContent),
|
|
312
|
+
"outer click content available at point"
|
|
313
|
+
).to.be.true;
|
|
314
|
+
expect(await isOnTopLayer(this.innerClickContent)).to.be.false;
|
|
315
|
+
open = oneEvent(this.innerTrigger, "sp-opened");
|
|
316
|
+
this.innerButton.click();
|
|
317
317
|
await open;
|
|
318
|
-
expect(
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
expect(
|
|
318
|
+
expect(
|
|
319
|
+
await isOnTopLayer(this.outerClickContent),
|
|
320
|
+
"outer click content available at point"
|
|
321
|
+
).to.be.true;
|
|
322
|
+
expect(
|
|
323
|
+
await isOnTopLayer(this.innerClickContent),
|
|
324
|
+
"inner click content available at point"
|
|
325
|
+
).to.be.true;
|
|
323
326
|
});
|
|
324
|
-
it('focus previous "modal" when closing nested "modal"', async ()
|
|
325
|
-
outerTrigger.type = "modal";
|
|
326
|
-
innerTrigger.type = "modal";
|
|
327
|
+
it('focus previous "modal" when closing nested "modal"', async function() {
|
|
328
|
+
this.outerTrigger.type = "modal";
|
|
329
|
+
this.innerTrigger.type = "modal";
|
|
327
330
|
expect(
|
|
328
|
-
|
|
329
|
-
"outer
|
|
331
|
+
await isOnTopLayer(this.outerClickContent),
|
|
332
|
+
"outer click content not available at point"
|
|
330
333
|
).to.be.false;
|
|
331
334
|
expect(
|
|
332
|
-
|
|
333
|
-
"inner
|
|
335
|
+
await isOnTopLayer(this.innerClickContent),
|
|
336
|
+
"inner click content not available at point"
|
|
334
337
|
).to.be.false;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
outerButton.click();
|
|
338
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
339
|
+
this.outerButton.click();
|
|
338
340
|
await outerOpen;
|
|
339
|
-
expect(outerClickContent.parentElement).to.not.be.an.instanceOf(
|
|
340
|
-
OverlayTrigger
|
|
341
|
-
);
|
|
342
|
-
expect(isVisible(outerClickContent), "outer popover opens").to.be.true;
|
|
343
341
|
expect(
|
|
344
|
-
|
|
345
|
-
"
|
|
342
|
+
await isOnTopLayer(this.outerClickContent),
|
|
343
|
+
"outer click content available at point"
|
|
344
|
+
).to.be.true;
|
|
345
|
+
expect(
|
|
346
|
+
await isOnTopLayer(this.innerClickContent),
|
|
347
|
+
"inner click content available at point"
|
|
346
348
|
).to.be.false;
|
|
347
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
348
|
-
innerButton.click();
|
|
349
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
350
|
+
this.innerButton.click();
|
|
349
351
|
await innerOpen;
|
|
350
|
-
expect(
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
expect(
|
|
355
|
-
|
|
356
|
-
|
|
352
|
+
expect(
|
|
353
|
+
await isOnTopLayer(this.outerClickContent),
|
|
354
|
+
"outer click content available at point"
|
|
355
|
+
).to.be.true;
|
|
356
|
+
expect(
|
|
357
|
+
await isOnTopLayer(this.innerClickContent),
|
|
358
|
+
"inner click content available at point"
|
|
359
|
+
).to.be.true;
|
|
360
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
361
|
+
await sendKeys({
|
|
362
|
+
press: "Escape"
|
|
363
|
+
});
|
|
357
364
|
await innerClose;
|
|
358
|
-
expect(innerClickContent.parentElement).to.be.instanceOf(
|
|
359
|
-
OverlayTrigger
|
|
360
|
-
);
|
|
361
365
|
expect(
|
|
362
|
-
|
|
366
|
+
await isOnTopLayer(this.outerClickContent),
|
|
367
|
+
"outer click content available at point"
|
|
368
|
+
).to.be.true;
|
|
369
|
+
expect(
|
|
370
|
+
await isOnTopLayer(this.innerClickContent),
|
|
371
|
+
"inner click content not available at point"
|
|
372
|
+
).to.be.false;
|
|
373
|
+
expect(
|
|
374
|
+
document.activeElement === this.innerButton,
|
|
363
375
|
"outer popover recieved focus"
|
|
364
376
|
).to.be.true;
|
|
365
377
|
});
|
|
366
|
-
it("escape closes an open popover", async ()
|
|
367
|
-
outerTrigger.type = "modal";
|
|
368
|
-
innerTrigger.type = "modal";
|
|
369
|
-
const outerOpen = oneEvent(outerButton, "sp-opened");
|
|
370
|
-
outerButton.click();
|
|
378
|
+
it("escape closes an open popover", async function() {
|
|
379
|
+
this.outerTrigger.type = "modal";
|
|
380
|
+
this.innerTrigger.type = "modal";
|
|
381
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
382
|
+
this.outerButton.click();
|
|
371
383
|
await outerOpen;
|
|
372
384
|
expect(
|
|
373
|
-
outerClickContent
|
|
374
|
-
"outer content
|
|
375
|
-
).to.be.
|
|
376
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
377
|
-
innerButton.click();
|
|
385
|
+
await isOnTopLayer(this.outerClickContent),
|
|
386
|
+
"outer click content available at point"
|
|
387
|
+
).to.be.true;
|
|
388
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
389
|
+
this.innerButton.click();
|
|
378
390
|
await innerOpen;
|
|
379
391
|
expect(
|
|
380
|
-
|
|
381
|
-
"
|
|
382
|
-
).to.be.
|
|
383
|
-
expect(
|
|
384
|
-
|
|
392
|
+
await isOnTopLayer(this.outerClickContent),
|
|
393
|
+
"outer click content available at point"
|
|
394
|
+
).to.be.true;
|
|
395
|
+
expect(
|
|
396
|
+
await isOnTopLayer(this.innerClickContent),
|
|
397
|
+
"inner click content available at point"
|
|
398
|
+
).to.be.true;
|
|
385
399
|
pressSpace();
|
|
386
|
-
expect(
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
400
|
+
expect(
|
|
401
|
+
await isOnTopLayer(this.outerClickContent),
|
|
402
|
+
"outer click content available at point"
|
|
403
|
+
).to.be.true;
|
|
404
|
+
expect(
|
|
405
|
+
await isOnTopLayer(this.innerClickContent),
|
|
406
|
+
"inner click content available at point"
|
|
407
|
+
).to.be.true;
|
|
408
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
409
|
+
await sendKeys({
|
|
410
|
+
press: "Escape"
|
|
411
|
+
});
|
|
390
412
|
await innerClose;
|
|
391
413
|
expect(
|
|
392
|
-
|
|
393
|
-
"
|
|
414
|
+
await isOnTopLayer(this.outerClickContent),
|
|
415
|
+
"outer click content available at point"
|
|
394
416
|
).to.be.true;
|
|
395
|
-
expect(
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
417
|
+
expect(
|
|
418
|
+
await isOnTopLayer(this.innerClickContent),
|
|
419
|
+
"inner click content not available at point"
|
|
420
|
+
).to.be.false;
|
|
421
|
+
const outerClose = oneEvent(this.outerButton, "sp-closed");
|
|
422
|
+
await sendKeys({
|
|
423
|
+
press: "Escape"
|
|
424
|
+
});
|
|
399
425
|
await outerClose;
|
|
400
426
|
expect(
|
|
401
|
-
outerClickContent
|
|
402
|
-
"outer content
|
|
403
|
-
).to.be.
|
|
404
|
-
expect(
|
|
405
|
-
|
|
427
|
+
await isOnTopLayer(this.outerClickContent),
|
|
428
|
+
"outer click content not available at point"
|
|
429
|
+
).to.be.false;
|
|
430
|
+
expect(
|
|
431
|
+
await isOnTopLayer(this.innerClickContent),
|
|
432
|
+
"inner click content not available at point"
|
|
433
|
+
).to.be.false;
|
|
406
434
|
});
|
|
407
|
-
it("click closes an open popover", async ()
|
|
408
|
-
outerTrigger.type = "
|
|
409
|
-
innerTrigger.type = "
|
|
410
|
-
const outerOpen = oneEvent(outerButton, "sp-opened");
|
|
411
|
-
outerButton.click();
|
|
435
|
+
it("click closes an open popover", async function() {
|
|
436
|
+
this.outerTrigger.type = "auto";
|
|
437
|
+
this.innerTrigger.type = "auto";
|
|
438
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
439
|
+
this.outerButton.click();
|
|
412
440
|
await outerOpen;
|
|
413
441
|
expect(
|
|
414
|
-
outerClickContent
|
|
415
|
-
"outer content
|
|
416
|
-
).to.be.
|
|
417
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
418
|
-
innerButton.click();
|
|
442
|
+
await isOnTopLayer(this.outerClickContent),
|
|
443
|
+
"outer click content is available at point"
|
|
444
|
+
).to.be.true;
|
|
445
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
446
|
+
this.innerButton.click();
|
|
419
447
|
await innerOpen;
|
|
420
448
|
expect(
|
|
421
|
-
|
|
422
|
-
"
|
|
423
|
-
).to.be.
|
|
424
|
-
expect(
|
|
425
|
-
|
|
426
|
-
|
|
449
|
+
await isOnTopLayer(this.outerClickContent),
|
|
450
|
+
"outer click content is available at point"
|
|
451
|
+
).to.be.true;
|
|
452
|
+
expect(
|
|
453
|
+
await isOnTopLayer(this.innerClickContent),
|
|
454
|
+
"inner click content is available at point"
|
|
455
|
+
).to.be.true;
|
|
456
|
+
this.innerClickContent.click();
|
|
427
457
|
await aTimeout(200);
|
|
428
|
-
expect(isVisible(outerClickContent)).to.be.true;
|
|
429
|
-
expect(isVisible(innerClickContent)).to.be.true;
|
|
430
|
-
const innerClose = oneEvent(innerButton, "sp-closed");
|
|
431
|
-
document.body.click();
|
|
432
|
-
await innerClose;
|
|
433
458
|
expect(
|
|
434
|
-
|
|
435
|
-
"
|
|
459
|
+
await isOnTopLayer(this.outerClickContent),
|
|
460
|
+
"outer click content is available at point"
|
|
436
461
|
).to.be.true;
|
|
437
|
-
expect(isVisible(outerClickContent)).to.be.true;
|
|
438
|
-
expect(isVisible(innerClickContent)).to.be.false;
|
|
439
|
-
const outerClose = oneEvent(outerButton, "sp-closed");
|
|
440
|
-
document.body.click();
|
|
441
|
-
await outerClose;
|
|
442
462
|
expect(
|
|
443
|
-
|
|
444
|
-
"
|
|
463
|
+
await isOnTopLayer(this.innerClickContent),
|
|
464
|
+
"inner click content is available at point"
|
|
445
465
|
).to.be.true;
|
|
446
|
-
|
|
447
|
-
|
|
466
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
467
|
+
const outerClose = oneEvent(this.outerButton, "sp-closed");
|
|
468
|
+
sendMouse({
|
|
469
|
+
steps: [
|
|
470
|
+
{
|
|
471
|
+
type: "click",
|
|
472
|
+
position: [1, 1]
|
|
473
|
+
}
|
|
474
|
+
]
|
|
475
|
+
});
|
|
476
|
+
await innerClose;
|
|
477
|
+
await outerClose;
|
|
478
|
+
expect(
|
|
479
|
+
await isOnTopLayer(this.outerClickContent),
|
|
480
|
+
"outer click content is not available at point"
|
|
481
|
+
).to.be.not;
|
|
482
|
+
expect(
|
|
483
|
+
await isOnTopLayer(this.innerClickContent),
|
|
484
|
+
"inner click content is not available at point"
|
|
485
|
+
).to.be.not;
|
|
448
486
|
});
|
|
449
|
-
it("opens a hover popover", async ()
|
|
450
|
-
|
|
451
|
-
const
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
487
|
+
it("opens a hover popover", async function() {
|
|
488
|
+
expect(await isOnTopLayer(this.hoverContent)).to.be.false;
|
|
489
|
+
const rect = this.outerTrigger.getBoundingClientRect();
|
|
490
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
491
|
+
sendMouse({
|
|
492
|
+
steps: [
|
|
493
|
+
{
|
|
494
|
+
type: "move",
|
|
495
|
+
position: [
|
|
496
|
+
rect.left + rect.width / 2,
|
|
497
|
+
rect.top + rect.height / 2
|
|
498
|
+
]
|
|
499
|
+
}
|
|
500
|
+
]
|
|
501
|
+
});
|
|
463
502
|
await open;
|
|
464
|
-
expect(
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
const close = oneEvent(outerTrigger, "sp-closed");
|
|
469
|
-
|
|
470
|
-
|
|
503
|
+
expect(
|
|
504
|
+
await isOnTopLayer(this.hoverContent),
|
|
505
|
+
"hover content is available at point"
|
|
506
|
+
).to.be.true;
|
|
507
|
+
const close = oneEvent(this.outerTrigger, "sp-closed");
|
|
508
|
+
sendMouse({
|
|
509
|
+
steps: [
|
|
510
|
+
{
|
|
511
|
+
type: "move",
|
|
512
|
+
position: [
|
|
513
|
+
rect.left + rect.width * 2,
|
|
514
|
+
rect.top + rect.height / 2
|
|
515
|
+
]
|
|
516
|
+
}
|
|
517
|
+
]
|
|
518
|
+
});
|
|
471
519
|
await close;
|
|
472
|
-
expect(
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
expect(isVisible(hoverContent)).to.be.false;
|
|
476
|
-
});
|
|
477
|
-
it("closes a hover popover", async () => {
|
|
478
|
-
const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
|
|
479
|
-
const triggerZone = root.querySelector(
|
|
480
|
-
"#trigger"
|
|
481
|
-
);
|
|
482
|
-
expect(triggerZone).to.exist;
|
|
483
|
-
if (!triggerZone)
|
|
484
|
-
return;
|
|
485
|
-
expect(outerButton).to.exist;
|
|
486
|
-
expect(hoverContent).to.exist;
|
|
487
|
-
expect(
|
|
488
|
-
isVisible(hoverContent),
|
|
489
|
-
"hoverContent should not be visible"
|
|
520
|
+
expect(
|
|
521
|
+
await isOnTopLayer(this.hoverContent),
|
|
522
|
+
"hover content is not available at point"
|
|
490
523
|
).to.be.false;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
524
|
+
});
|
|
525
|
+
it("closes a hover popover", async function() {
|
|
526
|
+
expect(await isOnTopLayer(this.hoverContent)).to.be.false;
|
|
527
|
+
const rect = this.outerTrigger.getBoundingClientRect();
|
|
528
|
+
const close = oneEvent(this.outerTrigger, "sp-closed");
|
|
529
|
+
await sendMouse({
|
|
530
|
+
steps: [
|
|
531
|
+
{
|
|
532
|
+
type: "move",
|
|
533
|
+
position: [
|
|
534
|
+
rect.left + rect.width / 2,
|
|
535
|
+
rect.top + rect.height / 2
|
|
536
|
+
]
|
|
537
|
+
}
|
|
538
|
+
]
|
|
539
|
+
});
|
|
494
540
|
await nextFrame();
|
|
495
|
-
|
|
496
|
-
await
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
541
|
+
await nextFrame();
|
|
542
|
+
await nextFrame();
|
|
543
|
+
await nextFrame();
|
|
544
|
+
await sendMouse({
|
|
545
|
+
steps: [
|
|
546
|
+
{
|
|
547
|
+
type: "move",
|
|
548
|
+
position: [
|
|
549
|
+
rect.left + rect.width * 2,
|
|
550
|
+
rect.top + rect.height / 2
|
|
551
|
+
]
|
|
552
|
+
}
|
|
553
|
+
]
|
|
554
|
+
});
|
|
555
|
+
await close;
|
|
556
|
+
expect(
|
|
557
|
+
await isOnTopLayer(this.hoverContent),
|
|
558
|
+
"hover content is not available at point"
|
|
559
|
+
).to.be.false;
|
|
500
560
|
});
|
|
501
|
-
it("dispatches events on open/close", async ()
|
|
502
|
-
const opened = oneEvent(outerButton, "sp-opened");
|
|
503
|
-
outerButton.click();
|
|
561
|
+
it("dispatches events on open/close", async function() {
|
|
562
|
+
const opened = oneEvent(this.outerButton, "sp-opened");
|
|
563
|
+
this.outerButton.click();
|
|
504
564
|
const openedEvent = await opened;
|
|
505
|
-
expect(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
565
|
+
expect(
|
|
566
|
+
await isOnTopLayer(this.outerClickContent),
|
|
567
|
+
"hover content is available at point"
|
|
568
|
+
).to.be.true;
|
|
569
|
+
expect(this.outerTrigger.open).to.equal("click");
|
|
570
|
+
expect(openedEvent.detail.interaction).to.equal("auto");
|
|
571
|
+
const closed = oneEvent(this.outerButton, "sp-closed");
|
|
572
|
+
sendMouse({
|
|
573
|
+
steps: [
|
|
574
|
+
{
|
|
575
|
+
type: "click",
|
|
576
|
+
position: [1, 1]
|
|
577
|
+
}
|
|
578
|
+
]
|
|
579
|
+
});
|
|
510
580
|
const closedEvent = await closed;
|
|
511
|
-
expect(
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
581
|
+
expect(closedEvent.detail.interaction).to.equal("auto");
|
|
582
|
+
expect(
|
|
583
|
+
await isOnTopLayer(this.outerClickContent),
|
|
584
|
+
"hover content is not available at point"
|
|
585
|
+
).to.be.false;
|
|
516
586
|
});
|
|
517
587
|
});
|
|
518
588
|
describe("System interactions", () => {
|
|
@@ -528,50 +598,10 @@ export const runOverlayTriggerTests = () => {
|
|
|
528
598
|
});
|
|
529
599
|
await Promise.all(closes);
|
|
530
600
|
});
|
|
531
|
-
it(
|
|
532
|
-
const el = await fixture(html`
|
|
533
|
-
<sp-theme color="dark">
|
|
534
|
-
<sp-theme color="light">
|
|
535
|
-
<overlay-trigger id="trigger" placement="top">
|
|
536
|
-
<sp-button
|
|
537
|
-
id="outer-button"
|
|
538
|
-
variant="primary"
|
|
539
|
-
slot="trigger"
|
|
540
|
-
>
|
|
541
|
-
Show Popover
|
|
542
|
-
</sp-button>
|
|
543
|
-
<sp-popover
|
|
544
|
-
id="outer-popover"
|
|
545
|
-
dialog
|
|
546
|
-
slot="click-content"
|
|
547
|
-
direction="bottom"
|
|
548
|
-
tip
|
|
549
|
-
open
|
|
550
|
-
>
|
|
551
|
-
Popover content!
|
|
552
|
-
</sp-popover>
|
|
553
|
-
</overlay-trigger>
|
|
554
|
-
</sp-theme>
|
|
555
|
-
</sp-theme>
|
|
556
|
-
`);
|
|
557
|
-
await elementUpdated(el);
|
|
558
|
-
expect(document.querySelector("active-overlay")).to.be.null;
|
|
559
|
-
const button = el.querySelector("sp-button");
|
|
560
|
-
const opened = oneEvent(button, "sp-opened");
|
|
561
|
-
button.click();
|
|
562
|
-
await opened;
|
|
563
|
-
await elementUpdated(el);
|
|
564
|
-
const overlay = document.querySelector(
|
|
565
|
-
"active-overlay"
|
|
566
|
-
);
|
|
567
|
-
expect(overlay).to.exist;
|
|
568
|
-
expect(overlay.theme.color).to.not.equal("dark");
|
|
569
|
-
expect(overlay.theme.color).to.equal("light");
|
|
570
|
-
});
|
|
571
|
-
it('manages multiple layers of `type="modal"', async () => {
|
|
601
|
+
it.skip('manages multiple layers of `type="modal"', async () => {
|
|
572
602
|
var _a, _b, _c;
|
|
573
603
|
const el = await fixture(html`
|
|
574
|
-
<overlay-trigger type="modal"
|
|
604
|
+
<overlay-trigger type="modal">
|
|
575
605
|
<sp-button slot="trigger" variant="accent">
|
|
576
606
|
Toggle Dialog
|
|
577
607
|
</sp-button>
|
|
@@ -694,7 +724,14 @@ export const runOverlayTriggerTests = () => {
|
|
|
694
724
|
).to.equal("open");
|
|
695
725
|
await nextFrame();
|
|
696
726
|
const closed = oneEvent(triggers[2], "sp-closed");
|
|
697
|
-
|
|
727
|
+
sendMouse({
|
|
728
|
+
steps: [
|
|
729
|
+
{
|
|
730
|
+
type: "click",
|
|
731
|
+
position: [1, 1]
|
|
732
|
+
}
|
|
733
|
+
]
|
|
734
|
+
});
|
|
698
735
|
await closed;
|
|
699
736
|
await elementUpdated(overlayTriggers[2]);
|
|
700
737
|
activeOverlays = [
|