@spectrum-web-components/overlay 1.1.0 → 1.1.1
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/overlay-trigger.d.ts +6 -0
- package/overlay-trigger.dev.js +5 -0
- package/overlay-trigger.dev.js.map +7 -0
- package/overlay-trigger.js +2 -0
- package/overlay-trigger.js.map +7 -0
- package/package.json +7 -7
- package/sp-overlay.d.ts +6 -0
- package/sp-overlay.dev.js +5 -0
- package/sp-overlay.dev.js.map +7 -0
- package/sp-overlay.js +2 -0
- package/sp-overlay.js.map +7 -0
- package/src/AbstractOverlay.d.ts +72 -0
- package/src/AbstractOverlay.dev.js +234 -0
- package/src/AbstractOverlay.dev.js.map +7 -0
- package/src/AbstractOverlay.js +2 -0
- package/src/AbstractOverlay.js.map +7 -0
- package/src/ClickController.d.ts +14 -0
- package/src/ClickController.dev.js +42 -0
- package/src/ClickController.dev.js.map +7 -0
- package/src/ClickController.js +2 -0
- package/src/ClickController.js.map +7 -0
- package/src/HoverController.d.ts +22 -0
- package/src/HoverController.dev.js +177 -0
- package/src/HoverController.dev.js.map +7 -0
- package/src/HoverController.js +2 -0
- package/src/HoverController.js.map +7 -0
- package/src/InteractionController.d.ts +44 -0
- package/src/InteractionController.dev.js +94 -0
- package/src/InteractionController.dev.js.map +7 -0
- package/src/InteractionController.js +2 -0
- package/src/InteractionController.js.map +7 -0
- package/src/LongpressController.d.ts +21 -0
- package/src/LongpressController.dev.js +156 -0
- package/src/LongpressController.dev.js.map +7 -0
- package/src/LongpressController.js +2 -0
- package/src/LongpressController.js.map +7 -0
- package/src/Overlay.d.ts +464 -0
- package/src/Overlay.dev.js +794 -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 +140 -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 +117 -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 +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 +44 -0
- package/src/OverlayStack.dev.js +163 -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 +52 -0
- package/src/OverlayTrigger.dev.js +243 -0
- package/src/OverlayTrigger.dev.js.map +7 -0
- package/src/OverlayTrigger.js +57 -0
- package/src/OverlayTrigger.js.map +7 -0
- package/src/PlacementController.d.ts +157 -0
- package/src/PlacementController.dev.js +287 -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.d.ts +7 -0
- package/src/VirtualTrigger.dev.js +32 -0
- package/src/VirtualTrigger.dev.js.map +7 -0
- package/src/VirtualTrigger.js +2 -0
- package/src/VirtualTrigger.js.map +7 -0
- package/src/events.d.ts +23 -0
- package/src/events.dev.js +39 -0
- package/src/events.dev.js.map +7 -0
- package/src/events.js +2 -0
- package/src/events.js.map +7 -0
- 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 +6 -0
- package/src/index.dev.js +8 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -0
- package/src/index.js.map +7 -0
- package/src/loader.d.ts +4 -0
- package/src/loader.dev.js +11 -0
- package/src/loader.dev.js.map +7 -0
- package/src/loader.js +2 -0
- package/src/loader.js.map +7 -0
- package/src/overlay-events.d.ts +11 -0
- package/src/overlay-events.dev.js +8 -0
- package/src/overlay-events.dev.js.map +7 -0
- package/src/overlay-events.js +2 -0
- package/src/overlay-events.js.map +7 -0
- package/src/overlay-timer.d.ts +22 -0
- package/src/overlay-timer.dev.js +72 -0
- package/src/overlay-timer.dev.js.map +7 -0
- package/src/overlay-timer.js +2 -0
- package/src/overlay-timer.js.map +7 -0
- package/src/overlay-trigger-directive.d.ts +26 -0
- package/src/overlay-trigger-directive.dev.js +87 -0
- package/src/overlay-trigger-directive.dev.js.map +7 -0
- package/src/overlay-trigger-directive.js +2 -0
- package/src/overlay-trigger-directive.js.map +7 -0
- package/src/overlay-trigger.css.d.ts +2 -0
- package/src/overlay-trigger.css.dev.js +7 -0
- package/src/overlay-trigger.css.dev.js.map +7 -0
- package/src/overlay-trigger.css.js +4 -0
- package/src/overlay-trigger.css.js.map +7 -0
- package/src/overlay-types.d.ts +50 -0
- package/src/overlay-types.dev.js +3 -0
- package/src/overlay-types.dev.js.map +7 -0
- package/src/overlay-types.js +2 -0
- package/src/overlay-types.js.map +7 -0
- package/src/overlay.css.d.ts +2 -0
- package/src/overlay.css.dev.js +7 -0
- package/src/overlay.css.dev.js.map +7 -0
- package/src/overlay.css.js +4 -0
- package/src/overlay.css.js.map +7 -0
- package/src/slottable-request-directive.d.ts +17 -0
- package/src/slottable-request-directive.dev.js +66 -0
- package/src/slottable-request-directive.dev.js.map +7 -0
- package/src/slottable-request-directive.js +2 -0
- package/src/slottable-request-directive.js.map +7 -0
- package/src/slottable-request-event.d.ts +12 -0
- package/src/slottable-request-event.dev.js +28 -0
- package/src/slottable-request-event.dev.js.map +7 -0
- package/src/slottable-request-event.js +2 -0
- package/src/slottable-request-event.js.map +7 -0
- package/src/strategies.d.ts +8 -0
- package/src/strategies.dev.js +10 -0
- package/src/strategies.dev.js.map +7 -0
- package/src/strategies.js +2 -0
- package/src/strategies.js.map +7 -0
- package/stories/index.js +48 -0
- package/stories/index.js.map +7 -0
- package/stories/overlay-directive.stories.js +340 -0
- package/stories/overlay-directive.stories.js.map +7 -0
- package/stories/overlay-element.stories.js +687 -0
- package/stories/overlay-element.stories.js.map +7 -0
- package/stories/overlay-story-components.js +338 -0
- package/stories/overlay-story-components.js.map +7 -0
- package/stories/overlay.stories.js +1412 -0
- package/stories/overlay.stories.js.map +7 -0
- package/sync/overlay-trigger.d.ts +6 -0
- package/sync/overlay-trigger.dev.js +6 -0
- package/sync/overlay-trigger.dev.js.map +7 -0
- package/sync/overlay-trigger.js +2 -0
- package/sync/overlay-trigger.js.map +7 -0
- package/test/benchmark/basic-test.js +40 -0
- package/test/benchmark/basic-test.js.map +7 -0
- package/test/benchmark/directive-test.js +43 -0
- package/test/benchmark/directive-test.js.map +7 -0
- package/test/benchmark/element-test.js +40 -0
- package/test/benchmark/element-test.js.map +7 -0
- package/test/benchmark/lazy-test.js +47 -0
- package/test/benchmark/lazy-test.js.map +7 -0
- package/test/index.js +605 -0
- package/test/index.js.map +7 -0
- package/test/overlay-directive.test-vrt.js +5 -0
- package/test/overlay-directive.test-vrt.js.map +7 -0
- package/test/overlay-directive.test.js +162 -0
- package/test/overlay-directive.test.js.map +7 -0
- 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 +934 -0
- package/test/overlay-element.test.js.map +7 -0
- package/test/overlay-lifecycle.test.js +139 -0
- package/test/overlay-lifecycle.test.js.map +7 -0
- package/test/overlay-memory.test.js +10 -0
- package/test/overlay-memory.test.js.map +7 -0
- package/test/overlay-timer.test.js +118 -0
- package/test/overlay-timer.test.js.map +7 -0
- package/test/overlay-trigger-click.test.js +164 -0
- package/test/overlay-trigger-click.test.js.map +7 -0
- package/test/overlay-trigger-directive.test.js +75 -0
- package/test/overlay-trigger-directive.test.js.map +7 -0
- package/test/overlay-trigger-extended.test.js +235 -0
- package/test/overlay-trigger-extended.test.js.map +7 -0
- package/test/overlay-trigger-hover-click.test.js +225 -0
- package/test/overlay-trigger-hover-click.test.js.map +7 -0
- package/test/overlay-trigger-hover.test.js +308 -0
- package/test/overlay-trigger-hover.test.js.map +7 -0
- package/test/overlay-trigger-longpress.test.js +531 -0
- package/test/overlay-trigger-longpress.test.js.map +7 -0
- package/test/overlay-trigger-sync.test.js +5 -0
- package/test/overlay-trigger-sync.test.js.map +7 -0
- package/test/overlay-trigger.test.js +5 -0
- package/test/overlay-trigger.test.js.map +7 -0
- package/test/overlay-update.test.js +28 -0
- package/test/overlay-update.test.js.map +7 -0
- package/test/overlay-v1.test.js +569 -0
- package/test/overlay-v1.test.js.map +7 -0
- package/test/overlay.test-vrt.js +5 -0
- package/test/overlay.test-vrt.js.map +7 -0
- package/test/overlay.test.js +865 -0
- package/test/overlay.test.js.map +7 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["VirtualTrigger.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { AbstractOverlay } from './AbstractOverlay.dev.js'\n\nexport class VirtualTrigger {\n private x = 0;\n private y = 0;\n\n public constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n }\n\n public updateBoundingClientRect(x: number, y: number): void {\n this.x = x;\n this.y = y;\n AbstractOverlay.update();\n }\n\n public getBoundingClientRect(): DOMRect {\n return {\n width: 0,\n height: 0,\n top: this.y,\n right: this.x,\n y: this.y,\n x: this.x,\n bottom: this.y,\n left: this.x,\n /* c8 ignore next 3 */\n toJSON() {\n return;\n },\n };\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,uBAAuB;AAEzB,aAAM,eAAe;AAAA,EAIjB,YAAY,GAAW,GAAW;AAHzC,SAAQ,IAAI;AACZ,SAAQ,IAAI;AAGR,SAAK,IAAI;AACT,SAAK,IAAI;AAAA,EACb;AAAA,EAEO,yBAAyB,GAAW,GAAiB;AACxD,SAAK,IAAI;AACT,SAAK,IAAI;AACT,oBAAgB,OAAO;AAAA,EAC3B;AAAA,EAEO,wBAAiC;AACpC,WAAO;AAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK,KAAK;AAAA,MACV,OAAO,KAAK;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA;AAAA,MAEX,SAAS;AACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";import{AbstractOverlay as e}from"./AbstractOverlay.js";export class VirtualTrigger{constructor(t,i){this.x=0;this.y=0;this.x=t,this.y=i}updateBoundingClientRect(t,i){this.x=t,this.y=i,e.update()}getBoundingClientRect(){return{width:0,height:0,top:this.y,right:this.x,y:this.y,x:this.x,bottom:this.y,left:this.x,toJSON(){}}}}
|
|
2
|
+
//# sourceMappingURL=VirtualTrigger.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["VirtualTrigger.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { AbstractOverlay } from './AbstractOverlay.js';\n\nexport class VirtualTrigger {\n private x = 0;\n private y = 0;\n\n public constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n }\n\n public updateBoundingClientRect(x: number, y: number): void {\n this.x = x;\n this.y = y;\n AbstractOverlay.update();\n }\n\n public getBoundingClientRect(): DOMRect {\n return {\n width: 0,\n height: 0,\n top: this.y,\n right: this.x,\n y: this.y,\n x: this.x,\n bottom: this.y,\n left: this.x,\n /* c8 ignore next 3 */\n toJSON() {\n return;\n },\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "aAWA,OAAS,mBAAAA,MAAuB,uBAEzB,aAAM,cAAe,CAIjB,YAAYC,EAAWC,EAAW,CAHzC,KAAQ,EAAI,EACZ,KAAQ,EAAI,EAGR,KAAK,EAAID,EACT,KAAK,EAAIC,CACb,CAEO,yBAAyBD,EAAWC,EAAiB,CACxD,KAAK,EAAID,EACT,KAAK,EAAIC,EACTF,EAAgB,OAAO,CAC3B,CAEO,uBAAiC,CACpC,MAAO,CACH,MAAO,EACP,OAAQ,EACR,IAAK,KAAK,EACV,MAAO,KAAK,EACZ,EAAG,KAAK,EACR,EAAG,KAAK,EACR,OAAQ,KAAK,EACb,KAAM,KAAK,EAEX,QAAS,CAET,CACJ,CACJ,CACJ",
|
|
6
|
+
"names": ["AbstractOverlay", "x", "y"]
|
|
7
|
+
}
|
package/src/events.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TriggerInteractions } from './overlay-types.js';
|
|
2
|
+
export declare class BeforetoggleClosedEvent extends Event {
|
|
3
|
+
currentState: string;
|
|
4
|
+
newState: string;
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
export declare class BeforetoggleOpenEvent extends Event {
|
|
8
|
+
currentState: string;
|
|
9
|
+
newState: string;
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
12
|
+
export declare class OverlayStateEvent extends Event {
|
|
13
|
+
overlay: HTMLElement;
|
|
14
|
+
detail: {
|
|
15
|
+
interaction: string;
|
|
16
|
+
reason?: 'external-click';
|
|
17
|
+
};
|
|
18
|
+
constructor(type: string, overlay: HTMLElement, { publish, interaction, reason, }: {
|
|
19
|
+
publish?: boolean;
|
|
20
|
+
interaction: TriggerInteractions;
|
|
21
|
+
reason?: 'external-click';
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
export class BeforetoggleClosedEvent extends Event {
|
|
3
|
+
constructor() {
|
|
4
|
+
super("beforetoggle", {
|
|
5
|
+
bubbles: false,
|
|
6
|
+
composed: false
|
|
7
|
+
});
|
|
8
|
+
this.currentState = "open";
|
|
9
|
+
this.newState = "closed";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class BeforetoggleOpenEvent extends Event {
|
|
13
|
+
constructor() {
|
|
14
|
+
super("beforetoggle", {
|
|
15
|
+
bubbles: false,
|
|
16
|
+
composed: false
|
|
17
|
+
});
|
|
18
|
+
this.currentState = "closed";
|
|
19
|
+
this.newState = "open";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class OverlayStateEvent extends Event {
|
|
23
|
+
constructor(type, overlay, {
|
|
24
|
+
publish,
|
|
25
|
+
interaction,
|
|
26
|
+
reason
|
|
27
|
+
}) {
|
|
28
|
+
super(type, {
|
|
29
|
+
bubbles: publish,
|
|
30
|
+
composed: publish
|
|
31
|
+
});
|
|
32
|
+
this.overlay = overlay;
|
|
33
|
+
this.detail = {
|
|
34
|
+
interaction,
|
|
35
|
+
reason
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=events.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["events.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2024 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type { TriggerInteractions } from './overlay-types.dev.js'\n\nexport class BeforetoggleClosedEvent extends Event {\n currentState = 'open';\n newState = 'closed';\n constructor() {\n super('beforetoggle', {\n bubbles: false,\n composed: false,\n });\n }\n}\n\nexport class BeforetoggleOpenEvent extends Event {\n currentState = 'closed';\n newState = 'open';\n constructor() {\n super('beforetoggle', {\n bubbles: false,\n composed: false,\n });\n }\n}\n\nexport class OverlayStateEvent extends Event {\n detail!: {\n interaction: string;\n reason?: 'external-click';\n };\n\n constructor(\n type: string,\n public overlay: HTMLElement,\n {\n publish,\n interaction,\n reason,\n }: {\n publish?: boolean;\n interaction: TriggerInteractions;\n reason?: 'external-click';\n }\n ) {\n super(type, {\n bubbles: publish,\n composed: publish,\n });\n this.detail = {\n interaction,\n reason,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAcO,aAAM,gCAAgC,MAAM;AAAA,EAG/C,cAAc;AACV,UAAM,gBAAgB;AAAA,MAClB,SAAS;AAAA,MACT,UAAU;AAAA,IACd,CAAC;AANL,wBAAe;AACf,oBAAW;AAAA,EAMX;AACJ;AAEO,aAAM,8BAA8B,MAAM;AAAA,EAG7C,cAAc;AACV,UAAM,gBAAgB;AAAA,MAClB,SAAS;AAAA,MACT,UAAU;AAAA,IACd,CAAC;AANL,wBAAe;AACf,oBAAW;AAAA,EAMX;AACJ;AAEO,aAAM,0BAA0B,MAAM;AAAA,EAMzC,YACI,MACO,SACP;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAKF;AACE,UAAM,MAAM;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,IACd,CAAC;AAdM;AAeP,SAAK,SAAS;AAAA,MACV;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/events.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";export class BeforetoggleClosedEvent extends Event{constructor(){super("beforetoggle",{bubbles:!1,composed:!1});this.currentState="open";this.newState="closed"}}export class BeforetoggleOpenEvent extends Event{constructor(){super("beforetoggle",{bubbles:!1,composed:!1});this.currentState="closed";this.newState="open"}}export class OverlayStateEvent extends Event{constructor(r,l,{publish:o,interaction:s,reason:n}){super(r,{bubbles:o,composed:o});this.overlay=l;this.detail={interaction:s,reason:n}}}
|
|
2
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["events.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2024 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type { TriggerInteractions } from './overlay-types.js';\n\nexport class BeforetoggleClosedEvent extends Event {\n currentState = 'open';\n newState = 'closed';\n constructor() {\n super('beforetoggle', {\n bubbles: false,\n composed: false,\n });\n }\n}\n\nexport class BeforetoggleOpenEvent extends Event {\n currentState = 'closed';\n newState = 'open';\n constructor() {\n super('beforetoggle', {\n bubbles: false,\n composed: false,\n });\n }\n}\n\nexport class OverlayStateEvent extends Event {\n detail!: {\n interaction: string;\n reason?: 'external-click';\n };\n\n constructor(\n type: string,\n public overlay: HTMLElement,\n {\n publish,\n interaction,\n reason,\n }: {\n publish?: boolean;\n interaction: TriggerInteractions;\n reason?: 'external-click';\n }\n ) {\n super(type, {\n bubbles: publish,\n composed: publish,\n });\n this.detail = {\n interaction,\n reason,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "aAcO,aAAM,gCAAgC,KAAM,CAG/C,aAAc,CACV,MAAM,eAAgB,CAClB,QAAS,GACT,SAAU,EACd,CAAC,EANL,kBAAe,OACf,cAAW,QAMX,CACJ,CAEO,aAAM,8BAA8B,KAAM,CAG7C,aAAc,CACV,MAAM,eAAgB,CAClB,QAAS,GACT,SAAU,EACd,CAAC,EANL,kBAAe,SACf,cAAW,MAMX,CACJ,CAEO,aAAM,0BAA0B,KAAM,CAMzC,YACIA,EACOC,EACP,CACI,QAAAC,EACA,YAAAC,EACA,OAAAC,CACJ,EAKF,CACE,MAAMJ,EAAM,CACR,QAASE,EACT,SAAUA,CACd,CAAC,EAdM,aAAAD,EAeP,KAAK,OAAS,CACV,YAAAE,EACA,OAAAC,CACJ,CACJ,CACJ",
|
|
6
|
+
"names": ["type", "overlay", "publish", "interaction", "reason"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MiddlewareArguments, MiddlewareReturn } from '@floating-ui/dom';
|
|
2
|
+
export declare const fullSize: (options?: {
|
|
3
|
+
padding: number;
|
|
4
|
+
}) => {
|
|
5
|
+
name: string;
|
|
6
|
+
fn(middlewareArguments: MiddlewareArguments): Promise<MiddlewareReturn & {
|
|
7
|
+
data: {
|
|
8
|
+
availableWidth: number;
|
|
9
|
+
availableHeight: number;
|
|
10
|
+
};
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {
|
|
3
|
+
detectOverflow
|
|
4
|
+
} from "@floating-ui/dom";
|
|
5
|
+
export const fullSize = (options = { padding: 0 }) => ({
|
|
6
|
+
name: "fullSize",
|
|
7
|
+
async fn(middlewareArguments) {
|
|
8
|
+
var _a, _b, _c, _d;
|
|
9
|
+
const overflow = await detectOverflow(middlewareArguments, options);
|
|
10
|
+
let availableHeight = -overflow.top - overflow.bottom + middlewareArguments.rects.floating.height;
|
|
11
|
+
let availableWidth = -overflow.left - overflow.right + middlewareArguments.rects.floating.width;
|
|
12
|
+
if (middlewareArguments.placement.startsWith("bottom")) {
|
|
13
|
+
availableHeight -= middlewareArguments.rects.reference.height;
|
|
14
|
+
availableHeight -= middlewareArguments.rects.reference.y;
|
|
15
|
+
availableHeight -= ((_a = middlewareArguments.middlewareData.offset) == null ? void 0 : _a.y) || 0;
|
|
16
|
+
availableHeight += options.padding;
|
|
17
|
+
} else if (middlewareArguments.placement.startsWith("top")) {
|
|
18
|
+
availableHeight = middlewareArguments.rects.reference.y;
|
|
19
|
+
availableHeight -= ((_b = middlewareArguments.middlewareData.offset) == null ? void 0 : _b.y) || 0;
|
|
20
|
+
availableHeight += options.padding;
|
|
21
|
+
} else if (middlewareArguments.placement.startsWith("right")) {
|
|
22
|
+
availableWidth -= middlewareArguments.rects.reference.width;
|
|
23
|
+
availableWidth -= middlewareArguments.rects.reference.x;
|
|
24
|
+
availableWidth -= ((_c = middlewareArguments.middlewareData.offset) == null ? void 0 : _c.x) || 0;
|
|
25
|
+
availableWidth += options.padding;
|
|
26
|
+
} else if (middlewareArguments.placement.startsWith("left")) {
|
|
27
|
+
availableWidth = middlewareArguments.rects.reference.x;
|
|
28
|
+
availableWidth -= ((_d = middlewareArguments.middlewareData.offset) == null ? void 0 : _d.x) || 0;
|
|
29
|
+
availableWidth += options.padding;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
data: {
|
|
33
|
+
availableWidth,
|
|
34
|
+
availableHeight
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=fullSizePlugin.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["fullSizePlugin.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n detectOverflow,\n MiddlewareArguments,\n MiddlewareReturn,\n} from '@floating-ui/dom';\n\nexport const fullSize = (options: { padding: number } = { padding: 0 }) => ({\n name: 'fullSize',\n async fn(middlewareArguments: MiddlewareArguments): Promise<\n MiddlewareReturn & {\n data: { availableWidth: number; availableHeight: number };\n }\n > {\n const overflow = await detectOverflow(middlewareArguments, options);\n let availableHeight =\n -overflow.top -\n overflow.bottom +\n middlewareArguments.rects.floating.height;\n let availableWidth =\n -overflow.left -\n overflow.right +\n middlewareArguments.rects.floating.width;\n if (middlewareArguments.placement.startsWith('bottom')) {\n availableHeight -= middlewareArguments.rects.reference.height;\n availableHeight -= middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('top')) {\n availableHeight = middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('right')) {\n availableWidth -= middlewareArguments.rects.reference.width;\n availableWidth -= middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n } else if (middlewareArguments.placement.startsWith('left')) {\n availableWidth = middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n }\n return {\n data: {\n availableWidth,\n availableHeight,\n },\n };\n },\n});\n"],
|
|
5
|
+
"mappings": ";AAWA;AAAA,EACI;AAAA,OAGG;AAEA,aAAM,WAAW,CAAC,UAA+B,EAAE,SAAS,EAAE,OAAO;AAAA,EACxE,MAAM;AAAA,EACN,MAAM,GAAG,qBAIP;AAvBN;AAwBQ,UAAM,WAAW,MAAM,eAAe,qBAAqB,OAAO;AAClE,QAAI,kBACA,CAAC,SAAS,MACV,SAAS,SACT,oBAAoB,MAAM,SAAS;AACvC,QAAI,iBACA,CAAC,SAAS,OACV,SAAS,QACT,oBAAoB,MAAM,SAAS;AACvC,QAAI,oBAAoB,UAAU,WAAW,QAAQ,GAAG;AACpD,yBAAmB,oBAAoB,MAAM,UAAU;AACvD,yBAAmB,oBAAoB,MAAM,UAAU;AACvD,2BACI,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AACpD,yBAAmB,QAAQ;AAAA,IAC/B,WAAW,oBAAoB,UAAU,WAAW,KAAK,GAAG;AACxD,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,2BACI,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AACpD,yBAAmB,QAAQ;AAAA,IAC/B,WAAW,oBAAoB,UAAU,WAAW,OAAO,GAAG;AAC1D,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,wBAAkB,oBAAoB,MAAM,UAAU;AACtD,0BAAkB,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AAClE,wBAAkB,QAAQ;AAAA,IAC9B,WAAW,oBAAoB,UAAU,WAAW,MAAM,GAAG;AACzD,uBAAiB,oBAAoB,MAAM,UAAU;AACrD,0BAAkB,yBAAoB,eAAe,WAAnC,mBAA2C,MAAK;AAClE,wBAAkB,QAAQ;AAAA,IAC9B;AACA,WAAO;AAAA,MACH,MAAM;AAAA,QACF;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";import{detectOverflow as o}from"@floating-ui/dom";export const fullSize=(f={padding:0})=>({name:"fullSize",async fn(t){var c,l,r,h;const i=await o(t,f);let e=-i.top-i.bottom+t.rects.floating.height,a=-i.left-i.right+t.rects.floating.width;return t.placement.startsWith("bottom")?(e-=t.rects.reference.height,e-=t.rects.reference.y,e-=((c=t.middlewareData.offset)==null?void 0:c.y)||0,e+=f.padding):t.placement.startsWith("top")?(e=t.rects.reference.y,e-=((l=t.middlewareData.offset)==null?void 0:l.y)||0,e+=f.padding):t.placement.startsWith("right")?(a-=t.rects.reference.width,a-=t.rects.reference.x,a-=((r=t.middlewareData.offset)==null?void 0:r.x)||0,a+=f.padding):t.placement.startsWith("left")&&(a=t.rects.reference.x,a-=((h=t.middlewareData.offset)==null?void 0:h.x)||0,a+=f.padding),{data:{availableWidth:a,availableHeight:e}}}});
|
|
2
|
+
//# sourceMappingURL=fullSizePlugin.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["fullSizePlugin.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n detectOverflow,\n MiddlewareArguments,\n MiddlewareReturn,\n} from '@floating-ui/dom';\n\nexport const fullSize = (options: { padding: number } = { padding: 0 }) => ({\n name: 'fullSize',\n async fn(middlewareArguments: MiddlewareArguments): Promise<\n MiddlewareReturn & {\n data: { availableWidth: number; availableHeight: number };\n }\n > {\n const overflow = await detectOverflow(middlewareArguments, options);\n let availableHeight =\n -overflow.top -\n overflow.bottom +\n middlewareArguments.rects.floating.height;\n let availableWidth =\n -overflow.left -\n overflow.right +\n middlewareArguments.rects.floating.width;\n if (middlewareArguments.placement.startsWith('bottom')) {\n availableHeight -= middlewareArguments.rects.reference.height;\n availableHeight -= middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('top')) {\n availableHeight = middlewareArguments.rects.reference.y;\n availableHeight -=\n middlewareArguments.middlewareData.offset?.y || 0;\n availableHeight += options.padding;\n } else if (middlewareArguments.placement.startsWith('right')) {\n availableWidth -= middlewareArguments.rects.reference.width;\n availableWidth -= middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n } else if (middlewareArguments.placement.startsWith('left')) {\n availableWidth = middlewareArguments.rects.reference.x;\n availableWidth -= middlewareArguments.middlewareData.offset?.x || 0;\n availableWidth += options.padding;\n }\n return {\n data: {\n availableWidth,\n availableHeight,\n },\n };\n },\n});\n"],
|
|
5
|
+
"mappings": "aAWA,OACI,kBAAAA,MAGG,mBAEA,aAAM,SAAW,CAACC,EAA+B,CAAE,QAAS,CAAE,KAAO,CACxE,KAAM,WACN,MAAM,GAAGC,EAIP,CAvBN,IAAAC,EAAAC,EAAAC,EAAAC,EAwBQ,MAAMC,EAAW,MAAMP,EAAeE,EAAqBD,CAAO,EAClE,IAAIO,EACA,CAACD,EAAS,IACVA,EAAS,OACTL,EAAoB,MAAM,SAAS,OACnCO,EACA,CAACF,EAAS,KACVA,EAAS,MACTL,EAAoB,MAAM,SAAS,MACvC,OAAIA,EAAoB,UAAU,WAAW,QAAQ,GACjDM,GAAmBN,EAAoB,MAAM,UAAU,OACvDM,GAAmBN,EAAoB,MAAM,UAAU,EACvDM,KACIL,EAAAD,EAAoB,eAAe,SAAnC,YAAAC,EAA2C,IAAK,EACpDK,GAAmBP,EAAQ,SACpBC,EAAoB,UAAU,WAAW,KAAK,GACrDM,EAAkBN,EAAoB,MAAM,UAAU,EACtDM,KACIJ,EAAAF,EAAoB,eAAe,SAAnC,YAAAE,EAA2C,IAAK,EACpDI,GAAmBP,EAAQ,SACpBC,EAAoB,UAAU,WAAW,OAAO,GACvDO,GAAkBP,EAAoB,MAAM,UAAU,MACtDO,GAAkBP,EAAoB,MAAM,UAAU,EACtDO,KAAkBJ,EAAAH,EAAoB,eAAe,SAAnC,YAAAG,EAA2C,IAAK,EAClEI,GAAkBR,EAAQ,SACnBC,EAAoB,UAAU,WAAW,MAAM,IACtDO,EAAiBP,EAAoB,MAAM,UAAU,EACrDO,KAAkBH,EAAAJ,EAAoB,eAAe,SAAnC,YAAAI,EAA2C,IAAK,EAClEG,GAAkBR,EAAQ,SAEvB,CACH,KAAM,CACF,eAAAQ,EACA,gBAAAD,CACJ,CACJ,CACJ,CACJ",
|
|
6
|
+
"names": ["detectOverflow", "options", "middlewareArguments", "_a", "_b", "_c", "_d", "overflow", "availableHeight", "availableWidth"]
|
|
7
|
+
}
|
package/src/index.d.ts
ADDED
package/src/index.dev.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
export * from "./Overlay.dev.js";
|
|
3
|
+
export * from "./OverlayTrigger.dev.js";
|
|
4
|
+
export * from "./overlay-types.dev.js";
|
|
5
|
+
export * from "./VirtualTrigger.dev.js";
|
|
6
|
+
export * from "./loader.dev.js";
|
|
7
|
+
export * from "./overlay-trigger-directive.dev.js";
|
|
8
|
+
//# sourceMappingURL=index.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["index.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nexport * from './Overlay.dev.js'\nexport * from './OverlayTrigger.dev.js'\nexport * from './overlay-types.dev.js'\nexport * from './VirtualTrigger.dev.js'\nexport * from './loader.dev.js'\nexport * from './overlay-trigger-directive.dev.js'\n"],
|
|
5
|
+
"mappings": ";AAWA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/index.js
ADDED
package/src/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["index.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nexport * from './Overlay.js';\nexport * from './OverlayTrigger.js';\nexport * from './overlay-types.js';\nexport * from './VirtualTrigger.js';\nexport * from './loader.js';\nexport * from './overlay-trigger-directive.js';\n"],
|
|
5
|
+
"mappings": "aAWA,WAAc,eACd,WAAc,sBACd,WAAc,qBACd,WAAc,sBACd,WAAc,cACd,WAAc",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/loader.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OverlayOptions, OverlayOptionsV1, TriggerInteractionsV1 } from './overlay-types.js';
|
|
2
|
+
import { Overlay } from './Overlay.js';
|
|
3
|
+
export declare function openOverlay(trigger: HTMLElement, interaction: TriggerInteractionsV1, content: HTMLElement, optionsV1: OverlayOptionsV1): Promise<() => void>;
|
|
4
|
+
export declare function openOverlay(content: HTMLElement, options?: OverlayOptions): Promise<Overlay>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { Overlay } from "./Overlay.dev.js";
|
|
3
|
+
export async function openOverlay(triggerOrContent, interactionOrOptions, content, optionsV1) {
|
|
4
|
+
return Overlay.open(
|
|
5
|
+
triggerOrContent,
|
|
6
|
+
interactionOrOptions,
|
|
7
|
+
content,
|
|
8
|
+
optionsV1
|
|
9
|
+
);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=loader.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["loader.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type {\n OverlayOptions,\n OverlayOptionsV1,\n TriggerInteractionsV1,\n} from './overlay-types.dev.js'\nimport { Overlay } from './Overlay.dev.js'\n\n// Re-export Overlay.open and openOverlay to persist functionality from before 0.37.0.\n// Wrap it in a method (which needs duplicate argument typings) instead of exporting\n// the static member directly to ensure `this` is bound correctly therein.\nexport async function openOverlay(\n trigger: HTMLElement,\n interaction: TriggerInteractionsV1,\n content: HTMLElement,\n optionsV1: OverlayOptionsV1\n): Promise<() => void>;\nexport async function openOverlay(\n content: HTMLElement,\n options?: OverlayOptions\n): Promise<Overlay>;\nexport async function openOverlay(\n triggerOrContent: HTMLElement,\n interactionOrOptions: TriggerInteractionsV1 | OverlayOptions | undefined,\n content?: HTMLElement,\n optionsV1?: OverlayOptionsV1\n): Promise<Overlay | (() => void)> {\n return Overlay.open(\n triggerOrContent,\n interactionOrOptions as TriggerInteractionsV1,\n content as HTMLElement,\n optionsV1 as OverlayOptionsV1\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAiBA,SAAS,eAAe;AAexB,sBAAsB,YAClB,kBACA,sBACA,SACA,WAC+B;AAC/B,SAAO,QAAQ;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/loader.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["loader.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport type {\n OverlayOptions,\n OverlayOptionsV1,\n TriggerInteractionsV1,\n} from './overlay-types.js';\nimport { Overlay } from './Overlay.js';\n\n// Re-export Overlay.open and openOverlay to persist functionality from before 0.37.0.\n// Wrap it in a method (which needs duplicate argument typings) instead of exporting\n// the static member directly to ensure `this` is bound correctly therein.\nexport async function openOverlay(\n trigger: HTMLElement,\n interaction: TriggerInteractionsV1,\n content: HTMLElement,\n optionsV1: OverlayOptionsV1\n): Promise<() => void>;\nexport async function openOverlay(\n content: HTMLElement,\n options?: OverlayOptions\n): Promise<Overlay>;\nexport async function openOverlay(\n triggerOrContent: HTMLElement,\n interactionOrOptions: TriggerInteractionsV1 | OverlayOptions | undefined,\n content?: HTMLElement,\n optionsV1?: OverlayOptionsV1\n): Promise<Overlay | (() => void)> {\n return Overlay.open(\n triggerOrContent,\n interactionOrOptions as TriggerInteractionsV1,\n content as HTMLElement,\n optionsV1 as OverlayOptionsV1\n );\n}\n"],
|
|
5
|
+
"mappings": "aAiBA,OAAS,WAAAA,MAAe,eAexB,sBAAsB,YAClBC,EACAC,EACAC,EACAC,EAC+B,CAC/B,OAAOJ,EAAQ,KACXC,EACAC,EACAC,EACAC,CACJ,CACJ",
|
|
6
|
+
"names": ["Overlay", "triggerOrContent", "interactionOrOptions", "content", "optionsV1"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class OverlayCloseEvent extends Event {
|
|
2
|
+
root?: HTMLElement;
|
|
3
|
+
constructor({ root }: {
|
|
4
|
+
root?: HTMLElement;
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
declare global {
|
|
8
|
+
interface GlobalEventHandlersEventMap {
|
|
9
|
+
'sp-overlay-close': CustomEvent<OverlayCloseEvent>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["overlay-events.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nexport class OverlayCloseEvent extends Event {\n root?: HTMLElement;\n constructor({ root }: { root?: HTMLElement }) {\n super('sp-overlay-close', { bubbles: true, composed: true });\n this.root = root;\n }\n}\n\ndeclare global {\n interface GlobalEventHandlersEventMap {\n 'sp-overlay-close': CustomEvent<OverlayCloseEvent>;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAYO,aAAM,0BAA0B,MAAM;AAAA,EAEzC,YAAY,EAAE,KAAK,GAA2B;AAC1C,UAAM,oBAAoB,EAAE,SAAS,MAAM,UAAU,KAAK,CAAC;AAC3D,SAAK,OAAO;AAAA,EAChB;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["overlay-events.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nexport class OverlayCloseEvent extends Event {\n root?: HTMLElement;\n constructor({ root }: { root?: HTMLElement }) {\n super('sp-overlay-close', { bubbles: true, composed: true });\n this.root = root;\n }\n}\n\ndeclare global {\n interface GlobalEventHandlersEventMap {\n 'sp-overlay-close': CustomEvent<OverlayCloseEvent>;\n }\n}\n"],
|
|
5
|
+
"mappings": "aAYO,aAAM,0BAA0B,KAAM,CAEzC,YAAY,CAAE,KAAAA,CAAK,EAA2B,CAC1C,MAAM,mBAAoB,CAAE,QAAS,GAAM,SAAU,EAAK,CAAC,EAC3D,KAAK,KAAOA,CAChB,CACJ",
|
|
6
|
+
"names": ["root"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A timer to help with implementation of warnup/cooldown behavior as described here:
|
|
3
|
+
* https://spectrum.adobe.com/page/tooltip/#Immediate-or-delayed-appearance
|
|
4
|
+
*/
|
|
5
|
+
export declare class OverlayTimer {
|
|
6
|
+
private warmUpDelay;
|
|
7
|
+
private coolDownDelay;
|
|
8
|
+
private isWarm;
|
|
9
|
+
private cooldownTimeout?;
|
|
10
|
+
private component?;
|
|
11
|
+
private timeout;
|
|
12
|
+
private promise?;
|
|
13
|
+
private resolve?;
|
|
14
|
+
constructor(options?: {
|
|
15
|
+
warmUpDelay?: number;
|
|
16
|
+
coolDownDelay?: number;
|
|
17
|
+
});
|
|
18
|
+
openTimer(component: HTMLElement): Promise<boolean>;
|
|
19
|
+
close(component: HTMLElement): void;
|
|
20
|
+
private resetCooldownTimer;
|
|
21
|
+
private cancelCooldownTimer;
|
|
22
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const DEFAULT_WARMUP = 1e3;
|
|
3
|
+
const DEFAULT_COOLDOWN = 1e3;
|
|
4
|
+
export class OverlayTimer {
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
this.warmUpDelay = DEFAULT_WARMUP;
|
|
7
|
+
this.coolDownDelay = DEFAULT_COOLDOWN;
|
|
8
|
+
this.isWarm = false;
|
|
9
|
+
this.timeout = 0;
|
|
10
|
+
Object.assign(this, options);
|
|
11
|
+
}
|
|
12
|
+
async openTimer(component) {
|
|
13
|
+
this.cancelCooldownTimer();
|
|
14
|
+
if (!this.component || component !== this.component) {
|
|
15
|
+
if (this.component) {
|
|
16
|
+
this.close(this.component);
|
|
17
|
+
this.cancelCooldownTimer();
|
|
18
|
+
}
|
|
19
|
+
this.component = component;
|
|
20
|
+
if (this.isWarm) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
this.promise = new Promise((resolve) => {
|
|
24
|
+
this.resolve = resolve;
|
|
25
|
+
this.timeout = window.setTimeout(() => {
|
|
26
|
+
if (this.resolve) {
|
|
27
|
+
this.resolve(false);
|
|
28
|
+
this.isWarm = true;
|
|
29
|
+
}
|
|
30
|
+
}, this.warmUpDelay);
|
|
31
|
+
});
|
|
32
|
+
return this.promise;
|
|
33
|
+
} else if (this.promise) {
|
|
34
|
+
return this.promise;
|
|
35
|
+
} else {
|
|
36
|
+
throw new Error("Inconsistent state");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
close(component) {
|
|
40
|
+
if (this.component && this.component === component) {
|
|
41
|
+
this.resetCooldownTimer();
|
|
42
|
+
if (this.timeout > 0) {
|
|
43
|
+
clearTimeout(this.timeout);
|
|
44
|
+
this.timeout = 0;
|
|
45
|
+
}
|
|
46
|
+
if (this.resolve) {
|
|
47
|
+
this.resolve(true);
|
|
48
|
+
delete this.resolve;
|
|
49
|
+
}
|
|
50
|
+
delete this.promise;
|
|
51
|
+
delete this.component;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
resetCooldownTimer() {
|
|
55
|
+
if (this.isWarm) {
|
|
56
|
+
if (this.cooldownTimeout) {
|
|
57
|
+
window.clearTimeout(this.cooldownTimeout);
|
|
58
|
+
}
|
|
59
|
+
this.cooldownTimeout = window.setTimeout(() => {
|
|
60
|
+
this.isWarm = false;
|
|
61
|
+
delete this.cooldownTimeout;
|
|
62
|
+
}, this.coolDownDelay);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
cancelCooldownTimer() {
|
|
66
|
+
if (this.cooldownTimeout) {
|
|
67
|
+
window.clearTimeout(this.cooldownTimeout);
|
|
68
|
+
}
|
|
69
|
+
delete this.cooldownTimeout;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=overlay-timer.dev.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["overlay-timer.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nconst DEFAULT_WARMUP = 1000;\nconst DEFAULT_COOLDOWN = 1000;\n\n/**\n * A timer to help with implementation of warnup/cooldown behavior as described here:\n * https://spectrum.adobe.com/page/tooltip/#Immediate-or-delayed-appearance\n */\nexport class OverlayTimer {\n private warmUpDelay = DEFAULT_WARMUP;\n private coolDownDelay = DEFAULT_COOLDOWN;\n\n private isWarm = false;\n private cooldownTimeout?: number;\n\n private component?: HTMLElement;\n private timeout = 0;\n private promise?: Promise<boolean>;\n private resolve?: (cancelled: boolean) => void;\n\n constructor(\n options: { warmUpDelay?: number; coolDownDelay?: number } = {}\n ) {\n Object.assign(this, options);\n }\n\n public async openTimer(component: HTMLElement): Promise<boolean> {\n this.cancelCooldownTimer();\n\n if (!this.component || component !== this.component) {\n if (this.component) {\n this.close(this.component);\n this.cancelCooldownTimer();\n }\n this.component = component;\n\n if (this.isWarm) {\n return false;\n }\n\n this.promise = new Promise((resolve) => {\n this.resolve = resolve;\n this.timeout = window.setTimeout(() => {\n if (this.resolve) {\n this.resolve(false);\n this.isWarm = true;\n }\n }, this.warmUpDelay);\n });\n return this.promise;\n } else if (this.promise) {\n return this.promise;\n /* c8 ignore next 4 */\n } else {\n // This should never happen\n throw new Error('Inconsistent state');\n }\n }\n\n public close(component: HTMLElement): void {\n if (this.component && this.component === component) {\n this.resetCooldownTimer();\n if (this.timeout > 0) {\n clearTimeout(this.timeout);\n this.timeout = 0;\n }\n if (this.resolve) {\n this.resolve(true);\n delete this.resolve;\n }\n delete this.promise;\n delete this.component;\n }\n }\n\n private resetCooldownTimer(): void {\n if (this.isWarm) {\n if (this.cooldownTimeout) {\n window.clearTimeout(this.cooldownTimeout);\n }\n this.cooldownTimeout = window.setTimeout(() => {\n this.isWarm = false;\n delete this.cooldownTimeout;\n }, this.coolDownDelay);\n }\n }\n\n private cancelCooldownTimer(): void {\n if (this.cooldownTimeout) {\n window.clearTimeout(this.cooldownTimeout);\n }\n delete this.cooldownTimeout;\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAYA,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;AAMlB,aAAM,aAAa;AAAA,EAYtB,YACI,UAA4D,CAAC,GAC/D;AAbF,SAAQ,cAAc;AACtB,SAAQ,gBAAgB;AAExB,SAAQ,SAAS;AAIjB,SAAQ,UAAU;AAOd,WAAO,OAAO,MAAM,OAAO;AAAA,EAC/B;AAAA,EAEA,MAAa,UAAU,WAA0C;AAC7D,SAAK,oBAAoB;AAEzB,QAAI,CAAC,KAAK,aAAa,cAAc,KAAK,WAAW;AACjD,UAAI,KAAK,WAAW;AAChB,aAAK,MAAM,KAAK,SAAS;AACzB,aAAK,oBAAoB;AAAA,MAC7B;AACA,WAAK,YAAY;AAEjB,UAAI,KAAK,QAAQ;AACb,eAAO;AAAA,MACX;AAEA,WAAK,UAAU,IAAI,QAAQ,CAAC,YAAY;AACpC,aAAK,UAAU;AACf,aAAK,UAAU,OAAO,WAAW,MAAM;AACnC,cAAI,KAAK,SAAS;AACd,iBAAK,QAAQ,KAAK;AAClB,iBAAK,SAAS;AAAA,UAClB;AAAA,QACJ,GAAG,KAAK,WAAW;AAAA,MACvB,CAAC;AACD,aAAO,KAAK;AAAA,IAChB,WAAW,KAAK,SAAS;AACrB,aAAO,KAAK;AAAA,IAEhB,OAAO;AAEH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEO,MAAM,WAA8B;AACvC,QAAI,KAAK,aAAa,KAAK,cAAc,WAAW;AAChD,WAAK,mBAAmB;AACxB,UAAI,KAAK,UAAU,GAAG;AAClB,qBAAa,KAAK,OAAO;AACzB,aAAK,UAAU;AAAA,MACnB;AACA,UAAI,KAAK,SAAS;AACd,aAAK,QAAQ,IAAI;AACjB,eAAO,KAAK;AAAA,MAChB;AACA,aAAO,KAAK;AACZ,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ;AAAA,EAEQ,qBAA2B;AAC/B,QAAI,KAAK,QAAQ;AACb,UAAI,KAAK,iBAAiB;AACtB,eAAO,aAAa,KAAK,eAAe;AAAA,MAC5C;AACA,WAAK,kBAAkB,OAAO,WAAW,MAAM;AAC3C,aAAK,SAAS;AACd,eAAO,KAAK;AAAA,MAChB,GAAG,KAAK,aAAa;AAAA,IACzB;AAAA,EACJ;AAAA,EAEQ,sBAA4B;AAChC,QAAI,KAAK,iBAAiB;AACtB,aAAO,aAAa,KAAK,eAAe;AAAA,IAC5C;AACA,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=1e3,s=1e3;export class OverlayTimer{constructor(e={}){this.warmUpDelay=1e3;this.coolDownDelay=1e3;this.isWarm=!1;this.timeout=0;Object.assign(this,e)}async openTimer(e){if(this.cancelCooldownTimer(),!this.component||e!==this.component)return this.component&&(this.close(this.component),this.cancelCooldownTimer()),this.component=e,this.isWarm?!1:(this.promise=new Promise(o=>{this.resolve=o,this.timeout=window.setTimeout(()=>{this.resolve&&(this.resolve(!1),this.isWarm=!0)},this.warmUpDelay)}),this.promise);if(this.promise)return this.promise;throw new Error("Inconsistent state")}close(e){this.component&&this.component===e&&(this.resetCooldownTimer(),this.timeout>0&&(clearTimeout(this.timeout),this.timeout=0),this.resolve&&(this.resolve(!0),delete this.resolve),delete this.promise,delete this.component)}resetCooldownTimer(){this.isWarm&&(this.cooldownTimeout&&window.clearTimeout(this.cooldownTimeout),this.cooldownTimeout=window.setTimeout(()=>{this.isWarm=!1,delete this.cooldownTimeout},this.coolDownDelay))}cancelCooldownTimer(){this.cooldownTimeout&&window.clearTimeout(this.cooldownTimeout),delete this.cooldownTimeout}}
|
|
2
|
+
//# sourceMappingURL=overlay-timer.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["overlay-timer.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nconst DEFAULT_WARMUP = 1000;\nconst DEFAULT_COOLDOWN = 1000;\n\n/**\n * A timer to help with implementation of warnup/cooldown behavior as described here:\n * https://spectrum.adobe.com/page/tooltip/#Immediate-or-delayed-appearance\n */\nexport class OverlayTimer {\n private warmUpDelay = DEFAULT_WARMUP;\n private coolDownDelay = DEFAULT_COOLDOWN;\n\n private isWarm = false;\n private cooldownTimeout?: number;\n\n private component?: HTMLElement;\n private timeout = 0;\n private promise?: Promise<boolean>;\n private resolve?: (cancelled: boolean) => void;\n\n constructor(\n options: { warmUpDelay?: number; coolDownDelay?: number } = {}\n ) {\n Object.assign(this, options);\n }\n\n public async openTimer(component: HTMLElement): Promise<boolean> {\n this.cancelCooldownTimer();\n\n if (!this.component || component !== this.component) {\n if (this.component) {\n this.close(this.component);\n this.cancelCooldownTimer();\n }\n this.component = component;\n\n if (this.isWarm) {\n return false;\n }\n\n this.promise = new Promise((resolve) => {\n this.resolve = resolve;\n this.timeout = window.setTimeout(() => {\n if (this.resolve) {\n this.resolve(false);\n this.isWarm = true;\n }\n }, this.warmUpDelay);\n });\n return this.promise;\n } else if (this.promise) {\n return this.promise;\n /* c8 ignore next 4 */\n } else {\n // This should never happen\n throw new Error('Inconsistent state');\n }\n }\n\n public close(component: HTMLElement): void {\n if (this.component && this.component === component) {\n this.resetCooldownTimer();\n if (this.timeout > 0) {\n clearTimeout(this.timeout);\n this.timeout = 0;\n }\n if (this.resolve) {\n this.resolve(true);\n delete this.resolve;\n }\n delete this.promise;\n delete this.component;\n }\n }\n\n private resetCooldownTimer(): void {\n if (this.isWarm) {\n if (this.cooldownTimeout) {\n window.clearTimeout(this.cooldownTimeout);\n }\n this.cooldownTimeout = window.setTimeout(() => {\n this.isWarm = false;\n delete this.cooldownTimeout;\n }, this.coolDownDelay);\n }\n }\n\n private cancelCooldownTimer(): void {\n if (this.cooldownTimeout) {\n window.clearTimeout(this.cooldownTimeout);\n }\n delete this.cooldownTimeout;\n }\n}\n"],
|
|
5
|
+
"mappings": "aAYA,MAAMA,EAAiB,IACjBC,EAAmB,IAMlB,aAAM,YAAa,CAYtB,YACIC,EAA4D,CAAC,EAC/D,CAbF,KAAQ,YAAc,IACtB,KAAQ,cAAgB,IAExB,KAAQ,OAAS,GAIjB,KAAQ,QAAU,EAOd,OAAO,OAAO,KAAMA,CAAO,CAC/B,CAEA,MAAa,UAAUC,EAA0C,CAG7D,GAFA,KAAK,oBAAoB,EAErB,CAAC,KAAK,WAAaA,IAAc,KAAK,UAOtC,OANI,KAAK,YACL,KAAK,MAAM,KAAK,SAAS,EACzB,KAAK,oBAAoB,GAE7B,KAAK,UAAYA,EAEb,KAAK,OACE,IAGX,KAAK,QAAU,IAAI,QAASC,GAAY,CACpC,KAAK,QAAUA,EACf,KAAK,QAAU,OAAO,WAAW,IAAM,CAC/B,KAAK,UACL,KAAK,QAAQ,EAAK,EAClB,KAAK,OAAS,GAEtB,EAAG,KAAK,WAAW,CACvB,CAAC,EACM,KAAK,SACT,GAAI,KAAK,QACZ,OAAO,KAAK,QAIZ,MAAM,IAAI,MAAM,oBAAoB,CAE5C,CAEO,MAAMD,EAA8B,CACnC,KAAK,WAAa,KAAK,YAAcA,IACrC,KAAK,mBAAmB,EACpB,KAAK,QAAU,IACf,aAAa,KAAK,OAAO,EACzB,KAAK,QAAU,GAEf,KAAK,UACL,KAAK,QAAQ,EAAI,EACjB,OAAO,KAAK,SAEhB,OAAO,KAAK,QACZ,OAAO,KAAK,UAEpB,CAEQ,oBAA2B,CAC3B,KAAK,SACD,KAAK,iBACL,OAAO,aAAa,KAAK,eAAe,EAE5C,KAAK,gBAAkB,OAAO,WAAW,IAAM,CAC3C,KAAK,OAAS,GACd,OAAO,KAAK,eAChB,EAAG,KAAK,aAAa,EAE7B,CAEQ,qBAA4B,CAC5B,KAAK,iBACL,OAAO,aAAa,KAAK,eAAe,EAE5C,OAAO,KAAK,eAChB,CACJ",
|
|
6
|
+
"names": ["DEFAULT_WARMUP", "DEFAULT_COOLDOWN", "options", "component", "resolve"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ElementPart, type TemplateResult } from '@spectrum-web-components/base';
|
|
2
|
+
import type { OverlayOptions, TriggerInteraction } from './overlay-types.js';
|
|
3
|
+
import { type SlottableRequestEvent } from './slottable-request-event.js';
|
|
4
|
+
import { SlottableRequestDirective } from './slottable-request-directive.js';
|
|
5
|
+
export type InsertionOptions = {
|
|
6
|
+
el: HTMLElement | (() => HTMLElement);
|
|
7
|
+
where: InsertPosition;
|
|
8
|
+
};
|
|
9
|
+
export type OverlayTriggerOptions = {
|
|
10
|
+
open?: boolean;
|
|
11
|
+
triggerInteraction: TriggerInteraction;
|
|
12
|
+
overlayOptions: OverlayOptions;
|
|
13
|
+
insertionOptions?: InsertionOptions;
|
|
14
|
+
};
|
|
15
|
+
export declare class OverlayTriggerDirective extends SlottableRequestDirective {
|
|
16
|
+
private host?;
|
|
17
|
+
private overlay;
|
|
18
|
+
private strategy;
|
|
19
|
+
protected defaultOptions: OverlayTriggerOptions;
|
|
20
|
+
protected options: OverlayOptions;
|
|
21
|
+
protected insertionOptions?: InsertionOptions;
|
|
22
|
+
render(_template: () => TemplateResult, _options?: Partial<OverlayTriggerOptions>): unknown;
|
|
23
|
+
update(part: ElementPart, [template, options]: Parameters<this['render']>): void;
|
|
24
|
+
handleSlottableRequest(event: SlottableRequestEvent): void;
|
|
25
|
+
}
|
|
26
|
+
export declare const trigger: (_template: () => TemplateResult, _options?: Partial<OverlayTriggerOptions> | undefined) => import("lit-html/directive.js").DirectiveResult<typeof OverlayTriggerDirective>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {
|
|
3
|
+
nothing,
|
|
4
|
+
render
|
|
5
|
+
} from "@spectrum-web-components/base";
|
|
6
|
+
import { directive } from "@spectrum-web-components/base/src/async-directive.js";
|
|
7
|
+
import { strategies } from "./strategies.dev.js";
|
|
8
|
+
import {
|
|
9
|
+
removeSlottableRequest
|
|
10
|
+
} from "./slottable-request-event.dev.js";
|
|
11
|
+
import { SlottableRequestDirective } from "./slottable-request-directive.dev.js";
|
|
12
|
+
import { AbstractOverlay } from "./AbstractOverlay.dev.js";
|
|
13
|
+
import { InteractionTypes } from "./InteractionController.dev.js";
|
|
14
|
+
export class OverlayTriggerDirective extends SlottableRequestDirective {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.defaultOptions = {
|
|
18
|
+
triggerInteraction: "click",
|
|
19
|
+
overlayOptions: {
|
|
20
|
+
type: "auto",
|
|
21
|
+
offset: 0
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
this.options = {
|
|
25
|
+
...this.defaultOptions.overlayOptions
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/* c8 ignore next 9 */
|
|
29
|
+
render(_template, _options) {
|
|
30
|
+
return nothing;
|
|
31
|
+
}
|
|
32
|
+
update(part, [template, options]) {
|
|
33
|
+
var _a, _b, _c, _d;
|
|
34
|
+
this.options = {
|
|
35
|
+
...this.defaultOptions.overlayOptions,
|
|
36
|
+
...options == null ? void 0 : options.overlayOptions
|
|
37
|
+
};
|
|
38
|
+
this.insertionOptions = options == null ? void 0 : options.insertionOptions;
|
|
39
|
+
this.template = template;
|
|
40
|
+
this.host = (_a = part.options) == null ? void 0 : _a.host;
|
|
41
|
+
let newTarget = false;
|
|
42
|
+
const triggerInteraction = (options == null ? void 0 : options.triggerInteraction) || this.defaultOptions.triggerInteraction;
|
|
43
|
+
const newStrategy = InteractionTypes[(_b = this.strategy) == null ? void 0 : _b.type] !== triggerInteraction;
|
|
44
|
+
if (this.target !== part.element) {
|
|
45
|
+
this.target = part.element;
|
|
46
|
+
newTarget = true;
|
|
47
|
+
}
|
|
48
|
+
if (newTarget || newStrategy) {
|
|
49
|
+
(_c = this.strategy) == null ? void 0 : _c.abort();
|
|
50
|
+
this.strategy = new strategies[triggerInteraction](this.target, {
|
|
51
|
+
isPersistent: true,
|
|
52
|
+
handleOverlayReady: (overlay) => {
|
|
53
|
+
this.listenerHost = this.overlay = overlay;
|
|
54
|
+
this.init();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
this.strategy.open = (_d = options == null ? void 0 : options.open) != null ? _d : false;
|
|
59
|
+
}
|
|
60
|
+
handleSlottableRequest(event) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
if (event.target !== event.currentTarget) return;
|
|
63
|
+
const willRemoveSlottable = event.data === removeSlottableRequest;
|
|
64
|
+
const options = {};
|
|
65
|
+
if (this.host) {
|
|
66
|
+
options.host = this.host;
|
|
67
|
+
}
|
|
68
|
+
render(
|
|
69
|
+
willRemoveSlottable ? void 0 : this.template(),
|
|
70
|
+
this.overlay,
|
|
71
|
+
options
|
|
72
|
+
);
|
|
73
|
+
if (willRemoveSlottable) {
|
|
74
|
+
this.overlay.remove();
|
|
75
|
+
} else {
|
|
76
|
+
AbstractOverlay.applyOptions(this.overlay, {
|
|
77
|
+
...this.options,
|
|
78
|
+
trigger: this.target
|
|
79
|
+
});
|
|
80
|
+
const insertionEl = typeof ((_a = this.insertionOptions) == null ? void 0 : _a.el) === "function" ? this.insertionOptions.el() : ((_b = this.insertionOptions) == null ? void 0 : _b.el) || this.target;
|
|
81
|
+
const { where = "afterend" } = this.insertionOptions || {};
|
|
82
|
+
insertionEl.insertAdjacentElement(where, this.overlay);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export const trigger = directive(OverlayTriggerDirective);
|
|
87
|
+
//# sourceMappingURL=overlay-trigger-directive.dev.js.map
|