aptechka 0.32.5 → 0.33.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.
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { CSSProperty } from '../css-property';
|
|
1
2
|
import { PopoverElement } from './PopoverElement';
|
|
2
3
|
|
|
3
4
|
export type PopoverButtonType = 'open' | 'close' | 'toggle';
|
|
4
5
|
export declare class PopoverButtonElement extends HTMLElement {
|
|
5
6
|
#private;
|
|
6
7
|
constructor();
|
|
8
|
+
get type(): CSSProperty<PopoverButtonType>;
|
|
7
9
|
get popoverElement(): PopoverElement | undefined;
|
|
8
10
|
protected connectedCallback(): void;
|
|
9
11
|
protected disconnectedCallback(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CSSProperty } from '../css-property';
|
|
2
2
|
import { Store } from '../store/vanilla';
|
|
3
3
|
|
|
4
4
|
export interface PopoverEvents {
|
|
@@ -14,9 +14,11 @@ export interface PopoverEvents {
|
|
|
14
14
|
export declare class PopoverElement extends HTMLElement {
|
|
15
15
|
#private;
|
|
16
16
|
private static __opened;
|
|
17
|
-
get history():
|
|
18
|
-
get restore():
|
|
19
|
-
get dominance():
|
|
17
|
+
get history(): CSSProperty<false>;
|
|
18
|
+
get restore(): CSSProperty<false>;
|
|
19
|
+
get dominance(): CSSProperty<0>;
|
|
20
|
+
get clickOutside(): CSSProperty<false>;
|
|
21
|
+
get escape(): CSSProperty<false>;
|
|
20
22
|
get opened(): Store<boolean>;
|
|
21
23
|
get lastTrigger(): any;
|
|
22
24
|
open: (options?: {
|
package/lib/popover/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var U=o=>{throw TypeError(o)};var I=(o,h,t)=>h.has(o)||U("Cannot "+t);var e=(o,h,t)=>(I(o,h,"read from private field"),t?t.call(o):h.get(o)),s=(o,h,t)=>h.has(o)?U("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(o):h.set(o,t),r=(o,h,t,c)=>(I(o,h,"write to private field"),c?c.call(o,t):h.set(o,t),t),P=(o,h,t)=>(I(o,h,"access private method"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("../css-property/index.cjs"),J=require("../Store-CDb6RMce.cjs"),z=require("../events-KVanG9sR.cjs"),K=require("../function-MthRj-GJ.cjs"),Q=require("../style-At6aDoqG.cjs"),W=require("../window-resizer/vanilla/index.cjs"),V=require("../browser-CpzFX2xg.cjs");var S,l,_,d,v,p,g,m,f,b,u,F,T,B,k,N,L,A,x,C;const a=class a extends HTMLElement{constructor(){super(...arguments);s(this,u);s(this,S);s(this,l);s(this,_);s(this,d);s(this,v);s(this,p);s(this,g);s(this,m);s(this,f);s(this,b);s(this,T);s(this,k);s(this,L);s(this,A);s(this,x);s(this,C);r(this,S,-1),r(this,l,new J.Store(!1)),r(this,d,new w.CSSProperty(this,"--history",!1)),r(this,v,new w.CSSProperty(this,"--restore",!1)),r(this,p,new w.CSSProperty(this,"--dominance",0)),r(this,g,new w.CSSProperty(this,"--click-outside",!1)),r(this,m,new w.CSSProperty(this,"--escape",!1)),r(this,f,!1),this.open=t=>{if(e(this,l).current)return;r(this,b,t==null?void 0:t.trigger),e(this,l).current=!0,e(this,p).current&&(a.__opened=a.__opened.filter(n=>this.dominance.current>=n.dominance.current?(n.close(),!1):!0)),a.__opened.push(this),r(this,S,a.__opened.length-1),e(this,d).current&&e(this,f)&&history.pushState("","",e(this,u,F)),clearTimeout(e(this,_)),this.classList.remove("closing"),this.classList.add("triggered"),this.style.display="block",z.dispatchEvent(this,"popoverTriggered",{custom:!0,detail:{trigger:e(this,b)}});const c=()=>{addEventListener("click",e(this,T)),addEventListener("keydown",e(this,k)),e(this,C).call(this),this.style.opacity="1",this.classList.add("opened"),z.dispatchEvent(this,"popoverOpened",{custom:!0,detail:{trigger:e(this,b)}})};t!=null&&t.skipTransition?c():setTimeout(c,10)},this.close=()=>{e(this,l).current&&(e(this,l).current=!1,a.__opened=a.__opened.filter(t=>t===this?!1:e(t,p).current<this.dominance.current?(t.close(),!1):!0),P(this,u,B).call(this),this.classList.remove("opened"),this.classList.add("closing"),this.style.opacity="0",z.dispatchEvent(this,"popoverClosing",{custom:!0}),removeEventListener("click",e(this,T)),removeEventListener("keydown",e(this,k)),setTimeout(()=>{this.classList.remove("triggered"),this.classList.remove("closing"),this.style.display="none",z.dispatchEvent(this,"popoverClosed",{custom:!0})},Q.getElementTransitionDurationMS(this)+10))},r(this,T,t=>{e(this,g).current&&P(this,u,N).call(this,()=>{var j;const c=t.composedPath();if(c.find(D=>D instanceof HTMLElement&&D.hasAttribute("data-popover-content")))return;const n=c[0],H=n instanceof HTMLElement&&(this.contains(n)||((j=this.shadowRoot)==null?void 0:j.contains(n))),E=n instanceof HTMLElement&&n.hasAttribute("data-outside");(!H||E)&&this.close()})}),r(this,k,t=>{e(this,m).current&&P(this,u,N).call(this,()=>{t.code==="Escape"&&this.close()})}),r(this,L,()=>{r(this,f,!1),e(this,l).current&&e(this,d).current&&!location.search.includes(this.id)?this.close():!e(this,l).current&&e(this,d).current&&location.search.includes(this.id)&&this.open(),r(this,f,!0)}),r(this,A,()=>{this.style.removeProperty("--content-width"),this.style.removeProperty("--content-height"),e(this,x).call(this)}),r(this,x,K.debounce(()=>{e(this,C).call(this)},20)),r(this,C,()=>{this.style.setProperty("--content-width",this.scrollWidth+"px"),this.style.setProperty("--content-height",this.scrollHeight+"px")})}get history(){return e(this,d)}get restore(){return e(this,v)}get dominance(){return e(this,p)}get clickOutside(){return e(this,g)}get escape(){return e(this,m)}get opened(){return e(this,l)}get lastTrigger(){return e(this,b)}connectedCallback(){e(this,d).observe(),e(this,v).observe(),e(this,p).observe(),e(this,g).observe(),e(this,m).observe(),this.style.opacity="0",this.style.display="none",this.setAttribute("popover-target",""),this.classList.remove("closing"),this.classList.remove("closed"),this.classList.remove("triggered"),this.classList.remove("opened"),addEventListener("popstate",e(this,L)),setTimeout(()=>{e(this,v).current?e(this,L).call(this):(P(this,u,B).call(this),r(this,f,!0))},0),W.windowResizer.subscribe(e(this,A))}disconnectedCallback(){W.windowResizer.unsubscribe(e(this,A)),e(this,d).unobserve(),e(this,v).unobserve(),e(this,p).unobserve(),e(this,g).unobserve(),e(this,m).unobserve(),this.style.opacity="",this.style.display="",this.removeAttribute("popover-target"),a.__opened=a.__opened.filter(t=>t!==this),clearTimeout(e(this,_)),removeEventListener("popstate",e(this,L)),this.style.removeProperty("--content-width"),this.style.removeProperty("--content-height")}};S=new WeakMap,l=new WeakMap,_=new WeakMap,d=new WeakMap,v=new WeakMap,p=new WeakMap,g=new WeakMap,m=new WeakMap,f=new WeakMap,b=new WeakMap,u=new WeakSet,F=function(){return`${location.pathname}${location.search?location.search+"&":"?"}${this.id}`},T=new WeakMap,B=function(){if(e(this,d).current){const t=new URL(location.href);t.searchParams.delete(this.id),history.replaceState(null,"",t.href)}},k=new WeakMap,N=function(t){(a.__opened[e(this,S)-1]||a.__opened.length===1||a.__opened.filter(c=>c!==this).every(c=>e(this,p).current>c.dominance.current))&&t()},L=new WeakMap,A=new WeakMap,x=new WeakMap,C=new WeakMap,a.__opened=[];let $=a;customElements.get("e-popover")||customElements.define("e-popover",$);var i,y,q,M,O,R;class G extends HTMLElement{constructor(){super();s(this,i);s(this,y,new w.CSSProperty(this,"--type","open"));s(this,q,()=>{this.classList.add("triggered")});s(this,M,()=>{this.classList.add("opened"),this.setAttribute("aria-expanded","true")});s(this,O,()=>{this.classList.remove("opened")});s(this,R,()=>{this.classList.remove("triggered"),this.setAttribute("aria-expanded","false")});V.isBrowser&&(this.addEventListener("click",()=>{if(e(this,i)){const t=e(this,y).current;t==="open"||t==="toggle"&&!e(this,i).opened.current?e(this,i).open({trigger:this}):(t==="close"||t==="toggle"&&e(this,i).opened.current)&&e(this,i).close()}}),this.addEventListener("keydown",t=>{t.code==="Space"&&t.currentTarget.click()}))}get type(){return e(this,y)}get popoverElement(){return e(this,i)}connectedCallback(){var c;e(this,y).subscribe(n=>{e(this,i)&&(n.current!=="close"?(this.setAttribute("aria-has-popup","true"),this.setAttribute("aria-expanded",e(this,i).opened.current?"true":"false"),this.setAttribute("aria-controls",e(this,i).id||"")):(this.removeAttribute("aria-has-popup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls")))}),this.hasAttribute("tabindex")||(this.tabIndex=0);const t=this.getAttribute("target");if(t){let n=null;if(t==="parent"){const H=this.closest("[popover-target]");if(H)n=H;else{const E=this.getRootNode();E instanceof ShadowRoot?n=E.host.closest("[popover-target]"):E instanceof HTMLElement&&(n=E.closest("[popover-target]"))}}else t==="sibling"?n=(c=this.parentElement)==null?void 0:c.querySelector("[popover-target]"):n=document.querySelector(`#${t}`)||this.getRootNode().querySelector(`#${t}`);n instanceof HTMLElement?(r(this,i,n),e(this,i).addEventListener("popoverTriggered",e(this,q)),e(this,i).addEventListener("popoverOpened",e(this,M)),e(this,i).addEventListener("popoverClosing",e(this,O)),e(this,i).addEventListener("popoverClosed",e(this,R))):console.warn(this,`target ${t} not found`)}e(this,y).observe()}disconnectedCallback(){e(this,y).unobserve(),this.removeAttribute("aria-has-popup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls"),e(this,i)&&(e(this,i).removeEventListener("popoverTriggered",e(this,q)),e(this,i).removeEventListener("popoverOpened",e(this,M)),e(this,i).removeEventListener("popoverClosing",e(this,O)),e(this,i).removeEventListener("popoverClosed",e(this,R)))}}i=new WeakMap,y=new WeakMap,q=new WeakMap,M=new WeakMap,O=new WeakMap,R=new WeakMap;customElements.get("e-popover-button")||customElements.define("e-popover-button",G);exports.PopoverButtonElement=G;exports.PopoverElement=$;
|
package/lib/popover/index.js
CHANGED
|
@@ -1,82 +1,84 @@
|
|
|
1
|
-
var
|
|
1
|
+
var W = (o) => {
|
|
2
2
|
throw TypeError(o);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var e = (o,
|
|
6
|
-
import {
|
|
7
|
-
import { S as
|
|
8
|
-
import { d as
|
|
9
|
-
import { d as
|
|
10
|
-
import { g as
|
|
11
|
-
import { windowResizer as
|
|
12
|
-
import { i as
|
|
13
|
-
var
|
|
4
|
+
var I = (o, h, t) => h.has(o) || W("Cannot " + t);
|
|
5
|
+
var e = (o, h, t) => (I(o, h, "read from private field"), t ? t.call(o) : h.get(o)), s = (o, h, t) => h.has(o) ? W("Cannot add the same private member more than once") : h instanceof WeakSet ? h.add(o) : h.set(o, t), r = (o, h, t, a) => (I(o, h, "write to private field"), a ? a.call(o, t) : h.set(o, t), t), C = (o, h, t) => (I(o, h, "access private method"), t);
|
|
6
|
+
import { CSSProperty as T } from "../css-property/index.js";
|
|
7
|
+
import { S as G } from "../Store-OTdcl6SX.js";
|
|
8
|
+
import { d as z } from "../events-CsVF98U6.js";
|
|
9
|
+
import { d as J } from "../function-C10DGppn.js";
|
|
10
|
+
import { g as K } from "../style-j2TwriJ_.js";
|
|
11
|
+
import { windowResizer as j } from "../window-resizer/vanilla/index.js";
|
|
12
|
+
import { i as Q } from "../browser-0zX67oeU.js";
|
|
13
|
+
var w, l, _, d, v, p, m, g, f, y, u, F, k, N, A, B, L, S, P, x;
|
|
14
14
|
const c = class c extends HTMLElement {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
|
-
s(this, p);
|
|
18
|
-
s(this, y);
|
|
19
|
-
s(this, a);
|
|
20
|
-
s(this, C);
|
|
21
|
-
s(this, d);
|
|
22
17
|
s(this, u);
|
|
23
|
-
s(this,
|
|
24
|
-
s(this,
|
|
18
|
+
s(this, w);
|
|
19
|
+
s(this, l);
|
|
20
|
+
s(this, _);
|
|
21
|
+
s(this, d);
|
|
25
22
|
s(this, v);
|
|
26
|
-
s(this,
|
|
27
|
-
s(this,
|
|
23
|
+
s(this, p);
|
|
24
|
+
s(this, m);
|
|
25
|
+
s(this, g);
|
|
28
26
|
s(this, f);
|
|
29
|
-
s(this,
|
|
27
|
+
s(this, y);
|
|
28
|
+
s(this, k);
|
|
29
|
+
s(this, A);
|
|
30
|
+
s(this, L);
|
|
30
31
|
s(this, S);
|
|
31
|
-
s(this,
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
s(this, P);
|
|
33
|
+
s(this, x);
|
|
34
|
+
r(this, w, -1), r(this, l, new G(!1)), r(this, d, new T(this, "--history", !1)), r(this, v, new T(this, "--restore", !1)), r(this, p, new T(this, "--dominance", 0)), r(this, m, new T(this, "--click-outside", !1)), r(this, g, new T(this, "--escape", !1)), r(this, f, !1), this.open = (t) => {
|
|
35
|
+
if (e(this, l).current)
|
|
34
36
|
return;
|
|
35
|
-
|
|
37
|
+
r(this, y, t == null ? void 0 : t.trigger), e(this, l).current = !0, e(this, p).current && (c.__opened = c.__opened.filter((n) => this.dominance.current >= n.dominance.current ? (n.close(), !1) : !0)), c.__opened.push(this), r(this, w, c.__opened.length - 1), e(this, d).current && e(this, f) && history.pushState("", "", e(this, u, F)), clearTimeout(e(this, _)), this.classList.remove("closing"), this.classList.add("triggered"), this.style.display = "block", z(this, "popoverTriggered", {
|
|
36
38
|
custom: !0,
|
|
37
39
|
detail: {
|
|
38
|
-
trigger: e(this,
|
|
40
|
+
trigger: e(this, y)
|
|
39
41
|
}
|
|
40
42
|
});
|
|
41
|
-
const
|
|
42
|
-
addEventListener("click", e(this,
|
|
43
|
+
const a = () => {
|
|
44
|
+
addEventListener("click", e(this, k)), addEventListener("keydown", e(this, A)), e(this, x).call(this), this.style.opacity = "1", this.classList.add("opened"), z(this, "popoverOpened", {
|
|
43
45
|
custom: !0,
|
|
44
46
|
detail: {
|
|
45
|
-
trigger: e(this,
|
|
47
|
+
trigger: e(this, y)
|
|
46
48
|
}
|
|
47
49
|
});
|
|
48
50
|
};
|
|
49
|
-
t != null && t.skipTransition ?
|
|
51
|
+
t != null && t.skipTransition ? a() : setTimeout(a, 10);
|
|
50
52
|
}, this.close = () => {
|
|
51
|
-
e(this,
|
|
53
|
+
e(this, l).current && (e(this, l).current = !1, c.__opened = c.__opened.filter((t) => t === this ? !1 : e(t, p).current < this.dominance.current ? (t.close(), !1) : !0), C(this, u, N).call(this), this.classList.remove("opened"), this.classList.add("closing"), this.style.opacity = "0", z(this, "popoverClosing", {
|
|
52
54
|
custom: !0
|
|
53
|
-
}), removeEventListener("click", e(this,
|
|
54
|
-
this.classList.remove("triggered"), this.classList.remove("closing"), this.style.display = "none",
|
|
55
|
+
}), removeEventListener("click", e(this, k)), removeEventListener("keydown", e(this, A)), setTimeout(() => {
|
|
56
|
+
this.classList.remove("triggered"), this.classList.remove("closing"), this.style.display = "none", z(this, "popoverClosed", {
|
|
55
57
|
custom: !0
|
|
56
58
|
});
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
var
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
(
|
|
59
|
+
}, K(this) + 10));
|
|
60
|
+
}, r(this, k, (t) => {
|
|
61
|
+
e(this, m).current && C(this, u, B).call(this, () => {
|
|
62
|
+
var D;
|
|
63
|
+
const a = t.composedPath();
|
|
64
|
+
if (a.find(
|
|
65
|
+
(U) => U instanceof HTMLElement && U.hasAttribute("data-popover-content")
|
|
64
66
|
))
|
|
65
67
|
return;
|
|
66
|
-
const
|
|
67
|
-
(
|
|
68
|
+
const n = a[0], $ = n instanceof HTMLElement && (this.contains(n) || ((D = this.shadowRoot) == null ? void 0 : D.contains(n))), E = n instanceof HTMLElement && n.hasAttribute("data-outside");
|
|
69
|
+
(!$ || E) && this.close();
|
|
68
70
|
});
|
|
69
|
-
}),
|
|
70
|
-
|
|
71
|
+
}), r(this, A, (t) => {
|
|
72
|
+
e(this, g).current && C(this, u, B).call(this, () => {
|
|
71
73
|
t.code === "Escape" && this.close();
|
|
72
74
|
});
|
|
73
|
-
}),
|
|
74
|
-
|
|
75
|
-
}),
|
|
76
|
-
this.style.removeProperty("--content-width"), this.style.removeProperty("--content-height"), e(this,
|
|
77
|
-
}),
|
|
78
|
-
e(this,
|
|
79
|
-
}, 20)),
|
|
75
|
+
}), r(this, L, () => {
|
|
76
|
+
r(this, f, !1), e(this, l).current && e(this, d).current && !location.search.includes(this.id) ? this.close() : !e(this, l).current && e(this, d).current && location.search.includes(this.id) && this.open(), r(this, f, !0);
|
|
77
|
+
}), r(this, S, () => {
|
|
78
|
+
this.style.removeProperty("--content-width"), this.style.removeProperty("--content-height"), e(this, P).call(this);
|
|
79
|
+
}), r(this, P, J(() => {
|
|
80
|
+
e(this, x).call(this);
|
|
81
|
+
}, 20)), r(this, x, () => {
|
|
80
82
|
this.style.setProperty("--content-width", this.scrollWidth + "px"), this.style.setProperty("--content-height", this.scrollHeight + "px");
|
|
81
83
|
});
|
|
82
84
|
}
|
|
@@ -84,116 +86,132 @@ const c = class c extends HTMLElement {
|
|
|
84
86
|
return e(this, d);
|
|
85
87
|
}
|
|
86
88
|
get restore() {
|
|
87
|
-
return e(this,
|
|
89
|
+
return e(this, v);
|
|
88
90
|
}
|
|
89
91
|
get dominance() {
|
|
92
|
+
return e(this, p);
|
|
93
|
+
}
|
|
94
|
+
get clickOutside() {
|
|
95
|
+
return e(this, m);
|
|
96
|
+
}
|
|
97
|
+
get escape() {
|
|
90
98
|
return e(this, g);
|
|
91
99
|
}
|
|
92
100
|
get opened() {
|
|
93
|
-
return e(this,
|
|
101
|
+
return e(this, l);
|
|
94
102
|
}
|
|
95
103
|
get lastTrigger() {
|
|
96
|
-
return e(this,
|
|
104
|
+
return e(this, y);
|
|
97
105
|
}
|
|
98
106
|
connectedCallback() {
|
|
99
|
-
e(this, d).observe(), e(this,
|
|
100
|
-
e(this,
|
|
101
|
-
}, 0),
|
|
107
|
+
e(this, d).observe(), e(this, v).observe(), e(this, p).observe(), e(this, m).observe(), e(this, g).observe(), this.style.opacity = "0", this.style.display = "none", this.setAttribute("popover-target", ""), this.classList.remove("closing"), this.classList.remove("closed"), this.classList.remove("triggered"), this.classList.remove("opened"), addEventListener("popstate", e(this, L)), setTimeout(() => {
|
|
108
|
+
e(this, v).current ? e(this, L).call(this) : (C(this, u, N).call(this), r(this, f, !0));
|
|
109
|
+
}, 0), j.subscribe(e(this, S));
|
|
102
110
|
}
|
|
103
111
|
disconnectedCallback() {
|
|
104
|
-
|
|
112
|
+
j.unsubscribe(e(this, S)), e(this, d).unobserve(), e(this, v).unobserve(), e(this, p).unobserve(), e(this, m).unobserve(), e(this, g).unobserve(), this.style.opacity = "", this.style.display = "", this.removeAttribute("popover-target"), c.__opened = c.__opened.filter((t) => t !== this), clearTimeout(e(this, _)), removeEventListener("popstate", e(this, L)), this.style.removeProperty("--content-width"), this.style.removeProperty("--content-height");
|
|
105
113
|
}
|
|
106
114
|
};
|
|
107
|
-
|
|
115
|
+
w = new WeakMap(), l = new WeakMap(), _ = new WeakMap(), d = new WeakMap(), v = new WeakMap(), p = new WeakMap(), m = new WeakMap(), g = new WeakMap(), f = new WeakMap(), y = new WeakMap(), u = new WeakSet(), F = function() {
|
|
108
116
|
return `${location.pathname}${location.search ? location.search + "&" : "?"}${this.id}`;
|
|
109
|
-
},
|
|
117
|
+
}, k = new WeakMap(), N = function() {
|
|
110
118
|
if (e(this, d).current) {
|
|
111
119
|
const t = new URL(location.href);
|
|
112
120
|
t.searchParams.delete(this.id), history.replaceState(null, "", t.href);
|
|
113
121
|
}
|
|
114
|
-
},
|
|
115
|
-
(c.__opened[e(this,
|
|
116
|
-
},
|
|
117
|
-
let
|
|
118
|
-
customElements.get("e-popover") || customElements.define("e-popover",
|
|
119
|
-
var
|
|
120
|
-
class
|
|
122
|
+
}, A = new WeakMap(), B = function(t) {
|
|
123
|
+
(c.__opened[e(this, w) - 1] || c.__opened.length === 1 || c.__opened.filter((a) => a !== this).every((a) => e(this, p).current > a.dominance.current)) && t();
|
|
124
|
+
}, L = new WeakMap(), S = new WeakMap(), P = new WeakMap(), x = new WeakMap(), c.__opened = [];
|
|
125
|
+
let q = c;
|
|
126
|
+
customElements.get("e-popover") || customElements.define("e-popover", q);
|
|
127
|
+
var i, b, H, M, O, R;
|
|
128
|
+
class V extends HTMLElement {
|
|
121
129
|
constructor() {
|
|
122
130
|
super();
|
|
123
|
-
s(this,
|
|
124
|
-
s(this,
|
|
131
|
+
s(this, i);
|
|
132
|
+
s(this, b, new T(this, "--type", "open"));
|
|
133
|
+
s(this, H, () => {
|
|
125
134
|
this.classList.add("triggered");
|
|
126
135
|
});
|
|
127
|
-
s(this,
|
|
128
|
-
this.classList.add("opened");
|
|
136
|
+
s(this, M, () => {
|
|
137
|
+
this.classList.add("opened"), this.setAttribute("aria-expanded", "true");
|
|
129
138
|
});
|
|
130
|
-
s(this,
|
|
139
|
+
s(this, O, () => {
|
|
131
140
|
this.classList.remove("opened");
|
|
132
141
|
});
|
|
133
|
-
s(this,
|
|
134
|
-
this.classList.remove("triggered");
|
|
142
|
+
s(this, R, () => {
|
|
143
|
+
this.classList.remove("triggered"), this.setAttribute("aria-expanded", "false");
|
|
135
144
|
});
|
|
136
|
-
|
|
137
|
-
if (e(this,
|
|
138
|
-
const t = this.
|
|
139
|
-
t === "open" || t === "toggle" && !e(this,
|
|
145
|
+
Q && (this.addEventListener("click", () => {
|
|
146
|
+
if (e(this, i)) {
|
|
147
|
+
const t = e(this, b).current;
|
|
148
|
+
t === "open" || t === "toggle" && !e(this, i).opened.current ? e(this, i).open({ trigger: this }) : (t === "close" || t === "toggle" && e(this, i).opened.current) && e(this, i).close();
|
|
140
149
|
}
|
|
141
150
|
}), this.addEventListener("keydown", (t) => {
|
|
142
151
|
t.code === "Space" && t.currentTarget.click();
|
|
143
152
|
}));
|
|
144
153
|
}
|
|
154
|
+
get type() {
|
|
155
|
+
return e(this, b);
|
|
156
|
+
}
|
|
145
157
|
get popoverElement() {
|
|
146
|
-
return e(this,
|
|
158
|
+
return e(this, i);
|
|
147
159
|
}
|
|
148
160
|
connectedCallback() {
|
|
149
|
-
var
|
|
150
|
-
this.
|
|
161
|
+
var a;
|
|
162
|
+
e(this, b).subscribe((n) => {
|
|
163
|
+
e(this, i) && (n.current !== "close" ? (this.setAttribute("aria-has-popup", "true"), this.setAttribute(
|
|
164
|
+
"aria-expanded",
|
|
165
|
+
e(this, i).opened.current ? "true" : "false"
|
|
166
|
+
), this.setAttribute("aria-controls", e(this, i).id || "")) : (this.removeAttribute("aria-has-popup"), this.removeAttribute("aria-expanded"), this.removeAttribute("aria-controls")));
|
|
167
|
+
}), this.hasAttribute("tabindex") || (this.tabIndex = 0);
|
|
151
168
|
const t = this.getAttribute("target");
|
|
152
169
|
if (t) {
|
|
153
|
-
let
|
|
170
|
+
let n = null;
|
|
154
171
|
if (t === "parent") {
|
|
155
|
-
const
|
|
156
|
-
if (
|
|
157
|
-
|
|
172
|
+
const $ = this.closest("[popover-target]");
|
|
173
|
+
if ($)
|
|
174
|
+
n = $;
|
|
158
175
|
else {
|
|
159
|
-
const
|
|
160
|
-
|
|
176
|
+
const E = this.getRootNode();
|
|
177
|
+
E instanceof ShadowRoot ? n = E.host.closest("[popover-target]") : E instanceof HTMLElement && (n = E.closest("[popover-target]"));
|
|
161
178
|
}
|
|
162
|
-
} else t === "sibling" ?
|
|
163
|
-
|
|
179
|
+
} else t === "sibling" ? n = (a = this.parentElement) == null ? void 0 : a.querySelector("[popover-target]") : n = document.querySelector(`#${t}`) || this.getRootNode().querySelector(`#${t}`);
|
|
180
|
+
n instanceof HTMLElement ? (r(this, i, n), e(this, i).addEventListener(
|
|
164
181
|
"popoverTriggered",
|
|
165
|
-
e(this,
|
|
166
|
-
), e(this,
|
|
182
|
+
e(this, H)
|
|
183
|
+
), e(this, i).addEventListener(
|
|
167
184
|
"popoverOpened",
|
|
168
|
-
e(this,
|
|
169
|
-
), e(this,
|
|
185
|
+
e(this, M)
|
|
186
|
+
), e(this, i).addEventListener(
|
|
170
187
|
"popoverClosing",
|
|
171
|
-
e(this,
|
|
172
|
-
), e(this,
|
|
188
|
+
e(this, O)
|
|
189
|
+
), e(this, i).addEventListener(
|
|
173
190
|
"popoverClosed",
|
|
174
|
-
e(this,
|
|
191
|
+
e(this, R)
|
|
175
192
|
)) : console.warn(this, `target ${t} not found`);
|
|
176
193
|
}
|
|
194
|
+
e(this, b).observe();
|
|
177
195
|
}
|
|
178
196
|
disconnectedCallback() {
|
|
179
|
-
e(this,
|
|
197
|
+
e(this, b).unobserve(), this.removeAttribute("aria-has-popup"), this.removeAttribute("aria-expanded"), this.removeAttribute("aria-controls"), e(this, i) && (e(this, i).removeEventListener(
|
|
180
198
|
"popoverTriggered",
|
|
181
|
-
e(this,
|
|
182
|
-
), e(this,
|
|
199
|
+
e(this, H)
|
|
200
|
+
), e(this, i).removeEventListener(
|
|
183
201
|
"popoverOpened",
|
|
184
|
-
e(this,
|
|
185
|
-
), e(this,
|
|
202
|
+
e(this, M)
|
|
203
|
+
), e(this, i).removeEventListener(
|
|
186
204
|
"popoverClosing",
|
|
187
|
-
e(this,
|
|
188
|
-
), e(this,
|
|
205
|
+
e(this, O)
|
|
206
|
+
), e(this, i).removeEventListener(
|
|
189
207
|
"popoverClosed",
|
|
190
|
-
e(this,
|
|
208
|
+
e(this, R)
|
|
191
209
|
));
|
|
192
210
|
}
|
|
193
211
|
}
|
|
194
|
-
|
|
195
|
-
customElements.get("e-popover-button") || customElements.define("e-popover-button",
|
|
212
|
+
i = new WeakMap(), b = new WeakMap(), H = new WeakMap(), M = new WeakMap(), O = new WeakMap(), R = new WeakMap();
|
|
213
|
+
customElements.get("e-popover-button") || customElements.define("e-popover-button", V);
|
|
196
214
|
export {
|
|
197
|
-
|
|
198
|
-
|
|
215
|
+
V as PopoverButtonElement,
|
|
216
|
+
q as PopoverElement
|
|
199
217
|
};
|