aptechka 0.59.0 → 0.59.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/lib/popover/index.cjs +1 -1
- package/lib/popover/index.js +203 -195
- package/package.json +1 -1
package/lib/popover/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _=c=>{throw TypeError(c)};var Q=(c,r,t)=>r.has(c)||_("Cannot "+t);var e=(c,r,t)=>(Q(c,r,"read from private field"),t?t.call(c):r.get(c)),i=(c,r,t)=>r.has(c)?_("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(c):r.set(c,t),n=(c,r,t,s)=>(Q(c,r,"write to private field"),s?s.call(c,t):r.set(c,t),t),E=(c,r,t)=>(Q(c,r,"access private method"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const oe=require("../element-linked-store/index.cjs"),b=require("../css-property/index.cjs"),Z=require("../index-Cqw2NKev.cjs"),F=require("../events-KVanG9sR.cjs"),ne=require("../function-MthRj-GJ.cjs"),ee=require("../style-At6aDoqG.cjs"),te=require("../url-D1CgmwZ_.cjs"),se=require("../window-resizer/index.cjs");var u,m,J,K;class he{constructor(){i(this,u,new Map);i(this,m,[]);i(this,J,r=>{var s;const t=[...e(this,m)].reverse().find(o=>o.clickOutside.current);if(t){const o=r.composedPath();if(o.find(N=>N instanceof HTMLElement&&N.hasAttribute("data-popover-content")))return;const a=o[0],p=a instanceof Node&&(t.contains(a)||((s=t.shadowRoot)==null?void 0:s.contains(a))),z=a instanceof HTMLElement&&a.hasAttribute("data-outside");(!p||z)&&t.close()}});i(this,K,r=>{if(r.code==="Escape"){const t=[...e(this,m)].reverse().find(s=>s.escape.current);t&&t.close()}});addEventListener("click",e(this,J)),addEventListener("keydown",e(this,K))}get groups(){return e(this,u)}get stack(){return e(this,m)}add(r,t){if(t.closeRest.current)e(this,u).forEach(o=>{o.forEach(a=>{a.close()})});else if(t.closeRestInGroup.current){let o=e(this,u).get(r);o==null||o.forEach(a=>{a.close()})}let s=e(this,u).get(r);s!=null&&s.length||(s=[],e(this,u).set(r,s)),e(this,m).push(t),s.push(t)}remove(r,t){if(n(this,m,e(this,m).filter(s=>s!==t)),t.closeRest.current){let s=[];e(this,u).forEach(o=>{o.forEach(a=>s.push(a))}),e(this,u).clear(),s.forEach(o=>o.close())}else if(t.closeRestInGroup.current){const s=e(this,u).get(r);e(this,u).delete(r),s==null||s.forEach(o=>{o.close()})}else{let s=e(this,u).get(r);s&&(s=s.filter(o=>o!==t),e(this,u).set(r,s))}}}u=new WeakMap,m=new WeakMap,J=new WeakMap,K=new WeakMap;var f,$,M,P,O,g,L,k,C,v,A,R,T,x,l,S,ie,I,q,V,B,H;const y=class y extends HTMLElement{constructor(){super();i(this,S);i(this,f);i(this,$);i(this,M);i(this,P);i(this,O);i(this,g);i(this,L);i(this,k);i(this,C);i(this,v);i(this,A);i(this,R);i(this,T);i(this,x);i(this,l);i(this,q);i(this,V);i(this,B);i(this,H);this.urlValue="",n(this,f,!1),n(this,g,new b.CSSProperty(this,"--history",!1)),n(this,L,new b.CSSProperty(this,"--restore",!1)),n(this,k,new b.CSSProperty(this,"--close-rest",!1)),n(this,C,new b.CSSProperty(this,"--close-rest-in-group",!1)),n(this,v,new b.CSSProperty(this,"--group","")),n(this,A,new b.CSSProperty(this,"--click-outside",!1)),n(this,R,new b.CSSProperty(this,"--escape",!1)),n(this,T,!1),n(this,l,new oe.ElementLinkedStore(this,{opened:!1,closing:!1,triggered:!1,transitionend:!1})),n(this,q,()=>{n(this,T,!1),e(this,f)&&e(this,g).current&&!location.search.includes(this.id)?this.close():!e(this,f)&&e(this,g).current&&location.search.includes(this.id)&&this.open({trigger:this.idWithValue}),n(this,T,!0)}),n(this,V,()=>{this.style.setProperty("--content-width","initial"),this.style.setProperty("--content-height","initial"),e(this,B).call(this)}),n(this,B,ne.debounce(()=>{e(this,H).call(this)},10)),n(this,H,()=>{this.style.setProperty("--content-width",this.scrollWidth+"px"),this.style.setProperty("--content-height",this.scrollHeight+"px")}),e(this,v).subscribe(t=>{t.previous&&(y.stack.remove(t.previous,this),t.current||(document.documentElement.classList.remove(`${this.group.previous}-closing`),document.documentElement.classList.remove(`${this.group.previous}-opened`)))}),e(this,l).subscribe(t=>{if(this.group.current){document.documentElement.classList.toggle(`${this.group.current}-closing`,t.current.closing);const s=y.stack.groups.get(this.group.current),o=s==null?void 0:s.find(a=>a.opened);document.documentElement.classList.toggle(`${this.group.current}-opened`,!!o)}})}get history(){return e(this,g)}get restore(){return e(this,L)}get closeRest(){return e(this,k)}get closeRestInGroup(){return e(this,C)}get group(){return e(this,v)}get clickOutside(){return e(this,A)}get escape(){return e(this,R)}get opened(){return e(this,f)}get lastTrigger(){return e(this,x)}get idWithValue(){return`${this.id}${this.urlValue?"="+this.urlValue:""}`}updateUrlValue(t){this.urlValue=(t==null?void 0:t.toString())||"",e(this,f)&&te.updateSearchParameter(this.id,t)}open(t){if(e(this,f))return;n(this,x,t==null?void 0:t.trigger),clearTimeout(e(this,$)),clearTimeout(e(this,M)),e(this,l).set("closing",!1),e(this,l).set("triggered",!0),F.dispatchEvent(this,"popoverTriggered",{custom:!0,detail:{trigger:e(this,x)}}),e(this,g).current&&e(this,T)&&history.pushState(history.state,"",e(this,S,ie)),n(this,f,!0);const s=()=>{y.stack.add(e(this,v).current,this),e(this,H).call(this),e(this,l).set("opened",!0),F.dispatchEvent(this,"popoverOpened",{custom:!0,detail:{trigger:e(this,x)}}),n(this,P,void 0),n(this,O,setTimeout(()=>{e(this,l).set("transitionend",!0)},ee.getElementTransitionDurationMS(this)+10))};t!=null&&t.skipTransition?s():n(this,P,setTimeout(s,10))}close(){e(this,f)&&(clearTimeout(e(this,P)),clearTimeout(e(this,O)),y.stack.remove(e(this,v).current,this),n(this,f,!1),E(this,S,I).call(this),e(this,l).set("transitionend",!1),n(this,$,setTimeout(()=>{e(this,l).set("opened",!1),e(this,l).set("closing",!0),F.dispatchEvent(this,"popoverClosing",{custom:!0}),n(this,M,setTimeout(()=>{e(this,l).set("triggered",!1),e(this,l).set("closing",!1),F.dispatchEvent(this,"popoverClosed",{custom:!0})},ee.getElementTransitionDurationMS(this)+10))},10)))}connectedCallback(){e(this,g).observe(),e(this,L).observe(),e(this,k).observe(),e(this,C).observe(),e(this,v).observe(),e(this,A).observe(),e(this,R).observe(),this.setAttribute("role","dialog"),addEventListener("popstate",e(this,q)),setTimeout(()=>{e(this,L).current?(this.urlValue=te.parseSearchParameters(location.search)[this.id],e(this,q).call(this)):(E(this,S,I).call(this),n(this,T,!0))},0),se.windowResizer.subscribe(e(this,V))}disconnectedCallback(){y.stack.remove(e(this,v).current,this),se.windowResizer.unsubscribe(e(this,V)),e(this,l).close(),e(this,g).close(),e(this,L).close(),e(this,k).close(),e(this,C).close(),e(this,v).close(),e(this,A).close(),e(this,R).close(),this.removeAttribute("role"),clearTimeout(e(this,$)),clearTimeout(e(this,M)),clearTimeout(e(this,P)),clearTimeout(e(this,O)),removeEventListener("popstate",e(this,q)),this.style.removeProperty("--content-width"),this.style.removeProperty("--content-height"),E(this,S,I).call(this)}};f=new WeakMap,$=new WeakMap,M=new WeakMap,P=new WeakMap,O=new WeakMap,g=new WeakMap,L=new WeakMap,k=new WeakMap,C=new WeakMap,v=new WeakMap,A=new WeakMap,R=new WeakMap,T=new WeakMap,x=new WeakMap,l=new WeakMap,S=new WeakSet,ie=function(){return`${location.pathname}${location.search?location.search+"&":"?"}${this.idWithValue}`},I=function(){if(e(this,g).current){const t=new URL(location.href);t.searchParams.delete(this.id),history.replaceState(history.state,"",t.href)}},q=new WeakMap,V=new WeakMap,B=new WeakMap,H=new WeakMap,y.stack=new he;let W=y;Z.isBrowser&&!customElements.get("e-popover")&&customElements.define("e-popover",W);var h,d,w,X,G,D,U,j,Y;class re extends HTMLElement{constructor(){super();i(this,w);i(this,h);i(this,d,new b.CSSProperty(this,"--type","open"));i(this,G,()=>{e(this,d).current!=="close"&&this.classList.add("triggered")});i(this,D,()=>{e(this,d).current!=="close"&&(this.classList.add("opened"),this.setAttribute("aria-expanded","true"))});i(this,U,()=>{e(this,d).current!=="close"&&this.classList.remove("opened")});i(this,j,()=>{e(this,d).current!=="close"&&(this.classList.remove("triggered"),this.setAttribute("aria-expanded","false"))});Z.isBrowser&&(this.addEventListener("click",()=>{if(e(this,h)){const t=e(this,d).current;t==="open"||t==="toggle"&&!e(this,h).opened?e(this,h).open({trigger:this}):(t==="close"||t==="toggle"&&e(this,h).opened)&&e(this,h).close()}}),this.addEventListener("keydown",t=>{t.code==="Space"&&t.currentTarget.click()}))}get type(){return e(this,d)}get popoverElement(){return e(this,h)}changePopover(t){var s;if(E(this,w,X).call(this),t){let o=null;if(t==="parent"){const a=this.closest("[data-popover]");if(a)o=a;else{const p=this.getRootNode();p instanceof ShadowRoot?o=p.host.closest("[data-popover]"):p instanceof HTMLElement&&(o=p.closest("[data-popover]"))}}else if(t==="sibling")o=(s=this.parentElement)==null?void 0:s.querySelector("[data-popover]");else if(t==="ancestor-child"){const a=p=>{if(!p)return null;let z=p.querySelector("[data-popover]");return!z&&(p!=null&&p.parentElement)&&(z=a(p.parentElement)),z};o=a(this.parentElement)||null}else!t.startsWith(".")&&!t.startsWith("[")&&(t=`#${t}`),o=document.querySelector(t)||this.getRootNode().querySelector(t);o instanceof HTMLElement?(n(this,h,o),e(this,h).addEventListener("popoverTriggered",e(this,G)),e(this,h).addEventListener("popoverOpened",e(this,D)),e(this,h).addEventListener("popoverClosing",e(this,U)),e(this,h).addEventListener("popoverClosed",e(this,j))):console.warn(this,`target ${t} not found`)}E(this,w,Y).call(this,e(this,d).current)}connectedCallback(){e(this,d).subscribe(s=>{E(this,w,Y).call(this,s.current)}),this.hasAttribute("tabindex")||(this.tabIndex=0);const t=this.getAttribute("target");t&&this.changePopover(t),this.isConnected&&e(this,d).observe()}disconnectedCallback(){e(this,d).unobserve(),this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls"),E(this,w,X).call(this)}}h=new WeakMap,d=new WeakMap,w=new WeakSet,X=function(){e(this,h)&&(e(this,h).removeEventListener("popoverTriggered",e(this,G)),e(this,h).removeEventListener("popoverOpened",e(this,D)),e(this,h).removeEventListener("popoverClosing",e(this,U)),e(this,h).removeEventListener("popoverClosed",e(this,j)))},G=new WeakMap,D=new WeakMap,U=new WeakMap,j=new WeakMap,Y=function(t){e(this,h)instanceof W&&(t!=="close"?(this.setAttribute("aria-haspopup","true"),this.setAttribute("aria-expanded",e(this,h).opened?"true":"false"),this.setAttribute("aria-controls",e(this,h).id||"")):(this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls")))};Z.isBrowser&&!customElements.get("e-popover-button")&&customElements.define("e-popover-button",re);exports.PopoverButtonElement=re;exports.PopoverElement=W;
|
|
1
|
+
"use strict";var te=c=>{throw TypeError(c)};var Q=(c,o,t)=>o.has(c)||te("Cannot "+t);var e=(c,o,t)=>(Q(c,o,"read from private field"),t?t.call(c):o.get(c)),r=(c,o,t)=>o.has(c)?te("Cannot add the same private member more than once"):o instanceof WeakSet?o.add(c):o.set(c,t),n=(c,o,t,s)=>(Q(c,o,"write to private field"),s?s.call(c,t):o.set(c,t),t),b=(c,o,t)=>(Q(c,o,"access private method"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("../element-linked-store/index.cjs"),m=require("../css-property/index.cjs"),N=require("../index-Cqw2NKev.cjs"),Y=require("../events-KVanG9sR.cjs"),ce=require("../function-MthRj-GJ.cjs"),se=require("../style-At6aDoqG.cjs"),ie=require("../url-D1CgmwZ_.cjs"),re=require("../window-resizer/index.cjs"),F=require("../device/index.cjs");var u,y,J,K;class le{constructor(){r(this,u,new Map);r(this,y,[]);r(this,J,o=>{var s;const t=[...e(this,y)].reverse().find(i=>i.clickOutside.current);if(t){const i=o.composedPath();if(i.find(ee=>ee instanceof HTMLElement&&ee.hasAttribute("data-popover-content")))return;const l=i[0],p=l instanceof Node&&(t.contains(l)||((s=t.shadowRoot)==null?void 0:s.contains(l))),H=l instanceof HTMLElement&&l.hasAttribute("data-outside");(!p||H)&&t.close()}});r(this,K,o=>{if(o.code==="Escape"){const t=[...e(this,y)].reverse().find(s=>s.escape.current);t&&t.close()}});addEventListener("click",e(this,J)),addEventListener("keydown",e(this,K))}get groups(){return e(this,u)}get stack(){return e(this,y)}add(o,t){if(t.closeRest.current)e(this,u).forEach(i=>{i.forEach(l=>{l.close()})});else if(t.closeRestInGroup.current){let i=e(this,u).get(o);i==null||i.forEach(l=>{l.close()})}let s=e(this,u).get(o);s!=null&&s.length||(s=[],e(this,u).set(o,s)),e(this,y).push(t),s.push(t)}remove(o,t){if(n(this,y,e(this,y).filter(s=>s!==t)),t.closeRest.current){let s=[];e(this,u).forEach(i=>{i.forEach(l=>s.push(l))}),e(this,u).clear(),s.forEach(i=>i.close())}else if(t.closeRestInGroup.current){const s=e(this,u).get(o);e(this,u).delete(o),s==null||s.forEach(i=>{i.close()})}else{let s=e(this,u).get(o);s&&(s=s.filter(i=>i!==t),e(this,u).set(o,s))}}}u=new WeakMap,y=new WeakMap,J=new WeakMap,K=new WeakMap;var f,M,V,C,B,v,w,x,A,g,R,q,L,T,O,a,P,oe,I,$,S,W,G;const E=class E extends HTMLElement{constructor(){super();r(this,P);r(this,f);r(this,M);r(this,V);r(this,C);r(this,B);r(this,v);r(this,w);r(this,x);r(this,A);r(this,g);r(this,R);r(this,q);r(this,L);r(this,T);r(this,O);r(this,a);r(this,$);r(this,S);r(this,W);r(this,G);this.urlValue="",n(this,f,!1),n(this,v,new m.CSSProperty(this,"--history",!1)),n(this,w,new m.CSSProperty(this,"--restore",!1)),n(this,x,new m.CSSProperty(this,"--close-rest",!1)),n(this,A,new m.CSSProperty(this,"--close-rest-in-group",!1)),n(this,g,new m.CSSProperty(this,"--group","")),n(this,R,new m.CSSProperty(this,"--click-outside",!1)),n(this,q,new m.CSSProperty(this,"--escape",!1)),n(this,L,new m.CSSProperty(this,"--check-viewport-bounds",!1)),n(this,T,!1),n(this,a,new he.ElementLinkedStore(this,{opened:!1,closing:!1,triggered:!1,transitionend:!1})),n(this,$,()=>{n(this,T,!1),e(this,f)&&e(this,v).current&&!location.search.includes(this.id)?this.close():!e(this,f)&&e(this,v).current&&location.search.includes(this.id)&&this.open({trigger:this.idWithValue}),n(this,T,!0)}),n(this,S,()=>{this.style.setProperty("--content-width","initial"),this.style.setProperty("--content-height","initial"),this.style.setProperty("--viewport-offset-x","0px"),this.style.setProperty("--viewport-offset-y","0px"),e(this,W).call(this)}),n(this,W,ce.debounce(()=>{e(this,G).call(this)},10)),n(this,G,()=>{if(this.style.setProperty("--content-width",this.scrollWidth+"px"),this.style.setProperty("--content-height",this.scrollHeight+"px"),e(this,L).current){const t=this.getBoundingClientRect();let s=0,i=0;t.right>F.viewport.width?s=F.viewport.width-t.right:t.left<0&&(s=t.left*-1),t.bottom>F.viewport.height?i=F.viewport.height-t.bottom:t.top<0&&(i=t.top*-1),this.style.setProperty("--viewport-offset-x",s+"px"),this.style.setProperty("--viewport-offset-y",i+"px")}}),e(this,g).subscribe(t=>{t.previous&&(E.stack.remove(t.previous,this),t.current||(document.documentElement.classList.remove(`${this.group.previous}-closing`),document.documentElement.classList.remove(`${this.group.previous}-opened`)))}),e(this,a).subscribe(t=>{if(this.group.current){document.documentElement.classList.toggle(`${this.group.current}-closing`,t.current.closing);const s=E.stack.groups.get(this.group.current),i=s==null?void 0:s.find(l=>l.opened);document.documentElement.classList.toggle(`${this.group.current}-opened`,!!i)}})}get history(){return e(this,v)}get restore(){return e(this,w)}get closeRest(){return e(this,x)}get closeRestInGroup(){return e(this,A)}get group(){return e(this,g)}get clickOutside(){return e(this,R)}get escape(){return e(this,q)}get opened(){return e(this,f)}get lastTrigger(){return e(this,O)}get idWithValue(){return`${this.id}${this.urlValue?"="+this.urlValue:""}`}updateUrlValue(t){this.urlValue=(t==null?void 0:t.toString())||"",e(this,f)&&ie.updateSearchParameter(this.id,t)}open(t){if(e(this,f))return;n(this,O,t==null?void 0:t.trigger),clearTimeout(e(this,M)),clearTimeout(e(this,V)),e(this,a).set("closing",!1),e(this,a).set("triggered",!0),Y.dispatchEvent(this,"popoverTriggered",{custom:!0,detail:{trigger:e(this,O)}}),e(this,v).current&&e(this,T)&&history.pushState(history.state,"",e(this,P,oe)),n(this,f,!0);const s=()=>{E.stack.add(e(this,g).current,this),e(this,S).call(this),e(this,a).set("opened",!0),Y.dispatchEvent(this,"popoverOpened",{custom:!0,detail:{trigger:e(this,O)}}),n(this,C,void 0),n(this,B,setTimeout(()=>{e(this,a).set("transitionend",!0)},se.getElementTransitionDurationMS(this)+10))};t!=null&&t.skipTransition?s():n(this,C,setTimeout(s,10))}close(){e(this,f)&&(clearTimeout(e(this,C)),clearTimeout(e(this,B)),E.stack.remove(e(this,g).current,this),n(this,f,!1),b(this,P,I).call(this),e(this,a).set("transitionend",!1),n(this,M,setTimeout(()=>{e(this,a).set("opened",!1),e(this,a).set("closing",!0),Y.dispatchEvent(this,"popoverClosing",{custom:!0}),n(this,V,setTimeout(()=>{e(this,a).set("triggered",!1),e(this,a).set("closing",!1),Y.dispatchEvent(this,"popoverClosed",{custom:!0})},se.getElementTransitionDurationMS(this)+10))},10)))}connectedCallback(){e(this,v).observe(),e(this,w).observe(),e(this,x).observe(),e(this,A).observe(),e(this,g).observe(),e(this,R).observe(),e(this,q).observe(),e(this,L).observe(),this.setAttribute("role","dialog"),addEventListener("popstate",e(this,$)),setTimeout(()=>{e(this,w).current?(this.urlValue=ie.parseSearchParameters(location.search)[this.id],e(this,$).call(this)):(b(this,P,I).call(this),n(this,T,!0))},0),e(this,L).subscribe(()=>{e(this,S).call(this)}),re.windowResizer.subscribe(e(this,S))}disconnectedCallback(){E.stack.remove(e(this,g).current,this),re.windowResizer.unsubscribe(e(this,S)),e(this,a).close(),e(this,v).close(),e(this,w).close(),e(this,x).close(),e(this,A).close(),e(this,g).close(),e(this,R).close(),e(this,q).close(),e(this,L).close(),this.removeAttribute("role"),clearTimeout(e(this,M)),clearTimeout(e(this,V)),clearTimeout(e(this,C)),clearTimeout(e(this,B)),removeEventListener("popstate",e(this,$)),this.style.removeProperty("--content-width"),this.style.removeProperty("--content-height"),this.style.removeProperty("--viewport-offset-x"),this.style.removeProperty("--viewport-offset-y"),b(this,P,I).call(this)}};f=new WeakMap,M=new WeakMap,V=new WeakMap,C=new WeakMap,B=new WeakMap,v=new WeakMap,w=new WeakMap,x=new WeakMap,A=new WeakMap,g=new WeakMap,R=new WeakMap,q=new WeakMap,L=new WeakMap,T=new WeakMap,O=new WeakMap,a=new WeakMap,P=new WeakSet,oe=function(){return`${location.pathname}${location.search?location.search+"&":"?"}${this.idWithValue}`},I=function(){if(e(this,v).current){const t=new URL(location.href);t.searchParams.delete(this.id),history.replaceState(history.state,"",t.href)}},$=new WeakMap,S=new WeakMap,W=new WeakMap,G=new WeakMap,E.stack=new le;let z=E;N.isBrowser&&!customElements.get("e-popover")&&customElements.define("e-popover",z);var h,d,k,Z,D,U,j,X,_;class ne extends HTMLElement{constructor(){super();r(this,k);r(this,h);r(this,d,new m.CSSProperty(this,"--type","open"));r(this,D,()=>{e(this,d).current!=="close"&&this.classList.add("triggered")});r(this,U,()=>{e(this,d).current!=="close"&&(this.classList.add("opened"),this.setAttribute("aria-expanded","true"))});r(this,j,()=>{e(this,d).current!=="close"&&this.classList.remove("opened")});r(this,X,()=>{e(this,d).current!=="close"&&(this.classList.remove("triggered"),this.setAttribute("aria-expanded","false"))});N.isBrowser&&(this.addEventListener("click",()=>{if(e(this,h)){const t=e(this,d).current;t==="open"||t==="toggle"&&!e(this,h).opened?e(this,h).open({trigger:this}):(t==="close"||t==="toggle"&&e(this,h).opened)&&e(this,h).close()}}),this.addEventListener("keydown",t=>{t.code==="Space"&&t.currentTarget.click()}))}get type(){return e(this,d)}get popoverElement(){return e(this,h)}changePopover(t){var s;if(b(this,k,Z).call(this),t){let i=null;if(t==="parent"){const l=this.closest("[data-popover]");if(l)i=l;else{const p=this.getRootNode();p instanceof ShadowRoot?i=p.host.closest("[data-popover]"):p instanceof HTMLElement&&(i=p.closest("[data-popover]"))}}else if(t==="sibling")i=(s=this.parentElement)==null?void 0:s.querySelector("[data-popover]");else if(t==="ancestor-child"){const l=p=>{if(!p)return null;let H=p.querySelector("[data-popover]");return!H&&(p!=null&&p.parentElement)&&(H=l(p.parentElement)),H};i=l(this.parentElement)||null}else!t.startsWith(".")&&!t.startsWith("[")&&(t=`#${t}`),i=document.querySelector(t)||this.getRootNode().querySelector(t);i instanceof HTMLElement?(n(this,h,i),e(this,h).addEventListener("popoverTriggered",e(this,D)),e(this,h).addEventListener("popoverOpened",e(this,U)),e(this,h).addEventListener("popoverClosing",e(this,j)),e(this,h).addEventListener("popoverClosed",e(this,X))):console.warn(this,`target ${t} not found`)}b(this,k,_).call(this,e(this,d).current)}connectedCallback(){e(this,d).subscribe(s=>{b(this,k,_).call(this,s.current)}),this.hasAttribute("tabindex")||(this.tabIndex=0);const t=this.getAttribute("target");t&&this.changePopover(t),this.isConnected&&e(this,d).observe()}disconnectedCallback(){e(this,d).unobserve(),this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls"),b(this,k,Z).call(this)}}h=new WeakMap,d=new WeakMap,k=new WeakSet,Z=function(){e(this,h)&&(e(this,h).removeEventListener("popoverTriggered",e(this,D)),e(this,h).removeEventListener("popoverOpened",e(this,U)),e(this,h).removeEventListener("popoverClosing",e(this,j)),e(this,h).removeEventListener("popoverClosed",e(this,X)))},D=new WeakMap,U=new WeakMap,j=new WeakMap,X=new WeakMap,_=function(t){e(this,h)instanceof z&&(t!=="close"?(this.setAttribute("aria-haspopup","true"),this.setAttribute("aria-expanded",e(this,h).opened?"true":"false"),this.setAttribute("aria-controls",e(this,h).id||"")):(this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.removeAttribute("aria-controls")))};N.isBrowser&&!customElements.get("e-popover-button")&&customElements.define("e-popover-button",ne);exports.PopoverButtonElement=ne;exports.PopoverElement=z;
|
package/lib/popover/index.js
CHANGED
|
@@ -1,334 +1,342 @@
|
|
|
1
|
-
var
|
|
1
|
+
var et = (c) => {
|
|
2
2
|
throw TypeError(c);
|
|
3
3
|
};
|
|
4
|
-
var Q = (c,
|
|
5
|
-
var
|
|
6
|
-
import { ElementLinkedStore as
|
|
7
|
-
import { CSSProperty as
|
|
8
|
-
import { i as
|
|
9
|
-
import { d as
|
|
10
|
-
import { d as
|
|
11
|
-
import { g as
|
|
12
|
-
import { u as
|
|
13
|
-
import { windowResizer as
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
var Q = (c, o, e) => o.has(c) || et("Cannot " + e);
|
|
5
|
+
var t = (c, o, e) => (Q(c, o, "read from private field"), e ? e.call(c) : o.get(c)), r = (c, o, e) => o.has(c) ? et("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(c) : o.set(c, e), h = (c, o, e, s) => (Q(c, o, "write to private field"), s ? s.call(c, e) : o.set(c, e), e), y = (c, o, e) => (Q(c, o, "access private method"), e);
|
|
6
|
+
import { ElementLinkedStore as ot } from "../element-linked-store/index.js";
|
|
7
|
+
import { CSSProperty as v } from "../css-property/index.js";
|
|
8
|
+
import { i as _ } from "../index-euf5anj6.js";
|
|
9
|
+
import { d as Y } from "../events-CsVF98U6.js";
|
|
10
|
+
import { d as ht } from "../function-C10DGppn.js";
|
|
11
|
+
import { g as st } from "../style-j2TwriJ_.js";
|
|
12
|
+
import { u as nt, p as ct } from "../url-B6BNcw6_.js";
|
|
13
|
+
import { windowResizer as it } from "../window-resizer/index.js";
|
|
14
|
+
import { viewport as j } from "../device/index.js";
|
|
15
|
+
var u, b, J, K;
|
|
16
|
+
class lt {
|
|
16
17
|
constructor() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
r(this, u, /* @__PURE__ */ new Map());
|
|
19
|
+
r(this, b, []);
|
|
20
|
+
r(this, J, (o) => {
|
|
20
21
|
var s;
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
(
|
|
22
|
+
const e = [...t(this, b)].reverse().find((i) => i.clickOutside.current);
|
|
23
|
+
if (e) {
|
|
24
|
+
const i = o.composedPath();
|
|
25
|
+
if (i.find(
|
|
26
|
+
(tt) => tt instanceof HTMLElement && tt.hasAttribute("data-popover-content")
|
|
26
27
|
))
|
|
27
28
|
return;
|
|
28
|
-
const
|
|
29
|
-
(!p || G) &&
|
|
29
|
+
const l = i[0], p = l instanceof Node && (e.contains(l) || ((s = e.shadowRoot) == null ? void 0 : s.contains(l))), G = l instanceof HTMLElement && l.hasAttribute("data-outside");
|
|
30
|
+
(!p || G) && e.close();
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
const
|
|
35
|
-
|
|
33
|
+
r(this, K, (o) => {
|
|
34
|
+
if (o.code === "Escape") {
|
|
35
|
+
const e = [...t(this, b)].reverse().find((s) => s.escape.current);
|
|
36
|
+
e && e.close();
|
|
36
37
|
}
|
|
37
38
|
});
|
|
38
|
-
addEventListener("click",
|
|
39
|
+
addEventListener("click", t(this, J)), addEventListener("keydown", t(this, K));
|
|
39
40
|
}
|
|
40
41
|
get groups() {
|
|
41
|
-
return
|
|
42
|
+
return t(this, u);
|
|
42
43
|
}
|
|
43
44
|
get stack() {
|
|
44
|
-
return
|
|
45
|
+
return t(this, b);
|
|
45
46
|
}
|
|
46
|
-
add(
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
add(o, e) {
|
|
48
|
+
if (e.closeRest.current)
|
|
49
|
+
t(this, u).forEach((i) => {
|
|
50
|
+
i.forEach((l) => {
|
|
51
|
+
l.close();
|
|
51
52
|
});
|
|
52
53
|
});
|
|
53
|
-
else if (
|
|
54
|
-
let
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
else if (e.closeRestInGroup.current) {
|
|
55
|
+
let i = t(this, u).get(o);
|
|
56
|
+
i == null || i.forEach((l) => {
|
|
57
|
+
l.close();
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
|
-
let s =
|
|
60
|
-
s != null && s.length || (s = [],
|
|
60
|
+
let s = t(this, u).get(o);
|
|
61
|
+
s != null && s.length || (s = [], t(this, u).set(o, s)), t(this, b).push(e), s.push(e);
|
|
61
62
|
}
|
|
62
|
-
remove(
|
|
63
|
-
if (h(this,
|
|
63
|
+
remove(o, e) {
|
|
64
|
+
if (h(this, b, t(this, b).filter((s) => s !== e)), e.closeRest.current) {
|
|
64
65
|
let s = [];
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}),
|
|
68
|
-
} else if (
|
|
69
|
-
const s =
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
t(this, u).forEach((i) => {
|
|
67
|
+
i.forEach((l) => s.push(l));
|
|
68
|
+
}), t(this, u).clear(), s.forEach((i) => i.close());
|
|
69
|
+
} else if (e.closeRestInGroup.current) {
|
|
70
|
+
const s = t(this, u).get(o);
|
|
71
|
+
t(this, u).delete(o), s == null || s.forEach((i) => {
|
|
72
|
+
i.close();
|
|
72
73
|
});
|
|
73
74
|
} else {
|
|
74
|
-
let s =
|
|
75
|
-
s && (s = s.filter((
|
|
75
|
+
let s = t(this, u).get(o);
|
|
76
|
+
s && (s = s.filter((i) => i !== e), t(this, u).set(o, s));
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
|
-
u = new WeakMap(),
|
|
80
|
-
var f,
|
|
81
|
-
const
|
|
80
|
+
u = new WeakMap(), b = new WeakMap(), J = new WeakMap(), K = new WeakMap();
|
|
81
|
+
var f, M, H, A, W, g, w, S, C, m, R, $, L, T, O, a, P, rt, F, V, k, q, z;
|
|
82
|
+
const E = class E extends HTMLElement {
|
|
82
83
|
constructor() {
|
|
83
84
|
super();
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
85
|
+
r(this, P);
|
|
86
|
+
r(this, f);
|
|
87
|
+
r(this, M);
|
|
88
|
+
r(this, H);
|
|
89
|
+
r(this, A);
|
|
90
|
+
r(this, W);
|
|
91
|
+
r(this, g);
|
|
92
|
+
r(this, w);
|
|
93
|
+
r(this, S);
|
|
94
|
+
r(this, C);
|
|
95
|
+
r(this, m);
|
|
96
|
+
r(this, R);
|
|
97
|
+
r(this, $);
|
|
98
|
+
r(this, L);
|
|
99
|
+
r(this, T);
|
|
100
|
+
r(this, O);
|
|
101
|
+
r(this, a);
|
|
102
|
+
r(this, V);
|
|
103
|
+
r(this, k);
|
|
104
|
+
r(this, q);
|
|
105
|
+
r(this, z);
|
|
106
|
+
this.urlValue = "", h(this, f, !1), h(this, g, new v(this, "--history", !1)), h(this, w, new v(this, "--restore", !1)), h(this, S, new v(this, "--close-rest", !1)), h(this, C, new v(
|
|
105
107
|
this,
|
|
106
108
|
"--close-rest-in-group",
|
|
107
109
|
!1
|
|
108
|
-
)), h(this, m, new
|
|
110
|
+
)), h(this, m, new v(this, "--group", "")), h(this, R, new v(this, "--click-outside", !1)), h(this, $, new v(this, "--escape", !1)), h(this, L, new v(this, "--check-viewport-bounds", !1)), h(this, T, !1), h(this, a, new ot(this, {
|
|
109
111
|
opened: !1,
|
|
110
112
|
closing: !1,
|
|
111
113
|
triggered: !1,
|
|
112
114
|
transitionend: !1
|
|
113
|
-
})), h(this,
|
|
114
|
-
h(this,
|
|
115
|
-
}), h(this,
|
|
116
|
-
this.style.setProperty("--content-width", "initial"), this.style.setProperty("--content-height", "initial"),
|
|
117
|
-
}), h(this, q,
|
|
118
|
-
|
|
119
|
-
}, 10)), h(this,
|
|
120
|
-
this.style.setProperty("--content-width", this.scrollWidth + "px"), this.style.setProperty("--content-height", this.scrollHeight + "px")
|
|
121
|
-
|
|
122
|
-
|
|
115
|
+
})), h(this, V, () => {
|
|
116
|
+
h(this, T, !1), t(this, f) && t(this, g).current && !location.search.includes(this.id) ? this.close() : !t(this, f) && t(this, g).current && location.search.includes(this.id) && this.open({ trigger: this.idWithValue }), h(this, T, !0);
|
|
117
|
+
}), h(this, k, () => {
|
|
118
|
+
this.style.setProperty("--content-width", "initial"), this.style.setProperty("--content-height", "initial"), this.style.setProperty("--viewport-offset-x", "0px"), this.style.setProperty("--viewport-offset-y", "0px"), t(this, q).call(this);
|
|
119
|
+
}), h(this, q, ht(() => {
|
|
120
|
+
t(this, z).call(this);
|
|
121
|
+
}, 10)), h(this, z, () => {
|
|
122
|
+
if (this.style.setProperty("--content-width", this.scrollWidth + "px"), this.style.setProperty("--content-height", this.scrollHeight + "px"), t(this, L).current) {
|
|
123
|
+
const e = this.getBoundingClientRect();
|
|
124
|
+
let s = 0, i = 0;
|
|
125
|
+
e.right > j.width ? s = j.width - e.right : e.left < 0 && (s = e.left * -1), e.bottom > j.height ? i = j.height - e.bottom : e.top < 0 && (i = e.top * -1), this.style.setProperty("--viewport-offset-x", s + "px"), this.style.setProperty("--viewport-offset-y", i + "px");
|
|
126
|
+
}
|
|
127
|
+
}), t(this, m).subscribe((e) => {
|
|
128
|
+
e.previous && (E.stack.remove(e.previous, this), e.current || (document.documentElement.classList.remove(
|
|
123
129
|
`${this.group.previous}-closing`
|
|
124
130
|
), document.documentElement.classList.remove(
|
|
125
131
|
`${this.group.previous}-opened`
|
|
126
132
|
)));
|
|
127
|
-
}),
|
|
133
|
+
}), t(this, a).subscribe((e) => {
|
|
128
134
|
if (this.group.current) {
|
|
129
135
|
document.documentElement.classList.toggle(
|
|
130
136
|
`${this.group.current}-closing`,
|
|
131
|
-
|
|
137
|
+
e.current.closing
|
|
132
138
|
);
|
|
133
|
-
const s =
|
|
139
|
+
const s = E.stack.groups.get(this.group.current), i = s == null ? void 0 : s.find((l) => l.opened);
|
|
134
140
|
document.documentElement.classList.toggle(
|
|
135
141
|
`${this.group.current}-opened`,
|
|
136
|
-
!!
|
|
142
|
+
!!i
|
|
137
143
|
);
|
|
138
144
|
}
|
|
139
145
|
});
|
|
140
146
|
}
|
|
141
147
|
get history() {
|
|
142
|
-
return
|
|
148
|
+
return t(this, g);
|
|
143
149
|
}
|
|
144
150
|
get restore() {
|
|
145
|
-
return
|
|
151
|
+
return t(this, w);
|
|
146
152
|
}
|
|
147
153
|
get closeRest() {
|
|
148
|
-
return
|
|
154
|
+
return t(this, S);
|
|
149
155
|
}
|
|
150
156
|
get closeRestInGroup() {
|
|
151
|
-
return
|
|
157
|
+
return t(this, C);
|
|
152
158
|
}
|
|
153
159
|
get group() {
|
|
154
|
-
return
|
|
160
|
+
return t(this, m);
|
|
155
161
|
}
|
|
156
162
|
get clickOutside() {
|
|
157
|
-
return
|
|
163
|
+
return t(this, R);
|
|
158
164
|
}
|
|
159
165
|
get escape() {
|
|
160
|
-
return
|
|
166
|
+
return t(this, $);
|
|
161
167
|
}
|
|
162
168
|
get opened() {
|
|
163
|
-
return
|
|
169
|
+
return t(this, f);
|
|
164
170
|
}
|
|
165
171
|
get lastTrigger() {
|
|
166
|
-
return
|
|
172
|
+
return t(this, O);
|
|
167
173
|
}
|
|
168
174
|
get idWithValue() {
|
|
169
175
|
return `${this.id}${this.urlValue ? "=" + this.urlValue : ""}`;
|
|
170
176
|
}
|
|
171
|
-
updateUrlValue(
|
|
172
|
-
this.urlValue = (
|
|
177
|
+
updateUrlValue(e) {
|
|
178
|
+
this.urlValue = (e == null ? void 0 : e.toString()) || "", t(this, f) && nt(this.id, e);
|
|
173
179
|
}
|
|
174
|
-
open(
|
|
175
|
-
if (
|
|
180
|
+
open(e) {
|
|
181
|
+
if (t(this, f))
|
|
176
182
|
return;
|
|
177
|
-
h(this,
|
|
183
|
+
h(this, O, e == null ? void 0 : e.trigger), clearTimeout(t(this, M)), clearTimeout(t(this, H)), t(this, a).set("closing", !1), t(this, a).set("triggered", !0), Y(this, "popoverTriggered", {
|
|
178
184
|
custom: !0,
|
|
179
185
|
detail: {
|
|
180
|
-
trigger:
|
|
186
|
+
trigger: t(this, O)
|
|
181
187
|
}
|
|
182
|
-
}),
|
|
188
|
+
}), t(this, g).current && t(this, T) && history.pushState(history.state, "", t(this, P, rt)), h(this, f, !0);
|
|
183
189
|
const s = () => {
|
|
184
|
-
|
|
190
|
+
E.stack.add(t(this, m).current, this), t(this, k).call(this), t(this, a).set("opened", !0), Y(this, "popoverOpened", {
|
|
185
191
|
custom: !0,
|
|
186
192
|
detail: {
|
|
187
|
-
trigger:
|
|
193
|
+
trigger: t(this, O)
|
|
188
194
|
}
|
|
189
|
-
}), h(this, A, void 0), h(this,
|
|
190
|
-
|
|
191
|
-
},
|
|
195
|
+
}), h(this, A, void 0), h(this, W, setTimeout(() => {
|
|
196
|
+
t(this, a).set("transitionend", !0);
|
|
197
|
+
}, st(this) + 10));
|
|
192
198
|
};
|
|
193
|
-
|
|
199
|
+
e != null && e.skipTransition ? s() : h(this, A, setTimeout(s, 10));
|
|
194
200
|
}
|
|
195
201
|
close() {
|
|
196
|
-
|
|
197
|
-
|
|
202
|
+
t(this, f) && (clearTimeout(t(this, A)), clearTimeout(t(this, W)), E.stack.remove(t(this, m).current, this), h(this, f, !1), y(this, P, F).call(this), t(this, a).set("transitionend", !1), h(this, M, setTimeout(() => {
|
|
203
|
+
t(this, a).set("opened", !1), t(this, a).set("closing", !0), Y(this, "popoverClosing", {
|
|
198
204
|
custom: !0
|
|
199
|
-
}), h(this,
|
|
200
|
-
|
|
205
|
+
}), h(this, H, setTimeout(() => {
|
|
206
|
+
t(this, a).set("triggered", !1), t(this, a).set("closing", !1), Y(this, "popoverClosed", {
|
|
201
207
|
custom: !0
|
|
202
208
|
});
|
|
203
|
-
},
|
|
209
|
+
}, st(this) + 10));
|
|
204
210
|
}, 10)));
|
|
205
211
|
}
|
|
206
212
|
connectedCallback() {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}, 0),
|
|
213
|
+
t(this, g).observe(), t(this, w).observe(), t(this, S).observe(), t(this, C).observe(), t(this, m).observe(), t(this, R).observe(), t(this, $).observe(), t(this, L).observe(), this.setAttribute("role", "dialog"), addEventListener("popstate", t(this, V)), setTimeout(() => {
|
|
214
|
+
t(this, w).current ? (this.urlValue = ct(location.search)[this.id], t(this, V).call(this)) : (y(this, P, F).call(this), h(this, T, !0));
|
|
215
|
+
}, 0), t(this, L).subscribe(() => {
|
|
216
|
+
t(this, k).call(this);
|
|
217
|
+
}), it.subscribe(t(this, k));
|
|
210
218
|
}
|
|
211
219
|
disconnectedCallback() {
|
|
212
|
-
|
|
220
|
+
E.stack.remove(t(this, m).current, this), it.unsubscribe(t(this, k)), t(this, a).close(), t(this, g).close(), t(this, w).close(), t(this, S).close(), t(this, C).close(), t(this, m).close(), t(this, R).close(), t(this, $).close(), t(this, L).close(), this.removeAttribute("role"), clearTimeout(t(this, M)), clearTimeout(t(this, H)), clearTimeout(t(this, A)), clearTimeout(t(this, W)), removeEventListener("popstate", t(this, V)), this.style.removeProperty("--content-width"), this.style.removeProperty("--content-height"), this.style.removeProperty("--viewport-offset-x"), this.style.removeProperty("--viewport-offset-y"), y(this, P, F).call(this);
|
|
213
221
|
}
|
|
214
222
|
};
|
|
215
|
-
f = new WeakMap(),
|
|
223
|
+
f = new WeakMap(), M = new WeakMap(), H = new WeakMap(), A = new WeakMap(), W = new WeakMap(), g = new WeakMap(), w = new WeakMap(), S = new WeakMap(), C = new WeakMap(), m = new WeakMap(), R = new WeakMap(), $ = new WeakMap(), L = new WeakMap(), T = new WeakMap(), O = new WeakMap(), a = new WeakMap(), P = new WeakSet(), rt = function() {
|
|
216
224
|
return `${location.pathname}${location.search ? location.search + "&" : "?"}${this.idWithValue}`;
|
|
217
225
|
}, F = function() {
|
|
218
|
-
if (
|
|
219
|
-
const
|
|
220
|
-
|
|
226
|
+
if (t(this, g).current) {
|
|
227
|
+
const e = new URL(location.href);
|
|
228
|
+
e.searchParams.delete(this.id), history.replaceState(history.state, "", e.href);
|
|
221
229
|
}
|
|
222
|
-
},
|
|
223
|
-
let I =
|
|
224
|
-
|
|
225
|
-
var n, d,
|
|
226
|
-
class
|
|
230
|
+
}, V = new WeakMap(), k = new WeakMap(), q = new WeakMap(), z = new WeakMap(), E.stack = new lt();
|
|
231
|
+
let I = E;
|
|
232
|
+
_ && !customElements.get("e-popover") && customElements.define("e-popover", I);
|
|
233
|
+
var n, d, x, Z, B, U, D, X, N;
|
|
234
|
+
class at extends HTMLElement {
|
|
227
235
|
constructor() {
|
|
228
236
|
super();
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
237
|
+
r(this, x);
|
|
238
|
+
r(this, n);
|
|
239
|
+
r(this, d, new v(this, "--type", "open"));
|
|
240
|
+
r(this, B, () => {
|
|
241
|
+
t(this, d).current !== "close" && this.classList.add("triggered");
|
|
234
242
|
});
|
|
235
|
-
|
|
236
|
-
|
|
243
|
+
r(this, U, () => {
|
|
244
|
+
t(this, d).current !== "close" && (this.classList.add("opened"), this.setAttribute("aria-expanded", "true"));
|
|
237
245
|
});
|
|
238
|
-
|
|
239
|
-
|
|
246
|
+
r(this, D, () => {
|
|
247
|
+
t(this, d).current !== "close" && this.classList.remove("opened");
|
|
240
248
|
});
|
|
241
|
-
|
|
242
|
-
|
|
249
|
+
r(this, X, () => {
|
|
250
|
+
t(this, d).current !== "close" && (this.classList.remove("triggered"), this.setAttribute("aria-expanded", "false"));
|
|
243
251
|
});
|
|
244
|
-
|
|
245
|
-
if (
|
|
246
|
-
const
|
|
247
|
-
|
|
252
|
+
_ && (this.addEventListener("click", () => {
|
|
253
|
+
if (t(this, n)) {
|
|
254
|
+
const e = t(this, d).current;
|
|
255
|
+
e === "open" || e === "toggle" && !t(this, n).opened ? t(this, n).open({ trigger: this }) : (e === "close" || e === "toggle" && t(this, n).opened) && t(this, n).close();
|
|
248
256
|
}
|
|
249
|
-
}), this.addEventListener("keydown", (
|
|
250
|
-
|
|
257
|
+
}), this.addEventListener("keydown", (e) => {
|
|
258
|
+
e.code === "Space" && e.currentTarget.click();
|
|
251
259
|
}));
|
|
252
260
|
}
|
|
253
261
|
get type() {
|
|
254
|
-
return
|
|
262
|
+
return t(this, d);
|
|
255
263
|
}
|
|
256
264
|
get popoverElement() {
|
|
257
|
-
return
|
|
265
|
+
return t(this, n);
|
|
258
266
|
}
|
|
259
|
-
changePopover(
|
|
267
|
+
changePopover(e) {
|
|
260
268
|
var s;
|
|
261
|
-
if (
|
|
262
|
-
let
|
|
263
|
-
if (
|
|
264
|
-
const
|
|
265
|
-
if (
|
|
266
|
-
|
|
269
|
+
if (y(this, x, Z).call(this), e) {
|
|
270
|
+
let i = null;
|
|
271
|
+
if (e === "parent") {
|
|
272
|
+
const l = this.closest("[data-popover]");
|
|
273
|
+
if (l)
|
|
274
|
+
i = l;
|
|
267
275
|
else {
|
|
268
276
|
const p = this.getRootNode();
|
|
269
|
-
p instanceof ShadowRoot ?
|
|
277
|
+
p instanceof ShadowRoot ? i = p.host.closest("[data-popover]") : p instanceof HTMLElement && (i = p.closest("[data-popover]"));
|
|
270
278
|
}
|
|
271
|
-
} else if (
|
|
272
|
-
|
|
273
|
-
else if (
|
|
274
|
-
const
|
|
279
|
+
} else if (e === "sibling")
|
|
280
|
+
i = (s = this.parentElement) == null ? void 0 : s.querySelector("[data-popover]");
|
|
281
|
+
else if (e === "ancestor-child") {
|
|
282
|
+
const l = (p) => {
|
|
275
283
|
if (!p)
|
|
276
284
|
return null;
|
|
277
285
|
let G = p.querySelector("[data-popover]");
|
|
278
|
-
return !G && (p != null && p.parentElement) && (G =
|
|
286
|
+
return !G && (p != null && p.parentElement) && (G = l(p.parentElement)), G;
|
|
279
287
|
};
|
|
280
|
-
|
|
288
|
+
i = l(this.parentElement) || null;
|
|
281
289
|
} else
|
|
282
|
-
!
|
|
283
|
-
|
|
290
|
+
!e.startsWith(".") && !e.startsWith("[") && (e = `#${e}`), i = document.querySelector(e) || this.getRootNode().querySelector(e);
|
|
291
|
+
i instanceof HTMLElement ? (h(this, n, i), t(this, n).addEventListener(
|
|
284
292
|
"popoverTriggered",
|
|
285
|
-
|
|
286
|
-
),
|
|
293
|
+
t(this, B)
|
|
294
|
+
), t(this, n).addEventListener(
|
|
287
295
|
"popoverOpened",
|
|
288
|
-
|
|
289
|
-
),
|
|
296
|
+
t(this, U)
|
|
297
|
+
), t(this, n).addEventListener(
|
|
290
298
|
"popoverClosing",
|
|
291
|
-
|
|
292
|
-
),
|
|
299
|
+
t(this, D)
|
|
300
|
+
), t(this, n).addEventListener(
|
|
293
301
|
"popoverClosed",
|
|
294
|
-
|
|
295
|
-
)) : console.warn(this, `target ${
|
|
302
|
+
t(this, X)
|
|
303
|
+
)) : console.warn(this, `target ${e} not found`);
|
|
296
304
|
}
|
|
297
|
-
|
|
305
|
+
y(this, x, N).call(this, t(this, d).current);
|
|
298
306
|
}
|
|
299
307
|
connectedCallback() {
|
|
300
|
-
|
|
301
|
-
|
|
308
|
+
t(this, d).subscribe((s) => {
|
|
309
|
+
y(this, x, N).call(this, s.current);
|
|
302
310
|
}), this.hasAttribute("tabindex") || (this.tabIndex = 0);
|
|
303
|
-
const
|
|
304
|
-
|
|
311
|
+
const e = this.getAttribute("target");
|
|
312
|
+
e && this.changePopover(e), this.isConnected && t(this, d).observe();
|
|
305
313
|
}
|
|
306
314
|
disconnectedCallback() {
|
|
307
|
-
|
|
315
|
+
t(this, d).unobserve(), this.removeAttribute("aria-haspopup"), this.removeAttribute("aria-expanded"), this.removeAttribute("aria-controls"), y(this, x, Z).call(this);
|
|
308
316
|
}
|
|
309
317
|
}
|
|
310
|
-
n = new WeakMap(), d = new WeakMap(),
|
|
311
|
-
|
|
318
|
+
n = new WeakMap(), d = new WeakMap(), x = new WeakSet(), Z = function() {
|
|
319
|
+
t(this, n) && (t(this, n).removeEventListener(
|
|
312
320
|
"popoverTriggered",
|
|
313
|
-
|
|
314
|
-
),
|
|
321
|
+
t(this, B)
|
|
322
|
+
), t(this, n).removeEventListener(
|
|
315
323
|
"popoverOpened",
|
|
316
|
-
|
|
317
|
-
),
|
|
324
|
+
t(this, U)
|
|
325
|
+
), t(this, n).removeEventListener(
|
|
318
326
|
"popoverClosing",
|
|
319
|
-
|
|
320
|
-
),
|
|
327
|
+
t(this, D)
|
|
328
|
+
), t(this, n).removeEventListener(
|
|
321
329
|
"popoverClosed",
|
|
322
|
-
|
|
330
|
+
t(this, X)
|
|
323
331
|
));
|
|
324
|
-
},
|
|
325
|
-
|
|
332
|
+
}, B = new WeakMap(), U = new WeakMap(), D = new WeakMap(), X = new WeakMap(), N = function(e) {
|
|
333
|
+
t(this, n) instanceof I && (e !== "close" ? (this.setAttribute("aria-haspopup", "true"), this.setAttribute(
|
|
326
334
|
"aria-expanded",
|
|
327
|
-
|
|
328
|
-
), this.setAttribute("aria-controls",
|
|
335
|
+
t(this, n).opened ? "true" : "false"
|
|
336
|
+
), this.setAttribute("aria-controls", t(this, n).id || "")) : (this.removeAttribute("aria-haspopup"), this.removeAttribute("aria-expanded"), this.removeAttribute("aria-controls")));
|
|
329
337
|
};
|
|
330
|
-
|
|
338
|
+
_ && !customElements.get("e-popover-button") && customElements.define("e-popover-button", at);
|
|
331
339
|
export {
|
|
332
|
-
|
|
340
|
+
at as PopoverButtonElement,
|
|
333
341
|
I as PopoverElement
|
|
334
342
|
};
|