Jacks_Bastards_Website/static/wagtailadmin/js/userbar.js

2 lines
585 KiB
JavaScript
Raw Normal View History

/*! For license information please see userbar.js.LICENSE.txt */
(()=>{var e,t={312:(e,t,r)=>{"use strict";var n=r(8609),a=r.n(n),o=r(2891),i=r(2178),u=r(1319);const s={id:"extractor",extract(e,t){const r=document.querySelector(e.targetElement)||document.body,n=r?.innerText||"",a=r?.innerHTML||"";t({lang:document.documentElement.lang||"en",innerText:n,innerHTML:a})}};var l=r(9104),c=r(2223),d=r(2277);class p extends HTMLElement{connectedCallback(){const e=document.querySelector("#wagtail-userbar-template");if(!e)return;const t=this.attachShadow({mode:"open"});t.appendChild(e.content.firstElementChild.cloneNode(!0)),e.remove();const r=t.querySelector("[data-wagtail-userbar]"),n=r?.querySelector("[data-wagtail-userbar-trigger]"),a=r?.querySelector("[role=menu]");if(!r||!n||!a)return;const o=this.inCrossOriginIframe;this.origin=o&&r.getAttribute("data-wagtail-userbar-origin")||window.location.origin;const i=a.querySelectorAll("li"),u="w-userbar--active";this.trigger=n,r.style.display="none";const s=e=>{r.classList.add(u),n.setAttribute("aria-expanded","true"),a.addEventListener("click",D,!1),window.addEventListener("click",h,!1),r.addEventListener("keydown",m,!1),e&&a.querySelector("a[href],\n button:not([disabled]),\n input:not([disabled])")&&setTimeout(()=>{p()},300)},l=()=>{r.classList.remove(u),n.setAttribute("aria-expanded","false"),a.addEventListener("click",D,!1),window.removeEventListener("click",h,!1),r.removeEventListener("keydown",m,!1)},c=()=>{i.forEach(e=>{e.firstElementChild.tabIndex=-1})},d=e=>{c(),e.tabIndex=0,setTimeout(()=>{e.focus()},100)},p=()=>{i.length>0&&d(i[0].firstElementChild)},f=()=>{i.length>0&&d(i[i.length-1].firstElementChild)},m=e=>{if("true"===n.getAttribute("aria-expanded")){if("Escape"===e.key)return l(),n&&(setTimeout(()=>n.focus(),300),c()),!1;if(t.activeElement&&t.activeElement.closest(".w-userbar-nav"))switch(e.key){case"ArrowDown":return e.preventDefault(),i.forEach((e,r)=>{e.firstElementChild===t.activeElement&&(r+1<i.length?d(i[r+1].firstElementChild):p())}),!1;case"ArrowUp":return e.preventDefault(),i.forEach((e,r)=>{e.firstElementChild===t.activeElement&&(r>0?d(i[r-1].firstElementChild):f())}),!1;case"Home":return e.preventDefault(),p(),!1;case"End":return e.preventDefault(),f(),!1}}return!0},D=e=>{e.stopPropagation()},h=()=>{l()};n.addEventListener("click",e=>{e.stopPropagation(),r.classList.contains(u)?l():s(!0)},!1),window.addEventListener("pageshow",l,!1),r.addEventListener("keydown",e=>{if(n===document.activeElement&&"false"===n.getAttribute("aria-expanded"))switch(e.key){case"ArrowUp":e.preventDefault(),s(!1),setTimeout(()=>f(),300);break;case"ArrowDown":e.preventDefault(),s(!1),setTimeout(()=>p(),300)}}),a.addEventListener("focusout",e=>{e.relatedTarget&&!e.relatedTarget.closest(".w-userbar-nav")&&(c(),l())}),c(),this.handleMessage=this.handleMessage.bind(this),this.onWindowLoad=this.onWindowLoad.bind(this),o&&window.addEventListener("message",this.handleMessage),"complete"===document.readyState?this.onWindowLoad():window.addEventListener("load",this.onWindowLoad)}async onWindowLoad(){this.postMessage({type:"w-preview:request-scroll",origin:window.location.origin}),await this.initializeAxe()}async initializeAxe(){if(this.axeConfig=(0,i.$R)(this.shadowRoot),!this.shadowRoot||!this.axeConfig)return;a().configure((0,i.ip)(this.axeConfig.spec)),a().registerPlugin(u.$),a().plugins.wagtailPreview.add(s);const e=o.Application.start(this.shadowRoot.firstElementChild);e.register("w-dialog",l.v),e.register("w-teleport",c.I);const t=new Promise(e=>{this.shadowRoot?.addEventListener("w-dialog:ready",({detail:t})=>{const{body:r,dialog:n}=t;e({body:r,dialog:n})},{once:!0,passive:!0})}),{dialog:r,body:n}=await t;this.dialog=r,this.dialogBody=n;const d=this.shadowRoot.getElementById("accessibility-trigger");d?.addEventListener("click",()=>{this.dialog.shown?this.dialog.hide():this.dialog.show()}),await this.runAxe()}async runAxe(){if(!this.shadowRoot)return;const e=this.shadowRoot.querySelector("#accessibility-results"),t=this.shadowRoot.querySelector("#w-a11y-result-row-template"),r=this.shadowRoot.querySelector("#w-a11y-result-outline-template")