Current section

Files

Jump to
primer_live priv static primer-live.min.js
Raw

priv/static/primer-live.min.js

"use strict";(()=>{var s={mounted(){let o=this.el;if(!(o.querySelector("[data-content]")instanceof HTMLElement)){console.error("Missing element with attribute [data-content]");return}let c=(e,r)=>{var a;(a=this.pushEventTo)==null||a.call(this,e,"primer_live:prompt",{elementId:o.id,selector:e,status:r})},t=(e,r)=>a=>{let{selector:i,transitionDuration:n}=a.detail;if(!i){console.error("Missing status_callback_selector");return}c(i,e),setTimeout(()=>{c(i,r)},n)};this.handlePromptToggle=e=>{var a;let r=o.classList.contains("is-open")?o.dataset.close:o.dataset.open;r?(a=this.liveSocket)==null||a.execJS(o,r):console.error("No command found in element dataset")},this.handlePromptOpen=t("opening","opened"),o.addEventListener("prompt:open",this.handlePromptOpen),this.handlePromptClose=t("closing","closed"),o.addEventListener("prompt:close",this.handlePromptClose),o.addEventListener("prompt:toggle",this.handlePromptToggle)},destroyed(){this.el&&(this.handlePromptOpen&&this.el.removeEventListener("prompt:open",this.handlePromptOpen),this.handlePromptClose&&this.el.removeEventListener("prompt:close",this.handlePromptClose),this.handlePromptToggle&&this.el.removeEventListener("prompt:toggle",this.handlePromptToggle))}};typeof window<"u"&&(window.Prompt=s);window.addEventListener("keydown",d);function d(o){if(o.key==="Escape"){let l=Array.from(document.querySelectorAll("[data-prompt].is-open")).filter(t=>t.dataset.isescapable!==void 0),c=l.reverse()[0];if(!(c instanceof HTMLElement))return;l.forEach(t=>{let e=t.querySelector("[data-focuswrap]");if(e instanceof HTMLElement){let r=t==c?"Escape":"Escape_disabled";e.setAttribute("phx-key",r)}})}}})();