@madgex/design-system 13.0.0 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/assets/icons.json +1 -1
- package/dist/js/components/mds-dropdown-nav-standalone.js +1 -0
- package/dist/js/dropdown-nav-B37nBO1_.js +1 -0
- package/dist/js/index.js +1 -1
- package/package.json +1 -1
- package/src/components/dropdown-nav/README.md +21 -10
- package/src/components/dropdown-nav/dropdown-nav.js +19 -5
- package/src/components/dropdown-nav/dropdown-nav.njk +49 -0
- package/src/components/dropdown-nav/mds-dropdown-nav-standalone.js +7 -0
- package/dist/js/components/mds-dropdown-nav.js +0 -1
- package/dist/js/dropdown-nav-DsMcgeGj.js +0 -1
- package/src/components/dropdown-nav/dropdown-nav-entry.js +0 -7
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ consuming the `index.js` file is all that is needed, relative ESM imports will a
|
|
|
112
112
|
```twig
|
|
113
113
|
<link rel="stylesheet" href="{{- getRoute('public.assets.design-system', { path: 'css/index.css' }, { v: designSystemVersion }) -}}">
|
|
114
114
|
<script type="module" src="{{- getRoute('public.assets.design-system', { path: 'js/index.js' }, { v: designSystemVersion }) -}}"></script>
|
|
115
|
-
{# index.js also import `./
|
|
115
|
+
{# index.js also import `./dropdown-nav-HASH.js` etc, which is why we serve the whole `dist` folder on `public.assets.design-system` route #}
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
## Releases
|
package/dist/assets/icons.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"asterisk"},{"name":"calendar"},{"name":"cart"},{"name":"check"},{"name":"chevron-down"},{"name":"chevron-left"},{"name":"chevron-right"},{"name":"chevron-up"},{"name":"
|
|
1
|
+
[{"name":"asterisk"},{"name":"calendar"},{"name":"cart"},{"name":"check"},{"name":"chevron-down"},{"name":"chevron-left"},{"name":"chevron-right"},{"name":"chevron-up"},{"name":"cross"},{"name":"doc-pdf"},{"name":"doc"},{"name":"close"},{"name":"email"},{"name":"external"},{"name":"flag"},{"name":"information"},{"name":"job"},{"name":"list-bullets"},{"name":"list-numbers"},{"name":"location-pin"},{"name":"menu"},{"name":"minus"},{"name":"plus-small"},{"name":"plus"},{"name":"question-mark"},{"name":"redo"},{"name":"search"},{"name":"settings"},{"name":"share"},{"name":"social-facebook"},{"name":"social-linkedin"},{"name":"social-pinterest"},{"name":"social-reddit"},{"name":"social-twitter"},{"name":"spinner"},{"name":"star-fill"},{"name":"star-outline"},{"name":"text-bold"},{"name":"text-italic"},{"name":"text-link"},{"name":"text-strike-through"},{"name":"text-underline"},{"name":"triangle-down"},{"name":"triangle-right"},{"name":"triangle-up"},{"name":"undo"},{"name":"upload"},{"name":"user"}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as n}from"../dropdown-nav-B37nBO1_.js";window.customElements.get("mds-dropdown-nav-standalone")||window.customElements.define("mds-dropdown-nav-standalone",n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
class o extends HTMLElement{static observedAttributes=["aria-expanded"];constructor(){super(),this._document=this.getRootNode({composed:!0}),this.documentOrShadowRoot=this.getRootNode(),this.onTriggerClick=this.onTriggerClick.bind(this),this.onBodyClick=this.onBodyClick.bind(this),this.onTargetClick=this.onTargetClick.bind(this),this.onTargetKeyDown=this.onTargetKeyDown.bind(this),this.onTargetFocusOut=this.onTargetFocusOut.bind(this)}connectedCallback(){this.addEventListener("click",this.onTriggerClick),this.addEventListener("keydown",this.onTriggerKeydown),(!this.getAttribute("role")||this.getAttribute("role")!=="button")&&this.setAttribute("role","button"),this.setAttribute("tabindex",0);const t=this.getTargetNode();t.addEventListener("click",this.onTargetClick),t.addEventListener("keydown",this.onTargetKeyDown),this.getAttribute("autohide")!=="false"&&(this._document.querySelector("body").addEventListener("click",this.onBodyClick),t.addEventListener("focusout",this.onTargetFocusOut)),this.getAttribute("aria-expanded")||this.setAttribute("aria-expanded","false")}disconnectedCallback(){this.removeEventListener("click",this.onTriggerClick),this.removeEventListener("keydown",this.onTriggerKeydown);try{this._document.querySelector("body").removeEventListener("click",this.onBodyClick)}catch(t){console.warn("<mds-dropdown-nav> failed to remove body click onBodyClick",t)}try{const t=this.getTargetNode();t&&(t.removeEventListener("click",this.onTargetClick),t.removeEventListener("keydown",this.onTargetKeyDown),this.getAttribute("autohide")!=="false"&&t.removeEventListener("focusout",this.onTargetFocusOut))}catch(t){throw console.log(t),new Error("<mds-dropdown-nav> failed to remove targetNode event listener")}}attributeChangedCallback(t,e,i){t==="aria-expanded"&&e!==i&&this.handleAriaExpandedState()}getTargetNode(){const t=this.getAttribute("target");if(!t)throw new Error('<mds-dropdown-nav> must have attribute target e.g. target="my-nav"');return this.documentOrShadowRoot.querySelector(`#${t}`)}onTargetClick(t){t.stopPropagation()}onTargetFocusOut(t){t.relatedTarget||this.setAttribute("aria-expanded","false")}onTargetKeyDown(t){(t.key==="Escape"||t.key==="Esc")&&(t.preventDefault(),this.setAttribute("aria-expanded","false"))}onTriggerClick(t){t.preventDefault(),this.getAttribute("aria-expanded")==="true"?this.setAttribute("aria-expanded","false"):this.setAttribute("aria-expanded","true")}onTriggerKeydown(t){(t.code==="Enter"||t.code==="Space")&&this.onTriggerClick(t)}onBodyClick(t){const e=t.composedPath();!e.includes(this.getTargetNode())&&!e.includes(this)&&this.setAttribute("aria-expanded","false")}handleAriaExpandedState(){const t=this.getTargetNode();this.getAttribute("aria-expanded")==="true"?(t.removeAttribute("hidden"),t.classList.add("mds-dropdown-nav-target--expanded")):(t.setAttribute("hidden",""),t.classList.remove("mds-dropdown-nav-target--expanded"))}}export{o as M};
|
package/dist/js/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as xt}from"./dropdown-nav-DsMcgeGj.js";window.addEventListener("hashchange",()=>{const t=window.location.hash.trim();Array.from(document.querySelectorAll(`a[href='${t}']`)).forEach(r=>{r.click()})},!1);const it={baseline:{$value:"4px"},breakpoint:{md:{$value:"600px"},lg:{$value:"1008px"}}},st={size:it},Et="js-tabs-item",Ve="mds-tabs",Ot="mds-tabs__list",Lt="mds-tabs__list-item",Ue="mds-tabs__panel",pe="mds-tabs__tab",ve="mds-tabs__tab--selected",Xe="mds-tabs__panel--hidden",me={left:37,right:39,up:38,down:40},Ct=".js-desktop-tabbed",St=".js-full-tabbed",kt=parseInt(st.size.breakpoint.lg.$value,10),E={init:()=>{E.setTabs(St),window.innerWidth>kt&&E.setTabs(Ct)},setTabs:t=>{const e=Array.from(document.querySelectorAll(`${t} .${pe}`)),r=Array.from(document.querySelectorAll(`${t} .${Ot}`)),a=Array.from(document.querySelectorAll(`${t} .${Lt}`)),n=Array.from(document.querySelectorAll(`${t} .${Ue}`));r.forEach(o=>{o.setAttribute("role","tablist")}),a.forEach(o=>{o.setAttribute("role","presentation")}),e.forEach(o=>{o.setAttribute("role","tab"),o.setAttribute("aria-controls",o.attributes.href.value.substring(1)),o.classList.contains(ve)?o.setAttribute("tabindex","0"):o.setAttribute("tabindex","-1")}),n.forEach(o=>{o.setAttribute("role","tabpanel"),o.setAttribute("aria-labelledby",`label-${o.attributes.id.value}`)});const i=document.querySelectorAll(`${t} .${Et}`);Array.from(i).forEach(o=>{const l=window.location.hash.trim(),d=o.attributes.href.value,c=o.closest(`.${Ve}`),p=E.getAllPanels(c),u=E.getAllTabs(c),v=E.getTargetPanel(o,c);o.addEventListener("click",m=>{m.preventDefault(),E.updateTabs(u,p,o,v,d)}),d===l&&E.updateTabs(u,p,o,v,d)}),r.forEach(o=>{const l=o.closest(`.${Ve}`),d=E.getAllPanels(l),c=E.getAllTabs(l);o.addEventListener("keydown",p=>{switch(p.keyCode){case me.left:case me.up:p.preventDefault(),E.moveTab(o,l,c,d,!1);break;case me.right:case me.down:p.preventDefault(),E.moveTab(o,l,c,d,!0);break}})})},getSelectedTab:t=>t.querySelector(`.${ve}`),getPrevTab:t=>t.parentElement.previousSibling?t.parentElement.previousSibling.querySelector(`.${pe}`):!1,getNextTab:t=>t.parentElement.nextSibling?t.parentElement.nextSibling.querySelector(`.${pe}`):!1,getTargetPanel:(t,e)=>{const r=t.attributes.href.value;return e.querySelector(r)},getAllPanels:t=>Array.from(t.querySelectorAll(`.${Ue}`)),getAllTabs:t=>Array.from(t.querySelectorAll(`.${pe}`)),moveTab:(t,e,r,a,n)=>{const i=E.getSelectedTab(t),s=n?E.getNextTab(i):E.getPrevTab(i);if(s){const o=s.attributes.href.value,l=E.getTargetPanel(s,e);E.updateTabs(r,a,s,l,o,!1)}},updateTabs:(t,e,r,a,n)=>{E.clearAllTabs(t),E.setActiveTab(r),E.clearAllPanels(e),E.setActivePanel(a,n)},clearAllTabs:t=>{t.forEach(e=>{e.classList.remove(ve),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")})},clearAllPanels:t=>{t.forEach(e=>{e.classList.add(Xe)})},setActiveTab:t=>{t.classList.add(ve),t.setAttribute("aria-selected","true"),t.setAttribute("tabindex","0"),t.focus()},setActivePanel:(t,e)=>{t.classList.remove(Xe),window.history.replaceState({},"",e)}},Pt="mds-accordion--breakpoint",$t="mds-accordion__label",ct={init:()=>{const t=document.querySelectorAll(`.${Pt}`),e=window.innerWidth;t.forEach(a=>{ct.checkBreakpoint(a,e)||(a.open=!0,a.querySelector("summary").style.display="none")}),document.querySelectorAll(`.${$t}`).forEach(a=>{a.addEventListener("click",({target:n})=>{const i=n.closest("details"),s=i.querySelector("summary");i.open=!1,s.focus()})})},checkBreakpoint:(t,e)=>{let r=0;if(t.dataset.bp){const a=t.dataset.bp.replace(/\D/g,""),n=t.dataset.bp.replace(/[0-9]/g,"");let i,s;switch(n){case"px":r=a;break;case"em":i=window.getComputedStyle(document.querySelector("body"))["font-size"],s=a*parseFloat(i),r=s;break;case"rem":i=window.getComputedStyle(document.querySelector("body"))["font-size"],s=a*parseFloat(i),r=s;break;default:return!0}return!(e>r)}return!0}},Tt={init:()=>{const t=document.querySelectorAll(".mds-subnavigation"),e=[];let r;t.forEach(n=>{const i=n.querySelector(".mds-subnavigation__link-list"),s=Array.from(i.children),o=s[0],l=n.querySelector(".mds-subnavigation__mobile-title"),d=n.querySelector(".mds-subnavigation__drawer"),c=n.querySelector(".mds-subnavigation__drawer-label"),p=n.querySelector(".mds-subnavigation__drawer-label-text"),u=n.querySelector(".mds-subnavigation__drawer-content"),v=d.dataset.label,m=d.dataset.labelPlural;c.addEventListener("click",()=>{c.getAttribute("aria-expanded")==="true"?c.setAttribute("aria-expanded","false"):c.setAttribute("aria-expanded","true")}),d.addEventListener("focusout",b=>{d.contains(b.relatedTarget)||c.setAttribute("aria-expanded","false")});const g=()=>i.clientHeight>o.offsetHeight;e.push(()=>{c.setAttribute("aria-expanded","false"),window.getComputedStyle(l).getPropertyValue("display")==="none"?(s.forEach(h=>{i.append(h)}),d.style.display="none",g()&&(d.style.display="list-item",s.slice().reverse().forEach(h=>{if(g()&&h!==d){u.prepend(h);const y=Array.from(u.children).length,A=y>1?m:v;p.innerText=A.replace("{count}",y)}else i.prepend(h)}),u.style.width=`${i.offsetWidth-d.offsetLeft}px`)):(s.forEach(h=>{h!==d&&h!==l&&u.append(h)}),u.style.width="initial",d.style.display="block")})});const a=()=>{e.forEach(n=>{n()})};a(),window.onresize=()=>{clearTimeout(r),r=setTimeout(a,100)}}},Dt="mds-checkbox-accordion__button",qt="mds-checkbox-accordion__button--open",Bt={init:()=>{document.querySelectorAll(`.${Dt}`).forEach(e=>{e.classList.contains(qt)?e.setAttribute("aria-expanded","true"):e.setAttribute("aria-expanded","false"),e.addEventListener("click",()=>{e.getAttribute("aria-expanded")==="true"?e.setAttribute("aria-expanded","false"):e.setAttribute("aria-expanded","true")})})}};var P="top",T="bottom",D="right",$="left",Te="auto",se=[P,T,D,$],G="start",De="end",jt="clippingParents",lt="viewport",ee="popper",Rt="reference",Ye=se.reduce(function(t,e){return t.concat([e+"-"+G,e+"-"+De])},[]),dt=[].concat(se,[Te]).reduce(function(t,e){return t.concat([e,e+"-"+G,e+"-"+De])},[]),Wt="beforeRead",It="read",Mt="afterRead",_t="beforeMain",Ht="main",Nt="afterMain",Ft="beforeWrite",zt="write",Vt="afterWrite",Ut=[Wt,It,Mt,_t,Ht,Nt,Ft,zt,Vt];function I(t){return t?(t.nodeName||"").toLowerCase():null}function B(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ne(t){var e=B(t).Element;return t instanceof e||t instanceof Element}function q(t){var e=B(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function ft(t){if(typeof ShadowRoot>"u")return!1;var e=B(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Xt(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var a=e.styles[r]||{},n=e.attributes[r]||{},i=e.elements[r];!q(i)||!I(i)||(Object.assign(i.style,a),Object.keys(n).forEach(function(s){var o=n[s];o===!1?i.removeAttribute(s):i.setAttribute(s,o===!0?"":o)}))})}function Yt(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(a){var n=e.elements[a],i=e.attributes[a]||{},s=Object.keys(e.styles.hasOwnProperty(a)?e.styles[a]:r[a]),o=s.reduce(function(l,d){return l[d]="",l},{});!q(n)||!I(n)||(Object.assign(n.style,o),Object.keys(i).forEach(function(l){n.removeAttribute(l)}))})}}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:Xt,effect:Yt,requires:["computeStyles"]};function W(t){return t.split("-")[0]}function Q(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function qe(t){var e=Q(t),r=t.offsetWidth,a=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-a)<=1&&(a=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:a}}function ut(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&ft(r)){var a=e;do{if(a&&t.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function _(t){return B(t).getComputedStyle(t)}function Kt(t){return["table","td","th"].indexOf(I(t))>=0}function N(t){return((ne(t)?t.ownerDocument:t.document)||window.document).documentElement}function xe(t){return I(t)==="html"?t:t.assignedSlot||t.parentNode||(ft(t)?t.host:null)||N(t)}function Je(t){return!q(t)||_(t).position==="fixed"?null:t.offsetParent}function Gt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&q(t)){var a=_(t);if(a.position==="fixed")return null}for(var n=xe(t);q(n)&&["html","body"].indexOf(I(n))<0;){var i=_(n);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return n;n=n.parentNode}return null}function ce(t){for(var e=B(t),r=Je(t);r&&Kt(r)&&_(r).position==="static";)r=Je(r);return r&&(I(r)==="html"||I(r)==="body"&&_(r).position==="static")?e:r||Gt(t)||e}function Be(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var H=Math.max,ae=Math.min,be=Math.round;function we(t,e,r){return H(t,ae(e,r))}function pt(){return{top:0,right:0,bottom:0,left:0}}function vt(t){return Object.assign({},pt(),t)}function mt(t,e){return e.reduce(function(r,a){return r[a]=t,r},{})}var Qt=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,vt(typeof e!="number"?e:mt(e,se))};function Zt(t){var e,r=t.state,a=t.name,n=t.options,i=r.elements.arrow,s=r.modifiersData.popperOffsets,o=W(r.placement),l=Be(o),d=[$,D].indexOf(o)>=0,c=d?"height":"width";if(!(!i||!s)){var p=Qt(n.padding,r),u=qe(i),v=l==="y"?P:$,m=l==="y"?T:D,g=r.rects.reference[c]+r.rects.reference[l]-s[l]-r.rects.popper[c],b=s[l]-r.rects.reference[l],h=ce(i),y=h?l==="y"?h.clientHeight||0:h.clientWidth||0:0,A=g/2-b/2,f=p[v],L=y-u[c]-p[m],w=y/2-u[c]/2+A,O=we(f,w,L),x=l;r.modifiersData[a]=(e={},e[x]=O,e.centerOffset=O-w,e)}}function er(t){var e=t.state,r=t.options,a=r.element,n=a===void 0?"[data-popper-arrow]":a;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||ut(e.elements.popper,n)&&(e.elements.arrow=n))}const tr={name:"arrow",enabled:!0,phase:"main",fn:Zt,effect:er,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var rr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function nr(t){var e=t.x,r=t.y,a=window,n=a.devicePixelRatio||1;return{x:be(be(e*n)/n)||0,y:be(be(r*n)/n)||0}}function Ke(t){var e,r=t.popper,a=t.popperRect,n=t.placement,i=t.offsets,s=t.position,o=t.gpuAcceleration,l=t.adaptive,d=t.roundOffsets,c=d===!0?nr(i):typeof d=="function"?d(i):i,p=c.x,u=p===void 0?0:p,v=c.y,m=v===void 0?0:v,g=i.hasOwnProperty("x"),b=i.hasOwnProperty("y"),h=$,y=P,A=window;if(l){var f=ce(r),L="clientHeight",w="clientWidth";f===B(r)&&(f=N(r),_(f).position!=="static"&&(L="scrollHeight",w="scrollWidth")),f=f,n===P&&(y=T,m-=f[L]-a.height,m*=o?1:-1),n===$&&(h=D,u-=f[w]-a.width,u*=o?1:-1)}var O=Object.assign({position:s},l&&rr);if(o){var x;return Object.assign({},O,(x={},x[y]=b?"0":"",x[h]=g?"0":"",x.transform=(A.devicePixelRatio||1)<2?"translate("+u+"px, "+m+"px)":"translate3d("+u+"px, "+m+"px, 0)",x))}return Object.assign({},O,(e={},e[y]=b?m+"px":"",e[h]=g?u+"px":"",e.transform="",e))}function ar(t){var e=t.state,r=t.options,a=r.gpuAcceleration,n=a===void 0?!0:a,i=r.adaptive,s=i===void 0?!0:i,o=r.roundOffsets,l=o===void 0?!0:o,d={placement:W(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Ke(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Ke(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const or={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ar,data:{}};var he={passive:!0};function ir(t){var e=t.state,r=t.instance,a=t.options,n=a.scroll,i=n===void 0?!0:n,s=a.resize,o=s===void 0?!0:s,l=B(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&d.forEach(function(c){c.addEventListener("scroll",r.update,he)}),o&&l.addEventListener("resize",r.update,he),function(){i&&d.forEach(function(c){c.removeEventListener("scroll",r.update,he)}),o&&l.removeEventListener("resize",r.update,he)}}const sr={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ir,data:{}};var cr={left:"right",right:"left",bottom:"top",top:"bottom"};function Ae(t){return t.replace(/left|right|bottom|top/g,function(e){return cr[e]})}var lr={start:"end",end:"start"};function Ge(t){return t.replace(/start|end/g,function(e){return lr[e]})}function je(t){var e=B(t),r=e.pageXOffset,a=e.pageYOffset;return{scrollLeft:r,scrollTop:a}}function Re(t){return Q(N(t)).left+je(t).scrollLeft}function dr(t){var e=B(t),r=N(t),a=e.visualViewport,n=r.clientWidth,i=r.clientHeight,s=0,o=0;return a&&(n=a.width,i=a.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=a.offsetLeft,o=a.offsetTop)),{width:n,height:i,x:s+Re(t),y:o}}function fr(t){var e,r=N(t),a=je(t),n=(e=t.ownerDocument)==null?void 0:e.body,i=H(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),s=H(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),o=-a.scrollLeft+Re(t),l=-a.scrollTop;return _(n||r).direction==="rtl"&&(o+=H(r.clientWidth,n?n.clientWidth:0)-i),{width:i,height:s,x:o,y:l}}function We(t){var e=_(t),r=e.overflow,a=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+a)}function bt(t){return["html","body","#document"].indexOf(I(t))>=0?t.ownerDocument.body:q(t)&&We(t)?t:bt(xe(t))}function re(t,e){var r;e===void 0&&(e=[]);var a=bt(t),n=a===((r=t.ownerDocument)==null?void 0:r.body),i=B(a),s=n?[i].concat(i.visualViewport||[],We(a)?a:[]):a,o=e.concat(s);return n?o:o.concat(re(xe(s)))}function ke(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ur(t){var e=Q(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function Qe(t,e){return e===lt?ke(dr(t)):q(e)?ur(e):ke(fr(N(t)))}function pr(t){var e=re(xe(t)),r=["absolute","fixed"].indexOf(_(t).position)>=0,a=r&&q(t)?ce(t):t;return ne(a)?e.filter(function(n){return ne(n)&&ut(n,a)&&I(n)!=="body"}):[]}function vr(t,e,r){var a=e==="clippingParents"?pr(t):[].concat(e),n=[].concat(a,[r]),i=n[0],s=n.reduce(function(o,l){var d=Qe(t,l);return o.top=H(d.top,o.top),o.right=ae(d.right,o.right),o.bottom=ae(d.bottom,o.bottom),o.left=H(d.left,o.left),o},Qe(t,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function oe(t){return t.split("-")[1]}function ht(t){var e=t.reference,r=t.element,a=t.placement,n=a?W(a):null,i=a?oe(a):null,s=e.x+e.width/2-r.width/2,o=e.y+e.height/2-r.height/2,l;switch(n){case P:l={x:s,y:e.y-r.height};break;case T:l={x:s,y:e.y+e.height};break;case D:l={x:e.x+e.width,y:o};break;case $:l={x:e.x-r.width,y:o};break;default:l={x:e.x,y:e.y}}var d=n?Be(n):null;if(d!=null){var c=d==="y"?"height":"width";switch(i){case G:l[d]=l[d]-(e[c]/2-r[c]/2);break;case De:l[d]=l[d]+(e[c]/2-r[c]/2);break}}return l}function ie(t,e){e===void 0&&(e={});var r=e,a=r.placement,n=a===void 0?t.placement:a,i=r.boundary,s=i===void 0?jt:i,o=r.rootBoundary,l=o===void 0?lt:o,d=r.elementContext,c=d===void 0?ee:d,p=r.altBoundary,u=p===void 0?!1:p,v=r.padding,m=v===void 0?0:v,g=vt(typeof m!="number"?m:mt(m,se)),b=c===ee?Rt:ee,h=t.elements.reference,y=t.rects.popper,A=t.elements[u?b:c],f=vr(ne(A)?A:A.contextElement||N(t.elements.popper),s,l),L=Q(h),w=ht({reference:L,element:y,placement:n}),O=ke(Object.assign({},y,w)),x=c===ee?O:L,C={top:f.top-x.top+g.top,bottom:x.bottom-f.bottom+g.bottom,left:f.left-x.left+g.left,right:x.right-f.right+g.right},k=t.modifiersData.offset;if(c===ee&&k){var j=k[n];Object.keys(C).forEach(function(M){var S=[D,T].indexOf(M)>=0?1:-1,F=[P,T].indexOf(M)>=0?"y":"x";C[M]+=j[F]*S})}return C}function mr(t,e){e===void 0&&(e={});var r=e,a=r.placement,n=r.boundary,i=r.rootBoundary,s=r.padding,o=r.flipVariations,l=r.allowedAutoPlacements,d=l===void 0?dt:l,c=oe(a),p=c?o?Ye:Ye.filter(function(m){return oe(m)===c}):se,u=p.filter(function(m){return d.indexOf(m)>=0});u.length===0&&(u=p);var v=u.reduce(function(m,g){return m[g]=ie(t,{placement:g,boundary:n,rootBoundary:i,padding:s})[W(g)],m},{});return Object.keys(v).sort(function(m,g){return v[m]-v[g]})}function br(t){if(W(t)===Te)return[];var e=Ae(t);return[Ge(t),e,Ge(e)]}function hr(t){var e=t.state,r=t.options,a=t.name;if(!e.modifiersData[a]._skip){for(var n=r.mainAxis,i=n===void 0?!0:n,s=r.altAxis,o=s===void 0?!0:s,l=r.fallbackPlacements,d=r.padding,c=r.boundary,p=r.rootBoundary,u=r.altBoundary,v=r.flipVariations,m=v===void 0?!0:v,g=r.allowedAutoPlacements,b=e.options.placement,h=W(b),y=h===b,A=l||(y||!m?[Ae(b)]:br(b)),f=[b].concat(A).reduce(function(V,R){return V.concat(W(R)===Te?mr(e,{placement:R,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:g}):R)},[]),L=e.rects.reference,w=e.rects.popper,O=new Map,x=!0,C=f[0],k=0;k<f.length;k++){var j=f[k],M=W(j),S=oe(j)===G,F=[P,T].indexOf(M)>=0,Z=F?"width":"height",U=ie(e,{placement:j,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),z=F?S?D:$:S?T:P;L[Z]>w[Z]&&(z=Ae(z));var Ee=Ae(z),X=[];if(i&&X.push(U[M]<=0),o&&X.push(U[z]<=0,U[Ee]<=0),X.every(function(V){return V})){C=j,x=!1;break}O.set(j,X)}if(x)for(var le=m?3:1,Oe=function(R){var fe=f.find(function(Le){var J=O.get(Le);if(J)return J.slice(0,R).every(function(Ce){return Ce})});if(fe)return C=fe,"break"},Y=le;Y>0;Y--){var de=Oe(Y);if(de==="break")break}e.placement!==C&&(e.modifiersData[a]._skip=!0,e.placement=C,e.reset=!0)}}const gr={name:"flip",enabled:!0,phase:"main",fn:hr,requiresIfExists:["offset"],data:{_skip:!1}};function Ze(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function et(t){return[P,D,T,$].some(function(e){return t[e]>=0})}function yr(t){var e=t.state,r=t.name,a=e.rects.reference,n=e.rects.popper,i=e.modifiersData.preventOverflow,s=ie(e,{elementContext:"reference"}),o=ie(e,{altBoundary:!0}),l=Ze(s,a),d=Ze(o,n,i),c=et(l),p=et(d);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:d,isReferenceHidden:c,hasPopperEscaped:p},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":p})}const wr={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:yr};function Ar(t,e,r){var a=W(t),n=[$,P].indexOf(a)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,s=i[0],o=i[1];return s=s||0,o=(o||0)*n,[$,D].indexOf(a)>=0?{x:o,y:s}:{x:s,y:o}}function xr(t){var e=t.state,r=t.options,a=t.name,n=r.offset,i=n===void 0?[0,0]:n,s=dt.reduce(function(c,p){return c[p]=Ar(p,e.rects,i),c},{}),o=s[e.placement],l=o.x,d=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=d),e.modifiersData[a]=s}const Er={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:xr};function Or(t){var e=t.state,r=t.name;e.modifiersData[r]=ht({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const Lr={name:"popperOffsets",enabled:!0,phase:"read",fn:Or,data:{}};function Cr(t){return t==="x"?"y":"x"}function Sr(t){var e=t.state,r=t.options,a=t.name,n=r.mainAxis,i=n===void 0?!0:n,s=r.altAxis,o=s===void 0?!1:s,l=r.boundary,d=r.rootBoundary,c=r.altBoundary,p=r.padding,u=r.tether,v=u===void 0?!0:u,m=r.tetherOffset,g=m===void 0?0:m,b=ie(e,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=W(e.placement),y=oe(e.placement),A=!y,f=Be(h),L=Cr(f),w=e.modifiersData.popperOffsets,O=e.rects.reference,x=e.rects.popper,C=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,k={x:0,y:0};if(w){if(i||o){var j=f==="y"?P:$,M=f==="y"?T:D,S=f==="y"?"height":"width",F=w[f],Z=w[f]+b[j],U=w[f]-b[M],z=v?-x[S]/2:0,Ee=y===G?O[S]:x[S],X=y===G?-x[S]:-O[S],le=e.elements.arrow,Oe=v&&le?qe(le):{width:0,height:0},Y=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:pt(),de=Y[j],V=Y[M],R=we(0,O[S],Oe[S]),fe=A?O[S]/2-z-R-de-C:Ee-R-de-C,Le=A?-O[S]/2+z+R+V+C:X+R+V+C,J=e.elements.arrow&&ce(e.elements.arrow),Ce=J?f==="y"?J.clientTop||0:J.clientLeft||0:0,Ie=e.modifiersData.offset?e.modifiersData.offset[e.placement][f]:0,Me=w[f]+fe-Ie-Ce,_e=w[f]+Le-Ie;if(i){var He=we(v?ae(Z,Me):Z,F,v?H(U,_e):U);w[f]=He,k[f]=He-F}if(o){var wt=f==="x"?P:$,At=f==="x"?T:D,ue=w[L],Ne=ue+b[wt],Fe=ue-b[At],ze=we(v?ae(Ne,Me):Ne,ue,v?H(Fe,_e):Fe);w[L]=ze,k[L]=ze-ue}}e.modifiersData[a]=k}}const kr={name:"preventOverflow",enabled:!0,phase:"main",fn:Sr,requiresIfExists:["offset"]};function Pr(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function $r(t){return t===B(t)||!q(t)?je(t):Pr(t)}function Tr(t,e,r){r===void 0&&(r=!1);var a=N(e),n=Q(t),i=q(e),s={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(i||!i&&!r)&&((I(e)!=="body"||We(a))&&(s=$r(e)),q(e)?(o=Q(e),o.x+=e.clientLeft,o.y+=e.clientTop):a&&(o.x=Re(a))),{x:n.left+s.scrollLeft-o.x,y:n.top+s.scrollTop-o.y,width:n.width,height:n.height}}function Dr(t){var e=new Map,r=new Set,a=[];t.forEach(function(i){e.set(i.name,i)});function n(i){r.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(o){if(!r.has(o)){var l=e.get(o);l&&n(l)}}),a.push(i)}return t.forEach(function(i){r.has(i.name)||n(i)}),a}function qr(t){var e=Dr(t);return Ut.reduce(function(r,a){return r.concat(e.filter(function(n){return n.phase===a}))},[])}function Br(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function jr(t){var e=t.reduce(function(r,a){var n=r[a.name];return r[a.name]=n?Object.assign({},n,a,{options:Object.assign({},n.options,a.options),data:Object.assign({},n.data,a.data)}):a,r},{});return Object.keys(e).map(function(r){return e[r]})}var tt={placement:"bottom",modifiers:[],strategy:"absolute"};function rt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function Rr(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,a=r===void 0?[]:r,n=e.defaultOptions,i=n===void 0?tt:n;return function(o,l,d){d===void 0&&(d=i);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},tt,i),modifiersData:{},elements:{reference:o,popper:l},attributes:{},styles:{}},p=[],u=!1,v={state:c,setOptions:function(h){g(),c.options=Object.assign({},i,c.options,h),c.scrollParents={reference:ne(o)?re(o):o.contextElement?re(o.contextElement):[],popper:re(l)};var y=qr(jr([].concat(a,c.options.modifiers)));return c.orderedModifiers=y.filter(function(A){return A.enabled}),m(),v.update()},forceUpdate:function(){if(!u){var h=c.elements,y=h.reference,A=h.popper;if(rt(y,A)){c.rects={reference:Tr(y,ce(A),c.options.strategy==="fixed"),popper:qe(A)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(k){return c.modifiersData[k.name]=Object.assign({},k.data)});for(var f=0;f<c.orderedModifiers.length;f++){if(c.reset===!0){c.reset=!1,f=-1;continue}var L=c.orderedModifiers[f],w=L.fn,O=L.options,x=O===void 0?{}:O,C=L.name;typeof w=="function"&&(c=w({state:c,options:x,name:C,instance:v})||c)}}}},update:Br(function(){return new Promise(function(b){v.forceUpdate(),b(c)})}),destroy:function(){g(),u=!0}};if(!rt(o,l))return v;v.setOptions(d).then(function(b){!u&&d.onFirstUpdate&&d.onFirstUpdate(b)});function m(){c.orderedModifiers.forEach(function(b){var h=b.name,y=b.options,A=y===void 0?{}:y,f=b.effect;if(typeof f=="function"){var L=f({state:c,name:h,instance:v,options:A}),w=function(){};p.push(L||w)}})}function g(){p.forEach(function(b){return b()}),p=[]}return v}}var Wr=[sr,Lr,or,Jt,Er,gr,kr,tr,wr],Ir=Rr({defaultModifiers:Wr});const Mr=parseInt(it.baseline.$value,10),_r="js-mds-popover-trigger",ge="mds-popover--active",te={init:()=>{Array.from(document.querySelectorAll(`.${_r}`)).forEach(e=>{const a=`${e.getAttribute("id")}-content`,n=document.getElementById(a),i=n.dataset?n.dataset.placement:null,s=Ir(e,n,{placement:i||"top-end",strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,Mr*3]}},{name:"arrow",options:{padding:5}}]});e.setAttribute("aria-expanded","false"),n.setAttribute("aria-hidden","true"),e.addEventListener("click",o=>{o.preventDefault(),s.update(),n.classList.toggle(ge),te.setAriaAttr(e,n,ge)}),document.addEventListener("mousedown",o=>{te.hide(e,n,s,ge,o)}),document.addEventListener("keydown",o=>{te.hide(e,n,s,ge,o)})})},hide:(t,e,r,a,n)=>{!t.contains(n.target)&&!r.state.elements.popper.contains(n.target)&&e.classList.contains(a)&&(e.classList.remove(a),te.setAriaAttr(t,e,a))},setAriaAttr:(t,e,r)=>{e.classList.contains(r)?(t.setAttribute("aria-expanded","true"),e.removeAttribute("aria-hidden")):(t.setAttribute("aria-expanded","false"),e.setAttribute("aria-hidden","true"))}},Hr=parseInt(st.size.breakpoint.md.$value,10),nt="data-modal-id",at="mds-modal--active",Nr="js-mds-modal-close";let ye;const K={init:()=>{window.innerWidth>Hr&&Array.from(document.querySelectorAll(`[${nt}]`)).forEach(r=>{const a=r.getAttribute(nt),n=document.getElementById(a),i=Array.from(n.querySelectorAll(`.${Nr}`)),s=n.getAttribute("data-site-container"),o=document.getElementById(s);let d=n.querySelectorAll('a[href], area[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]');d=Array.prototype.slice.call(d);const c=d[0],p=d[d.length-1];r.addEventListener("click",u=>{u.preventDefault(),K.open(n,c,o)}),n.addEventListener("click",u=>{u.target===n&&K.close(n,ye,o)}),n.addEventListener("keydown",u=>{K.trapFocus(u,c,p),(u.key==="Escape"||u.key==="Esc")&&K.close(n,ye,o)}),i.forEach(u=>{u.addEventListener("click",()=>{K.close(n,ye,o)})})})},open:(t,e,r)=>{ye=document.activeElement,t.classList.add(at),e.focus(),r.setAttribute("aria-hidden","true")},close:(t,e,r)=>{r.removeAttribute("aria-hidden"),t.classList.remove(at),e.focus()},trapFocus:(t,e,r)=>{t.key==="Tab"&&(t.shiftKey?document.activeElement===e&&(t.preventDefault(),r.focus()):document.activeElement===r&&(t.preventDefault(),e.focus()))}},Fr=".mds-form-element--file",Se="mds-form-element--selected-file",ot="mds-form-element--dragover",zr=".mds-file-upload__file-name",Vr=".mds-file-upload__remove-button",Ur="mds-form-element--file-supported",gt={init:()=>{gt.isBrowserIE()||Array.from(document.querySelectorAll(Fr)).forEach(e=>{e.classList.add(Ur);const r=e.querySelector(zr),a=e.querySelector("input[type=file]"),n=e.querySelector(Vr);document.addEventListener("readystatechange",()=>{a.files&&a.files.length&&(r.textContent=a.files[0].name,e.classList.add(Se))}),a.addEventListener("change",()=>{a.files&&a.files.length&&(r.textContent=a.files[0].name,e.classList.add(Se),n.focus())}),n.addEventListener("click",i=>{i.preventDefault(),a.value="",r.textContent="",e.classList.remove(Se),a.focus()}),["dragover","dragenter"].forEach(i=>{a.addEventListener(i,s=>{s.stopPropagation(),e.classList.add(ot)})}),["dragleave","dragend","drop"].forEach(i=>{a.addEventListener(i,s=>{s.stopPropagation(),e.classList.remove(ot)})})})},isBrowserIE:()=>!!window.document.documentMode},Xr=".mds-form-element--character-count",Yr=".mds-form-message--character-count",Jr=".js-character-count-number",Kr=".mds-form-control",Pe={init:()=>{Array.from(document.querySelectorAll(Xr)).forEach(e=>{const r=e.querySelector(Kr),a=r.getAttribute("maxlength"),n=e.querySelector(Yr),i=e.querySelector(Jr);r.removeAttribute("maxlength"),Pe.updateCounter(r,a,i,n),r.addEventListener("keyup",s=>{s.stopPropagation(),Pe.updateCounter(r,a,i,n)})})},updateCounter:(t,e,r,a)=>{const n=t.value.match(/(\r\n|\n|\r)/g),i=t.value.length+(n?n.length:0),s=e-i;r.textContent=s,s<0?a.classList.add("mds-form-message--error"):a.classList.remove("mds-form-message--error")}},Gr="js-mds-button-double-submit",yt={init:()=>{Array.from(document.querySelectorAll(`.${Gr}`)).forEach(e=>{e.addEventListener("click",()=>{yt.toggleDisable(e)})})},toggleDisable:t=>{setTimeout(()=>{t.setAttribute("disabled","")},1),setTimeout(()=>{t.removeAttribute("disabled")},1e3)}},Qr={setFluidVideos:()=>{Array.from(document.querySelectorAll(".mds-prose iframe, .mds-prose embed, .mds-prose object")).forEach(e=>{const r=document.createElement("div");r.classList.add("mds-fluid-video"),r.innerHTML=e.outerHTML,e.replaceWith(r)})}};window.customElements.get("mds-dropdown-nav")||window.customElements.define("mds-dropdown-nav",xt);const $e=()=>{E.init(),ct.init(),Tt.init(),Bt.init(),K.init(),gt.init(),Pe.init(),te.init(),yt.init(),Qr.setFluidVideos()};window.mdgxInitAll=$e;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",$e):$e();
|
|
1
|
+
import{M as xt}from"./dropdown-nav-B37nBO1_.js";window.addEventListener("hashchange",()=>{const t=window.location.hash.trim();Array.from(document.querySelectorAll(`a[href='${t}']`)).forEach(r=>{r.click()})},!1);const it={baseline:{$value:"4px"},breakpoint:{md:{$value:"600px"},lg:{$value:"1008px"}}},st={size:it},Et="js-tabs-item",Ve="mds-tabs",Ot="mds-tabs__list",Lt="mds-tabs__list-item",Ue="mds-tabs__panel",pe="mds-tabs__tab",ve="mds-tabs__tab--selected",Xe="mds-tabs__panel--hidden",me={left:37,right:39,up:38,down:40},Ct=".js-desktop-tabbed",St=".js-full-tabbed",kt=parseInt(st.size.breakpoint.lg.$value,10),E={init:()=>{E.setTabs(St),window.innerWidth>kt&&E.setTabs(Ct)},setTabs:t=>{const e=Array.from(document.querySelectorAll(`${t} .${pe}`)),r=Array.from(document.querySelectorAll(`${t} .${Ot}`)),a=Array.from(document.querySelectorAll(`${t} .${Lt}`)),n=Array.from(document.querySelectorAll(`${t} .${Ue}`));r.forEach(o=>{o.setAttribute("role","tablist")}),a.forEach(o=>{o.setAttribute("role","presentation")}),e.forEach(o=>{o.setAttribute("role","tab"),o.setAttribute("aria-controls",o.attributes.href.value.substring(1)),o.classList.contains(ve)?o.setAttribute("tabindex","0"):o.setAttribute("tabindex","-1")}),n.forEach(o=>{o.setAttribute("role","tabpanel"),o.setAttribute("aria-labelledby",`label-${o.attributes.id.value}`)});const i=document.querySelectorAll(`${t} .${Et}`);Array.from(i).forEach(o=>{const l=window.location.hash.trim(),d=o.attributes.href.value,c=o.closest(`.${Ve}`),p=E.getAllPanels(c),u=E.getAllTabs(c),v=E.getTargetPanel(o,c);o.addEventListener("click",m=>{m.preventDefault(),E.updateTabs(u,p,o,v,d)}),d===l&&E.updateTabs(u,p,o,v,d)}),r.forEach(o=>{const l=o.closest(`.${Ve}`),d=E.getAllPanels(l),c=E.getAllTabs(l);o.addEventListener("keydown",p=>{switch(p.keyCode){case me.left:case me.up:p.preventDefault(),E.moveTab(o,l,c,d,!1);break;case me.right:case me.down:p.preventDefault(),E.moveTab(o,l,c,d,!0);break}})})},getSelectedTab:t=>t.querySelector(`.${ve}`),getPrevTab:t=>t.parentElement.previousSibling?t.parentElement.previousSibling.querySelector(`.${pe}`):!1,getNextTab:t=>t.parentElement.nextSibling?t.parentElement.nextSibling.querySelector(`.${pe}`):!1,getTargetPanel:(t,e)=>{const r=t.attributes.href.value;return e.querySelector(r)},getAllPanels:t=>Array.from(t.querySelectorAll(`.${Ue}`)),getAllTabs:t=>Array.from(t.querySelectorAll(`.${pe}`)),moveTab:(t,e,r,a,n)=>{const i=E.getSelectedTab(t),s=n?E.getNextTab(i):E.getPrevTab(i);if(s){const o=s.attributes.href.value,l=E.getTargetPanel(s,e);E.updateTabs(r,a,s,l,o,!1)}},updateTabs:(t,e,r,a,n)=>{E.clearAllTabs(t),E.setActiveTab(r),E.clearAllPanels(e),E.setActivePanel(a,n)},clearAllTabs:t=>{t.forEach(e=>{e.classList.remove(ve),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")})},clearAllPanels:t=>{t.forEach(e=>{e.classList.add(Xe)})},setActiveTab:t=>{t.classList.add(ve),t.setAttribute("aria-selected","true"),t.setAttribute("tabindex","0"),t.focus()},setActivePanel:(t,e)=>{t.classList.remove(Xe),window.history.replaceState({},"",e)}},Pt="mds-accordion--breakpoint",$t="mds-accordion__label",ct={init:()=>{const t=document.querySelectorAll(`.${Pt}`),e=window.innerWidth;t.forEach(a=>{ct.checkBreakpoint(a,e)||(a.open=!0,a.querySelector("summary").style.display="none")}),document.querySelectorAll(`.${$t}`).forEach(a=>{a.addEventListener("click",({target:n})=>{const i=n.closest("details"),s=i.querySelector("summary");i.open=!1,s.focus()})})},checkBreakpoint:(t,e)=>{let r=0;if(t.dataset.bp){const a=t.dataset.bp.replace(/\D/g,""),n=t.dataset.bp.replace(/[0-9]/g,"");let i,s;switch(n){case"px":r=a;break;case"em":i=window.getComputedStyle(document.querySelector("body"))["font-size"],s=a*parseFloat(i),r=s;break;case"rem":i=window.getComputedStyle(document.querySelector("body"))["font-size"],s=a*parseFloat(i),r=s;break;default:return!0}return!(e>r)}return!0}},Tt={init:()=>{const t=document.querySelectorAll(".mds-subnavigation"),e=[];let r;t.forEach(n=>{const i=n.querySelector(".mds-subnavigation__link-list"),s=Array.from(i.children),o=s[0],l=n.querySelector(".mds-subnavigation__mobile-title"),d=n.querySelector(".mds-subnavigation__drawer"),c=n.querySelector(".mds-subnavigation__drawer-label"),p=n.querySelector(".mds-subnavigation__drawer-label-text"),u=n.querySelector(".mds-subnavigation__drawer-content"),v=d.dataset.label,m=d.dataset.labelPlural;c.addEventListener("click",()=>{c.getAttribute("aria-expanded")==="true"?c.setAttribute("aria-expanded","false"):c.setAttribute("aria-expanded","true")}),d.addEventListener("focusout",b=>{d.contains(b.relatedTarget)||c.setAttribute("aria-expanded","false")});const g=()=>i.clientHeight>o.offsetHeight;e.push(()=>{c.setAttribute("aria-expanded","false"),window.getComputedStyle(l).getPropertyValue("display")==="none"?(s.forEach(h=>{i.append(h)}),d.style.display="none",g()&&(d.style.display="list-item",s.slice().reverse().forEach(h=>{if(g()&&h!==d){u.prepend(h);const y=Array.from(u.children).length,A=y>1?m:v;p.innerText=A.replace("{count}",y)}else i.prepend(h)}),u.style.width=`${i.offsetWidth-d.offsetLeft}px`)):(s.forEach(h=>{h!==d&&h!==l&&u.append(h)}),u.style.width="initial",d.style.display="block")})});const a=()=>{e.forEach(n=>{n()})};a(),window.onresize=()=>{clearTimeout(r),r=setTimeout(a,100)}}},Dt="mds-checkbox-accordion__button",qt="mds-checkbox-accordion__button--open",Bt={init:()=>{document.querySelectorAll(`.${Dt}`).forEach(e=>{e.classList.contains(qt)?e.setAttribute("aria-expanded","true"):e.setAttribute("aria-expanded","false"),e.addEventListener("click",()=>{e.getAttribute("aria-expanded")==="true"?e.setAttribute("aria-expanded","false"):e.setAttribute("aria-expanded","true")})})}};var P="top",T="bottom",D="right",$="left",Te="auto",se=[P,T,D,$],G="start",De="end",jt="clippingParents",lt="viewport",ee="popper",Rt="reference",Ye=se.reduce(function(t,e){return t.concat([e+"-"+G,e+"-"+De])},[]),dt=[].concat(se,[Te]).reduce(function(t,e){return t.concat([e,e+"-"+G,e+"-"+De])},[]),Wt="beforeRead",It="read",Mt="afterRead",_t="beforeMain",Ht="main",Nt="afterMain",Ft="beforeWrite",zt="write",Vt="afterWrite",Ut=[Wt,It,Mt,_t,Ht,Nt,Ft,zt,Vt];function I(t){return t?(t.nodeName||"").toLowerCase():null}function B(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ne(t){var e=B(t).Element;return t instanceof e||t instanceof Element}function q(t){var e=B(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function ft(t){if(typeof ShadowRoot>"u")return!1;var e=B(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Xt(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var a=e.styles[r]||{},n=e.attributes[r]||{},i=e.elements[r];!q(i)||!I(i)||(Object.assign(i.style,a),Object.keys(n).forEach(function(s){var o=n[s];o===!1?i.removeAttribute(s):i.setAttribute(s,o===!0?"":o)}))})}function Yt(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(a){var n=e.elements[a],i=e.attributes[a]||{},s=Object.keys(e.styles.hasOwnProperty(a)?e.styles[a]:r[a]),o=s.reduce(function(l,d){return l[d]="",l},{});!q(n)||!I(n)||(Object.assign(n.style,o),Object.keys(i).forEach(function(l){n.removeAttribute(l)}))})}}const Jt={name:"applyStyles",enabled:!0,phase:"write",fn:Xt,effect:Yt,requires:["computeStyles"]};function W(t){return t.split("-")[0]}function Q(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function qe(t){var e=Q(t),r=t.offsetWidth,a=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-a)<=1&&(a=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:a}}function ut(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&ft(r)){var a=e;do{if(a&&t.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function _(t){return B(t).getComputedStyle(t)}function Kt(t){return["table","td","th"].indexOf(I(t))>=0}function N(t){return((ne(t)?t.ownerDocument:t.document)||window.document).documentElement}function xe(t){return I(t)==="html"?t:t.assignedSlot||t.parentNode||(ft(t)?t.host:null)||N(t)}function Je(t){return!q(t)||_(t).position==="fixed"?null:t.offsetParent}function Gt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&q(t)){var a=_(t);if(a.position==="fixed")return null}for(var n=xe(t);q(n)&&["html","body"].indexOf(I(n))<0;){var i=_(n);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return n;n=n.parentNode}return null}function ce(t){for(var e=B(t),r=Je(t);r&&Kt(r)&&_(r).position==="static";)r=Je(r);return r&&(I(r)==="html"||I(r)==="body"&&_(r).position==="static")?e:r||Gt(t)||e}function Be(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var H=Math.max,ae=Math.min,be=Math.round;function we(t,e,r){return H(t,ae(e,r))}function pt(){return{top:0,right:0,bottom:0,left:0}}function vt(t){return Object.assign({},pt(),t)}function mt(t,e){return e.reduce(function(r,a){return r[a]=t,r},{})}var Qt=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,vt(typeof e!="number"?e:mt(e,se))};function Zt(t){var e,r=t.state,a=t.name,n=t.options,i=r.elements.arrow,s=r.modifiersData.popperOffsets,o=W(r.placement),l=Be(o),d=[$,D].indexOf(o)>=0,c=d?"height":"width";if(!(!i||!s)){var p=Qt(n.padding,r),u=qe(i),v=l==="y"?P:$,m=l==="y"?T:D,g=r.rects.reference[c]+r.rects.reference[l]-s[l]-r.rects.popper[c],b=s[l]-r.rects.reference[l],h=ce(i),y=h?l==="y"?h.clientHeight||0:h.clientWidth||0:0,A=g/2-b/2,f=p[v],L=y-u[c]-p[m],w=y/2-u[c]/2+A,O=we(f,w,L),x=l;r.modifiersData[a]=(e={},e[x]=O,e.centerOffset=O-w,e)}}function er(t){var e=t.state,r=t.options,a=r.element,n=a===void 0?"[data-popper-arrow]":a;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||ut(e.elements.popper,n)&&(e.elements.arrow=n))}const tr={name:"arrow",enabled:!0,phase:"main",fn:Zt,effect:er,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var rr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function nr(t){var e=t.x,r=t.y,a=window,n=a.devicePixelRatio||1;return{x:be(be(e*n)/n)||0,y:be(be(r*n)/n)||0}}function Ke(t){var e,r=t.popper,a=t.popperRect,n=t.placement,i=t.offsets,s=t.position,o=t.gpuAcceleration,l=t.adaptive,d=t.roundOffsets,c=d===!0?nr(i):typeof d=="function"?d(i):i,p=c.x,u=p===void 0?0:p,v=c.y,m=v===void 0?0:v,g=i.hasOwnProperty("x"),b=i.hasOwnProperty("y"),h=$,y=P,A=window;if(l){var f=ce(r),L="clientHeight",w="clientWidth";f===B(r)&&(f=N(r),_(f).position!=="static"&&(L="scrollHeight",w="scrollWidth")),f=f,n===P&&(y=T,m-=f[L]-a.height,m*=o?1:-1),n===$&&(h=D,u-=f[w]-a.width,u*=o?1:-1)}var O=Object.assign({position:s},l&&rr);if(o){var x;return Object.assign({},O,(x={},x[y]=b?"0":"",x[h]=g?"0":"",x.transform=(A.devicePixelRatio||1)<2?"translate("+u+"px, "+m+"px)":"translate3d("+u+"px, "+m+"px, 0)",x))}return Object.assign({},O,(e={},e[y]=b?m+"px":"",e[h]=g?u+"px":"",e.transform="",e))}function ar(t){var e=t.state,r=t.options,a=r.gpuAcceleration,n=a===void 0?!0:a,i=r.adaptive,s=i===void 0?!0:i,o=r.roundOffsets,l=o===void 0?!0:o,d={placement:W(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Ke(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Ke(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const or={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ar,data:{}};var he={passive:!0};function ir(t){var e=t.state,r=t.instance,a=t.options,n=a.scroll,i=n===void 0?!0:n,s=a.resize,o=s===void 0?!0:s,l=B(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&d.forEach(function(c){c.addEventListener("scroll",r.update,he)}),o&&l.addEventListener("resize",r.update,he),function(){i&&d.forEach(function(c){c.removeEventListener("scroll",r.update,he)}),o&&l.removeEventListener("resize",r.update,he)}}const sr={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ir,data:{}};var cr={left:"right",right:"left",bottom:"top",top:"bottom"};function Ae(t){return t.replace(/left|right|bottom|top/g,function(e){return cr[e]})}var lr={start:"end",end:"start"};function Ge(t){return t.replace(/start|end/g,function(e){return lr[e]})}function je(t){var e=B(t),r=e.pageXOffset,a=e.pageYOffset;return{scrollLeft:r,scrollTop:a}}function Re(t){return Q(N(t)).left+je(t).scrollLeft}function dr(t){var e=B(t),r=N(t),a=e.visualViewport,n=r.clientWidth,i=r.clientHeight,s=0,o=0;return a&&(n=a.width,i=a.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=a.offsetLeft,o=a.offsetTop)),{width:n,height:i,x:s+Re(t),y:o}}function fr(t){var e,r=N(t),a=je(t),n=(e=t.ownerDocument)==null?void 0:e.body,i=H(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),s=H(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),o=-a.scrollLeft+Re(t),l=-a.scrollTop;return _(n||r).direction==="rtl"&&(o+=H(r.clientWidth,n?n.clientWidth:0)-i),{width:i,height:s,x:o,y:l}}function We(t){var e=_(t),r=e.overflow,a=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+a)}function bt(t){return["html","body","#document"].indexOf(I(t))>=0?t.ownerDocument.body:q(t)&&We(t)?t:bt(xe(t))}function re(t,e){var r;e===void 0&&(e=[]);var a=bt(t),n=a===((r=t.ownerDocument)==null?void 0:r.body),i=B(a),s=n?[i].concat(i.visualViewport||[],We(a)?a:[]):a,o=e.concat(s);return n?o:o.concat(re(xe(s)))}function ke(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ur(t){var e=Q(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function Qe(t,e){return e===lt?ke(dr(t)):q(e)?ur(e):ke(fr(N(t)))}function pr(t){var e=re(xe(t)),r=["absolute","fixed"].indexOf(_(t).position)>=0,a=r&&q(t)?ce(t):t;return ne(a)?e.filter(function(n){return ne(n)&&ut(n,a)&&I(n)!=="body"}):[]}function vr(t,e,r){var a=e==="clippingParents"?pr(t):[].concat(e),n=[].concat(a,[r]),i=n[0],s=n.reduce(function(o,l){var d=Qe(t,l);return o.top=H(d.top,o.top),o.right=ae(d.right,o.right),o.bottom=ae(d.bottom,o.bottom),o.left=H(d.left,o.left),o},Qe(t,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function oe(t){return t.split("-")[1]}function ht(t){var e=t.reference,r=t.element,a=t.placement,n=a?W(a):null,i=a?oe(a):null,s=e.x+e.width/2-r.width/2,o=e.y+e.height/2-r.height/2,l;switch(n){case P:l={x:s,y:e.y-r.height};break;case T:l={x:s,y:e.y+e.height};break;case D:l={x:e.x+e.width,y:o};break;case $:l={x:e.x-r.width,y:o};break;default:l={x:e.x,y:e.y}}var d=n?Be(n):null;if(d!=null){var c=d==="y"?"height":"width";switch(i){case G:l[d]=l[d]-(e[c]/2-r[c]/2);break;case De:l[d]=l[d]+(e[c]/2-r[c]/2);break}}return l}function ie(t,e){e===void 0&&(e={});var r=e,a=r.placement,n=a===void 0?t.placement:a,i=r.boundary,s=i===void 0?jt:i,o=r.rootBoundary,l=o===void 0?lt:o,d=r.elementContext,c=d===void 0?ee:d,p=r.altBoundary,u=p===void 0?!1:p,v=r.padding,m=v===void 0?0:v,g=vt(typeof m!="number"?m:mt(m,se)),b=c===ee?Rt:ee,h=t.elements.reference,y=t.rects.popper,A=t.elements[u?b:c],f=vr(ne(A)?A:A.contextElement||N(t.elements.popper),s,l),L=Q(h),w=ht({reference:L,element:y,placement:n}),O=ke(Object.assign({},y,w)),x=c===ee?O:L,C={top:f.top-x.top+g.top,bottom:x.bottom-f.bottom+g.bottom,left:f.left-x.left+g.left,right:x.right-f.right+g.right},k=t.modifiersData.offset;if(c===ee&&k){var j=k[n];Object.keys(C).forEach(function(M){var S=[D,T].indexOf(M)>=0?1:-1,F=[P,T].indexOf(M)>=0?"y":"x";C[M]+=j[F]*S})}return C}function mr(t,e){e===void 0&&(e={});var r=e,a=r.placement,n=r.boundary,i=r.rootBoundary,s=r.padding,o=r.flipVariations,l=r.allowedAutoPlacements,d=l===void 0?dt:l,c=oe(a),p=c?o?Ye:Ye.filter(function(m){return oe(m)===c}):se,u=p.filter(function(m){return d.indexOf(m)>=0});u.length===0&&(u=p);var v=u.reduce(function(m,g){return m[g]=ie(t,{placement:g,boundary:n,rootBoundary:i,padding:s})[W(g)],m},{});return Object.keys(v).sort(function(m,g){return v[m]-v[g]})}function br(t){if(W(t)===Te)return[];var e=Ae(t);return[Ge(t),e,Ge(e)]}function hr(t){var e=t.state,r=t.options,a=t.name;if(!e.modifiersData[a]._skip){for(var n=r.mainAxis,i=n===void 0?!0:n,s=r.altAxis,o=s===void 0?!0:s,l=r.fallbackPlacements,d=r.padding,c=r.boundary,p=r.rootBoundary,u=r.altBoundary,v=r.flipVariations,m=v===void 0?!0:v,g=r.allowedAutoPlacements,b=e.options.placement,h=W(b),y=h===b,A=l||(y||!m?[Ae(b)]:br(b)),f=[b].concat(A).reduce(function(V,R){return V.concat(W(R)===Te?mr(e,{placement:R,boundary:c,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:g}):R)},[]),L=e.rects.reference,w=e.rects.popper,O=new Map,x=!0,C=f[0],k=0;k<f.length;k++){var j=f[k],M=W(j),S=oe(j)===G,F=[P,T].indexOf(M)>=0,Z=F?"width":"height",U=ie(e,{placement:j,boundary:c,rootBoundary:p,altBoundary:u,padding:d}),z=F?S?D:$:S?T:P;L[Z]>w[Z]&&(z=Ae(z));var Ee=Ae(z),X=[];if(i&&X.push(U[M]<=0),o&&X.push(U[z]<=0,U[Ee]<=0),X.every(function(V){return V})){C=j,x=!1;break}O.set(j,X)}if(x)for(var le=m?3:1,Oe=function(R){var fe=f.find(function(Le){var J=O.get(Le);if(J)return J.slice(0,R).every(function(Ce){return Ce})});if(fe)return C=fe,"break"},Y=le;Y>0;Y--){var de=Oe(Y);if(de==="break")break}e.placement!==C&&(e.modifiersData[a]._skip=!0,e.placement=C,e.reset=!0)}}const gr={name:"flip",enabled:!0,phase:"main",fn:hr,requiresIfExists:["offset"],data:{_skip:!1}};function Ze(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function et(t){return[P,D,T,$].some(function(e){return t[e]>=0})}function yr(t){var e=t.state,r=t.name,a=e.rects.reference,n=e.rects.popper,i=e.modifiersData.preventOverflow,s=ie(e,{elementContext:"reference"}),o=ie(e,{altBoundary:!0}),l=Ze(s,a),d=Ze(o,n,i),c=et(l),p=et(d);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:d,isReferenceHidden:c,hasPopperEscaped:p},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":p})}const wr={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:yr};function Ar(t,e,r){var a=W(t),n=[$,P].indexOf(a)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,s=i[0],o=i[1];return s=s||0,o=(o||0)*n,[$,D].indexOf(a)>=0?{x:o,y:s}:{x:s,y:o}}function xr(t){var e=t.state,r=t.options,a=t.name,n=r.offset,i=n===void 0?[0,0]:n,s=dt.reduce(function(c,p){return c[p]=Ar(p,e.rects,i),c},{}),o=s[e.placement],l=o.x,d=o.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=d),e.modifiersData[a]=s}const Er={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:xr};function Or(t){var e=t.state,r=t.name;e.modifiersData[r]=ht({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const Lr={name:"popperOffsets",enabled:!0,phase:"read",fn:Or,data:{}};function Cr(t){return t==="x"?"y":"x"}function Sr(t){var e=t.state,r=t.options,a=t.name,n=r.mainAxis,i=n===void 0?!0:n,s=r.altAxis,o=s===void 0?!1:s,l=r.boundary,d=r.rootBoundary,c=r.altBoundary,p=r.padding,u=r.tether,v=u===void 0?!0:u,m=r.tetherOffset,g=m===void 0?0:m,b=ie(e,{boundary:l,rootBoundary:d,padding:p,altBoundary:c}),h=W(e.placement),y=oe(e.placement),A=!y,f=Be(h),L=Cr(f),w=e.modifiersData.popperOffsets,O=e.rects.reference,x=e.rects.popper,C=typeof g=="function"?g(Object.assign({},e.rects,{placement:e.placement})):g,k={x:0,y:0};if(w){if(i||o){var j=f==="y"?P:$,M=f==="y"?T:D,S=f==="y"?"height":"width",F=w[f],Z=w[f]+b[j],U=w[f]-b[M],z=v?-x[S]/2:0,Ee=y===G?O[S]:x[S],X=y===G?-x[S]:-O[S],le=e.elements.arrow,Oe=v&&le?qe(le):{width:0,height:0},Y=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:pt(),de=Y[j],V=Y[M],R=we(0,O[S],Oe[S]),fe=A?O[S]/2-z-R-de-C:Ee-R-de-C,Le=A?-O[S]/2+z+R+V+C:X+R+V+C,J=e.elements.arrow&&ce(e.elements.arrow),Ce=J?f==="y"?J.clientTop||0:J.clientLeft||0:0,Ie=e.modifiersData.offset?e.modifiersData.offset[e.placement][f]:0,Me=w[f]+fe-Ie-Ce,_e=w[f]+Le-Ie;if(i){var He=we(v?ae(Z,Me):Z,F,v?H(U,_e):U);w[f]=He,k[f]=He-F}if(o){var wt=f==="x"?P:$,At=f==="x"?T:D,ue=w[L],Ne=ue+b[wt],Fe=ue-b[At],ze=we(v?ae(Ne,Me):Ne,ue,v?H(Fe,_e):Fe);w[L]=ze,k[L]=ze-ue}}e.modifiersData[a]=k}}const kr={name:"preventOverflow",enabled:!0,phase:"main",fn:Sr,requiresIfExists:["offset"]};function Pr(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function $r(t){return t===B(t)||!q(t)?je(t):Pr(t)}function Tr(t,e,r){r===void 0&&(r=!1);var a=N(e),n=Q(t),i=q(e),s={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(i||!i&&!r)&&((I(e)!=="body"||We(a))&&(s=$r(e)),q(e)?(o=Q(e),o.x+=e.clientLeft,o.y+=e.clientTop):a&&(o.x=Re(a))),{x:n.left+s.scrollLeft-o.x,y:n.top+s.scrollTop-o.y,width:n.width,height:n.height}}function Dr(t){var e=new Map,r=new Set,a=[];t.forEach(function(i){e.set(i.name,i)});function n(i){r.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(o){if(!r.has(o)){var l=e.get(o);l&&n(l)}}),a.push(i)}return t.forEach(function(i){r.has(i.name)||n(i)}),a}function qr(t){var e=Dr(t);return Ut.reduce(function(r,a){return r.concat(e.filter(function(n){return n.phase===a}))},[])}function Br(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function jr(t){var e=t.reduce(function(r,a){var n=r[a.name];return r[a.name]=n?Object.assign({},n,a,{options:Object.assign({},n.options,a.options),data:Object.assign({},n.data,a.data)}):a,r},{});return Object.keys(e).map(function(r){return e[r]})}var tt={placement:"bottom",modifiers:[],strategy:"absolute"};function rt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function Rr(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,a=r===void 0?[]:r,n=e.defaultOptions,i=n===void 0?tt:n;return function(o,l,d){d===void 0&&(d=i);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},tt,i),modifiersData:{},elements:{reference:o,popper:l},attributes:{},styles:{}},p=[],u=!1,v={state:c,setOptions:function(h){g(),c.options=Object.assign({},i,c.options,h),c.scrollParents={reference:ne(o)?re(o):o.contextElement?re(o.contextElement):[],popper:re(l)};var y=qr(jr([].concat(a,c.options.modifiers)));return c.orderedModifiers=y.filter(function(A){return A.enabled}),m(),v.update()},forceUpdate:function(){if(!u){var h=c.elements,y=h.reference,A=h.popper;if(rt(y,A)){c.rects={reference:Tr(y,ce(A),c.options.strategy==="fixed"),popper:qe(A)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(k){return c.modifiersData[k.name]=Object.assign({},k.data)});for(var f=0;f<c.orderedModifiers.length;f++){if(c.reset===!0){c.reset=!1,f=-1;continue}var L=c.orderedModifiers[f],w=L.fn,O=L.options,x=O===void 0?{}:O,C=L.name;typeof w=="function"&&(c=w({state:c,options:x,name:C,instance:v})||c)}}}},update:Br(function(){return new Promise(function(b){v.forceUpdate(),b(c)})}),destroy:function(){g(),u=!0}};if(!rt(o,l))return v;v.setOptions(d).then(function(b){!u&&d.onFirstUpdate&&d.onFirstUpdate(b)});function m(){c.orderedModifiers.forEach(function(b){var h=b.name,y=b.options,A=y===void 0?{}:y,f=b.effect;if(typeof f=="function"){var L=f({state:c,name:h,instance:v,options:A}),w=function(){};p.push(L||w)}})}function g(){p.forEach(function(b){return b()}),p=[]}return v}}var Wr=[sr,Lr,or,Jt,Er,gr,kr,tr,wr],Ir=Rr({defaultModifiers:Wr});const Mr=parseInt(it.baseline.$value,10),_r="js-mds-popover-trigger",ge="mds-popover--active",te={init:()=>{Array.from(document.querySelectorAll(`.${_r}`)).forEach(e=>{const a=`${e.getAttribute("id")}-content`,n=document.getElementById(a),i=n.dataset?n.dataset.placement:null,s=Ir(e,n,{placement:i||"top-end",strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,Mr*3]}},{name:"arrow",options:{padding:5}}]});e.setAttribute("aria-expanded","false"),n.setAttribute("aria-hidden","true"),e.addEventListener("click",o=>{o.preventDefault(),s.update(),n.classList.toggle(ge),te.setAriaAttr(e,n,ge)}),document.addEventListener("mousedown",o=>{te.hide(e,n,s,ge,o)}),document.addEventListener("keydown",o=>{te.hide(e,n,s,ge,o)})})},hide:(t,e,r,a,n)=>{!t.contains(n.target)&&!r.state.elements.popper.contains(n.target)&&e.classList.contains(a)&&(e.classList.remove(a),te.setAriaAttr(t,e,a))},setAriaAttr:(t,e,r)=>{e.classList.contains(r)?(t.setAttribute("aria-expanded","true"),e.removeAttribute("aria-hidden")):(t.setAttribute("aria-expanded","false"),e.setAttribute("aria-hidden","true"))}},Hr=parseInt(st.size.breakpoint.md.$value,10),nt="data-modal-id",at="mds-modal--active",Nr="js-mds-modal-close";let ye;const K={init:()=>{window.innerWidth>Hr&&Array.from(document.querySelectorAll(`[${nt}]`)).forEach(r=>{const a=r.getAttribute(nt),n=document.getElementById(a),i=Array.from(n.querySelectorAll(`.${Nr}`)),s=n.getAttribute("data-site-container"),o=document.getElementById(s);let d=n.querySelectorAll('a[href], area[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]');d=Array.prototype.slice.call(d);const c=d[0],p=d[d.length-1];r.addEventListener("click",u=>{u.preventDefault(),K.open(n,c,o)}),n.addEventListener("click",u=>{u.target===n&&K.close(n,ye,o)}),n.addEventListener("keydown",u=>{K.trapFocus(u,c,p),(u.key==="Escape"||u.key==="Esc")&&K.close(n,ye,o)}),i.forEach(u=>{u.addEventListener("click",()=>{K.close(n,ye,o)})})})},open:(t,e,r)=>{ye=document.activeElement,t.classList.add(at),e.focus(),r.setAttribute("aria-hidden","true")},close:(t,e,r)=>{r.removeAttribute("aria-hidden"),t.classList.remove(at),e.focus()},trapFocus:(t,e,r)=>{t.key==="Tab"&&(t.shiftKey?document.activeElement===e&&(t.preventDefault(),r.focus()):document.activeElement===r&&(t.preventDefault(),e.focus()))}},Fr=".mds-form-element--file",Se="mds-form-element--selected-file",ot="mds-form-element--dragover",zr=".mds-file-upload__file-name",Vr=".mds-file-upload__remove-button",Ur="mds-form-element--file-supported",gt={init:()=>{gt.isBrowserIE()||Array.from(document.querySelectorAll(Fr)).forEach(e=>{e.classList.add(Ur);const r=e.querySelector(zr),a=e.querySelector("input[type=file]"),n=e.querySelector(Vr);document.addEventListener("readystatechange",()=>{a.files&&a.files.length&&(r.textContent=a.files[0].name,e.classList.add(Se))}),a.addEventListener("change",()=>{a.files&&a.files.length&&(r.textContent=a.files[0].name,e.classList.add(Se),n.focus())}),n.addEventListener("click",i=>{i.preventDefault(),a.value="",r.textContent="",e.classList.remove(Se),a.focus()}),["dragover","dragenter"].forEach(i=>{a.addEventListener(i,s=>{s.stopPropagation(),e.classList.add(ot)})}),["dragleave","dragend","drop"].forEach(i=>{a.addEventListener(i,s=>{s.stopPropagation(),e.classList.remove(ot)})})})},isBrowserIE:()=>!!window.document.documentMode},Xr=".mds-form-element--character-count",Yr=".mds-form-message--character-count",Jr=".js-character-count-number",Kr=".mds-form-control",Pe={init:()=>{Array.from(document.querySelectorAll(Xr)).forEach(e=>{const r=e.querySelector(Kr),a=r.getAttribute("maxlength"),n=e.querySelector(Yr),i=e.querySelector(Jr);r.removeAttribute("maxlength"),Pe.updateCounter(r,a,i,n),r.addEventListener("keyup",s=>{s.stopPropagation(),Pe.updateCounter(r,a,i,n)})})},updateCounter:(t,e,r,a)=>{const n=t.value.match(/(\r\n|\n|\r)/g),i=t.value.length+(n?n.length:0),s=e-i;r.textContent=s,s<0?a.classList.add("mds-form-message--error"):a.classList.remove("mds-form-message--error")}},Gr="js-mds-button-double-submit",yt={init:()=>{Array.from(document.querySelectorAll(`.${Gr}`)).forEach(e=>{e.addEventListener("click",()=>{yt.toggleDisable(e)})})},toggleDisable:t=>{setTimeout(()=>{t.setAttribute("disabled","")},1),setTimeout(()=>{t.removeAttribute("disabled")},1e3)}},Qr={setFluidVideos:()=>{Array.from(document.querySelectorAll(".mds-prose iframe, .mds-prose embed, .mds-prose object")).forEach(e=>{const r=document.createElement("div");r.classList.add("mds-fluid-video"),r.innerHTML=e.outerHTML,e.replaceWith(r)})}};window.customElements.get("mds-dropdown-nav")||window.customElements.define("mds-dropdown-nav",xt);const $e=()=>{E.init(),ct.init(),Tt.init(),Bt.init(),K.init(),gt.init(),Pe.init(),te.init(),yt.init(),Qr.setFluidVideos()};window.mdgxInitAll=$e;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",$e):$e();
|
package/package.json
CHANGED
|
@@ -3,18 +3,32 @@
|
|
|
3
3
|
The mds-dropdown-nav is a server-side rendered web component designed to provide dropdown functionality. Unlike a standard Nunjucks include, this component encapsulates the trigger with reusable JavaScript and targets a second element ID via the target property.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
|
+
|
|
6
7
|
Wrap any HTML content inside the <mds-dropdown-nav> element to define the dropdown button's label. A second, associated element, specified via a target reference, is initially hidden, and their visibility is toggled when the button is clicked. This is achieved by toggling the elements ‘hidden’ attribute, and does not require CSS.
|
|
7
8
|
|
|
9
|
+
```html
|
|
10
|
+
<mds-dropdown-nav target="dropdown"> // Trigger HTML </mds-dropdown-nav>
|
|
11
|
+
|
|
12
|
+
<div id="dropdown" class="dropdown-target">// Content HTML</div>
|
|
8
13
|
```
|
|
9
|
-
<mds-dropdown-nav target="dropdown">
|
|
10
|
-
// Trigger HTML
|
|
11
|
-
</mds-dropdown-nav>
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
The class `.mds-dropdown-nav-target--expanded` is also toggled on the target element, which should be used for hiding to avoid [FOUC](https://en.wikipedia.org/wiki/Flash_of_unstyled_content) on page load that `[hidden]` attribute is not able to solve.
|
|
16
|
+
|
|
17
|
+
```css
|
|
18
|
+
/* when js is available, hide dropdown by default if it does not have the expanded class */
|
|
19
|
+
.js .dropdown-target:not(.mds-dropdown-nav-target--expanded) {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
16
22
|
```
|
|
17
23
|
|
|
24
|
+
## Standalone vs MDS JS
|
|
25
|
+
|
|
26
|
+
The main MDS JS bundle registers `<mds-dropdown-nav/>` web component. This is via the main JS at `@madgex/design-system/dist/js/index.js`.
|
|
27
|
+
|
|
28
|
+
The standalone version registers `<mds-dropdown-nav-standalone />` web component. This is via `@madgex/design-system/dist/js/components/mds-dropdown-nav-standalone.js`
|
|
29
|
+
|
|
30
|
+
This allows both to exist on the same page without conflict.
|
|
31
|
+
|
|
18
32
|
## Accessibility and Design Guidelines
|
|
19
33
|
|
|
20
34
|
The `mds-dropdown-nav` component is built with accessibility in mind, following best practices to ensure an inclusive user experience. However, developers should still adhere to the following design and implementation considerations:
|
|
@@ -38,7 +52,4 @@ These features help ensure that the component behaves correctly for users naviga
|
|
|
38
52
|
|
|
39
53
|
### Reference
|
|
40
54
|
|
|
41
|
-
[For additional guidance on accessible dropdown menus, refer to the W3C WAI tutorial on fly-out menus.](
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
55
|
+
[For additional guidance on accessible dropdown menus, refer to the W3C WAI tutorial on fly-out menus.](https://www.w3.org/WAI/tutorials/menus/flyout)
|
|
@@ -9,6 +9,11 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super();
|
|
11
11
|
|
|
12
|
+
// this component might be inside another shadowDOM component, so we need to access the correct document or shadowRoot elements
|
|
13
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Node/getRootNode#options
|
|
14
|
+
this._document = this.getRootNode({ composed: true });
|
|
15
|
+
this.documentOrShadowRoot = this.getRootNode();
|
|
16
|
+
|
|
12
17
|
// keep `this` context in event handlers, allows removeEventListener to work
|
|
13
18
|
this.onTriggerClick = this.onTriggerClick.bind(this);
|
|
14
19
|
this.onBodyClick = this.onBodyClick.bind(this);
|
|
@@ -35,7 +40,7 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
35
40
|
targetNode.addEventListener('keydown', this.onTargetKeyDown);
|
|
36
41
|
|
|
37
42
|
if (this.getAttribute('autohide') !== 'false') {
|
|
38
|
-
|
|
43
|
+
this._document.querySelector('body').addEventListener('click', this.onBodyClick);
|
|
39
44
|
targetNode.addEventListener('focusout', this.onTargetFocusOut);
|
|
40
45
|
}
|
|
41
46
|
|
|
@@ -52,7 +57,7 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
52
57
|
this.removeEventListener('click', this.onTriggerClick);
|
|
53
58
|
this.removeEventListener('keydown', this.onTriggerKeydown);
|
|
54
59
|
try {
|
|
55
|
-
|
|
60
|
+
this._document.querySelector('body').removeEventListener('click', this.onBodyClick);
|
|
56
61
|
} catch (err) {
|
|
57
62
|
console.warn('<mds-dropdown-nav> failed to remove body click onBodyClick', err);
|
|
58
63
|
}
|
|
@@ -98,7 +103,7 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
98
103
|
if (!ariaControlsSelector) {
|
|
99
104
|
throw new Error('<mds-dropdown-nav> must have attribute target e.g. target="my-nav"');
|
|
100
105
|
}
|
|
101
|
-
return
|
|
106
|
+
return this.documentOrShadowRoot.querySelector(`#${ariaControlsSelector}`);
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
/**
|
|
@@ -138,9 +143,16 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
138
143
|
}
|
|
139
144
|
}
|
|
140
145
|
|
|
146
|
+
/**
|
|
147
|
+
* Checks if something was clicked that was **not** this web component or target menu
|
|
148
|
+
* @param {Event} e
|
|
149
|
+
*/
|
|
141
150
|
onBodyClick(e) {
|
|
142
|
-
//
|
|
143
|
-
|
|
151
|
+
// composedPath is an array of all elements in the event chain, works with shadowDOM!
|
|
152
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath
|
|
153
|
+
const eventComposedPath = e.composedPath();
|
|
154
|
+
if (!eventComposedPath.includes(this.getTargetNode()) && !eventComposedPath.includes(this)) {
|
|
155
|
+
// nothing we own was clicked, so close target
|
|
144
156
|
this.setAttribute('aria-expanded', 'false');
|
|
145
157
|
}
|
|
146
158
|
}
|
|
@@ -151,8 +163,10 @@ export class MdsDropdownNav extends HTMLElement {
|
|
|
151
163
|
|
|
152
164
|
if (state === 'true') {
|
|
153
165
|
targetNode.removeAttribute('hidden');
|
|
166
|
+
targetNode.classList.add('mds-dropdown-nav-target--expanded');
|
|
154
167
|
} else {
|
|
155
168
|
targetNode.setAttribute('hidden', '');
|
|
169
|
+
targetNode.classList.remove('mds-dropdown-nav-target--expanded');
|
|
156
170
|
}
|
|
157
171
|
}
|
|
158
172
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{% from "./icons/_macro.njk" import MdsIcon %}
|
|
2
2
|
|
|
3
3
|
<!-- These classes are for example purposes only, and not a part of the design system package -->
|
|
4
|
+
{# Styles rendered in shadowDOM example too #}
|
|
5
|
+
{% macro Styles() %}
|
|
4
6
|
<style>
|
|
5
7
|
.dropdown-nav {
|
|
6
8
|
width: 100%;
|
|
@@ -8,6 +10,10 @@
|
|
|
8
10
|
cursor: pointer;
|
|
9
11
|
padding: 8px 20px;
|
|
10
12
|
background: #D1D5DB;
|
|
13
|
+
box-sizing:border-box;
|
|
14
|
+
}
|
|
15
|
+
.dropdown-nav * {
|
|
16
|
+
box-sizing:border-box;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
19
|
.double-nav {
|
|
@@ -43,8 +49,28 @@
|
|
|
43
49
|
.right-nav {
|
|
44
50
|
margin-left: auto;
|
|
45
51
|
}
|
|
52
|
+
.shadow-dom-content:not(.mds-dropdown-nav-target--expanded),
|
|
53
|
+
.mds-subnavigation__drawer-content:not(.mds-dropdown-nav-target--expanded) {
|
|
54
|
+
display: none;
|
|
55
|
+
}
|
|
56
|
+
.shadow-dom-content {
|
|
57
|
+
position: absolute;
|
|
58
|
+
padding: 20px;
|
|
59
|
+
text-align:center;
|
|
60
|
+
border: 2px solid black;
|
|
61
|
+
background-color: white;
|
|
62
|
+
width: 100%;
|
|
63
|
+
box-sizing:border-box;
|
|
64
|
+
}
|
|
65
|
+
.mds-icon {
|
|
66
|
+
width: 1em;
|
|
67
|
+
height: 1em;
|
|
68
|
+
display:block;
|
|
69
|
+
}
|
|
46
70
|
</style>
|
|
71
|
+
{% endmacro %}
|
|
47
72
|
|
|
73
|
+
{{Styles()}}
|
|
48
74
|
<h3>Basic Implementation</h3>
|
|
49
75
|
|
|
50
76
|
<nav class="position-relative mds-margin-bottom-b12">
|
|
@@ -63,6 +89,29 @@
|
|
|
63
89
|
</ul>
|
|
64
90
|
</nav>
|
|
65
91
|
|
|
92
|
+
<h3>Inside nested shadowDOM</h3>
|
|
93
|
+
|
|
94
|
+
<nav class="position-relative mds-margin-bottom-b12">
|
|
95
|
+
<template shadowrootmode="open">
|
|
96
|
+
<div style="position:relative;">
|
|
97
|
+
<template shadowrootmode="open">
|
|
98
|
+
|
|
99
|
+
{{Styles()}}
|
|
100
|
+
<mds-dropdown-nav
|
|
101
|
+
target="menu-nav-shadow"
|
|
102
|
+
class="dropdown-nav">
|
|
103
|
+
<span class="flex-1">Menu</span>
|
|
104
|
+
<span>{{- MdsIcon({ iconName: 'menu', classes: "mds-accordion__icon" }) -}}</span>
|
|
105
|
+
</mds-dropdown-nav>
|
|
106
|
+
<div id="menu-nav-shadow" class="shadow-dom-content">
|
|
107
|
+
Shadow Dom Content 🕵
|
|
108
|
+
</ul>
|
|
109
|
+
</template>
|
|
110
|
+
</div>
|
|
111
|
+
</template>
|
|
112
|
+
</nav>
|
|
113
|
+
|
|
114
|
+
|
|
66
115
|
<h3>Mobile Only</h3>
|
|
67
116
|
|
|
68
117
|
<nav class="position-relative mds-margin-bottom-b12">
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** "entry" file for standalone Web Component Vite output - allows hashed chunk file names, and at the same time predictable named entry files */
|
|
2
|
+
import { MdsDropdownNav } from './dropdown-nav.js';
|
|
3
|
+
|
|
4
|
+
// alternative name vs the main MDS bundle version, to avoid collision of defined names
|
|
5
|
+
if (!window.customElements.get('mds-dropdown-nav-standalone')) {
|
|
6
|
+
window.customElements.define('mds-dropdown-nav-standalone', MdsDropdownNav);
|
|
7
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as o}from"../dropdown-nav-DsMcgeGj.js";window.customElements.get("mds-dropdown-nav")||window.customElements.define("mds-dropdown-nav",o);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
class n extends HTMLElement{static observedAttributes=["aria-expanded"];constructor(){super(),this.onTriggerClick=this.onTriggerClick.bind(this),this.onBodyClick=this.onBodyClick.bind(this),this.onTargetClick=this.onTargetClick.bind(this),this.onTargetKeyDown=this.onTargetKeyDown.bind(this),this.onTargetFocusOut=this.onTargetFocusOut.bind(this)}connectedCallback(){this.addEventListener("click",this.onTriggerClick),this.addEventListener("keydown",this.onTriggerKeydown),(!this.getAttribute("role")||this.getAttribute("role")!=="button")&&this.setAttribute("role","button"),this.setAttribute("tabindex",0);const t=this.getTargetNode();t.addEventListener("click",this.onTargetClick),t.addEventListener("keydown",this.onTargetKeyDown),this.getAttribute("autohide")!=="false"&&(document.querySelector("body").addEventListener("click",this.onBodyClick),t.addEventListener("focusout",this.onTargetFocusOut)),this.getAttribute("aria-expanded")||this.setAttribute("aria-expanded","false")}disconnectedCallback(){this.removeEventListener("click",this.onTriggerClick),this.removeEventListener("keydown",this.onTriggerKeydown);try{document.querySelector("body").removeEventListener("click",this.onBodyClick)}catch(t){console.warn("<mds-dropdown-nav> failed to remove body click onBodyClick",t)}try{const t=this.getTargetNode();t&&(t.removeEventListener("click",this.onTargetClick),t.removeEventListener("keydown",this.onTargetKeyDown),this.getAttribute("autohide")!=="false"&&t.removeEventListener("focusout",this.onTargetFocusOut))}catch(t){throw console.log(t),new Error("<mds-dropdown-nav> failed to remove targetNode event listener")}}attributeChangedCallback(t,e,i){t==="aria-expanded"&&e!==i&&this.handleAriaExpandedState()}getTargetNode(){const t=this.getAttribute("target");if(!t)throw new Error('<mds-dropdown-nav> must have attribute target e.g. target="my-nav"');return document.querySelector(`#${t}`)}onTargetClick(t){t.stopPropagation()}onTargetFocusOut(t){t.relatedTarget||this.setAttribute("aria-expanded","false")}onTargetKeyDown(t){(t.key==="Escape"||t.key==="Esc")&&(t.preventDefault(),this.setAttribute("aria-expanded","false"))}onTriggerClick(t){t.preventDefault(),this.getAttribute("aria-expanded")==="true"?this.setAttribute("aria-expanded","false"):this.setAttribute("aria-expanded","true")}onTriggerKeydown(t){(t.code==="Enter"||t.code==="Space")&&this.onTriggerClick(t)}onBodyClick(t){!this.getTargetNode().contains(t.target)&&!this.contains(t.target)&&this.setAttribute("aria-expanded","false")}handleAriaExpandedState(){const t=this.getTargetNode();this.getAttribute("aria-expanded")==="true"?t.removeAttribute("hidden"):t.setAttribute("hidden","")}}export{n as M};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** "entry" file for standalone Web Component Vite output - allows hashed chunk file names, and at the same time predictable named entry files */
|
|
2
|
-
import { MdsDropdownNav } from './dropdown-nav.js';
|
|
3
|
-
|
|
4
|
-
// Possible to have a different customElement name vs MDS output, do we want to do that to avoid standalone vs MDS version collisions?
|
|
5
|
-
if (!window.customElements.get('mds-dropdown-nav')) {
|
|
6
|
-
window.customElements.define('mds-dropdown-nav', MdsDropdownNav);
|
|
7
|
-
}
|