@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/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,489 @@ export const runOverlayTriggerTests = () => {
|
|
|
112
94
|
</div>
|
|
113
95
|
`
|
|
114
96
|
);
|
|
115
|
-
innerTrigger = testDiv.querySelector(
|
|
97
|
+
this.innerTrigger = this.testDiv.querySelector(
|
|
116
98
|
"#inner-trigger"
|
|
117
99
|
);
|
|
118
|
-
outerTrigger = testDiv.querySelector(
|
|
100
|
+
this.outerTrigger = this.testDiv.querySelector(
|
|
119
101
|
"#trigger"
|
|
120
102
|
);
|
|
121
|
-
innerButton = testDiv.querySelector(
|
|
122
|
-
|
|
123
|
-
|
|
103
|
+
this.innerButton = this.testDiv.querySelector(
|
|
104
|
+
"#inner-button"
|
|
105
|
+
);
|
|
106
|
+
this.outerButton = this.testDiv.querySelector(
|
|
107
|
+
"#outer-button"
|
|
108
|
+
);
|
|
109
|
+
this.innerClickContent = this.testDiv.querySelector(
|
|
124
110
|
"#inner-popover"
|
|
125
111
|
);
|
|
126
|
-
outerClickContent = testDiv.querySelector(
|
|
112
|
+
this.outerClickContent = this.testDiv.querySelector(
|
|
127
113
|
"#outer-popover"
|
|
128
114
|
);
|
|
129
|
-
hoverContent = testDiv.querySelector(
|
|
115
|
+
this.hoverContent = this.testDiv.querySelector(
|
|
130
116
|
"#hover-content"
|
|
131
117
|
);
|
|
132
118
|
});
|
|
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();
|
|
119
|
+
it("opens a popover", async function() {
|
|
120
|
+
expect(
|
|
121
|
+
await isOnTopLayer(this.outerClickContent),
|
|
122
|
+
"popover not available at point"
|
|
123
|
+
).to.be.false;
|
|
124
|
+
expect(this.outerButton).to.exist;
|
|
125
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
126
|
+
this.outerButton.click();
|
|
161
127
|
await open;
|
|
162
|
-
expect(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
128
|
+
expect(
|
|
129
|
+
await isOnTopLayer(this.outerClickContent),
|
|
130
|
+
"popover available at point"
|
|
131
|
+
).to.be.true;
|
|
166
132
|
});
|
|
167
|
-
it("[disabled] closes a popover", async ()
|
|
168
|
-
expect(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
133
|
+
it("[disabled] closes a popover", async function() {
|
|
134
|
+
expect(
|
|
135
|
+
await isOnTopLayer(this.outerClickContent),
|
|
136
|
+
"popover not available at point"
|
|
137
|
+
).to.be.false;
|
|
138
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
139
|
+
expect(this.outerButton).to.exist;
|
|
140
|
+
const opened = oneEvent(this.outerButton, "sp-opened");
|
|
141
|
+
this.outerButton.click();
|
|
173
142
|
await opened;
|
|
174
|
-
expect(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const closed = oneEvent(outerButton, "sp-closed");
|
|
179
|
-
outerTrigger.disabled = true;
|
|
143
|
+
expect(
|
|
144
|
+
await isOnTopLayer(this.outerClickContent),
|
|
145
|
+
"popover available at point"
|
|
146
|
+
).to.be.true;
|
|
147
|
+
const closed = oneEvent(this.outerButton, "sp-closed");
|
|
148
|
+
this.outerTrigger.disabled = true;
|
|
180
149
|
await closed;
|
|
181
|
-
expect(
|
|
182
|
-
|
|
150
|
+
expect(
|
|
151
|
+
await isOnTopLayer(this.outerClickContent),
|
|
152
|
+
"popover not available at point"
|
|
153
|
+
).to.be.false;
|
|
183
154
|
});
|
|
184
|
-
it("resizes a popover", async ()
|
|
185
|
-
expect(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
155
|
+
it("resizes a popover", async function() {
|
|
156
|
+
expect(
|
|
157
|
+
await isOnTopLayer(this.outerClickContent),
|
|
158
|
+
"popover not available at point"
|
|
159
|
+
).to.be.false;
|
|
160
|
+
expect(this.outerButton).to.exist;
|
|
161
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
162
|
+
this.outerButton.click();
|
|
189
163
|
await open;
|
|
190
|
-
expect(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
164
|
+
expect(
|
|
165
|
+
await isOnTopLayer(this.outerClickContent),
|
|
166
|
+
"popover available at point"
|
|
167
|
+
).to.be.true;
|
|
194
168
|
window.dispatchEvent(new Event("resize"));
|
|
195
169
|
window.dispatchEvent(new Event("resize"));
|
|
196
|
-
expect(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
170
|
+
expect(
|
|
171
|
+
await isOnTopLayer(this.outerClickContent),
|
|
172
|
+
"popover available at point"
|
|
173
|
+
).to.be.true;
|
|
200
174
|
});
|
|
201
|
-
["modal", "replace", "inline"].map((
|
|
202
|
-
it(`opens a popover - [type="${
|
|
203
|
-
outerTrigger.type =
|
|
204
|
-
await elementUpdated(outerTrigger);
|
|
205
|
-
expect(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
175
|
+
["modal", "replace", "inline"].map((type2) => {
|
|
176
|
+
it(`opens a popover - [type="${type2}"]`, async function() {
|
|
177
|
+
this.outerTrigger.type = type2;
|
|
178
|
+
await elementUpdated(this.outerTrigger);
|
|
179
|
+
expect(
|
|
180
|
+
await isOnTopLayer(this.outerClickContent),
|
|
181
|
+
"popover not available at point"
|
|
182
|
+
).to.be.false;
|
|
183
|
+
expect(this.outerButton).to.exist;
|
|
184
|
+
const opened = oneEvent(this.outerTrigger, "sp-opened");
|
|
185
|
+
this.outerButton.click();
|
|
209
186
|
await opened;
|
|
210
187
|
expect(
|
|
211
|
-
outerClickContent
|
|
212
|
-
|
|
213
|
-
|
|
188
|
+
await isOnTopLayer(this.outerClickContent),
|
|
189
|
+
"popover available at point"
|
|
190
|
+
).to.be.true;
|
|
214
191
|
});
|
|
215
192
|
});
|
|
216
|
-
it("does not open a hover popover when a click popover is open", async ()
|
|
193
|
+
it("does not open a hover popover when a click popover is open", async function() {
|
|
194
|
+
expect(
|
|
195
|
+
await isOnTopLayer(this.outerClickContent),
|
|
196
|
+
"popover not available at point"
|
|
197
|
+
).to.be.false;
|
|
217
198
|
expect(
|
|
218
|
-
|
|
219
|
-
"
|
|
199
|
+
await isOnTopLayer(this.hoverContent),
|
|
200
|
+
"hover not available at point"
|
|
220
201
|
).to.be.false;
|
|
221
|
-
expect(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
outerButton.click();
|
|
202
|
+
expect(this.outerButton).to.exist;
|
|
203
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
204
|
+
this.outerButton.click();
|
|
225
205
|
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
206
|
expect(
|
|
231
|
-
|
|
232
|
-
"
|
|
207
|
+
await isOnTopLayer(this.outerClickContent),
|
|
208
|
+
"popover available at point"
|
|
209
|
+
).to.be.true;
|
|
210
|
+
expect(
|
|
211
|
+
await isOnTopLayer(this.hoverContent),
|
|
212
|
+
"hover not available at point"
|
|
233
213
|
).to.be.false;
|
|
234
|
-
outerButton.dispatchEvent(
|
|
214
|
+
this.outerButton.dispatchEvent(
|
|
235
215
|
new Event("mouseenter", {
|
|
236
216
|
bubbles: true,
|
|
237
217
|
composed: true
|
|
238
218
|
})
|
|
239
219
|
);
|
|
240
220
|
await nextFrame();
|
|
241
|
-
expect(hoverContent.parentElement).to.be.instanceOf(
|
|
242
|
-
OverlayTrigger
|
|
243
|
-
);
|
|
244
221
|
expect(
|
|
245
|
-
|
|
246
|
-
"
|
|
222
|
+
await isOnTopLayer(this.outerClickContent),
|
|
223
|
+
"popover available at point"
|
|
247
224
|
).to.be.true;
|
|
248
225
|
expect(
|
|
249
|
-
|
|
250
|
-
"hover
|
|
226
|
+
await isOnTopLayer(this.hoverContent),
|
|
227
|
+
"hover not available at point"
|
|
251
228
|
).to.be.false;
|
|
252
229
|
});
|
|
253
|
-
it("does not open a popover when [disabled]", async ()
|
|
254
|
-
|
|
255
|
-
const root = outerTrigger.shadowRoot ? outerTrigger.shadowRoot : outerTrigger;
|
|
256
|
-
const triggerZone = root.querySelector(
|
|
230
|
+
it("does not open a popover when [disabled]", async function() {
|
|
231
|
+
const triggerZone = this.outerTrigger.shadowRoot.querySelector(
|
|
257
232
|
"#trigger"
|
|
258
233
|
);
|
|
259
|
-
expect(outerTrigger.disabled).to.be.false;
|
|
260
|
-
let open = oneEvent(outerTrigger, "sp-opened");
|
|
261
|
-
outerButton.click();
|
|
234
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
235
|
+
let open = oneEvent(this.outerTrigger, "sp-opened");
|
|
236
|
+
this.outerButton.click();
|
|
262
237
|
await open;
|
|
263
|
-
expect(
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
238
|
+
expect(
|
|
239
|
+
await isOnTopLayer(this.outerClickContent),
|
|
240
|
+
"hover available at point"
|
|
241
|
+
).to.be.true;
|
|
242
|
+
let closed = oneEvent(this.outerTrigger, "sp-closed");
|
|
243
|
+
sendMouse({
|
|
244
|
+
steps: [
|
|
245
|
+
{
|
|
246
|
+
type: "click",
|
|
247
|
+
position: [1, 1]
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
});
|
|
268
251
|
await closed;
|
|
269
|
-
expect(
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
expect(outerTrigger.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
252
|
+
expect(
|
|
253
|
+
await isOnTopLayer(this.outerClickContent),
|
|
254
|
+
"hover not available at point"
|
|
255
|
+
).to.be.false;
|
|
256
|
+
this.outerTrigger.disabled = true;
|
|
257
|
+
await elementUpdated(this.outerTrigger);
|
|
258
|
+
expect(this.outerTrigger.disabled).to.be.true;
|
|
259
|
+
expect(this.outerTrigger.hasAttribute("disabled")).to.be.true;
|
|
260
|
+
this.outerButton.click();
|
|
261
|
+
await aTimeout(150);
|
|
262
|
+
expect(
|
|
263
|
+
await isOnTopLayer(this.outerClickContent),
|
|
264
|
+
"hover not available at point"
|
|
265
|
+
).to.be.false;
|
|
281
266
|
triggerZone.dispatchEvent(new Event("mouseenter"));
|
|
282
|
-
await aTimeout(
|
|
283
|
-
expect(
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
expect(outerTrigger.
|
|
290
|
-
|
|
291
|
-
|
|
267
|
+
await aTimeout(150);
|
|
268
|
+
expect(
|
|
269
|
+
await isOnTopLayer(this.outerClickContent),
|
|
270
|
+
"hover not available at point"
|
|
271
|
+
).to.be.false;
|
|
272
|
+
this.outerTrigger.disabled = false;
|
|
273
|
+
await elementUpdated(this.outerTrigger);
|
|
274
|
+
expect(this.outerTrigger.disabled).to.be.false;
|
|
275
|
+
expect(this.outerTrigger.hasAttribute("disabled")).to.be.false;
|
|
276
|
+
open = oneEvent(this.outerTrigger, "sp-opened");
|
|
277
|
+
this.outerButton.click();
|
|
292
278
|
await open;
|
|
293
|
-
expect(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
279
|
+
expect(
|
|
280
|
+
await isOnTopLayer(this.outerClickContent),
|
|
281
|
+
"hover available at point"
|
|
282
|
+
).to.be.true;
|
|
283
|
+
closed = oneEvent(this.outerTrigger, "sp-closed");
|
|
284
|
+
this.outerButton.click();
|
|
298
285
|
await closed;
|
|
299
|
-
expect(
|
|
300
|
-
|
|
301
|
-
|
|
286
|
+
expect(
|
|
287
|
+
await isOnTopLayer(this.outerClickContent),
|
|
288
|
+
"hover not available at point"
|
|
289
|
+
).to.be.false;
|
|
302
290
|
});
|
|
303
|
-
it("opens a nested popover", async ()
|
|
304
|
-
expect(
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
291
|
+
it("opens a nested popover", async function() {
|
|
292
|
+
expect(
|
|
293
|
+
await isOnTopLayer(this.outerClickContent),
|
|
294
|
+
"hover not available at point"
|
|
295
|
+
).to.be.false;
|
|
296
|
+
expect(
|
|
297
|
+
await isOnTopLayer(this.innerClickContent),
|
|
298
|
+
"hover not available at point"
|
|
299
|
+
).to.be.false;
|
|
300
|
+
expect(this.outerButton).to.exist;
|
|
301
|
+
let open = oneEvent(this.outerTrigger, "sp-opened");
|
|
302
|
+
this.outerButton.click();
|
|
309
303
|
await open;
|
|
310
|
-
expect(
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
expect(
|
|
315
|
-
open = oneEvent(innerTrigger, "sp-opened");
|
|
316
|
-
innerButton.click();
|
|
304
|
+
expect(
|
|
305
|
+
await isOnTopLayer(this.outerClickContent),
|
|
306
|
+
"outer click content available at point"
|
|
307
|
+
).to.be.true;
|
|
308
|
+
expect(await isOnTopLayer(this.innerClickContent)).to.be.false;
|
|
309
|
+
open = oneEvent(this.innerTrigger, "sp-opened");
|
|
310
|
+
this.innerButton.click();
|
|
317
311
|
await open;
|
|
318
|
-
expect(
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
expect(
|
|
312
|
+
expect(
|
|
313
|
+
await isOnTopLayer(this.outerClickContent),
|
|
314
|
+
"outer click content available at point"
|
|
315
|
+
).to.be.true;
|
|
316
|
+
expect(
|
|
317
|
+
await isOnTopLayer(this.innerClickContent),
|
|
318
|
+
"inner click content available at point"
|
|
319
|
+
).to.be.true;
|
|
323
320
|
});
|
|
324
|
-
it('focus previous "modal" when closing nested "modal"', async ()
|
|
325
|
-
outerTrigger.type = "modal";
|
|
326
|
-
innerTrigger.type = "modal";
|
|
321
|
+
it('focus previous "modal" when closing nested "modal"', async function() {
|
|
322
|
+
this.outerTrigger.type = "modal";
|
|
323
|
+
this.innerTrigger.type = "modal";
|
|
327
324
|
expect(
|
|
328
|
-
|
|
329
|
-
"outer
|
|
325
|
+
await isOnTopLayer(this.outerClickContent),
|
|
326
|
+
"outer click content not available at point"
|
|
330
327
|
).to.be.false;
|
|
331
328
|
expect(
|
|
332
|
-
|
|
333
|
-
"inner
|
|
329
|
+
await isOnTopLayer(this.innerClickContent),
|
|
330
|
+
"inner click content not available at point"
|
|
334
331
|
).to.be.false;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
outerButton.click();
|
|
332
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
333
|
+
this.outerButton.click();
|
|
338
334
|
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
335
|
expect(
|
|
344
|
-
|
|
345
|
-
"
|
|
336
|
+
await isOnTopLayer(this.outerClickContent),
|
|
337
|
+
"outer click content available at point"
|
|
338
|
+
).to.be.true;
|
|
339
|
+
expect(
|
|
340
|
+
await isOnTopLayer(this.innerClickContent),
|
|
341
|
+
"inner click content available at point"
|
|
346
342
|
).to.be.false;
|
|
347
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
348
|
-
innerButton.click();
|
|
343
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
344
|
+
this.innerButton.click();
|
|
349
345
|
await innerOpen;
|
|
350
|
-
expect(
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
expect(
|
|
355
|
-
|
|
356
|
-
|
|
346
|
+
expect(
|
|
347
|
+
await isOnTopLayer(this.outerClickContent),
|
|
348
|
+
"outer click content available at point"
|
|
349
|
+
).to.be.true;
|
|
350
|
+
expect(
|
|
351
|
+
await isOnTopLayer(this.innerClickContent),
|
|
352
|
+
"inner click content available at point"
|
|
353
|
+
).to.be.true;
|
|
354
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
355
|
+
await sendKeys({
|
|
356
|
+
press: "Escape"
|
|
357
|
+
});
|
|
357
358
|
await innerClose;
|
|
358
|
-
expect(innerClickContent.parentElement).to.be.instanceOf(
|
|
359
|
-
OverlayTrigger
|
|
360
|
-
);
|
|
361
359
|
expect(
|
|
362
|
-
|
|
360
|
+
await isOnTopLayer(this.outerClickContent),
|
|
361
|
+
"outer click content available at point"
|
|
362
|
+
).to.be.true;
|
|
363
|
+
expect(
|
|
364
|
+
await isOnTopLayer(this.innerClickContent),
|
|
365
|
+
"inner click content not available at point"
|
|
366
|
+
).to.be.false;
|
|
367
|
+
expect(
|
|
368
|
+
document.activeElement === this.innerButton,
|
|
363
369
|
"outer popover recieved focus"
|
|
364
370
|
).to.be.true;
|
|
365
371
|
});
|
|
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();
|
|
372
|
+
it("escape closes an open popover", async function() {
|
|
373
|
+
this.outerTrigger.type = "modal";
|
|
374
|
+
this.innerTrigger.type = "modal";
|
|
375
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
376
|
+
this.outerButton.click();
|
|
371
377
|
await outerOpen;
|
|
372
378
|
expect(
|
|
373
|
-
outerClickContent
|
|
374
|
-
"outer content
|
|
375
|
-
).to.be.
|
|
376
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
377
|
-
innerButton.click();
|
|
379
|
+
await isOnTopLayer(this.outerClickContent),
|
|
380
|
+
"outer click content available at point"
|
|
381
|
+
).to.be.true;
|
|
382
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
383
|
+
this.innerButton.click();
|
|
378
384
|
await innerOpen;
|
|
379
385
|
expect(
|
|
380
|
-
|
|
381
|
-
"
|
|
382
|
-
).to.be.
|
|
383
|
-
expect(
|
|
384
|
-
|
|
386
|
+
await isOnTopLayer(this.outerClickContent),
|
|
387
|
+
"outer click content available at point"
|
|
388
|
+
).to.be.true;
|
|
389
|
+
expect(
|
|
390
|
+
await isOnTopLayer(this.innerClickContent),
|
|
391
|
+
"inner click content available at point"
|
|
392
|
+
).to.be.true;
|
|
385
393
|
pressSpace();
|
|
386
|
-
expect(
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
394
|
+
expect(
|
|
395
|
+
await isOnTopLayer(this.outerClickContent),
|
|
396
|
+
"outer click content available at point"
|
|
397
|
+
).to.be.true;
|
|
398
|
+
expect(
|
|
399
|
+
await isOnTopLayer(this.innerClickContent),
|
|
400
|
+
"inner click content available at point"
|
|
401
|
+
).to.be.true;
|
|
402
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
403
|
+
await sendKeys({
|
|
404
|
+
press: "Escape"
|
|
405
|
+
});
|
|
390
406
|
await innerClose;
|
|
391
407
|
expect(
|
|
392
|
-
|
|
393
|
-
"
|
|
408
|
+
await isOnTopLayer(this.outerClickContent),
|
|
409
|
+
"outer click content available at point"
|
|
394
410
|
).to.be.true;
|
|
395
|
-
expect(
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
411
|
+
expect(
|
|
412
|
+
await isOnTopLayer(this.innerClickContent),
|
|
413
|
+
"inner click content not available at point"
|
|
414
|
+
).to.be.false;
|
|
415
|
+
const outerClose = oneEvent(this.outerButton, "sp-closed");
|
|
416
|
+
await sendKeys({
|
|
417
|
+
press: "Escape"
|
|
418
|
+
});
|
|
399
419
|
await outerClose;
|
|
400
420
|
expect(
|
|
401
|
-
outerClickContent
|
|
402
|
-
"outer content
|
|
403
|
-
).to.be.
|
|
404
|
-
expect(
|
|
405
|
-
|
|
421
|
+
await isOnTopLayer(this.outerClickContent),
|
|
422
|
+
"outer click content not available at point"
|
|
423
|
+
).to.be.false;
|
|
424
|
+
expect(
|
|
425
|
+
await isOnTopLayer(this.innerClickContent),
|
|
426
|
+
"inner click content not available at point"
|
|
427
|
+
).to.be.false;
|
|
406
428
|
});
|
|
407
|
-
it("click closes an open popover", async ()
|
|
408
|
-
outerTrigger.type = "
|
|
409
|
-
innerTrigger.type = "
|
|
410
|
-
const outerOpen = oneEvent(outerButton, "sp-opened");
|
|
411
|
-
outerButton.click();
|
|
429
|
+
it("click closes an open popover", async function() {
|
|
430
|
+
this.outerTrigger.type = "auto";
|
|
431
|
+
this.innerTrigger.type = "auto";
|
|
432
|
+
const outerOpen = oneEvent(this.outerButton, "sp-opened");
|
|
433
|
+
this.outerButton.click();
|
|
412
434
|
await outerOpen;
|
|
413
435
|
expect(
|
|
414
|
-
outerClickContent
|
|
415
|
-
"outer content
|
|
416
|
-
).to.be.
|
|
417
|
-
const innerOpen = oneEvent(innerButton, "sp-opened");
|
|
418
|
-
innerButton.click();
|
|
436
|
+
await isOnTopLayer(this.outerClickContent),
|
|
437
|
+
"outer click content is available at point"
|
|
438
|
+
).to.be.true;
|
|
439
|
+
const innerOpen = oneEvent(this.innerButton, "sp-opened");
|
|
440
|
+
this.innerButton.click();
|
|
419
441
|
await innerOpen;
|
|
420
442
|
expect(
|
|
421
|
-
|
|
422
|
-
"
|
|
423
|
-
).to.be.
|
|
424
|
-
expect(
|
|
425
|
-
|
|
426
|
-
|
|
443
|
+
await isOnTopLayer(this.outerClickContent),
|
|
444
|
+
"outer click content is available at point"
|
|
445
|
+
).to.be.true;
|
|
446
|
+
expect(
|
|
447
|
+
await isOnTopLayer(this.innerClickContent),
|
|
448
|
+
"inner click content is available at point"
|
|
449
|
+
).to.be.true;
|
|
450
|
+
this.innerClickContent.click();
|
|
427
451
|
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
452
|
expect(
|
|
434
|
-
|
|
435
|
-
"
|
|
453
|
+
await isOnTopLayer(this.outerClickContent),
|
|
454
|
+
"outer click content is available at point"
|
|
436
455
|
).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
456
|
expect(
|
|
443
|
-
|
|
444
|
-
"
|
|
457
|
+
await isOnTopLayer(this.innerClickContent),
|
|
458
|
+
"inner click content is available at point"
|
|
445
459
|
).to.be.true;
|
|
446
|
-
|
|
447
|
-
|
|
460
|
+
const innerClose = oneEvent(this.innerButton, "sp-closed");
|
|
461
|
+
const outerClose = oneEvent(this.outerButton, "sp-closed");
|
|
462
|
+
sendMouse({
|
|
463
|
+
steps: [
|
|
464
|
+
{
|
|
465
|
+
type: "click",
|
|
466
|
+
position: [1, 1]
|
|
467
|
+
}
|
|
468
|
+
]
|
|
469
|
+
});
|
|
470
|
+
await innerClose;
|
|
471
|
+
await outerClose;
|
|
472
|
+
expect(
|
|
473
|
+
await isOnTopLayer(this.outerClickContent),
|
|
474
|
+
"outer click content is not available at point"
|
|
475
|
+
).to.be.not;
|
|
476
|
+
expect(
|
|
477
|
+
await isOnTopLayer(this.innerClickContent),
|
|
478
|
+
"inner click content is not available at point"
|
|
479
|
+
).to.be.not;
|
|
448
480
|
});
|
|
449
|
-
it("opens a hover popover", async ()
|
|
450
|
-
|
|
451
|
-
const
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
481
|
+
it("opens a hover popover", async function() {
|
|
482
|
+
expect(await isOnTopLayer(this.hoverContent)).to.be.false;
|
|
483
|
+
const rect = this.outerTrigger.getBoundingClientRect();
|
|
484
|
+
const open = oneEvent(this.outerTrigger, "sp-opened");
|
|
485
|
+
sendMouse({
|
|
486
|
+
steps: [
|
|
487
|
+
{
|
|
488
|
+
type: "move",
|
|
489
|
+
position: [
|
|
490
|
+
rect.left + rect.width / 2,
|
|
491
|
+
rect.top + rect.height / 2
|
|
492
|
+
]
|
|
493
|
+
}
|
|
494
|
+
]
|
|
495
|
+
});
|
|
463
496
|
await open;
|
|
464
|
-
expect(
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
const close = oneEvent(outerTrigger, "sp-closed");
|
|
469
|
-
|
|
470
|
-
|
|
497
|
+
expect(
|
|
498
|
+
await isOnTopLayer(this.hoverContent),
|
|
499
|
+
"hover content is available at point"
|
|
500
|
+
).to.be.true;
|
|
501
|
+
const close = oneEvent(this.outerTrigger, "sp-closed");
|
|
502
|
+
sendMouse({
|
|
503
|
+
steps: [
|
|
504
|
+
{
|
|
505
|
+
type: "move",
|
|
506
|
+
position: [
|
|
507
|
+
rect.left + rect.width * 2,
|
|
508
|
+
rect.top + rect.height / 2
|
|
509
|
+
]
|
|
510
|
+
}
|
|
511
|
+
]
|
|
512
|
+
});
|
|
471
513
|
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"
|
|
514
|
+
expect(
|
|
515
|
+
await isOnTopLayer(this.hoverContent),
|
|
516
|
+
"hover content is not available at point"
|
|
490
517
|
).to.be.false;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
518
|
+
});
|
|
519
|
+
it("closes a hover popover", async function() {
|
|
520
|
+
expect(await isOnTopLayer(this.hoverContent)).to.be.false;
|
|
521
|
+
const rect = this.outerTrigger.getBoundingClientRect();
|
|
522
|
+
const close = oneEvent(this.outerTrigger, "sp-closed");
|
|
523
|
+
await sendMouse({
|
|
524
|
+
steps: [
|
|
525
|
+
{
|
|
526
|
+
type: "move",
|
|
527
|
+
position: [
|
|
528
|
+
rect.left + rect.width / 2,
|
|
529
|
+
rect.top + rect.height / 2
|
|
530
|
+
]
|
|
531
|
+
}
|
|
532
|
+
]
|
|
533
|
+
});
|
|
494
534
|
await nextFrame();
|
|
495
|
-
|
|
496
|
-
await
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
535
|
+
await nextFrame();
|
|
536
|
+
await nextFrame();
|
|
537
|
+
await nextFrame();
|
|
538
|
+
await sendMouse({
|
|
539
|
+
steps: [
|
|
540
|
+
{
|
|
541
|
+
type: "move",
|
|
542
|
+
position: [
|
|
543
|
+
rect.left + rect.width * 2,
|
|
544
|
+
rect.top + rect.height / 2
|
|
545
|
+
]
|
|
546
|
+
}
|
|
547
|
+
]
|
|
548
|
+
});
|
|
549
|
+
await close;
|
|
550
|
+
expect(
|
|
551
|
+
await isOnTopLayer(this.hoverContent),
|
|
552
|
+
"hover content is not available at point"
|
|
553
|
+
).to.be.false;
|
|
500
554
|
});
|
|
501
|
-
it("dispatches events on open/close", async ()
|
|
502
|
-
const opened = oneEvent(outerButton, "sp-opened");
|
|
503
|
-
outerButton.click();
|
|
555
|
+
it("dispatches events on open/close", async function() {
|
|
556
|
+
const opened = oneEvent(this.outerButton, "sp-opened");
|
|
557
|
+
this.outerButton.click();
|
|
504
558
|
const openedEvent = await opened;
|
|
505
|
-
expect(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
559
|
+
expect(
|
|
560
|
+
await isOnTopLayer(this.outerClickContent),
|
|
561
|
+
"hover content is available at point"
|
|
562
|
+
).to.be.true;
|
|
563
|
+
expect(this.outerTrigger.open).to.equal("click");
|
|
564
|
+
expect(openedEvent.detail.interaction).to.equal("auto");
|
|
565
|
+
const closed = oneEvent(this.outerButton, "sp-closed");
|
|
566
|
+
sendMouse({
|
|
567
|
+
steps: [
|
|
568
|
+
{
|
|
569
|
+
type: "click",
|
|
570
|
+
position: [1, 1]
|
|
571
|
+
}
|
|
572
|
+
]
|
|
573
|
+
});
|
|
510
574
|
const closedEvent = await closed;
|
|
511
|
-
expect(
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
575
|
+
expect(closedEvent.detail.interaction).to.equal("auto");
|
|
576
|
+
expect(
|
|
577
|
+
await isOnTopLayer(this.outerClickContent),
|
|
578
|
+
"hover content is not available at point"
|
|
579
|
+
).to.be.false;
|
|
516
580
|
});
|
|
517
581
|
});
|
|
518
582
|
describe("System interactions", () => {
|
|
@@ -528,47 +592,7 @@ export const runOverlayTriggerTests = () => {
|
|
|
528
592
|
});
|
|
529
593
|
await Promise.all(closes);
|
|
530
594
|
});
|
|
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 () => {
|
|
595
|
+
it.skip('manages multiple layers of `type="modal"', async () => {
|
|
572
596
|
var _a, _b, _c;
|
|
573
597
|
const el = await fixture(html`
|
|
574
598
|
<overlay-trigger type="modal" placement="none">
|
|
@@ -694,7 +718,14 @@ export const runOverlayTriggerTests = () => {
|
|
|
694
718
|
).to.equal("open");
|
|
695
719
|
await nextFrame();
|
|
696
720
|
const closed = oneEvent(triggers[2], "sp-closed");
|
|
697
|
-
|
|
721
|
+
sendMouse({
|
|
722
|
+
steps: [
|
|
723
|
+
{
|
|
724
|
+
type: "click",
|
|
725
|
+
position: [1, 1]
|
|
726
|
+
}
|
|
727
|
+
]
|
|
728
|
+
});
|
|
698
729
|
await closed;
|
|
699
730
|
await elementUpdated(overlayTriggers[2]);
|
|
700
731
|
activeOverlays = [
|