1import{_ as m,m as r,o as d,f as p,i as l,t as A,g as b,x as C,p as _,T as w,q as f,n as v,U as k,j as O,w as F}from"./Dzm-rzis.js";import{a as M}from"./B1HhSjPy.js";import{u}from"./COhMGM9P.js";import{u as T}from"./ChrDroFa.js";const $={name:"UiFragmentsButtonClose",props:{id:{type:String,default:null}},emits:["closeBtn"],data:()=>({isMobile:!1}),computed:{...r(M,["w"])},watch:{w(){this.isMobile=this.w<769}},mounted(){this.isMobile=this.w<769},methods:{onClick(e){this.$emit("closeBtn",e)}}},L={class:"ui-fragments-buttons--close"},S={class:"ui-fragments-buttons--close__inner"},x={class:"ui-fragments-buttons--close__label py-8 font-bold"},D={class:"ui-fragments-svg__wrapper"};function I(e,t,i,y,g,s){const o=C;return d(),p("button",L,[l("span",S,[l("span",x,A(e.$t("close")),1),l("span",D,[b(o,{type:"ui",name:"close","aria-hidden":"true"})])])])}const N=m($,[["render",I]]),E='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], audio[controls], video[controls], summary, [tabindex^="0"], [tabindex^="1"], [tabindex^="2"], [tabindex^="3"], [tabindex^="4"], [tabindex^="5"], [tabindex^="6"], [tabindex^="7"], [tabindex^="8"], [tabindex^="9"]';let a=null;const R={name:"FtModal",props:{id:{type:String,default:"ft-modal",required:!0},title:{type:String,required:!0},openTiming:{type:Number,default:600},closeTiming:{type:Number,default:400},observeFocusParams:{type:Array,default:()=>[]}},emits:["open","close"],data:()=>({isOpen:!1}),computed:{...r(u,["isModalOpen","modalActiveId","isNavOpen"])},watch:{modalActiveId(){this.modalActiveId===this.id?this.open():this.isOpen&&this.close()},observeFocusParams:{handler(e,t){setTimeout(()=>{this.getFocusableElements()},10)},deep:!0}},mounted(){},beforeUnmount(){this.isOpen&&this.emitCloseClick()},methods:{..._(u,["setScrollLocked","openModal","closeModal"]),open(){this.isAnimating||(this.isOpen=!0,this.setScrollLocked(!0),this.$refs.inner&&(this.$refs.inner.scrollTop=0),this.trapFocus(),this.$emit("open"),this.$nextTick(()=>
1{this.getFocusableElements(),this.firstFocusableEl.focus()}),clearTimeout(a),a=setTimeout(()=>{this.isAnimating=!1},this.openTiming))},close(){this.isAnimating||(this.isOpen=!1,this.isNavOpen||this.setScrollLocked(!1),this.releaseFocus(),this.$nextTick(()=>{this.lastFocus.focus()}),clearTimeout(a),a=setTimeout(()=>{this.isAnimating=!1,this.$emit("close")},this.closeTiming))},emitCloseClick(){this.closeModal(this.id)},getFocusableElements(){this.focusableEls=[...this.$el.querySelectorAll(E),...document.querySelectorAll(`.js-${this.id}-focus`)],this.focusableEls=this.focusableEls.filter(e=>e.offsetParent!==null),this.firstFocusableEl=this.focusableEls[0],this.lastFocusableEl=this.focusableEls[this.focusableEls.length-1]},trapFocus(){this.lastFocus=document.activeElement,window.addEventListener("keydown",this.onKeyDown)},releaseFocus(){window.removeEventListener("keydown",this.onKeyDown)},onKeyDown(e){if(e.code)switch(e.code.toLowerCase()){case"tab":e.shiftKey?this.handleBackwardTab(e):this.handleForwardTab(e);break;case"escape":this.emitCloseClick();break}},handleBackwardTab(e){(document.activeElement===this.firstFocusableEl||!this.focusableEls.includes(document.activeElement))&&(e.preventDefault(),this.lastFocusableEl.focu
1s())},handleForwardTab(e){(document.activeElement===this.lastFocusableEl||!this.focusableEls.includes(document.activeElement))&&(e.preventDefault(),this.firstFocusableEl.focus())}}},B=["id","aria-modal","aria-labelledby"],q=["id"],K={class:"wrapper w-[100%] overflow-hidden"},P={ref:"inner",class:"inner relative overflow-auto p-24"};function V(e,t,i,y,g,s){const o=w("ui-fragments-button-close");return d(),p("div",{id:i.id.toLowerCase(),class:v(["ft-modal",{"-active":e.isOpen}]),role:"dialog","aria-modal":e.isOpen,"aria-labelledby":`${i.id.toLowerCase()}-title`},[l("div",{class:"bg",onClick:t[0]||(t[0]=(...h)=>s.emitCloseClick&&s.emitCloseClick(...h))}),l("p",{id:`${i.id.toLowerCase()}-title`,class:"sr-only"},A(i.title),9,q),l("div",K,[l("div",P,[b(o,{onClick:s.emitCloseClick},null,8,["onClick"]),f(e.$slots,"default",{},void 0,!0)],512)])],10,B)}const j=m(R,[["render",V],["__scopeId","data-v-440c602c"]]);let c=null;const U={props:{id:{type:String,default:"ft-dialog",required:!0},title:{type:String,required:!0},openTiming:{type:Number,default:600},closeTiming:{type:Number,default:350},observeFocusParams:{type:Array,default:()=>[]}},emits:["open","close"],setup(){return{elRef:k(null)}},data:()=>({element:null,isOpen:!1,isOpenA11y:!1,isOpening:!1,isOpeningA11y:!1,isClosing:!1,isClosingA11y:!1,isAnimating:!1,isAnimatingA11y:!1,isA11y:!1}),computed:{...r(u,["isModalOpen","isModalA11yOpen","modalActiveId","modalA11yActiveId","isNavOpen"]),...r(T,["isAnimationsDisabled"]),isDialogSupported(){return typeof HTMLDialogElement=="function"}},watch:{modalActiveId(){this.modalActiveId===this.id?this.open():this.isOpen&&this.close()},modalA11yActiveId(){this.modalA11yActiveId===this.id?this.open():this.isOpenA11y&&this.close()},observeFocusParams:{handler(e,t){setTimeout(()=>{this.getFocusableElements()},10)},deep:!0}},mounted(){this.$nextTick(()=>{var e;this.isA11y=this.id=="a11yPanel",this.element=((e=this.elRef)==null?void 0:e.$el)||this.elRef,this.element&&this.element.addEventListener("cancel",this.closeDialog)})},methods:{..._(u,["setScrollLocked","openModal","openModalA11y","closeModal","closeModalA11y"]),open(){if(!this.isAnimating&&(this.isA11y?(this.isOpenA11y=!0,this.openModalA11y(this.id)):(this.isOpen=!0,this.openModal(this.id)),typeof this.element.showModal=="function")){this.setScrollLocked(!0),this.trapFocus(),this.$emit("open"),this.$nextTick(()=>{setTimeout(()=>{this.getFocusableElements(),this.firstFocusableEl&&this.firstFocusableEl.focu
1s()},700)}),this.element.show();const e=this.element.closest(".pb-section");e&&(e.style.zIndex=50),this.isA11y?this.isOpeningA11y=!0:this.isOpening=!0,this.element.classList.add("-open"),clearTimeout(c),c=setTimeout(()=>{this.isA11y?(this.isOpeningA11y=!1,this.isAnimatingA11y=!1):(this.isOpening=!1,this.isAnimating=!1)},this.openTiming)}},close(){if(this.isA11y){if(this.isAnimatingA11y)return;this.isOpenA11y=!1,this.closeModalA11y(this.id)}else{if(this.isAnimating)return;this.isOpen=!1,this.closeModal(this.id)}const e=this.element.closest(".pb-section");e&&(e.style.zIndex=0),this.releaseFocus(),typeof this.element.close=="function"&&(this.setScrollLocked(!1),this.isAnimationsDisabled?this.element.close():(this.isA11y?(this.isAnimatingA11y=!0,this.isClosingA11y=!0):(this.isAnimating=!0,this.isClosing=!0),clearTimeout(c),c=setTimeout(()=>{this.isA11y?(this.isClosingA11y=!1,this.isAnimatingA11y=!1):(this.isClosing=!1,this.isAnimating=!1),this.element.close(),this.$emit("close")},this.closeTiming)))},emitCloseClick(){this.isA11y?this.closeModalA11y(this.id):this.closeModal(this.id),this.$emit("close",this.id)},onOpenModal(){this.$emit("open")},onCloseModal(){this.$emit("close")},getFocusableElements(){this.focusableEls=[...this.element.querySelectorAll(E)],this.focusableEls=this.focusableEls.filter(e=>e.offsetParent!==null),this.firstFocusableEl=this.focusableEls[0],this.lastFocusableEl=this.focusableEls[this.focusableEls.length-1]},trapFocus(){window.addEventListener("keydown",this.onKeyDown)},releaseFocus(){window.removeEventListener("keydown",this.onKeyDown)},onKeyDown(e){e.key==="Escape"&&(this.isA11y?this.closeModalA11y(this.id):this.closeModal(this.id)),e.key==="Tab"&&(e.shiftKey?document.activeElement===this.firstFocusableEl&&(this.lastFocusableEl.focu
1s(),e.preventDefault()):document.activeElement===this.lastFocusableEl&&(this.firstFocusableEl.focus(),e.preventDefault()))},onClick(e){e.target===this.element&&this.emitCloseClick()},onMouseenter(){this.$bus.$emit("CONTROLLER:HOVERED",{modal:!0,id:this.id})},onMouseleave(){this.$bus.$emit("CONTROLLER:UNHOVERED",{modal:!0,id:this.id})}}},z=["id","aria-labelledby"],H={ref:"wrapper",class:"wrapper max-h-[100%] w-[100%] overflow-hidden"};function G(e,t,i,y,g,s){const o=N,h=j;return s.isDialogSupported?(d(),p("dialog",{key:0,id:`${i.id.toLowerCase()}`,ref:"elRef",class:v(["ft-dialog flex items-center justify-center",{"-active":e.isOpen||e.isOpenA11y},{"-open":e.isOpening||e.isOpeningA11y},{"-close":e.isClosing||e.isClosingA11y}]),"aria-labelledby":`${i.id.toLowerCase()}-title`,onClick:t[2]||(t[2]=(...n)=>s.onClick&&s.onClick(...n))},[l("div",H,[l("div",{class:"inner relative max-h-[100%] overflow-auto px-40 py-20",onMouseenter:t[0]||(t[0]=(...n)=>s.onMouseenter&&s.onMouseenter(...n)),onMouseleave:t[1]||(t[1]=(...n)=>s.onMouseleave&&s.onMouseleave(...n))},[b(o,{id:`close-${i.id.toLowerCase()}`,class:"close js-close",onClick:s.emitCloseClick},null,8,["id","onClick"]),f(e.$slots,"content")],32)],512)],10,z)):(d(),O(h,{key:1,id:i.id,ref:"elRef",title:i.title,"observe-focus-params":i.observeFocusParams,onOpen:s.onOpenModal,onClose:s.onCloseModal},{default:F(()=>[f(e.$slots,"content")]),_:3},8,["id","title","observe-focus-params","onOpen","onClose"]))}const Y=m(U,[["render",G]]);export{Y as _};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.