ldap-ui 0.9.13__py3-none-any.whl → 0.9.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ldap_ui/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.9.13"
1
+ __version__ = "0.9.15"
ldap_ui/ldap_api.py CHANGED
@@ -374,7 +374,7 @@ class CheckPasswordRequest(BaseModel):
374
374
  PasswordRequest = TypeAdapter(Union[ChangePasswordRequest, CheckPasswordRequest])
375
375
 
376
376
 
377
- @api.route("/entry/password/{dn:path}", methods=["POST"])
377
+ @api.route("/password/{dn:path}", methods=["POST"])
378
378
  async def passwd(request: Request) -> Response:
379
379
  "Update passwords"
380
380
 
@@ -14,5 +14,5 @@ var Qo=Object.defineProperty;var el=(e,t,n)=>t in e?Qo(e,t,{enumerable:!0,config
14
14
  * @vue/runtime-dom v3.5.13
15
15
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
16
  * @license MIT
17
- **/let Cs;const ur=typeof window<"u"&&window.trustedTypes;if(ur)try{Cs=ur.createPolicy("vue",{createHTML:e=>e})}catch{}const Ho=Cs?e=>Cs.createHTML(e):e=>e,Gi="http://www.w3.org/2000/svg",Xi="http://www.w3.org/1998/Math/MathML",ft=typeof document<"u"?document:null,cr=ft&&ft.createElement("template"),Zi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?ft.createElementNS(Gi,e):t==="mathml"?ft.createElementNS(Xi,e):n?ft.createElement(e,{is:n}):ft.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>ft.createTextNode(e),createComment:e=>ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{cr.innerHTML=Ho(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const i=cr.content;if(s==="svg"||s==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}t.insertBefore(i,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},vt="transition",Xt="animation",pn=Symbol("_vtc"),Bo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Qi=Se({},io,Bo),ea=e=>(e.displayName="Transition",e.props=Qi,e),In=ea((e,{slots:t})=>Ji(Gl,ta(e),t)),Ot=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},fr=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function ta(e){const t={};for(const j in e)j in Bo||(t[j]=e[j]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:u=l,appearToClass:c=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,O=na(r),T=O&&O[0],_=O&&O[1],{onBeforeEnter:w,onEnter:F,onEnterCancelled:K,onLeave:M,onLeaveCancelled:L,onBeforeAppear:Q=w,onAppear:ge=F,onAppearCancelled:we=K}=t,G=(j,se,xe,A)=>{j._enterCancelled=A,Et(j,se?c:i),Et(j,se?u:l),xe&&xe()},ne=(j,se)=>{j._isLeaving=!1,Et(j,f),Et(j,g),Et(j,h),se&&se()},ce=j=>(se,xe)=>{const A=j?ge:F,m=()=>G(se,j,xe);Ot(A,[se,m]),dr(()=>{Et(se,j?a:o),ct(se,j?c:i),fr(A)||pr(se,s,T,m)})};return Se(t,{onBeforeEnter(j){Ot(w,[j]),ct(j,o),ct(j,l)},onBeforeAppear(j){Ot(Q,[j]),ct(j,a),ct(j,u)},onEnter:ce(!1),onAppear:ce(!0),onLeave(j,se){j._isLeaving=!0;const xe=()=>ne(j,se);ct(j,f),j._enterCancelled?(ct(j,h),vr()):(vr(),ct(j,h)),dr(()=>{j._isLeaving&&(Et(j,f),ct(j,g),fr(M)||pr(j,s,_,xe))}),Ot(M,[j,xe])},onEnterCancelled(j){G(j,!1,void 0,!0),Ot(K,[j])},onAppearCancelled(j){G(j,!0,void 0,!0),Ot(we,[j])},onLeaveCancelled(j){ne(j),Ot(L,[j])}})}function na(e){if(e==null)return null;if(pe(e))return[cs(e.enter),cs(e.leave)];{const t=cs(e);return[t,t]}}function cs(e){return ll(e)}function ct(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[pn]||(e[pn]=new Set)).add(t)}function Et(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[pn];n&&(n.delete(t),n.size||(e[pn]=void 0))}function dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let sa=0;function pr(e,t,n,s){const r=e._endId=++sa,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:l,timeout:i,propCount:a}=ra(e,t);if(!l)return s();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,h),o()},h=g=>{g.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},i+1),e.addEventListener(u,h)}function ra(e,t){const n=window.getComputedStyle(e),s=O=>(n[O]||"").split(", "),r=s(`${vt}Delay`),o=s(`${vt}Duration`),l=hr(r,o),i=s(`${Xt}Delay`),a=s(`${Xt}Duration`),u=hr(i,a);let c=null,f=0,h=0;t===vt?l>0&&(c=vt,f=l,h=o.length):t===Xt?u>0&&(c=Xt,f=u,h=a.length):(f=Math.max(l,u),c=f>0?l>u?vt:Xt:null,h=c?c===vt?o.length:a.length:0);const g=c===vt&&/\b(transform|all)(,|$)/.test(s(`${vt}Property`).toString());return{type:c,timeout:f,propCount:h,hasTransform:g}}function hr(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>mr(n)+mr(e[s])))}function mr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function vr(){return document.body.offsetHeight}function oa(e,t,n){const s=e[pn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ln=Symbol("_vod"),qo=Symbol("_vsh"),Vs={beforeMount(e,{value:t},{transition:n}){e[Ln]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Zt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Zt(e,!0),s.enter(e)):s.leave(e,()=>{Zt(e,!1)}):Zt(e,t))},beforeUnmount(e,{value:t}){Zt(e,t)}};function Zt(e,t){e.style.display=t?e[Ln]:"none",e[qo]=!t}const la=Symbol(""),ia=/(^|;)\s*display\s*:/;function aa(e,t,n){const s=e.style,r=ye(n);let o=!1;if(n&&!r){if(t)if(ye(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();n[i]==null&&En(s,i,"")}else for(const l in t)n[l]==null&&En(s,l,"");for(const l in n)l==="display"&&(o=!0),En(s,l,n[l])}else if(r){if(t!==n){const l=s[la];l&&(n+=";"+l),s.cssText=n,o=ia.test(n)}}else t&&e.removeAttribute("style");Ln in e&&(e[Ln]=o?s.display:"",e[qo]&&(s.display="none"))}const gr=/\s*!important$/;function En(e,t,n){if(V(n))n.forEach(s=>En(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=ua(e,t);gr.test(n)?e.setProperty(St(s),n.replace(gr,""),"important"):e[s]=n}}const yr=["Webkit","Moz","ms"],fs={};function ua(e,t){const n=fs[t];if(n)return n;let s=xt(t);if(s!=="filter"&&s in e)return fs[t]=s;s=jr(s);for(let r=0;r<yr.length;r++){const o=yr[r]+s;if(o in e)return fs[t]=o}return t}const br="http://www.w3.org/1999/xlink";function wr(e,t,n,s,r,o=dl(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(br,t.slice(6,t.length)):e.setAttributeNS(br,t,n):n==null||o&&!Mr(n)?e.removeAttribute(t):e.setAttribute(t,o?"":Ze(n)?String(n):n)}function xr(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Ho(n):n);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const i=o==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(i!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const i=typeof e[t];i==="boolean"?n=Mr(n):n==null&&i==="string"?(n="",l=!0):i==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(r||t)}function Dt(e,t,n,s){e.addEventListener(t,n,s)}function ca(e,t,n,s){e.removeEventListener(t,n,s)}const _r=Symbol("_vei");function fa(e,t,n,s,r=null){const o=e[_r]||(e[_r]={}),l=o[t];if(s&&l)l.value=s;else{const[i,a]=da(t);if(s){const u=o[t]=ma(s,r);Dt(e,i,u,a)}else l&&(ca(e,i,l,a),o[t]=void 0)}}const Sr=/(?:Once|Passive|Capture)$/;function da(e){let t;if(Sr.test(e)){t={};let s;for(;s=e.match(Sr);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):St(e.slice(2)),t]}let ds=0;const pa=Promise.resolve(),ha=()=>ds||(pa.then(()=>ds=0),ds=Date.now());function ma(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Qe(va(s,n.value),t,5,[s])};return n.value=e,n.attached=ha(),n}function va(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Cr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ga=(e,t,n,s,r,o)=>{const l=r==="svg";t==="class"?oa(e,s,l):t==="style"?aa(e,n,s):Vn(t)?ks(t)||fa(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ya(e,t,s,l))?(xr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&wr(e,t,s,l,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ye(s))?xr(e,xt(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),wr(e,t,s,l))};function ya(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cr(t)&&Y(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Cr(t)&&ye(n)?!1:t in e}const Fn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Tn(t,n):t};function ba(e){e.target.composing=!0}function $r(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const qt=Symbol("_assign"),Kt={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[qt]=Fn(r);const o=s||r.props&&r.props.type==="number";Dt(e,t?"change":"input",l=>{if(l.target.composing)return;let i=e.value;n&&(i=i.trim()),o&&(i=An(i)),e[qt](i)}),n&&Dt(e,"change",()=>{e.value=e.value.trim()}),t||(Dt(e,"compositionstart",ba),Dt(e,"compositionend",$r),Dt(e,"change",$r))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},l){if(e[qt]=Fn(l),e.composing)return;const i=(o||e.type==="number")&&!/^0\d/.test(e.value)?An(e.value):e.value,a=t??"";i!==a&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===a)||(e.value=a))}},hn={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=Hn(t);Dt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?An(Un(l)):Un(l));e[qt](e.multiple?r?new Set(o):o:o[0]),e._assigning=!0,zt(()=>{e._assigning=!1})}),e[qt]=Fn(s)},mounted(e,{value:t}){kr(e,t)},beforeUpdate(e,t,n){e[qt]=Fn(n)},updated(e,{value:t}){e._assigning||kr(e,t)}};function kr(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Hn(t))){for(let r=0,o=e.options.length;r<o;r++){const l=e.options[r],i=Un(l);if(n)if(s){const a=typeof i;a==="string"||a==="number"?l.selected=t.some(u=>String(u)===String(i)):l.selected=hl(t,i)>-1}else l.selected=t.has(i);else if(Kn(Un(l),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Un(e){return"_value"in e?e._value:e.value}const wa=["ctrl","shift","alt","meta"],xa={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>wa.some(n=>e[`${n}Key`]&&!t.includes(n))},Wt=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let l=0;l<t.length;l++){const i=xa[t[l]];if(i&&i(r,t))return}return e(r,...o)})},_a={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},mt=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=St(r.key);if(t.some(l=>l===o||_a[l]===o))return e(r)})},Sa=Se({patchProp:ga},Zi);let Tr;function Ca(){return Tr||(Tr=xi(Sa))}const $a=(...e)=>{const t=Ca().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ta(s);if(!r)return;const o=t._component;!Y(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=n(r,!1,ka(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function ka(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ta(e){return ye(e)?document.querySelector(e):e}const Oa={class:"max-w-sm rounded overflow-hidden shadow-lg border border-front/20"},Ea={class:"py-2 border-b border-front/20"},Aa={class:"pl-6"},Pa={class:"px-6 py-2"},Ko=ve({__name:"Card",props:{title:{type:String,required:!0}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(y(),k("div",Oa,[Ge(s.$slots,"header",{},()=>[E("div",Ea,[E("strong",Aa,oe(e.title),1),E("span",{class:"control text-l float-right mr-2 pl-2",title:"close",onClick:r[0]||(r[0]=o=>n("close"))},"⊗ ")])]),E("div",Pa,[Ge(s.$slots,"default")])]))}}),Da={class:"header"},ja={class:"list-disc mt-2"},Na={key:0},Ma={key:1},Ra={key:2},Ia={key:3},La={key:0},Fa=ve({__name:"AttributeCard",props:{modelValue:String},emits:["show-attr","update:modelValue"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=re(()=>{var l;return(l=s==null?void 0:s.schema)==null?void 0:l.attr(n.modelValue)}),o=t;return(l,i)=>{var a;return e.modelValue&&r.value?(y(),be(Ko,{key:0,title:((a=r.value.names)==null?void 0:a.join(", "))||"",class:"ml-4",onClose:i[1]||(i[1]=u=>o("update:modelValue"))},{default:de(()=>[E("div",Da,oe(r.value.desc),1),E("ul",ja,[r.value.$super?(y(),k("li",Na,[i[2]||(i[2]=Ie("Parent: ")),E("span",{class:"cursor-pointer",onClick:i[0]||(i[0]=u=>o("update:modelValue",r.value.$super.name))},oe(r.value.$super),1)])):Z("",!0),r.value.equality?(y(),k("li",Ma,"Equality: "+oe(r.value.equality),1)):Z("",!0),r.value.ordering?(y(),k("li",Ra,"Ordering: "+oe(r.value.ordering),1)):Z("",!0),r.value.substr?(y(),k("li",Ia,"Substring: "+oe(r.value.substr),1)):Z("",!0),E("li",null,[Ie("Syntax: "+oe(r.value.$syntax)+" ",1),r.value.binary?(y(),k("span",La,"(binary)")):Z("",!0)])])]),_:1},8,["title"])):Z("",!0)}}}),Ua={key:0,class:"fixed w-full h-full top-0 left-0 z-20 bg-front/60 dark:bg-back/70"},Va={class:"absolute max-h-full w-1/2 max-w-lg container text-front overflow-hidden rounded bg-back border border-front/40"},Ha={class:"flex justify-between items-start"},Ba={class:"max-h-full w-full divide-y divide-front/30"},qa={key:0,class:"flex justify-between items-center px-4 py-1"},Ka={class:"ui-modal-header text-xl font-bold leading-normal"},Wa={class:"ui-modal-body p-4 space-y-4"},za={class:"ui-modal-footer flex justify-end w-full p-4 space-x-3"},it=ve({__name:"Modal",props:{title:{type:String,required:!0},open:{type:Boolean,required:!0},okTitle:{type:String,default:"OK"},okClasses:{type:String,default:"bg-primary/80"},cancelTitle:{type:String,default:"Cancel"},cancelClasses:{type:String,default:"bg-secondary"},hideFooter:{type:Boolean,default:!1},returnTo:String},emits:["ok","cancel","show","shown","hide","hidden"],setup(e,{emit:t}){const n=e,s=t;function r(){n.open&&s("ok")}function o(){var l;n.open&&(n.returnTo&&((l=document.getElementById(n.returnTo))==null||l.focus()),s("cancel"))}return(l,i)=>(y(),k("div",null,[J(In,{name:"fade"},{default:de(()=>[e.open?(y(),k("div",Ua)):Z("",!0)]),_:1}),J(In,{name:"bounce",onEnter:i[0]||(i[0]=a=>s("show")),onAfterEnter:i[1]||(i[1]=a=>s("shown")),onLeave:i[2]||(i[2]=a=>s("hide")),onAfterLeave:i[3]||(i[3]=a=>s("hidden"))},{default:de(()=>[e.open?(y(),k("div",{key:0,ref:"backdrop",onClick:Wt(o,["self"]),onKeydown:mt(o,["esc"]),class:"fixed w-full h-full top-0 left-0 flex items-center justify-center z-30"},[E("div",Va,[E("div",Ha,[E("div",Ba,[e.title?(y(),k("div",qa,[E("h3",Ka,[Ge(l.$slots,"header",{},()=>[Ie(oe(e.title),1)])]),E("div",{class:"control text-xl",onClick:o,title:"close"},"⊗")])):Z("",!0),E("div",Wa,[Ge(l.$slots,"default")]),Ue(E("div",za,[Ge(l.$slots,"footer",{},()=>[E("button",{id:"ui-modal-cancel",onClick:o,type:"button",class:Pe(["btn",e.cancelClasses]),tabindex:"0"},[Ge(l.$slots,"modal-cancel",{},()=>[Ie(oe(e.cancelTitle),1)])],2),E("button",{id:"ui-modal-ok",onClick:Wt(r,["stop"]),type:"button",class:Pe(["btn",e.okClasses]),tabindex:"0"},[Ge(l.$slots,"modal-ok",{},()=>[Ie(oe(e.okTitle),1)])],2)])],512),[[Vs,!e.hideFooter]])])])])],544)):Z("",!0)]),_:3})]))}}),Ja=ve({__name:"AddAttributeDialog",props:{entry:{type:Object,required:!0},attributes:{type:Array,required:!0},modal:String,returnTo:String},emits:["ok","show-modal","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(null),o=re(()=>{const a=Object.keys(n.entry.attrs);return n.attributes.filter(u=>!a.includes(u))}),l=t;function i(){if(s.value){if(s.value=="jpegPhoto"||s.value=="thumbnailPhoto"){l("show-modal","add-"+s.value);return}if(s.value=="userPassword"){l("show-modal","change-password");return}l("update:modal"),l("ok",s.value)}}return(a,u)=>(y(),be(it,{title:"Add attribute",open:e.modal=="add-attribute","return-to":n.returnTo,onShow:u[1]||(u[1]=c=>{s.value=void 0}),onShown:u[2]||(u[2]=c=>{var f;return(f=r.value)==null?void 0:f.focus()}),onOk:i,onCancel:u[3]||(u[3]=c=>l("update:modal"))},{default:de(()=>[Ue(E("select",{"onUpdate:modelValue":u[0]||(u[0]=c=>s.value=c),ref_key:"select",ref:r,onKeyup:mt(i,["enter"])},[(y(!0),k(ie,null,ke(o.value,c=>(y(),k("option",{key:c},oe(c),1))),128))],544),[[hn,s.value]])]),_:1},8,["open","return-to"]))}}),Ya=ve({__name:"AddObjectClassDialog",props:{entry:{type:Object,required:!0},modal:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(),o=re(()=>{const a=n.entry.attrs.objectClass;return n.entry.meta.aux.filter(u=>!a.includes(u))}),l=t;function i(){s.value&&(l("update:modal"),l("ok",s.value))}return(a,u)=>(y(),be(it,{title:"Add objectClass",open:e.modal=="add-object-class",onShow:u[1]||(u[1]=c=>{s.value=void 0}),onShown:u[2]||(u[2]=c=>{var f;return(f=r.value)==null?void 0:f.focus()}),onOk:i,onCancel:u[3]||(u[3]=c=>l("update:modal"))},{default:de(()=>[Ue(E("select",{"onUpdate:modelValue":u[0]||(u[0]=c=>s.value=c),ref_key:"select",ref:r,onKeyup:mt(i,["enter"])},[(y(!0),k(ie,null,ke(o.value,c=>(y(),k("option",{key:c},oe(c),1))),128))],544),[[hn,s.value]])]),_:1},8,["open"]))}}),Ga=["accept"],Or=ve({__name:"AddPhotoDialog",props:{dn:{type:String,required:!0},attr:{type:String,validator:e=>["jpegPhoto","thumbnailPhoto"].includes(e)},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(null),r=t;async function o(l){const i=l.target;if(!(i!=null&&i.files))return;const a=new FormData;a.append("blob",i.files[0]),(await fetch("api/blob/"+n.attr+"/0/"+n.dn,{method:"PUT",body:a})).ok&&(r("update:modal"),r("ok",n.dn,[n.attr]))}return(l,i)=>(y(),be(it,{title:"Upload photo","hide-footer":"","return-to":e.returnTo,open:e.modal=="add-"+e.attr,onShown:i[0]||(i[0]=a=>{var u;return(u=s.value)==null?void 0:u.focus()}),onCancel:i[1]||(i[1]=a=>r("update:modal"))},{default:de(()=>[E("input",{name:"photo",type:"file",ref_key:"upload",ref:s,onChange:o,accept:e.attr=="jpegPhoto"?"image/jpeg":"image/*"},null,40,Ga)]),_:1},8,["return-to","open"]))}});function Xa(e,t,n){return n.indexOf(e)==t}function Za(e){let t=e.substring(14);return t!="Z"&&(t=t.substring(0,3)+":"+(t.length>3?t.substring(3,5):"00")),new Date(e.substring(0,4)+"-"+e.substring(4,6)+"-"+e.substring(6,8)+"T"+e.substring(8,10)+":"+e.substring(10,12)+":"+e.substring(12,14)+t)}let Qn;class Qa{constructor(t){X(this,"text");X(this,"attrName");X(this,"value");this.text=t;const n=t.split("=");this.attrName=n[0].trim(),this.value=n[1].trim()}toString(){return this.text}eq(t){return t!==void 0&&this.attr!==void 0&&this.attr.eq(t.attr)&&this.attr.matcher(this.value,t.value)}get attr(){return Qn.attr(this.attrName)}}class mn{constructor(t){X(this,"text");X(this,"rdn");X(this,"parent");this.text=t;const n=t.split(",");this.rdn=new Qa(n[0]),this.parent=n.length==1?void 0:new mn(t.slice(n[0].length+1))}toString(){return this.text}eq(t){return!t||!this.rdn.eq(t.rdn)?!1:!this.parent&&!t.parent?!0:!!this.parent&&this.parent.eq(t.parent)}}let Wo=class{constructor(){X(this,"oid");X(this,"name");X(this,"names");X(this,"sup")}};class eu extends Wo{constructor(n){super();X(this,"desc");X(this,"obsolete");X(this,"may");X(this,"must");X(this,"kind");Object.assign(this,n)}get structural(){return this.kind=="structural"}$collect(n){const s=[];for(let o=this;o;o=o.$super){const l=o[n];l&&s.push(l)}const r=s.flat().map(o=>Qn.attr(o)).map(o=>o==null?void 0:o.name).filter(Xa);return r.sort(),r}toString(){return this.name}get $super(){const n=Object.getPrototypeOf(this);return n.sup?n:void 0}}const Er={distinguishedNameMatch:(e,t)=>new mn(e).eq(new mn(t)),caseIgnoreIA5Match:(e,t)=>e.toLowerCase()==t.toLowerCase(),caseIgnoreMatch:(e,t)=>e.toLowerCase()==t.toLowerCase(),integerMatch:(e,t)=>+e==+t,numericStringMatch:(e,t)=>+e==+t,octetStringMatch:(e,t)=>e==t};class zo extends Wo{constructor(n){super();X(this,"desc");X(this,"equality");X(this,"obsolete");X(this,"ordering");X(this,"no_user_mod");X(this,"single_value");X(this,"substr");X(this,"syntax");X(this,"usage");delete this.equality,delete this.ordering,delete this.substr,delete this.syntax,Object.assign(this,Object.fromEntries(Object.entries(n).filter(([s,r])=>r!=null)))}toString(){return this.name}get matcher(){return(this.equality?Er[this.equality]:void 0)||Er.octetStringMatch}eq(n){return n&&this.oid==n.oid}get binary(){var n;if(this.equality!="octetStringMatch")return(n=this.$syntax)==null?void 0:n.not_human_readable}get $syntax(){return Qn.syntaxes.get(this.syntax)}get $super(){const n=Object.getPrototypeOf(this);return n.sup?n:void 0}}class tu{constructor(t){X(this,"oid");X(this,"desc");X(this,"not_human_readable");Object.assign(this,t)}toString(){return this.desc}}class nu extends Object{constructor(n){super();X(this,"attributes");X(this,"objectClasses");X(this,"syntaxes");X(this,"attributesByName");this.syntaxes=new Map(Object.entries(n.syntaxes).map(([s,r])=>[s,new tu(r)])),this.attributes=Object.values(n.attributes).map(s=>new zo(s)),this.objectClasses=new Map(Object.entries(n.objectClasses).map(([s,r])=>[s.toLowerCase(),new eu(r)])),this.buildPrototypeChain(this.objectClasses),this.attributesByName=new Map(this.attributes.flatMap(s=>(s.names||[]).map(r=>[r.toLowerCase(),s]))),this.buildPrototypeChain(this.attributesByName),Qn=this}buildPrototypeChain(n){for(const s of n.values()){const r=s.sup?s.sup[0]:void 0,o=r?n.get(r.toLowerCase()):void 0;o&&Object.setPrototypeOf(s,o)}}attr(n){return this.attributesByName.get((n==null?void 0:n.toLowerCase())||"")}oc(n){return this.objectClasses.get((n==null?void 0:n.toLowerCase())||"")}search(n){return this.attributes.filter(s=>{var r;return(r=s.names)==null?void 0:r.some(o=>o.toLowerCase().startsWith(n.toLowerCase()))})}}function su(e){return Lr()?(vl(e),!0):!1}function Jo(e){return typeof e=="function"?e():yn(e)}const ru=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ou=Object.prototype.toString,lu=e=>ou.call(e)==="[object Object]",iu=()=>{};function Yo(e){var t;const n=Jo(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Hs=ru?window:void 0;function jt(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Hs):[t,n,s,r]=e,!t)return iu;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const o=[],l=()=>{o.forEach(c=>c()),o.length=0},i=(c,f,h,g)=>(c.addEventListener(f,h,g),()=>c.removeEventListener(f,h,g)),a=Ve(()=>[Yo(t),Jo(r)],([c,f])=>{if(l(),!c)return;const h=lu(f)?{...f}:f;o.push(...n.flatMap(g=>s.map(O=>i(c,g,O,h))))},{immediate:!0,flush:"post"}),u=()=>{a(),l()};return su(u),u}const au={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof Touch?null:[e.movementX,e.movementY]};function uu(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:s=!1,initialValue:r={x:0,y:0},window:o=Hs,target:l=o,scroll:i=!0,eventFilter:a}=e;let u=null;const c=I(r.x),f=I(r.y),h=I(null),g=typeof t=="function"?t:au[t],O=L=>{const Q=g(L);u=L,Q&&([c.value,f.value]=Q,h.value="mouse")},T=L=>{if(L.touches.length>0){const Q=g(L.touches[0]);Q&&([c.value,f.value]=Q,h.value="touch")}},_=()=>{if(!u||!o)return;const L=g(u);u instanceof MouseEvent&&L&&(c.value=L[0]+o.scrollX,f.value=L[1]+o.scrollY)},w=()=>{c.value=r.x,f.value=r.y},F=a?L=>a(()=>O(L),{}):L=>O(L),K=a?L=>a(()=>T(L),{}):L=>T(L),M=a?()=>a(()=>_(),{}):()=>_();if(l){const L={passive:!0};jt(l,["mousemove","dragover"],F,L),n&&t!=="movement"&&(jt(l,["touchstart","touchmove"],K,L),s&&jt(l,"touchend",w,L)),i&&t==="page"&&jt(o,"scroll",M,{passive:!0})}return{x:c,y:f,sourceType:h}}function cu(e,t={}){const{handleOutside:n=!0,window:s=Hs}=t,r=t.type||"page",{x:o,y:l,sourceType:i}=uu(t),a=I(e??(s==null?void 0:s.document.body)),u=I(0),c=I(0),f=I(0),h=I(0),g=I(0),O=I(0),T=I(!0);let _=()=>{};return s&&(_=Ve([a,o,l],()=>{const w=Yo(a);if(!w)return;const{left:F,top:K,width:M,height:L}=w.getBoundingClientRect();f.value=F+(r==="page"?s.pageXOffset:0),h.value=K+(r==="page"?s.pageYOffset:0),g.value=L,O.value=M;const Q=o.value-f.value,ge=l.value-h.value;T.value=M===0||L===0||Q<0||ge<0||Q>M||ge>L,(n||!T.value)&&(u.value=Q,c.value=ge)},{immediate:!0}),jt(document,"mouseleave",()=>{T.value=!0})),{x:o,y:l,sourceType:i,elementX:u,elementY:c,elementPositionX:f,elementPositionY:h,elementHeight:g,elementWidth:O,isOutside:T,stop:_}}const fu={key:0,class:"ui-popover absolute z-10 border border-front/70 rounded min-w-max text-front bg-back list-none"},Bs=ve({__name:"Popover",props:{open:Boolean},emits:["opened","closed","update:open"],setup(e,{emit:t}){const n=e,s=t,r=I(null),o=I(),{isOutside:l}=cu(r);function i(){o.value=void 0,n.open&&s("update:open")}function a(c){const f=r.value.children.length-1;o.value===void 0?o.value=c>0?0:f:(o.value+=c,o.value>f?o.value=0:o.value<0&&(o.value=f))}function u(c){if(!(!n.open||!r.value))switch(c.key){case"Esc":case"Escape":i();break;case"ArrowDown":a(1),c.preventDefault();break;case"ArrowUp":a(-1),c.preventDefault();break;case"Enter":{r.value.children[o.value].click(),c.preventDefault();break}}}return Jt(()=>{jt(document,"keydown",u),jt(document,"click",i)}),Ve(o,c=>{if(!(!n.open||!r.value)){for(const f of r.value.children)f.classList.remove("selected");c!=null&&r.value.children[c].classList.add("selected")}}),Ve(l,c=>{for(const f of r.value.children)c?f.classList.remove("hover:bg-primary/40"):(o.value=void 0,f.classList.add("hover:bg-primary/40"))}),(c,f)=>(y(),be(In,{name:"fade",onAfterEnter:f[0]||(f[0]=h=>s("opened")),onAfterLeave:f[1]||(f[1]=h=>s("closed"))},{default:de(()=>[e.open?(y(),k("div",fu,[E("ul",{class:"bg-front/5 dark:bg-front/10 py-2",ref_key:"items",ref:r,onClick:i},[Ge(c.$slots,"default")],512)])):Z("",!0)]),_:3}))}}),du=["onClick","title"],pu=ve({__name:"AttributeSearch",props:{query:{type:String,default:""},for:{type:String,default:""}},emits:["done"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I([]),o=re(()=>n.query.trim()!=""&&r.value&&r.value.length>0&&!(r.value.length==1&&n.query==r.value[0].name)),l=t;Ve(()=>n.query,a=>{var u;a&&(r.value=((u=s==null?void 0:s.schema)==null?void 0:u.search(a))||[],r.value.sort((c,f)=>c.name.toLowerCase().localeCompare(f.name.toLowerCase())))});function i(a){l("done",a),r.value=[],zt(()=>{const u=document.getElementById(n.for);u&&u.focus()})}return(a,u)=>(y(),be(Bs,{open:o.value,"onUpdate:open":u[0]||(u[0]=c=>r.value=[])},{default:de(()=>[(y(!0),k(ie,null,ke(r.value,c=>(y(),k("li",{key:c.oid,onClick:f=>i(c.name),title:c.oid,role:"menuitem"},oe(c.name),9,du))),128))]),_:1},8,["open"]))}}),hu=["onClick","title"],Go=ve({__name:"SearchResults",props:{query:{type:String,default:""},for:String,label:{type:String,default:"name",validator:e=>["name","dn"].includes(e)},shorten:String,silent:{type:Boolean,default:!1}},emits:["select-dn"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I([]),o=re(()=>n.query.trim()!=""&&r.value&&r.value.length>1),l=t;Ve(()=>n.query,async u=>{if(!u)return;const c=await fetch("api/search/"+u);if(c.ok){if(r.value=await c.json(),r.value.length==0&&!n.silent){s==null||s.showWarning("No search results");return}if(r.value.length==1){a(r.value[0].dn);return}r.value.sort((f,h)=>f[n.label].toLowerCase().localeCompare(h[n.label].toLowerCase()))}});function i(u){return n.shorten&&n.shorten!=u?u.replace(n.shorten,"…"):u}function a(u){l("select-dn",u),r.value=[],zt(()=>{if(n.for){const c=document.getElementById(n.for);c&&c.focus()}})}return(u,c)=>(y(),be(Bs,{open:o.value,"onUpdate:open":c[0]||(c[0]=f=>r.value=[])},{default:de(()=>[(y(!0),k(ie,null,ke(r.value,f=>(y(),k("li",{key:f.dn,onClick:h=>a(f.dn),title:e.label=="dn"?"":i(f.dn),role:"menuitem"},oe(f[e.label]),9,hu))),128))]),_:1},8,["open"]))}}),mu=ve({__name:"ToggleButton",props:["value"],emits:["update:value"],setup(e,{emit:t}){const n=e,s=t,r=re(()=>n.value=="TRUE");return(o,l)=>(y(),k("button",{type:"button",class:"p-0 relative focus:outline-none",tabindex:"0",onClick:l[0]||(l[0]=i=>s("update:value",r.value?"FALSE":"TRUE"))},[l[1]||(l[1]=E("div",{class:"w-8 h-4 transition rounded-full bg-gray-200"},null,-1)),E("div",{class:Pe(["absolute top-0 left-0 w-4 h-4 transition-all duration-200 ease-in-out transform scale-110 rounded-full shadow-sm",r.value?"translate-x-4 bg-primary":"translate-x-0 bg-secondary"])},null,2)]))}}),vu={key:0,class:"flex mx-4 space-x-4"},gu=["title"],yu={key:0,class:"fa text-emerald-700 ml-1 fa-check"},bu={class:"w-3/4"},wu=["onClick","title"],xu={key:5,class:"mr-5"},_u={key:6},Su=["src"],Cu=["onClick"],$u={key:7},ku=["onClick"],Tu={key:1,class:"pb-1 border-primary focus-within:border-b border-solid"},Ou=["onClick"],Eu=["value","id","type","placeholder","disabled","title"],Au=["onClick"],Pu={key:2,class:"text-xs ml-6 opacity-70"},Du=ve({__name:"AttributeRow",props:{attr:{type:zo,required:!0},baseDn:String,values:{type:Array,required:!0},meta:{type:Object,required:!0},must:{type:Boolean,required:!0},may:{type:Boolean,required:!0},changed:{type:Boolean,required:!0}},emits:["reload-form","show-attr","show-modal","show-oc","update","valid"],setup(e,{emit:t}){function n(H,W,ee){return H==""||ee.indexOf(H)==W}const s={weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},r={boolean:"1.3.6.1.4.1.1466.115.121.1.7",distinguishedName:"1.3.6.1.4.1.1466.115.121.1.12",generalizedTime:"1.3.6.1.4.1.1466.115.121.1.24",integer:"1.3.6.1.4.1.1466.115.121.1.27",oid:"1.3.6.1.4.1.1466.115.121.1.38",telephoneNumber:"1.3.6.1.4.1.1466.115.121.1.50"},o=["uidNumber","gidNumber"],l=e,i=Ye("app"),a=I(!0),u=I(),c=I(""),f=I(""),h=I(),g=re(()=>l.attr.syntax==r.boolean),O=re(()=>l.attr.syntax==r.distinguishedName),T=re(()=>l.values.length==1&&l.values[0]==u.value),_=re(()=>l.values.every(H=>!H.trim())),w=re(()=>!l.must&&!l.may),F=re(()=>l.attr.name==l.meta.dn.split("=")[0]),K=re(()=>l.attr.syntax==r.oid),M=re(()=>_.value&&l.must),L=re(()=>l.attr.name=="userPassword"),Q=re(()=>l.attr.syntax==r.generalizedTime),ge=re(()=>L.value?!1:l.meta.binary.includes(l.attr.name)),we=re(()=>F.value||l.attr.name=="objectClass"||w.value&&_.value||!l.meta.isNew&&(L.value||ge.value)),G=re(()=>{let H="";return O.value&&(H="  "),M.value&&(H="  "),_.value&&(H="  "),H}),ne=re(()=>l.attr.name=="jpegPhoto"||l.attr.name=="thumbnailPhoto"||!l.attr.no_user_mod&&!ge.value),ce=re(()=>L.value?"password":l.attr.syntax==r.telephoneNumber?"tel":l.attr.syntax==r.integer?"number":"text"),j=t;Ve(a,H=>j("valid",H)),Jt(async()=>{if(we.value||!o.includes(l.attr.name)||l.values.length!=1||l.values[0])return;const H=await fetch("api/range/"+l.attr.name);if(!H.ok)return;const W=await H.json();c.value=W.min==W.max?"> "+W.min:"∉ ("+W.min+" - "+W.max+")",u.value=""+W.next,j("update",l.attr.name,[u.value],0),se()}),mo(se);function se(){a.value=!M.value&&(!w.value||_.value)&&l.values.every(n)}function xe(H){const W=H.target,ee=W.value,_e=+W.id.split("-").slice(-1).pop();A(_e,ee)}function A(H,W){const ee=l.values.slice();ee[H]=W,j("update",l.attr.name,ee)}function m(){const H=l.values.slice();H.includes("")||H.push(""),j("update",l.attr.name,H,H.length-1)}function b(H){const W=l.values.slice(0,H).concat(l.values.slice(H+1));j("update","objectClass",W)}function q(H){return Za(H).toLocaleString(void 0,s)}function Te(H){var W,ee;return l.attr.name=="objectClass"&&((ee=(W=i==null?void 0:i.schema)==null?void 0:W.oc(H))==null?void 0:ee.structural)}function Le(H){var ee;const W=(ee=i==null?void 0:i.schema)==null?void 0:ee.oc(H);return l.attr.name=="objectClass"&&W&&!W.structural}function at(H){return!n(l.values[H],H,l.values)}function We(H){return H==0&&!l.attr.single_value&&!we.value&&!l.values.includes("")}function xn(H){const W=H.target;h.value=W.id;const ee=W.value;f.value=ee.length>=2&&!ee.includes(",")?ee:""}function _n(H){const W=+h.value.split("-").slice(-1).pop(),ee=l.values.slice();ee[W]=H,f.value="",j("update",l.attr.name,ee)}async function es(H){(await fetch("api/blob/"+l.attr.name+"/"+H+"/"+l.meta.dn,{method:"DELETE"})).ok&&j("reload-form",l.meta.dn,[l.attr.name])}return(H,W)=>e.attr&&ne.value?(y(),k("div",vu,[E("div",{class:Pe([{required:e.must,optional:e.may,rdn:F.value,illegal:w.value},"w-1/4"])},[E("span",{class:"cursor-pointer oc",title:e.attr.desc,onClick:W[0]||(W[0]=ee=>j("show-attr",e.attr.name))},oe(e.attr),9,gu),e.changed?(y(),k("i",yu)):Z("",!0)],2),E("div",bu,[(y(!0),k(ie,null,ke(e.values,(ee,_e)=>(y(),k("div",{key:_e},[Te(ee)?(y(),k("span",{key:0,onClick:W[1]||(W[1]=Ce=>j("show-modal","add-object-class")),tabindex:"-1",class:"add-btn control font-bold",title:"Add object class…"},"⊕")):Le(ee)?(y(),k("span",{key:1,onClick:Ce=>b(_e),class:"remove-btn control",title:"Remove "+ee},"⊖",8,wu)):L.value?(y(),k("span",{key:2,class:"fa fa-question-circle control",onClick:W[2]||(W[2]=Ce=>j("show-modal","change-password")),tabindex:"-1",title:"change password"})):e.attr.name=="jpegPhoto"||e.attr.name=="thumbnailPhoto"?(y(),k("span",{key:3,onClick:W[3]||(W[3]=Ce=>j("show-modal","add-jpegPhoto")),tabindex:"-1",class:"add-btn control align-top",title:"Add photo…"},"⊕")):We(_e)&&!w.value?(y(),k("span",{key:4,onClick:m,class:"add-btn control",title:"Add row"},"⊕")):(y(),k("span",xu)),e.attr.name=="jpegPhoto"||e.attr.name=="thumbnailPhoto"?(y(),k("span",_u,[ee?(y(),k("img",{key:0,src:"data:image/"+(e.attr.name=="jpegPhoto"?"jpeg":"*")+";base64,"+ee,class:"max-w-[120px] max-h-[120px] border p-[1px] inline mx-1"},null,8,Su)):Z("",!0),ee?(y(),k("span",{key:1,class:"control remove-btn align-top ml-1",onClick:Ce=>es(_e),title:"Remove photo"},"⊖",8,Cu)):Z("",!0)])):g.value?(y(),k("span",$u,[_e==0&&!e.values[0]?(y(),k("span",{key:0,class:"control text-lg",onClick:Ce=>A(_e,"FALSE")},"⊕",8,ku)):(y(),k("span",Tu,[J(mu,{id:e.attr+"-"+_e,value:e.values[_e],class:"mt-2","onUpdate:value":Ce=>A(_e,Ce)},null,8,["id","value","onUpdate:value"]),E("i",{class:"fa fa-trash ml-2 relative -top-0.5 control",onClick:Ce=>A(_e,"")},null,8,Ou)]))])):(y(),k("input",{key:8,value:e.values[_e],id:e.attr+"-"+_e,type:ce.value,autocomplete:"off",class:Pe(["w-[90%] glyph outline-none bg-back border-x-0 border-t-0 border-b border-solid border-front/20 focus:border-primary px-1",{structural:Te(ee),auto:T.value,illegal:w.value&&!_.value||at(_e)}]),placeholder:G.value,disabled:we.value,title:Q.value?q(ee):"",onInput:xe,onFocusin:W[4]||(W[4]=Ce=>f.value=""),onKeyup:[xn,W[5]||(W[5]=mt(Ce=>f.value="",["esc"]))]},null,42,Eu)),e.attr.name=="objectClass"?(y(),k("i",{key:9,class:"cursor-pointer fa fa-info-circle",onClick:Ce=>j("show-oc",ee)},null,8,Au)):Z("",!0)]))),128)),O.value&&h.value?(y(),be(Go,{key:0,silent:"",onSelectDn:_n,for:h.value,query:f.value,label:"dn",shorten:e.baseDn},null,8,["for","query","shorten"])):Z("",!0),K.value&&h.value?(y(),be(pu,{key:1,onDone:_n,for:h.value,query:f.value},null,8,["for","query"])):Z("",!0),c.value?(y(),k("div",Pu,oe(c.value),1)):Z("",!0)])])):Z("",!0)}}),Xo=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},ju=Xo(Du,[["__scopeId","data-v-458112a0"]]),Nu={key:0,class:"text-danger text-xs mb-1"},Mu=ve({__name:"CopyEntryDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(""),r=I(""),o=I(null),l=t;function i(){r.value="",s.value=n.entry.meta.dn}function a(){if(!s.value||s.value==n.entry.meta.dn){r.value="This DN already exists";return}const u=s.value.split(","),c=u[0].split("="),f=c[0];if(c.length!=2){r.value="Invalid RDN: "+u[0];return}l("update:modal");const h=JSON.parse(JSON.stringify(n.entry));h.attrs[f]=[c[1]],h.meta.dn=s.value,h.meta.isNew=!0,l("ok",h)}return(u,c)=>(y(),be(it,{title:"Copy entry",open:e.modal=="copy-entry","return-to":e.returnTo,onShow:i,onShown:c[1]||(c[1]=f=>{var h;return(h=o.value)==null?void 0:h.focus()}),onOk:a,onCancel:c[2]||(c[2]=f=>l("update:modal"))},{default:de(()=>[E("div",null,[r.value?(y(),k("div",Nu,oe(r.value),1)):Z("",!0),Ue(E("input",{ref_key:"newdn",ref:o,"onUpdate:modelValue":c[0]||(c[0]=f=>s.value=f),placeholder:"New DN",onKeyup:mt(a,["enter"])},null,544),[[Kt,s.value]])])]),_:1},8,["open","return-to"]))}}),Ru=["title"],vn=ve({__name:"NodeLabel",props:{dn:String,oc:String},emits:["select-dn"],setup(e,{emit:t}){const n=e,s={account:"user",groupOfNames:"users",groupOfURLs:"users",groupOfUniqueNames:"users",inetOrgPerson:"address-book",krbContainer:"lock",krbPrincipal:"user-o",krbRealmContainer:"globe",organization:"globe",organizationalRole:"android",organizationalUnit:"sitemap",person:"user",posixGroup:"users"},r=re(()=>n.oc?" fa-"+(s[n.oc]||"question"):"fa-question"),o=re(()=>(n.dn||"").split(",")[0].replace(/^cn=/,"").replace(/^krbPrincipalName=/,"")),l=t;return(i,a)=>(y(),k("span",{onClick:a[0]||(a[0]=u=>l("select-dn",e.dn)),title:e.dn,class:"node-label cursor-pointer select-none"},[e.oc?(y(),k("i",{key:0,class:Pe(["fa w-6 text-center",r.value])},null,2)):Z("",!0),Ge(i.$slots,"default",{},()=>[Ie(oe(o.value),1)])],8,Ru))}}),Iu={key:0},Lu=ve({__name:"DeleteEntryDialog",props:{dn:{type:String,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I([]),r=t;async function o(){const a=await fetch("api/subtree/"+n.dn);s.value=await a.json()}function l(){var a;(a=document.getElementById("ui-modal-ok"))==null||a.focus()}function i(){r("update:modal"),r("ok",n.dn)}return(a,u)=>(y(),be(it,{title:"Are you sure?",open:e.modal=="delete-entry","return-to":e.returnTo,"cancel-classes":"bg-primary/80","ok-classes":"bg-danger/80",onShow:o,onShown:l,onOk:i,onCancel:u[0]||(u[0]=c=>r("update:modal"))},{"modal-ok":de(()=>u[2]||(u[2]=[E("i",{class:"fa fa-trash-o fa-lg"},null,-1),Ie(" Delete ")])),default:de(()=>[u[3]||(u[3]=E("p",{class:"strong"},"This action is irreversible.",-1)),s.value.length?(y(),k("div",Iu,[u[1]||(u[1]=E("p",{class:"text-danger mb-2"},"The following child nodes will be also deleted:",-1)),(y(!0),k(ie,null,ke(s.value,c=>(y(),k("div",{key:c.dn},[(y(!0),k(ie,null,ke(c.level,f=>(y(),k("span",{class:"ml-6",key:f}))),128)),J(vn,{oc:c.structuralObjectClass},{default:de(()=>[Ie(oe(c.dn.split(",")[0]),1)]),_:2},1032,["oc"])]))),128))])):Z("",!0)]),_:1},8,["open","return-to"]))}}),Fu=ve({__name:"DiscardEntryDialog",props:{dn:String,modal:String,returnTo:String},emits:["ok","shown","update:modal"],setup(e,{emit:t}){const n=I(),s=t;function r(){var l;(l=document.getElementById("ui-modal-ok"))==null||l.focus(),s("shown")}function o(){s("update:modal"),s("ok",n.value)}return(l,i)=>(y(),be(it,{title:"Are you sure?",open:e.modal=="discard-entry","return-to":e.returnTo,"cancel-classes":"bg-primary/80","ok-classes":"bg-danger/80",onShow:i[0]||(i[0]=a=>{n.value=e.dn}),onShown:r,onOk:o,onCancel:i[1]||(i[1]=a=>s("update:modal"))},{"modal-ok":de(()=>i[2]||(i[2]=[E("i",{class:"fa fa-trash-o fa-lg"},null,-1),Ie(" Discard ")])),default:de(()=>[i[3]||(i[3]=E("p",{class:"strong"},"All changes will be irreversibly lost.",-1))]),_:1},8,["open","return-to"]))}}),Uu={class:"relative inline-block text-left mx-1"},Vu=["aria-expanded"],Hu=["aria-hidden"],Zo=ve({__name:"DropdownMenu",props:{title:String},setup(e){const t=I(!1);return(n,s)=>(y(),k("div",Uu,[E("span",{ref:"opener",class:"inline-flex w-full py-2 select-none cursor-pointer","aria-expanded":t.value,"aria-haspopup":"true",onClick:s[0]||(s[0]=Wt(r=>t.value=!t.value,["stop"]))},[Ge(n.$slots,"button-content",{},()=>[Ie(oe(e.title),1)]),(y(),k("svg",{class:"-mr-1 h-5 w-5 pt-1",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":!t.value},s[2]||(s[2]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)]),8,Hu))],8,Vu),J(Bs,{open:t.value,"onUpdate:open":s[1]||(s[1]=r=>t.value=r)},{default:de(()=>[Ge(n.$slots,"default")]),_:3},8,["open"])]))}}),Bu={key:0},qu={key:0},Ku=ve({__name:"NewEntryDialog",props:{dn:{type:String,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I(""),o=I(""),l=I(""),i=I(null),a=re(()=>{var g;return(g=s==null?void 0:s.schema)==null?void 0:g.oc(r.value)}),u=t;function c(){r.value=o.value=l.value=""}function f(){var T;if(!r.value||!o.value||!l.value)return;u("update:modal");const g=[r.value];for(let _=(T=a.value)==null?void 0:T.$super;_;_=_.$super)!_.structural&&_.kind!="abstract"&&g.push(_.name);const O={meta:{dn:o.value+"="+l.value+","+n.dn,aux:[],required:[],binary:[],autoFilled:[],isNew:!0},attrs:{objectClass:g},changed:[]};O.attrs[o.value]=[l.value],u("ok",O)}function h(){var O;if(!r.value)return[];const g=((O=a.value)==null?void 0:O.$collect("must"))||[];return g.length==1&&(o.value=g[0]),g}return(g,O)=>(y(),be(it,{title:"New entry",open:e.modal=="new-entry","return-to":e.returnTo,onOk:f,onCancel:O[3]||(O[3]=T=>u("update:modal")),onShow:c,onShown:O[4]||(O[4]=T=>{var _;return(_=i.value)==null?void 0:_.focus()})},{default:de(()=>{var T,_;return[E("label",null,[O[5]||(O[5]=Ie("Object class: ")),Ue(E("select",{ref_key:"select",ref:i,"onUpdate:modelValue":O[0]||(O[0]=w=>r.value=w)},[(y(!0),k(ie,null,ke((_=(T=yn(s))==null?void 0:T.schema)==null?void 0:_.objectClasses.values(),w=>(y(),k(ie,{key:w.name},[w.structural?(y(),k("option",Bu,oe(w),1)):Z("",!0)],64))),128))],512),[[hn,r.value]])]),r.value?(y(),k("label",qu,[O[6]||(O[6]=Ie("RDN attribute: ")),Ue(E("select",{"onUpdate:modelValue":O[1]||(O[1]=w=>o.value=w)},[(y(!0),k(ie,null,ke(h(),w=>(y(),k("option",{key:w},oe(w),1))),128))],512),[[hn,o.value]])])):Z("",!0),r.value?Ue((y(),k("input",{key:1,"onUpdate:modelValue":O[2]||(O[2]=w=>l.value=w),placeholder:"RDN value",onKeyup:mt(f,["enter"])},null,544)),[[Kt,l.value]]):Z("",!0)]}),_:1},8,["open","return-to"]))}}),Wu={key:0},zu=ve({__name:"PasswordChangeDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String,user:String},emits:["ok","update-form","update:modal"],setup(e,{emit:t}){const n=e,s=I(""),r=I(""),o=I(""),l=I(),i=I(null),a=I(null),u=re(()=>n.user==n.entry.meta.dn),c=re(()=>r.value&&r.value==o.value),f=re(()=>!!n.entry.attrs.userPassword&&n.entry.attrs.userPassword[0]!=""),h=t;function g(){s.value=r.value=o.value="",l.value=void 0}function O(){var w,F;f.value?(w=i.value)==null||w.focus():(F=a.value)==null||F.focus()}async function T(){if(!s.value||s.value.length==0){l.value=void 0;return}const w=await fetch("api/entry/password/"+n.entry.meta.dn,{method:"POST",body:JSON.stringify({check:s.value}),headers:{"Content-Type":"application/json"}});l.value=await w.json()}async function _(){u.value&&!r.value||r.value!=o.value||u.value&&f.value&&!l.value||(h("update:modal"),h("ok",s.value,r.value))}return(w,F)=>(y(),be(it,{title:"Change / verify password",open:e.modal=="change-password","return-to":e.returnTo,onShow:g,onShown:O,onOk:_,onCancel:F[3]||(F[3]=K=>h("update:modal")),onHidden:F[4]||(F[4]=K=>h("update-form"))},{default:de(()=>[f.value?(y(),k("div",Wu,[E("small",null,oe(u.value?"Required":"Optional"),1),l.value!==void 0?(y(),k("i",{key:0,class:Pe(["fa ml-2",l.value?"text-emerald-700 fa-check-circle":"text-danger fa-times-circle"])},null,2)):Z("",!0),Ue(E("input",{ref_key:"old",ref:i,"onUpdate:modelValue":F[0]||(F[0]=K=>s.value=K),placeholder:"Old password",type:"password",onChange:T},null,544),[[Kt,s.value]])])):Z("",!0),Ue(E("input",{ref_key:"changed",ref:a,"onUpdate:modelValue":F[1]||(F[1]=K=>r.value=K),placeholder:"New password",type:"password"},null,512),[[Kt,r.value]]),Ue(E("input",{"onUpdate:modelValue":F[2]||(F[2]=K=>o.value=K),class:Pe({"text-danger":o.value&&!c.value}),placeholder:"Repeat new password",type:"password",onKeyup:mt(_,["enter"])},null,34),[[Kt,o.value]])]),_:1},8,["open","return-to"]))}}),Ju=ve({__name:"RenameEntryDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(null),o=re(()=>Object.keys(n.entry.attrs).filter(u)),l=t;function i(){s.value=o.value.length==1?o.value[0]:void 0}function a(){const c=n.entry.attrs[s.value||""];c&&c[0]&&(l("update:modal"),l("ok",s.value+"="+c[0]))}function u(c){const f=n.entry.meta.dn.split("=")[0];return c!=f&&!n.entry.attrs[c].every(h=>!h)}return(c,f)=>(y(),be(it,{title:"Rename entry",open:e.modal=="rename-entry","return-to":e.returnTo,onOk:a,onCancel:f[1]||(f[1]=h=>l("update:modal")),onShow:i,onShown:f[2]||(f[2]=h=>{var g;return(g=r.value)==null?void 0:g.focus()})},{default:de(()=>[E("label",null,[f[3]||(f[3]=Ie("New RDN attribute: ")),Ue(E("select",{ref_key:"select",ref:r,"onUpdate:modelValue":f[0]||(f[0]=h=>s.value=h),onKeyup:mt(a,["enter"])},[(y(!0),k(ie,null,ke(o.value,h=>(y(),k("option",{key:h},oe(h),1))),128))],544),[[hn,s.value]])])]),_:1},8,["open","return-to"]))}}),Yu={key:0,class:"rounded border border-front/20 mb-3 mx-4 flex-auto"},Gu={class:"flex justify-between mb-4 border-b border-front/20 bg-primary/70"},Xu={key:0,class:"py-2 ml-3"},Zu={key:1,class:"ml-2"},Qu={class:"flex ml-4 mt-2 space-x-4"},ec={class:"w-3/4 pl-4"},tc={class:"w-[90%] space-x-3"},nc=["disabled"],sc={key:0,type:"reset",accesskey:"r",tabindex:"0",class:"btn bg-secondary"},rc=ve({__name:"EntryEditor",props:{activeDn:String,baseDn:String,user:String},emits:["update:activeDn","show-attr","show-oc"],setup(e,{emit:t}){function n(A,m,b){return b.indexOf(A)==m}const s=["BUTTON","INPUT","SELECT","TEXTAREA"],r=e,o=Ye("app"),l=I(),i=I(),a=I([]),u=I(),c=re(()=>{var m;const A=Object.keys(((m=l.value)==null?void 0:m.attrs)||{});return A.sort((b,q)=>b.toLowerCase().localeCompare(q.toLowerCase())),A}),f=re(()=>{var m;const A=(m=l.value)==null?void 0:m.attrs.objectClass.map(b=>{var q;return(q=o==null?void 0:o.schema)==null?void 0:q.oc(b)}).filter(b=>b&&b.structural)[0];return A?A.name:""}),h=t;Ve(()=>r.activeDn,A=>{(!l.value||A!=l.value.meta.dn)&&(i.value=void 0),A&&l.value&&l.value.meta.isNew?u.value="discard-entry":A?Q(A,void 0,void 0):l.value&&!l.value.meta.isNew&&(l.value=void 0)});function g(A){zt(()=>{const m=A?document.getElementById(A):document.querySelector('form#entry input:not([disabled]), form#entry button[type="button"]');m&&window.setTimeout(()=>m.focus(),100)})}function O(A){const m=A.target;m.id&&s.includes(m.tagName)&&(i.value=m.id)}function T(A){l.value=A,h("update:activeDn"),g(L())}function _(A){l.value=void 0,h("update:activeDn",A)}function w(A){l.value.attrs[A]=[""],g(A+"-0")}function F(A){l.value.attrs.objectClass.push(A);const m=l.value.meta.aux.filter(b=>b<b);l.value.meta.aux.splice(m.length,1),g(L()||i.value)}function K(A){const m=l.value.attrs.objectClass.filter(b=>!A.includes(b))[0];if(m){const b=l.value.meta.aux.filter(q=>q<m);l.value.meta.aux.splice(b.length,0,m)}}function M(A,m,b){l.value.attrs[A]=m,A=="objectClass"&&(K(m),g(i.value)),b!==void 0&&g(A+"-"+b)}function L(){const A=se("must").filter(m=>!l.value.attrs[m]);return A.forEach(m=>l.value.attrs[m]=[""]),A.length?A[0]+"-0":void 0}async function Q(A,m,b){if(a.value=[],!A||A.startsWith("-")){l.value=void 0;return}const q=await fetch("api/entry/"+A);if(!q.ok){o==null||o.showError(await q.text());return}l.value=await q.json(),l.value.changed=m||[],l.value.meta.isNew=!1,document.title=A.split(",")[0],g(b)}function ge(A){var m;return((m=l.value)==null?void 0:m.changed)&&l.value.changed.includes(A)||!1}async function we(){if(a.value.length>0){g(i.value);return}l.value.changed=[];const A=await fetch("api/entry/"+l.value.meta.dn,{method:l.value.meta.isNew?"PUT":"POST",body:JSON.stringify(l.value.attrs),headers:{"Content-Type":"application/json"}});if(!A.ok){o==null||o.showError(await A.text());return}const m=await A.json();m.changed&&m.changed.length&&(o==null||o.showInfo("👍 Saved changes")),l.value.meta.isNew?(l.value.meta.isNew=!1,h("update:activeDn",l.value.meta.dn)):Q(l.value.meta.dn,m.changed,i.value)}async function G(A){const m=await fetch("api/rename/"+l.value.meta.dn,{method:"POST",body:JSON.stringify(A),headers:{"Content-Type":"application/json"}});if(!m.ok){o==null||o.showError(await m.text());return}const b=l.value.meta.dn.split(",");b.splice(0,1,A),h("update:activeDn",b.join(","))}async function ne(A){const m=await fetch("api/entry/"+A,{method:"DELETE"});if(m.ok)m.status==204&&(o==null||o.showInfo("👍 Deleted: "+A),h("update:activeDn","-"+A));else{o==null||o.showError(await m.text());return}}async function ce(A,m){var Te;const b=await fetch("api/entry/password/"+l.value.meta.dn,{method:"POST",body:JSON.stringify({old:A,new1:m}),headers:{"Content-Type":"application/json"}});if(!b.ok){o==null||o.showError(await b.text());return}const q=await b.json();q!==void 0&&(l.value.attrs.userPassword=[q],(Te=l.value.changed)==null||Te.push("userPassword"))}async function j(){const A=await fetch("api/ldif/"+l.value.meta.dn);if(!A.ok){o==null||o.showError(await A.text());return}const m=document.createElement("a"),b=URL.createObjectURL(await A.blob());m.href=b,m.download=l.value.meta.dn.split(",")[0].split("=")[1]+".ldif",document.body.appendChild(m),m.click()}function se(A){const m=l.value.attrs.objectClass.filter(b=>b&&b!="top").map(b=>{var q;return(q=o==null?void 0:o.schema)==null?void 0:q.oc(b)}).flatMap(b=>b?b.$collect(A):[]).filter(n);return m.sort(),m}function xe(A,m){if(m){const b=a.value.indexOf(A);b>=0&&a.value.splice(b,1)}else a.value.includes(A)||a.value.push(A)}return(A,m)=>l.value?(y(),k("div",Yu,[J(Ku,{modal:u.value,"onUpdate:modal":m[0]||(m[0]=b=>u.value=b),dn:l.value.meta.dn,"return-to":i.value,onOk:T},null,8,["modal","dn","return-to"]),J(Mu,{modal:u.value,"onUpdate:modal":m[1]||(m[1]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:T},null,8,["modal","entry","return-to"]),J(Ju,{modal:u.value,"onUpdate:modal":m[2]||(m[2]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:G},null,8,["modal","entry","return-to"]),J(Lu,{modal:u.value,"onUpdate:modal":m[3]||(m[3]=b=>u.value=b),dn:l.value.meta.dn,"return-to":i.value,onOk:ne},null,8,["modal","dn","return-to"]),J(Fu,{modal:u.value,"onUpdate:modal":m[4]||(m[4]=b=>u.value=b),dn:r.activeDn,"return-to":i.value,onOk:_,onShown:m[5]||(m[5]=b=>h("update:activeDn"))},null,8,["modal","dn","return-to"]),J(zu,{modal:u.value,"onUpdate:modal":m[6]||(m[6]=b=>u.value=b),entry:l.value,"return-to":i.value,user:e.user,onOk:ce},null,8,["modal","entry","return-to","user"]),J(Or,{modal:u.value,"onUpdate:modal":m[7]||(m[7]=b=>u.value=b),attr:"jpegPhoto",dn:l.value.meta.dn,"return-to":i.value,onOk:Q},null,8,["modal","dn","return-to"]),J(Or,{modal:u.value,"onUpdate:modal":m[8]||(m[8]=b=>u.value=b),attr:"thumbnailPhoto",dn:l.value.meta.dn,"return-to":i.value,onOk:Q},null,8,["modal","dn","return-to"]),J(Ya,{modal:u.value,"onUpdate:modal":m[9]||(m[9]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:F},null,8,["modal","entry","return-to"]),J(Ja,{modal:u.value,"onUpdate:modal":m[10]||(m[10]=b=>u.value=b),entry:l.value,attributes:se("may"),"return-to":i.value,onOk:w,onShowModal:m[11]||(m[11]=b=>{u.value=b})},null,8,["modal","entry","attributes","return-to"]),E("nav",Gu,[l.value.meta.isNew?(y(),k("div",Xu,[J(vn,{dn:l.value.meta.dn,oc:f.value},null,8,["dn","oc"])])):(y(),k("div",Zu,[J(Zo,null,{"button-content":de(()=>[J(vn,{dn:l.value.meta.dn,oc:f.value},null,8,["dn","oc"])]),default:de(()=>[E("li",{onClick:m[12]||(m[12]=b=>{u.value="new-entry"}),role:"menuitem"},"Add child…"),E("li",{onClick:m[13]||(m[13]=b=>{u.value="copy-entry"}),role:"menuitem"},"Copy…"),E("li",{onClick:m[14]||(m[14]=b=>{u.value="rename-entry"}),role:"menuitem"},"Rename…"),E("li",{onClick:j,role:"menuitem"},"Export"),E("li",{onClick:m[15]||(m[15]=b=>{u.value="delete-entry"}),class:"text-danger",role:"menuitem"},"Delete…")]),_:1})])),l.value.meta.isNew?(y(),k("div",{key:2,class:"control text-2xl mr-2",onClick:m[16]||(m[16]=b=>{u.value="discard-entry"}),title:"close"},"⊗")):(y(),k("div",{key:3,class:"control text-xl mr-2",title:"close",onClick:m[17]||(m[17]=b=>h("update:activeDn"))},"⊗"))]),E("form",{id:"entry",class:"space-y-4 my-4",onSubmit:Wt(we,["prevent"]),onReset:m[22]||(m[22]=b=>Q(l.value.meta.dn,void 0,void 0)),onFocusin:O},[(y(!0),k(ie,null,ke(c.value,b=>{var q,Te;return y(),be(ju,{key:b,"base-dn":r.baseDn,attr:(Te=(q=yn(o))==null?void 0:q.schema)==null?void 0:Te.attr(b),meta:l.value.meta,values:l.value.attrs[b],changed:ge(b),may:se("may").includes(b),must:se("must").includes(b),onUpdate:M,onReloadForm:Q,onValid:Le=>xe(b,Le),onShowModal:m[18]||(m[18]=Le=>{u.value=Le}),onShowAttr:m[19]||(m[19]=Le=>h("show-attr",Le)),onShowOc:m[20]||(m[20]=Le=>h("show-oc",Le))},null,8,["base-dn","attr","meta","values","changed","may","must","onValid"])}),128)),E("div",Qu,[m[23]||(m[23]=E("div",{class:"w-1/4"},null,-1)),E("div",ec,[E("div",tc,[E("button",{type:"submit",class:"btn bg-primary/70",tabindex:"0",accesskey:"s",disabled:a.value.length!=0},"Submit",8,nc),l.value.meta.isNew?Z("",!0):(y(),k("button",sc,"Reset")),l.value.meta.isNew?Z("",!0):(y(),k("button",{key:1,class:"btn float-right bg-secondary",accesskey:"a",tabindex:"0",onClick:m[21]||(m[21]=Wt(b=>{u.value="add-attribute"},["prevent"]))}," Add attribute… "))])])])],32)])):Z("",!0)}}),oc=ve({__name:"LdifImportDialog",props:{modal:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=I(""),s=t;function r(){n.value=""}function o(i){const a=i.target,u=a.files,c=u[0],f=new FileReader;f.onload=function(){n.value=f.result,a.value=""},f.readAsText(c)}async function l(){if(!n.value)return;s("update:modal"),(await fetch("api/ldif",{method:"POST",body:n.value})).ok&&s("ok")}return(i,a)=>(y(),be(it,{title:"Import",open:e.modal=="ldif-import","ok-title":"Import",onShow:r,onOk:l,onCancel:a[1]||(a[1]=u=>s("update:modal"))},{default:de(()=>[Ue(E("textarea",{"onUpdate:modelValue":a[0]||(a[0]=u=>n.value=u),id:"ldif-data",placeholder:"Paste or upload LDIF"},null,512),[[Kt,n.value]]),E("input",{type:"file",onChange:o,accept:".ldif"},null,32)]),_:1},8,["open"]))}}),lc={class:"px-4 flex flex-col md:flex-row flex-wrap justify-between mt-0 py-1 bg-primary/40"},ic={class:"flex items-center"},ac={class:"flex items-center space-x-4 text-lg"},uc=["onClick"],cc=ve({__name:"NavBar",props:{baseDn:String,treeOpen:Boolean,user:String},emits:["select-dn","show-modal","show-oc","update:treeOpen"],setup(e,{emit:t}){const n=Ye("app"),s=I(null),r=I(""),o=I(!1),l=t;function i(){r.value="",zt(()=>{var a;r.value=((a=s==null?void 0:s.value)==null?void 0:a.value)||""})}return(a,u)=>(y(),k("nav",lc,[E("div",ic,[E("i",{class:"cursor-pointer glyph fa-bars fa-lg pt-1 mr-4 md:hidden",onClick:u[0]||(u[0]=c=>o.value=!o.value)}),E("i",{class:Pe(["cursor-pointer fa fa-lg mr-2",e.treeOpen?"fa-list-alt":"fa-list-ul"]),onClick:u[1]||(u[1]=c=>l("update:treeOpen",!e.treeOpen))},null,2),J(vn,{oc:"person",dn:e.user,onSelectDn:u[2]||(u[2]=c=>l("select-dn",c)),class:"text-lg"},null,8,["dn"])]),Ue(E("div",ac,[E("span",{class:"cursor-pointer",onClick:u[3]||(u[3]=c=>l("show-modal","ldif-import"))},"Import…"),J(Zo,{title:"Schema"},{default:de(()=>{var c,f;return[(y(!0),k(ie,null,ke((f=(c=yn(n))==null?void 0:c.schema)==null?void 0:f.objectClasses.keys(),h=>(y(),k("li",{role:"menuitem",key:h,onClick:g=>l("show-oc",h)},oe(h),9,uc))),128))]}),_:1}),E("form",{onSubmit:Wt(i,["prevent"])},[E("input",{class:"glyph px-2 py-1 rounded focus:border focus:border-front/80 outline-none text-front dark:bg-gray-800/80",autofocus:"",placeholder:" ",name:"q",onFocusin:u[4]||(u[4]=c=>{var f;(f=s.value)==null||f.select()}),accesskey:"k",onKeyup:u[5]||(u[5]=mt(c=>{r.value=""},["esc"])),id:"nav-search",ref_key:"input",ref:s},null,544),J(Go,{for:"nav-search",onSelectDn:u[6]||(u[6]=c=>{r.value="",l("select-dn",c)}),shorten:e.baseDn,query:r.value},null,8,["shorten","query"])],32)],512),[[Vs,!o.value]])]))}}),fc={class:"header"},dc={key:0,class:"mt-2"},pc={class:"list-disc"},hc=["onClick"],mc={key:1,class:"mt-2"},vc={class:"list-disc"},gc=["onClick"],yc={key:2,class:"mt-2"},bc={class:"list-disc"},wc=["onClick"],xc=ve({__name:"ObjectClassCard",props:{modelValue:String},emits:["show-attr","show-oc","update:modelValue"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=re(()=>{var l;return(l=s==null?void 0:s.schema)==null?void 0:l.oc(n.modelValue)}),o=t;return(l,i)=>e.modelValue&&r.value?(y(),be(Ko,{key:0,title:r.value.name||"",class:"ml-4",onClose:i[0]||(i[0]=a=>o("update:modelValue"))},{default:de(()=>{var a;return[E("div",fc,oe(r.value.desc),1),(a=r.value.sup)!=null&&a.length?(y(),k("div",dc,[i[1]||(i[1]=E("i",null,"Superclasses:",-1)),E("ul",pc,[(y(!0),k(ie,null,ke(r.value.sup,u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("update:modelValue",u)},oe(u),9,hc)]))),128))])])):Z("",!0),r.value.$collect("must").length?(y(),k("div",mc,[i[2]||(i[2]=E("i",null,"Required attributes:",-1)),E("ul",vc,[(y(!0),k(ie,null,ke(r.value.$collect("must"),u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("show-attr",u)},oe(u),9,gc)]))),128))])])):Z("",!0),r.value.$collect("may").length?(y(),k("div",yc,[i[3]||(i[3]=E("i",null,"Optional attributes:",-1)),E("ul",bc,[(y(!0),k(ie,null,ke(r.value.$collect("may"),u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("show-attr",u)},oe(u),9,wc)]))),128))])])):Z("",!0)]}),_:1},8,["title"])):Z("",!0)}}),_c={class:"rounded-md bg-front/[.07] p-4 shadow-md shadow-front/20"},Sc={key:0,class:"list-unstyled"},Cc=["id"],$c=["onClick"],kc={key:1,class:"mr-4"},Tc={key:0},Oc=ve({__name:"TreeView",props:{activeDn:String},emits:["base-dn","update:activeDn"],setup(e,{emit:t}){class n{constructor(c){X(this,"dn");X(this,"level");X(this,"hasSubordinates");X(this,"structuralObjectClass");X(this,"open",!1);X(this,"subordinates",[]);this.dn=c.dn,this.level=this.dn.split(",").length,this.hasSubordinates=c.hasSubordinates,this.structuralObjectClass=c.structuralObjectClass,this.hasSubordinates&&(this.subordinates=[],this.open=!1)}find(c){if(this.dn==c)return this;const f=","+this.dn;if(!(!c.endsWith(f)||!this.hasSubordinates))return this.subordinates.map(h=>h.find(c)).filter(h=>h)[0]}get loaded(){return!this.hasSubordinates||this.subordinates.length>0}parentDns(c){const f=[];for(let h=this.dn;;){f.push(h);const g=h.indexOf(",");if(g==-1||h==c)break;h=h.substring(g+1)}return f}visible(){return!this.hasSubordinates||!this.open?[this]:[this].concat(this.subordinates.flatMap(c=>c.visible()))}}const s=e,r=I(),o=t;Jt(async()=>{var u;await i("base"),o("base-dn",(u=r.value)==null?void 0:u.dn)}),Ve(()=>s.activeDn,async u=>{var h,g,O;if(!u)return;if(u=="-"||u=="base"){await i("base");return}const c=new mn(u||r.value.dn),f=[];for(let T=c;T&&(f.push(T),T.toString()!=((h=r.value)==null?void 0:h.dn));T=T.parent);f.reverse();for(let T=0;T<f.length;++T){const _=f[T].toString(),w=(g=r.value)==null?void 0:g.find(_);if(!w)break;w.loaded||await i(_),w.open=!0}(O=r.value)!=null&&O.find(c.toString())||(await i(c.parent.toString()),r.value.find(c.parent.toString()).open=!0)});async function l(u){var f;o("update:activeDn",u);const c=(f=r.value)==null?void 0:f.find(u);c&&c.hasSubordinates&&!c.open&&await a(c)}async function i(u){var g;const c=await fetch("api/tree/"+u);if(!c.ok)return;const f=await c.json();if(f.sort((O,T)=>O.dn.toLowerCase().localeCompare(T.dn.toLowerCase())),u=="base"){r.value=new n(f[0]),await a(r.value);return}const h=(g=r.value)==null?void 0:g.find(u);h&&(h.subordinates=f.map(O=>new n(O)),h.hasSubordinates=h.subordinates.length>0)}async function a(u){!u.open&&!u.loaded&&await i(u.dn),u.open=!u.open}return(u,c)=>(y(),k("div",_c,[r.value?(y(),k("ul",Sc,[(y(!0),k(ie,null,ke(r.value.visible(),f=>(y(),k("li",{key:f.dn,id:f.dn,class:Pe(f.structuralObjectClass)},[(y(!0),k(ie,null,ke(f.level-r.value.level,h=>(y(),k("span",{class:"ml-6",key:h}))),128)),f.hasSubordinates?(y(),k("span",{key:0,class:"control",onClick:h=>a(f)},[E("i",{class:Pe("control p-0 fa fa-chevron-circle-"+(f.open?"down":"right"))},null,2)],8,$c)):(y(),k("span",kc)),J(vn,{dn:f.dn,oc:f.structuralObjectClass,class:Pe(["tree-link whitespace-nowrap text-front/80",{active:e.activeDn==f.dn}]),onSelectDn:l},{default:de(()=>[f.level?Z("",!0):(y(),k("span",Tc,oe(f.dn),1))]),_:2},1032,["dn","oc","class"])],10,Cc))),128))])):Z("",!0)]))}}),Ec=Xo(Oc,[["__scopeId","data-v-fb9ff985"]]),Ac={key:0,id:"app"},Pc={class:"flex container"},Dc={class:"space-y-4"},jc={class:"flex-auto mt-4"},Nc=ve({__name:"App",setup(e){const t=I(),n=I(),s=I(!0),r=I(),o=I(),l=I(),i=I(),a=I(),u=I();_o("app",{get schema(){return i.value},showInfo:f,showError:g,showException:O,showWarning:h}),Jt(async()=>{const T=await fetch("api/whoami");if(T.ok){t.value=await T.json();const _=await fetch("api/schema");_.ok&&(i.value=new nu(await _.json()))}}),Ve(u,T=>{T&&(a.value=void 0)}),Ve(a,T=>{T&&(u.value=void 0)});function f(T){l.value={counter:5,cssClass:"bg-emerald-300",msg:""+T},setTimeout(()=>{l.value=void 0},5e3)}function h(T){l.value={counter:10,cssClass:"bg-amber-200",msg:"⚠️ "+T},setTimeout(()=>{l.value=void 0},1e4)}function g(T){l.value={counter:60,cssClass:"bg-red-300",msg:"⛔ "+T},setTimeout(()=>{l.value=void 0},6e4)}function O(T){const _=document.createElement("span");_.innerHTML=T.replace(`
17
+ **/let Cs;const ur=typeof window<"u"&&window.trustedTypes;if(ur)try{Cs=ur.createPolicy("vue",{createHTML:e=>e})}catch{}const Ho=Cs?e=>Cs.createHTML(e):e=>e,Gi="http://www.w3.org/2000/svg",Xi="http://www.w3.org/1998/Math/MathML",ft=typeof document<"u"?document:null,cr=ft&&ft.createElement("template"),Zi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?ft.createElementNS(Gi,e):t==="mathml"?ft.createElementNS(Xi,e):n?ft.createElement(e,{is:n}):ft.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>ft.createTextNode(e),createComment:e=>ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{cr.innerHTML=Ho(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const i=cr.content;if(s==="svg"||s==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}t.insertBefore(i,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},vt="transition",Xt="animation",pn=Symbol("_vtc"),Bo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Qi=Se({},io,Bo),ea=e=>(e.displayName="Transition",e.props=Qi,e),In=ea((e,{slots:t})=>Ji(Gl,ta(e),t)),Ot=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},fr=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function ta(e){const t={};for(const j in e)j in Bo||(t[j]=e[j]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:u=l,appearToClass:c=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,O=na(r),T=O&&O[0],_=O&&O[1],{onBeforeEnter:w,onEnter:F,onEnterCancelled:K,onLeave:M,onLeaveCancelled:L,onBeforeAppear:Q=w,onAppear:ge=F,onAppearCancelled:we=K}=t,G=(j,se,xe,A)=>{j._enterCancelled=A,Et(j,se?c:i),Et(j,se?u:l),xe&&xe()},ne=(j,se)=>{j._isLeaving=!1,Et(j,f),Et(j,g),Et(j,h),se&&se()},ce=j=>(se,xe)=>{const A=j?ge:F,m=()=>G(se,j,xe);Ot(A,[se,m]),dr(()=>{Et(se,j?a:o),ct(se,j?c:i),fr(A)||pr(se,s,T,m)})};return Se(t,{onBeforeEnter(j){Ot(w,[j]),ct(j,o),ct(j,l)},onBeforeAppear(j){Ot(Q,[j]),ct(j,a),ct(j,u)},onEnter:ce(!1),onAppear:ce(!0),onLeave(j,se){j._isLeaving=!0;const xe=()=>ne(j,se);ct(j,f),j._enterCancelled?(ct(j,h),vr()):(vr(),ct(j,h)),dr(()=>{j._isLeaving&&(Et(j,f),ct(j,g),fr(M)||pr(j,s,_,xe))}),Ot(M,[j,xe])},onEnterCancelled(j){G(j,!1,void 0,!0),Ot(K,[j])},onAppearCancelled(j){G(j,!0,void 0,!0),Ot(we,[j])},onLeaveCancelled(j){ne(j),Ot(L,[j])}})}function na(e){if(e==null)return null;if(pe(e))return[cs(e.enter),cs(e.leave)];{const t=cs(e);return[t,t]}}function cs(e){return ll(e)}function ct(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[pn]||(e[pn]=new Set)).add(t)}function Et(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[pn];n&&(n.delete(t),n.size||(e[pn]=void 0))}function dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let sa=0;function pr(e,t,n,s){const r=e._endId=++sa,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:l,timeout:i,propCount:a}=ra(e,t);if(!l)return s();const u=l+"end";let c=0;const f=()=>{e.removeEventListener(u,h),o()},h=g=>{g.target===e&&++c>=a&&f()};setTimeout(()=>{c<a&&f()},i+1),e.addEventListener(u,h)}function ra(e,t){const n=window.getComputedStyle(e),s=O=>(n[O]||"").split(", "),r=s(`${vt}Delay`),o=s(`${vt}Duration`),l=hr(r,o),i=s(`${Xt}Delay`),a=s(`${Xt}Duration`),u=hr(i,a);let c=null,f=0,h=0;t===vt?l>0&&(c=vt,f=l,h=o.length):t===Xt?u>0&&(c=Xt,f=u,h=a.length):(f=Math.max(l,u),c=f>0?l>u?vt:Xt:null,h=c?c===vt?o.length:a.length:0);const g=c===vt&&/\b(transform|all)(,|$)/.test(s(`${vt}Property`).toString());return{type:c,timeout:f,propCount:h,hasTransform:g}}function hr(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>mr(n)+mr(e[s])))}function mr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function vr(){return document.body.offsetHeight}function oa(e,t,n){const s=e[pn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ln=Symbol("_vod"),qo=Symbol("_vsh"),Vs={beforeMount(e,{value:t},{transition:n}){e[Ln]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Zt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Zt(e,!0),s.enter(e)):s.leave(e,()=>{Zt(e,!1)}):Zt(e,t))},beforeUnmount(e,{value:t}){Zt(e,t)}};function Zt(e,t){e.style.display=t?e[Ln]:"none",e[qo]=!t}const la=Symbol(""),ia=/(^|;)\s*display\s*:/;function aa(e,t,n){const s=e.style,r=ye(n);let o=!1;if(n&&!r){if(t)if(ye(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();n[i]==null&&En(s,i,"")}else for(const l in t)n[l]==null&&En(s,l,"");for(const l in n)l==="display"&&(o=!0),En(s,l,n[l])}else if(r){if(t!==n){const l=s[la];l&&(n+=";"+l),s.cssText=n,o=ia.test(n)}}else t&&e.removeAttribute("style");Ln in e&&(e[Ln]=o?s.display:"",e[qo]&&(s.display="none"))}const gr=/\s*!important$/;function En(e,t,n){if(V(n))n.forEach(s=>En(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=ua(e,t);gr.test(n)?e.setProperty(St(s),n.replace(gr,""),"important"):e[s]=n}}const yr=["Webkit","Moz","ms"],fs={};function ua(e,t){const n=fs[t];if(n)return n;let s=xt(t);if(s!=="filter"&&s in e)return fs[t]=s;s=jr(s);for(let r=0;r<yr.length;r++){const o=yr[r]+s;if(o in e)return fs[t]=o}return t}const br="http://www.w3.org/1999/xlink";function wr(e,t,n,s,r,o=dl(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(br,t.slice(6,t.length)):e.setAttributeNS(br,t,n):n==null||o&&!Mr(n)?e.removeAttribute(t):e.setAttribute(t,o?"":Ze(n)?String(n):n)}function xr(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Ho(n):n);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const i=o==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(i!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const i=typeof e[t];i==="boolean"?n=Mr(n):n==null&&i==="string"?(n="",l=!0):i==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(r||t)}function Dt(e,t,n,s){e.addEventListener(t,n,s)}function ca(e,t,n,s){e.removeEventListener(t,n,s)}const _r=Symbol("_vei");function fa(e,t,n,s,r=null){const o=e[_r]||(e[_r]={}),l=o[t];if(s&&l)l.value=s;else{const[i,a]=da(t);if(s){const u=o[t]=ma(s,r);Dt(e,i,u,a)}else l&&(ca(e,i,l,a),o[t]=void 0)}}const Sr=/(?:Once|Passive|Capture)$/;function da(e){let t;if(Sr.test(e)){t={};let s;for(;s=e.match(Sr);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):St(e.slice(2)),t]}let ds=0;const pa=Promise.resolve(),ha=()=>ds||(pa.then(()=>ds=0),ds=Date.now());function ma(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Qe(va(s,n.value),t,5,[s])};return n.value=e,n.attached=ha(),n}function va(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Cr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ga=(e,t,n,s,r,o)=>{const l=r==="svg";t==="class"?oa(e,s,l):t==="style"?aa(e,n,s):Vn(t)?ks(t)||fa(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ya(e,t,s,l))?(xr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&wr(e,t,s,l,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ye(s))?xr(e,xt(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),wr(e,t,s,l))};function ya(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cr(t)&&Y(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Cr(t)&&ye(n)?!1:t in e}const Fn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Tn(t,n):t};function ba(e){e.target.composing=!0}function $r(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const qt=Symbol("_assign"),Kt={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[qt]=Fn(r);const o=s||r.props&&r.props.type==="number";Dt(e,t?"change":"input",l=>{if(l.target.composing)return;let i=e.value;n&&(i=i.trim()),o&&(i=An(i)),e[qt](i)}),n&&Dt(e,"change",()=>{e.value=e.value.trim()}),t||(Dt(e,"compositionstart",ba),Dt(e,"compositionend",$r),Dt(e,"change",$r))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},l){if(e[qt]=Fn(l),e.composing)return;const i=(o||e.type==="number")&&!/^0\d/.test(e.value)?An(e.value):e.value,a=t??"";i!==a&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===a)||(e.value=a))}},hn={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=Hn(t);Dt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?An(Un(l)):Un(l));e[qt](e.multiple?r?new Set(o):o:o[0]),e._assigning=!0,zt(()=>{e._assigning=!1})}),e[qt]=Fn(s)},mounted(e,{value:t}){kr(e,t)},beforeUpdate(e,t,n){e[qt]=Fn(n)},updated(e,{value:t}){e._assigning||kr(e,t)}};function kr(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Hn(t))){for(let r=0,o=e.options.length;r<o;r++){const l=e.options[r],i=Un(l);if(n)if(s){const a=typeof i;a==="string"||a==="number"?l.selected=t.some(u=>String(u)===String(i)):l.selected=hl(t,i)>-1}else l.selected=t.has(i);else if(Kn(Un(l),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Un(e){return"_value"in e?e._value:e.value}const wa=["ctrl","shift","alt","meta"],xa={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>wa.some(n=>e[`${n}Key`]&&!t.includes(n))},Wt=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let l=0;l<t.length;l++){const i=xa[t[l]];if(i&&i(r,t))return}return e(r,...o)})},_a={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},mt=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=St(r.key);if(t.some(l=>l===o||_a[l]===o))return e(r)})},Sa=Se({patchProp:ga},Zi);let Tr;function Ca(){return Tr||(Tr=xi(Sa))}const $a=(...e)=>{const t=Ca().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ta(s);if(!r)return;const o=t._component;!Y(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=n(r,!1,ka(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function ka(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ta(e){return ye(e)?document.querySelector(e):e}const Oa={class:"max-w-sm rounded overflow-hidden shadow-lg border border-front/20"},Ea={class:"py-2 border-b border-front/20"},Aa={class:"pl-6"},Pa={class:"px-6 py-2"},Ko=ve({__name:"Card",props:{title:{type:String,required:!0}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(y(),k("div",Oa,[Ge(s.$slots,"header",{},()=>[E("div",Ea,[E("strong",Aa,oe(e.title),1),E("span",{class:"control text-l float-right mr-2 pl-2",title:"close",onClick:r[0]||(r[0]=o=>n("close"))},"⊗ ")])]),E("div",Pa,[Ge(s.$slots,"default")])]))}}),Da={class:"header"},ja={class:"list-disc mt-2"},Na={key:0},Ma={key:1},Ra={key:2},Ia={key:3},La={key:0},Fa=ve({__name:"AttributeCard",props:{modelValue:String},emits:["show-attr","update:modelValue"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=re(()=>{var l;return(l=s==null?void 0:s.schema)==null?void 0:l.attr(n.modelValue)}),o=t;return(l,i)=>{var a;return e.modelValue&&r.value?(y(),be(Ko,{key:0,title:((a=r.value.names)==null?void 0:a.join(", "))||"",class:"ml-4",onClose:i[1]||(i[1]=u=>o("update:modelValue"))},{default:de(()=>[E("div",Da,oe(r.value.desc),1),E("ul",ja,[r.value.$super?(y(),k("li",Na,[i[2]||(i[2]=Ie("Parent: ")),E("span",{class:"cursor-pointer",onClick:i[0]||(i[0]=u=>o("update:modelValue",r.value.$super.name))},oe(r.value.$super),1)])):Z("",!0),r.value.equality?(y(),k("li",Ma,"Equality: "+oe(r.value.equality),1)):Z("",!0),r.value.ordering?(y(),k("li",Ra,"Ordering: "+oe(r.value.ordering),1)):Z("",!0),r.value.substr?(y(),k("li",Ia,"Substring: "+oe(r.value.substr),1)):Z("",!0),E("li",null,[Ie("Syntax: "+oe(r.value.$syntax)+" ",1),r.value.binary?(y(),k("span",La,"(binary)")):Z("",!0)])])]),_:1},8,["title"])):Z("",!0)}}}),Ua={key:0,class:"fixed w-full h-full top-0 left-0 z-20 bg-front/60 dark:bg-back/70"},Va={class:"absolute max-h-full w-1/2 max-w-lg container text-front overflow-hidden rounded bg-back border border-front/40"},Ha={class:"flex justify-between items-start"},Ba={class:"max-h-full w-full divide-y divide-front/30"},qa={key:0,class:"flex justify-between items-center px-4 py-1"},Ka={class:"ui-modal-header text-xl font-bold leading-normal"},Wa={class:"ui-modal-body p-4 space-y-4"},za={class:"ui-modal-footer flex justify-end w-full p-4 space-x-3"},it=ve({__name:"Modal",props:{title:{type:String,required:!0},open:{type:Boolean,required:!0},okTitle:{type:String,default:"OK"},okClasses:{type:String,default:"bg-primary/80"},cancelTitle:{type:String,default:"Cancel"},cancelClasses:{type:String,default:"bg-secondary"},hideFooter:{type:Boolean,default:!1},returnTo:String},emits:["ok","cancel","show","shown","hide","hidden"],setup(e,{emit:t}){const n=e,s=t;function r(){n.open&&s("ok")}function o(){var l;n.open&&(n.returnTo&&((l=document.getElementById(n.returnTo))==null||l.focus()),s("cancel"))}return(l,i)=>(y(),k("div",null,[J(In,{name:"fade"},{default:de(()=>[e.open?(y(),k("div",Ua)):Z("",!0)]),_:1}),J(In,{name:"bounce",onEnter:i[0]||(i[0]=a=>s("show")),onAfterEnter:i[1]||(i[1]=a=>s("shown")),onLeave:i[2]||(i[2]=a=>s("hide")),onAfterLeave:i[3]||(i[3]=a=>s("hidden"))},{default:de(()=>[e.open?(y(),k("div",{key:0,ref:"backdrop",onClick:Wt(o,["self"]),onKeydown:mt(o,["esc"]),class:"fixed w-full h-full top-0 left-0 flex items-center justify-center z-30"},[E("div",Va,[E("div",Ha,[E("div",Ba,[e.title?(y(),k("div",qa,[E("h3",Ka,[Ge(l.$slots,"header",{},()=>[Ie(oe(e.title),1)])]),E("div",{class:"control text-xl",onClick:o,title:"close"},"⊗")])):Z("",!0),E("div",Wa,[Ge(l.$slots,"default")]),Ue(E("div",za,[Ge(l.$slots,"footer",{},()=>[E("button",{id:"ui-modal-cancel",onClick:o,type:"button",class:Pe(["btn",e.cancelClasses]),tabindex:"0"},[Ge(l.$slots,"modal-cancel",{},()=>[Ie(oe(e.cancelTitle),1)])],2),E("button",{id:"ui-modal-ok",onClick:Wt(r,["stop"]),type:"button",class:Pe(["btn",e.okClasses]),tabindex:"0"},[Ge(l.$slots,"modal-ok",{},()=>[Ie(oe(e.okTitle),1)])],2)])],512),[[Vs,!e.hideFooter]])])])])],544)):Z("",!0)]),_:3})]))}}),Ja=ve({__name:"AddAttributeDialog",props:{entry:{type:Object,required:!0},attributes:{type:Array,required:!0},modal:String,returnTo:String},emits:["ok","show-modal","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(null),o=re(()=>{const a=Object.keys(n.entry.attrs);return n.attributes.filter(u=>!a.includes(u))}),l=t;function i(){if(s.value){if(s.value=="jpegPhoto"||s.value=="thumbnailPhoto"){l("show-modal","add-"+s.value);return}if(s.value=="userPassword"){l("show-modal","change-password");return}l("update:modal"),l("ok",s.value)}}return(a,u)=>(y(),be(it,{title:"Add attribute",open:e.modal=="add-attribute","return-to":n.returnTo,onShow:u[1]||(u[1]=c=>{s.value=void 0}),onShown:u[2]||(u[2]=c=>{var f;return(f=r.value)==null?void 0:f.focus()}),onOk:i,onCancel:u[3]||(u[3]=c=>l("update:modal"))},{default:de(()=>[Ue(E("select",{"onUpdate:modelValue":u[0]||(u[0]=c=>s.value=c),ref_key:"select",ref:r,onKeyup:mt(i,["enter"])},[(y(!0),k(ie,null,ke(o.value,c=>(y(),k("option",{key:c},oe(c),1))),128))],544),[[hn,s.value]])]),_:1},8,["open","return-to"]))}}),Ya=ve({__name:"AddObjectClassDialog",props:{entry:{type:Object,required:!0},modal:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(),o=re(()=>{const a=n.entry.attrs.objectClass;return n.entry.meta.aux.filter(u=>!a.includes(u))}),l=t;function i(){s.value&&(l("update:modal"),l("ok",s.value))}return(a,u)=>(y(),be(it,{title:"Add objectClass",open:e.modal=="add-object-class",onShow:u[1]||(u[1]=c=>{s.value=void 0}),onShown:u[2]||(u[2]=c=>{var f;return(f=r.value)==null?void 0:f.focus()}),onOk:i,onCancel:u[3]||(u[3]=c=>l("update:modal"))},{default:de(()=>[Ue(E("select",{"onUpdate:modelValue":u[0]||(u[0]=c=>s.value=c),ref_key:"select",ref:r,onKeyup:mt(i,["enter"])},[(y(!0),k(ie,null,ke(o.value,c=>(y(),k("option",{key:c},oe(c),1))),128))],544),[[hn,s.value]])]),_:1},8,["open"]))}}),Ga=["accept"],Or=ve({__name:"AddPhotoDialog",props:{dn:{type:String,required:!0},attr:{type:String,validator:e=>["jpegPhoto","thumbnailPhoto"].includes(e)},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(null),r=t;async function o(l){const i=l.target;if(!(i!=null&&i.files))return;const a=new FormData;a.append("blob",i.files[0]),(await fetch("api/blob/"+n.attr+"/0/"+n.dn,{method:"PUT",body:a})).ok&&(r("update:modal"),r("ok",n.dn,[n.attr]))}return(l,i)=>(y(),be(it,{title:"Upload photo","hide-footer":"","return-to":e.returnTo,open:e.modal=="add-"+e.attr,onShown:i[0]||(i[0]=a=>{var u;return(u=s.value)==null?void 0:u.focus()}),onCancel:i[1]||(i[1]=a=>r("update:modal"))},{default:de(()=>[E("input",{name:"photo",type:"file",ref_key:"upload",ref:s,onChange:o,accept:e.attr=="jpegPhoto"?"image/jpeg":"image/*"},null,40,Ga)]),_:1},8,["return-to","open"]))}});function Xa(e,t,n){return n.indexOf(e)==t}function Za(e){let t=e.substring(14);return t!="Z"&&(t=t.substring(0,3)+":"+(t.length>3?t.substring(3,5):"00")),new Date(e.substring(0,4)+"-"+e.substring(4,6)+"-"+e.substring(6,8)+"T"+e.substring(8,10)+":"+e.substring(10,12)+":"+e.substring(12,14)+t)}let Qn;class Qa{constructor(t){X(this,"text");X(this,"attrName");X(this,"value");this.text=t;const n=t.split("=");this.attrName=n[0].trim(),this.value=n[1].trim()}toString(){return this.text}eq(t){return t!==void 0&&this.attr!==void 0&&this.attr.eq(t.attr)&&this.attr.matcher(this.value,t.value)}get attr(){return Qn.attr(this.attrName)}}class mn{constructor(t){X(this,"text");X(this,"rdn");X(this,"parent");this.text=t;const n=t.split(",");this.rdn=new Qa(n[0]),this.parent=n.length==1?void 0:new mn(t.slice(n[0].length+1))}toString(){return this.text}eq(t){return!t||!this.rdn.eq(t.rdn)?!1:!this.parent&&!t.parent?!0:!!this.parent&&this.parent.eq(t.parent)}}let Wo=class{constructor(){X(this,"oid");X(this,"name");X(this,"names");X(this,"sup")}};class eu extends Wo{constructor(n){super();X(this,"desc");X(this,"obsolete");X(this,"may");X(this,"must");X(this,"kind");Object.assign(this,n)}get structural(){return this.kind=="structural"}$collect(n){const s=[];for(let o=this;o;o=o.$super){const l=o[n];l&&s.push(l)}const r=s.flat().map(o=>Qn.attr(o)).map(o=>o==null?void 0:o.name).filter(Xa);return r.sort(),r}toString(){return this.name}get $super(){const n=Object.getPrototypeOf(this);return n.sup?n:void 0}}const Er={distinguishedNameMatch:(e,t)=>new mn(e).eq(new mn(t)),caseIgnoreIA5Match:(e,t)=>e.toLowerCase()==t.toLowerCase(),caseIgnoreMatch:(e,t)=>e.toLowerCase()==t.toLowerCase(),integerMatch:(e,t)=>+e==+t,numericStringMatch:(e,t)=>+e==+t,octetStringMatch:(e,t)=>e==t};class zo extends Wo{constructor(n){super();X(this,"desc");X(this,"equality");X(this,"obsolete");X(this,"ordering");X(this,"no_user_mod");X(this,"single_value");X(this,"substr");X(this,"syntax");X(this,"usage");delete this.equality,delete this.ordering,delete this.substr,delete this.syntax,Object.assign(this,Object.fromEntries(Object.entries(n).filter(([s,r])=>r!=null)))}toString(){return this.name}get matcher(){return(this.equality?Er[this.equality]:void 0)||Er.octetStringMatch}eq(n){return n&&this.oid==n.oid}get binary(){var n;if(this.equality!="octetStringMatch")return(n=this.$syntax)==null?void 0:n.not_human_readable}get $syntax(){return Qn.syntaxes.get(this.syntax)}get $super(){const n=Object.getPrototypeOf(this);return n.sup?n:void 0}}class tu{constructor(t){X(this,"oid");X(this,"desc");X(this,"not_human_readable");Object.assign(this,t)}toString(){return this.desc}}class nu extends Object{constructor(n){super();X(this,"attributes");X(this,"objectClasses");X(this,"syntaxes");X(this,"attributesByName");this.syntaxes=new Map(Object.entries(n.syntaxes).map(([s,r])=>[s,new tu(r)])),this.attributes=Object.values(n.attributes).map(s=>new zo(s)),this.objectClasses=new Map(Object.entries(n.objectClasses).map(([s,r])=>[s.toLowerCase(),new eu(r)])),this.buildPrototypeChain(this.objectClasses),this.attributesByName=new Map(this.attributes.flatMap(s=>(s.names||[]).map(r=>[r.toLowerCase(),s]))),this.buildPrototypeChain(this.attributesByName),Qn=this}buildPrototypeChain(n){for(const s of n.values()){const r=s.sup?s.sup[0]:void 0,o=r?n.get(r.toLowerCase()):void 0;o&&Object.setPrototypeOf(s,o)}}attr(n){return this.attributesByName.get((n==null?void 0:n.toLowerCase())||"")}oc(n){return this.objectClasses.get((n==null?void 0:n.toLowerCase())||"")}search(n){return this.attributes.filter(s=>{var r;return(r=s.names)==null?void 0:r.some(o=>o.toLowerCase().startsWith(n.toLowerCase()))})}}function su(e){return Lr()?(vl(e),!0):!1}function Jo(e){return typeof e=="function"?e():yn(e)}const ru=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ou=Object.prototype.toString,lu=e=>ou.call(e)==="[object Object]",iu=()=>{};function Yo(e){var t;const n=Jo(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Hs=ru?window:void 0;function jt(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Hs):[t,n,s,r]=e,!t)return iu;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const o=[],l=()=>{o.forEach(c=>c()),o.length=0},i=(c,f,h,g)=>(c.addEventListener(f,h,g),()=>c.removeEventListener(f,h,g)),a=Ve(()=>[Yo(t),Jo(r)],([c,f])=>{if(l(),!c)return;const h=lu(f)?{...f}:f;o.push(...n.flatMap(g=>s.map(O=>i(c,g,O,h))))},{immediate:!0,flush:"post"}),u=()=>{a(),l()};return su(u),u}const au={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof Touch?null:[e.movementX,e.movementY]};function uu(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:s=!1,initialValue:r={x:0,y:0},window:o=Hs,target:l=o,scroll:i=!0,eventFilter:a}=e;let u=null;const c=I(r.x),f=I(r.y),h=I(null),g=typeof t=="function"?t:au[t],O=L=>{const Q=g(L);u=L,Q&&([c.value,f.value]=Q,h.value="mouse")},T=L=>{if(L.touches.length>0){const Q=g(L.touches[0]);Q&&([c.value,f.value]=Q,h.value="touch")}},_=()=>{if(!u||!o)return;const L=g(u);u instanceof MouseEvent&&L&&(c.value=L[0]+o.scrollX,f.value=L[1]+o.scrollY)},w=()=>{c.value=r.x,f.value=r.y},F=a?L=>a(()=>O(L),{}):L=>O(L),K=a?L=>a(()=>T(L),{}):L=>T(L),M=a?()=>a(()=>_(),{}):()=>_();if(l){const L={passive:!0};jt(l,["mousemove","dragover"],F,L),n&&t!=="movement"&&(jt(l,["touchstart","touchmove"],K,L),s&&jt(l,"touchend",w,L)),i&&t==="page"&&jt(o,"scroll",M,{passive:!0})}return{x:c,y:f,sourceType:h}}function cu(e,t={}){const{handleOutside:n=!0,window:s=Hs}=t,r=t.type||"page",{x:o,y:l,sourceType:i}=uu(t),a=I(e??(s==null?void 0:s.document.body)),u=I(0),c=I(0),f=I(0),h=I(0),g=I(0),O=I(0),T=I(!0);let _=()=>{};return s&&(_=Ve([a,o,l],()=>{const w=Yo(a);if(!w)return;const{left:F,top:K,width:M,height:L}=w.getBoundingClientRect();f.value=F+(r==="page"?s.pageXOffset:0),h.value=K+(r==="page"?s.pageYOffset:0),g.value=L,O.value=M;const Q=o.value-f.value,ge=l.value-h.value;T.value=M===0||L===0||Q<0||ge<0||Q>M||ge>L,(n||!T.value)&&(u.value=Q,c.value=ge)},{immediate:!0}),jt(document,"mouseleave",()=>{T.value=!0})),{x:o,y:l,sourceType:i,elementX:u,elementY:c,elementPositionX:f,elementPositionY:h,elementHeight:g,elementWidth:O,isOutside:T,stop:_}}const fu={key:0,class:"ui-popover absolute z-10 border border-front/70 rounded min-w-max text-front bg-back list-none"},Bs=ve({__name:"Popover",props:{open:Boolean},emits:["opened","closed","update:open"],setup(e,{emit:t}){const n=e,s=t,r=I(null),o=I(),{isOutside:l}=cu(r);function i(){o.value=void 0,n.open&&s("update:open")}function a(c){const f=r.value.children.length-1;o.value===void 0?o.value=c>0?0:f:(o.value+=c,o.value>f?o.value=0:o.value<0&&(o.value=f))}function u(c){if(!(!n.open||!r.value))switch(c.key){case"Esc":case"Escape":i();break;case"ArrowDown":a(1),c.preventDefault();break;case"ArrowUp":a(-1),c.preventDefault();break;case"Enter":{r.value.children[o.value].click(),c.preventDefault();break}}}return Jt(()=>{jt(document,"keydown",u),jt(document,"click",i)}),Ve(o,c=>{if(!(!n.open||!r.value)){for(const f of r.value.children)f.classList.remove("selected");c!=null&&r.value.children[c].classList.add("selected")}}),Ve(l,c=>{for(const f of r.value.children)c?f.classList.remove("hover:bg-primary/40"):(o.value=void 0,f.classList.add("hover:bg-primary/40"))}),(c,f)=>(y(),be(In,{name:"fade",onAfterEnter:f[0]||(f[0]=h=>s("opened")),onAfterLeave:f[1]||(f[1]=h=>s("closed"))},{default:de(()=>[e.open?(y(),k("div",fu,[E("ul",{class:"bg-front/5 dark:bg-front/10 py-2",ref_key:"items",ref:r,onClick:i},[Ge(c.$slots,"default")],512)])):Z("",!0)]),_:3}))}}),du=["onClick","title"],pu=ve({__name:"AttributeSearch",props:{query:{type:String,default:""},for:{type:String,default:""}},emits:["done"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I([]),o=re(()=>n.query.trim()!=""&&r.value&&r.value.length>0&&!(r.value.length==1&&n.query==r.value[0].name)),l=t;Ve(()=>n.query,a=>{var u;a&&(r.value=((u=s==null?void 0:s.schema)==null?void 0:u.search(a))||[],r.value.sort((c,f)=>c.name.toLowerCase().localeCompare(f.name.toLowerCase())))});function i(a){l("done",a),r.value=[],zt(()=>{const u=document.getElementById(n.for);u&&u.focus()})}return(a,u)=>(y(),be(Bs,{open:o.value,"onUpdate:open":u[0]||(u[0]=c=>r.value=[])},{default:de(()=>[(y(!0),k(ie,null,ke(r.value,c=>(y(),k("li",{key:c.oid,onClick:f=>i(c.name),title:c.oid,role:"menuitem"},oe(c.name),9,du))),128))]),_:1},8,["open"]))}}),hu=["onClick","title"],Go=ve({__name:"SearchResults",props:{query:{type:String,default:""},for:String,label:{type:String,default:"name",validator:e=>["name","dn"].includes(e)},shorten:String,silent:{type:Boolean,default:!1}},emits:["select-dn"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I([]),o=re(()=>n.query.trim()!=""&&r.value&&r.value.length>1),l=t;Ve(()=>n.query,async u=>{if(!u)return;const c=await fetch("api/search/"+u);if(c.ok){if(r.value=await c.json(),r.value.length==0&&!n.silent){s==null||s.showWarning("No search results");return}if(r.value.length==1){a(r.value[0].dn);return}r.value.sort((f,h)=>f[n.label].toLowerCase().localeCompare(h[n.label].toLowerCase()))}});function i(u){return n.shorten&&n.shorten!=u?u.replace(n.shorten,"…"):u}function a(u){l("select-dn",u),r.value=[],zt(()=>{if(n.for){const c=document.getElementById(n.for);c&&c.focus()}})}return(u,c)=>(y(),be(Bs,{open:o.value,"onUpdate:open":c[0]||(c[0]=f=>r.value=[])},{default:de(()=>[(y(!0),k(ie,null,ke(r.value,f=>(y(),k("li",{key:f.dn,onClick:h=>a(f.dn),title:e.label=="dn"?"":i(f.dn),role:"menuitem"},oe(f[e.label]),9,hu))),128))]),_:1},8,["open"]))}}),mu=ve({__name:"ToggleButton",props:["value"],emits:["update:value"],setup(e,{emit:t}){const n=e,s=t,r=re(()=>n.value=="TRUE");return(o,l)=>(y(),k("button",{type:"button",class:"p-0 relative focus:outline-none",tabindex:"0",onClick:l[0]||(l[0]=i=>s("update:value",r.value?"FALSE":"TRUE"))},[l[1]||(l[1]=E("div",{class:"w-8 h-4 transition rounded-full bg-gray-200"},null,-1)),E("div",{class:Pe(["absolute top-0 left-0 w-4 h-4 transition-all duration-200 ease-in-out transform scale-110 rounded-full shadow-sm",r.value?"translate-x-4 bg-primary":"translate-x-0 bg-secondary"])},null,2)]))}}),vu={key:0,class:"flex mx-4 space-x-4"},gu=["title"],yu={key:0,class:"fa text-emerald-700 ml-1 fa-check"},bu={class:"w-3/4"},wu=["onClick","title"],xu={key:5,class:"mr-5"},_u={key:6},Su=["src"],Cu=["onClick"],$u={key:7},ku=["onClick"],Tu={key:1,class:"pb-1 border-primary focus-within:border-b border-solid"},Ou=["onClick"],Eu=["value","id","type","placeholder","disabled","title"],Au=["onClick"],Pu={key:2,class:"text-xs ml-6 opacity-70"},Du=ve({__name:"AttributeRow",props:{attr:{type:zo,required:!0},baseDn:String,values:{type:Array,required:!0},meta:{type:Object,required:!0},must:{type:Boolean,required:!0},may:{type:Boolean,required:!0},changed:{type:Boolean,required:!0}},emits:["reload-form","show-attr","show-modal","show-oc","update","valid"],setup(e,{emit:t}){function n(H,W,ee){return H==""||ee.indexOf(H)==W}const s={weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},r={boolean:"1.3.6.1.4.1.1466.115.121.1.7",distinguishedName:"1.3.6.1.4.1.1466.115.121.1.12",generalizedTime:"1.3.6.1.4.1.1466.115.121.1.24",integer:"1.3.6.1.4.1.1466.115.121.1.27",oid:"1.3.6.1.4.1.1466.115.121.1.38",telephoneNumber:"1.3.6.1.4.1.1466.115.121.1.50"},o=["uidNumber","gidNumber"],l=e,i=Ye("app"),a=I(!0),u=I(),c=I(""),f=I(""),h=I(),g=re(()=>l.attr.syntax==r.boolean),O=re(()=>l.attr.syntax==r.distinguishedName),T=re(()=>l.values.length==1&&l.values[0]==u.value),_=re(()=>l.values.every(H=>!H.trim())),w=re(()=>!l.must&&!l.may),F=re(()=>l.attr.name==l.meta.dn.split("=")[0]),K=re(()=>l.attr.syntax==r.oid),M=re(()=>_.value&&l.must),L=re(()=>l.attr.name=="userPassword"),Q=re(()=>l.attr.syntax==r.generalizedTime),ge=re(()=>L.value?!1:l.meta.binary.includes(l.attr.name)),we=re(()=>F.value||l.attr.name=="objectClass"||w.value&&_.value||!l.meta.isNew&&(L.value||ge.value)),G=re(()=>{let H="";return O.value&&(H="  "),M.value&&(H="  "),_.value&&(H="  "),H}),ne=re(()=>l.attr.name=="jpegPhoto"||l.attr.name=="thumbnailPhoto"||!l.attr.no_user_mod&&!ge.value),ce=re(()=>L.value?"password":l.attr.syntax==r.telephoneNumber?"tel":l.attr.syntax==r.integer?"number":"text"),j=t;Ve(a,H=>j("valid",H)),Jt(async()=>{if(we.value||!o.includes(l.attr.name)||l.values.length!=1||l.values[0])return;const H=await fetch("api/range/"+l.attr.name);if(!H.ok)return;const W=await H.json();c.value=W.min==W.max?"> "+W.min:"∉ ("+W.min+" - "+W.max+")",u.value=""+W.next,j("update",l.attr.name,[u.value],0),se()}),mo(se);function se(){a.value=!M.value&&(!w.value||_.value)&&l.values.every(n)}function xe(H){const W=H.target,ee=W.value,_e=+W.id.split("-").slice(-1).pop();A(_e,ee)}function A(H,W){const ee=l.values.slice();ee[H]=W,j("update",l.attr.name,ee)}function m(){const H=l.values.slice();H.includes("")||H.push(""),j("update",l.attr.name,H,H.length-1)}function b(H){const W=l.values.slice(0,H).concat(l.values.slice(H+1));j("update","objectClass",W)}function q(H){return Za(H).toLocaleString(void 0,s)}function Te(H){var W,ee;return l.attr.name=="objectClass"&&((ee=(W=i==null?void 0:i.schema)==null?void 0:W.oc(H))==null?void 0:ee.structural)}function Le(H){var ee;const W=(ee=i==null?void 0:i.schema)==null?void 0:ee.oc(H);return l.attr.name=="objectClass"&&W&&!W.structural}function at(H){return!n(l.values[H],H,l.values)}function We(H){return H==0&&!l.attr.single_value&&!we.value&&!l.values.includes("")}function xn(H){const W=H.target;h.value=W.id;const ee=W.value;f.value=ee.length>=2&&!ee.includes(",")?ee:""}function _n(H){const W=+h.value.split("-").slice(-1).pop(),ee=l.values.slice();ee[W]=H,f.value="",j("update",l.attr.name,ee)}async function es(H){(await fetch("api/blob/"+l.attr.name+"/"+H+"/"+l.meta.dn,{method:"DELETE"})).ok&&j("reload-form",l.meta.dn,[l.attr.name])}return(H,W)=>e.attr&&ne.value?(y(),k("div",vu,[E("div",{class:Pe([{required:e.must,optional:e.may,rdn:F.value,illegal:w.value},"w-1/4"])},[E("span",{class:"cursor-pointer oc",title:e.attr.desc,onClick:W[0]||(W[0]=ee=>j("show-attr",e.attr.name))},oe(e.attr),9,gu),e.changed?(y(),k("i",yu)):Z("",!0)],2),E("div",bu,[(y(!0),k(ie,null,ke(e.values,(ee,_e)=>(y(),k("div",{key:_e},[Te(ee)?(y(),k("span",{key:0,onClick:W[1]||(W[1]=Ce=>j("show-modal","add-object-class")),tabindex:"-1",class:"add-btn control font-bold",title:"Add object class…"},"⊕")):Le(ee)?(y(),k("span",{key:1,onClick:Ce=>b(_e),class:"remove-btn control",title:"Remove "+ee},"⊖",8,wu)):L.value?(y(),k("span",{key:2,class:"fa fa-question-circle control",onClick:W[2]||(W[2]=Ce=>j("show-modal","change-password")),tabindex:"-1",title:"change password"})):e.attr.name=="jpegPhoto"||e.attr.name=="thumbnailPhoto"?(y(),k("span",{key:3,onClick:W[3]||(W[3]=Ce=>j("show-modal","add-jpegPhoto")),tabindex:"-1",class:"add-btn control align-top",title:"Add photo…"},"⊕")):We(_e)&&!w.value?(y(),k("span",{key:4,onClick:m,class:"add-btn control",title:"Add row"},"⊕")):(y(),k("span",xu)),e.attr.name=="jpegPhoto"||e.attr.name=="thumbnailPhoto"?(y(),k("span",_u,[ee?(y(),k("img",{key:0,src:"data:image/"+(e.attr.name=="jpegPhoto"?"jpeg":"*")+";base64,"+ee,class:"max-w-[120px] max-h-[120px] border p-[1px] inline mx-1"},null,8,Su)):Z("",!0),ee?(y(),k("span",{key:1,class:"control remove-btn align-top ml-1",onClick:Ce=>es(_e),title:"Remove photo"},"⊖",8,Cu)):Z("",!0)])):g.value?(y(),k("span",$u,[_e==0&&!e.values[0]?(y(),k("span",{key:0,class:"control text-lg",onClick:Ce=>A(_e,"FALSE")},"⊕",8,ku)):(y(),k("span",Tu,[J(mu,{id:e.attr+"-"+_e,value:e.values[_e],class:"mt-2","onUpdate:value":Ce=>A(_e,Ce)},null,8,["id","value","onUpdate:value"]),E("i",{class:"fa fa-trash ml-2 relative -top-0.5 control",onClick:Ce=>A(_e,"")},null,8,Ou)]))])):(y(),k("input",{key:8,value:e.values[_e],id:e.attr+"-"+_e,type:ce.value,autocomplete:"off",class:Pe(["w-[90%] glyph outline-none bg-back border-x-0 border-t-0 border-b border-solid border-front/20 focus:border-primary px-1",{structural:Te(ee),auto:T.value,illegal:w.value&&!_.value||at(_e)}]),placeholder:G.value,disabled:we.value,title:Q.value?q(ee):"",onInput:xe,onFocusin:W[4]||(W[4]=Ce=>f.value=""),onKeyup:[xn,W[5]||(W[5]=mt(Ce=>f.value="",["esc"]))]},null,42,Eu)),e.attr.name=="objectClass"?(y(),k("i",{key:9,class:"cursor-pointer fa fa-info-circle",onClick:Ce=>j("show-oc",ee)},null,8,Au)):Z("",!0)]))),128)),O.value&&h.value?(y(),be(Go,{key:0,silent:"",onSelectDn:_n,for:h.value,query:f.value,label:"dn",shorten:e.baseDn},null,8,["for","query","shorten"])):Z("",!0),K.value&&h.value?(y(),be(pu,{key:1,onDone:_n,for:h.value,query:f.value},null,8,["for","query"])):Z("",!0),c.value?(y(),k("div",Pu,oe(c.value),1)):Z("",!0)])])):Z("",!0)}}),Xo=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},ju=Xo(Du,[["__scopeId","data-v-458112a0"]]),Nu={key:0,class:"text-danger text-xs mb-1"},Mu=ve({__name:"CopyEntryDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(""),r=I(""),o=I(null),l=t;function i(){r.value="",s.value=n.entry.meta.dn}function a(){if(!s.value||s.value==n.entry.meta.dn){r.value="This DN already exists";return}const u=s.value.split(","),c=u[0].split("="),f=c[0];if(c.length!=2){r.value="Invalid RDN: "+u[0];return}l("update:modal");const h=JSON.parse(JSON.stringify(n.entry));h.attrs[f]=[c[1]],h.meta.dn=s.value,h.meta.isNew=!0,l("ok",h)}return(u,c)=>(y(),be(it,{title:"Copy entry",open:e.modal=="copy-entry","return-to":e.returnTo,onShow:i,onShown:c[1]||(c[1]=f=>{var h;return(h=o.value)==null?void 0:h.focus()}),onOk:a,onCancel:c[2]||(c[2]=f=>l("update:modal"))},{default:de(()=>[E("div",null,[r.value?(y(),k("div",Nu,oe(r.value),1)):Z("",!0),Ue(E("input",{ref_key:"newdn",ref:o,"onUpdate:modelValue":c[0]||(c[0]=f=>s.value=f),placeholder:"New DN",onKeyup:mt(a,["enter"])},null,544),[[Kt,s.value]])])]),_:1},8,["open","return-to"]))}}),Ru=["title"],vn=ve({__name:"NodeLabel",props:{dn:String,oc:String},emits:["select-dn"],setup(e,{emit:t}){const n=e,s={account:"user",groupOfNames:"users",groupOfURLs:"users",groupOfUniqueNames:"users",inetOrgPerson:"address-book",krbContainer:"lock",krbPrincipal:"user-o",krbRealmContainer:"globe",organization:"globe",organizationalRole:"android",organizationalUnit:"sitemap",person:"user",posixGroup:"users"},r=re(()=>n.oc?" fa-"+(s[n.oc]||"question"):"fa-question"),o=re(()=>(n.dn||"").split(",")[0].replace(/^cn=/,"").replace(/^krbPrincipalName=/,"")),l=t;return(i,a)=>(y(),k("span",{onClick:a[0]||(a[0]=u=>l("select-dn",e.dn)),title:e.dn,class:"node-label cursor-pointer select-none"},[e.oc?(y(),k("i",{key:0,class:Pe(["fa w-6 text-center",r.value])},null,2)):Z("",!0),Ge(i.$slots,"default",{},()=>[Ie(oe(o.value),1)])],8,Ru))}}),Iu={key:0},Lu=ve({__name:"DeleteEntryDialog",props:{dn:{type:String,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I([]),r=t;async function o(){const a=await fetch("api/subtree/"+n.dn);s.value=await a.json()}function l(){var a;(a=document.getElementById("ui-modal-ok"))==null||a.focus()}function i(){r("update:modal"),r("ok",n.dn)}return(a,u)=>(y(),be(it,{title:"Are you sure?",open:e.modal=="delete-entry","return-to":e.returnTo,"cancel-classes":"bg-primary/80","ok-classes":"bg-danger/80",onShow:o,onShown:l,onOk:i,onCancel:u[0]||(u[0]=c=>r("update:modal"))},{"modal-ok":de(()=>u[2]||(u[2]=[E("i",{class:"fa fa-trash-o fa-lg"},null,-1),Ie(" Delete ")])),default:de(()=>[u[3]||(u[3]=E("p",{class:"strong"},"This action is irreversible.",-1)),s.value.length?(y(),k("div",Iu,[u[1]||(u[1]=E("p",{class:"text-danger mb-2"},"The following child nodes will be also deleted:",-1)),(y(!0),k(ie,null,ke(s.value,c=>(y(),k("div",{key:c.dn},[(y(!0),k(ie,null,ke(c.level,f=>(y(),k("span",{class:"ml-6",key:f}))),128)),J(vn,{oc:c.structuralObjectClass},{default:de(()=>[Ie(oe(c.dn.split(",")[0]),1)]),_:2},1032,["oc"])]))),128))])):Z("",!0)]),_:1},8,["open","return-to"]))}}),Fu=ve({__name:"DiscardEntryDialog",props:{dn:String,modal:String,returnTo:String},emits:["ok","shown","update:modal"],setup(e,{emit:t}){const n=I(),s=t;function r(){var l;(l=document.getElementById("ui-modal-ok"))==null||l.focus(),s("shown")}function o(){s("update:modal"),s("ok",n.value)}return(l,i)=>(y(),be(it,{title:"Are you sure?",open:e.modal=="discard-entry","return-to":e.returnTo,"cancel-classes":"bg-primary/80","ok-classes":"bg-danger/80",onShow:i[0]||(i[0]=a=>{n.value=e.dn}),onShown:r,onOk:o,onCancel:i[1]||(i[1]=a=>s("update:modal"))},{"modal-ok":de(()=>i[2]||(i[2]=[E("i",{class:"fa fa-trash-o fa-lg"},null,-1),Ie(" Discard ")])),default:de(()=>[i[3]||(i[3]=E("p",{class:"strong"},"All changes will be irreversibly lost.",-1))]),_:1},8,["open","return-to"]))}}),Uu={class:"relative inline-block text-left mx-1"},Vu=["aria-expanded"],Hu=["aria-hidden"],Zo=ve({__name:"DropdownMenu",props:{title:String},setup(e){const t=I(!1);return(n,s)=>(y(),k("div",Uu,[E("span",{ref:"opener",class:"inline-flex w-full py-2 select-none cursor-pointer","aria-expanded":t.value,"aria-haspopup":"true",onClick:s[0]||(s[0]=Wt(r=>t.value=!t.value,["stop"]))},[Ge(n.$slots,"button-content",{},()=>[Ie(oe(e.title),1)]),(y(),k("svg",{class:"-mr-1 h-5 w-5 pt-1",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":!t.value},s[2]||(s[2]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)]),8,Hu))],8,Vu),J(Bs,{open:t.value,"onUpdate:open":s[1]||(s[1]=r=>t.value=r)},{default:de(()=>[Ge(n.$slots,"default")]),_:3},8,["open"])]))}}),Bu={key:0},qu={key:0},Ku=ve({__name:"NewEntryDialog",props:{dn:{type:String,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=I(""),o=I(""),l=I(""),i=I(null),a=re(()=>{var g;return(g=s==null?void 0:s.schema)==null?void 0:g.oc(r.value)}),u=t;function c(){r.value=o.value=l.value=""}function f(){var T;if(!r.value||!o.value||!l.value)return;u("update:modal");const g=[r.value];for(let _=(T=a.value)==null?void 0:T.$super;_;_=_.$super)!_.structural&&_.kind!="abstract"&&g.push(_.name);const O={meta:{dn:o.value+"="+l.value+","+n.dn,aux:[],required:[],binary:[],autoFilled:[],isNew:!0},attrs:{objectClass:g},changed:[]};O.attrs[o.value]=[l.value],u("ok",O)}function h(){var O;if(!r.value)return[];const g=((O=a.value)==null?void 0:O.$collect("must"))||[];return g.length==1&&(o.value=g[0]),g}return(g,O)=>(y(),be(it,{title:"New entry",open:e.modal=="new-entry","return-to":e.returnTo,onOk:f,onCancel:O[3]||(O[3]=T=>u("update:modal")),onShow:c,onShown:O[4]||(O[4]=T=>{var _;return(_=i.value)==null?void 0:_.focus()})},{default:de(()=>{var T,_;return[E("label",null,[O[5]||(O[5]=Ie("Object class: ")),Ue(E("select",{ref_key:"select",ref:i,"onUpdate:modelValue":O[0]||(O[0]=w=>r.value=w)},[(y(!0),k(ie,null,ke((_=(T=yn(s))==null?void 0:T.schema)==null?void 0:_.objectClasses.values(),w=>(y(),k(ie,{key:w.name},[w.structural?(y(),k("option",Bu,oe(w),1)):Z("",!0)],64))),128))],512),[[hn,r.value]])]),r.value?(y(),k("label",qu,[O[6]||(O[6]=Ie("RDN attribute: ")),Ue(E("select",{"onUpdate:modelValue":O[1]||(O[1]=w=>o.value=w)},[(y(!0),k(ie,null,ke(h(),w=>(y(),k("option",{key:w},oe(w),1))),128))],512),[[hn,o.value]])])):Z("",!0),r.value?Ue((y(),k("input",{key:1,"onUpdate:modelValue":O[2]||(O[2]=w=>l.value=w),placeholder:"RDN value",onKeyup:mt(f,["enter"])},null,544)),[[Kt,l.value]]):Z("",!0)]}),_:1},8,["open","return-to"]))}}),Wu={key:0},zu=ve({__name:"PasswordChangeDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String,user:String},emits:["ok","update-form","update:modal"],setup(e,{emit:t}){const n=e,s=I(""),r=I(""),o=I(""),l=I(),i=I(null),a=I(null),u=re(()=>n.user==n.entry.meta.dn),c=re(()=>r.value&&r.value==o.value),f=re(()=>!!n.entry.attrs.userPassword&&n.entry.attrs.userPassword[0]!=""),h=t;function g(){s.value=r.value=o.value="",l.value=void 0}function O(){var w,F;f.value?(w=i.value)==null||w.focus():(F=a.value)==null||F.focus()}async function T(){if(!s.value||s.value.length==0){l.value=void 0;return}const w=await fetch("api/password/"+n.entry.meta.dn,{method:"POST",body:JSON.stringify({check:s.value}),headers:{"Content-Type":"application/json"}});l.value=await w.json()}async function _(){u.value&&!r.value||r.value!=o.value||u.value&&f.value&&!l.value||(h("update:modal"),h("ok",s.value,r.value))}return(w,F)=>(y(),be(it,{title:"Change / verify password",open:e.modal=="change-password","return-to":e.returnTo,onShow:g,onShown:O,onOk:_,onCancel:F[3]||(F[3]=K=>h("update:modal")),onHidden:F[4]||(F[4]=K=>h("update-form"))},{default:de(()=>[f.value?(y(),k("div",Wu,[E("small",null,oe(u.value?"Required":"Optional"),1),l.value!==void 0?(y(),k("i",{key:0,class:Pe(["fa ml-2",l.value?"text-emerald-700 fa-check-circle":"text-danger fa-times-circle"])},null,2)):Z("",!0),Ue(E("input",{ref_key:"old",ref:i,"onUpdate:modelValue":F[0]||(F[0]=K=>s.value=K),placeholder:"Old password",type:"password",onChange:T},null,544),[[Kt,s.value]])])):Z("",!0),Ue(E("input",{ref_key:"changed",ref:a,"onUpdate:modelValue":F[1]||(F[1]=K=>r.value=K),placeholder:"New password",type:"password"},null,512),[[Kt,r.value]]),Ue(E("input",{"onUpdate:modelValue":F[2]||(F[2]=K=>o.value=K),class:Pe({"text-danger":o.value&&!c.value}),placeholder:"Repeat new password",type:"password",onKeyup:mt(_,["enter"])},null,34),[[Kt,o.value]])]),_:1},8,["open","return-to"]))}}),Ju=ve({__name:"RenameEntryDialog",props:{entry:{type:Object,required:!0},modal:String,returnTo:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=e,s=I(),r=I(null),o=re(()=>Object.keys(n.entry.attrs).filter(u)),l=t;function i(){s.value=o.value.length==1?o.value[0]:void 0}function a(){const c=n.entry.attrs[s.value||""];c&&c[0]&&(l("update:modal"),l("ok",s.value+"="+c[0]))}function u(c){const f=n.entry.meta.dn.split("=")[0];return c!=f&&!n.entry.attrs[c].every(h=>!h)}return(c,f)=>(y(),be(it,{title:"Rename entry",open:e.modal=="rename-entry","return-to":e.returnTo,onOk:a,onCancel:f[1]||(f[1]=h=>l("update:modal")),onShow:i,onShown:f[2]||(f[2]=h=>{var g;return(g=r.value)==null?void 0:g.focus()})},{default:de(()=>[E("label",null,[f[3]||(f[3]=Ie("New RDN attribute: ")),Ue(E("select",{ref_key:"select",ref:r,"onUpdate:modelValue":f[0]||(f[0]=h=>s.value=h),onKeyup:mt(a,["enter"])},[(y(!0),k(ie,null,ke(o.value,h=>(y(),k("option",{key:h},oe(h),1))),128))],544),[[hn,s.value]])])]),_:1},8,["open","return-to"]))}}),Yu={key:0,class:"rounded border border-front/20 mb-3 mx-4 flex-auto"},Gu={class:"flex justify-between mb-4 border-b border-front/20 bg-primary/70"},Xu={key:0,class:"py-2 ml-3"},Zu={key:1,class:"ml-2"},Qu={class:"flex ml-4 mt-2 space-x-4"},ec={class:"w-3/4 pl-4"},tc={class:"w-[90%] space-x-3"},nc=["disabled"],sc={key:0,type:"reset",accesskey:"r",tabindex:"0",class:"btn bg-secondary"},rc=ve({__name:"EntryEditor",props:{activeDn:String,baseDn:String,user:String},emits:["update:activeDn","show-attr","show-oc"],setup(e,{emit:t}){function n(A,m,b){return b.indexOf(A)==m}const s=["BUTTON","INPUT","SELECT","TEXTAREA"],r=e,o=Ye("app"),l=I(),i=I(),a=I([]),u=I(),c=re(()=>{var m;const A=Object.keys(((m=l.value)==null?void 0:m.attrs)||{});return A.sort((b,q)=>b.toLowerCase().localeCompare(q.toLowerCase())),A}),f=re(()=>{var m;const A=(m=l.value)==null?void 0:m.attrs.objectClass.map(b=>{var q;return(q=o==null?void 0:o.schema)==null?void 0:q.oc(b)}).filter(b=>b&&b.structural)[0];return A?A.name:""}),h=t;Ve(()=>r.activeDn,A=>{(!l.value||A!=l.value.meta.dn)&&(i.value=void 0),A&&l.value&&l.value.meta.isNew?u.value="discard-entry":A?Q(A,void 0,void 0):l.value&&!l.value.meta.isNew&&(l.value=void 0)});function g(A){zt(()=>{const m=A?document.getElementById(A):document.querySelector('form#entry input:not([disabled]), form#entry button[type="button"]');m&&window.setTimeout(()=>m.focus(),100)})}function O(A){const m=A.target;m.id&&s.includes(m.tagName)&&(i.value=m.id)}function T(A){l.value=A,h("update:activeDn"),g(L())}function _(A){l.value=void 0,h("update:activeDn",A)}function w(A){l.value.attrs[A]=[""],g(A+"-0")}function F(A){l.value.attrs.objectClass.push(A);const m=l.value.meta.aux.filter(b=>b<b);l.value.meta.aux.splice(m.length,1),g(L()||i.value)}function K(A){const m=l.value.attrs.objectClass.filter(b=>!A.includes(b))[0];if(m){const b=l.value.meta.aux.filter(q=>q<m);l.value.meta.aux.splice(b.length,0,m)}}function M(A,m,b){l.value.attrs[A]=m,A=="objectClass"&&(K(m),g(i.value)),b!==void 0&&g(A+"-"+b)}function L(){const A=se("must").filter(m=>!l.value.attrs[m]);return A.forEach(m=>l.value.attrs[m]=[""]),A.length?A[0]+"-0":void 0}async function Q(A,m,b){if(a.value=[],!A||A.startsWith("-")){l.value=void 0;return}const q=await fetch("api/entry/"+A);if(!q.ok){o==null||o.showError(await q.text());return}l.value=await q.json(),l.value.changed=m||[],l.value.meta.isNew=!1,document.title=A.split(",")[0],g(b)}function ge(A){var m;return((m=l.value)==null?void 0:m.changed)&&l.value.changed.includes(A)||!1}async function we(){if(a.value.length>0){g(i.value);return}l.value.changed=[];const A=await fetch("api/entry/"+l.value.meta.dn,{method:l.value.meta.isNew?"PUT":"POST",body:JSON.stringify(l.value.attrs),headers:{"Content-Type":"application/json"}});if(!A.ok){o==null||o.showError(await A.text());return}const m=await A.json();m.changed&&m.changed.length&&(o==null||o.showInfo("👍 Saved changes")),l.value.meta.isNew?(l.value.meta.isNew=!1,h("update:activeDn",l.value.meta.dn)):Q(l.value.meta.dn,m.changed,i.value)}async function G(A){const m=await fetch("api/rename/"+l.value.meta.dn,{method:"POST",body:JSON.stringify(A),headers:{"Content-Type":"application/json"}});if(!m.ok){o==null||o.showError(await m.text());return}const b=l.value.meta.dn.split(",");b.splice(0,1,A),h("update:activeDn",b.join(","))}async function ne(A){const m=await fetch("api/entry/"+A,{method:"DELETE"});if(m.ok)m.status==204&&(o==null||o.showInfo("👍 Deleted: "+A),h("update:activeDn","-"+A));else{o==null||o.showError(await m.text());return}}async function ce(A,m){var Te;const b=await fetch("api/password/"+l.value.meta.dn,{method:"POST",body:JSON.stringify({old:A,new1:m}),headers:{"Content-Type":"application/json"}});if(!b.ok){o==null||o.showError(await b.text());return}const q=await b.json();q!==void 0&&(l.value.attrs.userPassword=[q],(Te=l.value.changed)==null||Te.push("userPassword"))}async function j(){const A=await fetch("api/ldif/"+l.value.meta.dn);if(!A.ok){o==null||o.showError(await A.text());return}const m=document.createElement("a"),b=URL.createObjectURL(await A.blob());m.href=b,m.download=l.value.meta.dn.split(",")[0].split("=")[1]+".ldif",document.body.appendChild(m),m.click()}function se(A){const m=l.value.attrs.objectClass.filter(b=>b&&b!="top").map(b=>{var q;return(q=o==null?void 0:o.schema)==null?void 0:q.oc(b)}).flatMap(b=>b?b.$collect(A):[]).filter(n);return m.sort(),m}function xe(A,m){if(m){const b=a.value.indexOf(A);b>=0&&a.value.splice(b,1)}else a.value.includes(A)||a.value.push(A)}return(A,m)=>l.value?(y(),k("div",Yu,[J(Ku,{modal:u.value,"onUpdate:modal":m[0]||(m[0]=b=>u.value=b),dn:l.value.meta.dn,"return-to":i.value,onOk:T},null,8,["modal","dn","return-to"]),J(Mu,{modal:u.value,"onUpdate:modal":m[1]||(m[1]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:T},null,8,["modal","entry","return-to"]),J(Ju,{modal:u.value,"onUpdate:modal":m[2]||(m[2]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:G},null,8,["modal","entry","return-to"]),J(Lu,{modal:u.value,"onUpdate:modal":m[3]||(m[3]=b=>u.value=b),dn:l.value.meta.dn,"return-to":i.value,onOk:ne},null,8,["modal","dn","return-to"]),J(Fu,{modal:u.value,"onUpdate:modal":m[4]||(m[4]=b=>u.value=b),dn:r.activeDn,"return-to":i.value,onOk:_,onShown:m[5]||(m[5]=b=>h("update:activeDn"))},null,8,["modal","dn","return-to"]),J(zu,{modal:u.value,"onUpdate:modal":m[6]||(m[6]=b=>u.value=b),entry:l.value,"return-to":i.value,user:e.user,onOk:ce},null,8,["modal","entry","return-to","user"]),J(Or,{modal:u.value,"onUpdate:modal":m[7]||(m[7]=b=>u.value=b),attr:"jpegPhoto",dn:l.value.meta.dn,"return-to":i.value,onOk:Q},null,8,["modal","dn","return-to"]),J(Or,{modal:u.value,"onUpdate:modal":m[8]||(m[8]=b=>u.value=b),attr:"thumbnailPhoto",dn:l.value.meta.dn,"return-to":i.value,onOk:Q},null,8,["modal","dn","return-to"]),J(Ya,{modal:u.value,"onUpdate:modal":m[9]||(m[9]=b=>u.value=b),entry:l.value,"return-to":i.value,onOk:F},null,8,["modal","entry","return-to"]),J(Ja,{modal:u.value,"onUpdate:modal":m[10]||(m[10]=b=>u.value=b),entry:l.value,attributes:se("may"),"return-to":i.value,onOk:w,onShowModal:m[11]||(m[11]=b=>{u.value=b})},null,8,["modal","entry","attributes","return-to"]),E("nav",Gu,[l.value.meta.isNew?(y(),k("div",Xu,[J(vn,{dn:l.value.meta.dn,oc:f.value},null,8,["dn","oc"])])):(y(),k("div",Zu,[J(Zo,null,{"button-content":de(()=>[J(vn,{dn:l.value.meta.dn,oc:f.value},null,8,["dn","oc"])]),default:de(()=>[E("li",{onClick:m[12]||(m[12]=b=>{u.value="new-entry"}),role:"menuitem"},"Add child…"),E("li",{onClick:m[13]||(m[13]=b=>{u.value="copy-entry"}),role:"menuitem"},"Copy…"),E("li",{onClick:m[14]||(m[14]=b=>{u.value="rename-entry"}),role:"menuitem"},"Rename…"),E("li",{onClick:j,role:"menuitem"},"Export"),E("li",{onClick:m[15]||(m[15]=b=>{u.value="delete-entry"}),class:"text-danger",role:"menuitem"},"Delete…")]),_:1})])),l.value.meta.isNew?(y(),k("div",{key:2,class:"control text-2xl mr-2",onClick:m[16]||(m[16]=b=>{u.value="discard-entry"}),title:"close"},"⊗")):(y(),k("div",{key:3,class:"control text-xl mr-2",title:"close",onClick:m[17]||(m[17]=b=>h("update:activeDn"))},"⊗"))]),E("form",{id:"entry",class:"space-y-4 my-4",onSubmit:Wt(we,["prevent"]),onReset:m[22]||(m[22]=b=>Q(l.value.meta.dn,void 0,void 0)),onFocusin:O},[(y(!0),k(ie,null,ke(c.value,b=>{var q,Te;return y(),be(ju,{key:b,"base-dn":r.baseDn,attr:(Te=(q=yn(o))==null?void 0:q.schema)==null?void 0:Te.attr(b),meta:l.value.meta,values:l.value.attrs[b],changed:ge(b),may:se("may").includes(b),must:se("must").includes(b),onUpdate:M,onReloadForm:Q,onValid:Le=>xe(b,Le),onShowModal:m[18]||(m[18]=Le=>{u.value=Le}),onShowAttr:m[19]||(m[19]=Le=>h("show-attr",Le)),onShowOc:m[20]||(m[20]=Le=>h("show-oc",Le))},null,8,["base-dn","attr","meta","values","changed","may","must","onValid"])}),128)),E("div",Qu,[m[23]||(m[23]=E("div",{class:"w-1/4"},null,-1)),E("div",ec,[E("div",tc,[E("button",{type:"submit",class:"btn bg-primary/70",tabindex:"0",accesskey:"s",disabled:a.value.length!=0},"Submit",8,nc),l.value.meta.isNew?Z("",!0):(y(),k("button",sc,"Reset")),l.value.meta.isNew?Z("",!0):(y(),k("button",{key:1,class:"btn float-right bg-secondary",accesskey:"a",tabindex:"0",onClick:m[21]||(m[21]=Wt(b=>{u.value="add-attribute"},["prevent"]))}," Add attribute… "))])])])],32)])):Z("",!0)}}),oc=ve({__name:"LdifImportDialog",props:{modal:String},emits:["ok","update:modal"],setup(e,{emit:t}){const n=I(""),s=t;function r(){n.value=""}function o(i){const a=i.target,u=a.files,c=u[0],f=new FileReader;f.onload=function(){n.value=f.result,a.value=""},f.readAsText(c)}async function l(){if(!n.value)return;s("update:modal"),(await fetch("api/ldif",{method:"POST",body:n.value})).ok&&s("ok")}return(i,a)=>(y(),be(it,{title:"Import",open:e.modal=="ldif-import","ok-title":"Import",onShow:r,onOk:l,onCancel:a[1]||(a[1]=u=>s("update:modal"))},{default:de(()=>[Ue(E("textarea",{"onUpdate:modelValue":a[0]||(a[0]=u=>n.value=u),id:"ldif-data",placeholder:"Paste or upload LDIF"},null,512),[[Kt,n.value]]),E("input",{type:"file",onChange:o,accept:".ldif"},null,32)]),_:1},8,["open"]))}}),lc={class:"px-4 flex flex-col md:flex-row flex-wrap justify-between mt-0 py-1 bg-primary/40"},ic={class:"flex items-center"},ac={class:"flex items-center space-x-4 text-lg"},uc=["onClick"],cc=ve({__name:"NavBar",props:{baseDn:String,treeOpen:Boolean,user:String},emits:["select-dn","show-modal","show-oc","update:treeOpen"],setup(e,{emit:t}){const n=Ye("app"),s=I(null),r=I(""),o=I(!1),l=t;function i(){r.value="",zt(()=>{var a;r.value=((a=s==null?void 0:s.value)==null?void 0:a.value)||""})}return(a,u)=>(y(),k("nav",lc,[E("div",ic,[E("i",{class:"cursor-pointer glyph fa-bars fa-lg pt-1 mr-4 md:hidden",onClick:u[0]||(u[0]=c=>o.value=!o.value)}),E("i",{class:Pe(["cursor-pointer fa fa-lg mr-2",e.treeOpen?"fa-list-alt":"fa-list-ul"]),onClick:u[1]||(u[1]=c=>l("update:treeOpen",!e.treeOpen))},null,2),J(vn,{oc:"person",dn:e.user,onSelectDn:u[2]||(u[2]=c=>l("select-dn",c)),class:"text-lg"},null,8,["dn"])]),Ue(E("div",ac,[E("span",{class:"cursor-pointer",onClick:u[3]||(u[3]=c=>l("show-modal","ldif-import"))},"Import…"),J(Zo,{title:"Schema"},{default:de(()=>{var c,f;return[(y(!0),k(ie,null,ke((f=(c=yn(n))==null?void 0:c.schema)==null?void 0:f.objectClasses.keys(),h=>(y(),k("li",{role:"menuitem",key:h,onClick:g=>l("show-oc",h)},oe(h),9,uc))),128))]}),_:1}),E("form",{onSubmit:Wt(i,["prevent"])},[E("input",{class:"glyph px-2 py-1 rounded focus:border focus:border-front/80 outline-none text-front dark:bg-gray-800/80",autofocus:"",placeholder:" ",name:"q",onFocusin:u[4]||(u[4]=c=>{var f;(f=s.value)==null||f.select()}),accesskey:"k",onKeyup:u[5]||(u[5]=mt(c=>{r.value=""},["esc"])),id:"nav-search",ref_key:"input",ref:s},null,544),J(Go,{for:"nav-search",onSelectDn:u[6]||(u[6]=c=>{r.value="",l("select-dn",c)}),shorten:e.baseDn,query:r.value},null,8,["shorten","query"])],32)],512),[[Vs,!o.value]])]))}}),fc={class:"header"},dc={key:0,class:"mt-2"},pc={class:"list-disc"},hc=["onClick"],mc={key:1,class:"mt-2"},vc={class:"list-disc"},gc=["onClick"],yc={key:2,class:"mt-2"},bc={class:"list-disc"},wc=["onClick"],xc=ve({__name:"ObjectClassCard",props:{modelValue:String},emits:["show-attr","show-oc","update:modelValue"],setup(e,{emit:t}){const n=e,s=Ye("app"),r=re(()=>{var l;return(l=s==null?void 0:s.schema)==null?void 0:l.oc(n.modelValue)}),o=t;return(l,i)=>e.modelValue&&r.value?(y(),be(Ko,{key:0,title:r.value.name||"",class:"ml-4",onClose:i[0]||(i[0]=a=>o("update:modelValue"))},{default:de(()=>{var a;return[E("div",fc,oe(r.value.desc),1),(a=r.value.sup)!=null&&a.length?(y(),k("div",dc,[i[1]||(i[1]=E("i",null,"Superclasses:",-1)),E("ul",pc,[(y(!0),k(ie,null,ke(r.value.sup,u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("update:modelValue",u)},oe(u),9,hc)]))),128))])])):Z("",!0),r.value.$collect("must").length?(y(),k("div",mc,[i[2]||(i[2]=E("i",null,"Required attributes:",-1)),E("ul",vc,[(y(!0),k(ie,null,ke(r.value.$collect("must"),u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("show-attr",u)},oe(u),9,gc)]))),128))])])):Z("",!0),r.value.$collect("may").length?(y(),k("div",yc,[i[3]||(i[3]=E("i",null,"Optional attributes:",-1)),E("ul",bc,[(y(!0),k(ie,null,ke(r.value.$collect("may"),u=>(y(),k("li",{key:u},[E("span",{class:"cursor-pointer",onClick:c=>o("show-attr",u)},oe(u),9,wc)]))),128))])])):Z("",!0)]}),_:1},8,["title"])):Z("",!0)}}),_c={class:"rounded-md bg-front/[.07] p-4 shadow-md shadow-front/20"},Sc={key:0,class:"list-unstyled"},Cc=["id"],$c=["onClick"],kc={key:1,class:"mr-4"},Tc={key:0},Oc=ve({__name:"TreeView",props:{activeDn:String},emits:["base-dn","update:activeDn"],setup(e,{emit:t}){class n{constructor(c){X(this,"dn");X(this,"level");X(this,"hasSubordinates");X(this,"structuralObjectClass");X(this,"open",!1);X(this,"subordinates",[]);this.dn=c.dn,this.level=this.dn.split(",").length,this.hasSubordinates=c.hasSubordinates,this.structuralObjectClass=c.structuralObjectClass,this.hasSubordinates&&(this.subordinates=[],this.open=!1)}find(c){if(this.dn==c)return this;const f=","+this.dn;if(!(!c.endsWith(f)||!this.hasSubordinates))return this.subordinates.map(h=>h.find(c)).filter(h=>h)[0]}get loaded(){return!this.hasSubordinates||this.subordinates.length>0}parentDns(c){const f=[];for(let h=this.dn;;){f.push(h);const g=h.indexOf(",");if(g==-1||h==c)break;h=h.substring(g+1)}return f}visible(){return!this.hasSubordinates||!this.open?[this]:[this].concat(this.subordinates.flatMap(c=>c.visible()))}}const s=e,r=I(),o=t;Jt(async()=>{var u;await i("base"),o("base-dn",(u=r.value)==null?void 0:u.dn)}),Ve(()=>s.activeDn,async u=>{var h,g,O;if(!u)return;if(u=="-"||u=="base"){await i("base");return}const c=new mn(u||r.value.dn),f=[];for(let T=c;T&&(f.push(T),T.toString()!=((h=r.value)==null?void 0:h.dn));T=T.parent);f.reverse();for(let T=0;T<f.length;++T){const _=f[T].toString(),w=(g=r.value)==null?void 0:g.find(_);if(!w)break;w.loaded||await i(_),w.open=!0}(O=r.value)!=null&&O.find(c.toString())||(await i(c.parent.toString()),r.value.find(c.parent.toString()).open=!0)});async function l(u){var f;o("update:activeDn",u);const c=(f=r.value)==null?void 0:f.find(u);c&&c.hasSubordinates&&!c.open&&await a(c)}async function i(u){var g;const c=await fetch("api/tree/"+u);if(!c.ok)return;const f=await c.json();if(f.sort((O,T)=>O.dn.toLowerCase().localeCompare(T.dn.toLowerCase())),u=="base"){r.value=new n(f[0]),await a(r.value);return}const h=(g=r.value)==null?void 0:g.find(u);h&&(h.subordinates=f.map(O=>new n(O)),h.hasSubordinates=h.subordinates.length>0)}async function a(u){!u.open&&!u.loaded&&await i(u.dn),u.open=!u.open}return(u,c)=>(y(),k("div",_c,[r.value?(y(),k("ul",Sc,[(y(!0),k(ie,null,ke(r.value.visible(),f=>(y(),k("li",{key:f.dn,id:f.dn,class:Pe(f.structuralObjectClass)},[(y(!0),k(ie,null,ke(f.level-r.value.level,h=>(y(),k("span",{class:"ml-6",key:h}))),128)),f.hasSubordinates?(y(),k("span",{key:0,class:"control",onClick:h=>a(f)},[E("i",{class:Pe("control p-0 fa fa-chevron-circle-"+(f.open?"down":"right"))},null,2)],8,$c)):(y(),k("span",kc)),J(vn,{dn:f.dn,oc:f.structuralObjectClass,class:Pe(["tree-link whitespace-nowrap text-front/80",{active:e.activeDn==f.dn}]),onSelectDn:l},{default:de(()=>[f.level?Z("",!0):(y(),k("span",Tc,oe(f.dn),1))]),_:2},1032,["dn","oc","class"])],10,Cc))),128))])):Z("",!0)]))}}),Ec=Xo(Oc,[["__scopeId","data-v-fb9ff985"]]),Ac={key:0,id:"app"},Pc={class:"flex container"},Dc={class:"space-y-4"},jc={class:"flex-auto mt-4"},Nc=ve({__name:"App",setup(e){const t=I(),n=I(),s=I(!0),r=I(),o=I(),l=I(),i=I(),a=I(),u=I();_o("app",{get schema(){return i.value},showInfo:f,showError:g,showException:O,showWarning:h}),Jt(async()=>{const T=await fetch("api/whoami");if(T.ok){t.value=await T.json();const _=await fetch("api/schema");_.ok&&(i.value=new nu(await _.json()))}}),Ve(u,T=>{T&&(a.value=void 0)}),Ve(a,T=>{T&&(u.value=void 0)});function f(T){l.value={counter:5,cssClass:"bg-emerald-300",msg:""+T},setTimeout(()=>{l.value=void 0},5e3)}function h(T){l.value={counter:10,cssClass:"bg-amber-200",msg:"⚠️ "+T},setTimeout(()=>{l.value=void 0},1e4)}function g(T){l.value={counter:60,cssClass:"bg-red-300",msg:"⛔ "+T},setTimeout(()=>{l.value=void 0},6e4)}function O(T){const _=document.createElement("span");_.innerHTML=T.replace(`
18
18
  `," ");const w=_.getElementsByTagName("title");for(let M=0;M<w.length;++M)_.removeChild(w[M]);let F="";const K=_.getElementsByTagName("h1");for(let M=0;M<K.length;++M)F=F+K[M].textContent+": ",_.removeChild(K[M]);g(F+" "+_.textContent)}return(T,_)=>t.value?(y(),k("div",Ac,[J(cc,{treeOpen:s.value,"onUpdate:treeOpen":_[0]||(_[0]=w=>s.value=w),dn:r.value,"base-dn":n.value,user:t.value,onShowModal:_[1]||(_[1]=w=>{o.value=w}),onSelectDn:_[2]||(_[2]=w=>{r.value=w}),onShowOc:_[3]||(_[3]=w=>{a.value=w})},null,8,["treeOpen","dn","base-dn","user"]),J(oc,{modal:o.value,"onUpdate:modal":_[4]||(_[4]=w=>o.value=w),onOk:_[5]||(_[5]=w=>{r.value="-"})},null,8,["modal"]),E("div",Pc,[E("div",Dc,[Ue(J(Ec,{activeDn:r.value,"onUpdate:activeDn":_[6]||(_[6]=w=>r.value=w),onBaseDn:_[7]||(_[7]=w=>{n.value=w})},null,8,["activeDn"]),[[Vs,s.value]]),J(xc,{modelValue:a.value,"onUpdate:modelValue":_[8]||(_[8]=w=>a.value=w),onShowAttr:_[9]||(_[9]=w=>{u.value=w}),onShowOc:_[10]||(_[10]=w=>{a.value=w})},null,8,["modelValue"]),J(Fa,{modelValue:u.value,"onUpdate:modelValue":_[11]||(_[11]=w=>u.value=w),onShowAttr:_[12]||(_[12]=w=>{u.value=w})},null,8,["modelValue"])]),E("div",jc,[J(In,{name:"fade"},{default:de(()=>[l.value?(y(),k("div",{key:0,class:Pe([l.value.cssClass,"rounded mx-4 mb-4 p-3 border border-front/70 text-front/70 dark:text-back/70"])},[Ie(oe(l.value.msg)+" ",1),E("span",{class:"float-right control",onClick:_[13]||(_[13]=w=>l.value=void 0)},"✖")],2)):Z("",!0)]),_:1}),J(rc,{activeDn:r.value,"onUpdate:activeDn":_[14]||(_[14]=w=>r.value=w),user:t.value,onShowAttr:_[15]||(_[15]=w=>{u.value=w}),onShowOc:_[16]||(_[16]=w=>{a.value=w})},null,8,["activeDn","user"])])]),Z("",!0)])):Z("",!0)}});$a(Nc).mount("#app");
@@ -1,4 +1,4 @@
1
- .ui-modal-body label{display:block;color:rgb(var(--color-front) / .7)}.ui-modal-body input,.ui-modal-body textarea,.ui-modal-body select{margin-top:.25rem;width:100%;border-radius:.25rem;border-width:1px;border-color:rgb(var(--color-front) / .2);background-color:#e5e7ebcc;padding:.5rem;--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px}.ui-modal-body input:focus,.ui-modal-body textarea:focus,.ui-modal-body select:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}@media (prefers-color-scheme: dark){.ui-modal-body input,.ui-modal-body textarea,.ui-modal-body select{background-color:#1f2937cc}}.ui-modal-footer button{min-width:5rem}.bounce-enter-active{animation:bounce-in .5s}.bounce-leave-active{animation:bounce-in .5s reverse}@keyframes bounce-in{0%{transform:scale(0)}50%{transform:scale(1.15)}to{transform:scale(1)}}.ui-popover [role=menuitem]{cursor:pointer;padding-left:1rem;padding-right:1rem}.ui-popover [role=menuitem].selected{background-color:rgb(var(--color-primary) / .4)}div.optional span.oc[data-v-458112a0]{color:rgb(var(--color-front) / .7)}div.illegal[data-v-458112a0],input.illegal[data-v-458112a0]{--tw-text-opacity: 1;color:rgb(var(--color-danger) / var(--tw-text-opacity, 1));text-decoration-line:line-through}div.rdn span.oc[data-v-458112a0],input.structural[data-v-458112a0]{font-weight:700}.add-btn[data-v-458112a0],.remove-btn[data-v-458112a0],.fa-info-circle[data-v-458112a0],.fa-question-circle[data-v-458112a0]{font-size:1rem;line-height:1.5rem;opacity:.4}.add-btn[data-v-458112a0]:hover,.remove-btn[data-v-458112a0]:hover,.fa-info-circle[data-v-458112a0]:hover,.fa-question-circle[data-v-458112a0]:hover{opacity:.7}input.disabled[data-v-458112a0],input[data-v-458112a0]:disabled{border-bottom-width:0px}input.auto[data-v-458112a0]{--tw-text-opacity: 1;color:rgb(var(--color-primary) / var(--tw-text-opacity, 1))}div.rdn span.oc[data-v-458112a0]:after{content:" (rdn)";font-weight:200}.active[data-v-fb9ff985]{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}.control{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-top:.25rem;padding-right:.25rem;line-height:1;opacity:.7}.control:hover{opacity:.9}button,.btn,[type=button]{border-radius:.25rem;padding:.5rem .75rem;font-weight:500;--tw-text-opacity: 1;color:rgb(var(--color-back) / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px}@media (prefers-color-scheme: dark){button,.btn,[type=button]{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}}button.btn{border-width:2px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(var(--color-back) / var(--tw-border-opacity, 1))}button.btn:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}@media (prefers-color-scheme: dark){button.btn:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-front) / var(--tw-border-opacity, 1))}}select{background:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIj4KICA8cG9seWdvbiBmaWxsPSJncmF5IiBwb2ludHM9IjEuNDEgNC42NyAyLjQ4IDMuMTggMy41NCA0LjY3IDEuNDEgNC42NyIgLz4KICA8cG9seWdvbiBmaWxsPSJncmF5IiBwb2ludHM9IjMuNTQgNS4zMyAyLjQ4IDYuODIgMS40MSA1LjMzIDMuNTQgNS4zMyIgLz4KPC9zdmc+) no-repeat right;-webkit-appearance:none;-moz-appearance:none;appearance:none}.glyph{font-family:sans-serif,FontAwesome;font-style:normal}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-front: 32 32 32;--color-back: 255 255 255;--color-primary: 23 162 184;--color-secondary: 108 117 125;--color-danger: 229 57 53}@media (prefers-color-scheme: dark){:root{--color-front: 255 255 255;--color-back: 16 16 16}}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-top-0\.5{top:-.125rem}.left-0{left:0}.top-0{top:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.float-right{float:right}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mr-1{margin-right:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-full{height:100%}.max-h-\[120px\]{max-height:120px}.max-h-full{max-height:100%}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[90\%\]{width:90%}.w-full{width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-\[120px\]{max-width:120px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-auto{flex:1 1 auto}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-front\/30>:not([hidden])~:not([hidden]){border-color:rgb(var(--color-front) / .3)}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-x-0{border-left-width:0px;border-right-width:0px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0px}.border-solid{border-style:solid}.border-back{--tw-border-opacity: 1;border-color:rgb(var(--color-back) / var(--tw-border-opacity, 1))}.border-front\/20{border-color:rgb(var(--color-front) / .2)}.border-front\/40{border-color:rgb(var(--color-front) / .4)}.border-front\/70{border-color:rgb(var(--color-front) / .7)}.border-primary{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-back{--tw-bg-opacity: 1;background-color:rgb(var(--color-back) / var(--tw-bg-opacity, 1))}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(var(--color-danger) / var(--tw-bg-opacity, 1))}.bg-danger\/80{background-color:rgb(var(--color-danger) / .8)}.bg-emerald-300{--tw-bg-opacity: 1;background-color:rgb(110 231 183 / var(--tw-bg-opacity, 1))}.bg-front{--tw-bg-opacity: 1;background-color:rgb(var(--color-front) / var(--tw-bg-opacity, 1))}.bg-front\/5{background-color:rgb(var(--color-front) / .05)}.bg-front\/60{background-color:rgb(var(--color-front) / .6)}.bg-front\/\[\.07\]{background-color:rgb(var(--color-front) / .07)}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-200\/80{background-color:#e5e7ebcc}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary) / var(--tw-bg-opacity, 1))}.bg-primary\/40{background-color:rgb(var(--color-primary) / .4)}.bg-primary\/70{background-color:rgb(var(--color-primary) / .7)}.bg-primary\/80{background-color:rgb(var(--color-primary) / .8)}.bg-red-300{--tw-bg-opacity: 1;background-color:rgb(252 165 165 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(var(--color-secondary) / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-1{padding-bottom:.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pt-1{padding-top:.25rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-none{line-height:1}.leading-normal{line-height:1.5}.text-back{--tw-text-opacity: 1;color:rgb(var(--color-back) / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(var(--color-danger) / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-front{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}.text-front\/70{color:rgb(var(--color-front) / .7)}.text-front\/80{color:rgb(var(--color-front) / .8)}.text-primary{--tw-text-opacity: 1;color:rgb(var(--color-primary) / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(var(--color-secondary) / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-front\/20{--tw-shadow-color: rgb(var(--color-front) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus-within\:border-b:focus-within{border-bottom-width:1px}.hover\:bg-primary\/40:hover{background-color:rgb(var(--color-primary) / .4)}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.focus\:border:focus{border-width:1px}.focus\:border-front\/80:focus{border-color:rgb(var(--color-front) / .8)}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.md\:hidden{display:none}.md\:flex-row{flex-direction:row}}@media (prefers-color-scheme: dark){.dark\:bg-back\/70{background-color:rgb(var(--color-back) / .7)}.dark\:bg-front\/10{background-color:rgb(var(--color-front) / .1)}.dark\:bg-gray-800\/80{background-color:#1f2937cc}.dark\:text-back\/70{color:rgb(var(--color-back) / .7)}.dark\:text-front{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}}/*!
1
+ .ui-modal-body label{display:block;color:rgb(var(--color-front) / .7)}.ui-modal-body input,.ui-modal-body textarea,.ui-modal-body select{margin-top:.25rem;width:100%;border-radius:.25rem;border-width:1px;border-color:rgb(var(--color-front) / .2);background-color:#e5e7ebcc;padding:.5rem;--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px}.ui-modal-body input:focus,.ui-modal-body textarea:focus,.ui-modal-body select:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}@media (prefers-color-scheme: dark){.ui-modal-body input,.ui-modal-body textarea,.ui-modal-body select{background-color:#1f2937cc}}.ui-modal-footer button{min-width:5rem}.bounce-enter-active{animation:bounce-in .5s}.bounce-leave-active{animation:bounce-in .5s reverse}@keyframes bounce-in{0%{transform:scale(0)}50%{transform:scale(1.15)}to{transform:scale(1)}}.ui-popover [role=menuitem]{cursor:pointer;padding-left:1rem;padding-right:1rem}.ui-popover [role=menuitem].selected{background-color:rgb(var(--color-primary) / .4)}div.optional span.oc[data-v-458112a0]{color:rgb(var(--color-front) / .7)}div.illegal[data-v-458112a0],input.illegal[data-v-458112a0]{--tw-text-opacity: 1;color:rgb(var(--color-danger) / var(--tw-text-opacity, 1));text-decoration-line:line-through}div.rdn span.oc[data-v-458112a0],input.structural[data-v-458112a0]{font-weight:700}.add-btn[data-v-458112a0],.remove-btn[data-v-458112a0],.fa-info-circle[data-v-458112a0],.fa-question-circle[data-v-458112a0]{font-size:1rem;line-height:1.5rem;opacity:.4}.add-btn[data-v-458112a0]:hover,.remove-btn[data-v-458112a0]:hover,.fa-info-circle[data-v-458112a0]:hover,.fa-question-circle[data-v-458112a0]:hover{opacity:.7}input.disabled[data-v-458112a0],input[data-v-458112a0]:disabled{border-bottom-width:0px}input.auto[data-v-458112a0]{--tw-text-opacity: 1;color:rgb(var(--color-primary) / var(--tw-text-opacity, 1))}div.rdn span.oc[data-v-458112a0]:after{content:" (rdn)";font-weight:200}.active[data-v-fb9ff985]{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}.control{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-top:.25rem;padding-right:.25rem;line-height:1;opacity:.7}.control:hover{opacity:.9}button,.btn,[type=button]{border-radius:.25rem;padding:.5rem .75rem;font-weight:500;--tw-text-opacity: 1;color:rgb(var(--color-back) / var(--tw-text-opacity, 1));outline:2px solid transparent;outline-offset:2px}@media (prefers-color-scheme: dark){button,.btn,[type=button]{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}}button.btn{border-width:2px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(var(--color-back) / var(--tw-border-opacity, 1))}button.btn:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}@media (prefers-color-scheme: dark){button.btn:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-front) / var(--tw-border-opacity, 1))}}select{background:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDEwIj4KICA8cG9seWdvbiBmaWxsPSJncmF5IiBwb2ludHM9IjEuNDEgNC42NyAyLjQ4IDMuMTggMy41NCA0LjY3IDEuNDEgNC42NyIgLz4KICA8cG9seWdvbiBmaWxsPSJncmF5IiBwb2ludHM9IjMuNTQgNS4zMyAyLjQ4IDYuODIgMS40MSA1LjMzIDMuNTQgNS4zMyIgLz4KPC9zdmc+) no-repeat right;-webkit-appearance:none;-moz-appearance:none;appearance:none}.glyph{font-family:sans-serif,FontAwesome;font-style:normal}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-front: 32 32 32;--color-back: 255 255 255;--color-primary: 23 162 184;--color-secondary: 108 117 125;--color-danger: 229 57 53}@media (prefers-color-scheme: dark){:root{--color-front: 255 255 255;--color-back: 16 16 16}}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-top-0\.5{top:-.125rem}.left-0{left:0}.top-0{top:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.float-right{float:right}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mr-1{margin-right:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.h-full{height:100%}.max-h-\[120px\]{max-height:120px}.max-h-full{max-height:100%}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[90\%\]{width:90%}.w-full{width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-\[120px\]{max-width:120px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-auto{flex:1 1 auto}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-front\/30>:not([hidden])~:not([hidden]){border-color:rgb(var(--color-front) / .3)}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-x-0{border-left-width:0px;border-right-width:0px}.border-b{border-bottom-width:1px}.border-t-0{border-top-width:0px}.border-solid{border-style:solid}.border-back{--tw-border-opacity: 1;border-color:rgb(var(--color-back) / var(--tw-border-opacity, 1))}.border-front\/20{border-color:rgb(var(--color-front) / .2)}.border-front\/40{border-color:rgb(var(--color-front) / .4)}.border-front\/70{border-color:rgb(var(--color-front) / .7)}.border-primary{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-back{--tw-bg-opacity: 1;background-color:rgb(var(--color-back) / var(--tw-bg-opacity, 1))}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(var(--color-danger) / var(--tw-bg-opacity, 1))}.bg-danger\/80{background-color:rgb(var(--color-danger) / .8)}.bg-emerald-300{--tw-bg-opacity: 1;background-color:rgb(110 231 183 / var(--tw-bg-opacity, 1))}.bg-front{--tw-bg-opacity: 1;background-color:rgb(var(--color-front) / var(--tw-bg-opacity, 1))}.bg-front\/5{background-color:rgb(var(--color-front) / .05)}.bg-front\/60{background-color:rgb(var(--color-front) / .6)}.bg-front\/\[\.07\]{background-color:rgb(var(--color-front) / .07)}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-200\/80{background-color:#e5e7ebcc}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary) / var(--tw-bg-opacity, 1))}.bg-primary\/40{background-color:rgb(var(--color-primary) / .4)}.bg-primary\/70{background-color:rgb(var(--color-primary) / .7)}.bg-primary\/80{background-color:rgb(var(--color-primary) / .8)}.bg-red-300{--tw-bg-opacity: 1;background-color:rgb(252 165 165 / var(--tw-bg-opacity, 1))}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(var(--color-secondary) / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-1{padding-bottom:.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pt-1{padding-top:.25rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-none{line-height:1}.leading-normal{line-height:1.5}.text-back{--tw-text-opacity: 1;color:rgb(var(--color-back) / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(var(--color-danger) / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-front{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}.text-front\/70{color:rgb(var(--color-front) / .7)}.text-front\/80{color:rgb(var(--color-front) / .8)}.text-primary{--tw-text-opacity: 1;color:rgb(var(--color-primary) / var(--tw-text-opacity, 1))}.text-secondary{--tw-text-opacity: 1;color:rgb(var(--color-secondary) / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-front\/20{--tw-shadow-color: rgb(var(--color-front) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus-within\:border-b:focus-within{border-bottom-width:1px}.hover\:bg-primary\/40:hover{background-color:rgb(var(--color-primary) / .4)}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.focus\:border:focus{border-width:1px}.focus\:border-front\/80:focus{border-color:rgb(var(--color-front) / .8)}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary) / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.md\:hidden{display:none}.md\:flex-row{flex-direction:row}}@media (prefers-color-scheme: dark){.dark\:bg-back\/70{background-color:rgb(var(--color-back) / .7)}.dark\:bg-front\/10{background-color:rgb(var(--color-front) / .1)}.dark\:bg-gray-800\/80{background-color:#1f2937cc}.dark\:text-back\/70{color:rgb(var(--color-back) / .7)}.dark\:text-front{--tw-text-opacity: 1;color:rgb(var(--color-front) / var(--tw-text-opacity, 1))}}/*!
2
2
  * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3
3
  * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
4
  */@font-face{font-family:FontAwesome;src:url(./fontawesome-webfont-G5YE5S7X.eot?v=4.7.0);src:url(./fontawesome-webfont-G5YE5S7X.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(./fontawesome-webfont-B-jkhYfk.woff2?v=4.7.0) format("woff2"),url(./fontawesome-webfont-CDK5bt4p.woff?v=4.7.0) format("woff"),url(./fontawesome-webfont-CQDK8MU3.ttf?v=4.7.0) format("truetype"),url(./fontawesome-webfont-D13rzr4g.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font: 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
@@ -12,8 +12,8 @@
12
12
  <link rel="icon" href="./favicon.ico">
13
13
 
14
14
  <title>Directory</title>
15
- <script type="module" crossorigin src="./assets/index-CFKR_4mS.js"></script>
16
- <link rel="stylesheet" crossorigin href="./assets/index-Cqyp98Nt.css">
15
+ <script type="module" crossorigin src="./assets/index-CZWuB-hf.js"></script>
16
+ <link rel="stylesheet" crossorigin href="./assets/index-qocMa2qY.css">
17
17
  </head>
18
18
  <body class="bg-back text-front">
19
19
  <div id="app"></div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ldap-ui
3
- Version: 0.9.13
3
+ Version: 0.9.15
4
4
  Summary: A fast and versatile LDAP editor
5
5
  Author: dnknth
6
6
  License: MIT License
@@ -1,24 +1,24 @@
1
- ldap_ui/__init__.py,sha256=oHV3WYS3-LR5UTVkWy2E4844AlkOvCrBIfkX3hFLOH0,23
1
+ ldap_ui/__init__.py,sha256=PPxUSD_g1KMh3wdAtX6CMb4gLw5y0_nXjKdNFQVNkvc,23
2
2
  ldap_ui/__main__.py,sha256=SfpNGw1tlunqLobN8T-7GT47BQBw_c9gO2ANgXkNO9U,1802
3
3
  ldap_ui/app.py,sha256=eLRed3iVyrE56CeYBmE0nW09LKh_3Ztc1_ZON37dv8Q,8161
4
- ldap_ui/ldap_api.py,sha256=bcwjkVtckTWTkLyHEd4YO1Orwk9W4dCoEuOrVu_FGq0,15932
4
+ ldap_ui/ldap_api.py,sha256=IXGiBhoVT2aSqxapUQ1j81CErsR1pe8BZP5R9WvKVU4,15926
5
5
  ldap_ui/ldap_helpers.py,sha256=1Sq2hwndwzETb3cPpCoHBF8r-JmAaWh87-Pl2inZRy8,3675
6
6
  ldap_ui/schema.py,sha256=LNIHTlkcJYPdtZ0RZ9a_-KejVGWCGuMwtDDD8tSaprY,4515
7
7
  ldap_ui/settings.py,sha256=UjCB24epLLUF0ECLb5MulfHPNGjEG57ZS2HXVFJ_k3Y,2844
8
8
  ldap_ui/statics/favicon.ico,sha256=_PMMM_C1ER5cpJTXZcRgISR4igj44kA4u8Trl-Ko3L0,4286
9
- ldap_ui/statics/index.html,sha256=V_ggSd1rLUmLu6mMz6Vz2ri2YmFH1zzIwmlkxPhDX9g,827
9
+ ldap_ui/statics/index.html,sha256=XPiaj5Hm5qb11Fy18HiLMsvm6J6wHi7Ew5uUhnsT2jM,827
10
10
  ldap_ui/statics/assets/fontawesome-webfont-B-jkhYfk.woff2,sha256=Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8_4,77160
11
11
  ldap_ui/statics/assets/fontawesome-webfont-CDK5bt4p.woff,sha256=ugxZ3rVFD1y0Gz-TYJ7i0NmVQVh33foiPoqKdTNHTwc,98024
12
12
  ldap_ui/statics/assets/fontawesome-webfont-CQDK8MU3.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
13
13
  ldap_ui/statics/assets/fontawesome-webfont-D13rzr4g.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
14
14
  ldap_ui/statics/assets/fontawesome-webfont-G5YE5S7X.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
15
- ldap_ui/statics/assets/index-CFKR_4mS.js,sha256=iSq2Mebp0wPJB_XdjHYKEqQDpXmwnvGno1fy3SrvCm4,122094
16
- ldap_ui/statics/assets/index-CFKR_4mS.js.gz,sha256=aBbYakBGoJqKfzuar_uyLMvJOwPZckWmzoh92VvlcVA,43662
17
- ldap_ui/statics/assets/index-Cqyp98Nt.css,sha256=w0Q0BrybNWcOTveFL8xVPWigr26BZ6UCnl2B-rg7zU8,48206
18
- ldap_ui/statics/assets/index-Cqyp98Nt.css.gz,sha256=lt2DSR6udaDED77ejBX3AcTGVMCgWaf48TAc9i7gWfo,11536
19
- ldap_ui-0.9.13.dist-info/licenses/LICENSE.txt,sha256=UpJ0sDIqHxbOtzy1EG4bCHs9R_99ODxxPDK4NZ0g3I0,1042
20
- ldap_ui-0.9.13.dist-info/METADATA,sha256=IcyuSPBoeORIstCzp2kwjWBrurtvHfW50aXExT5oElU,7894
21
- ldap_ui-0.9.13.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
22
- ldap_ui-0.9.13.dist-info/entry_points.txt,sha256=TGxMkXYeZP5m5NjZxWmgzITYWhSdj2mR_GGUYmHhGws,50
23
- ldap_ui-0.9.13.dist-info/top_level.txt,sha256=t9Agyig1nDdJuQvx_UVuk1n28pgswc1BIYw8E6pWado,8
24
- ldap_ui-0.9.13.dist-info/RECORD,,
15
+ ldap_ui/statics/assets/index-CZWuB-hf.js,sha256=1rs0rvJQnswP496KUb_Wsk8P-mWM18stQ1D7xNzIR-0,122082
16
+ ldap_ui/statics/assets/index-CZWuB-hf.js.gz,sha256=NWgX6GirxPQGl8gmeehqrjJ_9ckY_kHP2SGkTTfu_Ho,43662
17
+ ldap_ui/statics/assets/index-qocMa2qY.css,sha256=QRTm0LCSq5A_-7hPxdKfwIT1Ls8jeHsWk2dFovRaYvM,47890
18
+ ldap_ui/statics/assets/index-qocMa2qY.css.gz,sha256=MfhVI0aQY8cZBLXOpl_Rr2qJUFHsTVa9qN8CyqS54Ig,11524
19
+ ldap_ui-0.9.15.dist-info/licenses/LICENSE.txt,sha256=UpJ0sDIqHxbOtzy1EG4bCHs9R_99ODxxPDK4NZ0g3I0,1042
20
+ ldap_ui-0.9.15.dist-info/METADATA,sha256=wZ-iPuxSyMEu_feOCag3vjVZvF0oXjLwJUw01uNThR0,7894
21
+ ldap_ui-0.9.15.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
22
+ ldap_ui-0.9.15.dist-info/entry_points.txt,sha256=TGxMkXYeZP5m5NjZxWmgzITYWhSdj2mR_GGUYmHhGws,50
23
+ ldap_ui-0.9.15.dist-info/top_level.txt,sha256=t9Agyig1nDdJuQvx_UVuk1n28pgswc1BIYw8E6pWado,8
24
+ ldap_ui-0.9.15.dist-info/RECORD,,