-`);Hr("error",e)}}var Bi={emit:Hr,emitPublic:fd,listen:dd,success:r=>Hr("success",r),error:r=>Hr("error",r),showValidationErrors:hd};async function pd(r,e={}){return $i(r,{method:"GET",params:e})}async function md(r,e=null){return qr("POST",r,e)}async function gd(r,e=null){return qr("PUT",r,e)}async function vd(r,e=null){return qr("PATCH",r,e)}async function yd(r,e=null){return qr("DELETE",r,e)}async function qr(r,e,t=null){let n={method:r,body:t};return typeof t=="object"&&!(t instanceof FormData)&&(n.headers={"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},n.body=JSON.stringify(t)),t instanceof FormData&&r!=="post"&&(t.append("_method",r),n.method="post"),$i(e,n)}async function $i(r,e={}){if(r.startsWith("http")||(r=window.baseUrl(r)),e.params){let i=new URL(r);for(let a of Object.keys(e.params)){let l=e.params[a];typeof l<"u"&&l!==null&&i.searchParams.set(a,l)}r=i.toString()}let t=document.querySelector("meta[name=token]").getAttribute("content");e=Object.assign({},e,{credentials:"same-origin"}),e.headers=Object.assign({},e.headers||{},{baseURL:window.baseUrl(""),"X-CSRF-TOKEN":t});let n=await fetch(r,e),s={data:await bd(n),headers:n.headers,redirected:n.redirected,status:n.status,statusText:n.statusText,url:n.url,original:n};if(!n.ok)throw s;return s}async function bd(r){if(r.status===204)return null;let t=(r.headers.get("Content-Type")||"").split(";")[0].split("/").pop();return t==="javascript"||t==="json"?await r.json():await r.text()}var Ui={get:pd,post:md,put:gd,patch:vd,delete:yd};var zi=class{constructor(e){this.store=new Map,this.parseTranslations()}parseTranslations(){let e=document.querySelectorAll('meta[name="translation"]');for(let t of e){let n=t.getAttribute("key"),o=t.getAttribute("value");this.store.set(n,o)}}get(e,t){let n=this.getTransText(e);return this.performReplacements(n,t)}getPlural(e,t,n){let o=this.getTransText(e);return this.parsePlural(o,t,n)}parsePlural(e,t,n){let o=e.split("|"),s=/^{([0-9]+)}/,i=/^\[([0-9]+),([0-9*]+)]/,a=null;for(let l of o){let u=l.match(s);if(u!==null&&Number(u[1])===t){a=l.replace(s,"").trim();break}let c=l.match(i);if(c!==null&&Number(c[1])<=t&&(c[2]==="*"||Number(c[2])>=t)){a=l.replace(i,"").trim();break}}return a===null&&o.length>1&&(a=t===1?o[0]:o[1]),a===null&&(a=o[0]),this.performReplacements(a,n)}getTransText(e){let t=this.store.get(e);return t===void 0&&console.warn(`Translation with key "${e}" does not exist`),t}performReplacements(e,t){if(!t)return e;let n=e.match(/:([\S]+)/g);return n===null||n.forEach(o=>{let s=o.substring(1);typeof t[s]>"u"||(e=e.replace(o,t[s]))}),e}},ji=zi;function Vr(r,e){let t=document.querySelectorAll(r);for(let n of t)e(n)}function Gr(r,e,t){for(let n of e)r.addEventListener(n,t)}function Ue(r,e){Array.isArray(r)||(r=[r]);for(let t of r)t.addEventListener("click",e),t.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),e(n))})}function Wr(r,e){Array.isArray(r)||(r=[r]);let t=n=>{n.key==="Enter"&&e(n)};r.forEach(n=>n.addEventListener("keypress",t))}function We(r,e,t,n){r.addEventListener(t,function(o){let s=o.target.closest(e);s&&n.call(s,o,s)})}function Hi(r,e){let t=document.querySelectorAll(r);e=e.toLowerCase();for(let n of t)if(n.textContent.toLowerCase().includes(e))return n;return null}function Er(r){r.innerHTML='<div class="loading-container"><div></div><div></div><div></div></div>'}function qi(r){let e=r.querySelectorAll(".loading-container");for(let t of e)t.remove()}function Sr(r,e,t){let n;return function(){let o=this,s=arguments,i=function(){n=null,t||r.apply(o,s)},a=t&&!n;clearTimeout(n),n=setTimeout(i,e),a&&r.apply(o,s)}}function Cr(r){if(!r)return;r.scrollIntoView({behavior:"smooth"});let e=document.getElementById("custom-styles").getAttribute("data-color-light"),t=window.getComputedStyle(r).getPropertyValue("background-color");r.style.backgroundColor=e,setTimeout(()=>{r.classList.add("selectFade"),r.style.backgroundColor=t},10),setTimeout(()=>{r.classList.remove("selectFade"),r.style.backgroundColor=""},3e3)}function Gi(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Wi(){let r=()=>((1+Math.random())*65536|0).toString(16).substring(1);return r()+r()+"-"+r()+"-"+r()+"-"+r()+"-"+r()+r()+r()}var Yi=class{setup(){this.modelRow=this.$refs.model,this.addButton=this.$refs.add,this.removeSelector=this.$opts.removeSelector,this.rowSelector=this.$opts.rowSelector,this.setupListeners()}setupListeners(){this.addButton.addEventListener("click",this.add.bind(this)),We(this.$el,this.removeSelector,"click",e=>{e.target.closest(this.rowSelector).remove()})}add(){let e=this.modelRow.cloneNode(!0);e.classList.remove("hidden"),this.setClonedInputNames(e),this.modelRow.parentNode.insertBefore(e,this.modelRow),window.components.init(e)}setClonedInputNames(e){let t=Wi(),n=e.querySelectorAll('[name*="randrowid"]');for(let o of n)o.name=o.name.split("randrowid").join(t)}},Ki=Yi;var Xi=class{setup(){this.row=this.$el,this.url=this.$opts.url,this.deleteButtons=this.$manyRefs.delete,Ue(this.deleteButtons,this.runDelete.bind(this))}runDelete(){this.row.style.opacity="0.7",this.row.style.pointerEvents="none",window.$http.delete(this.url).then(e=>{typeof e.data=="object"&&e.data.message&&window.$events.emit("success",e.data.message),this.row.remove()}).catch(e=>{this.row.style.opacity=null,this.row.style.pointerEvents=null})}},Zi=Xi;var Qi=class{setup(){this.container=this.$el,this.responseContainer=this.container,this.url=this.$opts.url,this.method=this.$opts.method||"post",this.successMessage=this.$opts.successMessage,this.submitButtons=this.$manyRefs.submit||[],this.$opts.responseContainer&&(this.responseContainer=this.container.closest(this.$opts.responseContainer)),this.setupListeners()}setupListeners(){if(this.container.tagName==="FORM"){this.container.addEventListener("submit",this.submitRealForm.bind(this));return}Wr(this.container,e=>{this.submitFakeForm(),e.preventDefault()}),this.submitButtons.forEach(e=>Ue(e,this.submitFakeForm.bind(this)))}submitFakeForm(){let e=new FormData,t=this.container.querySelectorAll("[name]");for(let n of t)e.append(n.getAttribute("name"),n.value);this.submit(e)}submitRealForm(e){e.preventDefault();let t=new FormData(this.container);this.submit(t)}async submit(e){this.responseContainer.style.opacity="0.7",this.responseContainer.style.pointerEvents="none";try{let t=await window.$http[this.method.toLowerCase()](this.url,e);this.$emit("success",{formData:e}),this.responseContainer.innerHTML=t.data,this.successMessage&&window.$events.emit("success",this.successMessage)}catch(t){this.responseContainer.innerHTML=t.data}window.components.init(this.responseContainer),this.responseContainer.style.opacity=null,this.responseContainer.style.pointerEvents=null}},Ji=Qi;var eo=class{setup(){this.container=this.$el,this.pageId=this.$opts.pageId,this.editContainer=this.$refs.editContainer,this.listContainer=this.$refs.listContainer,this.mainTabs=this.$refs.mainTabs,this.list=this.$refs.list,this.setupListeners()}setupListeners(){let e=this.reloadList.bind(this);this.container.addEventListener("dropzone-success",e),this.container.addEventListener("ajax-form-success",e),this.container.addEventListener("sortable-list-sort",t=>{this.updateOrder(t.detail.ids)}),this.container.addEventListener("event-emit-select-edit",t=>{this.startEdit(t.detail.id)}),this.container.addEventListener("event-emit-select-edit-back",t=>{this.stopEdit()}),this.container.addEventListener("event-emit-select-insert",t=>{let n=t.target.closest("[data-drag-content]").getAttribute("data-drag-content"),o=JSON.parse(n);window.$events.emit("editor::insert",{html:o["text/html"],markdown:o["text/plain"]})})}reloadList(){this.stopEdit(),this.mainTabs.components.tabs.show("items"),window.$http.get(`/attachments/get/page/${this.pageId}`).then(e=>{this.list.innerHTML=e.data,window.components.init(this.list)})}updateOrder(e){window.$http.put(`/attachments/sort/page/${this.pageId}`,{order:e}).then(t=>{window.$events.emit("success",t.data.message)})}async startEdit(e){this.editContainer.classList.remove("hidden"),this.listContainer.classList.add("hidden"),Er(this.editContainer);let t=await window.$http.get(`/attachments/edit/${e}`);this.editContainer.innerHTML=t.data,window.components.init(this.editContainer)}stopEdit(){this.editContainer.classList.add("hidden"),this.listContainer.classList.remove("hidden")}},to=eo;var ro=class{setup(){this.container=this.$el,this.setupListeners()}setupListeners(){let e=t=>t.key==="Control"||t.key==="Meta";window.addEventListener("keydown",t=>{e(t)&&this.addOpenQueryToLinks()},{passive:!0}),window.addEventListener("keyup",t=>{e(t)&&this.removeOpenQueryFromLinks()},{passive:!0})}addOpenQueryToLinks(){let e=this.container.querySelectorAll("a.attachment-file");for(let t of e)t.href.split("?")[1]!=="open=true"&&(t.href=t.href+"?open=true",t.setAttribute("target","_blank"))}removeOpenQueryFromLinks(){let e=this.container.querySelectorAll("a.attachment-file");for(let t of e)t.href=t.href.split("?")[0],t.removeAttribute("target")}},no=ro;var Mn={},io=class{setup(){this.parent=this.$el.parentElement,this.container=this.$el,this.type=this.$opts.type,this.url=this.$opts.url,this.input=this.$refs.input,this.list=this.$refs.list,this.lastPopulated=0,this.setupListeners()}setupListeners(){this.input.addEventListener("input",this.requestSuggestions.bind(this)),this.input.addEventListener("focus",this.requestSuggestions.bind(this)),this.input.addEventListener("keydown",e=>{e.key==="Tab"&&this.hideSuggestions()}),this.input.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this)),this.container.addEventListener("keydown",this.containerKeyDown.bind(this)),We(this.list,"button","click",(e,t)=>{this.selectSuggestion(t.textContent)}),We(this.list,"button","keydown",(e,t)=>{e.key==="Enter"&&this.selectSuggestion(t.textContent)})}selectSuggestion(e){this.input.value=e,this.lastPopulated=Date.now(),this.input.focus(),this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.dispatchEvent(new Event("change",{bubbles:!0})),this.hideSuggestions()}containerKeyDown(e){e.key==="Enter"&&e.preventDefault(),!this.list.classList.contains("hidden")&&(e.key==="ArrowDown"?(this.moveFocus(!0),e.preventDefault()):e.key==="ArrowUp"?(this.moveFocus(!1),e.preventDefault()):e.key==="Escape"&&(this.hideSuggestions(),e.preventDefault()))}moveFocus(e=!0){let t=Array.from(this.container.querySelectorAll("input,button")),n=t.indexOf(document.activeElement),o=t[n+(e?1:-1)];o&&o.focus()}async requestSuggestions(){if(Date.now()-this.lastPopulated<50)return;let e=this.getNameFilterIfNeeded(),t=this.input.value.slice(0,3).toLowerCase(),n=await this.loadSuggestions(t,e),o=n.slice(0,6);t.length>0&&(o=n.filter(s=>s.toLowerCase().includes(t)).slice(0,6)),this.displaySuggestions(o)}getNameFilterIfNeeded(){return this.type!=="value"?null:this.parent.querySelector("input").value}async loadSuggestions(e,t=null){let n={search:e,name:t},o=`${this.url}:${JSON.stringify(n)}`;if(Mn[o])return Mn[o];let s=await window.$http.get(this.url,n);return Mn[o]=s.data,s.data}displaySuggestions(e){if(e.length===0)return this.hideSuggestions();this.list.innerHTML=e.map(t=>`<li><button type="button">${Gi(t)}</button></li>`).join(""),this.list.style.display="block";for(let t of this.list.querySelectorAll("button"))t.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this))}hideSuggestions(){this.list.style.display="none"}hideSuggestionsIfFocusedLost(e){this.container.contains(e.relatedTarget)||this.hideSuggestions()}},oo=io;var so=class{constructor(e){if(this.elem=e,this.targetElem=document.getElementById("header"),this.showing=!1,this.breakPoint=1200,document.body.classList.contains("flexbox")){this.elem.style.display="none";return}this.elem.addEventListener("click",this.scrollToTop.bind(this)),window.addEventListener("scroll",this.onPageScroll.bind(this))}onPageScroll(){let e=document.documentElement.scrollTop||document.body.scrollTop||0;!this.showing&&e>this.breakPoint?(this.elem.style.display="block",this.showing=!0,setTimeout(()=>{this.elem.style.opacity=.4},1)):this.showing&&e<this.breakPoint&&(this.elem.style.opacity=0,this.showing=!1,setTimeout(()=>{this.elem.style.display="none"},500))}scrollToTop(){let e=this.targetElem.getBoundingClientRect().top,t=document.documentElement.scrollTop?document.documentElement:document.body,n=300,o=Date.now(),s=this.targetElem.getBoundingClientRect().top;function i(){let a=1-(Date.now()-o)/n,l=Math.abs(a*s);a>0?(t.scrollTop=l,requestAnimationFrame(i.bind(this))):t.scrollTop=e}requestAnimationFrame(i.bind(this))}},ao=so;function lo(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),t.push.apply(t,n)}return t}function Ft(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lo(Object(t),!0).forEach(function(n){xd(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):lo(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function Qr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Qr=function(e){return typeof e}:Qr=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qr(r)}function xd(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Ut(){return Ut=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},Ut.apply(this,arguments)}function wd(r,e){if(r==null)return{};var t={},n=Object.keys(r),o,s;for(s=0;s<n.length;s++)o=n[s],!(e.indexOf(o)>=0)&&(t[o]=r[o]);return t}function Ed(r,e){if(r==null)return{};var t=wd(r,e),n,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);for(o=0;o<s.length;o++)n=s[o],!(e.indexOf(n)>=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}var Sd="1.14.0";function $t(r){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(r)}var zt=$t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Or=$t(/Edge/i),uo=$t(/firefox/i),Ir=$t(/safari/i)&&!$t(/chrome/i)&&!$t(/android/i),yo=$t(/iP(ad|od|hone)/i),Cd=$t(/chrome/i)&&$t(/android/i),bo={capture:!1,passive:!1};function Me(r,e,t){r.addEventListener(e,t,!zt&&bo)}function Le(r,e,t){r.removeEventListener(e,t,!zt&&bo)}function nn(r,e){if(!!e){if(e[0]===">"&&(e=e.substring(1)),r)try{if(r.matches)return r.matches(e);if(r.msMatchesSelector)return r.msMatchesSelector(e);if(r.webkitMatchesSelector)return r.webkitMatchesSelector(e)}catch{return!1}return!1}}function Ad(r){return r.host&&r!==document&&r.host.nodeType?r.host:r.parentNode}function Dt(r,e,t,n){if(r){t=t||document;do{if(e!=null&&(e[0]===">"?r.parentNode===t&&nn(r,e):nn(r,e))||n&&r===t)return r;if(r===t)break}while(r=Ad(r))}return null}var co=/\s+/g;function pt(r,e,t){if(r&&e)if(r.classList)r.classList[t?"add":"remove"](e);else{var n=(" "+r.className+" ").replace(co," ").replace(" "+e+" "," ");r.className=(n+(t?" "+e:"")).replace(co," ")}}function ge(r,e,t){var n=r&&r.style;if(n){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(r,""):r.currentStyle&&(t=r.currentStyle),e===void 0?t:t[e];!(e in n)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),n[e]=t+(typeof t=="string"?"":"px")}}function ur(r,e){var t="";if(typeof r=="string")t=r;else do{var n=ge(r,"transform");n&&n!=="none"&&(t=n+" "+t)}while(!e&&(r=r.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(t)}function xo(r,e,t){if(r){var n=r.getElementsByTagName(e),o=0,s=n.length;if(t)for(;o<s;o++)t(n[o],o);return n}return[]}function Lt(){var r=document.scrollingElement;return r||document.documentElement}function tt(r,e,t,n,o){if(!(!r.getBoundingClientRect&&r!==window)){var s,i,a,l,u,c,f;if(r!==window&&r.parentNode&&r!==Lt()?(s=r.getBoundingClientRect(),i=s.top,a=s.left,l=s.bottom,u=s.right,c=s.height,f=s.width):(i=0,a=0,l=window.innerHeight,u=window.innerWidth,c=window.innerHeight,f=window.innerWidth),(e||t)&&r!==window&&(o=o||r.parentNode,!zt))do if(o&&o.getBoundingClientRect&&(ge(o,"transform")!=="none"||t&&ge(o,"position")!=="static")){var d=o.getBoundingClientRect();i-=d.top+parseInt(ge(o,"border-top-width")),a-=d.left+parseInt(ge(o,"border-left-width")),l=i+s.height,u=a+s.width;break}while(o=o.parentNode);if(n&&r!==window){var h=ur(o||r),m=h&&h.a,v=h&&h.d;h&&(i/=v,a/=m,f/=m,c/=v,l=i+c,u=a+f)}return{top:i,left:a,bottom:l,right:u,width:f,height:c}}}function fo(r,e,t){for(var n=Wt(r,!0),o=tt(r)[e];n;){var s=tt(n)[t],i=void 0;if(t==="top"||t==="left"?i=o>=s:i=o<=s,!i)return n;if(n===Lt())break;n=Wt(n,!1)}return!1}function cr(r,e,t,n){for(var o=0,s=0,i=r.children;s<i.length;){if(i[s].style.display!=="none"&&i[s]!==ve.ghost&&(n||i[s]!==ve.dragged)&&Dt(i[s],t.draggable,r,!1)){if(o===e)return i[s];o++}s++}return null}function Kn(r,e){for(var t=r.lastElementChild;t&&(t===ve.ghost||ge(t,"display")==="none"||e&&!nn(t,e));)t=t.previousElementSibling;return t||null}function xt(r,e){var t=0;if(!r||!r.parentNode)return-1;for(;r=r.previousElementSibling;)r.nodeName.toUpperCase()!=="TEMPLATE"&&r!==ve.clone&&(!e||nn(r,e))&&t++;return t}function ho(r){var e=0,t=0,n=Lt();if(r)do{var o=ur(r),s=o.a,i=o.d;e+=r.scrollLeft*s,t+=r.scrollTop*i}while(r!==n&&(r=r.parentNode));return[e,t]}function kd(r,e){for(var t in r)if(!!r.hasOwnProperty(t)){for(var n in e)if(e.hasOwnProperty(n)&&e[n]===r[t][n])return Number(t)}return-1}function Wt(r,e){if(!r||!r.getBoundingClientRect)return Lt();var t=r,n=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var o=ge(t);if(t.clientWidth<t.scrollWidth&&(o.overflowX=="auto"||o.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(o.overflowY=="auto"||o.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return Lt();if(n||e)return t;n=!0}}while(t=t.parentNode);return Lt()}function Td(r,e){if(r&&e)for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}function Nn(r,e){return Math.round(r.top)===Math.round(e.top)&&Math.round(r.left)===Math.round(e.left)&&Math.round(r.height)===Math.round(e.height)&&Math.round(r.width)===Math.round(e.width)}var Dr;function wo(r,e){return function(){if(!Dr){var t=arguments,n=this;t.length===1?r.call(n,t[0]):r.apply(n,t),Dr=setTimeout(function(){Dr=void 0},e)}}}function Id(){clearTimeout(Dr),Dr=void 0}function Eo(r,e,t){r.scrollLeft+=e,r.scrollTop+=t}function So(r){var e=window.Polymer,t=window.jQuery||window.Zepto;return e&&e.dom?e.dom(r).cloneNode(!0):t?t(r).clone(!0)[0]:r.cloneNode(!0)}var gt="Sortable"+new Date().getTime();function Dd(){var r=[],e;return{captureAnimationState:function(){if(r=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(o){if(!(ge(o,"display")==="none"||o===ve.ghost)){r.push({target:o,rect:tt(o)});var s=Ft({},r[r.length-1].rect);if(o.thisAnimationDuration){var i=ur(o,!0);i&&(s.top-=i.f,s.left-=i.e)}o.fromRect=s}})}},addAnimationState:function(n){r.push(n)},removeAnimationState:function(n){r.splice(kd(r,{target:n}),1)},animateAll:function(n){var o=this;if(!this.options.animation){clearTimeout(e),typeof n=="function"&&n();return}var s=!1,i=0;r.forEach(function(a){var l=0,u=a.target,c=u.fromRect,f=tt(u),d=u.prevFromRect,h=u.prevToRect,m=a.rect,v=ur(u,!0);v&&(f.top-=v.f,f.left-=v.e),u.toRect=f,u.thisAnimationDuration&&Nn(d,f)&&!Nn(c,f)&&(m.top-f.top)/(m.left-f.left)===(c.top-f.top)/(c.left-f.left)&&(l=Fd(m,d,h,o.options)),Nn(f,c)||(u.prevFromRect=c,u.prevToRect=f,l||(l=o.options.animation),o.animate(u,m,f,l)),l&&(s=!0,i=Math.max(i,l),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},l),u.thisAnimationDuration=l)}),clearTimeout(e),s?e=setTimeout(function(){typeof n=="function"&&n()},i):typeof n=="function"&&n(),r=[]},animate:function(n,o,s,i){if(i){ge(n,"transition",""),ge(n,"transform","");var a=ur(this.el),l=a&&a.a,u=a&&a.d,c=(o.left-s.left)/(l||1),f=(o.top-s.top)/(u||1);n.animatingX=!!c,n.animatingY=!!f,ge(n,"transform","translate3d("+c+"px,"+f+"px,0)"),this.forRepaintDummy=Ld(n),ge(n,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),ge(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){ge(n,"transition",""),ge(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},i)}}}}function Ld(r){return r.offsetWidth}function Fd(r,e,t,n){return Math.sqrt(Math.pow(e.top-r.top,2)+Math.pow(e.left-r.left,2))/Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))*n.animation}var or=[],_n={initializeByDefault:!0},Pr={mount:function(e){for(var t in _n)_n.hasOwnProperty(t)&&!(t in e)&&(e[t]=_n[t]);or.forEach(function(n){if(n.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),or.push(e)},pluginEvent:function(e,t,n){var o=this;this.eventCanceled=!1,n.cancel=function(){o.eventCanceled=!0};var s=e+"Global";or.forEach(function(i){!t[i.pluginName]||(t[i.pluginName][s]&&t[i.pluginName][s](Ft({sortable:t},n)),t.options[i.pluginName]&&t[i.pluginName][e]&&t[i.pluginName][e](Ft({sortable:t},n)))})},initializePlugins:function(e,t,n,o){or.forEach(function(a){var l=a.pluginName;if(!(!e.options[l]&&!a.initializeByDefault)){var u=new a(e,t,e.options);u.sortable=e,u.options=e.options,e[l]=u,Ut(n,u.defaults)}});for(var s in e.options)if(!!e.options.hasOwnProperty(s)){var i=this.modifyOption(e,s,e.options[s]);typeof i<"u"&&(e.options[s]=i)}},getEventProperties:function(e,t){var n={};return or.forEach(function(o){typeof o.eventProperties=="function"&&Ut(n,o.eventProperties.call(t[o.pluginName],e))}),n},modifyOption:function(e,t,n){var o;return or.forEach(function(s){!e[s.pluginName]||s.optionListeners&&typeof s.optionListeners[t]=="function"&&(o=s.optionListeners[t].call(e[s.pluginName],n))}),o}};function Rd(r){var e=r.sortable,t=r.rootEl,n=r.name,o=r.targetEl,s=r.cloneEl,i=r.toEl,a=r.fromEl,l=r.oldIndex,u=r.newIndex,c=r.oldDraggableIndex,f=r.newDraggableIndex,d=r.originalEvent,h=r.putSortable,m=r.extraEventProperties;if(e=e||t&&t[gt],!!e){var v,y=e.options,w="on"+n.charAt(0).toUpperCase()+n.substr(1);window.CustomEvent&&!zt&&!Or?v=new CustomEvent(n,{bubbles:!0,cancelable:!0}):(v=document.createEvent("Event"),v.initEvent(n,!0,!0)),v.to=i||t,v.from=a||t,v.item=o||t,v.clone=s,v.oldIndex=l,v.newIndex=u,v.oldDraggableIndex=c,v.newDraggableIndex=f,v.originalEvent=d,v.pullMode=h?h.lastPutMode:void 0;var x=Ft(Ft({},m),Pr.getEventProperties(n,e));for(var D in x)v[D]=x[D];t&&t.dispatchEvent(v),y[w]&&y[w].call(e,v)}}var Od=["evt"],ht=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=n.evt,s=Ed(n,Od);Pr.pluginEvent.bind(ve)(e,t,Ft({dragEl:ee,parentEl:Xe,ghostEl:we,rootEl:qe,nextEl:Qt,lastDownEl:Jr,cloneEl:Ze,cloneHidden:Gt,dragStarted:Ar,putSortable:it,activeSortable:ve.active,originalEvent:o,oldIndex:lr,oldDraggableIndex:Lr,newIndex:mt,newDraggableIndex:Vt,hideGhostForTarget:To,unhideGhostForTarget:Io,cloneNowHidden:function(){Gt=!0},cloneNowShown:function(){Gt=!1},dispatchSortableEvent:function(a){ct({sortable:t,name:a,originalEvent:o})}},s))};function ct(r){Rd(Ft({putSortable:it,cloneEl:Ze,targetEl:ee,rootEl:qe,oldIndex:lr,oldDraggableIndex:Lr,newIndex:mt,newDraggableIndex:Vt},r))}var ee,Xe,we,qe,Qt,Jr,Ze,Gt,lr,mt,Lr,Vt,Yr,it,ar=!1,on=!1,sn=[],Xt,Ct,Bn,$n,po,mo,Ar,sr,Fr,Rr=!1,Kr=!1,en,lt,Un=[],Vn=!1,an=[],un=typeof document<"u",Xr=yo,go=Or||zt?"cssFloat":"float",Pd=un&&!Cd&&!yo&&"draggable"in document.createElement("div"),Co=function(){if(!!un){if(zt)return!1;var r=document.createElement("x");return r.style.cssText="pointer-events:auto",r.style.pointerEvents==="auto"}}(),Ao=function(e,t){var n=ge(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),s=cr(e,0,t),i=cr(e,1,t),a=s&&ge(s),l=i&&ge(i),u=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+tt(s).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+tt(i).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(s&&a.float&&a.float!=="none"){var f=a.float==="left"?"left":"right";return i&&(l.clear==="both"||l.clear===f)?"vertical":"horizontal"}return s&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||u>=o&&n[go]==="none"||i&&n[go]==="none"&&u+c>o)?"vertical":"horizontal"},Md=function(e,t,n){var o=n?e.left:e.top,s=n?e.right:e.bottom,i=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,u=n?t.width:t.height;return o===a||s===l||o+i/2===a+u/2},Nd=function(e,t){var n;return sn.some(function(o){var s=o[gt].options.emptyInsertThreshold;if(!(!s||Kn(o))){var i=tt(o),a=e>=i.left-s&&e<=i.right+s,l=t>=i.top-s&&t<=i.bottom+s;if(a&&l)return n=o}}),n},ko=function(e){function t(s,i){return function(a,l,u,c){var f=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(s==null&&(i||f))return!0;if(s==null||s===!1)return!1;if(i&&s==="clone")return s;if(typeof s=="function")return t(s(a,l,u,c),i)(a,l,u,c);var d=(i?a:l).options.group.name;return s===!0||typeof s=="string"&&s===d||s.join&&s.indexOf(d)>-1}}var n={},o=e.group;(!o||Qr(o)!="object")&&(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},To=function(){!Co&&we&&ge(we,"display","none")},Io=function(){!Co&&we&&ge(we,"display","")};un&&document.addEventListener("click",function(r){if(on)return r.preventDefault(),r.stopPropagation&&r.stopPropagation(),r.stopImmediatePropagation&&r.stopImmediatePropagation(),on=!1,!1},!0);var Zt=function(e){if(ee){e=e.touches?e.touches[0]:e;var t=Nd(e.clientX,e.clientY);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[gt]._onDragOver(n)}}},_d=function(e){ee&&ee.parentNode[gt]._isOutsideThisEl(e.target)};function ve(r,e){if(!(r&&r.nodeType&&r.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(r));this.el=r,this.options=e=Ut({},e),r[gt]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(r.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Ao(r,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(i,a){i.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:ve.supportPointer!==!1&&"PointerEvent"in window&&!Ir,emptyInsertThreshold:5};Pr.initializePlugins(this,r,t);for(var n in t)!(n in e)&&(e[n]=t[n]);ko(e);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=e.forceFallback?!1:Pd,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?Me(r,"pointerdown",this._onTapStart):(Me(r,"mousedown",this._onTapStart),Me(r,"touchstart",this._onTapStart)),this.nativeDraggable&&(Me(r,"dragover",this),Me(r,"dragenter",this)),sn.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),Ut(this,Dd())}ve.prototype={constructor:ve,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(sr=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,ee):this.options.direction},_onTapStart:function(e){if(!!e.cancelable){var t=this,n=this.el,o=this.options,s=o.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=o.filter;if(Vd(n),!ee&&!(/mousedown|pointerdown/.test(i)&&e.button!==0||o.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&Ir&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=Dt(l,o.draggable,n,!1),!(l&&l.animated)&&Jr!==l)){if(lr=xt(l),Lr=xt(l,o.draggable),typeof c=="function"){if(c.call(this,e,l,this)){ct({sortable:t,rootEl:u,name:"filter",targetEl:l,toEl:n,fromEl:n}),ht("filter",t,{evt:e}),s&&e.cancelable&&e.preventDefault();return}}else if(c&&(c=c.split(",").some(function(f){if(f=Dt(u,f.trim(),n,!1),f)return ct({sortable:t,rootEl:f,name:"filter",targetEl:l,fromEl:n,toEl:n}),ht("filter",t,{evt:e}),!0}),c)){s&&e.cancelable&&e.preventDefault();return}o.handle&&!Dt(u,o.handle,n,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,n){var o=this,s=o.el,i=o.options,a=s.ownerDocument,l;if(n&&!ee&&n.parentNode===s){var u=tt(n);if(qe=s,ee=n,Xe=ee.parentNode,Qt=ee.nextSibling,Jr=n,Yr=i.group,ve.dragged=ee,Xt={target:ee,clientX:(t||e).clientX,clientY:(t||e).clientY},po=Xt.clientX-u.left,mo=Xt.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ee.style["will-change"]="all",l=function(){if(ht("delayEnded",o,{evt:e}),ve.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!uo&&o.nativeDraggable&&(ee.draggable=!0),o._triggerDragStart(e,t),ct({sortable:o,name:"choose",originalEvent:e}),pt(ee,i.chosenClass,!0)},i.ignore.split(",").forEach(function(c){xo(ee,c.trim(),zn)}),Me(a,"dragover",Zt),Me(a,"mousemove",Zt),Me(a,"touchmove",Zt),Me(a,"mouseup",o._onDrop),Me(a,"touchend",o._onDrop),Me(a,"touchcancel",o._onDrop),uo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ee.draggable=!0),ht("delayStart",this,{evt:e}),i.delay&&(!i.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Or||zt))){if(ve.eventCanceled){this._onDrop();return}Me(a,"mouseup",o._disableDelayedDrag),Me(a,"touchend",o._disableDelayedDrag),Me(a,"touchcancel",o._disableDelayedDrag),Me(a,"mousemove",o._delayedDragTouchMoveHandler),Me(a,"touchmove",o._delayedDragTouchMoveHandler),i.supportPointer&&Me(a,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(l,i.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ee&&zn(ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Le(e,"mouseup",this._disableDelayedDrag),Le(e,"touchend",this._disableDelayedDrag),Le(e,"touchcancel",this._disableDelayedDrag),Le(e,"mousemove",this._delayedDragTouchMoveHandler),Le(e,"touchmove",this._delayedDragTouchMoveHandler),Le(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?Me(document,"pointermove",this._onTouchMove):t?Me(document,"touchmove",this._onTouchMove):Me(document,"mousemove",this._onTouchMove):(Me(ee,"dragend",this),Me(qe,"dragstart",this._onDragStart));try{document.selection?tn(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(ar=!1,qe&&ee){ht("dragStarted",this,{evt:t}),this.nativeDraggable&&Me(document,"dragover",_d);var n=this.options;!e&&pt(ee,n.dragClass,!1),pt(ee,n.ghostClass,!0),ve.active=this,e&&this._appendGhost(),ct({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Ct){this._lastX=Ct.clientX,this._lastY=Ct.clientY,To();for(var e=document.elementFromPoint(Ct.clientX,Ct.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Ct.clientX,Ct.clientY),e!==t);)t=e;if(ee.parentNode[gt]._isOutsideThisEl(e),t)do{if(t[gt]){var n=void 0;if(n=t[gt]._onDragOver({clientX:Ct.clientX,clientY:Ct.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Io()}},_onTouchMove:function(e){if(Xt){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,s=e.touches?e.touches[0]:e,i=we&&ur(we,!0),a=we&&i&&i.a,l=we&&i&&i.d,u=Xr&<&&ho(lt),c=(s.clientX-Xt.clientX+o.x)/(a||1)+(u?u[0]-Un[0]:0)/(a||1),f=(s.clientY-Xt.clientY+o.y)/(l||1)+(u?u[1]-Un[1]:0)/(l||1);if(!ve.active&&!ar){if(n&&Math.max(Math.abs(s.clientX-this._lastX),Math.abs(s.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(we){i?(i.e+=c-(Bn||0),i.f+=f-($n||0)):i={a:1,b:0,c:0,d:1,e:c,f};var d="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");ge(we,"webkitTransform",d),ge(we,"mozTransform",d),ge(we,"msTransform",d),ge(we,"transform",d),Bn=c,$n=f,Ct=s}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!we){var e=this.options.fallbackOnBody?document.body:qe,t=tt(ee,!0,Xr,!0,e),n=this.options;if(Xr){for(lt=e;ge(lt,"position")==="static"&&ge(lt,"transform")==="none"&<!==document;)lt=lt.parentNode;lt!==document.body&<!==document.documentElement?(lt===document&&(lt=Lt()),t.top+=lt.scrollTop,t.left+=lt.scrollLeft):lt=Lt(),Un=ho(lt)}we=ee.cloneNode(!0),pt(we,n.ghostClass,!1),pt(we,n.fallbackClass,!0),pt(we,n.dragClass,!0),ge(we,"transition",""),ge(we,"transform",""),ge(we,"box-sizing","border-box"),ge(we,"margin",0),ge(we,"top",t.top),ge(we,"left",t.left),ge(we,"width",t.width),ge(we,"height",t.height),ge(we,"opacity","0.8"),ge(we,"position",Xr?"absolute":"fixed"),ge(we,"zIndex","100000"),ge(we,"pointerEvents","none"),ve.ghost=we,e.appendChild(we),ge(we,"transform-origin",po/parseInt(we.style.width)*100+"% "+mo/parseInt(we.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,o=e.dataTransfer,s=n.options;if(ht("dragStart",this,{evt:e}),ve.eventCanceled){this._onDrop();return}ht("setupClone",this),ve.eventCanceled||(Ze=So(ee),Ze.draggable=!1,Ze.style["will-change"]="",this._hideClone(),pt(Ze,this.options.chosenClass,!1),ve.clone=Ze),n.cloneId=tn(function(){ht("clone",n),!ve.eventCanceled&&(n.options.removeCloneOnHide||qe.insertBefore(Ze,ee),n._hideClone(),ct({sortable:n,name:"clone"}))}),!t&&pt(ee,s.dragClass,!0),t?(on=!0,n._loopId=setInterval(n._emulateDragOver,50)):(Le(document,"mouseup",n._onDrop),Le(document,"touchend",n._onDrop),Le(document,"touchcancel",n._onDrop),o&&(o.effectAllowed="move",s.setData&&s.setData.call(n,o,ee)),Me(document,"drop",n),ge(ee,"transform","translateZ(0)")),ar=!0,n._dragStartId=tn(n._dragStarted.bind(n,t,e)),Me(document,"selectstart",n),Ar=!0,Ir&&ge(document.body,"user-select","none")},_onDragOver:function(e){var t=this.el,n=e.target,o,s,i,a=this.options,l=a.group,u=ve.active,c=Yr===l,f=a.sort,d=it||u,h,m=this,v=!1;if(Vn)return;function y(re,be){ht(re,m,Ft({evt:e,isOwner:c,axis:h?"vertical":"horizontal",revert:i,dragRect:o,targetRect:s,canSort:f,fromSortable:d,target:n,completed:x,onMove:function(xe,Fe){return Zr(qe,t,ee,o,xe,tt(xe),e,Fe)},changed:D},be))}function w(){y("dragOverAnimationCapture"),m.captureAnimationState(),m!==d&&d.captureAnimationState()}function x(re){return y("dragOverCompleted",{insertion:re}),re&&(c?u._hideClone():u._showClone(m),m!==d&&(pt(ee,it?it.options.ghostClass:u.options.ghostClass,!1),pt(ee,a.ghostClass,!0)),it!==m&&m!==ve.active?it=m:m===ve.active&&it&&(it=null),d===m&&(m._ignoreWhileAnimating=n),m.animateAll(function(){y("dragOverAnimationComplete"),m._ignoreWhileAnimating=null}),m!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===ee&&!ee.animated||n===t&&!n.animated)&&(sr=null),!a.dragoverBubble&&!e.rootEl&&n!==document&&(ee.parentNode[gt]._isOutsideThisEl(e.target),!re&&Zt(e)),!a.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),v=!0}function D(){mt=xt(ee),Vt=xt(ee,a.draggable),ct({sortable:m,name:"change",toEl:t,newIndex:mt,newDraggableIndex:Vt,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=Dt(n,a.draggable,t,!0),y("dragOver"),ve.eventCanceled)return v;if(ee.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||m._ignoreWhileAnimating===n)return x(!1);if(on=!1,u&&!a.disabled&&(c?f||(i=Xe!==qe):it===this||(this.lastPutMode=Yr.checkPull(this,u,ee,e))&&l.checkPut(this,u,ee,e))){if(h=this._getDirection(e,n)==="vertical",o=tt(ee),y("dragOverValid"),ve.eventCanceled)return v;if(i)return Xe=qe,w(),this._hideClone(),y("revert"),ve.eventCanceled||(Qt?qe.insertBefore(ee,Qt):qe.appendChild(ee)),x(!0);var I=Kn(t,a.draggable);if(!I||zd(e,h,this)&&!I.animated){if(I===ee)return x(!1);if(I&&t===e.target&&(n=I),n&&(s=tt(n)),Zr(qe,t,ee,o,n,s,e,!!n)!==!1)return w(),t.appendChild(ee),Xe=t,D(),x(!0)}else if(I&&Ud(e,h,this)){var N=cr(t,0,a,!0);if(N===ee)return x(!1);if(n=N,s=tt(n),Zr(qe,t,ee,o,n,s,e,!1)!==!1)return w(),t.insertBefore(ee,N),Xe=t,D(),x(!0)}else if(n.parentNode===t){s=tt(n);var S=0,M,L=ee.parentNode!==t,R=!Md(ee.animated&&ee.toRect||o,n.animated&&n.toRect||s,h),O=h?"top":"left",F=fo(n,"top","top")||fo(ee,"top","top"),_=F?F.scrollTop:void 0;sr!==n&&(M=s[O],Rr=!1,Kr=!R&&a.invertSwap||L),S=jd(e,n,s,h,R?1:a.swapThreshold,a.invertedSwapThreshold==null?a.swapThreshold:a.invertedSwapThreshold,Kr,sr===n);var j;if(S!==0){var H=xt(ee);do H-=S,j=Xe.children[H];while(j&&(ge(j,"display")==="none"||j===we))}if(S===0||j===n)return x(!1);sr=n,Fr=S;var te=n.nextElementSibling,W=!1;W=S===1;var J=Zr(qe,t,ee,o,n,s,e,W);if(J!==!1)return(J===1||J===-1)&&(W=J===1),Vn=!0,setTimeout($d,30),w(),W&&!te?t.appendChild(ee):n.parentNode.insertBefore(ee,W?te:n),F&&Eo(F,0,_-F.scrollTop),Xe=ee.parentNode,M!==void 0&&!Kr&&(en=Math.abs(M-tt(n)[O])),D(),x(!0)}if(t.contains(ee))return x(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){Le(document,"mousemove",this._onTouchMove),Le(document,"touchmove",this._onTouchMove),Le(document,"pointermove",this._onTouchMove),Le(document,"dragover",Zt),Le(document,"mousemove",Zt),Le(document,"touchmove",Zt)},_offUpEvents:function(){var e=this.el.ownerDocument;Le(e,"mouseup",this._onDrop),Le(e,"touchend",this._onDrop),Le(e,"pointerup",this._onDrop),Le(e,"touchcancel",this._onDrop),Le(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;if(mt=xt(ee),Vt=xt(ee,n.draggable),ht("drop",this,{evt:e}),Xe=ee&&ee.parentNode,mt=xt(ee),Vt=xt(ee,n.draggable),ve.eventCanceled){this._nulling();return}ar=!1,Kr=!1,Rr=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Gn(this.cloneId),Gn(this._dragStartId),this.nativeDraggable&&(Le(document,"drop",this),Le(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Ir&&ge(document.body,"user-select",""),ge(ee,"transform",""),e&&(Ar&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),we&&we.parentNode&&we.parentNode.removeChild(we),(qe===Xe||it&&it.lastPutMode!=="clone")&&Ze&&Ze.parentNode&&Ze.parentNode.removeChild(Ze),ee&&(this.nativeDraggable&&Le(ee,"dragend",this),zn(ee),ee.style["will-change"]="",Ar&&!ar&&pt(ee,it?it.options.ghostClass:this.options.ghostClass,!1),pt(ee,this.options.chosenClass,!1),ct({sortable:this,name:"unchoose",toEl:Xe,newIndex:null,newDraggableIndex:null,originalEvent:e}),qe!==Xe?(mt>=0&&(ct({rootEl:Xe,name:"add",toEl:Xe,fromEl:qe,originalEvent:e}),ct({sortable:this,name:"remove",toEl:Xe,originalEvent:e}),ct({rootEl:Xe,name:"sort",toEl:Xe,fromEl:qe,originalEvent:e}),ct({sortable:this,name:"sort",toEl:Xe,originalEvent:e})),it&&it.save()):mt!==lr&&mt>=0&&(ct({sortable:this,name:"update",toEl:Xe,originalEvent:e}),ct({sortable:this,name:"sort",toEl:Xe,originalEvent:e})),ve.active&&((mt==null||mt===-1)&&(mt=lr,Vt=Lr),ct({sortable:this,name:"end",toEl:Xe,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){ht("nulling",this),qe=ee=Xe=we=Qt=Ze=Jr=Gt=Xt=Ct=Ar=mt=Vt=lr=Lr=sr=Fr=it=Yr=ve.dragged=ve.ghost=ve.clone=ve.active=null,an.forEach(function(e){e.checked=!0}),an.length=Bn=$n=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":ee&&(this._onDragOver(e),Bd(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,o=0,s=n.length,i=this.options;o<s;o++)t=n[o],Dt(t,i.draggable,this.el,!1)&&e.push(t.getAttribute(i.dataIdAttr)||qd(t));return e},sort:function(e,t){var n={},o=this.el;this.toArray().forEach(function(s,i){var a=o.children[i];Dt(a,this.options.draggable,o,!1)&&(n[s]=a)},this),t&&this.captureAnimationState(),e.forEach(function(s){n[s]&&(o.removeChild(n[s]),o.appendChild(n[s]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return Dt(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var o=Pr.modifyOption(this,e,t);typeof o<"u"?n[e]=o:n[e]=t,e==="group"&&ko(n)},destroy:function(){ht("destroy",this);var e=this.el;e[gt]=null,Le(e,"mousedown",this._onTapStart),Le(e,"touchstart",this._onTapStart),Le(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(Le(e,"dragover",this),Le(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),sn.splice(sn.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Gt){if(ht("hideClone",this),ve.eventCanceled)return;ge(Ze,"display","none"),this.options.removeCloneOnHide&&Ze.parentNode&&Ze.parentNode.removeChild(Ze),Gt=!0}},_showClone:function(e){if(e.lastPutMode!=="clone"){this._hideClone();return}if(Gt){if(ht("showClone",this),ve.eventCanceled)return;ee.parentNode==qe&&!this.options.group.revertClone?qe.insertBefore(Ze,ee):Qt?qe.insertBefore(Ze,Qt):qe.appendChild(Ze),this.options.group.revertClone&&this.animate(ee,Ze),ge(Ze,"display",""),Gt=!1}}};function Bd(r){r.dataTransfer&&(r.dataTransfer.dropEffect="move"),r.cancelable&&r.preventDefault()}function Zr(r,e,t,n,o,s,i,a){var l,u=r[gt],c=u.options.onMove,f;return window.CustomEvent&&!zt&&!Or?l=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(l=document.createEvent("Event"),l.initEvent("move",!0,!0)),l.to=e,l.from=r,l.dragged=t,l.draggedRect=n,l.related=o||e,l.relatedRect=s||tt(e),l.willInsertAfter=a,l.originalEvent=i,r.dispatchEvent(l),c&&(f=c.call(u,l,i)),f}function zn(r){r.draggable=!1}function $d(){Vn=!1}function Ud(r,e,t){var n=tt(cr(t.el,0,t.options,!0)),o=10;return e?r.clientX<n.left-o||r.clientY<n.top&&r.clientX<n.right:r.clientY<n.top-o||r.clientY<n.bottom&&r.clientX<n.left}function zd(r,e,t){var n=tt(Kn(t.el,t.options.draggable)),o=10;return e?r.clientX>n.right+o||r.clientX<=n.right&&r.clientY>n.bottom&&r.clientX>=n.left:r.clientX>n.right&&r.clientY>n.top||r.clientX<=n.right&&r.clientY>n.bottom+o}function jd(r,e,t,n,o,s,i,a){var l=n?r.clientY:r.clientX,u=n?t.height:t.width,c=n?t.top:t.left,f=n?t.bottom:t.right,d=!1;if(!i){if(a&&en<u*o){if(!Rr&&(Fr===1?l>c+u*s/2:l<f-u*s/2)&&(Rr=!0),Rr)d=!0;else if(Fr===1?l<c+en:l>f-en)return-Fr}else if(l>c+u*(1-o)/2&&l<f-u*(1-o)/2)return Hd(e)}return d=d||i,d&&(l<c+u*s/2||l>f-u*s/2)?l>c+u/2?1:-1:0}function Hd(r){return xt(ee)<xt(r)?1:-1}function qd(r){for(var e=r.tagName+r.className+r.src+r.href+r.textContent,t=e.length,n=0;t--;)n+=e.charCodeAt(t);return n.toString(36)}function Vd(r){an.length=0;for(var e=r.getElementsByTagName("input"),t=e.length;t--;){var n=e[t];n.checked&&an.push(n)}}function tn(r){return setTimeout(r,0)}function Gn(r){return clearTimeout(r)}un&&Me(document,"touchmove",function(r){(ve.active||ar)&&r.cancelable&&r.preventDefault()});ve.utils={on:Me,off:Le,css:ge,find:xo,is:function(e,t){return!!Dt(e,t,e,!1)},extend:Td,throttle:wo,closest:Dt,toggleClass:pt,clone:So,index:xt,nextTick:tn,cancelNextTick:Gn,detectDirection:Ao,getChild:cr};ve.get=function(r){return r[gt]};ve.mount=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];e[0].constructor===Array&&(e=e[0]),e.forEach(function(n){if(!n.prototype||!n.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(n));n.utils&&(ve.utils=Ft(Ft({},ve.utils),n.utils)),Pr.mount(n)})};ve.create=function(r,e){return new ve(r,e)};ve.version=Sd;var Je=[],kr,Wn,Yn=!1,jn,Hn,ln,Tr;function Gd(){function r(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this))}return r.prototype={dragStarted:function(t){var n=t.originalEvent;this.sortable.nativeDraggable?Me(document,"dragover",this._handleAutoScroll):this.options.supportPointer?Me(document,"pointermove",this._handleFallbackAutoScroll):n.touches?Me(document,"touchmove",this._handleFallbackAutoScroll):Me(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var n=t.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?Le(document,"dragover",this._handleAutoScroll):(Le(document,"pointermove",this._handleFallbackAutoScroll),Le(document,"touchmove",this._handleFallbackAutoScroll),Le(document,"mousemove",this._handleFallbackAutoScroll)),vo(),rn(),Id()},nulling:function(){ln=Wn=kr=Yn=Tr=jn=Hn=null,Je.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,n){var o=this,s=(t.touches?t.touches[0]:t).clientX,i=(t.touches?t.touches[0]:t).clientY,a=document.elementFromPoint(s,i);if(ln=t,n||this.options.forceAutoScrollFallback||Or||zt||Ir){qn(t,this.options,a,n);var l=Wt(a,!0);Yn&&(!Tr||s!==jn||i!==Hn)&&(Tr&&vo(),Tr=setInterval(function(){var u=Wt(document.elementFromPoint(s,i),!0);u!==l&&(l=u,rn()),qn(t,o.options,u,n)},10),jn=s,Hn=i)}else{if(!this.options.bubbleScroll||Wt(a,!0)===Lt()){rn();return}qn(t,this.options,Wt(a,!1),!1)}}},Ut(r,{pluginName:"scroll",initializeByDefault:!0})}function rn(){Je.forEach(function(r){clearInterval(r.pid)}),Je=[]}function vo(){clearInterval(Tr)}var qn=wo(function(r,e,t,n){if(!!e.scroll){var o=(r.touches?r.touches[0]:r).clientX,s=(r.touches?r.touches[0]:r).clientY,i=e.scrollSensitivity,a=e.scrollSpeed,l=Lt(),u=!1,c;Wn!==t&&(Wn=t,rn(),kr=e.scroll,c=e.scrollFn,kr===!0&&(kr=Wt(t,!0)));var f=0,d=kr;do{var h=d,m=tt(h),v=m.top,y=m.bottom,w=m.left,x=m.right,D=m.width,I=m.height,N=void 0,S=void 0,M=h.scrollWidth,L=h.scrollHeight,R=ge(h),O=h.scrollLeft,F=h.scrollTop;h===l?(N=D<M&&(R.overflowX==="auto"||R.overflowX==="scroll"||R.overflowX==="visible"),S=I<L&&(R.overflowY==="auto"||R.overflowY==="scroll"||R.overflowY==="visible")):(N=D<M&&(R.overflowX==="auto"||R.overflowX==="scroll"),S=I<L&&(R.overflowY==="auto"||R.overflowY==="scroll"));var _=N&&(Math.abs(x-o)<=i&&O+D<M)-(Math.abs(w-o)<=i&&!!O),j=S&&(Math.abs(y-s)<=i&&F+I<L)-(Math.abs(v-s)<=i&&!!F);if(!Je[f])for(var H=0;H<=f;H++)Je[H]||(Je[H]={});(Je[f].vx!=_||Je[f].vy!=j||Je[f].el!==h)&&(Je[f].el=h,Je[f].vx=_,Je[f].vy=j,clearInterval(Je[f].pid),(_!=0||j!=0)&&(u=!0,Je[f].pid=setInterval(function(){n&&this.layer===0&&ve.active._onTouchMove(ln);var te=Je[this.layer].vy?Je[this.layer].vy*a:0,W=Je[this.layer].vx?Je[this.layer].vx*a:0;typeof c=="function"&&c.call(ve.dragged.parentNode[gt],W,te,r,ln,Je[this.layer].el)!=="continue"||Eo(Je[this.layer].el,W,te)}.bind({layer:f}),24))),f++}while(e.bubbleScroll&&d!==l&&(d=Wt(d,!1)));Yn=u}},30),Do=function(e){var t=e.originalEvent,n=e.putSortable,o=e.dragEl,s=e.activeSortable,i=e.dispatchSortableEvent,a=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(!!t){var u=n||s;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,f=document.elementFromPoint(c.clientX,c.clientY);l(),u&&!u.el.contains(f)&&(i("spill"),this.onSpill({dragEl:o,putSortable:n}))}};function Xn(){}Xn.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var o=cr(this.sortable.el,this.startIndex,this.options);o?this.sortable.el.insertBefore(t,o):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:Do};Ut(Xn,{pluginName:"revertOnSpill"});function Zn(){}Zn.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable,o=n||this.sortable;o.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),o.animateAll()},drop:Do};Ut(Zn,{pluginName:"removeOnSpill"});ve.mount(new Gd);ve.mount(Zn,Xn);var dr=ve;var Lo={name:function(r,e){let t=r.getAttribute("data-name").trim().toLowerCase(),n=e.getAttribute("data-name").trim().toLowerCase();return t.localeCompare(n)},created:function(r,e){let t=Number(r.getAttribute("data-created"));return Number(e.getAttribute("data-created"))-t},updated:function(r,e){let t=Number(r.getAttribute("data-updated"));return Number(e.getAttribute("data-updated"))-t},chaptersFirst:function(r,e){let t=r.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?-1:1},chaptersLast:function(r,e){let t=r.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?1:-1}},Fo=class{constructor(e){this.elem=e,this.sortContainer=e.querySelector("[book-sort-boxes]"),this.input=e.querySelector("[book-sort-input]");let t=e.querySelector(".sort-box");this.setupBookSortable(t),this.setupSortPresets(),window.$events.listen("entity-select-confirm",this.bookSelect.bind(this))}setupSortPresets(){let e="",t=!1,n=["name","created","updated"];this.sortContainer.addEventListener("click",o=>{let s=o.target.closest(".sort-box-options [data-sort]");if(!s)return;o.preventDefault();let i=s.closest(".sort-box").querySelectorAll("ul"),a=s.getAttribute("data-sort");t=e===a?!t:!1;let l=Lo[a];t&&n.includes(a)&&(l=function(u,c){return 0-Lo[a](u,c)});for(let u of i)Array.from(u.children).filter(f=>f.matches("li")).sort(l).forEach(f=>{u.appendChild(f)});e=a,this.updateMapInput()})}bookSelect(e){if(this.elem.querySelector(`[data-type="book"][data-id="${e.id}"]`)!==null)return;let n=e.link+"/sort-item";window.$http.get(n).then(o=>{let s=document.createElement("div");s.innerHTML=o.data;let i=s.children[0];this.sortContainer.append(i),this.setupBookSortable(i)})}setupBookSortable(e){let t=[e.querySelector(".sort-list")];t.push(...e.querySelectorAll(".entity-list-item + ul"));let n={name:"book",pull:["book","chapter"],put:["book","chapter"]},o={name:"chapter",pull:["book","chapter"],put:function(s,i,a){return a.getAttribute("data-type")==="page"}};for(let s of t)new dr(s,{group:s.classList.contains("sort-list")?n:o,animation:150,fallbackOnBody:!0,swapThreshold:.65,onSort:this.updateMapInput.bind(this),dragClass:"bg-white",ghostClass:"primary-background-light",multiDrag:!0,multiDragKey:"CTRL",selectedClass:"sortable-selected"})}updateMapInput(){let e=this.buildEntityMap();this.input.value=JSON.stringify(e)}buildEntityMap(){let e=[],t=this.elem.querySelectorAll(".sort-list");for(let n of t){let o=n.closest('[data-type="book"]').getAttribute("data-id"),s=Array.from(n.children).filter(i=>i.matches('[data-type="page"], [data-type="chapter"]'));for(let i=0;i<s.length;i++)this.addBookChildToMap(s[i],i,o,e)}return e}addBookChildToMap(e,t,n,o){let s=e.getAttribute("data-type"),i=!1,a=e.getAttribute("data-id");o.push({id:a,sort:t,parentChapter:i,type:s,book:n});let l=e.querySelectorAll('[data-type="page"]');for(let u=0;u<l.length;u++)o.push({id:l[u].getAttribute("data-id"),sort:u,parentChapter:a,type:"page",book:n})}},Ro=Fo;var cn=new WeakMap;function Oo(r,e=400,t=null){hn(r),r.style.display="block",fn(r,{opacity:["0","1"]},e,()=>{t&&t()})}function dn(r,e=400,t=null){hn(r),fn(r,{opacity:["1","0"]},e,()=>{r.style.display="none",t&&t()})}function fr(r,e=400){hn(r);let t=r.getBoundingClientRect().height,n=getComputedStyle(r),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),i={height:[`${t}px`,"0px"],overflow:["hidden","hidden"],paddingTop:[o,"0px"],paddingBottom:[s,"0px"]};fn(r,i,e,()=>{r.style.display="none"})}function hr(r,e=400){hn(r),r.style.display="block";let t=r.getBoundingClientRect().height,n=getComputedStyle(r),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),i={height:["0px",`${t}px`],overflow:["hidden","hidden"],paddingTop:["0px",o],paddingBottom:["0px",s]};fn(r,i,e)}function fn(r,e,t=400,n=null){let o=Object.keys(e);for(let i of o)r.style[i]=e[i][0];let s=()=>{for(let i of o)r.style[i]=null;r.style.transition=null,r.removeEventListener("transitionend",s),cn.delete(r),n&&n()};setTimeout(()=>{r.style.transition=`all ease-in-out ${t}ms`;for(let i of o)r.style[i]=e[i][1];r.addEventListener("transitionend",s),cn.set(r,s)},15)}function hn(r){cn.has(r)&&cn.get(r)()}var Po=class{constructor(e){this.elem=e,this.isOpen=e.classList.contains("open"),e.addEventListener("click",this.click.bind(this))}open(){let e=this.elem.parentNode.querySelector(".inset-list");this.elem.classList.add("open"),this.elem.setAttribute("aria-expanded","true"),hr(e,240)}close(){let e=this.elem.parentNode.querySelector(".inset-list");this.elem.classList.remove("open"),this.elem.setAttribute("aria-expanded","false"),fr(e,240)}click(e){e.preventDefault(),this.isOpen?this.close():this.open(),this.isOpen=!this.isOpen}},Mo=Po;var No=class{setup(){this.container=this.$refs.container,this.popup=this.$el,this.editorInput=this.$refs.editor,this.languageLinks=this.$manyRefs.languageLink,this.saveButton=this.$refs.saveButton,this.languageInput=this.$refs.languageInput,this.historyDropDown=this.$refs.historyDropDown,this.historyList=this.$refs.historyList,this.callback=null,this.editor=null,this.history={},this.historyKey="code_history",this.setupListeners()}setupListeners(){this.container.addEventListener("keydown",e=>{e.ctrlKey&&e.key==="Enter"&&this.save()}),Ue(this.languageLinks,e=>{let t=e.target.dataset.lang;this.languageInput.value=t,this.updateEditorMode(t)}),Wr(this.languageInput,e=>this.save()),Ue(this.saveButton,e=>this.save()),We(this.historyList,"button","click",(e,t)=>{e.preventDefault();let n=t.dataset.time;this.editor&&this.editor.setValue(this.history[n])})}save(){this.callback&&this.callback(this.editor.getValue(),this.languageInput.value),this.hide()}open(e,t,n){this.languageInput.value=t,this.callback=n,this.show(),this.updateEditorMode(t),window.importVersioned("code").then(o=>{o.setContent(this.editor,e)})}async show(){let e=await window.importVersioned("code");this.editor||(this.editor=e.popupEditor(this.editorInput,this.languageInput.value)),this.loadHistory(),this.popup.components.popup.show(()=>{e.updateLayout(this.editor),this.editor.focus()},()=>{this.addHistory()})}hide(){this.popup.components.popup.hide(),this.addHistory()}async updateEditorMode(e){(await window.importVersioned("code")).setMode(this.editor,e,this.editor.getValue())}loadHistory(){this.history=JSON.parse(window.sessionStorage.getItem(this.historyKey)||"{}");let e=Object.keys(this.history).reverse();this.historyDropDown.classList.toggle("hidden",e.length===0),this.historyList.innerHTML=e.map(t=>{let n=new Date(parseInt(t)).toLocaleTimeString();return`<li><button type="button" data-time="${t}">${n}</button></li>`}).join("")}addHistory(){if(!this.editor)return;let e=this.editor.getValue();if(!e)return;let t=Object.keys(this.history).pop();if(this.history[t]===e)return;this.history[String(Date.now())]=e;let n=JSON.stringify(this.history);window.sessionStorage.setItem(this.historyKey,n)}},_o=No;var Bo=class{constructor(e){e.querySelectorAll("pre").length>0&&window.importVersioned("code").then(n=>{n.highlightWithin(e)})}},$o=Bo;var Uo=class{constructor(e){this.elem=e,this.trigger=e.querySelector("[collapsible-trigger]"),this.content=e.querySelector("[collapsible-content]"),!!this.trigger&&(this.trigger.addEventListener("click",this.toggle.bind(this)),this.openIfContainsError())}open(){this.elem.classList.add("open"),this.trigger.setAttribute("aria-expanded","true"),hr(this.content,300)}close(){this.elem.classList.remove("open"),this.trigger.setAttribute("aria-expanded","false"),fr(this.content,300)}toggle(){this.elem.classList.contains("open")?this.close():this.open()}openIfContainsError(){this.content.querySelector(".text-neg.text-small")&&this.open()}},zo=Uo;var jo=class{constructor(e){this.elem=e,this.checkbox=e.querySelector("input[type=checkbox]"),this.display=e.querySelector('[role="checkbox"]'),this.checkbox.addEventListener("change",this.stateChange.bind(this)),this.elem.addEventListener("keydown",this.onKeyDown.bind(this))}onKeyDown(e){(e.keyCode===32||e.keyCode===13)&&(e.preventDefault(),this.toggle())}toggle(){this.checkbox.checked=!this.checkbox.checked,this.checkbox.dispatchEvent(new Event("change")),this.stateChange()}stateChange(){let e=this.checkbox.checked?"true":"false";this.display.setAttribute("aria-checked",e)}},Ho=jo;var qo=class{constructor(e){this.elem=e,this.dealtWith=!1,e.addEventListener("toggle",this.onToggle.bind(this))}onToggle(){this.dealtWith||(this.elem.querySelector("pre")&&window.importVersioned("code").then(e=>{e.highlightWithin(this.elem)}),this.dealtWith=!0)}},Vo=qo;var Go=class{setup(){this.container=this.$el,this.menu=this.$refs.menu,this.toggle=this.$refs.toggle,this.moveMenu=this.$opts.moveMenu,this.bubbleEscapes=this.$opts.bubbleEscapes==="true",this.direction=document.dir==="rtl"?"right":"left",this.body=document.body,this.showing=!1,this.setupListeners(),this.hide=this.hide.bind(this)}show(e=null){this.hideAll(),this.menu.style.display="block",this.menu.classList.add("anim","menuIn"),this.toggle.setAttribute("aria-expanded","true"),this.moveMenu&&(this.rect=this.menu.getBoundingClientRect(),this.body.appendChild(this.menu),this.menu.style.position="fixed",this.direction==="right"?this.menu.style.right=`${this.rect.right-this.rect.width}px`:this.menu.style.left=`${this.rect.left}px`,this.menu.style.top=`${this.rect.top}px`,this.menu.style.width=`${this.rect.width}px`),this.menu.addEventListener("mouseleave",this.hide.bind(this)),window.addEventListener("click",o=>{this.menu.contains(o.target)||this.hide()});let t=this.menu.querySelector("input");t!==null&&t.focus(),this.showing=!0;let n=new Event("show");this.container.dispatchEvent(n),e&&e.stopPropagation()}hideAll(){for(let e of window.components.dropdown)e.hide()}hide(){this.menu.style.display="none",this.menu.classList.remove("anim","menuIn"),this.toggle.setAttribute("aria-expanded","false"),this.moveMenu&&(this.menu.style.position="",this.menu.style[this.direction]="",this.menu.style.top="",this.menu.style.width="",this.container.appendChild(this.menu)),this.showing=!1}getFocusable(){return Array.from(this.menu.querySelectorAll("[tabindex],[href],button,input:not([type=hidden])"))}focusNext(){let e=this.getFocusable(),n=e.indexOf(document.activeElement)+1;n>=e.length&&(n=0),e[n].focus()}focusPrevious(){let e=this.getFocusable(),n=e.indexOf(document.activeElement)-1;n<0&&(n=e.length-1),e[n].focus()}setupListeners(){this.container.addEventListener("click",t=>{Array.from(this.menu.querySelectorAll("a")).includes(t.target)&&this.hide()}),Ue(this.toggle,t=>{t.stopPropagation(),this.show(t),t instanceof KeyboardEvent&&this.focusNext()});let e=t=>{t.key==="ArrowDown"||t.key==="ArrowRight"?(this.focusNext(),t.preventDefault()):t.key==="ArrowUp"||t.key==="ArrowLeft"?(this.focusPrevious(),t.preventDefault()):t.key==="Escape"&&(this.hide(),this.toggle.focus(),this.bubbleEscapes||t.stopPropagation())};this.container.addEventListener("keydown",e),this.moveMenu&&this.menu.addEventListener("keydown",e),this.menu.addEventListener("keydown ",t=>{t.key==="Enter"&&(t.preventDefault(),t.stopPropagation(),this.hide())})}},Wo=Go;var Yo=class{setup(){this.elem=this.$el,this.searchInput=this.$refs.searchInput,this.loadingElem=this.$refs.loading,this.listContainerElem=this.$refs.listContainer,this.localSearchSelector=this.$opts.localSearchSelector,this.url=this.$opts.url,this.elem.addEventListener("show",this.onShow.bind(this)),this.searchInput.addEventListener("input",this.onSearch.bind(this)),this.runAjaxSearch=Sr(this.runAjaxSearch,300,!1)}onShow(){this.loadList()}onSearch(){let e=this.searchInput.value.toLowerCase().trim();this.localSearchSelector?this.runLocalSearch(e):(this.toggleLoading(!0),this.listContainerElem.innerHTML="",this.runAjaxSearch(e))}runAjaxSearch(e){this.loadList(e)}runLocalSearch(e){let t=this.listContainerElem.querySelectorAll(this.localSearchSelector);for(let n of t){let o=!e||n.textContent.toLowerCase().includes(e);n.style.display=o?"flex":"none",n.classList.toggle("hidden",!o)}}async loadList(e=""){this.listContainerElem.innerHTML="",this.toggleLoading(!0);try{let t=await window.$http.get(this.getAjaxUrl(e));this.listContainerElem.innerHTML=t.data}catch(t){console.error(t)}this.toggleLoading(!1),this.localSearchSelector&&this.onSearch()}getAjaxUrl(e=null){if(!e)return this.url;let t=this.url.includes("?")?"&":"?";return`${this.url}${t}search=${encodeURIComponent(e)}`}toggleLoading(e=!1){this.loadingElem.style.display=e?"block":"none"}},Ko=Yo;var Zo=jr(Xo());var Qo=class{setup(){this.container=this.$el,this.url=this.$opts.url,this.successMessage=this.$opts.successMessage,this.removeMessage=this.$opts.removeMessage,this.uploadLimit=Number(this.$opts.uploadLimit),this.uploadLimitMessage=this.$opts.uploadLimitMessage,this.timeoutMessage=this.$opts.timeoutMessage;let e=this;this.dz=new Zo.default(this.container,{addRemoveLinks:!0,dictRemoveFile:this.removeMessage,timeout:Number(window.uploadTimeout)||6e4,maxFilesize:this.uploadLimit,url:this.url,withCredentials:!0,init(){this.dz=this,this.dz.on("sending",e.onSending.bind(e)),this.dz.on("success",e.onSuccess.bind(e)),this.dz.on("error",e.onError.bind(e))}})}onSending(e,t,n){let o=window.document.querySelector("meta[name=token]").getAttribute("content");n.append("_token",o),t.ontimeout=s=>{this.dz.emit("complete",e),this.dz.emit("error",e,this.timeoutMessage)}}onSuccess(e,t){this.$emit("success",{file:e,data:t}),this.successMessage&&window.$events.emit("success",this.successMessage),dn(e.previewElement,800,()=>{this.dz.removeFile(e)})}onError(e,t,n){this.$emit("error",{file:e,errorMessage:t,xhr:n});let o=s=>{let i=e.previewElement.querySelector("[data-dz-errormessage]");i.textContent=s};n&&n.status===413?o(this.uploadLimitMessage):t.file&&o(t.file)}removeAll(){this.dz.removeAllFiles(!0)}},Jo=Qo;var es=class{constructor(e){this.elem=e,this.buttons=e.querySelectorAll("[toolbox-tab-button]"),this.contentElements=e.querySelectorAll("[toolbox-tab-content]"),this.toggleButton=e.querySelector("[toolbox-toggle]"),this.toggleButton.addEventListener("click",this.toggle.bind(this)),this.elem.addEventListener("click",t=>{let n=t.target.closest("[toolbox-tab-button]");if(n===null)return;let o=n.getAttribute("toolbox-tab-button");this.setActiveTab(o,!0)}),this.setActiveTab(this.contentElements[0].getAttribute("toolbox-tab-content"))}toggle(){this.elem.classList.toggle("open");let e=this.elem.classList.contains("open")?"true":"false";this.toggleButton.setAttribute("aria-expanded",e)}setActiveTab(e,t=!1){for(let n=0,o=this.buttons.length;n<o;n++)this.buttons[n].classList.remove("active"),this.buttons[n].getAttribute("toolbox-tab-button")===e&&this.buttons[n].classList.add("active");for(let n=0,o=this.contentElements.length;n<o;n++)this.contentElements[n].style.display="none",this.contentElements[n].getAttribute("toolbox-tab-content")===e&&(this.contentElements[n].style.display="block");t&&!this.elem.classList.contains("open")&&this.toggle()}},ts=es;var rs=class{constructor(e){this.permissionsTable=e.querySelector("[permissions-table]"),this.restrictedCheckbox=e.querySelector("[name=restricted]"),this.restrictedCheckbox.addEventListener("change",this.updateTableVisibility.bind(this))}updateTableVisibility(){this.permissionsTable.style.display=this.restrictedCheckbox.checked?null:"none"}},ns=rs;var is=class{setup(){this.entityId=this.$opts.entityId,this.entityType=this.$opts.entityType,this.contentView=this.$refs.contentView,this.searchView=this.$refs.searchView,this.searchResults=this.$refs.searchResults,this.searchInput=this.$refs.searchInput,this.searchForm=this.$refs.searchForm,this.clearButton=this.$refs.clearButton,this.loadingBlock=this.$refs.loadingBlock,this.setupListeners()}setupListeners(){this.searchInput.addEventListener("change",this.runSearch.bind(this)),this.searchForm.addEventListener("submit",e=>{e.preventDefault(),this.runSearch()}),Ue(this.clearButton,this.clearSearch.bind(this))}runSearch(){let e=this.searchInput.value.trim();if(e.length===0)return this.clearSearch();this.searchView.classList.remove("hidden"),this.contentView.classList.add("hidden"),this.loadingBlock.classList.remove("hidden");let t=window.baseUrl(`/search/${this.entityType}/${this.entityId}`);window.$http.get(t,{term:e}).then(n=>{this.searchResults.innerHTML=n.data}).catch(console.error).then(()=>{this.loadingBlock.classList.add("hidden")})}clearSearch(){this.searchView.classList.add("hidden"),this.contentView.classList.remove("hidden"),this.loadingBlock.classList.add("hidden"),this.searchInput.value=""}},os=is;var ss=class{setup(){this.elem=this.$el,this.entityTypes=this.$opts.entityTypes||"page,book,chapter",this.entityPermission=this.$opts.entityPermission||"view",this.input=this.$refs.input,this.searchInput=this.$refs.search,this.loading=this.$refs.loading,this.resultsContainer=this.$refs.results,this.addButton=this.$refs.add,this.search="",this.lastClick=0,this.selectedItemData=null,this.setupListeners(),this.showLoading(),this.initialLoad()}setupListeners(){this.elem.addEventListener("click",this.onClick.bind(this));let e=0;this.searchInput.addEventListener("input",t=>{e=Date.now(),this.showLoading(),setTimeout(()=>{Date.now()-e<199||this.searchEntities(this.searchInput.value)},200)}),this.searchInput.addEventListener("keydown",t=>{t.keyCode===13&&t.preventDefault()}),this.addButton&&this.addButton.addEventListener("click",t=>{this.selectedItemData&&(this.confirmSelection(this.selectedItemData),this.unselectAll())}),We(this.$el,"[data-entity-type]","keydown",(t,n)=>{if(t.ctrlKey&&t.code==="Enter"){let o=this.$el.closest("form");if(o){o.submit(),t.preventDefault();return}}t.code==="ArrowDown"&&this.focusAdjacent(!0),t.code==="ArrowUp"&&this.focusAdjacent(!1)}),this.searchInput.addEventListener("keydown",t=>{t.code==="ArrowDown"&&this.focusAdjacent(!0)})}focusAdjacent(e=!0){let t=Array.from(this.resultsContainer.querySelectorAll("[data-entity-type]")),n=t.indexOf(document.activeElement),o=t[n+(e?1:-1)]||t[0];o&&o.focus()}showLoading(){this.loading.style.display="block",this.resultsContainer.style.display="none"}hideLoading(){this.loading.style.display="none",this.resultsContainer.style.display="block"}initialLoad(){window.$http.get(this.searchUrl()).then(e=>{this.resultsContainer.innerHTML=e.data,this.hideLoading()})}searchUrl(){return`/ajax/search/entities?types=${encodeURIComponent(this.entityTypes)}&permission=${encodeURIComponent(this.entityPermission)}`}searchEntities(e){this.input.value="";let t=`${this.searchUrl()}&term=${encodeURIComponent(e)}`;window.$http.get(t).then(n=>{this.resultsContainer.innerHTML=n.data,this.hideLoading()})}isDoubleClick(){let e=Date.now(),t=e-this.lastClick<300;return this.lastClick=e,t}onClick(e){let t=e.target.closest("[data-entity-type]");t&&(e.preventDefault(),e.stopPropagation(),this.selectItem(t))}selectItem(e){let t=this.isDoubleClick(),n=e.getAttribute("data-entity-type"),o=e.getAttribute("data-entity-id"),s=!e.classList.contains("selected")||t;this.unselectAll(),this.input.value=s?`${n}:${o}`:"";let i=e.getAttribute("href"),a=e.querySelector(".entity-list-item-name").textContent,l={id:Number(o),name:a,link:i};s?(e.classList.add("selected"),this.selectedItemData=l):window.$events.emit("entity-select-change",null),!(!t&&!s)&&(t&&this.confirmSelection(l),s&&window.$events.emit("entity-select-change",l))}confirmSelection(e){window.$events.emit("entity-select-confirm",e)}unselectAll(){let e=this.elem.querySelectorAll(".selected");for(let t of e)t.classList.remove("selected","primary-background");this.selectedItemData=null}},as=ss;var ls=class{setup(){this.elem=this.$el,this.selectButton=this.$refs.select,this.searchInput=this.$refs.searchInput,window.EntitySelectorPopup=this,this.callback=null,this.selection=null,this.selectButton.addEventListener("click",this.onSelectButtonClick.bind(this)),window.$events.listen("entity-select-change",this.onSelectionChange.bind(this)),window.$events.listen("entity-select-confirm",this.onSelectionConfirm.bind(this))}show(e){this.callback=e,this.elem.components.popup.show(),this.searchInput.focus()}hide(){this.elem.components.popup.hide()}onSelectButtonClick(){this.hide(),this.selection!==null&&this.callback&&this.callback(this.selection)}onSelectionConfirm(e){this.hide(),this.callback&&e&&this.callback(e)}onSelectionChange(e){this.selection=e,e===null?this.selectButton.setAttribute("disabled","true"):this.selectButton.removeAttribute("disabled")}},us=ls;var cs=class{setup(){this.container=this.$el,this.name=this.$opts.name,Ue(this.$el,()=>{this.$emit(this.name,this.$opts)})}},ds=cs;var fs=class{constructor(e){this.elem=e,this.isOpen=e.getAttribute("expand-toggle-is-open")==="yes",this.updateEndpoint=e.getAttribute("expand-toggle-update-endpoint"),this.selector=e.getAttribute("expand-toggle"),e.addEventListener("click",this.click.bind(this))}open(e){hr(e,200)}close(e){fr(e,200)}click(e){e.preventDefault();let t=document.querySelectorAll(this.selector);for(let n of t)this.isOpen?this.close(n):this.open(n);this.isOpen=!this.isOpen,this.updateSystemAjax(this.isOpen)}updateSystemAjax(e){window.$http.patch(this.updateEndpoint,{expand:e?"true":"false"})}},hs=fs;var ps=class{setup(){this.elem=this.$el,this.toggleButton=this.$refs.toggle,this.menu=this.$refs.menu,this.open=!1,this.toggleButton.addEventListener("click",this.onToggle.bind(this)),this.onWindowClick=this.onWindowClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}onToggle(e){this.open=!this.open,this.menu.classList.toggle("show",this.open),this.toggleButton.setAttribute("aria-expanded",this.open?"true":"false"),this.open?(this.elem.addEventListener("keydown",this.onKeyDown),window.addEventListener("click",this.onWindowClick)):(this.elem.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("click",this.onWindowClick)),e.stopPropagation()}onKeyDown(e){e.code==="Escape"&&this.onToggle(e)}onWindowClick(e){this.onToggle(e)}},ms=ps;var gs=class{constructor(e){this.elem=e,this.typeControl=e.querySelector('[name="setting-app-homepage-type"]'),this.pagePickerContainer=e.querySelector("[page-picker-container]"),this.typeControl.addEventListener("change",this.controlPagePickerVisibility.bind(this)),this.controlPagePickerVisibility()}controlPagePickerVisibility(){let e=this.typeControl.value==="page";this.pagePickerContainer.style.display=e?"block":"none"}},vs=gs;var ys=class{setup(){this.uploadedTo=this.$opts.uploadedTo,this.container=this.$el,this.popupEl=this.$refs.popup,this.searchForm=this.$refs.searchForm,this.searchInput=this.$refs.searchInput,this.cancelSearch=this.$refs.cancelSearch,this.listContainer=this.$refs.listContainer,this.filterTabs=this.$manyRefs.filterTabs,this.selectButton=this.$refs.selectButton,this.formContainer=this.$refs.formContainer,this.dropzoneContainer=this.$refs.dropzoneContainer,this.type="gallery",this.lastSelected={},this.lastSelectedTime=0,this.callback=null,this.resetState=()=>{this.hasData=!1,this.page=1,this.filter="all"},this.resetState(),this.setupListeners(),window.ImageManager=this}setupListeners(){Ue(this.filterTabs,e=>{this.resetAll(),this.filter=e.target.dataset.filter,this.setActiveFilterTab(this.filter),this.loadGallery()}),this.searchForm.addEventListener("submit",e=>{this.resetListView(),this.loadGallery(),e.preventDefault()}),Ue(this.cancelSearch,e=>{this.resetListView(),this.resetSearchView(),this.loadGallery(),this.cancelSearch.classList.remove("active")}),this.searchInput.addEventListener("input",e=>{this.cancelSearch.classList.toggle("active",this.searchInput.value.trim())}),We(this.listContainer,".load-more","click",async e=>{Er(e.target),this.page++,await this.loadGallery(),e.target.remove()}),this.listContainer.addEventListener("event-emit-select-image",this.onImageSelectEvent.bind(this)),this.listContainer.addEventListener("error",e=>{e.target.src=baseUrl("loading_error.png")},!0),Ue(this.selectButton,()=>{this.callback&&this.callback(this.lastSelected),this.hide()}),We(this.formContainer,"#image-manager-delete","click",e=>{this.lastSelected&&this.loadImageEditForm(this.lastSelected.id,!0)}),this.formContainer.addEventListener("ajax-form-success",this.refreshGallery.bind(this)),this.container.addEventListener("dropzone-success",this.refreshGallery.bind(this))}show(e,t="gallery"){this.resetAll(),this.callback=e,this.type=t,this.popupEl.components.popup.show(),this.dropzoneContainer.classList.toggle("hidden",t!=="gallery"),this.hasData||(this.loadGallery(),this.hasData=!0)}hide(){this.popupEl.components.popup.hide()}async loadGallery(){let e={page:this.page,search:this.searchInput.value||null,uploaded_to:this.uploadedTo,filter_type:this.filter==="all"?null:this.filter},{data:t}=await window.$http.get(`images/${this.type}`,e);e.page===1&&(this.listContainer.innerHTML=""),this.addReturnedHtmlElementsToList(t),qi(this.listContainer)}addReturnedHtmlElementsToList(e){let t=document.createElement("div");t.innerHTML=e,window.components.init(t);for(let n of[...t.children])this.listContainer.appendChild(n)}setActiveFilterTab(e){this.filterTabs.forEach(n=>n.classList.remove("selected"));let t=this.filterTabs.find(n=>n.dataset.filter===e);t&&t.classList.add("selected")}resetAll(){this.resetState(),this.resetListView(),this.resetSearchView(),this.resetEditForm(),this.setActiveFilterTab("all"),this.selectButton.classList.add("hidden")}resetSearchView(){this.searchInput.value=""}resetEditForm(){this.formContainer.innerHTML=""}resetListView(){Er(this.listContainer),this.page=1}refreshGallery(){this.resetListView(),this.loadGallery()}onImageSelectEvent(e){let t=JSON.parse(e.detail.data),n=t&&t.id===this.lastSelected.id&&Date.now()-this.lastSelectedTime<400,o=e.target.classList.contains("selected");[...this.listContainer.querySelectorAll(".selected")].forEach(s=>{s.classList.remove("selected")}),o?this.resetEditForm():(e.target.classList.add("selected"),this.loadImageEditForm(t.id)),this.selectButton.classList.toggle("hidden",o),n&&this.callback&&(this.callback(t),this.hide()),this.lastSelected=t,this.lastSelectedTime=Date.now()}async loadImageEditForm(e,t=!1){t||(this.formContainer.innerHTML="");let n=t?{delete:!0}:{},{data:o}=await window.$http.get(`/images/edit/${e}`,n);this.formContainer.innerHTML=o,window.components.init(this.formContainer)}},bs=ys;var xs=class{constructor(e){this.elem=e,this.imageElem=e.querySelector("img"),this.imageInput=e.querySelector("input[type=file]"),this.resetInput=e.querySelector("input[data-reset-input]"),this.removeInput=e.querySelector("input[data-remove-input]"),this.defaultImage=e.getAttribute("data-default-image"),e.querySelector('button[data-action="reset-image"]').addEventListener("click",this.reset.bind(this));let n=e.querySelector('button[data-action="remove-image"]');n&&n.addEventListener("click",this.removeImage.bind(this)),this.imageInput.addEventListener("change",this.fileInputChange.bind(this))}fileInputChange(){this.resetInput.setAttribute("disabled","disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled");for(let e of this.imageInput.files)this.imageElem.src=window.URL.createObjectURL(e);this.imageElem.classList.remove("none")}reset(){this.imageInput.value="",this.imageElem.src=this.defaultImage,this.resetInput.removeAttribute("disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled"),this.imageElem.classList.remove("none")}removeImage(){this.imageInput.value="",this.imageElem.classList.add("none"),this.removeInput.removeAttribute("disabled"),this.resetInput.setAttribute("disabled","disabled")}},ws=xs;var Es=class{constructor(e){this.elem=e,this.menu=e.querySelector("ul"),this.sortInput=e.querySelector('[name="sort"]'),this.orderInput=e.querySelector('[name="order"]'),this.form=e.querySelector("form"),this.menu.addEventListener("click",t=>{t.target.closest("[data-sort-value]")!==null&&this.sortOptionClick(t)}),this.elem.addEventListener("click",t=>{t.target.closest("[data-sort-dir]")!==null&&this.sortDirectionClick(t)})}sortOptionClick(e){let t=e.target.closest("[data-sort-value]");this.sortInput.value=t.getAttribute("data-sort-value"),e.preventDefault(),this.form.submit()}sortDirectionClick(e){let n=this.orderInput.value==="asc"?"desc":"asc";this.orderInput.value=n,e.preventDefault(),this.form.submit()}},Ss=Es;var Nu=jr(ku()),_u=jr(Fu());var Ru=class{constructor(e){this.data=e}hasItems(){return Boolean(this.data)&&Boolean(this.data.types)&&this.data.types.length>0}containsTabularData(){let e=this.data.getData("text/rtf");return e&&e.includes("\\trowd")}getImages(){let e=this.data.types,t=this.data.files,n=[];for(let o of e)if(o.includes("image")){let s=this.data.getData(o);n.push(s.getAsFile())}for(let o of t)o.type.includes("image")&&n.push(o);return n}},$r=Ru;var jt=null,Li,Ii,Di;function hp(r,e,t){Ii=e,Di=t,jt=document.createElement("iframe"),jt.setAttribute("frameborder","0"),window.addEventListener("message",Ou),jt.setAttribute("src",r),jt.setAttribute("class","fullscreen"),jt.style.backgroundColor="#FFFFFF",document.body.appendChild(jt),Li=new URL(r).origin}function pp(){Pu()}function Ou(r){if(!r.data||r.data.length<1||r.origin!==Li)return;let e=JSON.parse(r.data);e.event==="init"?vp():e.event==="exit"?Pu():e.event==="save"?gp(e):e.event==="export"&&mp(e)}function mp(r){Di&&Di(r.data)}function gp(r){Mu({action:"export",format:"xmlpng",xml:r.xml,spin:"Updating drawing"})}function vp(){!Ii||Ii().then(r=>{Mu({action:"load",autosave:1,xml:r})})}function Pu(){window.removeEventListener("message",Ou),jt&&document.body.removeChild(jt)}function Mu(r){jt.contentWindow.postMessage(JSON.stringify(r),Li)}async function yp(r,e){let t={image:r,uploaded_to:e};return(await window.$http.post(window.baseUrl("/images/drawio"),t)).data}async function bp(r){return`data:image/png;base64,${(await window.$http.get(window.baseUrl(`/images/drawio/base64/${r}`))).data.content}`}var vt={show:hp,close:pp,upload:yp,load:bp};var Bu=class{setup(){this.elem=this.$el,this.pageId=this.$opts.pageId,this.textDirection=this.$opts.textDirection,this.imageUploadErrorText=this.$opts.imageUploadErrorText,this.serverUploadLimitText=this.$opts.serverUploadLimitText,this.markdown=new Nu.default({html:!0}),this.markdown.use(_u.default,{label:!0}),this.display=this.elem.querySelector(".markdown-display"),this.displayStylesLoaded=!1,this.input=this.elem.querySelector("textarea"),this.cm=null,this.Code=null;let e=window.importVersioned("code").then(n=>(this.cm=n.markdownEditor(this.input),this.Code=n,this.cm));this.onMarkdownScroll=this.onMarkdownScroll.bind(this);let t=()=>{this.displayDoc=this.display.contentDocument,this.init(e)};this.display.contentDocument.readyState==="complete"?t():this.display.addEventListener("load",t.bind(this)),window.$events.emitPublic(this.elem,"editor-markdown::setup",{markdownIt:this.markdown,displayEl:this.display,codeMirrorInstance:this.cm})}init(e){let t=0;this.displayDoc.addEventListener("click",s=>{let i=Date.now()-t<300,a=s.target.closest("a");if(a!==null){s.preventDefault(),window.open(a.getAttribute("href"));return}let l=s.target.closest("[drawio-diagram]");if(l!==null&&i){this.actionEditDrawing(l);return}t=Date.now()}),this.elem.addEventListener("click",s=>{let i=s.target.closest("button[data-action]");if(i===null)return;let a=i.getAttribute("data-action");if(a==="insertImage"&&this.actionInsertImage(),a==="insertLink"&&this.actionShowLinkSelector(),a==="insertDrawing"&&(s.ctrlKey||s.metaKey)){this.actionShowImageManager();return}a==="insertDrawing"&&this.actionStartDrawing(),a==="fullscreen"&&this.actionFullScreen()}),this.elem.addEventListener("click",s=>{let i=s.target.closest(".editor-toolbar-label");if(!i)return;let a=this.elem.querySelectorAll(".markdown-editor-wrap");for(let l of a)l.classList.remove("active");i.closest(".markdown-editor-wrap").classList.add("active")}),e.then(s=>{this.codeMirrorSetup(s);let i=Sr(()=>this.Code.updateLayout(s),100,!1);new ResizeObserver(i).observe(this.elem)}),this.listenForBookStackEditorEvents();let o=new URL(window.location).searchParams.get("content-text");o&&this.scrollToText(o)}updateAndRender(){let e=this.cm.getValue();this.input.value=e;let t=this.markdown.render(e);window.$events.emit("editor-html-change",t),window.$events.emit("editor-markdown-change",e),this.displayDoc.body.className="page-content",this.displayDoc.body.innerHTML=t,this.loadStylesIntoDisplay()}loadStylesIntoDisplay(){if(this.displayStylesLoaded)return;this.displayDoc.documentElement.classList.add("markdown-editor-display"),document.documentElement.classList.contains("dark-mode")&&(this.displayDoc.documentElement.style.backgroundColor="#222",this.displayDoc.documentElement.classList.add("dark-mode")),this.displayDoc.head.innerHTML="";let e=document.head.querySelectorAll("style,link[rel=stylesheet]");for(let t of e){let n=t.cloneNode(!0);this.displayDoc.head.appendChild(n)}this.displayStylesLoaded=!0}onMarkdownScroll(e){let t=this.displayDoc.body.children;if(t.length<=e)return;(e===-1?t[t.length-1]:t[e]).scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})}codeMirrorSetup(e){let t=this;e.setOption("direction","ltr");let n=this.Code.getMetaKey(),o={};o[`${n}-Alt-I`]=function(d){let m=``,v=d.getCursor("from");d.replaceSelection(m),d.setCursor(v.line,v.ch+m.length-1)},o[`${n}-S`]=d=>{window.$events.emit("editor-save-draft")},o[`${n}-Enter`]=d=>{window.$events.emit("editor-save-page")},o[`Shift-${n}-K`]=d=>{this.actionShowLinkSelector()},o[`${n}-K`]=d=>{f()},o[`${n}-1`]=d=>{a("##")},o[`${n}-2`]=d=>{a("###")},o[`${n}-3`]=d=>{a("####")},o[`${n}-4`]=d=>{a("#####")},o[`${n}-5`]=d=>{a("")},o[`${n}-d`]=d=>{a("")},o[`${n}-6`]=d=>{a(">")},o[`${n}-q`]=d=>{a(">")},o[`${n}-7`]=d=>{u("\n```\n","\n```")},o[`${n}-8`]=d=>{u("`","`")},o[`Shift-${n}-E`]=d=>{u("`","`")},o[`${n}-9`]=d=>{u('<p class="callout info">',"</p>")},e.setOption("extraKeys",o),e.on("change",(d,h)=>{this.updateAndRender()});let s=Sr(d=>{let h=d.getScrollInfo();if(h.top+h.clientHeight===h.height){this.onMarkdownScroll(-1);return}let v=d.lineAtHeight(h.top,"local"),y=d.getRange({line:0,ch:null},{line:v,ch:null}),D=new DOMParser().parseFromString(this.markdown.render(y),"text/html").documentElement.querySelectorAll("body > *");this.onMarkdownScroll(D.length)},100);e.on("scroll",d=>{s(d)}),e.on("paste",(d,h)=>{let m=new $r(h.clipboardData||h.dataTransfer);if(!m.hasItems()||m.containsTabularData())return;let v=m.getImages();for(let y of v)c(y)}),e.on("drop",(d,h)=>{let m=h.dataTransfer.getData("bookstack/template");if(m){let y=d.coordsChar({left:h.pageX,top:h.pageY});d.setCursor(y),h.preventDefault(),window.$http.get(`/templates/${m}`).then(w=>{let x=w.data.markdown||w.data.html;d.replaceSelection(x)})}let v=new $r(h.dataTransfer);if(v.hasItems()&&v.getImages().length>0){let y=d.coordsChar({left:h.pageX,top:h.pageY});d.setCursor(y),h.stopPropagation(),h.preventDefault();let w=v.getImages();for(let x of w)c(x)}});function i(d,h){let m=e.getValue(),v=e.listSelections();e.setValue(m.replace(d,h)),e.setSelections(v)}function a(d){let h=e.getCursor(),m=e.getLine(h.line),v=m.length,y=m.split(" ")[0];if(y===d){m=m.replace(`${d} `,""),e.replaceRange(m,{line:h.line,ch:0},{line:h.line,ch:v}),e.setCursor({line:h.line,ch:h.ch-(d.length+1)});return}let w=/^[#>`]/.test(y),x=0;w?(x=d.length-y.length,m=m.replace(y,d).trim()):d!==""&&(x=d.length+1,m=d+" "+m),e.replaceRange(m,{line:h.line,ch:0},{line:h.line,ch:v}),e.setCursor({line:h.line,ch:h.ch+x})}function l(d,h){let m=e.getCursor(),v=e.getLine(m.line),y=v.length,w=v;v.indexOf(d)===0&&v.slice(-h.length)===h?w=v.slice(d.length,v.length-h.length):w=`${d}${v}${h}`,e.replaceRange(w,{line:m.line,ch:0},{line:m.line,ch:y}),e.setCursor({line:m.line,ch:m.ch+d.length})}function u(d,h){let m=e.getSelection();if(m==="")return l(d,h);let v=m,y=0,w=0;m.indexOf(d)===0&&m.slice(-h.length)===h?(v=m.slice(d.length,m.length-h.length),w=-(h.length+d.length)):(v=`${d}${m}${h}`,w=d.length+h.length);let x=e.listSelections()[0];e.replaceSelection(v);let D=x.head.ch<=x.anchor.ch;x.head.ch+=D?y:w,x.anchor.ch+=D?w:y,e.setSelections([x])}function c(d){if(d===null||d.type.indexOf("image")!==0)return;let h="png";if(d.name){let N=d.name.match(/\.(.+)$/);N.length>1&&(h=N[1])}let m="image-"+Math.random().toString(16).slice(2),v=window.baseUrl(`/loading.gif#upload${m}`),y=e.getSelection(),w=``,x=e.getCursor();e.replaceSelection(w),e.setCursor({line:x.line,ch:x.ch+y.length+3});let D="image-"+Date.now()+"."+h,I=new FormData;I.append("file",d,D),I.append("uploaded_to",t.pageId),window.$http.post("/images/gallery",I).then(N=>{let S=`[](${N.data.url})`;i(w,S)}).catch(N=>{window.$events.emit("error",t.imageUploadErrorText),i(w,y),console.log(N)})}function f(){let d=e.getCursor("from"),h=e.getSelection()||"",m=`[${h}]()`;e.focus(),e.replaceSelection(m);let v=h===""?-3:-1;e.setCursor(d.line,d.ch+m.length+v)}this.updateAndRender()}actionInsertImage(){let e=this.cm.getCursor("from");window.ImageManager.show(t=>{let n=t.thumbs.display||t.url,o=this.cm.getSelection(),s="[]("+t.url+")";this.cm.focus(),this.cm.replaceSelection(s),this.cm.setCursor(e.line,e.ch+s.length)},"gallery")}actionShowImageManager(){let e=this.cm.getCursor("from");window.ImageManager.show(t=>{this.insertDrawing(t,e)},"drawio")}actionShowLinkSelector(){let e=this.cm.getCursor("from");window.EntitySelectorPopup.show(t=>{let o=`[${this.cm.getSelection()||t.name}](${t.link})`;this.cm.focus(),this.cm.replaceSelection(o),this.cm.setCursor(e.line,e.ch+o.length)})}getDrawioUrl(){let e=document.querySelector("[drawio-url]");return e?e.getAttribute("drawio-url"):!1}actionStartDrawing(){let e=this.getDrawioUrl();if(!e)return;let t=this.cm.getCursor("from");vt.show(e,()=>Promise.resolve(""),n=>{let o={image:n,uploaded_to:Number(this.pageId)};window.$http.post("/images/drawio",o).then(s=>{this.insertDrawing(s.data,t),vt.close()}).catch(s=>{this.handleDrawingUploadError(s)})})}insertDrawing(e,t){let n=`<div drawio-diagram="${e.id}"><img src="${e.url}"></div>`;this.cm.focus(),this.cm.replaceSelection(n),this.cm.setCursor(t.line,t.ch+n.length)}actionEditDrawing(e){let t=this.getDrawioUrl();if(!t)return;let n=this.cm.getCursor("from"),o=e.getAttribute("drawio-diagram");vt.show(t,()=>vt.load(o),s=>{let i={image:s,uploaded_to:Number(this.pageId)};window.$http.post("/images/drawio",i).then(a=>{let l=`<div drawio-diagram="${a.data.id}"><img src="${a.data.url}"></div>`,u=this.cm.getValue().split(`
+`);Hr("error",e)}}var Bi={emit:Hr,emitPublic:fd,listen:dd,success:r=>Hr("success",r),error:r=>Hr("error",r),showValidationErrors:hd};async function pd(r,e={}){return $i(r,{method:"GET",params:e})}async function md(r,e=null){return qr("POST",r,e)}async function gd(r,e=null){return qr("PUT",r,e)}async function vd(r,e=null){return qr("PATCH",r,e)}async function yd(r,e=null){return qr("DELETE",r,e)}async function qr(r,e,t=null){let n={method:r,body:t};return typeof t=="object"&&!(t instanceof FormData)&&(n.headers={"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},n.body=JSON.stringify(t)),t instanceof FormData&&r!=="post"&&(t.append("_method",r),n.method="post"),$i(e,n)}async function $i(r,e={}){if(r.startsWith("http")||(r=window.baseUrl(r)),e.params){let i=new URL(r);for(let a of Object.keys(e.params)){let l=e.params[a];typeof l<"u"&&l!==null&&i.searchParams.set(a,l)}r=i.toString()}let t=document.querySelector("meta[name=token]").getAttribute("content");e=Object.assign({},e,{credentials:"same-origin"}),e.headers=Object.assign({},e.headers||{},{baseURL:window.baseUrl(""),"X-CSRF-TOKEN":t});let n=await fetch(r,e),s={data:await bd(n),headers:n.headers,redirected:n.redirected,status:n.status,statusText:n.statusText,url:n.url,original:n};if(!n.ok)throw s;return s}async function bd(r){if(r.status===204)return null;let t=(r.headers.get("Content-Type")||"").split(";")[0].split("/").pop();return t==="javascript"||t==="json"?await r.json():await r.text()}var Ui={get:pd,post:md,put:gd,patch:vd,delete:yd};var zi=class{constructor(e){this.store=new Map,this.parseTranslations()}parseTranslations(){let e=document.querySelectorAll('meta[name="translation"]');for(let t of e){let n=t.getAttribute("key"),o=t.getAttribute("value");this.store.set(n,o)}}get(e,t){let n=this.getTransText(e);return this.performReplacements(n,t)}getPlural(e,t,n){let o=this.getTransText(e);return this.parsePlural(o,t,n)}parsePlural(e,t,n){let o=e.split("|"),s=/^{([0-9]+)}/,i=/^\[([0-9]+),([0-9*]+)]/,a=null;for(let l of o){let u=l.match(s);if(u!==null&&Number(u[1])===t){a=l.replace(s,"").trim();break}let c=l.match(i);if(c!==null&&Number(c[1])<=t&&(c[2]==="*"||Number(c[2])>=t)){a=l.replace(i,"").trim();break}}return a===null&&o.length>1&&(a=t===1?o[0]:o[1]),a===null&&(a=o[0]),this.performReplacements(a,n)}getTransText(e){let t=this.store.get(e);return t===void 0&&console.warn(`Translation with key "${e}" does not exist`),t}performReplacements(e,t){if(!t)return e;let n=e.match(/:([\S]+)/g);return n===null||n.forEach(o=>{let s=o.substring(1);typeof t[s]>"u"||(e=e.replace(o,t[s]))}),e}},ji=zi;function Vr(r,e){let t=document.querySelectorAll(r);for(let n of t)e(n)}function Gr(r,e,t){for(let n of e)r.addEventListener(n,t)}function Ue(r,e){Array.isArray(r)||(r=[r]);for(let t of r)t.addEventListener("click",e),t.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),e(n))})}function Wr(r,e){Array.isArray(r)||(r=[r]);let t=n=>{n.key==="Enter"&&e(n)};r.forEach(n=>n.addEventListener("keypress",t))}function We(r,e,t,n){r.addEventListener(t,function(o){let s=o.target.closest(e);s&&n.call(s,o,s)})}function Hi(r,e){let t=document.querySelectorAll(r);e=e.toLowerCase();for(let n of t)if(n.textContent.toLowerCase().includes(e))return n;return null}function Er(r){r.innerHTML='<div class="loading-container"><div></div><div></div><div></div></div>'}function qi(r){let e=r.querySelectorAll(".loading-container");for(let t of e)t.remove()}function Sr(r,e,t){let n;return function(){let o=this,s=arguments,i=function(){n=null,t||r.apply(o,s)},a=t&&!n;clearTimeout(n),n=setTimeout(i,e),a&&r.apply(o,s)}}function Cr(r){if(!r)return;r.scrollIntoView({behavior:"smooth"});let e=document.getElementById("custom-styles").getAttribute("data-color-light"),t=window.getComputedStyle(r).getPropertyValue("background-color");r.style.backgroundColor=e,setTimeout(()=>{r.classList.add("selectFade"),r.style.backgroundColor=t},10),setTimeout(()=>{r.classList.remove("selectFade"),r.style.backgroundColor=""},3e3)}function Gi(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Wi(){let r=()=>((1+Math.random())*65536|0).toString(16).substring(1);return r()+r()+"-"+r()+"-"+r()+"-"+r()+"-"+r()+r()+r()}var Yi=class{setup(){this.modelRow=this.$refs.model,this.addButton=this.$refs.add,this.removeSelector=this.$opts.removeSelector,this.rowSelector=this.$opts.rowSelector,this.setupListeners()}setupListeners(){this.addButton.addEventListener("click",this.add.bind(this)),We(this.$el,this.removeSelector,"click",e=>{e.target.closest(this.rowSelector).remove()})}add(){let e=this.modelRow.cloneNode(!0);e.classList.remove("hidden"),this.setClonedInputNames(e),this.modelRow.parentNode.insertBefore(e,this.modelRow),window.components.init(e)}setClonedInputNames(e){let t=Wi(),n=e.querySelectorAll('[name*="randrowid"]');for(let o of n)o.name=o.name.split("randrowid").join(t)}},Ki=Yi;var Xi=class{setup(){this.row=this.$el,this.url=this.$opts.url,this.deleteButtons=this.$manyRefs.delete,Ue(this.deleteButtons,this.runDelete.bind(this))}runDelete(){this.row.style.opacity="0.7",this.row.style.pointerEvents="none",window.$http.delete(this.url).then(e=>{typeof e.data=="object"&&e.data.message&&window.$events.emit("success",e.data.message),this.row.remove()}).catch(e=>{this.row.style.opacity=null,this.row.style.pointerEvents=null})}},Zi=Xi;var Qi=class{setup(){this.container=this.$el,this.responseContainer=this.container,this.url=this.$opts.url,this.method=this.$opts.method||"post",this.successMessage=this.$opts.successMessage,this.submitButtons=this.$manyRefs.submit||[],this.$opts.responseContainer&&(this.responseContainer=this.container.closest(this.$opts.responseContainer)),this.setupListeners()}setupListeners(){if(this.container.tagName==="FORM"){this.container.addEventListener("submit",this.submitRealForm.bind(this));return}Wr(this.container,e=>{this.submitFakeForm(),e.preventDefault()}),this.submitButtons.forEach(e=>Ue(e,this.submitFakeForm.bind(this)))}submitFakeForm(){let e=new FormData,t=this.container.querySelectorAll("[name]");for(let n of t)e.append(n.getAttribute("name"),n.value);this.submit(e)}submitRealForm(e){e.preventDefault();let t=new FormData(this.container);this.submit(t)}async submit(e){this.responseContainer.style.opacity="0.7",this.responseContainer.style.pointerEvents="none";try{let t=await window.$http[this.method.toLowerCase()](this.url,e);this.$emit("success",{formData:e}),this.responseContainer.innerHTML=t.data,this.successMessage&&window.$events.emit("success",this.successMessage)}catch(t){this.responseContainer.innerHTML=t.data}window.components.init(this.responseContainer),this.responseContainer.style.opacity=null,this.responseContainer.style.pointerEvents=null}},Ji=Qi;var eo=class{setup(){this.container=this.$el,this.pageId=this.$opts.pageId,this.editContainer=this.$refs.editContainer,this.listContainer=this.$refs.listContainer,this.mainTabs=this.$refs.mainTabs,this.list=this.$refs.list,this.setupListeners()}setupListeners(){let e=this.reloadList.bind(this);this.container.addEventListener("dropzone-success",e),this.container.addEventListener("ajax-form-success",e),this.container.addEventListener("sortable-list-sort",t=>{this.updateOrder(t.detail.ids)}),this.container.addEventListener("event-emit-select-edit",t=>{this.startEdit(t.detail.id)}),this.container.addEventListener("event-emit-select-edit-back",t=>{this.stopEdit()}),this.container.addEventListener("event-emit-select-insert",t=>{let n=t.target.closest("[data-drag-content]").getAttribute("data-drag-content"),o=JSON.parse(n);window.$events.emit("editor::insert",{html:o["text/html"],markdown:o["text/plain"]})})}reloadList(){this.stopEdit(),this.mainTabs.components.tabs.show("items"),window.$http.get(`/attachments/get/page/${this.pageId}`).then(e=>{this.list.innerHTML=e.data,window.components.init(this.list)})}updateOrder(e){window.$http.put(`/attachments/sort/page/${this.pageId}`,{order:e}).then(t=>{window.$events.emit("success",t.data.message)})}async startEdit(e){this.editContainer.classList.remove("hidden"),this.listContainer.classList.add("hidden"),Er(this.editContainer);let t=await window.$http.get(`/attachments/edit/${e}`);this.editContainer.innerHTML=t.data,window.components.init(this.editContainer)}stopEdit(){this.editContainer.classList.add("hidden"),this.listContainer.classList.remove("hidden")}},to=eo;var ro=class{setup(){this.container=this.$el,this.setupListeners()}setupListeners(){let e=t=>t.key==="Control"||t.key==="Meta";window.addEventListener("keydown",t=>{e(t)&&this.addOpenQueryToLinks()},{passive:!0}),window.addEventListener("keyup",t=>{e(t)&&this.removeOpenQueryFromLinks()},{passive:!0})}addOpenQueryToLinks(){let e=this.container.querySelectorAll("a.attachment-file");for(let t of e)t.href.split("?")[1]!=="open=true"&&(t.href=t.href+"?open=true",t.setAttribute("target","_blank"))}removeOpenQueryFromLinks(){let e=this.container.querySelectorAll("a.attachment-file");for(let t of e)t.href=t.href.split("?")[0],t.removeAttribute("target")}},no=ro;var Mn={},io=class{setup(){this.parent=this.$el.parentElement,this.container=this.$el,this.type=this.$opts.type,this.url=this.$opts.url,this.input=this.$refs.input,this.list=this.$refs.list,this.lastPopulated=0,this.setupListeners()}setupListeners(){this.input.addEventListener("input",this.requestSuggestions.bind(this)),this.input.addEventListener("focus",this.requestSuggestions.bind(this)),this.input.addEventListener("keydown",e=>{e.key==="Tab"&&this.hideSuggestions()}),this.input.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this)),this.container.addEventListener("keydown",this.containerKeyDown.bind(this)),We(this.list,"button","click",(e,t)=>{this.selectSuggestion(t.textContent)}),We(this.list,"button","keydown",(e,t)=>{e.key==="Enter"&&this.selectSuggestion(t.textContent)})}selectSuggestion(e){this.input.value=e,this.lastPopulated=Date.now(),this.input.focus(),this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.dispatchEvent(new Event("change",{bubbles:!0})),this.hideSuggestions()}containerKeyDown(e){e.key==="Enter"&&e.preventDefault(),!this.list.classList.contains("hidden")&&(e.key==="ArrowDown"?(this.moveFocus(!0),e.preventDefault()):e.key==="ArrowUp"?(this.moveFocus(!1),e.preventDefault()):e.key==="Escape"&&(this.hideSuggestions(),e.preventDefault()))}moveFocus(e=!0){let t=Array.from(this.container.querySelectorAll("input,button")),n=t.indexOf(document.activeElement),o=t[n+(e?1:-1)];o&&o.focus()}async requestSuggestions(){if(Date.now()-this.lastPopulated<50)return;let e=this.getNameFilterIfNeeded(),t=this.input.value.slice(0,3).toLowerCase(),n=await this.loadSuggestions(t,e),o=n.slice(0,6);t.length>0&&(o=n.filter(s=>s.toLowerCase().includes(t)).slice(0,6)),this.displaySuggestions(o)}getNameFilterIfNeeded(){return this.type!=="value"?null:this.parent.querySelector("input").value}async loadSuggestions(e,t=null){let n={search:e,name:t},o=`${this.url}:${JSON.stringify(n)}`;if(Mn[o])return Mn[o];let s=await window.$http.get(this.url,n);return Mn[o]=s.data,s.data}displaySuggestions(e){if(e.length===0)return this.hideSuggestions();this.list.innerHTML=e.map(t=>`<li><button type="button">${Gi(t)}</button></li>`).join(""),this.list.style.display="block";for(let t of this.list.querySelectorAll("button"))t.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this))}hideSuggestions(){this.list.style.display="none"}hideSuggestionsIfFocusedLost(e){this.container.contains(e.relatedTarget)||this.hideSuggestions()}},oo=io;var so=class{constructor(e){if(this.elem=e,this.targetElem=document.getElementById("header"),this.showing=!1,this.breakPoint=1200,document.body.classList.contains("flexbox")){this.elem.style.display="none";return}this.elem.addEventListener("click",this.scrollToTop.bind(this)),window.addEventListener("scroll",this.onPageScroll.bind(this))}onPageScroll(){let e=document.documentElement.scrollTop||document.body.scrollTop||0;!this.showing&&e>this.breakPoint?(this.elem.style.display="block",this.showing=!0,setTimeout(()=>{this.elem.style.opacity=.4},1)):this.showing&&e<this.breakPoint&&(this.elem.style.opacity=0,this.showing=!1,setTimeout(()=>{this.elem.style.display="none"},500))}scrollToTop(){let e=this.targetElem.getBoundingClientRect().top,t=document.documentElement.scrollTop?document.documentElement:document.body,n=300,o=Date.now(),s=this.targetElem.getBoundingClientRect().top;function i(){let a=1-(Date.now()-o)/n,l=Math.abs(a*s);a>0?(t.scrollTop=l,requestAnimationFrame(i.bind(this))):t.scrollTop=e}requestAnimationFrame(i.bind(this))}},ao=so;function lo(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),t.push.apply(t,n)}return t}function Ft(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lo(Object(t),!0).forEach(function(n){xd(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):lo(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function Qr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Qr=function(e){return typeof e}:Qr=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qr(r)}function xd(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Ut(){return Ut=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},Ut.apply(this,arguments)}function wd(r,e){if(r==null)return{};var t={},n=Object.keys(r),o,s;for(s=0;s<n.length;s++)o=n[s],!(e.indexOf(o)>=0)&&(t[o]=r[o]);return t}function Ed(r,e){if(r==null)return{};var t=wd(r,e),n,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);for(o=0;o<s.length;o++)n=s[o],!(e.indexOf(n)>=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}var Sd="1.14.0";function $t(r){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(r)}var zt=$t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Or=$t(/Edge/i),uo=$t(/firefox/i),Ir=$t(/safari/i)&&!$t(/chrome/i)&&!$t(/android/i),yo=$t(/iP(ad|od|hone)/i),Cd=$t(/chrome/i)&&$t(/android/i),bo={capture:!1,passive:!1};function Me(r,e,t){r.addEventListener(e,t,!zt&&bo)}function Le(r,e,t){r.removeEventListener(e,t,!zt&&bo)}function nn(r,e){if(!!e){if(e[0]===">"&&(e=e.substring(1)),r)try{if(r.matches)return r.matches(e);if(r.msMatchesSelector)return r.msMatchesSelector(e);if(r.webkitMatchesSelector)return r.webkitMatchesSelector(e)}catch{return!1}return!1}}function Ad(r){return r.host&&r!==document&&r.host.nodeType?r.host:r.parentNode}function Dt(r,e,t,n){if(r){t=t||document;do{if(e!=null&&(e[0]===">"?r.parentNode===t&&nn(r,e):nn(r,e))||n&&r===t)return r;if(r===t)break}while(r=Ad(r))}return null}var co=/\s+/g;function pt(r,e,t){if(r&&e)if(r.classList)r.classList[t?"add":"remove"](e);else{var n=(" "+r.className+" ").replace(co," ").replace(" "+e+" "," ");r.className=(n+(t?" "+e:"")).replace(co," ")}}function ge(r,e,t){var n=r&&r.style;if(n){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(r,""):r.currentStyle&&(t=r.currentStyle),e===void 0?t:t[e];!(e in n)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),n[e]=t+(typeof t=="string"?"":"px")}}function ur(r,e){var t="";if(typeof r=="string")t=r;else do{var n=ge(r,"transform");n&&n!=="none"&&(t=n+" "+t)}while(!e&&(r=r.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(t)}function xo(r,e,t){if(r){var n=r.getElementsByTagName(e),o=0,s=n.length;if(t)for(;o<s;o++)t(n[o],o);return n}return[]}function Lt(){var r=document.scrollingElement;return r||document.documentElement}function tt(r,e,t,n,o){if(!(!r.getBoundingClientRect&&r!==window)){var s,i,a,l,u,c,f;if(r!==window&&r.parentNode&&r!==Lt()?(s=r.getBoundingClientRect(),i=s.top,a=s.left,l=s.bottom,u=s.right,c=s.height,f=s.width):(i=0,a=0,l=window.innerHeight,u=window.innerWidth,c=window.innerHeight,f=window.innerWidth),(e||t)&&r!==window&&(o=o||r.parentNode,!zt))do if(o&&o.getBoundingClientRect&&(ge(o,"transform")!=="none"||t&&ge(o,"position")!=="static")){var d=o.getBoundingClientRect();i-=d.top+parseInt(ge(o,"border-top-width")),a-=d.left+parseInt(ge(o,"border-left-width")),l=i+s.height,u=a+s.width;break}while(o=o.parentNode);if(n&&r!==window){var h=ur(o||r),m=h&&h.a,v=h&&h.d;h&&(i/=v,a/=m,f/=m,c/=v,l=i+c,u=a+f)}return{top:i,left:a,bottom:l,right:u,width:f,height:c}}}function fo(r,e,t){for(var n=Wt(r,!0),o=tt(r)[e];n;){var s=tt(n)[t],i=void 0;if(t==="top"||t==="left"?i=o>=s:i=o<=s,!i)return n;if(n===Lt())break;n=Wt(n,!1)}return!1}function cr(r,e,t,n){for(var o=0,s=0,i=r.children;s<i.length;){if(i[s].style.display!=="none"&&i[s]!==ve.ghost&&(n||i[s]!==ve.dragged)&&Dt(i[s],t.draggable,r,!1)){if(o===e)return i[s];o++}s++}return null}function Kn(r,e){for(var t=r.lastElementChild;t&&(t===ve.ghost||ge(t,"display")==="none"||e&&!nn(t,e));)t=t.previousElementSibling;return t||null}function xt(r,e){var t=0;if(!r||!r.parentNode)return-1;for(;r=r.previousElementSibling;)r.nodeName.toUpperCase()!=="TEMPLATE"&&r!==ve.clone&&(!e||nn(r,e))&&t++;return t}function ho(r){var e=0,t=0,n=Lt();if(r)do{var o=ur(r),s=o.a,i=o.d;e+=r.scrollLeft*s,t+=r.scrollTop*i}while(r!==n&&(r=r.parentNode));return[e,t]}function kd(r,e){for(var t in r)if(!!r.hasOwnProperty(t)){for(var n in e)if(e.hasOwnProperty(n)&&e[n]===r[t][n])return Number(t)}return-1}function Wt(r,e){if(!r||!r.getBoundingClientRect)return Lt();var t=r,n=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var o=ge(t);if(t.clientWidth<t.scrollWidth&&(o.overflowX=="auto"||o.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(o.overflowY=="auto"||o.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return Lt();if(n||e)return t;n=!0}}while(t=t.parentNode);return Lt()}function Td(r,e){if(r&&e)for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}function Nn(r,e){return Math.round(r.top)===Math.round(e.top)&&Math.round(r.left)===Math.round(e.left)&&Math.round(r.height)===Math.round(e.height)&&Math.round(r.width)===Math.round(e.width)}var Dr;function wo(r,e){return function(){if(!Dr){var t=arguments,n=this;t.length===1?r.call(n,t[0]):r.apply(n,t),Dr=setTimeout(function(){Dr=void 0},e)}}}function Id(){clearTimeout(Dr),Dr=void 0}function Eo(r,e,t){r.scrollLeft+=e,r.scrollTop+=t}function So(r){var e=window.Polymer,t=window.jQuery||window.Zepto;return e&&e.dom?e.dom(r).cloneNode(!0):t?t(r).clone(!0)[0]:r.cloneNode(!0)}var gt="Sortable"+new Date().getTime();function Dd(){var r=[],e;return{captureAnimationState:function(){if(r=[],!!this.options.animation){var n=[].slice.call(this.el.children);n.forEach(function(o){if(!(ge(o,"display")==="none"||o===ve.ghost)){r.push({target:o,rect:tt(o)});var s=Ft({},r[r.length-1].rect);if(o.thisAnimationDuration){var i=ur(o,!0);i&&(s.top-=i.f,s.left-=i.e)}o.fromRect=s}})}},addAnimationState:function(n){r.push(n)},removeAnimationState:function(n){r.splice(kd(r,{target:n}),1)},animateAll:function(n){var o=this;if(!this.options.animation){clearTimeout(e),typeof n=="function"&&n();return}var s=!1,i=0;r.forEach(function(a){var l=0,u=a.target,c=u.fromRect,f=tt(u),d=u.prevFromRect,h=u.prevToRect,m=a.rect,v=ur(u,!0);v&&(f.top-=v.f,f.left-=v.e),u.toRect=f,u.thisAnimationDuration&&Nn(d,f)&&!Nn(c,f)&&(m.top-f.top)/(m.left-f.left)===(c.top-f.top)/(c.left-f.left)&&(l=Fd(m,d,h,o.options)),Nn(f,c)||(u.prevFromRect=c,u.prevToRect=f,l||(l=o.options.animation),o.animate(u,m,f,l)),l&&(s=!0,i=Math.max(i,l),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},l),u.thisAnimationDuration=l)}),clearTimeout(e),s?e=setTimeout(function(){typeof n=="function"&&n()},i):typeof n=="function"&&n(),r=[]},animate:function(n,o,s,i){if(i){ge(n,"transition",""),ge(n,"transform","");var a=ur(this.el),l=a&&a.a,u=a&&a.d,c=(o.left-s.left)/(l||1),f=(o.top-s.top)/(u||1);n.animatingX=!!c,n.animatingY=!!f,ge(n,"transform","translate3d("+c+"px,"+f+"px,0)"),this.forRepaintDummy=Ld(n),ge(n,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),ge(n,"transform","translate3d(0,0,0)"),typeof n.animated=="number"&&clearTimeout(n.animated),n.animated=setTimeout(function(){ge(n,"transition",""),ge(n,"transform",""),n.animated=!1,n.animatingX=!1,n.animatingY=!1},i)}}}}function Ld(r){return r.offsetWidth}function Fd(r,e,t,n){return Math.sqrt(Math.pow(e.top-r.top,2)+Math.pow(e.left-r.left,2))/Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))*n.animation}var or=[],_n={initializeByDefault:!0},Pr={mount:function(e){for(var t in _n)_n.hasOwnProperty(t)&&!(t in e)&&(e[t]=_n[t]);or.forEach(function(n){if(n.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),or.push(e)},pluginEvent:function(e,t,n){var o=this;this.eventCanceled=!1,n.cancel=function(){o.eventCanceled=!0};var s=e+"Global";or.forEach(function(i){!t[i.pluginName]||(t[i.pluginName][s]&&t[i.pluginName][s](Ft({sortable:t},n)),t.options[i.pluginName]&&t[i.pluginName][e]&&t[i.pluginName][e](Ft({sortable:t},n)))})},initializePlugins:function(e,t,n,o){or.forEach(function(a){var l=a.pluginName;if(!(!e.options[l]&&!a.initializeByDefault)){var u=new a(e,t,e.options);u.sortable=e,u.options=e.options,e[l]=u,Ut(n,u.defaults)}});for(var s in e.options)if(!!e.options.hasOwnProperty(s)){var i=this.modifyOption(e,s,e.options[s]);typeof i<"u"&&(e.options[s]=i)}},getEventProperties:function(e,t){var n={};return or.forEach(function(o){typeof o.eventProperties=="function"&&Ut(n,o.eventProperties.call(t[o.pluginName],e))}),n},modifyOption:function(e,t,n){var o;return or.forEach(function(s){!e[s.pluginName]||s.optionListeners&&typeof s.optionListeners[t]=="function"&&(o=s.optionListeners[t].call(e[s.pluginName],n))}),o}};function Rd(r){var e=r.sortable,t=r.rootEl,n=r.name,o=r.targetEl,s=r.cloneEl,i=r.toEl,a=r.fromEl,l=r.oldIndex,u=r.newIndex,c=r.oldDraggableIndex,f=r.newDraggableIndex,d=r.originalEvent,h=r.putSortable,m=r.extraEventProperties;if(e=e||t&&t[gt],!!e){var v,y=e.options,w="on"+n.charAt(0).toUpperCase()+n.substr(1);window.CustomEvent&&!zt&&!Or?v=new CustomEvent(n,{bubbles:!0,cancelable:!0}):(v=document.createEvent("Event"),v.initEvent(n,!0,!0)),v.to=i||t,v.from=a||t,v.item=o||t,v.clone=s,v.oldIndex=l,v.newIndex=u,v.oldDraggableIndex=c,v.newDraggableIndex=f,v.originalEvent=d,v.pullMode=h?h.lastPutMode:void 0;var x=Ft(Ft({},m),Pr.getEventProperties(n,e));for(var D in x)v[D]=x[D];t&&t.dispatchEvent(v),y[w]&&y[w].call(e,v)}}var Od=["evt"],ht=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=n.evt,s=Ed(n,Od);Pr.pluginEvent.bind(ve)(e,t,Ft({dragEl:ee,parentEl:Xe,ghostEl:we,rootEl:qe,nextEl:Qt,lastDownEl:Jr,cloneEl:Ze,cloneHidden:Gt,dragStarted:Ar,putSortable:it,activeSortable:ve.active,originalEvent:o,oldIndex:lr,oldDraggableIndex:Lr,newIndex:mt,newDraggableIndex:Vt,hideGhostForTarget:To,unhideGhostForTarget:Io,cloneNowHidden:function(){Gt=!0},cloneNowShown:function(){Gt=!1},dispatchSortableEvent:function(a){ct({sortable:t,name:a,originalEvent:o})}},s))};function ct(r){Rd(Ft({putSortable:it,cloneEl:Ze,targetEl:ee,rootEl:qe,oldIndex:lr,oldDraggableIndex:Lr,newIndex:mt,newDraggableIndex:Vt},r))}var ee,Xe,we,qe,Qt,Jr,Ze,Gt,lr,mt,Lr,Vt,Yr,it,ar=!1,on=!1,sn=[],Xt,Ct,Bn,$n,po,mo,Ar,sr,Fr,Rr=!1,Kr=!1,en,lt,Un=[],Vn=!1,an=[],un=typeof document<"u",Xr=yo,go=Or||zt?"cssFloat":"float",Pd=un&&!Cd&&!yo&&"draggable"in document.createElement("div"),Co=function(){if(!!un){if(zt)return!1;var r=document.createElement("x");return r.style.cssText="pointer-events:auto",r.style.pointerEvents==="auto"}}(),Ao=function(e,t){var n=ge(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),s=cr(e,0,t),i=cr(e,1,t),a=s&&ge(s),l=i&&ge(i),u=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+tt(s).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+tt(i).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(s&&a.float&&a.float!=="none"){var f=a.float==="left"?"left":"right";return i&&(l.clear==="both"||l.clear===f)?"vertical":"horizontal"}return s&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||u>=o&&n[go]==="none"||i&&n[go]==="none"&&u+c>o)?"vertical":"horizontal"},Md=function(e,t,n){var o=n?e.left:e.top,s=n?e.right:e.bottom,i=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,u=n?t.width:t.height;return o===a||s===l||o+i/2===a+u/2},Nd=function(e,t){var n;return sn.some(function(o){var s=o[gt].options.emptyInsertThreshold;if(!(!s||Kn(o))){var i=tt(o),a=e>=i.left-s&&e<=i.right+s,l=t>=i.top-s&&t<=i.bottom+s;if(a&&l)return n=o}}),n},ko=function(e){function t(s,i){return function(a,l,u,c){var f=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(s==null&&(i||f))return!0;if(s==null||s===!1)return!1;if(i&&s==="clone")return s;if(typeof s=="function")return t(s(a,l,u,c),i)(a,l,u,c);var d=(i?a:l).options.group.name;return s===!0||typeof s=="string"&&s===d||s.join&&s.indexOf(d)>-1}}var n={},o=e.group;(!o||Qr(o)!="object")&&(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},To=function(){!Co&&we&&ge(we,"display","none")},Io=function(){!Co&&we&&ge(we,"display","")};un&&document.addEventListener("click",function(r){if(on)return r.preventDefault(),r.stopPropagation&&r.stopPropagation(),r.stopImmediatePropagation&&r.stopImmediatePropagation(),on=!1,!1},!0);var Zt=function(e){if(ee){e=e.touches?e.touches[0]:e;var t=Nd(e.clientX,e.clientY);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[gt]._onDragOver(n)}}},_d=function(e){ee&&ee.parentNode[gt]._isOutsideThisEl(e.target)};function ve(r,e){if(!(r&&r.nodeType&&r.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(r));this.el=r,this.options=e=Ut({},e),r[gt]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(r.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Ao(r,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(i,a){i.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:ve.supportPointer!==!1&&"PointerEvent"in window&&!Ir,emptyInsertThreshold:5};Pr.initializePlugins(this,r,t);for(var n in t)!(n in e)&&(e[n]=t[n]);ko(e);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=e.forceFallback?!1:Pd,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?Me(r,"pointerdown",this._onTapStart):(Me(r,"mousedown",this._onTapStart),Me(r,"touchstart",this._onTapStart)),this.nativeDraggable&&(Me(r,"dragover",this),Me(r,"dragenter",this)),sn.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),Ut(this,Dd())}ve.prototype={constructor:ve,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(sr=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,ee):this.options.direction},_onTapStart:function(e){if(!!e.cancelable){var t=this,n=this.el,o=this.options,s=o.preventOnFilter,i=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=o.filter;if(Vd(n),!ee&&!(/mousedown|pointerdown/.test(i)&&e.button!==0||o.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&Ir&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=Dt(l,o.draggable,n,!1),!(l&&l.animated)&&Jr!==l)){if(lr=xt(l),Lr=xt(l,o.draggable),typeof c=="function"){if(c.call(this,e,l,this)){ct({sortable:t,rootEl:u,name:"filter",targetEl:l,toEl:n,fromEl:n}),ht("filter",t,{evt:e}),s&&e.cancelable&&e.preventDefault();return}}else if(c&&(c=c.split(",").some(function(f){if(f=Dt(u,f.trim(),n,!1),f)return ct({sortable:t,rootEl:f,name:"filter",targetEl:l,fromEl:n,toEl:n}),ht("filter",t,{evt:e}),!0}),c)){s&&e.cancelable&&e.preventDefault();return}o.handle&&!Dt(u,o.handle,n,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,n){var o=this,s=o.el,i=o.options,a=s.ownerDocument,l;if(n&&!ee&&n.parentNode===s){var u=tt(n);if(qe=s,ee=n,Xe=ee.parentNode,Qt=ee.nextSibling,Jr=n,Yr=i.group,ve.dragged=ee,Xt={target:ee,clientX:(t||e).clientX,clientY:(t||e).clientY},po=Xt.clientX-u.left,mo=Xt.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ee.style["will-change"]="all",l=function(){if(ht("delayEnded",o,{evt:e}),ve.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!uo&&o.nativeDraggable&&(ee.draggable=!0),o._triggerDragStart(e,t),ct({sortable:o,name:"choose",originalEvent:e}),pt(ee,i.chosenClass,!0)},i.ignore.split(",").forEach(function(c){xo(ee,c.trim(),zn)}),Me(a,"dragover",Zt),Me(a,"mousemove",Zt),Me(a,"touchmove",Zt),Me(a,"mouseup",o._onDrop),Me(a,"touchend",o._onDrop),Me(a,"touchcancel",o._onDrop),uo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ee.draggable=!0),ht("delayStart",this,{evt:e}),i.delay&&(!i.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Or||zt))){if(ve.eventCanceled){this._onDrop();return}Me(a,"mouseup",o._disableDelayedDrag),Me(a,"touchend",o._disableDelayedDrag),Me(a,"touchcancel",o._disableDelayedDrag),Me(a,"mousemove",o._delayedDragTouchMoveHandler),Me(a,"touchmove",o._delayedDragTouchMoveHandler),i.supportPointer&&Me(a,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(l,i.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ee&&zn(ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Le(e,"mouseup",this._disableDelayedDrag),Le(e,"touchend",this._disableDelayedDrag),Le(e,"touchcancel",this._disableDelayedDrag),Le(e,"mousemove",this._delayedDragTouchMoveHandler),Le(e,"touchmove",this._delayedDragTouchMoveHandler),Le(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?Me(document,"pointermove",this._onTouchMove):t?Me(document,"touchmove",this._onTouchMove):Me(document,"mousemove",this._onTouchMove):(Me(ee,"dragend",this),Me(qe,"dragstart",this._onDragStart));try{document.selection?tn(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(ar=!1,qe&&ee){ht("dragStarted",this,{evt:t}),this.nativeDraggable&&Me(document,"dragover",_d);var n=this.options;!e&&pt(ee,n.dragClass,!1),pt(ee,n.ghostClass,!0),ve.active=this,e&&this._appendGhost(),ct({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Ct){this._lastX=Ct.clientX,this._lastY=Ct.clientY,To();for(var e=document.elementFromPoint(Ct.clientX,Ct.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Ct.clientX,Ct.clientY),e!==t);)t=e;if(ee.parentNode[gt]._isOutsideThisEl(e),t)do{if(t[gt]){var n=void 0;if(n=t[gt]._onDragOver({clientX:Ct.clientX,clientY:Ct.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Io()}},_onTouchMove:function(e){if(Xt){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,s=e.touches?e.touches[0]:e,i=we&&ur(we,!0),a=we&&i&&i.a,l=we&&i&&i.d,u=Xr&<&&ho(lt),c=(s.clientX-Xt.clientX+o.x)/(a||1)+(u?u[0]-Un[0]:0)/(a||1),f=(s.clientY-Xt.clientY+o.y)/(l||1)+(u?u[1]-Un[1]:0)/(l||1);if(!ve.active&&!ar){if(n&&Math.max(Math.abs(s.clientX-this._lastX),Math.abs(s.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(we){i?(i.e+=c-(Bn||0),i.f+=f-($n||0)):i={a:1,b:0,c:0,d:1,e:c,f};var d="matrix(".concat(i.a,",").concat(i.b,",").concat(i.c,",").concat(i.d,",").concat(i.e,",").concat(i.f,")");ge(we,"webkitTransform",d),ge(we,"mozTransform",d),ge(we,"msTransform",d),ge(we,"transform",d),Bn=c,$n=f,Ct=s}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!we){var e=this.options.fallbackOnBody?document.body:qe,t=tt(ee,!0,Xr,!0,e),n=this.options;if(Xr){for(lt=e;ge(lt,"position")==="static"&&ge(lt,"transform")==="none"&<!==document;)lt=lt.parentNode;lt!==document.body&<!==document.documentElement?(lt===document&&(lt=Lt()),t.top+=lt.scrollTop,t.left+=lt.scrollLeft):lt=Lt(),Un=ho(lt)}we=ee.cloneNode(!0),pt(we,n.ghostClass,!1),pt(we,n.fallbackClass,!0),pt(we,n.dragClass,!0),ge(we,"transition",""),ge(we,"transform",""),ge(we,"box-sizing","border-box"),ge(we,"margin",0),ge(we,"top",t.top),ge(we,"left",t.left),ge(we,"width",t.width),ge(we,"height",t.height),ge(we,"opacity","0.8"),ge(we,"position",Xr?"absolute":"fixed"),ge(we,"zIndex","100000"),ge(we,"pointerEvents","none"),ve.ghost=we,e.appendChild(we),ge(we,"transform-origin",po/parseInt(we.style.width)*100+"% "+mo/parseInt(we.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,o=e.dataTransfer,s=n.options;if(ht("dragStart",this,{evt:e}),ve.eventCanceled){this._onDrop();return}ht("setupClone",this),ve.eventCanceled||(Ze=So(ee),Ze.draggable=!1,Ze.style["will-change"]="",this._hideClone(),pt(Ze,this.options.chosenClass,!1),ve.clone=Ze),n.cloneId=tn(function(){ht("clone",n),!ve.eventCanceled&&(n.options.removeCloneOnHide||qe.insertBefore(Ze,ee),n._hideClone(),ct({sortable:n,name:"clone"}))}),!t&&pt(ee,s.dragClass,!0),t?(on=!0,n._loopId=setInterval(n._emulateDragOver,50)):(Le(document,"mouseup",n._onDrop),Le(document,"touchend",n._onDrop),Le(document,"touchcancel",n._onDrop),o&&(o.effectAllowed="move",s.setData&&s.setData.call(n,o,ee)),Me(document,"drop",n),ge(ee,"transform","translateZ(0)")),ar=!0,n._dragStartId=tn(n._dragStarted.bind(n,t,e)),Me(document,"selectstart",n),Ar=!0,Ir&&ge(document.body,"user-select","none")},_onDragOver:function(e){var t=this.el,n=e.target,o,s,i,a=this.options,l=a.group,u=ve.active,c=Yr===l,f=a.sort,d=it||u,h,m=this,v=!1;if(Vn)return;function y(re,be){ht(re,m,Ft({evt:e,isOwner:c,axis:h?"vertical":"horizontal",revert:i,dragRect:o,targetRect:s,canSort:f,fromSortable:d,target:n,completed:x,onMove:function(xe,Fe){return Zr(qe,t,ee,o,xe,tt(xe),e,Fe)},changed:D},be))}function w(){y("dragOverAnimationCapture"),m.captureAnimationState(),m!==d&&d.captureAnimationState()}function x(re){return y("dragOverCompleted",{insertion:re}),re&&(c?u._hideClone():u._showClone(m),m!==d&&(pt(ee,it?it.options.ghostClass:u.options.ghostClass,!1),pt(ee,a.ghostClass,!0)),it!==m&&m!==ve.active?it=m:m===ve.active&&it&&(it=null),d===m&&(m._ignoreWhileAnimating=n),m.animateAll(function(){y("dragOverAnimationComplete"),m._ignoreWhileAnimating=null}),m!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===ee&&!ee.animated||n===t&&!n.animated)&&(sr=null),!a.dragoverBubble&&!e.rootEl&&n!==document&&(ee.parentNode[gt]._isOutsideThisEl(e.target),!re&&Zt(e)),!a.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),v=!0}function D(){mt=xt(ee),Vt=xt(ee,a.draggable),ct({sortable:m,name:"change",toEl:t,newIndex:mt,newDraggableIndex:Vt,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=Dt(n,a.draggable,t,!0),y("dragOver"),ve.eventCanceled)return v;if(ee.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||m._ignoreWhileAnimating===n)return x(!1);if(on=!1,u&&!a.disabled&&(c?f||(i=Xe!==qe):it===this||(this.lastPutMode=Yr.checkPull(this,u,ee,e))&&l.checkPut(this,u,ee,e))){if(h=this._getDirection(e,n)==="vertical",o=tt(ee),y("dragOverValid"),ve.eventCanceled)return v;if(i)return Xe=qe,w(),this._hideClone(),y("revert"),ve.eventCanceled||(Qt?qe.insertBefore(ee,Qt):qe.appendChild(ee)),x(!0);var I=Kn(t,a.draggable);if(!I||zd(e,h,this)&&!I.animated){if(I===ee)return x(!1);if(I&&t===e.target&&(n=I),n&&(s=tt(n)),Zr(qe,t,ee,o,n,s,e,!!n)!==!1)return w(),t.appendChild(ee),Xe=t,D(),x(!0)}else if(I&&Ud(e,h,this)){var N=cr(t,0,a,!0);if(N===ee)return x(!1);if(n=N,s=tt(n),Zr(qe,t,ee,o,n,s,e,!1)!==!1)return w(),t.insertBefore(ee,N),Xe=t,D(),x(!0)}else if(n.parentNode===t){s=tt(n);var S=0,M,L=ee.parentNode!==t,R=!Md(ee.animated&&ee.toRect||o,n.animated&&n.toRect||s,h),O=h?"top":"left",F=fo(n,"top","top")||fo(ee,"top","top"),_=F?F.scrollTop:void 0;sr!==n&&(M=s[O],Rr=!1,Kr=!R&&a.invertSwap||L),S=jd(e,n,s,h,R?1:a.swapThreshold,a.invertedSwapThreshold==null?a.swapThreshold:a.invertedSwapThreshold,Kr,sr===n);var j;if(S!==0){var H=xt(ee);do H-=S,j=Xe.children[H];while(j&&(ge(j,"display")==="none"||j===we))}if(S===0||j===n)return x(!1);sr=n,Fr=S;var te=n.nextElementSibling,W=!1;W=S===1;var J=Zr(qe,t,ee,o,n,s,e,W);if(J!==!1)return(J===1||J===-1)&&(W=J===1),Vn=!0,setTimeout($d,30),w(),W&&!te?t.appendChild(ee):n.parentNode.insertBefore(ee,W?te:n),F&&Eo(F,0,_-F.scrollTop),Xe=ee.parentNode,M!==void 0&&!Kr&&(en=Math.abs(M-tt(n)[O])),D(),x(!0)}if(t.contains(ee))return x(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){Le(document,"mousemove",this._onTouchMove),Le(document,"touchmove",this._onTouchMove),Le(document,"pointermove",this._onTouchMove),Le(document,"dragover",Zt),Le(document,"mousemove",Zt),Le(document,"touchmove",Zt)},_offUpEvents:function(){var e=this.el.ownerDocument;Le(e,"mouseup",this._onDrop),Le(e,"touchend",this._onDrop),Le(e,"pointerup",this._onDrop),Le(e,"touchcancel",this._onDrop),Le(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;if(mt=xt(ee),Vt=xt(ee,n.draggable),ht("drop",this,{evt:e}),Xe=ee&&ee.parentNode,mt=xt(ee),Vt=xt(ee,n.draggable),ve.eventCanceled){this._nulling();return}ar=!1,Kr=!1,Rr=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Gn(this.cloneId),Gn(this._dragStartId),this.nativeDraggable&&(Le(document,"drop",this),Le(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Ir&&ge(document.body,"user-select",""),ge(ee,"transform",""),e&&(Ar&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),we&&we.parentNode&&we.parentNode.removeChild(we),(qe===Xe||it&&it.lastPutMode!=="clone")&&Ze&&Ze.parentNode&&Ze.parentNode.removeChild(Ze),ee&&(this.nativeDraggable&&Le(ee,"dragend",this),zn(ee),ee.style["will-change"]="",Ar&&!ar&&pt(ee,it?it.options.ghostClass:this.options.ghostClass,!1),pt(ee,this.options.chosenClass,!1),ct({sortable:this,name:"unchoose",toEl:Xe,newIndex:null,newDraggableIndex:null,originalEvent:e}),qe!==Xe?(mt>=0&&(ct({rootEl:Xe,name:"add",toEl:Xe,fromEl:qe,originalEvent:e}),ct({sortable:this,name:"remove",toEl:Xe,originalEvent:e}),ct({rootEl:Xe,name:"sort",toEl:Xe,fromEl:qe,originalEvent:e}),ct({sortable:this,name:"sort",toEl:Xe,originalEvent:e})),it&&it.save()):mt!==lr&&mt>=0&&(ct({sortable:this,name:"update",toEl:Xe,originalEvent:e}),ct({sortable:this,name:"sort",toEl:Xe,originalEvent:e})),ve.active&&((mt==null||mt===-1)&&(mt=lr,Vt=Lr),ct({sortable:this,name:"end",toEl:Xe,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){ht("nulling",this),qe=ee=Xe=we=Qt=Ze=Jr=Gt=Xt=Ct=Ar=mt=Vt=lr=Lr=sr=Fr=it=Yr=ve.dragged=ve.ghost=ve.clone=ve.active=null,an.forEach(function(e){e.checked=!0}),an.length=Bn=$n=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":ee&&(this._onDragOver(e),Bd(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,o=0,s=n.length,i=this.options;o<s;o++)t=n[o],Dt(t,i.draggable,this.el,!1)&&e.push(t.getAttribute(i.dataIdAttr)||qd(t));return e},sort:function(e,t){var n={},o=this.el;this.toArray().forEach(function(s,i){var a=o.children[i];Dt(a,this.options.draggable,o,!1)&&(n[s]=a)},this),t&&this.captureAnimationState(),e.forEach(function(s){n[s]&&(o.removeChild(n[s]),o.appendChild(n[s]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return Dt(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var o=Pr.modifyOption(this,e,t);typeof o<"u"?n[e]=o:n[e]=t,e==="group"&&ko(n)},destroy:function(){ht("destroy",this);var e=this.el;e[gt]=null,Le(e,"mousedown",this._onTapStart),Le(e,"touchstart",this._onTapStart),Le(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(Le(e,"dragover",this),Le(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),sn.splice(sn.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Gt){if(ht("hideClone",this),ve.eventCanceled)return;ge(Ze,"display","none"),this.options.removeCloneOnHide&&Ze.parentNode&&Ze.parentNode.removeChild(Ze),Gt=!0}},_showClone:function(e){if(e.lastPutMode!=="clone"){this._hideClone();return}if(Gt){if(ht("showClone",this),ve.eventCanceled)return;ee.parentNode==qe&&!this.options.group.revertClone?qe.insertBefore(Ze,ee):Qt?qe.insertBefore(Ze,Qt):qe.appendChild(Ze),this.options.group.revertClone&&this.animate(ee,Ze),ge(Ze,"display",""),Gt=!1}}};function Bd(r){r.dataTransfer&&(r.dataTransfer.dropEffect="move"),r.cancelable&&r.preventDefault()}function Zr(r,e,t,n,o,s,i,a){var l,u=r[gt],c=u.options.onMove,f;return window.CustomEvent&&!zt&&!Or?l=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(l=document.createEvent("Event"),l.initEvent("move",!0,!0)),l.to=e,l.from=r,l.dragged=t,l.draggedRect=n,l.related=o||e,l.relatedRect=s||tt(e),l.willInsertAfter=a,l.originalEvent=i,r.dispatchEvent(l),c&&(f=c.call(u,l,i)),f}function zn(r){r.draggable=!1}function $d(){Vn=!1}function Ud(r,e,t){var n=tt(cr(t.el,0,t.options,!0)),o=10;return e?r.clientX<n.left-o||r.clientY<n.top&&r.clientX<n.right:r.clientY<n.top-o||r.clientY<n.bottom&&r.clientX<n.left}function zd(r,e,t){var n=tt(Kn(t.el,t.options.draggable)),o=10;return e?r.clientX>n.right+o||r.clientX<=n.right&&r.clientY>n.bottom&&r.clientX>=n.left:r.clientX>n.right&&r.clientY>n.top||r.clientX<=n.right&&r.clientY>n.bottom+o}function jd(r,e,t,n,o,s,i,a){var l=n?r.clientY:r.clientX,u=n?t.height:t.width,c=n?t.top:t.left,f=n?t.bottom:t.right,d=!1;if(!i){if(a&&en<u*o){if(!Rr&&(Fr===1?l>c+u*s/2:l<f-u*s/2)&&(Rr=!0),Rr)d=!0;else if(Fr===1?l<c+en:l>f-en)return-Fr}else if(l>c+u*(1-o)/2&&l<f-u*(1-o)/2)return Hd(e)}return d=d||i,d&&(l<c+u*s/2||l>f-u*s/2)?l>c+u/2?1:-1:0}function Hd(r){return xt(ee)<xt(r)?1:-1}function qd(r){for(var e=r.tagName+r.className+r.src+r.href+r.textContent,t=e.length,n=0;t--;)n+=e.charCodeAt(t);return n.toString(36)}function Vd(r){an.length=0;for(var e=r.getElementsByTagName("input"),t=e.length;t--;){var n=e[t];n.checked&&an.push(n)}}function tn(r){return setTimeout(r,0)}function Gn(r){return clearTimeout(r)}un&&Me(document,"touchmove",function(r){(ve.active||ar)&&r.cancelable&&r.preventDefault()});ve.utils={on:Me,off:Le,css:ge,find:xo,is:function(e,t){return!!Dt(e,t,e,!1)},extend:Td,throttle:wo,closest:Dt,toggleClass:pt,clone:So,index:xt,nextTick:tn,cancelNextTick:Gn,detectDirection:Ao,getChild:cr};ve.get=function(r){return r[gt]};ve.mount=function(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];e[0].constructor===Array&&(e=e[0]),e.forEach(function(n){if(!n.prototype||!n.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(n));n.utils&&(ve.utils=Ft(Ft({},ve.utils),n.utils)),Pr.mount(n)})};ve.create=function(r,e){return new ve(r,e)};ve.version=Sd;var Je=[],kr,Wn,Yn=!1,jn,Hn,ln,Tr;function Gd(){function r(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this))}return r.prototype={dragStarted:function(t){var n=t.originalEvent;this.sortable.nativeDraggable?Me(document,"dragover",this._handleAutoScroll):this.options.supportPointer?Me(document,"pointermove",this._handleFallbackAutoScroll):n.touches?Me(document,"touchmove",this._handleFallbackAutoScroll):Me(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var n=t.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function(){this.sortable.nativeDraggable?Le(document,"dragover",this._handleAutoScroll):(Le(document,"pointermove",this._handleFallbackAutoScroll),Le(document,"touchmove",this._handleFallbackAutoScroll),Le(document,"mousemove",this._handleFallbackAutoScroll)),vo(),rn(),Id()},nulling:function(){ln=Wn=kr=Yn=Tr=jn=Hn=null,Je.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,n){var o=this,s=(t.touches?t.touches[0]:t).clientX,i=(t.touches?t.touches[0]:t).clientY,a=document.elementFromPoint(s,i);if(ln=t,n||this.options.forceAutoScrollFallback||Or||zt||Ir){qn(t,this.options,a,n);var l=Wt(a,!0);Yn&&(!Tr||s!==jn||i!==Hn)&&(Tr&&vo(),Tr=setInterval(function(){var u=Wt(document.elementFromPoint(s,i),!0);u!==l&&(l=u,rn()),qn(t,o.options,u,n)},10),jn=s,Hn=i)}else{if(!this.options.bubbleScroll||Wt(a,!0)===Lt()){rn();return}qn(t,this.options,Wt(a,!1),!1)}}},Ut(r,{pluginName:"scroll",initializeByDefault:!0})}function rn(){Je.forEach(function(r){clearInterval(r.pid)}),Je=[]}function vo(){clearInterval(Tr)}var qn=wo(function(r,e,t,n){if(!!e.scroll){var o=(r.touches?r.touches[0]:r).clientX,s=(r.touches?r.touches[0]:r).clientY,i=e.scrollSensitivity,a=e.scrollSpeed,l=Lt(),u=!1,c;Wn!==t&&(Wn=t,rn(),kr=e.scroll,c=e.scrollFn,kr===!0&&(kr=Wt(t,!0)));var f=0,d=kr;do{var h=d,m=tt(h),v=m.top,y=m.bottom,w=m.left,x=m.right,D=m.width,I=m.height,N=void 0,S=void 0,M=h.scrollWidth,L=h.scrollHeight,R=ge(h),O=h.scrollLeft,F=h.scrollTop;h===l?(N=D<M&&(R.overflowX==="auto"||R.overflowX==="scroll"||R.overflowX==="visible"),S=I<L&&(R.overflowY==="auto"||R.overflowY==="scroll"||R.overflowY==="visible")):(N=D<M&&(R.overflowX==="auto"||R.overflowX==="scroll"),S=I<L&&(R.overflowY==="auto"||R.overflowY==="scroll"));var _=N&&(Math.abs(x-o)<=i&&O+D<M)-(Math.abs(w-o)<=i&&!!O),j=S&&(Math.abs(y-s)<=i&&F+I<L)-(Math.abs(v-s)<=i&&!!F);if(!Je[f])for(var H=0;H<=f;H++)Je[H]||(Je[H]={});(Je[f].vx!=_||Je[f].vy!=j||Je[f].el!==h)&&(Je[f].el=h,Je[f].vx=_,Je[f].vy=j,clearInterval(Je[f].pid),(_!=0||j!=0)&&(u=!0,Je[f].pid=setInterval(function(){n&&this.layer===0&&ve.active._onTouchMove(ln);var te=Je[this.layer].vy?Je[this.layer].vy*a:0,W=Je[this.layer].vx?Je[this.layer].vx*a:0;typeof c=="function"&&c.call(ve.dragged.parentNode[gt],W,te,r,ln,Je[this.layer].el)!=="continue"||Eo(Je[this.layer].el,W,te)}.bind({layer:f}),24))),f++}while(e.bubbleScroll&&d!==l&&(d=Wt(d,!1)));Yn=u}},30),Do=function(e){var t=e.originalEvent,n=e.putSortable,o=e.dragEl,s=e.activeSortable,i=e.dispatchSortableEvent,a=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(!!t){var u=n||s;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,f=document.elementFromPoint(c.clientX,c.clientY);l(),u&&!u.el.contains(f)&&(i("spill"),this.onSpill({dragEl:o,putSortable:n}))}};function Xn(){}Xn.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var o=cr(this.sortable.el,this.startIndex,this.options);o?this.sortable.el.insertBefore(t,o):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:Do};Ut(Xn,{pluginName:"revertOnSpill"});function Zn(){}Zn.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable,o=n||this.sortable;o.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),o.animateAll()},drop:Do};Ut(Zn,{pluginName:"removeOnSpill"});ve.mount(new Gd);ve.mount(Zn,Xn);var dr=ve;var Lo={name:function(r,e){let t=r.getAttribute("data-name").trim().toLowerCase(),n=e.getAttribute("data-name").trim().toLowerCase();return t.localeCompare(n)},created:function(r,e){let t=Number(r.getAttribute("data-created"));return Number(e.getAttribute("data-created"))-t},updated:function(r,e){let t=Number(r.getAttribute("data-updated"));return Number(e.getAttribute("data-updated"))-t},chaptersFirst:function(r,e){let t=r.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?-1:1},chaptersLast:function(r,e){let t=r.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?1:-1}},Fo=class{constructor(e){this.elem=e,this.sortContainer=e.querySelector("[book-sort-boxes]"),this.input=e.querySelector("[book-sort-input]");let t=e.querySelector(".sort-box");this.setupBookSortable(t),this.setupSortPresets(),window.$events.listen("entity-select-confirm",this.bookSelect.bind(this))}setupSortPresets(){let e="",t=!1,n=["name","created","updated"];this.sortContainer.addEventListener("click",o=>{let s=o.target.closest(".sort-box-options [data-sort]");if(!s)return;o.preventDefault();let i=s.closest(".sort-box").querySelectorAll("ul"),a=s.getAttribute("data-sort");t=e===a?!t:!1;let l=Lo[a];t&&n.includes(a)&&(l=function(u,c){return 0-Lo[a](u,c)});for(let u of i)Array.from(u.children).filter(f=>f.matches("li")).sort(l).forEach(f=>{u.appendChild(f)});e=a,this.updateMapInput()})}bookSelect(e){if(this.elem.querySelector(`[data-type="book"][data-id="${e.id}"]`)!==null)return;let n=e.link+"/sort-item";window.$http.get(n).then(o=>{let s=document.createElement("div");s.innerHTML=o.data;let i=s.children[0];this.sortContainer.append(i),this.setupBookSortable(i)})}setupBookSortable(e){let t=[e.querySelector(".sort-list")];t.push(...e.querySelectorAll(".entity-list-item + ul"));let n={name:"book",pull:["book","chapter"],put:["book","chapter"]},o={name:"chapter",pull:["book","chapter"],put:function(s,i,a){return a.getAttribute("data-type")==="page"}};for(let s of t)new dr(s,{group:s.classList.contains("sort-list")?n:o,animation:150,fallbackOnBody:!0,swapThreshold:.65,onSort:this.updateMapInput.bind(this),dragClass:"bg-white",ghostClass:"primary-background-light",multiDrag:!0,multiDragKey:"CTRL",selectedClass:"sortable-selected"})}updateMapInput(){let e=this.buildEntityMap();this.input.value=JSON.stringify(e)}buildEntityMap(){let e=[],t=this.elem.querySelectorAll(".sort-list");for(let n of t){let o=n.closest('[data-type="book"]').getAttribute("data-id"),s=Array.from(n.children).filter(i=>i.matches('[data-type="page"], [data-type="chapter"]'));for(let i=0;i<s.length;i++)this.addBookChildToMap(s[i],i,o,e)}return e}addBookChildToMap(e,t,n,o){let s=e.getAttribute("data-type"),i=!1,a=e.getAttribute("data-id");o.push({id:a,sort:t,parentChapter:i,type:s,book:n});let l=e.querySelectorAll('[data-type="page"]');for(let u=0;u<l.length;u++)o.push({id:l[u].getAttribute("data-id"),sort:u,parentChapter:a,type:"page",book:n})}},Ro=Fo;var cn=new WeakMap;function Oo(r,e=400,t=null){hn(r),r.style.display="block",fn(r,{opacity:["0","1"]},e,()=>{t&&t()})}function dn(r,e=400,t=null){hn(r),fn(r,{opacity:["1","0"]},e,()=>{r.style.display="none",t&&t()})}function fr(r,e=400){hn(r);let t=r.getBoundingClientRect().height,n=getComputedStyle(r),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),i={height:[`${t}px`,"0px"],overflow:["hidden","hidden"],paddingTop:[o,"0px"],paddingBottom:[s,"0px"]};fn(r,i,e,()=>{r.style.display="none"})}function hr(r,e=400){hn(r),r.style.display="block";let t=r.getBoundingClientRect().height,n=getComputedStyle(r),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),i={height:["0px",`${t}px`],overflow:["hidden","hidden"],paddingTop:["0px",o],paddingBottom:["0px",s]};fn(r,i,e)}function fn(r,e,t=400,n=null){let o=Object.keys(e);for(let i of o)r.style[i]=e[i][0];let s=()=>{for(let i of o)r.style[i]=null;r.style.transition=null,r.removeEventListener("transitionend",s),cn.delete(r),n&&n()};setTimeout(()=>{r.style.transition=`all ease-in-out ${t}ms`;for(let i of o)r.style[i]=e[i][1];r.addEventListener("transitionend",s),cn.set(r,s)},15)}function hn(r){cn.has(r)&&cn.get(r)()}var Po=class{constructor(e){this.elem=e,this.isOpen=e.classList.contains("open"),e.addEventListener("click",this.click.bind(this))}open(){let e=this.elem.parentNode.querySelector(".inset-list");this.elem.classList.add("open"),this.elem.setAttribute("aria-expanded","true"),hr(e,240)}close(){let e=this.elem.parentNode.querySelector(".inset-list");this.elem.classList.remove("open"),this.elem.setAttribute("aria-expanded","false"),fr(e,240)}click(e){e.preventDefault(),this.isOpen?this.close():this.open(),this.isOpen=!this.isOpen}},Mo=Po;var No=class{setup(){this.container=this.$refs.container,this.popup=this.$el,this.editorInput=this.$refs.editor,this.languageLinks=this.$manyRefs.languageLink,this.saveButton=this.$refs.saveButton,this.languageInput=this.$refs.languageInput,this.historyDropDown=this.$refs.historyDropDown,this.historyList=this.$refs.historyList,this.callback=null,this.editor=null,this.history={},this.historyKey="code_history",this.setupListeners()}setupListeners(){this.container.addEventListener("keydown",e=>{e.ctrlKey&&e.key==="Enter"&&this.save()}),Ue(this.languageLinks,e=>{let t=e.target.dataset.lang;this.languageInput.value=t,this.updateEditorMode(t)}),Wr(this.languageInput,e=>this.save()),Ue(this.saveButton,e=>this.save()),We(this.historyList,"button","click",(e,t)=>{e.preventDefault();let n=t.dataset.time;this.editor&&this.editor.setValue(this.history[n])})}save(){this.callback&&this.callback(this.editor.getValue(),this.languageInput.value),this.hide()}open(e,t,n){this.languageInput.value=t,this.callback=n,this.show().then(()=>this.updateEditorMode(t)).then(()=>window.importVersioned("code")).then(o=>o.setContent(this.editor,e))}async show(){let e=await window.importVersioned("code");this.editor||(this.editor=e.popupEditor(this.editorInput,this.languageInput.value)),this.loadHistory(),this.popup.components.popup.show(()=>{e.updateLayout(this.editor),this.editor.focus()},()=>{this.addHistory()})}hide(){this.popup.components.popup.hide(),this.addHistory()}async updateEditorMode(e){(await window.importVersioned("code")).setMode(this.editor,e,this.editor.getValue())}loadHistory(){this.history=JSON.parse(window.sessionStorage.getItem(this.historyKey)||"{}");let e=Object.keys(this.history).reverse();this.historyDropDown.classList.toggle("hidden",e.length===0),this.historyList.innerHTML=e.map(t=>{let n=new Date(parseInt(t)).toLocaleTimeString();return`<li><button type="button" data-time="${t}">${n}</button></li>`}).join("")}addHistory(){if(!this.editor)return;let e=this.editor.getValue();if(!e)return;let t=Object.keys(this.history).pop();if(this.history[t]===e)return;this.history[String(Date.now())]=e;let n=JSON.stringify(this.history);window.sessionStorage.setItem(this.historyKey,n)}},_o=No;var Bo=class{constructor(e){e.querySelectorAll("pre").length>0&&window.importVersioned("code").then(n=>{n.highlightWithin(e)})}},$o=Bo;var Uo=class{constructor(e){this.elem=e,this.trigger=e.querySelector("[collapsible-trigger]"),this.content=e.querySelector("[collapsible-content]"),!!this.trigger&&(this.trigger.addEventListener("click",this.toggle.bind(this)),this.openIfContainsError())}open(){this.elem.classList.add("open"),this.trigger.setAttribute("aria-expanded","true"),hr(this.content,300)}close(){this.elem.classList.remove("open"),this.trigger.setAttribute("aria-expanded","false"),fr(this.content,300)}toggle(){this.elem.classList.contains("open")?this.close():this.open()}openIfContainsError(){this.content.querySelector(".text-neg.text-small")&&this.open()}},zo=Uo;var jo=class{constructor(e){this.elem=e,this.checkbox=e.querySelector("input[type=checkbox]"),this.display=e.querySelector('[role="checkbox"]'),this.checkbox.addEventListener("change",this.stateChange.bind(this)),this.elem.addEventListener("keydown",this.onKeyDown.bind(this))}onKeyDown(e){(e.keyCode===32||e.keyCode===13)&&(e.preventDefault(),this.toggle())}toggle(){this.checkbox.checked=!this.checkbox.checked,this.checkbox.dispatchEvent(new Event("change")),this.stateChange()}stateChange(){let e=this.checkbox.checked?"true":"false";this.display.setAttribute("aria-checked",e)}},Ho=jo;var qo=class{constructor(e){this.elem=e,this.dealtWith=!1,e.addEventListener("toggle",this.onToggle.bind(this))}onToggle(){this.dealtWith||(this.elem.querySelector("pre")&&window.importVersioned("code").then(e=>{e.highlightWithin(this.elem)}),this.dealtWith=!0)}},Vo=qo;var Go=class{setup(){this.container=this.$el,this.menu=this.$refs.menu,this.toggle=this.$refs.toggle,this.moveMenu=this.$opts.moveMenu,this.bubbleEscapes=this.$opts.bubbleEscapes==="true",this.direction=document.dir==="rtl"?"right":"left",this.body=document.body,this.showing=!1,this.setupListeners(),this.hide=this.hide.bind(this)}show(e=null){this.hideAll(),this.menu.style.display="block",this.menu.classList.add("anim","menuIn"),this.toggle.setAttribute("aria-expanded","true"),this.moveMenu&&(this.rect=this.menu.getBoundingClientRect(),this.body.appendChild(this.menu),this.menu.style.position="fixed",this.direction==="right"?this.menu.style.right=`${this.rect.right-this.rect.width}px`:this.menu.style.left=`${this.rect.left}px`,this.menu.style.top=`${this.rect.top}px`,this.menu.style.width=`${this.rect.width}px`),this.menu.addEventListener("mouseleave",this.hide.bind(this)),window.addEventListener("click",o=>{this.menu.contains(o.target)||this.hide()});let t=this.menu.querySelector("input");t!==null&&t.focus(),this.showing=!0;let n=new Event("show");this.container.dispatchEvent(n),e&&e.stopPropagation()}hideAll(){for(let e of window.components.dropdown)e.hide()}hide(){this.menu.style.display="none",this.menu.classList.remove("anim","menuIn"),this.toggle.setAttribute("aria-expanded","false"),this.moveMenu&&(this.menu.style.position="",this.menu.style[this.direction]="",this.menu.style.top="",this.menu.style.width="",this.container.appendChild(this.menu)),this.showing=!1}getFocusable(){return Array.from(this.menu.querySelectorAll("[tabindex],[href],button,input:not([type=hidden])"))}focusNext(){let e=this.getFocusable(),n=e.indexOf(document.activeElement)+1;n>=e.length&&(n=0),e[n].focus()}focusPrevious(){let e=this.getFocusable(),n=e.indexOf(document.activeElement)-1;n<0&&(n=e.length-1),e[n].focus()}setupListeners(){this.container.addEventListener("click",t=>{Array.from(this.menu.querySelectorAll("a")).includes(t.target)&&this.hide()}),Ue(this.toggle,t=>{t.stopPropagation(),this.show(t),t instanceof KeyboardEvent&&this.focusNext()});let e=t=>{t.key==="ArrowDown"||t.key==="ArrowRight"?(this.focusNext(),t.preventDefault()):t.key==="ArrowUp"||t.key==="ArrowLeft"?(this.focusPrevious(),t.preventDefault()):t.key==="Escape"&&(this.hide(),this.toggle.focus(),this.bubbleEscapes||t.stopPropagation())};this.container.addEventListener("keydown",e),this.moveMenu&&this.menu.addEventListener("keydown",e),this.menu.addEventListener("keydown ",t=>{t.key==="Enter"&&(t.preventDefault(),t.stopPropagation(),this.hide())})}},Wo=Go;var Yo=class{setup(){this.elem=this.$el,this.searchInput=this.$refs.searchInput,this.loadingElem=this.$refs.loading,this.listContainerElem=this.$refs.listContainer,this.localSearchSelector=this.$opts.localSearchSelector,this.url=this.$opts.url,this.elem.addEventListener("show",this.onShow.bind(this)),this.searchInput.addEventListener("input",this.onSearch.bind(this)),this.runAjaxSearch=Sr(this.runAjaxSearch,300,!1)}onShow(){this.loadList()}onSearch(){let e=this.searchInput.value.toLowerCase().trim();this.localSearchSelector?this.runLocalSearch(e):(this.toggleLoading(!0),this.listContainerElem.innerHTML="",this.runAjaxSearch(e))}runAjaxSearch(e){this.loadList(e)}runLocalSearch(e){let t=this.listContainerElem.querySelectorAll(this.localSearchSelector);for(let n of t){let o=!e||n.textContent.toLowerCase().includes(e);n.style.display=o?"flex":"none",n.classList.toggle("hidden",!o)}}async loadList(e=""){this.listContainerElem.innerHTML="",this.toggleLoading(!0);try{let t=await window.$http.get(this.getAjaxUrl(e));this.listContainerElem.innerHTML=t.data}catch(t){console.error(t)}this.toggleLoading(!1),this.localSearchSelector&&this.onSearch()}getAjaxUrl(e=null){if(!e)return this.url;let t=this.url.includes("?")?"&":"?";return`${this.url}${t}search=${encodeURIComponent(e)}`}toggleLoading(e=!1){this.loadingElem.style.display=e?"block":"none"}},Ko=Yo;var Zo=jr(Xo());var Qo=class{setup(){this.container=this.$el,this.url=this.$opts.url,this.successMessage=this.$opts.successMessage,this.removeMessage=this.$opts.removeMessage,this.uploadLimit=Number(this.$opts.uploadLimit),this.uploadLimitMessage=this.$opts.uploadLimitMessage,this.timeoutMessage=this.$opts.timeoutMessage;let e=this;this.dz=new Zo.default(this.container,{addRemoveLinks:!0,dictRemoveFile:this.removeMessage,timeout:Number(window.uploadTimeout)||6e4,maxFilesize:this.uploadLimit,url:this.url,withCredentials:!0,init(){this.dz=this,this.dz.on("sending",e.onSending.bind(e)),this.dz.on("success",e.onSuccess.bind(e)),this.dz.on("error",e.onError.bind(e))}})}onSending(e,t,n){let o=window.document.querySelector("meta[name=token]").getAttribute("content");n.append("_token",o),t.ontimeout=s=>{this.dz.emit("complete",e),this.dz.emit("error",e,this.timeoutMessage)}}onSuccess(e,t){this.$emit("success",{file:e,data:t}),this.successMessage&&window.$events.emit("success",this.successMessage),dn(e.previewElement,800,()=>{this.dz.removeFile(e)})}onError(e,t,n){this.$emit("error",{file:e,errorMessage:t,xhr:n});let o=s=>{let i=e.previewElement.querySelector("[data-dz-errormessage]");i.textContent=s};n&&n.status===413?o(this.uploadLimitMessage):t.file&&o(t.file)}removeAll(){this.dz.removeAllFiles(!0)}},Jo=Qo;var es=class{constructor(e){this.elem=e,this.buttons=e.querySelectorAll("[toolbox-tab-button]"),this.contentElements=e.querySelectorAll("[toolbox-tab-content]"),this.toggleButton=e.querySelector("[toolbox-toggle]"),this.toggleButton.addEventListener("click",this.toggle.bind(this)),this.elem.addEventListener("click",t=>{let n=t.target.closest("[toolbox-tab-button]");if(n===null)return;let o=n.getAttribute("toolbox-tab-button");this.setActiveTab(o,!0)}),this.setActiveTab(this.contentElements[0].getAttribute("toolbox-tab-content"))}toggle(){this.elem.classList.toggle("open");let e=this.elem.classList.contains("open")?"true":"false";this.toggleButton.setAttribute("aria-expanded",e)}setActiveTab(e,t=!1){for(let n=0,o=this.buttons.length;n<o;n++)this.buttons[n].classList.remove("active"),this.buttons[n].getAttribute("toolbox-tab-button")===e&&this.buttons[n].classList.add("active");for(let n=0,o=this.contentElements.length;n<o;n++)this.contentElements[n].style.display="none",this.contentElements[n].getAttribute("toolbox-tab-content")===e&&(this.contentElements[n].style.display="block");t&&!this.elem.classList.contains("open")&&this.toggle()}},ts=es;var rs=class{constructor(e){this.permissionsTable=e.querySelector("[permissions-table]"),this.restrictedCheckbox=e.querySelector("[name=restricted]"),this.restrictedCheckbox.addEventListener("change",this.updateTableVisibility.bind(this))}updateTableVisibility(){this.permissionsTable.style.display=this.restrictedCheckbox.checked?null:"none"}},ns=rs;var is=class{setup(){this.entityId=this.$opts.entityId,this.entityType=this.$opts.entityType,this.contentView=this.$refs.contentView,this.searchView=this.$refs.searchView,this.searchResults=this.$refs.searchResults,this.searchInput=this.$refs.searchInput,this.searchForm=this.$refs.searchForm,this.clearButton=this.$refs.clearButton,this.loadingBlock=this.$refs.loadingBlock,this.setupListeners()}setupListeners(){this.searchInput.addEventListener("change",this.runSearch.bind(this)),this.searchForm.addEventListener("submit",e=>{e.preventDefault(),this.runSearch()}),Ue(this.clearButton,this.clearSearch.bind(this))}runSearch(){let e=this.searchInput.value.trim();if(e.length===0)return this.clearSearch();this.searchView.classList.remove("hidden"),this.contentView.classList.add("hidden"),this.loadingBlock.classList.remove("hidden");let t=window.baseUrl(`/search/${this.entityType}/${this.entityId}`);window.$http.get(t,{term:e}).then(n=>{this.searchResults.innerHTML=n.data}).catch(console.error).then(()=>{this.loadingBlock.classList.add("hidden")})}clearSearch(){this.searchView.classList.add("hidden"),this.contentView.classList.remove("hidden"),this.loadingBlock.classList.add("hidden"),this.searchInput.value=""}},os=is;var ss=class{setup(){this.elem=this.$el,this.entityTypes=this.$opts.entityTypes||"page,book,chapter",this.entityPermission=this.$opts.entityPermission||"view",this.input=this.$refs.input,this.searchInput=this.$refs.search,this.loading=this.$refs.loading,this.resultsContainer=this.$refs.results,this.addButton=this.$refs.add,this.search="",this.lastClick=0,this.selectedItemData=null,this.setupListeners(),this.showLoading(),this.initialLoad()}setupListeners(){this.elem.addEventListener("click",this.onClick.bind(this));let e=0;this.searchInput.addEventListener("input",t=>{e=Date.now(),this.showLoading(),setTimeout(()=>{Date.now()-e<199||this.searchEntities(this.searchInput.value)},200)}),this.searchInput.addEventListener("keydown",t=>{t.keyCode===13&&t.preventDefault()}),this.addButton&&this.addButton.addEventListener("click",t=>{this.selectedItemData&&(this.confirmSelection(this.selectedItemData),this.unselectAll())}),We(this.$el,"[data-entity-type]","keydown",(t,n)=>{if(t.ctrlKey&&t.code==="Enter"){let o=this.$el.closest("form");if(o){o.submit(),t.preventDefault();return}}t.code==="ArrowDown"&&this.focusAdjacent(!0),t.code==="ArrowUp"&&this.focusAdjacent(!1)}),this.searchInput.addEventListener("keydown",t=>{t.code==="ArrowDown"&&this.focusAdjacent(!0)})}focusAdjacent(e=!0){let t=Array.from(this.resultsContainer.querySelectorAll("[data-entity-type]")),n=t.indexOf(document.activeElement),o=t[n+(e?1:-1)]||t[0];o&&o.focus()}showLoading(){this.loading.style.display="block",this.resultsContainer.style.display="none"}hideLoading(){this.loading.style.display="none",this.resultsContainer.style.display="block"}initialLoad(){window.$http.get(this.searchUrl()).then(e=>{this.resultsContainer.innerHTML=e.data,this.hideLoading()})}searchUrl(){return`/ajax/search/entities?types=${encodeURIComponent(this.entityTypes)}&permission=${encodeURIComponent(this.entityPermission)}`}searchEntities(e){this.input.value="";let t=`${this.searchUrl()}&term=${encodeURIComponent(e)}`;window.$http.get(t).then(n=>{this.resultsContainer.innerHTML=n.data,this.hideLoading()})}isDoubleClick(){let e=Date.now(),t=e-this.lastClick<300;return this.lastClick=e,t}onClick(e){let t=e.target.closest("[data-entity-type]");t&&(e.preventDefault(),e.stopPropagation(),this.selectItem(t))}selectItem(e){let t=this.isDoubleClick(),n=e.getAttribute("data-entity-type"),o=e.getAttribute("data-entity-id"),s=!e.classList.contains("selected")||t;this.unselectAll(),this.input.value=s?`${n}:${o}`:"";let i=e.getAttribute("href"),a=e.querySelector(".entity-list-item-name").textContent,l={id:Number(o),name:a,link:i};s?(e.classList.add("selected"),this.selectedItemData=l):window.$events.emit("entity-select-change",null),!(!t&&!s)&&(t&&this.confirmSelection(l),s&&window.$events.emit("entity-select-change",l))}confirmSelection(e){window.$events.emit("entity-select-confirm",e)}unselectAll(){let e=this.elem.querySelectorAll(".selected");for(let t of e)t.classList.remove("selected","primary-background");this.selectedItemData=null}},as=ss;var ls=class{setup(){this.elem=this.$el,this.selectButton=this.$refs.select,this.searchInput=this.$refs.searchInput,window.EntitySelectorPopup=this,this.callback=null,this.selection=null,this.selectButton.addEventListener("click",this.onSelectButtonClick.bind(this)),window.$events.listen("entity-select-change",this.onSelectionChange.bind(this)),window.$events.listen("entity-select-confirm",this.onSelectionConfirm.bind(this))}show(e){this.callback=e,this.elem.components.popup.show(),this.searchInput.focus()}hide(){this.elem.components.popup.hide()}onSelectButtonClick(){this.hide(),this.selection!==null&&this.callback&&this.callback(this.selection)}onSelectionConfirm(e){this.hide(),this.callback&&e&&this.callback(e)}onSelectionChange(e){this.selection=e,e===null?this.selectButton.setAttribute("disabled","true"):this.selectButton.removeAttribute("disabled")}},us=ls;var cs=class{setup(){this.container=this.$el,this.name=this.$opts.name,Ue(this.$el,()=>{this.$emit(this.name,this.$opts)})}},ds=cs;var fs=class{constructor(e){this.elem=e,this.isOpen=e.getAttribute("expand-toggle-is-open")==="yes",this.updateEndpoint=e.getAttribute("expand-toggle-update-endpoint"),this.selector=e.getAttribute("expand-toggle"),e.addEventListener("click",this.click.bind(this))}open(e){hr(e,200)}close(e){fr(e,200)}click(e){e.preventDefault();let t=document.querySelectorAll(this.selector);for(let n of t)this.isOpen?this.close(n):this.open(n);this.isOpen=!this.isOpen,this.updateSystemAjax(this.isOpen)}updateSystemAjax(e){window.$http.patch(this.updateEndpoint,{expand:e?"true":"false"})}},hs=fs;var ps=class{setup(){this.elem=this.$el,this.toggleButton=this.$refs.toggle,this.menu=this.$refs.menu,this.open=!1,this.toggleButton.addEventListener("click",this.onToggle.bind(this)),this.onWindowClick=this.onWindowClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}onToggle(e){this.open=!this.open,this.menu.classList.toggle("show",this.open),this.toggleButton.setAttribute("aria-expanded",this.open?"true":"false"),this.open?(this.elem.addEventListener("keydown",this.onKeyDown),window.addEventListener("click",this.onWindowClick)):(this.elem.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("click",this.onWindowClick)),e.stopPropagation()}onKeyDown(e){e.code==="Escape"&&this.onToggle(e)}onWindowClick(e){this.onToggle(e)}},ms=ps;var gs=class{constructor(e){this.elem=e,this.typeControl=e.querySelector('[name="setting-app-homepage-type"]'),this.pagePickerContainer=e.querySelector("[page-picker-container]"),this.typeControl.addEventListener("change",this.controlPagePickerVisibility.bind(this)),this.controlPagePickerVisibility()}controlPagePickerVisibility(){let e=this.typeControl.value==="page";this.pagePickerContainer.style.display=e?"block":"none"}},vs=gs;var ys=class{setup(){this.uploadedTo=this.$opts.uploadedTo,this.container=this.$el,this.popupEl=this.$refs.popup,this.searchForm=this.$refs.searchForm,this.searchInput=this.$refs.searchInput,this.cancelSearch=this.$refs.cancelSearch,this.listContainer=this.$refs.listContainer,this.filterTabs=this.$manyRefs.filterTabs,this.selectButton=this.$refs.selectButton,this.formContainer=this.$refs.formContainer,this.dropzoneContainer=this.$refs.dropzoneContainer,this.type="gallery",this.lastSelected={},this.lastSelectedTime=0,this.callback=null,this.resetState=()=>{this.hasData=!1,this.page=1,this.filter="all"},this.resetState(),this.setupListeners(),window.ImageManager=this}setupListeners(){Ue(this.filterTabs,e=>{this.resetAll(),this.filter=e.target.dataset.filter,this.setActiveFilterTab(this.filter),this.loadGallery()}),this.searchForm.addEventListener("submit",e=>{this.resetListView(),this.loadGallery(),e.preventDefault()}),Ue(this.cancelSearch,e=>{this.resetListView(),this.resetSearchView(),this.loadGallery(),this.cancelSearch.classList.remove("active")}),this.searchInput.addEventListener("input",e=>{this.cancelSearch.classList.toggle("active",this.searchInput.value.trim())}),We(this.listContainer,".load-more","click",async e=>{Er(e.target),this.page++,await this.loadGallery(),e.target.remove()}),this.listContainer.addEventListener("event-emit-select-image",this.onImageSelectEvent.bind(this)),this.listContainer.addEventListener("error",e=>{e.target.src=baseUrl("loading_error.png")},!0),Ue(this.selectButton,()=>{this.callback&&this.callback(this.lastSelected),this.hide()}),We(this.formContainer,"#image-manager-delete","click",e=>{this.lastSelected&&this.loadImageEditForm(this.lastSelected.id,!0)}),this.formContainer.addEventListener("ajax-form-success",this.refreshGallery.bind(this)),this.container.addEventListener("dropzone-success",this.refreshGallery.bind(this))}show(e,t="gallery"){this.resetAll(),this.callback=e,this.type=t,this.popupEl.components.popup.show(),this.dropzoneContainer.classList.toggle("hidden",t!=="gallery"),this.hasData||(this.loadGallery(),this.hasData=!0)}hide(){this.popupEl.components.popup.hide()}async loadGallery(){let e={page:this.page,search:this.searchInput.value||null,uploaded_to:this.uploadedTo,filter_type:this.filter==="all"?null:this.filter},{data:t}=await window.$http.get(`images/${this.type}`,e);e.page===1&&(this.listContainer.innerHTML=""),this.addReturnedHtmlElementsToList(t),qi(this.listContainer)}addReturnedHtmlElementsToList(e){let t=document.createElement("div");t.innerHTML=e,window.components.init(t);for(let n of[...t.children])this.listContainer.appendChild(n)}setActiveFilterTab(e){this.filterTabs.forEach(n=>n.classList.remove("selected"));let t=this.filterTabs.find(n=>n.dataset.filter===e);t&&t.classList.add("selected")}resetAll(){this.resetState(),this.resetListView(),this.resetSearchView(),this.resetEditForm(),this.setActiveFilterTab("all"),this.selectButton.classList.add("hidden")}resetSearchView(){this.searchInput.value=""}resetEditForm(){this.formContainer.innerHTML=""}resetListView(){Er(this.listContainer),this.page=1}refreshGallery(){this.resetListView(),this.loadGallery()}onImageSelectEvent(e){let t=JSON.parse(e.detail.data),n=t&&t.id===this.lastSelected.id&&Date.now()-this.lastSelectedTime<400,o=e.target.classList.contains("selected");[...this.listContainer.querySelectorAll(".selected")].forEach(s=>{s.classList.remove("selected")}),o?this.resetEditForm():(e.target.classList.add("selected"),this.loadImageEditForm(t.id)),this.selectButton.classList.toggle("hidden",o),n&&this.callback&&(this.callback(t),this.hide()),this.lastSelected=t,this.lastSelectedTime=Date.now()}async loadImageEditForm(e,t=!1){t||(this.formContainer.innerHTML="");let n=t?{delete:!0}:{},{data:o}=await window.$http.get(`/images/edit/${e}`,n);this.formContainer.innerHTML=o,window.components.init(this.formContainer)}},bs=ys;var xs=class{constructor(e){this.elem=e,this.imageElem=e.querySelector("img"),this.imageInput=e.querySelector("input[type=file]"),this.resetInput=e.querySelector("input[data-reset-input]"),this.removeInput=e.querySelector("input[data-remove-input]"),this.defaultImage=e.getAttribute("data-default-image"),e.querySelector('button[data-action="reset-image"]').addEventListener("click",this.reset.bind(this));let n=e.querySelector('button[data-action="remove-image"]');n&&n.addEventListener("click",this.removeImage.bind(this)),this.imageInput.addEventListener("change",this.fileInputChange.bind(this))}fileInputChange(){this.resetInput.setAttribute("disabled","disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled");for(let e of this.imageInput.files)this.imageElem.src=window.URL.createObjectURL(e);this.imageElem.classList.remove("none")}reset(){this.imageInput.value="",this.imageElem.src=this.defaultImage,this.resetInput.removeAttribute("disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled"),this.imageElem.classList.remove("none")}removeImage(){this.imageInput.value="",this.imageElem.classList.add("none"),this.removeInput.removeAttribute("disabled"),this.resetInput.setAttribute("disabled","disabled")}},ws=xs;var Es=class{constructor(e){this.elem=e,this.menu=e.querySelector("ul"),this.sortInput=e.querySelector('[name="sort"]'),this.orderInput=e.querySelector('[name="order"]'),this.form=e.querySelector("form"),this.menu.addEventListener("click",t=>{t.target.closest("[data-sort-value]")!==null&&this.sortOptionClick(t)}),this.elem.addEventListener("click",t=>{t.target.closest("[data-sort-dir]")!==null&&this.sortDirectionClick(t)})}sortOptionClick(e){let t=e.target.closest("[data-sort-value]");this.sortInput.value=t.getAttribute("data-sort-value"),e.preventDefault(),this.form.submit()}sortDirectionClick(e){let n=this.orderInput.value==="asc"?"desc":"asc";this.orderInput.value=n,e.preventDefault(),this.form.submit()}},Ss=Es;var Nu=jr(ku()),_u=jr(Fu());var Ru=class{constructor(e){this.data=e}hasItems(){return Boolean(this.data)&&Boolean(this.data.types)&&this.data.types.length>0}containsTabularData(){let e=this.data.getData("text/rtf");return e&&e.includes("\\trowd")}getImages(){let e=this.data.types,t=this.data.files,n=[];for(let o of e)if(o.includes("image")){let s=this.data.getData(o);n.push(s.getAsFile())}for(let o of t)o.type.includes("image")&&n.push(o);return n}},$r=Ru;var jt=null,Li,Ii,Di;function hp(r,e,t){Ii=e,Di=t,jt=document.createElement("iframe"),jt.setAttribute("frameborder","0"),window.addEventListener("message",Ou),jt.setAttribute("src",r),jt.setAttribute("class","fullscreen"),jt.style.backgroundColor="#FFFFFF",document.body.appendChild(jt),Li=new URL(r).origin}function pp(){Pu()}function Ou(r){if(!r.data||r.data.length<1||r.origin!==Li)return;let e=JSON.parse(r.data);e.event==="init"?vp():e.event==="exit"?Pu():e.event==="save"?gp(e):e.event==="export"&&mp(e)}function mp(r){Di&&Di(r.data)}function gp(r){Mu({action:"export",format:"xmlpng",xml:r.xml,spin:"Updating drawing"})}function vp(){!Ii||Ii().then(r=>{Mu({action:"load",autosave:1,xml:r})})}function Pu(){window.removeEventListener("message",Ou),jt&&document.body.removeChild(jt)}function Mu(r){jt.contentWindow.postMessage(JSON.stringify(r),Li)}async function yp(r,e){let t={image:r,uploaded_to:e};return(await window.$http.post(window.baseUrl("/images/drawio"),t)).data}async function bp(r){return`data:image/png;base64,${(await window.$http.get(window.baseUrl(`/images/drawio/base64/${r}`))).data.content}`}var vt={show:hp,close:pp,upload:yp,load:bp};var Bu=class{setup(){this.elem=this.$el,this.pageId=this.$opts.pageId,this.textDirection=this.$opts.textDirection,this.imageUploadErrorText=this.$opts.imageUploadErrorText,this.serverUploadLimitText=this.$opts.serverUploadLimitText,this.markdown=new Nu.default({html:!0}),this.markdown.use(_u.default,{label:!0}),this.display=this.elem.querySelector(".markdown-display"),this.displayStylesLoaded=!1,this.input=this.elem.querySelector("textarea"),this.cm=null,this.Code=null;let e=window.importVersioned("code").then(n=>(this.cm=n.markdownEditor(this.input),this.Code=n,this.cm));this.onMarkdownScroll=this.onMarkdownScroll.bind(this);let t=()=>{this.displayDoc=this.display.contentDocument,this.init(e)};this.display.contentDocument.readyState==="complete"?t():this.display.addEventListener("load",t.bind(this)),window.$events.emitPublic(this.elem,"editor-markdown::setup",{markdownIt:this.markdown,displayEl:this.display,codeMirrorInstance:this.cm})}init(e){let t=0;this.displayDoc.addEventListener("click",s=>{let i=Date.now()-t<300,a=s.target.closest("a");if(a!==null){s.preventDefault(),window.open(a.getAttribute("href"));return}let l=s.target.closest("[drawio-diagram]");if(l!==null&&i){this.actionEditDrawing(l);return}t=Date.now()}),this.elem.addEventListener("click",s=>{let i=s.target.closest("button[data-action]");if(i===null)return;let a=i.getAttribute("data-action");if(a==="insertImage"&&this.actionInsertImage(),a==="insertLink"&&this.actionShowLinkSelector(),a==="insertDrawing"&&(s.ctrlKey||s.metaKey)){this.actionShowImageManager();return}a==="insertDrawing"&&this.actionStartDrawing(),a==="fullscreen"&&this.actionFullScreen()}),this.elem.addEventListener("click",s=>{let i=s.target.closest(".editor-toolbar-label");if(!i)return;let a=this.elem.querySelectorAll(".markdown-editor-wrap");for(let l of a)l.classList.remove("active");i.closest(".markdown-editor-wrap").classList.add("active")}),e.then(s=>{this.codeMirrorSetup(s);let i=Sr(()=>this.Code.updateLayout(s),100,!1);new ResizeObserver(i).observe(this.elem)}),this.listenForBookStackEditorEvents();let o=new URL(window.location).searchParams.get("content-text");o&&this.scrollToText(o)}updateAndRender(){let e=this.cm.getValue();this.input.value=e;let t=this.markdown.render(e);window.$events.emit("editor-html-change",t),window.$events.emit("editor-markdown-change",e),this.displayDoc.body.className="page-content",this.displayDoc.body.innerHTML=t,this.loadStylesIntoDisplay()}loadStylesIntoDisplay(){if(this.displayStylesLoaded)return;this.displayDoc.documentElement.classList.add("markdown-editor-display"),document.documentElement.classList.contains("dark-mode")&&(this.displayDoc.documentElement.style.backgroundColor="#222",this.displayDoc.documentElement.classList.add("dark-mode")),this.displayDoc.head.innerHTML="";let e=document.head.querySelectorAll("style,link[rel=stylesheet]");for(let t of e){let n=t.cloneNode(!0);this.displayDoc.head.appendChild(n)}this.displayStylesLoaded=!0}onMarkdownScroll(e){let t=this.displayDoc.body.children;if(t.length<=e)return;(e===-1?t[t.length-1]:t[e]).scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})}codeMirrorSetup(e){let t=this;e.setOption("direction","ltr");let n=this.Code.getMetaKey(),o={};o[`${n}-Alt-I`]=function(d){let m=``,v=d.getCursor("from");d.replaceSelection(m),d.setCursor(v.line,v.ch+m.length-1)},o[`${n}-S`]=d=>{window.$events.emit("editor-save-draft")},o[`${n}-Enter`]=d=>{window.$events.emit("editor-save-page")},o[`Shift-${n}-K`]=d=>{this.actionShowLinkSelector()},o[`${n}-K`]=d=>{f()},o[`${n}-1`]=d=>{a("##")},o[`${n}-2`]=d=>{a("###")},o[`${n}-3`]=d=>{a("####")},o[`${n}-4`]=d=>{a("#####")},o[`${n}-5`]=d=>{a("")},o[`${n}-d`]=d=>{a("")},o[`${n}-6`]=d=>{a(">")},o[`${n}-q`]=d=>{a(">")},o[`${n}-7`]=d=>{u("\n```\n","\n```")},o[`${n}-8`]=d=>{u("`","`")},o[`Shift-${n}-E`]=d=>{u("`","`")},o[`${n}-9`]=d=>{u('<p class="callout info">',"</p>")},e.setOption("extraKeys",o),e.on("change",(d,h)=>{this.updateAndRender()});let s=Sr(d=>{let h=d.getScrollInfo();if(h.top+h.clientHeight===h.height){this.onMarkdownScroll(-1);return}let v=d.lineAtHeight(h.top,"local"),y=d.getRange({line:0,ch:null},{line:v,ch:null}),D=new DOMParser().parseFromString(this.markdown.render(y),"text/html").documentElement.querySelectorAll("body > *");this.onMarkdownScroll(D.length)},100);e.on("scroll",d=>{s(d)}),e.on("paste",(d,h)=>{let m=new $r(h.clipboardData||h.dataTransfer);if(!m.hasItems()||m.containsTabularData())return;let v=m.getImages();for(let y of v)c(y)}),e.on("drop",(d,h)=>{let m=h.dataTransfer.getData("bookstack/template");if(m){let y=d.coordsChar({left:h.pageX,top:h.pageY});d.setCursor(y),h.preventDefault(),window.$http.get(`/templates/${m}`).then(w=>{let x=w.data.markdown||w.data.html;d.replaceSelection(x)})}let v=new $r(h.dataTransfer);if(v.hasItems()&&v.getImages().length>0){let y=d.coordsChar({left:h.pageX,top:h.pageY});d.setCursor(y),h.stopPropagation(),h.preventDefault();let w=v.getImages();for(let x of w)c(x)}});function i(d,h){let m=e.getValue(),v=e.listSelections();e.setValue(m.replace(d,h)),e.setSelections(v)}function a(d){let h=e.getCursor(),m=e.getLine(h.line),v=m.length,y=m.split(" ")[0];if(y===d){m=m.replace(`${d} `,""),e.replaceRange(m,{line:h.line,ch:0},{line:h.line,ch:v}),e.setCursor({line:h.line,ch:h.ch-(d.length+1)});return}let w=/^[#>`]/.test(y),x=0;w?(x=d.length-y.length,m=m.replace(y,d).trim()):d!==""&&(x=d.length+1,m=d+" "+m),e.replaceRange(m,{line:h.line,ch:0},{line:h.line,ch:v}),e.setCursor({line:h.line,ch:h.ch+x})}function l(d,h){let m=e.getCursor(),v=e.getLine(m.line),y=v.length,w=v;v.indexOf(d)===0&&v.slice(-h.length)===h?w=v.slice(d.length,v.length-h.length):w=`${d}${v}${h}`,e.replaceRange(w,{line:m.line,ch:0},{line:m.line,ch:y}),e.setCursor({line:m.line,ch:m.ch+d.length})}function u(d,h){let m=e.getSelection();if(m==="")return l(d,h);let v=m,y=0,w=0;m.indexOf(d)===0&&m.slice(-h.length)===h?(v=m.slice(d.length,m.length-h.length),w=-(h.length+d.length)):(v=`${d}${m}${h}`,w=d.length+h.length);let x=e.listSelections()[0];e.replaceSelection(v);let D=x.head.ch<=x.anchor.ch;x.head.ch+=D?y:w,x.anchor.ch+=D?w:y,e.setSelections([x])}function c(d){if(d===null||d.type.indexOf("image")!==0)return;let h="png";if(d.name){let N=d.name.match(/\.(.+)$/);N.length>1&&(h=N[1])}let m="image-"+Math.random().toString(16).slice(2),v=window.baseUrl(`/loading.gif#upload${m}`),y=e.getSelection(),w=``,x=e.getCursor();e.replaceSelection(w),e.setCursor({line:x.line,ch:x.ch+y.length+3});let D="image-"+Date.now()+"."+h,I=new FormData;I.append("file",d,D),I.append("uploaded_to",t.pageId),window.$http.post("/images/gallery",I).then(N=>{let S=`[](${N.data.url})`;i(w,S)}).catch(N=>{window.$events.emit("error",t.imageUploadErrorText),i(w,y),console.log(N)})}function f(){let d=e.getCursor("from"),h=e.getSelection()||"",m=`[${h}]()`;e.focus(),e.replaceSelection(m);let v=h===""?-3:-1;e.setCursor(d.line,d.ch+m.length+v)}this.updateAndRender()}actionInsertImage(){let e=this.cm.getCursor("from");window.ImageManager.show(t=>{let n=t.thumbs.display||t.url,o=this.cm.getSelection(),s="[]("+t.url+")";this.cm.focus(),this.cm.replaceSelection(s),this.cm.setCursor(e.line,e.ch+s.length)},"gallery")}actionShowImageManager(){let e=this.cm.getCursor("from");window.ImageManager.show(t=>{this.insertDrawing(t,e)},"drawio")}actionShowLinkSelector(){let e=this.cm.getCursor("from");window.EntitySelectorPopup.show(t=>{let o=`[${this.cm.getSelection()||t.name}](${t.link})`;this.cm.focus(),this.cm.replaceSelection(o),this.cm.setCursor(e.line,e.ch+o.length)})}getDrawioUrl(){let e=document.querySelector("[drawio-url]");return e?e.getAttribute("drawio-url"):!1}actionStartDrawing(){let e=this.getDrawioUrl();if(!e)return;let t=this.cm.getCursor("from");vt.show(e,()=>Promise.resolve(""),n=>{let o={image:n,uploaded_to:Number(this.pageId)};window.$http.post("/images/drawio",o).then(s=>{this.insertDrawing(s.data,t),vt.close()}).catch(s=>{this.handleDrawingUploadError(s)})})}insertDrawing(e,t){let n=`<div drawio-diagram="${e.id}"><img src="${e.url}"></div>`;this.cm.focus(),this.cm.replaceSelection(n),this.cm.setCursor(t.line,t.ch+n.length)}actionEditDrawing(e){let t=this.getDrawioUrl();if(!t)return;let n=this.cm.getCursor("from"),o=e.getAttribute("drawio-diagram");vt.show(t,()=>vt.load(o),s=>{let i={image:s,uploaded_to:Number(this.pageId)};window.$http.post("/images/drawio",i).then(a=>{let l=`<div drawio-diagram="${a.data.id}"><img src="${a.data.url}"></div>`,u=this.cm.getValue().split(`