@spectrum-web-components/overlay 0.19.2-overlay.33 → 0.19.3
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/custom-elements.json +1212 -0
- package/package.json +6 -57
- package/src/OverlayTrigger.d.ts +31 -18
- package/src/OverlayTrigger.dev.js +245 -137
- package/src/OverlayTrigger.dev.js.map +3 -3
- package/src/OverlayTrigger.js +22 -54
- package/src/OverlayTrigger.js.map +3 -3
- 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/stories/overlay-story-components.js +2 -1
- package/stories/overlay-story-components.js.map +2 -2
- package/stories/overlay.stories.js +637 -652
- package/stories/overlay.stories.js.map +2 -2
- package/sync/overlay-trigger.d.ts +0 -4
- package/sync/overlay-trigger.dev.js +3 -1
- package/sync/overlay-trigger.dev.js.map +2 -2
- package/sync/overlay-trigger.js +1 -1
- package/sync/overlay-trigger.js.map +3 -3
- package/test/index.js +3 -3
- package/test/index.js.map +2 -2
- package/test/overlay-lifecycle.test.js +61 -15
- package/test/overlay-lifecycle.test.js.map +2 -2
- package/test/overlay-trigger-click.test.js +2 -3
- package/test/overlay-trigger-click.test.js.map +2 -2
- package/test/overlay-trigger-extended.test.js +1 -1
- package/test/overlay-trigger-extended.test.js.map +2 -2
- package/test/overlay-trigger-hover-click.test.js +1 -1
- package/test/overlay-trigger-hover-click.test.js.map +2 -2
- package/test/overlay-trigger-hover.test.js +2 -2
- package/test/overlay-trigger-hover.test.js.map +2 -2
- package/test/overlay-trigger-longpress.test.js +1 -1
- package/test/overlay-trigger-longpress.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 +3 -3
- package/test/overlay.test.js.map +2 -2
- package/sp-overlay.d.ts +0 -11
- package/sp-overlay.dev.js +0 -14
- package/sp-overlay.dev.js.map +0 -7
- package/sp-overlay.js +0 -2
- package/sp-overlay.js.map +0 -7
- package/src/OverlayBase.d.ts +0 -91
- package/src/OverlayBase.dev.js +0 -521
- package/src/OverlayBase.dev.js.map +0 -7
- package/src/OverlayBase.js +0 -16
- package/src/OverlayBase.js.map +0 -7
- package/src/OverlayDialog.d.ts +0 -8
- package/src/OverlayDialog.dev.js +0 -43
- package/src/OverlayDialog.dev.js.map +0 -7
- package/src/OverlayDialog.js +0 -2
- package/src/OverlayDialog.js.map +0 -7
- package/src/OverlayElement.d.ts +0 -66
- package/src/OverlayElement.dev.js +0 -371
- package/src/OverlayElement.dev.js.map +0 -7
- package/src/OverlayElement.js +0 -9
- package/src/OverlayElement.js.map +0 -7
- package/src/OverlayNoPopover.d.ts +0 -8
- package/src/OverlayNoPopover.dev.js +0 -63
- package/src/OverlayNoPopover.dev.js.map +0 -7
- package/src/OverlayNoPopover.js +0 -2
- package/src/OverlayNoPopover.js.map +0 -7
- package/src/OverlayPopover.d.ts +0 -8
- package/src/OverlayPopover.dev.js +0 -37
- package/src/OverlayPopover.dev.js.map +0 -7
- package/src/OverlayPopover.js +0 -2
- package/src/OverlayPopover.js.map +0 -7
- package/src/OverlayStack.d.ts +0 -24
- package/src/OverlayStack.dev.js +0 -113
- package/src/OverlayStack.dev.js.map +0 -7
- package/src/OverlayStack.js +0 -2
- package/src/OverlayStack.js.map +0 -7
- package/src/PlacementController.d.ts +0 -35
- package/src/PlacementController.dev.js +0 -172
- package/src/PlacementController.dev.js.map +0 -7
- package/src/PlacementController.js +0 -2
- package/src/PlacementController.js.map +0 -7
- package/src/fullSizePlugin.d.ts +0 -12
- package/src/fullSizePlugin.dev.js +0 -39
- package/src/fullSizePlugin.dev.js.map +0 -7
- package/src/fullSizePlugin.js +0 -2
- package/src/fullSizePlugin.js.map +0 -7
- package/src/overlay-base.css.d.ts +0 -2
- package/src/overlay-base.css.dev.js +0 -9
- package/src/overlay-base.css.dev.js.map +0 -7
- package/src/overlay-base.css.js +0 -6
- package/src/overlay-base.css.js.map +0 -7
- package/src/overlay-element.css.d.ts +0 -2
- package/src/overlay-element.css.dev.js +0 -7
- package/src/overlay-element.css.dev.js.map +0 -7
- package/src/overlay-element.css.js +0 -4
- package/src/overlay-element.css.js.map +0 -7
- package/src/placement.d.ts +0 -21
- package/src/placement.dev.js +0 -111
- package/src/placement.dev.js.map +0 -7
- package/src/placement.js +0 -2
- package/src/placement.js.map +0 -7
- package/src/sizePlugin.d.ts +0 -12
- package/src/sizePlugin.dev.js +0 -18
- package/src/sizePlugin.dev.js.map +0 -7
- package/src/sizePlugin.js +0 -2
- package/src/sizePlugin.js.map +0 -7
- package/src/topLayerOverTransforms.d.ts +0 -22
- package/src/topLayerOverTransforms.dev.js +0 -161
- package/src/topLayerOverTransforms.dev.js.map +0 -7
- package/src/topLayerOverTransforms.js +0 -2
- package/src/topLayerOverTransforms.js.map +0 -7
- package/stories/overlay-element.stories.js +0 -216
- package/stories/overlay-element.stories.js.map +0 -7
- package/test/overlay-element.test-vrt.js +0 -5
- package/test/overlay-element.test-vrt.js.map +0 -7
- package/test/overlay-element.test.js +0 -739
- package/test/overlay-element.test.js.map +0 -7
|
@@ -1,739 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import {
|
|
3
|
-
elementUpdated,
|
|
4
|
-
expect,
|
|
5
|
-
fixture,
|
|
6
|
-
html,
|
|
7
|
-
nextFrame,
|
|
8
|
-
oneEvent
|
|
9
|
-
} from "@open-wc/testing";
|
|
10
|
-
import "@spectrum-web-components/overlay/sp-overlay.js";
|
|
11
|
-
import "@spectrum-web-components/tooltip/sp-tooltip.js";
|
|
12
|
-
import "@spectrum-web-components/theme/sp-theme.js";
|
|
13
|
-
import "@spectrum-web-components/theme/src/themes.js";
|
|
14
|
-
import "@spectrum-web-components/button/sp-button.js";
|
|
15
|
-
import { sendMouse } from "../../../test/plugins/browser.js";
|
|
16
|
-
const OVERLAY_TYPES = ["modal", "page", "hint", "auto", "manual"];
|
|
17
|
-
async function styledFixture(story) {
|
|
18
|
-
const test = await fixture(html`
|
|
19
|
-
<sp-theme theme="spectrum" scale="medium" color="dark">
|
|
20
|
-
${story}
|
|
21
|
-
</sp-theme>
|
|
22
|
-
`);
|
|
23
|
-
return test.children[0];
|
|
24
|
-
}
|
|
25
|
-
describe("sp-overlay", () => {
|
|
26
|
-
function opensDeclaratively(overlayType) {
|
|
27
|
-
it(`as [type="'${overlayType}'"]`, async () => {
|
|
28
|
-
const el = await styledFixture(html`
|
|
29
|
-
<sp-overlay open type=${overlayType}>
|
|
30
|
-
<sp-tooltip>Content</sp-tooltip>
|
|
31
|
-
</sp-overlay>
|
|
32
|
-
`);
|
|
33
|
-
const content = el.children[0];
|
|
34
|
-
let opened = oneEvent(el, "sp-opened");
|
|
35
|
-
await opened;
|
|
36
|
-
await elementUpdated(el);
|
|
37
|
-
expect(content.open).to.be.true;
|
|
38
|
-
await nextFrame();
|
|
39
|
-
const closed = oneEvent(el, "sp-closed");
|
|
40
|
-
el.open = false;
|
|
41
|
-
await closed;
|
|
42
|
-
await elementUpdated(el);
|
|
43
|
-
expect(content.open).to.be.false;
|
|
44
|
-
await nextFrame();
|
|
45
|
-
opened = oneEvent(el, "sp-opened");
|
|
46
|
-
el.open = true;
|
|
47
|
-
await opened;
|
|
48
|
-
await elementUpdated(el);
|
|
49
|
-
expect(content.open).to.be.true;
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
describe('[type="modal"]', () => {
|
|
53
|
-
opensDeclaratively("modal");
|
|
54
|
-
xit("closes all other overlay types when opening", async () => {
|
|
55
|
-
const test = await styledFixture(html`
|
|
56
|
-
<div>
|
|
57
|
-
${OVERLAY_TYPES.map(
|
|
58
|
-
(type) => html`
|
|
59
|
-
<sp-overlay type=${type}>
|
|
60
|
-
<sp-tooltip>${type} Content</sp-tooltip>
|
|
61
|
-
</sp-overlay>
|
|
62
|
-
`
|
|
63
|
-
)}
|
|
64
|
-
</div>
|
|
65
|
-
`);
|
|
66
|
-
const modal = test.querySelector('[type="modal"]');
|
|
67
|
-
const page = test.querySelector('[type="page"]');
|
|
68
|
-
const hint = test.querySelector('[type="hint"]');
|
|
69
|
-
const auto = test.querySelector('[type="auto"]');
|
|
70
|
-
const manual = test.querySelector('[type="manual"]');
|
|
71
|
-
expect(modal.open).to.be.false;
|
|
72
|
-
expect(page.open).to.be.false;
|
|
73
|
-
expect(hint.open).to.be.false;
|
|
74
|
-
expect(auto.open).to.be.false;
|
|
75
|
-
expect(manual.open).to.be.false;
|
|
76
|
-
let opened = oneEvent(page, "sp-opened");
|
|
77
|
-
page.open = true;
|
|
78
|
-
await opened;
|
|
79
|
-
await elementUpdated(page);
|
|
80
|
-
expect(modal.open).to.be.false;
|
|
81
|
-
expect(page.open).to.be.true;
|
|
82
|
-
expect(hint.open).to.be.false;
|
|
83
|
-
expect(auto.open).to.be.false;
|
|
84
|
-
expect(manual.open).to.be.false;
|
|
85
|
-
await nextFrame();
|
|
86
|
-
opened = oneEvent(modal, "sp-opened");
|
|
87
|
-
let closed = oneEvent(page, "sp-closed");
|
|
88
|
-
modal.open = true;
|
|
89
|
-
await opened;
|
|
90
|
-
await closed;
|
|
91
|
-
await elementUpdated(page);
|
|
92
|
-
await elementUpdated(modal);
|
|
93
|
-
expect(modal.open).to.be.true;
|
|
94
|
-
expect(page.open).to.be.false;
|
|
95
|
-
expect(hint.open).to.be.false;
|
|
96
|
-
expect(auto.open).to.be.false;
|
|
97
|
-
expect(manual.open).to.be.false;
|
|
98
|
-
await nextFrame();
|
|
99
|
-
closed = oneEvent(modal, "sp-closed");
|
|
100
|
-
modal.open = false;
|
|
101
|
-
await closed;
|
|
102
|
-
await elementUpdated(page);
|
|
103
|
-
expect(modal.open).to.be.false;
|
|
104
|
-
expect(page.open).to.be.false;
|
|
105
|
-
expect(hint.open).to.be.false;
|
|
106
|
-
expect(auto.open).to.be.false;
|
|
107
|
-
expect(manual.open).to.be.false;
|
|
108
|
-
await nextFrame();
|
|
109
|
-
opened = oneEvent(hint, "sp-opened");
|
|
110
|
-
hint.open = true;
|
|
111
|
-
await opened;
|
|
112
|
-
await elementUpdated(hint);
|
|
113
|
-
expect(modal.open).to.be.false;
|
|
114
|
-
expect(page.open).to.be.false;
|
|
115
|
-
expect(hint.open).to.be.true;
|
|
116
|
-
expect(auto.open).to.be.false;
|
|
117
|
-
expect(manual.open).to.be.false;
|
|
118
|
-
await nextFrame();
|
|
119
|
-
opened = oneEvent(modal, "sp-opened");
|
|
120
|
-
closed = oneEvent(hint, "sp-closed");
|
|
121
|
-
modal.open = true;
|
|
122
|
-
await opened;
|
|
123
|
-
await closed;
|
|
124
|
-
await elementUpdated(page);
|
|
125
|
-
await elementUpdated(modal);
|
|
126
|
-
expect(modal.open).to.be.true;
|
|
127
|
-
expect(page.open).to.be.false;
|
|
128
|
-
expect(hint.open).to.be.false;
|
|
129
|
-
expect(auto.open).to.be.false;
|
|
130
|
-
expect(manual.open).to.be.false;
|
|
131
|
-
await nextFrame();
|
|
132
|
-
closed = oneEvent(modal, "sp-closed");
|
|
133
|
-
modal.open = false;
|
|
134
|
-
await closed;
|
|
135
|
-
await elementUpdated(page);
|
|
136
|
-
expect(modal.open).to.be.false;
|
|
137
|
-
expect(page.open).to.be.false;
|
|
138
|
-
expect(hint.open).to.be.false;
|
|
139
|
-
expect(auto.open).to.be.false;
|
|
140
|
-
expect(manual.open).to.be.false;
|
|
141
|
-
await nextFrame();
|
|
142
|
-
opened = oneEvent(auto, "sp-opened");
|
|
143
|
-
auto.open = true;
|
|
144
|
-
await opened;
|
|
145
|
-
await elementUpdated(auto);
|
|
146
|
-
expect(modal.open).to.be.false;
|
|
147
|
-
expect(page.open).to.be.false;
|
|
148
|
-
expect(hint.open).to.be.false;
|
|
149
|
-
expect(auto.open).to.be.true;
|
|
150
|
-
expect(manual.open).to.be.false;
|
|
151
|
-
await nextFrame();
|
|
152
|
-
opened = oneEvent(modal, "sp-opened");
|
|
153
|
-
closed = oneEvent(auto, "sp-closed");
|
|
154
|
-
modal.open = true;
|
|
155
|
-
await opened;
|
|
156
|
-
await closed;
|
|
157
|
-
await elementUpdated(auto);
|
|
158
|
-
await elementUpdated(modal);
|
|
159
|
-
expect(modal.open).to.be.true;
|
|
160
|
-
expect(page.open).to.be.false;
|
|
161
|
-
expect(hint.open).to.be.false;
|
|
162
|
-
expect(auto.open).to.be.false;
|
|
163
|
-
expect(manual.open).to.be.false;
|
|
164
|
-
await nextFrame();
|
|
165
|
-
closed = oneEvent(modal, "sp-closed");
|
|
166
|
-
modal.open = false;
|
|
167
|
-
await closed;
|
|
168
|
-
await elementUpdated(modal);
|
|
169
|
-
expect(modal.open).to.be.false;
|
|
170
|
-
expect(page.open).to.be.false;
|
|
171
|
-
expect(hint.open).to.be.false;
|
|
172
|
-
expect(auto.open).to.be.false;
|
|
173
|
-
expect(manual.open).to.be.false;
|
|
174
|
-
await nextFrame();
|
|
175
|
-
opened = oneEvent(manual, "sp-opened");
|
|
176
|
-
manual.open = true;
|
|
177
|
-
await opened;
|
|
178
|
-
await elementUpdated(manual);
|
|
179
|
-
expect(modal.open).to.be.false;
|
|
180
|
-
expect(page.open).to.be.false;
|
|
181
|
-
expect(hint.open).to.be.false;
|
|
182
|
-
expect(auto.open).to.be.false;
|
|
183
|
-
expect(manual.open).to.be.true;
|
|
184
|
-
await nextFrame();
|
|
185
|
-
opened = oneEvent(modal, "sp-opened");
|
|
186
|
-
closed = oneEvent(manual, "sp-closed");
|
|
187
|
-
modal.open = true;
|
|
188
|
-
await opened;
|
|
189
|
-
await closed;
|
|
190
|
-
await elementUpdated(page);
|
|
191
|
-
await elementUpdated(manual);
|
|
192
|
-
expect(modal.open).to.be.true;
|
|
193
|
-
expect(page.open).to.be.false;
|
|
194
|
-
expect(hint.open).to.be.false;
|
|
195
|
-
expect(auto.open).to.be.false;
|
|
196
|
-
expect(manual.open).to.be.false;
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
describe('[type="page"]', () => {
|
|
200
|
-
opensDeclaratively("page");
|
|
201
|
-
xit("closes all other overlay types when opening", async () => {
|
|
202
|
-
const test = await styledFixture(html`
|
|
203
|
-
<div>
|
|
204
|
-
${OVERLAY_TYPES.map(
|
|
205
|
-
(type) => html`
|
|
206
|
-
<sp-overlay type=${type}>
|
|
207
|
-
<sp-tooltip>${type} Content</sp-tooltip>
|
|
208
|
-
</sp-overlay>
|
|
209
|
-
`
|
|
210
|
-
)}
|
|
211
|
-
</div>
|
|
212
|
-
`);
|
|
213
|
-
const modal = test.querySelector('[type="modal"]');
|
|
214
|
-
const page = test.querySelector('[type="page"]');
|
|
215
|
-
const hint = test.querySelector('[type="hint"]');
|
|
216
|
-
const auto = test.querySelector('[type="auto"]');
|
|
217
|
-
const manual = test.querySelector('[type="manual"]');
|
|
218
|
-
expect(modal.open).to.be.false;
|
|
219
|
-
expect(page.open).to.be.false;
|
|
220
|
-
expect(hint.open).to.be.false;
|
|
221
|
-
expect(auto.open).to.be.false;
|
|
222
|
-
expect(manual.open).to.be.false;
|
|
223
|
-
let opened = oneEvent(modal, "sp-opened");
|
|
224
|
-
modal.open = true;
|
|
225
|
-
await opened;
|
|
226
|
-
await elementUpdated(modal);
|
|
227
|
-
expect(modal.open).to.be.true;
|
|
228
|
-
expect(page.open).to.be.false;
|
|
229
|
-
expect(hint.open).to.be.false;
|
|
230
|
-
expect(auto.open).to.be.false;
|
|
231
|
-
expect(manual.open).to.be.false;
|
|
232
|
-
await nextFrame();
|
|
233
|
-
opened = oneEvent(page, "sp-opened");
|
|
234
|
-
let closed = oneEvent(modal, "sp-closed");
|
|
235
|
-
page.open = true;
|
|
236
|
-
await opened;
|
|
237
|
-
await closed;
|
|
238
|
-
await elementUpdated(page);
|
|
239
|
-
await elementUpdated(modal);
|
|
240
|
-
expect(modal.open).to.be.false;
|
|
241
|
-
expect(page.open).to.be.true;
|
|
242
|
-
expect(hint.open).to.be.false;
|
|
243
|
-
expect(auto.open).to.be.false;
|
|
244
|
-
expect(manual.open).to.be.false;
|
|
245
|
-
await nextFrame();
|
|
246
|
-
closed = oneEvent(page, "sp-closed");
|
|
247
|
-
page.open = false;
|
|
248
|
-
await closed;
|
|
249
|
-
await elementUpdated(page);
|
|
250
|
-
expect(modal.open).to.be.false;
|
|
251
|
-
expect(page.open).to.be.false;
|
|
252
|
-
expect(hint.open).to.be.false;
|
|
253
|
-
expect(auto.open).to.be.false;
|
|
254
|
-
expect(manual.open).to.be.false;
|
|
255
|
-
await nextFrame();
|
|
256
|
-
opened = oneEvent(hint, "sp-opened");
|
|
257
|
-
hint.open = true;
|
|
258
|
-
await opened;
|
|
259
|
-
await elementUpdated(hint);
|
|
260
|
-
expect(modal.open).to.be.false;
|
|
261
|
-
expect(page.open).to.be.false;
|
|
262
|
-
expect(hint.open).to.be.true;
|
|
263
|
-
expect(auto.open).to.be.false;
|
|
264
|
-
expect(manual.open).to.be.false;
|
|
265
|
-
await nextFrame();
|
|
266
|
-
opened = oneEvent(page, "sp-opened");
|
|
267
|
-
closed = oneEvent(hint, "sp-closed");
|
|
268
|
-
page.open = true;
|
|
269
|
-
await opened;
|
|
270
|
-
await closed;
|
|
271
|
-
await elementUpdated(page);
|
|
272
|
-
await elementUpdated(hint);
|
|
273
|
-
expect(modal.open).to.be.false;
|
|
274
|
-
expect(page.open).to.be.true;
|
|
275
|
-
expect(hint.open).to.be.false;
|
|
276
|
-
expect(auto.open).to.be.false;
|
|
277
|
-
expect(manual.open).to.be.false;
|
|
278
|
-
await nextFrame();
|
|
279
|
-
closed = oneEvent(page, "sp-closed");
|
|
280
|
-
page.open = false;
|
|
281
|
-
await closed;
|
|
282
|
-
await elementUpdated(page);
|
|
283
|
-
expect(modal.open).to.be.false;
|
|
284
|
-
expect(page.open).to.be.false;
|
|
285
|
-
expect(hint.open).to.be.false;
|
|
286
|
-
expect(auto.open).to.be.false;
|
|
287
|
-
expect(manual.open).to.be.false;
|
|
288
|
-
await nextFrame();
|
|
289
|
-
opened = oneEvent(auto, "sp-opened");
|
|
290
|
-
auto.open = true;
|
|
291
|
-
await opened;
|
|
292
|
-
await elementUpdated(auto);
|
|
293
|
-
expect(modal.open).to.be.false;
|
|
294
|
-
expect(page.open).to.be.false;
|
|
295
|
-
expect(hint.open).to.be.false;
|
|
296
|
-
expect(auto.open).to.be.true;
|
|
297
|
-
expect(manual.open).to.be.false;
|
|
298
|
-
await nextFrame();
|
|
299
|
-
opened = oneEvent(page, "sp-opened");
|
|
300
|
-
closed = oneEvent(auto, "sp-closed");
|
|
301
|
-
page.open = true;
|
|
302
|
-
await opened;
|
|
303
|
-
await closed;
|
|
304
|
-
await elementUpdated(auto);
|
|
305
|
-
await elementUpdated(page);
|
|
306
|
-
expect(modal.open).to.be.false;
|
|
307
|
-
expect(page.open).to.be.true;
|
|
308
|
-
expect(hint.open).to.be.false;
|
|
309
|
-
expect(auto.open).to.be.false;
|
|
310
|
-
expect(manual.open).to.be.false;
|
|
311
|
-
await nextFrame();
|
|
312
|
-
closed = oneEvent(page, "sp-closed");
|
|
313
|
-
page.open = false;
|
|
314
|
-
await closed;
|
|
315
|
-
await elementUpdated(page);
|
|
316
|
-
expect(modal.open).to.be.false;
|
|
317
|
-
expect(page.open).to.be.false;
|
|
318
|
-
expect(hint.open).to.be.false;
|
|
319
|
-
expect(auto.open).to.be.false;
|
|
320
|
-
expect(manual.open).to.be.false;
|
|
321
|
-
await nextFrame();
|
|
322
|
-
opened = oneEvent(manual, "sp-opened");
|
|
323
|
-
manual.open = true;
|
|
324
|
-
await opened;
|
|
325
|
-
await elementUpdated(manual);
|
|
326
|
-
expect(modal.open).to.be.false;
|
|
327
|
-
expect(page.open).to.be.false;
|
|
328
|
-
expect(hint.open).to.be.false;
|
|
329
|
-
expect(auto.open).to.be.false;
|
|
330
|
-
expect(manual.open).to.be.true;
|
|
331
|
-
await nextFrame();
|
|
332
|
-
opened = oneEvent(page, "sp-opened");
|
|
333
|
-
closed = oneEvent(manual, "sp-closed");
|
|
334
|
-
page.open = true;
|
|
335
|
-
await opened;
|
|
336
|
-
await closed;
|
|
337
|
-
await elementUpdated(page);
|
|
338
|
-
await elementUpdated(manual);
|
|
339
|
-
expect(modal.open).to.be.false;
|
|
340
|
-
expect(page.open).to.be.true;
|
|
341
|
-
expect(hint.open).to.be.false;
|
|
342
|
-
expect(auto.open).to.be.false;
|
|
343
|
-
expect(manual.open).to.be.false;
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
describe.only('[type="hint"]', () => {
|
|
347
|
-
opensDeclaratively("hint");
|
|
348
|
-
it("closes other `[type=hint]` overlays when opening", async () => {
|
|
349
|
-
const test = await styledFixture(html`
|
|
350
|
-
<div>
|
|
351
|
-
${[1, 2].map(
|
|
352
|
-
(overlay) => html`
|
|
353
|
-
<sp-overlay type="hint" class="hint-${overlay}">
|
|
354
|
-
<sp-tooltip>Hint ${overlay} Content</sp-tooltip>
|
|
355
|
-
</sp-overlay>
|
|
356
|
-
`
|
|
357
|
-
)}
|
|
358
|
-
</div>
|
|
359
|
-
`);
|
|
360
|
-
const hint1 = test.querySelector(".hint-1");
|
|
361
|
-
const hint2 = test.querySelector(".hint-2");
|
|
362
|
-
expect(hint1.open).to.be.false;
|
|
363
|
-
expect(hint2.open).to.be.false;
|
|
364
|
-
let opened = oneEvent(hint1, "sp-opened");
|
|
365
|
-
hint1.open = true;
|
|
366
|
-
await opened;
|
|
367
|
-
await elementUpdated(hint1);
|
|
368
|
-
expect(hint1.open).to.be.true;
|
|
369
|
-
expect(hint2.open).to.be.false;
|
|
370
|
-
opened = oneEvent(hint2, "sp-opened");
|
|
371
|
-
let closed = oneEvent(hint1, "sp-closed");
|
|
372
|
-
hint2.open = true;
|
|
373
|
-
await opened;
|
|
374
|
-
await closed;
|
|
375
|
-
await elementUpdated(hint1);
|
|
376
|
-
await elementUpdated(hint2);
|
|
377
|
-
expect(hint1.open).to.be.false;
|
|
378
|
-
expect(hint2.open).to.be.true;
|
|
379
|
-
opened = oneEvent(hint1, "sp-opened");
|
|
380
|
-
closed = oneEvent(hint2, "sp-closed");
|
|
381
|
-
hint1.open = true;
|
|
382
|
-
await opened;
|
|
383
|
-
await closed;
|
|
384
|
-
await elementUpdated(hint1);
|
|
385
|
-
await elementUpdated(hint2);
|
|
386
|
-
expect(hint1.open).to.be.true;
|
|
387
|
-
expect(hint2.open).to.be.false;
|
|
388
|
-
});
|
|
389
|
-
it("stays open when pointer enters overlay from trigger element", async () => {
|
|
390
|
-
const test = await styledFixture(
|
|
391
|
-
html`
|
|
392
|
-
<div>
|
|
393
|
-
<sp-button id="test-button">
|
|
394
|
-
This is a button.
|
|
395
|
-
</sp-button>
|
|
396
|
-
<sp-overlay target="test-button@hover" placement="bottom">
|
|
397
|
-
<sp-tooltip>
|
|
398
|
-
Help text.
|
|
399
|
-
</sp-tooltip>
|
|
400
|
-
</sp-overlay>
|
|
401
|
-
</div>
|
|
402
|
-
`
|
|
403
|
-
);
|
|
404
|
-
const button = test.querySelector("sp-button");
|
|
405
|
-
const el = test.querySelector("sp-tooltip");
|
|
406
|
-
const buttonRect = button.getBoundingClientRect();
|
|
407
|
-
const buttonPoint = [
|
|
408
|
-
buttonRect.x + buttonRect.width / 2,
|
|
409
|
-
buttonRect.y + buttonRect.height / 2
|
|
410
|
-
];
|
|
411
|
-
await elementUpdated(el);
|
|
412
|
-
await expect(button).to.be.accessible();
|
|
413
|
-
let opened = oneEvent(button, "sp-opened");
|
|
414
|
-
await sendMouse({
|
|
415
|
-
steps: [
|
|
416
|
-
{
|
|
417
|
-
type: "move",
|
|
418
|
-
position: buttonPoint
|
|
419
|
-
}
|
|
420
|
-
]
|
|
421
|
-
});
|
|
422
|
-
await nextFrame();
|
|
423
|
-
await nextFrame();
|
|
424
|
-
const tooltipRect = el.shadowRoot.querySelector("#tooltip").getBoundingClientRect();
|
|
425
|
-
const tooltipPoint = [
|
|
426
|
-
tooltipRect.x + tooltipRect.width / 2,
|
|
427
|
-
tooltipRect.y + tooltipRect.height / 2
|
|
428
|
-
];
|
|
429
|
-
await sendMouse({
|
|
430
|
-
steps: [
|
|
431
|
-
{
|
|
432
|
-
type: "move",
|
|
433
|
-
position: tooltipPoint
|
|
434
|
-
}
|
|
435
|
-
]
|
|
436
|
-
});
|
|
437
|
-
console.log(0);
|
|
438
|
-
await opened;
|
|
439
|
-
console.log(1);
|
|
440
|
-
await elementUpdated(el);
|
|
441
|
-
expect(el.open).to.be.true;
|
|
442
|
-
await expect(button).to.be.accessible();
|
|
443
|
-
let closed = oneEvent(button, "sp-closed");
|
|
444
|
-
await sendMouse({
|
|
445
|
-
steps: [
|
|
446
|
-
{
|
|
447
|
-
type: "move",
|
|
448
|
-
position: buttonPoint
|
|
449
|
-
}
|
|
450
|
-
]
|
|
451
|
-
});
|
|
452
|
-
await sendMouse({
|
|
453
|
-
steps: [
|
|
454
|
-
{
|
|
455
|
-
type: "move",
|
|
456
|
-
position: [
|
|
457
|
-
buttonRect.x + buttonRect.width * 2,
|
|
458
|
-
buttonRect.y + buttonRect.height * 2
|
|
459
|
-
]
|
|
460
|
-
}
|
|
461
|
-
]
|
|
462
|
-
});
|
|
463
|
-
await closed;
|
|
464
|
-
await elementUpdated(el);
|
|
465
|
-
expect(el.open).to.be.false;
|
|
466
|
-
opened = oneEvent(button, "sp-opened");
|
|
467
|
-
await sendMouse({
|
|
468
|
-
steps: [
|
|
469
|
-
{
|
|
470
|
-
type: "move",
|
|
471
|
-
position: buttonPoint
|
|
472
|
-
}
|
|
473
|
-
]
|
|
474
|
-
});
|
|
475
|
-
await opened;
|
|
476
|
-
await elementUpdated(el);
|
|
477
|
-
closed = oneEvent(button, "sp-closed");
|
|
478
|
-
await sendMouse({
|
|
479
|
-
steps: [
|
|
480
|
-
{
|
|
481
|
-
type: "move",
|
|
482
|
-
position: [
|
|
483
|
-
buttonRect.x + buttonRect.width * 2,
|
|
484
|
-
buttonRect.y + buttonRect.height * 2
|
|
485
|
-
]
|
|
486
|
-
}
|
|
487
|
-
]
|
|
488
|
-
});
|
|
489
|
-
await closed;
|
|
490
|
-
await elementUpdated(el);
|
|
491
|
-
});
|
|
492
|
-
it("stays open when pointer enters overlay from trigger element", async () => {
|
|
493
|
-
const button = await styledFixture(
|
|
494
|
-
html`
|
|
495
|
-
<sp-button>
|
|
496
|
-
This is a button.
|
|
497
|
-
<sp-tooltip self-managed placement="bottom">
|
|
498
|
-
Help text.
|
|
499
|
-
</sp-tooltip>
|
|
500
|
-
</sp-button>
|
|
501
|
-
`
|
|
502
|
-
);
|
|
503
|
-
const el = button.querySelector("sp-tooltip");
|
|
504
|
-
const buttonRect = button.getBoundingClientRect();
|
|
505
|
-
const buttonPoint = [
|
|
506
|
-
buttonRect.x + buttonRect.width / 2,
|
|
507
|
-
buttonRect.y + buttonRect.height / 2
|
|
508
|
-
];
|
|
509
|
-
await elementUpdated(el);
|
|
510
|
-
await expect(button).to.be.accessible();
|
|
511
|
-
let opened = oneEvent(button, "sp-opened");
|
|
512
|
-
await sendMouse({
|
|
513
|
-
steps: [
|
|
514
|
-
{
|
|
515
|
-
type: "move",
|
|
516
|
-
position: buttonPoint
|
|
517
|
-
}
|
|
518
|
-
]
|
|
519
|
-
});
|
|
520
|
-
await nextFrame();
|
|
521
|
-
await nextFrame();
|
|
522
|
-
const tooltipRect = el.shadowRoot.querySelector("#tooltip").getBoundingClientRect();
|
|
523
|
-
const tooltipPoint = [
|
|
524
|
-
tooltipRect.x + tooltipRect.width / 2,
|
|
525
|
-
tooltipRect.y + tooltipRect.height / 2
|
|
526
|
-
];
|
|
527
|
-
await sendMouse({
|
|
528
|
-
steps: [
|
|
529
|
-
{
|
|
530
|
-
type: "move",
|
|
531
|
-
position: tooltipPoint
|
|
532
|
-
}
|
|
533
|
-
]
|
|
534
|
-
});
|
|
535
|
-
await opened;
|
|
536
|
-
await elementUpdated(el);
|
|
537
|
-
expect(el.open).to.be.true;
|
|
538
|
-
await expect(button).to.be.accessible();
|
|
539
|
-
let closed = oneEvent(button, "sp-closed");
|
|
540
|
-
await sendMouse({
|
|
541
|
-
steps: [
|
|
542
|
-
{
|
|
543
|
-
type: "move",
|
|
544
|
-
position: buttonPoint
|
|
545
|
-
}
|
|
546
|
-
]
|
|
547
|
-
});
|
|
548
|
-
await sendMouse({
|
|
549
|
-
steps: [
|
|
550
|
-
{
|
|
551
|
-
type: "move",
|
|
552
|
-
position: [
|
|
553
|
-
buttonRect.x + buttonRect.width * 2,
|
|
554
|
-
buttonRect.y + buttonRect.height * 2
|
|
555
|
-
]
|
|
556
|
-
}
|
|
557
|
-
]
|
|
558
|
-
});
|
|
559
|
-
await closed;
|
|
560
|
-
await elementUpdated(el);
|
|
561
|
-
expect(el.open).to.be.false;
|
|
562
|
-
opened = oneEvent(button, "sp-opened");
|
|
563
|
-
await sendMouse({
|
|
564
|
-
steps: [
|
|
565
|
-
{
|
|
566
|
-
type: "move",
|
|
567
|
-
position: buttonPoint
|
|
568
|
-
}
|
|
569
|
-
]
|
|
570
|
-
});
|
|
571
|
-
await opened;
|
|
572
|
-
await elementUpdated(el);
|
|
573
|
-
closed = oneEvent(button, "sp-closed");
|
|
574
|
-
await sendMouse({
|
|
575
|
-
steps: [
|
|
576
|
-
{
|
|
577
|
-
type: "move",
|
|
578
|
-
position: [
|
|
579
|
-
buttonRect.x + buttonRect.width * 2,
|
|
580
|
-
buttonRect.y + buttonRect.height * 2
|
|
581
|
-
]
|
|
582
|
-
}
|
|
583
|
-
]
|
|
584
|
-
});
|
|
585
|
-
await closed;
|
|
586
|
-
await elementUpdated(el);
|
|
587
|
-
});
|
|
588
|
-
});
|
|
589
|
-
describe('[type="auto"]', () => {
|
|
590
|
-
opensDeclaratively("auto");
|
|
591
|
-
});
|
|
592
|
-
describe('[type="manual"]', () => {
|
|
593
|
-
opensDeclaratively("manual");
|
|
594
|
-
it("does not close other overlay types when opening", async () => {
|
|
595
|
-
const test = await styledFixture(html`
|
|
596
|
-
<div>
|
|
597
|
-
${OVERLAY_TYPES.map(
|
|
598
|
-
(type) => html`
|
|
599
|
-
<sp-overlay type=${type}>
|
|
600
|
-
<sp-tooltip>${type} Content</sp-tooltip>
|
|
601
|
-
</sp-overlay>
|
|
602
|
-
`
|
|
603
|
-
)}
|
|
604
|
-
</div>
|
|
605
|
-
`);
|
|
606
|
-
const modal = test.querySelector('[type="modal"]');
|
|
607
|
-
const page = test.querySelector('[type="page"]');
|
|
608
|
-
const hint = test.querySelector('[type="hint"]');
|
|
609
|
-
const auto = test.querySelector('[type="auto"]');
|
|
610
|
-
const manual = test.querySelector('[type="manual"]');
|
|
611
|
-
expect(modal.open).to.be.false;
|
|
612
|
-
expect(page.open).to.be.false;
|
|
613
|
-
expect(hint.open).to.be.false;
|
|
614
|
-
expect(auto.open).to.be.false;
|
|
615
|
-
expect(manual.open).to.be.false;
|
|
616
|
-
let opened = oneEvent(modal, "sp-opened");
|
|
617
|
-
modal.open = true;
|
|
618
|
-
await opened;
|
|
619
|
-
await elementUpdated(modal);
|
|
620
|
-
expect(modal.open).to.be.true;
|
|
621
|
-
expect(page.open).to.be.false;
|
|
622
|
-
expect(hint.open).to.be.false;
|
|
623
|
-
expect(auto.open).to.be.false;
|
|
624
|
-
expect(manual.open).to.be.false;
|
|
625
|
-
await nextFrame();
|
|
626
|
-
opened = oneEvent(manual, "sp-opened");
|
|
627
|
-
manual.open = true;
|
|
628
|
-
await opened;
|
|
629
|
-
await elementUpdated(manual);
|
|
630
|
-
expect(modal.open).to.be.true;
|
|
631
|
-
expect(page.open).to.be.false;
|
|
632
|
-
expect(hint.open).to.be.false;
|
|
633
|
-
expect(auto.open).to.be.false;
|
|
634
|
-
expect(manual.open).to.be.true;
|
|
635
|
-
await nextFrame();
|
|
636
|
-
let closed = oneEvent(modal, "sp-closed");
|
|
637
|
-
let manualClosed = oneEvent(manual, "sp-closed");
|
|
638
|
-
modal.open = false;
|
|
639
|
-
manual.open = false;
|
|
640
|
-
await closed;
|
|
641
|
-
await manualClosed;
|
|
642
|
-
await elementUpdated(modal);
|
|
643
|
-
await elementUpdated(manual);
|
|
644
|
-
expect(modal.open).to.be.false;
|
|
645
|
-
expect(page.open).to.be.false;
|
|
646
|
-
expect(hint.open).to.be.false;
|
|
647
|
-
expect(auto.open).to.be.false;
|
|
648
|
-
expect(manual.open).to.be.false;
|
|
649
|
-
await nextFrame();
|
|
650
|
-
opened = oneEvent(page, "sp-opened");
|
|
651
|
-
page.open = true;
|
|
652
|
-
await opened;
|
|
653
|
-
await elementUpdated(page);
|
|
654
|
-
expect(modal.open).to.be.false;
|
|
655
|
-
expect(page.open).to.be.true;
|
|
656
|
-
expect(hint.open).to.be.false;
|
|
657
|
-
expect(auto.open).to.be.false;
|
|
658
|
-
expect(manual.open).to.be.false;
|
|
659
|
-
await nextFrame();
|
|
660
|
-
opened = oneEvent(manual, "sp-opened");
|
|
661
|
-
manual.open = true;
|
|
662
|
-
await opened;
|
|
663
|
-
await elementUpdated(manual);
|
|
664
|
-
expect(modal.open).to.be.false;
|
|
665
|
-
expect(page.open).to.be.true;
|
|
666
|
-
expect(hint.open).to.be.false;
|
|
667
|
-
expect(auto.open).to.be.false;
|
|
668
|
-
expect(manual.open).to.be.true;
|
|
669
|
-
await nextFrame();
|
|
670
|
-
closed = oneEvent(page, "sp-closed");
|
|
671
|
-
manualClosed = oneEvent(manual, "sp-closed");
|
|
672
|
-
page.open = false;
|
|
673
|
-
manual.open = false;
|
|
674
|
-
await closed;
|
|
675
|
-
await manualClosed;
|
|
676
|
-
await elementUpdated(page);
|
|
677
|
-
await elementUpdated(manual);
|
|
678
|
-
expect(modal.open).to.be.false;
|
|
679
|
-
expect(page.open).to.be.false;
|
|
680
|
-
expect(hint.open).to.be.false;
|
|
681
|
-
expect(auto.open).to.be.false;
|
|
682
|
-
expect(manual.open).to.be.false;
|
|
683
|
-
await nextFrame();
|
|
684
|
-
opened = oneEvent(hint, "sp-opened");
|
|
685
|
-
hint.open = true;
|
|
686
|
-
await opened;
|
|
687
|
-
await elementUpdated(hint);
|
|
688
|
-
expect(modal.open).to.be.false;
|
|
689
|
-
expect(page.open).to.be.false;
|
|
690
|
-
expect(hint.open).to.be.true;
|
|
691
|
-
expect(auto.open).to.be.false;
|
|
692
|
-
expect(manual.open).to.be.false;
|
|
693
|
-
await nextFrame();
|
|
694
|
-
opened = oneEvent(manual, "sp-opened");
|
|
695
|
-
manual.open = true;
|
|
696
|
-
await opened;
|
|
697
|
-
await elementUpdated(manual);
|
|
698
|
-
expect(modal.open).to.be.false;
|
|
699
|
-
expect(page.open).to.be.false;
|
|
700
|
-
expect(hint.open).to.be.true;
|
|
701
|
-
expect(auto.open).to.be.false;
|
|
702
|
-
expect(manual.open).to.be.true;
|
|
703
|
-
await nextFrame();
|
|
704
|
-
closed = oneEvent(hint, "sp-closed");
|
|
705
|
-
manualClosed = oneEvent(manual, "sp-closed");
|
|
706
|
-
hint.open = false;
|
|
707
|
-
manual.open = false;
|
|
708
|
-
await closed;
|
|
709
|
-
await elementUpdated(hint);
|
|
710
|
-
await elementUpdated(manual);
|
|
711
|
-
expect(modal.open).to.be.false;
|
|
712
|
-
expect(page.open).to.be.false;
|
|
713
|
-
expect(hint.open).to.be.false;
|
|
714
|
-
expect(auto.open).to.be.false;
|
|
715
|
-
expect(manual.open).to.be.false;
|
|
716
|
-
await nextFrame();
|
|
717
|
-
opened = oneEvent(auto, "sp-opened");
|
|
718
|
-
auto.open = true;
|
|
719
|
-
await opened;
|
|
720
|
-
await elementUpdated(auto);
|
|
721
|
-
expect(modal.open).to.be.false;
|
|
722
|
-
expect(page.open).to.be.false;
|
|
723
|
-
expect(hint.open).to.be.false;
|
|
724
|
-
expect(auto.open).to.be.true;
|
|
725
|
-
expect(manual.open).to.be.false;
|
|
726
|
-
await nextFrame();
|
|
727
|
-
opened = oneEvent(manual, "sp-opened");
|
|
728
|
-
manual.open = true;
|
|
729
|
-
await opened;
|
|
730
|
-
await elementUpdated(manual);
|
|
731
|
-
expect(modal.open).to.be.false;
|
|
732
|
-
expect(page.open).to.be.false;
|
|
733
|
-
expect(hint.open).to.be.false;
|
|
734
|
-
expect(auto.open).to.be.true;
|
|
735
|
-
expect(manual.open).to.be.true;
|
|
736
|
-
});
|
|
737
|
-
});
|
|
738
|
-
});
|
|
739
|
-
//# sourceMappingURL=overlay-element.test.js.map
|