directus-extension-storage-manager 1.4.0 → 1.4.1
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.
- package/dist/app.js +2 -2
- package/package.json +1 -1
package/dist/app.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{useApi as e,useStores as t,defineModule as n,defineInterface as a}from"@directus/extensions-sdk";import*as r from"vue";import{ref as o,computed as i,defineComponent as l,resolveComponent as s,openBlock as c,createBlock as d,withCtx as u,createVNode as f,createElementBlock as p,Fragment as m,renderList as h,createTextVNode as v,toDisplayString as g,watch as y,onMounted as b,createCommentVNode as _,useModel as w,createElementVNode as x,mergeModels as S,withKeys as k,withModifiers as E,isRef as A,unref as O,normalizeClass as $,normalizeStyle as C,reactive as I,resolveDirective as R,withDirectives as N,onUnmounted as T,inject as j,toRefs as D,vShow as M,renderSlot as L,resolveDynamicComponent as F,mergeProps as P,createSlots as U,normalizeProps as B,guardReactiveProps as V,nextTick as z,toValue as G,toRef as K}from"vue";import{useRouter as H,useRoute as X,onBeforeRouteLeave as q,onBeforeRouteUpdate as W}from"vue-router";function Y(e){if(!e||"object"!=typeof e)return!1;const t=e;if(!0===t.admin_access)return!0;const n=t.role;return!(!n||"object"!=typeof n||!0!==n.admin_access)}const J=o(!1),Q=o(null),Z=o(null),ee=o([]);function te(){const t=e(),n=i(()=>Z.value||null),a=i({get:()=>ee.value,set(e){ee.value=e}});return null===Q.value&&r(),{loading:J,folders:Q,nestedFolders:n,fetchFolders:r,openFolders:a};async function r(){if(!J.value){J.value=!0;try{const e=await t.get("/folders",{params:{sort:"name",limit:-1,fields:["id","name","parent"]}}),n=e.data?.data||[];Q.value=n,Z.value=function(e){const t=new Map;for(const n of e)if(n.parent){const e=t.get(n.parent)||[];e.push(n),t.set(n.parent,e)}const n=e=>{const a=t.get(e.id)||[];return a.length>0?{...e,children:a.map(n)}:{...e}};return e.filter(e=>null===e.parent).map(n)}(n)}catch{Q.value=[],Z.value=[]}finally{J.value=!1}}}}const ne=o([]),ae=o(!1),re=o(null);function oe(e){const t={"Content-Type":"application/json",Accept:"text/event-stream"},n=e?.defaults?.headers,a=n?.common?.Authorization||n?.Authorization||n?.common?.authorization||n?.authorization;return"string"==typeof a&&a&&(t.Authorization=a),t}function ie(){const t=e();return{storages:ne,storagesLoading:ae,storagesError:re,loadStorages:async function(e=!1){if(ne.value.length&&!e)return ne.value;ae.value=!0,re.value=null;try{const e=await t.get("/storage-manager/storages");return ne.value=e.data?.data||[],ne.value}catch(e){throw re.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Failed to load storages",e}finally{ae.value=!1}},loadFiles:async function(e){const n=await t.get("/storage-manager/files",{params:{storage:e.storage||void 0,folder:null===e.folder?"null":e.folder||void 0,search:e.search||void 0,filter:e.filter?JSON.stringify(e.filter):void 0,recursive:e.recursive?"true":void 0,page:e.page||1,limit:e.limit||50,sort:e.sort||"-uploaded_on"}});return{data:n.data?.data||[],meta:n.data?.meta}},loadFolders:async function(e={}){const n=await t.get("/storage-manager/folders",{params:{parent:null===e.parent?"null":e.parent||void 0,storage:e.storage||void 0}});return{data:n.data?.data||[],root_files:n.data?.meta?.root_files}},loadFolderPath:async function(e){const n=await t.get(`/storage-manager/folders/${e}/path`);return n.data?.data||[]},migrate:async function(e){const n=await t.post("/storage-manager/migrate",e);return n.data?.data},migrateWithProgress:async function(e,n,a){return async function(e,t){if(!e.ok){let t=`Migration failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for progress stream");const n=e.body.getReader(),a=new TextDecoder;let r="",o=null;for(;;){const{done:e,value:i}=await n.read();if(e)break;r+=a.decode(i,{stream:!0});const l=r.split("\n\n");r=l.pop()||"";for(const e of l){const n=e.split("\n");for(const e of n){const n=e.trim();if(!n.startsWith("data:"))continue;const a=n.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"done"===r.type&&(o=r.data),"error"===r.type)throw new Error(r.message||"Migration failed")}}}if(!o)throw new Error("Migration stream ended without a result");return o}(await fetch(function(e){const t=String(e?.defaults?.baseURL||"").replace(/\/$/,""),n="/storage-manager/migrate/stream";return t?`${t}${n}`:n}(t),{method:"POST",headers:oe(t),body:JSON.stringify(e),credentials:"same-origin",signal:a}),n)}}}const le=o({}),se=o(!1),ce=o([]);function de(e,t){for(const n of e){if(n.path===t)return n;if(n.children?.length){const e=de(n.children,t);if(e)return e}}return null}function ue(e,t,n){return e.map(e=>e.path===t?{...e,children:n,childrenLoaded:!0}:e.children?.length?{...e,children:ue(e.children,t,n)}:{...e})}function fe(){const t=e();function n(e){return Object.prototype.hasOwnProperty.call(le.value,e)}async function a(e,n){const a=await t.get(`/storage-manager/storages/${encodeURIComponent(e)}/browse`,{params:{path:n||""}});return function(e){return e.map(e=>({name:e.name,path:e.path}))}(a.data?.data?.folders||[])}async function r(e){if(!n(e))try{const t=await a(e,"");le.value={...le.value,[e]:t}}catch{le.value={...le.value,[e]:[]}}}async function o(e,t){const o=String(t||"");if(!o)return void await r(e);n(e)||await r(e);const i=le.value[e];if(!i)return;const l=de(i,o);if(l&&!l.childrenLoaded)try{const t=await a(e,o);le.value={...le.value,[e]:ue(i,o,t)}}catch{le.value={...le.value,[e]:ue(i,o,[])}}}return{trees:le,loading:se,openFolders:ce,isTreeLoaded:n,loadTree:r,loadTrees:async function(e){se.value=!0;try{await Promise.all(e.map(e=>r(e)))}finally{se.value=!1}},loadFolderChildren:o,ensurePathLoaded:async function(e,t){await r(e);const n=String(t||"").replace(/^\/+|\/+$/g,"");if(!n)return;const a=n.split("/").filter(Boolean);for(let t=0;t<a.length;t++){const n=a.slice(0,t).join("/");await o(e,n)}},refreshTree:async function(e){const t=ce.value.filter(t=>t.startsWith(`${e}:`)).map(t=>t.slice(e.length+1));try{const t=await a(e,"");le.value={...le.value,[e]:t}}catch{le.value={...le.value,[e]:[]}}const n=[...t].sort((e,t)=>e.split("/").filter(Boolean).length-t.split("/").filter(Boolean).length);for(const t of n)await o(e,t)}}}var pe=l({name:"NavFolderItem",__name:"nav-folder-item",props:{folder:{},currentFolder:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-item"),v=s("nav-folder-item",!0),g=s("v-list-group");return e.folder.children&&0!==e.folder.children.length?(c(),d(g,{key:1,clickable:"",scope:"files-navigation",value:e.folder.id,active:e.currentFolder===e.folder.id,"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler({folder:e.folder.id}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[(c(!0),p(m,null,h(e.folder.children,t=>(c(),d(v,{key:t.id,folder:t,"current-folder":e.currentFolder,"click-handler":e.clickHandler},null,8,["folder","current-folder","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(l,{key:0,clickable:"",active:e.currentFolder===e.folder.id,onClick:n[0]||(n[0]=t=>e.clickHandler({folder:e.folder.id}))},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"]))}});const me={class:"folder-picker-list-item"};var he=l({name:"StorageFolderPickerItem",__name:"storage-folder-picker-item",props:{folder:{},currentPath:{},clickHandler:{},disabled:{type:Boolean},disabledPaths:{},scope:{default:"storage-folder-picker"},valuePrefix:{default:""}},setup(e){const t=e;function n(e){return(t.disabledPaths||[]).some(t=>e===t||e.startsWith(`${t}/`))}const a=i(()=>Boolean(t.disabled)||n(t.folder.path)),r=i(()=>`${t.valuePrefix}${t.folder.path}`);return(t,o)=>{const i=s("v-icon"),l=s("v-list-item-icon"),y=s("v-list-item-content"),b=s("v-list-item"),_=s("storage-folder-picker-item",!0),w=s("v-list-group");return c(),p("div",me,[e.folder.children?.length?(c(),d(w,{key:1,clickable:"",scope:e.scope,value:r.value,active:e.currentPath===e.folder.path,disabled:a.value,"disable-groupable-parent":"","arrow-placement":"after",onClick:o[1]||(o[1]=t=>e.clickHandler(e.folder.path))},{activator:u(()=>[f(l,null,{default:u(()=>[f(i,{name:e.currentPath===e.folder.path?"folder_open":"folder"},null,8,["name"])]),_:1}),f(y,null,{default:u(()=>[v(g(e.folder.name),1)]),_:1})]),default:u(()=>[(c(!0),p(m,null,h(e.folder.children,t=>(c(),d(_,{key:t.path,folder:t,"current-path":e.currentPath,"click-handler":e.clickHandler,disabled:n(t.path),"disabled-paths":e.disabledPaths,scope:e.scope,"value-prefix":e.valuePrefix},null,8,["folder","current-path","click-handler","disabled","disabled-paths","scope","value-prefix"]))),128))]),_:1},8,["scope","value","active","disabled"])):(c(),d(b,{key:0,clickable:"",active:e.currentPath===e.folder.path,disabled:a.value,onClick:o[0]||(o[0]=t=>e.clickHandler(e.folder.path))},{default:u(()=>[f(l,null,{default:u(()=>[f(i,{name:e.currentPath===e.folder.path?"folder_open":"folder"},null,8,["name"])]),_:1}),f(y,null,{default:u(()=>[v(g(e.folder.name),1)]),_:1})]),_:1},8,["active","disabled"]))])}}});const ve={key:1,class:"folder-picker"},ge={key:0,class:"empty"};var ye=l({__name:"storage-folder-picker",props:{location:{},modelValue:{},disabledPaths:{}},emits:["update:modelValue"],setup(t,{emit:n}){const a=t,r=n,l=e(),w=o(!1),x=o([]),S=o(["root"]),k=i(()=>{const e=String(a.modelValue||"").replace(/^\/+|\/+$/g,"");if(!e)return[];const t=e.split("/").filter(Boolean),n=[];for(let e=1;e<t.length;e++)n.push(t.slice(0,e).join("/"));return n});async function E(){w.value=!0;try{const e=await l.get(`/storage-manager/storages/${encodeURIComponent(a.location)}/folder-tree`);x.value=e.data?.data||[]}catch{x.value=[]}finally{w.value=!1}}function A(e){r("update:modelValue",e)}return y(k,e=>{const t=new Set(S.value);t.add("root");for(const n of e)t.add(n);S.value=Array.from(t)},{immediate:!0}),y(()=>a.location,()=>{E()}),b(()=>{E()}),(e,n)=>{const a=s("v-skeleton-loader"),r=s("v-icon"),o=s("v-list-item-icon"),i=s("v-list-item-content"),l=s("v-list-group"),y=s("v-item-group"),b=s("v-list");return w.value?(c(),d(a,{key:0})):(c(),p("div",ve,[f(b,null,{default:u(()=>[f(y,{modelValue:S.value,"onUpdate:modelValue":n[1]||(n[1]=e=>S.value=e),scope:"storage-folder-picker",multiple:""},{default:u(()=>[f(l,{"disable-groupable-parent":"",clickable:"",active:""===t.modelValue,scope:"storage-folder-picker",value:"root","arrow-placement":x.value.length>0&&"after",onClick:n[0]||(n[0]=e=>A(""))},{activator:u(()=>[f(o,null,{default:u(()=>[f(r,{name:"storage"})]),_:1}),f(i,null,{default:u(()=>[v("Root ("+g(t.location)+")",1)]),_:1})]),default:u(()=>[(c(!0),p(m,null,h(x.value,e=>(c(),d(he,{key:e.path,folder:e,"current-path":t.modelValue,"click-handler":A,disabled:t.disabledPaths?.includes(e.path),"disabled-paths":t.disabledPaths},null,8,["folder","current-path","disabled","disabled-paths"]))),128))]),_:1},8,["active","arrow-placement"])]),_:1},8,["modelValue"])]),_:1}),x.value.length?_("v-if",!0):(c(),p("p",ge,"No storage folders yet."))]))}}}),be=[],_e=[];function we(e,t){if(e&&"undefined"!=typeof document){var n,a=!0===t.prepend?"prepend":"append",r=!0===t.singleTag,o="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(r){var i=be.indexOf(o);-1===i&&(i=be.push(o)-1,_e[i]={}),n=_e[i]&&_e[i][a]?_e[i][a]:_e[i][a]=l()}else n=l();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function l(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),r=0;r<n.length;r++)e.setAttribute(n[r],t.attributes[n[r]]);var i="prepend"===a?"afterbegin":"beforeend";return o.insertAdjacentElement(i,e),e}}we("\n.folder-picker[data-v-10885802] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-10885802] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var xe=(e,t)=>{const n=e.__vccOpts||e;for(const[e,a]of t)n[e]=a;return n},Se=xe(ye,[["__scopeId","data-v-10885802"]]);const ke={class:"radio-options"};var Ee=l({__name:"delete-storage-folder-dialog",props:S({location:{},paths:{},folderName:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:S(["done"],["update:modelValue"]),setup(t,{emit:n}){const a=w(t,"modelValue"),r=t,i=n,l=e(),b=o("move"),_=o(!1),S=[{value:"move",label:"Move content one level up"},{value:"delete",label:"Delete all content"}];async function k(){if(!_.value&&r.location&&r.paths.length){_.value=!0;try{const e=await l.delete(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{data:{paths:r.paths,mode:b.value}}),t=e.data?.data?.skipped||[];if(t.length)return void window.alert(t[0]?.error||"Folder could not be deleted");a.value=!1,i("done")}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{_.value=!1}}}return y(a,e=>{e&&(b.value="move")}),(e,n)=>{const r=s("v-card-title"),o=s("v-radio"),i=s("v-card-text"),l=s("v-button"),y=s("v-card-actions"),w=s("v-card"),E=s("v-dialog");return c(),d(E,{"model-value":a.value,persistent:"","onUpdate:modelValue":n[2]||(n[2]=e=>a.value=e),onEsc:n[3]||(n[3]=e=>a.value=!1),onApply:k},{default:u(()=>[f(w,null,{default:u(()=>[f(r,null,{default:u(()=>[...n[4]||(n[4]=[v("Delete Folder",-1)])]),_:1}),f(i,null,{default:u(()=>[x("p",null,[t.folderName&&1===t.paths.length?(c(),p(m,{key:0},[v(" What should happen to the contents of “"+g(t.folderName)+"”? ",1)],64)):1===t.paths.length?(c(),p(m,{key:1},[v("What should happen to the folder contents?")],64)):(c(),p(m,{key:2},[v("What should happen to the contents of "+g(t.paths.length)+" folders?",1)],64))]),x("div",ke,[(c(),p(m,null,h(S,e=>f(o,{key:e.value,modelValue:b.value,"onUpdate:modelValue":n[0]||(n[0]=e=>b.value=e),value:e.value,label:e.label},null,8,["modelValue","value","label"])),64))])]),_:1}),f(y,null,{default:u(()=>[f(l,{secondary:"",disabled:_.value,onClick:n[1]||(n[1]=e=>a.value=!1)},{default:u(()=>[...n[5]||(n[5]=[v("Cancel",-1)])]),_:1},8,["disabled"]),f(l,{kind:"danger",loading:_.value,onClick:k},{default:u(()=>[...n[6]||(n[6]=[v("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"])}}});we("\n.radio-options[data-v-3129fd6a] {\n\tmargin-block-start: 0.675rem;\n}\n.radio-options .v-radio + .v-radio[data-v-3129fd6a] {\n\tmargin-block-start: 0.45rem;\n}\n",{});var Ae=xe(Ee,[["__scopeId","data-v-3129fd6a"]]);function Oe(e){return String(e||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}function $e(e){return String(e).replace(/_/g,"__").replace(/ /g,"_")}function Ce(e){let t=String(e||"");try{t=decodeURIComponent(t)}catch{}return t.replace(/__/g,"\0").replace(/_/g," ").replace(/\0/g,"_")}function Ie(e){return Oe(e).split("/").filter(Boolean).map(Ce).join("/")}function Re(e,t){const n=`/storage-manager/storage/${encodeURIComponent(e)}`,a=function(e){return Oe(e).split("/").filter(Boolean).map($e).join("/")}(t);return a?`${n}/path/${a}`:n}var Ne=l({__name:"storage-folder-context-menu",props:{location:{},path:{},name:{}},emits:["changed"],setup(t,{expose:n,emit:a}){const r=t,l=a,d=e(),h=H(),{refreshTree:g}=fe(),b=o(null),_=o(!1),w=o(r.name),x=o(!1),S=o(!1),E=o(""),A=o(!1),O=o(!1),$=i(()=>{const e=String(r.path||""),t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}),C=i(()=>[r.path]),I=i(()=>[r.path]);function R(){if(!h.currentRoute.value.path.includes("/storage/"))return"";return Ie(Array.isArray(h.currentRoute.value.params.storagePath)?h.currentRoute.value.params.storagePath.filter(Boolean).join("/"):String(h.currentRoute.value.params.storagePath||""))}function N(e){const t=R();if(t&&(t===r.path||t.startsWith(`${r.path}/`))){const n=t===r.path?"":t.slice(r.path.length+1);h.replace(Re(r.location,n?`${e}/${n}`:e))}}async function T(e){await g(r.location).catch(()=>{}),l("changed",e)}async function j(){if(w.value?.trim()&&!x.value){x.value=!0;try{const e=await d.patch(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{path:r.path,name:w.value.trim()}),t=String(e.data?.data?.path||"");_.value=!1,t&&N(t),await T(t||void 0)}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Rename failed")}finally{x.value=!1}}}async function D(){if(!A.value){A.value=!0;try{const e=await d.patch(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{path:r.path,parent_path:E.value||""}),t=String(e.data?.data?.path||"");S.value=!1,t&&N(t),await T(t||void 0)}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{A.value=!1}}}async function M(){const e=R();(e===r.path||e.startsWith(`${r.path}/`))&&h.replace(Re(r.location,$.value||void 0)),await T($.value||void 0)}return y(()=>r.name,e=>{_.value||(w.value=e)}),y(_,e=>{e&&(w.value=r.name)}),y(S,e=>{e&&(E.value=$.value)}),n({open:function(e){b.value?.activate?.(e)}}),(e,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-list-item-content"),i=s("v-list-item"),l=s("v-list"),d=s("v-menu"),h=s("v-card-title"),g=s("v-input"),y=s("v-card-text"),$=s("v-button"),R=s("v-card-actions"),N=s("v-card"),T=s("v-dialog");return c(),p(m,null,[f(d,{ref_key:"contextMenu",ref:b,"show-arrow":"",placement:"bottom-start"},{default:u(()=>[f(l,null,{default:u(()=>[f(i,{clickable:"",onClick:n[0]||(n[0]=e=>_.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"edit",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[12]||(n[12]=[v("Rename Folder",-1)])]),_:1})]),_:1}),f(i,{clickable:"",onClick:n[1]||(n[1]=e=>S.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder_move",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[13]||(n[13]=[v("Move to Folder",-1)])]),_:1})]),_:1}),f(i,{class:"danger",clickable:"",onClick:n[2]||(n[2]=e=>O.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"delete",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[14]||(n[14]=[v("Delete Folder",-1)])]),_:1})]),_:1})]),_:1})]),_:1},512),f(T,{modelValue:_.value,"onUpdate:modelValue":n[5]||(n[5]=e=>_.value=e),persistent:"",onEsc:n[6]||(n[6]=e=>_.value=!1),onApply:j},{default:u(()=>[f(N,null,{default:u(()=>[f(h,null,{default:u(()=>[...n[15]||(n[15]=[v("Rename Folder",-1)])]),_:1}),f(y,null,{default:u(()=>[f(g,{modelValue:w.value,"onUpdate:modelValue":n[3]||(n[3]=e=>w.value=e),autofocus:"",onKeyup:k(j,["enter"])},null,8,["modelValue"])]),_:1}),f(R,null,{default:u(()=>[f($,{secondary:"",onClick:n[4]||(n[4]=e=>_.value=!1)},{default:u(()=>[...n[16]||(n[16]=[v("Cancel",-1)])]),_:1}),f($,{disabled:!w.value?.trim(),loading:x.value,onClick:j},{default:u(()=>[...n[17]||(n[17]=[v("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(T,{modelValue:S.value,"onUpdate:modelValue":n[9]||(n[9]=e=>S.value=e),persistent:"",onEsc:n[10]||(n[10]=e=>S.value=!1),onApply:D},{default:u(()=>[f(N,null,{default:u(()=>[f(h,null,{default:u(()=>[...n[18]||(n[18]=[v("Move to Folder",-1)])]),_:1}),f(y,null,{default:u(()=>[f(Se,{modelValue:E.value,"onUpdate:modelValue":n[7]||(n[7]=e=>E.value=e),location:t.location,"disabled-paths":C.value},null,8,["modelValue","location","disabled-paths"])]),_:1}),f(R,null,{default:u(()=>[f($,{secondary:"",onClick:n[8]||(n[8]=e=>S.value=!1)},{default:u(()=>[...n[19]||(n[19]=[v("Cancel",-1)])]),_:1}),f($,{loading:A.value,onClick:D},{default:u(()=>[...n[20]||(n[20]=[v("Save",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Ae,{modelValue:O.value,"onUpdate:modelValue":n[11]||(n[11]=e=>O.value=e),location:t.location,paths:I.value,"folder-name":t.name,onDone:M},null,8,["modelValue","location","paths","folder-name"])],64)}}});we("\n.v-list-item.danger[data-v-73188cf0] {\n\t--v-list-item-color: var(--theme--danger);\n\t--v-list-item-color-hover: var(--theme--danger);\n\t--v-list-item-icon-color: var(--theme--danger);\n}\n",{});var Te=xe(Ne,[["__scopeId","data-v-73188cf0"]]),je=l({name:"NavStorageFolderItem",__name:"nav-storage-folder-item",props:{location:{},folder:{},currentLocation:{},currentPath:{},clickHandler:{type:Function}},emits:["changed"],setup(e,{emit:t}){const n=e,a=t,r=o(null);function l(e,t,n,a){return n===e&&(a||"")===t}const v=i(()=>!n.folder.childrenLoaded||(n.folder.children?.length??0)>0);function g(e){r.value?.open(e)}function y(){a("changed")}return(t,n)=>{const a=s("v-icon"),o=s("v-list-item-icon"),i=s("v-text-overflow"),b=s("v-list-item-content"),w=s("v-list-item"),S=s("nav-storage-folder-item",!0),k=s("v-list-group");return c(),p(m,null,[v.value?(c(),d(k,{key:1,clickable:"",scope:"storage-navigation",value:(A=e.location,O=e.folder.path,`${A}:${O}`),active:l(e.location,e.folder.path,e.currentLocation,e.currentPath),"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler({location:e.location,path:e.folder.path})),onContextmenu:E(g,["prevent"])},{activator:u(()=>[f(o,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(b,null,{default:u(()=>[f(i,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[e.folder.childrenLoaded&&!e.folder.children?.length?(c(),d(w,{key:0,disabled:""},{default:u(()=>[f(b,null,{default:u(()=>[...n[2]||(n[2]=[x("span",{class:"empty-children"},"Empty",-1)])]),_:1})]),_:1})):_("v-if",!0),(c(!0),p(m,null,h(e.folder.children||[],t=>(c(),d(S,{key:t.path,location:e.location,folder:t,"current-location":e.currentLocation,"current-path":e.currentPath,"click-handler":e.clickHandler,onChanged:y},null,8,["location","folder","current-location","current-path","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(w,{key:0,clickable:"",active:l(e.location,e.folder.path,e.currentLocation,e.currentPath),onClick:n[0]||(n[0]=t=>e.clickHandler({location:e.location,path:e.folder.path})),onContextmenu:E(g,["prevent"])},{default:u(()=>[f(o,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(b,null,{default:u(()=>[f(i,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"])),f(Te,{ref_key:"menu",ref:r,location:e.location,path:e.folder.path,name:e.folder.name,onChanged:y},null,8,["location","path","name"])],64);var A,O}}});we("\n.empty-children[data-v-0c715566] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var De=xe(je,[["__scopeId","data-v-0c715566"]]),Me=l({name:"NavStorageItem",__name:"nav-storage-item",props:{storage:{},folders:{},treeLoaded:{type:Boolean},currentLocation:{},currentPath:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-group");return c(),d(l,{clickable:"",scope:"storage-navigation",value:(v=e.storage.location,`@${v}`),active:e.currentLocation===e.storage.location,"arrow-placement":!(e.treeLoaded&&!e.folders.length)&&"after","disable-groupable-parent":"",onClick:n[0]||(n[0]=t=>e.clickHandler({location:e.storage.location}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:e.storage.icon},null,8,["name"])]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.storage.location},null,8,["text"])]),_:1})]),default:u(()=>[e.treeLoaded?(c(!0),p(m,{key:0},h(e.folders,t=>(c(),d(De,{key:t.path,location:e.storage.location,folder:t,"current-location":e.currentLocation,"current-path":e.currentPath,"click-handler":e.clickHandler},null,8,["location","folder","current-location","current-path","click-handler"]))),128)):_("v-if",!0)]),_:1},8,["value","active","arrow-placement"]);var v}});const Le={class:"storages"},Fe={class:"folders"};var Pe=l({__name:"navigation",setup(e){const t=X(),n=H(),{nestedFolders:a,folders:r,loading:o,openFolders:l}=te(),{storages:v,loadStorages:g}=ie(),{trees:w,openFolders:S,loadTree:k,loadFolderChildren:E,ensurePathLoaded:$,isTreeLoaded:C}=fe(),I=i(()=>{if(!t.path.startsWith("/storage-manager/folders"))return;const e=t.params.folderId;return e?String(e):void 0}),R=i(()=>{if(t.path.startsWith("/storage-manager/storage/"))return String(t.params.location||"")||void 0}),N=i(()=>{if(!R.value)return"";const e=t.params.storagePath;return Ie(Array.isArray(e)?e.filter(Boolean).join("/"):e?String(e):"")}),T=i(()=>"/storage-manager/folders"===t.path||"/storage-manager/folders/"===t.path),j=i(()=>"/storage-manager"===t.path||"/storage-manager/"===t.path),D=i(()=>t.path.startsWith("/storage-manager/settings")),M=i(()=>t.path.startsWith("/storage-manager/unreferenced"));function L(e){e.folder?n.push(`/storage-manager/folders/${e.folder}`):n.push("/storage-manager/folders")}function F(e){n.push(Re(e.location,e.path))}function P(){n.push("/storage-manager")}function U(){n.push("/storage-manager/settings")}function B(){n.push("/storage-manager/unreferenced")}return y([I,o,r],function(){if(!r.value||o.value)return;if(!l?.value)return;if(!I.value)return;const e=["root"],t=r.value.find(e=>e.id===I.value);t?.parent&&function t(n){if(!r.value)return;e.push(n);const a=r.value.find(e=>e.id===n);a?.parent&&t(a.parent)}(t.parent);const n=[...l.value];let a=!1;for(const t of e)n.includes(t)||(n.push(t),a=!0);a&&(l.value=n)},{immediate:!0}),y([R,N],()=>{!function(){const e=R.value;if(!e)return;const t=[`@${e}`],n=N.value;if(n){const a=n.split("/").filter(Boolean);for(let n=1;n<=a.length;n++)t.push(`${e}:${a.slice(0,n).join("/")}`)}S.value=Array.from(new Set([...S.value,...t]))}(),async function(){const e=R.value;if(!e)return;await $(e,N.value)}()},{immediate:!0}),y(S,(e,t)=>{const n=e.filter(e=>!t?.includes(e));for(const e of n){if(e.startsWith("@")){const t=e.slice(1);t&&k(t);continue}const t=e.indexOf(":");-1!==t&&E(e.slice(0,t),e.slice(t+1))}}),b(()=>{g().catch(()=>{})}),(e,t)=>{const n=s("v-icon"),r=s("v-list-item-icon"),i=s("v-text-overflow"),g=s("v-list-item-content"),y=s("v-list-item"),b=s("v-divider"),k=s("v-item-group"),E=s("v-list-group"),$=s("v-list");return c(),d($,{nav:""},{default:u(()=>[f(y,{clickable:"",active:j.value,onClick:P},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"dashboard"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Storage Manager"})]),_:1})]),_:1},8,["active"]),f(b),t[4]||(t[4]=x("div",{class:"section-label"},"Storage adapters",-1)),x("div",Le,[f(k,{modelValue:O(S),"onUpdate:modelValue":t[0]||(t[0]=e=>A(S)?S.value=e:null),scope:"storage-navigation",multiple:""},{default:u(()=>[(c(!0),p(m,null,h(O(v),e=>(c(),d(Me,{key:e.location,storage:e,folders:O(w)[e.location]||[],"tree-loaded":O(C)(e.location),"current-location":R.value,"current-path":N.value,"click-handler":F},null,8,["storage","folders","tree-loaded","current-location","current-path"]))),128))]),_:1},8,["modelValue"])]),f(b),x("div",Fe,[f(k,{modelValue:O(l),"onUpdate:modelValue":t[2]||(t[2]=e=>A(l)?l.value=e:null),scope:"files-navigation",multiple:""},{default:u(()=>[f(E,{clickable:"",active:T.value||Boolean(I.value),value:"root",scope:"files-navigation",exact:"","disable-groupable-parent":"","arrow-placement":!!(O(a)&&O(a).length>0)&&"after",onClick:t[1]||(t[1]=e=>L({}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"folder_special",outline:""})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Directus Folders"})]),_:1})]),default:u(()=>[(c(!0),p(m,null,h(O(a)||[],e=>(c(),d(pe,{key:e.id,folder:e,"current-folder":I.value,"click-handler":L},null,8,["folder","current-folder"]))),128)),!O(o)||O(a)&&0!==O(a).length?_("v-if",!0):(c(),d(y,{key:0},{default:u(()=>[f(g,null,{default:u(()=>[...t[3]||(t[3]=[x("span",{class:"nav-loading"},"Loading…",-1)])]),_:1})]),_:1}))]),_:1},8,["active","arrow-placement"])]),_:1},8,["modelValue"])]),f(y,{clickable:"",active:M.value,onClick:B},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"link_off"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Unreferenced Files"})]),_:1})]),_:1},8,["active"]),f(y,{clickable:"",active:D.value,onClick:U},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"settings"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Settings"})]),_:1})]),_:1},8,["active"])]),_:1})}}});we("\n.folders[data-v-573124f8],\n.storages[data-v-573124f8] {\n\twidth: 100%;\n\toverflow-x: hidden;\n}\n.folders[data-v-573124f8] .v-list-item-content,\n.storages[data-v-573124f8] .v-list-item-content {\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n.section-label[data-v-573124f8] {\n\tpadding: 4px 12px 4px;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n}\n.nav-loading[data-v-573124f8] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ue=xe(Pe,[["__scopeId","data-v-573124f8"]]);function Be(e){if(null==e||!Number.isFinite(e)||e<0)return"—";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB"],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),a=e/Math.pow(1024,n),r=a>=100||0===n?0:a>=10?1:2;return`${a.toFixed(r)} ${t[n]}`}function Ve(e){if(null==e||!Number.isFinite(e)||e<0)return"—";const t=8*e/1e6;return t<.1?`${t.toFixed(2)} Mbit/s`:t<10?`${t.toFixed(1)} Mbit/s`:`${Math.round(t)} Mbit/s`}function ze(e){if(null==e||!Number.isFinite(e)||e<0)return"—";const t=Math.floor(e/1e3),n=Math.floor(t/3600),a=Math.floor(t%3600/60),r=t%60;return n>0?`${n}h ${a}m ${r}s`:a>0?`${a}m ${r}s`:`${r}s`}const Ge={class:"usage-top"},Ke={class:"label"},He={class:"value"},Xe={key:0,class:"track"},qe={key:1,class:"secondary"};var We=l({__name:"usage-bar",props:{usage:{},label:{default:"Usage"},compact:{type:Boolean,default:!1},plain:{type:Boolean,default:!1}},setup(e){const t=e,n=i(()=>t.usage.disk_available&&null!=t.usage.disk_used_percent),a=i(()=>{const e=t.usage.disk_used_percent??0;return Math.max(0,Math.min(100,e))}),r=i(()=>{const e=a.value;return e>=90?"danger":e>=75?"warning":"ok"}),o=i(()=>{return n.value?`${e=t.usage.disk_used_percent,null!=e&&Number.isFinite(e)?`${Math.round(e)}%`:"—"} used · ${Be(t.usage.disk_used_bytes)} / ${Be(t.usage.disk_total_bytes)}`:`${t.usage.file_count.toLocaleString()} files · ${Be(t.usage.total_bytes)}`;var e}),l=i(()=>n.value?`${t.usage.file_count.toLocaleString()} files in Directus · ${Be(t.usage.total_bytes)} · ${Be(t.usage.disk_free_bytes)} free`:"Cloud quota not available — showing Directus-tracked size");return(t,i)=>(c(),p("div",{class:$(["usage-bar",{compact:e.compact,plain:e.plain}])},[x("div",Ge,[x("span",Ke,g(e.label),1),x("span",He,g(o.value),1)]),n.value?(c(),p("div",Xe,[x("div",{class:$(["fill",r.value]),style:C({width:`${a.value}%`})},null,6)])):_("v-if",!0),l.value?(c(),p("div",qe,g(l.value),1)):_("v-if",!0)],2))}});we("\n.usage-bar[data-v-475a6a41] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpadding: 12px 14px;\n\tbackground: var(--theme--background-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.usage-bar.compact[data-v-475a6a41] {\n\tpadding: 8px 10px;\n}\n.usage-bar.plain[data-v-475a6a41] {\n\tpadding: 0;\n\tbackground: transparent;\n\tborder: none;\n\tborder-radius: 0;\n}\n.usage-top[data-v-475a6a41] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 12px;\n\talign-items: baseline;\n}\n.label[data-v-475a6a41] {\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground);\n}\n.value[data-v-475a6a41] {\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground);\n\ttext-align: right;\n}\n.track[data-v-475a6a41] {\n\theight: 8px;\n\tborder-radius: 999px;\n\tbackground: var(--theme--background-normal);\n\toverflow: hidden;\n}\n.fill[data-v-475a6a41] {\n\theight: 100%;\n\tborder-radius: inherit;\n\ttransition: width 200ms ease;\n}\n.fill.ok[data-v-475a6a41] {\n\tbackground: var(--theme--primary);\n}\n.fill.warning[data-v-475a6a41] {\n\tbackground: var(--theme--warning);\n}\n.fill.danger[data-v-475a6a41] {\n\tbackground: var(--theme--danger);\n}\n.secondary[data-v-475a6a41] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ye=xe(We,[["__scopeId","data-v-475a6a41"]]);function Je(e){if("undefined"!=typeof document&&(document.querySelector(".root-split, .main-split")||document.querySelector("#navigation.module-bar")||document.querySelector("aside.module-nav:not(#navigation)")))return!1;const t=function(e){if("string"!=typeof e||!e)return null;const t=e.trim().replace(/^v/i,""),[n,a]=t.split("."),r=Number.parseInt(n||"",10),o=Number.parseInt(a||"",10);return Number.isFinite(r)?{major:r,minor:Number.isFinite(o)?o:0}:null}(e);return t?11===t.major&&t.minor<14:"undefined"!=typeof document&&Boolean(document.querySelector("#navigation:not(.module-bar)"))}function Qe(){const{useServerStore:e}=t(),n=e();return i(()=>{const e=["page-container"];return Je(n?.info?.version)&&e.push("page-container--flush-top"),e})}const Ze="storage_manager",et="none",tt="full_sync",nt={image:"images",video:"videos",audio:"audio",text:"documents"},at="yyyy/MM",rt={on_deselect:"keep",on_item_delete:"keep",scan_min_age_minutes:60,scan_text_fields:!0};const ot=["none","folder","folder_id","type","date"],it=["full_sync","leave_old"];function lt(e){const t=e&&"object"==typeof e?e:{};return{prefix_strategy:ot.includes(t.prefix_strategy)?t.prefix_strategy:et,folder_sync_enabled:Boolean(t.folder_sync_enabled),folder_sync_rename:it.includes(t.folder_sync_rename)?t.folder_sync_rename:tt,folder_sync_delete:"move_to_parent",date_format:"string"==typeof t.date_format&&t.date_format.trim()?t.date_format.trim():at,type_map:{...nt,...t.type_map&&"object"==typeof t.type_map&&!Array.isArray(t.type_map)?t.type_map:{}}}}function st(e){if(!e||"object"!=typeof e)throw new Error("Invalid JSON: expected an object");const t=e,n=t.storage_manager&&"object"==typeof t.storage_manager?t.storage_manager:t;if(!n||"object"!=typeof n)throw new Error("Invalid config: expected storage_manager object");const a=n.locations;if(!a||"object"!=typeof a||Array.isArray(a))throw new Error("Invalid config: missing locations object");const r={};for(const[e,t]of Object.entries(a))e.trim()&&(r[e]=lt(t));const o={locations:r};return"name_mirror_claims"in n&&(o.name_mirror_claims=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{};const t={};for(const[n,a]of Object.entries(e))"string"==typeof n&&n&&"string"==typeof a&&a&&(t[n]=a);return t}(n.name_mirror_claims)),"lifecycle"in n&&(o.lifecycle=function(e){const t=e&&"object"==typeof e?e:{},n=t.on_deselect,a=t.on_item_delete,r=Number(t.scan_min_age_minutes);return{on_deselect:"ask"===n||"delete_if_unreferenced"===n||"keep"===n?n:rt.on_deselect,on_item_delete:"delete_if_unreferenced"===a||"keep"===a?a:rt.on_item_delete,scan_min_age_minutes:Number.isFinite(r)&&r>=0?Math.min(43200,Math.floor(r)):rt.scan_min_age_minutes,scan_text_fields:void 0===t.scan_text_fields?rt.scan_text_fields:Boolean(t.scan_text_fields)}}(n.lifecycle)),o}function ct(e){return e?{prefix_strategy:"folder",folder_sync_enabled:!0,folder_sync_rename:"full_sync"}:{prefix_strategy:"none",folder_sync_enabled:!1}}const dt={key:0,class:"loading"},ut={class:"storage-grid"},ft={class:"card-head"},pt={class:"card-titles"},mt={class:"meta"},ht={class:"tag"},vt={key:0,class:"tag"},gt=["title"],yt={key:2,class:"tag tag-path"},bt={class:"card-strategy"},_t={class:"mirror-copy"};var wt=l({__name:"overview-view",setup(t){const n=H(),a=e(),r=Qe(),{storages:i,storagesError:l,loadStorages:y}=ie(),w=o(!0),S=I({});return b(async function(){w.value=!0;try{await y(!0)}finally{w.value=!1}}),(e,t)=>{const o=s("v-breadcrumb"),y=s("sidebar-detail"),b=s("v-progress-circular"),k=s("v-notice"),E=s("v-icon"),A=s("v-divider"),C=s("v-button"),I=s("v-checkbox"),T=s("private-view"),j=R("tooltip");return c(),d(T,{title:"Storage Manager",icon:"storage"},{headline:u(()=>[f(o,{items:[{name:"Storage Manager",to:"/storage-manager"}]})]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(y,{id:"about",icon:"info",title:"About"},{default:u(()=>[...t[0]||(t[0]=[x("p",{class:"sidebar-text"}," Move files between configured storage adapters and manage physical storage folders. Use Directus Folders view to materialize virtual folders into real storage paths. ",-1)])]),_:1})]),default:u(()=>[x("div",{class:$(O(r))},[w.value&&!O(i).length?(c(),p("div",dt,[f(b,{indeterminate:""})])):O(l)?(c(),d(k,{key:1,type:"danger"},{default:u(()=>[v(g(O(l)),1)]),_:1})):(c(),p(m,{key:2},[f(A,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(E,{name:"swap_horiz"})]),default:u(()=>[t[1]||(t[1]=v(" Storage Manager ",-1))]),_:1}),t[4]||(t[4]=x("p",{class:"page-intro"},[v(" Browse, create, and move files and storage folders across your adapters. Use Materialize in Directus Folders view to convert virtual folder hierarchy into physical storage paths. Use "),x("strong",null,"Unreferenced Files"),v(" to find File Library entries nothing still points at. ")],-1)),x("div",ut,[(c(!0),p(m,null,h(O(i),e=>(c(),p("article",{key:e.location,class:"storage-card"},[x("div",ft,[f(E,{name:e.icon,large:""},null,8,["name"]),x("div",pt,[x("strong",null,g(e.location),1),x("span",null,g(e.label),1)]),f(C,{small:"",secondary:"",onClick:t=>{return a=e.location,void n.push(Re(a));var a}},{default:u(()=>[...t[2]||(t[2]=[v("Browse",-1)])]),_:1},8,["onClick"])]),f(Ye,{usage:e},null,8,["usage"]),x("div",mt,[x("span",ht,g(e.file_count.toLocaleString())+" files",1),e.folder_count?(c(),p("span",vt,g(e.folder_count.toLocaleString())+" folders",1)):_("v-if",!0),e.root?(c(),p("span",{key:1,class:"tag tag-path",title:e.root},g(e.root),9,gt)):e.bucket?(c(),p("span",yt,g(e.bucket),1)):_("v-if",!0)]),x("div",bt,[x("div",_t,[t[3]||(t[3]=x("strong",null,"Mirror Directus Folders",-1)),N(f(E,{name:"help_outline",small:""},null,512),[[j,"New uploads and folder rename/delete follow the Directus folder tree on this adapter.",void 0,{bottom:!0}]])]),f(I,{"model-value":e.mirror_directus_folders,disabled:Boolean(S[e.location]),"onUpdate:modelValue":t=>async function(e,t){const n=i.value.find(t=>t.location===e);if(!n||S[e])return;const r=Boolean(n.mirror_directus_folders);n.mirror_directus_folders=t,S[e]=!0;try{await a.patch("/storage-manager/settings",{locations:{[e]:ct(t)}})}catch{n.mirror_directus_folders=r,window.alert("Could not save Mirror Directus Folders.")}finally{S[e]=!1}}(e.location,t)},null,8,["model-value","disabled","onUpdate:modelValue"])])]))),128))])],64))],2)]),_:1})}}});we("\n.page-container[data-v-6461142c] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: var(--content-padding-bottom);\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-6461142c] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-6461142c] {\n\tmargin-bottom: 12px;\n}\n.page-intro[data-v-6461142c],\n.sidebar-text[data-v-6461142c] {\n\tmargin: 0 0 24px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.sidebar-text code[data-v-6461142c] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.loading[data-v-6461142c] {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 48px 0;\n}\n.glossary-sidebar[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n}\n.glossary-scope[data-v-6461142c] {\n\tmargin: 0;\n\tpadding: 10px 12px;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.glossary-section[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\tmargin-block-start: 8px;\n\tpadding: 14px 12px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tborder-block-start-width: 2px;\n\tbackground: var(--theme--background-subdued);\n}\n.glossary-section-label[data-v-6461142c] {\n\tdisplay: block;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground);\n}\n.glossary-section-intro[data-v-6461142c] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.glossary-section .glossary-item[data-v-6461142c] {\n\tpadding-block-start: 10px;\n\tborder-block-start: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.glossary-sidebar .glossary-item strong[data-v-6461142c] {\n\tdisplay: block;\n\tmargin-block-end: 4px;\n\tfont-size: 13px;\n}\n.glossary-sidebar .glossary-item p[data-v-6461142c] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.storage-grid[data-v-6461142c] {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 16px;\n}\n@media (max-width: 900px) {\n.storage-grid[data-v-6461142c] {\n\t\tgrid-template-columns: 1fr;\n}\n}\n.storage-card[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n\tmin-width: 0;\n\tpadding: 16px 18px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tbackground: var(--theme--background);\n}\n.card-head[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n.card-titles[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmin-width: 0;\n\tflex: 1;\n}\n.card-titles strong[data-v-6461142c] {\n\tfont-size: 15px;\n\tletter-spacing: 0.01em;\n}\n.card-titles span[data-v-6461142c] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.meta[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\talign-items: center;\n}\n.meta .tag[data-v-6461142c] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-width: 100%;\n\tpadding: 3px 9px;\n\tborder-radius: 4px;\n\tfont-size: 12px;\n\tline-height: 1.35;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.meta .tag-path[data-v-6461142c] {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tcolor: var(--theme--foreground-subdued);\n}\n.card-strategy[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tpadding-block-start: 12px;\n\tborder-block-start: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.mirror-copy[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmin-width: 0;\n\tflex: 1;\n}\n.mirror-copy strong[data-v-6461142c] {\n\tfont-size: 13px;\n}\n.mirror-copy .v-icon[data-v-6461142c] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n}\n.strategy-label[data-v-6461142c] {\n\tmin-width: 0;\n\tflex: 1;\n\toverflow: hidden;\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground);\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n.strategy-prefix[data-v-6461142c] {\n\tfont-weight: 500;\n\tcolor: var(--theme--foreground-subdued);\n}\n.strategy-dialog-card[data-v-6461142c] {\n\twidth: min(480px, 92vw);\n\tmax-block-size: min(85vh, 720px);\n\toverflow: auto;\n}\n",{});var xt=xe(wt,[["__scopeId","data-v-6461142c"]]);const St=/\(([^()]+)\)/;var kt="object"==typeof global&&global&&global.Object===Object&&global,Et="object"==typeof self&&self&&self.Object===Object&&self,At=kt||Et||Function("return this")(),Ot=At.Symbol,$t=Object.prototype,Ct=$t.hasOwnProperty,It=$t.toString,Rt=Ot?Ot.toStringTag:void 0;var Nt=Object.prototype.toString;var Tt=Ot?Ot.toStringTag:void 0;function jt(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Tt&&Tt in Object(e)?function(e){var t=Ct.call(e,Rt),n=e[Rt];try{e[Rt]=void 0;var a=!0}catch(e){}var r=It.call(e);return a&&(t?e[Rt]=n:delete e[Rt]),r}(e):function(e){return Nt.call(e)}(e)}function Dt(e){return null!=e&&"object"==typeof e}function Mt(e){return"symbol"==typeof e||Dt(e)&&"[object Symbol]"==jt(e)}var Lt=Array.isArray,Ft=Ot?Ot.prototype:void 0,Pt=Ft?Ft.toString:void 0;function Ut(e){if("string"==typeof e)return e;if(Lt(e))return function(e,t){for(var n=-1,a=null==e?0:e.length,r=Array(a);++n<a;)r[n]=t(e[n],n,e);return r}(e,Ut)+"";if(Mt(e))return Pt?Pt.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var Bt=/\s/;var Vt=/^\s+/;function zt(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&Bt.test(e.charAt(t)););return t}(e)+1).replace(Vt,""):e}function Gt(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var Kt=/^[-+]0x[0-9a-f]+$/i,Ht=/^0b[01]+$/i,Xt=/^0o[0-7]+$/i,qt=parseInt;function Wt(e){if("number"==typeof e)return e;if(Mt(e))return NaN;if(Gt(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Gt(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=zt(e);var n=Ht.test(e);return n||Xt.test(e)?qt(e.slice(2),n?2:8):Kt.test(e)?NaN:+e}function Yt(e){return e}function Jt(e){if(!Gt(e))return!1;var t=jt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var Qt,Zt=At["__core-js_shared__"],en=(Qt=/[^.]+$/.exec(Zt&&Zt.keys&&Zt.keys.IE_PROTO||""))?"Symbol(src)_1."+Qt:"";var tn=Function.prototype.toString;function nn(e){if(null!=e){try{return tn.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var an=/^\[object .+?Constructor\]$/,rn=Function.prototype,on=Object.prototype,ln=rn.toString,sn=on.hasOwnProperty,cn=RegExp("^"+ln.call(sn).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dn(e){return!(!Gt(e)||(t=e,en&&en in t))&&(Jt(e)?cn:an).test(nn(e));var t}function un(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return dn(n)?n:void 0}var fn=un(At,"WeakMap"),pn=Object.create,mn=function(){function e(){}return function(t){if(!Gt(t))return{};if(pn)return pn(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function hn(e,t){var n=-1,a=e.length;for(t||(t=Array(a));++n<a;)t[n]=e[n];return t}var vn=Date.now;var gn,yn,bn,_n=function(){try{var e=un(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),wn=_n?function(e,t){return _n(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:Yt,xn=(gn=wn,yn=0,bn=0,function(){var e=vn(),t=16-(e-bn);if(bn=e,t>0){if(++yn>=800)return arguments[0]}else yn=0;return gn.apply(void 0,arguments)});var Sn=/^(?:0|[1-9]\d*)$/;function kn(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Sn.test(e))&&e>-1&&e%1==0&&e<t}function En(e,t,n){"__proto__"==t&&_n?_n(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function An(e,t){return e===t||e!=e&&t!=t}var On=Object.prototype.hasOwnProperty;function $n(e,t,n){var a=e[t];On.call(e,t)&&An(a,n)&&(void 0!==n||t in e)||En(e,t,n)}function Cn(e,t,n,a){var r=!n;n||(n={});for(var o=-1,i=t.length;++o<i;){var l=t[o],s=void 0;void 0===s&&(s=e[l]),r?En(n,l,s):$n(n,l,s)}return n}var In=Math.max;function Rn(e,t){return xn(function(e,t,n){return t=In(void 0===t?e.length-1:t,0),function(){for(var a=arguments,r=-1,o=In(a.length-t,0),i=Array(o);++r<o;)i[r]=a[t+r];r=-1;for(var l=Array(t+1);++r<t;)l[r]=a[r];return l[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,l)}}(e,t,Yt),e+"")}function Nn(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Tn(e){return null!=e&&Nn(e.length)&&!Jt(e)}var jn=Object.prototype;function Dn(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||jn)}function Mn(e){return Dt(e)&&"[object Arguments]"==jt(e)}var Ln=Object.prototype,Fn=Ln.hasOwnProperty,Pn=Ln.propertyIsEnumerable,Un=Mn(function(){return arguments}())?Mn:function(e){return Dt(e)&&Fn.call(e,"callee")&&!Pn.call(e,"callee")};var Bn="object"==typeof exports&&exports&&!exports.nodeType&&exports,Vn=Bn&&"object"==typeof module&&module&&!module.nodeType&&module,zn=Vn&&Vn.exports===Bn?At.Buffer:void 0,Gn=(zn?zn.isBuffer:void 0)||function(){return!1},Kn={};function Hn(e){return function(t){return e(t)}}Kn["[object Float32Array]"]=Kn["[object Float64Array]"]=Kn["[object Int8Array]"]=Kn["[object Int16Array]"]=Kn["[object Int32Array]"]=Kn["[object Uint8Array]"]=Kn["[object Uint8ClampedArray]"]=Kn["[object Uint16Array]"]=Kn["[object Uint32Array]"]=!0,Kn["[object Arguments]"]=Kn["[object Array]"]=Kn["[object ArrayBuffer]"]=Kn["[object Boolean]"]=Kn["[object DataView]"]=Kn["[object Date]"]=Kn["[object Error]"]=Kn["[object Function]"]=Kn["[object Map]"]=Kn["[object Number]"]=Kn["[object Object]"]=Kn["[object RegExp]"]=Kn["[object Set]"]=Kn["[object String]"]=Kn["[object WeakMap]"]=!1;var Xn="object"==typeof exports&&exports&&!exports.nodeType&&exports,qn=Xn&&"object"==typeof module&&module&&!module.nodeType&&module,Wn=qn&&qn.exports===Xn&&kt.process,Yn=function(){try{var e=qn&&qn.require&&qn.require("util").types;return e||Wn&&Wn.binding&&Wn.binding("util")}catch(e){}}(),Jn=Yn&&Yn.isTypedArray,Qn=Jn?Hn(Jn):function(e){return Dt(e)&&Nn(e.length)&&!!Kn[jt(e)]},Zn=Object.prototype.hasOwnProperty;function ea(e,t){var n=Lt(e),a=!n&&Un(e),r=!n&&!a&&Gn(e),o=!n&&!a&&!r&&Qn(e),i=n||a||r||o,l=i?function(e,t){for(var n=-1,a=Array(e);++n<e;)a[n]=t(n);return a}(e.length,String):[],s=l.length;for(var c in e)!t&&!Zn.call(e,c)||i&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||kn(c,s))||l.push(c);return l}function ta(e,t){return function(n){return e(t(n))}}var na=ta(Object.keys,Object),aa=Object.prototype.hasOwnProperty;function ra(e){if(!Dn(e))return na(e);var t=[];for(var n in Object(e))aa.call(e,n)&&"constructor"!=n&&t.push(n);return t}function oa(e){return Tn(e)?ea(e):ra(e)}var ia=Object.prototype.hasOwnProperty;function la(e){if(!Gt(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Dn(e),n=[];for(var a in e)("constructor"!=a||!t&&ia.call(e,a))&&n.push(a);return n}function sa(e){return Tn(e)?ea(e,!0):la(e)}var ca=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,da=/^\w*$/;var ua=un(Object,"create");var fa=Object.prototype.hasOwnProperty;var pa=Object.prototype.hasOwnProperty;function ma(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function ha(e,t){for(var n=e.length;n--;)if(An(e[n][0],t))return n;return-1}ma.prototype.clear=function(){this.__data__=ua?ua(null):{},this.size=0},ma.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ma.prototype.get=function(e){var t=this.__data__;if(ua){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return fa.call(t,e)?t[e]:void 0},ma.prototype.has=function(e){var t=this.__data__;return ua?void 0!==t[e]:pa.call(t,e)},ma.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ua&&void 0===t?"__lodash_hash_undefined__":t,this};var va=Array.prototype.splice;function ga(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}ga.prototype.clear=function(){this.__data__=[],this.size=0},ga.prototype.delete=function(e){var t=this.__data__,n=ha(t,e);return!(n<0)&&(n==t.length-1?t.pop():va.call(t,n,1),--this.size,!0)},ga.prototype.get=function(e){var t=this.__data__,n=ha(t,e);return n<0?void 0:t[n][1]},ga.prototype.has=function(e){return ha(this.__data__,e)>-1},ga.prototype.set=function(e,t){var n=this.__data__,a=ha(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var ya=un(At,"Map");function ba(e,t){var n,a,r=e.__data__;return("string"==(a=typeof(n=t))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof t?"string":"hash"]:r.map}function _a(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}_a.prototype.clear=function(){this.size=0,this.__data__={hash:new ma,map:new(ya||ga),string:new ma}},_a.prototype.delete=function(e){var t=ba(this,e).delete(e);return this.size-=t?1:0,t},_a.prototype.get=function(e){return ba(this,e).get(e)},_a.prototype.has=function(e){return ba(this,e).has(e)},_a.prototype.set=function(e,t){var n=ba(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this};function wa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=t?t.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=e.apply(this,a);return n.cache=o.set(r,i)||o,i};return n.cache=new(wa.Cache||_a),n}wa.Cache=_a;var xa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Sa=/\\(\\)?/g,ka=function(e){var t=wa(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(xa,function(e,n,a,r){t.push(a?r.replace(Sa,"$1"):n||e)}),t});function Ea(e,t){return Lt(e)?e:function(e,t){if(Lt(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Mt(e))||da.test(e)||!ca.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:ka(function(e){return null==e?"":Ut(e)}(e))}function Aa(e){if("string"==typeof e||Mt(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Oa(e,t,n){var a=null==e?void 0:function(e,t){for(var n=0,a=(t=Ea(t,e)).length;null!=e&&n<a;)e=e[Aa(t[n++])];return n&&n==a?e:void 0}(e,t);return void 0===a?n:a}function $a(e,t){for(var n=-1,a=t.length,r=e.length;++n<a;)e[r+n]=t[n];return e}var Ca=ta(Object.getPrototypeOf,Object),Ia=Function.prototype,Ra=Object.prototype,Na=Ia.toString,Ta=Ra.hasOwnProperty,ja=Na.call(Object);function Da(e){if(!Dt(e)||"[object Object]"!=jt(e))return!1;var t=Ca(e);if(null===t)return!0;var n=Ta.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Na.call(n)==ja}function Ma(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Wt(n))==n?n:0),void 0!==t&&(t=(t=Wt(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Wt(e),t,n)}function La(e){var t=this.__data__=new ga(e);this.size=t.size}La.prototype.clear=function(){this.__data__=new ga,this.size=0},La.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},La.prototype.get=function(e){return this.__data__.get(e)},La.prototype.has=function(e){return this.__data__.has(e)},La.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ga){var a=n.__data__;if(!ya||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new _a(a)}return n.set(e,t),this.size=n.size,this};var Fa="object"==typeof exports&&exports&&!exports.nodeType&&exports,Pa=Fa&&"object"==typeof module&&module&&!module.nodeType&&module,Ua=Pa&&Pa.exports===Fa?At.Buffer:void 0,Ba=Ua?Ua.allocUnsafe:void 0;function Va(e,t){if(t)return e.slice();var n=e.length,a=Ba?Ba(n):new e.constructor(n);return e.copy(a),a}function za(){return[]}var Ga=Object.prototype.propertyIsEnumerable,Ka=Object.getOwnPropertySymbols,Ha=Ka?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,a=null==e?0:e.length,r=0,o=[];++n<a;){var i=e[n];t(i,n,e)&&(o[r++]=i)}return o}(Ka(e),function(t){return Ga.call(e,t)}))}:za;var Xa=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)$a(t,Ha(e)),e=Ca(e);return t}:za;function qa(e,t,n){var a=t(e);return Lt(e)?a:$a(a,n(e))}function Wa(e){return qa(e,oa,Ha)}function Ya(e){return qa(e,sa,Xa)}var Ja=un(At,"DataView"),Qa=un(At,"Promise"),Za=un(At,"Set"),er="[object Map]",tr="[object Promise]",nr="[object Set]",ar="[object WeakMap]",rr="[object DataView]",or=nn(Ja),ir=nn(ya),lr=nn(Qa),sr=nn(Za),cr=nn(fn),dr=jt;(Ja&&dr(new Ja(new ArrayBuffer(1)))!=rr||ya&&dr(new ya)!=er||Qa&&dr(Qa.resolve())!=tr||Za&&dr(new Za)!=nr||fn&&dr(new fn)!=ar)&&(dr=function(e){var t=jt(e),n="[object Object]"==t?e.constructor:void 0,a=n?nn(n):"";if(a)switch(a){case or:return rr;case ir:return er;case lr:return tr;case sr:return nr;case cr:return ar}return t});var ur=Object.prototype.hasOwnProperty;var fr=At.Uint8Array;function pr(e){var t=new e.constructor(e.byteLength);return new fr(t).set(new fr(e)),t}var mr=/\w*$/;var hr=Ot?Ot.prototype:void 0,vr=hr?hr.valueOf:void 0;function gr(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function yr(e,t,n){var a,r=e.constructor;switch(t){case"[object ArrayBuffer]":return pr(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return function(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return gr(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return function(e){var t=new e.constructor(e.source,mr.exec(e));return t.lastIndex=e.lastIndex,t}(e);case"[object Symbol]":return a=e,vr?Object(vr.call(a)):{}}}function br(e){return"function"!=typeof e.constructor||Dn(e)?{}:mn(Ca(e))}var _r=Yn&&Yn.isMap,wr=_r?Hn(_r):function(e){return Dt(e)&&"[object Map]"==dr(e)};var xr=Yn&&Yn.isSet,Sr=xr?Hn(xr):function(e){return Dt(e)&&"[object Set]"==dr(e)},kr="[object Arguments]",Er="[object Function]",Ar="[object Object]",Or={};function $r(e,t,n,a,r,o){var i,l=1&t,s=2&t,c=4&t;if(void 0!==i)return i;if(!Gt(e))return e;var d=Lt(e);if(d){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ur.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return hn(e,i)}else{var u=dr(e),f=u==Er||"[object GeneratorFunction]"==u;if(Gn(e))return Va(e,l);if(u==Ar||u==kr||f&&!r){if(i=s||f?{}:br(e),!l)return s?function(e,t){return Cn(e,Xa(e),t)}(e,function(e,t){return e&&Cn(t,sa(t),e)}(i,e)):function(e,t){return Cn(e,Ha(e),t)}(e,function(e,t){return e&&Cn(t,oa(t),e)}(i,e))}else{if(!Or[u])return r?e:{};i=yr(e,u,l)}}o||(o=new La);var p=o.get(e);if(p)return p;o.set(e,i),Sr(e)?e.forEach(function(a){i.add($r(a,t,n,a,e,o))}):wr(e)&&e.forEach(function(a,r){i.set(r,$r(a,t,n,r,e,o))});var m=d?void 0:(c?s?Ya:Wa:s?sa:oa)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++n<a&&!1!==t(e[n],n,e););}(m||e,function(a,r){m&&(a=e[r=a]),$n(i,r,$r(a,t,n,r,e,o))}),i}Or[kr]=Or["[object Array]"]=Or["[object ArrayBuffer]"]=Or["[object DataView]"]=Or["[object Boolean]"]=Or["[object Date]"]=Or["[object Float32Array]"]=Or["[object Float64Array]"]=Or["[object Int8Array]"]=Or["[object Int16Array]"]=Or["[object Int32Array]"]=Or["[object Map]"]=Or["[object Number]"]=Or[Ar]=Or["[object RegExp]"]=Or["[object Set]"]=Or["[object String]"]=Or["[object Symbol]"]=Or["[object Uint8Array]"]=Or["[object Uint8ClampedArray]"]=Or["[object Uint16Array]"]=Or["[object Uint32Array]"]=!0,Or["[object Error]"]=Or[Er]=Or["[object WeakMap]"]=!1;function Cr(e){return $r(e,5)}function Ir(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new _a;++t<n;)this.add(e[t])}function Rr(e,t){for(var n=-1,a=null==e?0:e.length;++n<a;)if(t(e[n],n,e))return!0;return!1}function Nr(e,t){return e.has(t)}Ir.prototype.add=Ir.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ir.prototype.has=function(e){return this.__data__.has(e)};function Tr(e,t,n,a,r,o){var i=1&n,l=e.length,s=t.length;if(l!=s&&!(i&&s>l))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var u=-1,f=!0,p=2&n?new Ir:void 0;for(o.set(e,t),o.set(t,e);++u<l;){var m=e[u],h=t[u];if(a)var v=i?a(h,m,u,t,e,o):a(m,h,u,e,t,o);if(void 0!==v){if(v)continue;f=!1;break}if(p){if(!Rr(t,function(e,t){if(!Nr(p,t)&&(m===e||r(m,e,n,a,o)))return p.push(t)})){f=!1;break}}else if(m!==h&&!r(m,h,n,a,o)){f=!1;break}}return o.delete(e),o.delete(t),f}function jr(e){var t=-1,n=Array(e.size);return e.forEach(function(e,a){n[++t]=[a,e]}),n}function Dr(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var Mr=Ot?Ot.prototype:void 0,Lr=Mr?Mr.valueOf:void 0;var Fr=Object.prototype.hasOwnProperty;var Pr="[object Arguments]",Ur="[object Array]",Br="[object Object]",Vr=Object.prototype.hasOwnProperty;function zr(e,t,n,a,r,o){var i=Lt(e),l=Lt(t),s=i?Ur:dr(e),c=l?Ur:dr(t),d=(s=s==Pr?Br:s)==Br,u=(c=c==Pr?Br:c)==Br,f=s==c;if(f&&Gn(e)){if(!Gn(t))return!1;i=!0,d=!1}if(f&&!d)return o||(o=new La),i||Qn(e)?Tr(e,t,n,a,r,o):function(e,t,n,a,r,o,i){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!o(new fr(e),new fr(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return An(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var l=jr;case"[object Set]":var s=1&a;if(l||(l=Dr),e.size!=t.size&&!s)return!1;var c=i.get(e);if(c)return c==t;a|=2,i.set(e,t);var d=Tr(l(e),l(t),a,r,o,i);return i.delete(e),d;case"[object Symbol]":if(Lr)return Lr.call(e)==Lr.call(t)}return!1}(e,t,s,n,a,r,o);if(!(1&n)){var p=d&&Vr.call(e,"__wrapped__"),m=u&&Vr.call(t,"__wrapped__");if(p||m){var h=p?e.value():e,v=m?t.value():t;return o||(o=new La),r(h,v,n,a,o)}}return!!f&&(o||(o=new La),function(e,t,n,a,r,o){var i=1&n,l=Wa(e),s=l.length;if(s!=Wa(t).length&&!i)return!1;for(var c=s;c--;){var d=l[c];if(!(i?d in t:Fr.call(t,d)))return!1}var u=o.get(e),f=o.get(t);if(u&&f)return u==t&&f==e;var p=!0;o.set(e,t),o.set(t,e);for(var m=i;++c<s;){var h=e[d=l[c]],v=t[d];if(a)var g=i?a(v,h,d,t,e,o):a(h,v,d,e,t,o);if(!(void 0===g?h===v||r(h,v,n,a,o):g)){p=!1;break}m||(m="constructor"==d)}if(p&&!m){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(p=!1)}return o.delete(e),o.delete(t),p}(e,t,n,a,r,o))}function Gr(e,t,n,a,r){return e===t||(null==e||null==t||!Dt(e)&&!Dt(t)?e!=e&&t!=t:zr(e,t,n,a,Gr,r))}var Kr=function(e,t,n){for(var a=-1,r=Object(e),o=n(e),i=o.length;i--;){var l=o[++a];if(!1===t(r[l],l,r))break}return e};function Hr(e,t,n){(void 0!==n&&!An(e[t],n)||void 0===n&&!(t in e))&&En(e,t,n)}function Xr(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function qr(e,t,n,a,r,o,i){var l=Xr(e,n),s=Xr(t,n),c=i.get(s);if(c)Hr(e,n,c);else{var d,u=o?o(l,s,n+"",e,t,i):void 0,f=void 0===u;if(f){var p=Lt(s),m=!p&&Gn(s),h=!p&&!m&&Qn(s);u=s,p||m||h?Lt(l)?u=l:Dt(d=l)&&Tn(d)?u=hn(l):m?(f=!1,u=Va(s,!0)):h?(f=!1,u=gr(s,!0)):u=[]:Da(s)||Un(s)?(u=l,Un(l)?u=function(e){return Cn(e,sa(e))}(l):Gt(l)&&!Jt(l)||(u=br(s))):f=!1}f&&(i.set(s,u),r(u,s,a,o,i),i.delete(s)),Hr(e,n,u)}}function Wr(e,t,n,a,r){e!==t&&Kr(t,function(o,i){if(r||(r=new La),Gt(o))qr(e,t,i,n,Wr,a,r);else{var l=a?a(Xr(e,i),o,i+"",e,t,r):void 0;void 0===l&&(l=o),Hr(e,i,l)}},sa)}var Yr=Object.prototype.hasOwnProperty;function Jr(e,t){return Gr(e,t)}function Qr(e){return null==e}var Zr,eo=(Zr=function(e,t,n){Wr(e,t,n)},Rn(function(e,t){var n=-1,a=t.length,r=a>1?t[a-1]:void 0,o=a>2?t[2]:void 0;for(r=Zr.length>3&&"function"==typeof r?(a--,r):void 0,o&&function(e,t,n){if(!Gt(n))return!1;var a=typeof t;return!!("number"==a?Tn(n)&&kn(t,n.length):"string"==a&&t in n)&&An(n[t],e)}(t[0],t[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++n<a;){var i=t[n];i&&Zr(e,i,n,r)}return e}));function to(e,t,n){return null==e?e:function(e,t,n){if(!Gt(e))return e;for(var a=-1,r=(t=Ea(t,e)).length,o=r-1,i=e;null!=i&&++a<r;){var l=Aa(t[a]),s=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(a!=o){var c=i[l];void 0===(s=void 0)&&(s=Gt(c)?c:kn(t[a+1])?[]:{})}$n(i,l,s),i=i[l]}return e}(e,t,n)}const no=Symbol.for("constructDateFrom");function ao(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&no in e?e[no](t):e instanceof Date?new e.constructor(t):new Date(t)}function ro(e,t){return ao(e,e)}function oo(e,t,n){const a=ro(e);return isNaN(t)?ao(e,NaN):t?(a.setDate(a.getDate()+t),a):a}function io(e,t,n){const a=ro(e);if(isNaN(t))return ao(e,NaN);if(!t)return a;const r=a.getDate(),o=ao(e,a.getTime());o.setMonth(a.getMonth()+t+1,0);return r>=o.getDate()?o:(a.setFullYear(o.getFullYear(),o.getMonth(),r),a)}function lo(e,t,n){return ao(e,+ro(e)+t)}function so(e,t,n){return lo(e,36e5*t)}function co(e,t,n){const a=ro(e);return a.setTime(a.getTime()+6e4*t),a}function uo(e,t,n){return lo(e,1e3*t)}function fo(e,t,n){return oo(e,7*t)}function po(e,t,n){return io(e,12*t)}var mo=(0).constructor,ho=mo.isFinite;mo.isInteger;var vo=[].constructor.isArray;function go(e){return null!==e&&"object"==typeof e}function yo(e,t){return void 0===t&&(t=0),"string"==typeof e&&e.length>=t}function bo(e){return ho(e)}function _o(e){return vo(e)}function wo(e,t){return go(e)&&t in e}var xo=new(function(){function e(e){this.size=e,this.reset()}return e.prototype.reset=function(){this.oldestIndex=0,this.map={},this.cachedKeys=new Array(this.size)},e.prototype.get=function(e){return this.map[e]},e.prototype.set=function(e,t){this.map[e]=t;var n=this.cachedKeys[this.oldestIndex];void 0!==n&&delete this.map[n],this.cachedKeys[this.oldestIndex]=e,this.oldestIndex++,this.oldestIndex%=this.size},e}())(1e3);function So(e){var t=e.charAt(0),n=e.substr(-1);if("'\"`".includes(t)||"'\"`".includes(n)){if(e.length<2||t!==n)throw new SyntaxError('Mismatching string quotation: "'+e+'"');return e.substring(1,e.length-1)}if(e.includes("["))throw new SyntaxError('Missing ] in varName "'+e+'"');return"+"===t?e.substr(1):e}function ko(e,t,n){var a=t.trim();if(""===a)return e;if(a.startsWith(".")){if(!n)throw new SyntaxError('Unexpected . at the start of "'+t+'"');if(""===(a=a.substr(1).trim()))return e}else if(n)throw new SyntaxError('Missing . at the start of "'+t+'"');if(a.endsWith("."))throw new SyntaxError('Unexpected "." at the end of "'+t+'"');for(var r=0,o=a.split(".");r<o.length;r++){var i=o[r].trim();if(""===i)throw new SyntaxError('Empty prop name when parsing "'+t+'"');e.push(i)}return e}function Eo(e){if(!yo(e))throw new TypeError("Cannot parse path. Expected string. Got a "+typeof e);for(var t,n,a=0,r=!1,o=new Array(0),i=0;i<e.length&&-1!==(t=e.indexOf("[",i));i=a){if(-1===(a=e.indexOf("]",t)))throw new SyntaxError('Missing ] in varName "'+e+'"');if(0===(n=e.substring(t+1,a).trim()).length)throw new SyntaxError("Unexpected token ]");a++,ko(o,e.substring(i,t),r),o.push(So(n)),r=!0}return ko(o,e.substring(a),r)}function Ao(e,t,n){if(void 0===n&&(n={}),!go(n))throw new TypeError("get expects an object option. Got "+typeof n);var a=n.depth,r=void 0===a?10:a;if(!bo(r)||r<=0)throw new RangeError("Expected a positive number for depth. Got "+r);var o=Array.isArray(t)?t:Eo.cached(t),i=function(){return o.join(" > ")};if(o.length>r)throw new ReferenceError("The path cannot be deeper than "+r+' levels. Got "'+i()+'"');for(var l=e,s=0,c=o;s<c.length;s++){var d=c[s];if(!wo(l,d)){if(n.propsExist)throw new ReferenceError(d+' is not defined in the scope at path: "'+i()+'"');return}l=l[d]}return l}Eo.cached=function(e){var t=xo.get(e);return void 0===t&&(t=Eo(e),xo.set(e,t)),t};var Oo=function(){function e(e,t){var n=this;if(void 0===t&&(t={}),this.tokens=e,this.options=t,this.render=function(e){void 0===e&&(e={});var t=n.tokens.varNames.length;n.cacheParsedPaths();for(var a=new Array(t),r=0;r<t;r++)a[r]=Ao(e,n.toPathCache[r],n.options);return n.stringify(a)},this.renderFn=function(e,t){void 0===t&&(t={});var a=n.resolveVarNames(e,t);return n.stringify(a)},this.renderFnAsync=function(e,t){return void 0===t&&(t={}),Promise.all(n.resolveVarNames(e,t)).then(function(e){return n.stringify(e)})},!go(e)||!_o(e.strings)||!_o(e.varNames)||e.strings.length!==e.varNames.length+1)throw new TypeError("Invalid tokens object");if(!go(t))throw new TypeError("Options should be an object. Got a "+typeof t);t.validateVarNames&&this.cacheParsedPaths()}return e.prototype.cacheParsedPaths=function(){var e=this.tokens.varNames;if(void 0===this.toPathCache){this.toPathCache=new Array(e.length);for(var t=0;t<e.length;t++)this.toPathCache[t]=Eo.cached(e[t])}},e.prototype.resolveVarNames=function(e,t){void 0===t&&(t={});var n=this.tokens.varNames;if(!function(e){return"function"==typeof e}(e))throw new TypeError("Expected a resolver function. Got "+String(e));for(var a=n.length,r=new Array(a),o=0;o<a;o++)r[o]=e.call(null,n[o],t);return r},e.prototype.stringify=function(e){for(var t=this.tokens.strings,n=this.options.explicit,a=e.length,r="",o=0;o<a;o++){r+=t[o];var i=e[o];(n||null!=i)&&(r+=i)}return r+=t[a]},e}();function $o(e,t){void 0===t&&(t={});var n=function(e,t){if(void 0===t&&(t={}),!yo(e))throw new TypeError("The template parameter must be a string. Got a "+typeof e);if(!go(t))throw new TypeError("Options should be an object. Got a "+typeof t);var n=t.tags,a=void 0===n?["{{","}}"]:n,r=t.maxVarNameLength,o=void 0===r?1e3:r;if(!_o(a)||2!==a.length)throw TypeError("tags should be an array of two elements. Got "+String(a));var i=a[0],l=a[1];if(!yo(i,1)||!yo(l,1)||i===l)throw new TypeError('The open and close symbols should be two distinct non-empty strings. Got "'+i+'" and "'+l+'"');if(!bo(o)||o<=0)throw new Error("Expected a positive number for maxVarNameLength. Got "+o);for(var s,c,d=i.length,u=l.length,f=0,p=[],m=[],h=0;h<e.length&&-1!==(s=e.indexOf(i,h));){var v=s+d;if(-1===(f=e.substr(v,o+u).indexOf(l)))throw new SyntaxError('Missing "'+l+'" in the template for the "'+i+'" at position '+s+" within "+o+" characters");if(f+=v,0===(c=e.substring(v,f).trim()).length)throw new SyntaxError('Unexpected "'+l+'" tag found at position '+s);if(c.includes(i))throw new SyntaxError('Variable names cannot have "'+i+'". But at position '+s+'. Got "'+c+'"');m.push(c),f+=u,p.push(e.substring(h,s)),h=f}return p.push(e.substring(f)),{strings:p,varNames:m}}(e,t);return new Oo(n,t)}function Co(e,t,n){return $o(e,n).render(t)}function Io(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ro(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if("function"==typeof t){var n=function e(){var n=!1;try{n=this instanceof e}catch{}return n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}),n}var No,To={exports:{}};var jo=(No||(No=1,function(e){!function(t,n){e.exports=n()}(self,()=>(()=>{var e={86:(e,t)=>{t.keys=function(e,t={}){return!1!==t.symbols?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},125:()=>{},362:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TLDS=void 0,t.TLDS=["AAA","AARP","ABB","ABBOTT","ABBVIE","ABC","ABLE","ABOGADO","ABUDHABI","AC","ACADEMY","ACCENTURE","ACCOUNTANT","ACCOUNTANTS","ACO","ACTOR","AD","ADS","ADULT","AE","AEG","AERO","AETNA","AF","AFL","AFRICA","AG","AGAKHAN","AGENCY","AI","AIG","AIRBUS","AIRFORCE","AIRTEL","AKDN","AL","ALIBABA","ALIPAY","ALLFINANZ","ALLSTATE","ALLY","ALSACE","ALSTOM","AM","AMAZON","AMERICANEXPRESS","AMERICANFAMILY","AMEX","AMFAM","AMICA","AMSTERDAM","ANALYTICS","ANDROID","ANQUAN","ANZ","AO","AOL","APARTMENTS","APP","APPLE","AQ","AQUARELLE","AR","ARAB","ARAMCO","ARCHI","ARMY","ARPA","ART","ARTE","AS","ASDA","ASIA","ASSOCIATES","AT","ATHLETA","ATTORNEY","AU","AUCTION","AUDI","AUDIBLE","AUDIO","AUSPOST","AUTHOR","AUTO","AUTOS","AW","AWS","AX","AXA","AZ","AZURE","BA","BABY","BAIDU","BANAMEX","BAND","BANK","BAR","BARCELONA","BARCLAYCARD","BARCLAYS","BAREFOOT","BARGAINS","BASEBALL","BASKETBALL","BAUHAUS","BAYERN","BB","BBC","BBT","BBVA","BCG","BCN","BD","BE","BEATS","BEAUTY","BEER","BERLIN","BEST","BESTBUY","BET","BF","BG","BH","BHARTI","BI","BIBLE","BID","BIKE","BING","BINGO","BIO","BIZ","BJ","BLACK","BLACKFRIDAY","BLOCKBUSTER","BLOG","BLOOMBERG","BLUE","BM","BMS","BMW","BN","BNPPARIBAS","BO","BOATS","BOEHRINGER","BOFA","BOM","BOND","BOO","BOOK","BOOKING","BOSCH","BOSTIK","BOSTON","BOT","BOUTIQUE","BOX","BR","BRADESCO","BRIDGESTONE","BROADWAY","BROKER","BROTHER","BRUSSELS","BS","BT","BUILD","BUILDERS","BUSINESS","BUY","BUZZ","BV","BW","BY","BZ","BZH","CA","CAB","CAFE","CAL","CALL","CALVINKLEIN","CAM","CAMERA","CAMP","CANON","CAPETOWN","CAPITAL","CAPITALONE","CAR","CARAVAN","CARDS","CARE","CAREER","CAREERS","CARS","CASA","CASE","CASH","CASINO","CAT","CATERING","CATHOLIC","CBA","CBN","CBRE","CC","CD","CENTER","CEO","CERN","CF","CFA","CFD","CG","CH","CHANEL","CHANNEL","CHARITY","CHASE","CHAT","CHEAP","CHINTAI","CHRISTMAS","CHROME","CHURCH","CI","CIPRIANI","CIRCLE","CISCO","CITADEL","CITI","CITIC","CITY","CK","CL","CLAIMS","CLEANING","CLICK","CLINIC","CLINIQUE","CLOTHING","CLOUD","CLUB","CLUBMED","CM","CN","CO","COACH","CODES","COFFEE","COLLEGE","COLOGNE","COM","COMMBANK","COMMUNITY","COMPANY","COMPARE","COMPUTER","COMSEC","CONDOS","CONSTRUCTION","CONSULTING","CONTACT","CONTRACTORS","COOKING","COOL","COOP","CORSICA","COUNTRY","COUPON","COUPONS","COURSES","CPA","CR","CREDIT","CREDITCARD","CREDITUNION","CRICKET","CROWN","CRS","CRUISE","CRUISES","CU","CUISINELLA","CV","CW","CX","CY","CYMRU","CYOU","CZ","DAD","DANCE","DATA","DATE","DATING","DATSUN","DAY","DCLK","DDS","DE","DEAL","DEALER","DEALS","DEGREE","DELIVERY","DELL","DELOITTE","DELTA","DEMOCRAT","DENTAL","DENTIST","DESI","DESIGN","DEV","DHL","DIAMONDS","DIET","DIGITAL","DIRECT","DIRECTORY","DISCOUNT","DISCOVER","DISH","DIY","DJ","DK","DM","DNP","DO","DOCS","DOCTOR","DOG","DOMAINS","DOT","DOWNLOAD","DRIVE","DTV","DUBAI","DUNLOP","DUPONT","DURBAN","DVAG","DVR","DZ","EARTH","EAT","EC","ECO","EDEKA","EDU","EDUCATION","EE","EG","EMAIL","EMERCK","ENERGY","ENGINEER","ENGINEERING","ENTERPRISES","EPSON","EQUIPMENT","ER","ERICSSON","ERNI","ES","ESQ","ESTATE","ET","EU","EUROVISION","EUS","EVENTS","EXCHANGE","EXPERT","EXPOSED","EXPRESS","EXTRASPACE","FAGE","FAIL","FAIRWINDS","FAITH","FAMILY","FAN","FANS","FARM","FARMERS","FASHION","FAST","FEDEX","FEEDBACK","FERRARI","FERRERO","FI","FIDELITY","FIDO","FILM","FINAL","FINANCE","FINANCIAL","FIRE","FIRESTONE","FIRMDALE","FISH","FISHING","FIT","FITNESS","FJ","FK","FLICKR","FLIGHTS","FLIR","FLORIST","FLOWERS","FLY","FM","FO","FOO","FOOD","FOOTBALL","FORD","FOREX","FORSALE","FORUM","FOUNDATION","FOX","FR","FREE","FRESENIUS","FRL","FROGANS","FRONTIER","FTR","FUJITSU","FUN","FUND","FURNITURE","FUTBOL","FYI","GA","GAL","GALLERY","GALLO","GALLUP","GAME","GAMES","GAP","GARDEN","GAY","GB","GBIZ","GD","GDN","GE","GEA","GENT","GENTING","GEORGE","GF","GG","GGEE","GH","GI","GIFT","GIFTS","GIVES","GIVING","GL","GLASS","GLE","GLOBAL","GLOBO","GM","GMAIL","GMBH","GMO","GMX","GN","GODADDY","GOLD","GOLDPOINT","GOLF","GOO","GOODYEAR","GOOG","GOOGLE","GOP","GOT","GOV","GP","GQ","GR","GRAINGER","GRAPHICS","GRATIS","GREEN","GRIPE","GROCERY","GROUP","GS","GT","GU","GUCCI","GUGE","GUIDE","GUITARS","GURU","GW","GY","HAIR","HAMBURG","HANGOUT","HAUS","HBO","HDFC","HDFCBANK","HEALTH","HEALTHCARE","HELP","HELSINKI","HERE","HERMES","HIPHOP","HISAMITSU","HITACHI","HIV","HK","HKT","HM","HN","HOCKEY","HOLDINGS","HOLIDAY","HOMEDEPOT","HOMEGOODS","HOMES","HOMESENSE","HONDA","HORSE","HOSPITAL","HOST","HOSTING","HOT","HOTELS","HOTMAIL","HOUSE","HOW","HR","HSBC","HT","HU","HUGHES","HYATT","HYUNDAI","IBM","ICBC","ICE","ICU","ID","IE","IEEE","IFM","IKANO","IL","IM","IMAMAT","IMDB","IMMO","IMMOBILIEN","IN","INC","INDUSTRIES","INFINITI","INFO","ING","INK","INSTITUTE","INSURANCE","INSURE","INT","INTERNATIONAL","INTUIT","INVESTMENTS","IO","IPIRANGA","IQ","IR","IRISH","IS","ISMAILI","IST","ISTANBUL","IT","ITAU","ITV","JAGUAR","JAVA","JCB","JE","JEEP","JETZT","JEWELRY","JIO","JLL","JM","JMP","JNJ","JO","JOBS","JOBURG","JOT","JOY","JP","JPMORGAN","JPRS","JUEGOS","JUNIPER","KAUFEN","KDDI","KE","KERRYHOTELS","KERRYPROPERTIES","KFH","KG","KH","KI","KIA","KIDS","KIM","KINDLE","KITCHEN","KIWI","KM","KN","KOELN","KOMATSU","KOSHER","KP","KPMG","KPN","KR","KRD","KRED","KUOKGROUP","KW","KY","KYOTO","KZ","LA","LACAIXA","LAMBORGHINI","LAMER","LAND","LANDROVER","LANXESS","LASALLE","LAT","LATINO","LATROBE","LAW","LAWYER","LB","LC","LDS","LEASE","LECLERC","LEFRAK","LEGAL","LEGO","LEXUS","LGBT","LI","LIDL","LIFE","LIFEINSURANCE","LIFESTYLE","LIGHTING","LIKE","LILLY","LIMITED","LIMO","LINCOLN","LINK","LIVE","LIVING","LK","LLC","LLP","LOAN","LOANS","LOCKER","LOCUS","LOL","LONDON","LOTTE","LOTTO","LOVE","LPL","LPLFINANCIAL","LR","LS","LT","LTD","LTDA","LU","LUNDBECK","LUXE","LUXURY","LV","LY","MA","MADRID","MAIF","MAISON","MAKEUP","MAN","MANAGEMENT","MANGO","MAP","MARKET","MARKETING","MARKETS","MARRIOTT","MARSHALLS","MATTEL","MBA","MC","MCKINSEY","MD","ME","MED","MEDIA","MEET","MELBOURNE","MEME","MEMORIAL","MEN","MENU","MERCKMSD","MG","MH","MIAMI","MICROSOFT","MIL","MINI","MINT","MIT","MITSUBISHI","MK","ML","MLB","MLS","MM","MMA","MN","MO","MOBI","MOBILE","MODA","MOE","MOI","MOM","MONASH","MONEY","MONSTER","MORMON","MORTGAGE","MOSCOW","MOTO","MOTORCYCLES","MOV","MOVIE","MP","MQ","MR","MS","MSD","MT","MTN","MTR","MU","MUSEUM","MUSIC","MV","MW","MX","MY","MZ","NA","NAB","NAGOYA","NAME","NAVY","NBA","NC","NE","NEC","NET","NETBANK","NETFLIX","NETWORK","NEUSTAR","NEW","NEWS","NEXT","NEXTDIRECT","NEXUS","NF","NFL","NG","NGO","NHK","NI","NICO","NIKE","NIKON","NINJA","NISSAN","NISSAY","NL","NO","NOKIA","NORTON","NOW","NOWRUZ","NOWTV","NP","NR","NRA","NRW","NTT","NU","NYC","NZ","OBI","OBSERVER","OFFICE","OKINAWA","OLAYAN","OLAYANGROUP","OLLO","OM","OMEGA","ONE","ONG","ONL","ONLINE","OOO","OPEN","ORACLE","ORANGE","ORG","ORGANIC","ORIGINS","OSAKA","OTSUKA","OTT","OVH","PA","PAGE","PANASONIC","PARIS","PARS","PARTNERS","PARTS","PARTY","PAY","PCCW","PE","PET","PF","PFIZER","PG","PH","PHARMACY","PHD","PHILIPS","PHONE","PHOTO","PHOTOGRAPHY","PHOTOS","PHYSIO","PICS","PICTET","PICTURES","PID","PIN","PING","PINK","PIONEER","PIZZA","PK","PL","PLACE","PLAY","PLAYSTATION","PLUMBING","PLUS","PM","PN","PNC","POHL","POKER","POLITIE","PORN","POST","PR","PRAXI","PRESS","PRIME","PRO","PROD","PRODUCTIONS","PROF","PROGRESSIVE","PROMO","PROPERTIES","PROPERTY","PROTECTION","PRU","PRUDENTIAL","PS","PT","PUB","PW","PWC","PY","QA","QPON","QUEBEC","QUEST","RACING","RADIO","RE","READ","REALESTATE","REALTOR","REALTY","RECIPES","RED","REDSTONE","REDUMBRELLA","REHAB","REISE","REISEN","REIT","RELIANCE","REN","RENT","RENTALS","REPAIR","REPORT","REPUBLICAN","REST","RESTAURANT","REVIEW","REVIEWS","REXROTH","RICH","RICHARDLI","RICOH","RIL","RIO","RIP","RO","ROCKS","RODEO","ROGERS","ROOM","RS","RSVP","RU","RUGBY","RUHR","RUN","RW","RWE","RYUKYU","SA","SAARLAND","SAFE","SAFETY","SAKURA","SALE","SALON","SAMSCLUB","SAMSUNG","SANDVIK","SANDVIKCOROMANT","SANOFI","SAP","SARL","SAS","SAVE","SAXO","SB","SBI","SBS","SC","SCB","SCHAEFFLER","SCHMIDT","SCHOLARSHIPS","SCHOOL","SCHULE","SCHWARZ","SCIENCE","SCOT","SD","SE","SEARCH","SEAT","SECURE","SECURITY","SEEK","SELECT","SENER","SERVICES","SEVEN","SEW","SEX","SEXY","SFR","SG","SH","SHANGRILA","SHARP","SHELL","SHIA","SHIKSHA","SHOES","SHOP","SHOPPING","SHOUJI","SHOW","SI","SILK","SINA","SINGLES","SITE","SJ","SK","SKI","SKIN","SKY","SKYPE","SL","SLING","SM","SMART","SMILE","SN","SNCF","SO","SOCCER","SOCIAL","SOFTBANK","SOFTWARE","SOHU","SOLAR","SOLUTIONS","SONG","SONY","SOY","SPA","SPACE","SPORT","SPOT","SR","SRL","SS","ST","STADA","STAPLES","STAR","STATEBANK","STATEFARM","STC","STCGROUP","STOCKHOLM","STORAGE","STORE","STREAM","STUDIO","STUDY","STYLE","SU","SUCKS","SUPPLIES","SUPPLY","SUPPORT","SURF","SURGERY","SUZUKI","SV","SWATCH","SWISS","SX","SY","SYDNEY","SYSTEMS","SZ","TAB","TAIPEI","TALK","TAOBAO","TARGET","TATAMOTORS","TATAR","TATTOO","TAX","TAXI","TC","TCI","TD","TDK","TEAM","TECH","TECHNOLOGY","TEL","TEMASEK","TENNIS","TEVA","TF","TG","TH","THD","THEATER","THEATRE","TIAA","TICKETS","TIENDA","TIPS","TIRES","TIROL","TJ","TJMAXX","TJX","TK","TKMAXX","TL","TM","TMALL","TN","TO","TODAY","TOKYO","TOOLS","TOP","TORAY","TOSHIBA","TOTAL","TOURS","TOWN","TOYOTA","TOYS","TR","TRADE","TRADING","TRAINING","TRAVEL","TRAVELERS","TRAVELERSINSURANCE","TRUST","TRV","TT","TUBE","TUI","TUNES","TUSHU","TV","TVS","TW","TZ","UA","UBANK","UBS","UG","UK","UNICOM","UNIVERSITY","UNO","UOL","UPS","US","UY","UZ","VA","VACATIONS","VANA","VANGUARD","VC","VE","VEGAS","VENTURES","VERISIGN","VERSICHERUNG","VET","VG","VI","VIAJES","VIDEO","VIG","VIKING","VILLAS","VIN","VIP","VIRGIN","VISA","VISION","VIVA","VIVO","VLAANDEREN","VN","VODKA","VOLVO","VOTE","VOTING","VOTO","VOYAGE","VU","WALES","WALMART","WALTER","WANG","WANGGOU","WATCH","WATCHES","WEATHER","WEATHERCHANNEL","WEBCAM","WEBER","WEBSITE","WED","WEDDING","WEIBO","WEIR","WF","WHOSWHO","WIEN","WIKI","WILLIAMHILL","WIN","WINDOWS","WINE","WINNERS","WME","WOLTERSKLUWER","WOODSIDE","WORK","WORKS","WORLD","WOW","WS","WTC","WTF","XBOX","XEROX","XIHUAN","XIN","XN--11B4C3D","XN--1CK2E1B","XN--1QQW23A","XN--2SCRJ9C","XN--30RR7Y","XN--3BST00M","XN--3DS443G","XN--3E0B707E","XN--3HCRJ9C","XN--3PXU8K","XN--42C2D9A","XN--45BR5CYL","XN--45BRJ9C","XN--45Q11C","XN--4DBRK0CE","XN--4GBRIM","XN--54B7FTA0CC","XN--55QW42G","XN--55QX5D","XN--5SU34J936BGSG","XN--5TZM5G","XN--6FRZ82G","XN--6QQ986B3XL","XN--80ADXHKS","XN--80AO21A","XN--80AQECDR1A","XN--80ASEHDB","XN--80ASWG","XN--8Y0A063A","XN--90A3AC","XN--90AE","XN--90AIS","XN--9DBQ2A","XN--9ET52U","XN--9KRT00A","XN--B4W605FERD","XN--BCK1B9A5DRE4C","XN--C1AVG","XN--C2BR7G","XN--CCK2B3B","XN--CCKWCXETD","XN--CG4BKI","XN--CLCHC0EA0B2G2A9GCD","XN--CZR694B","XN--CZRS0T","XN--CZRU2D","XN--D1ACJ3B","XN--D1ALF","XN--E1A4C","XN--ECKVDTC9D","XN--EFVY88H","XN--FCT429K","XN--FHBEI","XN--FIQ228C5HS","XN--FIQ64B","XN--FIQS8S","XN--FIQZ9S","XN--FJQ720A","XN--FLW351E","XN--FPCRJ9C3D","XN--FZC2C9E2C","XN--FZYS8D69UVGM","XN--G2XX48C","XN--GCKR3F0F","XN--GECRJ9C","XN--GK3AT1E","XN--H2BREG3EVE","XN--H2BRJ9C","XN--H2BRJ9C8C","XN--HXT814E","XN--I1B6B1A6A2E","XN--IMR513N","XN--IO0A7I","XN--J1AEF","XN--J1AMH","XN--J6W193G","XN--JLQ480N2RG","XN--JVR189M","XN--KCRX77D1X4A","XN--KPRW13D","XN--KPRY57D","XN--KPUT3I","XN--L1ACC","XN--LGBBAT1AD8J","XN--MGB9AWBF","XN--MGBA3A3EJT","XN--MGBA3A4F16A","XN--MGBA7C0BBN0A","XN--MGBAAM7A8H","XN--MGBAB2BD","XN--MGBAH1A3HJKRD","XN--MGBAI9AZGQP6J","XN--MGBAYH7GPA","XN--MGBBH1A","XN--MGBBH1A71E","XN--MGBC0A9AZCG","XN--MGBCA7DZDO","XN--MGBCPQ6GPA1A","XN--MGBERP4A5D4AR","XN--MGBGU82A","XN--MGBI4ECEXP","XN--MGBPL2FH","XN--MGBT3DHD","XN--MGBTX2B","XN--MGBX4CD0AB","XN--MIX891F","XN--MK1BU44C","XN--MXTQ1M","XN--NGBC5AZD","XN--NGBE9E0A","XN--NGBRX","XN--NODE","XN--NQV7F","XN--NQV7FS00EMA","XN--NYQY26A","XN--O3CW4H","XN--OGBPF8FL","XN--OTU796D","XN--P1ACF","XN--P1AI","XN--PGBS0DH","XN--PSSY2U","XN--Q7CE6A","XN--Q9JYB4C","XN--QCKA1PMC","XN--QXA6A","XN--QXAM","XN--RHQV96G","XN--ROVU88B","XN--RVC1E0AM3E","XN--S9BRJ9C","XN--SES554G","XN--T60B56A","XN--TCKWE","XN--TIQ49XQYJ","XN--UNUP4Y","XN--VERMGENSBERATER-CTB","XN--VERMGENSBERATUNG-PWB","XN--VHQUV","XN--VUQ861B","XN--W4R85EL8FHU5DNRA","XN--W4RS40L","XN--WGBH1C","XN--WGBL6A","XN--XHQ521B","XN--XKC2AL3HYE2A","XN--XKC2DL3A5EE0H","XN--Y9A3AQ","XN--YFRO4I67O","XN--YGBI2AMMX","XN--ZFR164B","XXX","XYZ","YACHTS","YAHOO","YAMAXUN","YANDEX","YE","YODOBASHI","YOGA","YOKOHAMA","YOU","YOUTUBE","YT","YUN","ZA","ZAPPOS","ZARA","ZERO","ZIP","ZM","ZONE","ZUERICH","ZW"]},554:()=>{},679:(e,t)=>{const n={operators:["!","^","*","/","%","+","-","<","<=",">",">=","==","!=","&&","||","??"],operatorCharacters:["!","^","*","/","%","+","-","<","=",">","&","|","?"],operatorsOrder:[["^"],["*","/","%"],["+","-"],["<","<=",">",">="],["==","!="],["&&"],["||","??"]],operatorsPrefix:["!","n"],literals:{'"':'"',"`":"`","'":"'","[":"]"},numberRx:/^(?:[0-9]*(\.[0-9]*)?){1}$/,tokenRx:/^[\w\$\#\.\@\:\{\}]+$/,symbol:Symbol("formula"),settings:Symbol("settings")};t.Parser=class{constructor(e,t={}){if(!t[n.settings]&&t.constants)for(const e in t.constants){const n=t.constants[e];if(null!==n&&!["boolean","number","string"].includes(typeof n))throw new Error(`Formula constant ${e} contains invalid ${typeof n} value type`)}this.settings=t[n.settings]?t:Object.assign({[n.settings]:!0,constants:{},functions:{}},t),this.single=null,this._parts=null,this._parse(e)}_parse(e){let a=[],r="",o=0,i=!1;const l=e=>{if(o)throw new Error("Formula missing closing parenthesis");const l=a.length?a[a.length-1]:null;if(i||r||e){if(l&&"reference"===l.type&&")"===e)return l.type="function",l.value=this._subFormula(r,l.value),void(r="");if(")"===e){const e=new t.Parser(r,this.settings);a.push({type:"segment",value:e})}else if(i){if("]"===i)return a.push({type:"reference",value:r}),void(r="");a.push({type:"literal",value:r})}else if(n.operatorCharacters.includes(r))l&&"operator"===l.type&&n.operators.includes(l.value+r)?l.value+=r:a.push({type:"operator",value:r});else if(r.match(n.numberRx))a.push({type:"constant",value:parseFloat(r)});else if(void 0!==this.settings.constants[r])a.push({type:"constant",value:this.settings.constants[r]});else{if(!r.match(n.tokenRx))throw new Error(`Formula contains invalid token: ${r}`);a.push({type:"reference",value:r})}r=""}};for(const t of e)i?t===i?(l(),i=!1):r+=t:o?"("===t?(r+=t,++o):")"===t?(--o,o?r+=t:l(t)):r+=t:t in n.literals?i=n.literals[t]:"("===t?(l(),++o):n.operatorCharacters.includes(t)?(l(),r=t,l()):" "!==t?r+=t:l();l(),a=a.map((e,t)=>"operator"!==e.type||"-"!==e.value||t&&"operator"!==a[t-1].type?e:{type:"operator",value:"n"});let s=!1;for(const e of a){if("operator"===e.type){if(n.operatorsPrefix.includes(e.value))continue;if(!s)throw new Error("Formula contains an operator in invalid position");if(!n.operators.includes(e.value))throw new Error(`Formula contains an unknown operator ${e.value}`)}else if(s)throw new Error("Formula missing expected operator");s=!s}if(!s)throw new Error("Formula contains invalid trailing operator");1===a.length&&["reference","literal","constant"].includes(a[0].type)&&(this.single={type:"reference"===a[0].type?"reference":"value",value:a[0].value}),this._parts=a.map(e=>{if("operator"===e.type)return n.operatorsPrefix.includes(e.value)?e:e.value;if("reference"!==e.type)return e.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(e.value))throw new Error(`Formula contains invalid reference ${e.value}`);return this.settings.reference?this.settings.reference(e.value):n.reference(e.value)})}_subFormula(e,a){const r=this.settings.functions[a];if("function"!=typeof r)throw new Error(`Formula contains unknown function ${a}`);let o=[];if(e){let t="",r=0,i=!1;const l=()=>{if(!t)throw new Error(`Formula contains function ${a} with invalid arguments ${e}`);o.push(t),t=""};for(let a=0;a<e.length;++a){const o=e[a];i?(t+=o,o===i&&(i=!1)):o in n.literals&&!r?(t+=o,i=n.literals[o]):","!==o||r?(t+=o,"("===o?++r:")"===o&&--r):l()}l()}return o=o.map(e=>new t.Parser(e,this.settings)),function(e){const t=[];for(const n of o)t.push(n.evaluate(e));return r.call(e,...t)}}evaluate(e){const t=this._parts.slice();for(let a=t.length-2;a>=0;--a){const r=t[a];if(r&&"operator"===r.type){const o=t[a+1];t.splice(a+1,1);const i=n.evaluate(o,e);t[a]=n.single(r.value,i)}}return n.operatorsOrder.forEach(a=>{for(let r=1;r<t.length-1;)if(a.includes(t[r])){const a=t[r],o=n.evaluate(t[r-1],e),i=n.evaluate(t[r+1],e);t.splice(r,2);const l=n.calculate(a,o,i);t[r-1]=0===l?0:l}else r+=2}),n.evaluate(t[0],e)}},t.Parser.prototype[n.symbol]=!0,n.reference=function(e){return function(t){return t&&void 0!==t[e]?t[e]:null}},n.evaluate=function(e,t){return null===e?null:"function"==typeof e?e(t):e[n.symbol]?e.evaluate(t):e},n.single=function(e,t){if("!"===e)return!t;const n=-t;return 0===n?0:n},n.calculate=function(e,t,a){if("??"===e)return n.exists(t)?t:a;if("string"==typeof t||"string"==typeof a){if("+"===e)return(t=n.exists(t)?t:"")+(n.exists(a)?a:"")}else switch(e){case"^":return Math.pow(t,a);case"*":return t*a;case"/":return t/a;case"%":return t%a;case"+":return t+a;case"-":return t-a}switch(e){case"<":return t<a;case"<=":return t<=a;case">":return t>a;case">=":return t>=a;case"==":return t===a;case"!=":return t!==a;case"&&":return t&&a;case"||":return t||a}return null},n.exists=function(e){return null!=e}},680:(e,t,n)=>{const{assert:a}=n(3115),r=n(2115),o=n(9415),i=n(6162);e.exports=r.extend({type:"any",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,t){return a("function"==typeof e,"Method must be a function"),a(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:e,description:t}})},validate(e,t,{method:n}){try{return n(e,t)}catch(e){return t.error("any.custom",{error:e})}},args:["method","description"],multi:!0},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){a(o.isSchema(e)&&e._flags.id,"Schema must be a schema with an id");const t=this.clone();return t.$_terms.shared=t.$_terms.shared||[],t.$_terms.shared.push(e),t.$_mutateRegister(e),t}},warning:{method(e,t){return a(e&&"string"==typeof e,"Invalid warning code"),this.$_addRule({name:"warning",args:{code:e,local:t},warn:!0})},validate:(e,t,{code:n,local:a})=>t.error(n,a),args:["code","local"],multi:!0}},modifiers:{keep(e,t=!0){e.keep=t},message(e,t){e.message=i.compile(t)},warn(e,t=!0){e.warn=t}},manifest:{build(e,t){for(const n in t){const a=t[n];if(["examples","externals","metas","notes","tags"].includes(n))for(const t of a)e=e[n.slice(0,-1)](t);else{if("alterations"===n){const t={};for(const{target:e,adjuster:n}of a)t[e]=n;e=e.alter(t);continue}if("whens"!==n){if("shared"===n)for(const t of a)e=e.shared(t)}else for(const t of a){const{ref:n,is:a,not:r,then:o,otherwise:i,concat:l}=t;e=l?e.concat(l):n?e.when(n,{is:a,not:r,then:o,otherwise:i,switch:t.switch,break:t.break}):e.when(a,{then:o,otherwise:i,break:t.break})}}}return e}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}})},834:e=>{e.exports=function(e){return"function"==typeof(null==e?void 0:e.then)}},1100:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(2130),i=n(9415),l=n(3541),s=n(8013),c=n(2062),d=n(9017),u=n(8529),f=n(1532),p=n(125);let m;const h={types:{alternatives:n(4972),any:n(680),array:n(2591),boolean:n(6186),date:n(2588),function:n(4840),link:n(9556),number:n(4709),object:n(7487),string:n(9033),symbol:n(5008)},aliases:{alt:"alternatives",bool:"boolean",func:"function"},root:function(){const e={_types:new Set(Object.keys(h.types))};for(const t of e._types)e[t]=function(...e){return a(!e.length||["alternatives","link","object"].includes(t),"The",t,"type does not allow arguments"),h.generate(this,h.types[t],e)};for(const t of["allow","custom","disallow","equal","exist","forbidden","invalid","not","only","optional","options","prefs","preferences","required","strip","valid","when"])e[t]=function(...e){return this.any()[t](...e)};Object.assign(e,h.methods);for(const t in h.aliases){const n=h.aliases[t];e[t]=e[n]}return e.x=e.expression,p.setup&&p.setup(e),e}};h.methods={ValidationError:s.ValidationError,version:i.version,cache:o.provider,assert(e,t,...n){h.assert(e,t,!0,n)},attempt:(e,t,...n)=>h.assert(e,t,!1,n),build(e){return a("function"==typeof d.build,"Manifest functionality disabled"),d.build(this,e)},checkPreferences(e){i.checkPreferences(e)},compile(e,t){return l.compile(this,e,t)},defaults(e){a("function"==typeof e,"modifier must be a function");const t=Object.assign({},this);for(const n of t._types){const r=e(t[n]());a(i.isSchema(r),"modifier must return a valid schema object"),t[n]=function(...e){return h.generate(this,r,e)}}return t},expression:(...e)=>new f(...e),extend(...e){i.verifyFlat(e,"extend"),m=m||n(1688),a(e.length,"You need to provide at least one extension"),this.assert(e,m.extensions);const t=Object.assign({},this);t._types=new Set(t._types);for(let n of e){"function"==typeof n&&(n=n(t)),this.assert(n,m.extension);const e=h.expandExtension(n,t);for(const n of e){a(void 0===t[n.type]||t._types.has(n.type),"Cannot override name",n.type);const e=n.base||this.any(),r=c.type(e,n);t._types.add(n.type),t[n.type]=function(...e){return h.generate(this,r,e)}}}return t},isError:s.ValidationError.isError,isExpression:f.isTemplate,isRef:u.isRef,isSchema:i.isSchema,in:(...e)=>u.in(...e),override:i.symbols.override,ref:(...e)=>u.create(...e),types(){const e={};for(const t of this._types)e[t]=this[t]();for(const t in h.aliases)e[t]=this[t]();return e}},h.assert=function(e,t,n,a){const o=a[0]instanceof Error||"string"==typeof a[0]?a[0]:null,l=null!==o?a[1]:a[0],c=t.validate(e,i.preferences({errors:{stack:!0}},l||{}));let d=c.error;if(!d)return c.value;if(o instanceof Error)throw o;const u=n&&"function"==typeof d.annotate?d.annotate():d.message;throw d instanceof s.ValidationError==0&&(d=r(d)),d.message=o?`${o} ${u}`:u,d},h.generate=function(e,t,n){return a(e,"Must be invoked on a Joi instance."),t.$_root=e,t._definition.args&&n.length?t._definition.args(t,...n):t},h.expandExtension=function(e,t){if("string"==typeof e.type)return[e];const n=[];for(const a of t._types)if(e.type.test(a)){const r=Object.assign({},e);r.type=a,r.base=t[a](),n.push(r)}return n},e.exports=h.root()},1190:(e,t,n)=>{const{assert:a,clone:r,ignore:o,reach:i}=n(3115),l=n(9415),s=n(8013),c=n(4957),d={result:Symbol("result")};t.entry=function(e,t,n){let r=l.defaults;n&&(a(void 0===n.warnings,"Cannot override warnings preference in synchronous validation"),a(void 0===n.artifacts,"Cannot override artifacts preference in synchronous validation"),r=l.preferences(l.defaults,n));const o=d.entry(e,t,r);a(!o.mainstay.externals.length,"Schema with external rules must use validateAsync()");const i={value:o.value};return o.error&&(i.error=o.error),o.mainstay.warnings.length&&(i.warning=s.details(o.mainstay.warnings)),o.mainstay.debug&&(i.debug=o.mainstay.debug),o.mainstay.artifacts&&(i.artifacts=o.mainstay.artifacts),i},t.entryAsync=async function(e,t,n){let a=l.defaults;n&&(a=l.preferences(l.defaults,n));const r=d.entry(e,t,a),o=r.mainstay;if(r.error)throw o.debug&&(r.error.debug=o.debug),r.error;if(o.externals.length){let t=r.value;const c=[];for(const r of o.externals){const u=r.state.path,f="link"===r.schema.type?o.links.get(r.schema):null;let p,m,h=t;const v=u.length?[t]:[],g=u.length?i(e,u):e;if(u.length){p=u[u.length-1];let e=t;for(const t of u.slice(0,-1))e=e[t],v.unshift(e);m=v[0],h=m[p]}try{const e=(e,t)=>(f||r.schema).$_createError(e,h,t,r.state,a),i=await r.method(h,{schema:r.schema,linked:f,state:r.state,prefs:n,original:g,error:e,errorsArray:d.errorsArray,warn:(e,t)=>o.warnings.push((f||r.schema).$_createError(e,h,t,r.state,a)),message:(e,t)=>(f||r.schema).$_createError("external",h,t,r.state,a,{messages:e})});if(void 0===i||i===h)continue;if(i instanceof s.Report){if(o.tracer.log(r.schema,r.state,"rule","external","error"),c.push(i),a.abortEarly)break;continue}if(Array.isArray(i)&&i[l.symbols.errors]){if(o.tracer.log(r.schema,r.state,"rule","external","error"),c.push(...i),a.abortEarly)break;continue}m?(o.tracer.value(r.state,"rule",h,i,"external"),m[p]=i):(o.tracer.value(r.state,"rule",t,i,"external"),t=i)}catch(e){throw a.errors.label&&(e.message+=` (${r.label})`),e}}if(r.value=t,c.length)throw r.error=s.process(c,e,a),o.debug&&(r.error.debug=o.debug),r.error}if(!a.warnings&&!a.debug&&!a.artifacts)return r.value;const c={value:r.value};return o.warnings.length&&(c.warning=s.details(o.warnings)),o.debug&&(c.debug=o.debug),o.artifacts&&(c.artifacts=o.artifacts),c},t.standard=function(e,n){return n.isAsync()?t.entryAsync(e,n):t.entry(e,n)},d.Mainstay=class{constructor(e,t,n){this.externals=[],this.warnings=[],this.tracer=e,this.debug=t,this.links=n,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()})}restore(){const e=this._snapshots.pop();this.externals=e.externals,this.warnings=e.warnings}commit(){this._snapshots.pop()}},d.entry=function(e,n,a){const{tracer:r,cleanup:o}=d.tracer(n,a),i=a.debug?[]:null,l=n._ids._schemaChain?new Map:null,u=new d.Mainstay(r,i,l),f=n._ids._schemaChain?[{schema:n}]:null,p=new c([],[],{mainstay:u,schemas:f}),m=t.validate(e,n,p,a);o&&n.$_root.untrace();const h=s.process(m.errors,e,a);return{value:m.value,error:h,mainstay:u}},d.tracer=function(e,t){return e.$_root._tracer?{tracer:e.$_root._tracer._register(e)}:t.debug?(a(e.$_root.trace,"Debug mode not supported"),{tracer:e.$_root.trace()._register(e),cleanup:!0}):{tracer:d.ignore}},t.validate=function(e,t,n,a,r={}){if(t.$_terms.whens&&(t=t._generate(e,n,a).schema),t._preferences&&(a=d.prefs(t,a)),t._cache&&a.cache){const a=t._cache.get(e);if(n.mainstay.tracer.debug(n,"validate","cached",!!a),a)return a}const o=(r,o,i)=>t.$_createError(r,e,o,i||n,a),i={original:e,prefs:a,schema:t,state:n,error:o,errorsArray:d.errorsArray,warn:(e,t,a)=>n.mainstay.warnings.push(o(e,t,a)),message:(r,o)=>t.$_createError("custom",e,o,n,a,{messages:r})};n.mainstay.tracer.entry(t,n);const s=t._definition;if(s.prepare&&void 0!==e&&a.convert){const t=s.prepare(e,i);if(t){if(n.mainstay.tracer.value(n,"prepare",e,t.value),t.errors)return d.finalize(t.value,[].concat(t.errors),i);e=t.value}}if(s.coerce&&void 0!==e&&a.convert&&(!s.coerce.from||s.coerce.from.includes(typeof e))){const t=s.coerce.method(e,i);if(t){if(n.mainstay.tracer.value(n,"coerced",e,t.value),t.errors)return d.finalize(t.value,[].concat(t.errors),i);e=t.value}}const c=t._flags.empty;c&&c.$_match(d.trim(e,t),n.nest(c),l.defaults)&&(n.mainstay.tracer.value(n,"empty",e,void 0),e=void 0);const u=r.presence||t._flags.presence||(t._flags._endedSwitch?null:a.presence);if(void 0===e){if("forbidden"===u)return d.finalize(e,null,i);if("required"===u)return d.finalize(e,[t.$_createError("any.required",e,null,n,a)],i);if("optional"===u){if(t._flags.default!==l.symbols.deepDefault)return d.finalize(e,null,i);n.mainstay.tracer.value(n,"default",e,{}),e={}}}else if("forbidden"===u)return d.finalize(e,[t.$_createError("any.unknown",e,null,n,a)],i);const f=[];if(t._valids){const r=t._valids.get(e,n,a,t._flags.insensitive);if(r)return a.convert&&(n.mainstay.tracer.value(n,"valids",e,r.value),e=r.value),n.mainstay.tracer.filter(t,n,"valid",r),d.finalize(e,null,i);if(t._flags.only){const r=t.$_createError("any.only",e,{valids:t._valids.values({display:!0})},n,a);if(a.abortEarly)return d.finalize(e,[r],i);f.push(r)}}if(t._invalids){const r=t._invalids.get(e,n,a,t._flags.insensitive);if(r){n.mainstay.tracer.filter(t,n,"invalid",r);const o=t.$_createError("any.invalid",e,{invalids:t._invalids.values({display:!0})},n,a);if(a.abortEarly)return d.finalize(e,[o],i);f.push(o)}}if(s.validate){const t=s.validate(e,i);if(t&&(n.mainstay.tracer.value(n,"base",e,t.value),e=t.value,t.errors)){if(!Array.isArray(t.errors))return f.push(t.errors),d.finalize(e,f,i);if(t.errors.length)return f.push(...t.errors),d.finalize(e,f,i)}}return t._rules.length?d.rules(e,f,i):d.finalize(e,f,i)},d.rules=function(e,t,n){const{schema:a,state:r,prefs:o}=n;for(const i of a._rules){const s=a._definition.rules[i.method];if(s.convert&&o.convert){r.mainstay.tracer.log(a,r,"rule",i.name,"full");continue}let c,u=i.args;if(i._resolve.length){u=Object.assign({},u);for(const t of i._resolve){const n=s.argsByName.get(t),i=u[t].resolve(e,r,o),d=n.normalize?n.normalize(i):i,f=l.validateArg(d,null,n);if(f){c=a.$_createError("any.ref",i,{arg:t,ref:u[t],reason:f},r,o);break}u[t]=d}}c=c||s.validate(e,n,u,i);const f=d.rule(c,i);if(f.errors){if(r.mainstay.tracer.log(a,r,"rule",i.name,"error"),i.warn){r.mainstay.warnings.push(...f.errors);continue}if(o.abortEarly)return d.finalize(e,f.errors,n);t.push(...f.errors)}else r.mainstay.tracer.log(a,r,"rule",i.name,"pass"),r.mainstay.tracer.value(r,"rule",e,f.value,i.name),e=f.value}return d.finalize(e,t,n)},d.rule=function(e,t){return e instanceof s.Report?(d.error(e,t),{errors:[e],value:null}):Array.isArray(e)&&e[l.symbols.errors]?(e.forEach(e=>d.error(e,t)),{errors:e,value:null}):{errors:null,value:e}},d.error=function(e,t){return t.message&&e._setTemplate(t.message),e},d.finalize=function(e,t,n){t=t||[];const{schema:r,state:o,prefs:i}=n;if(t.length){const a=d.default("failover",void 0,t,n);void 0!==a&&(o.mainstay.tracer.value(o,"failover",e,a),e=a,t=[])}if(t.length&&r._flags.error)if("function"==typeof r._flags.error){t=r._flags.error(t),Array.isArray(t)||(t=[t]);for(const e of t)a(e instanceof Error||e instanceof s.Report,"error() must return an Error object")}else t=[r._flags.error];if(void 0===e){const a=d.default("default",e,t,n);o.mainstay.tracer.value(o,"default",e,a),e=a}if(r._flags.cast&&void 0!==e){const t=r._definition.cast[r._flags.cast];if(t.from(e)){const a=t.to(e,n);o.mainstay.tracer.value(o,"cast",e,a,r._flags.cast),e=a}}if(r.$_terms.externals&&i.externals&&!1!==i._externals)for(const{method:e}of r.$_terms.externals)o.mainstay.externals.push({method:e,schema:r,state:o,label:s.label(r._flags,o,i)});const l={value:e,errors:t.length?t:null};return r._flags.result&&(l.value="strip"===r._flags.result?void 0:n.original,o.mainstay.tracer.value(o,r._flags.result,e,l.value),o.shadow(e,r._flags.result)),r._cache&&!1!==i.cache&&!r._refs.length&&r._cache.set(n.original,l),void 0===e||l.errors||void 0===r._flags.artifact||(o.mainstay.artifacts=o.mainstay.artifacts||new Map,o.mainstay.artifacts.has(r._flags.artifact)||o.mainstay.artifacts.set(r._flags.artifact,[]),o.mainstay.artifacts.get(r._flags.artifact).push(o.path)),l},d.prefs=function(e,t){const n=t===l.defaults;return n&&e._preferences[l.symbols.prefs]?e._preferences[l.symbols.prefs]:(t=l.preferences(t,e._preferences),n&&(e._preferences[l.symbols.prefs]=t),t)},d.default=function(e,t,n,a){const{schema:o,state:i,prefs:s}=a,c=o._flags[e];if(s.noDefaults||void 0===c)return t;if(i.mainstay.tracer.log(o,i,"rule",e,"full"),!c)return c;if("function"==typeof c){const l=c.length?[r(i.ancestors[0]),a]:[];try{return c(...l)}catch(t){return void n.push(o.$_createError(`any.${e}`,null,{error:t},i,s))}}return"object"!=typeof c?c:c[l.symbols.literal]?c.literal:l.isResolvable(c)?c.resolve(t,i,s):r(c)},d.trim=function(e,t){if("string"!=typeof e)return e;const n=t.$_getRule("trim");return n&&n.args.enabled?e.trim():e},d.ignore={active:!1,debug:o,entry:o,filter:o,log:o,resolve:o,value:o},d.errorsArray=function(){const e=[];return e[l.symbols.errors]=!0,e}},1528:(e,t,n)=>{const a=n(8253),r={};e.exports=function(e,t,n){if(!1===t||null==t)return e;"string"==typeof(n=n||{})&&(n={separator:n});const o=Array.isArray(t);a(!o||!n.separator,"Separator option is not valid for array-based chain");const i=o?t:t.split(n.separator||".");let l=e;for(let e=0;e<i.length;++e){let o=i[e];const s=n.iterables&&r.iterables(l);if(Array.isArray(l)||"set"===s){const e=Number(o);Number.isInteger(e)&&(o=e<0?l.length+e:e)}if(!l||"function"==typeof l&&!1===n.functions||!s&&void 0===l[o]){a(!n.strict||e+1===i.length,"Missing segment",o,"in reach path ",t),a("object"==typeof l||!0===n.functions||"function"!=typeof l,"Invalid segment",o,"in reach path ",t),l=n.default;break}l=s?"set"===s?[...l][o]:l.get(o):l[o]}return l},r.iterables=function(e){return e instanceof Set?"set":e instanceof Map?"map":void 0}},1532:(e,t,n)=>{const{assert:a,clone:r,escapeHtml:o}=n(3115),i=n(679),l=n(9415),s=n(8013),c=n(8529),d={symbol:Symbol("template"),opens:new Array(1e3).join("\0"),closes:new Array(1e3).join(""),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};e.exports=d.Template=class{constructor(e,t){if(a("string"==typeof e,"Template source must be a string"),a(!e.includes("\0")&&!e.includes(""),"Template source cannot contain reserved control characters"),this.source=e,this.rendered=e,this._template=null,t){const{functions:e,...n}=t;this._settings=Object.keys(n).length?r(n):void 0,this._functions=e,this._functions&&(a(Object.keys(this._functions).every(e=>"string"==typeof e),"Functions keys must be strings"),a(Object.values(this._functions).every(e=>"function"==typeof e),"Functions values must be functions"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes("{"))return;const e=d.encode(this.source),t=d.split(e);let n=!1;const a=[],r=t.shift();r&&a.push(r);for(const e of t){const t="{"!==e[0],r=t?"}":"}}",o=e.indexOf(r);if(-1===o||"{"===e[1]){a.push(`{${d.decode(e)}`);continue}let i=e.slice(t?0:1,o);const l=":"===i[0];l&&(i=i.slice(1));const s=this._ref(d.decode(i),{raw:t,wrapped:l});a.push(s),"string"!=typeof s&&(n=!0);const c=e.slice(o+r.length);c&&a.push(d.decode(c))}n?this._template=a:this.rendered=a.join("")}static date(e,t){return d.dateFormat[t.dateFormat].call(e)}describe(e={}){if(!this._settings&&e.compact)return this.source;const t={template:this.source};return this._settings&&(t.options=this._settings),this._functions&&(t.functions=this._functions),t}static build(e){return new d.Template(e.template,e.options||e.functions?{...e.options,functions:e.functions}:void 0)}isDynamic(){return!!this._template}static isTemplate(e){return!!e&&!!e[l.symbols.template]}refs(){if(!this._template)return;const e=[];for(const t of this._template)"string"!=typeof t&&e.push(...t.refs);return e}resolve(e,t,n,a){return this._template&&1===this._template.length?this._part(this._template[0],e,t,n,a,{}):this.render(e,t,n,a)}_part(e,...t){return e.ref?e.ref.resolve(...t):e.formula.evaluate(t)}render(e,t,n,a,r={}){if(!this.isDynamic())return this.rendered;const i=[];for(const l of this._template)if("string"==typeof l)i.push(l);else{const s=this._part(l,e,t,n,a,r),c=d.stringify(s,e,t,n,a,r);if(void 0!==c){const e=l.raw||!1===(r.errors&&r.errors.escapeHtml)?c:o(c);i.push(d.wrap(e,l.wrapped&&n.errors.wrap.label))}}return i.join("")}_ref(e,{raw:t,wrapped:n}){const a=[],r=e=>{const t=c.create(e,this._settings);return a.push(t),e=>{const n=t.resolve(...e);return void 0!==n?n:null}};try{const t=this._functions?{...d.functions,...this._functions}:d.functions;var o=new i.Parser(e,{reference:r,functions:t,constants:d.constants})}catch(t){throw t.message=`Invalid template variable "${e}" fails due to: ${t.message}`,t}if(o.single){if("reference"===o.single.type){const e=a[0];return{ref:e,raw:t,refs:a,wrapped:n||"local"===e.type&&"label"===e.key}}return d.stringify(o.single.value)}return{formula:o,raw:t,refs:a}}toString(){return this.source}},d.Template.prototype[l.symbols.template]=!0,d.Template.prototype.isImmutable=!0,d.encode=function(e){return e.replace(/\\(\{+)/g,(e,t)=>d.opens.slice(0,t.length)).replace(/\\(\}+)/g,(e,t)=>d.closes.slice(0,t.length))},d.decode=function(e){return e.replace(/\u0000/g,"{").replace(/\u0001/g,"}")},d.split=function(e){const t=[];let n="";for(let a=0;a<e.length;++a){const r=e[a];if("{"===r){let r="";for(;a+1<e.length&&"{"===e[a+1];)r+="{",++a;t.push(n),n=r}else n+=r}return t.push(n),t},d.wrap=function(e,t){return t?1===t.length?`${t}${e}${t}`:`${t[0]}${e}${t[1]}`:e},d.stringify=function(e,t,n,a,r,o={}){const i=typeof e,l=a&&a.errors&&a.errors.wrap||{};let s=!1;if(c.isRef(e)&&e.render&&(s=e.in,e=e.resolve(t,n,a,r,{in:e.in,...o})),null===e)return"null";if("string"===i)return d.wrap(e,o.arrayItems&&l.string);if("number"===i||"function"===i||"symbol"===i)return e.toString();if("object"!==i)return JSON.stringify(e);if(e instanceof Date)return d.Template.date(e,a);if(e instanceof Map){const t=[];for(const[n,a]of e.entries())t.push(`${n.toString()} -> ${a.toString()}`);e=t}if(!Array.isArray(e))return e.toString();const u=[];for(const i of e)u.push(d.stringify(i,t,n,a,r,{arrayItems:!0,...o}));return d.wrap(u.join(", "),!s&&l.array)},d.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},d.functions={if:(e,t,n)=>e?t:n,length:e=>"string"==typeof e?e.length:e&&"object"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:null,msg(e){const[t,n,a,r,o]=this,i=o.messages;if(!i)return"";const l=s.template(t,i[0],e,n,a)||s.template(t,i[1],e,n,a);return l?l.render(t,n,a,r,o):""},number:e=>"number"==typeof e?e:"string"==typeof e?parseFloat(e):"boolean"==typeof e?e?1:0:e instanceof Date?e.getTime():null}},1626:(e,t,n)=>{const a=n(1528);e.exports=function(e,t,n){return t.replace(/{([^{}]+)}/g,(t,r)=>{const o=a(e,r,n);return null!=o?o:""})}},1688:(e,t,n)=>{const a=n(1100),r={};r.wrap=a.string().min(1).max(2).allow(!1),t.preferences=a.object({allowUnknown:a.boolean(),abortEarly:a.boolean(),artifacts:a.boolean(),cache:a.boolean(),context:a.object(),convert:a.boolean(),dateFormat:a.valid("date","iso","string","time","utc"),debug:a.boolean(),errors:{escapeHtml:a.boolean(),label:a.valid("path","key",!1),language:[a.string(),a.object().ref()],render:a.boolean(),stack:a.boolean(),wrap:{label:r.wrap,array:r.wrap,string:r.wrap}},externals:a.boolean(),messages:a.object(),noDefaults:a.boolean(),nonEnumerables:a.boolean(),presence:a.valid("required","optional","forbidden"),skipFunctions:a.boolean(),stripUnknown:a.object({arrays:a.boolean(),objects:a.boolean()}).or("arrays","objects").allow(!0,!1),warnings:a.boolean()}).strict(),r.nameRx=/^[a-zA-Z0-9]\w*$/,r.rule=a.object({alias:a.array().items(a.string().pattern(r.nameRx)).single(),args:a.array().items(a.string(),a.object({name:a.string().pattern(r.nameRx).required(),ref:a.boolean(),assert:a.alternatives([a.function(),a.object().schema()]).conditional("ref",{is:!0,then:a.required()}),normalize:a.function(),message:a.string().when("assert",{is:a.function(),then:a.required()})})),convert:a.boolean(),manifest:a.boolean(),method:a.function().allow(!1),multi:a.boolean(),validate:a.function()}),t.extension=a.object({type:a.alternatives([a.string(),a.object().regex()]).required(),args:a.function(),cast:a.object().pattern(r.nameRx,a.object({from:a.function().maxArity(1).required(),to:a.function().minArity(1).maxArity(2).required()})),base:a.object().schema().when("type",{is:a.object().regex(),then:a.forbidden()}),coerce:[a.function().maxArity(3),a.object({method:a.function().maxArity(3).required(),from:a.array().items(a.string()).single()})],flags:a.object().pattern(r.nameRx,a.object({setter:a.string(),default:a.any()})),manifest:{build:a.function().arity(2)},messages:[a.object(),a.string()],modifiers:a.object().pattern(r.nameRx,a.function().minArity(1).maxArity(2)),overrides:a.object().pattern(r.nameRx,a.function()),prepare:a.function().maxArity(3),rebuild:a.function().arity(1),rules:a.object().pattern(r.nameRx,r.rule),terms:a.object().pattern(r.nameRx,a.object({init:a.array().allow(null).required(),manifest:a.object().pattern(/.+/,[a.valid("schema","single"),a.object({mapped:a.object({from:a.string().required(),to:a.string().required()}).required()})])})),validate:a.function().maxArity(3)}).strict(),t.extensions=a.array().items(a.object(),a.function().arity(1)).strict(),r.desc={buffer:a.object({buffer:a.string()}),func:a.object({function:a.function().required(),options:{literal:!0}}),override:a.object({override:!0}),ref:a.object({ref:a.object({type:a.valid("value","global","local"),path:a.array().required(),separator:a.string().length(1).allow(!1),ancestor:a.number().min(0).integer().allow("root"),map:a.array().items(a.array().length(2)).min(1),adjust:a.function(),iterables:a.boolean(),in:a.boolean(),render:a.boolean()}).required()}),regex:a.object({regex:a.string().min(3)}),special:a.object({special:a.valid("deep").required()}),template:a.object({template:a.string().required(),options:a.object()}),value:a.object({value:a.alternatives([a.object(),a.array()]).required()})},r.desc.entity=a.alternatives([a.array().items(a.link("...")),a.boolean(),a.function(),a.number(),a.string(),r.desc.buffer,r.desc.func,r.desc.ref,r.desc.regex,r.desc.special,r.desc.template,r.desc.value,a.link("/")]),r.desc.values=a.array().items(null,a.boolean(),a.function(),a.number().allow(1/0,-1/0),a.string().allow(""),a.symbol(),r.desc.buffer,r.desc.func,r.desc.override,r.desc.ref,r.desc.regex,r.desc.template,r.desc.value),r.desc.messages=a.object().pattern(/.+/,[a.string(),r.desc.template,a.object().pattern(/.+/,[a.string(),r.desc.template])]),t.description=a.object({type:a.string().required(),flags:a.object({cast:a.string(),default:a.any(),description:a.string(),empty:a.link("/"),failover:r.desc.entity,id:a.string(),label:a.string(),only:!0,presence:["optional","required","forbidden"],result:["raw","strip"],strip:a.boolean(),unit:a.string()}).unknown(),preferences:{allowUnknown:a.boolean(),abortEarly:a.boolean(),artifacts:a.boolean(),cache:a.boolean(),convert:a.boolean(),dateFormat:["date","iso","string","time","utc"],errors:{escapeHtml:a.boolean(),label:["path","key"],language:[a.string(),r.desc.ref],wrap:{label:r.wrap,array:r.wrap}},externals:a.boolean(),messages:r.desc.messages,noDefaults:a.boolean(),nonEnumerables:a.boolean(),presence:["required","optional","forbidden"],skipFunctions:a.boolean(),stripUnknown:a.object({arrays:a.boolean(),objects:a.boolean()}).or("arrays","objects").allow(!0,!1),warnings:a.boolean()},allow:r.desc.values,invalid:r.desc.values,rules:a.array().min(1).items({name:a.string().required(),args:a.object().min(1),keep:a.boolean(),message:[a.string(),r.desc.messages],warn:a.boolean()}),keys:a.object().pattern(/.*/,a.link("/")),link:r.desc.ref}).pattern(/^[a-z]\w*$/,a.any())},1803:e=>{e.exports=class extends Error{constructor(e,t){var n,a,r;super(e||"Unknown error"),n=this,r="AssertError",(a=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(a="name"))in n?Object.defineProperty(n,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[a]=r,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}}},2062:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(9415),i=n(6162),l={};t.type=function(e,t){const n=Object.getPrototypeOf(e),s=r(n),c=e._assign(Object.create(s)),d=Object.assign({},t);delete d.base,s._definition=d;const u=n._definition||{};d.messages=i.merge(u.messages,d.messages),d.properties=Object.assign({},u.properties,d.properties),c.type=d.type,d.flags=Object.assign({},u.flags,d.flags);const f=Object.assign({},u.terms);if(d.terms)for(const e in d.terms){const t=d.terms[e];a(void 0===c.$_terms[e],"Invalid term override for",d.type,e),c.$_terms[e]=t.init,f[e]=t}d.terms=f,d.args||(d.args=u.args),d.prepare=l.prepare(d.prepare,u.prepare),d.coerce&&("function"==typeof d.coerce&&(d.coerce={method:d.coerce}),d.coerce.from&&!Array.isArray(d.coerce.from)&&(d.coerce={method:d.coerce.method,from:[].concat(d.coerce.from)})),d.coerce=l.coerce(d.coerce,u.coerce),d.validate=l.validate(d.validate,u.validate);const p=Object.assign({},u.rules);if(d.rules)for(const e in d.rules){const t=d.rules[e];a("object"==typeof t,"Invalid rule definition for",d.type,e);let n=t.method;if(void 0===n&&(n=function(){return this.$_addRule(e)}),n&&(a(!s[e],"Rule conflict in",d.type,e),s[e]=n),a(!p[e],"Rule conflict in",d.type,e),p[e]=t,t.alias){const e=[].concat(t.alias);for(const n of e)s[n]=t.method}t.args&&(t.argsByName=new Map,t.args=t.args.map(e=>("string"==typeof e&&(e={name:e}),a(!t.argsByName.has(e.name),"Duplicated argument name",e.name),o.isSchema(e.assert)&&(e.assert=e.assert.strict().label(e.name)),t.argsByName.set(e.name,e),e)))}d.rules=p;const m=Object.assign({},u.modifiers);if(d.modifiers)for(const e in d.modifiers){a(!s[e],"Rule conflict in",d.type,e);const t=d.modifiers[e];a("function"==typeof t,"Invalid modifier definition for",d.type,e);const n=function(t){return this.rule({[e]:t})};s[e]=n,m[e]=t}if(d.modifiers=m,d.overrides){s._super=n,c.$_super={};for(const e in d.overrides)a(n[e],"Cannot override missing",e),d.overrides[e][o.symbols.parent]=n[e],c.$_super[e]=n[e].bind(c);Object.assign(s,d.overrides)}d.cast=Object.assign({},u.cast,d.cast);const h=Object.assign({},u.manifest,d.manifest);return h.build=l.build(d.manifest&&d.manifest.build,u.manifest&&u.manifest.build),d.manifest=h,d.rebuild=l.rebuild(d.rebuild,u.rebuild),c},l.build=function(e,t){return e&&t?function(n,a){return t(e(n,a),a)}:e||t},l.coerce=function(e,t){return e&&t?{from:e.from&&t.from?[...new Set([...e.from,...t.from])]:null,method(n,a){let r;if((!t.from||t.from.includes(typeof n))&&(r=t.method(n,a),r)){if(r.errors||void 0===r.value)return r;n=r.value}if(!e.from||e.from.includes(typeof n)){const t=e.method(n,a);if(t)return t}return r}}:e||t},l.prepare=function(e,t){return e&&t?function(n,a){const r=e(n,a);if(r){if(r.errors||void 0===r.value)return r;n=r.value}return t(n,a)||r}:e||t},l.rebuild=function(e,t){return e&&t?function(n){t(n),e(n)}:e||t},l.validate=function(e,t){return e&&t?function(n,a){const r=t(n,a);if(r){if(r.errors&&(!Array.isArray(r.errors)||r.errors.length))return r;n=r.value}return e(n,a)||r}:e||t}},2115:(e,t,n)=>{const{assert:a,clone:r,deepEqual:o,merge:i}=n(3115),l=n(2130),s=n(9415),c=n(3541),d=n(8013),u=n(2062),f=n(9017),p=n(6162),m=n(5844),h=n(8529),v=n(125),g=n(1190),y=n(6220),b={Base:class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new m.Ids,this._preferences=null,this._refs=new h.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return a("function"==typeof f.describe,"Manifest functionality disabled"),f.describe(this)}allow(...e){return s.verifyFlat(e,"allow"),this._values(e,"_valids")}alter(e){a(e&&"object"==typeof e&&!Array.isArray(e),"Invalid targets argument"),a(!this._inRuleset(),"Cannot set alterations inside a ruleset");const t=this.clone();t.$_terms.alterations=t.$_terms.alterations||[];for(const n in e){const r=e[n];a("function"==typeof r,"Alteration adjuster for",n,"must be a function"),t.$_terms.alterations.push({target:n,adjuster:r})}return t.$_temp.ruleset=!1,t}artifact(e){return a(void 0!==e,"Artifact cannot be undefined"),a(!this._cache,"Cannot set an artifact with a rule cache"),this.$_setFlag("artifact",e)}cast(e){return a(!1===e||"string"==typeof e,"Invalid to value"),a(!1===e||this._definition.cast[e],"Type",this.type,"does not support casting to",e),this.$_setFlag("cast",!1===e?void 0:e)}default(e,t){return this._default("default",e,t)}description(e){return a(e&&"string"==typeof e,"Description must be a non-empty string"),this.$_setFlag("description",e)}empty(e){const t=this.clone();return void 0!==e&&(e=t.$_compile(e,{override:!1})),t.$_setFlag("empty",e,{clone:!1})}error(e){return a(e,"Missing error"),a(e instanceof Error||"function"==typeof e,"Must provide a valid Error object or a function"),this.$_setFlag("error",e)}example(e,t={}){return a(void 0!==e,"Missing example"),s.assertOptions(t,["override"]),this._inner("examples",e,{single:!0,override:t.override})}external(e,t){return"object"==typeof e&&(a(!t,"Cannot combine options with description"),t=e.description,e=e.method),a("function"==typeof e,"Method must be a function"),a(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this._inner("externals",{method:e,description:t},{single:!0})}failover(e,t){return this._default("failover",e,t)}forbidden(){return this.presence("forbidden")}id(e){return e?(a("string"==typeof e,"id must be a non-empty string"),a(/^[^\.]+$/.test(e),"id cannot contain period character"),this.$_setFlag("id",e)):this.$_setFlag("id",void 0)}invalid(...e){return this._values(e,"_invalids")}label(e){return a(e&&"string"==typeof e,"Label name must be a non-empty string"),this.$_setFlag("label",e)}meta(e){return a(void 0!==e,"Meta cannot be undefined"),this._inner("metas",e,{single:!0})}note(...e){a(e.length,"Missing notes");for(const t of e)a(t&&"string"==typeof t,"Notes must be non-empty strings");return this._inner("notes",e)}only(e=!0){return a("boolean"==typeof e,"Invalid mode:",e),this.$_setFlag("only",e)}optional(){return this.presence("optional")}prefs(e){a(e,"Missing preferences"),a(void 0===e.context,"Cannot override context"),a(void 0===e.externals,"Cannot override externals"),a(void 0===e.warnings,"Cannot override warnings"),a(void 0===e.debug,"Cannot override debug"),s.checkPreferences(e);const t=this.clone();return t._preferences=s.preferences(t._preferences,e),t}presence(e){return a(["optional","required","forbidden"].includes(e),"Unknown presence mode",e),this.$_setFlag("presence",e)}raw(e=!0){return this.$_setFlag("result",e?"raw":void 0)}result(e){return a(["raw","strip"].includes(e),"Unknown result mode",e),this.$_setFlag("result",e)}required(){return this.presence("required")}strict(e){const t=this.clone(),n=void 0!==e&&!e;return t._preferences=s.preferences(t._preferences,{convert:n}),t}strip(e=!0){return this.$_setFlag("result",e?"strip":void 0)}tag(...e){a(e.length,"Missing tags");for(const t of e)a(t&&"string"==typeof t,"Tags must be non-empty strings");return this._inner("tags",e)}unit(e){return a(e&&"string"==typeof e,"Unit name must be a non-empty string"),this.$_setFlag("unit",e)}valid(...e){s.verifyFlat(e,"valid");const t=this.allow(...e);return t.$_setFlag("only",!!t._valids,{clone:!1}),t}when(e,t){const n=this.clone();n.$_terms.whens||(n.$_terms.whens=[]);const r=c.when(n,e,t);if(!["any","link"].includes(n.type)){const e=r.is?[r]:r.switch;for(const t of e)a(!t.then||"any"===t.then.type||t.then.type===n.type,"Cannot combine",n.type,"with",t.then&&t.then.type),a(!t.otherwise||"any"===t.otherwise.type||t.otherwise.type===n.type,"Cannot combine",n.type,"with",t.otherwise&&t.otherwise.type)}return n.$_terms.whens.push(r),n.$_mutateRebuild()}cache(e){a(!this._inRuleset(),"Cannot set caching inside a ruleset"),a(!this._cache,"Cannot override schema cache"),a(void 0===this._flags.artifact,"Cannot cache a rule with an artifact");const t=this.clone();return t._cache=e||l.provider.provision(),t.$_temp.ruleset=!1,t}clone(){const e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){a(s.isSchema(e),"Invalid schema object"),a("any"===this.type||"any"===e.type||e.type===this.type,"Cannot merge type",this.type,"with another type:",e.type),a(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),a(!e._inRuleset(),"Cannot concatenate a schema with open ruleset");let t=this.clone();if("any"===this.type&&"any"!==e.type){const n=e.clone();for(const e of Object.keys(t))"type"!==e&&(n[e]=t[e]);t=n}t._ids.concat(e._ids),t._refs.register(e,h.toSibling),t._preferences=t._preferences?s.preferences(t._preferences,e._preferences):e._preferences,t._valids=y.merge(t._valids,e._valids,e._invalids),t._invalids=y.merge(t._invalids,e._invalids,e._valids);for(const n of e._singleRules.keys())t._singleRules.has(n)&&(t._rules=t._rules.filter(e=>e.keep||e.name!==n),t._singleRules.delete(n));for(const n of e._rules)e._definition.rules[n.method].multi||t._singleRules.set(n.name,n),t._rules.push(n);if(t._flags.empty&&e._flags.empty){t._flags.empty=t._flags.empty.concat(e._flags.empty);const n=Object.assign({},e._flags);delete n.empty,i(t._flags,n)}else if(e._flags.empty){t._flags.empty=e._flags.empty;const n=Object.assign({},e._flags);delete n.empty,i(t._flags,n)}else i(t._flags,e._flags);for(const n in e.$_terms){const a=e.$_terms[n];a?t.$_terms[n]?t.$_terms[n]=t.$_terms[n].concat(a):t.$_terms[n]=a.slice():t.$_terms[n]||(t.$_terms[n]=a)}return this.$_root._tracer&&this.$_root._tracer._combine(t,[this,e]),t.$_mutateRebuild()}extend(e){return a(!e.base,"Cannot extend type with another base"),u.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split("."),this._ids.reach(e)}fork(e,t){a(!this._inRuleset(),"Cannot fork inside a ruleset");let n=this;for(let a of[].concat(e))a=Array.isArray(a)?a:a.split("."),n=n._ids.fork(a,t,n);return n.$_temp.ruleset=!1,n}isAsync(){var e;if(Boolean(null===(e=this.$_terms.externals)||void 0===e?void 0:e.length))return!0;if(this.$_terms.whens)for(const e of this.$_terms.whens){var t,n;if(null!==(t=e.then)&&void 0!==t&&t.isAsync())return!0;if(null!==(n=e.otherwise)&&void 0!==n&&n.isAsync())return!0;if(e.switch)for(const t of e.switch){var a,r;if(null!==(a=t.then)&&void 0!==a&&a.isAsync())return!0;if(null!==(r=t.otherwise)&&void 0!==r&&r.isAsync())return!0}}return!1}rule(e){const t=this._definition;s.assertOptions(e,Object.keys(t.modifiers)),a(!1!==this.$_temp.ruleset,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");const n=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;a(n>=0&&n<this._rules.length,"Cannot apply rules to empty ruleset");const o=this.clone();for(let i=n;i<o._rules.length;++i){const n=o._rules[i],l=r(n);for(const r in e)t.modifiers[r](l,e[r]),a(l.name===n.name,"Cannot change rule name");o._rules[i]=l,o._singleRules.get(l.name)===n&&o._singleRules.set(l.name,l)}return o.$_temp.ruleset=!1,o.$_mutateRebuild()}get ruleset(){a(!this._inRuleset(),"Cannot start a new ruleset without closing the previous one");const e=this.clone();return e.$_temp.ruleset=e._rules.length,e}get $(){return this.ruleset}tailor(e){e=[].concat(e),a(!this._inRuleset(),"Cannot tailor inside a ruleset");let t=this;if(this.$_terms.alterations)for(const{target:n,adjuster:r}of this.$_terms.alterations)e.includes(n)&&(t=r(t),a(s.isSchema(t),"Alteration adjuster for",n,"failed to return a schema object"));return t=t.$_modify({each:t=>t.tailor(e),ref:!1}),t.$_temp.ruleset=!1,t.$_mutateRebuild()}tracer(){return v.location?v.location(this):this}validate(e,t){return g.entry(e,this,t)}validateAsync(e,t){return g.entryAsync(e,this,t)}$_addRule(e){"string"==typeof e&&(e={name:e}),a(e&&"object"==typeof e,"Invalid options"),a(e.name&&"string"==typeof e.name,"Invalid rule name");for(const t in e)a("_"!==t[0],"Cannot set private rule properties");const t=Object.assign({},e);t._resolve=[],t.method=t.method||t.name;const n=this._definition.rules[t.method],r=t.args;a(n,"Unknown rule",t.method);const o=this.clone();if(r){a(1===Object.keys(r).length||Object.keys(r).length===this._definition.rules[t.name].args.length,"Invalid rule definition for",this.type,t.name);for(const e in r){let i=r[e];if(n.argsByName){const l=n.argsByName.get(e);if(l.ref&&s.isResolvable(i))t._resolve.push(e),o.$_mutateRegister(i);else if(l.normalize&&(i=l.normalize(i),r[e]=i),l.assert){const t=s.validateArg(i,e,l);a(!t,t,"or reference")}}void 0!==i?r[e]=i:delete r[e]}}return n.multi||(o._ruleRemove(t.name,{clone:!1}),o._singleRules.set(t.name,t)),!1===o.$_temp.ruleset&&(o.$_temp.ruleset=null),n.priority?o._rules.unshift(t):o._rules.push(t),o}$_compile(e,t){return c.schema(this.$_root,e,t)}$_createError(e,t,n,a,r,o={}){const i=!1!==o.flags?this._flags:{},l=o.messages?p.merge(this._definition.messages,o.messages):this._definition.messages;return new d.Report(e,t,n,i,l,a,r)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split("."),this._ids.labels(e)}$_match(e,t,n,a){(n=Object.assign({},n)).abortEarly=!0,n._externals=!1,t.snapshot();const r=!g.validate(e,this,t,n,a).errors;return t.restore(),r}$_modify(e){return s.assertOptions(e,["each","once","ref","schema"]),m.schema(this,e)||this}$_mutateRebuild(){return a(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset(),this.$_modify({each:(e,{source:t,name:n,path:a,key:r})=>{const o=this._definition[t][n]&&this._definition[t][n].register;!1!==o&&this.$_mutateRegister(e,{family:o,key:r})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(e,{family:t,key:n}={}){this._refs.register(e,t),this._ids.register(e,{key:n})}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,t,n={}){a("_"===e[0]||!this._inRuleset(),"Cannot set flag inside a ruleset");const r=this._definition.flags[e]||{};if(o(t,r.default)&&(t=void 0),o(t,this._flags[e]))return this;const i=!1!==n.clone?this.clone():this;return void 0!==t?(i._flags[e]=t,i.$_mutateRegister(t)):delete i._flags[e],"_"!==e[0]&&(i.$_temp.ruleset=!1),i}$_parent(e,...t){return this[e][s.symbols.parent].call(this,...t)}$_validate(e,t,n){return g.validate(e,this,t,n)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=r(this._singleRules,{shallow:!0}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(const t in this.$_terms)e.$_terms[t]=this.$_terms[t]?this.$_terms[t].slice():null;e.$_super={};for(const t in this.$_super)e.$_super[t]=this._super[t].bind(e);return e}_bare(){const e=this.clone();e._reset();const t=e._definition.terms;for(const n in t){const a=t[n];e.$_terms[n]=a.init}return e.$_mutateRebuild()}_default(e,t,n={}){return s.assertOptions(n,"literal"),a(void 0!==t,"Missing",e,"value"),a("function"==typeof t||!n.literal,"Only function value supports literal option"),"function"==typeof t&&n.literal&&(t={[s.symbols.literal]:!0,literal:t}),this.$_setFlag(e,t)}_generate(e,t,n){if(!this.$_terms.whens)return{schema:this};const a=[],r=[];for(let o=0;o<this.$_terms.whens.length;++o){const i=this.$_terms.whens[o];if(i.concat){a.push(i.concat),r.push(`${o}.concat`);continue}const l=i.ref?i.ref.resolve(e,t,n):e,s=i.is?[i]:i.switch,c=r.length;for(let c=0;c<s.length;++c){const{is:d,then:u,otherwise:f}=s[c],p=`${o}${i.switch?"."+c:""}`;if(d.$_match(l,t.nest(d,`${p}.is`),n)){if(u){const o=t.localize([...t.path,`${p}.then`],t.ancestors,t.schemas),{schema:i,id:l}=u._generate(e,o,n);a.push(i),r.push(`${p}.then${l?`(${l})`:""}`);break}}else if(f){const o=t.localize([...t.path,`${p}.otherwise`],t.ancestors,t.schemas),{schema:i,id:l}=f._generate(e,o,n);a.push(i),r.push(`${p}.otherwise${l?`(${l})`:""}`);break}}if(i.break&&r.length>c)break}const o=r.join(", ");if(t.mainstay.tracer.debug(t,"rule","when",o),!o)return{schema:this};if(!t.mainstay.tracer.active&&this.$_temp.whens[o])return{schema:this.$_temp.whens[o],id:o};let i=this;this._definition.generate&&(i=this._definition.generate(this,e,t,n));for(const e of a)i=i.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(i,[this,...a]),this.$_temp.whens[o]=i,{schema:i,id:o}}_inner(e,t,n={}){a(!this._inRuleset(),`Cannot set ${e} inside a ruleset`);const r=this.clone();return r.$_terms[e]&&!n.override||(r.$_terms[e]=[]),n.single?r.$_terms[e].push(t):r.$_terms[e].push(...t),r.$_temp.ruleset=!1,r}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(e,t={}){if(!this._singleRules.has(e))return this;const n=!1!==t.clone?this.clone():this;n._singleRules.delete(e);const a=[];for(let t=0;t<n._rules.length;++t){const r=n._rules[t];r.name!==e||r.keep?a.push(r):n._inRuleset()&&t<n.$_temp.ruleset&&--n.$_temp.ruleset}return n._rules=a,n}_values(e,t){s.verifyFlat(e,t.slice(1,-1));const n=this.clone(),r=e[0]===s.symbols.override;if(r&&(e=e.slice(1)),!n[t]&&e.length?n[t]=new y:r&&(n[t]=e.length?new y:null,n.$_mutateRebuild()),!n[t])return n;r&&n[t].override();for(const r of e){a(void 0!==r,"Cannot call allow/valid/invalid with undefined"),a(r!==s.symbols.override,"Override must be the first value");const e="_invalids"===t?"_valids":"_invalids";n[e]&&(n[e].remove(r),n[e].length||(a("_valids"===t||!n._flags.only,"Setting invalid value",r,"leaves schema rejecting all values due to previous valid rule"),n[e]=null)),n[t].add(r,n._refs)}return n}get"~standard"(){const e=e=>{let t;return t=d.ValidationError.isError(e)?e.details.map(({message:e,path:t})=>({message:e,path:t})):[{message:e.message}],{issues:t}},t=e=>({value:e});return{version:1,vendor:"joi",validate:n=>{const a=g.standard(n,this);return a instanceof Promise?a.then(t,e):a.error?e(a.error):t(a.value)}}}}};b.Base.prototype[s.symbols.any]={version:s.version,compile:c.compile,root:"$_root"},b.Base.prototype.isImmutable=!0,b.Base.prototype.deny=b.Base.prototype.invalid,b.Base.prototype.disallow=b.Base.prototype.invalid,b.Base.prototype.equal=b.Base.prototype.valid,b.Base.prototype.exist=b.Base.prototype.required,b.Base.prototype.not=b.Base.prototype.invalid,b.Base.prototype.options=b.Base.prototype.prefs,b.Base.prototype.preferences=b.Base.prototype.prefs,e.exports=new b.Base},2130:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(9415),i={max:1e3,supported:new Set(["undefined","boolean","number","string"])};t.provider={provision:e=>new i.Cache(e)},i.Cache=class{constructor(e={}){o.assertOptions(e,["max"]),a(void 0===e.max||e.max&&e.max>0&&isFinite(e.max),"Invalid max cache size"),this._max=e.max||i.max,this._map=new Map,this._list=new i.List}get length(){return this._map.size}set(e,t){if(null!==e&&!i.supported.has(typeof e))return;let n=this._map.get(e);if(n)return n.value=t,void this._list.first(n);n=this._list.unshift({key:e,value:t}),this._map.set(e,n),this._compact()}get(e){const t=this._map.get(e);if(t)return this._list.first(t),r(t.value)}_compact(){if(this._map.size>this._max){const e=this._list.pop();this._map.delete(e.key)}}},i.List=class{constructor(){this.tail=null,this.head=null}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e))}pop(){return this._remove(this.tail)}_remove(e){const{next:t,prev:n}=e;return t.prev=n,n&&(n.next=t),e===this.tail&&(this.tail=t),e.prev=null,e.next=null,e}}},2588:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(1532),l={isDate:function(e){return e instanceof Date}};e.exports=r.extend({type:"date",coerce:{from:["number","string"],method:(e,{schema:t})=>({value:l.parse(e,t._flags.format)||e})},validate(e,{schema:t,error:n,prefs:a}){if(e instanceof Date&&!isNaN(e.getTime()))return;const r=t._flags.format;return a.convert&&r&&"string"==typeof e?{value:e,errors:n("date.format",{format:r})}:{value:e,errors:n("date.base")}},rules:{compare:{method:!1,validate(e,t,{date:n},{name:a,operator:r,args:i}){const l="now"===n?Date.now():n.getTime();return o.compare(e.getTime(),l,r)?e:t.error("date."+a,{limit:i.date,value:e})},args:[{name:"date",ref:!0,normalize:e=>"now"===e?e:l.parse(e),assert:e=>null!==e,message:"must have a valid date format"}]},format:{method(e){return a(["iso","javascript","unix"].includes(e),"Unknown date format",e),this.$_setFlag("format",e)}},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{date:e},operator:">"})}},iso:{method(){return this.format("iso")}},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{date:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{date:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{date:e},operator:">="})}},timestamp:{method(e="javascript"){return a(["javascript","unix"].includes(e),'"type" must be one of "javascript, unix"'),this.format(e)}}},cast:{number:{from:l.isDate,to:(e,t)=>e.getTime()},string:{from:l.isDate,to:(e,{prefs:t})=>i.date(e,t)}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}}),l.parse=function(e,t){if(e instanceof Date)return e;if("string"!=typeof e&&(isNaN(e)||!isFinite(e)))return null;if(/^\s*$/.test(e))return null;if("iso"===t)return o.isIsoDate(e)?l.date(e.toString()):null;const n=e;if("string"==typeof e&&/^[+-]?\d+(\.\d+)?$/.test(e)&&(e=parseFloat(e)),t){if("javascript"===t)return l.date(1*e);if("unix"===t)return l.date(1e3*e);if("string"==typeof n)return null}return l.date(e)},l.date=function(e){const t=new Date(e);return isNaN(t.getTime())?null:t}},2591:(e,t,n)=>{const{assert:a,deepEqual:r,reach:o}=n(3115),i=n(680),l=n(9415),s=n(3541),c={};e.exports=i.extend({type:"array",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:"schema"},ordered:{init:[],manifest:"schema"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:"object",method(e,{schema:t,state:n,prefs:a}){if(!Array.isArray(e))return;const r=t.$_getRule("sort");return r?c.sort(t,e,r.args.options,n,a):void 0}},validate(e,{schema:t,error:n}){if(!Array.isArray(e)){if(t._flags.single){const t=[e];return t[l.symbols.arraySingle]=!0,{value:t}}return{errors:n("array.base")}}if(t.$_getRule("items")||t.$_terms.externals)return{value:e.slice()}},rules:{has:{method(e){e=this.$_compile(e,{appendPath:!0});const t=this.$_addRule({name:"has",args:{schema:e}});return t.$_mutateRegister(e),t},validate(e,{state:t,prefs:n,error:a},{schema:r}){const o=[e,...t.ancestors];for(let a=0;a<e.length;++a){const i=t.localize([...t.path,a],o,r);if(r.$_match(e[a],i,n))return e}const i=r._flags.label;return i?a("array.hasKnown",{patternLabel:i}):a("array.hasUnknown",null)},multi:!0},items:{method(...e){l.verifyFlat(e,"items");const t=this.$_addRule("items");for(let n=0;n<e.length;++n){const a=l.tryWithPath(()=>this.$_compile(e[n]),n,{append:!0});t.$_terms.items.push(a)}return t.$_mutateRebuild()},validate(e,{schema:t,error:n,state:a,prefs:r,errorsArray:o}){const i=t.$_terms._requireds.slice(),s=t.$_terms.ordered.slice(),d=[...t.$_terms._inclusions,...i],u=!e[l.symbols.arraySingle];delete e[l.symbols.arraySingle];const f=o();let p=e.length;for(let o=0;o<p;++o){const l=e[o];let m=!1,h=!1;const v=u?o:new Number(o),g=[...a.path,v];if(!t._flags.sparse&&void 0===l){if(f.push(n("array.sparse",{key:v,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly)return f;s.shift();continue}const y=[e,...a.ancestors];for(const e of t.$_terms._exclusions)if(e.$_match(l,a.localize(g,y,e),r,{presence:"ignore"})){if(f.push(n("array.excludes",{pos:o,value:l},a.localize(g))),r.abortEarly)return f;m=!0,s.shift();break}if(m)continue;if(t.$_terms.ordered.length){if(s.length){const i=s.shift(),d=i.$_validate(l,a.localize(g,y,i),r);if(d.errors){if(f.push(...d.errors),r.abortEarly)return f}else if("strip"===i._flags.result)c.fastSplice(e,o),--o,--p;else{if(!t._flags.sparse&&void 0===d.value){if(f.push(n("array.sparse",{key:v,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly)return f;continue}e[o]=d.value}continue}if(!t.$_terms.items.length){if(f.push(n("array.orderedLength",{pos:o,limit:t.$_terms.ordered.length})),r.abortEarly)return f;break}}const b=[];let _=i.length;for(let s=0;s<_;++s){const d=a.localize(g,y,i[s]);d.snapshot();const u=i[s].$_validate(l,d,r);if(b[s]=u,!u.errors){if(d.commit(),e[o]=u.value,h=!0,c.fastSplice(i,s),--s,--_,!t._flags.sparse&&void 0===u.value&&(f.push(n("array.sparse",{key:v,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly))return f;break}d.restore()}if(h)continue;const w=r.stripUnknown&&!!r.stripUnknown.arrays||!1;_=d.length;for(const s of d){let d;const u=i.indexOf(s);if(-1!==u)d=b[u];else{const i=a.localize(g,y,s);if(i.snapshot(),d=s.$_validate(l,i,r),!d.errors){i.commit(),"strip"===s._flags.result?(c.fastSplice(e,o),--o,--p):t._flags.sparse||void 0!==d.value?e[o]=d.value:(f.push(n("array.sparse",{key:v,path:g,pos:o,value:void 0},a.localize(g))),m=!0),h=!0;break}i.restore()}if(1===_){if(w){c.fastSplice(e,o),--o,--p,h=!0;break}if(f.push(...d.errors),r.abortEarly)return f;m=!0;break}}if(!m&&(t.$_terms._inclusions.length||t.$_terms._requireds.length)&&!h){if(w){c.fastSplice(e,o),--o,--p;continue}if(f.push(n("array.includes",{pos:o,value:l},a.localize(g))),r.abortEarly)return f}}return i.length&&c.fillMissedErrors(t,f,i,e,a,r),s.length&&(c.fillOrderedErrors(t,f,s,e,a,r),f.length||c.fillDefault(s,e,a,r)),f.length?f:e},priority:!0,manifest:!1},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate:(e,t,{limit:n},{name:a,operator:r,args:o})=>l.compare(e.length,n,r)?e:t.error("array."+a,{limit:o.limit,value:e}),args:[{name:"limit",ref:!0,assert:l.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},ordered:{method(...e){l.verifyFlat(e,"ordered");const t=this.$_addRule("items");for(let n=0;n<e.length;++n){const a=l.tryWithPath(()=>this.$_compile(e[n]),n,{append:!0});c.validateSingle(a,t),t.$_mutateRegister(a),t.$_terms.ordered.push(a)}return t.$_mutateRebuild()}},single:{method(e){const t=void 0===e||!!e;return a(!t||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",t)}},sort:{method(e={}){l.assertOptions(e,["by","order"]);const t={order:e.order||"ascending"};return e.by&&(t.by=s.ref(e.by,{ancestor:0}),a(!t.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:t}})},validate(e,{error:t,state:n,prefs:a,schema:r},{options:o}){const{value:i,errors:l}=c.sort(r,e,o,n,a);if(l)return l;for(let n=0;n<e.length;++n)if(e[n]!==i[n])return t("array.sort",{order:o.order,by:o.by?o.by.key:"value"});return e},convert:!0},sparse:{method(e){const t=void 0===e||!!e;return this._flags.sparse===t?this:(t?this.clone():this.$_addRule("items")).$_setFlag("sparse",t,{clone:!1})}},unique:{method(e,t={}){a(!e||"function"==typeof e||"string"==typeof e,"comparator must be a function or a string"),l.assertOptions(t,["ignoreUndefined","separator"]);const n={name:"unique",args:{options:t,comparator:e}};if(e)if("string"==typeof e){const a=l.default(t.separator,".");n.path=a?e.split(a):[e]}else n.comparator=e;return this.$_addRule(n)},validate(e,{state:t,error:n,schema:i},{comparator:l,options:s},{comparator:c,path:d}){const u={string:Object.create(null),number:Object.create(null),undefined:Object.create(null),boolean:Object.create(null),bigint:Object.create(null),object:new Map,function:new Map,custom:new Map},f=c||r,p=s.ignoreUndefined;for(let r=0;r<e.length;++r){const i=d?o(e[r],d):e[r],s=c?u.custom:u[typeof i];if(a(s,"Failed to find unique map container for type",typeof i),s instanceof Map){const a=s.entries();let o;for(;!(o=a.next()).done;)if(f(o.value[0],i)){const a=t.localize([...t.path,r],[e,...t.ancestors]),i={pos:r,value:e[r],dupePos:o.value[1],dupeValue:e[o.value[1]]};return d&&(i.path=l),n("array.unique",i,a)}s.set(i,r)}else{if((!p||void 0!==i)&&void 0!==s[i]){const a={pos:r,value:e[r],dupePos:s[i],dupeValue:e[s[i]]};return d&&(a.path=l),n("array.unique",a,t.localize([...t.path,r],[e,...t.ancestors]))}s[i]=r}}return e},args:["comparator","options"],multi:!0}},overrides:{isAsync(){var e;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;for(const e of this.$_terms.items)if(e.isAsync())return!0;for(const e of this.$_terms.ordered)if(e.isAsync())return!0;return!1}},cast:{set:{from:Array.isArray,to:(e,t)=>new Set(e)}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(const t of e.$_terms.items)c.validateSingle(t,e),"required"===t._flags.presence?e.$_terms._requireds.push(t):"forbidden"===t._flags.presence?e.$_terms._exclusions.push(t):e.$_terms._inclusions.push(t);for(const t of e.$_terms.ordered)c.validateSingle(t,e)},manifest:{build:(e,t)=>(t.items&&(e=e.items(...t.items)),t.ordered&&(e=e.ordered(...t.ordered)),e)},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}}),c.fillMissedErrors=function(e,t,n,a,r,o){const i=[];let l=0;for(const e of n){const t=e._flags.label;t?i.push(t):++l}i.length?l?t.push(e.$_createError("array.includesRequiredBoth",a,{knownMisses:i,unknownMisses:l},r,o)):t.push(e.$_createError("array.includesRequiredKnowns",a,{knownMisses:i},r,o)):t.push(e.$_createError("array.includesRequiredUnknowns",a,{unknownMisses:l},r,o))},c.fillOrderedErrors=function(e,t,n,a,r,o){const i=[];for(const e of n)"required"===e._flags.presence&&i.push(e);i.length&&c.fillMissedErrors(e,t,i,a,r,o)},c.fillDefault=function(e,t,n,a){const r=[];let o=!0;for(let i=e.length-1;i>=0;--i){const l=e[i],s=[t,...n.ancestors],c=l.$_validate(void 0,n.localize(n.path,s,l),a).value;if(o){if(void 0===c)continue;o=!1}r.unshift(c)}r.length&&t.push(...r)},c.fastSplice=function(e,t){let n=t;for(;n<e.length;)e[n++]=e[n];--e.length},c.validateSingle=function(e,t){("array"===e.type||e._flags._arrayItems)&&(a(!t._flags.single,"Cannot specify array item with single rule enabled"),t.$_setFlag("_arrayItems",!0,{clone:!1}))},c.sort=function(e,t,n,a,r){const o="ascending"===n.order?1:-1,i=-1*o,l=o,s=(s,d)=>{let u=c.compare(s,d,i,l);if(null!==u)return u;if(n.by&&(s=n.by.resolve(s,a,r),d=n.by.resolve(d,a,r)),u=c.compare(s,d,i,l),null!==u)return u;const f=typeof s;if(f!==typeof d)throw e.$_createError("array.sort.mismatching",t,null,a,r);if("number"!==f&&"string"!==f)throw e.$_createError("array.sort.unsupported",t,{type:f},a,r);return"number"===f?(s-d)*o:s<d?i:l};try{return{value:t.slice().sort(s)}}catch(e){return{errors:e}}},c.compare=function(e,t,n,a){return e===t?0:void 0===e?1:void 0===t?-1:null===e?a:null===t?n:null}},2847:(e,t,n)=>{const a=n(8253),r=n(7125),o=n(8669),i=n(86),l={};e.exports=function(e,t,n={}){return"object"!=typeof t&&(t=[t]),a(!Array.isArray(t)||t.length,"Values array cannot be empty"),"string"==typeof e?l.string(e,t,n):Array.isArray(e)?l.array(e,t,n):(a("object"==typeof e,"Reference must be string or an object"),l.object(e,t,n))},l.array=function(e,t,n){if(Array.isArray(t)||(t=[t]),!e.length)return!1;if(n.only&&n.once&&e.length!==t.length)return!1;let a;const r=new Map;for(const e of t)if(n.deep&&e&&"object"==typeof e){a=null!=a?a:l.compare(n);let t=!1;for(const[n,o]of r.entries())if(a(n,e)){++o.allowed,t=!0;break}t||r.set(e,{allowed:1,hits:0})}else{const t=r.get(e);t?++t.allowed:r.set(e,{allowed:1,hits:0})}let o=0;for(const t of e){let e;if(n.deep&&t&&"object"==typeof t){a=null!=a?a:l.compare(n);for(const[n,o]of r.entries())if(a(n,t)){e=o;break}}else e=r.get(t);if(e&&(++e.hits,++o,n.once&&e.hits>e.allowed))return!1}if(n.only&&o!==e.length)return!1;for(const e of r.values())if(e.hits!==e.allowed&&e.hits<e.allowed&&!n.part)return!1;return!!o},l.object=function(e,t,n){a(void 0===n.once,"Cannot use option once with object");const r=i.keys(e,n);if(!r.length)return!1;if(Array.isArray(t))return l.array(r,t,n);const o=Object.getOwnPropertySymbols(t).filter(e=>t.propertyIsEnumerable(e)),s=[...Object.keys(t),...o],c=l.compare(n),d=new Set(s);for(const a of r)if(d.has(a)){if(!c(t[a],e[a]))return!1;d.delete(a)}else if(n.only)return!1;return!d.size||!!n.part&&d.size<s.length},l.string=function(e,t,n){if(""===e)return 1===t.length&&""===t[0]||!n.once&&!t.some(e=>""!==e);const r=new Map,i=[];for(const e of t)if(a("string"==typeof e,"Cannot compare string reference to non-string value"),e){const t=r.get(e);t?++t.allowed:(r.set(e,{allowed:1,hits:0}),i.push(o(e)))}else if(n.once||n.only)return!1;if(!i.length)return!0;const l=new RegExp(`(${i.join("|")})`,"g"),s=e.replace(l,(e,t)=>(++r.get(t).hits,""));if(n.only&&s)return!1;let c=!1;for(const e of r.values())if(e.hits&&(c=!0),e.hits!==e.allowed){if(e.hits<e.allowed&&!n.part)return!1;if(n.once)return!1}return!!c},l.compare=function(e){if(!e.deep)return l.shallow;const t=void 0!==e.only,n=void 0!==e.part,a={prototype:t?e.only:!!n&&!e.part,part:t?!e.only:!!n&&e.part};return(e,t)=>r(e,t,a)},l.shallow=function(e,t){return e===t}},2888:(e,t,n)=>{const{applyToDefaults:a,assert:r,clone:o}=n(3115),i=n(8248),l=n(680),s=n(9415),c=n(3541),d=n(8013),u=n(8529),f=n(1532),p={renameDefaults:{alias:!1,multiple:!1,override:!1}};e.exports=l.extend({type:"_keys",properties:{typeof:"object"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:"schema",to:"key"}}},patterns:{init:null},renames:{init:null}},args:(e,t)=>e.keys(t),validate(e,{schema:t,error:n,state:a,prefs:r}){if(!e||typeof e!==t.$_property("typeof")||Array.isArray(e))return{value:e,errors:n("object.base",{type:t.$_property("typeof")})};if(!(t.$_terms.renames||t.$_terms.dependencies||t.$_terms.keys||t.$_terms.patterns||t.$_terms.externals))return;e=p.clone(e,r);const o=[];if(t.$_terms.renames&&!p.rename(t,e,a,r,o))return{value:e,errors:o};if(!t.$_terms.keys&&!t.$_terms.patterns&&!t.$_terms.dependencies)return{value:e,errors:o};const i=new Set(Object.keys(e));if(t.$_terms.keys){const n=[e,...a.ancestors];for(const l of t.$_terms.keys){const t=l.key,s=e[t];i.delete(t);const c=a.localize([...a.path,t],n,l),d=l.schema.$_validate(s,c,r);if(d.errors){if(r.abortEarly)return{value:e,errors:d.errors};void 0!==d.value&&(e[t]=d.value),o.push(...d.errors)}else"strip"===l.schema._flags.result||void 0===d.value&&void 0!==s?delete e[t]:void 0!==d.value&&(e[t]=d.value)}}if(i.size||t._flags._hasPatternMatch){const n=p.unknown(t,e,i,o,a,r);if(n)return n}if(t.$_terms.dependencies)for(const n of t.$_terms.dependencies){if(null!==n.key&&!1===p.isPresent(n.options)(n.key.resolve(e,a,r,null,{shadow:!1})))continue;const i=p.dependencies[n.rel](t,n,e,a,r);if(i){const n=t.$_createError(i.code,e,i.context,a,r);if(r.abortEarly)return{value:e,errors:n};o.push(n)}}return{value:e,errors:o}},rules:{and:{method(...e){return s.verifyFlat(e,"and"),p.dependency(this,"and",null,e)}},append:{method(e){return null==e||0===Object.keys(e).length?this:this.keys(e)}},assert:{method(e,t,n){f.isTemplate(e)||(e=c.ref(e)),r(void 0===n||"string"==typeof n,"Message must be a string"),t=this.$_compile(t,{appendPath:!0});const a=this.$_addRule({name:"assert",args:{subject:e,schema:t,message:n}});return a.$_mutateRegister(e),a.$_mutateRegister(t),a},validate(e,{error:t,prefs:n,state:a},{subject:r,schema:o,message:i}){const l=r.resolve(e,a,n),s=u.isRef(r)?r.absolute(a):[];return o.$_match(l,a.localize(s,[e,...a.ancestors],o),n)?e:t("object.assert",{subject:r,message:i})},args:["subject","schema","message"],multi:!0},instance:{method(e,t){return r("function"==typeof e,"constructor must be a function"),t=t||e.name,this.$_addRule({name:"instance",args:{constructor:e,name:t}})},validate:(e,t,{constructor:n,name:a})=>e instanceof n?e:t.error("object.instance",{type:a,value:e}),args:["constructor","name"]},keys:{method(e){r(void 0===e||"object"==typeof e,"Object schema must be a valid object"),r(!s.isSchema(e),"Object schema cannot be a joi schema");const t=this.clone();if(e)if(Object.keys(e).length){t.$_terms.keys=t.$_terms.keys?t.$_terms.keys.filter(t=>!e.hasOwnProperty(t.key)):new p.Keys;for(const n in e)s.tryWithPath(()=>t.$_terms.keys.push({key:n,schema:this.$_compile(e[n])}),n)}else t.$_terms.keys=new p.Keys;else t.$_terms.keys=null;return t.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate:(e,t,{limit:n},{name:a,operator:r,args:o})=>s.compare(Object.keys(e).length,n,r)?e:t.error("object."+a,{limit:o.limit,value:e}),args:[{name:"limit",ref:!0,assert:s.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},nand:{method(...e){return s.verifyFlat(e,"nand"),p.dependency(this,"nand",null,e)}},or:{method(...e){return s.verifyFlat(e,"or"),p.dependency(this,"or",null,e)}},oxor:{method(...e){return p.dependency(this,"oxor",null,e)}},pattern:{method(e,t,n={}){const a=e instanceof RegExp;a||(e=this.$_compile(e,{appendPath:!0})),r(void 0!==t,"Invalid rule"),s.assertOptions(n,["fallthrough","matches"]),a&&r(!e.flags.includes("g")&&!e.flags.includes("y"),"pattern should not use global or sticky mode"),t=this.$_compile(t,{appendPath:!0});const o=this.clone();o.$_terms.patterns=o.$_terms.patterns||[];const i={[a?"regex":"schema"]:e,rule:t};return n.matches&&(i.matches=this.$_compile(n.matches),"array"!==i.matches.type&&(i.matches=i.matches.$_root.array().items(i.matches)),o.$_mutateRegister(i.matches),o.$_setFlag("_hasPatternMatch",!0,{clone:!1})),n.fallthrough&&(i.fallthrough=!0),o.$_terms.patterns.push(i),o.$_mutateRegister(t),o}},ref:{method(){return this.$_addRule("ref")},validate:(e,t)=>u.isRef(e)?e:t.error("object.refType",{value:e})},regex:{method(){return this.$_addRule("regex")},validate:(e,t)=>e instanceof RegExp?e:t.error("object.regex",{value:e})},rename:{method(e,t,n={}){r("string"==typeof e||e instanceof RegExp,"Rename missing the from argument"),r("string"==typeof t||t instanceof f,"Invalid rename to argument"),r(t!==e,"Cannot rename key to same name:",e),s.assertOptions(n,["alias","ignoreUndefined","override","multiple"]);const o=this.clone();o.$_terms.renames=o.$_terms.renames||[];for(const t of o.$_terms.renames)r(t.from!==e,"Cannot rename the same key multiple times");return t instanceof f&&o.$_mutateRegister(t),o.$_terms.renames.push({from:e,to:t,options:a(p.renameDefaults,n)}),o}},schema:{method(e="any"){return this.$_addRule({name:"schema",args:{type:e}})},validate:(e,t,{type:n})=>!s.isSchema(e)||"any"!==n&&e.type!==n?t.error("object.schema",{type:n}):e},unknown:{method(e){return this.$_setFlag("unknown",!1!==e)}},with:{method(e,t,n={}){return p.dependency(this,"with",e,t,n)}},without:{method(e,t,n={}){return p.dependency(this,"without",e,t,n)}},xor:{method(...e){return s.verifyFlat(e,"xor"),p.dependency(this,"xor",null,e)}}},overrides:{default(e,t){return void 0===e&&(e=s.symbols.deepDefault),this.$_parent("default",e,t)},isAsync(){var e,t,n;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;if(null!==(t=this.$_terms.keys)&&void 0!==t&&t.length)for(const e of this.$_terms.keys)if(e.schema.isAsync())return!0;if(null!==(n=this.$_terms.patterns)&&void 0!==n&&n.length)for(const e of this.$_terms.patterns)if(e.rule.isAsync())return!0;return!1}},rebuild(e){if(e.$_terms.keys){const t=new i.Sorter;for(const n of e.$_terms.keys)s.tryWithPath(()=>t.add(n,{after:n.schema.$_rootReferences(),group:n.key}),n.key);e.$_terms.keys=new p.Keys(...t.nodes)}},manifest:{build(e,t){if(t.keys&&(e=e.keys(t.keys)),t.dependencies)for(const{rel:n,key:a=null,peers:r,options:o}of t.dependencies)e=p.dependency(e,n,a,r,o);if(t.patterns)for(const{regex:n,schema:a,rule:r,fallthrough:o,matches:i}of t.patterns)e=e.pattern(n||a,r,{fallthrough:o,matches:i});if(t.renames)for(const{from:n,to:a,options:r}of t.renames)e=e.rename(n,a,r);return e}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}}),p.clone=function(e,t){if("object"==typeof e){if(t.nonEnumerables)return o(e,{shallow:!0});const n=Object.create(Object.getPrototypeOf(e));return Object.assign(n,e),n}const n=function(...t){return e.apply(this,t)};return n.prototype=o(e.prototype),Object.defineProperty(n,"name",{value:e.name,writable:!1}),Object.defineProperty(n,"length",{value:e.length,writable:!1}),Object.assign(n,e),n},p.dependency=function(e,t,n,a,o){r(null===n||"string"==typeof n,t,"key must be a strings"),o||(o=a.length>1&&"object"==typeof a[a.length-1]?a.pop():{}),s.assertOptions(o,["separator","isPresent"]),a=[].concat(a);const i=s.default(o.separator,"."),l=[];for(const e of a)r("string"==typeof e,t,"peers must be strings"),l.push(c.ref(e,{separator:i,ancestor:0,prefix:!1}));null!==n&&(n=c.ref(n,{separator:i,ancestor:0,prefix:!1}));const d=e.clone();return d.$_terms.dependencies=d.$_terms.dependencies||[],d.$_terms.dependencies.push(new p.Dependency(t,n,l,a,o)),d},p.dependencies={and(e,t,n,a,r){const o=[],i=[],l=t.peers.length,s=p.isPresent(t.options);for(const e of t.peers)!1===s(e.resolve(n,a,r,null,{shadow:!1}))?o.push(e.key):i.push(e.key);if(o.length!==l&&i.length!==l)return{code:"object.and",context:{present:i,presentWithLabels:p.keysToLabels(e,i),missing:o,missingWithLabels:p.keysToLabels(e,o)}}},nand(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(o.length!==t.peers.length)return;const l=t.paths[0],s=t.paths.slice(1);return{code:"object.nand",context:{main:l,mainWithLabel:p.keysToLabels(e,l),peers:s,peersWithLabels:p.keysToLabels(e,s)}}},or(e,t,n,a,r){const o=p.isPresent(t.options);for(const e of t.peers)if(o(e.resolve(n,a,r,null,{shadow:!1})))return;return{code:"object.missing",context:{peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)}}},oxor(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(!o.length||1===o.length)return;const l={peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)};return l.present=o,l.presentWithLabels=p.keysToLabels(e,o),{code:"object.oxor",context:l}},with(e,t,n,a,r){const o=p.isPresent(t.options);for(const i of t.peers)if(!1===o(i.resolve(n,a,r,null,{shadow:!1})))return{code:"object.with",context:{main:t.key.key,mainWithLabel:p.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:p.keysToLabels(e,i.key)}}},without(e,t,n,a,r){const o=p.isPresent(t.options);for(const i of t.peers)if(o(i.resolve(n,a,r,null,{shadow:!1})))return{code:"object.without",context:{main:t.key.key,mainWithLabel:p.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:p.keysToLabels(e,i.key)}}},xor(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(1===o.length)return;const l={peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)};return 0===o.length?{code:"object.missing",context:l}:(l.present=o,l.presentWithLabels=p.keysToLabels(e,o),{code:"object.xor",context:l})}},p.keysToLabels=function(e,t){return Array.isArray(t)?t.map(t=>e.$_mapLabels(t)):e.$_mapLabels(t)},p.isPresent=function(e){return"function"==typeof e.isPresent?e.isPresent:e=>void 0!==e},p.rename=function(e,t,n,a,r){const o={};for(const i of e.$_terms.renames){const l=[],s="string"!=typeof i.from;if(s)for(const e in t){if(void 0===t[e]&&i.options.ignoreUndefined)continue;if(e===i.to)continue;const n=i.from.exec(e);n&&l.push({from:e,to:i.to,match:n})}else!Object.prototype.hasOwnProperty.call(t,i.from)||void 0===t[i.from]&&i.options.ignoreUndefined||l.push(i);for(const c of l){const l=c.from;let d=c.to;if(d instanceof f&&(d=d.render(t,n,a,c.match)),l!==d){if(!i.options.multiple&&o[d]&&(r.push(e.$_createError("object.rename.multiple",t,{from:l,to:d,pattern:s},n,a)),a.abortEarly))return!1;if(Object.prototype.hasOwnProperty.call(t,d)&&!i.options.override&&!o[d]&&(r.push(e.$_createError("object.rename.override",t,{from:l,to:d,pattern:s},n,a)),a.abortEarly))return!1;void 0===t[l]?delete t[d]:t[d]=t[l],o[d]=!0,i.options.alias||delete t[l]}}}return!0},p.unknown=function(e,t,n,a,r,o){if(e.$_terms.patterns){let i=!1;const l=e.$_terms.patterns.map(e=>{if(e.matches)return i=!0,[]}),s=[t,...r.ancestors];for(const i of n){const c=t[i],d=[...r.path,i];for(let u=0;u<e.$_terms.patterns.length;++u){const f=e.$_terms.patterns[u];if(f.regex){const e=f.regex.test(i);if(r.mainstay.tracer.debug(r,"rule",`pattern.${u}`,e?"pass":"error"),!e)continue}else if(!f.schema.$_match(i,r.nest(f.schema,`pattern.${u}`),o))continue;n.delete(i);const p=r.localize(d,s,{schema:f.rule,key:i}),m=f.rule.$_validate(c,p,o);if(m.errors){if(o.abortEarly)return{value:t,errors:m.errors};a.push(...m.errors)}if(f.matches&&l[u].push(i),t[i]=m.value,!f.fallthrough)break}}if(i)for(let n=0;n<l.length;++n){const i=l[n];if(!i)continue;const c=e.$_terms.patterns[n].matches,u=r.localize(r.path,s,c),f=c.$_validate(i,u,o);if(f.errors){const n=d.details(f.errors,{override:!1});n.matches=i;const l=e.$_createError("object.pattern.match",t,n,r,o);if(o.abortEarly)return{value:t,errors:l};a.push(l)}}}if(n.size&&(e.$_terms.keys||e.$_terms.patterns)){if(o.stripUnknown&&void 0===e._flags.unknown||o.skipFunctions){const e=!(!o.stripUnknown||!0!==o.stripUnknown&&!o.stripUnknown.objects);for(const a of n)e?(delete t[a],n.delete(a)):"function"==typeof t[a]&&n.delete(a)}if(!s.default(e._flags.unknown,o.allowUnknown))for(const i of n){const n=r.localize([...r.path,i],[]),l=e.$_createError("object.unknown",t[i],{child:i},n,o,{flags:!1});if(o.abortEarly)return{value:t,errors:l};a.push(l)}}},p.Dependency=class{constructor(e,t,n,a,r){this.rel=e,this.key=t,this.peers=n,this.paths=a,this.options=r}describe(){const e={rel:this.rel,peers:this.paths};return null!==this.key&&(e.key=this.key.key),"."!==this.peers[0].separator&&(e.options={...e.options,separator:this.peers[0].separator}),this.options.isPresent&&(e.options={...e.options,isPresent:this.options.isPresent}),e}},p.Keys=class extends Array{concat(e){const t=this.slice(),n=new Map;for(let e=0;e<t.length;++e)n.set(t[e].key,e);for(const a of e){const e=a.key,r=n.get(e);void 0!==r?t[r]={key:e,schema:t[r].schema.concat(a.schema)}:t.push(a)}return t}}},3110:e=>{const t={};e.exports=function(e,n,a={}){if(!e||!n)return a.first?null:[];const r=[],o=Array.isArray(e)?new Set(e):e,i=new Set;for(const e of n)if(t.has(o,e)&&!i.has(e)){if(a.first)return e;r.push(e),i.add(e)}return a.first?null:r},t.has=function(e,t){return"function"==typeof e.has?e.has(t):void 0!==e[t]}},3115:(e,t,n)=>{t.applyToDefaults=n(6084),t.assert=n(8253),t.AssertError=n(1803),t.Bench=n(9145),t.block=n(3386),t.clone=n(4126),t.contain=n(2847),t.deepEqual=n(7125),t.escapeHeaderAttribute=n(9241),t.escapeHtml=n(8121),t.escapeJson=n(5570),t.escapeRegex=n(8669),t.flatten=n(5553),t.ignore=n(9725),t.intersect=n(3110),t.isPromise=n(834),t.merge=n(9315),t.once=n(8762),t.reach=n(1528),t.reachTemplate=n(1626),t.stringify=n(8314),t.wait=n(7858)},3305:(e,t,n)=>{n.r(t),n.d(t,{analyzeDomain:()=>m,analyzeEmail:()=>_,errorCodes:()=>r,ipRegex:()=>M,isDomainValid:()=>h,isEmailValid:()=>w,uriDecode:()=>P,uriRegex:()=>D,validateDomainOptions:()=>v});var a=n(8663);const r={EMPTY_STRING:"Address must be a non-empty string",FORBIDDEN_UNICODE:"Address contains forbidden Unicode characters",MULTIPLE_AT_CHAR:"Address cannot contain more than one @ character",MISSING_AT_CHAR:"Address must contain one @ character",EMPTY_LOCAL:"Address local part cannot be empty",ADDRESS_TOO_LONG:"Address too long",LOCAL_TOO_LONG:"Address local part too long",EMPTY_LOCAL_SEGMENT:"Address local part contains empty dot-separated segment",INVALID_LOCAL_CHARS:"Address local part contains invalid character",DOMAIN_NON_EMPTY_STRING:"Domain must be a non-empty string",DOMAIN_TOO_LONG:"Domain too long",DOMAIN_INVALID_UNICODE_CHARS:"Domain contains forbidden Unicode characters",DOMAIN_INVALID_CHARS:"Domain contains invalid character",DOMAIN_INVALID_TLDS_CHARS:"Domain contains invalid tld character",DOMAIN_SEGMENTS_COUNT:"Domain lacks the minimum required number of segments",DOMAIN_SEGMENTS_COUNT_MAX:"Domain contains too many segments",DOMAIN_FORBIDDEN_TLDS:"Domain uses forbidden TLD",DOMAIN_EMPTY_SEGMENT:"Domain contains empty dot-separated segment",DOMAIN_LONG_SEGMENT:"Domain contains dot-separated segment that is too long"};function o(e){return{code:e,error:r[e]}}const i=2,l=/[^\x00-\x7f]/,s=/[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/,c=/^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,d=/^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,u=/^[a-zA-Z0-9_](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,f=a.URL||URL;function p(e){return!!e.allow}function m(e,t={}){if(!e)return o("DOMAIN_NON_EMPTY_STRING");if("string"!=typeof e)throw new Error("Invalid input: domain must be a string");if(e.length>256)return o("DOMAIN_TOO_LONG");if(l.test(e)){if(!1===t.allowUnicode)return o("DOMAIN_INVALID_UNICODE_CHARS");e=e.normalize("NFC")}if(s.test(e))return o("DOMAIN_INVALID_CHARS");e=function(e){e.includes("%")&&(e=e.replace(/%/g,"%25"));try{return new f(`http://${e}`).host}catch(t){return e}}(e),t.allowFullyQualified&&"."===e[e.length-1]&&(e=e.slice(0,-1));const n=t.minDomainSegments||i,a=e.split(".");if(a.length<n)return o("DOMAIN_SEGMENTS_COUNT");if(t.maxDomainSegments&&a.length>t.maxDomainSegments)return o("DOMAIN_SEGMENTS_COUNT_MAX");const r=t.tlds;if(r){const e=a[a.length-1].toLowerCase();if(p(r)){if(!r.allow.has(e))return o("DOMAIN_FORBIDDEN_TLDS")}else if(r.deny.has(e))return o("DOMAIN_FORBIDDEN_TLDS")}for(let e=0;e<a.length;++e){const n=a[e];if(!n.length)return o("DOMAIN_EMPTY_SEGMENT");if(n.length>63)return o("DOMAIN_LONG_SEGMENT");if(e<a.length-1){if(t.allowUnderscore){if(!u.test(n))return o("DOMAIN_INVALID_CHARS")}else if(!d.test(n))return o("DOMAIN_INVALID_CHARS")}else if(!c.test(n))return o("DOMAIN_INVALID_TLDS_CHARS")}return null}function h(e,t){return!m(e,t)}function v(e){if(e){if("object"!=typeof e.tlds)throw new Error("Invalid options: tlds must be a boolean or an object");if(p(e.tlds)){if(e.tlds.allow instanceof Set==0)throw new Error("Invalid options: tlds.allow must be a Set object or true");if(e.tlds.deny)throw new Error("Invalid options: cannot specify both tlds.allow and tlds.deny lists")}else if(e.tlds.deny instanceof Set==0)throw new Error("Invalid options: tlds.deny must be a Set object")}}var g=n(6984);const y=/[^\x00-\x7f]/,b=new(g.TextEncoder||TextEncoder);function _(e,t){return x(e,t)}function w(e,t){return!x(e,t)}function x(e,t={}){if("string"!=typeof e)throw new Error("Invalid input: email must be a string");if(!e)return o("EMPTY_STRING");const n=!y.test(e);if(!n){if(!1===t.allowUnicode)return o("FORBIDDEN_UNICODE");e=e.normalize("NFC")}const a=e.split("@");if(2!==a.length)return a.length>2?o("MULTIPLE_AT_CHAR"):o("MISSING_AT_CHAR");const[r,i]=a;if(!r)return o("EMPTY_LOCAL");if(!t.ignoreLength){if(e.length>254)return o("ADDRESS_TOO_LONG");if(b.encode(r).length>64)return o("LOCAL_TOO_LONG")}return function(e,t){const n=e.split(".");for(const e of n){if(!e.length)return o("EMPTY_LOCAL_SEGMENT");if(t){if(!k.test(e))return o("INVALID_LOCAL_CHARS")}else for(const t of e){if(k.test(t))continue;const e=S(t);if(!E.test(e))return o("INVALID_LOCAL_CHARS")}}return null}(r,n)||m(i,t)}function S(e){return Array.from(b.encode(e),e=>String.fromCharCode(e)).join("")}const k=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/,E=new RegExp(["(?:[\\xc2-\\xdf][\\x80-\\xbf])","(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})","(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})"].join("|"));var A=n(8253),O=n.n(A),$=n(8669),C=n.n($);const I=function(){const e={},t="\\dA-Fa-f",n="["+t+"]",a="\\w-\\.~",r="!\\$&'\\(\\)\\*\\+,;=",o="%"+t,i=a+o+r+":@",l="["+i+"]",s="(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";e.ipv4address="(?:"+s+"\\.){3}"+s;const c=n+"{1,4}",d="(?:"+c+":"+c+"|"+e.ipv4address+")",u="(?:"+c+":){6}"+d,f="::(?:"+c+":){5}"+d,p="(?:"+c+")?::(?:"+c+":){4}"+d,m="(?:(?:"+c+":){0,1}"+c+")?::(?:"+c+":){3}"+d,h="(?:(?:"+c+":){0,2}"+c+")?::(?:"+c+":){2}"+d,v="(?:(?:"+c+":){0,3}"+c+")?::"+c+":"+d,g="(?:(?:"+c+":){0,4}"+c+")?::"+d,y="(?:(?:"+c+":){0,5}"+c+")?::"+c,b="(?:(?:"+c+":){0,6}"+c+")?::";e.ipv4Cidr="(?:\\d|[1-2]\\d|3[0-2])",e.ipv6Cidr="(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])",e.ipv6address="(?:"+u+"|"+f+"|"+p+"|"+m+"|"+h+"|"+v+"|"+g+"|"+y+"|"+b+")",e.ipvFuture="v"+n+"+\\.["+a+r+":]+",e.scheme="[a-zA-Z][a-zA-Z\\d+-\\.]*",e.schemeRegex=new RegExp(e.scheme);const _="["+a+o+r+":]*",w="["+a+o+r+"]{1,255}",x="(?:\\[(?:"+e.ipv6address+"|"+e.ipvFuture+")\\]|"+e.ipv4address+"|"+w+")",S="(?:"+_+"@)?"+x+"(?::\\d*)?",k="(?:"+_+"@)?("+x+")(?::\\d*)?",E=l+"*",A=l+"+",O="(?:\\/"+E+")*",$="\\/(?:"+A+O+")?",C=A+O,I="["+a+o+r+"@]+"+O,R="(?:\\/\\/\\/"+E+O+")";return e.hierPart="(?:(?:\\/\\/"+S+O+")|"+$+"|"+C+"|"+R+")",e.hierPartCapture="(?:(?:\\/\\/"+k+O+")|"+$+"|"+C+")",e.relativeRef="(?:(?:\\/\\/"+S+O+")|"+$+"|"+I+"|)",e.relativeRefCapture="(?:(?:\\/\\/"+k+O+")|"+$+"|"+I+"|)",e.query="["+i+"\\/\\?]*(?=#|$)",e.queryWithSquareBrackets="["+i+"\\[\\]\\/\\?]*(?=#|$)",e.fragment="["+i+"\\/\\?]*",e}(),R={v4Cidr:I.ipv4Cidr,v6Cidr:I.ipv6Cidr,ipv4:I.ipv4address,ipv6:I.ipv6address,ipvfuture:I.ipvFuture};function N(e){const t=I,n="(?:\\?"+(e.allowQuerySquareBrackets?t.queryWithSquareBrackets:t.query)+")?(?:#"+t.fragment+")?",a=e.domain?t.relativeRefCapture:t.relativeRef;if(e.relativeOnly)return T(a+n);let r="";if(e.scheme){O()(e.scheme instanceof RegExp||"string"==typeof e.scheme||Array.isArray(e.scheme),"scheme must be a RegExp, String, or Array");const n=[].concat(e.scheme);O()(n.length>=1,"scheme must have at least 1 scheme specified");const a=[];for(let e=0;e<n.length;++e){const r=n[e];O()(r instanceof RegExp||"string"==typeof r,"scheme at position "+e+" must be a RegExp or String"),r instanceof RegExp?a.push(r.source.toString()):(O()(t.schemeRegex.test(r),"scheme at position "+e+" must be a valid scheme"),a.push(C()(r)))}r=a.join("|")}const o="(?:"+(r?"(?:"+r+")":t.scheme)+":"+(e.domain?t.hierPartCapture:t.hierPart)+")";return T((e.allowRelative?"(?:"+o+"|"+a+")":o)+n,r)}function T(e,t=null){return{raw:e=`(?=.)(?!https?:/(?:$|[^/]))(?!https?:///)(?!https?:[^/])${e}`,regex:new RegExp(`^${e}$`),scheme:t}}const j=N({});function D(e={}){return e.scheme||e.allowRelative||e.relativeOnly||e.allowQuerySquareBrackets||e.domain?N(e):j}function M(e={}){const t=e.cidr||"optional";O()(["required","optional","forbidden"].includes(t),"options.cidr must be one of required, optional, forbidden"),O()(void 0===e.version||"string"==typeof e.version||Array.isArray(e.version),"options.version must be a string or an array of string");let n=e.version||["ipv4","ipv6","ipvfuture"];Array.isArray(n)||(n=[n]),O()(n.length>=1,"options.version must have at least 1 version specified");for(const e of n)O()("string"==typeof e&&e===e.toLowerCase(),"Invalid options.version value"),O()(["ipv4","ipv6","ipvfuture"].includes(e),"options.version contains unknown version "+e+" - must be one of ipv4, ipv6, ipvfuture");n=Array.from(new Set(n));const a=`(?:${n.map(e=>{if("forbidden"===t)return R[e];const n=`\\/${"ipv4"===e?R.v4Cidr:R.v6Cidr}`;return"required"===t?`${R[e]}${n}`:`${R[e]}(?:${n})?`}).join("|")})`,r=new RegExp(`^${a}$`);return{cidr:t,versions:n,regex:r,raw:a}}const L={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15},F={accept:12,reject:0,data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7]};function P(e){let t=e.indexOf("%");if(-1===t)return e;let n="",a=0,r=0,o=t,i=F.accept;for(;t>-1&&t<e.length;){const l=U(e[t+1],4)|U(e[t+2],0),s=F.data[l];if(i=F.data[256+i+s],r=r<<6|l&F.data[364+s],i!==F.accept){if(i===F.reject)return null;if(t+=3,t>=e.length||"%"!==e[t])return null}else n+=e.slice(a,o),n+=r<=65535?String.fromCharCode(r):String.fromCharCode(55232+(r>>10),56320+(1023&r)),r=0,a=t+3,t=e.indexOf("%",a),o=t}return n+e.slice(a)}function U(e,t){const n=L[e];return void 0===n?255:n<<t}},3386:(e,t,n)=>{const a=n(9725);e.exports=function(){return new Promise(a)}},3541:(e,t,n)=>{const{assert:a}=n(3115),r=n(9415),o=n(8529),i={};t.schema=function(e,t,n={}){r.assertOptions(n,["appendPath","override"]);try{return i.schema(e,t,n)}catch(e){throw n.appendPath&&void 0!==e.path&&(e.message=`${e.message} (${e.path})`),e}},i.schema=function(e,t,n){a(void 0!==t,"Invalid undefined schema"),Array.isArray(t)&&(a(t.length,"Invalid empty array schema"),1===t.length&&(t=t[0]));const o=(t,...a)=>!1!==n.override?t.valid(e.override,...a):t.valid(...a);if(i.simple(t))return o(e,t);if("function"==typeof t)return e.custom(t);if(a("object"==typeof t,"Invalid schema content:",typeof t),r.isResolvable(t))return o(e,t);if(r.isSchema(t))return t;if(Array.isArray(t)){for(const n of t)if(!i.simple(n))return e.alternatives().try(...t);return o(e,...t)}return t instanceof RegExp?e.string().regex(t):t instanceof Date?o(e.date(),t):(a(Object.getPrototypeOf(t)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),e.object().keys(t))},t.ref=function(e,t){return o.isRef(e)?e:o.create(e,t)},t.compile=function(e,n,o={}){r.assertOptions(o,["legacy"]);const l=n&&n[r.symbols.any];if(l)return a(o.legacy||l.version===r.version,"Cannot mix different versions of joi schemas:",l.version,r.version),n;if("object"!=typeof n||!o.legacy)return t.schema(e,n,{appendPath:!0});const s=i.walk(n);return s?s.compile(s.root,n):t.schema(e,n,{appendPath:!0})},i.walk=function(e){if("object"!=typeof e)return null;if(Array.isArray(e)){for(const t of e){const e=i.walk(t);if(e)return e}return null}const t=e[r.symbols.any];if(t)return{root:e[t.root],compile:t.compile};a(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),"Schema can only contain plain objects");for(const t in e){const n=i.walk(e[t]);if(n)return n}return null},i.simple=function(e){return null===e||["boolean","string","number"].includes(typeof e)},t.when=function(e,n,l){if(void 0===l&&(a(n&&"object"==typeof n,"Missing options"),l=n,n=o.create(".")),Array.isArray(l)&&(l={switch:l}),r.assertOptions(l,["is","not","then","otherwise","switch","break"]),r.isSchema(n))return a(void 0===l.is,'"is" can not be used with a schema condition'),a(void 0===l.not,'"not" can not be used with a schema condition'),a(void 0===l.switch,'"switch" can not be used with a schema condition'),i.condition(e,{is:n,then:l.then,otherwise:l.otherwise,break:l.break});if(a(o.isRef(n)||"string"==typeof n,"Invalid condition:",n),a(void 0===l.not||void 0===l.is,'Cannot combine "is" with "not"'),void 0===l.switch){let s=l;void 0!==l.not&&(s={is:l.not,then:l.otherwise,otherwise:l.then,break:l.break});let c=void 0!==s.is?e.$_compile(s.is):e.$_root.invalid(null,!1,0,"").required();return a(void 0!==s.then||void 0!==s.otherwise,'options must have at least one of "then", "otherwise", or "switch"'),a(void 0===s.break||void 0===s.then||void 0===s.otherwise,"Cannot specify then, otherwise, and break all together"),void 0===l.is||o.isRef(l.is)||r.isSchema(l.is)||(c=c.required()),i.condition(e,{ref:t.ref(n),is:c,then:s.then,otherwise:s.otherwise,break:s.break})}a(Array.isArray(l.switch),'"switch" must be an array'),a(void 0===l.is,'Cannot combine "switch" with "is"'),a(void 0===l.not,'Cannot combine "switch" with "not"'),a(void 0===l.then,'Cannot combine "switch" with "then"');const s={ref:t.ref(n),switch:[],break:l.break};for(let t=0;t<l.switch.length;++t){const n=l.switch[t],i=t===l.switch.length-1;r.assertOptions(n,i?["is","then","otherwise"]:["is","then"]),a(void 0!==n.is,'Switch statement missing "is"'),a(void 0!==n.then,'Switch statement missing "then"');const c={is:e.$_compile(n.is),then:e.$_compile(n.then)};if(o.isRef(n.is)||r.isSchema(n.is)||(c.is=c.is.required()),i){a(void 0===l.otherwise||void 0===n.otherwise,'Cannot specify "otherwise" inside and outside a "switch"');const t=void 0!==l.otherwise?l.otherwise:n.otherwise;void 0!==t&&(a(void 0===s.break,"Cannot specify both otherwise and break"),c.otherwise=e.$_compile(t))}s.switch.push(c)}return s},i.condition=function(e,t){for(const n of["then","otherwise"])void 0===t[n]?delete t[n]:t[n]=e.$_compile(t[n]);return t}},3738:(e,t)=>{const n={};t=e.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,url:URL.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},n.typeMap=new Map([["[object Error]",t.error],["[object Map]",t.map],["[object Promise]",t.promise],["[object Set]",t.set],["[object URL]",t.url],["[object WeakMap]",t.weakMap],["[object WeakSet]",t.weakSet]]),t.getInternalProto=function(e){if(Array.isArray(e))return t.array;if(e instanceof Date)return t.date;if(e instanceof RegExp)return t.regex;if(e instanceof Error)return t.error;const a=Object.prototype.toString.call(e);return n.typeMap.get(a)||t.generic}},4126:(e,t,n)=>{const a=n(1528),r=n(3738),o=n(86),i={needsProtoHack:new Set([r.set,r.map,r.weakSet,r.weakMap]),structuredCloneExists:"function"==typeof structuredClone};e.exports=i.clone=function(e,t={},n=null){if("object"!=typeof e||null===e)return e;let a=i.clone,l=n;if(t.shallow){if(!0!==t.shallow)return i.cloneWithShallow(e,t);a=e=>e}else if(l){const t=l.get(e);if(t)return t}else l=new Map;const s=r.getInternalProto(e);switch(s){case r.buffer:return(!1).from(e);case r.date:return new Date(e.getTime());case r.regex:case r.url:return new s.constructor(e)}const c=i.base(e,s,t);if(c===e)return e;if(l&&l.set(e,c),s===r.set)for(const n of e)c.add(a(n,t,l));else if(s===r.map)for(const[n,r]of e)c.set(n,a(r,t,l));const d=o.keys(e,t);for(const n of d){if("__proto__"===n)continue;if(s===r.array&&"length"===n){c.length=e.length;continue}if(i.structuredCloneExists&&s===r.error&&"stack"===n)continue;const o=Object.getOwnPropertyDescriptor(e,n);o?o.get||o.set?Object.defineProperty(c,n,o):o.enumerable?c[n]=a(e[n],t,l):Object.defineProperty(c,n,{enumerable:!1,writable:!0,configurable:!0,value:a(e[n],t,l)}):Object.defineProperty(c,n,{enumerable:!0,writable:!0,configurable:!0,value:a(e[n],t,l)})}return c},i.cloneWithShallow=function(e,t){const n=t.shallow;(t=Object.assign({},t)).shallow=!1;const r=new Map;for(const t of n){const n=a(e,t);"object"!=typeof n&&"function"!=typeof n||r.set(n,n)}return i.clone(e,t,r)},i.base=function(e,t,n){if(!1===n.prototype)return i.needsProtoHack.has(t)?new t.constructor:t===r.array?[]:{};const a=Object.getPrototypeOf(e);if(a&&a.isImmutable)return e;if(t===r.array){const e=[];return a!==t&&Object.setPrototypeOf(e,a),e}if(t===r.error&&i.structuredCloneExists&&(a===t||Error.isPrototypeOf(a.constructor))){const t=structuredClone(e);return Object.getPrototypeOf(t)!==a&&Object.setPrototypeOf(t,a),t}if(i.needsProtoHack.has(t)){const e=new a.constructor;return a!==t&&Object.setPrototypeOf(e,a),e}return Object.create(a)}},4709:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,exponentialPartRegex:/[eE][+-]?\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\./,trailingZerosRegex:/0+$/,decimalPlaces(e){const t=e.toString(),n=t.indexOf("."),a=t.indexOf("e");return(n<0?0:(a<0?t.length:a)-n-1)+(a<0?0:Math.max(0,-parseInt(t.slice(a+1))))}};e.exports=r.extend({type:"number",flags:{unsafe:{default:!1}},coerce:{from:"string",method(e,{schema:t,error:n}){if(!e.match(i.numberRx))return;e=e.trim();const a={value:parseFloat(e)};if(0===a.value&&(a.value=0),!t._flags.unsafe)if(e.match(/e/i)){if(i.extractSignificantDigits(e)!==i.extractSignificantDigits(String(a.value)))return a.errors=n("number.unsafe"),a}else{const t=a.value.toString();if(t.match(/e/i))return a;if(t!==i.normalizeDecimal(e))return a.errors=n("number.unsafe"),a}return a}},validate(e,{schema:t,error:n,prefs:a}){if(e===1/0||e===-1/0)return{value:e,errors:n("number.infinity")};if(!o.isNumber(e))return{value:e,errors:n("number.base")};const r={value:e};if(a.convert){const e=t.$_getRule("precision");if(e){const t=Math.pow(10,e.args.limit);r.value=Math.round(r.value*t)/t}}return 0===r.value&&(r.value=0),!t._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)&&(r.errors=n("number.unsafe")),r},rules:{compare:{method:!1,validate:(e,t,{limit:n},{name:a,operator:r,args:i})=>o.compare(e,n,r)?e:t.error("number."+a,{limit:i.limit,value:e}),args:[{name:"limit",ref:!0,assert:o.isNumber,message:"must be a number"}]},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{limit:e},operator:">"})}},integer:{method(){return this.$_addRule("integer")},validate:(e,t)=>Math.trunc(e)-e===0?e:t.error("number.integer")},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{limit:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{limit:e},operator:">="})}},multiple:{method(e){const t="number"==typeof e?i.decimalPlaces(e):null,n=Math.pow(10,t);return this.$_addRule({name:"multiple",args:{base:e,baseDecimalPlace:t,pfactor:n}})},validate:(e,t,{base:n,baseDecimalPlace:a,pfactor:r},o)=>i.decimalPlaces(e)>a?t.error("number.multiple",{multiple:o.args.base,value:e}):Math.round(r*e)%Math.round(r*n)===0?e:t.error("number.multiple",{multiple:o.args.base,value:e}),args:[{name:"base",ref:!0,assert:e=>"number"==typeof e&&isFinite(e)&&e>0,message:"must be a positive number"},"baseDecimalPlace","pfactor"],multi:!0},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate:(e,t)=>Number.isSafeInteger(e)&&e>=0&&e<=65535?e:t.error("number.port")},positive:{method(){return this.sign("positive")}},precision:{method(e){return a(Number.isSafeInteger(e),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:e}})},validate(e,t,{limit:n}){const a=e.toString().match(i.precisionRx);return Math.max((a[1]?a[1].length:0)-(a[2]?parseInt(a[2],10):0),0)<=n?e:t.error("number.precision",{limit:n,value:e})},convert:!0},sign:{method(e){return a(["negative","positive"].includes(e),"Invalid sign",e),this.$_addRule({name:"sign",args:{sign:e}})},validate:(e,t,{sign:n})=>"negative"===n&&e<0||"positive"===n&&e>0?e:t.error(`number.${n}`)},unsafe:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("unsafe",e)}}},cast:{string:{from:e=>"number"==typeof e,to:(e,t)=>e.toString()}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}}),i.extractSignificantDigits=function(e){return e.replace(i.exponentialPartRegex,"").replace(i.dotRegex,"").replace(i.trailingZerosRegex,"").replace(i.leadingSignAndZerosRegex,"")},i.normalizeDecimal=function(e){return(e=e.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2")).includes(".")&&e.endsWith("0")&&(e=e.replace(/0+$/,"")),"-0"===e?"0":e}},4840:(e,t,n)=>{const{assert:a}=n(3115),r=n(2888);e.exports=r.extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(e){return a(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:e}})},validate:(e,t,{n:n})=>e.length===n?e:t.error("function.arity",{n:n})},class:{method(){return this.$_addRule("class")},validate:(e,t)=>/^\s*class\s/.test(e.toString())?e:t.error("function.class",{value:e})},minArity:{method(e){return a(Number.isSafeInteger(e)&&e>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:e}})},validate:(e,t,{n:n})=>e.length>=n?e:t.error("function.minArity",{n:n})},maxArity:{method(e){return a(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:e}})},validate:(e,t,{n:n})=>e.length<=n?e:t.error("function.maxArity",{n:n})}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}})},4895:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tlds=void 0;const a=n(362);t.tlds=new Set(a.TLDS.map(e=>e.toLowerCase()))},4957:(e,t,n)=>{const{clone:a,reach:r}=n(3115),o=n(9415),i={value:Symbol("value")};e.exports=i.State=class{constructor(e,t,n){this.path=e,this.ancestors=t,this.mainstay=n.mainstay,this.schemas=n.schemas,this.debug=null}localize(e,t=null,n=null){const a=new i.State(e,t,this);return n&&a.schemas&&(a.schemas=[i.schemas(n),...a.schemas]),a}nest(e,t){const n=new i.State(this.path,this.ancestors,this);return n.schemas=n.schemas&&[i.schemas(e),...n.schemas],n.debug=t,n}shadow(e,t){this.mainstay.shadow=this.mainstay.shadow||new i.Shadow,this.mainstay.shadow.set(this.path,e,t)}snapshot(){this.mainstay.shadow&&(this._snapshot=a(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore()}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},i.schemas=function(e){return o.isSchema(e)?{schema:e}:e},i.Shadow=class{constructor(){this._values=null}set(e,t,n){if(!e.length)return;if("strip"===n&&"number"==typeof e[e.length-1])return;this._values=this._values||new Map;let a=this._values;for(let t=0;t<e.length;++t){const n=e[t];let r=a.get(n);r||(r=new Map,a.set(n,r)),a=r}a[i.value]=t}get(e){const t=this.node(e);if(t)return t[i.value]}node(e){if(this._values)return r(this._values,e,{iterables:!0})}override(e,t){if(!this._values)return;const n=e.slice(0,-1),a=e[e.length-1],o=r(this._values,n,{iterables:!0});t?o.set(a,t):o&&o.delete(a)}}},4972:(e,t,n)=>{const{assert:a,merge:r}=n(3115),o=n(680),i=n(9415),l=n(3541),s=n(8013),c=n(8529),d={};e.exports=o.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:c.toSibling}},args:(e,...t)=>1===t.length&&Array.isArray(t[0])?e.try(...t[0]):e.try(...t),validate(e,t){const{schema:n,error:a,state:o,prefs:i}=t;if(n._flags.match){const t=[],l=[];for(let a=0;a<n.$_terms.matches.length;++a){const r=n.$_terms.matches[a],s=o.nest(r.schema,`match.${a}`);s.snapshot();const c=r.schema.$_validate(e,s,i);c.errors?(l.push(c.errors),s.restore()):(t.push(c.value),s.commit())}if(0===t.length)return{errors:a("alternatives.any",{details:l.map(e=>s.details(e,{override:!1}))})};if("one"===n._flags.match)return 1===t.length?{value:t[0]}:{errors:a("alternatives.one")};if(t.length!==n.$_terms.matches.length)return{errors:a("alternatives.all",{details:l.map(e=>s.details(e,{override:!1}))})};const c=e=>e.$_terms.matches.some(e=>"object"===e.schema.type||"alternatives"===e.schema.type&&c(e.schema));return c(n)?{value:t.reduce((e,t)=>r(e,t,{mergeArrays:!1}))}:{value:t[t.length-1]}}const l=[];for(let t=0;t<n.$_terms.matches.length;++t){const a=n.$_terms.matches[t];if(a.schema){const n=o.nest(a.schema,`match.${t}`);n.snapshot();const r=a.schema.$_validate(e,n,i);if(!r.errors)return n.commit(),r;n.restore(),l.push({schema:a.schema,reports:r.errors});continue}const r=a.ref?a.ref.resolve(e,o,i):e,s=a.is?[a]:a.switch;for(let n=0;n<s.length;++n){const l=s[n],{is:c,then:d,otherwise:u}=l,f=`match.${t}${a.switch?"."+n:""}`;if(c.$_match(r,o.nest(c,`${f}.is`),i)){if(d)return d.$_validate(e,o.nest(d,`${f}.then`),i)}else if(u)return u.$_validate(e,o.nest(u,`${f}.otherwise`),i)}}return d.errors(l,t)},rules:{conditional:{method(e,t){a(!this._flags._endedSwitch,"Unreachable condition"),a(!this._flags.match,"Cannot combine match mode",this._flags.match,"with conditional rule"),a(void 0===t.break,"Cannot use break option with alternatives conditional");const n=this.clone(),r=l.when(n,e,t),o=r.is?[r]:r.switch;for(const e of o)if(e.then&&e.otherwise){n.$_setFlag("_endedSwitch",!0,{clone:!1});break}return n.$_terms.matches.push(r),n.$_mutateRebuild()}},match:{method(e){if(a(["any","one","all"].includes(e),"Invalid alternatives match mode",e),"any"!==e)for(const t of this.$_terms.matches)a(t.schema,"Cannot combine match mode",e,"with conditional rules");return this.$_setFlag("match",e)}},try:{method(...e){a(e.length,"Missing alternative schemas"),i.verifyFlat(e,"try"),a(!this._flags._endedSwitch,"Unreachable condition");const t=this.clone();for(const n of e)t.$_terms.matches.push({schema:t.$_compile(n)});return t.$_mutateRebuild()}}},overrides:{label(e){return this.$_parent("label",e).$_modify({each:(t,n)=>"is"!==n.path[0]&&"string"!=typeof t._flags.label?t.label(e):void 0,ref:!1})},isAsync(){var e;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;for(const e of this.$_terms.matches){var t,n,a;if(null!==(t=e.schema)&&void 0!==t&&t.isAsync())return!0;if(null!==(n=e.then)&&void 0!==n&&n.isAsync())return!0;if(null!==(a=e.otherwise)&&void 0!==a&&a.isAsync())return!0}return!1}},rebuild(e){e.$_modify({each:t=>{i.isSchema(t)&&"array"===t.type&&e.$_setFlag("_arrayItems",!0,{clone:!1})}})},manifest:{build(e,t){if(t.matches)for(const n of t.matches){const{schema:t,ref:a,is:r,not:o,then:i,otherwise:l}=n;e=t?e.try(t):a?e.conditional(a,{is:r,then:i,not:o,otherwise:l,switch:n.switch}):e.conditional(r,{then:i,otherwise:l})}return e}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}}),d.errors=function(e,{error:t,state:n}){if(!e.length)return{errors:t("alternatives.any")};if(1===e.length)return{errors:e[0].reports};const a=new Set,r=[];for(const{reports:o,schema:i}of e){if(o.length>1)return d.unmatched(e,t);const l=o[0];if(l instanceof s.Report==0)return d.unmatched(e,t);if(l.state.path.length!==n.path.length){r.push({type:i.type,report:l});continue}if("any.only"===l.code){for(const e of l.local.valids)a.add(e);continue}const[c,u]=l.code.split(".");"base"!==u?r.push({type:i.type,report:l}):"object.base"===l.code?a.add(l.local.type):a.add(c)}return r.length?1===r.length?{errors:r[0].report}:d.unmatched(e,t):{errors:t("alternatives.types",{types:[...a]})}},d.unmatched=function(e,t){const n=[];for(const t of e)n.push(...t.reports);return{errors:t("alternatives.match",s.details(n,{override:!1}))}}},5008:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o={};o.Map=class extends Map{slice(){return new o.Map(this)}},e.exports=r.extend({type:"symbol",terms:{map:{init:new o.Map}},coerce:{method(e,{schema:t,error:n}){const a=t.$_terms.map.get(e);return a&&(e=a),t._flags.only&&"symbol"!=typeof e?{value:e,errors:n("symbol.map",{map:t.$_terms.map})}:{value:e}}},validate(e,{error:t}){if("symbol"!=typeof e)return{value:e,errors:t("symbol.base")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&"object"==typeof e&&(e=Object.entries(e)),a(e&&e[Symbol.iterator],"Iterable must be an iterable or object");const t=this.clone(),n=[];for(const r of e){a(r&&r[Symbol.iterator],"Entry must be an iterable");const[e,o]=r;a("object"!=typeof e&&"function"!=typeof e&&"symbol"!=typeof e,"Key must not be of type object, function, or Symbol"),a("symbol"==typeof o,"Value must be a Symbol"),t.$_terms.map.set(e,o),n.push(o)}return t.valid(...n)}}},manifest:{build:(e,t)=>(t.map&&(e=e.map(t.map)),e)},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}})},5553:e=>{const t={};e.exports=t.flatten=function(e,n){const a=n||[];for(const n of e)Array.isArray(n)?t.flatten(n,a):a.push(n);return a}},5570:e=>{const t={};e.exports=function(e){return e?e.replace(/[<>&\u2028\u2029]/g,t.escape):""},t.escape=function(e){return t.replacements.get(e)},t.replacements=new Map([["<","\\u003c"],[">","\\u003e"],["&","\\u0026"],["\u2028","\\u2028"],["\u2029","\\u2029"]])},5844:(e,t,n)=>{const{assert:a}=n(3115),r=n(9415),o=n(8529),i={};t.Ids=i.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){const e=new i.Ids;return e._byId=new Map(this._byId),e._byKey=new Map(this._byKey),e._schemaChain=this._schemaChain,e}concat(e){e._schemaChain&&(this._schemaChain=!0);for(const[t,n]of e._byId.entries())a(!this._byKey.has(t),"Schema id conflicts with existing key:",t),this._byId.set(t,n);for(const[t,n]of e._byKey.entries())a(!this._byId.has(t),"Schema key conflicts with existing id:",t),this._byKey.set(t,n)}fork(e,t,n){const o=this._collect(e);o.push({schema:n});const l=o.shift();let s={id:l.id,schema:t(l.schema)};a(r.isSchema(s.schema),"adjuster function failed to return a joi schema type");for(const e of o)s={id:e.id,schema:i.fork(e.schema,s.id,s.schema)};return s.schema}labels(e,t=[]){const n=e[0],a=this._get(n);if(!a)return[...t,...e].join(".");const r=e.slice(1);return t=[...t,a.schema._flags.label||n],r.length?a.schema._ids.labels(r,t):t.join(".")}reach(e,t=[]){const n=e[0],r=this._get(n);a(r,"Schema does not contain path",[...t,...e].join("."));const o=e.slice(1);return o.length?r.schema._ids.reach(o,[...t,n]):r.schema}register(e,{key:t}={}){if(!e||!r.isSchema(e))return;(e.$_property("schemaChain")||e._ids._schemaChain)&&(this._schemaChain=!0);const n=e._flags.id;if(n){const t=this._byId.get(n);a(!t||t.schema===e,"Cannot add different schemas with the same id:",n),a(!this._byKey.has(n),"Schema id conflicts with existing key:",n),this._byId.set(n,{schema:e,id:n})}t&&(a(!this._byKey.has(t),"Schema already contains key:",t),a(!this._byId.has(t),"Schema key conflicts with existing id:",t),this._byKey.set(t,{schema:e,id:t}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(e,t=[],n=[]){const r=e[0],o=this._get(r);a(o,"Schema does not contain path",[...t,...e].join(".")),n=[o,...n];const i=e.slice(1);return i.length?o.schema._ids._collect(i,[...t,r],n):n}_get(e){return this._byId.get(e)||this._byKey.get(e)}},i.fork=function(e,n,a){const r=t.schema(e,{each:(e,{key:t})=>{if(n===(e._flags.id||t))return a},ref:!1});return r?r.$_mutateRebuild():e},t.schema=function(e,t){let n;for(const a in e._flags){if("_"===a[0])continue;const r=i.scan(e._flags[a],{source:"flags",name:a},t);void 0!==r&&(n=n||e.clone(),n._flags[a]=r)}for(let a=0;a<e._rules.length;++a){const r=e._rules[a],o=i.scan(r.args,{source:"rules",name:r.name},t);if(void 0!==o){n=n||e.clone();const t=Object.assign({},r);t.args=o,n._rules[a]=t,n._singleRules.get(r.name)===r&&n._singleRules.set(r.name,t)}}for(const a in e.$_terms){if("_"===a[0])continue;const r=i.scan(e.$_terms[a],{source:"terms",name:a},t);void 0!==r&&(n=n||e.clone(),n.$_terms[a]=r)}return n},i.scan=function(e,t,n,a,l){const s=a||[];if(null===e||"object"!=typeof e)return;let c;if(Array.isArray(e)){for(let a=0;a<e.length;++a){const r="terms"===t.source&&"keys"===t.name&&e[a].key,o=i.scan(e[a],t,n,[a,...s],r);void 0!==o&&(c=c||e.slice(),c[a]=o)}return c}if(!1!==n.schema&&r.isSchema(e)||!1!==n.ref&&o.isRef(e)){const a=n.each(e,{...t,path:s,key:l});if(a===e)return;return a}for(const a in e){if("_"===a[0])continue;const r=i.scan(e[a],t,n,[a,...s],l);void 0!==r&&(c=c||Object.assign({},e),c[a]=r)}return c}},6084:(e,t,n)=>{const a=n(8253),r=n(4126),o=n(9315),i=n(1528),l={};e.exports=function(e,t,n={}){if(a(e&&"object"==typeof e,"Invalid defaults value: must be an object"),a(!t||!0===t||"object"==typeof t,"Invalid source value: must be true, falsy or an object"),a("object"==typeof n,"Invalid options: must be an object"),!t)return null;if(n.shallow)return l.applyToDefaultsWithShallow(e,t,n);const i=r(e);if(!0===t)return i;const s=void 0!==n.nullOverride&&n.nullOverride;return o(i,t,{nullOverride:s,mergeArrays:!1})},l.applyToDefaultsWithShallow=function(e,t,n){const s=n.shallow;a(Array.isArray(s),"Invalid keys");const c=new Map,d=!0===t?null:new Set;for(let n of s){n=Array.isArray(n)?n:n.split(".");const a=i(e,n);a&&"object"==typeof a?c.set(a,d&&i(t,n)||a):d&&d.add(n)}const u=r(e,{},c);if(!d)return u;for(const e of d)l.reachCopy(u,t,e);const f=void 0!==n.nullOverride&&n.nullOverride;return o(u,t,{nullOverride:f,mergeArrays:!1})},l.reachCopy=function(e,t,n){for(const e of n){if(!(e in t))return;const n=t[e];if("object"!=typeof n||null===n)return;t=n}const a=t;let r=e;for(let e=0;e<n.length-1;++e){const t=n[e];"object"!=typeof r[t]&&(r[t]={}),r=r[t]}r[n[n.length-1]]=a}},6162:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(1532);t.compile=function(e,t){if("string"==typeof e)return a(!t,"Cannot set single message string"),new o(e);if(o.isTemplate(e))return a(!t,"Cannot set single message template"),e;a("object"==typeof e&&!Array.isArray(e),"Invalid message options"),t=t?r(t):{};for(let n in e){const r=e[n];if("root"===n||o.isTemplate(r)){t[n]=r;continue}if("string"==typeof r){t[n]=new o(r);continue}a("object"==typeof r&&!Array.isArray(r),"Invalid message for",n);const i=n;for(n in t[i]=t[i]||{},r){const e=r[n];"root"===n||o.isTemplate(e)?t[i][n]=e:(a("string"==typeof e,"Invalid message for",n,"in",i),t[i][n]=new o(e))}}return t},t.decompile=function(e){const t={};for(let n in e){const a=e[n];if("root"===n){t.root=a;continue}if(o.isTemplate(a)){t[n]=a.describe({compact:!0});continue}const r=n;for(n in t[r]={},a){const e=a[n];"root"!==n?t[r][n]=e.describe({compact:!0}):t[r].root=e}}return t},t.merge=function(e,n){if(!e)return t.compile(n);if(!n)return e;if("string"==typeof n)return new o(n);if(o.isTemplate(n))return n;const i=r(e);for(let e in n){const t=n[e];if("root"===e||o.isTemplate(t)){i[e]=t;continue}if("string"==typeof t){i[e]=new o(t);continue}a("object"==typeof t&&!Array.isArray(t),"Invalid message for",e);const r=e;for(e in i[r]=i[r]||{},t){const n=t[e];"root"===e||o.isTemplate(n)?i[r][e]=n:(a("string"==typeof n,"Invalid message for",e,"in",r),i[r][e]=new o(n))}}return i}},6186:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(6220),l={isBool:function(e){return"boolean"==typeof e}};e.exports=r.extend({type:"boolean",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:"values"},truthy:{init:null,manifest:"values"}},coerce(e,{schema:t}){if("boolean"!=typeof e){if("string"==typeof e){const n=t._flags.sensitive?e:e.toLowerCase();e="true"===n||"false"!==n&&e}return"boolean"!=typeof e&&(e=t.$_terms.truthy&&t.$_terms.truthy.has(e,null,null,!t._flags.sensitive)||(!t.$_terms.falsy||!t.$_terms.falsy.has(e,null,null,!t._flags.sensitive))&&e),{value:e}}},validate(e,{error:t}){if("boolean"!=typeof e)return{value:e,errors:t("boolean.base")}},rules:{truthy:{method(...e){o.verifyFlat(e,"truthy");const t=this.clone();t.$_terms.truthy=t.$_terms.truthy||new i;for(let n=0;n<e.length;++n){const r=e[n];a(void 0!==r,"Cannot call truthy with undefined"),t.$_terms.truthy.add(r)}return t}},falsy:{method(...e){o.verifyFlat(e,"falsy");const t=this.clone();t.$_terms.falsy=t.$_terms.falsy||new i;for(let n=0;n<e.length;++n){const r=e[n];a(void 0!==r,"Cannot call falsy with undefined"),t.$_terms.falsy.add(r)}return t}},sensitive:{method(e=!0){return this.$_setFlag("sensitive",e)}}},cast:{number:{from:l.isBool,to:(e,t)=>e?1:0},string:{from:l.isBool,to:(e,t)=>e?"true":"false"}},manifest:{build:(e,t)=>(t.truthy&&(e=e.truthy(...t.truthy)),t.falsy&&(e=e.falsy(...t.falsy)),e)},messages:{"boolean.base":"{{#label}} must be a boolean"}})},6220:(e,t,n)=>{const{assert:a,deepEqual:r}=n(3115),o=n(9415),i={};e.exports=i.Values=class{constructor(e,t){this._values=new Set(e),this._refs=new Set(t),this._lowercase=i.lowercases(e),this._override=!1}get length(){return this._values.size+this._refs.size}add(e,t){o.isResolvable(e)?this._refs.has(e)||(this._refs.add(e),t&&t.register(e)):this.has(e,null,null,!1)||(this._values.add(e),"string"==typeof e&&this._lowercase.set(e.toLowerCase(),e))}static merge(e,t,n){if(e=e||new i.Values,t){if(t._override)return t.clone();for(const n of[...t._values,...t._refs])e.add(n)}if(n)for(const t of[...n._values,...n._refs])e.remove(t);return e.length?e:null}remove(e){o.isResolvable(e)?this._refs.delete(e):(this._values.delete(e),"string"==typeof e&&this._lowercase.delete(e.toLowerCase()))}has(e,t,n,a){return!!this.get(e,t,n,a)}get(e,t,n,a){if(!this.length)return!1;if(this._values.has(e))return{value:e};if("string"==typeof e&&e&&a){const t=this._lowercase.get(e.toLowerCase());if(t)return{value:t}}if(!this._refs.size&&"object"!=typeof e)return!1;if("object"==typeof e)for(const t of this._values)if(r(t,e))return{value:t};if(t)for(const o of this._refs){const i=o.resolve(e,t,n,null,{in:!0});if(void 0===i)continue;const l=o.in&&"object"==typeof i?Array.isArray(i)?i:Object.keys(i):[i];for(const t of l)if(typeof t==typeof e)if(a&&e&&"string"==typeof e){if(t.toLowerCase()===e.toLowerCase())return{value:t,ref:o}}else if(r(t,e))return{value:t,ref:o}}return!1}override(){this._override=!0}values(e){if(e&&e.display){const e=[];for(const t of[...this._values,...this._refs])void 0!==t&&e.push(t);return e}return Array.from([...this._values,...this._refs])}clone(){const e=new i.Values(this._values,this._refs);return e._override=this._override,e}concat(e){a(!e._override,"Cannot concat override set of values");const t=new i.Values([...this._values,...e._values],[...this._refs,...e._refs]);return t._override=this._override,t}describe(){const e=[];this._override&&e.push({override:!0});for(const t of this._values.values())e.push(t&&"object"==typeof t?{value:t}:t);for(const t of this._refs.values())e.push(t.describe());return e}},i.Values.prototype[o.symbols.values]=!0,i.Values.prototype.slice=i.Values.prototype.clone,i.lowercases=function(e){const t=new Map;if(e)for(const n of e)"string"==typeof n&&t.set(n.toLowerCase(),n);return t}},6913:e=>{e.exports={version:"18.0.1"}},6984:()=>{},7125:(e,t,n)=>{const a=n(3738),r={mismatched:null};e.exports=function(e,t,n){return n=Object.assign({prototype:!0},n),!!r.isDeepEqual(e,t,n,[])},r.isDeepEqual=function(e,t,n,o){if(e===t)return 0!==e||1/e==1/t;const i=typeof e;if(i!==typeof t)return!1;if(null===e||null===t)return!1;if("function"===i){if(!n.deepFunction||e.toString()!==t.toString())return!1}else if("object"!==i)return e!=e&&t!=t;const l=r.getSharedType(e,t,!!n.prototype);switch(l){case a.buffer:return!1;case a.promise:return e===t;case a.regex:case a.url:return e.toString()===t.toString();case r.mismatched:return!1}for(let n=o.length-1;n>=0;--n)if(o[n].isSame(e,t))return!0;o.push(new r.SeenEntry(e,t));try{return!!r.isDeepEqualObj(l,e,t,n,o)}finally{o.pop()}},r.getSharedType=function(e,t,n){if(n)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?r.mismatched:a.getInternalProto(e);const o=a.getInternalProto(e);return o!==a.getInternalProto(t)?r.mismatched:o},r.valueOf=function(e){const t=e.valueOf;if(void 0===t)return e;try{return t.call(e)}catch(e){return e}},r.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)},r.isSetSimpleEqual=function(e,t){for(const n of Set.prototype.values.call(e))if(!Set.prototype.has.call(t,n))return!1;return!0},r.isDeepEqualObj=function(e,t,n,o,i){const{isDeepEqual:l,valueOf:s,hasOwnEnumerableProperty:c}=r,{keys:d,getOwnPropertySymbols:u}=Object;if(e===a.array){if(!o.part){if(t.length!==n.length)return!1;for(let e=0;e<t.length;++e)if(!l(t[e],n[e],o,i))return!1;return!0}for(const e of t)for(const t of n)if(l(e,t,o,i))return!0}else if(e===a.set){if(t.size!==n.size)return!1;if(!r.isSetSimpleEqual(t,n)){const e=new Set(Set.prototype.values.call(n));for(const n of Set.prototype.values.call(t)){if(e.delete(n))continue;let t=!1;for(const a of e)if(l(n,a,o,i)){e.delete(a),t=!0;break}if(!t)return!1}}}else if(e===a.map){if(t.size!==n.size)return!1;for(const[e,a]of Map.prototype.entries.call(t)){if(void 0===a&&!Map.prototype.has.call(n,e))return!1;if(!l(a,Map.prototype.get.call(n,e),o,i))return!1}}else if(e===a.error&&(t.name!==n.name||t.message!==n.message))return!1;const f=s(t),p=s(n);if((t!==f||n!==p)&&!l(f,p,o,i))return!1;const m=d(t);if(!o.part&&m.length!==d(n).length&&!o.skip)return!1;let h=0;for(const e of m)if(o.skip&&o.skip.includes(e))void 0===n[e]&&++h;else{if(!c(n,e))return!1;if(!l(t[e],n[e],o,i))return!1}if(!o.part&&m.length-h!==d(n).length)return!1;if(!1!==o.symbols){const e=u(t),a=new Set(u(n));for(const r of e){var v;if(null===(v=o.skip)||void 0===v||!v.includes(r))if(c(t,r)){if(!c(n,r))return!1;if(!l(t[r],n[r],o,i))return!1}else if(c(n,r))return!1;a.delete(r)}for(const e of a)if(c(n,e))return!1}return!0},r.SeenEntry=class{constructor(e,t){this.obj=e,this.ref=t}isSame(e,t){return this.obj===e&&this.ref===t}}},7487:(e,t,n)=>{const a=n(2888);e.exports=a.extend({type:"object",cast:{map:{from:e=>e&&"object"==typeof e,to:(e,t)=>new Map(Object.entries(e))}}})},7858:e=>{e.exports=function(e,t,n){if("bigint"==typeof e&&(e=Number(e)),e>=Number.MAX_SAFE_INTEGER&&(e=1/0),"number"!=typeof e&&void 0!==e)throw new TypeError("Timeout must be a number or bigint");return new Promise(a=>{const r=n?n.setTimeout:setTimeout,o=()=>{const n=Math.min(e,2147483647);e-=n,r(()=>e>0?o():a(t),n)};e!==1/0&&o()})}},8013:(e,t,n)=>{const a=n(554),r=n(9415),o=n(1532);t.Report=class{constructor(e,n,a,r,o,i,l){if(this.code=e,this.flags=r,this.messages=o,this.path=i.path,this.prefs=l,this.state=i,this.value=n,this.message=null,this.template=null,this.local=a||{},this.local.label=t.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty("value")||(this.local.value=this.value),this.path.length){const e=this.path[this.path.length-1];"object"!=typeof e&&(this.local.key=e)}}_setTemplate(e){if(this.template=e,!this.flags.label&&0===this.path.length){const e=this._template(this.template,"root");e&&(this.local.label=e)}}toString(){if(this.message)return this.message;const e=this.code;if(!this.prefs.errors.render)return this.code;const t=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===t?`Error code "${e}" is not defined, your custom type is missing the correct messages definition`:(this.message=t.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(e,n){return t.template(this.value,e,n||this.code,this.state,this.prefs)}},t.path=function(e){let t="";for(const n of e)"object"!=typeof n&&("string"==typeof n?(t&&(t+="."),t+=n):t+=`[${n}]`);return t},t.template=function(e,t,n,a,i){if(!t)return;if(o.isTemplate(t))return"root"!==n?t:null;let l=i.errors.language;if(r.isResolvable(l)&&(l=l.resolve(e,a,i)),l&&t[l]){if(void 0!==t[l][n])return t[l][n];if(void 0!==t[l]["*"])return t[l]["*"]}return t[n]?t[n]:t["*"]},t.label=function(e,n,a,r){if(!a.errors.label)return"";if(e.label)return e.label;let o=n.path;return"key"===a.errors.label&&n.path.length>1&&(o=n.path.slice(-1)),t.path(o)||t.template(null,a.messages,"root",n,a)||r&&t.template(null,r,"root",n,a)||"value"},t.process=function(e,n,a){if(!e)return null;const{override:r,message:o,details:i}=t.details(e);if(r)return r;if(a.errors.stack)return new t.ValidationError(o,i,n);const l=Error.stackTraceLimit;Error.stackTraceLimit=0;const s=new t.ValidationError(o,i,n);return Error.stackTraceLimit=l,s},t.details=function(e,t={}){let n=[];const a=[];for(const r of e){if(r instanceof Error){if(!1!==t.override)return{override:r};const e=r.toString();n.push(e),a.push({message:e,type:"override",context:{error:r}});continue}const e=r.toString();n.push(e),a.push({message:e,path:r.path.filter(e=>"object"!=typeof e),type:r.code,context:r.local})}return n.length>1&&(n=[...new Set(n)]),{message:n.join(". "),details:a}},t.ValidationError=class extends Error{constructor(e,t,n){super(e),this._original=n,this.details=t}static isError(e){return e instanceof t.ValidationError}},t.ValidationError.prototype.isJoi=!0,t.ValidationError.prototype.name="ValidationError",t.ValidationError.prototype.annotate=a.error},8121:e=>{const t={};e.exports=function(e){if(!e)return"";let n="";for(let a=0;a<e.length;++a){const r=e.charCodeAt(a);t.isSafe(r)?n+=e[a]:n+=t.escapeHtmlChar(r)}return n},t.escapeHtmlChar=function(e){return t.namedHtml.get(e)||(e>=256?"&#"+e+";":`&#x${e.toString(16).padStart(2,"0")};`)},t.isSafe=function(e){return t.safeCharCodes.has(e)},t.namedHtml=new Map([[38,"&"],[60,"<"],[62,">"],[34,"""],[160," "],[162,"¢"],[163,"£"],[164,"¤"],[169,"©"],[174,"®"]]),t.safeCharCodes=function(){const e=new Set;for(let t=32;t<123;++t)(t>=97||t>=65&&t<=90||t>=48&&t<=57||32===t||46===t||44===t||45===t||58===t||95===t)&&e.add(t);return e}()},8248:(e,t,n)=>{const{assert:a}=n(3115),r={};t.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(e,t){var n,r,o,i;const l=[].concat(null!==(n=(t=null!=t?t:{}).before)&&void 0!==n?n:[]),s=[].concat(null!==(r=t.after)&&void 0!==r?r:[]),c=null!==(o=t.group)&&void 0!==o?o:"?",d=null!==(i=t.sort)&&void 0!==i?i:0;a(!l.includes(c),`Item cannot come before itself: ${c}`),a(!l.includes("?"),"Item cannot come before unassociated items"),a(!s.includes(c),`Item cannot come after itself: ${c}`),a(!s.includes("?"),"Item cannot come after unassociated items"),Array.isArray(e)||(e=[e]);for(const t of e){const e={seq:this._items.length,sort:d,before:l,after:s,group:c,node:t};this._items.push(e)}if(!t.manual){const e=this._sort();a(e,"item","?"!==c?`added into group ${c}`:"","created a dependencies error")}return this.nodes}merge(e){Array.isArray(e)||(e=[e]);for(const t of e)if(t)for(const e of t._items)this._items.push(Object.assign({},e));this._items.sort(r.mergeSort);for(let e=0;e<this._items.length;++e)this._items[e].seq=e;const t=this._sort();return a(t,"merge created a dependencies error"),this.nodes}sort(){const e=this._sort();return a(e,"sort created a dependencies error"),this.nodes}_sort(){const e={},t=Object.create(null),n=Object.create(null);for(const o of this._items){var a;const i=o.seq,l=o.group;n[l]=null!==(a=n[l])&&void 0!==a?a:[],n[l].push(i),e[i]=o.before;for(const e of o.after){var r;t[e]=null!==(r=t[e])&&void 0!==r?r:[],t[e].push(i)}}for(const t in e){const a=[];for(const r in e[t]){var o;const i=e[t][r];n[i]=null!==(o=n[i])&&void 0!==o?o:[],a.push(...n[i])}e[t]=a}for(const a in t)if(n[a])for(const r of n[a])e[r].push(...t[a]);const i={};for(const t in e){const n=e[t];for(const e of n){var l;i[e]=null!==(l=i[e])&&void 0!==l?l:[],i[e].push(t)}}const s={},c=[];for(let e=0;e<this._items.length;++e){let t=e;if(i[e]){t=null;for(let e=0;e<this._items.length;++e){if(!0===s[e])continue;i[e]||(i[e]=[]);const n=i[e].length;let a=0;for(let t=0;t<n;++t)s[i[e][t]]&&++a;if(a===n){t=e;break}}}null!==t&&(s[t]=!0,c.push(t))}if(c.length!==this._items.length)return!1;const d={};for(const e of this._items)d[e.seq]=e;this._items=[],this.nodes=[];for(const e of c){const t=d[e];this.nodes.push(t.node),this._items.push(t)}return!0}},r.mergeSort=(e,t)=>e.sort===t.sort?0:e.sort<t.sort?-1:1},8253:(e,t,n)=>{const a=n(1803),r=n(8314),o=e.exports=function(e,...t){if(e)return;if(1===t.length&&t[0]instanceof Error)throw t[0];const n=t.filter(e=>""!==e).map(e=>"string"==typeof e?e:e instanceof Error?e.message:r(e));throw new a(n.join(" "),o)}},8314:e=>{e.exports=function(...e){try{return JSON.stringify(...e)}catch(e){return"[Cannot display object: "+e.message+"]"}}},8529:(e,t,n)=>{const{assert:a,clone:r,reach:o}=n(3115),i=n(9415);let l;const s={symbol:Symbol("ref"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:".",type:"value"}};t.create=function(e,t={}){a("string"==typeof e,"Invalid reference key:",e),i.assertOptions(t,["adjust","ancestor","in","iterables","map","prefix","render","separator"]),a(!t.prefix||"object"==typeof t.prefix,"options.prefix must be of type object");const n=Object.assign({},s.defaults,t);delete n.prefix;const r=n.separator,o=s.context(e,r,t.prefix);if(n.type=o.type,e=o.key,"value"===n.type)if(o.root&&(a(!r||e[0]!==r,"Cannot specify relative path with root prefix"),n.ancestor="root",e||(e=null)),r&&r===e)e=null,n.ancestor=0;else if(void 0!==n.ancestor)a(!r||!e||e[0]!==r,"Cannot combine prefix with ancestor option");else{const[t,a]=s.ancestor(e,r);a&&""===(e=e.slice(a))&&(e=null),n.ancestor=t}return n.path=r?null===e?[]:e.split(r):[e],new s.Ref(n)},t.in=function(e,n={}){return t.create(e,{...n,in:!0})},t.isRef=function(e){return!!e&&!!e[i.symbols.ref]},s.Ref=class{constructor(e){a("object"==typeof e,"Invalid reference construction"),i.assertOptions(e,["adjust","ancestor","in","iterables","map","path","render","separator","type","depth","key","root","display"]),a([!1,void 0].includes(e.separator)||"string"==typeof e.separator&&1===e.separator.length,"Invalid separator"),a(!e.adjust||"function"==typeof e.adjust,"options.adjust must be a function"),a(!e.map||Array.isArray(e.map),"options.map must be an array"),a(!e.map||!e.adjust,"Cannot set both map and adjust options"),Object.assign(this,s.defaults,e),a("value"===this.type||void 0===this.ancestor,"Non-value references cannot reference ancestors"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(e,t,n,r,o={}){return a(!this.in||o.in,"Invalid in() reference usage"),"global"===this.type?this._resolve(n.context,t,o):"local"===this.type?this._resolve(r,t,o):this.ancestor?"root"===this.ancestor?this._resolve(t.ancestors[t.ancestors.length-1],t,o):(a(this.ancestor<=t.ancestors.length,"Invalid reference exceeds the schema root:",this.display),this._resolve(t.ancestors[this.ancestor-1],t,o)):this._resolve(e,t,o)}_resolve(e,t,n){let a;if("value"===this.type&&t.mainstay.shadow&&!1!==n.shadow&&(a=t.mainstay.shadow.get(this.absolute(t))),void 0===a&&(a=o(e,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(a=this.adjust(a)),this.map){const e=this.map.get(a);void 0!==e&&(a=e)}return t.mainstay&&t.mainstay.tracer.resolve(t,this,a),a}toString(){return this.display}absolute(e){return[...e.path.slice(0,-this.ancestor),...this.path]}clone(){return new s.Ref(this)}describe(){const e={path:this.path};"value"!==this.type&&(e.type=this.type),"."!==this.separator&&(e.separator=this.separator),"value"===this.type&&1!==this.ancestor&&(e.ancestor=this.ancestor),this.map&&(e.map=[...this.map]);for(const t of["adjust","iterables","render"])null!==this[t]&&void 0!==this[t]&&(e[t]=this[t]);return!1!==this.in&&(e.in=!0),{ref:e}}updateDisplay(){const e=null!==this.key?this.key:"";if("value"!==this.type)return void(this.display=`ref:${this.type}:${e}`);if(!this.separator)return void(this.display=`ref:${e}`);if(!this.ancestor)return void(this.display=`ref:${this.separator}${e}`);if("root"===this.ancestor)return void(this.display=`ref:root:${e}`);if(1===this.ancestor)return void(this.display=`ref:${e||".."}`);const t=new Array(this.ancestor+1).fill(this.separator).join("");this.display=`ref:${t}${e||""}`}},s.Ref.prototype[i.symbols.ref]=!0,t.build=function(e){return"value"===(e=Object.assign({},s.defaults,e)).type&&void 0===e.ancestor&&(e.ancestor=1),new s.Ref(e)},s.context=function(e,t,n={}){if(e=e.trim(),n){const a=void 0===n.global?"$":n.global;if(a!==t&&e.startsWith(a))return{key:e.slice(a.length),type:"global"};const r=void 0===n.local?"#":n.local;if(r!==t&&e.startsWith(r))return{key:e.slice(r.length),type:"local"};const o=void 0===n.root?"/":n.root;if(o!==t&&e.startsWith(o))return{key:e.slice(o.length),type:"value",root:!0}}return{key:e,type:"value"}},s.ancestor=function(e,t){if(!t)return[1,0];if(e[0]!==t)return[1,0];if(e[1]!==t)return[0,1];let n=2;for(;e[n]===t;)++n;return[n-1,n]},t.toSibling=0,t.toParent=1,t.Manager=class{constructor(){this.refs=[]}register(e,a){if(e)if(a=void 0===a?t.toParent:a,Array.isArray(e))for(const t of e)this.register(t,a);else if(i.isSchema(e))for(const t of e._refs.refs)t.ancestor-a>=0&&this.refs.push({ancestor:t.ancestor-a,root:t.root});else t.isRef(e)&&"value"===e.type&&e.ancestor-a>=0&&this.refs.push({ancestor:e.ancestor-a,root:e.root}),l=l||n(1532),l.isTemplate(e)&&this.register(e.refs(),a)}get length(){return this.refs.length}clone(){const e=new t.Manager;return e.refs=r(this.refs),e}reset(){this.refs=[]}roots(){return this.refs.filter(e=>!e.ancestor).map(e=>e.root)}}},8663:()=>{},8669:e=>{e.exports=function(e){return e.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")}},8762:e=>{const t=Symbol("wrapped");e.exports=function(e){if(e[t])return e;let n=!1;const a=function(...t){n||(n=!0,e(...t))};return a[t]=!0,a}},9017:()=>{},9033:(e,t,n)=>{const{assert:a,escapeRegex:r}=n(3115),{isDomainValid:o,isEmailValid:i,ipRegex:l,uriRegex:s}=n(3305),c=n(4895),d=n(680),u=n(9415),f={tlds:c.tlds instanceof Set&&{tlds:{allow:c.tlds,deny:null}},base64Regex:{true:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/},false:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/}},dataUriRegex:/^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:l({cidr:"forbidden"}).regex,isoDurationRegex:/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,guidBrackets:{"{":"}","[":"]","(":")","":""},guidVersions:{uuidv1:"1",uuidv2:"2",uuidv3:"3",uuidv4:"4",uuidv5:"5",uuidv6:"6",uuidv7:"7",uuidv8:"8"},guidSeparators:new Set([void 0,!0,!1,"-",":"]),normalizationForms:["NFC","NFD","NFKC","NFKD"]};e.exports=d.extend({type:"string",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:"string",method(e,{schema:t,state:n,prefs:a}){const r=t.$_getRule("normalize");r&&(e=e.normalize(r.args.form));const o=t.$_getRule("case");o&&(e="upper"===o.args.direction?e.toLocaleUpperCase():e.toLocaleLowerCase());const i=t.$_getRule("trim");if(i&&i.args.enabled&&(e=e.trim()),t.$_terms.replacements)for(const n of t.$_terms.replacements)e=e.replace(n.pattern,n.replacement);const l=t.$_getRule("hex");if(l&&l.args.options.byteAligned&&e.length%2!=0&&(e=`0${e}`),t.$_getRule("isoDate")){const t=f.isoDate(e);t&&(e=t)}if(t._flags.truncate){const r=t.$_getRule("max");if(r){let o=r.args.limit;if(u.isResolvable(o)&&(o=o.resolve(e,n,a),!u.limit(o)))return{value:e,errors:t.$_createError("any.ref",o,{ref:r.args.limit,arg:"limit",reason:"must be a positive integer"},n,a)};e=e.slice(0,o)}}return{value:e}}},validate(e,{schema:t,error:n}){if("string"!=typeof e)return{value:e,errors:n("string.base")};if(""===e){const a=t.$_getRule("min");if(a&&0===a.args.limit)return;return{value:e,errors:n("string.empty")}}},rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate:(e,t)=>/^[a-zA-Z0-9]+$/.test(e)?e:t.error("string.alphanum")},base64:{method(e={}){return u.assertOptions(e,["paddingRequired","urlSafe"]),e={urlSafe:!1,paddingRequired:!0,...e},a("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),a("boolean"==typeof e.urlSafe,"urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:e}})},validate:(e,t,{options:n})=>f.base64Regex[n.paddingRequired][n.urlSafe].test(e)?e:t.error("string.base64")},case:{method(e){return a(["lower","upper"].includes(e),"Invalid case:",e),this.$_addRule({name:"case",args:{direction:e}})},validate:(e,t,{direction:n})=>"lower"===n&&e===e.toLocaleLowerCase()||"upper"===n&&e===e.toLocaleUpperCase()?e:t.error(`string.${n}case`),convert:!0},creditCard:{method(){return this.$_addRule("creditCard")},validate(e,t){let n=e.length,a=0,r=1;for(;n--;){const t=e.charAt(n)*r;a+=t-9*(t>9),r^=3}return a>0&&a%10==0?e:t.error("string.creditCard")}},dataUri:{method(e={}){return u.assertOptions(e,["paddingRequired"]),e={paddingRequired:!0,...e},a("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:e}})},validate(e,t,{options:n}){const a=e.match(f.dataUriRegex);if(a){if(!a[2])return e;if("base64"!==a[2])return e;if(f.base64Regex[n.paddingRequired].false.test(a[3]))return e}return t.error("string.dataUri")}},domain:{method(e){e&&u.assertOptions(e,["allowFullyQualified","allowUnicode","allowUnderscore","maxDomainSegments","minDomainSegments","tlds"]);const t=f.addressOptions(e);return this.$_addRule({name:"domain",args:{options:e},address:t})},validate:(e,t,n,{address:a})=>o(e,a)?e:t.error("string.domain")},email:{method(e={}){u.assertOptions(e,["allowFullyQualified","allowUnicode","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),a(void 0===e.multiple||"boolean"==typeof e.multiple,"multiple option must be an boolean");const t=f.addressOptions(e),n=new RegExp(`\\s*[${e.separator?r(e.separator):","}]\\s*`);return this.$_addRule({name:"email",args:{options:e},regex:n,address:t})},validate(e,t,{options:n},{regex:a,address:r}){const o=n.multiple?e.split(a):[e],l=[];for(const e of o)i(e,r)||l.push(e);return l.length?t.error("string.email",{value:e,invalids:l}):e}},guid:{alias:"uuid",method(e={}){u.assertOptions(e,["version","separator","wrapper"]),a(void 0===e.wrapper||"boolean"==typeof e.wrapper||"string"==typeof e.wrapper&&"string"==typeof f.guidBrackets[e.wrapper],`"wrapper" must be true, false, or one of "${Object.keys(f.guidBrackets).filter(Boolean).join('", "')}"`);let t="";if(e.version){const n=[].concat(e.version);a(n.length>=1,"version must have at least 1 valid version specified");const r=new Set;for(let e=0;e<n.length;++e){const o=n[e];a("string"==typeof o,"version at position "+e+" must be a string");const i=f.guidVersions[o.toLowerCase()];a(i,"version at position "+e+" must be one of "+Object.keys(f.guidVersions).join(", ")),a(!r.has(i),"version at position "+e+" must not be a duplicate"),t+=i,r.add(i)}}a(f.guidSeparators.has(e.separator),'separator must be one of true, false, "-", or ":"');const n=void 0===e.separator?"[:-]?":!0===e.separator?"[:-]":!1===e.separator?"[]?":`\\${e.separator}`;let o,i;void 0===e.wrapper?(o="[\\[{\\(]?",i="[\\]}\\)]?"):!0===e.wrapper?(o="[\\[{\\(]",i="[\\]}\\)]"):!1===e.wrapper?(o="",i=""):(o=r(e.wrapper),i=r(f.guidBrackets[e.wrapper]));const l=new RegExp(`^(${o})[0-9A-F]{8}(${n})[0-9A-F]{4}\\2?[${t||"0-9A-F"}][0-9A-F]{3}\\2?[${t?"89AB":"0-9A-F"}][0-9A-F]{3}\\2?[0-9A-F]{12}(${i})$`,"i");return this.$_addRule({name:"guid",args:{options:e},regex:l})},validate(e,t,n,{regex:a}){const r=a.exec(e);if(!r)return t.error("string.guid");const o=r[1],i=r[r.length-1];return(o||i)&&f.guidBrackets[o]!==i?t.error("string.guid"):e}},hex:{method(e={}){return u.assertOptions(e,["byteAligned","prefix"]),e={byteAligned:!1,prefix:!1,...e},a("boolean"==typeof e.byteAligned,"byteAligned must be boolean"),a("boolean"==typeof e.prefix||"optional"===e.prefix,'prefix must be boolean or "optional"'),this.$_addRule({name:"hex",args:{options:e}})},validate:(e,t,{options:n})=>("optional"===n.prefix?f.hexRegex.withOptionalPrefix:!0===n.prefix?f.hexRegex.withPrefix:f.hexRegex.withoutPrefix).test(e)?n.byteAligned&&e.length%2!=0?t.error("string.hexAlign"):e:t.error("string.hex")},hostname:{method(){return this.$_addRule("hostname")},validate:(e,t)=>o(e,{minDomainSegments:1})||f.ipRegex.test(e)?e:t.error("string.hostname")},insensitive:{method(){return this.$_setFlag("insensitive",!0)}},ip:{method(e={}){u.assertOptions(e,["cidr","version"]);const{cidr:t,versions:n,regex:a}=l(e),r=e.version?n:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:t,version:r}},regex:a})},validate:(e,t,{options:n},{regex:a})=>a.test(e)?e:n.version?t.error("string.ipVersion",{value:e,cidr:n.cidr,version:n.version}):t.error("string.ip",{value:e,cidr:n.cidr})},isoDate:{method(){return this.$_addRule("isoDate")},validate:(e,{error:t})=>f.isoDate(e)?e:t("string.isoDate")},isoDuration:{method(){return this.$_addRule("isoDuration")},validate:(e,t)=>f.isoDurationRegex.test(e)?e:t.error("string.isoDuration")},length:{method(e,t){return f.length(this,"length",e,"=",t)},validate(e,t,{limit:n,encoding:a},{name:r,operator:o,args:i}){const l=!a&&e.length;return u.compare(l,n,o)?e:t.error("string."+r,{limit:i.limit,value:e,encoding:a})},args:[{name:"limit",ref:!0,assert:u.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(e,t){return f.length(this,"max",e,"<=",t)},args:["limit","encoding"]},min:{method(e,t){return f.length(this,"min",e,">=",t)},args:["limit","encoding"]},normalize:{method(e="NFC"){return a(f.normalizationForms.includes(e),"normalization form must be one of "+f.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:e}})},validate:(e,{error:t},{form:n})=>e===e.normalize(n)?e:t("string.normalize",{value:e,form:n}),convert:!0},pattern:{alias:"regex",method(e,t={}){a(e instanceof RegExp,"regex must be a RegExp"),a(!e.flags.includes("g")&&!e.flags.includes("y"),"regex should not use global or sticky mode"),"string"==typeof t&&(t={name:t}),u.assertOptions(t,["invert","name"]);const n=["string.pattern",t.invert?".invert":"",t.name?".name":".base"].join("");return this.$_addRule({name:"pattern",args:{regex:e,options:t},errorCode:n})},validate:(e,t,{regex:n,options:a},{errorCode:r})=>n.test(e)^a.invert?e:t.error(r,{name:a.name,regex:n,value:e}),args:["regex","options"],multi:!0},replace:{method(e,t){"string"==typeof e&&(e=new RegExp(r(e),"g")),a(e instanceof RegExp,"pattern must be a RegExp"),a("string"==typeof t,"replacement must be a String");const n=this.clone();return n.$_terms.replacements||(n.$_terms.replacements=[]),n.$_terms.replacements.push({pattern:e,replacement:t}),n}},token:{method(){return this.$_addRule("token")},validate:(e,t)=>/^\w+$/.test(e)?e:t.error("string.token")},trim:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:e}})},validate:(e,t,{enabled:n})=>n&&e!==e.trim()?t.error("string.trim"):e,convert:!0},truncate:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("truncate",e)}},uppercase:{method(){return this.case("upper")}},uri:{method(e={}){u.assertOptions(e,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme","encodeUri"]),e.domain&&u.assertOptions(e.domain,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const{regex:t,scheme:n}=s(e),a=e.domain?f.addressOptions(e.domain):null;return this.$_addRule({name:"uri",args:{options:e},regex:t,domain:a,scheme:n})},validate(e,t,{options:n},{regex:a,domain:r,scheme:i}){if(["http:/","https:/"].includes(e))return t.error("string.uri");let l=a.exec(e);if(!l&&t.prefs.convert&&n.encodeUri){const t=encodeURI(e);l=a.exec(t),l&&(e=t)}if(l){const a=l[1]||l[2];return!r||n.allowRelative&&!a||o(a,r)?e:t.error("string.domain",{value:a})}return n.relativeOnly?t.error("string.uriRelativeOnly"):n.scheme?t.error("string.uriCustomScheme",{scheme:i,value:e}):t.error("string.uri")}}},manifest:{build(e,t){if(t.replacements)for(const{pattern:n,replacement:a}of t.replacements)e=e.replace(n,a);return e}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}}),f.addressOptions=function(e){if(!e)return f.tlds||e;if(a(void 0===e.minDomainSegments||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,"minDomainSegments must be a positive integer"),a(void 0===e.maxDomainSegments||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),!1===e.tlds)return e;if(!0===e.tlds||void 0===e.tlds)return a(f.tlds,"Built-in TLD list disabled"),Object.assign({},e,f.tlds);a("object"==typeof e.tlds,"tlds must be true, false, or an object");const t=e.tlds.deny;if(t)return Array.isArray(t)&&(e=Object.assign({},e,{tlds:{deny:new Set(t)}})),a(e.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),a(!e.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),f.validateTlds(e.tlds.deny,"tlds.deny"),e;const n=e.tlds.allow;return n?!0===n?(a(f.tlds,"Built-in TLD list disabled"),Object.assign({},e,f.tlds)):(Array.isArray(n)&&(e=Object.assign({},e,{tlds:{allow:new Set(n)}})),a(e.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),f.validateTlds(e.tlds.allow,"tlds.allow"),e):{...e,tlds:!1}},f.validateTlds=function(e,t){for(const n of e)a(o(n,{minDomainSegments:1,maxDomainSegments:1}),`${t} must contain valid top level domain names`)},f.isoDate=function(e){if(!u.isIsoDate(e))return null;/.*T.*[+-]\d\d$/.test(e)&&(e+="00");const t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()},f.length=function(e,t,n,r,o){return a(!o||!1,"Invalid encoding:",o),e.$_addRule({name:t,method:"length",args:{limit:n,encoding:o},operator:r})}},9145:e=>{const t={};e.exports=t.Bench=class{constructor(){this.ts=0,this.reset()}reset(){this.ts=t.Bench.now()}elapsed(){return t.Bench.now()-this.ts}static now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}}},9241:(e,t,n)=>{const a=n(8253);e.exports=function(e){return a(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(e),"Bad attribute value ("+e+")"),e.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')}},9315:(e,t,n)=>{const a=n(8253),r=n(4126),o=n(86),i={};e.exports=i.merge=function(e,t,n){if(a(e&&"object"==typeof e,"Invalid target value: must be an object"),a(null==t||"object"==typeof t,"Invalid source value: must be null, undefined, or an object"),!t)return e;if(n=Object.assign({nullOverride:!0,mergeArrays:!0},n),Array.isArray(t)){a(Array.isArray(e),"Cannot merge array onto an object"),n.mergeArrays||(e.length=0);for(let a=0;a<t.length;++a)e.push(r(t[a],{symbols:n.symbols}));return e}const l=o.keys(t,n);for(let a=0;a<l.length;++a){const o=l[a];if("__proto__"===o||!Object.prototype.propertyIsEnumerable.call(t,o))continue;const s=t[o];if(s&&"object"==typeof s){if(e[o]===s)continue;!e[o]||"object"!=typeof e[o]||Array.isArray(e[o])!==Array.isArray(s)||s instanceof Date||s instanceof RegExp?e[o]=r(s,{symbols:n.symbols}):i.merge(e[o],s,n)}else(null!=s||n.nullOverride)&&(e[o]=s)}return e}},9415:(e,t,n)=>{const{assert:a,AssertError:r}=n(3115),o=n(6913);let i,l;const s={isoDate:/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/};t.version=o.version,t.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:"iso",errors:{escapeHtml:!1,label:"path",language:null,render:!0,stack:!1,wrap:{label:'"',array:"[]"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:"optional",skipFunctions:!1,stripUnknown:!1,warnings:!1},t.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")},t.assertOptions=function(e,t,n="Options"){a(e&&"object"==typeof e&&!Array.isArray(e),"Options must be of type object");const r=Object.keys(e).filter(e=>!t.includes(e));a(0===r.length,`${n} contain unknown keys: ${r}`)},t.checkPreferences=function(e){l=l||n(1688);const t=l.preferences.validate(e);if(t.error)throw new r([t.error.details[0].message])},t.compare=function(e,t,n){switch(n){case"=":return e===t;case">":return e>t;case"<":return e<t;case">=":return e>=t;case"<=":return e<=t}},t.default=function(e,t){return void 0===e?t:e},t.isIsoDate=function(e){return s.isoDate.test(e)},t.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},t.isResolvable=function(e){return!!e&&(e[t.symbols.ref]||e[t.symbols.template])},t.isSchema=function(e,n={}){const r=e&&e[t.symbols.any];return!!r&&(a(n.legacy||r.version===t.version,"Cannot mix different versions of joi schemas"),!0)},t.isValues=function(e){return e[t.symbols.values]},t.limit=function(e){return Number.isSafeInteger(e)&&e>=0},t.preferences=function(e,a){i=i||n(6162),e=e||{},a=a||{};const r=Object.assign({},e,a);return a.errors&&e.errors&&(r.errors=Object.assign({},e.errors,a.errors),r.errors.wrap=Object.assign({},e.errors.wrap,a.errors.wrap)),a.messages&&(r.messages=i.compile(a.messages,e.messages)),delete r[t.symbols.prefs],r},t.tryWithPath=function(e,t,n={}){try{return e()}catch(e){throw void 0!==e.path?e.path=t+"."+e.path:e.path=t,n.append&&(e.message=`${e.message} (${e.path})`),e}},t.validateArg=function(e,n,{assert:a,message:r}){if(t.isSchema(a)){const t=a.validate(e);if(!t.error)return;return t.error.message}if(!a(e))return n?`${n} ${r}`:r},t.verifyFlat=function(e,t){for(const n of e)a(!Array.isArray(n),"Method no longer accepts array arguments:",t)}},9556:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(3541),l=n(8013),s={};e.exports=r.extend({type:"link",properties:{schemaChain:!0},terms:{link:{init:null,manifest:"single",register:!1}},args:(e,t)=>e.ref(t),validate(e,{schema:t,state:n,prefs:r}){a(t.$_terms.link,"Uninitialized link schema");const o=s.generate(t,e,n,r),i=t.$_terms.link[0].ref;return o.$_validate(e,n.nest(o,`link:${i.display}:${o.type}`),r)},generate:(e,t,n,a)=>s.generate(e,t,n,a),rules:{ref:{method(e){a(!this.$_terms.link,"Cannot reinitialize schema"),e=i.ref(e),a("value"===e.type||"local"===e.type,"Invalid reference type:",e.type),a("local"===e.type||"root"===e.ancestor||e.ancestor>0,"Link cannot reference itself");const t=this.clone();return t.$_terms.link=[{ref:e}],t}},relative:{method(e=!0){return this.$_setFlag("relative",e)}}},overrides:{concat(e){a(this.$_terms.link,"Uninitialized link schema"),a(o.isSchema(e),"Invalid schema object"),a("link"!==e.type,"Cannot merge type link with another link");const t=this.clone();return t.$_terms.whens||(t.$_terms.whens=[]),t.$_terms.whens.push({concat:e}),t.$_mutateRebuild()}},manifest:{build:(e,t)=>(a(t.link,"Invalid link description missing link"),e.ref(t.link))}}),s.generate=function(e,t,n,a){let r=n.mainstay.links.get(e);if(r)return r._generate(t,n,a).schema;const o=e.$_terms.link[0].ref,{perspective:i,path:l}=s.perspective(o,n);s.assert(i,"which is outside of schema boundaries",o,e,n,a);try{r=l.length?i.$_reach(l):i}catch{s.assert(!1,"to non-existing schema",o,e,n,a)}return s.assert("link"!==r.type,"which is another link",o,e,n,a),e._flags.relative||n.mainstay.links.set(e,r),r._generate(t,n,a).schema},s.perspective=function(e,t){if("local"===e.type){for(const{schema:n,key:a}of t.schemas){if((n._flags.id||a)===e.path[0])return{perspective:n,path:e.path.slice(1)};if(n.$_terms.shared)for(const t of n.$_terms.shared)if(t._flags.id===e.path[0])return{perspective:t,path:e.path.slice(1)}}return{perspective:null,path:null}}return"root"===e.ancestor?{perspective:t.schemas[t.schemas.length-1].schema,path:e.path}:{perspective:t.schemas[e.ancestor]&&t.schemas[e.ancestor].schema,path:e.path}},s.assert=function(e,t,n,r,o,i){e||a(!1,`"${l.label(r._flags,o,i)}" contains link reference "${n.display}" ${t}`)}},9725:e=>{e.exports=function(){}}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}return n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(1100)})())}(To)),To.exports),Do=Io(jo),Mo={defaults:{collection:null,hidden:!1,singleton:!1,icon:null,note:null,translations:null,display_template:null,accountability:"all"},data:[{collection:"directus_access",icon:"admin_panel_settings",note:"$t:directus_collection.directus_access",display_template:"{{ policy.name }}",sort_field:"sort"},{collection:"directus_activity",note:"$t:directus_collection.directus_activity",accountability:null},{collection:"directus_collections",icon:"database",note:"$t:directus_collection.directus_collections"},{collection:"directus_comments",note:"$t:directus_collection.directus_comments"},{collection:"directus_fields",icon:"input",note:"$t:directus_collection.directus_fields"},{collection:"directus_files",icon:"folder",note:"$t:directus_collection.directus_files",display_template:"{{ $thumbnail }} {{ title }}"},{collection:"directus_folders",note:"$t:directus_collection.directus_folders",display_template:"{{ name }}"},{collection:"directus_migrations",note:"$t:directus_collection.directus_migrations"},{collection:"directus_permissions",icon:"admin_panel_settings",note:"$t:directus_collection.directus_permissions"},{collection:"directus_policies",icon:"admin_panel_settings",note:"$t:directus_collection.directus_policies"},{collection:"directus_presets",icon:"bookmark",note:"$t:directus_collection.directus_presets",accountability:null},{collection:"directus_relations",icon:"merge_type",note:"$t:directus_collection.directus_relations"},{collection:"directus_revisions",note:"$t:directus_collection.directus_revisions",accountability:null},{collection:"directus_roles",icon:"supervised_user_circle",note:"$t:directus_collection.directus_roles"},{collection:"directus_sessions",note:"$t:directus_collection.directus_sessions"},{collection:"directus_settings",singleton:!0,note:"$t:directus_collection.directus_settings"},{collection:"directus_users",archive_field:"status",archive_value:"archived",unarchive_value:"draft",icon:"people_alt",note:"$t:directus_collection.directus_users",display_template:"{{ first_name }} {{ last_name }}"},{collection:"directus_dashboards",note:"$t:directus_collection.directus_dashboards"},{collection:"directus_panels",note:"$t:directus_collection.directus_panels"},{collection:"directus_notifications",note:"$t:directus_collection.directus_notifications"},{collection:"directus_shares",icon:"share",note:"$t:directus_collection.directus_shares"},{collection:"directus_flows",note:"$t:directus_collection.directus_flows"},{collection:"directus_operations",note:"$t:directus_collection.directus_operations"},{collection:"directus_translations",note:"$t:directus_collection.directus_translations"},{collection:"directus_versions",note:"$t:directus_collection.directus_versions"},{collection:"directus_extensions",note:"$t:directus_collection.directus_extensions"},{collection:"directus_deployments",icon:"cloud_upload",note:"$t:directus_collection.directus_deployments"},{collection:"directus_deployment_projects",note:"$t:directus_collection.directus_deployment_projects"},{collection:"directus_deployment_runs",note:"$t:directus_collection.directus_deployment_runs"}]};Mo.data.map(e=>({...Mo.defaults,...e,system:!0}));const Lo=Mo.data.map(e=>e.collection);var Fo={defaults:{many_collection:"directus_users",many_field:null,one_collection:null,one_field:null,one_allowed_collections:null,one_collection_field:null,one_deselect_action:"nullify",junction_field:null,sort_field:null},data:[{many_collection:"directus_collections",many_field:"group",one_collection:"directus_collections"},{many_collection:"directus_comments",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_comments",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_comments",many_field:"user_updated",one_collection:"directus_users"},{many_collection:"directus_users",many_field:"role",one_collection:"directus_roles",one_field:"users"},{many_collection:"directus_users",many_field:"avatar",one_collection:"directus_files"},{many_collection:"directus_revisions",many_field:"activity",one_collection:"directus_activity",one_field:"revisions"},{many_collection:"directus_revisions",many_field:"parent",one_collection:"directus_revisions"},{many_collection:"directus_revisions",many_field:"version",one_collection:"directus_versions"},{many_collection:"directus_presets",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_presets",many_field:"role",one_collection:"directus_roles"},{many_collection:"directus_folders",many_field:"parent",one_collection:"directus_folders"},{many_collection:"directus_files",many_field:"folder",one_collection:"directus_folders"},{many_collection:"directus_files",many_field:"uploaded_by",one_collection:"directus_users"},{many_collection:"directus_files",many_field:"modified_by",one_collection:"directus_users"},{many_collection:"directus_fields",many_field:"collection",one_collection:"directus_collections",one_field:"fields"},{many_collection:"directus_fields",many_field:"group",one_collection:"directus_fields"},{many_collection:"directus_activity",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_settings",many_field:"project_logo",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_foreground",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_background",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_favicon",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"storage_default_folder",one_collection:"directus_folders"},{many_collection:"directus_settings",many_field:"public_registration_role",one_collection:"directus_roles"},{many_collection:"directus_panels",many_field:"dashboard",one_collection:"directus_dashboards",one_field:"panels"},{many_collection:"directus_panels",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_flows",many_field:"operation",one_collection:"directus_operations"},{many_collection:"directus_flows",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_operations",many_field:"flow",one_collection:"directus_flows",one_field:"operations",one_deselect_action:"delete"},{many_collection:"directus_operations",many_field:"resolve",one_collection:"directus_operations"},{many_collection:"directus_operations",many_field:"reject",one_collection:"directus_operations"},{many_collection:"directus_operations",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_sessions",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_sessions",many_field:"share",one_collection:"directus_shares"},{many_collection:"directus_dashboards",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_notifications",many_field:"recipient",one_collection:"directus_users"},{many_collection:"directus_notifications",many_field:"sender",one_collection:"directus_users"},{many_collection:"directus_shares",many_field:"role",one_collection:"directus_roles"},{many_collection:"directus_shares",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_shares",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_versions",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_versions",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_versions",many_field:"user_updated",one_collection:"directus_users"},{many_collection:"directus_permissions",many_field:"policy",one_collection:"directus_policies",one_field:"permissions",one_deselect_action:"delete"},{many_collection:"directus_access",many_field:"policy",one_collection:"directus_policies",one_field:"roles",one_deselect_action:"delete",junction_field:"role"},{many_collection:"directus_access",many_field:"policy",one_collection:"directus_policies",one_field:"users",one_deselect_action:"delete",junction_field:"user"},{many_collection:"directus_access",many_field:"role",one_collection:"directus_roles",one_field:"policies",one_deselect_action:"delete",junction_field:"policy",sort_field:"sort"},{many_collection:"directus_access",many_field:"user",one_collection:"directus_users",one_field:"policies",one_deselect_action:"delete",junction_field:"policy",sort_field:"sort"},{many_collection:"directus_roles",many_field:"parent",one_collection:"directus_roles",one_field:"children"},{many_collection:"directus_deployment_projects",many_field:"deployment",one_collection:"directus_deployments",one_field:"projects",one_deselect_action:"delete"},{many_collection:"directus_deployments",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_deployment_projects",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_deployment_runs",many_field:"project",one_collection:"directus_deployment_projects",one_field:"runs",one_deselect_action:"delete"},{many_collection:"directus_deployment_runs",many_field:"user_created",one_collection:"directus_users"}]};Fo.data.map(e=>({...Fo.defaults,...e,system:!0}));var Po={collection:null,field:null,special:null,interface:null,options:null,display:null,display_options:null,readonly:!1,hidden:!1,sort:null,width:"full",group:null,translations:null,note:null,conditions:null,required:!1,searchable:!0},Uo={table:"directus_activity",fields:[{field:"id",width:"half"},{field:"item",width:"half"},{field:"action",display:"labels",display_options:{choices:[{text:"$t:field_options.directus_activity.create",value:"create",foreground:"var(--theme--primary)",background:"var(--theme--primary-subdued)"},{text:"$t:field_options.directus_activity.update",value:"update",foreground:"var(--blue)",background:"var(--blue-25)"},{text:"$t:field_options.directus_activity.delete",value:"delete",foreground:"var(--theme--danger)",background:"var(--danger-25)"},{text:"$t:field_options.directus_activity.login",value:"login",foreground:"var(--purple)",background:"var(--purple-25)"}]},width:"half"},{field:"collection",display:"collection",display_options:{icon:!0},width:"half"},{field:"timestamp",display:"datetime",special:["date-created","cast-timestamp"],options:{relative:!0},width:"half"},{field:"user",display:"user",width:"half"},{field:"user_agent",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"origin",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"ip",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"revisions",interface:"list-o2m",special:["o2m"],options:{fields:["collection","item"]},width:"half"}],indexed:[{field:"timestamp"}]},Bo={table:"directus_collections",fields:[{field:"collection_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"box",title:"$t:field_options.directus_collections.collection_setup"},width:"full"},{field:"collection",interface:"input",options:{font:"monospace"},readonly:!0,width:"half"},{field:"note",interface:"input",options:{placeholder:"$t:field_options.directus_collections.note_placeholder"},width:"half"},{field:"icon",interface:"select-icon",options:null,width:"half"},{field:"color",interface:"select-color",options:{placeholder:"$t:interfaces.select-color.placeholder"},width:"half"},{field:"display_template",interface:"system-display-template",options:{collectionField:"collection"},width:"full"},{field:"hidden",special:["cast-boolean"],interface:"boolean",options:{label:"$t:field_options.directus_collections.hidden_label"},width:"half"},{field:"singleton",special:["cast-boolean"],interface:"boolean",options:{label:"$t:singleton_label"},width:"half"},{field:"translations",special:["cast-json"],interface:"list",note:"$t:field_options.directus_collections.collection_naming_translations_note",options:{template:"{{ translation }} ({{ language }})",fields:[{field:"language",name:"$t:language",type:"string",schema:{default_value:"en-US"},meta:{interface:"system-language",width:"half",required:!0}},{field:"translation",name:"$t:field_options.directus_collections.collection_name",type:"string",meta:{interface:"input",width:"half",required:!0,options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}},{field:"singular",name:"$t:field_options.directus_collections.singular_unit",type:"string",meta:{interface:"input",width:"half",options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}},{field:"plural",name:"$t:field_options.directus_collections.plural_unit",type:"string",meta:{interface:"input",width:"half",options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}}]},width:"full"},{field:"content_translations_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"translate",title:"$t:field_options.directus_collections.content_translations_divider"},width:"full"},{field:"translations_enable_helper",special:["alias","no-data"],interface:"system-collections-translations",width:"full"},{field:"preview_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"preview",title:"$t:field_options.directus_collections.preview_divider"},width:"full"},{field:"preview_url",interface:"system-display-template",options:{collectionField:"collection",injectVersionField:!0},width:"full"},{field:"content_versioning_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"published_with_changes",title:"$t:field_options.directus_collections.content_versioning_divider"},width:"full"},{field:"versioning",interface:"boolean",special:["cast-boolean"],options:{label:"$t:field_options.directus_collections.enable_versioning"},width:"half"},{field:"archive_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"archive",title:"$t:field_options.directus_collections.archive_divider"},width:"full"},{field:"archive_field",interface:"system-field",options:{collectionField:"collection",allowNone:!0,placeholder:"$t:field_options.directus_collections.archive_field_placeholder"},width:"half"},{field:"archive_app_filter",interface:"boolean",special:["cast-boolean"],options:{label:"$t:field_options.directus_collections.archive_app_filter"},width:"half"},{field:"archive_value",interface:"input",options:{font:"monospace",iconRight:"archive",placeholder:"$t:field_options.directus_collections.archive_value"},width:"half"},{field:"unarchive_value",interface:"input",options:{font:"monospace",iconRight:"unarchive",placeholder:"$t:field_options.directus_collections.unarchive_value"},width:"half"},{field:"sort_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"sort",title:"$t:field_options.directus_collections.sort_divider"},width:"full"},{field:"sort_field",interface:"system-field",options:{collectionField:"collection",placeholder:"$t:field_options.directus_collections.sort_field",typeAllowList:["float","decimal","integer"],allowNone:!0,allowPrimaryKey:!1,allowForeignKeys:!1},width:"half"},{field:"accountability_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"admin_panel_settings",title:"$t:field_options.directus_collections.accountability_divider"},width:"full"},{field:"accountability",interface:"select-dropdown",options:{choices:[{text:"$t:field_options.directus_collections.track_activity_revisions",value:"all"},{text:"$t:field_options.directus_collections.only_track_activity",value:"activity"},{text:"$t:field_options.directus_collections.do_not_track_anything",value:null}]},width:"half"},{field:"duplication_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"content_copy",title:"$t:field_options.directus_collections.duplication_divider"}},{field:"item_duplication_fields",special:["cast-json"],interface:"system-field-tree",options:{collectionField:"collection"}},{field:"sort",hidden:!0},{field:"group",hidden:!0},{field:"collapse",hidden:!0}]},Vo={table:"directus_comments",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"collection"},{field:"item"},{field:"comment"},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"date_updated",special:["date-updated","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"user_updated",special:["user-updated"]}]},zo={table:"directus_dashboards",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"panels",special:["o2m"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"note"},{field:"color"}]},Go={table:"directus_deployment_projects",fields:[{field:"id",special:["uuid"]},{field:"deployment"},{field:"external_id"},{field:"name"},{field:"url"},{field:"framework"},{field:"deployable",special:["cast-boolean"]},{field:"runs",special:["o2m"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Ko={table:"directus_deployment_runs",fields:[{field:"id",special:["uuid"]},{field:"project"},{field:"external_id"},{field:"target"},{field:"status"},{field:"url"},{field:"started_at",special:["cast-timestamp"]},{field:"completed_at",special:["cast-timestamp"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Ho={table:"directus_deployments",fields:[{field:"id",special:["uuid"]},{field:"provider"},{field:"credentials",special:["encrypt"]},{field:"options",special:["cast-json"]},{field:"projects",special:["o2m"]},{field:"webhook_ids",special:["cast-json"]},{field:"last_synced_at",special:["cast-timestamp"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Xo={table:"directus_extensions",fields:[{collection:"directus_extensions",field:"id",special:["uuid"]},{collection:"directus_extensions",field:"folder"},{collection:"directus_extensions",field:"source"},{collection:"directus_extensions",field:"bundle"},{collection:"directus_extensions",field:"enabled",special:["cast-boolean"]}]},qo={table:"directus_fields",fields:[{collection:"directus_fields",field:"id",width:"half"},{collection:"directus_fields",field:"collection",width:"half"},{collection:"directus_fields",field:"field",width:"half"},{collection:"directus_fields",field:"special",hidden:!0,special:["cast-csv"],width:"half"},{collection:"directus_fields",field:"interface",width:"half"},{collection:"directus_fields",field:"options",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"display",width:"half"},{collection:"directus_fields",field:"display_options",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"readonly",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"hidden",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"required",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"searchable",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"sort",width:"half"},{collection:"directus_fields",field:"width",width:"half"},{collection:"directus_fields",field:"group",width:"half"},{collection:"directus_fields",field:"translations",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"note",width:"half"},{collection:"directus_fields",field:"conditions",hidden:!0,special:["cast-json"]},{collection:"directus_fields",field:"validation",hidden:!0,special:["cast-json"]},{collection:"directus_fields",field:"validation_message",hidden:!0}]},Wo={table:"directus_files",fields:[{field:"id",hidden:!0,interface:"input",special:["uuid"]},{field:"title",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_files.title"},width:"full"},{field:"description",interface:"input-multiline",width:"full",options:{placeholder:"$t:field_options.directus_files.description"}},{field:"tags",interface:"tags",options:{iconRight:"local_offer"},special:["cast-json"],width:"full",display:"labels",display_options:{choices:null,format:!1}},{field:"location",interface:"input",options:{iconRight:"place",placeholder:"$t:field_options.directus_files.location"},width:"half"},{field:"storage",interface:"input",options:{iconRight:"storage"},width:"half",readonly:!0},{field:"focal_point_divider",interface:"presentation-divider",options:{icon:"image_search",title:"$t:field_options.directus_files.focal_point_divider"},special:["alias","no-data"],width:"full"},{field:"focal_point_x",width:"half"},{field:"focal_point_y",width:"half"},{field:"storage_divider",interface:"presentation-divider",options:{icon:"insert_drive_file",title:"$t:field_options.directus_files.storage_divider"},special:["alias","no-data"],width:"full"},{field:"filename_disk",interface:"input",options:{iconRight:"publish",placeholder:"$t:field_options.directus_files.filename_disk"},readonly:!0,width:"half"},{field:"filename_download",interface:"input",options:{iconRight:"get_app",placeholder:"$t:field_options.directus_files.filename_download"},width:"half"},{field:"metadata",hidden:!0,special:["cast-json"]},{field:"type",display:"mime-type",readonly:!0},{field:"filesize",display:"filesize",readonly:!0},{field:"created_on",interface:"datetime",display:"datetime",width:"half",special:["date-created"],readonly:!0},{field:"modified_by",interface:"select-dropdown-m2o",special:["user-updated"],width:"half",display:"user",readonly:!0,options:{template:"{{avatar.$thumbnail}} {{first_name}} {{last_name}}"}},{field:"modified_on",interface:"datetime",special:["date-created","date-updated"],width:"half",display:"datetime",readonly:!0},{field:"embed",width:"half",hidden:!0},{field:"uploaded_by",display:"user",width:"half",hidden:!0,special:["user-created"]},{field:"uploaded_on",display:"datetime",width:"half",hidden:!0},{field:"folder",width:"half",readonly:!0,special:["m2o"],display:"related-values",display_options:{template:"{{ name }}"}},{field:"width",width:"half",readonly:!0},{field:"height",width:"half",readonly:!0},{field:"charset",width:"half",readonly:!0},{field:"duration",width:"half",readonly:!0},{field:"tus_id",width:"half",hidden:!0},{field:"tus_data",width:"half",hidden:!0,special:["cast-json"]}]},Yo={table:"directus_flows",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"color"},{field:"description"},{field:"status"},{field:"trigger"},{field:"accountability"},{field:"options",special:["cast-json"]},{field:"operation"},{field:"operations",special:["o2m"]},{field:"date_created",special:["date-created"]},{field:"user_created",special:["user-created"]}]},Jo={table:"directus_folders",fields:[{field:"id",interface:"input",special:["uuid"],width:"half"},{field:"parent",width:"half"},{field:"name",width:"full"}]},Qo={table:"directus_migrations",fields:[{collection:"directus_migrations",field:"version"},{collection:"directus_migrations",field:"name"},{collection:"directus_migrations",field:"timestamp"}]},Zo={table:"directus_notifications",fields:[{field:"id"},{field:"timestamp",special:["date-created","cast-timestamp"]},{field:"status"},{field:"recipient"},{field:"sender"},{field:"subject"},{field:"message"},{field:"collection"},{field:"item"}]},ei={table:"directus_operations",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"key"},{field:"type"},{field:"position_x"},{field:"position_y"},{field:"options",special:["cast-json"]},{field:"resolve"},{field:"reject"},{field:"flow"},{field:"date_created",special:["date-created"]},{field:"user_created",special:["user-created"]}]},ti={table:"directus_panels",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"color"},{field:"note"},{field:"type"},{field:"show_header",special:["cast-boolean"]},{field:"position_x"},{field:"position_y"},{field:"width"},{field:"height"},{field:"options",special:["cast-json"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"dashboard"}]},ni={table:"directus_permissions",fields:[{field:"permissions",hidden:!0,special:["cast-json"],width:"half"},{field:"presets",hidden:!0,special:["cast-json"],width:"half"},{field:"policy",hidden:!0,interface:"select-dropdown-m2o",width:"half",special:["m2o"]},{field:"collection",width:"half"},{field:"id",width:"half"},{field:"fields",width:"half",special:["cast-csv"]},{field:"action",width:"half"},{field:"validation",width:"half",special:["cast-json"]}]},ai={table:"directus_policies",fields:[{field:"id",hidden:!0,special:["uuid"]},{field:"name",required:!0,width:"half",display:"formatted-value",display_options:{translate:!0}},{field:"icon",interface:"select-icon",display:"icon",width:"half"},{field:"description",interface:"input",options:{placeholder:"$t:field_options.directus_policies.description"},width:"full",display:"formatted-value",display_options:{translate:!0}},{field:"permissions",interface:"system-permissions",special:["o2m"]},{field:"app_access",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"admin_access",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"ip_access",interface:"tags",options:{placeholder:"$t:field_options.directus_policies.ip_access"},special:["cast-csv"],width:"full"},{field:"enforce_tfa",note:"$t:field_options.directus_policies.enforce_tfa",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"assigned_to_divider",interface:"presentation-divider",options:{title:"$t:field_options.directus_policies.assigned_to"},special:["alias","no-data"],width:"full"},{field:"users",interface:"list-m2m",options:{template:"{{ user.first_name }} {{ user.last_name }}",junctionFilter:{user:{_nnull:!0}}},special:["m2m"]},{field:"roles",interface:"list-m2m",options:{template:"{{ role.name }}",junctionFilter:{role:{_nnull:!0}}},special:["m2m"]}]},ri={table:"directus_presets",fields:[{field:"filter",hidden:!0,special:["cast-json"]},{field:"layout_query",hidden:!0,special:["cast-json"]},{field:"layout_options",hidden:!0,special:["cast-json"]},{field:"role",width:"half",special:["m2o"],display:"related-values",display_options:{template:"{{ name }}"}},{field:"user",width:"half",special:["m2o"],display:"related-values",display_options:{template:"{{ email }}"}},{field:"id",width:"half"},{field:"bookmark",width:"half"},{field:"icon",width:"half",display:"icon"},{field:"color",width:"half",display:"color"},{field:"search",width:"half"},{field:"collection",width:"half"},{field:"layout",width:"half"},{field:"refresh_interval"}]},oi={table:"directus_relations",fields:[{field:"id",width:"half"},{field:"many_collection",width:"half"},{field:"many_field",width:"half"},{field:"one_collection",width:"half"},{field:"one_field",width:"half"},{field:"one_collection_field",width:"half"},{field:"one_allowed_collections",special:["cast-csv"],width:"half"},{field:"junction_field",width:"half"},{field:"sort_field",width:"half"},{field:"one_deselect_action",width:"half"}]},ii={table:"directus_revisions",fields:[{field:"id",width:"half"},{field:"activity",width:"half"},{field:"collection",width:"half"},{field:"item",width:"half"},{field:"data",hidden:!0,special:["cast-json"]},{field:"delta",hidden:!0,special:["cast-json"]},{field:"parent",width:"half"},{field:"version",width:"half"}],indexed:[{field:"parent"},{field:"activity"}]},li={table:"directus_roles",fields:[{field:"id",hidden:!0,interface:"input",special:["uuid"]},{field:"name",required:!0,interface:"input",options:{placeholder:"$t:field_options.directus_roles.name"},width:"half",display:"formatted-value",display_options:{translate:!0}},{field:"icon",interface:"select-icon",display:"icon",width:"half"},{field:"description",interface:"input",options:{placeholder:"$t:field_options.directus_roles.description"},width:"full",display:"formatted-value",display_options:{translate:!0}},{field:"parent",interface:"select-dropdown-m2o",note:"$t:field_options.directus_roles.parent_note",options:{template:"{{ name }}",filter:{id:{_neq:"{{ id }}"}}},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"children",hidden:!0,interface:"list-o2m-tree-view",note:"$t:field_options.directus_roles.children_note",special:["o2m"],options:{displayTemplate:"{{ name }}",enableCreate:!1,fields:["name"],filter:{id:{_neq:"{{ id }}"}}},display:"related-values",display_options:{template:"{{ name }}"},width:"full"},{field:"policies",interface:"list-m2m",options:{layout:"list"},display:"related-values",special:["m2m"],width:"full"},{field:"users_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"users_divider",interface:"presentation-divider",options:{icon:"people_alt",title:"$t:users"},special:["alias","no-data"],width:"full",group:"users_group"},{field:"users",interface:"list-o2m",special:["o2m"],options:{fields:["first_name","last_name"]},width:"full",group:"users_group"}]},si={table:"directus_sessions",fields:[{field:"token",width:"half"},{field:"user",width:"half"},{field:"expires",width:"half"},{field:"ip",width:"half"},{field:"user_agent",width:"half"},{field:"origin",width:"half"},{field:"share",width:"half"},{field:"next_token",width:"half"}]},ci={table:"directus_settings",fields:[{field:"id",hidden:!0},{field:"project_name",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_settings.project_name_placeholder"},width:"half"},{field:"project_descriptor",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_settings.project_name_placeholder"},width:"half"},{field:"project_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com"},width:"half"},{field:"default_language",interface:"system-language",options:{iconRight:"language",placeholder:"en-US"},width:"half"},{field:"project_owner",interface:"system-owner",width:"half"},{field:"project_usage",hidden:!0},{field:"org_name",hidden:!0},{field:"product_updates",hidden:!0,special:["cast-boolean"]},{field:"project_status",hidden:!0},{field:"modules_divider",interface:"presentation-divider",options:{icon:"menu_open",title:"$t:modules"},special:["alias","no-data"],width:"full"},{field:"module_bar",interface:"system-modules",special:["cast-json"]},{field:"visual_editor_divider",interface:"presentation-divider",options:{icon:"edit_square",title:"$t:visual_editor"},special:["alias","no-data"],width:"full"},{field:"visual_editor_urls",interface:"list",special:["cast-json"],options:{template:"{{url}}",fields:[{field:"url",name:"$t:url",schema:{is_nullable:!1},meta:{interface:"system-display-template",required:!0,options:{placeholder:"https://example.com/?version={{$version}}",fields:[{field:"$version",name:"$t:version",collection:"",key:"$version",path:"$version",type:"string"}]}}}]}},{field:"security_divider",interface:"presentation-divider",options:{icon:"shield",title:"$t:security"},special:["alias","no-data"],width:"full"},{field:"auth_password_policy",interface:"select-dropdown",options:{choices:[{value:null,text:"$t:field_options.directus_settings.auth_password_policy.none_text"},{value:"/^.{8,}$/",text:"$t:field_options.directus_settings.auth_password_policy.weak_text"},{value:"/(?=^.{8,}$)(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{';'?>.<,])(?!.*\\s).*$/",text:"$t:field_options.directus_settings.auth_password_policy.strong_text"}],allowOther:!0},width:"half"},{field:"auth_login_attempts",interface:"input",options:{iconRight:"lock",placeholder:"$t:unlimited"},width:"half"},{field:"public_registration_divider",interface:"presentation-divider",options:{icon:"person_add",title:"$t:fields.directus_settings.public_registration"},special:["alias","no-data"],width:"full"},{field:"public_registration",interface:"boolean",note:"$t:fields.directus_settings.public_registration_note",width:"half",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"public_registration_role",interface:"select-dropdown-m2o",note:"$t:fields.directus_settings.public_registration_role_note",options:{template:"{{ name }}"},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"public_registration_verify_email",interface:"boolean",note:"$t:fields.directus_settings.public_registration_verify_email_note",width:"half",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"public_registration_email_filter",interface:"system-filter",note:"$t:fields.directus_settings.public_registration_email_filter_note",options:{collectionName:"directus_users",collectionField:"email",fieldName:"email"},special:["cast-json"],width:"half"},{field:"files_divider",interface:"presentation-divider",options:{icon:"folder",title:"$t:fields.directus_settings.files_and_thumbnails"},special:["alias","no-data"],width:"full"},{field:"storage_asset_transform",interface:"select-dropdown",options:{choices:[{value:"all",text:"$t:fields.directus_settings.transformations_all"},{value:"none",text:"$t:fields.directus_settings.transformations_none"},{value:"presets",text:"$t:fields.directus_settings.transformations_presets"}]},width:"half"},{field:"storage_default_folder",interface:"system-folder",width:"half",note:"$t:interfaces.system-folder.field_hint"},{field:"storage_asset_presets",interface:"list",options:{fields:[{field:"key",name:"$t:key",type:"string",schema:{is_nullable:!1},meta:{interface:"input",options:{slug:!0,onlyOnCreate:!1},width:"full",required:!0}},{field:"fit",name:"$t:field_options.directus_settings.storage_asset_presets.fit_label",type:"string",schema:{is_nullable:!1},meta:{interface:"select-dropdown",options:{choices:[{value:"contain",text:"$t:field_options.directus_settings.storage_asset_presets.fit.contain_text"},{value:"cover",text:"$t:field_options.directus_settings.storage_asset_presets.fit.cover_text"},{value:"inside",text:"$t:field_options.directus_settings.storage_asset_presets.fit.fit_text"},{value:"outside",text:"$t:field_options.directus_settings.storage_asset_presets.fit.outside_text"}]},width:"half"}},{field:"width",name:"$t:width",type:"integer",schema:{is_nullable:!1},meta:{interface:"input",width:"half"}},{field:"height",name:"$t:height",type:"integer",schema:{is_nullable:!1},meta:{interface:"input",width:"half"}},{field:"quality",type:"integer",name:"$t:quality",schema:{default_value:80,is_nullable:!1},meta:{interface:"slider",options:{max:100,min:0,step:1},width:"half"}},{field:"withoutEnlargement",name:"$t:field_options.directus_settings.storage_asset_presets.upscaling",type:"boolean",schema:{default_value:!1},meta:{interface:"boolean",width:"half",options:{label:"$t:no_upscale"}}},{field:"format",name:"$t:format",type:"string",schema:{is_nullable:!1,default_value:""},meta:{interface:"select-dropdown",options:{allowNone:!0,choices:[{value:"auto",text:"Auto"},{value:"jpeg",text:"JPEG"},{value:"png",text:"PNG"},{value:"webp",text:"WebP"},{value:"tiff",text:"Tiff"},{value:"avif",text:"AVIF"}]},width:"half"}},{field:"transforms",name:"$t:field_options.directus_settings.additional_transforms",type:"json",schema:{is_nullable:!1,default_value:[]},meta:{note:"$t:field_options.directus_settings.transforms_note",interface:"json",options:{template:'[\n ["blur", 45],\n ["grayscale"],\n ["extend", { "right": 500, "background": "rgb(255, 0, 0)" }]\n]\n',placeholder:'[\n ["blur", 45],\n ["grayscale"],\n ["extend", { "right": 500, "background": "rgb(255, 0, 0)" }]\n]\n'},width:"full"}}],template:"{{key}}"},special:["cast-json"],width:"full"},{field:"reporting_divider",interface:"presentation-divider",options:{icon:"feedback",title:"$t:fields.directus_settings.reporting"},special:["alias","no-data"],width:"full"},{field:"report_feature_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com/feature"},width:"half"},{field:"report_bug_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com/bug"},width:"half"},{field:"report_error_url",interface:"system-display-template",options:{placeholder:"https://example.com/error",fields:[{name:"Error",field:"error",key:"error",path:"error",children:[{name:"Name",field:"name",key:"error.name",path:"error.name"},{name:"Message",field:"message",key:"error.message",path:"error.message"}]},{name:"Navigator",field:"navigator",key:"navigator",path:"navigator",children:[{name:"Language",field:"language",key:"navigator.language",path:"navigator.language"},{name:"User Agent",field:"userAgent",key:"navigator.userAgent",path:"navigator.userAgent"}]},{name:"Route",field:"route",key:"route",path:"route",children:[{name:"Full Path",field:"fullPath",key:"route.fullPath",path:"route.fullPath"},{name:"Hash",field:"hash",key:"route.hash",path:"route.hash"},{name:"Name",field:"name",key:"route.name",path:"route.name"},{name:"Path",field:"path",key:"route.path",path:"route.path"},{name:"Query",field:"query",key:"route.query",path:"route.query"}]},{name:"User",field:"user",key:"user",path:"user",children:[{name:"ID",field:"id",key:"user.id",path:"user.id"},{name:"First Name",field:"first_name",key:"user.first_name",path:"user.first_name"},{name:"Last Name",field:"last_name",key:"user.last_name",path:"user.last_name"},{name:"Status",field:"status",key:"user.status",path:"user.status"},{name:"Title",field:"title",key:"user.title",path:"user.title"},{name:"Description",field:"description",key:"user.description",path:"user.description"},{name:"Location",field:"location",key:"user.location",path:"user.location"}]},{name:"Role",field:"role",key:"role",path:"role",children:[{name:"ID",field:"id",key:"role.id",path:"role.id"},{name:"Name",field:"name",key:"role.name",path:"role.name"}]}]},width:"full"},{field:"collaborative_editing_divider",interface:"presentation-divider",options:{icon:"podcasts",title:"$t:fields.directus_settings.collaborative_editing"},special:["alias","no-data"],width:"full"},{field:"collaborative_editing_enabled",interface:"boolean",width:"half",note:"$t:fields.directus_settings.collaborative_editing_note",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"map_divider",interface:"presentation-divider",options:{icon:"map",title:"$t:fields.directus_settings.mapping"},special:["alias","no-data"],width:"full"},{field:"mapbox_key",interface:"input",options:{icon:"key",title:"$t:field_options.directus_settings.mapbox_key",placeholder:"$t:field_options.directus_settings.mapbox_placeholder",iconLeft:"vpn_key",font:"monospace"},width:"full"},{field:"basemaps",interface:"list",special:["cast-json"],options:{template:"{{name}}",fields:[{field:"name",name:"$t:name",schema:{is_nullable:!1},meta:{interface:"text-input",required:!0,options:{placeholder:"$t:field_options.directus_settings.basemaps_name_placeholder"}}},{field:"type",name:"$t:type",meta:{interface:"select-dropdown",options:{choices:[{value:"raster",text:"$t:field_options.directus_settings.basemaps_raster"},{value:"tile",text:"$t:field_options.directus_settings.basemaps_tile"},{value:"style",text:"$t:field_options.directus_settings.basemaps_style"}]}}},{field:"url",name:"$t:url",schema:{is_nullable:!1},meta:{interface:"text-input",options:{placeholder:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"}}},{field:"tileSize",name:"$t:tile_size",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",options:{placeholder:"512"},conditions:[{name:"typeNeqRaster",rule:{type:{_neq:"raster"}},hidden:!0}]}},{field:"attribution",name:"$t:fields.directus_settings.attribution",type:"string",schema:{is_nullable:!0},meta:{interface:"input",options:{placeholder:"$t:fields.directus_settings.attribution_placeholder"}}}]}},{field:"image_editor",interface:"presentation-divider",options:{icon:"image",title:"$t:fields.directus_settings.image_editor"},special:["alias","no-data"],width:"full"},{field:"custom_aspect_ratios",interface:"list",special:["cast-json"],options:{template:"{{text}}",fields:[{field:"text",name:"$t:text",type:"string",meta:{interface:"text-input",width:"half",required:!0,options:{placeholder:"$t:text"}}},{field:"value",name:"$t:value",type:"float",meta:{interface:"input",width:"half",required:!0,options:{placeholder:"$t:value"}}}]}},{field:"project_id",hidden:!0},{field:"theming_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"branding_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:fields.directus_settings.branding"},special:["alias","no-data"],width:"full",group:"theming_group"},{field:"project_color",interface:"select-color",note:"$t:field_options.directus_settings.project_color_note",width:"half",group:"theming_group"},{field:"project_logo",interface:"file",note:"$t:field_options.directus_settings.project_logo_note",width:"half",group:"theming_group"},{field:"public_foreground",interface:"file",width:"half",group:"theming_group"},{field:"public_background",interface:"file",width:"half",group:"theming_group"},{field:"public_favicon",interface:"file",note:"$t:field_options.directus_settings.project_favicon_note",width:"half",group:"theming_group"},{field:"public_note",interface:"input",options:{placeholder:"$t:field_options.directus_settings.public_note_placeholder",iconRight:"info"},width:"half",group:"theming_group"},{field:"theming_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:fields.directus_settings.theming"},special:["alias","no-data"],width:"full",group:"theming_group"},{field:"default_appearance",interface:"select-dropdown",width:"half",options:{choices:[{value:"auto",text:"$t:appearance_auto"},{value:"light",text:"$t:appearance_light"},{value:"dark",text:"$t:appearance_dark"}]},group:"theming_group"},{field:"default_theme_light",width:"full",interface:"system-theme",options:{appearance:"light"},group:"theming_group"},{field:"theme_light_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"light"},group:"theming_group",special:["cast-json"]},{field:"default_theme_dark",width:"full",interface:"system-theme",options:{appearance:"dark"},group:"theming_group"},{field:"theme_dark_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"dark"},group:"theming_group",special:["cast-json"]},{field:"custom_css",interface:"input-code",options:{language:"css",lineNumber:!0,template:"#app, #main-content, body {\n --v-button-background-color: #6644FF !important;\n --v-button-background-color-hover: #5E41EC !important;\n}\n"},width:"full",group:"theming_group"},{field:"ai_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"ai_divider",interface:"presentation-divider",options:{icon:"chat",title:"$t:ai_assistant"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_notice",interface:"presentation-notice",options:{icon:"info",text:"$t:fields.directus_settings.ai_notice"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_openai_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_openai_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"GPT-4o Mini",value:"gpt-4o-mini"},{text:"GPT-4.1 Nano",value:"gpt-4.1-nano"},{text:"GPT-4.1 Mini",value:"gpt-4.1-mini"},{text:"GPT-4.1",value:"gpt-4.1"},{text:"GPT-5 Nano",value:"gpt-5-nano"},{text:"GPT-5 Mini",value:"gpt-5-mini"},{text:"GPT-5",value:"gpt-5"},{text:"GPT-5.2",value:"gpt-5.2"},{text:"GPT-5.2 Chat",value:"gpt-5.2-chat-latest"},{text:"GPT-5.2 Pro",value:"gpt-5.2-pro"},{text:"GPT-5.4",value:"gpt-5.4"},{text:"GPT-5.4 Pro",value:"gpt-5.4-pro"}]},width:"half",group:"ai_group"},{field:"ai_anthropic_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_anthropic_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"Claude Haiku 4.5",value:"claude-haiku-4-5"},{text:"Claude Sonnet 4.5",value:"claude-sonnet-4-5"},{text:"Claude Opus 4.5",value:"claude-opus-4-5"},{text:"Claude Sonnet 4.6",value:"claude-sonnet-4-6"},{text:"Claude Opus 4.6",value:"claude-opus-4-6"}]},width:"half",group:"ai_group"},{field:"ai_google_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_google_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{text:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{text:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{text:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{text:"Gemini 3.1 Pro Preview",value:"gemini-3.1-pro-preview"},{text:"Gemini 3.1 Flash Lite Preview",value:"gemini-3.1-flash-lite-preview"},{text:"Gemini 2.5 Flash Lite",value:"gemini-2.5-flash-lite"}]},width:"half",group:"ai_group"},{field:"ai_system_prompt",interface:"input-rich-text-md",group:"ai_group",width:"full",note:"$t:fields.directus_settings.ai_system_prompt_note",options:{label:"$t:fields.directus_settings.ai_system_prompt"}},{field:"ai_openai_compatible_divider",interface:"presentation-divider",options:{inlineTitle:!0,color:"var(--theme--foreground-subdued)",title:"$t:fields.directus_settings.ai_openai_compatible"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_openai_compatible_name",interface:"input",options:{placeholder:"LM Studio, Ollama, etc."},width:"half",group:"ai_group"},{field:"ai_openai_compatible_base_url",interface:"input",options:{placeholder:"http://localhost:1234/v1"},width:"half",group:"ai_group"},{field:"ai_openai_compatible_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_openai_compatible_headers",interface:"list",special:["cast-json"],options:{template:"{{header}}",fields:[{field:"header",name:"$t:fields.directus_settings.ai_header_name",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"X-Custom-Header"}}},{field:"value",name:"$t:value",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"header-value"}}}]},width:"half",group:"ai_group"},{field:"ai_openai_compatible_models",interface:"list",special:["cast-json"],options:{template:"{{name}}",fields:[{field:"id",name:"$t:fields.directus_settings.ai_model_id",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"llama3.2"}}},{field:"name",name:"$t:name",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"Llama 3.2"}}},{field:"context",name:"$t:fields.directus_settings.ai_context_limit",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",width:"half",options:{placeholder:"128000"}}},{field:"output",name:"$t:fields.directus_settings.ai_output_limit",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",width:"half",options:{placeholder:"16000"}}},{field:"attachment",name:"$t:fields.directus_settings.ai_supports_attachments",type:"boolean",schema:{is_nullable:!0,default_value:!1},meta:{interface:"boolean",width:"half"}},{field:"reasoning",name:"$t:fields.directus_settings.ai_supports_reasoning",type:"boolean",schema:{is_nullable:!0,default_value:!1},meta:{interface:"boolean",width:"half"}},{field:"providerOptions",name:"$t:fields.directus_settings.ai_provider_options",type:"json",schema:{is_nullable:!0},meta:{interface:"input-code",width:"full",options:{language:"json",placeholder:'{ "customOption": "value" }'},note:"$t:fields.directus_settings.ai_provider_options_note"}}]},width:"full",group:"ai_group"},{field:"mcp_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"mcp_divider",interface:"presentation-divider",options:{icon:"automation",title:"$t:model_context_protocol"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_notice",interface:"presentation-notice",options:{icon:"info",text:"$t:fields.directus_settings.mcp_notice"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_enabled",interface:"boolean",group:"mcp_group",special:["cast-boolean"],note:"$t:fields.directus_settings.mcp_enabled_note",width:"half",options:{label:"$t:enabled"}},{field:"mcp_allow_deletes",interface:"boolean",group:"mcp_group",special:["cast-boolean"],note:"$t:fields.directus_settings.mcp_allow_deletes_note",width:"half",options:{label:"$t:fields.directus_settings.mcp_allow_deletes"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_prompts_collection",interface:"system-collection",group:"mcp_group",width:"half",note:"$t:fields.directus_settings.mcp_prompts_collection_note",options:{includeSingleton:!1,allowNone:!0},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_prompts_collection_validation",interface:"system-mcp-prompts-collection-validation",group:"mcp_group",width:"half",special:["alias","no-data"],conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},hidden:!0}]},{field:"mcp_system_prompt_divider",interface:"presentation-divider",options:{inlineTitle:!0,color:"var(--theme--foreground-subdued)",title:"$t:fields.directus_settings.mcp_system_prompt_divider"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_system_prompt_enabled",interface:"boolean",group:"mcp_group",special:["cast-boolean"],width:"half-left",note:"$t:fields.directus_settings.mcp_system_prompt_enabled_note",options:{label:"$t:enabled"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_system_prompt",interface:"input-rich-text-md",group:"mcp_group",width:"full",note:"$t:fields.directus_settings.mcp_system_prompt_note",options:{label:"$t:fields.directus_settings.mcp_system_prompt"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0},{name:"mcp_system_prompt_enabled",rule:{mcp_system_prompt_enabled:{_neq:!0}},readonly:!0}]}]},di={table:"directus_shares",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"name"},{field:"collection",width:"half",hidden:!0},{field:"item",width:"half",hidden:!0},{field:"role",interface:"select-dropdown-m2o",width:"half",options:{template:"{{name}}"}},{field:"password",special:["hash","conceal"],interface:"input-hash",options:{iconRight:"lock",masked:!0},width:"half",note:"$t:shared_leave_blank_for_passwordless_access"},{field:"date_start",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"date_end",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"max_uses",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"times_used",width:"half",readonly:!0},{field:"date_created",special:["date-created","cast-timestamp"],width:"half",readonly:!0,conditions:[{name:"notCreatedYet",rule:{id:{_null:!0}},hidden:!0}]},{field:"user_created",special:["user-created"],interface:"select-dropdown-m2o",width:"half",display:"user",options:{template:"{{avatar.$thumbnail}} {{first_name}} {{last_name}}"},readonly:!0,conditions:[{name:"notCreatedYet",rule:{id:{_null:!0}},hidden:!0}]}]},ui={table:"directus_translations",fields:[{field:"id",hidden:!0,sort:1,special:["uuid"]},{field:"key",width:"half",sort:2,required:!0,interface:"input",options:{font:"monospace",placeholder:"$t:translation_key_placeholder"}},{field:"language",interface:"system-language",width:"half",sort:3,required:!0},{field:"value",interface:"input-multiline",sort:4,required:!0,options:{placeholder:"$t:enter_a_value"}}]},fi={table:"directus_users",fields:[{field:"first_name",interface:"input",options:{iconRight:"account_circle"},width:"half"},{field:"last_name",interface:"input",options:{iconRight:"account_circle"},width:"half"},{field:"email",interface:"input",options:{iconRight:"email"},width:"half"},{field:"password",special:["hash","conceal"],interface:"input-hash",options:{iconRight:"lock",masked:!0},width:"half"},{field:"avatar",interface:"file",width:"full",display:"image"},{field:"location",interface:"input",options:{iconRight:"place"},width:"half"},{field:"title",interface:"input",options:{iconRight:"work"},width:"half"},{field:"description",interface:"input-multiline",width:"full"},{field:"tags",interface:"tags",special:["cast-json"],width:"full",options:{iconRight:"local_offer"},display:"labels",display_options:{choices:null,format:!1}},{field:"preferences_divider",interface:"presentation-divider",options:{icon:"face",title:"$t:fields.directus_users.user_preferences"},special:["alias","no-data"],width:"full"},{field:"language",interface:"system-language",width:"half",options:{includeProjectDefault:!0}},{field:"text_direction",interface:"select-dropdown",options:{choices:[{value:"auto",text:"$t:text_direction_auto"},{value:"ltr",text:"$t:text_direction_ltr"},{value:"rtl",text:"$t:text_direction_rtl"}]},width:"half"},{field:"tfa_secret",interface:"system-mfa-setup",special:["conceal"],width:"half"},{field:"email_notifications",interface:"boolean",width:"half",special:["cast-boolean"]},{field:"theming_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:theme"},special:["alias","no-data"],width:"full"},{field:"appearance",interface:"select-dropdown",options:{choices:[{value:null,text:"$t:default_sync_with_project"},{value:"auto",text:"$t:appearance_auto"},{value:"light",text:"$t:appearance_light"},{value:"dark",text:"$t:appearance_dark"}]},width:"half"},{field:"theme_light",width:"full",interface:"system-theme",options:{appearance:"light",includeNull:!0}},{field:"theme_light_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"light"},special:["cast-json"]},{field:"theme_dark",width:"full",interface:"system-theme",options:{appearance:"dark",includeNull:!0}},{field:"theme_dark_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"dark"},special:["cast-json"]},{field:"admin_divider",interface:"presentation-divider",options:{icon:"verified_user",title:"$t:fields.directus_users.admin_options",color:"var(--theme--danger)"},special:["alias","no-data"],width:"full"},{field:"status",interface:"select-dropdown",options:{choices:[{text:"$t:fields.directus_users.status_draft",value:"draft"},{text:"$t:fields.directus_users.status_invited",value:"invited"},{text:"$t:fields.directus_users.status_unverified",value:"unverified"},{text:"$t:fields.directus_users.status_active",value:"active"},{text:"$t:fields.directus_users.status_suspended",value:"suspended"},{text:"$t:fields.directus_users.status_archived",value:"archived"}]},width:"half"},{field:"role",interface:"select-dropdown-m2o",options:{template:"{{ name }}"},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"policies",interface:"list-m2m",options:{layout:"list"},display:"related-values",special:["m2m"],width:"full"},{field:"token",interface:"system-token",special:["conceal"],width:"full"},{field:"id",special:["uuid"],interface:"input",options:{iconRight:"vpn_key"},width:"full"},{field:"last_page",width:"half"},{field:"last_access",width:"half",display:"datetime",readonly:!0},{field:"provider",width:"half",interface:"select-dropdown",options:{choices:[{text:"$t:default_provider",value:"default"}]}},{field:"external_identifier",width:"half",options:{iconRight:"account_circle"},interface:"input"},{field:"auth_data",hidden:!0}]},pi={table:"directus_versions",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"key"},{field:"name"},{field:"collection"},{field:"item"},{field:"hash",readonly:!0,hidden:!0},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"date_updated",special:["date-updated","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"user_updated",special:["user-updated"]},{field:"delta",special:["cast-json"]}]};const mi=[];function hi(e){let{table:t,fields:n,indexed:a}=e;n.forEach((e,n)=>{mi.push({system:!0,...Po,...e,collection:t,sort:n+1})}),a&&a.forEach(({field:e})=>{})}hi({table:"directus_access",fields:[{field:"id",special:["uuid"],hidden:!0,width:"half"},{field:"role",hidden:!0,width:"half",special:["m2o"]},{field:"user",hidden:!0,width:"half",special:["m2o"]},{field:"policy",hidden:!0,width:"half",special:["m2o"]},{field:"sort",hidden:!0,width:"half"}]}),hi(Uo),hi(Bo),hi(Vo),hi(zo),hi(Xo),hi(qo),hi(Wo),hi(Yo),hi(Jo),hi(Qo),hi(Zo),hi(ei),hi(ti),hi(ni),hi(ai),hi(ri),hi(oi),hi(ii),hi(li),hi(si),hi(ci),hi(di),hi(ui),hi(fi),hi(pi),hi(Ho),hi(Go),hi(Ko);var vi=[{collection:"directus_activity",action:"read",permissions:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_comments",action:"read",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_comments",action:"create",validation:{comment:{_nnull:!0}}},{collection:"directus_comments",action:"update",permissions:{user_created:{_eq:"$CURRENT_USER"}},fields:["comment"]},{collection:"directus_comments",action:"delete",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"read",permissions:{_or:[{user:{_eq:"$CURRENT_USER"}},{_and:[{user:{_null:!0}},{role:{_eq:"$CURRENT_ROLE"}}]},{_and:[{user:{_null:!0}},{role:{_null:!0}}]}]}},{collection:"directus_presets",action:"create",validation:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"update",permissions:{user:{_eq:"$CURRENT_USER"}},validation:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"delete",permissions:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_roles",action:"read",permissions:{id:{_in:"$CURRENT_ROLES"}}},{collection:"directus_settings",action:"read"},{collection:"directus_translations",action:"read"},{collection:"directus_notifications",action:"read",permissions:{recipient:{_eq:"$CURRENT_USER"}}},{collection:"directus_notifications",action:"update",permissions:{recipient:{_eq:"$CURRENT_USER"}},fields:["status"]},{collection:"directus_shares",action:"read",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_users",action:"read",permissions:{id:{_eq:"$CURRENT_USER"}},fields:["id","first_name","last_name","last_page","email","password","location","title","description","tags","provider","preferences_divider","avatar","language","appearance","theme_light","theme_dark","tfa_secret","status","role"]}];const gi={policy:null,permissions:{},validation:null,presets:null,fields:["*"],system:!0},yi=[{collection:"directus_collections",action:"read"},{collection:"directus_fields",action:"read"},{collection:"directus_relations",action:"read"},{collection:"directus_translations",action:"read"}].map(e=>({...gi,...e}));[...yi,...vi].map(e=>({...gi,...e}));var bi=Object.create,_i=Object.defineProperty,wi=Object.getOwnPropertyDescriptor,xi=Object.getOwnPropertyNames,Si=Object.getPrototypeOf,ki=Object.prototype.hasOwnProperty,Ei=(e,t)=>function(){return t||(0,e[xi(e)[0]])((t={exports:{}}).exports,t),t.exports},Ai=(e,t,n)=>(n=null!=e?bi(Si(e)):{},((e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var r,o=xi(t),i=0,l=o.length;i<l;i++)r=o[i],ki.call(e,r)||r===n||_i(e,r,{get:(e=>t[e]).bind(null,r),enumerable:!(a=wi(t,r))||a.enumerable});return e})(_i(n,"default",{value:e,enumerable:!0}),e));function Oi(e,t){e=$r(e,4);const n=t.startsWith("-");(n||t.startsWith("+"))&&(t=t.substring(1));const a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mth|mo|years?|yrs?|y)?$/i.exec(t);if(!a||!a[1])return;const r=parseFloat(a[1]);switch((a[2]??"days").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n?function(e,t){return po(e,-t)}(e,r):po(e,r);case"months":case"month":case"mth":case"mo":return n?function(e,t){return io(e,-t)}(e,r):io(e,r);case"weeks":case"week":case"w":return n?function(e,t){return fo(e,-t)}(e,r):fo(e,r);case"days":case"day":case"d":return n?function(e,t){return oo(e,-t)}(e,r):oo(e,r);case"hours":case"hour":case"hrs":case"hr":case"h":return n?function(e,t){return so(e,-t)}(e,r):so(e,r);case"minutes":case"minute":case"mins":case"min":case"m":return n?function(e,t){return co(e,-t)}(e,r):co(e,r);case"seconds":case"second":case"secs":case"sec":case"s":return n?function(e,t){return uo(e,-t)}(e,r):uo(e,r);case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n?function(e,t){return lo(e,-t)}(e,r):lo(e,r);default:return}}function $i(e){return String(e).includes("__proto__")?JSON.parse(e,Ci):JSON.parse(e)}function Ci(e,t){if("__proto__"!==e)return t}function Ii(e,t,n){return function e(a,r){return Array.isArray(a)?a.map(e):Dt(a)&&Da(a)?Object.fromEntries(Object.entries(a).map(([t,n])=>[t,e(n,t)])):void 0!==r?t.call(n,a,r):a}(e)}function Ri(e){return function(e){return!!e.startsWith("directus_")&&Lo.includes(e)}(e)?`/${e.substring(9)}`:`/items/${e}`}function Ni(e,t,n){let a=t.split(".")[0];const r=t.split(".").slice(1);a.includes(":")&&(a=a.split(":")[0]);const o=Array.isArray(e)?function(e,t){const n=e.map(e=>e?.[t]).filter(e=>e);return n.length>0?n.flat():void 0}(e,a):e?.[a];return void 0!==o&&r.length>0?Ni(o,r.join("."),n):o??n}function Ti(e){return"string"==typeof e?e.split(","):Array.isArray(e)?e:[e]}Do.extend({type:"string",base:Do.string(),messages:{"string.contains":"{{#label}} must contain [{{#substring}}]","string.icontains":"{{#label}} must contain case insensitive [{{#substring}}]","string.ncontains":"{{#label}} can't contain [{{#substring}}]"},rules:{contains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"contains",args:{substring:e}})},validate:(e,t,{substring:n})=>!1===e.includes(n)?t.error("string.contains",{substring:n}):e},icontains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"icontains",args:{substring:e}})},validate:(e,t,{substring:n})=>!1===e.toLowerCase().includes(n.toLowerCase())?t.error("string.icontains",{substring:n}):e},ncontains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"ncontains",args:{substring:e}})},validate:(e,t,{substring:n})=>!0===e.includes(n)?t.error("string.ncontains",{substring:n}):e}}});const ji=["_and","_or"],Di=["_none","_some"];function Mi(e){const t=Object.keys(e)[0];if(!t)return e;if(ji.includes(t))return{[t]:e[t].map(Mi)};if(t.startsWith("_"))return e;{const n=Mi(e[t]),a=Object.keys(n)[0];return a?ji.includes(a)?Mi({[a]:n[a].map(e=>({[t]:e}))}):{[t]:n}:{[t]:n}}}function Li(e,t,n={}){if(null==e)return null;if(!Dt(e))return{_eq:Fi(e,t,n)};const a=Object.entries(e).map(e=>function([e,t],n,a){if(["_or","_and"].includes(String(e)))return{[e]:t.map(e=>Li(e,n,a))};if(["_in","_nin","_between","_nbetween"].includes(String(e))){const o="object"!=typeof(r=t)||null===r||Array.isArray(r)?t:Object.values(t);return{[e]:Ti(o).flatMap(e=>Fi(e,n,a))}}return["_intersects","_nintersects","_intersects_bbox","_nintersects_bbox"].includes(String(e))?{[e]:Fi("string"==typeof t?$i(t):t,n,a)}:String(e).startsWith("_")&&!Di.includes(e)?{[e]:Fi(t,n,a)}:{[e]:Li(t,n,a)};var r}(e,t,n));return 0===a.length?{}:1===a.length?a[0]??null:{_and:a}}function Fi(e,t,n){return"string"!=typeof e?e:e.startsWith("$NOW")?function(e){if(!1===e.startsWith("$NOW"))throw new Error(`"${e}" is not a valid $NOW format`);if(e.includes("(")&&e.includes(")")){const t=e.match(St)?.[1];if(t)return Oi(new Date,t)??new Date}return new Date}(e):e.startsWith("$CURRENT_USER")?"$CURRENT_USER"===e?t?.user??null:Ni(n,e,null):e.startsWith("$CURRENT_ROLES")?"$CURRENT_ROLES"===e?t?.roles??null:Ni(n,e,null):e.startsWith("$CURRENT_ROLE")?"$CURRENT_ROLE"===e?t?.role??null:Ni(n,e,null):e.startsWith("$CURRENT_POLICIES")?"$CURRENT_POLICIES"===e?Ni(n,e,null)?.map(({id:e})=>e)??null:Ni(n,e,null):e}var Pi=Ei({"../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js":(e,t)=>{var n=1e3,a=60*n,r=60*a,o=24*r,i=7*o,l=365.25*o;function s(e,t,n,a){var r=t>=1.5*n;return Math.round(e/n)+" "+a+(r?"s":"")}t.exports=function(e,t){t=t||{};var c,d,u=typeof e;if("string"===u&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return s*l;case"weeks":case"week":case"w":return s*i;case"days":case"day":case"d":return s*o;case"hours":case"hour":case"hrs":case"hr":case"h":return s*r;case"minutes":case"minute":case"mins":case"min":case"m":return s*a;case"seconds":case"second":case"secs":case"sec":case"s":return s*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===u&&isFinite(e))return t.long?(c=e,(d=Math.abs(c))>=o?s(c,d,o,"day"):d>=r?s(c,d,r,"hour"):d>=a?s(c,d,a,"minute"):d>=n?s(c,d,n,"second"):c+" ms"):function(e){var t=Math.abs(e);return t>=o?Math.round(e/o)+"d":t>=r?Math.round(e/r)+"h":t>=a?Math.round(e/a)+"m":t>=n?Math.round(e/n)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}}}),Ui=Ai(Pi());const Bi=(e,t,n=500)=>class extends Error{name="DirectusError";extensions;code=e.toUpperCase();status=n;constructor(e,n){super("string"==typeof t?t:t(e),n),this.extensions=e}toString(){return`${this.name} [${this.code}]: ${this.message}`}};let Vi=function(e){return e.ContainsNullValues="CONTAINS_NULL_VALUES",e.ContentTooLarge="CONTENT_TOO_LARGE",e.EmailLimitExceeded="EMAIL_LIMIT_EXCEEDED",e.Forbidden="FORBIDDEN",e.IllegalAssetTransformation="ILLEGAL_ASSET_TRANSFORMATION",e.Internal="INTERNAL_SERVER_ERROR",e.InvalidCredentials="INVALID_CREDENTIALS",e.InvalidForeignKey="INVALID_FOREIGN_KEY",e.InvalidInvite="INVALID_INVITE",e.InvalidIp="INVALID_IP",e.InvalidOtp="INVALID_OTP",e.InvalidPayload="INVALID_PAYLOAD",e.InvalidPathParameter="INVALID_PATH_PARAMETER",e.InvalidProvider="INVALID_PROVIDER",e.InvalidProviderConfig="INVALID_PROVIDER_CONFIG",e.InvalidQuery="INVALID_QUERY",e.InvalidToken="INVALID_TOKEN",e.LimitExceeded="LIMIT_EXCEEDED",e.MethodNotAllowed="METHOD_NOT_ALLOWED",e.NotNullViolation="NOT_NULL_VIOLATION",e.OutOfDate="OUT_OF_DATE",e.OutOfTime="OUT_OF_TIME",e.RangeNotSatisfiable="RANGE_NOT_SATISFIABLE",e.RecordNotUnique="RECORD_NOT_UNIQUE",e.RequestsExceeded="REQUESTS_EXCEEDED",e.RouteNotFound="ROUTE_NOT_FOUND",e.ServiceUnavailable="SERVICE_UNAVAILABLE",e.TokenExpired="TOKEN_EXPIRED",e.UnexpectedResponse="UNEXPECTED_RESPONSE",e.UnprocessableContent="UNPROCESSABLE_CONTENT",e.UnsupportedMediaType="UNSUPPORTED_MEDIA_TYPE",e.UserSuspended="USER_SUSPENDED",e.ValueOutOfRange="VALUE_OUT_OF_RANGE",e.ValueTooLong="VALUE_TOO_LONG",e}({});Bi(Vi.ContainsNullValues,({collection:e,field:t})=>`Field "${t}" in collection "${e}" contains null values.`,400),Bi(Vi.ContentTooLarge,"Uploaded content is too large.",413);Bi(Vi.EmailLimitExceeded,e=>{const t=["Email sending limit exceeded."];if("number"==typeof e.points&&"number"==typeof e.duration){const n=(0,Ui.default)(1e3*e.duration,{long:!0}),a=1!==e.points?"s":"";t.push(`Limit of ${e.points} email${a} every ${n}.`)}return e.message&&t.push(e.message),t.join(" ")},429);Bi(Vi.Forbidden,e=>e?.reason?e.reason:"You don't have permission to access this.",403);Bi(Vi.RequestsExceeded,e=>`Too many requests, retry after ${(0,Ui.default)(e.reset.getTime()-Date.now())}.`,429),Bi(Vi.IllegalAssetTransformation,"Illegal asset transformation.",400),Bi(Vi.Internal,"An unexpected error occurred."),Bi(Vi.InvalidCredentials,"Invalid user credentials.",401);Bi(Vi.InvalidForeignKey,({collection:e,field:t,value:n})=>{let a="Invalid foreign key";return n&&(a+=` "${n}"`),t&&(a+=` for field "${t}"`),e&&(a+=` in collection "${e}"`),a+=".",a},400),Bi(Vi.InvalidInvite,()=>"This invite is no longer valid.",400),Bi(Vi.InvalidIp,"Invalid IP address.",401),Bi(Vi.InvalidOtp,"Invalid user OTP.",401);Bi(Vi.InvalidPayload,({reason:e})=>`Invalid payload. ${e}.`,400);Bi(Vi.InvalidPathParameter,({reason:e})=>`Invalid path parameter. ${e}.`,400),Bi(Vi.InvalidProviderConfig,"Invalid config.",503),Bi(Vi.InvalidProvider,"Invalid provider.",403);Bi(Vi.InvalidQuery,({reason:e})=>`Invalid query. ${e}.`,400),Bi(Vi.InvalidToken,"Invalid token.",403);Bi(Vi.LimitExceeded,({category:e})=>`${e} limit exceeded.`,403);Bi(Vi.MethodNotAllowed,e=>`Invalid method "${e.current}" used. Should be one of ${e.allowed.map(e=>`"${e}"`).join(", ")}.`,405);Bi(Vi.NotNullViolation,({collection:e,field:t})=>{let n="Value ";return t&&(n+=`for field "${t}" `),e&&(n+=`in collection "${e}" `),n+="can't be null.",n},400),Bi(Vi.OutOfDate,"Operation could not be executed: Your current instance of Directus is out of date.",503);Bi(Vi.RangeNotSatisfiable,({range:e})=>`Range "${e.start??""}-${e.end??""}" is invalid or the file's size doesn't match the requested range.`,416);Bi(Vi.RecordNotUnique,({collection:e,field:t,value:n})=>{let a="Value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="has to be unique.",a},400);Bi(Vi.RouteNotFound,({path:e})=>`Route ${e} doesn't exist.`,404);Bi(Vi.ServiceUnavailable,({service:e,reason:t})=>`Service "${e}" is unavailable. ${t}.`,503),Bi(Vi.TokenExpired,"Token expired.",401),Bi(Vi.UnexpectedResponse,"Received an unexpected response.",503);Bi(Vi.UnprocessableContent,e=>`Can't process content. ${e.reason}.`,422);Bi(Vi.UnsupportedMediaType,e=>`Unsupported media type "${e.mediaType}" in ${e.where}.`,415),Bi(Vi.UserSuspended,"User suspended.",401);Bi(Vi.ValueOutOfRange,({collection:e,field:t,value:n})=>{let a="Numeric value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="is out of range.",a},400);Bi(Vi.ValueTooLong,({collection:e,field:t,value:n})=>{let a="Value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="is too long.",a},400);function zi(e){const t=o(0),n=o(0),a=new ResizeObserver(([e])=>{void 0!==e&&(t.value=e.contentRect.width,n.value=e.contentRect.height)});return b(()=>{const t=A(e)?e.value:e;Qr(t)||a.observe(t)}),T(()=>{a.disconnect()}),{width:t,height:n}}Bi(Vi.OutOfTime,({category:e,duration:t})=>`${e} timed out after ${(0,Ui.default)(t,{long:!0})}.`,408);const Gi="wrapper",Ki=["selection","layoutOptions","layoutQuery"];function Hi(e){const{layouts:t}=function(){const e=j("extensions");if(!e)throw new Error("[useExtensions]: The extensions could not be found.");return e}(),n=i(()=>t.value.map(e=>function(e){return l({name:`${e.id}-${Gi}`,props:{collection:{type:String,required:!0},selection:{type:Array,default:()=>[]},layoutOptions:{type:Object,default:()=>({})},layoutQuery:{type:Object,default:()=>({})},layoutProps:{type:Object,default:()=>({})},filter:{type:Object,default:null},filterUser:{type:Object,default:null},filterSystem:{type:Object,default:null},search:{type:String,default:null},showSelect:{type:String,default:"multiple"},selectMode:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resetPreset:{type:Function,default:null},clearFilters:{type:Function,default:null}},emits:Ki.map(e=>`update:${e}`),setup(t,{emit:n}){const a=I({...e.setup(t,{emit:n}),...D(t),sidebarShadow:e.sidebarShadow??!1});for(const e in a)a[`onUpdate:${e}`]=r=>{var o;o=e,Ki.includes(o)?n(`update:${e}`,r):Object.keys(t).includes(e)||(a[e]=r)};return{state:a}},render:e=>void 0!==e.$slots.default?e.$slots.default({layoutState:e.state}):null})}(e)));return{layoutWrapper:i(()=>{const t=n.value.find(t=>t.name===`${e.value}-${Gi}`);return void 0===t?n.value.find(e=>e.name===`tabular-${Gi}`):t})}}const Xi=["value","placeholder","tabindex","disabled"];var qi=l({__name:"search-input",props:{modelValue:{},disabled:{type:Boolean},showFilter:{type:Boolean,default:!0},collection:{},filter:{},autofocus:{type:Boolean},placeholder:{}},emits:["update:modelValue","update:filter"],setup(e,{emit:t}){const n=e,a=t,r=o(null),l=o(Boolean(n.autofocus)),h=o(!1),v=o(!1),g=j("main-element",void 0),w=o(),{width:S}=zi(g??o(void 0)),{width:A}=zi(w);y([S,A],()=>{if(!w.value)return;const e=g?.value?.firstElementChild,t=w.value.parentElement;if(!t)return;const n=t.offsetWidth-4;if(!e)return void(w.value.style.maxInlineSize="");const a=t.getBoundingClientRect().right-(e.getBoundingClientRect().left+Number(window.getComputedStyle(e).paddingInlineStart.replace("px","")));w.value.style.maxInlineSize=a>n?`${String(a)}px`:"0px"},{immediate:!0}),b(()=>{l.value&&r.value?.focus()});const O=i(()=>{if(!n.filter)return 0;const e=[];return function t(n){for(const[a,r]of Object.entries(n))"_and"===a||"_or"===a?r?.forEach?.(t):a.startsWith("_")?e.push(a):r&&"object"==typeof r&&t(r)}(n.filter),e.length});function C(e){return!(e.path||e.composedPath?.()||[]).some(e=>e?.classList?.contains("v-menu-content"))}function I(){l.value||r.value?.focus(),l.value=!0}function T(){h.value=!h.value,l.value=!0,h.value||r.value?.focus()}function D(){a("update:modelValue",null),l.value&&r.value?.focus()}function L(){l.value=!1,h.value=!1,r.value?.blur()}function F(e){if(h.value)return;const t=e.currentTarget?.closest(".search-input"),n=e.relatedTarget;n&&t?.contains(n)||L()}function P(){r.value&&a("update:modelValue",r.value.value||null)}return y(h,e=>{v.value=!!e}),(t,n)=>{const a=s("v-icon"),o=s("interface-system-filter"),i=s("v-badge"),g=R("tooltip"),y=R("click-outside");return c(),d(i,{bottom:"",right:"",class:$(["search-badge",{active:l.value,"filter-active":h.value}]),value:O.value,disabled:e.disabled||!O.value||h.value},{default:u(()=>[N((c(),p("div",{class:$(["search-input",{active:l.value,disabled:e.disabled,"filter-active":h.value,"has-content":!!e.modelValue,"filter-border":v.value,"show-filter":e.showFilter}]),role:"search",onClick:I},[f(a,{small:"",name:"search",class:"icon-search",disabled:e.disabled,clickable:!l.value,onClick:n[0]||(n[0]=e=>r.value?.focus())},null,8,["disabled","clickable"]),x("input",{ref_key:"input",ref:r,value:e.modelValue,placeholder:e.placeholder??"Search items…",type:"search",spellcheck:"false",autocapitalize:"off",autocorrect:"off",autocomplete:"off",tabindex:l.value||e.modelValue?void 0:-1,disabled:e.disabled,onInput:P,onPaste:P,onKeydown:k(L,["esc"]),onFocusin:I,onFocusout:F},null,40,Xi),n[2]||(n[2]=x("div",{class:"spacer"},null,-1)),e.modelValue?N((c(),d(a,{key:0,small:"",clickable:"",class:"icon-clear",name:"close",disabled:e.disabled,onClick:E(D,["stop"])},null,8,["disabled"])),[[g,"Clear value",void 0,{bottom:!0}]]):_("v-if",!0),e.showFilter?(c(),p(m,{key:1},[N(f(a,{small:"",clickable:"",class:"icon-filter",name:"filter_list",disabled:e.disabled,onClick:T},null,8,["disabled"]),[[g,!e.disabled&&"Filter",void 0,{bottom:!0}]]),N(x("div",{ref_key:"filterElement",ref:w,class:$(["filter",{active:l.value}])},[f(o,{class:"filter-input",inline:"",value:e.filter,"collection-name":e.collection,onInput:n[1]||(n[1]=e=>t.$emit("update:filter",e))},null,8,["value","collection-name"])],2),[[M,h.value]])],64)):_("v-if",!0)],2)),[[y,{handler:L,middleware:C,disabled:!l.value}]])]),_:1},8,["class","value","disabled"])}}});we("\n/* Mirrors upstream search-input.vue styles (logical props → physical where needed). */\n.search-badge[data-v-576fbb1b] {\n\t--v-badge-background-color: var(--theme--primary);\n\t--v-badge-offset-y: 0.4375rem;\n\t--v-badge-offset-x: 0.4375rem;\n}\n@media (width <= 22.5rem) {\n.search-badge.active[data-v-576fbb1b],\n\t.search-badge.filter-active[data-v-576fbb1b] {\n\t\tposition: absolute;\n\t\tinset-inline: 0;\n\t\tz-index: 1;\n\t\tbackground-color: var(--theme--header--background);\n}\n}\n.search-badge[data-v-576fbb1b] .badge {\n\tpointer-events: none;\n}\n.search-input[data-v-576fbb1b] {\n\t--button-size: 2rem;\n\t--search-input-size: calc(var(--button-size) - var(--theme--border-width) * 2);\n\t--search-input-radius: calc(var(--button-size) / 2);\n\t--icon-size: 1rem;\n\t--icon-search-padding-left: 0.375rem;\n\t--icon-search-padding-right: 0.25rem;\n\t--icon-filter-margin-right: 0.4375rem;\n\n\tposition: relative;\n\tbox-sizing: content-box;\n\tdisplay: flex;\n\talign-items: center;\n\twidth: var(--search-input-size);\n\tmin-height: var(--search-input-size);\n\tmax-width: calc(100% - var(--theme--border-width) * 2);\n\toverflow: hidden;\n\tborder: var(--theme--border-width) solid var(--theme--form--field--input--border-color);\n\tborder-radius: var(--search-input-radius);\n\ttransition:\n\t\twidth var(--slow, 300ms) var(--transition, ease-in-out),\n\t\tborder-bottom-left-radius var(--fast, 125ms) var(--transition, ease-in-out),\n\t\tborder-bottom-right-radius var(--fast, 125ms) var(--transition, ease-in-out);\n}\n.search-input.show-filter[data-v-576fbb1b] {\n\twidth: calc(\n\t\tvar(--icon-size) * 2 + var(--icon-search-padding-left) + var(--icon-search-padding-right) +\n\t\t\tvar(--icon-filter-margin-right)\n\t);\n}\n.search-input input[data-v-576fbb1b] {\n\twidth: 0;\n\theight: 100%;\n\tmargin: 0;\n\tpadding: 0;\n\toverflow: hidden;\n\tcolor: var(--theme--foreground);\n\ttext-overflow: ellipsis;\n\tbackground-color: transparent;\n\tborder: none;\n\tborder-radius: 0;\n\tflex-grow: 1;\n\topacity: 0;\n\toutline: none;\n\tfont: inherit;\n}\n.search-input input[data-v-576fbb1b]::placeholder {\n\tcolor: var(--theme--foreground-subdued);\n}\n.search-input.disabled input[data-v-576fbb1b] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.search-input .spacer[data-v-576fbb1b] {\n\twidth: 0.4375rem;\n}\n.search-input .icon-clear[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\t--v-icon-color-hover: var(--theme--danger);\n\tmin-width: auto;\n\toverflow: hidden;\n}\n.search-input .icon-search[data-v-576fbb1b],\n.search-input .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color-hover: var(--theme--primary);\n}\n.search-input.disabled .icon-search[data-v-576fbb1b],\n.search-input.disabled .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n}\n.search-input .icon-search[data-v-576fbb1b] {\n\tmargin-block: 0;\n\tmargin-inline: var(--icon-search-padding-left) var(--icon-search-padding-right);\n}\n.search-input .icon-filter[data-v-576fbb1b] {\n\tmargin-inline-end: var(--icon-filter-margin-right);\n}\n.search-input[data-v-576fbb1b]:focus-within,\n.search-input[data-v-576fbb1b]:not(.disabled):not(.active):hover {\n\tborder-color: var(--theme--form--field--input--border-color-hover);\n}\n.search-input.has-content[data-v-576fbb1b] {\n\twidth: 11.25rem;\n}\n.search-input.has-content .icon-clear[data-v-576fbb1b] {\n\tmargin-inline-end: 0.4375rem;\n}\n.search-input.has-content input[data-v-576fbb1b] {\n\topacity: 1;\n}\n.search-input.has-content.show-filter .icon-clear[data-v-576fbb1b] {\n\tmargin-inline-end: 0;\n}\n.search-input.active[data-v-576fbb1b] {\n\twidth: 100%;\n\tborder-color: var(--theme--form--field--input--border-color-focus);\n}\n@media (width > 22.5rem) {\n.search-input.active[data-v-576fbb1b] {\n\t\twidth: 8.4375rem;\n}\n}\n@media (width >= 48rem) {\n.search-input.active[data-v-576fbb1b] {\n\t\twidth: 11.25rem;\n}\n}\n.search-input.active input[data-v-576fbb1b] {\n\topacity: 1;\n}\n.search-input.filter-active[data-v-576fbb1b] {\n\twidth: 100%;\n}\n.search-input.filter-active .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--primary);\n}\n@media (width > 22.5rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 8.4375rem;\n}\n}\n@media (width >= 48rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 11.25rem;\n}\n}\n@media (width >= 54rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 16.875rem;\n}\n}\n@media (width >= 70.875rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 23.625rem;\n}\n}\n.search-input.filter-border[data-v-576fbb1b] {\n\tpadding-block-end: var(--theme--border-width);\n\tborder-block-end: none;\n\tborder-bottom-right-radius: 0;\n\tborder-bottom-left-radius: 0;\n\ttransition:\n\t\tborder-bottom-left-radius 0s,\n\t\tborder-bottom-right-radius 0s;\n}\n.search-input.filter-border[data-v-576fbb1b]::after {\n\tposition: absolute;\n\tinset-inline: var(--theme--border-width) var(--theme--border-width);\n\tbottom: calc(-1 * var(--theme--border-width));\n\twidth: auto;\n\theight: var(--theme--border-width);\n\tbackground-color: var(--theme--border-color-subdued);\n\tcontent: '';\n\tpointer-events: none;\n}\n\n/* Allow the absolute filter panel to paint below the collapsed pill (upstream uses TransitionExpand). */\n.search-input.filter-active[data-v-576fbb1b],\n.search-input.filter-border[data-v-576fbb1b] {\n\toverflow: visible;\n}\n.filter[data-v-576fbb1b] {\n\tposition: absolute;\n\ttop: 100%;\n\tright: 0;\n\tz-index: 10;\n\twidth: auto;\n\tmin-width: 100%;\n\tpadding: 0;\n\tbackground-color: var(--theme--background-subdued);\n\tborder: var(--theme--border-width) solid var(--theme--form--field--input--border-color);\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: var(--search-input-radius);\n\tborder-bottom-left-radius: var(--search-input-radius);\n}\n.filter.active[data-v-576fbb1b] {\n\tborder-color: var(--theme--form--field--input--border-color-focus);\n}\n.filter .filter-input[data-v-576fbb1b] {\n\tmargin: 0.5625rem 0.4375rem;\n}\n",{});var Wi=xe(qi,[["__scopeId","data-v-576fbb1b"]]),Yi=l({__name:"header-action-button",props:{icon:{},disabled:{type:Boolean},loading:{type:Boolean},secondary:{type:Boolean},outlined:{type:Boolean},to:{},active:{type:Boolean}},emits:["click"],setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-button");return c(),d(r,{disabled:e.disabled,active:e.active,loading:e.loading,secondary:e.secondary,outlined:e.outlined,to:e.to,icon:"",rounded:"",small:"",onClick:n[0]||(n[0]=e=>t.$emit("click"))},{default:u(()=>[f(a,{name:e.icon,small:""},null,8,["name"])]),_:1},8,["disabled","active","loading","secondary","outlined","to"])}});const Ji={class:"layout-options"},Qi={class:"field"};var Zi=l({__name:"layout-sidebar-detail",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=i({get:()=>n.modelValue??"cards",set(e){a("update:modelValue",e)}}),o=[{text:"Cards",value:"cards",icon:"grid_view"},{text:"Table",value:"tabular",icon:"table_rows"}];return(e,t)=>{const n=s("v-select"),a=s("sidebar-detail");return c(),d(a,{id:"layout",icon:"layers",title:"Layout Options"},{default:u(()=>[x("div",Ji,[x("div",Qi,[t[1]||(t[1]=x("div",{class:"type-label"},"Layout",-1)),f(n,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=e=>r.value=e),items:o,"item-text":"text","item-value":"value","item-icon":"icon"},null,8,["modelValue"])]),L(e.$slots,"default",{},void 0,!0)])]),_:3})}}});we("\n.layout-options[data-v-65862970] {\n\t--theme--form--row-gap: 1.125rem;\n\tmargin-bottom: 0.25rem;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--theme--form--row-gap);\n}\n.field[data-v-65862970] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n.type-label[data-v-65862970] {\n\tfont-weight: 600;\n\tfont-size: 13px;\n}\n",{});var el=xe(Zi,[["__scopeId","data-v-65862970"]]);const tl=o(!1),nl=o(!1),al=o(null),rl=o(0),ol=o("/storage-manager"),il=I({from:null,to:"",currentIndex:0,totalFiles:0,currentName:"",transferredBytes:0,totalBytes:0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0});let ll=null,sl=null,cl={},dl=null,ul=null,fl=null;function pl(){return fl}function ml(e){const t={"Content-Type":"application/json",Accept:"text/event-stream"},n=e?.defaults?.headers,a=n?.common?.Authorization||n?.Authorization||n?.common?.authorization||n?.authorization;return"string"==typeof a&&a&&(t.Authorization=a),t}function hl(e){"start"===e.type?(il.from=e.from||il.from,il.to=e.to,il.totalFiles=e.total,il.totalBytes=e.total_bytes,il.currentIndex=0,il.currentName="",il.transferredBytes=0,il.elapsedMs=0,il.speedBps=0,il.succeeded=0,il.skipped=0,il.failed=0):"file_start"===e.type?(il.currentIndex=e.index,il.totalFiles=e.total,il.currentName=e.name||e.filename_disk,il.from||(il.from=e.from),il.to=e.to):"file_bytes"===e.type?(il.currentIndex=e.index,il.transferredBytes=e.transferred_bytes,il.totalBytes=e.total_bytes||il.totalBytes,il.elapsedMs=e.elapsed_ms,il.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0):"file_done"===e.type?(il.currentIndex=e.index,il.totalFiles=e.total,il.currentName=e.name||e.result.filename_disk,il.succeeded=e.succeeded,il.skipped=e.skipped,il.failed=e.failed,il.transferredBytes=e.transferred_bytes,il.totalBytes=e.total_bytes||il.totalBytes,il.elapsedMs=e.elapsed_ms,il.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0):"done"===e.type&&(il.succeeded=e.data.succeeded,il.skipped=e.data.skipped,il.failed=e.data.failed,il.transferredBytes=e.data.transferred_bytes??il.transferredBytes,il.totalBytes=e.data.total_bytes??il.totalBytes,il.elapsedMs=e.data.elapsed_ms??il.elapsedMs,il.totalFiles=e.data.total,il.currentIndex=e.data.total,il.speedBps=il.elapsedMs>0?1e3*il.transferredBytes/il.elapsedMs:0),cl.onProgress?.(e),nl.value&&function(){if(!sl)return;const e=pl();if(!e)return;e.update(sl,{title:gl(),text:il.currentName?`${il.currentName} · click for details`:`${Be(il.transferredBytes)}${il.totalBytes?` / ${Be(il.totalBytes)}`:""} · click for details`,loading:0===il.totalFiles,progress:0===il.totalFiles?void 0:vl(),type:"info",persist:!0,closeable:!0,alwaysShowText:!0,icon:"swap_horiz",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{yl()}})}()}function vl(){return il.totalBytes>0?Math.min(100,Math.round(il.transferredBytes/il.totalBytes*100)):il.totalFiles>0?Math.min(100,Math.round(il.currentIndex/il.totalFiles*100)):0}function gl(){const e="copy"===dl?.mode?"Copying":"Moving",t=il.to||dl?.target_storage||"…",n=il.from?`${il.from} → `:"";if(!il.totalFiles)return`${e} files to ${t}…`;return`${e} ${Math.min(il.currentIndex||0,il.totalFiles)}/${il.totalFiles} · ${n}${t}`}function yl(){sl=null,nl.value=!1,rl.value+=1,ul?.()}function bl(e,t,n){const a=pl();a&&(sl&&(a.remove(sl),sl=null),a.add({title:t,text:n,type:"warning"===e?"warning":e,icon:"success"===e?"check_circle":"warning"===e?"cancel":"error",persist:!1,closeable:!0}))}function _l(){const n=e();if(!fl)try{const{useNotificationsStore:e}=t();fl=e?.()??null}catch{fl=null}const a=i(()=>tl.value);function r(){cl={}}return{running:tl,backgrounded:nl,result:al,progress:il,reopenNonce:rl,returnToPath:ol,activeMode:i(()=>dl?.mode??null),activeTarget:i(()=>dl?.target_storage??null),isBusy:a,start:async function(e,t){if(tl.value)throw new Error("A migration is already running");dl=e,tl.value=!0,nl.value=!1,al.value=null,ll=new AbortController,t?.listener&&(cl=t.listener),function(e="",t=0,n=0,a=null){il.from=a,il.to=e,il.currentIndex=0,il.totalFiles=t,il.currentName="",il.transferredBytes=0,il.totalBytes=n,il.elapsedMs=0,il.speedBps=0,il.succeeded=0,il.skipped=0,il.failed=0}(e.target_storage,t?.estimatedCount??e.file_ids?.length??0,t?.estimatedBytes||0,t?.sourceStorage||e.source_storage||null);try{const t=await fetch(function(e){const t=String(e?.defaults?.baseURL||"").replace(/\/$/,""),n="/storage-manager/migrate/stream";return t?`${t}${n}`:n}(n),{method:"POST",headers:ml(n),body:JSON.stringify(e),credentials:"same-origin",signal:ll.signal}),a=await async function(e,t){if(!e.ok){let t=`Move failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for progress stream");const n=e.body.getReader(),a=new TextDecoder;let r="",o=null;for(;;){const{done:e,value:i}=await n.read();if(e)break;r+=a.decode(i,{stream:!0});const l=r.split("\n\n");r=l.pop()||"";for(const e of l)for(const n of e.split("\n")){const e=n.trim();if(!e.startsWith("data:"))continue;const a=e.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"done"===r.type&&(o=r.data),"error"===r.type)throw new Error(r.message||"Move failed")}}if(!o)throw new Error("Move stream ended without a result");return o}(t,hl);return al.value=a,nl.value&&bl(a.failed?"warning":"success",a.failed?`Move finished with ${a.failed} failure(s)`:`Move complete · ${a.succeeded} file(s)`,`${"copy"===e.mode?"Copied":"Moved"} to ${e.target_storage}`),cl.onDone?.(a),a}catch(t){if("AbortError"===t?.name){const t=(a=e.mode,r=e.target_storage,{mode:a,target_storage:r,total:il.totalFiles,succeeded:il.succeeded,skipped:il.skipped,failed:il.failed,results:[],transferred_bytes:il.transferredBytes,total_bytes:il.totalBytes,elapsed_ms:il.elapsedMs,cancelled:!0});return al.value=t,nl.value&&bl("warning","Move cancelled",`${il.succeeded} file(s) completed before cancel`),cl.onCancel?.(t),t}const n=t?.message||"Move failed";throw nl.value&&bl("error","Move failed",n),cl.onError?.(t instanceof Error?t:new Error(n)),t}finally{if(tl.value=!1,nl.value=!1,ll=null,dl=null,sl){const e=pl();e?.remove(sl),sl=null}}var a,r},runInBackground:function(e){if(!tl.value||nl.value)return!1;nl.value=!0,r(),e?.returnTo&&(ol.value=e.returnTo),ul=e?.navigate||null;const t=pl();return t&&!sl&&(sl=t.add({title:gl(),text:"Click for details — move continues in the background.",type:"info",persist:!0,closeable:!0,alwaysShowText:!0,loading:0===il.totalFiles,progress:0===il.totalFiles?void 0:vl(),icon:"swap_horiz",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{yl()}})),!0},attachForeground:function(e){if(nl.value=!1,e&&(cl=e),sl){const e=pl();e?.remove(sl),sl=null}},cancel:function(){ll?.abort()},clearLastResult:function(){al.value=null},setListeners:function(e){cl=e},clearListeners:r}}const wl={class:"progress-panel"},xl={class:"route"},Sl={class:"adapter"},kl={class:"adapter"},El={class:"file-line"},Al={class:"file-count"},Ol=["title"],$l={class:"bar-wrap"},Cl={class:"bar-track"},Il={class:"bar-meta"},Rl={class:"stats"},Nl={class:"stat"},Tl={class:"stat-value"},jl={class:"stat"},Dl={class:"stat-value"},Ml={class:"stat"},Ll={class:"stat-value"},Fl={class:"counts"},Pl={class:"ok"},Ul={class:"skip"},Bl={class:"fail"};var Vl=l({__name:"migrate-progress",props:{storages:{},mode:{},from:{},to:{},currentIndex:{},totalFiles:{},currentName:{},transferredBytes:{},totalBytes:{},elapsedMs:{},speedBps:{},succeeded:{},skipped:{},failed:{},isDone:{type:Boolean},isCancelled:{type:Boolean}},setup(e){const t=e;function n(e){if(!e)return{short:"—",icon:"storage"};const n=t.storages.find(t=>t.location===e);return n||{short:e,icon:"storage",location:e}}const a=i(()=>n(t.from)),r=i(()=>n(t.to)),o=i(()=>t.from?`${t.from} (${a.value.short})`:"Mixed sources"),l=i(()=>`${t.to} (${r.value.short})`),d=i(()=>a.value.icon),m=i(()=>r.value.icon),h=i(()=>"copy"===t.mode?"Copy":"Move"),y=i(()=>t.totalBytes>0?Math.max(0,Math.min(100,t.transferredBytes/t.totalBytes*100)):t.totalFiles>0?Math.max(0,Math.min(100,t.currentIndex/t.totalFiles*100)):0),b=i(()=>Math.round(y.value)),_=i(()=>t.isDone?t.isCancelled?"Cancelled":t.failed>0?"Completed with errors":"Completed":"Moving");return(t,n)=>{const a=s("v-icon"),r=s("v-chip");return c(),p("div",wl,[x("div",xl,[x("div",Sl,[f(a,{name:d.value},null,8,["name"]),x("span",null,g(o.value),1)]),f(a,{class:"arrow",name:"arrow_forward"}),x("div",kl,[f(a,{name:m.value},null,8,["name"]),x("span",null,g(l.value),1)]),f(r,{"x-small":"",class:"mode-chip"},{default:u(()=>[v(g(h.value),1)]),_:1})]),x("div",El,[x("span",Al,"File "+g(e.currentIndex)+" / "+g(e.totalFiles),1),x("span",{class:"file-name",title:e.currentName},g(e.currentName||"Preparing…"),9,Ol)]),x("div",$l,[x("div",Cl,[x("div",{class:"bar-fill",style:C({width:`${y.value}%`})},null,4)]),x("div",Il,[x("strong",null,g(b.value)+"%",1),x("span",null,g(O(Be)(e.transferredBytes))+" / "+g(O(Be)(e.totalBytes)),1)])]),x("div",Rl,[x("div",Nl,[n[0]||(n[0]=x("span",{class:"stat-label"},"Speed",-1)),x("span",Tl,g(O(Ve)(e.speedBps)),1)]),x("div",jl,[n[1]||(n[1]=x("span",{class:"stat-label"},"Elapsed",-1)),x("span",Dl,g(O(ze)(e.elapsedMs)),1)]),x("div",Ml,[n[2]||(n[2]=x("span",{class:"stat-label"},"Status",-1)),x("span",Ll,g(_.value),1)])]),x("div",Fl,[x("span",Pl,g(e.succeeded)+" Ok",1),x("span",Ul,g(e.skipped)+" Skipped",1),x("span",Bl,g(e.failed)+" Failed",1)])])}}});we("\n.progress-panel[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n\tpadding: 16px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tbackground: var(--theme--background-subdued);\n}\n.route[data-v-49e3abe7] {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 10px;\n}\n.adapter[data-v-49e3abe7] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-weight: 600;\n}\n.arrow[data-v-49e3abe7] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.mode-chip[data-v-49e3abe7] {\n\tmargin-left: auto;\n}\n.file-line[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmin-width: 0;\n}\n.file-count[data-v-49e3abe7] {\n\tfont-size: 12px;\n\tfont-weight: 700;\n\tletter-spacing: 0.02em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n}\n.file-name[data-v-49e3abe7] {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.bar-wrap[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n.bar-track[data-v-49e3abe7] {\n\theight: 10px;\n\tborder-radius: 999px;\n\tbackground: var(--theme--background-normal);\n\toverflow: hidden;\n}\n.bar-fill[data-v-49e3abe7] {\n\theight: 100%;\n\tborder-radius: inherit;\n\tbackground: var(--theme--primary);\n\ttransition: width 160ms ease;\n}\n.bar-meta[data-v-49e3abe7] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tfont-size: 13px;\n}\n.stats[data-v-49e3abe7] {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, minmax(0, 1fr));\n\tgap: 8px;\n}\n.stat[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tpadding: 8px 10px;\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background);\n}\n.stat-label[data-v-49e3abe7] {\n\tfont-size: 11px;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.03em;\n\tcolor: var(--theme--foreground-subdued);\n}\n.stat-value[data-v-49e3abe7] {\n\tfont-weight: 700;\n\tfont-variant-numeric: tabular-nums;\n}\n.counts[data-v-49e3abe7] {\n\tdisplay: flex;\n\tgap: 12px;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.counts .ok[data-v-49e3abe7] {\n\tcolor: var(--theme--success);\n}\n.counts .fail[data-v-49e3abe7] {\n\tcolor: var(--theme--danger);\n}\n",{});var zl=xe(Vl,[["__scopeId","data-v-49e3abe7"]]);const Gl={class:"drawer-body"},Kl={class:"intro"},Hl={key:0,class:"description"},Xl={class:"field"},ql={key:0,class:"field"},Wl={key:1,class:"field"},Yl={class:"dry-run-row"},Jl={key:0,class:"dry-run-result"},Ql={key:0},Zl={key:1,class:"dry-run-note"},es={key:2},ts={class:"dry-run-note"},ns={key:1,class:"note"},as={key:5,class:"background-actions"},rs={key:6,class:"result"},os={key:0},is={key:2,class:"failures"};var ls=l({__name:"migrate-drawer",props:{modelValue:{type:Boolean},storages:{},sourceStorage:{},selectionKind:{},fileIds:{},folderId:{},sourcePath:{},estimatedCount:{},estimatedBytes:{}},emits:["update:modelValue","done"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=X(),w=H(),{running:S,backgrounded:k,progress:E,result:A,activeMode:$,activeTarget:C,start:I,runInBackground:T,attachForeground:j,cancel:D,clearListeners:M,clearLastResult:L}=_l(),F=o(null),P=o("move"),U=o(!0),B=o(!0),V=o(null),z=o(!1),G=o(null),K=o(!1),q=i(()=>S.value&&!K.value&&!k.value&&!a.modelValue),W=i(()=>Boolean(F.value)&&!S.value);function Y(e){V.value=e,K.value=!1,e.mode&&(P.value=e.mode),e.target_storage&&(F.value=e.target_storage)}async function J(){if(F.value&&!z.value){z.value=!0,G.value=null;try{const e={target_storage:F.value,include_empty_folders:B.value};"files"===a.selectionKind?e.file_ids=a.fileIds||[]:"storage"===a.selectionKind?e.source_storage=a.sourceStorage||void 0:"storage_path"===a.selectionKind?(e.source_storage=a.sourceStorage||void 0,e.source_path=a.sourcePath||void 0,e.recursive=U.value):"folder"===a.selectionKind&&(e.folder_id=a.folderId??null,e.recursive=U.value,a.sourceStorage&&(e.source_storage=a.sourceStorage));const t=await l.post("/storage-manager/migrate/dry-run",e);G.value=t.data?.data??null}catch{}finally{z.value=!1}}}y(F,()=>{G.value=null}),y(()=>a.modelValue,e=>{if(e)return S.value?(j({onDone:e=>{V.value=e,K.value=!1,r("done",e)},onCancel:e=>{V.value=e,K.value=!1},onError:e=>{V.value={mode:$.value||P.value,target_storage:C.value||F.value||"",total:E.totalFiles,succeeded:E.succeeded,skipped:E.skipped,failed:Math.max(1,E.failed),results:[{id:"",filename_disk:"",from:E.from||"",to:C.value||F.value||"",status:"failed",error:e.message||"Move failed"}],transferred_bytes:E.transferredBytes,total_bytes:E.totalBytes,elapsed_ms:E.elapsedMs},K.value=!1}}),K.value=!0,$.value&&(P.value=$.value),C.value&&(F.value=C.value),void(A.value&&(V.value=A.value))):void(A.value?Y(A.value):function(){V.value=null,G.value=null,K.value=!1;const e=a.storages.find(e=>e.location!==a.sourceStorage);F.value=e?.location||null,P.value="move",U.value=!0,B.value=!0}())}),y(A,e=>{a.modelValue&&e&&!S.value&&Y(e)}),y(S,(e,t)=>{a.modelValue&&t&&!e&&A.value&&Y(A.value)});const Q=i(()=>a.storages.filter(e=>e.location!==a.sourceStorage).map(e=>({text:`${e.location} (${e.short})`,value:e.location}))),Z=i(()=>"Move"),ee=i(()=>{const e=V.value?.total??(S.value&&E.totalFiles>0?E.totalFiles:null)??a.estimatedCount??a.fileIds?.length??0,t=V.value?.total_bytes??(S.value&&E.totalBytes>0?E.totalBytes:null)??a.estimatedBytes,n=null!=t?` (${Be(t)})`:"",r=Boolean(V.value);if("storage"===a.selectionKind)return r?`Moved ${e.toLocaleString()} files${n} from “${a.sourceStorage}”.`:`Move all ${e.toLocaleString()} files${n} on “${a.sourceStorage}”.`;if("storage_path"===a.selectionKind){const t=a.sourcePath||"this folder";return r?`Moved ${e.toLocaleString()} files${n} from “${t}”.`:null==a.estimatedCount?`Move all files in “${t}”${n}.`:`Move ${e.toLocaleString()} files${n} in “${t}”.`}if("folder"===a.selectionKind){const t=a.folderId?"in this folder":"at the root (files with no virtual folder)";return r?a.folderId?`Moved ${e.toLocaleString()} files${n} from this folder.`:`Moved ${e.toLocaleString()} root files${n}.`:null==a.estimatedCount?a.folderId?`Move all files ${t}${n}.`:`Move all root files${n} (files with no virtual folder).`:`Move ${e.toLocaleString()} files${n} ${t}.`}return r?`Moved ${e.toLocaleString()} selected file(s)${n}.`:`Move ${e.toLocaleString()} selected file(s)${n}.`}),te=i(()=>{if("storage"===a.selectionKind)return`Every file currently stored on "${a.sourceStorage}" will be moved to the target storage. The file record in Directus is updated to point to the new location — no data is lost. Generated thumbnails are moved as well. Physical files are deleted from "${a.sourceStorage}" once safely copied. Empty folders can be included so the destination tree matches the source.`;if("storage_path"===a.selectionKind){return`All files under "${a.sourcePath||"this path"}" on "${a.sourceStorage}" will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are removed from the source path once copied.`}return"folder"===a.selectionKind?"Files in the selected Directus folder will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are deleted from the source storage once copied.":"The selected files will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are deleted from the source once copied."}),ne=i(()=>(V.value?.results||[]).filter(e=>"failed"===e.status));function ae(e){e||!S.value||!K.value||k.value?r("update:modelValue",e):le()}function re(){S.value&&K.value&&!k.value?le():r("update:modelValue",!1)}function oe(){D()}function ie(){L(),V.value=null,r("update:modelValue",!1)}function le(){const e=b.path.startsWith("/storage-manager")?b.path:"/storage-manager";T({returnTo:e,navigate:()=>{w.push({path:e,query:{...b.query,migrateJob:"1"}})}})&&(K.value=!1,r("update:modelValue",!1))}async function se(){if(!F.value||S.value)return;V.value=null,K.value=!0;const e={target_storage:F.value,mode:P.value,keep_source_file_on_disk:!1,concurrency:1,file_ids:void 0,source_storage:void 0,source_path:void 0,folder_id:void 0,recursive:void 0,include_empty_folders:B.value};"files"===a.selectionKind?e.file_ids=a.fileIds||[]:"storage"===a.selectionKind?e.source_storage=a.sourceStorage||void 0:"storage_path"===a.selectionKind?(e.source_storage=a.sourceStorage||void 0,e.source_path=a.sourcePath||void 0,e.recursive=U.value):"folder"===a.selectionKind&&(e.folder_id=a.folderId??null,e.recursive=U.value,a.sourceStorage&&(e.source_storage=a.sourceStorage));try{await I(e,{estimatedCount:a.estimatedCount||a.fileIds?.length||0,estimatedBytes:a.estimatedBytes,sourceStorage:a.sourceStorage,listener:{onDone:e=>{K.value&&(V.value=e,r("done",e))},onCancel:e=>{K.value&&(V.value=e)},onError:e=>{K.value&&(V.value={mode:P.value,target_storage:F.value,total:E.totalFiles,succeeded:E.succeeded,skipped:E.skipped,failed:Math.max(1,E.failed),results:[{id:"",filename_disk:"",from:E.from||"",to:F.value,status:"failed",error:e.message||"Move failed"}],transferred_bytes:E.transferredBytes,total_bytes:E.totalBytes,elapsed_ms:E.elapsedMs})}}})}catch{}finally{K.value=!1,M()}}return(e,n)=>{const a=s("v-icon"),r=s("v-button"),o=s("v-notice"),i=s("v-select"),l=s("v-checkbox"),y=s("v-drawer"),b=R("tooltip");return c(),d(y,{"model-value":t.modelValue,title:"Move Files",icon:"swap_horiz",persistent:"","onUpdate:modelValue":ae,onCancel:re},{actions:u(()=>[O(S)||V.value?_("v-if",!0):N((c(),d(r,{key:0,disabled:!W.value,icon:"",rounded:"",onClick:se},{default:u(()=>[f(a,{name:"check"})]),_:1},8,["disabled"])),[[b,Z.value,void 0,{bottom:!0}]])]),default:u(()=>[x("div",Gl,[x("p",Kl,g(ee.value),1),O(S)||V.value?_("v-if",!0):(c(),p("p",Hl,g(te.value),1)),O(S)&&O(k)?(c(),d(o,{key:1,type:"info"},{default:u(()=>[...n[3]||(n[3]=[v(" Move continues in the background. You can close this drawer and navigate elsewhere in Studio. ",-1)])]),_:1})):q.value?(c(),d(o,{key:2,type:"warning"},{default:u(()=>[...n[4]||(n[4]=[v(" Another move is already running in the background. Wait for it to finish or cancel it from the progress toast. ",-1)])]),_:1})):_("v-if",!0),O(S)||V.value?_("v-if",!0):(c(),p(m,{key:3},[x("div",Xl,[n[5]||(n[5]=x("label",null,"Target Storage",-1)),f(i,{modelValue:F.value,"onUpdate:modelValue":n[0]||(n[0]=e=>F.value=e),items:Q.value,"item-text":"text","item-value":"value",placeholder:"Select target…"},null,8,["modelValue","items"])]),"folder"===t.selectionKind&&t.folderId||"storage_path"===t.selectionKind?(c(),p("div",ql,[f(l,{modelValue:U.value,"onUpdate:modelValue":n[1]||(n[1]=e=>U.value=e),label:"Include files in subfolders"},null,8,["modelValue"])])):_("v-if",!0),"storage"===t.selectionKind||"storage_path"===t.selectionKind?(c(),p("div",Wl,[f(l,{modelValue:B.value,"onUpdate:modelValue":n[2]||(n[2]=e=>B.value=e),label:"Include empty folders"},null,8,["modelValue"])])):_("v-if",!0),x("div",Yl,[f(r,{secondary:"",loading:z.value,disabled:!W.value,onClick:J},{default:u(()=>[...n[6]||(n[6]=[v(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),f(r,{disabled:!W.value,onClick:se},{default:u(()=>[...n[7]||(n[7]=[v("Run",-1)])]),_:1},8,["disabled"]),G.value?(c(),p("div",Jl,[x("span",null,g(G.value.total_files.toLocaleString())+" files",1),G.value.total_folders?(c(),p("span",Ql," · "+g(G.value.total_folders.toLocaleString())+" "+g(1===G.value.total_folders?"folder":"folders"),1)):_("v-if",!0),G.value.empty_folders?(c(),p("span",Zl," ("+g(G.value.empty_folders.toLocaleString())+" empty"+g(B.value?"":", skipped")+") ",1)):_("v-if",!0),G.value.total_bytes?(c(),p("span",es,"· "+g(O(Be)(G.value.total_bytes)),1)):_("v-if",!0),x("span",ts,"will be moved to "+g(F.value),1)])):(c(),p("p",ns," Count files, folders, and total size without moving anything. "))])],64)),O(S)&&!O(k)||V.value?(c(),d(zl,{key:4,storages:t.storages,mode:P.value,from:O(E).from,to:O(E).to,"current-index":O(E).currentIndex,"total-files":O(E).totalFiles,"current-name":O(E).currentName,"transferred-bytes":O(E).transferredBytes,"total-bytes":O(E).totalBytes,"elapsed-ms":O(E).elapsedMs,"speed-bps":O(E).speedBps,succeeded:O(E).succeeded,skipped:O(E).skipped,failed:O(E).failed,"is-done":Boolean(V.value)&&!O(S),"is-cancelled":Boolean(V.value?.cancelled)},null,8,["storages","mode","from","to","current-index","total-files","current-name","transferred-bytes","total-bytes","elapsed-ms","speed-bps","succeeded","skipped","failed","is-done","is-cancelled"])):_("v-if",!0),O(S)&&!O(k)?(c(),p("div",as,[f(r,{secondary:"",class:"background-btn",onClick:le},{default:u(()=>[...n[8]||(n[8]=[v(" Run in Background ",-1)])]),_:1}),f(r,{kind:"danger",secondary:"",class:"background-btn",onClick:oe},{default:u(()=>[...n[9]||(n[9]=[v(" Cancel Move ",-1)])]),_:1}),n[10]||(n[10]=x("p",{class:"note"}," Closing this drawer also runs in the background. Click the progress toast anytime for details. ",-1))])):_("v-if",!0),V.value?(c(),p("div",rs,[V.value.cancelled?(c(),d(o,{key:0,type:"warning",icon:"cancel"},{default:u(()=>[v(" Move cancelled. "+g(V.value.succeeded.toLocaleString())+" file(s) finished before stop ",1),V.value.total?(c(),p("span",os," (of "+g(V.value.total.toLocaleString())+" planned)",1)):_("v-if",!0),n[11]||(n[11]=v(". ",-1))]),_:1})):(c(),d(o,{key:1,type:V.value.failed?"danger":"success"},{default:u(()=>[v(g(V.value.succeeded)+" succeeded · "+g(V.value.skipped)+" skipped · "+g(V.value.failed)+" failed (of "+g(V.value.total)+") ",1)]),_:1},8,["type"])),!V.value.cancelled&&ne.value.length?(c(),p("div",is,[(c(!0),p(m,null,h(ne.value.slice(0,20),e=>(c(),p("div",{key:e.id,class:"fail-row"},[x("strong",null,g(e.filename_disk||e.id),1),x("span",null,g(e.error),1)]))),128))])):_("v-if",!0),f(r,{secondary:"",class:"background-btn",onClick:ie},{default:u(()=>[...n[12]||(n[12]=[v("Done",-1)])]),_:1})])):_("v-if",!0)])]),_:1},8,["model-value"])}}});we("\n.drawer-body[data-v-38d7930e] {\n\tpadding: 20px 24px 32px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 18px;\n}\n.intro[data-v-38d7930e] {\n\tmargin: 0;\n\tcolor: var(--theme--foreground);\n}\n.description[data-v-38d7930e] {\n\tmargin: 0;\n\tfont-size: 14px;\n\tcolor: var(--theme--foreground-subdued);\n\tline-height: 1.5;\n}\n.field[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n.field label[data-v-38d7930e] {\n\tfont-weight: 600;\n}\n.mode-radios[data-v-38d7930e] {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 10px;\n}\n.mode-radios[data-v-38d7930e] .v-radio.block {\n\twidth: 100%;\n\tmargin: 0;\n}\n.note[data-v-38d7930e] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.background-actions[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n}\n.background-actions .note[data-v-38d7930e] {\n\tflex: 1 1 100%;\n}\n.result .background-btn[data-v-38d7930e] {\n\talign-self: flex-start;\n}\n.dry-run-row[data-v-38d7930e] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tflex-wrap: wrap;\n}\n.dry-run-result[data-v-38d7930e] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-size: 14px;\n\tfont-weight: 600;\n}\n.dry-run-note[data-v-38d7930e] {\n\tfont-weight: 400;\n\tcolor: var(--theme--foreground-subdued);\n}\n.result[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n.failures[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tmax-height: 240px;\n\toverflow: auto;\n\tpadding: 8px 0;\n}\n.fail-row[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tfont-size: 12px;\n\tpadding: 8px 10px;\n\tbackground: var(--theme--background-subdued);\n\tborder-radius: var(--theme--border-radius);\n}\n.fail-row span[data-v-38d7930e] {\n\tcolor: var(--theme--danger);\n}\n",{});var ss=xe(ls,[["__scopeId","data-v-38d7930e"]]);const cs={class:"body"},ds={class:"intro"},us={class:"toolbar"},fs={key:0,class:"meta"},ps={key:1,class:"loading"},ms={key:2,class:"error"},hs={key:3,class:"empty"},vs={key:4,class:"table-wrap"},gs={class:"check-col"},ys={class:"check-col"},bs=["title"];var _s=l({__name:"import-orphans-drawer",props:{modelValue:{type:Boolean},location:{},storagePath:{}},emits:["update:modelValue","imported"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=o(!1),w=o(!1),S=o(!1),k=o(!1),E=o(!1),A=o(!1),C=o(null),I=o([]),T=o([]),j=o(null),D=o(null),M=o(null),L=i(()=>String(a.storagePath||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"").replace(/\/+/g,"/")||""),F=i(()=>L.value?"Detect Files in this Folder":`Detect Files on ${a.location}`),P=i(()=>I.value.length>0&&T.value.length===I.value.length);function U(){k.value=!1,E.value=!1,r("update:modelValue",!1)}function B(e){T.value=e?I.value.map(e=>e.filename_disk):[]}function V(){!I.value.length||w.value||S.value||(k.value=!0)}function z(){!T.value.length||w.value||S.value||(E.value=!0)}async function G(){if(a.location){b.value=!0,C.value=null;try{const e=await l.get(`/storage-manager/storages/${encodeURIComponent(a.location)}/orphans`,{params:L.value?{path:L.value}:void 0});I.value=e.data?.data||[],j.value=e.data?.meta||null,A.value=!0,T.value=[]}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),I.value=[],j.value=null}finally{b.value=!1}}}async function K(){if(I.value.length){w.value=!0,C.value=null;try{const e=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/import-orphans`,{filename_disks:I.value.map(e=>e.filename_disk)}),t=e.data?.data;D.value={imported:Number(t?.imported||0),skipped:Number(t?.skipped||0),failed:Number(t?.failed||0)},k.value=!1,r("imported"),await G()}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),k.value=!1}finally{w.value=!1}}}async function H(){if(!T.value.length)return;S.value=!0,C.value=null;const e=[...T.value];try{const t=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/delete-orphans`,{filename_disks:e}),n=t.data?.data;M.value={deleted:Number(n?.deleted||0),skipped:Number(n?.skipped||0),failed:Number(n?.failed||0)},D.value=null,E.value=!1,r("imported"),await G()}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),E.value=!1}finally{S.value=!1}}return y(()=>a.modelValue,e=>{e&&(D.value=null,M.value=null,C.value=null,k.value=!1,E.value=!1,G())}),(e,n)=>{const a=s("v-icon"),r=s("v-button"),o=s("v-progress-circular"),i=s("v-checkbox"),l=s("v-drawer"),y=s("v-card-title"),X=s("v-card-text"),q=s("v-card-actions"),W=s("v-card"),Y=s("v-dialog"),J=R("tooltip");return c(),p(m,null,[f(l,{"model-value":t.modelValue,title:F.value,icon:"folder_off","onUpdate:modelValue":n[0]||(n[0]=t=>e.$emit("update:modelValue",t)),onCancel:U},{actions:u(()=>[T.value.length?N((c(),d(r,{key:0,icon:"",rounded:"",secondary:"",disabled:S.value||b.value,loading:S.value,onClick:z},{default:u(()=>[f(a,{name:"delete"})]),_:1},8,["disabled","loading"])),[[J,"Delete Selected from Storage",void 0,{bottom:!0}]]):_("v-if",!0),N((c(),d(r,{icon:"",rounded:"",disabled:!I.value.length||w.value||b.value||S.value,loading:w.value,onClick:V},{default:u(()=>[f(a,{name:"download"})]),_:1},8,["disabled","loading"])),[[J,"Import All Unknown Files",void 0,{bottom:!0}]])]),default:u(()=>[x("div",cs,[x("p",ds,[L.value?(c(),p(m,{key:0},[n[7]||(n[7]=v(" Finds files under ",-1)),x("strong",null,g(L.value),1),n[8]||(n[8]=v(" on ",-1)),x("strong",null,g(t.location),1),n[9]||(n[9]=v(" that aren’t registered in Directus yet. ",-1))],64)):(c(),p(m,{key:1},[n[10]||(n[10]=v(" Finds files on ",-1)),x("strong",null,g(t.location),1),n[11]||(n[11]=v(" that aren’t registered in Directus yet. ",-1))],64)),n[12]||(n[12]=v(" Import only creates database rows — nothing is copied. Titles come from the filename (underscores become spaces). You can delete selected unknown files from storage. Generated thumbnails are excluded. ",-1))]),x("div",us,[f(r,{secondary:"",loading:b.value,disabled:S.value,onClick:G},{default:u(()=>[f(a,{name:"radar",left:""}),v(" "+g(L.value?"Scan Folder":"Scan Storage"),1)]),_:1},8,["loading","disabled"]),f(r,{disabled:!I.value.length||w.value||b.value||S.value,loading:w.value,onClick:V},{default:u(()=>[v(" Import "+g(I.value.length||"")+" New File"+g(1===I.value.length?"":"s"),1)]),_:1},8,["disabled","loading"]),f(r,{secondary:"",disabled:!T.value.length||w.value||b.value||S.value,loading:S.value,onClick:z},{default:u(()=>[f(a,{name:"delete",left:""}),v(" Delete Selected ("+g(T.value.length)+") ",1)]),_:1},8,["disabled","loading"])]),j.value?(c(),p("p",fs," Scanned "+g(j.value.scanned.toLocaleString())+" objects · "+g(j.value.known.toLocaleString())+" already in DB · "+g(j.value.orphan_count.toLocaleString())+" unknown ",1)):_("v-if",!0),b.value?(c(),p("div",ps,[f(o,{indeterminate:""}),n[13]||(n[13]=x("span",null,"Listing storage…",-1))])):C.value?(c(),p("p",ms,g(C.value),1)):A.value&&!I.value.length?(c(),p("p",hs,[L.value?(c(),p(m,{key:0},[v(" No unknown files in this folder. Everything here is already in the database. ")],64)):(c(),p(m,{key:1},[v(" No unknown files on this storage. Everything here is already in the database. ")],64))])):I.value.length?(c(),p("div",vs,[x("table",null,[x("thead",null,[x("tr",null,[x("th",gs,[f(i,{"model-value":P.value,"onUpdate:modelValue":B},null,8,["model-value"])]),n[14]||(n[14]=x("th",null,"filename_disk",-1)),n[15]||(n[15]=x("th",null,"Type",-1)),n[16]||(n[16]=x("th",null,"Size",-1))])]),x("tbody",null,[(c(!0),p(m,null,h(I.value,e=>(c(),p("tr",{key:e.filename_disk},[x("td",ys,[f(i,{"model-value":T.value.includes(e.filename_disk),"onUpdate:modelValue":t=>function(e,t){t?T.value.includes(e)||(T.value=[...T.value,e]):T.value=T.value.filter(t=>t!==e)}(e.filename_disk,t)},null,8,["model-value","onUpdate:modelValue"])]),x("td",{class:"name",title:e.filename_disk},g(e.filename_disk),9,bs),x("td",null,g(e.type||"—"),1),x("td",null,g(O(Be)(e.filesize)),1)]))),128))])])])):_("v-if",!0),M.value?(c(),p("div",{key:5,class:$(["result",M.value.failed?"has-fail":"ok"])}," Deleted "+g(M.value.deleted)+" · skipped "+g(M.value.skipped)+" · failed "+g(M.value.failed),3)):_("v-if",!0),D.value?(c(),p("div",{key:6,class:$(["result",D.value.failed?"has-fail":"ok"])}," Imported "+g(D.value.imported)+" · skipped "+g(D.value.skipped)+" · failed "+g(D.value.failed),3)):_("v-if",!0)])]),_:1},8,["model-value","title"]),f(Y,{"model-value":k.value,"onUpdate:modelValue":n[2]||(n[2]=e=>k.value=e),onEsc:n[3]||(n[3]=e=>k.value=!1)},{default:u(()=>[f(W,null,{default:u(()=>[f(y,null,{default:u(()=>[...n[17]||(n[17]=[v("Import new files?",-1)])]),_:1}),f(X,null,{default:u(()=>[n[18]||(n[18]=v(" Do you want to import ",-1)),x("strong",null,g(I.value.length.toLocaleString()),1),v(" new file"+g(1===I.value.length?"":"s")+" into storage ",1),x("strong",null,g(t.location),1),n[19]||(n[19]=v("? ",-1)),n[20]||(n[20]=x("br",null,null,-1)),n[21]||(n[21]=x("br",null,null,-1)),n[22]||(n[22]=v(" Each file keeps its exact ",-1)),n[23]||(n[23]=x("code",null,"filename_disk",-1)),n[24]||(n[24]=v(". Titles are generated from the filename with underscores replaced by spaces (extension stripped). Image width and height are read from the file so thumbnails can be generated. ",-1))]),_:1}),f(q,null,{default:u(()=>[f(r,{secondary:"",disabled:w.value,onClick:n[1]||(n[1]=e=>k.value=!1)},{default:u(()=>[...n[25]||(n[25]=[v("Cancel",-1)])]),_:1},8,["disabled"]),f(r,{loading:w.value,onClick:K},{default:u(()=>[v(" Import "+g(I.value.length.toLocaleString()),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]),f(Y,{"model-value":E.value,"onUpdate:modelValue":n[5]||(n[5]=e=>E.value=e),onEsc:n[6]||(n[6]=e=>E.value=!1)},{default:u(()=>[f(W,null,{default:u(()=>[f(y,null,{default:u(()=>[...n[26]||(n[26]=[v("Delete from Storage?",-1)])]),_:1}),f(X,null,{default:u(()=>[n[27]||(n[27]=v(" Permanently delete ",-1)),x("strong",null,g(T.value.length.toLocaleString()),1),v(" file"+g(1===T.value.length?"":"s")+" from storage ",1),x("strong",null,g(t.location),1),n[28]||(n[28]=v("? ",-1)),n[29]||(n[29]=x("br",null,null,-1)),n[30]||(n[30]=x("br",null,null,-1)),n[31]||(n[31]=v(" Only unregistered files are removed. Generated thumbnails are not deleted. ",-1))]),_:1}),f(q,null,{default:u(()=>[f(r,{secondary:"",disabled:S.value,onClick:n[4]||(n[4]=e=>E.value=!1)},{default:u(()=>[...n[32]||(n[32]=[v("Cancel",-1)])]),_:1},8,["disabled"]),f(r,{kind:"danger",loading:S.value,onClick:H},{default:u(()=>[v(" Delete "+g(T.value.length.toLocaleString()),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"])],64)}}});we("\n.body[data-v-15d8b708] {\n\tpadding: 0 24px 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n}\n.intro[data-v-15d8b708] {\n\tmargin: 0;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tfont-size: 13px;\n}\n.intro code[data-v-15d8b708],\n.v-card-text code[data-v-15d8b708] {\n\tfont-size: 12px;\n}\n.toolbar[data-v-15d8b708] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n}\n.meta[data-v-15d8b708],\n.empty[data-v-15d8b708] {\n\tmargin: 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.loading[data-v-15d8b708] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.error[data-v-15d8b708] {\n\tmargin: 0;\n\tcolor: var(--theme--danger);\n\tfont-size: 13px;\n}\n.table-wrap[data-v-15d8b708] {\n\toverflow: auto;\n\tmax-height: 50vh;\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n}\ntable[data-v-15d8b708] {\n\twidth: 100%;\n\tborder-collapse: collapse;\n\tfont-size: 13px;\n}\nth[data-v-15d8b708],\ntd[data-v-15d8b708] {\n\tpadding: 8px 10px;\n\ttext-align: left;\n\tborder-bottom: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\nth[data-v-15d8b708] {\n\tfont-weight: 700;\n\tbackground: var(--theme--background-subdued);\n\tposition: sticky;\n\ttop: 0;\n}\n.name[data-v-15d8b708] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tmax-width: 280px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.check-col[data-v-15d8b708] {\n\twidth: 36px;\n\tpadding-left: 8px;\n\tpadding-right: 4px;\n\tvertical-align: middle;\n}\n.check-col[data-v-15d8b708] .v-checkbox {\n\tmargin: 0;\n}\n.result[data-v-15d8b708] {\n\tpadding: 10px 12px;\n\tborder-radius: var(--theme--border-radius);\n\tfont-size: 13px;\n\tfont-weight: 600;\n}\n.result.ok[data-v-15d8b708] {\n\tbackground: color-mix(in srgb, var(--theme--success) 16%, transparent);\n\tcolor: var(--theme--success);\n}\n.result.has-fail[data-v-15d8b708] {\n\tbackground: color-mix(in srgb, var(--theme--warning) 16%, transparent);\n\tcolor: var(--theme--warning);\n}\n",{});var ws=xe(_s,[["__scopeId","data-v-15d8b708"]]),xs=l({__name:"add-storage-folder",props:{location:{},parentPath:{}},emits:["created"],setup(t,{emit:n}){const a=t,r=n,i=e(),l=H(),p=o(!1),m=o(!1),h=o(null);async function g(){if(h.value?.trim()&&!m.value){m.value=!0;try{const e=await i.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/folders`,{name:h.value.trim(),parent_path:a.parentPath||""}),t=String(e.data?.data?.path||"");p.value=!1,h.value=null,r("created",t),t&&l.push(Re(a.location,t))}catch(e){const t=e?.response?.data?.errors?.[0]?.message||e?.message||"Could not create folder";window.alert(t)}finally{m.value=!1}}}return(e,t)=>{const n=s("v-card-title"),a=s("v-input"),r=s("v-card-text"),o=s("v-button"),i=s("v-card-actions"),l=s("v-card"),y=s("v-dialog"),b=R("tooltip");return c(),d(y,{modelValue:p.value,"onUpdate:modelValue":t[2]||(t[2]=e=>p.value=e),onEsc:t[3]||(t[3]=e=>p.value=!1),onApply:g},{activator:u(({on:e})=>[N(f(Yi,{icon:"create_new_folder",secondary:"",onClick:e},null,8,["onClick"]),[[b,"Create Storage Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(l,null,{default:u(()=>[f(n,null,{default:u(()=>[...t[4]||(t[4]=[v("Create Storage Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[f(a,{modelValue:h.value,"onUpdate:modelValue":t[0]||(t[0]=e=>h.value=e),autofocus:"",placeholder:"Folder name",onKeydown:k(g,["enter"])},null,8,["modelValue"])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[1]||(t[1]=e=>p.value=!1)},{default:u(()=>[...t[5]||(t[5]=[v("Cancel",-1)])]),_:1}),f(o,{disabled:!h.value?.trim(),loading:m.value,onClick:g},{default:u(()=>[...t[6]||(t[6]=[v("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}});const Ss=["onClick","onKeydown","onContextmenu"],ks={class:"header"},Es={class:"title"};var As=l({__name:"storage-folder-section",props:S({location:{},folders:{},anyFileSelection:{type:Boolean}},{selection:{default:()=>[]},selectionModifiers:{}}),emits:S(["changed"],["update:selection"]),setup(e,{emit:t}){const n=e,a=t,r=w(e,"selection"),l=H(),d=o({}),u=i(()=>r.value.length>0||(n.anyFileSelection??!1));function v(e){r.value.includes(e)?r.value=r.value.filter(t=>t!==e):r.value=[...r.value,e]}function y(e){var t;u.value?v(e.path):(t=e.path,l.push(Re(n.location,t)))}function b(){a("changed")}return(t,n)=>{const a=s("v-icon");return c(),p(m,null,[_("\n\t\tFragment of cards — must be direct children of layout-cards `.grid`\n\t\t(same as File Library FolderSection + Card), not a nested grid wrapper.\n\t"),(c(!0),p(m,null,h(e.folders,t=>{return c(),p("div",{key:t.path,class:$(["card folder-card",{selected:r.value.includes(t.path),"select-mode":u.value}]),tabindex:"0",onClick:e=>y(t),onKeydown:[k(E(e=>y(t),["self","prevent"]),["enter"]),k(E(e=>y(t),["self","prevent"]),["space"])],onContextmenu:E(e=>{return n=e,a=t.path,void d.value[a]?.open(n);var n,a},["prevent"])},[f(a,{class:"selector",name:(o=t.path,r.value.includes(o)?"check_circle":"radio_button_unchecked"),clickable:"",onClick:E(e=>v(t.path),["stop"])},null,8,["name","onClick"]),x("div",ks,[n[0]||(n[0]=x("div",{class:"selection-fade"},null,-1)),f(a,{large:"",name:"folder"})]),x("div",Es,g(t.name),1),f(Te,{ref_for:!0,ref:e=>function(e,t){d.value[e]=t}(t.path,e),location:e.location,path:t.path,name:t.name,onChanged:b},null,8,["location","path","name"])],42,Ss);var o}),128))],2112)}}});we("\n/* Port of Directus layouts/cards/components/card.vue (folder-only subset) */\n.card[data-v-89b52992] {\n\tposition: relative;\n\tcursor: pointer;\n}\n.card[data-v-89b52992]:focus-visible {\n\toutline: none;\n}\n.card[data-v-89b52992]:focus-visible::after {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 2;\n\tinline-size: 100%;\n\taspect-ratio: 1 / 1;\n\tborder-radius: var(--theme--border-radius);\n\toutline: var(--focus-ring-width) solid var(--focus-ring-color);\n\toutline-offset: var(--focus-ring-offset);\n\tcontent: '';\n\tpointer-events: none;\n}\n.header[data-v-89b52992] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 100%;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--primary-subdued);\n\tborder-style: solid;\n\tborder-width: 0;\n\tborder-radius: var(--theme--border-radius);\n\ttransition: border-width var(--fast) var(--transition);\n}\n.header[data-v-89b52992]::after {\n\tdisplay: block;\n\tpadding-block-end: 100%;\n\tcontent: '';\n}\n.header .v-icon[data-v-89b52992] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tposition: absolute;\n}\n.selection-fade[data-v-89b52992] {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 1;\n\tinline-size: 100%;\n\tblock-size: 2.6875rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n}\n.selection-fade[data-v-89b52992]::before {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tbackground-image: linear-gradient(-180deg, rgb(38 50 56 / 0.1) 10%, rgb(38 50 56 / 0));\n\tcontent: '';\n}\n.card[data-v-89b52992]::before {\n\tposition: absolute;\n\tinset-block-start: 0.375rem;\n\tinset-inline-start: 0.375rem;\n\tz-index: 2;\n\tinline-size: 1rem;\n\tblock-size: 1rem;\n\tbackground-color: var(--theme--background);\n\tborder-radius: 1.375rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n\tcontent: '';\n}\n.selector[data-v-89b52992] {\n\t--v-icon-color: var(--white);\n\t--v-icon-color-hover: var(--white);\n\t--focus-ring-offset: 0;\n\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 3;\n\tmargin: 0.25rem;\n\topacity: 0;\n\ttransition:\n\t\topacity var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition);\n}\n.selector[data-v-89b52992]:focus-visible,\n.selector[data-v-89b52992]:hover {\n\topacity: 1 !important;\n}\n.card.select-mode .selector[data-v-89b52992] {\n\topacity: 0.5;\n}\n.card.select-mode .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.card.selected[data-v-89b52992]::before {\n\topacity: 1;\n}\n.card.selected .selector[data-v-89b52992] {\n\t--v-icon-color: var(--theme--primary);\n\t--v-icon-color-hover: var(--theme--primary);\n\topacity: 1;\n}\n.card.selected .header[data-v-89b52992] {\n\tborder-width: 12px;\n}\n.card.selected .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.card:hover .selector[data-v-89b52992] {\n\topacity: 0.5;\n}\n.card:hover .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.title[data-v-89b52992] {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tinline-size: 100%;\n\tblock-size: 1.4375rem;\n\tmargin-block-start: 0.125rem;\n\toverflow: hidden;\n\tline-height: 1.3;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n",{});var Os=xe(As,[["__scopeId","data-v-89b52992"]]);const $s=["onClick","onKeydown"],Cs={class:"header"},Is={class:"title"};var Rs=l({__name:"directus-folder-section",props:S({folders:{},anyFileSelection:{type:Boolean}},{selection:{default:()=>[]},selectionModifiers:{}}),emits:["update:selection"],setup(e){const t=e,n=w(e,"selection"),a=H(),r=i(()=>n.value.length>0||(t.anyFileSelection??!1));function o(e){n.value.includes(e)?n.value=n.value.filter(t=>t!==e):n.value=[...n.value,e]}function l(e){var t;r.value?o(e.id):(t=e.id,a.push(`/storage-manager/folders/${t}`))}return(t,a)=>{const i=s("v-icon");return c(),p(m,null,[_("\n\t\tFragment of cards for Directus virtual folders — same grid pattern as\n\t\tFile Library FolderSection / storage-folder-section.\n\t"),(c(!0),p(m,null,h(e.folders,e=>{return c(),p("div",{key:e.id,class:$(["card folder-card",{selected:n.value.includes(e.id),"select-mode":r.value}]),tabindex:"0",onClick:t=>l(e),onKeydown:[k(E(t=>l(e),["self","prevent"]),["enter"]),k(E(t=>l(e),["self","prevent"]),["space"])]},[f(i,{class:"selector",name:(t=e.id,n.value.includes(t)?"check_circle":"radio_button_unchecked"),clickable:"",onClick:E(t=>o(e.id),["stop"])},null,8,["name","onClick"]),x("div",Cs,[a[0]||(a[0]=x("div",{class:"selection-fade"},null,-1)),f(i,{large:"",name:"folder",outline:""})]),x("div",Is,g(e.name),1)],42,$s);var t}),128))],2112)}}});we("\n/* Port of Directus layouts/cards/components/card.vue (folder-only subset) */\n.card[data-v-d206f12f] {\n\tposition: relative;\n\tcursor: pointer;\n}\n.card[data-v-d206f12f]:focus-visible {\n\toutline: none;\n}\n.card[data-v-d206f12f]:focus-visible::after {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 2;\n\tinline-size: 100%;\n\taspect-ratio: 1 / 1;\n\tborder-radius: var(--theme--border-radius);\n\toutline: var(--focus-ring-width) solid var(--focus-ring-color);\n\toutline-offset: var(--focus-ring-offset);\n\tcontent: '';\n\tpointer-events: none;\n}\n.header[data-v-d206f12f] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 100%;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--primary-subdued);\n\tborder-style: solid;\n\tborder-width: 0;\n\tborder-radius: var(--theme--border-radius);\n\ttransition: border-width var(--fast) var(--transition);\n}\n.header[data-v-d206f12f]::after {\n\tdisplay: block;\n\tpadding-block-end: 100%;\n\tcontent: '';\n}\n.header .v-icon[data-v-d206f12f] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tposition: absolute;\n}\n.selection-fade[data-v-d206f12f] {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 1;\n\tinline-size: 100%;\n\tblock-size: 2.6875rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n}\n.selection-fade[data-v-d206f12f]::before {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tbackground-image: linear-gradient(-180deg, rgb(38 50 56 / 0.1) 10%, rgb(38 50 56 / 0));\n\tcontent: '';\n}\n.card[data-v-d206f12f]::before {\n\tposition: absolute;\n\tinset-block-start: 0.375rem;\n\tinset-inline-start: 0.375rem;\n\tz-index: 2;\n\tinline-size: 1rem;\n\tblock-size: 1rem;\n\tbackground-color: var(--theme--background);\n\tborder-radius: 1.375rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n\tcontent: '';\n}\n.selector[data-v-d206f12f] {\n\t--v-icon-color: var(--white);\n\t--v-icon-color-hover: var(--white);\n\t--focus-ring-offset: 0;\n\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 3;\n\tmargin: 0.25rem;\n\topacity: 0;\n\ttransition:\n\t\topacity var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition);\n}\n.selector[data-v-d206f12f]:focus-visible,\n.selector[data-v-d206f12f]:hover {\n\topacity: 1 !important;\n}\n.card.select-mode .selector[data-v-d206f12f] {\n\topacity: 0.5;\n}\n.card.select-mode .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.card.selected[data-v-d206f12f]::before {\n\topacity: 1;\n}\n.card.selected .selector[data-v-d206f12f] {\n\t--v-icon-color: var(--theme--primary);\n\t--v-icon-color-hover: var(--theme--primary);\n\topacity: 1;\n}\n.card.selected .header[data-v-d206f12f] {\n\tborder-width: 12px;\n}\n.card.selected .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.card:hover .selector[data-v-d206f12f] {\n\topacity: 0.5;\n}\n.card:hover .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.title[data-v-d206f12f] {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tinline-size: 100%;\n\tblock-size: 1.4375rem;\n\tmargin-block-start: 0.125rem;\n\toverflow: hidden;\n\tfont-weight: 600;\n\tline-height: 1.3;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n",{});var Ns=xe(Rs,[["__scopeId","data-v-d206f12f"]]);const Ts={key:1,class:"folder-picker"},js={key:0,class:"empty"};var Ds=l({__name:"storage-target-picker",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{storages:r,loadStorages:l}=ie(),{trees:w,loading:x,loadTree:S}=fe(),k=o([]),E=i(()=>r.value.map(e=>e.location)),A=i(()=>{const e=n.modelValue?.location||"",t=String(n.modelValue?.path||"").replace(/^\/+|\/+$/g,"");if(!e)return[];const a=[`@${e}`];if(!t)return a;const r=t.split("/").filter(Boolean);for(let t=1;t<=r.length;t++)a.push(`${e}::${r.slice(0,t).join("/")}`);return a});function $(e,t){a("update:modelValue",{location:e,path:t})}return y(A,e=>{const t=new Set(k.value);for(const n of e)t.add(n);k.value=Array.from(t)},{immediate:!0}),y(k,e=>{for(const t of e){if("string"!=typeof t||!t.startsWith("@"))continue;const e=t.slice(1);e&&void 0===w.value[e]&&S(e)}},{deep:!0}),b(()=>{!async function(){await l().catch(()=>{})}()}),(t,a)=>{const r=s("v-skeleton-loader"),o=s("v-icon"),i=s("v-list-item-icon"),l=s("v-list-item-content"),y=s("v-list-group"),b=s("v-item-group"),S=s("v-list");return O(x)&&!E.value.length?(c(),d(r,{key:0})):(c(),p("div",Ts,[f(S,null,{default:u(()=>[f(b,{modelValue:k.value,"onUpdate:modelValue":a[0]||(a[0]=e=>k.value=e),scope:"storage-target-picker",multiple:""},{default:u(()=>[(c(!0),p(m,null,h(E.value,t=>{return c(),d(y,{key:t,"disable-groupable-parent":"",clickable:"",active:(a=t,r="",n.modelValue?.location===a&&(n.modelValue?.path||"")===r),scope:"storage-target-picker",value:`@${t}`,"arrow-placement":(O(w)[t]||[]).length>0&&"after",onClick:e=>$(t,"")},{activator:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"storage"})]),_:1}),f(l,null,{default:u(()=>[v("Root ("+g(t)+")",1)]),_:2},1024)]),default:u(()=>[(c(!0),p(m,null,h(O(w)[t]||[],n=>(c(),d(he,{key:`${t}:${n.path}`,folder:n,"current-path":e.modelValue.location===t?e.modelValue.path:"__none__","click-handler":e=>$(t,e),scope:"storage-target-picker","value-prefix":`${t}::`},null,8,["folder","current-path","click-handler","value-prefix"]))),128))]),_:2},1032,["active","value","arrow-placement","onClick"]);var a,r}),128))]),_:1},8,["modelValue"])]),_:1}),E.value.length?_("v-if",!0):(c(),p("p",js,"No storage adapters configured."))]))}}});we("\n.folder-picker[data-v-0cc7349b] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-0cc7349b] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ms=xe(Ds,[["__scopeId","data-v-0cc7349b"]]),Ls=l({__name:"upload-files-dialog",props:{modelValue:{type:Boolean},title:{default:"Add File"},uploading:{type:Boolean,default:!1}},emits:["update:modelValue","files"],setup(e,{emit:t}){const n=t,a=o(null),r=o(!1);let i=0;function l(){n("update:modelValue",!1)}function h(e){n("update:modelValue",e),e||(r.value=!1,i=0)}function y(){a.value?.click()}function b(e){const t=Array.from(e||[]).filter(e=>Boolean(e.type)||e.size>0);t.length&&n("files",t)}function _(e){const t=e.target;b(t.files),t.value=""}function w(){i++,1===i&&(r.value=!0)}function S(){i--,i<=0&&(i=0,r.value=!1)}function k(e){i=0,r.value=!1,b(e.dataTransfer?.files)}return(t,n)=>{const o=s("v-card-title"),i=s("v-progress-circular"),b=s("v-icon"),A=s("v-card-text"),O=s("v-button"),C=s("v-card-actions"),I=s("v-card"),R=s("v-dialog");return c(),d(R,{"model-value":e.modelValue,"onUpdate:modelValue":h,onEsc:l},{default:u(()=>[f(I,null,{default:u(()=>[f(o,null,{default:u(()=>[v(g(e.title),1)]),_:1}),f(A,null,{default:u(()=>[x("div",{class:$(["upload-zone",{dragging:r.value,uploading:e.uploading}]),"data-dropzone":"",onClick:y,onDragenter:E(w,["prevent"]),onDragover:n[1]||(n[1]=E(()=>{},["prevent"])),onDragleave:E(S,["prevent"]),onDrop:E(k,["prevent","stop"])},[e.uploading?(c(),p(m,{key:0},[f(i,{indeterminate:""}),n[2]||(n[2]=x("p",null,"Uploading…",-1))],64)):(c(),p(m,{key:1},[f(b,{large:"",name:r.value?"file_download":"file_upload"},null,8,["name"]),x("p",null,g(r.value?"Drop files to upload":"Drag and drop files here"),1),n[3]||(n[3]=x("p",{class:"hint"},"or click to browse from your device",-1))],64)),x("input",{ref_key:"fileInput",ref:a,class:"hidden-input",type:"file",multiple:"",onChange:_,onClick:n[0]||(n[0]=E(()=>{},["stop"]))},null,544)],34)]),_:1}),f(C,null,{default:u(()=>[f(O,{onClick:l},{default:u(()=>[...n[4]||(n[4]=[v("Done",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}}});we("\n.upload-zone[data-v-63a4ef66] {\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 8px;\n\tmin-block-size: 12.5rem;\n\tpadding: 2rem 1.5rem;\n\tcolor: var(--theme--foreground-subdued);\n\ttext-align: center;\n\tcursor: pointer;\n\tbackground-color: var(--theme--background);\n\tborder: var(--theme--border-width) dashed var(--theme--form--field--input--border-color);\n\tborder-radius: var(--theme--border-radius);\n\ttransition:\n\t\tborder-color var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition),\n\t\tbackground-color var(--fast) var(--transition);\n}\n.upload-zone[data-v-63a4ef66]:hover,\n.upload-zone.dragging[data-v-63a4ef66] {\n\tcolor: var(--theme--primary);\n\tbackground-color: var(--theme--primary-background);\n\tborder-color: var(--theme--primary);\n}\n.upload-zone.uploading[data-v-63a4ef66] {\n\tpointer-events: none;\n\tcursor: default;\n}\n.upload-zone p[data-v-63a4ef66] {\n\tmargin: 0;\n\tcolor: inherit;\n}\n.upload-zone .hint[data-v-63a4ef66] {\n\tfont-size: 13px;\n\topacity: 0.85;\n}\n.hidden-input[data-v-63a4ef66] {\n\tposition: absolute;\n\tinline-size: 0;\n\tblock-size: 0;\n\topacity: 0;\n\tpointer-events: none;\n}\n",{});var Fs=xe(Ls,[["__scopeId","data-v-63a4ef66"]]);const Ps={class:"drawer-body"},Us={class:"field"},Bs={class:"mode-cards"},Vs={class:"mode-card-header"},zs={class:"mode-card-header"},Gs={key:0,class:"field"},Ks={key:1,class:"field"},Hs={class:"field"},Xs={class:"actions"},qs={key:3,class:"result"},Ws={key:0},Ys={key:1},Js={key:2,class:"note"},Qs={key:3,class:"by-storage"},Zs={key:4,class:"empty-storage"},ec={key:4,class:"result"};var tc=l({__name:"materialize-drawer",props:{modelValue:{type:Boolean},storages:{},folderId:{}},emits:["update:modelValue","done"],setup(t,{emit:n}){const a=t,r=n,l=e(),y=o("preserve"),b=o(null),w=o(!1),S=o(!0),k=o(!1),E=o(!1),A=o(!1),C=o(null),I=o(null),R=o(null),N=o(null),T=o(0),j=o({from:null,to:"",currentIndex:0,totalFiles:0,currentName:"",transferredBytes:0,totalBytes:0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0}),D=i(()=>a.storages.map(e=>({text:`${e.location} (${e.short})`,value:e.location}))),M=i(()=>"merge"!==y.value||Boolean(b.value));async function L(){C.value=null,k.value=!0;try{const e=await l.post("/storage-manager/materialize/dry-run",{folder_id:a.folderId??null,mode:y.value,target_storage:"merge"===y.value?b.value:void 0,structure_only:w.value,recursive:S.value});I.value=e.data?.data||null}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed"}finally{k.value=!1}}async function F(){if(M.value){C.value=null,E.value=!0,A.value=!1,T.value=Date.now(),j.value={from:null,to:"merge"===y.value?String(b.value||""):"preserve",currentIndex:0,totalFiles:I.value?.total_files||0,currentName:"",transferredBytes:0,totalBytes:I.value?.total_bytes||0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0};try{N.value=new AbortController;const e=await fetch("/storage-manager/materialize/stream",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},credentials:"same-origin",signal:N.value.signal,body:JSON.stringify({folder_id:a.folderId??null,mode:y.value,target_storage:"merge"===y.value?b.value:void 0,structure_only:w.value,keep_source_file_on_disk:!1,recursive:S.value})});await async function(e,t){if(!e.ok){let t=`Materialize failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for materialize stream");const n=e.body.getReader(),a=new TextDecoder;let r="";for(;;){const{done:e,value:o}=await n.read();if(e)break;r+=a.decode(o,{stream:!0});const i=r.split("\n\n");r=i.pop()||"";for(const e of i)for(const n of e.split("\n")){const e=n.trim();if(!e.startsWith("data:"))continue;const a=e.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"error"===r.type)throw new Error(r.message||"Materialize failed")}}}(e,U),r("done")}catch(e){"AbortError"===e?.name?A.value=!0:C.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Materialize failed"}finally{E.value=!1,N.value=null}}}function P(){N.value?.abort()}function U(e){const t=Date.now()-T.value;return"start"===e.type?(j.value.from=e.from||null,j.value.to=e.to,j.value.totalFiles=e.total,void(j.value.totalBytes=e.total_bytes)):"file_start"===e.type?(j.value.currentIndex=e.index,void(j.value.currentName=e.name)):"file_done"===e.type?(j.value.currentIndex=e.index,j.value.currentName=e.name,j.value.succeeded=e.succeeded,j.value.skipped=e.skipped,j.value.failed=e.failed,j.value.transferredBytes=e.transferred_bytes,j.value.totalBytes=e.total_bytes,j.value.elapsedMs=e.elapsed_ms,void(j.value.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0)):void("done"===e.type&&(R.value={total:e.data.total,succeeded:e.data.succeeded,skipped:e.data.skipped,failed:e.data.failed},j.value.currentIndex=e.data.total,j.value.succeeded=e.data.succeeded,j.value.skipped=e.data.skipped,j.value.failed=e.data.failed,j.value.transferredBytes=e.data.transferred_bytes||j.value.transferredBytes,j.value.totalBytes=e.data.total_bytes||j.value.totalBytes,j.value.elapsedMs=e.data.elapsed_ms||t,j.value.speedBps=j.value.elapsedMs>0?1e3*j.value.transferredBytes/j.value.elapsedMs:0))}return(e,n)=>{const a=s("v-icon"),o=s("v-select"),i=s("v-checkbox"),l=s("v-button"),N=s("v-notice"),T=s("v-drawer");return c(),d(T,{"model-value":t.modelValue,title:"Materialize Folder",icon:"account_tree",persistent:E.value,"onUpdate:modelValue":n[5]||(n[5]=e=>r("update:modelValue",e)),onCancel:n[6]||(n[6]=e=>r("update:modelValue",!1))},{default:u(()=>[x("div",Ps,[n[22]||(n[22]=x("p",{class:"intro"}," Materialize virtual Directus folders into real storage paths. ",-1)),x("div",Us,[n[13]||(n[13]=x("label",null,"Storage Mode",-1)),x("div",Bs,[x("div",{class:$(["mode-card",{active:"preserve"===y.value}]),onClick:n[0]||(n[0]=e=>y.value="preserve")},[x("div",Vs,[f(a,{name:"devices",small:""}),n[7]||(n[7]=x("strong",null,"Keep",-1))]),n[8]||(n[8]=x("p",{class:"mode-card-desc"},"Each file stays on its current storage. Only the folder path is created there.",-1)),n[9]||(n[9]=x("p",{class:"mode-card-example"},[x("em",null,"Example:"),v(" photo.jpg on "),x("code",null,"s3"),v(" → moved to "),x("code",null,"s3/travel/paris/photo.jpg"),v(". A file on "),x("code",null,"local"),v(" stays on "),x("code",null,"local"),v(". ")],-1))],2),x("div",{class:$(["mode-card",{active:"merge"===y.value}]),onClick:n[1]||(n[1]=e=>y.value="merge")},[x("div",zs,[f(a,{name:"merge",small:""}),n[10]||(n[10]=x("strong",null,"Merge",-1))]),n[11]||(n[11]=x("p",{class:"mode-card-desc"},"All files are moved into one target storage, placed at their virtual folder path.",-1)),n[12]||(n[12]=x("p",{class:"mode-card-example"},[x("em",null,"Example:"),v(" Files from both "),x("code",null,"s3"),v(" and "),x("code",null,"local"),v(" end up on "),x("code",null,"local2/travel/paris/"),v(". ")],-1))],2)])]),"merge"===y.value?(c(),p("div",Gs,[n[14]||(n[14]=x("label",null,"Target Storage",-1)),f(o,{modelValue:b.value,"onUpdate:modelValue":n[2]||(n[2]=e=>b.value=e),items:D.value,"item-text":"text","item-value":"value"},null,8,["modelValue","items"])])):_("v-if",!0),"preserve"===y.value?(c(),p("div",Ks,[f(i,{modelValue:w.value,"onUpdate:modelValue":n[3]||(n[3]=e=>w.value=e),label:"Build Storage Folder Structure only (don't move files)"},null,8,["modelValue"])])):_("v-if",!0),x("div",Hs,[f(i,{modelValue:S.value,"onUpdate:modelValue":n[4]||(n[4]=e=>S.value=e),label:"Include subfolders"},null,8,["modelValue"])]),x("div",Xs,[f(l,{secondary:"",loading:k.value,disabled:E.value,onClick:L},{default:u(()=>[...n[15]||(n[15]=[v("Dry Run",-1)])]),_:1},8,["loading","disabled"]),E.value?(c(),d(l,{key:1,kind:"danger",secondary:"",onClick:P},{default:u(()=>[...n[17]||(n[17]=[v("Cancel",-1)])]),_:1})):(c(),d(l,{key:0,disabled:!M.value,loading:E.value,onClick:F},{default:u(()=>[...n[16]||(n[16]=[v("Run",-1)])]),_:1},8,["disabled","loading"]))]),C.value?(c(),d(N,{key:2,type:"danger"},{default:u(()=>[v(g(C.value),1)]),_:1})):_("v-if",!0),I.value?(c(),p("div",qs,[x("p",null,[n[18]||(n[18]=x("strong",null,"Files:",-1)),v(" "+g(I.value.total_files.toLocaleString()),1)]),I.value.total_folders>0?(c(),p("p",Ws,[n[19]||(n[19]=x("strong",null,"Folders:",-1)),v(" "+g(I.value.total_folders.toLocaleString()),1)])):_("v-if",!0),x("p",null,[n[20]||(n[20]=x("strong",null,"Total Size:",-1)),v(" "+g(O(Be)(I.value.total_bytes||0)),1)]),I.value.conflicts>0?(c(),p("p",Ys,[n[21]||(n[21]=x("strong",null,"Path conflicts:",-1)),v(" "+g(I.value.conflicts.toLocaleString()),1)])):_("v-if",!0),I.value.conflicts>0?(c(),p("p",Js," A destination path already exists on disk, or two files would use the same path. ")):_("v-if",!0),x("p",null,[x("strong",null,g("merge"===I.value.mode?"Will be written to":"Stay on current storage")+":",1)]),I.value.by_storage.length?(c(),p("ul",Qs,[(c(!0),p(m,null,h(I.value.by_storage,e=>(c(),p("li",{key:e.storage},g(e.storage),1))),128))])):(c(),p("p",Zs,"No files in this folder."))])):_("v-if",!0),R.value?(c(),p("div",ec,[f(N,{type:R.value.failed?"danger":"success"},{default:u(()=>[v(g(R.value.succeeded)+" succeeded · "+g(R.value.skipped)+" skipped · "+g(R.value.failed)+" failed (of "+g(R.value.total)+") ",1)]),_:1},8,["type"])])):_("v-if",!0),E.value||R.value?(c(),d(zl,{key:5,storages:t.storages,mode:"move",from:j.value.from,to:j.value.to,"current-index":j.value.currentIndex,"total-files":j.value.totalFiles,"current-name":j.value.currentName,"transferred-bytes":j.value.transferredBytes,"total-bytes":j.value.totalBytes,"elapsed-ms":j.value.elapsedMs,"speed-bps":j.value.speedBps,succeeded:j.value.succeeded,skipped:j.value.skipped,failed:j.value.failed,"is-done":Boolean(R.value)&&!E.value,"is-cancelled":A.value},null,8,["storages","from","to","current-index","total-files","current-name","transferred-bytes","total-bytes","elapsed-ms","speed-bps","succeeded","skipped","failed","is-done","is-cancelled"])):_("v-if",!0)])]),_:1},8,["model-value","persistent"])}}});we("\n.drawer-body[data-v-cb0b2133] { padding: 20px 24px 32px; display: flex; flex-direction: column; gap: 14px;\n}\n.field[data-v-cb0b2133] { display: flex; flex-direction: column; gap: 8px;\n}\n.note[data-v-cb0b2133] { margin: 0; font-size: 12px; color: var(--theme--foreground-subdued);\n}\n.actions[data-v-cb0b2133] { display: flex; gap: 8px;\n}\n.result[data-v-cb0b2133] { padding: 10px; border-radius: var(--theme--border-radius); background: var(--theme--background-subdued);\n}\n.by-storage[data-v-cb0b2133] { margin: 4px 0 0; padding-left: 18px;\n}\n.empty-storage[data-v-cb0b2133] { margin: 4px 0 0; color: var(--theme--foreground-subdued);\n}\n.mode-cards[data-v-cb0b2133] {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 10px;\n}\n.mode-card[data-v-cb0b2133] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpadding: 12px 14px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: 2px solid var(--theme--border-color);\n\tcursor: pointer;\n\ttransition: border-color 0.15s, background 0.15s;\n}\n.mode-card[data-v-cb0b2133]:hover {\n\tborder-color: var(--theme--primary);\n}\n.mode-card.active[data-v-cb0b2133] {\n\tborder-color: var(--theme--primary);\n\tbackground: var(--theme--primary-background);\n}\n.mode-card-header[data-v-cb0b2133] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n.mode-card-desc[data-v-cb0b2133] {\n\tmargin: 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground);\n}\n.mode-card-example[data-v-cb0b2133] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n\tline-height: 1.4;\n}\n.mode-card-example code[data-v-cb0b2133] {\n\tfont-family: var(--theme--fonts--mono--font-family, monospace);\n\tfont-size: 11px;\n\tbackground: var(--theme--background-subdued);\n\tpadding: 1px 4px;\n\tborder-radius: 3px;\n}\n",{});var nc=xe(tc,[["__scopeId","data-v-cb0b2133"]]);const ac={class:"fields"},rc={class:"field full"},oc={class:"field full delete-transforms"},ic={key:0,class:"dialog-text"},lc={key:1,class:"dialog-error"},sc={key:2,class:"dialog-text"};var cc=l({__name:"thumbnails-sidebar-detail",props:{modelValue:{},location:{},search:{}},emits:["update:modelValue","deleted"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=i({get:()=>a.modelValue,set:e=>r("update:modelValue",e)}),w=[{value:"files",label:"Show Files"},{value:"transforms",label:"Show Thumbnails"}],S=i(()=>"files"!==b.value),k=o(!1),E=o(!1),A=o(!1),O=o(null),$=o("");function C(){k.value=!0,async function(){E.value=!0,$.value="",O.value=null;try{const e=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/root-transforms/delete-all`,{dry_run:!0,search:a.search||null}),t=e.data?.data;O.value={deleted:Number(t?.deleted)||0,skipped:Number(t?.skipped)||0,scanned:Number(t?.scanned)||0}}catch(e){$.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Could not scan transforms"}finally{E.value=!1}}()}async function I(){if(!A.value){A.value=!0;try{await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/root-transforms/delete-all`,{dry_run:!1,search:a.search||null}),k.value=!1,r("deleted")}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{A.value=!1}}}y(k,e=>{e||(O.value=null,$.value="")});const R=i(()=>{if(E.value)return"";if($.value)return"";if(!O.value)return"";const{deleted:e,skipped:t}=O.value,n=a.search?.trim()?"matching your search":"at the storage root";return 0===e?`No generated transform files ${n} would be deleted.${t?` ${t.toLocaleString()} registered file(s) would be skipped.`:""}`:`${e.toLocaleString()} generated transform file${1===e?"":"s"} ${n} will be removed.${t?` ${t.toLocaleString()} registered match(es) will be skipped.`:""}`});return(e,t)=>{const n=s("v-radio"),a=s("v-button"),r=s("v-card-title"),o=s("v-notice"),i=s("v-card-text"),l=s("v-card-actions"),y=s("v-card"),N=s("v-dialog"),T=s("sidebar-detail");return c(),d(T,{id:"thumbnails",icon:"photo_size_select_large",title:"Thumbnails",badge:S.value},{default:u(()=>[x("div",ac,[x("div",rc,[(c(),p(m,null,h(w,e=>f(n,{key:e.value,value:e.value,label:e.label,"model-value":b.value,"onUpdate:modelValue":t[0]||(t[0]=e=>b.value=e)},null,8,["value","label","model-value"])),64))]),x("div",oc,[f(a,{secondary:"","full-width":"",class:"sidebar-btn",onClick:C},{default:u(()=>[...t[4]||(t[4]=[v(" Delete All Transforms ",-1)])]),_:1})])]),f(N,{modelValue:k.value,"onUpdate:modelValue":t[2]||(t[2]=e=>k.value=e),onEsc:t[3]||(t[3]=e=>k.value=!1)},{default:u(()=>[f(y,null,{default:u(()=>[f(r,null,{default:u(()=>[...t[5]||(t[5]=[v("Delete All Transforms",-1)])]),_:1}),f(i,null,{default:u(()=>[f(o,{type:"info",class:"dialog-info"},{default:u(()=>[...t[6]||(t[6]=[v(" This deletes generated transform files (thumbnails and resized variants) at the storage root. ",-1),x("strong",null,"Source files are not deleted",-1),v(" — your originals in Directus stay untouched. Directus will recreate transforms automatically the next time those images are requested. ",-1)])]),_:1}),E.value?(c(),p("p",ic,"Scanning storage…")):$.value?(c(),p("p",lc,g($.value),1)):R.value?(c(),p("p",sc,g(R.value),1)):_("v-if",!0)]),_:1}),f(l,null,{default:u(()=>[f(a,{secondary:"",onClick:t[1]||(t[1]=e=>k.value=!1)},{default:u(()=>[...t[7]||(t[7]=[v("Cancel",-1)])]),_:1}),f(a,{kind:"danger",loading:A.value,disabled:E.value||Boolean($.value)||!O.value?.deleted,onClick:I},{default:u(()=>[...t[8]||(t[8]=[v(" Delete Transforms ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["badge"])}}});we("\n.fields[data-v-b9084ba6] {\n\t--theme--form--row-gap: 1.375rem;\n\t--theme--form--column-gap: 1.375rem;\n\n\tdisplay: grid;\n\tgrid-template-columns: [start] minmax(0, 1fr) [half] minmax(0, 1fr) [full];\n\tgap: var(--theme--form--row-gap) var(--theme--form--column-gap);\n\tcontainer-type: inline-size;\n}\n.field[data-v-b9084ba6] {\n\tgrid-column: start / full;\n\tmin-inline-size: 0;\n}\n.field.full[data-v-b9084ba6] {\n\tgrid-column: start / full;\n}\n.fields[data-v-b9084ba6] .v-radio + .v-radio {\n\tmargin-block-start: 0.4375rem;\n}\n\n/* Sidebar panel bg often matches --theme--background-normal, so default\n secondary buttons look like plain text. Force a visible chip fill. */\n.delete-transforms[data-v-b9084ba6] .sidebar-btn {\n\tdisplay: flex;\n\twidth: 100%;\n}\n.delete-transforms[data-v-b9084ba6] .sidebar-btn .button {\n\twidth: 100%;\n\tjustify-content: center;\n\tcolor: var(--theme--foreground);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n}\n.delete-transforms[data-v-b9084ba6] .sidebar-btn .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--background-normal);\n}\n.dialog-info[data-v-b9084ba6] {\n\tmargin-bottom: 16px;\n\tline-height: 1.5;\n}\n.dialog-text[data-v-b9084ba6] {\n\tmargin: 0;\n\tline-height: 1.5;\n}\n.dialog-error[data-v-b9084ba6] {\n\tmargin: 0;\n\tcolor: var(--theme--danger);\n}\n",{});var dc=xe(cc,[["__scopeId","data-v-b9084ba6"]]);function uc(n){const a=e(),{useNotificationsStore:r,useServerStore:l}=t(),s=r(),c=l?.(),d=o(!1),u=o(!1),f=o(0),p=i(()=>f.value>0);let m,h;function v(){d.value=!0,m=s.add({title:"Drop to upload",icon:"cloud_upload",type:"info",persist:!0,closeable:!1})}function g(){d.value=!1,m&&(s.remove(m),m=void 0)}function y(e){if(!e.dataTransfer)return;if(-1===e.dataTransfer.types.indexOf("Files"))return;e.preventDefault(),f.value++;const t=e.target&&""===e.target.getAttribute?.("data-dropzone");1===f.value&&!1===d.value&&!1===t&&v(),t&&(g(),f.value=0)}function _(e){e.dataTransfer&&-1!==e.dataTransfer.types.indexOf("Files")&&e.preventDefault()}function w(e){e.dataTransfer&&-1!==e.dataTransfer.types.indexOf("Files")&&(e.preventDefault(),f.value--,0===f.value&&g(),e.target&&""===e.target.getAttribute?.("data-dropzone")&&(v(),f.value=1))}async function x(e){if(!e.dataTransfer)return;if(-1===e.dataTransfer.types.indexOf("Files"))return;e.preventDefault(),d.value=!1,f.value=0,m&&(s.remove(m),m=void 0);const t=Array.from(e.dataTransfer.files).filter(e=>e.type);t.length&&await k(t)}async function S(e,t){const r=new FormData,o=O(n.preset);o.storage&&r.append("storage",o.storage),o.folder&&r.append("folder",o.folder),r.append("file",e);const i=await a.post("/files",r,{onUploadProgress:e=>{e.total&&t(Math.floor(100*e.loaded/e.total))}}),l=i?.data?.data?.id,s=o.storagePath?String(o.storagePath).replace(/^\/+|\/+$/g,""):"";l&&o.storage&&s&&await a.post(`/storage-manager/storages/${encodeURIComponent(o.storage)}/place-file`,{file_id:l,target_path:s})}async function k(e){if(!e.length||u.value)return;u.value=!0;const t=e.map(()=>0),a=Math.max(1,Number(c?.info?.uploads?.maxConcurrency)||2);h=s.add({title:`Uploading 0 of ${e.length}…`,type:"info",persist:!0,closeable:!1,loading:!0});const r=()=>{const n=t.filter(e=>100===e).length,a=t.reduce((e,t)=>e+t,0)/t.length;h&&s.update(h,{title:`Uploading ${n} of ${e.length}…`,loading:!1,progress:a})};let o=0,i=0;try{await Promise.all(Array.from({length:Math.min(a,e.length)},()=>async function(){for(;o<e.length;){const n=o++,a=e[n];try{await S(a,e=>{t[n]=e,r()}),t[n]=100,r()}catch(e){i++,t[n]=100,r();const o=e?.response?.data?.errors?.[0]?.message||e?.message||`Failed to upload ${a.name}`;s.add({title:o,type:"error",icon:"error"})}}}()))}finally{h&&(s.remove(h),h=void 0),u.value=!1,i<e.length&&(s.add({title:i?`Uploaded ${e.length-i} of ${e.length}`:"Upload complete",type:i?"warning":"success",icon:i?"warning":"check"}),await(n.onDone?.()))}}return b(()=>{window.addEventListener("dragenter",y),window.addEventListener("dragover",_),window.addEventListener("dragleave",w),window.addEventListener("drop",x)}),T(()=>{window.removeEventListener("dragenter",y),window.removeEventListener("dragover",_),window.removeEventListener("dragleave",w),window.removeEventListener("drop",x),g(),h&&s.remove(h)}),{dragging:p,showDropEffect:d,uploading:u,uploadFiles:k,onFileInputChange:function(e){const t=e.target,n=Array.from(t.files||[]).filter(e=>e.type);t.value="",n.length&&k(n)}}}const fc="storage-manager-files-preset",pc="cards",mc={icon:"insert_drive_file",title:"{{ title }}",subtitle:"{{ type }} • {{ filesize }}",size:4,imageFit:"crop"},hc={sort:["-uploaded_on"],page:1,limit:25};function vc(){const e=function(){try{const e=localStorage.getItem(fc);return e?JSON.parse(e):{}}catch{return{}}}(),t=o(e.layout||pc),n=o({...mc,...e.layoutOptions||{}}),a=o({...hc,...e.layoutQuery||{},page:Math.max(1,Number(e.layoutQuery?.page)||1),limit:yc(e.layoutQuery?.limit)}),r=o(null),i=o(null);return y([t,n,a],()=>{try{localStorage.setItem(fc,JSON.stringify({layout:t.value,layoutOptions:n.value,layoutQuery:{...a.value,page:Math.max(1,Number(a.value.page)||1),limit:yc(a.value.limit)}}))}catch{}},{deep:!0}),{layout:t,layoutOptions:n,layoutQuery:a,filter:r,search:i,resetPreset:function(){t.value=pc,n.value={...mc},a.value={...hc},r.value=null,i.value=null},resetPage:function(){1!==Number(a.value.page)&&(a.value={...a.value,page:1})}}}const gc=[25,50,100,250,500,1e3];function yc(e){const t=Number(e);return gc.includes(t)?t:25}const bc="directus_files",_c=["filename_disk","type","filesize"],wc=new Set([..._c,"title"]);function xc(e){const t=Number(e);return[25,50,100,250,500,1e3].includes(t)?t:25}const Sc=new Set(["files","transforms"]);function kc(e){const t={_and:[{type:{_nnull:!0}}]};return e?t._and.push({folder:{_eq:e}}):t._and.push({folder:{_null:!0}}),t}function Ec(e,t){return e?t?{_and:[e,t]}:e:t??null}const Ac={key:0,class:"move-hint"},Oc={key:1,class:"move-destination-hint"},$c={class:"move-dry-run"},Cc={key:0,class:"move-dry-result"},Ic={key:1,class:"move-hint"},Rc={key:0,class:"move-hint"},Nc={key:1,class:"move-samples"},Tc={key:0},jc={key:2,class:"move-hint"},Dc={class:"page-intro"},Mc={key:4,class:"transforms-intro"},Lc={class:"sidebar-actions"},Fc={class:"sidebar-text storage-label"},Pc={class:"sidebar-text sidebar-note"},Uc="storage-location-badge";var Bc=l({__name:"collection-browser",props:{mode:{},folder:{},storage:{},storagePath:{}},setup(n){const a=n,r=e(),l=X(),w=H(),{folders:S}=te(),{storages:k,loadStorages:E}=ie(),{refreshTree:C}=fe(),{running:I,reopenNonce:T,start:j}=_l(),D=Qe(),M=o(),L=o([]),G=o([]),K=o([]),Y=o(!1),J=o(!1),Q=o(!1),Z=o({location:"",path:""}),ee=o(!1),ne=o(!1),ae=o(!0),re=o(null),oe=o(!1),le=o(!1),se=o(!1),ce=o([]),{layout:de,layoutOptions:ue,layoutQuery:pe,filter:me,search:he,resetPreset:ve,resetPage:ge}=vc(),{layoutWrapper:ye}=Hi(de),{rootFileView:be,setRootFileView:_e}=function(){const e=X(),t=H();return{rootFileView:i(()=>{const t=String(e.query.view||"files");return"all"===t?"files":Sc.has(t)?t:"files"}),setRootFileView:function(n){const a={...e.query};"files"===n?delete a.view:a.view=n,t.replace({path:e.path,query:a})}}}(),we=i(()=>a.storage),{transformsLayoutState:xe,refreshTransforms:Se,onLayoutWidth:ke,onLimitUpdate:Ee,onFieldsUpdate:Oe,onTableSpacingUpdate:$e,onSizeUpdate:Ce,onSortUpdate:Ie}=function(n){const a=e(),{useFieldsStore:r,useCollectionsStore:l}=t(),s=r(),c=l(),d=o([]),u=o(!1),f=o(!1),p=o(null),m=o(null),h=o(0),v=i({get:()=>Math.max(1,Number(n.layoutQuery.value.page)||1),set(e){n.layoutQuery.value={...n.layoutQuery.value,page:Math.max(1,e)}}}),g=i({get:()=>xc(n.layoutQuery.value.limit),set(e){n.layoutQuery.value={...n.layoutQuery.value,limit:xc(e),page:1}}}),b=i({get(){const e=n.layoutQuery.value.fields;if(Array.isArray(e)&&e.length){const t=e.filter(e=>wc.has(String(e)));if(t.length)return t}return[..._c]},set(e){n.layoutQuery.value={...n.layoutQuery.value,fields:e}}}),_=i({get:()=>Array.isArray(n.layoutQuery.value.sort)?n.layoutQuery.value.sort:[],set(e){n.layoutQuery.value={...n.layoutQuery.value,sort:e}}}),w=i({get:()=>n.layoutOptions.value?.spacing||"cozy",set(e){n.layoutOptions.value={...n.layoutOptions.value,spacing:e}}}),x=i(()=>{switch(w.value){case"compact":return 32;case"comfortable":return 48;default:return 40}}),S=i(()=>s.getPrimaryKeyFieldForCollection(bc)),k=i(()=>s.getFieldsForCollection(bc)),E=i(()=>c.getCollection(bc)),A=i(()=>b.value.map(e=>{const t=s.getField(bc,e);return t?{...t,key:e}:null}).filter(Boolean)),O=i(()=>A.value.map(e=>({text:e.name,value:e.key,description:null,width:n.layoutOptions.value?.widths?.[e.key]||144,align:n.layoutOptions.value?.align?.[e.key]||"left",field:{display:e.meta?.display,displayOptions:e.meta?.display_options,interface:e.meta?.interface,interfaceOptions:e.meta?.options,type:e.type,field:e.field,collection:e.collection}}))),$=i(()=>{const e=_.value?.[0];return e?e.startsWith("-")?{by:e.slice(1),desc:!0}:{by:e,desc:!1}:null}),C=i(()=>d.value.length),I=i(()=>m.value?Math.max(1,Math.ceil(m.value/g.value)):1),R=i(()=>{if(!m.value||!C.value)return;const e=(v.value-1)*g.value+1,t=e+C.value-1;return m.value<=t?`${e}–${m.value} of ${m.value}`:`${e}–${t} of ${m.value}`}),N=i({get:()=>Number(n.layoutOptions.value?.size)||4,set(e){n.layoutOptions.value={...n.layoutOptions.value,size:e}}}),T=i(()=>n.layoutOptions.value?.icon||"insert_drive_file"),j=i(()=>n.layoutOptions.value?.imageFit||"crop"),D=i(()=>n.layoutOptions.value?.title||"{{ title }}"),M=i(()=>n.layoutOptions.value?.subtitle||"{{ type }} • {{ filesize }}"),L=i(()=>Math.max(1,Math.ceil(d.value.length/Math.max(1,N.value)))<=1&&h.value>0);let F=0;async function P(){if(n.location.value){f.value=!0;try{const e=await a.get(`/storage-manager/storages/${encodeURIComponent(n.location.value)}/root-transforms/count`,{params:{search:n.search.value?.trim()||void 0}});m.value=Number(e.data?.data?.count)||0}catch{m.value=null}finally{f.value=!1}}else m.value=0}async function U(){if(!n.location.value)return void(d.value=[]);const e=++F;u.value=!0,p.value=null;try{const t=await a.get(`/storage-manager/storages/${encodeURIComponent(n.location.value)}/root-transforms`,{params:{page:v.value,limit:g.value,search:n.search.value?.trim()||void 0}});if(e!==F)return;const r=t.data?.data||[];d.value=function(e){return e.map(e=>({id:e.filename_disk,filename_disk:e.filename_disk,title:e.filename_disk,type:e.type,filesize:e.filesize}))}(r)}catch(t){if(e!==F)return;d.value=[],p.value=t}finally{e===F&&(u.value=!1)}}async function B(){await Promise.all([U(),P()])}function V(e){v.value=e}function z(e){_.value=[e.desc?`-${e.by}`:e.by],v.value=1}async function G(){n.resetPreset(),v.value=1,await B()}function K(){}return y(()=>[n.location.value,n.search.value,v.value,g.value],()=>{U()},{immediate:!0}),y(()=>[n.location.value,n.search.value],()=>{v.value=1,P()},{immediate:!0}),{transformsLayoutState:i(()=>({collection:bc,items:d.value,loading:u.value,loadingItemCount:f.value,error:p.value,totalPages:I.value,page:v.value,toPage:V,itemCount:C.value,totalCount:m.value,limit:g.value,fields:b.value,tableHeaders:O.value,tableSort:$.value,tableRowHeight:x.value,tableSpacing:w.value,activeFields:A.value,primaryKeyField:S.value,fieldsInCollection:k.value,info:E.value,showingCount:R.value,sortField:"filename_disk",readonly:!0,showSelect:"none",selectMode:!1,selection:[],filterUser:null,search:n.search.value||void 0,aliasedFields:{},aliasedKeys:[],onRowClick:()=>{},onSortChange:z,onAlignChange:()=>{},changeManualSort:async()=>{},resetPresetAndRefresh:G,selectAll:K,refresh:B,download:()=>{},size:N.value,icon:T.value,imageFit:j.value,title:D.value,subtitle:M.value,imageSource:void 0,getLinkForItem:()=>{},isSingleRow:L.value,width:h.value,sort:_.value,hasPrependContent:!1,fileFields:[]})),refreshTransforms:B,onLayoutWidth:function(e){h.value=e},onLimitUpdate:function(e){g.value=e},onFieldsUpdate:function(e){b.value=e},onTableSpacingUpdate:function(e){w.value=e},onSizeUpdate:function(e){N.value=e},onSortUpdate:function(e){_.value=e}}}({location:we,search:he,layout:de,layoutOptions:ue,layoutQuery:pe,resetPreset:ve}),Ne=i(()=>String(a.storagePath||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")),Te=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value),je=Te,De=i(()=>!Te.value||"files"===be.value),Me=i(()=>!!Te.value&&"transforms"===be.value),Le=i(()=>Te.value&&"transforms"===be.value),Fe=i(()=>!Le.value),Pe=i(()=>Le.value?"Search transforms…":void 0),Ve=i(()=>"storage"===a.mode&&a.storage?function(e,t,n=[]){const a=String(t||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),r=[{type:{_nnull:!0}},{storage:{_eq:e}}];if(a){r.push({filename_disk:{_starts_with:`${a}/`}});for(const e of n){const t=String(e||"").trim();t&&!t.includes("/")&&r.push({filename_disk:{_nstarts_with:`${a}/${t}/`}})}}else r.push({filename_disk:{_ncontains:"/"}});return{_and:r}}(a.storage,Ne.value,K.value.map(e=>e.name)):kc(a.folder??null)),ze=i(()=>Le.value?{id:{_eq:"00000000-0000-0000-0000-000000000000"}}:Ec(me.value,Ve.value)),Ge=i(()=>{if("storage"===a.mode){if(Ne.value){const e=Ne.value.split("/");return e[e.length-1]||a.storage||"Storage"}return a.storage||"Storage"}if(a.folder){const e=S.value?.find(e=>e.id===a.folder);return e?.name||"Folder"}return"Directus Folders"}),Ke=i(()=>"folders"===a.mode&&!a.folder&&!he.value&&!me.value),He=i(()=>{if("folders"!==a.mode||!S.value)return[];const e=a.folder??null;return S.value.filter(t=>e?t.parent===e:null==t.parent).slice().sort((e,t)=>e.name.localeCompare(t.name))}),Xe=i(()=>{const e=[{name:"Storage Manager",to:"/storage-manager"}];if("storage"===a.mode){if(e.push({name:a.storage||"Storage",to:`/storage-manager/storage/${a.storage}`}),Ne.value){const t=Ne.value.split("/").filter(Boolean);let n="";for(const r of t)n=n?`${n}/${r}`:r,e.push({name:r,to:Re(a.storage,n)})}}else e.push({name:"Directus Folders",to:"/storage-manager/folders"}),a.folder&&e.push({name:Ge.value,to:`/storage-manager/folders/${a.folder}`});return e}),qe=i(()=>"storage"===a.mode&&a.storage&&k.value.find(e=>e.location===a.storage)||null),We=o(!1),Je=o(!1),Ze=o("files"),et=o([]);o(!1);const tt=i(()=>"files"===Ze.value?et.value.length||L.value.length||void 0:"storage"===Ze.value?qe.value?.file_count??void 0:"folder"===Ze.value?at.value??void 0:void 0),nt=i(()=>{if("storage"===Ze.value)return qe.value?.total_bytes}),at=o(null),rt=i(()=>"folders"===a.mode&&ce.value.length>1),ot=i(()=>"folders"===a.mode),it=["title","type","filesize","modified_on"],lt=i({get(){const e={...pe.value};if(!ot.value||"tabular"!==de.value)return e;const t=[...e.fields?.length?e.fields:it];return t.includes("storage")||t.push("storage"),{...e,fields:t}},set(e){pe.value=e}}),st=i(()=>{if(!rt.value)return"";const e=ce.value.join(", ");return`This ${a.folder?"folder":"root view"} has files on ${ce.value.length} storages (${e}).`}),ct=i(()=>"folders"===a.mode&&0===L.value.length&&0===G.value.length),dt=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length),ut=i(()=>Ne.value?"Detect Files in this Folder":`Detect Files on ${a.storage}`),ft=i(()=>0===L.value.length&&0===G.value.length),pt=i(()=>L.value.length>0||"storage"===a.mode&&G.value.length>0||"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length||"folders"===a.mode&&0===L.value.length&&0===G.value.length&&(at.value??0)>0),mt=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length),ht=i(()=>mt.value?`Moves every file and folder on “${a.storage}” into the destination you pick. Existing folders with the same name are merged. Files that already exist at the destination stay there.`:"storage"===a.mode&&G.value.length?1===G.value.length?"Moves the selected storage folder into the destination you pick. If that folder name already exists there, files are merged into it.":"Moves the selected storage folders into the destination you pick. Matching folder names are merged.":1===L.value.length?"Moves the selected file into the storage folder you pick.":L.value.length>1?`Moves ${L.value.length} selected files into the storage folder you pick.`:"folders"===a.mode?a.folder?"No files selected — moves all files in this Directus folder into the storage folder you pick.":"No files selected — moves all unfiled files into the storage folder you pick.":""),vt=i(()=>"storage"===a.mode&&G.value.length?G.value.map(String):[]),gt=i(()=>mt.value?`Move all on ${a.storage}`:"Move to Storage Folder"),yt=i(()=>{const e=Z.value.location;if(!e)return"";const t=Z.value.path?`${e}/${Z.value.path}/`:`${e}/`;if(mt.value)return`Everything on “${a.storage}” will be merged into ${t}`;if(1===vt.value.length){const e=String(vt.value[0]).split("/").filter(Boolean).pop();return`Folder “${e}” will be merged into ${t}${e}/`}return vt.value.length>1?`Selected folders will be merged into ${t}{folder-name}/`:`Files will be moved to ${t}`});i(()=>"storage"===a.mode&&G.value.length>0);const bt=i(()=>L.value.length>0||"storage"===a.mode&&G.value.length>0);i(()=>G.value.length>0&&0===L.value.length?1===G.value.length?"Migrate Selected Folder":"Migrate Selected Folders":"Migrate Selected");const _t=i(()=>{const e=L.value.length;return 1===e?"Are you sure you want to delete this item? This action cannot be undone.":`Are you sure you want to delete ${e} items? This action cannot be undone.`});function wt(){"storage"===a.mode&&G.value.length>0?le.value=!0:oe.value=!0}async function xt(){if("folders"===a.mode)try{const e=await r.get("/files",{params:{limit:0,meta:"filter_count",filter:JSON.stringify(kc(a.folder??null))}});at.value=Number(e.data?.meta?.filter_count??0)}catch{at.value=0}else at.value=null}async function St(){if("folders"===a.mode)try{const e=await r.get("/files",{params:{filter:JSON.stringify(kc(a.folder??null)),fields:["storage"],limit:-1}}),t=new Set;for(const n of e.data?.data||[]){const e=String(n?.storage||"").trim();e&&t.add(e)}ce.value=Array.from(t).sort((e,t)=>e.localeCompare(t))}catch{ce.value=[]}else ce.value=[]}function kt(e){const t=document.createElement("span");return t.className=Uc,t.textContent=e,t}function Et(){document.querySelectorAll(`.layout-cards .header .${Uc}`).forEach(e=>{e.remove()}),document.querySelectorAll(`.layout-tabular .${Uc}`).forEach(e=>{const t=e.parentElement,n=e.textContent||"";e.remove(),t&&!t.querySelector(`.${Uc}`)&&t.append(n)})}async function At(e){if(Et(),!ot.value)return;if(await z(),"tabular"===de.value)return void function(){const e=document.querySelector(".layout-tabular thead tr");if(!e)return;const t=Array.from(e.children);let n=t.findIndex(e=>String(e.className||"").split(/\s+/).includes("storage")||"storage"===e.getAttribute("data-field"));n<0&&(n=t.findIndex(e=>"storage"===e.textContent?.trim().toLowerCase())),n<0||document.querySelectorAll(".layout-tabular tbody tr").forEach(e=>{const t=e.children[n];if(!t||t.querySelector(`.${Uc}`))return;const a=String(t.textContent||"").trim();a&&(t.textContent="",t.appendChild(kt(a)))})}();if("cards"!==de.value||!e?.length)return;const t=document.querySelectorAll(".layout-cards .grid .card:not(.folder-card)");if(!t.length)return;const n="id",a=e.some(e=>null!=e[n]&&null==e.storage);let o={};if(a){const t=e.map(e=>e[n]).filter(Boolean);if(!t.length)return;try{const e=await r.get("/files",{params:{filter:JSON.stringify({id:{_in:t}}),fields:["id","storage"],limit:t.length}});for(const t of e.data?.data||[])o[String(t.id)]=String(t.storage||"")}catch{return}}t.forEach((t,a)=>{const r=e[a];if(!r)return;const i=String(r.storage??o[String(r[n])]??"").trim();if(!i)return;const l=t.querySelector(".header");l&&l.appendChild(kt(i))})}async function Ot(){Me.value?await Se():await(M.value?.state?.refresh?.()),await E(!0).catch(()=>{}),await $t(),await xt().catch(()=>{}),await St().catch(()=>{}),"storage"===a.mode&&a.storage&&await C(a.storage).catch(()=>{})}async function $t(){if("storage"===a.mode&&a.storage){Y.value=!0;try{const e=await r.get(`/storage-manager/storages/${encodeURIComponent(a.storage)}/browse`,{params:{path:Ne.value||""}});K.value=e.data?.data?.folders||[]}catch{K.value=[]}finally{Y.value=!1}}else K.value=[]}function Ct(){me.value=null,he.value=null}function It(){Je.value=!0,"storage"===a.mode&&a.storage&&"1"!==String(l.query.detect||"")&&w.replace({path:l.path,query:{...l.query,detect:"1"}})}function Rt(e){if(Je.value=e,!e&&"1"===String(l.query.detect||"")){const e={...l.query};delete e.detect,w.replace({path:l.path,query:e})}}async function Nt(){L.value=[],G.value=[],et.value=[],await Ot()}async function Tt(){L.value=[],G.value=[],await Ot()}async function jt(){await Ot()}q((e,t)=>{e.path!==t.path&&(L.value=[],G.value=[],oe.value=!1,le.value=!1,Et())}),W((e,t)=>{e.path!==t.path&&(L.value=[],G.value=[],oe.value=!1,le.value=!1)}),y(()=>[a.folder,a.storage,a.mode,Ne.value],()=>{L.value=[],G.value=[],ge(),xt(),St(),Et(),Te.value||"files"===be.value||_e("files")}),y(be,()=>{ge()}),y(()=>[ot.value,de.value,pe.value.page,pe.value.limit,JSON.stringify(pe.value.sort??[]),M.value?.state?.loading,M.value?.state?.items],()=>{var e;M.value?.state?.loading||(e=M.value?.state?.items,At(e).catch(()=>{}))},{deep:!0,flush:"post"}),y(()=>[a.storage,String(l.query.detect||"")],([e,t])=>{"storage"===a.mode&&e&&"1"===t&&(Je.value=!0)},{immediate:!0}),b(()=>{E().catch(()=>{}),$t().catch(()=>{}),xt().catch(()=>{}),St().catch(()=>{})}),y(()=>[a.mode,a.storage,Ne.value],()=>{$t()}),y(I,async(e,t)=>{t&&!e&&(L.value=[],await Ot())}),y(T,()=>{I.value&&(We.value=!0)}),y(()=>String(l.query.migrateJob||""),e=>{if("1"!==e)return;We.value=!0;const t={...l.query};delete t.migrateJob,w.replace({path:l.path,query:t})},{immediate:!0});const Dt=i(()=>"storage"===a.mode?{storage:a.storage,storagePath:Ne.value||null}:{folder:a.folder??null}),Mt=o(!1),{dragging:Lt,showDropEffect:Ft,uploading:Pt,uploadFiles:Ut}=uc({preset:Dt,onDone:Ot}),Bt=i(()=>"storage"===a.mode&&a.storage?`Upload to ${a.storage}`:"Add File");function Vt(){Mt.value=!0}async function zt(e){await Ut(e)}async function Gt(){if(!se.value&&L.value.length){se.value=!0;try{await r.delete("/files",{data:L.value}),L.value=[],oe.value=!1,await Ot()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{se.value=!1}}}async function Kt(){try{L.value.length>0&&await r.delete("/files",{data:L.value})}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}L.value=[],G.value=[],le.value=!1,await Ot(),a.storage&&await C(a.storage).catch(()=>{})}async function Ht(){if(Z.value.location&&!ne.value){ne.value=!0,re.value=null;try{const e=await async function(){const e=Z.value.location,t=Z.value.path||"",n=[...vt.value],r={target_storage:e,target_path:t,preserve_paths:mt.value,include_empty_folders:ae.value,source_folders:n};return mt.value?r.source_storage=a.storage||void 0:"storage"===a.mode&&G.value.length?(r.source_storage=a.storage||void 0,L.value.length&&(r.file_ids=L.value.map(String))):"folders"===a.mode&&0===L.value.length?(r.folder_id=a.folder??null,r.recursive=!0):(r.file_ids=L.value.map(String),a.storage&&(r.source_storage=a.storage)),r}(),t=await r.post("/storage-manager/migrate/dry-run",e);re.value=t.data?.data??null}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed")}finally{ne.value=!1}}}async function Xt(){const e=Z.value.location,t=Z.value.path||"";if(!e)return;ee.value=!0;const n=[...vt.value],o=mt.value;try{const i=mt.value?((await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify({storage:{_eq:a.storage}})}})).data?.data||[]).map(e=>String(e.id)):await async function(){const e=new Set(L.value.map(String));if("folders"===a.mode&&0===e.size){try{const t=await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify(kc(a.folder??null))}});for(const n of t.data?.data||[])e.add(String(n.id))}catch{}return Array.from(e)}if("storage"===a.mode&&a.storage&&G.value.length)for(const t of G.value){const n=String(t||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(n)try{const t=await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify({_and:[{storage:{_eq:a.storage}},{filename_disk:{_starts_with:`${n}/`}}]})}});for(const n of t.data?.data||[])e.add(String(n.id))}catch{}}return Array.from(e)}();if(!i.length&&!n.length&&!mt.value)return void window.alert("folders"===a.mode&&0===L.value.length?"This Directus folder has no files to move.":"No files selected.");if(!i.length&&(n.length||mt.value)){const i=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:[],target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o});return qt(i.data?.data?.skipped),J.value=!1,L.value=[],G.value=[],void await Ot()}const l=await r.get("/files",{params:{limit:-1,fields:["id","storage"],filter:JSON.stringify({id:{_in:i}})}}),s=l.data?.data||[],c=s.filter(t=>String(t.storage)!==e).map(e=>String(e.id));if(!c.length){const l=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:i,target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o});return qt(l.data?.data?.skipped),J.value=!1,L.value=[],G.value=[],void await Ot()}J.value=!1,ee.value=!1;const d=j({file_ids:c,target_storage:e,mode:"move",target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o},{estimatedCount:c.length});We.value=!0,await d;const u=s.filter(t=>String(t.storage)===e).map(e=>String(e.id));if(u.length){const a=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:u,target_path:t,source_folders:n,include_empty_folders:ae.value,preserve_paths:o});qt(a.data?.data?.skipped)}L.value=[],G.value=[],await Ot()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{ee.value=!1}}function qt(e){const t=Number(e)||0;t>0&&window.alert(`${t.toLocaleString()} file${1===t?"":"s"} already exist at the destination and were left in place.`)}y(J,e=>{if(!e)return;re.value=null,ae.value=!0;const t=k.value.filter(e=>e.location!==a.storage),n=(mt.value?t[0]?.location:null)||a.storage||k.value[0]?.location||"";Z.value={location:n,path:mt.value?"":"storage"===a.mode&&Ne.value||""}}),y(()=>[Z.value.location,Z.value.path,ae.value],()=>{re.value=null});const Wt=i(()=>{const e=l.query.file;return"string"==typeof e&&e.length>0?e:null});function Yt(e){const t={...l.query,file:String(e)},n=new URLSearchParams;for(const[e,a]of Object.entries(t))if(null!=a&&""!==a)if(Array.isArray(a))for(const t of a)n.append(e,String(t));else n.set(e,String(a));const a=n.toString();return a?`${l.path}?${a}`:l.path}function Jt(e){e||(!function(){if(!("file"in l.query))return;const e={...l.query};delete e.file,w.replace({path:l.path,query:e})}(),Ot().catch(()=>{}))}function Qt(){"folders"!==a.mode?"storage"===a.mode&&(G.value=K.value.map(e=>e.path)):G.value=He.value.map(e=>e.id)}async function Zt(){await Se()}function en(e){return{...e,hasPrependContent:!1}}function tn(e){return Me.value?xe.value:e}function nn(e){const t=e.primaryKeyField?.field||"id",n="storage"===a.mode&&K.value.length>0&&!he.value&&!me.value;return{...e,hasPrependContent:n,selectMode:e.selectMode||G.value.length>0,getLinkForItem(e){const n=e?.[t];if(null!=n)return Yt(n)},onRowClick({item:e,event:n}){const a=e?.[t];if(null==a)return;if(L.value.length>0||G.value.length>0)return void(L.value.includes(a)?L.value=L.value.filter(e=>e!==a):L.value=L.value.concat(a));const r=Yt(a);n.ctrlKey||n.metaKey?window.open(w.resolve(r).href,"_blank"):w.push(r)}}}return(e,t)=>{const a=s("v-breadcrumb"),r=s("v-card-title"),o=s("v-checkbox"),i=s("v-button"),l=s("v-card-text"),y=s("v-card-actions"),b=s("v-card"),w=s("v-dialog"),S=s("v-icon"),E=s("v-divider"),C=s("v-notice"),I=s("v-info"),T=s("drawer-item"),j=s("sidebar-detail"),z=s("private-view"),H=R("tooltip");return c(),d(F(O(ye)),{ref_key:"layoutRef",ref:M,selection:L.value,"onUpdate:selection":t[21]||(t[21]=e=>L.value=e),"layout-options":O(ue),"onUpdate:layoutOptions":t[22]||(t[22]=e=>A(ue)?ue.value=e:null),"layout-query":lt.value,"onUpdate:layoutQuery":t[23]||(t[23]=e=>lt.value=e),filter:ze.value,"filter-user":O(me),"filter-system":Ve.value,search:O(he),collection:"directus_files","reset-preset":O(ve)},{default:u(({layoutState:e})=>[f(z,{title:Ge.value,icon:"storage"===n.mode?qe.value?.icon||"storage":"folder",class:$({dragging:O(Lt)})},{headline:u(()=>[f(a,{items:Xe.value},null,8,["items"])]),"actions:prepend":u(()=>[(c(),d(F(`layout-actions-${O(de)}`),B(V(tn(e))),null,16))]),actions:u(()=>[f(Wi,{modelValue:O(he),"onUpdate:modelValue":t[0]||(t[0]=e=>A(he)?he.value=e:null),filter:O(me),"onUpdate:filter":t[1]||(t[1]=e=>A(me)?me.value=e:null),collection:"directus_files","show-filter":Fe.value,placeholder:Pe.value},null,8,["modelValue","filter","show-filter","placeholder"]),"storage"===n.mode&&n.storage?(c(),d(xs,{key:0,location:n.storage,"parent-path":Ne.value,onCreated:Ot},null,8,["location","parent-path"])):_("v-if",!0),pt.value?(c(),d(w,{key:1,modelValue:J.value,"onUpdate:modelValue":t[5]||(t[5]=e=>J.value=e),onEsc:t[6]||(t[6]=e=>J.value=!1),onApply:Xt},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder_move",secondary:"",onClick:e},null,8,["onClick"]),[[H,gt.value,void 0,{bottom:!0}]])]),default:u(()=>[f(b,null,{default:u(()=>[f(r,null,{default:u(()=>[v(g(gt.value),1)]),_:1}),f(l,null,{default:u(()=>[ht.value?(c(),p("p",Ac,g(ht.value),1)):_("v-if",!0),f(Ms,{modelValue:Z.value,"onUpdate:modelValue":t[2]||(t[2]=e=>Z.value=e)},null,8,["modelValue"]),yt.value?(c(),p("p",Oc,g(yt.value),1)):_("v-if",!0),t[27]||(t[27]=x("p",{class:"move-destination-hint"}," Existing folders are merged. If another registered file already owns the destination path, the incoming file is skipped and stays on the source. ",-1)),mt.value||vt.value.length?(c(),d(o,{key:2,modelValue:ae.value,"onUpdate:modelValue":t[3]||(t[3]=e=>ae.value=e),label:"Include empty folders"},null,8,["modelValue"])):_("v-if",!0),x("div",$c,[f(i,{secondary:"",loading:ne.value,disabled:!Z.value.location,onClick:Ht},{default:u(()=>[...t[24]||(t[24]=[v(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),re.value?(c(),p("div",Cc,[x("p",null,[x("strong",null,g(re.value.total_files.toLocaleString()),1),t[26]||(t[26]=v(" files ",-1)),re.value.total_folders?(c(),p(m,{key:0},[t[25]||(t[25]=v(" · ",-1)),x("strong",null,g(re.value.total_folders.toLocaleString()),1),v(" "+g(1===re.value.total_folders?"folder":"folders"),1)],64)):_("v-if",!0),re.value.empty_folders?(c(),p("span",Ic," ("+g(re.value.empty_folders.toLocaleString())+" empty"+g(ae.value?"":", skipped")+") ",1)):_("v-if",!0),re.value.total_bytes?(c(),p(m,{key:2},[v(" · "+g(O(Be)(re.value.total_bytes)),1)],64)):_("v-if",!0)]),re.value.skipped?(c(),p("p",Rc,g(re.value.skipped.toLocaleString())+" already at destination — skipped ",1)):_("v-if",!0),re.value.samples?.length?(c(),p("ul",Nc,[(c(!0),p(m,null,h(re.value.samples,(e,t)=>(c(),p("li",{key:t},[v(g(e.from)+" → "+g(e.to)+" ",1),e.skipped?(c(),p("span",Tc," (skipped)")):_("v-if",!0)]))),128))])):_("v-if",!0),re.value.samples?.length&&re.value.total_files>re.value.samples.length?(c(),p("p",jc," Showing "+g(re.value.samples.length)+" of "+g(re.value.total_files.toLocaleString())+" files ",1)):_("v-if",!0)])):_("v-if",!0)])]),_:1}),f(y,null,{default:u(()=>[f(i,{secondary:"",onClick:t[4]||(t[4]=e=>J.value=!1)},{default:u(()=>[...t[28]||(t[28]=[v("Cancel",-1)])]),_:1}),f(i,{disabled:!Z.value.location,loading:ee.value,onClick:Xt},{default:u(()=>[...t[29]||(t[29]=[v(" Move ",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),bt.value?N((c(),d(Yi,{key:2,class:"action-delete",icon:"delete",secondary:"",disabled:se.value,onClick:wt},null,8,["disabled"])),[[H,"Delete",void 0,{bottom:!0}]]):_("v-if",!0),f(w,{modelValue:oe.value,"onUpdate:modelValue":t[8]||(t[8]=e=>oe.value=e),onEsc:t[9]||(t[9]=e=>oe.value=!1),onApply:Gt},{default:u(()=>[f(b,null,{default:u(()=>[f(r,null,{default:u(()=>[v("Delete "+g(1===L.value.length?"Item":"Items"),1)]),_:1}),f(l,null,{default:u(()=>[v(g(_t.value),1)]),_:1}),f(y,null,{default:u(()=>[f(i,{secondary:"",onClick:t[7]||(t[7]=e=>oe.value=!1)},{default:u(()=>[...t[30]||(t[30]=[v("Cancel",-1)])]),_:1}),f(i,{kind:"danger",loading:se.value,onClick:Gt},{default:u(()=>[...t[31]||(t[31]=[v("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),"storage"===n.mode&&n.storage?(c(),d(Ae,{key:3,modelValue:le.value,"onUpdate:modelValue":t[10]||(t[10]=e=>le.value=e),location:n.storage,paths:G.value,onDone:Kt},null,8,["modelValue","location","paths"])):_("v-if",!0),ct.value?N((c(),d(Yi,{key:4,icon:"account_tree",secondary:"",onClick:t[11]||(t[11]=e=>Q.value=!0)},null,512)),[[H,n.folder?"Materialize This Folder":"Materialize Root Folders",void 0,{bottom:!0}]]):_("v-if",!0),N(f(Yi,{icon:"add",loading:O(Pt),onClick:Vt},null,8,["loading"]),[[H,"Upload File",void 0,{bottom:!0}]])]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(el,{modelValue:O(de),"onUpdate:modelValue":t[15]||(t[15]=e=>A(de)?de.value=e:null)},{default:u(()=>[(c(),d(F(`layout-options-${O(de)}`),B(V(tn(e))),null,16))]),_:2},1032,["modelValue"]),(c(),d(F(`layout-sidebar-${O(de)}`),B(V(tn(e))),null,16)),f(j,{id:"actions",icon:"swap_horiz",title:"Actions"},{default:u(()=>[x("div",Lc,["storage"===n.mode&&ft.value?(c(),d(i,{key:0,secondary:"","full-width":"",class:"sidebar-btn",onClick:It},{default:u(()=>[v(g(ut.value),1)]),_:1})):_("v-if",!0),dt.value?(c(),d(i,{key:1,"full-width":"",class:"sidebar-btn sidebar-btn-primary",onClick:t[16]||(t[16]=e=>J.value=!0)},{default:u(()=>[v(" Move all on "+g(n.storage),1)]),_:1})):_("v-if",!0),ct.value?(c(),d(i,{key:2,"full-width":"",class:"sidebar-btn",onClick:t[17]||(t[17]=e=>Q.value=!0)},{default:u(()=>[v(g(n.folder?"Materialize This Folder":"Materialize Root Folders"),1)]),_:1})):_("v-if",!0)])]),_:1}),O(je)&&n.storage?(c(),d(dc,{key:0,"model-value":O(be),location:n.storage,search:O(he),"onUpdate:modelValue":O(_e),onDeleted:Zt},null,8,["model-value","location","search","onUpdate:modelValue"])):_("v-if",!0),"storage"===n.mode&&qe.value?(c(),d(j,{key:1,id:"storage-info",icon:"info",title:"Storage Info"},{default:u(()=>[x("p",Fc,g(qe.value.label),1),f(Ye,{usage:qe.value,compact:"",plain:""},null,8,["usage"])]),_:1})):(c(),d(j,{key:2,id:"directus-folders-info",icon:"info",title:"Directus Folders"},{default:u(()=>[x("p",Pc,g(O("A Directus folder is virtual — it organises files across any storage adapter. When Mirror Directus Folders is enabled on a storage, new uploads land on the matching physical path and folder renames or deletes are kept in sync on that adapter. Files on other adapters are unaffected.")),1),t[46]||(t[46]=x("p",{class:"sidebar-text"}," Use Move to Storage Folder to relocate files onto a physical path. Materialize builds storage folders from this virtual tree. At a storage root, Move all uses the same dialog. ",-1)),rt.value?(c(),d(C,{key:0,type:"info",class:"sidebar-multi-notice"},{default:u(()=>[v(" Files on "+g(ce.value.length)+" storages: ",1),x("strong",null,g(ce.value.join(", ")),1)]),_:1})):_("v-if",!0)]),_:1}))]),default:u(()=>[O(Ft)?(c(),p(m,{key:0},[t[32]||(t[32]=x("div",{class:"drop-border top"},null,-1)),t[33]||(t[33]=x("div",{class:"drop-border right"},null,-1)),t[34]||(t[34]=x("div",{class:"drop-border bottom"},null,-1)),t[35]||(t[35]=x("div",{class:"drop-border left"},null,-1))],64)):_("v-if",!0),Ke.value?(c(),p("div",{key:1,class:$(O(D))},[f(E,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(S,{name:"folder_special"})]),default:u(()=>[t[36]||(t[36]=v(" Directus Folders ",-1))]),_:1}),x("p",Dc,g(O("Browse the Directus folder tree. Use Move to Storage Folder to place files on a physical path, or Materialize to build that folder tree on disk. The virtual structure in the File Library is never changed here.")),1)],2)):_("v-if",!0),rt.value?(c(),d(C,{key:2,type:"info",class:"multi-storage-notice"},{default:u(()=>[v(g(st.value),1)]),_:1})):_("v-if",!0),De.value?(c(),d(F(`layout-${O(de)}`),P({key:3},nn(e),{"extra-selection":G.value,"onUpdate:extraSelection":t[14]||(t[14]=e=>G.value=e),onSelectAll:Qt}),U({"no-results":u(()=>[O(me)||O(he)?(c(),d(I,{key:1,title:"No results",icon:"search",center:""},{append:u(()=>[f(i,{onClick:Ct},{default:u(()=>[...t[39]||(t[39]=[v("Clear filters",-1)])]),_:1})]),default:u(()=>[t[40]||(t[40]=v(" No files match your search or filters. ",-1))]),_:1})):(c(),d(I,{key:0,title:"No files",icon:"folder",center:""},{append:u(()=>[f(i,{onClick:Vt},{default:u(()=>[...t[37]||(t[37]=[v("Add File",-1)])]),_:1})]),default:u(()=>[t[38]||(t[38]=v(" Drop files here to upload, or use the + button. ",-1))]),_:1}))]),"no-items":u(()=>[f(I,{title:"No files",icon:"folder",center:""},{append:u(()=>[f(i,{onClick:Vt},{default:u(()=>[...t[42]||(t[42]=[v("Add File",-1)])]),_:1})]),default:u(()=>[Y.value?(c(),p(m,{key:0},[v("Loading storage folders…")],64)):(c(),p(m,{key:1},[t[41]||(t[41]=v(" Drop files here to upload, or use the + button. ",-1)),"storage"===n.mode?(c(),p(m,{key:0},[v(" Create a storage folder with the folder icon. ")],64)):_("v-if",!0)],64))]),_:1})]),_:2},["storage"!==n.mode||!K.value.length||O(he)||O(me)?"folders"!==n.mode||!He.value.length||O(he)||O(me)?void 0:{name:"prepend",fn:u(()=>[f(Ns,{selection:G.value,"onUpdate:selection":t[13]||(t[13]=e=>G.value=e),folders:He.value,"any-file-selection":L.value.length>0},null,8,["selection","folders","any-file-selection"])]),key:"1"}:{name:"prepend",fn:u(()=>[f(Os,{selection:G.value,"onUpdate:selection":t[12]||(t[12]=e=>G.value=e),location:n.storage,folders:K.value,"any-file-selection":L.value.length>0,onChanged:Ot},null,8,["selection","location","folders","any-file-selection"])]),key:"0"}]),1040,["extra-selection"])):_("v-if",!0),Me.value&&n.storage?(c(),p("p",Mc," Generated thumbnails and resized variants at the storage root — not registered in Directus Files. ")):_("v-if",!0),Me.value&&n.storage?(c(),d(F(`layout-${O(de)}`),P({key:5},en(O(xe)),{"onUpdate:width":O(ke),"onUpdate:limit":O(Ee),"onUpdate:fields":O(Oe),"onUpdate:tableSpacing":O($e),"onUpdate:size":O(Ce),"onUpdate:sort":O(Ie)}),{"no-results":u(()=>[f(I,{title:"No results",icon:"search",center:""},{append:u(()=>[f(i,{onClick:Ct},{default:u(()=>[...t[43]||(t[43]=[v("Clear search",-1)])]),_:1})]),default:u(()=>[t[44]||(t[44]=v(" No transforms match your search. ",-1))]),_:1})]),"no-items":u(()=>[f(I,{title:"No thumbnails",icon:"photo_size_select_large",center:""},{default:u(()=>[...t[45]||(t[45]=[v(" No generated transforms at the storage root. ",-1)])]),_:1})]),_:1},16,["onUpdate:width","onUpdate:limit","onUpdate:fields","onUpdate:tableSpacing","onUpdate:size","onUpdate:sort"])):_("v-if",!0),Wt.value?(c(),d(T,{key:6,collection:"directus_files","primary-key":Wt.value,active:!0,"onUpdate:active":Jt},null,8,["primary-key"])):_("v-if",!0),f(Fs,{modelValue:Mt.value,"onUpdate:modelValue":t[18]||(t[18]=e=>Mt.value=e),title:Bt.value,uploading:O(Pt),onFiles:zt},null,8,["modelValue","title","uploading"]),f(ss,{modelValue:We.value,"onUpdate:modelValue":t[19]||(t[19]=e=>We.value=e),storages:O(k),"source-storage":"storage"===n.mode&&n.storage||null,"selection-kind":Ze.value,"file-ids":et.value.length?et.value:L.value,"folder-id":"folders"===n.mode?n.folder??null:null,"source-path":"storage"===n.mode&&Ne.value||null,"estimated-count":tt.value,"estimated-bytes":nt.value,onDone:Nt},null,8,["modelValue","storages","source-storage","selection-kind","file-ids","folder-id","source-path","estimated-count","estimated-bytes"]),"storage"===n.mode&&n.storage?(c(),d(ws,{key:7,"model-value":Je.value,location:n.storage,"storage-path":Ne.value||null,"onUpdate:modelValue":Rt,onImported:Tt},null,8,["model-value","location","storage-path"])):_("v-if",!0),"folders"===n.mode?(c(),d(nc,{key:8,modelValue:Q.value,"onUpdate:modelValue":t[20]||(t[20]=e=>Q.value=e),storages:O(k),"folder-id":n.folder??null,onDone:jt},null,8,["modelValue","storages","folder-id"])):_("v-if",!0)]),_:2},1032,["title","icon","class"])]),_:1},40,["selection","layout-options","layout-query","filter","filter-user","filter-system","search","reset-preset"])}}});we("\n.drop-border[data-v-2c393c04] {\n\tposition: fixed;\n\tz-index: 500;\n\tbackground-color: var(--theme--primary);\n}\n.drop-border.top[data-v-2c393c04],\n.drop-border.bottom[data-v-2c393c04] {\n\tinline-size: 100%;\n\tblock-size: 0.25rem;\n}\n.drop-border.left[data-v-2c393c04],\n.drop-border.right[data-v-2c393c04] {\n\tinline-size: 0.25rem;\n\tblock-size: 100%;\n}\n.drop-border.top[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n}\n.drop-border.right[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-end: 0;\n}\n.drop-border.bottom[data-v-2c393c04] {\n\tinset-block-end: 0;\n\tinset-inline-start: 0;\n}\n.drop-border.left[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n}\n.dragging[data-v-2c393c04] * {\n\tpointer-events: none;\n}\n.dragging[data-v-2c393c04] [data-dropzone] {\n\tpointer-events: all;\n}\n.sidebar-actions[data-v-2c393c04] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n\n/* Sidebar panel bg often matches --theme--background-normal, so default\n secondary buttons look like plain text. Force a visible chip fill. */\n.sidebar-actions[data-v-2c393c04] .sidebar-btn {\n\tdisplay: flex;\n\twidth: 100%;\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button {\n\twidth: 100%;\n\tjustify-content: center;\n\tcolor: var(--theme--foreground);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--background-normal);\n}\n\n/* Theme fill only when enabled — disabled stays gray like secondary */\n.sidebar-actions[data-v-2c393c04] .sidebar-btn-primary .button:not(:disabled) {\n\tcolor: var(--foreground-inverted, var(--theme--primary-foreground, #fff));\n\tbackground-color: var(--theme--primary);\n\tborder-color: var(--theme--primary);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn-primary .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--primary-accent);\n\tborder-color: var(--theme--primary-accent);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button:disabled {\n\tcolor: var(--theme--foreground-subdued);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n\topacity: 0.65;\n\tcursor: not-allowed;\n}\n.sidebar-text[data-v-2c393c04] {\n\tmargin: 0;\n\tline-height: 1.45;\n}\n.sidebar-note[data-v-2c393c04] {\n\tmargin-block-end: 12px;\n\tpadding: 10px 12px;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.page-container[data-v-2c393c04] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: 0;\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-2c393c04] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-2c393c04] {\n\tmargin-bottom: 12px;\n}\n.page-intro[data-v-2c393c04] {\n\tmargin: 0 0 24px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.transforms-intro[data-v-2c393c04] {\n\tmargin: 0 var(--content-padding) 12px;\n\tfont-size: 13px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-hint[data-v-2c393c04] {\n\tmargin: 0 0 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-destination-hint[data-v-2c393c04] {\n\tmargin: 10px 0 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-dry-run[data-v-2c393c04] {\n\tmargin-top: 16px;\n}\n.move-dry-result[data-v-2c393c04] {\n\tmargin-top: 12px;\n\tline-height: 1.5;\n}\n.move-samples[data-v-2c393c04] {\n\tmargin: 8px 0 0;\n\tpadding-inline-start: 18px;\n\tmax-height: 180px;\n\toverflow: auto;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.multi-storage-notice[data-v-2c393c04] {\n\tmargin: 12px var(--content-padding, 16px) 0;\n}\n.sidebar-multi-notice[data-v-2c393c04] {\n\tmargin-block-start: 12px;\n}\n.action-delete[data-v-2c393c04] {\n\t--v-button-background-color-hover: var(--theme--danger) !important;\n\t--v-button-color-hover: var(--white, #fff) !important;\n}\n.storage-label[data-v-2c393c04] {\n\tmargin-bottom: 10px;\n\tfont-weight: 600;\n}\n",{});we("\n.storage-location-badge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-inline-size: 100%;\n\tpadding: 2px 8px;\n\toverflow: hidden;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tline-height: 1.35;\n\tcolor: var(--theme--primary-foreground, var(--white, #fff));\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpointer-events: none;\n\tbackground: var(--theme--primary);\n\tborder: none;\n\tborder-radius: var(--theme--border-radius);\n}\n.layout-cards .header .storage-location-badge {\n\tposition: absolute;\n\tinset-block-end: 8px;\n\tinset-inline-start: 8px;\n\tz-index: 2;\n\tmax-inline-size: calc(100% - 16px);\n\tbox-shadow: 0 1px 3px rgb(38 50 56 / 0.2);\n}\n",{});var Vc=xe(Bc,[["__scopeId","data-v-2c393c04"]]),zc=l({__name:"storage-view",setup(e){const t=X(),n=i(()=>String(t.params.location||"")),a=i(()=>{const e=t.params.storagePath;return Ie(Array.isArray(e)?e.map(String).join("/"):String(e||""))});return(e,t)=>(c(),d(Vc,{mode:"storage",storage:n.value,"storage-path":a.value},null,8,["storage","storage-path"]))}}),Gc=l({__name:"folders-view",setup(e){const t=X(),n=i(()=>{const e=t.params.folderId;return e?String(e):null});return(e,t)=>(c(),d(Vc,{mode:"folders",folder:n.value||void 0},null,8,["folder"]))}});function Kc(){const n=e(),{useUserStore:a,useSettingsStore:r}=t(),i=a(),l=r(),s=o(!1),c=o(!1),d=o({locations:{}});let u=null;return{loading:s,cleaning:c,settings:d,ensureLoaded:async function(e=!1){return u&&!e||(u=(async()=>{s.value=!0;try{const t=await n.get("/storage-manager/settings");d.value=(e=t.data?.data??{locations:{}},st({locations:{},...e}))}finally{s.value=!1}var e})()),u},exportStorageManagerConfig:function(){const e={...d.value,storage_manager:d.value,exported_at:(new Date).toISOString(),extension:"directus-extension-storage-manager"},t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),a=document.createElement("a"),r=(new Date).toISOString().slice(0,19).replace(/[:T]/g,"-");a.href=n,a.download=`storage-manager-${r}.json`,a.click(),URL.revokeObjectURL(n)},importStorageManagerConfig:async function(e){if(!Y(i.currentUser))throw new Error("Admin access required");const t=st(e);d.value=t,await n.patch("/storage-manager/settings",{locations:t.locations});try{await(l.hydrate?.())}catch{}u=null},cleanupExtensionData:async function(){if(!Y(i.currentUser))throw new Error("Admin access required");c.value=!0;let e=!1,t=!1;try{try{await n.patch("/settings",{[Ze]:null}),e=!0}catch(e){const t=e?.response?.status,n=String(e?.response?.data?.errors?.[0]?.message||e?.message||"");if(400!==t&&403!==t&&!/unknown|does not exist|forbidden/i.test(n))throw e}try{await n.delete(`/fields/directus_settings/${Ze}`),t=!0}catch(e){const n=e?.response?.status;if(404!==n)throw e;t=!0}d.value={locations:{}},u=null;try{await(l.hydrate?.())}catch{}return{clearedValue:e,deletedField:t}}finally{c.value=!1}}}}const Hc={class:"actions"},Xc={key:0,class:"result"},qc={class:"actions"},Wc={key:1,class:"result"},Yc={key:2,class:"result"},Jc={key:3,class:"result"};var Qc=l({__name:"settings-view",setup(t){const n=Qe(),a=e(),r=i(()=>"/admin/settings/marketplace/extension/88a7639e-db2a-4ade-a97f-94d2cc3836e7"),{loading:l,cleaning:h,ensureLoaded:y,cleanupExtensionData:w,exportStorageManagerConfig:S,importStorageManagerConfig:k}=Kc(),E=o(!1),A=o(null),C=o(null),I=o(!1),R=o(null),N=o(null),T=o(!1),j=o(null),D=i(()=>j.value?j.value.error||j.value.has_update?"warning":"success":"info");function M(){R.value=null,S()}function L(){R.value=null,N.value?.click()}async function F(e){const t=e.target,n=t.files?.[0];if(t.value="",n){I.value=!0,R.value=null;try{const e=await n.text(),t=JSON.parse(e);await k(t),R.value={type:"success",text:"Config imported and saved to settings."}}catch(e){R.value={type:"danger",text:e?.response?.data?.errors?.[0]?.message||e?.message||"Import failed"}}finally{I.value=!1}}}async function P(){A.value=null,C.value=null,R.value=null;try{C.value=await w(),E.value=!1}catch(e){A.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Cleanup failed"}}return b(()=>{y()}),(e,t)=>{const o=s("v-breadcrumb"),i=s("sidebar-detail"),y=s("v-icon"),b=s("v-divider"),w=s("v-button"),S=s("v-notice"),k=s("v-card-title"),U=s("v-card-text"),B=s("v-card-actions"),V=s("v-card"),z=s("v-dialog"),G=s("private-view");return c(),d(G,{title:"Settings",icon:"settings"},{headline:u(()=>[f(o,{items:[{name:"Storage Manager",to:"/storage-manager"}]})]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(i,{id:"about",icon:"info",title:"About"},{default:u(()=>[...t[5]||(t[5]=[x("p",{class:"sidebar-text"}," Export or import this extension’s JSON config, or remove the dedicated settings field before uninstalling. ",-1)])]),_:1})]),default:u(()=>[x("div",{class:$(O(n))},[f(b,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"system_update"})]),default:u(()=>[t[6]||(t[6]=v(" Extension Updates ",-1))]),_:1}),t[18]||(t[18]=x("p",{class:"explain"}," Check npm for the latest published version and compare it with the installed extension version. ",-1)),x("div",Hc,[f(w,{secondary:"",loading:T.value,onClick:t[0]||(t[0]=e=>async function(e){T.value=!0;try{const t=await a.get("/storage-manager/update-check",{params:{force:e?"1":void 0}});j.value=t.data?.data||null}catch(e){j.value={current_version:"unknown",latest_version:null,has_update:!1,checked_at:(new Date).toISOString(),error:e?.response?.data?.errors?.[0]?.message||e?.message||"Update check failed",links:{npm:"https://www.npmjs.com/package/directus-extension-storage-manager",github:"https://github.com/domdus/directus-extension-storage-manager",marketplace:r.value}}}finally{T.value=!1}}(!0))},{default:u(()=>[...t[7]||(t[7]=[v("Check now",-1)])]),_:1},8,["loading"]),j.value?.has_update&&r.value?(c(),d(w,{key:0,secondary:"",to:r.value},{default:u(()=>[...t[8]||(t[8]=[v(" Marketplace ",-1)])]),_:1},8,["to"])):_("v-if",!0)]),j.value?(c(),p("div",Xc,[f(S,{type:D.value},{default:u(()=>[t[10]||(t[10]=v(" Current: ",-1)),x("strong",null,g(j.value.current_version),1),j.value.latest_version?(c(),p(m,{key:0},[t[9]||(t[9]=v(" · Latest: ",-1)),x("strong",null,g(j.value.latest_version),1)],64)):_("v-if",!0),j.value.error?(c(),p(m,{key:1},[v(" · "+g(j.value.error),1)],64)):j.value.has_update?(c(),p(m,{key:2},[v(" · Update available")],64)):(c(),p(m,{key:3},[v(" · Up to date")],64))]),_:1},8,["type"])])):_("v-if",!0),f(b,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"import_export"})]),default:u(()=>[t[11]||(t[11]=v(" Export / Import ",-1))]),_:1}),t[19]||(t[19]=x("p",{class:"explain"},[v(" Back up or restore Mirror Directus Folders settings as JSON, or remove the dedicated "),x("code",null,"storage_manager"),v(" settings field before uninstalling. Per-location rules are stored in "),x("code",null,"directus_settings.storage_manager"),v(" only — other project settings are left untouched. ")],-1)),x("div",qc,[f(w,{secondary:"",disabled:O(l)||O(h),onClick:M},{default:u(()=>[...t[12]||(t[12]=[v("Export JSON",-1)])]),_:1},8,["disabled"]),f(w,{secondary:"",disabled:O(l)||O(h)||I.value,loading:I.value,onClick:L},{default:u(()=>[...t[13]||(t[13]=[v(" Import JSON ",-1)])]),_:1},8,["disabled","loading"]),x("input",{ref_key:"fileInput",ref:N,type:"file",accept:"application/json,.json",class:"file-input",onChange:F},null,544)]),R.value?(c(),p("div",Wc,[f(S,{type:R.value.type},{default:u(()=>[v(g(R.value.text),1)]),_:1},8,["type"])])):_("v-if",!0),f(b,{class:"section-divider add-margin-top",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"delete"})]),default:u(()=>[t[14]||(t[14]=v(" Remove extension data ",-1))]),_:1}),t[20]||(t[20]=x("p",{class:"explain"},[v(" Storage folder and sync settings live in a dedicated JSON field "),x("code",null,"directus_settings.storage_manager"),v(". Cleanup removes only that field and its value. If the extension stays installed, the next Directus restart may recreate an empty "),x("code",null,"storage_manager"),v(" field. ")],-1)),f(S,{type:"warning",class:"notice"},{default:u(()=>[...t[15]||(t[15]=[v(" Deleting extension data cannot be undone. Export first if you might need the config again. ",-1)])]),_:1}),C.value?(c(),p("div",Yc,[f(S,{type:"success"},{default:u(()=>[t[16]||(t[16]=v(" Cleanup finished. ",-1)),C.value.clearedValue?(c(),p(m,{key:0},[v(" Value cleared.")],64)):_("v-if",!0),C.value.deletedField?(c(),p(m,{key:1},[v(" Field removed.")],64)):_("v-if",!0)]),_:1})])):_("v-if",!0),A.value?(c(),p("div",Jc,[f(S,{type:"danger"},{default:u(()=>[v(g(A.value),1)]),_:1})])):_("v-if",!0),f(w,{kind:"danger",loading:O(h),disabled:O(h),onClick:t[1]||(t[1]=e=>E.value=!0)},{default:u(()=>[...t[17]||(t[17]=[v(" Delete storage_manager data ",-1)])]),_:1},8,["loading","disabled"])],2),f(z,{modelValue:E.value,"onUpdate:modelValue":t[3]||(t[3]=e=>E.value=e),onEsc:t[4]||(t[4]=e=>E.value=!1)},{default:u(()=>[f(V,null,{default:u(()=>[f(k,null,{default:u(()=>[...t[21]||(t[21]=[v("Delete storage_manager?",-1)])]),_:1}),f(U,null,{default:u(()=>[...t[22]||(t[22]=[v(" This removes only ",-1),x("code",null,"directus_settings.storage_manager",-1),v(" (the extension’s own JSON field). All other project settings stay as they are. ",-1)])]),_:1}),f(B,null,{default:u(()=>[f(w,{secondary:"",onClick:t[2]||(t[2]=e=>E.value=!1)},{default:u(()=>[...t[23]||(t[23]=[v("Cancel",-1)])]),_:1}),f(w,{kind:"danger",loading:O(h),onClick:P},{default:u(()=>[...t[24]||(t[24]=[v("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}}});we("\n.page-container[data-v-e3d57b64] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: var(--content-padding-bottom);\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-e3d57b64] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-e3d57b64] {\n\tmargin-bottom: 12px;\n}\n.section-divider.add-margin-top[data-v-e3d57b64] {\n\tmargin-top: 40px;\n}\n.explain[data-v-e3d57b64],\n.sidebar-text[data-v-e3d57b64] {\n\tmargin: 0 0 16px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.explain code[data-v-e3d57b64],\n.sidebar-text code[data-v-e3d57b64],\n.v-card-text code[data-v-e3d57b64] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.actions[data-v-e3d57b64] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tmargin-bottom: 16px;\n}\n.file-input[data-v-e3d57b64] {\n\tdisplay: none;\n}\n.notice[data-v-e3d57b64],\n.result[data-v-e3d57b64] {\n\tmargin-bottom: 16px;\n}\n",{});var Zc=xe(Qc,[["__scopeId","data-v-e3d57b64"]]),ed=l({name:"DirectusFolderPickerItem",__name:"directus-folder-picker-item",props:{folder:{},currentFolder:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-item"),v=s("directus-folder-picker-item",!0),g=s("v-list-group");return e.folder.children&&0!==e.folder.children.length?(c(),d(g,{key:1,clickable:"",scope:"directus-folder-picker",value:e.folder.id,active:e.currentFolder===e.folder.id,"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler(e.folder.id))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[(c(!0),p(m,null,h(e.folder.children,t=>(c(),d(v,{key:t.id,folder:t,"current-folder":e.currentFolder,"click-handler":e.clickHandler},null,8,["folder","current-folder","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(l,{key:0,clickable:"",active:e.currentFolder===e.folder.id,onClick:n[0]||(n[0]=t=>e.clickHandler(e.folder.id))},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"]))}});const td={key:1,class:"folder-picker"},nd={key:0,class:"empty"};var ad=l({__name:"directus-folder-picker",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{nestedFolders:r,folders:o,loading:l,fetchFolders:g,openFolders:w}=te(),x=i(()=>{const e=n.modelValue;if(!e||!o.value?.length)return[];const t=new Map(o.value.map(e=>[e.id,e])),a=[];let r=t.get(e);for(;r?.parent;)a.unshift(r.parent),r=t.get(r.parent);return a});function S(e){a("update:modelValue",e)}return y(x,e=>{const t=new Set(w.value);for(const n of e)t.add(n);w.value=Array.from(t)},{immediate:!0}),b(()=>{g()}),(t,n)=>{const a=s("v-skeleton-loader"),o=s("v-icon"),i=s("v-list-item-icon"),g=s("v-list-item-content"),y=s("v-list-item"),b=s("v-item-group"),x=s("v-list");return O(l)&&!O(r)?.length?(c(),d(a,{key:0})):(c(),p("div",td,[f(x,null,{default:u(()=>[f(b,{modelValue:O(w),"onUpdate:modelValue":n[1]||(n[1]=e=>A(w)?w.value=e:null),scope:"directus-folder-picker",multiple:""},{default:u(()=>[f(y,{clickable:"",active:null===e.modelValue,onClick:n[0]||(n[0]=e=>S(null))},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"folder_open"})]),_:1}),f(g,null,{default:u(()=>[...n[2]||(n[2]=[v("Root (no folder)",-1)])]),_:1})]),_:1},8,["active"]),(c(!0),p(m,null,h(O(r)||[],t=>(c(),d(ed,{key:t.id,folder:t,"current-folder":e.modelValue,"click-handler":S},null,8,["folder","current-folder"]))),128))]),_:1},8,["modelValue"])]),_:1}),(O(r)||[]).length?_("v-if",!0):(c(),p("p",nd,"No Directus folders yet."))]))}}});we("\n.folder-picker[data-v-b47c6989] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-b47c6989] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var rd=xe(ad,[["__scopeId","data-v-b47c6989"]]);const od="storage-location-badge";function id(e){const t=document.createElement("span");return t.className=od,t.textContent=e,t}function ld(){document.querySelectorAll(`.layout-cards .header .${od}`).forEach(e=>{e.remove()}),document.querySelectorAll(`.layout-tabular .${od}`).forEach(e=>{const t=e.parentElement,n=e.textContent||"";e.remove(),t&&!t.querySelector(`.${od}`)&&t.append(n)})}function sd(t){const n=e();async function a(e){if(ld(),!t.enabled.value)return;if(await z(),"tabular"===t.layout.value)return void function(){const e=document.querySelector(".layout-tabular thead tr");if(!e)return;const t=Array.from(e.children);let n=t.findIndex(e=>String(e.className||"").split(/\s+/).includes("storage")||"storage"===e.getAttribute("data-field"));n<0&&(n=t.findIndex(e=>"storage"===e.textContent?.trim().toLowerCase())),n<0||document.querySelectorAll(".layout-tabular tbody tr").forEach(e=>{const t=e.children[n];if(!t||t.querySelector(`.${od}`))return;const a=String(t.textContent||"").trim();a&&(t.textContent="",t.appendChild(id(a)))})}();if("cards"!==t.layout.value||!e?.length)return;const a=document.querySelectorAll(".layout-cards .grid .card:not(.folder-card)");if(!a.length)return;const r="id",o=e.some(e=>null!=e[r]&&null==e.storage);let i={};if(o){const t=e.map(e=>e[r]).filter(Boolean);if(!t.length)return;try{const e=await n.get("/files",{params:{filter:JSON.stringify({id:{_in:t}}),fields:["id","storage"],limit:t.length}});for(const t of e.data?.data||[])i[String(t.id)]=String(t.storage||"")}catch{return}}a.forEach((t,n)=>{const a=e[n];if(!a)return;const o=String(a.storage??i[String(a[r])]??"").trim();if(!o)return;const l=t.querySelector(".header");l&&l.appendChild(id(o))})}function r(e){a(e).catch(()=>{})}return y(()=>[t.enabled.value,t.layout.value,t.layoutQuery.value.page,t.layoutQuery.value.limit,JSON.stringify(t.layoutQuery.value.sort??[]),t.layoutRef.value?.state?.loading,t.layoutRef.value?.state?.items],()=>{t.layoutRef.value?.state?.loading||r(t.layoutRef.value?.state?.items)},{deep:!0,flush:"post"}),{clearStorageLocationBadges:ld,scheduleStorageBadges:r}}const cd={class:"move-hint"},dd={class:"move-hint"},ud={key:0,class:"move-destination-hint"},fd={class:"move-dry-run"},pd={key:0,class:"move-dry-result"},md={key:0,class:"move-hint"},hd={class:"side-field"},vd={class:"side-field"},gd={class:"scan-bar","aria-label":"Scan Options"},yd={class:"scan-bar-fields"},bd={class:"scan-bar-field scan-bar-field--age"},_d={for:"scan-min-age",class:"scan-bar-label-row"},wd={class:"scan-bar-field scan-bar-field--storage"},xd={class:"scan-bar-field scan-bar-field--check"},Sd={class:"scan-bar-label-row"},kd={class:"scan-bar-radios",role:"radiogroup","aria-label":"Scan WYSIWYG / JSON Fields"},Ed={class:"scan-bar-actions"},Ad={key:0,class:"stats-grid"},Od={class:"stat"},$d={class:"stat-value"},Cd={class:"stat-label"},Id={class:"stat"},Rd={class:"stat-value"},Nd={class:"stat-label"},Td={class:"stat"},jd={class:"stat-value"},Dd={class:"stat-label"},Md={class:"stat"},Ld={class:"stat-value"},Fd={class:"stat-label"},Pd={class:"stat"},Ud={class:"stat-value"},Bd={key:1,class:"notice"},Vd={key:2,class:"error"},zd={key:0,class:"loading-block"};var Gd=l({__name:"unreferenced-view",setup(t){const n=e(),a=X(),r=H(),l=Qe(),{storages:h,loadStorages:w}=ie(),{start:S}=_l(),k=o(),E=o([]),C=o(!1),T=o(""),j=o(!1),D=o(!1),M=o(""),L=o(!1),G=o(null),K=o([]),q=i(()=>{const e=a.query.file;return"string"==typeof e&&e.length>0?e:null}),W=o(!1),Y=o(null),J=o(!1),Q=o(!1),Z=o({location:"",path:""}),ee=o(!1),te=o(!1),ne=o(null),ae=o(!1),re=i(()=>C.value||j.value||J.value||ee.value),oe=i(()=>{const e=Z.value.location;if(!e)return"";return`Files will be moved to ${Z.value.path?`${e}/${Z.value.path}/`:`${e}/`}`}),le=I({...rt}),se=o(!1),ce=o(null),de=o(null),ue=i(()=>h.value.map(e=>({text:e.location,value:e.location}))),fe=[{text:"Keep file in library",value:"keep"},{text:"Ask (deselect vs delete if unused)",value:"ask"},{text:"Delete file if unreferenced",value:"delete_if_unreferenced"}],pe=[{text:"Keep file in library",value:"keep"},{text:"Delete file if unreferenced",value:"delete_if_unreferenced"}],{layout:me,layoutOptions:he,layoutQuery:ve,filter:ge,search:ye,resetPreset:be,resetPage:_e}=vc(),{layoutWrapper:we}=Hi(me),xe=i(()=>D.value),Se=["title","type","filesize","modified_on"],ke=i({get(){const e={...ve.value};if(!xe.value||"tabular"!==me.value)return e;const t=[...e.fields?.length?e.fields:Se];return t.includes("storage")||t.push("storage"),{...e,fields:t}},set(e){ve.value=e}});sd({enabled:xe,layout:me,layoutRef:k,layoutQuery:ve});const Ee=i(()=>({id:{_in:K.value.length?K.value:["00000000-0000-4000-8000-000000000000"]}})),Ae=i(()=>Ec(ge.value,Ee.value));function Oe(){ge.value=null,ye.value=null,_e()}function $e(e){const t={...a.query,file:String(e)},n=new URLSearchParams;for(const[e,a]of Object.entries(t))if(null!=a&&""!==a)if(Array.isArray(a))for(const t of a)n.append(e,String(t));else n.set(e,String(a));const r=n.toString();return r?`${a.path}?${r}`:a.path}function Ce(e){const t=e.primaryKeyField?.field||"id";return{...e,hasPrependContent:!1,getLinkForItem(e){const n=e?.[t];if(null!=n)return $e(n)},onRowClick({item:e,event:n}){const a=e?.[t];if(null==a)return;if(E.value.length>0)return void(E.value.includes(a)?E.value=E.value.filter(e=>e!==a):E.value=E.value.concat(a));const o=$e(a);n.ctrlKey||n.metaKey?window.open(r.resolve(o).href,"_blank"):r.push(o)}}}function Ie(e){e||(!function(){if(!("file"in a.query))return;const e={...a.query};delete e.file,r.replace({path:a.path,query:e})}(),Re().catch(()=>{}))}async function Re(){await z(),await(k.value?.state?.refresh?.())}async function Ne(e){await n.patch("/storage-manager/settings",{lifecycle:{on_deselect:le.on_deselect,on_item_delete:le.on_item_delete,scan_min_age_minutes:Number(le.scan_min_age_minutes)||0,scan_text_fields:Boolean(le.scan_text_fields),...e}})}async function Te(){se.value=!0,ce.value=null;try{await Ne({on_deselect:le.on_deselect,on_item_delete:le.on_item_delete}),ce.value={type:"success",text:"Lifecycle defaults saved."}}catch(e){ce.value={type:"danger",text:e?.response?.data?.errors?.[0]?.message||e?.message||"Save failed"}}finally{se.value=!1}}async function je(){if(!C.value){C.value=!0,T.value="Starting scan…",M.value="",E.value=[];try{await async function(){await Ne({scan_min_age_minutes:Number(le.scan_min_age_minutes)||0,scan_text_fields:Boolean(le.scan_text_fields)})}().catch(()=>{}),G.value=await async function(e){const t=await fetch(function(){const e=String(n?.defaults?.baseURL||"").replace(/\/$/,""),t="/storage-manager/unreferenced/scan/stream";return e?`${e}${t}`:t}(),{method:"POST",headers:De(),body:JSON.stringify({min_age_minutes:e.min_age_minutes,scan_text_fields:e.scan_text_fields,storage:e.storage,limit:e.limit,offset:e.offset}),credentials:"same-origin"});if(!t.ok){let e=`Scan failed (${t.status})`;try{const n=await t.json();e=n?.errors?.[0]?.message||e}catch{}throw new Error(e)}if(!t.body)throw new Error("No response body for scan stream");const a=t.body.getReader(),r=new TextDecoder;let o="",i=null;for(;;){const{done:t,value:n}=await a.read();if(t)break;o+=r.decode(n,{stream:!0});const l=o.split("\n\n");o=l.pop()||"";for(const t of l)for(const n of t.split("\n")){const t=n.trim();if(!t.startsWith("data:"))continue;const a=t.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if("heartbeat"!==r.type)if("start"===r.type&&r.message)e.onProgress(String(r.message));else if("progress"!==r.type){if("error"===r.type)throw new Error(r.message||"Scan failed");"done"===r.type&&(i=r.meta)}else e.onProgress(String(r.message||"Scanning…"))}}if(!i)throw new Error("Scan stream ended without a result");return i}({min_age_minutes:Number(le.scan_min_age_minutes)||0,scan_text_fields:Boolean(le.scan_text_fields),storage:de.value?.trim()||null,limit:1,offset:0,onProgress:e=>{T.value=e}});const e=Array.isArray(G.value?.ids)?G.value.ids.map(String):[];K.value=e,D.value=!0,_e(),await Re()}catch(e){M.value=e?.message||"Scan failed",G.value=null,K.value=[]}finally{C.value=!1,T.value=""}}}function De(){const e={"Content-Type":"application/json",Accept:"text/event-stream"},t=n?.defaults?.headers,a=t?.common?.Authorization||t?.Authorization||t?.common?.authorization||t?.authorization;return"string"==typeof a&&a&&(e.Authorization=a),e}function Me(){E.value.length&&(L.value=!0)}async function Le(){if(E.value.length&&!j.value){j.value=!0;try{const e=await n.post("/storage-manager/unreferenced/delete",{file_ids:E.value,scan_text_fields:Boolean(le.scan_text_fields)}),t=new Set((e.data?.data?.results||[]).filter(e=>"deleted"===e.status).map(e=>String(e.id)));K.value=K.value.filter(e=>!t.has(e)),G.value&&(G.value={...G.value,unreferenced_count:K.value.length,ids:K.value}),E.value=[],L.value=!1,await Re()}catch(e){M.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed",L.value=!1}finally{j.value=!1}}}async function Fe(){if(E.value.length&&!J.value){J.value=!0;try{await n.patch("/files",{keys:E.value,data:{folder:Y.value}}),W.value=!1,E.value=[],await Re()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move to folder failed")}finally{J.value=!1}}}async function Pe(){if(Z.value.location&&!te.value&&E.value.length){te.value=!0,ne.value=null;try{const e=await n.post("/storage-manager/migrate/dry-run",{file_ids:E.value.map(String),target_storage:Z.value.location,target_path:Z.value.path||"",preserve_paths:!1});ne.value=e.data?.data??null}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed")}finally{te.value=!1}}}function Ve(e){const t=Number(e)||0;t>0&&window.alert(`${t.toLocaleString()} file${1===t?"":"s"} already exist at the destination and were left in place.`)}async function ze(){const e=Z.value.location,t=Z.value.path||"";if(e&&E.value.length){ee.value=!0;try{const a=E.value.map(String),r=await n.get("/files",{params:{limit:-1,fields:["id","storage"],filter:JSON.stringify({id:{_in:a}})}}),o=r.data?.data||[],i=o.filter(t=>String(t.storage)!==e).map(e=>String(e.id));if(!i.length){const r=await n.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:a,target_path:t});return Ve(r.data?.data?.skipped),Q.value=!1,E.value=[],void await Re()}Q.value=!1,ee.value=!1;const l=S({file_ids:i,target_storage:e,mode:"move",target_path:t},{estimatedCount:i.length});ae.value=!0,await l;const s=o.filter(t=>String(t.storage)===e).map(e=>String(e.id));if(s.length){const a=await n.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:s,target_path:t});Ve(a.data?.data?.skipped)}E.value=[],await Re()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{ee.value=!1}}}async function Ge(){E.value=[],await Re()}return y([ge,ye],()=>{_e()}),y(W,e=>{e&&(Y.value=null)}),y(Q,e=>{e&&(ne.value=null,Z.value={location:h.value[0]?.location||"",path:""})}),y(()=>[Z.value.location,Z.value.path],()=>{ne.value=null}),b(async()=>{try{await w().catch(()=>{});const e=await n.get("/storage-manager/settings"),t=e.data?.data?.lifecycle;t&&Object.assign(le,t)}catch{}}),(e,t)=>{const n=s("v-breadcrumb"),a=s("v-card-title"),r=s("v-card-text"),o=s("v-button"),i=s("v-card-actions"),y=s("v-card"),b=s("v-dialog"),w=s("v-select"),S=s("sidebar-detail"),I=s("v-icon"),z=s("v-divider"),K=s("v-input"),H=s("v-radio"),X=s("v-progress-circular"),ie=s("v-info"),ve=s("drawer-item"),_e=s("private-view"),xe=R("tooltip");return c(),d(F(O(we)),{ref_key:"layoutRef",ref:k,selection:E.value,"onUpdate:selection":t[21]||(t[21]=e=>E.value=e),"layout-options":O(he),"onUpdate:layoutOptions":t[22]||(t[22]=e=>A(he)?he.value=e:null),"layout-query":ke.value,"onUpdate:layoutQuery":t[23]||(t[23]=e=>ke.value=e),filter:Ae.value,"filter-user":O(ge),"filter-system":Ee.value,search:O(ye),collection:"directus_files","reset-preset":O(be)},{default:u(({layoutState:e})=>[f(_e,{title:"Unreferenced Files",icon:"link_off"},U({headline:u(()=>[f(n,{items:[{name:"Storage Manager",to:"/storage-manager"},{name:"Unreferenced Files",to:"/storage-manager/unreferenced"}]})]),navigation:u(()=>[f(Ue)]),actions:u(()=>[D.value?(c(),d(Wi,{key:0,modelValue:O(ye),"onUpdate:modelValue":t[0]||(t[0]=e=>A(ye)?ye.value=e:null),filter:O(ge),"onUpdate:filter":t[1]||(t[1]=e=>A(ge)?ge.value=e:null),collection:"directus_files"},null,8,["modelValue","filter"])):_("v-if",!0),E.value.length?(c(),d(b,{key:1,modelValue:W.value,"onUpdate:modelValue":t[4]||(t[4]=e=>W.value=e),onEsc:t[5]||(t[5]=e=>W.value=!1),onApply:Fe},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder",secondary:"",disabled:re.value,onClick:e},null,8,["disabled","onClick"]),[[xe,"Move to Directus Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[...t[24]||(t[24]=[v("Move to Directus Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[x("p",cd," Assigns "+g(E.value.length)+" selected file(s) to a Directus File Library folder (virtual label only — storage path is unchanged). ",1),f(rd,{modelValue:Y.value,"onUpdate:modelValue":t[2]||(t[2]=e=>Y.value=e)},null,8,["modelValue"])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[3]||(t[3]=e=>W.value=!1)},{default:u(()=>[...t[25]||(t[25]=[v("Cancel",-1)])]),_:1}),f(o,{loading:J.value,onClick:Fe},{default:u(()=>[...t[26]||(t[26]=[v("Move",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),E.value.length?(c(),d(b,{key:2,modelValue:Q.value,"onUpdate:modelValue":t[8]||(t[8]=e=>Q.value=e),onEsc:t[9]||(t[9]=e=>Q.value=!1),onApply:ze},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder_move",secondary:"",disabled:re.value,onClick:e},null,8,["disabled","onClick"]),[[xe,"Move to Storage Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[...t[27]||(t[27]=[v("Move to Storage Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[x("p",dd," Moves "+g(E.value.length)+" selected file(s) onto a physical storage path. Thumbnails move with the file when possible. Cross-storage moves use migrate. ",1),f(Ms,{modelValue:Z.value,"onUpdate:modelValue":t[6]||(t[6]=e=>Z.value=e)},null,8,["modelValue"]),oe.value?(c(),p("p",ud,g(oe.value),1)):_("v-if",!0),t[30]||(t[30]=x("p",{class:"move-destination-hint"}," If another registered file already owns the destination path, the incoming file is skipped and stays on the source. ",-1)),x("div",fd,[f(o,{secondary:"",loading:te.value,disabled:!Z.value.location,onClick:Pe},{default:u(()=>[...t[28]||(t[28]=[v(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),ne.value?(c(),p("div",pd,[x("p",null,[x("strong",null,g(ne.value.total_files.toLocaleString()),1),t[29]||(t[29]=v(" files ",-1)),ne.value.total_bytes?(c(),p(m,{key:0},[v(" · "+g(O(Be)(ne.value.total_bytes)),1)],64)):_("v-if",!0)]),ne.value.skipped?(c(),p("p",md,g(ne.value.skipped.toLocaleString())+" already at destination — skipped ",1)):_("v-if",!0)])):_("v-if",!0)])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[7]||(t[7]=e=>Q.value=!1)},{default:u(()=>[...t[31]||(t[31]=[v("Cancel",-1)])]),_:1}),f(o,{disabled:!Z.value.location,loading:ee.value,onClick:ze},{default:u(()=>[...t[32]||(t[32]=[v(" Move ",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),E.value.length?N((c(),d(Yi,{key:3,icon:"delete",secondary:"",loading:j.value,disabled:re.value,onClick:Me},null,8,["loading","disabled"])),[[xe,"Delete selected files",void 0,{bottom:!0}]]):_("v-if",!0)]),sidebar:u(()=>[D.value?(c(),d(el,{key:0,modelValue:O(me),"onUpdate:modelValue":t[10]||(t[10]=e=>A(me)?me.value=e:null)},{default:u(()=>[(c(),d(F(`layout-options-${O(me)}`),B(V(e)),null,16))]),_:2},1032,["modelValue"])):_("v-if",!0),f(S,{id:"lifecycle",icon:"policy",title:"File Lifecycle",close:!1},{default:u(()=>[t[36]||(t[36]=x("p",{class:"sidebar-text sidebar-text--spaced"}," Defaults for File / Image / Files with Storage Interfaces. Per-field options override these. ",-1)),x("div",hd,[t[33]||(t[33]=x("label",null,"Default on deselect",-1)),f(w,{modelValue:le.on_deselect,"onUpdate:modelValue":t[11]||(t[11]=e=>le.on_deselect=e),items:fe,disabled:se.value||C.value},null,8,["modelValue","disabled"])]),x("div",vd,[t[34]||(t[34]=x("label",null,"Default on item delete",-1)),f(w,{modelValue:le.on_item_delete,"onUpdate:modelValue":t[12]||(t[12]=e=>le.on_item_delete=e),items:pe,disabled:se.value||C.value},null,8,["modelValue","disabled"])]),f(o,{small:"",block:"",loading:se.value,disabled:se.value||C.value,onClick:Te},{default:u(()=>[...t[35]||(t[35]=[v(" Save defaults ",-1)])]),_:1},8,["loading","disabled"]),ce.value?(c(),p("p",{key:0,class:$(["lifecycle-msg",ce.value.type])},g(ce.value.text),3)):_("v-if",!0)]),_:1})]),default:u(()=>{return[x("div",{class:$(O(l))},[f(z,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(I,{name:"link_off"})]),default:u(()=>[t[37]||(t[37]=v(" Find Unreferenced Files ",-1))]),_:1}),t[48]||(t[48]=x("p",{class:"page-intro"}," Dry-run scan of the File Library. Select files to move into a Directus folder, relocate on storage, or delete (delete always re-checks references first). ",-1)),x("div",gd,[t[42]||(t[42]=x("span",{class:"scan-bar-title"},"Scan Options",-1)),x("div",yd,[x("div",bd,[x("label",_d,[t[38]||(t[38]=x("span",null,"Min Age (Minutes)",-1)),N(f(I,{name:"help_outline",small:"",class:"scan-bar-info"},null,512),[[xe,"Skip files uploaded within this many minutes. Avoids catching mid-upload or draft files that are not referenced yet.",void 0,{top:!0}]])]),f(K,{id:"scan-min-age",modelValue:le.scan_min_age_minutes,"onUpdate:modelValue":t[13]||(t[13]=e=>le.scan_min_age_minutes=e),type:"number",min:0,disabled:C.value},null,8,["modelValue","disabled"])]),x("div",wd,[t[39]||(t[39]=x("label",{for:"scan-storage"},"Storage Filter",-1)),f(w,{id:"scan-storage",modelValue:de.value,"onUpdate:modelValue":t[14]||(t[14]=e=>de.value=e),items:ue.value,disabled:C.value,"show-deselect":"",placeholder:"All Storages"},null,8,["modelValue","items","disabled"])]),x("div",xd,[x("label",Sd,[t[40]||(t[40]=x("span",null,"Scan WYSIWYG / JSON Fields",-1)),N(f(I,{name:"help_outline",small:"",class:"scan-bar-info"},null,512),[[xe,"Optional: also searches rich text, Markdown, JSON, and code for /assets/ links and file UUIDs. Adds significant extra scan time on large content tables — turn off for a faster relations-only pass.",void 0,{top:!0}]])]),x("div",kd,[f(H,{"model-value":le.scan_text_fields,value:!0,label:"Yes",disabled:C.value,"onUpdate:modelValue":t[15]||(t[15]=e=>le.scan_text_fields=!0)},null,8,["model-value","disabled"]),f(H,{"model-value":le.scan_text_fields,value:!1,label:"No",disabled:C.value,"onUpdate:modelValue":t[16]||(t[16]=e=>le.scan_text_fields=!1)},null,8,["model-value","disabled"])])])]),x("div",Ed,[f(o,{loading:C.value,disabled:re.value,onClick:je},{default:u(()=>[f(I,{name:"radar",left:""}),t[41]||(t[41]=v(" Scan ",-1))]),_:1},8,["loading","disabled"])])]),G.value?(c(),p("div",Ad,[x("div",Od,[x("span",$d,g(G.value.unreferenced_count.toLocaleString()),1),x("span",Cd,[t[43]||(t[43]=v(" Unreferenced ",-1)),N(f(I,{name:"help_outline",small:"",class:"stat-info"},null,512),[[xe,"File Library entries with no remaining references in relations or (optional) text fields, after Min Age / Storage Filter.",void 0,{top:!0}]])])]),x("div",Id,[x("span",Rd,g((G.value.collections_checked??0).toLocaleString()),1),x("span",Nd,[t[44]||(t[44]=v(" Collections Checked ",-1)),N(f(I,{name:"help_outline",small:"",class:"stat-info"},null,512),[[xe,"Unique collections that had at least one file relation or text field to inspect — not your total collection count. Includes system collections with file fields (e.g. avatar, logos).",void 0,{top:!0}]])])]),x("div",Td,[x("span",jd,g(G.value.relation_targets.toLocaleString()),1),x("span",Dd,[t[45]||(t[45]=v(" Relations Checked ",-1)),N(f(I,{name:"help_outline",small:"",class:"stat-info"},null,512),[[xe,"Number of file/image fields that point at directus_files (one field = one). Includes system fields such as user avatars and project logos.",void 0,{top:!0}]])])]),x("div",Md,[x("span",Ld,g(G.value.text_targets.toLocaleString()),1),x("span",Fd,[t[46]||(t[46]=v(" Text Fields Scanned ",-1)),N(f(I,{name:"help_outline",small:"",class:"stat-info"},null,512),[[xe,"WYSIWYG, Markdown, JSON, code, and similar content fields checked for /assets/ links or file UUIDs. System Directus tables are excluded.",void 0,{top:!0}]])])]),x("div",Pd,[x("span",Ud,g((n=G.value.elapsed_ms,n<1e3?`${n} ms`:`${(n/1e3).toFixed(1)} s`)),1),t[47]||(t[47]=x("span",{class:"stat-label"},"Duration",-1))])])):_("v-if",!0),G.value?.ids_truncated?(c(),p("p",Bd," Result list is capped for the browser filter; the Unreferenced count includes everything found. ")):_("v-if",!0),M.value?(c(),p("p",Vd,g(M.value),1)):_("v-if",!0)],2),C.value?(c(),p("div",zd,[f(X,{indeterminate:""}),x("span",null,g(T.value||"Scanning relations and text fields…"),1)])):D.value?(c(),d(F(`layout-${O(me)}`),B(P({key:1},Ce(e))),{"no-results":u(()=>[f(ie,{title:"No results",icon:"search",center:""},{append:u(()=>[f(o,{onClick:Oe},{default:u(()=>[...t[49]||(t[49]=[v("Clear filters",-1)])]),_:1})]),default:u(()=>[t[50]||(t[50]=v(" No unreferenced files match your search or filters. ",-1))]),_:1})]),"no-items":u(()=>[f(ie,{title:"No unreferenced files",icon:"link_off",center:""},{append:u(()=>[f(o,{onClick:je},{default:u(()=>[...t[51]||(t[51]=[v("Scan again",-1)])]),_:1})]),default:u(()=>[t[52]||(t[52]=v(" Nothing matched this scan (or leftovers are newer than the min age). ",-1))]),_:1})]),_:1},16)):_("v-if",!0),q.value?(c(),d(ve,{key:2,collection:"directus_files","primary-key":q.value,active:!0,"onUpdate:active":Ie},null,8,["primary-key"])):_("v-if",!0),f(b,{modelValue:L.value,"onUpdate:modelValue":t[18]||(t[18]=e=>L.value=e),onEsc:t[19]||(t[19]=e=>L.value=!1)},{default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[v("Delete "+g(E.value.length)+" file(s)?",1)]),_:1}),f(r,null,{default:u(()=>[...t[53]||(t[53]=[v(" Each file is re-checked for references before delete. Still-referenced files are skipped. This cannot be undone. ",-1)])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[17]||(t[17]=e=>L.value=!1)},{default:u(()=>[...t[54]||(t[54]=[v("Cancel",-1)])]),_:1}),f(o,{kind:"danger",loading:j.value,onClick:Le},{default:u(()=>[...t[55]||(t[55]=[v("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(ss,{modelValue:ae.value,"onUpdate:modelValue":t[20]||(t[20]=e=>ae.value=e),storages:O(h),"source-storage":null,"selection-kind":"files","file-ids":E.value,"folder-id":null,"source-path":null,"estimated-count":E.value.length||void 0,onDone:Ge},null,8,["modelValue","storages","file-ids","estimated-count"])];var n}),_:2},[D.value?{name:"actions:prepend",fn:u(()=>[(c(),d(F(`layout-actions-${O(me)}`),B(V(e)),null,16))]),key:"0"}:void 0]),1024)]),_:1},40,["selection","layout-options","layout-query","filter","filter-user","filter-system","search","reset-preset"])}}});we("\n.page-container[data-v-a4f62f0e] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: 0;\n\tmax-inline-size: 67.5rem;\n}\n.page-intro[data-v-a4f62f0e] {\n\tmargin: 0 0 1.25rem;\n\tcolor: var(--theme--foreground);\n\tline-height: 1.45;\n}\n.page-intro code[data-v-a4f62f0e] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.section-divider[data-v-a4f62f0e] {\n\tmargin-block-end: 0.75rem;\n}\n.scan-bar[data-v-a4f62f0e] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: end;\n\tgap: 0.85rem 1rem;\n\tmargin-block-end: 0.75rem;\n\tpadding: 0.75rem 1rem;\n\tborder: 1px solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background-subdued);\n}\n.scan-bar-title[data-v-a4f62f0e] {\n\tflex: 0 0 auto;\n\talign-self: center;\n\tmargin-inline-end: 0.25rem;\n\tfont-size: 0.75rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n\twhite-space: nowrap;\n}\n.scan-bar-fields[data-v-a4f62f0e] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: end;\n\tgap: 0.85rem 1.5rem;\n\tmin-inline-size: 0;\n\tflex: 1 1 auto;\n}\n.scan-bar-field[data-v-a4f62f0e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: end;\n\tgap: 0.3rem;\n\tinline-size: auto;\n\tmin-inline-size: 7.5rem;\n}\n.scan-bar-field--age[data-v-a4f62f0e] {\n\tmin-inline-size: 11.5rem;\n}\n.scan-bar-field--storage[data-v-a4f62f0e] {\n\tmin-inline-size: 10rem;\n}\n.scan-bar-field--check[data-v-a4f62f0e] {\n\tinline-size: auto;\n\tmin-inline-size: 12rem;\n}\n.scan-bar-radios[data-v-a4f62f0e] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 0.75rem 1rem;\n\tmin-block-size: 2.25rem;\n}\n.scan-bar-radios[data-v-a4f62f0e] .v-radio {\n\tmargin: 0;\n}\n.scan-bar-field label[data-v-a4f62f0e],\n.scan-bar-spacer[data-v-a4f62f0e] {\n\tdisplay: block;\n\tmin-block-size: 1.125rem;\n\tfont-size: 0.8125rem;\n\tfont-weight: 600;\n\tline-height: 1.125rem;\n\tcolor: var(--theme--foreground-subdued);\n\twhite-space: nowrap;\n}\n.scan-bar-label-row[data-v-a4f62f0e] {\n\tdisplay: inline-flex !important;\n\talign-items: center;\n\tgap: 6px;\n}\n.scan-bar-info[data-v-a4f62f0e] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n}\n.scan-bar-field[data-v-a4f62f0e] .v-input,\n.scan-bar-field[data-v-a4f62f0e] .v-select {\n\tmargin: 0;\n}\n.scan-bar-field[data-v-a4f62f0e] .v-input .input,\n.scan-bar-field[data-v-a4f62f0e] .v-input input,\n.scan-bar-field[data-v-a4f62f0e] .v-select .input {\n\tmin-block-size: 2.25rem;\n}\n.scan-bar-actions[data-v-a4f62f0e] {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-inline-start: auto;\n}\n.scan-bar-actions[data-v-a4f62f0e] .v-button {\n\tmargin: 0;\n}\n.notice[data-v-a4f62f0e] {\n\tmargin: 0 0 1rem;\n\tfont-size: 0.85rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--warning);\n}\n.stats-grid[data-v-a4f62f0e] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.5rem;\n\tmargin: 0 0 0.75rem;\n\tinline-size: 100%;\n}\n.stat[data-v-a4f62f0e] {\n\tdisplay: inline-flex;\n\tflex: 1 1 auto;\n\talign-items: baseline;\n\tgap: 0.4rem;\n\tmin-inline-size: max-content;\n\tpadding: 0.4rem 0.7rem;\n\tborder: 1px solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background-subdued);\n\twhite-space: nowrap;\n}\n.stat-value[data-v-a4f62f0e] {\n\tfont-size: 0.9rem;\n\tfont-weight: 700;\n\tline-height: 1.3;\n\tcolor: var(--theme--foreground);\n\tfont-variant-numeric: tabular-nums;\n}\n.stat-label[data-v-a4f62f0e] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tfont-size: 0.8rem;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground-subdued);\n}\n.stat-info[data-v-a4f62f0e] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n\tflex-shrink: 0;\n}\n.error[data-v-a4f62f0e] {\n\tmargin: 0 0 1rem;\n\tcolor: var(--theme--danger);\n}\n.loading-block[data-v-a4f62f0e] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 0.75rem;\n\tpadding: 3rem var(--content-padding);\n\tcolor: var(--theme--foreground-subdued);\n}\n.sidebar-text[data-v-a4f62f0e] {\n\tmargin: 0;\n\tfont-size: 0.875rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.sidebar-text--spaced[data-v-a4f62f0e] {\n\tmargin-bottom: 0.85rem;\n}\n.sidebar-text code[data-v-a4f62f0e] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.side-field[data-v-a4f62f0e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.35rem;\n\tmargin-bottom: 0.85rem;\n}\n.side-field label[data-v-a4f62f0e] {\n\tfont-size: 0.75rem;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground-subdued);\n}\n.lifecycle-msg[data-v-a4f62f0e] {\n\tmargin: 0.65rem 0 0;\n\tfont-size: 0.8rem;\n}\n.lifecycle-msg.success[data-v-a4f62f0e] {\n\tcolor: var(--theme--success);\n}\n.lifecycle-msg.danger[data-v-a4f62f0e] {\n\tcolor: var(--theme--danger);\n}\n.move-hint[data-v-a4f62f0e] {\n\tmargin: 0 0 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-destination-hint[data-v-a4f62f0e] {\n\tmargin: 12px 0 0;\n\tfont-size: 13px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-dry-run[data-v-a4f62f0e] {\n\tmargin-top: 14px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\talign-items: flex-start;\n}\n.move-dry-result[data-v-a4f62f0e] {\n\twidth: 100%;\n\tfont-size: 13px;\n\tline-height: 1.45;\n}\n.move-dry-result p[data-v-a4f62f0e] {\n\tmargin: 0 0 6px;\n}\n",{});we("\n.storage-location-badge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-inline-size: 100%;\n\tpadding: 2px 8px;\n\toverflow: hidden;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tline-height: 1.35;\n\tcolor: var(--theme--primary-foreground, var(--white, #fff));\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpointer-events: none;\n\tbackground: var(--theme--primary);\n\tborder: none;\n\tborder-radius: var(--theme--border-radius);\n}\n.layout-cards .header .storage-location-badge {\n\tposition: absolute;\n\tinset-block-end: 8px;\n\tinset-inline-start: 8px;\n\tz-index: 2;\n\tmax-inline-size: calc(100% - 16px);\n\tbox-shadow: 0 1px 3px rgb(38 50 56 / 0.2);\n}\n",{});var Kd=n({id:"storage-manager",name:"Storage Manager",icon:"storage",routes:[{path:"",component:xt},{path:"unreferenced",component:xe(Gd,[["__scopeId","data-v-a4f62f0e"]])},{path:"storage/:location",component:zc},{path:"storage/:location/path/:storagePath(.*)",component:zc},{path:"folders",component:Gc},{path:"folders/:folderId",component:Gc},{path:"settings",component:Zc}],preRegisterCheck:e=>Y(e)}),Hd={id:"storage-manager-operation",name:"Storage Manager",icon:"swap_horiz",description:"Copy or move Directus files between storage adapters (same file id)",overview:({mode:e,target_storage:t,source_storage:n,folder_id:a})=>[{label:"Mode",text:String(e||"move")},{label:"Target",text:String(t||"")},{label:"Source",text:String(n||a||"file_ids")}],options:[{field:"mode",name:"Mode",type:"string",meta:{width:"half",interface:"select-dropdown",options:{choices:[{text:"Move (delete source after verify)",value:"move"},{text:"Copy (keep source)",value:"copy"}]},note:"Move only deletes the source object after the target is verified and the DB row is updated."},schema:{default_value:"move"}},{field:"target_storage",name:"Target Storage",type:"string",meta:{width:"half",interface:"input",options:{placeholder:"s3"},note:"Must match a configured STORAGE_LOCATIONS name."},schema:{required:!0}},{field:"file_ids",name:"File IDs",type:"json",meta:{width:"full",interface:"input-code",options:{language:"json",placeholder:'["uuid-1", "uuid-2"]'},note:"Optional JSON array of file UUIDs. Leave empty when using source storage or folder."}},{field:"source_storage",name:"Source Storage",type:"string",meta:{width:"half",interface:"input",options:{placeholder:"local"},note:"Migrate all files currently on this storage location."}},{field:"folder_id",name:"Folder ID",type:"uuid",meta:{width:"half",interface:"system-folder",note:"Migrate files in this folder (optional)."}},{field:"recursive",name:"Include Subfolders",type:"boolean",meta:{width:"half",interface:"boolean",note:"When a folder is selected, also migrate files in nested folders."},schema:{default_value:!0}}]};function Xd(e){const n=i(()=>function(e){if(e?.length&&(1!==e.length||"*/*"!==e[0]))return e}(t().useServerStore().info?.files?.mimeTypeAllowList)),a=i(()=>{const t=O(e);if(!t?.length)return null;const n=t.map(e=>e.endsWith("/*")?{type:{_starts_with:e.slice(0,-1)}}:{type:{_eq:e}});return 1===n.length?n[0]:{_or:n}}),r=i(()=>{const t=O(e),a=n.value;if(!a?.length)return t?.join(",");if(!t?.length)return a.join(",");const r=function(e,t){const n=[];for(const a of e)t.some(e=>e.endsWith("/*")?a.startsWith(e.slice(0,-1)):a.endsWith("/*")?e.startsWith(a.slice(0,-1)):a===e)&&n.push(a);return[...new Set(n)]}(t,a);return r.length?r.join(","):a.join(",")});return{mimeTypeFilter:a,combinedAcceptString:r}}function qd(e){console.error(e)}function Wd(e,{isDownload:t=!1,imageKey:n,cacheBuster:a}={}){const r=new URL(`assets/${e}`,window.location.origin);return t&&r.searchParams.set("download",""),n&&r.searchParams.set("key",n),a&&r.searchParams.set("v",!0===a?Date.now().toString():String(a)),r.href}function Yd(e){const{currentUser:n}=t().useUserStore();if(!n||!("id"in n))return e??{};return function(e,t,n={},a=!1){let r=Li(e,t,n);return r?(!1===a&&(r=Ii(r,e=>"true"===e||"false"!==e&&("null"===e||"NULL"===e?null:e))),Mi(r)):r}(e,{role:n.role?.id??null,roles:n.roles?.map(e=>e.id)??[],user:n.id},{$CURRENT_ROLE:n.role??void 0,$CURRENT_ROLES:n.roles,$CURRENT_USER:n})??{}}const Jd={"image/jpeg":"JPG","image/png":"PNG","image/gif":"GIF","image/svg+xml":"SVG","image/webp":"WEBP","video/mp4":"MP4","audio/mpeg":"MP3","application/pdf":"PDF","text/plain":"TXT"};function Qd(e){return i(()=>({storage:String(e.value||"local").trim()||"local"}))}const Zd={class:"file-with-storage"},eu={key:1,class:"extension"},tu={key:0,class:"item-actions"};var nu=l({__name:"interface",props:{value:{},disabled:{type:Boolean},nonEditable:{type:Boolean},loading:{type:Boolean},folder:{},storage:{default:"local"},filter:{},collection:{},field:{},enableCreate:{type:Boolean,default:!0},enableSelect:{type:Boolean,default:!0},allowedMimeTypes:{},onDeselect:{default:"keep"},onItemDelete:{default:"keep"}},emits:["input"],setup(n,{emit:a}){const r=n,l=a,h=e(),b=Qd(K(r,"storage")),w=i({get:()=>r.value,set:e=>l("input",e)}),{mimeTypeFilter:S,combinedAcceptString:k}=Xd(K(r,"allowedMimeTypes")),C=o({fields:["id","title","type","filename_download","modified_on"]}),{collection:I,field:T}=D(r),{relationInfo:M}=function(e,n){const a=t().useRelationsStore(),r=t().useCollectionsStore(),o=t().useFieldsStore();return{relationInfo:i(()=>{const t=a.getRelationsForField(e.value,n.value);if(!t.length)return;const i=t[0];return{relation:i,relatedCollection:r.getCollection(i.related_collection),relatedPrimaryKeyField:o.getPrimaryKeyFieldForCollection(i.related_collection),type:"m2o"}})}}(I,T),L=o(null),F=o(!1),{displayItem:P,loading:U,update:B,remove:V}=function(t,n,a,r){const l=e(),s=o(null),c=o(!1),d=i(()=>void 0===r?.enabled||G(r?.enabled));return y([t,n,a,d],()=>{d.value&&u()},{immediate:!0}),{update:function(e){if(!a.value)return;const n=a.value.relatedPrimaryKeyField.field;if(t.value&&"object"==typeof e&&!(n in e)){const a="object"==typeof t.value?t.value[n]:t.value;e[n]=a}t.value=e},remove:function(){t.value=null},refresh:async function(){await u()},displayItem:s,loading:c};async function u(){const e=t.value;if(!e)return void(s.value=null);if(!a.value)return;const r=a.value.relatedCollection.collection,o=a.value.relatedPrimaryKeyField.field,i="object"==typeof e?e[o]:e;if(!i)return void(s.value=e);const d=new Set(n.value.fields);d.add(o),c.value=!0;try{const t=await l.get(`${Ri(r)}/${encodeURIComponent(String(i))}`,{params:{fields:Array.from(d)}}),n=t.data?.data;s.value="object"==typeof e?eo({},n,e):n}catch(t){"object"==typeof e&&403===t?.response?.status?s.value=e:qd(t)}finally{c.value=!1}}}(w,C,M,{enabled:i(()=>!r.loading)}),{createAllowed:z}={createAllowed:i(()=>!0),updateAllowed:i(()=>!0)},H=o(!1),X=o(!1);function q(){const e=r.value;return e?"object"==typeof e&&e.id?String(e.id):String(e):null}async function W(e){try{await h.post("/storage-manager/files/delete-if-unreferenced",{file_ids:[e]})}catch(e){qd(e)}}async function Y(){const e=r.onDeselect||"keep",t=q();if("ask"!==e||!t)return"delete_if_unreferenced"===e&&t?(V(),void await W(t)):void V();H.value=!0}async function J(){H.value=!1,V()}async function Q(){const e=q();X.value=!0;try{V(),e&&await W(e)}finally{X.value=!1,H.value=!1}}const Z=i(()=>null===P.value?null:function(e,t=!1){if(!e)return"";if(Jd[e])return Jd[e];if(!t)return e;const n=e.split("/");if(2!==n.length)return"FILE";let a=n[1];return a.includes("-")&&(a=a.split("-").pop()||a),a.includes(".")&&(a=a.split(".").pop()||a),a.toUpperCase()}(P.value.type,!0)),ee=i(()=>null===P.value||null===r.value?null:P.value.type.includes("image")?P.value.type.includes("svg")?Wd(P.value.id,{cacheBuster:P.value.modified_on}):Wd(P.value.id,{imageKey:"system-small-cover",cacheBuster:P.value.modified_on}):null),te=o(null),{url:ne,isValidURL:ae,loading:re,importFromURL:oe}=function(){const e=o(""),t=o(!1),n=i(()=>{try{return new URL(e.value),!0}catch{return!1}});return{url:e,loading:t,isValidURL:n,importFromURL:async function(){t.value=!0;try{const t=await h.post("/files/import",{url:e.value,data:{folder:r.folder,storage:b.value.storage},options:{filterMimeType:r.allowedMimeTypes}});P.value=t.data.data,L.value=null,e.value="",B(P.value?.id)}catch(e){qd(e)}finally{t.value=!1}}}}(),ie=o(!1),le=i(()=>r.value&&"object"==typeof r.value?r.value:{}),se=j("values",o({})),ce=i(()=>{const e=Yd(Ii(r.filter,e=>e&&"string"==typeof e?Co(e,se.value):e));return S.value?e?{_and:[e,S.value]}:S.value:e}),de=i(()=>r.disabled||!1===r.enableCreate&&!1===r.enableSelect),ue=i(()=>Boolean(L.value)||F.value||ie.value);function fe(e){e?.[0]?B(e[0]):Y()}function pe(e){P.value=e,L.value=null,B(e.id)}return(e,t)=>{const a=s("v-skeleton-loader"),r=s("v-image"),o=s("v-icon"),i=s("v-list-item-icon"),l=s("v-text-overflow"),h=s("v-list-item-content"),y=s("v-remove"),w=s("v-list-item"),S=s("v-card-title"),C=s("v-card-text"),I=s("v-button"),j=s("v-card-actions"),D=s("v-card"),V=s("v-dialog"),G=s("v-divider"),K=s("v-list"),q=s("v-menu"),W=s("drawer-item"),se=s("v-upload"),me=s("drawer-files"),he=s("v-input"),ve=R("tooltip"),ge=R("prevent-focusout");return N((c(),p("div",Zd,[f(q,{modelValue:F.value,"onUpdate:modelValue":t[7]||(t[7]=e=>F.value=e),attached:"",disabled:O(U)||de.value},{activator:u(({toggle:s,active:v,deactivate:b})=>[x("div",null,[O(U)?(c(),d(a,{key:0,type:"input"})):(c(),d(w,{key:1,class:"activator",clickable:"",readonly:"",block:"",active:v,disabled:!(n.nonEditable&&O(P))&&de.value,"non-editable":n.nonEditable,placeholder:e.$t("no_file_selected"),"model-value":O(P)&&O(P).title,onClick:e=>n.nonEditable?ie.value=!0:s()},{default:u(()=>[f(i,null,{default:u(()=>[x("div",{class:$(["preview",{"has-file":O(P),"is-svg":O(P)?.type?.includes("svg")}])},[ee.value&&!te.value?(c(),d(r,{key:0,src:ee.value,alt:O(P)?.title,onError:t[0]||(t[0]=e=>te.value=e)},null,8,["src","alt"])):Z.value?(c(),p("span",eu,g(Z.value),1)):(c(),d(o,{key:2,name:"folder_open"}))],2)]),_:1}),f(h,null,{default:u(()=>[O(P)?.title?(c(),d(l,{key:0,text:O(P).title},null,8,["text"])):(c(),d(l,{key:1,class:"placeholder",text:e.$t("no_file_selected")},null,8,["text"]))]),_:1}),n.nonEditable?_("v-if",!0):(c(),p("div",tu,[O(P)?(c(),p(m,{key:0},[N(f(o,{name:"edit",clickable:"",disabled:de.value,onClick:E(e=>{b(),ie.value=!0},["stop"])},null,8,["disabled","onClick"]),[[ve,!de.value&&e.$t("edit_item")]]),f(y,{"item-info":O(M),"item-edits":le.value,deselect:"",disabled:de.value,onAction:Y},null,8,["item-info","item-edits","disabled"])],64)):(c(),d(o,{key:1,name:"attach_file"}))]))]),_:2},1032,["active","disabled","non-editable","placeholder","model-value","onClick"]))])]),default:u(()=>[f(V,{modelValue:H.value,"onUpdate:modelValue":t[2]||(t[2]=e=>H.value=e),onEsc:t[3]||(t[3]=e=>H.value=!1)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[...t[17]||(t[17]=[v("Remove file from this item?",-1)])]),_:1}),f(C,null,{default:u(()=>[...t[18]||(t[18]=[v(" Deselect clears the field only. Delete removes the file from the library if nothing else references it (relations, ",-1),x("code",null,"/assets/",-1),v(" links, or JSON/code UUIDs). ",-1)])]),_:1}),f(j,null,{default:u(()=>[f(I,{secondary:"",disabled:X.value,onClick:t[1]||(t[1]=e=>H.value=!1)},{default:u(()=>[...t[19]||(t[19]=[v("Cancel",-1)])]),_:1},8,["disabled"]),f(I,{secondary:"",disabled:X.value,onClick:J},{default:u(()=>[...t[20]||(t[20]=[v("Deselect only",-1)])]),_:1},8,["disabled"]),f(I,{kind:"danger",loading:X.value,onClick:Q},{default:u(()=>[...t[21]||(t[21]=[v(" Deselect & delete if unused ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(K,null,{default:u(()=>[O(P)?(c(),p(m,{key:0},[f(w,{clickable:"",download:O(P).filename_download,href:O(Wd)(O(P).id,{isDownload:!0})},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"get_app"})]),_:1}),f(h,null,{default:u(()=>[v(g(e.$t("download_file")),1)]),_:1})]),_:1},8,["download","href"]),de.value?_("v-if",!0):(c(),d(G,{key:0}))],64)):_("v-if",!0),de.value?_("v-if",!0):(c(),p(m,{key:1},[O(z)&&n.enableCreate?(c(),d(w,{key:0,clickable:"",onClick:t[4]||(t[4]=e=>L.value="upload")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"phonelink"})]),_:1}),f(h,null,{default:u(()=>[v(g(e.$t(O(P)?"replace_from_device":"upload_from_device")),1)]),_:1})]),_:1})):_("v-if",!0),n.enableSelect?(c(),d(w,{key:1,clickable:"",onClick:t[5]||(t[5]=e=>L.value="choose")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"folder_open"})]),_:1}),f(h,null,{default:u(()=>[v(g(e.$t(O(P)?"replace_from_library":"choose_from_library")),1)]),_:1})]),_:1})):_("v-if",!0),O(z)&&n.enableCreate?(c(),d(w,{key:2,clickable:"",onClick:t[6]||(t[6]=e=>L.value="url")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"link"})]),_:1}),f(h,null,{default:u(()=>[v(g(e.$t(O(P)?"replace_from_url":"import_from_url")),1)]),_:1})]),_:1})):_("v-if",!0)],64))]),_:1})]),_:1},8,["modelValue","disabled"]),O(P)?(c(),d(W,{key:0,active:ie.value,"onUpdate:active":t[8]||(t[8]=e=>ie.value=e),collection:"directus_files","primary-key":O(P).id,edits:le.value,disabled:de.value,"non-editable":n.nonEditable,onInput:O(B)},{actions:u(()=>[f(I,{secondary:"",rounded:"",icon:"",href:O(Wd)(O(P).id,{isDownload:!0}),download:O(P).filename_download},{default:u(()=>[f(o,{name:"download"})]),_:1},8,["href","download"])]),_:1},8,["active","primary-key","edits","disabled","non-editable","onInput"])):_("v-if",!0),f(V,{"model-value":"upload"===L.value,onEsc:t[10]||(t[10]=e=>L.value=null),"onUpdate:modelValue":t[11]||(t[11]=e=>L.value=null)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[v(g(e.$t("upload_from_device")),1)]),_:1}),f(C,null,{default:u(()=>[f(se,{"from-url":"",folder:n.folder,preset:O(b),accept:O(k),onInput:pe},null,8,["folder","preset","accept"])]),_:1}),f(j,null,{default:u(()=>[f(I,{secondary:"",onClick:t[9]||(t[9]=e=>L.value=null)},{default:u(()=>[v(g(e.$t("cancel")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"]),"choose"===L.value?(c(),d(me,{key:1,folder:n.folder,field:O(T),active:"choose"===L.value,filter:ce.value,"onUpdate:active":t[12]||(t[12]=e=>L.value=null),onInput:fe},null,8,["folder","field","active","filter"])):_("v-if",!0),f(V,{"model-value":"url"===L.value,persistent:O(re),"onUpdate:modelValue":t[15]||(t[15]=e=>L.value=null),onEsc:t[16]||(t[16]=e=>L.value=null)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[v(g(e.$t("import_from_url")),1)]),_:1}),f(C,null,{default:u(()=>[f(he,{modelValue:O(ne),"onUpdate:modelValue":t[13]||(t[13]=e=>A(ne)?ne.value=e:null),autofocus:"",placeholder:e.$t("url"),nullable:!1,disabled:O(re)},null,8,["modelValue","placeholder","disabled"])]),_:1}),f(j,null,{default:u(()=>[f(I,{disabled:O(re),secondary:"",onClick:t[14]||(t[14]=e=>L.value=null)},{default:u(()=>[v(g(e.$t("cancel")),1)]),_:1},8,["disabled"]),f(I,{loading:O(re),disabled:!1===O(ae),onClick:O(oe)},{default:u(()=>[v(g(e.$t("import_label")),1)]),_:1},8,["loading","disabled","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value","persistent"])])),[[ge,ue.value]])}}});we("\n.v-list-item.activator[data-v-8df4b3c2] {\n\t--v-list-item-color-active: var(--v-list-item-color);\n\t--v-list-item-background-color-active: var(\n\t\t--v-list-item-background-color,\n\t\tvar(--v-list-background-color, var(--theme--form--field--input--background))\n\t);\n}\n.v-list-item.activator.disabled[data-v-8df4b3c2]:not(.non-editable) {\n\t--v-list-item-color: var(--theme--foreground-subdued);\n\t--v-list-item-background-color: var(--theme--form--field--input--background-subdued);\n}\n.v-list-item.activator.active[data-v-8df4b3c2]:not(.disabled),\n.v-list-item.activator[data-v-8df4b3c2]:focus-within:not(.disabled) {\n\t--v-list-item-border-color: var(--v-input-border-color-focus, var(--theme--form--field--input--border-color-focus));\n\tbox-shadow: var(--theme--form--field--input--box-shadow-focus);\n}\n.item-actions[data-v-8df4b3c2] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\tpadding-inline-start: 0.4375rem;\n}\n.preview[data-v-8df4b3c2] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 2.25rem;\n\tblock-size: 2.25rem;\n\tmargin-inline-start: -0.4375rem;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n}\n.preview.has-file[data-v-8df4b3c2] {\n\tbackground-color: var(--theme--primary-background);\n}\n.preview.is-svg[data-v-8df4b3c2] {\n\tpadding: 0.25rem;\n}\n.preview img[data-v-8df4b3c2] {\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tobject-fit: cover;\n}\n.preview.is-svg img[data-v-8df4b3c2] {\n\tobject-fit: contain;\n}\n.placeholder[data-v-8df4b3c2] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.extension[data-v-8df4b3c2] {\n\tcolor: var(--theme--primary);\n\tfont-weight: 600;\n\tfont-size: 0.625rem;\n\ttext-transform: uppercase;\n}\n",{});var au=xe(nu,[["__scopeId","data-v-8df4b3c2"]]);const ru=[{value:"image/*",text:"image/*"},{value:"video/*",text:"video/*"},{value:"audio/*",text:"audio/*"},{value:"text/*",text:"text/*"},{value:"application/pdf",text:"application/pdf"}],ou={field:"storage",name:"Storage Location",type:"string",schema:{default_value:"local"},meta:{width:"half",interface:"storage-manager-storage-location",note:"Storage adapter for uploads from this field. Works with Mirror Directus Folders when enabled for that storage."}},iu=[{field:"onDeselect",name:"On Deselect",type:"string",schema:{default_value:"keep"},meta:{width:"half",interface:"select-dropdown",options:{choices:[{value:"keep",text:"Keep file in library"},{value:"ask",text:"Ask (deselect only vs delete if unused)"},{value:"delete_if_unreferenced",text:"Delete file if unreferenced"}]},note:"When the file is cleared on this field. “Ask” shows a Studio prompt; delete only runs if nothing else references the file."}},{field:"onItemDelete",name:"On Item Delete",type:"string",schema:{default_value:"keep"},meta:{width:"half",interface:"select-dropdown",options:{choices:[{value:"keep",text:"Keep file in library"},{value:"delete_if_unreferenced",text:"Delete file if unreferenced"}]},note:"When the parent item is deleted. Only deletes the file if it is not used elsewhere (relations, /assets/ links, JSON/code UUIDs)."}}];function lu(e,t=[]){const n=e.m2o?.related_collection;return[{field:"folder",name:"$t:interfaces.system-folder.folder",type:"uuid",meta:{width:"half",interface:"system-folder",note:"$t:interfaces.system-folder.field_hint"}},ou,...iu,...t,{field:"filter",name:"$t:filter",type:"json",meta:{interface:"system-filter",options:{collectionName:n}}},{field:"enableCreate",name:"$t:creating_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_create_button"},width:"half"}},{field:"enableSelect",name:"$t:selecting_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_select_button"},width:"half"}},{field:"allowedMimeTypes",name:"$t:interfaces.file.allowed_mime_types",type:"json",meta:{interface:"select-multiple-dropdown",options:{placeholder:"$t:interfaces.file.mime_types_placeholder",choices:ru}}}]}const su=["image/*"];var cu=a({id:"storage-manager-file-with-storage",name:"File with Storage",description:"Upload or select a single file to a configured storage adapter and folder",icon:"note_add",component:au,types:["uuid"],localTypes:["file"],group:"relational",relational:!0,options:({relations:e})=>lu(e),recommendedDisplays:["file"]}),du=a({id:"storage-manager-image-with-storage",name:"Image with Storage",description:"Upload or select an image to a configured storage adapter and folder",icon:"insert_photo",component:au,types:["uuid"],localTypes:["file"],group:"relational",relational:!0,options:({relations:e})=>lu(e).map(e=>"allowedMimeTypes"!==e.field?e:{...e,schema:{default_value:su}}),recommendedDisplays:["image"]}),uu={exports:{}},fu=Ro(r);
|
|
1
|
+
import{useApi as e,useStores as t,defineModule as n,defineInterface as a}from"@directus/extensions-sdk";import*as r from"vue";import{ref as o,computed as i,defineComponent as l,resolveComponent as s,openBlock as c,createBlock as d,withCtx as u,createVNode as f,createElementBlock as p,Fragment as m,renderList as v,createTextVNode as h,toDisplayString as g,watch as y,onMounted as b,createCommentVNode as _,useModel as w,createElementVNode as x,mergeModels as S,withKeys as k,withModifiers as E,isRef as A,unref as O,normalizeClass as $,normalizeStyle as C,reactive as I,resolveDirective as R,withDirectives as N,onUnmounted as T,inject as j,toRefs as D,vShow as M,renderSlot as L,resolveDynamicComponent as F,mergeProps as P,createSlots as U,normalizeProps as B,guardReactiveProps as V,nextTick as z,toValue as G,toRef as K}from"vue";import{useRouter as H,useRoute as X,onBeforeRouteLeave as q,onBeforeRouteUpdate as W}from"vue-router";function Y(e){if(!e||"object"!=typeof e)return!1;const t=e;if(!0===t.admin_access)return!0;const n=t.role;return!(!n||"object"!=typeof n||!0!==n.admin_access)}const J=o(!1),Q=o(null),Z=o(null),ee=o([]);function te(){const t=e(),n=i(()=>Z.value||null),a=i({get:()=>ee.value,set(e){ee.value=e}});return null===Q.value&&r(),{loading:J,folders:Q,nestedFolders:n,fetchFolders:r,openFolders:a};async function r(){if(!J.value){J.value=!0;try{const e=await t.get("/folders",{params:{sort:"name",limit:-1,fields:["id","name","parent"]}}),n=e.data?.data||[];Q.value=n,Z.value=function(e){const t=new Map;for(const n of e)if(n.parent){const e=t.get(n.parent)||[];e.push(n),t.set(n.parent,e)}const n=e=>{const a=t.get(e.id)||[];return a.length>0?{...e,children:a.map(n)}:{...e}};return e.filter(e=>null===e.parent).map(n)}(n)}catch{Q.value=[],Z.value=[]}finally{J.value=!1}}}}const ne=o([]),ae=o(!1),re=o(null);function oe(e){const t={"Content-Type":"application/json",Accept:"text/event-stream"},n=e?.defaults?.headers,a=n?.common?.Authorization||n?.Authorization||n?.common?.authorization||n?.authorization;return"string"==typeof a&&a&&(t.Authorization=a),t}function ie(){const t=e();return{storages:ne,storagesLoading:ae,storagesError:re,loadStorages:async function(e=!1){if(ne.value.length&&!e)return ne.value;ae.value=!0,re.value=null;try{const e=await t.get("/storage-manager/storages");return ne.value=e.data?.data||[],ne.value}catch(e){throw re.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Failed to load storages",e}finally{ae.value=!1}},loadFiles:async function(e){const n=await t.get("/storage-manager/files",{params:{storage:e.storage||void 0,folder:null===e.folder?"null":e.folder||void 0,search:e.search||void 0,filter:e.filter?JSON.stringify(e.filter):void 0,recursive:e.recursive?"true":void 0,page:e.page||1,limit:e.limit||50,sort:e.sort||"-uploaded_on"}});return{data:n.data?.data||[],meta:n.data?.meta}},loadFolders:async function(e={}){const n=await t.get("/storage-manager/folders",{params:{parent:null===e.parent?"null":e.parent||void 0,storage:e.storage||void 0}});return{data:n.data?.data||[],root_files:n.data?.meta?.root_files}},loadFolderPath:async function(e){const n=await t.get(`/storage-manager/folders/${e}/path`);return n.data?.data||[]},migrate:async function(e){const n=await t.post("/storage-manager/migrate",e);return n.data?.data},migrateWithProgress:async function(e,n,a){return async function(e,t){if(!e.ok){let t=`Migration failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for progress stream");const n=e.body.getReader(),a=new TextDecoder;let r="",o=null;for(;;){const{done:e,value:i}=await n.read();if(e)break;r+=a.decode(i,{stream:!0});const l=r.split("\n\n");r=l.pop()||"";for(const e of l){const n=e.split("\n");for(const e of n){const n=e.trim();if(!n.startsWith("data:"))continue;const a=n.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"done"===r.type&&(o=r.data),"error"===r.type)throw new Error(r.message||"Migration failed")}}}if(!o)throw new Error("Migration stream ended without a result");return o}(await fetch(function(e){const t=String(e?.defaults?.baseURL||"").replace(/\/$/,""),n="/storage-manager/migrate/stream";return t?`${t}${n}`:n}(t),{method:"POST",headers:oe(t),body:JSON.stringify(e),credentials:"same-origin",signal:a}),n)}}}const le=o({}),se=o(!1),ce=o([]);function de(e,t){for(const n of e){if(n.path===t)return n;if(n.children?.length){const e=de(n.children,t);if(e)return e}}return null}function ue(e,t,n){return e.map(e=>e.path===t?{...e,children:n,childrenLoaded:!0}:e.children?.length?{...e,children:ue(e.children,t,n)}:{...e})}function fe(){const t=e();function n(e){return Object.prototype.hasOwnProperty.call(le.value,e)}async function a(e,n){const a=await t.get(`/storage-manager/storages/${encodeURIComponent(e)}/browse`,{params:{path:n||""}});return function(e){return e.map(e=>({name:e.name,path:e.path}))}(a.data?.data?.folders||[])}async function r(e){if(!n(e))try{const t=await a(e,"");le.value={...le.value,[e]:t}}catch{le.value={...le.value,[e]:[]}}}async function o(e,t){const o=String(t||"");if(!o)return void await r(e);n(e)||await r(e);const i=le.value[e];if(!i)return;const l=de(i,o);if(l&&!l.childrenLoaded)try{const t=await a(e,o);le.value={...le.value,[e]:ue(i,o,t)}}catch{le.value={...le.value,[e]:ue(i,o,[])}}}return{trees:le,loading:se,openFolders:ce,isTreeLoaded:n,loadTree:r,loadTrees:async function(e){se.value=!0;try{await Promise.all(e.map(e=>r(e)))}finally{se.value=!1}},loadFolderChildren:o,ensurePathLoaded:async function(e,t){await r(e);const n=String(t||"").replace(/^\/+|\/+$/g,"");if(!n)return;const a=n.split("/").filter(Boolean);for(let t=0;t<a.length;t++){const n=a.slice(0,t).join("/");await o(e,n)}},refreshTree:async function(e){const t=ce.value.filter(t=>t.startsWith(`${e}:`)).map(t=>t.slice(e.length+1));try{const t=await a(e,"");le.value={...le.value,[e]:t}}catch{le.value={...le.value,[e]:[]}}const n=[...t].sort((e,t)=>e.split("/").filter(Boolean).length-t.split("/").filter(Boolean).length);for(const t of n)await o(e,t)}}}var pe=l({name:"NavFolderItem",__name:"nav-folder-item",props:{folder:{},currentFolder:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-item"),h=s("nav-folder-item",!0),g=s("v-list-group");return e.folder.children&&0!==e.folder.children.length?(c(),d(g,{key:1,clickable:"",scope:"files-navigation",value:e.folder.id,active:e.currentFolder===e.folder.id,"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler({folder:e.folder.id}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[(c(!0),p(m,null,v(e.folder.children,t=>(c(),d(h,{key:t.id,folder:t,"current-folder":e.currentFolder,"click-handler":e.clickHandler},null,8,["folder","current-folder","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(l,{key:0,clickable:"",active:e.currentFolder===e.folder.id,onClick:n[0]||(n[0]=t=>e.clickHandler({folder:e.folder.id}))},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"]))}});const me={class:"folder-picker-list-item"};var ve=l({name:"StorageFolderPickerItem",__name:"storage-folder-picker-item",props:{folder:{},currentPath:{},clickHandler:{},disabled:{type:Boolean},disabledPaths:{},scope:{default:"storage-folder-picker"},valuePrefix:{default:""}},setup(e){const t=e;function n(e){return(t.disabledPaths||[]).some(t=>e===t||e.startsWith(`${t}/`))}const a=i(()=>Boolean(t.disabled)||n(t.folder.path)),r=i(()=>`${t.valuePrefix}${t.folder.path}`);return(t,o)=>{const i=s("v-icon"),l=s("v-list-item-icon"),y=s("v-list-item-content"),b=s("v-list-item"),_=s("storage-folder-picker-item",!0),w=s("v-list-group");return c(),p("div",me,[e.folder.children?.length?(c(),d(w,{key:1,clickable:"",scope:e.scope,value:r.value,active:e.currentPath===e.folder.path,disabled:a.value,"disable-groupable-parent":"","arrow-placement":"after",onClick:o[1]||(o[1]=t=>e.clickHandler(e.folder.path))},{activator:u(()=>[f(l,null,{default:u(()=>[f(i,{name:e.currentPath===e.folder.path?"folder_open":"folder"},null,8,["name"])]),_:1}),f(y,null,{default:u(()=>[h(g(e.folder.name),1)]),_:1})]),default:u(()=>[(c(!0),p(m,null,v(e.folder.children,t=>(c(),d(_,{key:t.path,folder:t,"current-path":e.currentPath,"click-handler":e.clickHandler,disabled:n(t.path),"disabled-paths":e.disabledPaths,scope:e.scope,"value-prefix":e.valuePrefix},null,8,["folder","current-path","click-handler","disabled","disabled-paths","scope","value-prefix"]))),128))]),_:1},8,["scope","value","active","disabled"])):(c(),d(b,{key:0,clickable:"",active:e.currentPath===e.folder.path,disabled:a.value,onClick:o[0]||(o[0]=t=>e.clickHandler(e.folder.path))},{default:u(()=>[f(l,null,{default:u(()=>[f(i,{name:e.currentPath===e.folder.path?"folder_open":"folder"},null,8,["name"])]),_:1}),f(y,null,{default:u(()=>[h(g(e.folder.name),1)]),_:1})]),_:1},8,["active","disabled"]))])}}});const he={key:1,class:"folder-picker"},ge={key:0,class:"empty"};var ye=l({__name:"storage-folder-picker",props:{location:{},modelValue:{},disabledPaths:{}},emits:["update:modelValue"],setup(t,{emit:n}){const a=t,r=n,l=e(),w=o(!1),x=o([]),S=o(["root"]),k=i(()=>{const e=String(a.modelValue||"").replace(/^\/+|\/+$/g,"");if(!e)return[];const t=e.split("/").filter(Boolean),n=[];for(let e=1;e<t.length;e++)n.push(t.slice(0,e).join("/"));return n});async function E(){w.value=!0;try{const e=await l.get(`/storage-manager/storages/${encodeURIComponent(a.location)}/folder-tree`);x.value=e.data?.data||[]}catch{x.value=[]}finally{w.value=!1}}function A(e){r("update:modelValue",e)}return y(k,e=>{const t=new Set(S.value);t.add("root");for(const n of e)t.add(n);S.value=Array.from(t)},{immediate:!0}),y(()=>a.location,()=>{E()}),b(()=>{E()}),(e,n)=>{const a=s("v-skeleton-loader"),r=s("v-icon"),o=s("v-list-item-icon"),i=s("v-list-item-content"),l=s("v-list-group"),y=s("v-item-group"),b=s("v-list");return w.value?(c(),d(a,{key:0})):(c(),p("div",he,[f(b,null,{default:u(()=>[f(y,{modelValue:S.value,"onUpdate:modelValue":n[1]||(n[1]=e=>S.value=e),scope:"storage-folder-picker",multiple:""},{default:u(()=>[f(l,{"disable-groupable-parent":"",clickable:"",active:""===t.modelValue,scope:"storage-folder-picker",value:"root","arrow-placement":x.value.length>0&&"after",onClick:n[0]||(n[0]=e=>A(""))},{activator:u(()=>[f(o,null,{default:u(()=>[f(r,{name:"storage"})]),_:1}),f(i,null,{default:u(()=>[h("Root ("+g(t.location)+")",1)]),_:1})]),default:u(()=>[(c(!0),p(m,null,v(x.value,e=>(c(),d(ve,{key:e.path,folder:e,"current-path":t.modelValue,"click-handler":A,disabled:t.disabledPaths?.includes(e.path),"disabled-paths":t.disabledPaths},null,8,["folder","current-path","disabled","disabled-paths"]))),128))]),_:1},8,["active","arrow-placement"])]),_:1},8,["modelValue"])]),_:1}),x.value.length?_("v-if",!0):(c(),p("p",ge,"No storage folders yet."))]))}}}),be=[],_e=[];function we(e,t){if(e&&"undefined"!=typeof document){var n,a=!0===t.prepend?"prepend":"append",r=!0===t.singleTag,o="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(r){var i=be.indexOf(o);-1===i&&(i=be.push(o)-1,_e[i]={}),n=_e[i]&&_e[i][a]?_e[i][a]:_e[i][a]=l()}else n=l();65279===e.charCodeAt(0)&&(e=e.substring(1)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(document.createTextNode(e))}function l(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var n=Object.keys(t.attributes),r=0;r<n.length;r++)e.setAttribute(n[r],t.attributes[n[r]]);var i="prepend"===a?"afterbegin":"beforeend";return o.insertAdjacentElement(i,e),e}}we("\n.folder-picker[data-v-10885802] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-10885802] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var xe=(e,t)=>{const n=e.__vccOpts||e;for(const[e,a]of t)n[e]=a;return n},Se=xe(ye,[["__scopeId","data-v-10885802"]]);const ke={class:"radio-options"};var Ee=l({__name:"delete-storage-folder-dialog",props:S({location:{},paths:{},folderName:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:S(["done"],["update:modelValue"]),setup(t,{emit:n}){const a=w(t,"modelValue"),r=t,i=n,l=e(),b=o("move"),_=o(!1),S=[{value:"move",label:"Move content one level up"},{value:"delete",label:"Delete all content"}];async function k(){if(!_.value&&r.location&&r.paths.length){_.value=!0;try{const e=await l.delete(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{data:{paths:r.paths,mode:b.value}}),t=e.data?.data?.skipped||[];if(t.length)return void window.alert(t[0]?.error||"Folder could not be deleted");a.value=!1,i("done")}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{_.value=!1}}}return y(a,e=>{e&&(b.value="move")}),(e,n)=>{const r=s("v-card-title"),o=s("v-radio"),i=s("v-card-text"),l=s("v-button"),y=s("v-card-actions"),w=s("v-card"),E=s("v-dialog");return c(),d(E,{"model-value":a.value,persistent:"","onUpdate:modelValue":n[2]||(n[2]=e=>a.value=e),onEsc:n[3]||(n[3]=e=>a.value=!1),onApply:k},{default:u(()=>[f(w,null,{default:u(()=>[f(r,null,{default:u(()=>[...n[4]||(n[4]=[h("Delete Folder",-1)])]),_:1}),f(i,null,{default:u(()=>[x("p",null,[t.folderName&&1===t.paths.length?(c(),p(m,{key:0},[h(" What should happen to the contents of “"+g(t.folderName)+"”? ",1)],64)):1===t.paths.length?(c(),p(m,{key:1},[h("What should happen to the folder contents?")],64)):(c(),p(m,{key:2},[h("What should happen to the contents of "+g(t.paths.length)+" folders?",1)],64))]),x("div",ke,[(c(),p(m,null,v(S,e=>f(o,{key:e.value,modelValue:b.value,"onUpdate:modelValue":n[0]||(n[0]=e=>b.value=e),value:e.value,label:e.label},null,8,["modelValue","value","label"])),64))])]),_:1}),f(y,null,{default:u(()=>[f(l,{secondary:"",disabled:_.value,onClick:n[1]||(n[1]=e=>a.value=!1)},{default:u(()=>[...n[5]||(n[5]=[h("Cancel",-1)])]),_:1},8,["disabled"]),f(l,{kind:"danger",loading:_.value,onClick:k},{default:u(()=>[...n[6]||(n[6]=[h("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"])}}});we("\n.radio-options[data-v-3129fd6a] {\n\tmargin-block-start: 0.675rem;\n}\n.radio-options .v-radio + .v-radio[data-v-3129fd6a] {\n\tmargin-block-start: 0.45rem;\n}\n",{});var Ae=xe(Ee,[["__scopeId","data-v-3129fd6a"]]);function Oe(e){return String(e||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}function $e(e){return String(e).replace(/_/g,"__").replace(/ /g,"_")}function Ce(e){let t=String(e||"");try{t=decodeURIComponent(t)}catch{}return t.replace(/__/g,"\0").replace(/_/g," ").replace(/\0/g,"_")}function Ie(e){return Oe(e).split("/").filter(Boolean).map(Ce).join("/")}function Re(e,t){const n=`/storage-manager/storage/${encodeURIComponent(e)}`,a=function(e){return Oe(e).split("/").filter(Boolean).map($e).join("/")}(t);return a?`${n}/path/${a}`:n}var Ne=l({__name:"storage-folder-context-menu",props:{location:{},path:{},name:{}},emits:["changed"],setup(t,{expose:n,emit:a}){const r=t,l=a,d=e(),v=H(),{refreshTree:g}=fe(),b=o(null),_=o(!1),w=o(r.name),x=o(!1),S=o(!1),E=o(""),A=o(!1),O=o(!1),$=i(()=>{const e=String(r.path||""),t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}),C=i(()=>[r.path]),I=i(()=>[r.path]);function R(){if(!v.currentRoute.value.path.includes("/storage/"))return"";return Ie(Array.isArray(v.currentRoute.value.params.storagePath)?v.currentRoute.value.params.storagePath.filter(Boolean).join("/"):String(v.currentRoute.value.params.storagePath||""))}function N(e){const t=R();if(t&&(t===r.path||t.startsWith(`${r.path}/`))){const n=t===r.path?"":t.slice(r.path.length+1);v.replace(Re(r.location,n?`${e}/${n}`:e))}}async function T(e){await g(r.location).catch(()=>{}),l("changed",e)}async function j(){if(w.value?.trim()&&!x.value){x.value=!0;try{const e=await d.patch(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{path:r.path,name:w.value.trim()}),t=String(e.data?.data?.path||"");_.value=!1,t&&N(t),await T(t||void 0)}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Rename failed")}finally{x.value=!1}}}async function D(){if(!A.value){A.value=!0;try{const e=await d.patch(`/storage-manager/storages/${encodeURIComponent(r.location)}/folders`,{path:r.path,parent_path:E.value||""}),t=String(e.data?.data?.path||"");S.value=!1,t&&N(t),await T(t||void 0)}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{A.value=!1}}}async function M(){const e=R();(e===r.path||e.startsWith(`${r.path}/`))&&v.replace(Re(r.location,$.value||void 0)),await T($.value||void 0)}return y(()=>r.name,e=>{_.value||(w.value=e)}),y(_,e=>{e&&(w.value=r.name)}),y(S,e=>{e&&(E.value=$.value)}),n({open:function(e){b.value?.activate?.(e)}}),(e,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-list-item-content"),i=s("v-list-item"),l=s("v-list"),d=s("v-menu"),v=s("v-card-title"),g=s("v-input"),y=s("v-card-text"),$=s("v-button"),R=s("v-card-actions"),N=s("v-card"),T=s("v-dialog");return c(),p(m,null,[f(d,{ref_key:"contextMenu",ref:b,"show-arrow":"",placement:"bottom-start"},{default:u(()=>[f(l,null,{default:u(()=>[f(i,{clickable:"",onClick:n[0]||(n[0]=e=>_.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"edit",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[12]||(n[12]=[h("Rename Folder",-1)])]),_:1})]),_:1}),f(i,{clickable:"",onClick:n[1]||(n[1]=e=>S.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder_move",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[13]||(n[13]=[h("Move to Folder",-1)])]),_:1})]),_:1}),f(i,{class:"danger",clickable:"",onClick:n[2]||(n[2]=e=>O.value=!0)},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"delete",outline:""})]),_:1}),f(o,null,{default:u(()=>[...n[14]||(n[14]=[h("Delete Folder",-1)])]),_:1})]),_:1})]),_:1})]),_:1},512),f(T,{modelValue:_.value,"onUpdate:modelValue":n[5]||(n[5]=e=>_.value=e),persistent:"",onEsc:n[6]||(n[6]=e=>_.value=!1),onApply:j},{default:u(()=>[f(N,null,{default:u(()=>[f(v,null,{default:u(()=>[...n[15]||(n[15]=[h("Rename Folder",-1)])]),_:1}),f(y,null,{default:u(()=>[f(g,{modelValue:w.value,"onUpdate:modelValue":n[3]||(n[3]=e=>w.value=e),autofocus:"",onKeyup:k(j,["enter"])},null,8,["modelValue"])]),_:1}),f(R,null,{default:u(()=>[f($,{secondary:"",onClick:n[4]||(n[4]=e=>_.value=!1)},{default:u(()=>[...n[16]||(n[16]=[h("Cancel",-1)])]),_:1}),f($,{disabled:!w.value?.trim(),loading:x.value,onClick:j},{default:u(()=>[...n[17]||(n[17]=[h("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(T,{modelValue:S.value,"onUpdate:modelValue":n[9]||(n[9]=e=>S.value=e),persistent:"",onEsc:n[10]||(n[10]=e=>S.value=!1),onApply:D},{default:u(()=>[f(N,null,{default:u(()=>[f(v,null,{default:u(()=>[...n[18]||(n[18]=[h("Move to Folder",-1)])]),_:1}),f(y,null,{default:u(()=>[f(Se,{modelValue:E.value,"onUpdate:modelValue":n[7]||(n[7]=e=>E.value=e),location:t.location,"disabled-paths":C.value},null,8,["modelValue","location","disabled-paths"])]),_:1}),f(R,null,{default:u(()=>[f($,{secondary:"",onClick:n[8]||(n[8]=e=>S.value=!1)},{default:u(()=>[...n[19]||(n[19]=[h("Cancel",-1)])]),_:1}),f($,{loading:A.value,onClick:D},{default:u(()=>[...n[20]||(n[20]=[h("Save",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Ae,{modelValue:O.value,"onUpdate:modelValue":n[11]||(n[11]=e=>O.value=e),location:t.location,paths:I.value,"folder-name":t.name,onDone:M},null,8,["modelValue","location","paths","folder-name"])],64)}}});we("\n.v-list-item.danger[data-v-73188cf0] {\n\t--v-list-item-color: var(--theme--danger);\n\t--v-list-item-color-hover: var(--theme--danger);\n\t--v-list-item-icon-color: var(--theme--danger);\n}\n",{});var Te=xe(Ne,[["__scopeId","data-v-73188cf0"]]),je=l({name:"NavStorageFolderItem",__name:"nav-storage-folder-item",props:{location:{},folder:{},currentLocation:{},currentPath:{},clickHandler:{type:Function}},emits:["changed"],setup(e,{emit:t}){const n=e,a=t,r=o(null);function l(e,t,n,a){return n===e&&(a||"")===t}const h=i(()=>!n.folder.childrenLoaded||(n.folder.children?.length??0)>0);function g(e){r.value?.open(e)}function y(){a("changed")}return(t,n)=>{const a=s("v-icon"),o=s("v-list-item-icon"),i=s("v-text-overflow"),b=s("v-list-item-content"),w=s("v-list-item"),S=s("nav-storage-folder-item",!0),k=s("v-list-group");return c(),p(m,null,[h.value?(c(),d(k,{key:1,clickable:"",scope:"storage-navigation",value:(A=e.location,O=e.folder.path,`${A}:${O}`),active:l(e.location,e.folder.path,e.currentLocation,e.currentPath),"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler({location:e.location,path:e.folder.path})),onContextmenu:E(g,["prevent"])},{activator:u(()=>[f(o,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(b,null,{default:u(()=>[f(i,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[e.folder.childrenLoaded&&!e.folder.children?.length?(c(),d(w,{key:0,disabled:""},{default:u(()=>[f(b,null,{default:u(()=>[...n[2]||(n[2]=[x("span",{class:"empty-children"},"Empty",-1)])]),_:1})]),_:1})):_("v-if",!0),(c(!0),p(m,null,v(e.folder.children||[],t=>(c(),d(S,{key:t.path,location:e.location,folder:t,"current-location":e.currentLocation,"current-path":e.currentPath,"click-handler":e.clickHandler,onChanged:y},null,8,["location","folder","current-location","current-path","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(w,{key:0,clickable:"",active:l(e.location,e.folder.path,e.currentLocation,e.currentPath),onClick:n[0]||(n[0]=t=>e.clickHandler({location:e.location,path:e.folder.path})),onContextmenu:E(g,["prevent"])},{default:u(()=>[f(o,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(b,null,{default:u(()=>[f(i,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"])),f(Te,{ref_key:"menu",ref:r,location:e.location,path:e.folder.path,name:e.folder.name,onChanged:y},null,8,["location","path","name"])],64);var A,O}}});we("\n.empty-children[data-v-0c715566] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var De=xe(je,[["__scopeId","data-v-0c715566"]]),Me=l({name:"NavStorageItem",__name:"nav-storage-item",props:{storage:{},folders:{},treeLoaded:{type:Boolean},currentLocation:{},currentPath:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-group");return c(),d(l,{clickable:"",scope:"storage-navigation",value:(h=e.storage.location,`@${h}`),active:e.currentLocation===e.storage.location,"arrow-placement":!(e.treeLoaded&&!e.folders.length)&&"after","disable-groupable-parent":"",onClick:n[0]||(n[0]=t=>e.clickHandler({location:e.storage.location}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:e.storage.icon},null,8,["name"])]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.storage.location},null,8,["text"])]),_:1})]),default:u(()=>[e.treeLoaded?(c(!0),p(m,{key:0},v(e.folders,t=>(c(),d(De,{key:t.path,location:e.storage.location,folder:t,"current-location":e.currentLocation,"current-path":e.currentPath,"click-handler":e.clickHandler},null,8,["location","folder","current-location","current-path","click-handler"]))),128)):_("v-if",!0)]),_:1},8,["value","active","arrow-placement"]);var h}});const Le={class:"storages"},Fe={class:"folders"};var Pe=l({__name:"navigation",setup(e){const t=X(),n=H(),{nestedFolders:a,folders:r,loading:o,openFolders:l}=te(),{storages:h,loadStorages:g}=ie(),{trees:w,openFolders:S,loadTree:k,loadFolderChildren:E,ensurePathLoaded:$,isTreeLoaded:C}=fe(),I=i(()=>{if(!t.path.startsWith("/storage-manager/folders"))return;const e=t.params.folderId;return e?String(e):void 0}),R=i(()=>{if(t.path.startsWith("/storage-manager/storage/"))return String(t.params.location||"")||void 0}),N=i(()=>{if(!R.value)return"";const e=t.params.storagePath;return Ie(Array.isArray(e)?e.filter(Boolean).join("/"):e?String(e):"")}),T=i(()=>"/storage-manager/folders"===t.path||"/storage-manager/folders/"===t.path),j=i(()=>"/storage-manager"===t.path||"/storage-manager/"===t.path),D=i(()=>t.path.startsWith("/storage-manager/settings")),M=i(()=>t.path.startsWith("/storage-manager/unreferenced"));function L(e){e.folder?n.push(`/storage-manager/folders/${e.folder}`):n.push("/storage-manager/folders")}function F(e){n.push(Re(e.location,e.path))}function P(){n.push("/storage-manager")}function U(){n.push("/storage-manager/settings")}function B(){n.push("/storage-manager/unreferenced")}return y([I,o,r],function(){if(!r.value||o.value)return;if(!l?.value)return;if(!I.value)return;const e=["root"],t=r.value.find(e=>e.id===I.value);t?.parent&&function t(n){if(!r.value)return;e.push(n);const a=r.value.find(e=>e.id===n);a?.parent&&t(a.parent)}(t.parent);const n=[...l.value];let a=!1;for(const t of e)n.includes(t)||(n.push(t),a=!0);a&&(l.value=n)},{immediate:!0}),y([R,N],()=>{!function(){const e=R.value;if(!e)return;const t=[`@${e}`],n=N.value;if(n){const a=n.split("/").filter(Boolean);for(let n=1;n<=a.length;n++)t.push(`${e}:${a.slice(0,n).join("/")}`)}S.value=Array.from(new Set([...S.value,...t]))}(),async function(){const e=R.value;if(!e)return;await $(e,N.value)}()},{immediate:!0}),y(S,(e,t)=>{const n=e.filter(e=>!t?.includes(e));for(const e of n){if(e.startsWith("@")){const t=e.slice(1);t&&k(t);continue}const t=e.indexOf(":");-1!==t&&E(e.slice(0,t),e.slice(t+1))}}),b(()=>{g().catch(()=>{})}),(e,t)=>{const n=s("v-icon"),r=s("v-list-item-icon"),i=s("v-text-overflow"),g=s("v-list-item-content"),y=s("v-list-item"),b=s("v-divider"),k=s("v-item-group"),E=s("v-list-group"),$=s("v-list");return c(),d($,{nav:""},{default:u(()=>[f(y,{clickable:"",active:j.value,onClick:P},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"dashboard"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Storage Manager"})]),_:1})]),_:1},8,["active"]),f(b),t[4]||(t[4]=x("div",{class:"section-label"},"Storage adapters",-1)),x("div",Le,[f(k,{modelValue:O(S),"onUpdate:modelValue":t[0]||(t[0]=e=>A(S)?S.value=e:null),scope:"storage-navigation",multiple:""},{default:u(()=>[(c(!0),p(m,null,v(O(h),e=>(c(),d(Me,{key:e.location,storage:e,folders:O(w)[e.location]||[],"tree-loaded":O(C)(e.location),"current-location":R.value,"current-path":N.value,"click-handler":F},null,8,["storage","folders","tree-loaded","current-location","current-path"]))),128))]),_:1},8,["modelValue"])]),f(b),x("div",Fe,[f(k,{modelValue:O(l),"onUpdate:modelValue":t[2]||(t[2]=e=>A(l)?l.value=e:null),scope:"files-navigation",multiple:""},{default:u(()=>[f(E,{clickable:"",active:T.value||Boolean(I.value),value:"root",scope:"files-navigation",exact:"","disable-groupable-parent":"","arrow-placement":!!(O(a)&&O(a).length>0)&&"after",onClick:t[1]||(t[1]=e=>L({}))},{activator:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"folder_special",outline:""})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Directus Folders"})]),_:1})]),default:u(()=>[(c(!0),p(m,null,v(O(a)||[],e=>(c(),d(pe,{key:e.id,folder:e,"current-folder":I.value,"click-handler":L},null,8,["folder","current-folder"]))),128)),!O(o)||O(a)&&0!==O(a).length?_("v-if",!0):(c(),d(y,{key:0},{default:u(()=>[f(g,null,{default:u(()=>[...t[3]||(t[3]=[x("span",{class:"nav-loading"},"Loading…",-1)])]),_:1})]),_:1}))]),_:1},8,["active","arrow-placement"])]),_:1},8,["modelValue"])]),f(y,{clickable:"",active:M.value,onClick:B},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"link_off"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Unreferenced Files"})]),_:1})]),_:1},8,["active"]),f(y,{clickable:"",active:D.value,onClick:U},{default:u(()=>[f(r,null,{default:u(()=>[f(n,{name:"settings"})]),_:1}),f(g,null,{default:u(()=>[f(i,{text:"Settings"})]),_:1})]),_:1},8,["active"])]),_:1})}}});we("\n.folders[data-v-573124f8],\n.storages[data-v-573124f8] {\n\twidth: 100%;\n\toverflow-x: hidden;\n}\n.folders[data-v-573124f8] .v-list-item-content,\n.storages[data-v-573124f8] .v-list-item-content {\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n.section-label[data-v-573124f8] {\n\tpadding: 4px 12px 4px;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n}\n.nav-loading[data-v-573124f8] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ue=xe(Pe,[["__scopeId","data-v-573124f8"]]);function Be(e){if(null==e||!Number.isFinite(e)||e<0)return"—";if(0===e)return"0 B";const t=["B","KB","MB","GB","TB","PB"],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),a=e/Math.pow(1024,n),r=a>=100||0===n?0:a>=10?1:2;return`${a.toFixed(r)} ${t[n]}`}function Ve(e){if(null==e||!Number.isFinite(e)||e<0)return"—";const t=8*e/1e6;return t<.1?`${t.toFixed(2)} Mbit/s`:t<10?`${t.toFixed(1)} Mbit/s`:`${Math.round(t)} Mbit/s`}function ze(e){if(null==e||!Number.isFinite(e)||e<0)return"—";const t=Math.floor(e/1e3),n=Math.floor(t/3600),a=Math.floor(t%3600/60),r=t%60;return n>0?`${n}h ${a}m ${r}s`:a>0?`${a}m ${r}s`:`${r}s`}const Ge={class:"usage-top"},Ke={class:"label"},He={class:"value"},Xe={key:0,class:"track"},qe={key:1,class:"secondary"};var We=l({__name:"usage-bar",props:{usage:{},label:{default:"Usage"},compact:{type:Boolean,default:!1},plain:{type:Boolean,default:!1}},setup(e){const t=e,n=i(()=>t.usage.disk_available&&null!=t.usage.disk_used_percent),a=i(()=>{const e=t.usage.disk_used_percent??0;return Math.max(0,Math.min(100,e))}),r=i(()=>{const e=a.value;return e>=90?"danger":e>=75?"warning":"ok"}),o=i(()=>{return n.value?`${e=t.usage.disk_used_percent,null!=e&&Number.isFinite(e)?`${Math.round(e)}%`:"—"} used · ${Be(t.usage.disk_used_bytes)} / ${Be(t.usage.disk_total_bytes)}`:`${t.usage.file_count.toLocaleString()} files · ${Be(t.usage.total_bytes)}`;var e}),l=i(()=>n.value?`${t.usage.file_count.toLocaleString()} files in Directus · ${Be(t.usage.total_bytes)} · ${Be(t.usage.disk_free_bytes)} free`:"Cloud quota not available — showing Directus-tracked size");return(t,i)=>(c(),p("div",{class:$(["usage-bar",{compact:e.compact,plain:e.plain}])},[x("div",Ge,[x("span",Ke,g(e.label),1),x("span",He,g(o.value),1)]),n.value?(c(),p("div",Xe,[x("div",{class:$(["fill",r.value]),style:C({width:`${a.value}%`})},null,6)])):_("v-if",!0),l.value?(c(),p("div",qe,g(l.value),1)):_("v-if",!0)],2))}});we("\n.usage-bar[data-v-475a6a41] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpadding: 12px 14px;\n\tbackground: var(--theme--background-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.usage-bar.compact[data-v-475a6a41] {\n\tpadding: 8px 10px;\n}\n.usage-bar.plain[data-v-475a6a41] {\n\tpadding: 0;\n\tbackground: transparent;\n\tborder: none;\n\tborder-radius: 0;\n}\n.usage-top[data-v-475a6a41] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 12px;\n\talign-items: baseline;\n}\n.label[data-v-475a6a41] {\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground);\n}\n.value[data-v-475a6a41] {\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground);\n\ttext-align: right;\n}\n.track[data-v-475a6a41] {\n\theight: 8px;\n\tborder-radius: 999px;\n\tbackground: var(--theme--background-normal);\n\toverflow: hidden;\n}\n.fill[data-v-475a6a41] {\n\theight: 100%;\n\tborder-radius: inherit;\n\ttransition: width 200ms ease;\n}\n.fill.ok[data-v-475a6a41] {\n\tbackground: var(--theme--primary);\n}\n.fill.warning[data-v-475a6a41] {\n\tbackground: var(--theme--warning);\n}\n.fill.danger[data-v-475a6a41] {\n\tbackground: var(--theme--danger);\n}\n.secondary[data-v-475a6a41] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ye=xe(We,[["__scopeId","data-v-475a6a41"]]);function Je(e){if("undefined"!=typeof document&&(document.querySelector(".root-split, .main-split")||document.querySelector("#navigation.module-bar")||document.querySelector("aside.module-nav:not(#navigation)")))return!1;const t=function(e){if("string"!=typeof e||!e)return null;const t=e.trim().replace(/^v/i,""),[n,a]=t.split("."),r=Number.parseInt(n||"",10),o=Number.parseInt(a||"",10);return Number.isFinite(r)?{major:r,minor:Number.isFinite(o)?o:0}:null}(e);return t?11===t.major&&t.minor<14:"undefined"!=typeof document&&Boolean(document.querySelector("#navigation:not(.module-bar)"))}function Qe(){const{useServerStore:e}=t(),n=e();return i(()=>{const e=["page-container"];return Je(n?.info?.version)&&e.push("page-container--flush-top"),e})}const Ze="storage_manager",et="none",tt="full_sync",nt={image:"images",video:"videos",audio:"audio",text:"documents"},at="yyyy/MM",rt={on_deselect:"keep",on_item_delete:"keep",scan_min_age_minutes:60,scan_text_fields:!0};const ot=["none","folder","folder_id","type","date"],it=["full_sync","leave_old"];function lt(e){const t=e&&"object"==typeof e?e:{};return{prefix_strategy:ot.includes(t.prefix_strategy)?t.prefix_strategy:et,folder_sync_enabled:Boolean(t.folder_sync_enabled),folder_sync_rename:it.includes(t.folder_sync_rename)?t.folder_sync_rename:tt,folder_sync_delete:"move_to_parent",date_format:"string"==typeof t.date_format&&t.date_format.trim()?t.date_format.trim():at,type_map:{...nt,...t.type_map&&"object"==typeof t.type_map&&!Array.isArray(t.type_map)?t.type_map:{}}}}function st(e){if(!e||"object"!=typeof e)throw new Error("Invalid JSON: expected an object");const t=e,n=t.storage_manager&&"object"==typeof t.storage_manager?t.storage_manager:t;if(!n||"object"!=typeof n)throw new Error("Invalid config: expected storage_manager object");const a=n.locations;if(!a||"object"!=typeof a||Array.isArray(a))throw new Error("Invalid config: missing locations object");const r={};for(const[e,t]of Object.entries(a))e.trim()&&(r[e]=lt(t));const o={locations:r};return"name_mirror_claims"in n&&(o.name_mirror_claims=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{};const t={};for(const[n,a]of Object.entries(e))"string"==typeof n&&n&&"string"==typeof a&&a&&(t[n]=a);return t}(n.name_mirror_claims)),"lifecycle"in n&&(o.lifecycle=function(e){const t=e&&"object"==typeof e?e:{},n=t.on_deselect,a=t.on_item_delete,r=Number(t.scan_min_age_minutes);return{on_deselect:"ask"===n||"delete_if_unreferenced"===n||"keep"===n?n:rt.on_deselect,on_item_delete:"delete_if_unreferenced"===a||"keep"===a?a:rt.on_item_delete,scan_min_age_minutes:Number.isFinite(r)&&r>=0?Math.min(43200,Math.floor(r)):rt.scan_min_age_minutes,scan_text_fields:void 0===t.scan_text_fields?rt.scan_text_fields:Boolean(t.scan_text_fields)}}(n.lifecycle)),o}function ct(e){return e?{prefix_strategy:"folder",folder_sync_enabled:!0,folder_sync_rename:"full_sync"}:{prefix_strategy:"none",folder_sync_enabled:!1}}const dt={key:0,class:"loading"},ut={class:"storage-grid"},ft={class:"card-head"},pt={class:"card-titles"},mt={class:"meta"},vt={class:"tag"},ht={key:0,class:"tag"},gt=["title"],yt={key:2,class:"tag tag-path"},bt={class:"card-strategy"},_t={class:"mirror-copy"};var wt=l({__name:"overview-view",setup(t){const n=H(),a=e(),r=Qe(),{storages:i,storagesError:l,loadStorages:y}=ie(),w=o(!0),S=I({});return b(async function(){w.value=!0;try{await y(!0)}finally{w.value=!1}}),(e,t)=>{const o=s("v-breadcrumb"),y=s("sidebar-detail"),b=s("v-progress-circular"),k=s("v-notice"),E=s("v-icon"),A=s("v-divider"),C=s("v-button"),I=s("v-checkbox"),T=s("private-view"),j=R("tooltip");return c(),d(T,{title:"Storage Manager",icon:"storage"},{headline:u(()=>[f(o,{items:[{name:"Storage Manager",to:"/storage-manager"}]})]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(y,{id:"about",icon:"info",title:"About"},{default:u(()=>[...t[0]||(t[0]=[x("p",{class:"sidebar-text"}," Move files between configured storage adapters and manage physical storage folders. Use Directus Folders view to materialize virtual folders into real storage paths. ",-1)])]),_:1})]),default:u(()=>[x("div",{class:$(O(r))},[w.value&&!O(i).length?(c(),p("div",dt,[f(b,{indeterminate:""})])):O(l)?(c(),d(k,{key:1,type:"danger"},{default:u(()=>[h(g(O(l)),1)]),_:1})):(c(),p(m,{key:2},[f(A,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(E,{name:"swap_horiz"})]),default:u(()=>[t[1]||(t[1]=h(" Storage Manager ",-1))]),_:1}),t[4]||(t[4]=x("p",{class:"page-intro"},[h(" Browse, create, and move files and storage folders across your adapters. Use Materialize in Directus Folders view to convert virtual folder hierarchy into physical storage paths. Use "),x("strong",null,"Unreferenced Files"),h(" to find File Library entries nothing still points at. ")],-1)),x("div",ut,[(c(!0),p(m,null,v(O(i),e=>(c(),p("article",{key:e.location,class:"storage-card"},[x("div",ft,[f(E,{name:e.icon,large:""},null,8,["name"]),x("div",pt,[x("strong",null,g(e.location),1),x("span",null,g(e.label),1)]),f(C,{small:"",secondary:"",onClick:t=>{return a=e.location,void n.push(Re(a));var a}},{default:u(()=>[...t[2]||(t[2]=[h("Browse",-1)])]),_:1},8,["onClick"])]),f(Ye,{usage:e},null,8,["usage"]),x("div",mt,[x("span",vt,g(e.file_count.toLocaleString())+" files",1),e.folder_count?(c(),p("span",ht,g(e.folder_count.toLocaleString())+" folders",1)):_("v-if",!0),e.root?(c(),p("span",{key:1,class:"tag tag-path",title:e.root},g(e.root),9,gt)):e.bucket?(c(),p("span",yt,g(e.bucket),1)):_("v-if",!0)]),x("div",bt,[x("div",_t,[t[3]||(t[3]=x("strong",null,"Mirror Directus Folders",-1)),N(f(E,{name:"help_outline",small:""},null,512),[[j,"New uploads and folder rename/delete follow the Directus folder tree on this adapter.",void 0,{bottom:!0}]])]),f(I,{"model-value":e.mirror_directus_folders,disabled:Boolean(S[e.location]),"onUpdate:modelValue":t=>async function(e,t){const n=i.value.find(t=>t.location===e);if(!n||S[e])return;const r=Boolean(n.mirror_directus_folders);n.mirror_directus_folders=t,S[e]=!0;try{await a.patch("/storage-manager/settings",{locations:{[e]:ct(t)}})}catch{n.mirror_directus_folders=r,window.alert("Could not save Mirror Directus Folders.")}finally{S[e]=!1}}(e.location,t)},null,8,["model-value","disabled","onUpdate:modelValue"])])]))),128))])],64))],2)]),_:1})}}});we("\n.page-container[data-v-6461142c] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: var(--content-padding-bottom);\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-6461142c] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-6461142c] {\n\tmargin-bottom: 12px;\n}\n.page-intro[data-v-6461142c],\n.sidebar-text[data-v-6461142c] {\n\tmargin: 0 0 24px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.sidebar-text code[data-v-6461142c] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.loading[data-v-6461142c] {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 48px 0;\n}\n.glossary-sidebar[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n}\n.glossary-scope[data-v-6461142c] {\n\tmargin: 0;\n\tpadding: 10px 12px;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.glossary-section[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\tmargin-block-start: 8px;\n\tpadding: 14px 12px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tborder-block-start-width: 2px;\n\tbackground: var(--theme--background-subdued);\n}\n.glossary-section-label[data-v-6461142c] {\n\tdisplay: block;\n\tfont-size: 11px;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground);\n}\n.glossary-section-intro[data-v-6461142c] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.glossary-section .glossary-item[data-v-6461142c] {\n\tpadding-block-start: 10px;\n\tborder-block-start: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.glossary-sidebar .glossary-item strong[data-v-6461142c] {\n\tdisplay: block;\n\tmargin-block-end: 4px;\n\tfont-size: 13px;\n}\n.glossary-sidebar .glossary-item p[data-v-6461142c] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.storage-grid[data-v-6461142c] {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: 16px;\n}\n@media (max-width: 900px) {\n.storage-grid[data-v-6461142c] {\n\t\tgrid-template-columns: 1fr;\n}\n}\n.storage-card[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n\tmin-width: 0;\n\tpadding: 16px 18px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tbackground: var(--theme--background);\n}\n.card-head[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n.card-titles[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmin-width: 0;\n\tflex: 1;\n}\n.card-titles strong[data-v-6461142c] {\n\tfont-size: 15px;\n\tletter-spacing: 0.01em;\n}\n.card-titles span[data-v-6461142c] {\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.meta[data-v-6461142c] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\talign-items: center;\n}\n.meta .tag[data-v-6461142c] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-width: 100%;\n\tpadding: 3px 9px;\n\tborder-radius: 4px;\n\tfont-size: 12px;\n\tline-height: 1.35;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.meta .tag-path[data-v-6461142c] {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tcolor: var(--theme--foreground-subdued);\n}\n.card-strategy[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tpadding-block-start: 12px;\n\tborder-block-start: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.mirror-copy[data-v-6461142c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmin-width: 0;\n\tflex: 1;\n}\n.mirror-copy strong[data-v-6461142c] {\n\tfont-size: 13px;\n}\n.mirror-copy .v-icon[data-v-6461142c] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n}\n.strategy-label[data-v-6461142c] {\n\tmin-width: 0;\n\tflex: 1;\n\toverflow: hidden;\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground);\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n.strategy-prefix[data-v-6461142c] {\n\tfont-weight: 500;\n\tcolor: var(--theme--foreground-subdued);\n}\n.strategy-dialog-card[data-v-6461142c] {\n\twidth: min(480px, 92vw);\n\tmax-block-size: min(85vh, 720px);\n\toverflow: auto;\n}\n",{});var xt=xe(wt,[["__scopeId","data-v-6461142c"]]);const St=/\(([^()]+)\)/;var kt="object"==typeof global&&global&&global.Object===Object&&global,Et="object"==typeof self&&self&&self.Object===Object&&self,At=kt||Et||Function("return this")(),Ot=At.Symbol,$t=Object.prototype,Ct=$t.hasOwnProperty,It=$t.toString,Rt=Ot?Ot.toStringTag:void 0;var Nt=Object.prototype.toString;var Tt=Ot?Ot.toStringTag:void 0;function jt(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Tt&&Tt in Object(e)?function(e){var t=Ct.call(e,Rt),n=e[Rt];try{e[Rt]=void 0;var a=!0}catch(e){}var r=It.call(e);return a&&(t?e[Rt]=n:delete e[Rt]),r}(e):function(e){return Nt.call(e)}(e)}function Dt(e){return null!=e&&"object"==typeof e}function Mt(e){return"symbol"==typeof e||Dt(e)&&"[object Symbol]"==jt(e)}var Lt=Array.isArray,Ft=Ot?Ot.prototype:void 0,Pt=Ft?Ft.toString:void 0;function Ut(e){if("string"==typeof e)return e;if(Lt(e))return function(e,t){for(var n=-1,a=null==e?0:e.length,r=Array(a);++n<a;)r[n]=t(e[n],n,e);return r}(e,Ut)+"";if(Mt(e))return Pt?Pt.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var Bt=/\s/;var Vt=/^\s+/;function zt(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&Bt.test(e.charAt(t)););return t}(e)+1).replace(Vt,""):e}function Gt(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var Kt=/^[-+]0x[0-9a-f]+$/i,Ht=/^0b[01]+$/i,Xt=/^0o[0-7]+$/i,qt=parseInt;function Wt(e){if("number"==typeof e)return e;if(Mt(e))return NaN;if(Gt(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Gt(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=zt(e);var n=Ht.test(e);return n||Xt.test(e)?qt(e.slice(2),n?2:8):Kt.test(e)?NaN:+e}function Yt(e){return e}function Jt(e){if(!Gt(e))return!1;var t=jt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var Qt,Zt=At["__core-js_shared__"],en=(Qt=/[^.]+$/.exec(Zt&&Zt.keys&&Zt.keys.IE_PROTO||""))?"Symbol(src)_1."+Qt:"";var tn=Function.prototype.toString;function nn(e){if(null!=e){try{return tn.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var an=/^\[object .+?Constructor\]$/,rn=Function.prototype,on=Object.prototype,ln=rn.toString,sn=on.hasOwnProperty,cn=RegExp("^"+ln.call(sn).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dn(e){return!(!Gt(e)||(t=e,en&&en in t))&&(Jt(e)?cn:an).test(nn(e));var t}function un(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return dn(n)?n:void 0}var fn=un(At,"WeakMap"),pn=Object.create,mn=function(){function e(){}return function(t){if(!Gt(t))return{};if(pn)return pn(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function vn(e,t){var n=-1,a=e.length;for(t||(t=Array(a));++n<a;)t[n]=e[n];return t}var hn=Date.now;var gn,yn,bn,_n=function(){try{var e=un(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),wn=_n?function(e,t){return _n(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:Yt,xn=(gn=wn,yn=0,bn=0,function(){var e=hn(),t=16-(e-bn);if(bn=e,t>0){if(++yn>=800)return arguments[0]}else yn=0;return gn.apply(void 0,arguments)});var Sn=/^(?:0|[1-9]\d*)$/;function kn(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Sn.test(e))&&e>-1&&e%1==0&&e<t}function En(e,t,n){"__proto__"==t&&_n?_n(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function An(e,t){return e===t||e!=e&&t!=t}var On=Object.prototype.hasOwnProperty;function $n(e,t,n){var a=e[t];On.call(e,t)&&An(a,n)&&(void 0!==n||t in e)||En(e,t,n)}function Cn(e,t,n,a){var r=!n;n||(n={});for(var o=-1,i=t.length;++o<i;){var l=t[o],s=void 0;void 0===s&&(s=e[l]),r?En(n,l,s):$n(n,l,s)}return n}var In=Math.max;function Rn(e,t){return xn(function(e,t,n){return t=In(void 0===t?e.length-1:t,0),function(){for(var a=arguments,r=-1,o=In(a.length-t,0),i=Array(o);++r<o;)i[r]=a[t+r];r=-1;for(var l=Array(t+1);++r<t;)l[r]=a[r];return l[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,l)}}(e,t,Yt),e+"")}function Nn(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Tn(e){return null!=e&&Nn(e.length)&&!Jt(e)}var jn=Object.prototype;function Dn(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||jn)}function Mn(e){return Dt(e)&&"[object Arguments]"==jt(e)}var Ln=Object.prototype,Fn=Ln.hasOwnProperty,Pn=Ln.propertyIsEnumerable,Un=Mn(function(){return arguments}())?Mn:function(e){return Dt(e)&&Fn.call(e,"callee")&&!Pn.call(e,"callee")};var Bn="object"==typeof exports&&exports&&!exports.nodeType&&exports,Vn=Bn&&"object"==typeof module&&module&&!module.nodeType&&module,zn=Vn&&Vn.exports===Bn?At.Buffer:void 0,Gn=(zn?zn.isBuffer:void 0)||function(){return!1},Kn={};function Hn(e){return function(t){return e(t)}}Kn["[object Float32Array]"]=Kn["[object Float64Array]"]=Kn["[object Int8Array]"]=Kn["[object Int16Array]"]=Kn["[object Int32Array]"]=Kn["[object Uint8Array]"]=Kn["[object Uint8ClampedArray]"]=Kn["[object Uint16Array]"]=Kn["[object Uint32Array]"]=!0,Kn["[object Arguments]"]=Kn["[object Array]"]=Kn["[object ArrayBuffer]"]=Kn["[object Boolean]"]=Kn["[object DataView]"]=Kn["[object Date]"]=Kn["[object Error]"]=Kn["[object Function]"]=Kn["[object Map]"]=Kn["[object Number]"]=Kn["[object Object]"]=Kn["[object RegExp]"]=Kn["[object Set]"]=Kn["[object String]"]=Kn["[object WeakMap]"]=!1;var Xn="object"==typeof exports&&exports&&!exports.nodeType&&exports,qn=Xn&&"object"==typeof module&&module&&!module.nodeType&&module,Wn=qn&&qn.exports===Xn&&kt.process,Yn=function(){try{var e=qn&&qn.require&&qn.require("util").types;return e||Wn&&Wn.binding&&Wn.binding("util")}catch(e){}}(),Jn=Yn&&Yn.isTypedArray,Qn=Jn?Hn(Jn):function(e){return Dt(e)&&Nn(e.length)&&!!Kn[jt(e)]},Zn=Object.prototype.hasOwnProperty;function ea(e,t){var n=Lt(e),a=!n&&Un(e),r=!n&&!a&&Gn(e),o=!n&&!a&&!r&&Qn(e),i=n||a||r||o,l=i?function(e,t){for(var n=-1,a=Array(e);++n<e;)a[n]=t(n);return a}(e.length,String):[],s=l.length;for(var c in e)!t&&!Zn.call(e,c)||i&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||kn(c,s))||l.push(c);return l}function ta(e,t){return function(n){return e(t(n))}}var na=ta(Object.keys,Object),aa=Object.prototype.hasOwnProperty;function ra(e){if(!Dn(e))return na(e);var t=[];for(var n in Object(e))aa.call(e,n)&&"constructor"!=n&&t.push(n);return t}function oa(e){return Tn(e)?ea(e):ra(e)}var ia=Object.prototype.hasOwnProperty;function la(e){if(!Gt(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Dn(e),n=[];for(var a in e)("constructor"!=a||!t&&ia.call(e,a))&&n.push(a);return n}function sa(e){return Tn(e)?ea(e,!0):la(e)}var ca=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,da=/^\w*$/;var ua=un(Object,"create");var fa=Object.prototype.hasOwnProperty;var pa=Object.prototype.hasOwnProperty;function ma(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}function va(e,t){for(var n=e.length;n--;)if(An(e[n][0],t))return n;return-1}ma.prototype.clear=function(){this.__data__=ua?ua(null):{},this.size=0},ma.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},ma.prototype.get=function(e){var t=this.__data__;if(ua){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return fa.call(t,e)?t[e]:void 0},ma.prototype.has=function(e){var t=this.__data__;return ua?void 0!==t[e]:pa.call(t,e)},ma.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ua&&void 0===t?"__lodash_hash_undefined__":t,this};var ha=Array.prototype.splice;function ga(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}ga.prototype.clear=function(){this.__data__=[],this.size=0},ga.prototype.delete=function(e){var t=this.__data__,n=va(t,e);return!(n<0)&&(n==t.length-1?t.pop():ha.call(t,n,1),--this.size,!0)},ga.prototype.get=function(e){var t=this.__data__,n=va(t,e);return n<0?void 0:t[n][1]},ga.prototype.has=function(e){return va(this.__data__,e)>-1},ga.prototype.set=function(e,t){var n=this.__data__,a=va(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this};var ya=un(At,"Map");function ba(e,t){var n,a,r=e.__data__;return("string"==(a=typeof(n=t))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof t?"string":"hash"]:r.map}function _a(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var a=e[t];this.set(a[0],a[1])}}_a.prototype.clear=function(){this.size=0,this.__data__={hash:new ma,map:new(ya||ga),string:new ma}},_a.prototype.delete=function(e){var t=ba(this,e).delete(e);return this.size-=t?1:0,t},_a.prototype.get=function(e){return ba(this,e).get(e)},_a.prototype.has=function(e){return ba(this,e).has(e)},_a.prototype.set=function(e,t){var n=ba(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this};function wa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=t?t.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=e.apply(this,a);return n.cache=o.set(r,i)||o,i};return n.cache=new(wa.Cache||_a),n}wa.Cache=_a;var xa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Sa=/\\(\\)?/g,ka=function(e){var t=wa(e,function(e){return 500===n.size&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(xa,function(e,n,a,r){t.push(a?r.replace(Sa,"$1"):n||e)}),t});function Ea(e,t){return Lt(e)?e:function(e,t){if(Lt(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Mt(e))||da.test(e)||!ca.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:ka(function(e){return null==e?"":Ut(e)}(e))}function Aa(e){if("string"==typeof e||Mt(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Oa(e,t,n){var a=null==e?void 0:function(e,t){for(var n=0,a=(t=Ea(t,e)).length;null!=e&&n<a;)e=e[Aa(t[n++])];return n&&n==a?e:void 0}(e,t);return void 0===a?n:a}function $a(e,t){for(var n=-1,a=t.length,r=e.length;++n<a;)e[r+n]=t[n];return e}var Ca=ta(Object.getPrototypeOf,Object),Ia=Function.prototype,Ra=Object.prototype,Na=Ia.toString,Ta=Ra.hasOwnProperty,ja=Na.call(Object);function Da(e){if(!Dt(e)||"[object Object]"!=jt(e))return!1;var t=Ca(e);if(null===t)return!0;var n=Ta.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Na.call(n)==ja}function Ma(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=Wt(n))==n?n:0),void 0!==t&&(t=(t=Wt(t))==t?t:0),function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}(Wt(e),t,n)}function La(e){var t=this.__data__=new ga(e);this.size=t.size}La.prototype.clear=function(){this.__data__=new ga,this.size=0},La.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},La.prototype.get=function(e){return this.__data__.get(e)},La.prototype.has=function(e){return this.__data__.has(e)},La.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ga){var a=n.__data__;if(!ya||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new _a(a)}return n.set(e,t),this.size=n.size,this};var Fa="object"==typeof exports&&exports&&!exports.nodeType&&exports,Pa=Fa&&"object"==typeof module&&module&&!module.nodeType&&module,Ua=Pa&&Pa.exports===Fa?At.Buffer:void 0,Ba=Ua?Ua.allocUnsafe:void 0;function Va(e,t){if(t)return e.slice();var n=e.length,a=Ba?Ba(n):new e.constructor(n);return e.copy(a),a}function za(){return[]}var Ga=Object.prototype.propertyIsEnumerable,Ka=Object.getOwnPropertySymbols,Ha=Ka?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,a=null==e?0:e.length,r=0,o=[];++n<a;){var i=e[n];t(i,n,e)&&(o[r++]=i)}return o}(Ka(e),function(t){return Ga.call(e,t)}))}:za;var Xa=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)$a(t,Ha(e)),e=Ca(e);return t}:za;function qa(e,t,n){var a=t(e);return Lt(e)?a:$a(a,n(e))}function Wa(e){return qa(e,oa,Ha)}function Ya(e){return qa(e,sa,Xa)}var Ja=un(At,"DataView"),Qa=un(At,"Promise"),Za=un(At,"Set"),er="[object Map]",tr="[object Promise]",nr="[object Set]",ar="[object WeakMap]",rr="[object DataView]",or=nn(Ja),ir=nn(ya),lr=nn(Qa),sr=nn(Za),cr=nn(fn),dr=jt;(Ja&&dr(new Ja(new ArrayBuffer(1)))!=rr||ya&&dr(new ya)!=er||Qa&&dr(Qa.resolve())!=tr||Za&&dr(new Za)!=nr||fn&&dr(new fn)!=ar)&&(dr=function(e){var t=jt(e),n="[object Object]"==t?e.constructor:void 0,a=n?nn(n):"";if(a)switch(a){case or:return rr;case ir:return er;case lr:return tr;case sr:return nr;case cr:return ar}return t});var ur=Object.prototype.hasOwnProperty;var fr=At.Uint8Array;function pr(e){var t=new e.constructor(e.byteLength);return new fr(t).set(new fr(e)),t}var mr=/\w*$/;var vr=Ot?Ot.prototype:void 0,hr=vr?vr.valueOf:void 0;function gr(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function yr(e,t,n){var a,r=e.constructor;switch(t){case"[object ArrayBuffer]":return pr(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return function(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return gr(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return function(e){var t=new e.constructor(e.source,mr.exec(e));return t.lastIndex=e.lastIndex,t}(e);case"[object Symbol]":return a=e,hr?Object(hr.call(a)):{}}}function br(e){return"function"!=typeof e.constructor||Dn(e)?{}:mn(Ca(e))}var _r=Yn&&Yn.isMap,wr=_r?Hn(_r):function(e){return Dt(e)&&"[object Map]"==dr(e)};var xr=Yn&&Yn.isSet,Sr=xr?Hn(xr):function(e){return Dt(e)&&"[object Set]"==dr(e)},kr="[object Arguments]",Er="[object Function]",Ar="[object Object]",Or={};function $r(e,t,n,a,r,o){var i,l=1&t,s=2&t,c=4&t;if(void 0!==i)return i;if(!Gt(e))return e;var d=Lt(e);if(d){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ur.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return vn(e,i)}else{var u=dr(e),f=u==Er||"[object GeneratorFunction]"==u;if(Gn(e))return Va(e,l);if(u==Ar||u==kr||f&&!r){if(i=s||f?{}:br(e),!l)return s?function(e,t){return Cn(e,Xa(e),t)}(e,function(e,t){return e&&Cn(t,sa(t),e)}(i,e)):function(e,t){return Cn(e,Ha(e),t)}(e,function(e,t){return e&&Cn(t,oa(t),e)}(i,e))}else{if(!Or[u])return r?e:{};i=yr(e,u,l)}}o||(o=new La);var p=o.get(e);if(p)return p;o.set(e,i),Sr(e)?e.forEach(function(a){i.add($r(a,t,n,a,e,o))}):wr(e)&&e.forEach(function(a,r){i.set(r,$r(a,t,n,r,e,o))});var m=d?void 0:(c?s?Ya:Wa:s?sa:oa)(e);return function(e,t){for(var n=-1,a=null==e?0:e.length;++n<a&&!1!==t(e[n],n,e););}(m||e,function(a,r){m&&(a=e[r=a]),$n(i,r,$r(a,t,n,r,e,o))}),i}Or[kr]=Or["[object Array]"]=Or["[object ArrayBuffer]"]=Or["[object DataView]"]=Or["[object Boolean]"]=Or["[object Date]"]=Or["[object Float32Array]"]=Or["[object Float64Array]"]=Or["[object Int8Array]"]=Or["[object Int16Array]"]=Or["[object Int32Array]"]=Or["[object Map]"]=Or["[object Number]"]=Or[Ar]=Or["[object RegExp]"]=Or["[object Set]"]=Or["[object String]"]=Or["[object Symbol]"]=Or["[object Uint8Array]"]=Or["[object Uint8ClampedArray]"]=Or["[object Uint16Array]"]=Or["[object Uint32Array]"]=!0,Or["[object Error]"]=Or[Er]=Or["[object WeakMap]"]=!1;function Cr(e){return $r(e,5)}function Ir(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new _a;++t<n;)this.add(e[t])}function Rr(e,t){for(var n=-1,a=null==e?0:e.length;++n<a;)if(t(e[n],n,e))return!0;return!1}function Nr(e,t){return e.has(t)}Ir.prototype.add=Ir.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ir.prototype.has=function(e){return this.__data__.has(e)};function Tr(e,t,n,a,r,o){var i=1&n,l=e.length,s=t.length;if(l!=s&&!(i&&s>l))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var u=-1,f=!0,p=2&n?new Ir:void 0;for(o.set(e,t),o.set(t,e);++u<l;){var m=e[u],v=t[u];if(a)var h=i?a(v,m,u,t,e,o):a(m,v,u,e,t,o);if(void 0!==h){if(h)continue;f=!1;break}if(p){if(!Rr(t,function(e,t){if(!Nr(p,t)&&(m===e||r(m,e,n,a,o)))return p.push(t)})){f=!1;break}}else if(m!==v&&!r(m,v,n,a,o)){f=!1;break}}return o.delete(e),o.delete(t),f}function jr(e){var t=-1,n=Array(e.size);return e.forEach(function(e,a){n[++t]=[a,e]}),n}function Dr(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var Mr=Ot?Ot.prototype:void 0,Lr=Mr?Mr.valueOf:void 0;var Fr=Object.prototype.hasOwnProperty;var Pr="[object Arguments]",Ur="[object Array]",Br="[object Object]",Vr=Object.prototype.hasOwnProperty;function zr(e,t,n,a,r,o){var i=Lt(e),l=Lt(t),s=i?Ur:dr(e),c=l?Ur:dr(t),d=(s=s==Pr?Br:s)==Br,u=(c=c==Pr?Br:c)==Br,f=s==c;if(f&&Gn(e)){if(!Gn(t))return!1;i=!0,d=!1}if(f&&!d)return o||(o=new La),i||Qn(e)?Tr(e,t,n,a,r,o):function(e,t,n,a,r,o,i){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!o(new fr(e),new fr(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return An(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var l=jr;case"[object Set]":var s=1&a;if(l||(l=Dr),e.size!=t.size&&!s)return!1;var c=i.get(e);if(c)return c==t;a|=2,i.set(e,t);var d=Tr(l(e),l(t),a,r,o,i);return i.delete(e),d;case"[object Symbol]":if(Lr)return Lr.call(e)==Lr.call(t)}return!1}(e,t,s,n,a,r,o);if(!(1&n)){var p=d&&Vr.call(e,"__wrapped__"),m=u&&Vr.call(t,"__wrapped__");if(p||m){var v=p?e.value():e,h=m?t.value():t;return o||(o=new La),r(v,h,n,a,o)}}return!!f&&(o||(o=new La),function(e,t,n,a,r,o){var i=1&n,l=Wa(e),s=l.length;if(s!=Wa(t).length&&!i)return!1;for(var c=s;c--;){var d=l[c];if(!(i?d in t:Fr.call(t,d)))return!1}var u=o.get(e),f=o.get(t);if(u&&f)return u==t&&f==e;var p=!0;o.set(e,t),o.set(t,e);for(var m=i;++c<s;){var v=e[d=l[c]],h=t[d];if(a)var g=i?a(h,v,d,t,e,o):a(v,h,d,e,t,o);if(!(void 0===g?v===h||r(v,h,n,a,o):g)){p=!1;break}m||(m="constructor"==d)}if(p&&!m){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(p=!1)}return o.delete(e),o.delete(t),p}(e,t,n,a,r,o))}function Gr(e,t,n,a,r){return e===t||(null==e||null==t||!Dt(e)&&!Dt(t)?e!=e&&t!=t:zr(e,t,n,a,Gr,r))}var Kr=function(e,t,n){for(var a=-1,r=Object(e),o=n(e),i=o.length;i--;){var l=o[++a];if(!1===t(r[l],l,r))break}return e};function Hr(e,t,n){(void 0!==n&&!An(e[t],n)||void 0===n&&!(t in e))&&En(e,t,n)}function Xr(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function qr(e,t,n,a,r,o,i){var l=Xr(e,n),s=Xr(t,n),c=i.get(s);if(c)Hr(e,n,c);else{var d,u=o?o(l,s,n+"",e,t,i):void 0,f=void 0===u;if(f){var p=Lt(s),m=!p&&Gn(s),v=!p&&!m&&Qn(s);u=s,p||m||v?Lt(l)?u=l:Dt(d=l)&&Tn(d)?u=vn(l):m?(f=!1,u=Va(s,!0)):v?(f=!1,u=gr(s,!0)):u=[]:Da(s)||Un(s)?(u=l,Un(l)?u=function(e){return Cn(e,sa(e))}(l):Gt(l)&&!Jt(l)||(u=br(s))):f=!1}f&&(i.set(s,u),r(u,s,a,o,i),i.delete(s)),Hr(e,n,u)}}function Wr(e,t,n,a,r){e!==t&&Kr(t,function(o,i){if(r||(r=new La),Gt(o))qr(e,t,i,n,Wr,a,r);else{var l=a?a(Xr(e,i),o,i+"",e,t,r):void 0;void 0===l&&(l=o),Hr(e,i,l)}},sa)}var Yr=Object.prototype.hasOwnProperty;function Jr(e,t){return Gr(e,t)}function Qr(e){return null==e}var Zr,eo=(Zr=function(e,t,n){Wr(e,t,n)},Rn(function(e,t){var n=-1,a=t.length,r=a>1?t[a-1]:void 0,o=a>2?t[2]:void 0;for(r=Zr.length>3&&"function"==typeof r?(a--,r):void 0,o&&function(e,t,n){if(!Gt(n))return!1;var a=typeof t;return!!("number"==a?Tn(n)&&kn(t,n.length):"string"==a&&t in n)&&An(n[t],e)}(t[0],t[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++n<a;){var i=t[n];i&&Zr(e,i,n,r)}return e}));function to(e,t,n){return null==e?e:function(e,t,n){if(!Gt(e))return e;for(var a=-1,r=(t=Ea(t,e)).length,o=r-1,i=e;null!=i&&++a<r;){var l=Aa(t[a]),s=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(a!=o){var c=i[l];void 0===(s=void 0)&&(s=Gt(c)?c:kn(t[a+1])?[]:{})}$n(i,l,s),i=i[l]}return e}(e,t,n)}const no=Symbol.for("constructDateFrom");function ao(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&no in e?e[no](t):e instanceof Date?new e.constructor(t):new Date(t)}function ro(e,t){return ao(e,e)}function oo(e,t,n){const a=ro(e);return isNaN(t)?ao(e,NaN):t?(a.setDate(a.getDate()+t),a):a}function io(e,t,n){const a=ro(e);if(isNaN(t))return ao(e,NaN);if(!t)return a;const r=a.getDate(),o=ao(e,a.getTime());o.setMonth(a.getMonth()+t+1,0);return r>=o.getDate()?o:(a.setFullYear(o.getFullYear(),o.getMonth(),r),a)}function lo(e,t,n){return ao(e,+ro(e)+t)}function so(e,t,n){return lo(e,36e5*t)}function co(e,t,n){const a=ro(e);return a.setTime(a.getTime()+6e4*t),a}function uo(e,t,n){return lo(e,1e3*t)}function fo(e,t,n){return oo(e,7*t)}function po(e,t,n){return io(e,12*t)}var mo=(0).constructor,vo=mo.isFinite;mo.isInteger;var ho=[].constructor.isArray;function go(e){return null!==e&&"object"==typeof e}function yo(e,t){return void 0===t&&(t=0),"string"==typeof e&&e.length>=t}function bo(e){return vo(e)}function _o(e){return ho(e)}function wo(e,t){return go(e)&&t in e}var xo=new(function(){function e(e){this.size=e,this.reset()}return e.prototype.reset=function(){this.oldestIndex=0,this.map={},this.cachedKeys=new Array(this.size)},e.prototype.get=function(e){return this.map[e]},e.prototype.set=function(e,t){this.map[e]=t;var n=this.cachedKeys[this.oldestIndex];void 0!==n&&delete this.map[n],this.cachedKeys[this.oldestIndex]=e,this.oldestIndex++,this.oldestIndex%=this.size},e}())(1e3);function So(e){var t=e.charAt(0),n=e.substr(-1);if("'\"`".includes(t)||"'\"`".includes(n)){if(e.length<2||t!==n)throw new SyntaxError('Mismatching string quotation: "'+e+'"');return e.substring(1,e.length-1)}if(e.includes("["))throw new SyntaxError('Missing ] in varName "'+e+'"');return"+"===t?e.substr(1):e}function ko(e,t,n){var a=t.trim();if(""===a)return e;if(a.startsWith(".")){if(!n)throw new SyntaxError('Unexpected . at the start of "'+t+'"');if(""===(a=a.substr(1).trim()))return e}else if(n)throw new SyntaxError('Missing . at the start of "'+t+'"');if(a.endsWith("."))throw new SyntaxError('Unexpected "." at the end of "'+t+'"');for(var r=0,o=a.split(".");r<o.length;r++){var i=o[r].trim();if(""===i)throw new SyntaxError('Empty prop name when parsing "'+t+'"');e.push(i)}return e}function Eo(e){if(!yo(e))throw new TypeError("Cannot parse path. Expected string. Got a "+typeof e);for(var t,n,a=0,r=!1,o=new Array(0),i=0;i<e.length&&-1!==(t=e.indexOf("[",i));i=a){if(-1===(a=e.indexOf("]",t)))throw new SyntaxError('Missing ] in varName "'+e+'"');if(0===(n=e.substring(t+1,a).trim()).length)throw new SyntaxError("Unexpected token ]");a++,ko(o,e.substring(i,t),r),o.push(So(n)),r=!0}return ko(o,e.substring(a),r)}function Ao(e,t,n){if(void 0===n&&(n={}),!go(n))throw new TypeError("get expects an object option. Got "+typeof n);var a=n.depth,r=void 0===a?10:a;if(!bo(r)||r<=0)throw new RangeError("Expected a positive number for depth. Got "+r);var o=Array.isArray(t)?t:Eo.cached(t),i=function(){return o.join(" > ")};if(o.length>r)throw new ReferenceError("The path cannot be deeper than "+r+' levels. Got "'+i()+'"');for(var l=e,s=0,c=o;s<c.length;s++){var d=c[s];if(!wo(l,d)){if(n.propsExist)throw new ReferenceError(d+' is not defined in the scope at path: "'+i()+'"');return}l=l[d]}return l}Eo.cached=function(e){var t=xo.get(e);return void 0===t&&(t=Eo(e),xo.set(e,t)),t};var Oo=function(){function e(e,t){var n=this;if(void 0===t&&(t={}),this.tokens=e,this.options=t,this.render=function(e){void 0===e&&(e={});var t=n.tokens.varNames.length;n.cacheParsedPaths();for(var a=new Array(t),r=0;r<t;r++)a[r]=Ao(e,n.toPathCache[r],n.options);return n.stringify(a)},this.renderFn=function(e,t){void 0===t&&(t={});var a=n.resolveVarNames(e,t);return n.stringify(a)},this.renderFnAsync=function(e,t){return void 0===t&&(t={}),Promise.all(n.resolveVarNames(e,t)).then(function(e){return n.stringify(e)})},!go(e)||!_o(e.strings)||!_o(e.varNames)||e.strings.length!==e.varNames.length+1)throw new TypeError("Invalid tokens object");if(!go(t))throw new TypeError("Options should be an object. Got a "+typeof t);t.validateVarNames&&this.cacheParsedPaths()}return e.prototype.cacheParsedPaths=function(){var e=this.tokens.varNames;if(void 0===this.toPathCache){this.toPathCache=new Array(e.length);for(var t=0;t<e.length;t++)this.toPathCache[t]=Eo.cached(e[t])}},e.prototype.resolveVarNames=function(e,t){void 0===t&&(t={});var n=this.tokens.varNames;if(!function(e){return"function"==typeof e}(e))throw new TypeError("Expected a resolver function. Got "+String(e));for(var a=n.length,r=new Array(a),o=0;o<a;o++)r[o]=e.call(null,n[o],t);return r},e.prototype.stringify=function(e){for(var t=this.tokens.strings,n=this.options.explicit,a=e.length,r="",o=0;o<a;o++){r+=t[o];var i=e[o];(n||null!=i)&&(r+=i)}return r+=t[a]},e}();function $o(e,t){void 0===t&&(t={});var n=function(e,t){if(void 0===t&&(t={}),!yo(e))throw new TypeError("The template parameter must be a string. Got a "+typeof e);if(!go(t))throw new TypeError("Options should be an object. Got a "+typeof t);var n=t.tags,a=void 0===n?["{{","}}"]:n,r=t.maxVarNameLength,o=void 0===r?1e3:r;if(!_o(a)||2!==a.length)throw TypeError("tags should be an array of two elements. Got "+String(a));var i=a[0],l=a[1];if(!yo(i,1)||!yo(l,1)||i===l)throw new TypeError('The open and close symbols should be two distinct non-empty strings. Got "'+i+'" and "'+l+'"');if(!bo(o)||o<=0)throw new Error("Expected a positive number for maxVarNameLength. Got "+o);for(var s,c,d=i.length,u=l.length,f=0,p=[],m=[],v=0;v<e.length&&-1!==(s=e.indexOf(i,v));){var h=s+d;if(-1===(f=e.substr(h,o+u).indexOf(l)))throw new SyntaxError('Missing "'+l+'" in the template for the "'+i+'" at position '+s+" within "+o+" characters");if(f+=h,0===(c=e.substring(h,f).trim()).length)throw new SyntaxError('Unexpected "'+l+'" tag found at position '+s);if(c.includes(i))throw new SyntaxError('Variable names cannot have "'+i+'". But at position '+s+'. Got "'+c+'"');m.push(c),f+=u,p.push(e.substring(v,s)),v=f}return p.push(e.substring(f)),{strings:p,varNames:m}}(e,t);return new Oo(n,t)}function Co(e,t,n){return $o(e,n).render(t)}function Io(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ro(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if("function"==typeof t){var n=function e(){var n=!1;try{n=this instanceof e}catch{}return n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}),n}var No,To={exports:{}};var jo=(No||(No=1,function(e){!function(t,n){e.exports=n()}(self,()=>(()=>{var e={86:(e,t)=>{t.keys=function(e,t={}){return!1!==t.symbols?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},125:()=>{},362:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TLDS=void 0,t.TLDS=["AAA","AARP","ABB","ABBOTT","ABBVIE","ABC","ABLE","ABOGADO","ABUDHABI","AC","ACADEMY","ACCENTURE","ACCOUNTANT","ACCOUNTANTS","ACO","ACTOR","AD","ADS","ADULT","AE","AEG","AERO","AETNA","AF","AFL","AFRICA","AG","AGAKHAN","AGENCY","AI","AIG","AIRBUS","AIRFORCE","AIRTEL","AKDN","AL","ALIBABA","ALIPAY","ALLFINANZ","ALLSTATE","ALLY","ALSACE","ALSTOM","AM","AMAZON","AMERICANEXPRESS","AMERICANFAMILY","AMEX","AMFAM","AMICA","AMSTERDAM","ANALYTICS","ANDROID","ANQUAN","ANZ","AO","AOL","APARTMENTS","APP","APPLE","AQ","AQUARELLE","AR","ARAB","ARAMCO","ARCHI","ARMY","ARPA","ART","ARTE","AS","ASDA","ASIA","ASSOCIATES","AT","ATHLETA","ATTORNEY","AU","AUCTION","AUDI","AUDIBLE","AUDIO","AUSPOST","AUTHOR","AUTO","AUTOS","AW","AWS","AX","AXA","AZ","AZURE","BA","BABY","BAIDU","BANAMEX","BAND","BANK","BAR","BARCELONA","BARCLAYCARD","BARCLAYS","BAREFOOT","BARGAINS","BASEBALL","BASKETBALL","BAUHAUS","BAYERN","BB","BBC","BBT","BBVA","BCG","BCN","BD","BE","BEATS","BEAUTY","BEER","BERLIN","BEST","BESTBUY","BET","BF","BG","BH","BHARTI","BI","BIBLE","BID","BIKE","BING","BINGO","BIO","BIZ","BJ","BLACK","BLACKFRIDAY","BLOCKBUSTER","BLOG","BLOOMBERG","BLUE","BM","BMS","BMW","BN","BNPPARIBAS","BO","BOATS","BOEHRINGER","BOFA","BOM","BOND","BOO","BOOK","BOOKING","BOSCH","BOSTIK","BOSTON","BOT","BOUTIQUE","BOX","BR","BRADESCO","BRIDGESTONE","BROADWAY","BROKER","BROTHER","BRUSSELS","BS","BT","BUILD","BUILDERS","BUSINESS","BUY","BUZZ","BV","BW","BY","BZ","BZH","CA","CAB","CAFE","CAL","CALL","CALVINKLEIN","CAM","CAMERA","CAMP","CANON","CAPETOWN","CAPITAL","CAPITALONE","CAR","CARAVAN","CARDS","CARE","CAREER","CAREERS","CARS","CASA","CASE","CASH","CASINO","CAT","CATERING","CATHOLIC","CBA","CBN","CBRE","CC","CD","CENTER","CEO","CERN","CF","CFA","CFD","CG","CH","CHANEL","CHANNEL","CHARITY","CHASE","CHAT","CHEAP","CHINTAI","CHRISTMAS","CHROME","CHURCH","CI","CIPRIANI","CIRCLE","CISCO","CITADEL","CITI","CITIC","CITY","CK","CL","CLAIMS","CLEANING","CLICK","CLINIC","CLINIQUE","CLOTHING","CLOUD","CLUB","CLUBMED","CM","CN","CO","COACH","CODES","COFFEE","COLLEGE","COLOGNE","COM","COMMBANK","COMMUNITY","COMPANY","COMPARE","COMPUTER","COMSEC","CONDOS","CONSTRUCTION","CONSULTING","CONTACT","CONTRACTORS","COOKING","COOL","COOP","CORSICA","COUNTRY","COUPON","COUPONS","COURSES","CPA","CR","CREDIT","CREDITCARD","CREDITUNION","CRICKET","CROWN","CRS","CRUISE","CRUISES","CU","CUISINELLA","CV","CW","CX","CY","CYMRU","CYOU","CZ","DAD","DANCE","DATA","DATE","DATING","DATSUN","DAY","DCLK","DDS","DE","DEAL","DEALER","DEALS","DEGREE","DELIVERY","DELL","DELOITTE","DELTA","DEMOCRAT","DENTAL","DENTIST","DESI","DESIGN","DEV","DHL","DIAMONDS","DIET","DIGITAL","DIRECT","DIRECTORY","DISCOUNT","DISCOVER","DISH","DIY","DJ","DK","DM","DNP","DO","DOCS","DOCTOR","DOG","DOMAINS","DOT","DOWNLOAD","DRIVE","DTV","DUBAI","DUNLOP","DUPONT","DURBAN","DVAG","DVR","DZ","EARTH","EAT","EC","ECO","EDEKA","EDU","EDUCATION","EE","EG","EMAIL","EMERCK","ENERGY","ENGINEER","ENGINEERING","ENTERPRISES","EPSON","EQUIPMENT","ER","ERICSSON","ERNI","ES","ESQ","ESTATE","ET","EU","EUROVISION","EUS","EVENTS","EXCHANGE","EXPERT","EXPOSED","EXPRESS","EXTRASPACE","FAGE","FAIL","FAIRWINDS","FAITH","FAMILY","FAN","FANS","FARM","FARMERS","FASHION","FAST","FEDEX","FEEDBACK","FERRARI","FERRERO","FI","FIDELITY","FIDO","FILM","FINAL","FINANCE","FINANCIAL","FIRE","FIRESTONE","FIRMDALE","FISH","FISHING","FIT","FITNESS","FJ","FK","FLICKR","FLIGHTS","FLIR","FLORIST","FLOWERS","FLY","FM","FO","FOO","FOOD","FOOTBALL","FORD","FOREX","FORSALE","FORUM","FOUNDATION","FOX","FR","FREE","FRESENIUS","FRL","FROGANS","FRONTIER","FTR","FUJITSU","FUN","FUND","FURNITURE","FUTBOL","FYI","GA","GAL","GALLERY","GALLO","GALLUP","GAME","GAMES","GAP","GARDEN","GAY","GB","GBIZ","GD","GDN","GE","GEA","GENT","GENTING","GEORGE","GF","GG","GGEE","GH","GI","GIFT","GIFTS","GIVES","GIVING","GL","GLASS","GLE","GLOBAL","GLOBO","GM","GMAIL","GMBH","GMO","GMX","GN","GODADDY","GOLD","GOLDPOINT","GOLF","GOO","GOODYEAR","GOOG","GOOGLE","GOP","GOT","GOV","GP","GQ","GR","GRAINGER","GRAPHICS","GRATIS","GREEN","GRIPE","GROCERY","GROUP","GS","GT","GU","GUCCI","GUGE","GUIDE","GUITARS","GURU","GW","GY","HAIR","HAMBURG","HANGOUT","HAUS","HBO","HDFC","HDFCBANK","HEALTH","HEALTHCARE","HELP","HELSINKI","HERE","HERMES","HIPHOP","HISAMITSU","HITACHI","HIV","HK","HKT","HM","HN","HOCKEY","HOLDINGS","HOLIDAY","HOMEDEPOT","HOMEGOODS","HOMES","HOMESENSE","HONDA","HORSE","HOSPITAL","HOST","HOSTING","HOT","HOTELS","HOTMAIL","HOUSE","HOW","HR","HSBC","HT","HU","HUGHES","HYATT","HYUNDAI","IBM","ICBC","ICE","ICU","ID","IE","IEEE","IFM","IKANO","IL","IM","IMAMAT","IMDB","IMMO","IMMOBILIEN","IN","INC","INDUSTRIES","INFINITI","INFO","ING","INK","INSTITUTE","INSURANCE","INSURE","INT","INTERNATIONAL","INTUIT","INVESTMENTS","IO","IPIRANGA","IQ","IR","IRISH","IS","ISMAILI","IST","ISTANBUL","IT","ITAU","ITV","JAGUAR","JAVA","JCB","JE","JEEP","JETZT","JEWELRY","JIO","JLL","JM","JMP","JNJ","JO","JOBS","JOBURG","JOT","JOY","JP","JPMORGAN","JPRS","JUEGOS","JUNIPER","KAUFEN","KDDI","KE","KERRYHOTELS","KERRYPROPERTIES","KFH","KG","KH","KI","KIA","KIDS","KIM","KINDLE","KITCHEN","KIWI","KM","KN","KOELN","KOMATSU","KOSHER","KP","KPMG","KPN","KR","KRD","KRED","KUOKGROUP","KW","KY","KYOTO","KZ","LA","LACAIXA","LAMBORGHINI","LAMER","LAND","LANDROVER","LANXESS","LASALLE","LAT","LATINO","LATROBE","LAW","LAWYER","LB","LC","LDS","LEASE","LECLERC","LEFRAK","LEGAL","LEGO","LEXUS","LGBT","LI","LIDL","LIFE","LIFEINSURANCE","LIFESTYLE","LIGHTING","LIKE","LILLY","LIMITED","LIMO","LINCOLN","LINK","LIVE","LIVING","LK","LLC","LLP","LOAN","LOANS","LOCKER","LOCUS","LOL","LONDON","LOTTE","LOTTO","LOVE","LPL","LPLFINANCIAL","LR","LS","LT","LTD","LTDA","LU","LUNDBECK","LUXE","LUXURY","LV","LY","MA","MADRID","MAIF","MAISON","MAKEUP","MAN","MANAGEMENT","MANGO","MAP","MARKET","MARKETING","MARKETS","MARRIOTT","MARSHALLS","MATTEL","MBA","MC","MCKINSEY","MD","ME","MED","MEDIA","MEET","MELBOURNE","MEME","MEMORIAL","MEN","MENU","MERCKMSD","MG","MH","MIAMI","MICROSOFT","MIL","MINI","MINT","MIT","MITSUBISHI","MK","ML","MLB","MLS","MM","MMA","MN","MO","MOBI","MOBILE","MODA","MOE","MOI","MOM","MONASH","MONEY","MONSTER","MORMON","MORTGAGE","MOSCOW","MOTO","MOTORCYCLES","MOV","MOVIE","MP","MQ","MR","MS","MSD","MT","MTN","MTR","MU","MUSEUM","MUSIC","MV","MW","MX","MY","MZ","NA","NAB","NAGOYA","NAME","NAVY","NBA","NC","NE","NEC","NET","NETBANK","NETFLIX","NETWORK","NEUSTAR","NEW","NEWS","NEXT","NEXTDIRECT","NEXUS","NF","NFL","NG","NGO","NHK","NI","NICO","NIKE","NIKON","NINJA","NISSAN","NISSAY","NL","NO","NOKIA","NORTON","NOW","NOWRUZ","NOWTV","NP","NR","NRA","NRW","NTT","NU","NYC","NZ","OBI","OBSERVER","OFFICE","OKINAWA","OLAYAN","OLAYANGROUP","OLLO","OM","OMEGA","ONE","ONG","ONL","ONLINE","OOO","OPEN","ORACLE","ORANGE","ORG","ORGANIC","ORIGINS","OSAKA","OTSUKA","OTT","OVH","PA","PAGE","PANASONIC","PARIS","PARS","PARTNERS","PARTS","PARTY","PAY","PCCW","PE","PET","PF","PFIZER","PG","PH","PHARMACY","PHD","PHILIPS","PHONE","PHOTO","PHOTOGRAPHY","PHOTOS","PHYSIO","PICS","PICTET","PICTURES","PID","PIN","PING","PINK","PIONEER","PIZZA","PK","PL","PLACE","PLAY","PLAYSTATION","PLUMBING","PLUS","PM","PN","PNC","POHL","POKER","POLITIE","PORN","POST","PR","PRAXI","PRESS","PRIME","PRO","PROD","PRODUCTIONS","PROF","PROGRESSIVE","PROMO","PROPERTIES","PROPERTY","PROTECTION","PRU","PRUDENTIAL","PS","PT","PUB","PW","PWC","PY","QA","QPON","QUEBEC","QUEST","RACING","RADIO","RE","READ","REALESTATE","REALTOR","REALTY","RECIPES","RED","REDSTONE","REDUMBRELLA","REHAB","REISE","REISEN","REIT","RELIANCE","REN","RENT","RENTALS","REPAIR","REPORT","REPUBLICAN","REST","RESTAURANT","REVIEW","REVIEWS","REXROTH","RICH","RICHARDLI","RICOH","RIL","RIO","RIP","RO","ROCKS","RODEO","ROGERS","ROOM","RS","RSVP","RU","RUGBY","RUHR","RUN","RW","RWE","RYUKYU","SA","SAARLAND","SAFE","SAFETY","SAKURA","SALE","SALON","SAMSCLUB","SAMSUNG","SANDVIK","SANDVIKCOROMANT","SANOFI","SAP","SARL","SAS","SAVE","SAXO","SB","SBI","SBS","SC","SCB","SCHAEFFLER","SCHMIDT","SCHOLARSHIPS","SCHOOL","SCHULE","SCHWARZ","SCIENCE","SCOT","SD","SE","SEARCH","SEAT","SECURE","SECURITY","SEEK","SELECT","SENER","SERVICES","SEVEN","SEW","SEX","SEXY","SFR","SG","SH","SHANGRILA","SHARP","SHELL","SHIA","SHIKSHA","SHOES","SHOP","SHOPPING","SHOUJI","SHOW","SI","SILK","SINA","SINGLES","SITE","SJ","SK","SKI","SKIN","SKY","SKYPE","SL","SLING","SM","SMART","SMILE","SN","SNCF","SO","SOCCER","SOCIAL","SOFTBANK","SOFTWARE","SOHU","SOLAR","SOLUTIONS","SONG","SONY","SOY","SPA","SPACE","SPORT","SPOT","SR","SRL","SS","ST","STADA","STAPLES","STAR","STATEBANK","STATEFARM","STC","STCGROUP","STOCKHOLM","STORAGE","STORE","STREAM","STUDIO","STUDY","STYLE","SU","SUCKS","SUPPLIES","SUPPLY","SUPPORT","SURF","SURGERY","SUZUKI","SV","SWATCH","SWISS","SX","SY","SYDNEY","SYSTEMS","SZ","TAB","TAIPEI","TALK","TAOBAO","TARGET","TATAMOTORS","TATAR","TATTOO","TAX","TAXI","TC","TCI","TD","TDK","TEAM","TECH","TECHNOLOGY","TEL","TEMASEK","TENNIS","TEVA","TF","TG","TH","THD","THEATER","THEATRE","TIAA","TICKETS","TIENDA","TIPS","TIRES","TIROL","TJ","TJMAXX","TJX","TK","TKMAXX","TL","TM","TMALL","TN","TO","TODAY","TOKYO","TOOLS","TOP","TORAY","TOSHIBA","TOTAL","TOURS","TOWN","TOYOTA","TOYS","TR","TRADE","TRADING","TRAINING","TRAVEL","TRAVELERS","TRAVELERSINSURANCE","TRUST","TRV","TT","TUBE","TUI","TUNES","TUSHU","TV","TVS","TW","TZ","UA","UBANK","UBS","UG","UK","UNICOM","UNIVERSITY","UNO","UOL","UPS","US","UY","UZ","VA","VACATIONS","VANA","VANGUARD","VC","VE","VEGAS","VENTURES","VERISIGN","VERSICHERUNG","VET","VG","VI","VIAJES","VIDEO","VIG","VIKING","VILLAS","VIN","VIP","VIRGIN","VISA","VISION","VIVA","VIVO","VLAANDEREN","VN","VODKA","VOLVO","VOTE","VOTING","VOTO","VOYAGE","VU","WALES","WALMART","WALTER","WANG","WANGGOU","WATCH","WATCHES","WEATHER","WEATHERCHANNEL","WEBCAM","WEBER","WEBSITE","WED","WEDDING","WEIBO","WEIR","WF","WHOSWHO","WIEN","WIKI","WILLIAMHILL","WIN","WINDOWS","WINE","WINNERS","WME","WOLTERSKLUWER","WOODSIDE","WORK","WORKS","WORLD","WOW","WS","WTC","WTF","XBOX","XEROX","XIHUAN","XIN","XN--11B4C3D","XN--1CK2E1B","XN--1QQW23A","XN--2SCRJ9C","XN--30RR7Y","XN--3BST00M","XN--3DS443G","XN--3E0B707E","XN--3HCRJ9C","XN--3PXU8K","XN--42C2D9A","XN--45BR5CYL","XN--45BRJ9C","XN--45Q11C","XN--4DBRK0CE","XN--4GBRIM","XN--54B7FTA0CC","XN--55QW42G","XN--55QX5D","XN--5SU34J936BGSG","XN--5TZM5G","XN--6FRZ82G","XN--6QQ986B3XL","XN--80ADXHKS","XN--80AO21A","XN--80AQECDR1A","XN--80ASEHDB","XN--80ASWG","XN--8Y0A063A","XN--90A3AC","XN--90AE","XN--90AIS","XN--9DBQ2A","XN--9ET52U","XN--9KRT00A","XN--B4W605FERD","XN--BCK1B9A5DRE4C","XN--C1AVG","XN--C2BR7G","XN--CCK2B3B","XN--CCKWCXETD","XN--CG4BKI","XN--CLCHC0EA0B2G2A9GCD","XN--CZR694B","XN--CZRS0T","XN--CZRU2D","XN--D1ACJ3B","XN--D1ALF","XN--E1A4C","XN--ECKVDTC9D","XN--EFVY88H","XN--FCT429K","XN--FHBEI","XN--FIQ228C5HS","XN--FIQ64B","XN--FIQS8S","XN--FIQZ9S","XN--FJQ720A","XN--FLW351E","XN--FPCRJ9C3D","XN--FZC2C9E2C","XN--FZYS8D69UVGM","XN--G2XX48C","XN--GCKR3F0F","XN--GECRJ9C","XN--GK3AT1E","XN--H2BREG3EVE","XN--H2BRJ9C","XN--H2BRJ9C8C","XN--HXT814E","XN--I1B6B1A6A2E","XN--IMR513N","XN--IO0A7I","XN--J1AEF","XN--J1AMH","XN--J6W193G","XN--JLQ480N2RG","XN--JVR189M","XN--KCRX77D1X4A","XN--KPRW13D","XN--KPRY57D","XN--KPUT3I","XN--L1ACC","XN--LGBBAT1AD8J","XN--MGB9AWBF","XN--MGBA3A3EJT","XN--MGBA3A4F16A","XN--MGBA7C0BBN0A","XN--MGBAAM7A8H","XN--MGBAB2BD","XN--MGBAH1A3HJKRD","XN--MGBAI9AZGQP6J","XN--MGBAYH7GPA","XN--MGBBH1A","XN--MGBBH1A71E","XN--MGBC0A9AZCG","XN--MGBCA7DZDO","XN--MGBCPQ6GPA1A","XN--MGBERP4A5D4AR","XN--MGBGU82A","XN--MGBI4ECEXP","XN--MGBPL2FH","XN--MGBT3DHD","XN--MGBTX2B","XN--MGBX4CD0AB","XN--MIX891F","XN--MK1BU44C","XN--MXTQ1M","XN--NGBC5AZD","XN--NGBE9E0A","XN--NGBRX","XN--NODE","XN--NQV7F","XN--NQV7FS00EMA","XN--NYQY26A","XN--O3CW4H","XN--OGBPF8FL","XN--OTU796D","XN--P1ACF","XN--P1AI","XN--PGBS0DH","XN--PSSY2U","XN--Q7CE6A","XN--Q9JYB4C","XN--QCKA1PMC","XN--QXA6A","XN--QXAM","XN--RHQV96G","XN--ROVU88B","XN--RVC1E0AM3E","XN--S9BRJ9C","XN--SES554G","XN--T60B56A","XN--TCKWE","XN--TIQ49XQYJ","XN--UNUP4Y","XN--VERMGENSBERATER-CTB","XN--VERMGENSBERATUNG-PWB","XN--VHQUV","XN--VUQ861B","XN--W4R85EL8FHU5DNRA","XN--W4RS40L","XN--WGBH1C","XN--WGBL6A","XN--XHQ521B","XN--XKC2AL3HYE2A","XN--XKC2DL3A5EE0H","XN--Y9A3AQ","XN--YFRO4I67O","XN--YGBI2AMMX","XN--ZFR164B","XXX","XYZ","YACHTS","YAHOO","YAMAXUN","YANDEX","YE","YODOBASHI","YOGA","YOKOHAMA","YOU","YOUTUBE","YT","YUN","ZA","ZAPPOS","ZARA","ZERO","ZIP","ZM","ZONE","ZUERICH","ZW"]},554:()=>{},679:(e,t)=>{const n={operators:["!","^","*","/","%","+","-","<","<=",">",">=","==","!=","&&","||","??"],operatorCharacters:["!","^","*","/","%","+","-","<","=",">","&","|","?"],operatorsOrder:[["^"],["*","/","%"],["+","-"],["<","<=",">",">="],["==","!="],["&&"],["||","??"]],operatorsPrefix:["!","n"],literals:{'"':'"',"`":"`","'":"'","[":"]"},numberRx:/^(?:[0-9]*(\.[0-9]*)?){1}$/,tokenRx:/^[\w\$\#\.\@\:\{\}]+$/,symbol:Symbol("formula"),settings:Symbol("settings")};t.Parser=class{constructor(e,t={}){if(!t[n.settings]&&t.constants)for(const e in t.constants){const n=t.constants[e];if(null!==n&&!["boolean","number","string"].includes(typeof n))throw new Error(`Formula constant ${e} contains invalid ${typeof n} value type`)}this.settings=t[n.settings]?t:Object.assign({[n.settings]:!0,constants:{},functions:{}},t),this.single=null,this._parts=null,this._parse(e)}_parse(e){let a=[],r="",o=0,i=!1;const l=e=>{if(o)throw new Error("Formula missing closing parenthesis");const l=a.length?a[a.length-1]:null;if(i||r||e){if(l&&"reference"===l.type&&")"===e)return l.type="function",l.value=this._subFormula(r,l.value),void(r="");if(")"===e){const e=new t.Parser(r,this.settings);a.push({type:"segment",value:e})}else if(i){if("]"===i)return a.push({type:"reference",value:r}),void(r="");a.push({type:"literal",value:r})}else if(n.operatorCharacters.includes(r))l&&"operator"===l.type&&n.operators.includes(l.value+r)?l.value+=r:a.push({type:"operator",value:r});else if(r.match(n.numberRx))a.push({type:"constant",value:parseFloat(r)});else if(void 0!==this.settings.constants[r])a.push({type:"constant",value:this.settings.constants[r]});else{if(!r.match(n.tokenRx))throw new Error(`Formula contains invalid token: ${r}`);a.push({type:"reference",value:r})}r=""}};for(const t of e)i?t===i?(l(),i=!1):r+=t:o?"("===t?(r+=t,++o):")"===t?(--o,o?r+=t:l(t)):r+=t:t in n.literals?i=n.literals[t]:"("===t?(l(),++o):n.operatorCharacters.includes(t)?(l(),r=t,l()):" "!==t?r+=t:l();l(),a=a.map((e,t)=>"operator"!==e.type||"-"!==e.value||t&&"operator"!==a[t-1].type?e:{type:"operator",value:"n"});let s=!1;for(const e of a){if("operator"===e.type){if(n.operatorsPrefix.includes(e.value))continue;if(!s)throw new Error("Formula contains an operator in invalid position");if(!n.operators.includes(e.value))throw new Error(`Formula contains an unknown operator ${e.value}`)}else if(s)throw new Error("Formula missing expected operator");s=!s}if(!s)throw new Error("Formula contains invalid trailing operator");1===a.length&&["reference","literal","constant"].includes(a[0].type)&&(this.single={type:"reference"===a[0].type?"reference":"value",value:a[0].value}),this._parts=a.map(e=>{if("operator"===e.type)return n.operatorsPrefix.includes(e.value)?e:e.value;if("reference"!==e.type)return e.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(e.value))throw new Error(`Formula contains invalid reference ${e.value}`);return this.settings.reference?this.settings.reference(e.value):n.reference(e.value)})}_subFormula(e,a){const r=this.settings.functions[a];if("function"!=typeof r)throw new Error(`Formula contains unknown function ${a}`);let o=[];if(e){let t="",r=0,i=!1;const l=()=>{if(!t)throw new Error(`Formula contains function ${a} with invalid arguments ${e}`);o.push(t),t=""};for(let a=0;a<e.length;++a){const o=e[a];i?(t+=o,o===i&&(i=!1)):o in n.literals&&!r?(t+=o,i=n.literals[o]):","!==o||r?(t+=o,"("===o?++r:")"===o&&--r):l()}l()}return o=o.map(e=>new t.Parser(e,this.settings)),function(e){const t=[];for(const n of o)t.push(n.evaluate(e));return r.call(e,...t)}}evaluate(e){const t=this._parts.slice();for(let a=t.length-2;a>=0;--a){const r=t[a];if(r&&"operator"===r.type){const o=t[a+1];t.splice(a+1,1);const i=n.evaluate(o,e);t[a]=n.single(r.value,i)}}return n.operatorsOrder.forEach(a=>{for(let r=1;r<t.length-1;)if(a.includes(t[r])){const a=t[r],o=n.evaluate(t[r-1],e),i=n.evaluate(t[r+1],e);t.splice(r,2);const l=n.calculate(a,o,i);t[r-1]=0===l?0:l}else r+=2}),n.evaluate(t[0],e)}},t.Parser.prototype[n.symbol]=!0,n.reference=function(e){return function(t){return t&&void 0!==t[e]?t[e]:null}},n.evaluate=function(e,t){return null===e?null:"function"==typeof e?e(t):e[n.symbol]?e.evaluate(t):e},n.single=function(e,t){if("!"===e)return!t;const n=-t;return 0===n?0:n},n.calculate=function(e,t,a){if("??"===e)return n.exists(t)?t:a;if("string"==typeof t||"string"==typeof a){if("+"===e)return(t=n.exists(t)?t:"")+(n.exists(a)?a:"")}else switch(e){case"^":return Math.pow(t,a);case"*":return t*a;case"/":return t/a;case"%":return t%a;case"+":return t+a;case"-":return t-a}switch(e){case"<":return t<a;case"<=":return t<=a;case">":return t>a;case">=":return t>=a;case"==":return t===a;case"!=":return t!==a;case"&&":return t&&a;case"||":return t||a}return null},n.exists=function(e){return null!=e}},680:(e,t,n)=>{const{assert:a}=n(3115),r=n(2115),o=n(9415),i=n(6162);e.exports=r.extend({type:"any",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,t){return a("function"==typeof e,"Method must be a function"),a(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:e,description:t}})},validate(e,t,{method:n}){try{return n(e,t)}catch(e){return t.error("any.custom",{error:e})}},args:["method","description"],multi:!0},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){a(o.isSchema(e)&&e._flags.id,"Schema must be a schema with an id");const t=this.clone();return t.$_terms.shared=t.$_terms.shared||[],t.$_terms.shared.push(e),t.$_mutateRegister(e),t}},warning:{method(e,t){return a(e&&"string"==typeof e,"Invalid warning code"),this.$_addRule({name:"warning",args:{code:e,local:t},warn:!0})},validate:(e,t,{code:n,local:a})=>t.error(n,a),args:["code","local"],multi:!0}},modifiers:{keep(e,t=!0){e.keep=t},message(e,t){e.message=i.compile(t)},warn(e,t=!0){e.warn=t}},manifest:{build(e,t){for(const n in t){const a=t[n];if(["examples","externals","metas","notes","tags"].includes(n))for(const t of a)e=e[n.slice(0,-1)](t);else{if("alterations"===n){const t={};for(const{target:e,adjuster:n}of a)t[e]=n;e=e.alter(t);continue}if("whens"!==n){if("shared"===n)for(const t of a)e=e.shared(t)}else for(const t of a){const{ref:n,is:a,not:r,then:o,otherwise:i,concat:l}=t;e=l?e.concat(l):n?e.when(n,{is:a,not:r,then:o,otherwise:i,switch:t.switch,break:t.break}):e.when(a,{then:o,otherwise:i,break:t.break})}}}return e}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}})},834:e=>{e.exports=function(e){return"function"==typeof(null==e?void 0:e.then)}},1100:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(2130),i=n(9415),l=n(3541),s=n(8013),c=n(2062),d=n(9017),u=n(8529),f=n(1532),p=n(125);let m;const v={types:{alternatives:n(4972),any:n(680),array:n(2591),boolean:n(6186),date:n(2588),function:n(4840),link:n(9556),number:n(4709),object:n(7487),string:n(9033),symbol:n(5008)},aliases:{alt:"alternatives",bool:"boolean",func:"function"},root:function(){const e={_types:new Set(Object.keys(v.types))};for(const t of e._types)e[t]=function(...e){return a(!e.length||["alternatives","link","object"].includes(t),"The",t,"type does not allow arguments"),v.generate(this,v.types[t],e)};for(const t of["allow","custom","disallow","equal","exist","forbidden","invalid","not","only","optional","options","prefs","preferences","required","strip","valid","when"])e[t]=function(...e){return this.any()[t](...e)};Object.assign(e,v.methods);for(const t in v.aliases){const n=v.aliases[t];e[t]=e[n]}return e.x=e.expression,p.setup&&p.setup(e),e}};v.methods={ValidationError:s.ValidationError,version:i.version,cache:o.provider,assert(e,t,...n){v.assert(e,t,!0,n)},attempt:(e,t,...n)=>v.assert(e,t,!1,n),build(e){return a("function"==typeof d.build,"Manifest functionality disabled"),d.build(this,e)},checkPreferences(e){i.checkPreferences(e)},compile(e,t){return l.compile(this,e,t)},defaults(e){a("function"==typeof e,"modifier must be a function");const t=Object.assign({},this);for(const n of t._types){const r=e(t[n]());a(i.isSchema(r),"modifier must return a valid schema object"),t[n]=function(...e){return v.generate(this,r,e)}}return t},expression:(...e)=>new f(...e),extend(...e){i.verifyFlat(e,"extend"),m=m||n(1688),a(e.length,"You need to provide at least one extension"),this.assert(e,m.extensions);const t=Object.assign({},this);t._types=new Set(t._types);for(let n of e){"function"==typeof n&&(n=n(t)),this.assert(n,m.extension);const e=v.expandExtension(n,t);for(const n of e){a(void 0===t[n.type]||t._types.has(n.type),"Cannot override name",n.type);const e=n.base||this.any(),r=c.type(e,n);t._types.add(n.type),t[n.type]=function(...e){return v.generate(this,r,e)}}}return t},isError:s.ValidationError.isError,isExpression:f.isTemplate,isRef:u.isRef,isSchema:i.isSchema,in:(...e)=>u.in(...e),override:i.symbols.override,ref:(...e)=>u.create(...e),types(){const e={};for(const t of this._types)e[t]=this[t]();for(const t in v.aliases)e[t]=this[t]();return e}},v.assert=function(e,t,n,a){const o=a[0]instanceof Error||"string"==typeof a[0]?a[0]:null,l=null!==o?a[1]:a[0],c=t.validate(e,i.preferences({errors:{stack:!0}},l||{}));let d=c.error;if(!d)return c.value;if(o instanceof Error)throw o;const u=n&&"function"==typeof d.annotate?d.annotate():d.message;throw d instanceof s.ValidationError==0&&(d=r(d)),d.message=o?`${o} ${u}`:u,d},v.generate=function(e,t,n){return a(e,"Must be invoked on a Joi instance."),t.$_root=e,t._definition.args&&n.length?t._definition.args(t,...n):t},v.expandExtension=function(e,t){if("string"==typeof e.type)return[e];const n=[];for(const a of t._types)if(e.type.test(a)){const r=Object.assign({},e);r.type=a,r.base=t[a](),n.push(r)}return n},e.exports=v.root()},1190:(e,t,n)=>{const{assert:a,clone:r,ignore:o,reach:i}=n(3115),l=n(9415),s=n(8013),c=n(4957),d={result:Symbol("result")};t.entry=function(e,t,n){let r=l.defaults;n&&(a(void 0===n.warnings,"Cannot override warnings preference in synchronous validation"),a(void 0===n.artifacts,"Cannot override artifacts preference in synchronous validation"),r=l.preferences(l.defaults,n));const o=d.entry(e,t,r);a(!o.mainstay.externals.length,"Schema with external rules must use validateAsync()");const i={value:o.value};return o.error&&(i.error=o.error),o.mainstay.warnings.length&&(i.warning=s.details(o.mainstay.warnings)),o.mainstay.debug&&(i.debug=o.mainstay.debug),o.mainstay.artifacts&&(i.artifacts=o.mainstay.artifacts),i},t.entryAsync=async function(e,t,n){let a=l.defaults;n&&(a=l.preferences(l.defaults,n));const r=d.entry(e,t,a),o=r.mainstay;if(r.error)throw o.debug&&(r.error.debug=o.debug),r.error;if(o.externals.length){let t=r.value;const c=[];for(const r of o.externals){const u=r.state.path,f="link"===r.schema.type?o.links.get(r.schema):null;let p,m,v=t;const h=u.length?[t]:[],g=u.length?i(e,u):e;if(u.length){p=u[u.length-1];let e=t;for(const t of u.slice(0,-1))e=e[t],h.unshift(e);m=h[0],v=m[p]}try{const e=(e,t)=>(f||r.schema).$_createError(e,v,t,r.state,a),i=await r.method(v,{schema:r.schema,linked:f,state:r.state,prefs:n,original:g,error:e,errorsArray:d.errorsArray,warn:(e,t)=>o.warnings.push((f||r.schema).$_createError(e,v,t,r.state,a)),message:(e,t)=>(f||r.schema).$_createError("external",v,t,r.state,a,{messages:e})});if(void 0===i||i===v)continue;if(i instanceof s.Report){if(o.tracer.log(r.schema,r.state,"rule","external","error"),c.push(i),a.abortEarly)break;continue}if(Array.isArray(i)&&i[l.symbols.errors]){if(o.tracer.log(r.schema,r.state,"rule","external","error"),c.push(...i),a.abortEarly)break;continue}m?(o.tracer.value(r.state,"rule",v,i,"external"),m[p]=i):(o.tracer.value(r.state,"rule",t,i,"external"),t=i)}catch(e){throw a.errors.label&&(e.message+=` (${r.label})`),e}}if(r.value=t,c.length)throw r.error=s.process(c,e,a),o.debug&&(r.error.debug=o.debug),r.error}if(!a.warnings&&!a.debug&&!a.artifacts)return r.value;const c={value:r.value};return o.warnings.length&&(c.warning=s.details(o.warnings)),o.debug&&(c.debug=o.debug),o.artifacts&&(c.artifacts=o.artifacts),c},t.standard=function(e,n){return n.isAsync()?t.entryAsync(e,n):t.entry(e,n)},d.Mainstay=class{constructor(e,t,n){this.externals=[],this.warnings=[],this.tracer=e,this.debug=t,this.links=n,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()})}restore(){const e=this._snapshots.pop();this.externals=e.externals,this.warnings=e.warnings}commit(){this._snapshots.pop()}},d.entry=function(e,n,a){const{tracer:r,cleanup:o}=d.tracer(n,a),i=a.debug?[]:null,l=n._ids._schemaChain?new Map:null,u=new d.Mainstay(r,i,l),f=n._ids._schemaChain?[{schema:n}]:null,p=new c([],[],{mainstay:u,schemas:f}),m=t.validate(e,n,p,a);o&&n.$_root.untrace();const v=s.process(m.errors,e,a);return{value:m.value,error:v,mainstay:u}},d.tracer=function(e,t){return e.$_root._tracer?{tracer:e.$_root._tracer._register(e)}:t.debug?(a(e.$_root.trace,"Debug mode not supported"),{tracer:e.$_root.trace()._register(e),cleanup:!0}):{tracer:d.ignore}},t.validate=function(e,t,n,a,r={}){if(t.$_terms.whens&&(t=t._generate(e,n,a).schema),t._preferences&&(a=d.prefs(t,a)),t._cache&&a.cache){const a=t._cache.get(e);if(n.mainstay.tracer.debug(n,"validate","cached",!!a),a)return a}const o=(r,o,i)=>t.$_createError(r,e,o,i||n,a),i={original:e,prefs:a,schema:t,state:n,error:o,errorsArray:d.errorsArray,warn:(e,t,a)=>n.mainstay.warnings.push(o(e,t,a)),message:(r,o)=>t.$_createError("custom",e,o,n,a,{messages:r})};n.mainstay.tracer.entry(t,n);const s=t._definition;if(s.prepare&&void 0!==e&&a.convert){const t=s.prepare(e,i);if(t){if(n.mainstay.tracer.value(n,"prepare",e,t.value),t.errors)return d.finalize(t.value,[].concat(t.errors),i);e=t.value}}if(s.coerce&&void 0!==e&&a.convert&&(!s.coerce.from||s.coerce.from.includes(typeof e))){const t=s.coerce.method(e,i);if(t){if(n.mainstay.tracer.value(n,"coerced",e,t.value),t.errors)return d.finalize(t.value,[].concat(t.errors),i);e=t.value}}const c=t._flags.empty;c&&c.$_match(d.trim(e,t),n.nest(c),l.defaults)&&(n.mainstay.tracer.value(n,"empty",e,void 0),e=void 0);const u=r.presence||t._flags.presence||(t._flags._endedSwitch?null:a.presence);if(void 0===e){if("forbidden"===u)return d.finalize(e,null,i);if("required"===u)return d.finalize(e,[t.$_createError("any.required",e,null,n,a)],i);if("optional"===u){if(t._flags.default!==l.symbols.deepDefault)return d.finalize(e,null,i);n.mainstay.tracer.value(n,"default",e,{}),e={}}}else if("forbidden"===u)return d.finalize(e,[t.$_createError("any.unknown",e,null,n,a)],i);const f=[];if(t._valids){const r=t._valids.get(e,n,a,t._flags.insensitive);if(r)return a.convert&&(n.mainstay.tracer.value(n,"valids",e,r.value),e=r.value),n.mainstay.tracer.filter(t,n,"valid",r),d.finalize(e,null,i);if(t._flags.only){const r=t.$_createError("any.only",e,{valids:t._valids.values({display:!0})},n,a);if(a.abortEarly)return d.finalize(e,[r],i);f.push(r)}}if(t._invalids){const r=t._invalids.get(e,n,a,t._flags.insensitive);if(r){n.mainstay.tracer.filter(t,n,"invalid",r);const o=t.$_createError("any.invalid",e,{invalids:t._invalids.values({display:!0})},n,a);if(a.abortEarly)return d.finalize(e,[o],i);f.push(o)}}if(s.validate){const t=s.validate(e,i);if(t&&(n.mainstay.tracer.value(n,"base",e,t.value),e=t.value,t.errors)){if(!Array.isArray(t.errors))return f.push(t.errors),d.finalize(e,f,i);if(t.errors.length)return f.push(...t.errors),d.finalize(e,f,i)}}return t._rules.length?d.rules(e,f,i):d.finalize(e,f,i)},d.rules=function(e,t,n){const{schema:a,state:r,prefs:o}=n;for(const i of a._rules){const s=a._definition.rules[i.method];if(s.convert&&o.convert){r.mainstay.tracer.log(a,r,"rule",i.name,"full");continue}let c,u=i.args;if(i._resolve.length){u=Object.assign({},u);for(const t of i._resolve){const n=s.argsByName.get(t),i=u[t].resolve(e,r,o),d=n.normalize?n.normalize(i):i,f=l.validateArg(d,null,n);if(f){c=a.$_createError("any.ref",i,{arg:t,ref:u[t],reason:f},r,o);break}u[t]=d}}c=c||s.validate(e,n,u,i);const f=d.rule(c,i);if(f.errors){if(r.mainstay.tracer.log(a,r,"rule",i.name,"error"),i.warn){r.mainstay.warnings.push(...f.errors);continue}if(o.abortEarly)return d.finalize(e,f.errors,n);t.push(...f.errors)}else r.mainstay.tracer.log(a,r,"rule",i.name,"pass"),r.mainstay.tracer.value(r,"rule",e,f.value,i.name),e=f.value}return d.finalize(e,t,n)},d.rule=function(e,t){return e instanceof s.Report?(d.error(e,t),{errors:[e],value:null}):Array.isArray(e)&&e[l.symbols.errors]?(e.forEach(e=>d.error(e,t)),{errors:e,value:null}):{errors:null,value:e}},d.error=function(e,t){return t.message&&e._setTemplate(t.message),e},d.finalize=function(e,t,n){t=t||[];const{schema:r,state:o,prefs:i}=n;if(t.length){const a=d.default("failover",void 0,t,n);void 0!==a&&(o.mainstay.tracer.value(o,"failover",e,a),e=a,t=[])}if(t.length&&r._flags.error)if("function"==typeof r._flags.error){t=r._flags.error(t),Array.isArray(t)||(t=[t]);for(const e of t)a(e instanceof Error||e instanceof s.Report,"error() must return an Error object")}else t=[r._flags.error];if(void 0===e){const a=d.default("default",e,t,n);o.mainstay.tracer.value(o,"default",e,a),e=a}if(r._flags.cast&&void 0!==e){const t=r._definition.cast[r._flags.cast];if(t.from(e)){const a=t.to(e,n);o.mainstay.tracer.value(o,"cast",e,a,r._flags.cast),e=a}}if(r.$_terms.externals&&i.externals&&!1!==i._externals)for(const{method:e}of r.$_terms.externals)o.mainstay.externals.push({method:e,schema:r,state:o,label:s.label(r._flags,o,i)});const l={value:e,errors:t.length?t:null};return r._flags.result&&(l.value="strip"===r._flags.result?void 0:n.original,o.mainstay.tracer.value(o,r._flags.result,e,l.value),o.shadow(e,r._flags.result)),r._cache&&!1!==i.cache&&!r._refs.length&&r._cache.set(n.original,l),void 0===e||l.errors||void 0===r._flags.artifact||(o.mainstay.artifacts=o.mainstay.artifacts||new Map,o.mainstay.artifacts.has(r._flags.artifact)||o.mainstay.artifacts.set(r._flags.artifact,[]),o.mainstay.artifacts.get(r._flags.artifact).push(o.path)),l},d.prefs=function(e,t){const n=t===l.defaults;return n&&e._preferences[l.symbols.prefs]?e._preferences[l.symbols.prefs]:(t=l.preferences(t,e._preferences),n&&(e._preferences[l.symbols.prefs]=t),t)},d.default=function(e,t,n,a){const{schema:o,state:i,prefs:s}=a,c=o._flags[e];if(s.noDefaults||void 0===c)return t;if(i.mainstay.tracer.log(o,i,"rule",e,"full"),!c)return c;if("function"==typeof c){const l=c.length?[r(i.ancestors[0]),a]:[];try{return c(...l)}catch(t){return void n.push(o.$_createError(`any.${e}`,null,{error:t},i,s))}}return"object"!=typeof c?c:c[l.symbols.literal]?c.literal:l.isResolvable(c)?c.resolve(t,i,s):r(c)},d.trim=function(e,t){if("string"!=typeof e)return e;const n=t.$_getRule("trim");return n&&n.args.enabled?e.trim():e},d.ignore={active:!1,debug:o,entry:o,filter:o,log:o,resolve:o,value:o},d.errorsArray=function(){const e=[];return e[l.symbols.errors]=!0,e}},1528:(e,t,n)=>{const a=n(8253),r={};e.exports=function(e,t,n){if(!1===t||null==t)return e;"string"==typeof(n=n||{})&&(n={separator:n});const o=Array.isArray(t);a(!o||!n.separator,"Separator option is not valid for array-based chain");const i=o?t:t.split(n.separator||".");let l=e;for(let e=0;e<i.length;++e){let o=i[e];const s=n.iterables&&r.iterables(l);if(Array.isArray(l)||"set"===s){const e=Number(o);Number.isInteger(e)&&(o=e<0?l.length+e:e)}if(!l||"function"==typeof l&&!1===n.functions||!s&&void 0===l[o]){a(!n.strict||e+1===i.length,"Missing segment",o,"in reach path ",t),a("object"==typeof l||!0===n.functions||"function"!=typeof l,"Invalid segment",o,"in reach path ",t),l=n.default;break}l=s?"set"===s?[...l][o]:l.get(o):l[o]}return l},r.iterables=function(e){return e instanceof Set?"set":e instanceof Map?"map":void 0}},1532:(e,t,n)=>{const{assert:a,clone:r,escapeHtml:o}=n(3115),i=n(679),l=n(9415),s=n(8013),c=n(8529),d={symbol:Symbol("template"),opens:new Array(1e3).join("\0"),closes:new Array(1e3).join(""),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};e.exports=d.Template=class{constructor(e,t){if(a("string"==typeof e,"Template source must be a string"),a(!e.includes("\0")&&!e.includes(""),"Template source cannot contain reserved control characters"),this.source=e,this.rendered=e,this._template=null,t){const{functions:e,...n}=t;this._settings=Object.keys(n).length?r(n):void 0,this._functions=e,this._functions&&(a(Object.keys(this._functions).every(e=>"string"==typeof e),"Functions keys must be strings"),a(Object.values(this._functions).every(e=>"function"==typeof e),"Functions values must be functions"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes("{"))return;const e=d.encode(this.source),t=d.split(e);let n=!1;const a=[],r=t.shift();r&&a.push(r);for(const e of t){const t="{"!==e[0],r=t?"}":"}}",o=e.indexOf(r);if(-1===o||"{"===e[1]){a.push(`{${d.decode(e)}`);continue}let i=e.slice(t?0:1,o);const l=":"===i[0];l&&(i=i.slice(1));const s=this._ref(d.decode(i),{raw:t,wrapped:l});a.push(s),"string"!=typeof s&&(n=!0);const c=e.slice(o+r.length);c&&a.push(d.decode(c))}n?this._template=a:this.rendered=a.join("")}static date(e,t){return d.dateFormat[t.dateFormat].call(e)}describe(e={}){if(!this._settings&&e.compact)return this.source;const t={template:this.source};return this._settings&&(t.options=this._settings),this._functions&&(t.functions=this._functions),t}static build(e){return new d.Template(e.template,e.options||e.functions?{...e.options,functions:e.functions}:void 0)}isDynamic(){return!!this._template}static isTemplate(e){return!!e&&!!e[l.symbols.template]}refs(){if(!this._template)return;const e=[];for(const t of this._template)"string"!=typeof t&&e.push(...t.refs);return e}resolve(e,t,n,a){return this._template&&1===this._template.length?this._part(this._template[0],e,t,n,a,{}):this.render(e,t,n,a)}_part(e,...t){return e.ref?e.ref.resolve(...t):e.formula.evaluate(t)}render(e,t,n,a,r={}){if(!this.isDynamic())return this.rendered;const i=[];for(const l of this._template)if("string"==typeof l)i.push(l);else{const s=this._part(l,e,t,n,a,r),c=d.stringify(s,e,t,n,a,r);if(void 0!==c){const e=l.raw||!1===(r.errors&&r.errors.escapeHtml)?c:o(c);i.push(d.wrap(e,l.wrapped&&n.errors.wrap.label))}}return i.join("")}_ref(e,{raw:t,wrapped:n}){const a=[],r=e=>{const t=c.create(e,this._settings);return a.push(t),e=>{const n=t.resolve(...e);return void 0!==n?n:null}};try{const t=this._functions?{...d.functions,...this._functions}:d.functions;var o=new i.Parser(e,{reference:r,functions:t,constants:d.constants})}catch(t){throw t.message=`Invalid template variable "${e}" fails due to: ${t.message}`,t}if(o.single){if("reference"===o.single.type){const e=a[0];return{ref:e,raw:t,refs:a,wrapped:n||"local"===e.type&&"label"===e.key}}return d.stringify(o.single.value)}return{formula:o,raw:t,refs:a}}toString(){return this.source}},d.Template.prototype[l.symbols.template]=!0,d.Template.prototype.isImmutable=!0,d.encode=function(e){return e.replace(/\\(\{+)/g,(e,t)=>d.opens.slice(0,t.length)).replace(/\\(\}+)/g,(e,t)=>d.closes.slice(0,t.length))},d.decode=function(e){return e.replace(/\u0000/g,"{").replace(/\u0001/g,"}")},d.split=function(e){const t=[];let n="";for(let a=0;a<e.length;++a){const r=e[a];if("{"===r){let r="";for(;a+1<e.length&&"{"===e[a+1];)r+="{",++a;t.push(n),n=r}else n+=r}return t.push(n),t},d.wrap=function(e,t){return t?1===t.length?`${t}${e}${t}`:`${t[0]}${e}${t[1]}`:e},d.stringify=function(e,t,n,a,r,o={}){const i=typeof e,l=a&&a.errors&&a.errors.wrap||{};let s=!1;if(c.isRef(e)&&e.render&&(s=e.in,e=e.resolve(t,n,a,r,{in:e.in,...o})),null===e)return"null";if("string"===i)return d.wrap(e,o.arrayItems&&l.string);if("number"===i||"function"===i||"symbol"===i)return e.toString();if("object"!==i)return JSON.stringify(e);if(e instanceof Date)return d.Template.date(e,a);if(e instanceof Map){const t=[];for(const[n,a]of e.entries())t.push(`${n.toString()} -> ${a.toString()}`);e=t}if(!Array.isArray(e))return e.toString();const u=[];for(const i of e)u.push(d.stringify(i,t,n,a,r,{arrayItems:!0,...o}));return d.wrap(u.join(", "),!s&&l.array)},d.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},d.functions={if:(e,t,n)=>e?t:n,length:e=>"string"==typeof e?e.length:e&&"object"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:null,msg(e){const[t,n,a,r,o]=this,i=o.messages;if(!i)return"";const l=s.template(t,i[0],e,n,a)||s.template(t,i[1],e,n,a);return l?l.render(t,n,a,r,o):""},number:e=>"number"==typeof e?e:"string"==typeof e?parseFloat(e):"boolean"==typeof e?e?1:0:e instanceof Date?e.getTime():null}},1626:(e,t,n)=>{const a=n(1528);e.exports=function(e,t,n){return t.replace(/{([^{}]+)}/g,(t,r)=>{const o=a(e,r,n);return null!=o?o:""})}},1688:(e,t,n)=>{const a=n(1100),r={};r.wrap=a.string().min(1).max(2).allow(!1),t.preferences=a.object({allowUnknown:a.boolean(),abortEarly:a.boolean(),artifacts:a.boolean(),cache:a.boolean(),context:a.object(),convert:a.boolean(),dateFormat:a.valid("date","iso","string","time","utc"),debug:a.boolean(),errors:{escapeHtml:a.boolean(),label:a.valid("path","key",!1),language:[a.string(),a.object().ref()],render:a.boolean(),stack:a.boolean(),wrap:{label:r.wrap,array:r.wrap,string:r.wrap}},externals:a.boolean(),messages:a.object(),noDefaults:a.boolean(),nonEnumerables:a.boolean(),presence:a.valid("required","optional","forbidden"),skipFunctions:a.boolean(),stripUnknown:a.object({arrays:a.boolean(),objects:a.boolean()}).or("arrays","objects").allow(!0,!1),warnings:a.boolean()}).strict(),r.nameRx=/^[a-zA-Z0-9]\w*$/,r.rule=a.object({alias:a.array().items(a.string().pattern(r.nameRx)).single(),args:a.array().items(a.string(),a.object({name:a.string().pattern(r.nameRx).required(),ref:a.boolean(),assert:a.alternatives([a.function(),a.object().schema()]).conditional("ref",{is:!0,then:a.required()}),normalize:a.function(),message:a.string().when("assert",{is:a.function(),then:a.required()})})),convert:a.boolean(),manifest:a.boolean(),method:a.function().allow(!1),multi:a.boolean(),validate:a.function()}),t.extension=a.object({type:a.alternatives([a.string(),a.object().regex()]).required(),args:a.function(),cast:a.object().pattern(r.nameRx,a.object({from:a.function().maxArity(1).required(),to:a.function().minArity(1).maxArity(2).required()})),base:a.object().schema().when("type",{is:a.object().regex(),then:a.forbidden()}),coerce:[a.function().maxArity(3),a.object({method:a.function().maxArity(3).required(),from:a.array().items(a.string()).single()})],flags:a.object().pattern(r.nameRx,a.object({setter:a.string(),default:a.any()})),manifest:{build:a.function().arity(2)},messages:[a.object(),a.string()],modifiers:a.object().pattern(r.nameRx,a.function().minArity(1).maxArity(2)),overrides:a.object().pattern(r.nameRx,a.function()),prepare:a.function().maxArity(3),rebuild:a.function().arity(1),rules:a.object().pattern(r.nameRx,r.rule),terms:a.object().pattern(r.nameRx,a.object({init:a.array().allow(null).required(),manifest:a.object().pattern(/.+/,[a.valid("schema","single"),a.object({mapped:a.object({from:a.string().required(),to:a.string().required()}).required()})])})),validate:a.function().maxArity(3)}).strict(),t.extensions=a.array().items(a.object(),a.function().arity(1)).strict(),r.desc={buffer:a.object({buffer:a.string()}),func:a.object({function:a.function().required(),options:{literal:!0}}),override:a.object({override:!0}),ref:a.object({ref:a.object({type:a.valid("value","global","local"),path:a.array().required(),separator:a.string().length(1).allow(!1),ancestor:a.number().min(0).integer().allow("root"),map:a.array().items(a.array().length(2)).min(1),adjust:a.function(),iterables:a.boolean(),in:a.boolean(),render:a.boolean()}).required()}),regex:a.object({regex:a.string().min(3)}),special:a.object({special:a.valid("deep").required()}),template:a.object({template:a.string().required(),options:a.object()}),value:a.object({value:a.alternatives([a.object(),a.array()]).required()})},r.desc.entity=a.alternatives([a.array().items(a.link("...")),a.boolean(),a.function(),a.number(),a.string(),r.desc.buffer,r.desc.func,r.desc.ref,r.desc.regex,r.desc.special,r.desc.template,r.desc.value,a.link("/")]),r.desc.values=a.array().items(null,a.boolean(),a.function(),a.number().allow(1/0,-1/0),a.string().allow(""),a.symbol(),r.desc.buffer,r.desc.func,r.desc.override,r.desc.ref,r.desc.regex,r.desc.template,r.desc.value),r.desc.messages=a.object().pattern(/.+/,[a.string(),r.desc.template,a.object().pattern(/.+/,[a.string(),r.desc.template])]),t.description=a.object({type:a.string().required(),flags:a.object({cast:a.string(),default:a.any(),description:a.string(),empty:a.link("/"),failover:r.desc.entity,id:a.string(),label:a.string(),only:!0,presence:["optional","required","forbidden"],result:["raw","strip"],strip:a.boolean(),unit:a.string()}).unknown(),preferences:{allowUnknown:a.boolean(),abortEarly:a.boolean(),artifacts:a.boolean(),cache:a.boolean(),convert:a.boolean(),dateFormat:["date","iso","string","time","utc"],errors:{escapeHtml:a.boolean(),label:["path","key"],language:[a.string(),r.desc.ref],wrap:{label:r.wrap,array:r.wrap}},externals:a.boolean(),messages:r.desc.messages,noDefaults:a.boolean(),nonEnumerables:a.boolean(),presence:["required","optional","forbidden"],skipFunctions:a.boolean(),stripUnknown:a.object({arrays:a.boolean(),objects:a.boolean()}).or("arrays","objects").allow(!0,!1),warnings:a.boolean()},allow:r.desc.values,invalid:r.desc.values,rules:a.array().min(1).items({name:a.string().required(),args:a.object().min(1),keep:a.boolean(),message:[a.string(),r.desc.messages],warn:a.boolean()}),keys:a.object().pattern(/.*/,a.link("/")),link:r.desc.ref}).pattern(/^[a-z]\w*$/,a.any())},1803:e=>{e.exports=class extends Error{constructor(e,t){var n,a,r;super(e||"Unknown error"),n=this,r="AssertError",(a=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(a="name"))in n?Object.defineProperty(n,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[a]=r,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}}},2062:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(9415),i=n(6162),l={};t.type=function(e,t){const n=Object.getPrototypeOf(e),s=r(n),c=e._assign(Object.create(s)),d=Object.assign({},t);delete d.base,s._definition=d;const u=n._definition||{};d.messages=i.merge(u.messages,d.messages),d.properties=Object.assign({},u.properties,d.properties),c.type=d.type,d.flags=Object.assign({},u.flags,d.flags);const f=Object.assign({},u.terms);if(d.terms)for(const e in d.terms){const t=d.terms[e];a(void 0===c.$_terms[e],"Invalid term override for",d.type,e),c.$_terms[e]=t.init,f[e]=t}d.terms=f,d.args||(d.args=u.args),d.prepare=l.prepare(d.prepare,u.prepare),d.coerce&&("function"==typeof d.coerce&&(d.coerce={method:d.coerce}),d.coerce.from&&!Array.isArray(d.coerce.from)&&(d.coerce={method:d.coerce.method,from:[].concat(d.coerce.from)})),d.coerce=l.coerce(d.coerce,u.coerce),d.validate=l.validate(d.validate,u.validate);const p=Object.assign({},u.rules);if(d.rules)for(const e in d.rules){const t=d.rules[e];a("object"==typeof t,"Invalid rule definition for",d.type,e);let n=t.method;if(void 0===n&&(n=function(){return this.$_addRule(e)}),n&&(a(!s[e],"Rule conflict in",d.type,e),s[e]=n),a(!p[e],"Rule conflict in",d.type,e),p[e]=t,t.alias){const e=[].concat(t.alias);for(const n of e)s[n]=t.method}t.args&&(t.argsByName=new Map,t.args=t.args.map(e=>("string"==typeof e&&(e={name:e}),a(!t.argsByName.has(e.name),"Duplicated argument name",e.name),o.isSchema(e.assert)&&(e.assert=e.assert.strict().label(e.name)),t.argsByName.set(e.name,e),e)))}d.rules=p;const m=Object.assign({},u.modifiers);if(d.modifiers)for(const e in d.modifiers){a(!s[e],"Rule conflict in",d.type,e);const t=d.modifiers[e];a("function"==typeof t,"Invalid modifier definition for",d.type,e);const n=function(t){return this.rule({[e]:t})};s[e]=n,m[e]=t}if(d.modifiers=m,d.overrides){s._super=n,c.$_super={};for(const e in d.overrides)a(n[e],"Cannot override missing",e),d.overrides[e][o.symbols.parent]=n[e],c.$_super[e]=n[e].bind(c);Object.assign(s,d.overrides)}d.cast=Object.assign({},u.cast,d.cast);const v=Object.assign({},u.manifest,d.manifest);return v.build=l.build(d.manifest&&d.manifest.build,u.manifest&&u.manifest.build),d.manifest=v,d.rebuild=l.rebuild(d.rebuild,u.rebuild),c},l.build=function(e,t){return e&&t?function(n,a){return t(e(n,a),a)}:e||t},l.coerce=function(e,t){return e&&t?{from:e.from&&t.from?[...new Set([...e.from,...t.from])]:null,method(n,a){let r;if((!t.from||t.from.includes(typeof n))&&(r=t.method(n,a),r)){if(r.errors||void 0===r.value)return r;n=r.value}if(!e.from||e.from.includes(typeof n)){const t=e.method(n,a);if(t)return t}return r}}:e||t},l.prepare=function(e,t){return e&&t?function(n,a){const r=e(n,a);if(r){if(r.errors||void 0===r.value)return r;n=r.value}return t(n,a)||r}:e||t},l.rebuild=function(e,t){return e&&t?function(n){t(n),e(n)}:e||t},l.validate=function(e,t){return e&&t?function(n,a){const r=t(n,a);if(r){if(r.errors&&(!Array.isArray(r.errors)||r.errors.length))return r;n=r.value}return e(n,a)||r}:e||t}},2115:(e,t,n)=>{const{assert:a,clone:r,deepEqual:o,merge:i}=n(3115),l=n(2130),s=n(9415),c=n(3541),d=n(8013),u=n(2062),f=n(9017),p=n(6162),m=n(5844),v=n(8529),h=n(125),g=n(1190),y=n(6220),b={Base:class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new m.Ids,this._preferences=null,this._refs=new v.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return a("function"==typeof f.describe,"Manifest functionality disabled"),f.describe(this)}allow(...e){return s.verifyFlat(e,"allow"),this._values(e,"_valids")}alter(e){a(e&&"object"==typeof e&&!Array.isArray(e),"Invalid targets argument"),a(!this._inRuleset(),"Cannot set alterations inside a ruleset");const t=this.clone();t.$_terms.alterations=t.$_terms.alterations||[];for(const n in e){const r=e[n];a("function"==typeof r,"Alteration adjuster for",n,"must be a function"),t.$_terms.alterations.push({target:n,adjuster:r})}return t.$_temp.ruleset=!1,t}artifact(e){return a(void 0!==e,"Artifact cannot be undefined"),a(!this._cache,"Cannot set an artifact with a rule cache"),this.$_setFlag("artifact",e)}cast(e){return a(!1===e||"string"==typeof e,"Invalid to value"),a(!1===e||this._definition.cast[e],"Type",this.type,"does not support casting to",e),this.$_setFlag("cast",!1===e?void 0:e)}default(e,t){return this._default("default",e,t)}description(e){return a(e&&"string"==typeof e,"Description must be a non-empty string"),this.$_setFlag("description",e)}empty(e){const t=this.clone();return void 0!==e&&(e=t.$_compile(e,{override:!1})),t.$_setFlag("empty",e,{clone:!1})}error(e){return a(e,"Missing error"),a(e instanceof Error||"function"==typeof e,"Must provide a valid Error object or a function"),this.$_setFlag("error",e)}example(e,t={}){return a(void 0!==e,"Missing example"),s.assertOptions(t,["override"]),this._inner("examples",e,{single:!0,override:t.override})}external(e,t){return"object"==typeof e&&(a(!t,"Cannot combine options with description"),t=e.description,e=e.method),a("function"==typeof e,"Method must be a function"),a(void 0===t||t&&"string"==typeof t,"Description must be a non-empty string"),this._inner("externals",{method:e,description:t},{single:!0})}failover(e,t){return this._default("failover",e,t)}forbidden(){return this.presence("forbidden")}id(e){return e?(a("string"==typeof e,"id must be a non-empty string"),a(/^[^\.]+$/.test(e),"id cannot contain period character"),this.$_setFlag("id",e)):this.$_setFlag("id",void 0)}invalid(...e){return this._values(e,"_invalids")}label(e){return a(e&&"string"==typeof e,"Label name must be a non-empty string"),this.$_setFlag("label",e)}meta(e){return a(void 0!==e,"Meta cannot be undefined"),this._inner("metas",e,{single:!0})}note(...e){a(e.length,"Missing notes");for(const t of e)a(t&&"string"==typeof t,"Notes must be non-empty strings");return this._inner("notes",e)}only(e=!0){return a("boolean"==typeof e,"Invalid mode:",e),this.$_setFlag("only",e)}optional(){return this.presence("optional")}prefs(e){a(e,"Missing preferences"),a(void 0===e.context,"Cannot override context"),a(void 0===e.externals,"Cannot override externals"),a(void 0===e.warnings,"Cannot override warnings"),a(void 0===e.debug,"Cannot override debug"),s.checkPreferences(e);const t=this.clone();return t._preferences=s.preferences(t._preferences,e),t}presence(e){return a(["optional","required","forbidden"].includes(e),"Unknown presence mode",e),this.$_setFlag("presence",e)}raw(e=!0){return this.$_setFlag("result",e?"raw":void 0)}result(e){return a(["raw","strip"].includes(e),"Unknown result mode",e),this.$_setFlag("result",e)}required(){return this.presence("required")}strict(e){const t=this.clone(),n=void 0!==e&&!e;return t._preferences=s.preferences(t._preferences,{convert:n}),t}strip(e=!0){return this.$_setFlag("result",e?"strip":void 0)}tag(...e){a(e.length,"Missing tags");for(const t of e)a(t&&"string"==typeof t,"Tags must be non-empty strings");return this._inner("tags",e)}unit(e){return a(e&&"string"==typeof e,"Unit name must be a non-empty string"),this.$_setFlag("unit",e)}valid(...e){s.verifyFlat(e,"valid");const t=this.allow(...e);return t.$_setFlag("only",!!t._valids,{clone:!1}),t}when(e,t){const n=this.clone();n.$_terms.whens||(n.$_terms.whens=[]);const r=c.when(n,e,t);if(!["any","link"].includes(n.type)){const e=r.is?[r]:r.switch;for(const t of e)a(!t.then||"any"===t.then.type||t.then.type===n.type,"Cannot combine",n.type,"with",t.then&&t.then.type),a(!t.otherwise||"any"===t.otherwise.type||t.otherwise.type===n.type,"Cannot combine",n.type,"with",t.otherwise&&t.otherwise.type)}return n.$_terms.whens.push(r),n.$_mutateRebuild()}cache(e){a(!this._inRuleset(),"Cannot set caching inside a ruleset"),a(!this._cache,"Cannot override schema cache"),a(void 0===this._flags.artifact,"Cannot cache a rule with an artifact");const t=this.clone();return t._cache=e||l.provider.provision(),t.$_temp.ruleset=!1,t}clone(){const e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){a(s.isSchema(e),"Invalid schema object"),a("any"===this.type||"any"===e.type||e.type===this.type,"Cannot merge type",this.type,"with another type:",e.type),a(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),a(!e._inRuleset(),"Cannot concatenate a schema with open ruleset");let t=this.clone();if("any"===this.type&&"any"!==e.type){const n=e.clone();for(const e of Object.keys(t))"type"!==e&&(n[e]=t[e]);t=n}t._ids.concat(e._ids),t._refs.register(e,v.toSibling),t._preferences=t._preferences?s.preferences(t._preferences,e._preferences):e._preferences,t._valids=y.merge(t._valids,e._valids,e._invalids),t._invalids=y.merge(t._invalids,e._invalids,e._valids);for(const n of e._singleRules.keys())t._singleRules.has(n)&&(t._rules=t._rules.filter(e=>e.keep||e.name!==n),t._singleRules.delete(n));for(const n of e._rules)e._definition.rules[n.method].multi||t._singleRules.set(n.name,n),t._rules.push(n);if(t._flags.empty&&e._flags.empty){t._flags.empty=t._flags.empty.concat(e._flags.empty);const n=Object.assign({},e._flags);delete n.empty,i(t._flags,n)}else if(e._flags.empty){t._flags.empty=e._flags.empty;const n=Object.assign({},e._flags);delete n.empty,i(t._flags,n)}else i(t._flags,e._flags);for(const n in e.$_terms){const a=e.$_terms[n];a?t.$_terms[n]?t.$_terms[n]=t.$_terms[n].concat(a):t.$_terms[n]=a.slice():t.$_terms[n]||(t.$_terms[n]=a)}return this.$_root._tracer&&this.$_root._tracer._combine(t,[this,e]),t.$_mutateRebuild()}extend(e){return a(!e.base,"Cannot extend type with another base"),u.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split("."),this._ids.reach(e)}fork(e,t){a(!this._inRuleset(),"Cannot fork inside a ruleset");let n=this;for(let a of[].concat(e))a=Array.isArray(a)?a:a.split("."),n=n._ids.fork(a,t,n);return n.$_temp.ruleset=!1,n}isAsync(){var e;if(Boolean(null===(e=this.$_terms.externals)||void 0===e?void 0:e.length))return!0;if(this.$_terms.whens)for(const e of this.$_terms.whens){var t,n;if(null!==(t=e.then)&&void 0!==t&&t.isAsync())return!0;if(null!==(n=e.otherwise)&&void 0!==n&&n.isAsync())return!0;if(e.switch)for(const t of e.switch){var a,r;if(null!==(a=t.then)&&void 0!==a&&a.isAsync())return!0;if(null!==(r=t.otherwise)&&void 0!==r&&r.isAsync())return!0}}return!1}rule(e){const t=this._definition;s.assertOptions(e,Object.keys(t.modifiers)),a(!1!==this.$_temp.ruleset,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");const n=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;a(n>=0&&n<this._rules.length,"Cannot apply rules to empty ruleset");const o=this.clone();for(let i=n;i<o._rules.length;++i){const n=o._rules[i],l=r(n);for(const r in e)t.modifiers[r](l,e[r]),a(l.name===n.name,"Cannot change rule name");o._rules[i]=l,o._singleRules.get(l.name)===n&&o._singleRules.set(l.name,l)}return o.$_temp.ruleset=!1,o.$_mutateRebuild()}get ruleset(){a(!this._inRuleset(),"Cannot start a new ruleset without closing the previous one");const e=this.clone();return e.$_temp.ruleset=e._rules.length,e}get $(){return this.ruleset}tailor(e){e=[].concat(e),a(!this._inRuleset(),"Cannot tailor inside a ruleset");let t=this;if(this.$_terms.alterations)for(const{target:n,adjuster:r}of this.$_terms.alterations)e.includes(n)&&(t=r(t),a(s.isSchema(t),"Alteration adjuster for",n,"failed to return a schema object"));return t=t.$_modify({each:t=>t.tailor(e),ref:!1}),t.$_temp.ruleset=!1,t.$_mutateRebuild()}tracer(){return h.location?h.location(this):this}validate(e,t){return g.entry(e,this,t)}validateAsync(e,t){return g.entryAsync(e,this,t)}$_addRule(e){"string"==typeof e&&(e={name:e}),a(e&&"object"==typeof e,"Invalid options"),a(e.name&&"string"==typeof e.name,"Invalid rule name");for(const t in e)a("_"!==t[0],"Cannot set private rule properties");const t=Object.assign({},e);t._resolve=[],t.method=t.method||t.name;const n=this._definition.rules[t.method],r=t.args;a(n,"Unknown rule",t.method);const o=this.clone();if(r){a(1===Object.keys(r).length||Object.keys(r).length===this._definition.rules[t.name].args.length,"Invalid rule definition for",this.type,t.name);for(const e in r){let i=r[e];if(n.argsByName){const l=n.argsByName.get(e);if(l.ref&&s.isResolvable(i))t._resolve.push(e),o.$_mutateRegister(i);else if(l.normalize&&(i=l.normalize(i),r[e]=i),l.assert){const t=s.validateArg(i,e,l);a(!t,t,"or reference")}}void 0!==i?r[e]=i:delete r[e]}}return n.multi||(o._ruleRemove(t.name,{clone:!1}),o._singleRules.set(t.name,t)),!1===o.$_temp.ruleset&&(o.$_temp.ruleset=null),n.priority?o._rules.unshift(t):o._rules.push(t),o}$_compile(e,t){return c.schema(this.$_root,e,t)}$_createError(e,t,n,a,r,o={}){const i=!1!==o.flags?this._flags:{},l=o.messages?p.merge(this._definition.messages,o.messages):this._definition.messages;return new d.Report(e,t,n,i,l,a,r)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split("."),this._ids.labels(e)}$_match(e,t,n,a){(n=Object.assign({},n)).abortEarly=!0,n._externals=!1,t.snapshot();const r=!g.validate(e,this,t,n,a).errors;return t.restore(),r}$_modify(e){return s.assertOptions(e,["each","once","ref","schema"]),m.schema(this,e)||this}$_mutateRebuild(){return a(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset(),this.$_modify({each:(e,{source:t,name:n,path:a,key:r})=>{const o=this._definition[t][n]&&this._definition[t][n].register;!1!==o&&this.$_mutateRegister(e,{family:o,key:r})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(e,{family:t,key:n}={}){this._refs.register(e,t),this._ids.register(e,{key:n})}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,t,n={}){a("_"===e[0]||!this._inRuleset(),"Cannot set flag inside a ruleset");const r=this._definition.flags[e]||{};if(o(t,r.default)&&(t=void 0),o(t,this._flags[e]))return this;const i=!1!==n.clone?this.clone():this;return void 0!==t?(i._flags[e]=t,i.$_mutateRegister(t)):delete i._flags[e],"_"!==e[0]&&(i.$_temp.ruleset=!1),i}$_parent(e,...t){return this[e][s.symbols.parent].call(this,...t)}$_validate(e,t,n){return g.validate(e,this,t,n)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=r(this._singleRules,{shallow:!0}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(const t in this.$_terms)e.$_terms[t]=this.$_terms[t]?this.$_terms[t].slice():null;e.$_super={};for(const t in this.$_super)e.$_super[t]=this._super[t].bind(e);return e}_bare(){const e=this.clone();e._reset();const t=e._definition.terms;for(const n in t){const a=t[n];e.$_terms[n]=a.init}return e.$_mutateRebuild()}_default(e,t,n={}){return s.assertOptions(n,"literal"),a(void 0!==t,"Missing",e,"value"),a("function"==typeof t||!n.literal,"Only function value supports literal option"),"function"==typeof t&&n.literal&&(t={[s.symbols.literal]:!0,literal:t}),this.$_setFlag(e,t)}_generate(e,t,n){if(!this.$_terms.whens)return{schema:this};const a=[],r=[];for(let o=0;o<this.$_terms.whens.length;++o){const i=this.$_terms.whens[o];if(i.concat){a.push(i.concat),r.push(`${o}.concat`);continue}const l=i.ref?i.ref.resolve(e,t,n):e,s=i.is?[i]:i.switch,c=r.length;for(let c=0;c<s.length;++c){const{is:d,then:u,otherwise:f}=s[c],p=`${o}${i.switch?"."+c:""}`;if(d.$_match(l,t.nest(d,`${p}.is`),n)){if(u){const o=t.localize([...t.path,`${p}.then`],t.ancestors,t.schemas),{schema:i,id:l}=u._generate(e,o,n);a.push(i),r.push(`${p}.then${l?`(${l})`:""}`);break}}else if(f){const o=t.localize([...t.path,`${p}.otherwise`],t.ancestors,t.schemas),{schema:i,id:l}=f._generate(e,o,n);a.push(i),r.push(`${p}.otherwise${l?`(${l})`:""}`);break}}if(i.break&&r.length>c)break}const o=r.join(", ");if(t.mainstay.tracer.debug(t,"rule","when",o),!o)return{schema:this};if(!t.mainstay.tracer.active&&this.$_temp.whens[o])return{schema:this.$_temp.whens[o],id:o};let i=this;this._definition.generate&&(i=this._definition.generate(this,e,t,n));for(const e of a)i=i.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(i,[this,...a]),this.$_temp.whens[o]=i,{schema:i,id:o}}_inner(e,t,n={}){a(!this._inRuleset(),`Cannot set ${e} inside a ruleset`);const r=this.clone();return r.$_terms[e]&&!n.override||(r.$_terms[e]=[]),n.single?r.$_terms[e].push(t):r.$_terms[e].push(...t),r.$_temp.ruleset=!1,r}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(e,t={}){if(!this._singleRules.has(e))return this;const n=!1!==t.clone?this.clone():this;n._singleRules.delete(e);const a=[];for(let t=0;t<n._rules.length;++t){const r=n._rules[t];r.name!==e||r.keep?a.push(r):n._inRuleset()&&t<n.$_temp.ruleset&&--n.$_temp.ruleset}return n._rules=a,n}_values(e,t){s.verifyFlat(e,t.slice(1,-1));const n=this.clone(),r=e[0]===s.symbols.override;if(r&&(e=e.slice(1)),!n[t]&&e.length?n[t]=new y:r&&(n[t]=e.length?new y:null,n.$_mutateRebuild()),!n[t])return n;r&&n[t].override();for(const r of e){a(void 0!==r,"Cannot call allow/valid/invalid with undefined"),a(r!==s.symbols.override,"Override must be the first value");const e="_invalids"===t?"_valids":"_invalids";n[e]&&(n[e].remove(r),n[e].length||(a("_valids"===t||!n._flags.only,"Setting invalid value",r,"leaves schema rejecting all values due to previous valid rule"),n[e]=null)),n[t].add(r,n._refs)}return n}get"~standard"(){const e=e=>{let t;return t=d.ValidationError.isError(e)?e.details.map(({message:e,path:t})=>({message:e,path:t})):[{message:e.message}],{issues:t}},t=e=>({value:e});return{version:1,vendor:"joi",validate:n=>{const a=g.standard(n,this);return a instanceof Promise?a.then(t,e):a.error?e(a.error):t(a.value)}}}}};b.Base.prototype[s.symbols.any]={version:s.version,compile:c.compile,root:"$_root"},b.Base.prototype.isImmutable=!0,b.Base.prototype.deny=b.Base.prototype.invalid,b.Base.prototype.disallow=b.Base.prototype.invalid,b.Base.prototype.equal=b.Base.prototype.valid,b.Base.prototype.exist=b.Base.prototype.required,b.Base.prototype.not=b.Base.prototype.invalid,b.Base.prototype.options=b.Base.prototype.prefs,b.Base.prototype.preferences=b.Base.prototype.prefs,e.exports=new b.Base},2130:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(9415),i={max:1e3,supported:new Set(["undefined","boolean","number","string"])};t.provider={provision:e=>new i.Cache(e)},i.Cache=class{constructor(e={}){o.assertOptions(e,["max"]),a(void 0===e.max||e.max&&e.max>0&&isFinite(e.max),"Invalid max cache size"),this._max=e.max||i.max,this._map=new Map,this._list=new i.List}get length(){return this._map.size}set(e,t){if(null!==e&&!i.supported.has(typeof e))return;let n=this._map.get(e);if(n)return n.value=t,void this._list.first(n);n=this._list.unshift({key:e,value:t}),this._map.set(e,n),this._compact()}get(e){const t=this._map.get(e);if(t)return this._list.first(t),r(t.value)}_compact(){if(this._map.size>this._max){const e=this._list.pop();this._map.delete(e.key)}}},i.List=class{constructor(){this.tail=null,this.head=null}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e))}pop(){return this._remove(this.tail)}_remove(e){const{next:t,prev:n}=e;return t.prev=n,n&&(n.next=t),e===this.tail&&(this.tail=t),e.prev=null,e.next=null,e}}},2588:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(1532),l={isDate:function(e){return e instanceof Date}};e.exports=r.extend({type:"date",coerce:{from:["number","string"],method:(e,{schema:t})=>({value:l.parse(e,t._flags.format)||e})},validate(e,{schema:t,error:n,prefs:a}){if(e instanceof Date&&!isNaN(e.getTime()))return;const r=t._flags.format;return a.convert&&r&&"string"==typeof e?{value:e,errors:n("date.format",{format:r})}:{value:e,errors:n("date.base")}},rules:{compare:{method:!1,validate(e,t,{date:n},{name:a,operator:r,args:i}){const l="now"===n?Date.now():n.getTime();return o.compare(e.getTime(),l,r)?e:t.error("date."+a,{limit:i.date,value:e})},args:[{name:"date",ref:!0,normalize:e=>"now"===e?e:l.parse(e),assert:e=>null!==e,message:"must have a valid date format"}]},format:{method(e){return a(["iso","javascript","unix"].includes(e),"Unknown date format",e),this.$_setFlag("format",e)}},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{date:e},operator:">"})}},iso:{method(){return this.format("iso")}},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{date:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{date:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{date:e},operator:">="})}},timestamp:{method(e="javascript"){return a(["javascript","unix"].includes(e),'"type" must be one of "javascript, unix"'),this.format(e)}}},cast:{number:{from:l.isDate,to:(e,t)=>e.getTime()},string:{from:l.isDate,to:(e,{prefs:t})=>i.date(e,t)}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}}),l.parse=function(e,t){if(e instanceof Date)return e;if("string"!=typeof e&&(isNaN(e)||!isFinite(e)))return null;if(/^\s*$/.test(e))return null;if("iso"===t)return o.isIsoDate(e)?l.date(e.toString()):null;const n=e;if("string"==typeof e&&/^[+-]?\d+(\.\d+)?$/.test(e)&&(e=parseFloat(e)),t){if("javascript"===t)return l.date(1*e);if("unix"===t)return l.date(1e3*e);if("string"==typeof n)return null}return l.date(e)},l.date=function(e){const t=new Date(e);return isNaN(t.getTime())?null:t}},2591:(e,t,n)=>{const{assert:a,deepEqual:r,reach:o}=n(3115),i=n(680),l=n(9415),s=n(3541),c={};e.exports=i.extend({type:"array",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:"schema"},ordered:{init:[],manifest:"schema"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:"object",method(e,{schema:t,state:n,prefs:a}){if(!Array.isArray(e))return;const r=t.$_getRule("sort");return r?c.sort(t,e,r.args.options,n,a):void 0}},validate(e,{schema:t,error:n}){if(!Array.isArray(e)){if(t._flags.single){const t=[e];return t[l.symbols.arraySingle]=!0,{value:t}}return{errors:n("array.base")}}if(t.$_getRule("items")||t.$_terms.externals)return{value:e.slice()}},rules:{has:{method(e){e=this.$_compile(e,{appendPath:!0});const t=this.$_addRule({name:"has",args:{schema:e}});return t.$_mutateRegister(e),t},validate(e,{state:t,prefs:n,error:a},{schema:r}){const o=[e,...t.ancestors];for(let a=0;a<e.length;++a){const i=t.localize([...t.path,a],o,r);if(r.$_match(e[a],i,n))return e}const i=r._flags.label;return i?a("array.hasKnown",{patternLabel:i}):a("array.hasUnknown",null)},multi:!0},items:{method(...e){l.verifyFlat(e,"items");const t=this.$_addRule("items");for(let n=0;n<e.length;++n){const a=l.tryWithPath(()=>this.$_compile(e[n]),n,{append:!0});t.$_terms.items.push(a)}return t.$_mutateRebuild()},validate(e,{schema:t,error:n,state:a,prefs:r,errorsArray:o}){const i=t.$_terms._requireds.slice(),s=t.$_terms.ordered.slice(),d=[...t.$_terms._inclusions,...i],u=!e[l.symbols.arraySingle];delete e[l.symbols.arraySingle];const f=o();let p=e.length;for(let o=0;o<p;++o){const l=e[o];let m=!1,v=!1;const h=u?o:new Number(o),g=[...a.path,h];if(!t._flags.sparse&&void 0===l){if(f.push(n("array.sparse",{key:h,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly)return f;s.shift();continue}const y=[e,...a.ancestors];for(const e of t.$_terms._exclusions)if(e.$_match(l,a.localize(g,y,e),r,{presence:"ignore"})){if(f.push(n("array.excludes",{pos:o,value:l},a.localize(g))),r.abortEarly)return f;m=!0,s.shift();break}if(m)continue;if(t.$_terms.ordered.length){if(s.length){const i=s.shift(),d=i.$_validate(l,a.localize(g,y,i),r);if(d.errors){if(f.push(...d.errors),r.abortEarly)return f}else if("strip"===i._flags.result)c.fastSplice(e,o),--o,--p;else{if(!t._flags.sparse&&void 0===d.value){if(f.push(n("array.sparse",{key:h,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly)return f;continue}e[o]=d.value}continue}if(!t.$_terms.items.length){if(f.push(n("array.orderedLength",{pos:o,limit:t.$_terms.ordered.length})),r.abortEarly)return f;break}}const b=[];let _=i.length;for(let s=0;s<_;++s){const d=a.localize(g,y,i[s]);d.snapshot();const u=i[s].$_validate(l,d,r);if(b[s]=u,!u.errors){if(d.commit(),e[o]=u.value,v=!0,c.fastSplice(i,s),--s,--_,!t._flags.sparse&&void 0===u.value&&(f.push(n("array.sparse",{key:h,path:g,pos:o,value:void 0},a.localize(g))),r.abortEarly))return f;break}d.restore()}if(v)continue;const w=r.stripUnknown&&!!r.stripUnknown.arrays||!1;_=d.length;for(const s of d){let d;const u=i.indexOf(s);if(-1!==u)d=b[u];else{const i=a.localize(g,y,s);if(i.snapshot(),d=s.$_validate(l,i,r),!d.errors){i.commit(),"strip"===s._flags.result?(c.fastSplice(e,o),--o,--p):t._flags.sparse||void 0!==d.value?e[o]=d.value:(f.push(n("array.sparse",{key:h,path:g,pos:o,value:void 0},a.localize(g))),m=!0),v=!0;break}i.restore()}if(1===_){if(w){c.fastSplice(e,o),--o,--p,v=!0;break}if(f.push(...d.errors),r.abortEarly)return f;m=!0;break}}if(!m&&(t.$_terms._inclusions.length||t.$_terms._requireds.length)&&!v){if(w){c.fastSplice(e,o),--o,--p;continue}if(f.push(n("array.includes",{pos:o,value:l},a.localize(g))),r.abortEarly)return f}}return i.length&&c.fillMissedErrors(t,f,i,e,a,r),s.length&&(c.fillOrderedErrors(t,f,s,e,a,r),f.length||c.fillDefault(s,e,a,r)),f.length?f:e},priority:!0,manifest:!1},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate:(e,t,{limit:n},{name:a,operator:r,args:o})=>l.compare(e.length,n,r)?e:t.error("array."+a,{limit:o.limit,value:e}),args:[{name:"limit",ref:!0,assert:l.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},ordered:{method(...e){l.verifyFlat(e,"ordered");const t=this.$_addRule("items");for(let n=0;n<e.length;++n){const a=l.tryWithPath(()=>this.$_compile(e[n]),n,{append:!0});c.validateSingle(a,t),t.$_mutateRegister(a),t.$_terms.ordered.push(a)}return t.$_mutateRebuild()}},single:{method(e){const t=void 0===e||!!e;return a(!t||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",t)}},sort:{method(e={}){l.assertOptions(e,["by","order"]);const t={order:e.order||"ascending"};return e.by&&(t.by=s.ref(e.by,{ancestor:0}),a(!t.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:t}})},validate(e,{error:t,state:n,prefs:a,schema:r},{options:o}){const{value:i,errors:l}=c.sort(r,e,o,n,a);if(l)return l;for(let n=0;n<e.length;++n)if(e[n]!==i[n])return t("array.sort",{order:o.order,by:o.by?o.by.key:"value"});return e},convert:!0},sparse:{method(e){const t=void 0===e||!!e;return this._flags.sparse===t?this:(t?this.clone():this.$_addRule("items")).$_setFlag("sparse",t,{clone:!1})}},unique:{method(e,t={}){a(!e||"function"==typeof e||"string"==typeof e,"comparator must be a function or a string"),l.assertOptions(t,["ignoreUndefined","separator"]);const n={name:"unique",args:{options:t,comparator:e}};if(e)if("string"==typeof e){const a=l.default(t.separator,".");n.path=a?e.split(a):[e]}else n.comparator=e;return this.$_addRule(n)},validate(e,{state:t,error:n,schema:i},{comparator:l,options:s},{comparator:c,path:d}){const u={string:Object.create(null),number:Object.create(null),undefined:Object.create(null),boolean:Object.create(null),bigint:Object.create(null),object:new Map,function:new Map,custom:new Map},f=c||r,p=s.ignoreUndefined;for(let r=0;r<e.length;++r){const i=d?o(e[r],d):e[r],s=c?u.custom:u[typeof i];if(a(s,"Failed to find unique map container for type",typeof i),s instanceof Map){const a=s.entries();let o;for(;!(o=a.next()).done;)if(f(o.value[0],i)){const a=t.localize([...t.path,r],[e,...t.ancestors]),i={pos:r,value:e[r],dupePos:o.value[1],dupeValue:e[o.value[1]]};return d&&(i.path=l),n("array.unique",i,a)}s.set(i,r)}else{if((!p||void 0!==i)&&void 0!==s[i]){const a={pos:r,value:e[r],dupePos:s[i],dupeValue:e[s[i]]};return d&&(a.path=l),n("array.unique",a,t.localize([...t.path,r],[e,...t.ancestors]))}s[i]=r}}return e},args:["comparator","options"],multi:!0}},overrides:{isAsync(){var e;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;for(const e of this.$_terms.items)if(e.isAsync())return!0;for(const e of this.$_terms.ordered)if(e.isAsync())return!0;return!1}},cast:{set:{from:Array.isArray,to:(e,t)=>new Set(e)}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(const t of e.$_terms.items)c.validateSingle(t,e),"required"===t._flags.presence?e.$_terms._requireds.push(t):"forbidden"===t._flags.presence?e.$_terms._exclusions.push(t):e.$_terms._inclusions.push(t);for(const t of e.$_terms.ordered)c.validateSingle(t,e)},manifest:{build:(e,t)=>(t.items&&(e=e.items(...t.items)),t.ordered&&(e=e.ordered(...t.ordered)),e)},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}}),c.fillMissedErrors=function(e,t,n,a,r,o){const i=[];let l=0;for(const e of n){const t=e._flags.label;t?i.push(t):++l}i.length?l?t.push(e.$_createError("array.includesRequiredBoth",a,{knownMisses:i,unknownMisses:l},r,o)):t.push(e.$_createError("array.includesRequiredKnowns",a,{knownMisses:i},r,o)):t.push(e.$_createError("array.includesRequiredUnknowns",a,{unknownMisses:l},r,o))},c.fillOrderedErrors=function(e,t,n,a,r,o){const i=[];for(const e of n)"required"===e._flags.presence&&i.push(e);i.length&&c.fillMissedErrors(e,t,i,a,r,o)},c.fillDefault=function(e,t,n,a){const r=[];let o=!0;for(let i=e.length-1;i>=0;--i){const l=e[i],s=[t,...n.ancestors],c=l.$_validate(void 0,n.localize(n.path,s,l),a).value;if(o){if(void 0===c)continue;o=!1}r.unshift(c)}r.length&&t.push(...r)},c.fastSplice=function(e,t){let n=t;for(;n<e.length;)e[n++]=e[n];--e.length},c.validateSingle=function(e,t){("array"===e.type||e._flags._arrayItems)&&(a(!t._flags.single,"Cannot specify array item with single rule enabled"),t.$_setFlag("_arrayItems",!0,{clone:!1}))},c.sort=function(e,t,n,a,r){const o="ascending"===n.order?1:-1,i=-1*o,l=o,s=(s,d)=>{let u=c.compare(s,d,i,l);if(null!==u)return u;if(n.by&&(s=n.by.resolve(s,a,r),d=n.by.resolve(d,a,r)),u=c.compare(s,d,i,l),null!==u)return u;const f=typeof s;if(f!==typeof d)throw e.$_createError("array.sort.mismatching",t,null,a,r);if("number"!==f&&"string"!==f)throw e.$_createError("array.sort.unsupported",t,{type:f},a,r);return"number"===f?(s-d)*o:s<d?i:l};try{return{value:t.slice().sort(s)}}catch(e){return{errors:e}}},c.compare=function(e,t,n,a){return e===t?0:void 0===e?1:void 0===t?-1:null===e?a:null===t?n:null}},2847:(e,t,n)=>{const a=n(8253),r=n(7125),o=n(8669),i=n(86),l={};e.exports=function(e,t,n={}){return"object"!=typeof t&&(t=[t]),a(!Array.isArray(t)||t.length,"Values array cannot be empty"),"string"==typeof e?l.string(e,t,n):Array.isArray(e)?l.array(e,t,n):(a("object"==typeof e,"Reference must be string or an object"),l.object(e,t,n))},l.array=function(e,t,n){if(Array.isArray(t)||(t=[t]),!e.length)return!1;if(n.only&&n.once&&e.length!==t.length)return!1;let a;const r=new Map;for(const e of t)if(n.deep&&e&&"object"==typeof e){a=null!=a?a:l.compare(n);let t=!1;for(const[n,o]of r.entries())if(a(n,e)){++o.allowed,t=!0;break}t||r.set(e,{allowed:1,hits:0})}else{const t=r.get(e);t?++t.allowed:r.set(e,{allowed:1,hits:0})}let o=0;for(const t of e){let e;if(n.deep&&t&&"object"==typeof t){a=null!=a?a:l.compare(n);for(const[n,o]of r.entries())if(a(n,t)){e=o;break}}else e=r.get(t);if(e&&(++e.hits,++o,n.once&&e.hits>e.allowed))return!1}if(n.only&&o!==e.length)return!1;for(const e of r.values())if(e.hits!==e.allowed&&e.hits<e.allowed&&!n.part)return!1;return!!o},l.object=function(e,t,n){a(void 0===n.once,"Cannot use option once with object");const r=i.keys(e,n);if(!r.length)return!1;if(Array.isArray(t))return l.array(r,t,n);const o=Object.getOwnPropertySymbols(t).filter(e=>t.propertyIsEnumerable(e)),s=[...Object.keys(t),...o],c=l.compare(n),d=new Set(s);for(const a of r)if(d.has(a)){if(!c(t[a],e[a]))return!1;d.delete(a)}else if(n.only)return!1;return!d.size||!!n.part&&d.size<s.length},l.string=function(e,t,n){if(""===e)return 1===t.length&&""===t[0]||!n.once&&!t.some(e=>""!==e);const r=new Map,i=[];for(const e of t)if(a("string"==typeof e,"Cannot compare string reference to non-string value"),e){const t=r.get(e);t?++t.allowed:(r.set(e,{allowed:1,hits:0}),i.push(o(e)))}else if(n.once||n.only)return!1;if(!i.length)return!0;const l=new RegExp(`(${i.join("|")})`,"g"),s=e.replace(l,(e,t)=>(++r.get(t).hits,""));if(n.only&&s)return!1;let c=!1;for(const e of r.values())if(e.hits&&(c=!0),e.hits!==e.allowed){if(e.hits<e.allowed&&!n.part)return!1;if(n.once)return!1}return!!c},l.compare=function(e){if(!e.deep)return l.shallow;const t=void 0!==e.only,n=void 0!==e.part,a={prototype:t?e.only:!!n&&!e.part,part:t?!e.only:!!n&&e.part};return(e,t)=>r(e,t,a)},l.shallow=function(e,t){return e===t}},2888:(e,t,n)=>{const{applyToDefaults:a,assert:r,clone:o}=n(3115),i=n(8248),l=n(680),s=n(9415),c=n(3541),d=n(8013),u=n(8529),f=n(1532),p={renameDefaults:{alias:!1,multiple:!1,override:!1}};e.exports=l.extend({type:"_keys",properties:{typeof:"object"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:"schema",to:"key"}}},patterns:{init:null},renames:{init:null}},args:(e,t)=>e.keys(t),validate(e,{schema:t,error:n,state:a,prefs:r}){if(!e||typeof e!==t.$_property("typeof")||Array.isArray(e))return{value:e,errors:n("object.base",{type:t.$_property("typeof")})};if(!(t.$_terms.renames||t.$_terms.dependencies||t.$_terms.keys||t.$_terms.patterns||t.$_terms.externals))return;e=p.clone(e,r);const o=[];if(t.$_terms.renames&&!p.rename(t,e,a,r,o))return{value:e,errors:o};if(!t.$_terms.keys&&!t.$_terms.patterns&&!t.$_terms.dependencies)return{value:e,errors:o};const i=new Set(Object.keys(e));if(t.$_terms.keys){const n=[e,...a.ancestors];for(const l of t.$_terms.keys){const t=l.key,s=e[t];i.delete(t);const c=a.localize([...a.path,t],n,l),d=l.schema.$_validate(s,c,r);if(d.errors){if(r.abortEarly)return{value:e,errors:d.errors};void 0!==d.value&&(e[t]=d.value),o.push(...d.errors)}else"strip"===l.schema._flags.result||void 0===d.value&&void 0!==s?delete e[t]:void 0!==d.value&&(e[t]=d.value)}}if(i.size||t._flags._hasPatternMatch){const n=p.unknown(t,e,i,o,a,r);if(n)return n}if(t.$_terms.dependencies)for(const n of t.$_terms.dependencies){if(null!==n.key&&!1===p.isPresent(n.options)(n.key.resolve(e,a,r,null,{shadow:!1})))continue;const i=p.dependencies[n.rel](t,n,e,a,r);if(i){const n=t.$_createError(i.code,e,i.context,a,r);if(r.abortEarly)return{value:e,errors:n};o.push(n)}}return{value:e,errors:o}},rules:{and:{method(...e){return s.verifyFlat(e,"and"),p.dependency(this,"and",null,e)}},append:{method(e){return null==e||0===Object.keys(e).length?this:this.keys(e)}},assert:{method(e,t,n){f.isTemplate(e)||(e=c.ref(e)),r(void 0===n||"string"==typeof n,"Message must be a string"),t=this.$_compile(t,{appendPath:!0});const a=this.$_addRule({name:"assert",args:{subject:e,schema:t,message:n}});return a.$_mutateRegister(e),a.$_mutateRegister(t),a},validate(e,{error:t,prefs:n,state:a},{subject:r,schema:o,message:i}){const l=r.resolve(e,a,n),s=u.isRef(r)?r.absolute(a):[];return o.$_match(l,a.localize(s,[e,...a.ancestors],o),n)?e:t("object.assert",{subject:r,message:i})},args:["subject","schema","message"],multi:!0},instance:{method(e,t){return r("function"==typeof e,"constructor must be a function"),t=t||e.name,this.$_addRule({name:"instance",args:{constructor:e,name:t}})},validate:(e,t,{constructor:n,name:a})=>e instanceof n?e:t.error("object.instance",{type:a,value:e}),args:["constructor","name"]},keys:{method(e){r(void 0===e||"object"==typeof e,"Object schema must be a valid object"),r(!s.isSchema(e),"Object schema cannot be a joi schema");const t=this.clone();if(e)if(Object.keys(e).length){t.$_terms.keys=t.$_terms.keys?t.$_terms.keys.filter(t=>!e.hasOwnProperty(t.key)):new p.Keys;for(const n in e)s.tryWithPath(()=>t.$_terms.keys.push({key:n,schema:this.$_compile(e[n])}),n)}else t.$_terms.keys=new p.Keys;else t.$_terms.keys=null;return t.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate:(e,t,{limit:n},{name:a,operator:r,args:o})=>s.compare(Object.keys(e).length,n,r)?e:t.error("object."+a,{limit:o.limit,value:e}),args:[{name:"limit",ref:!0,assert:s.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},nand:{method(...e){return s.verifyFlat(e,"nand"),p.dependency(this,"nand",null,e)}},or:{method(...e){return s.verifyFlat(e,"or"),p.dependency(this,"or",null,e)}},oxor:{method(...e){return p.dependency(this,"oxor",null,e)}},pattern:{method(e,t,n={}){const a=e instanceof RegExp;a||(e=this.$_compile(e,{appendPath:!0})),r(void 0!==t,"Invalid rule"),s.assertOptions(n,["fallthrough","matches"]),a&&r(!e.flags.includes("g")&&!e.flags.includes("y"),"pattern should not use global or sticky mode"),t=this.$_compile(t,{appendPath:!0});const o=this.clone();o.$_terms.patterns=o.$_terms.patterns||[];const i={[a?"regex":"schema"]:e,rule:t};return n.matches&&(i.matches=this.$_compile(n.matches),"array"!==i.matches.type&&(i.matches=i.matches.$_root.array().items(i.matches)),o.$_mutateRegister(i.matches),o.$_setFlag("_hasPatternMatch",!0,{clone:!1})),n.fallthrough&&(i.fallthrough=!0),o.$_terms.patterns.push(i),o.$_mutateRegister(t),o}},ref:{method(){return this.$_addRule("ref")},validate:(e,t)=>u.isRef(e)?e:t.error("object.refType",{value:e})},regex:{method(){return this.$_addRule("regex")},validate:(e,t)=>e instanceof RegExp?e:t.error("object.regex",{value:e})},rename:{method(e,t,n={}){r("string"==typeof e||e instanceof RegExp,"Rename missing the from argument"),r("string"==typeof t||t instanceof f,"Invalid rename to argument"),r(t!==e,"Cannot rename key to same name:",e),s.assertOptions(n,["alias","ignoreUndefined","override","multiple"]);const o=this.clone();o.$_terms.renames=o.$_terms.renames||[];for(const t of o.$_terms.renames)r(t.from!==e,"Cannot rename the same key multiple times");return t instanceof f&&o.$_mutateRegister(t),o.$_terms.renames.push({from:e,to:t,options:a(p.renameDefaults,n)}),o}},schema:{method(e="any"){return this.$_addRule({name:"schema",args:{type:e}})},validate:(e,t,{type:n})=>!s.isSchema(e)||"any"!==n&&e.type!==n?t.error("object.schema",{type:n}):e},unknown:{method(e){return this.$_setFlag("unknown",!1!==e)}},with:{method(e,t,n={}){return p.dependency(this,"with",e,t,n)}},without:{method(e,t,n={}){return p.dependency(this,"without",e,t,n)}},xor:{method(...e){return s.verifyFlat(e,"xor"),p.dependency(this,"xor",null,e)}}},overrides:{default(e,t){return void 0===e&&(e=s.symbols.deepDefault),this.$_parent("default",e,t)},isAsync(){var e,t,n;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;if(null!==(t=this.$_terms.keys)&&void 0!==t&&t.length)for(const e of this.$_terms.keys)if(e.schema.isAsync())return!0;if(null!==(n=this.$_terms.patterns)&&void 0!==n&&n.length)for(const e of this.$_terms.patterns)if(e.rule.isAsync())return!0;return!1}},rebuild(e){if(e.$_terms.keys){const t=new i.Sorter;for(const n of e.$_terms.keys)s.tryWithPath(()=>t.add(n,{after:n.schema.$_rootReferences(),group:n.key}),n.key);e.$_terms.keys=new p.Keys(...t.nodes)}},manifest:{build(e,t){if(t.keys&&(e=e.keys(t.keys)),t.dependencies)for(const{rel:n,key:a=null,peers:r,options:o}of t.dependencies)e=p.dependency(e,n,a,r,o);if(t.patterns)for(const{regex:n,schema:a,rule:r,fallthrough:o,matches:i}of t.patterns)e=e.pattern(n||a,r,{fallthrough:o,matches:i});if(t.renames)for(const{from:n,to:a,options:r}of t.renames)e=e.rename(n,a,r);return e}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}}),p.clone=function(e,t){if("object"==typeof e){if(t.nonEnumerables)return o(e,{shallow:!0});const n=Object.create(Object.getPrototypeOf(e));return Object.assign(n,e),n}const n=function(...t){return e.apply(this,t)};return n.prototype=o(e.prototype),Object.defineProperty(n,"name",{value:e.name,writable:!1}),Object.defineProperty(n,"length",{value:e.length,writable:!1}),Object.assign(n,e),n},p.dependency=function(e,t,n,a,o){r(null===n||"string"==typeof n,t,"key must be a strings"),o||(o=a.length>1&&"object"==typeof a[a.length-1]?a.pop():{}),s.assertOptions(o,["separator","isPresent"]),a=[].concat(a);const i=s.default(o.separator,"."),l=[];for(const e of a)r("string"==typeof e,t,"peers must be strings"),l.push(c.ref(e,{separator:i,ancestor:0,prefix:!1}));null!==n&&(n=c.ref(n,{separator:i,ancestor:0,prefix:!1}));const d=e.clone();return d.$_terms.dependencies=d.$_terms.dependencies||[],d.$_terms.dependencies.push(new p.Dependency(t,n,l,a,o)),d},p.dependencies={and(e,t,n,a,r){const o=[],i=[],l=t.peers.length,s=p.isPresent(t.options);for(const e of t.peers)!1===s(e.resolve(n,a,r,null,{shadow:!1}))?o.push(e.key):i.push(e.key);if(o.length!==l&&i.length!==l)return{code:"object.and",context:{present:i,presentWithLabels:p.keysToLabels(e,i),missing:o,missingWithLabels:p.keysToLabels(e,o)}}},nand(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(o.length!==t.peers.length)return;const l=t.paths[0],s=t.paths.slice(1);return{code:"object.nand",context:{main:l,mainWithLabel:p.keysToLabels(e,l),peers:s,peersWithLabels:p.keysToLabels(e,s)}}},or(e,t,n,a,r){const o=p.isPresent(t.options);for(const e of t.peers)if(o(e.resolve(n,a,r,null,{shadow:!1})))return;return{code:"object.missing",context:{peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)}}},oxor(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(!o.length||1===o.length)return;const l={peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)};return l.present=o,l.presentWithLabels=p.keysToLabels(e,o),{code:"object.oxor",context:l}},with(e,t,n,a,r){const o=p.isPresent(t.options);for(const i of t.peers)if(!1===o(i.resolve(n,a,r,null,{shadow:!1})))return{code:"object.with",context:{main:t.key.key,mainWithLabel:p.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:p.keysToLabels(e,i.key)}}},without(e,t,n,a,r){const o=p.isPresent(t.options);for(const i of t.peers)if(o(i.resolve(n,a,r,null,{shadow:!1})))return{code:"object.without",context:{main:t.key.key,mainWithLabel:p.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:p.keysToLabels(e,i.key)}}},xor(e,t,n,a,r){const o=[],i=p.isPresent(t.options);for(const e of t.peers)i(e.resolve(n,a,r,null,{shadow:!1}))&&o.push(e.key);if(1===o.length)return;const l={peers:t.paths,peersWithLabels:p.keysToLabels(e,t.paths)};return 0===o.length?{code:"object.missing",context:l}:(l.present=o,l.presentWithLabels=p.keysToLabels(e,o),{code:"object.xor",context:l})}},p.keysToLabels=function(e,t){return Array.isArray(t)?t.map(t=>e.$_mapLabels(t)):e.$_mapLabels(t)},p.isPresent=function(e){return"function"==typeof e.isPresent?e.isPresent:e=>void 0!==e},p.rename=function(e,t,n,a,r){const o={};for(const i of e.$_terms.renames){const l=[],s="string"!=typeof i.from;if(s)for(const e in t){if(void 0===t[e]&&i.options.ignoreUndefined)continue;if(e===i.to)continue;const n=i.from.exec(e);n&&l.push({from:e,to:i.to,match:n})}else!Object.prototype.hasOwnProperty.call(t,i.from)||void 0===t[i.from]&&i.options.ignoreUndefined||l.push(i);for(const c of l){const l=c.from;let d=c.to;if(d instanceof f&&(d=d.render(t,n,a,c.match)),l!==d){if(!i.options.multiple&&o[d]&&(r.push(e.$_createError("object.rename.multiple",t,{from:l,to:d,pattern:s},n,a)),a.abortEarly))return!1;if(Object.prototype.hasOwnProperty.call(t,d)&&!i.options.override&&!o[d]&&(r.push(e.$_createError("object.rename.override",t,{from:l,to:d,pattern:s},n,a)),a.abortEarly))return!1;void 0===t[l]?delete t[d]:t[d]=t[l],o[d]=!0,i.options.alias||delete t[l]}}}return!0},p.unknown=function(e,t,n,a,r,o){if(e.$_terms.patterns){let i=!1;const l=e.$_terms.patterns.map(e=>{if(e.matches)return i=!0,[]}),s=[t,...r.ancestors];for(const i of n){const c=t[i],d=[...r.path,i];for(let u=0;u<e.$_terms.patterns.length;++u){const f=e.$_terms.patterns[u];if(f.regex){const e=f.regex.test(i);if(r.mainstay.tracer.debug(r,"rule",`pattern.${u}`,e?"pass":"error"),!e)continue}else if(!f.schema.$_match(i,r.nest(f.schema,`pattern.${u}`),o))continue;n.delete(i);const p=r.localize(d,s,{schema:f.rule,key:i}),m=f.rule.$_validate(c,p,o);if(m.errors){if(o.abortEarly)return{value:t,errors:m.errors};a.push(...m.errors)}if(f.matches&&l[u].push(i),t[i]=m.value,!f.fallthrough)break}}if(i)for(let n=0;n<l.length;++n){const i=l[n];if(!i)continue;const c=e.$_terms.patterns[n].matches,u=r.localize(r.path,s,c),f=c.$_validate(i,u,o);if(f.errors){const n=d.details(f.errors,{override:!1});n.matches=i;const l=e.$_createError("object.pattern.match",t,n,r,o);if(o.abortEarly)return{value:t,errors:l};a.push(l)}}}if(n.size&&(e.$_terms.keys||e.$_terms.patterns)){if(o.stripUnknown&&void 0===e._flags.unknown||o.skipFunctions){const e=!(!o.stripUnknown||!0!==o.stripUnknown&&!o.stripUnknown.objects);for(const a of n)e?(delete t[a],n.delete(a)):"function"==typeof t[a]&&n.delete(a)}if(!s.default(e._flags.unknown,o.allowUnknown))for(const i of n){const n=r.localize([...r.path,i],[]),l=e.$_createError("object.unknown",t[i],{child:i},n,o,{flags:!1});if(o.abortEarly)return{value:t,errors:l};a.push(l)}}},p.Dependency=class{constructor(e,t,n,a,r){this.rel=e,this.key=t,this.peers=n,this.paths=a,this.options=r}describe(){const e={rel:this.rel,peers:this.paths};return null!==this.key&&(e.key=this.key.key),"."!==this.peers[0].separator&&(e.options={...e.options,separator:this.peers[0].separator}),this.options.isPresent&&(e.options={...e.options,isPresent:this.options.isPresent}),e}},p.Keys=class extends Array{concat(e){const t=this.slice(),n=new Map;for(let e=0;e<t.length;++e)n.set(t[e].key,e);for(const a of e){const e=a.key,r=n.get(e);void 0!==r?t[r]={key:e,schema:t[r].schema.concat(a.schema)}:t.push(a)}return t}}},3110:e=>{const t={};e.exports=function(e,n,a={}){if(!e||!n)return a.first?null:[];const r=[],o=Array.isArray(e)?new Set(e):e,i=new Set;for(const e of n)if(t.has(o,e)&&!i.has(e)){if(a.first)return e;r.push(e),i.add(e)}return a.first?null:r},t.has=function(e,t){return"function"==typeof e.has?e.has(t):void 0!==e[t]}},3115:(e,t,n)=>{t.applyToDefaults=n(6084),t.assert=n(8253),t.AssertError=n(1803),t.Bench=n(9145),t.block=n(3386),t.clone=n(4126),t.contain=n(2847),t.deepEqual=n(7125),t.escapeHeaderAttribute=n(9241),t.escapeHtml=n(8121),t.escapeJson=n(5570),t.escapeRegex=n(8669),t.flatten=n(5553),t.ignore=n(9725),t.intersect=n(3110),t.isPromise=n(834),t.merge=n(9315),t.once=n(8762),t.reach=n(1528),t.reachTemplate=n(1626),t.stringify=n(8314),t.wait=n(7858)},3305:(e,t,n)=>{n.r(t),n.d(t,{analyzeDomain:()=>m,analyzeEmail:()=>_,errorCodes:()=>r,ipRegex:()=>M,isDomainValid:()=>v,isEmailValid:()=>w,uriDecode:()=>P,uriRegex:()=>D,validateDomainOptions:()=>h});var a=n(8663);const r={EMPTY_STRING:"Address must be a non-empty string",FORBIDDEN_UNICODE:"Address contains forbidden Unicode characters",MULTIPLE_AT_CHAR:"Address cannot contain more than one @ character",MISSING_AT_CHAR:"Address must contain one @ character",EMPTY_LOCAL:"Address local part cannot be empty",ADDRESS_TOO_LONG:"Address too long",LOCAL_TOO_LONG:"Address local part too long",EMPTY_LOCAL_SEGMENT:"Address local part contains empty dot-separated segment",INVALID_LOCAL_CHARS:"Address local part contains invalid character",DOMAIN_NON_EMPTY_STRING:"Domain must be a non-empty string",DOMAIN_TOO_LONG:"Domain too long",DOMAIN_INVALID_UNICODE_CHARS:"Domain contains forbidden Unicode characters",DOMAIN_INVALID_CHARS:"Domain contains invalid character",DOMAIN_INVALID_TLDS_CHARS:"Domain contains invalid tld character",DOMAIN_SEGMENTS_COUNT:"Domain lacks the minimum required number of segments",DOMAIN_SEGMENTS_COUNT_MAX:"Domain contains too many segments",DOMAIN_FORBIDDEN_TLDS:"Domain uses forbidden TLD",DOMAIN_EMPTY_SEGMENT:"Domain contains empty dot-separated segment",DOMAIN_LONG_SEGMENT:"Domain contains dot-separated segment that is too long"};function o(e){return{code:e,error:r[e]}}const i=2,l=/[^\x00-\x7f]/,s=/[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/,c=/^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,d=/^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,u=/^[a-zA-Z0-9_](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,f=a.URL||URL;function p(e){return!!e.allow}function m(e,t={}){if(!e)return o("DOMAIN_NON_EMPTY_STRING");if("string"!=typeof e)throw new Error("Invalid input: domain must be a string");if(e.length>256)return o("DOMAIN_TOO_LONG");if(l.test(e)){if(!1===t.allowUnicode)return o("DOMAIN_INVALID_UNICODE_CHARS");e=e.normalize("NFC")}if(s.test(e))return o("DOMAIN_INVALID_CHARS");e=function(e){e.includes("%")&&(e=e.replace(/%/g,"%25"));try{return new f(`http://${e}`).host}catch(t){return e}}(e),t.allowFullyQualified&&"."===e[e.length-1]&&(e=e.slice(0,-1));const n=t.minDomainSegments||i,a=e.split(".");if(a.length<n)return o("DOMAIN_SEGMENTS_COUNT");if(t.maxDomainSegments&&a.length>t.maxDomainSegments)return o("DOMAIN_SEGMENTS_COUNT_MAX");const r=t.tlds;if(r){const e=a[a.length-1].toLowerCase();if(p(r)){if(!r.allow.has(e))return o("DOMAIN_FORBIDDEN_TLDS")}else if(r.deny.has(e))return o("DOMAIN_FORBIDDEN_TLDS")}for(let e=0;e<a.length;++e){const n=a[e];if(!n.length)return o("DOMAIN_EMPTY_SEGMENT");if(n.length>63)return o("DOMAIN_LONG_SEGMENT");if(e<a.length-1){if(t.allowUnderscore){if(!u.test(n))return o("DOMAIN_INVALID_CHARS")}else if(!d.test(n))return o("DOMAIN_INVALID_CHARS")}else if(!c.test(n))return o("DOMAIN_INVALID_TLDS_CHARS")}return null}function v(e,t){return!m(e,t)}function h(e){if(e){if("object"!=typeof e.tlds)throw new Error("Invalid options: tlds must be a boolean or an object");if(p(e.tlds)){if(e.tlds.allow instanceof Set==0)throw new Error("Invalid options: tlds.allow must be a Set object or true");if(e.tlds.deny)throw new Error("Invalid options: cannot specify both tlds.allow and tlds.deny lists")}else if(e.tlds.deny instanceof Set==0)throw new Error("Invalid options: tlds.deny must be a Set object")}}var g=n(6984);const y=/[^\x00-\x7f]/,b=new(g.TextEncoder||TextEncoder);function _(e,t){return x(e,t)}function w(e,t){return!x(e,t)}function x(e,t={}){if("string"!=typeof e)throw new Error("Invalid input: email must be a string");if(!e)return o("EMPTY_STRING");const n=!y.test(e);if(!n){if(!1===t.allowUnicode)return o("FORBIDDEN_UNICODE");e=e.normalize("NFC")}const a=e.split("@");if(2!==a.length)return a.length>2?o("MULTIPLE_AT_CHAR"):o("MISSING_AT_CHAR");const[r,i]=a;if(!r)return o("EMPTY_LOCAL");if(!t.ignoreLength){if(e.length>254)return o("ADDRESS_TOO_LONG");if(b.encode(r).length>64)return o("LOCAL_TOO_LONG")}return function(e,t){const n=e.split(".");for(const e of n){if(!e.length)return o("EMPTY_LOCAL_SEGMENT");if(t){if(!k.test(e))return o("INVALID_LOCAL_CHARS")}else for(const t of e){if(k.test(t))continue;const e=S(t);if(!E.test(e))return o("INVALID_LOCAL_CHARS")}}return null}(r,n)||m(i,t)}function S(e){return Array.from(b.encode(e),e=>String.fromCharCode(e)).join("")}const k=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/,E=new RegExp(["(?:[\\xc2-\\xdf][\\x80-\\xbf])","(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})","(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})"].join("|"));var A=n(8253),O=n.n(A),$=n(8669),C=n.n($);const I=function(){const e={},t="\\dA-Fa-f",n="["+t+"]",a="\\w-\\.~",r="!\\$&'\\(\\)\\*\\+,;=",o="%"+t,i=a+o+r+":@",l="["+i+"]",s="(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";e.ipv4address="(?:"+s+"\\.){3}"+s;const c=n+"{1,4}",d="(?:"+c+":"+c+"|"+e.ipv4address+")",u="(?:"+c+":){6}"+d,f="::(?:"+c+":){5}"+d,p="(?:"+c+")?::(?:"+c+":){4}"+d,m="(?:(?:"+c+":){0,1}"+c+")?::(?:"+c+":){3}"+d,v="(?:(?:"+c+":){0,2}"+c+")?::(?:"+c+":){2}"+d,h="(?:(?:"+c+":){0,3}"+c+")?::"+c+":"+d,g="(?:(?:"+c+":){0,4}"+c+")?::"+d,y="(?:(?:"+c+":){0,5}"+c+")?::"+c,b="(?:(?:"+c+":){0,6}"+c+")?::";e.ipv4Cidr="(?:\\d|[1-2]\\d|3[0-2])",e.ipv6Cidr="(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])",e.ipv6address="(?:"+u+"|"+f+"|"+p+"|"+m+"|"+v+"|"+h+"|"+g+"|"+y+"|"+b+")",e.ipvFuture="v"+n+"+\\.["+a+r+":]+",e.scheme="[a-zA-Z][a-zA-Z\\d+-\\.]*",e.schemeRegex=new RegExp(e.scheme);const _="["+a+o+r+":]*",w="["+a+o+r+"]{1,255}",x="(?:\\[(?:"+e.ipv6address+"|"+e.ipvFuture+")\\]|"+e.ipv4address+"|"+w+")",S="(?:"+_+"@)?"+x+"(?::\\d*)?",k="(?:"+_+"@)?("+x+")(?::\\d*)?",E=l+"*",A=l+"+",O="(?:\\/"+E+")*",$="\\/(?:"+A+O+")?",C=A+O,I="["+a+o+r+"@]+"+O,R="(?:\\/\\/\\/"+E+O+")";return e.hierPart="(?:(?:\\/\\/"+S+O+")|"+$+"|"+C+"|"+R+")",e.hierPartCapture="(?:(?:\\/\\/"+k+O+")|"+$+"|"+C+")",e.relativeRef="(?:(?:\\/\\/"+S+O+")|"+$+"|"+I+"|)",e.relativeRefCapture="(?:(?:\\/\\/"+k+O+")|"+$+"|"+I+"|)",e.query="["+i+"\\/\\?]*(?=#|$)",e.queryWithSquareBrackets="["+i+"\\[\\]\\/\\?]*(?=#|$)",e.fragment="["+i+"\\/\\?]*",e}(),R={v4Cidr:I.ipv4Cidr,v6Cidr:I.ipv6Cidr,ipv4:I.ipv4address,ipv6:I.ipv6address,ipvfuture:I.ipvFuture};function N(e){const t=I,n="(?:\\?"+(e.allowQuerySquareBrackets?t.queryWithSquareBrackets:t.query)+")?(?:#"+t.fragment+")?",a=e.domain?t.relativeRefCapture:t.relativeRef;if(e.relativeOnly)return T(a+n);let r="";if(e.scheme){O()(e.scheme instanceof RegExp||"string"==typeof e.scheme||Array.isArray(e.scheme),"scheme must be a RegExp, String, or Array");const n=[].concat(e.scheme);O()(n.length>=1,"scheme must have at least 1 scheme specified");const a=[];for(let e=0;e<n.length;++e){const r=n[e];O()(r instanceof RegExp||"string"==typeof r,"scheme at position "+e+" must be a RegExp or String"),r instanceof RegExp?a.push(r.source.toString()):(O()(t.schemeRegex.test(r),"scheme at position "+e+" must be a valid scheme"),a.push(C()(r)))}r=a.join("|")}const o="(?:"+(r?"(?:"+r+")":t.scheme)+":"+(e.domain?t.hierPartCapture:t.hierPart)+")";return T((e.allowRelative?"(?:"+o+"|"+a+")":o)+n,r)}function T(e,t=null){return{raw:e=`(?=.)(?!https?:/(?:$|[^/]))(?!https?:///)(?!https?:[^/])${e}`,regex:new RegExp(`^${e}$`),scheme:t}}const j=N({});function D(e={}){return e.scheme||e.allowRelative||e.relativeOnly||e.allowQuerySquareBrackets||e.domain?N(e):j}function M(e={}){const t=e.cidr||"optional";O()(["required","optional","forbidden"].includes(t),"options.cidr must be one of required, optional, forbidden"),O()(void 0===e.version||"string"==typeof e.version||Array.isArray(e.version),"options.version must be a string or an array of string");let n=e.version||["ipv4","ipv6","ipvfuture"];Array.isArray(n)||(n=[n]),O()(n.length>=1,"options.version must have at least 1 version specified");for(const e of n)O()("string"==typeof e&&e===e.toLowerCase(),"Invalid options.version value"),O()(["ipv4","ipv6","ipvfuture"].includes(e),"options.version contains unknown version "+e+" - must be one of ipv4, ipv6, ipvfuture");n=Array.from(new Set(n));const a=`(?:${n.map(e=>{if("forbidden"===t)return R[e];const n=`\\/${"ipv4"===e?R.v4Cidr:R.v6Cidr}`;return"required"===t?`${R[e]}${n}`:`${R[e]}(?:${n})?`}).join("|")})`,r=new RegExp(`^${a}$`);return{cidr:t,versions:n,regex:r,raw:a}}const L={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15},F={accept:12,reject:0,data:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7]};function P(e){let t=e.indexOf("%");if(-1===t)return e;let n="",a=0,r=0,o=t,i=F.accept;for(;t>-1&&t<e.length;){const l=U(e[t+1],4)|U(e[t+2],0),s=F.data[l];if(i=F.data[256+i+s],r=r<<6|l&F.data[364+s],i!==F.accept){if(i===F.reject)return null;if(t+=3,t>=e.length||"%"!==e[t])return null}else n+=e.slice(a,o),n+=r<=65535?String.fromCharCode(r):String.fromCharCode(55232+(r>>10),56320+(1023&r)),r=0,a=t+3,t=e.indexOf("%",a),o=t}return n+e.slice(a)}function U(e,t){const n=L[e];return void 0===n?255:n<<t}},3386:(e,t,n)=>{const a=n(9725);e.exports=function(){return new Promise(a)}},3541:(e,t,n)=>{const{assert:a}=n(3115),r=n(9415),o=n(8529),i={};t.schema=function(e,t,n={}){r.assertOptions(n,["appendPath","override"]);try{return i.schema(e,t,n)}catch(e){throw n.appendPath&&void 0!==e.path&&(e.message=`${e.message} (${e.path})`),e}},i.schema=function(e,t,n){a(void 0!==t,"Invalid undefined schema"),Array.isArray(t)&&(a(t.length,"Invalid empty array schema"),1===t.length&&(t=t[0]));const o=(t,...a)=>!1!==n.override?t.valid(e.override,...a):t.valid(...a);if(i.simple(t))return o(e,t);if("function"==typeof t)return e.custom(t);if(a("object"==typeof t,"Invalid schema content:",typeof t),r.isResolvable(t))return o(e,t);if(r.isSchema(t))return t;if(Array.isArray(t)){for(const n of t)if(!i.simple(n))return e.alternatives().try(...t);return o(e,...t)}return t instanceof RegExp?e.string().regex(t):t instanceof Date?o(e.date(),t):(a(Object.getPrototypeOf(t)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),e.object().keys(t))},t.ref=function(e,t){return o.isRef(e)?e:o.create(e,t)},t.compile=function(e,n,o={}){r.assertOptions(o,["legacy"]);const l=n&&n[r.symbols.any];if(l)return a(o.legacy||l.version===r.version,"Cannot mix different versions of joi schemas:",l.version,r.version),n;if("object"!=typeof n||!o.legacy)return t.schema(e,n,{appendPath:!0});const s=i.walk(n);return s?s.compile(s.root,n):t.schema(e,n,{appendPath:!0})},i.walk=function(e){if("object"!=typeof e)return null;if(Array.isArray(e)){for(const t of e){const e=i.walk(t);if(e)return e}return null}const t=e[r.symbols.any];if(t)return{root:e[t.root],compile:t.compile};a(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),"Schema can only contain plain objects");for(const t in e){const n=i.walk(e[t]);if(n)return n}return null},i.simple=function(e){return null===e||["boolean","string","number"].includes(typeof e)},t.when=function(e,n,l){if(void 0===l&&(a(n&&"object"==typeof n,"Missing options"),l=n,n=o.create(".")),Array.isArray(l)&&(l={switch:l}),r.assertOptions(l,["is","not","then","otherwise","switch","break"]),r.isSchema(n))return a(void 0===l.is,'"is" can not be used with a schema condition'),a(void 0===l.not,'"not" can not be used with a schema condition'),a(void 0===l.switch,'"switch" can not be used with a schema condition'),i.condition(e,{is:n,then:l.then,otherwise:l.otherwise,break:l.break});if(a(o.isRef(n)||"string"==typeof n,"Invalid condition:",n),a(void 0===l.not||void 0===l.is,'Cannot combine "is" with "not"'),void 0===l.switch){let s=l;void 0!==l.not&&(s={is:l.not,then:l.otherwise,otherwise:l.then,break:l.break});let c=void 0!==s.is?e.$_compile(s.is):e.$_root.invalid(null,!1,0,"").required();return a(void 0!==s.then||void 0!==s.otherwise,'options must have at least one of "then", "otherwise", or "switch"'),a(void 0===s.break||void 0===s.then||void 0===s.otherwise,"Cannot specify then, otherwise, and break all together"),void 0===l.is||o.isRef(l.is)||r.isSchema(l.is)||(c=c.required()),i.condition(e,{ref:t.ref(n),is:c,then:s.then,otherwise:s.otherwise,break:s.break})}a(Array.isArray(l.switch),'"switch" must be an array'),a(void 0===l.is,'Cannot combine "switch" with "is"'),a(void 0===l.not,'Cannot combine "switch" with "not"'),a(void 0===l.then,'Cannot combine "switch" with "then"');const s={ref:t.ref(n),switch:[],break:l.break};for(let t=0;t<l.switch.length;++t){const n=l.switch[t],i=t===l.switch.length-1;r.assertOptions(n,i?["is","then","otherwise"]:["is","then"]),a(void 0!==n.is,'Switch statement missing "is"'),a(void 0!==n.then,'Switch statement missing "then"');const c={is:e.$_compile(n.is),then:e.$_compile(n.then)};if(o.isRef(n.is)||r.isSchema(n.is)||(c.is=c.is.required()),i){a(void 0===l.otherwise||void 0===n.otherwise,'Cannot specify "otherwise" inside and outside a "switch"');const t=void 0!==l.otherwise?l.otherwise:n.otherwise;void 0!==t&&(a(void 0===s.break,"Cannot specify both otherwise and break"),c.otherwise=e.$_compile(t))}s.switch.push(c)}return s},i.condition=function(e,t){for(const n of["then","otherwise"])void 0===t[n]?delete t[n]:t[n]=e.$_compile(t[n]);return t}},3738:(e,t)=>{const n={};t=e.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,url:URL.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},n.typeMap=new Map([["[object Error]",t.error],["[object Map]",t.map],["[object Promise]",t.promise],["[object Set]",t.set],["[object URL]",t.url],["[object WeakMap]",t.weakMap],["[object WeakSet]",t.weakSet]]),t.getInternalProto=function(e){if(Array.isArray(e))return t.array;if(e instanceof Date)return t.date;if(e instanceof RegExp)return t.regex;if(e instanceof Error)return t.error;const a=Object.prototype.toString.call(e);return n.typeMap.get(a)||t.generic}},4126:(e,t,n)=>{const a=n(1528),r=n(3738),o=n(86),i={needsProtoHack:new Set([r.set,r.map,r.weakSet,r.weakMap]),structuredCloneExists:"function"==typeof structuredClone};e.exports=i.clone=function(e,t={},n=null){if("object"!=typeof e||null===e)return e;let a=i.clone,l=n;if(t.shallow){if(!0!==t.shallow)return i.cloneWithShallow(e,t);a=e=>e}else if(l){const t=l.get(e);if(t)return t}else l=new Map;const s=r.getInternalProto(e);switch(s){case r.buffer:return(!1).from(e);case r.date:return new Date(e.getTime());case r.regex:case r.url:return new s.constructor(e)}const c=i.base(e,s,t);if(c===e)return e;if(l&&l.set(e,c),s===r.set)for(const n of e)c.add(a(n,t,l));else if(s===r.map)for(const[n,r]of e)c.set(n,a(r,t,l));const d=o.keys(e,t);for(const n of d){if("__proto__"===n)continue;if(s===r.array&&"length"===n){c.length=e.length;continue}if(i.structuredCloneExists&&s===r.error&&"stack"===n)continue;const o=Object.getOwnPropertyDescriptor(e,n);o?o.get||o.set?Object.defineProperty(c,n,o):o.enumerable?c[n]=a(e[n],t,l):Object.defineProperty(c,n,{enumerable:!1,writable:!0,configurable:!0,value:a(e[n],t,l)}):Object.defineProperty(c,n,{enumerable:!0,writable:!0,configurable:!0,value:a(e[n],t,l)})}return c},i.cloneWithShallow=function(e,t){const n=t.shallow;(t=Object.assign({},t)).shallow=!1;const r=new Map;for(const t of n){const n=a(e,t);"object"!=typeof n&&"function"!=typeof n||r.set(n,n)}return i.clone(e,t,r)},i.base=function(e,t,n){if(!1===n.prototype)return i.needsProtoHack.has(t)?new t.constructor:t===r.array?[]:{};const a=Object.getPrototypeOf(e);if(a&&a.isImmutable)return e;if(t===r.array){const e=[];return a!==t&&Object.setPrototypeOf(e,a),e}if(t===r.error&&i.structuredCloneExists&&(a===t||Error.isPrototypeOf(a.constructor))){const t=structuredClone(e);return Object.getPrototypeOf(t)!==a&&Object.setPrototypeOf(t,a),t}if(i.needsProtoHack.has(t)){const e=new a.constructor;return a!==t&&Object.setPrototypeOf(e,a),e}return Object.create(a)}},4709:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,exponentialPartRegex:/[eE][+-]?\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\./,trailingZerosRegex:/0+$/,decimalPlaces(e){const t=e.toString(),n=t.indexOf("."),a=t.indexOf("e");return(n<0?0:(a<0?t.length:a)-n-1)+(a<0?0:Math.max(0,-parseInt(t.slice(a+1))))}};e.exports=r.extend({type:"number",flags:{unsafe:{default:!1}},coerce:{from:"string",method(e,{schema:t,error:n}){if(!e.match(i.numberRx))return;e=e.trim();const a={value:parseFloat(e)};if(0===a.value&&(a.value=0),!t._flags.unsafe)if(e.match(/e/i)){if(i.extractSignificantDigits(e)!==i.extractSignificantDigits(String(a.value)))return a.errors=n("number.unsafe"),a}else{const t=a.value.toString();if(t.match(/e/i))return a;if(t!==i.normalizeDecimal(e))return a.errors=n("number.unsafe"),a}return a}},validate(e,{schema:t,error:n,prefs:a}){if(e===1/0||e===-1/0)return{value:e,errors:n("number.infinity")};if(!o.isNumber(e))return{value:e,errors:n("number.base")};const r={value:e};if(a.convert){const e=t.$_getRule("precision");if(e){const t=Math.pow(10,e.args.limit);r.value=Math.round(r.value*t)/t}}return 0===r.value&&(r.value=0),!t._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)&&(r.errors=n("number.unsafe")),r},rules:{compare:{method:!1,validate:(e,t,{limit:n},{name:a,operator:r,args:i})=>o.compare(e,n,r)?e:t.error("number."+a,{limit:i.limit,value:e}),args:[{name:"limit",ref:!0,assert:o.isNumber,message:"must be a number"}]},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{limit:e},operator:">"})}},integer:{method(){return this.$_addRule("integer")},validate:(e,t)=>Math.trunc(e)-e===0?e:t.error("number.integer")},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{limit:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{limit:e},operator:">="})}},multiple:{method(e){const t="number"==typeof e?i.decimalPlaces(e):null,n=Math.pow(10,t);return this.$_addRule({name:"multiple",args:{base:e,baseDecimalPlace:t,pfactor:n}})},validate:(e,t,{base:n,baseDecimalPlace:a,pfactor:r},o)=>i.decimalPlaces(e)>a?t.error("number.multiple",{multiple:o.args.base,value:e}):Math.round(r*e)%Math.round(r*n)===0?e:t.error("number.multiple",{multiple:o.args.base,value:e}),args:[{name:"base",ref:!0,assert:e=>"number"==typeof e&&isFinite(e)&&e>0,message:"must be a positive number"},"baseDecimalPlace","pfactor"],multi:!0},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate:(e,t)=>Number.isSafeInteger(e)&&e>=0&&e<=65535?e:t.error("number.port")},positive:{method(){return this.sign("positive")}},precision:{method(e){return a(Number.isSafeInteger(e),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:e}})},validate(e,t,{limit:n}){const a=e.toString().match(i.precisionRx);return Math.max((a[1]?a[1].length:0)-(a[2]?parseInt(a[2],10):0),0)<=n?e:t.error("number.precision",{limit:n,value:e})},convert:!0},sign:{method(e){return a(["negative","positive"].includes(e),"Invalid sign",e),this.$_addRule({name:"sign",args:{sign:e}})},validate:(e,t,{sign:n})=>"negative"===n&&e<0||"positive"===n&&e>0?e:t.error(`number.${n}`)},unsafe:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("unsafe",e)}}},cast:{string:{from:e=>"number"==typeof e,to:(e,t)=>e.toString()}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}}),i.extractSignificantDigits=function(e){return e.replace(i.exponentialPartRegex,"").replace(i.dotRegex,"").replace(i.trailingZerosRegex,"").replace(i.leadingSignAndZerosRegex,"")},i.normalizeDecimal=function(e){return(e=e.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2")).includes(".")&&e.endsWith("0")&&(e=e.replace(/0+$/,"")),"-0"===e?"0":e}},4840:(e,t,n)=>{const{assert:a}=n(3115),r=n(2888);e.exports=r.extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(e){return a(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:e}})},validate:(e,t,{n:n})=>e.length===n?e:t.error("function.arity",{n:n})},class:{method(){return this.$_addRule("class")},validate:(e,t)=>/^\s*class\s/.test(e.toString())?e:t.error("function.class",{value:e})},minArity:{method(e){return a(Number.isSafeInteger(e)&&e>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:e}})},validate:(e,t,{n:n})=>e.length>=n?e:t.error("function.minArity",{n:n})},maxArity:{method(e){return a(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:e}})},validate:(e,t,{n:n})=>e.length<=n?e:t.error("function.maxArity",{n:n})}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}})},4895:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tlds=void 0;const a=n(362);t.tlds=new Set(a.TLDS.map(e=>e.toLowerCase()))},4957:(e,t,n)=>{const{clone:a,reach:r}=n(3115),o=n(9415),i={value:Symbol("value")};e.exports=i.State=class{constructor(e,t,n){this.path=e,this.ancestors=t,this.mainstay=n.mainstay,this.schemas=n.schemas,this.debug=null}localize(e,t=null,n=null){const a=new i.State(e,t,this);return n&&a.schemas&&(a.schemas=[i.schemas(n),...a.schemas]),a}nest(e,t){const n=new i.State(this.path,this.ancestors,this);return n.schemas=n.schemas&&[i.schemas(e),...n.schemas],n.debug=t,n}shadow(e,t){this.mainstay.shadow=this.mainstay.shadow||new i.Shadow,this.mainstay.shadow.set(this.path,e,t)}snapshot(){this.mainstay.shadow&&(this._snapshot=a(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore()}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},i.schemas=function(e){return o.isSchema(e)?{schema:e}:e},i.Shadow=class{constructor(){this._values=null}set(e,t,n){if(!e.length)return;if("strip"===n&&"number"==typeof e[e.length-1])return;this._values=this._values||new Map;let a=this._values;for(let t=0;t<e.length;++t){const n=e[t];let r=a.get(n);r||(r=new Map,a.set(n,r)),a=r}a[i.value]=t}get(e){const t=this.node(e);if(t)return t[i.value]}node(e){if(this._values)return r(this._values,e,{iterables:!0})}override(e,t){if(!this._values)return;const n=e.slice(0,-1),a=e[e.length-1],o=r(this._values,n,{iterables:!0});t?o.set(a,t):o&&o.delete(a)}}},4972:(e,t,n)=>{const{assert:a,merge:r}=n(3115),o=n(680),i=n(9415),l=n(3541),s=n(8013),c=n(8529),d={};e.exports=o.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:c.toSibling}},args:(e,...t)=>1===t.length&&Array.isArray(t[0])?e.try(...t[0]):e.try(...t),validate(e,t){const{schema:n,error:a,state:o,prefs:i}=t;if(n._flags.match){const t=[],l=[];for(let a=0;a<n.$_terms.matches.length;++a){const r=n.$_terms.matches[a],s=o.nest(r.schema,`match.${a}`);s.snapshot();const c=r.schema.$_validate(e,s,i);c.errors?(l.push(c.errors),s.restore()):(t.push(c.value),s.commit())}if(0===t.length)return{errors:a("alternatives.any",{details:l.map(e=>s.details(e,{override:!1}))})};if("one"===n._flags.match)return 1===t.length?{value:t[0]}:{errors:a("alternatives.one")};if(t.length!==n.$_terms.matches.length)return{errors:a("alternatives.all",{details:l.map(e=>s.details(e,{override:!1}))})};const c=e=>e.$_terms.matches.some(e=>"object"===e.schema.type||"alternatives"===e.schema.type&&c(e.schema));return c(n)?{value:t.reduce((e,t)=>r(e,t,{mergeArrays:!1}))}:{value:t[t.length-1]}}const l=[];for(let t=0;t<n.$_terms.matches.length;++t){const a=n.$_terms.matches[t];if(a.schema){const n=o.nest(a.schema,`match.${t}`);n.snapshot();const r=a.schema.$_validate(e,n,i);if(!r.errors)return n.commit(),r;n.restore(),l.push({schema:a.schema,reports:r.errors});continue}const r=a.ref?a.ref.resolve(e,o,i):e,s=a.is?[a]:a.switch;for(let n=0;n<s.length;++n){const l=s[n],{is:c,then:d,otherwise:u}=l,f=`match.${t}${a.switch?"."+n:""}`;if(c.$_match(r,o.nest(c,`${f}.is`),i)){if(d)return d.$_validate(e,o.nest(d,`${f}.then`),i)}else if(u)return u.$_validate(e,o.nest(u,`${f}.otherwise`),i)}}return d.errors(l,t)},rules:{conditional:{method(e,t){a(!this._flags._endedSwitch,"Unreachable condition"),a(!this._flags.match,"Cannot combine match mode",this._flags.match,"with conditional rule"),a(void 0===t.break,"Cannot use break option with alternatives conditional");const n=this.clone(),r=l.when(n,e,t),o=r.is?[r]:r.switch;for(const e of o)if(e.then&&e.otherwise){n.$_setFlag("_endedSwitch",!0,{clone:!1});break}return n.$_terms.matches.push(r),n.$_mutateRebuild()}},match:{method(e){if(a(["any","one","all"].includes(e),"Invalid alternatives match mode",e),"any"!==e)for(const t of this.$_terms.matches)a(t.schema,"Cannot combine match mode",e,"with conditional rules");return this.$_setFlag("match",e)}},try:{method(...e){a(e.length,"Missing alternative schemas"),i.verifyFlat(e,"try"),a(!this._flags._endedSwitch,"Unreachable condition");const t=this.clone();for(const n of e)t.$_terms.matches.push({schema:t.$_compile(n)});return t.$_mutateRebuild()}}},overrides:{label(e){return this.$_parent("label",e).$_modify({each:(t,n)=>"is"!==n.path[0]&&"string"!=typeof t._flags.label?t.label(e):void 0,ref:!1})},isAsync(){var e;if(null!==(e=this.$_terms.externals)&&void 0!==e&&e.length)return!0;for(const e of this.$_terms.matches){var t,n,a;if(null!==(t=e.schema)&&void 0!==t&&t.isAsync())return!0;if(null!==(n=e.then)&&void 0!==n&&n.isAsync())return!0;if(null!==(a=e.otherwise)&&void 0!==a&&a.isAsync())return!0}return!1}},rebuild(e){e.$_modify({each:t=>{i.isSchema(t)&&"array"===t.type&&e.$_setFlag("_arrayItems",!0,{clone:!1})}})},manifest:{build(e,t){if(t.matches)for(const n of t.matches){const{schema:t,ref:a,is:r,not:o,then:i,otherwise:l}=n;e=t?e.try(t):a?e.conditional(a,{is:r,then:i,not:o,otherwise:l,switch:n.switch}):e.conditional(r,{then:i,otherwise:l})}return e}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}}),d.errors=function(e,{error:t,state:n}){if(!e.length)return{errors:t("alternatives.any")};if(1===e.length)return{errors:e[0].reports};const a=new Set,r=[];for(const{reports:o,schema:i}of e){if(o.length>1)return d.unmatched(e,t);const l=o[0];if(l instanceof s.Report==0)return d.unmatched(e,t);if(l.state.path.length!==n.path.length){r.push({type:i.type,report:l});continue}if("any.only"===l.code){for(const e of l.local.valids)a.add(e);continue}const[c,u]=l.code.split(".");"base"!==u?r.push({type:i.type,report:l}):"object.base"===l.code?a.add(l.local.type):a.add(c)}return r.length?1===r.length?{errors:r[0].report}:d.unmatched(e,t):{errors:t("alternatives.types",{types:[...a]})}},d.unmatched=function(e,t){const n=[];for(const t of e)n.push(...t.reports);return{errors:t("alternatives.match",s.details(n,{override:!1}))}}},5008:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o={};o.Map=class extends Map{slice(){return new o.Map(this)}},e.exports=r.extend({type:"symbol",terms:{map:{init:new o.Map}},coerce:{method(e,{schema:t,error:n}){const a=t.$_terms.map.get(e);return a&&(e=a),t._flags.only&&"symbol"!=typeof e?{value:e,errors:n("symbol.map",{map:t.$_terms.map})}:{value:e}}},validate(e,{error:t}){if("symbol"!=typeof e)return{value:e,errors:t("symbol.base")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&"object"==typeof e&&(e=Object.entries(e)),a(e&&e[Symbol.iterator],"Iterable must be an iterable or object");const t=this.clone(),n=[];for(const r of e){a(r&&r[Symbol.iterator],"Entry must be an iterable");const[e,o]=r;a("object"!=typeof e&&"function"!=typeof e&&"symbol"!=typeof e,"Key must not be of type object, function, or Symbol"),a("symbol"==typeof o,"Value must be a Symbol"),t.$_terms.map.set(e,o),n.push(o)}return t.valid(...n)}}},manifest:{build:(e,t)=>(t.map&&(e=e.map(t.map)),e)},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}})},5553:e=>{const t={};e.exports=t.flatten=function(e,n){const a=n||[];for(const n of e)Array.isArray(n)?t.flatten(n,a):a.push(n);return a}},5570:e=>{const t={};e.exports=function(e){return e?e.replace(/[<>&\u2028\u2029]/g,t.escape):""},t.escape=function(e){return t.replacements.get(e)},t.replacements=new Map([["<","\\u003c"],[">","\\u003e"],["&","\\u0026"],["\u2028","\\u2028"],["\u2029","\\u2029"]])},5844:(e,t,n)=>{const{assert:a}=n(3115),r=n(9415),o=n(8529),i={};t.Ids=i.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){const e=new i.Ids;return e._byId=new Map(this._byId),e._byKey=new Map(this._byKey),e._schemaChain=this._schemaChain,e}concat(e){e._schemaChain&&(this._schemaChain=!0);for(const[t,n]of e._byId.entries())a(!this._byKey.has(t),"Schema id conflicts with existing key:",t),this._byId.set(t,n);for(const[t,n]of e._byKey.entries())a(!this._byId.has(t),"Schema key conflicts with existing id:",t),this._byKey.set(t,n)}fork(e,t,n){const o=this._collect(e);o.push({schema:n});const l=o.shift();let s={id:l.id,schema:t(l.schema)};a(r.isSchema(s.schema),"adjuster function failed to return a joi schema type");for(const e of o)s={id:e.id,schema:i.fork(e.schema,s.id,s.schema)};return s.schema}labels(e,t=[]){const n=e[0],a=this._get(n);if(!a)return[...t,...e].join(".");const r=e.slice(1);return t=[...t,a.schema._flags.label||n],r.length?a.schema._ids.labels(r,t):t.join(".")}reach(e,t=[]){const n=e[0],r=this._get(n);a(r,"Schema does not contain path",[...t,...e].join("."));const o=e.slice(1);return o.length?r.schema._ids.reach(o,[...t,n]):r.schema}register(e,{key:t}={}){if(!e||!r.isSchema(e))return;(e.$_property("schemaChain")||e._ids._schemaChain)&&(this._schemaChain=!0);const n=e._flags.id;if(n){const t=this._byId.get(n);a(!t||t.schema===e,"Cannot add different schemas with the same id:",n),a(!this._byKey.has(n),"Schema id conflicts with existing key:",n),this._byId.set(n,{schema:e,id:n})}t&&(a(!this._byKey.has(t),"Schema already contains key:",t),a(!this._byId.has(t),"Schema key conflicts with existing id:",t),this._byKey.set(t,{schema:e,id:t}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(e,t=[],n=[]){const r=e[0],o=this._get(r);a(o,"Schema does not contain path",[...t,...e].join(".")),n=[o,...n];const i=e.slice(1);return i.length?o.schema._ids._collect(i,[...t,r],n):n}_get(e){return this._byId.get(e)||this._byKey.get(e)}},i.fork=function(e,n,a){const r=t.schema(e,{each:(e,{key:t})=>{if(n===(e._flags.id||t))return a},ref:!1});return r?r.$_mutateRebuild():e},t.schema=function(e,t){let n;for(const a in e._flags){if("_"===a[0])continue;const r=i.scan(e._flags[a],{source:"flags",name:a},t);void 0!==r&&(n=n||e.clone(),n._flags[a]=r)}for(let a=0;a<e._rules.length;++a){const r=e._rules[a],o=i.scan(r.args,{source:"rules",name:r.name},t);if(void 0!==o){n=n||e.clone();const t=Object.assign({},r);t.args=o,n._rules[a]=t,n._singleRules.get(r.name)===r&&n._singleRules.set(r.name,t)}}for(const a in e.$_terms){if("_"===a[0])continue;const r=i.scan(e.$_terms[a],{source:"terms",name:a},t);void 0!==r&&(n=n||e.clone(),n.$_terms[a]=r)}return n},i.scan=function(e,t,n,a,l){const s=a||[];if(null===e||"object"!=typeof e)return;let c;if(Array.isArray(e)){for(let a=0;a<e.length;++a){const r="terms"===t.source&&"keys"===t.name&&e[a].key,o=i.scan(e[a],t,n,[a,...s],r);void 0!==o&&(c=c||e.slice(),c[a]=o)}return c}if(!1!==n.schema&&r.isSchema(e)||!1!==n.ref&&o.isRef(e)){const a=n.each(e,{...t,path:s,key:l});if(a===e)return;return a}for(const a in e){if("_"===a[0])continue;const r=i.scan(e[a],t,n,[a,...s],l);void 0!==r&&(c=c||Object.assign({},e),c[a]=r)}return c}},6084:(e,t,n)=>{const a=n(8253),r=n(4126),o=n(9315),i=n(1528),l={};e.exports=function(e,t,n={}){if(a(e&&"object"==typeof e,"Invalid defaults value: must be an object"),a(!t||!0===t||"object"==typeof t,"Invalid source value: must be true, falsy or an object"),a("object"==typeof n,"Invalid options: must be an object"),!t)return null;if(n.shallow)return l.applyToDefaultsWithShallow(e,t,n);const i=r(e);if(!0===t)return i;const s=void 0!==n.nullOverride&&n.nullOverride;return o(i,t,{nullOverride:s,mergeArrays:!1})},l.applyToDefaultsWithShallow=function(e,t,n){const s=n.shallow;a(Array.isArray(s),"Invalid keys");const c=new Map,d=!0===t?null:new Set;for(let n of s){n=Array.isArray(n)?n:n.split(".");const a=i(e,n);a&&"object"==typeof a?c.set(a,d&&i(t,n)||a):d&&d.add(n)}const u=r(e,{},c);if(!d)return u;for(const e of d)l.reachCopy(u,t,e);const f=void 0!==n.nullOverride&&n.nullOverride;return o(u,t,{nullOverride:f,mergeArrays:!1})},l.reachCopy=function(e,t,n){for(const e of n){if(!(e in t))return;const n=t[e];if("object"!=typeof n||null===n)return;t=n}const a=t;let r=e;for(let e=0;e<n.length-1;++e){const t=n[e];"object"!=typeof r[t]&&(r[t]={}),r=r[t]}r[n[n.length-1]]=a}},6162:(e,t,n)=>{const{assert:a,clone:r}=n(3115),o=n(1532);t.compile=function(e,t){if("string"==typeof e)return a(!t,"Cannot set single message string"),new o(e);if(o.isTemplate(e))return a(!t,"Cannot set single message template"),e;a("object"==typeof e&&!Array.isArray(e),"Invalid message options"),t=t?r(t):{};for(let n in e){const r=e[n];if("root"===n||o.isTemplate(r)){t[n]=r;continue}if("string"==typeof r){t[n]=new o(r);continue}a("object"==typeof r&&!Array.isArray(r),"Invalid message for",n);const i=n;for(n in t[i]=t[i]||{},r){const e=r[n];"root"===n||o.isTemplate(e)?t[i][n]=e:(a("string"==typeof e,"Invalid message for",n,"in",i),t[i][n]=new o(e))}}return t},t.decompile=function(e){const t={};for(let n in e){const a=e[n];if("root"===n){t.root=a;continue}if(o.isTemplate(a)){t[n]=a.describe({compact:!0});continue}const r=n;for(n in t[r]={},a){const e=a[n];"root"!==n?t[r][n]=e.describe({compact:!0}):t[r].root=e}}return t},t.merge=function(e,n){if(!e)return t.compile(n);if(!n)return e;if("string"==typeof n)return new o(n);if(o.isTemplate(n))return n;const i=r(e);for(let e in n){const t=n[e];if("root"===e||o.isTemplate(t)){i[e]=t;continue}if("string"==typeof t){i[e]=new o(t);continue}a("object"==typeof t&&!Array.isArray(t),"Invalid message for",e);const r=e;for(e in i[r]=i[r]||{},t){const n=t[e];"root"===e||o.isTemplate(n)?i[r][e]=n:(a("string"==typeof n,"Invalid message for",e,"in",r),i[r][e]=new o(n))}}return i}},6186:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(6220),l={isBool:function(e){return"boolean"==typeof e}};e.exports=r.extend({type:"boolean",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:"values"},truthy:{init:null,manifest:"values"}},coerce(e,{schema:t}){if("boolean"!=typeof e){if("string"==typeof e){const n=t._flags.sensitive?e:e.toLowerCase();e="true"===n||"false"!==n&&e}return"boolean"!=typeof e&&(e=t.$_terms.truthy&&t.$_terms.truthy.has(e,null,null,!t._flags.sensitive)||(!t.$_terms.falsy||!t.$_terms.falsy.has(e,null,null,!t._flags.sensitive))&&e),{value:e}}},validate(e,{error:t}){if("boolean"!=typeof e)return{value:e,errors:t("boolean.base")}},rules:{truthy:{method(...e){o.verifyFlat(e,"truthy");const t=this.clone();t.$_terms.truthy=t.$_terms.truthy||new i;for(let n=0;n<e.length;++n){const r=e[n];a(void 0!==r,"Cannot call truthy with undefined"),t.$_terms.truthy.add(r)}return t}},falsy:{method(...e){o.verifyFlat(e,"falsy");const t=this.clone();t.$_terms.falsy=t.$_terms.falsy||new i;for(let n=0;n<e.length;++n){const r=e[n];a(void 0!==r,"Cannot call falsy with undefined"),t.$_terms.falsy.add(r)}return t}},sensitive:{method(e=!0){return this.$_setFlag("sensitive",e)}}},cast:{number:{from:l.isBool,to:(e,t)=>e?1:0},string:{from:l.isBool,to:(e,t)=>e?"true":"false"}},manifest:{build:(e,t)=>(t.truthy&&(e=e.truthy(...t.truthy)),t.falsy&&(e=e.falsy(...t.falsy)),e)},messages:{"boolean.base":"{{#label}} must be a boolean"}})},6220:(e,t,n)=>{const{assert:a,deepEqual:r}=n(3115),o=n(9415),i={};e.exports=i.Values=class{constructor(e,t){this._values=new Set(e),this._refs=new Set(t),this._lowercase=i.lowercases(e),this._override=!1}get length(){return this._values.size+this._refs.size}add(e,t){o.isResolvable(e)?this._refs.has(e)||(this._refs.add(e),t&&t.register(e)):this.has(e,null,null,!1)||(this._values.add(e),"string"==typeof e&&this._lowercase.set(e.toLowerCase(),e))}static merge(e,t,n){if(e=e||new i.Values,t){if(t._override)return t.clone();for(const n of[...t._values,...t._refs])e.add(n)}if(n)for(const t of[...n._values,...n._refs])e.remove(t);return e.length?e:null}remove(e){o.isResolvable(e)?this._refs.delete(e):(this._values.delete(e),"string"==typeof e&&this._lowercase.delete(e.toLowerCase()))}has(e,t,n,a){return!!this.get(e,t,n,a)}get(e,t,n,a){if(!this.length)return!1;if(this._values.has(e))return{value:e};if("string"==typeof e&&e&&a){const t=this._lowercase.get(e.toLowerCase());if(t)return{value:t}}if(!this._refs.size&&"object"!=typeof e)return!1;if("object"==typeof e)for(const t of this._values)if(r(t,e))return{value:t};if(t)for(const o of this._refs){const i=o.resolve(e,t,n,null,{in:!0});if(void 0===i)continue;const l=o.in&&"object"==typeof i?Array.isArray(i)?i:Object.keys(i):[i];for(const t of l)if(typeof t==typeof e)if(a&&e&&"string"==typeof e){if(t.toLowerCase()===e.toLowerCase())return{value:t,ref:o}}else if(r(t,e))return{value:t,ref:o}}return!1}override(){this._override=!0}values(e){if(e&&e.display){const e=[];for(const t of[...this._values,...this._refs])void 0!==t&&e.push(t);return e}return Array.from([...this._values,...this._refs])}clone(){const e=new i.Values(this._values,this._refs);return e._override=this._override,e}concat(e){a(!e._override,"Cannot concat override set of values");const t=new i.Values([...this._values,...e._values],[...this._refs,...e._refs]);return t._override=this._override,t}describe(){const e=[];this._override&&e.push({override:!0});for(const t of this._values.values())e.push(t&&"object"==typeof t?{value:t}:t);for(const t of this._refs.values())e.push(t.describe());return e}},i.Values.prototype[o.symbols.values]=!0,i.Values.prototype.slice=i.Values.prototype.clone,i.lowercases=function(e){const t=new Map;if(e)for(const n of e)"string"==typeof n&&t.set(n.toLowerCase(),n);return t}},6913:e=>{e.exports={version:"18.0.1"}},6984:()=>{},7125:(e,t,n)=>{const a=n(3738),r={mismatched:null};e.exports=function(e,t,n){return n=Object.assign({prototype:!0},n),!!r.isDeepEqual(e,t,n,[])},r.isDeepEqual=function(e,t,n,o){if(e===t)return 0!==e||1/e==1/t;const i=typeof e;if(i!==typeof t)return!1;if(null===e||null===t)return!1;if("function"===i){if(!n.deepFunction||e.toString()!==t.toString())return!1}else if("object"!==i)return e!=e&&t!=t;const l=r.getSharedType(e,t,!!n.prototype);switch(l){case a.buffer:return!1;case a.promise:return e===t;case a.regex:case a.url:return e.toString()===t.toString();case r.mismatched:return!1}for(let n=o.length-1;n>=0;--n)if(o[n].isSame(e,t))return!0;o.push(new r.SeenEntry(e,t));try{return!!r.isDeepEqualObj(l,e,t,n,o)}finally{o.pop()}},r.getSharedType=function(e,t,n){if(n)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?r.mismatched:a.getInternalProto(e);const o=a.getInternalProto(e);return o!==a.getInternalProto(t)?r.mismatched:o},r.valueOf=function(e){const t=e.valueOf;if(void 0===t)return e;try{return t.call(e)}catch(e){return e}},r.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)},r.isSetSimpleEqual=function(e,t){for(const n of Set.prototype.values.call(e))if(!Set.prototype.has.call(t,n))return!1;return!0},r.isDeepEqualObj=function(e,t,n,o,i){const{isDeepEqual:l,valueOf:s,hasOwnEnumerableProperty:c}=r,{keys:d,getOwnPropertySymbols:u}=Object;if(e===a.array){if(!o.part){if(t.length!==n.length)return!1;for(let e=0;e<t.length;++e)if(!l(t[e],n[e],o,i))return!1;return!0}for(const e of t)for(const t of n)if(l(e,t,o,i))return!0}else if(e===a.set){if(t.size!==n.size)return!1;if(!r.isSetSimpleEqual(t,n)){const e=new Set(Set.prototype.values.call(n));for(const n of Set.prototype.values.call(t)){if(e.delete(n))continue;let t=!1;for(const a of e)if(l(n,a,o,i)){e.delete(a),t=!0;break}if(!t)return!1}}}else if(e===a.map){if(t.size!==n.size)return!1;for(const[e,a]of Map.prototype.entries.call(t)){if(void 0===a&&!Map.prototype.has.call(n,e))return!1;if(!l(a,Map.prototype.get.call(n,e),o,i))return!1}}else if(e===a.error&&(t.name!==n.name||t.message!==n.message))return!1;const f=s(t),p=s(n);if((t!==f||n!==p)&&!l(f,p,o,i))return!1;const m=d(t);if(!o.part&&m.length!==d(n).length&&!o.skip)return!1;let v=0;for(const e of m)if(o.skip&&o.skip.includes(e))void 0===n[e]&&++v;else{if(!c(n,e))return!1;if(!l(t[e],n[e],o,i))return!1}if(!o.part&&m.length-v!==d(n).length)return!1;if(!1!==o.symbols){const e=u(t),a=new Set(u(n));for(const r of e){var h;if(null===(h=o.skip)||void 0===h||!h.includes(r))if(c(t,r)){if(!c(n,r))return!1;if(!l(t[r],n[r],o,i))return!1}else if(c(n,r))return!1;a.delete(r)}for(const e of a)if(c(n,e))return!1}return!0},r.SeenEntry=class{constructor(e,t){this.obj=e,this.ref=t}isSame(e,t){return this.obj===e&&this.ref===t}}},7487:(e,t,n)=>{const a=n(2888);e.exports=a.extend({type:"object",cast:{map:{from:e=>e&&"object"==typeof e,to:(e,t)=>new Map(Object.entries(e))}}})},7858:e=>{e.exports=function(e,t,n){if("bigint"==typeof e&&(e=Number(e)),e>=Number.MAX_SAFE_INTEGER&&(e=1/0),"number"!=typeof e&&void 0!==e)throw new TypeError("Timeout must be a number or bigint");return new Promise(a=>{const r=n?n.setTimeout:setTimeout,o=()=>{const n=Math.min(e,2147483647);e-=n,r(()=>e>0?o():a(t),n)};e!==1/0&&o()})}},8013:(e,t,n)=>{const a=n(554),r=n(9415),o=n(1532);t.Report=class{constructor(e,n,a,r,o,i,l){if(this.code=e,this.flags=r,this.messages=o,this.path=i.path,this.prefs=l,this.state=i,this.value=n,this.message=null,this.template=null,this.local=a||{},this.local.label=t.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty("value")||(this.local.value=this.value),this.path.length){const e=this.path[this.path.length-1];"object"!=typeof e&&(this.local.key=e)}}_setTemplate(e){if(this.template=e,!this.flags.label&&0===this.path.length){const e=this._template(this.template,"root");e&&(this.local.label=e)}}toString(){if(this.message)return this.message;const e=this.code;if(!this.prefs.errors.render)return this.code;const t=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===t?`Error code "${e}" is not defined, your custom type is missing the correct messages definition`:(this.message=t.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(e,n){return t.template(this.value,e,n||this.code,this.state,this.prefs)}},t.path=function(e){let t="";for(const n of e)"object"!=typeof n&&("string"==typeof n?(t&&(t+="."),t+=n):t+=`[${n}]`);return t},t.template=function(e,t,n,a,i){if(!t)return;if(o.isTemplate(t))return"root"!==n?t:null;let l=i.errors.language;if(r.isResolvable(l)&&(l=l.resolve(e,a,i)),l&&t[l]){if(void 0!==t[l][n])return t[l][n];if(void 0!==t[l]["*"])return t[l]["*"]}return t[n]?t[n]:t["*"]},t.label=function(e,n,a,r){if(!a.errors.label)return"";if(e.label)return e.label;let o=n.path;return"key"===a.errors.label&&n.path.length>1&&(o=n.path.slice(-1)),t.path(o)||t.template(null,a.messages,"root",n,a)||r&&t.template(null,r,"root",n,a)||"value"},t.process=function(e,n,a){if(!e)return null;const{override:r,message:o,details:i}=t.details(e);if(r)return r;if(a.errors.stack)return new t.ValidationError(o,i,n);const l=Error.stackTraceLimit;Error.stackTraceLimit=0;const s=new t.ValidationError(o,i,n);return Error.stackTraceLimit=l,s},t.details=function(e,t={}){let n=[];const a=[];for(const r of e){if(r instanceof Error){if(!1!==t.override)return{override:r};const e=r.toString();n.push(e),a.push({message:e,type:"override",context:{error:r}});continue}const e=r.toString();n.push(e),a.push({message:e,path:r.path.filter(e=>"object"!=typeof e),type:r.code,context:r.local})}return n.length>1&&(n=[...new Set(n)]),{message:n.join(". "),details:a}},t.ValidationError=class extends Error{constructor(e,t,n){super(e),this._original=n,this.details=t}static isError(e){return e instanceof t.ValidationError}},t.ValidationError.prototype.isJoi=!0,t.ValidationError.prototype.name="ValidationError",t.ValidationError.prototype.annotate=a.error},8121:e=>{const t={};e.exports=function(e){if(!e)return"";let n="";for(let a=0;a<e.length;++a){const r=e.charCodeAt(a);t.isSafe(r)?n+=e[a]:n+=t.escapeHtmlChar(r)}return n},t.escapeHtmlChar=function(e){return t.namedHtml.get(e)||(e>=256?"&#"+e+";":`&#x${e.toString(16).padStart(2,"0")};`)},t.isSafe=function(e){return t.safeCharCodes.has(e)},t.namedHtml=new Map([[38,"&"],[60,"<"],[62,">"],[34,"""],[160," "],[162,"¢"],[163,"£"],[164,"¤"],[169,"©"],[174,"®"]]),t.safeCharCodes=function(){const e=new Set;for(let t=32;t<123;++t)(t>=97||t>=65&&t<=90||t>=48&&t<=57||32===t||46===t||44===t||45===t||58===t||95===t)&&e.add(t);return e}()},8248:(e,t,n)=>{const{assert:a}=n(3115),r={};t.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(e,t){var n,r,o,i;const l=[].concat(null!==(n=(t=null!=t?t:{}).before)&&void 0!==n?n:[]),s=[].concat(null!==(r=t.after)&&void 0!==r?r:[]),c=null!==(o=t.group)&&void 0!==o?o:"?",d=null!==(i=t.sort)&&void 0!==i?i:0;a(!l.includes(c),`Item cannot come before itself: ${c}`),a(!l.includes("?"),"Item cannot come before unassociated items"),a(!s.includes(c),`Item cannot come after itself: ${c}`),a(!s.includes("?"),"Item cannot come after unassociated items"),Array.isArray(e)||(e=[e]);for(const t of e){const e={seq:this._items.length,sort:d,before:l,after:s,group:c,node:t};this._items.push(e)}if(!t.manual){const e=this._sort();a(e,"item","?"!==c?`added into group ${c}`:"","created a dependencies error")}return this.nodes}merge(e){Array.isArray(e)||(e=[e]);for(const t of e)if(t)for(const e of t._items)this._items.push(Object.assign({},e));this._items.sort(r.mergeSort);for(let e=0;e<this._items.length;++e)this._items[e].seq=e;const t=this._sort();return a(t,"merge created a dependencies error"),this.nodes}sort(){const e=this._sort();return a(e,"sort created a dependencies error"),this.nodes}_sort(){const e={},t=Object.create(null),n=Object.create(null);for(const o of this._items){var a;const i=o.seq,l=o.group;n[l]=null!==(a=n[l])&&void 0!==a?a:[],n[l].push(i),e[i]=o.before;for(const e of o.after){var r;t[e]=null!==(r=t[e])&&void 0!==r?r:[],t[e].push(i)}}for(const t in e){const a=[];for(const r in e[t]){var o;const i=e[t][r];n[i]=null!==(o=n[i])&&void 0!==o?o:[],a.push(...n[i])}e[t]=a}for(const a in t)if(n[a])for(const r of n[a])e[r].push(...t[a]);const i={};for(const t in e){const n=e[t];for(const e of n){var l;i[e]=null!==(l=i[e])&&void 0!==l?l:[],i[e].push(t)}}const s={},c=[];for(let e=0;e<this._items.length;++e){let t=e;if(i[e]){t=null;for(let e=0;e<this._items.length;++e){if(!0===s[e])continue;i[e]||(i[e]=[]);const n=i[e].length;let a=0;for(let t=0;t<n;++t)s[i[e][t]]&&++a;if(a===n){t=e;break}}}null!==t&&(s[t]=!0,c.push(t))}if(c.length!==this._items.length)return!1;const d={};for(const e of this._items)d[e.seq]=e;this._items=[],this.nodes=[];for(const e of c){const t=d[e];this.nodes.push(t.node),this._items.push(t)}return!0}},r.mergeSort=(e,t)=>e.sort===t.sort?0:e.sort<t.sort?-1:1},8253:(e,t,n)=>{const a=n(1803),r=n(8314),o=e.exports=function(e,...t){if(e)return;if(1===t.length&&t[0]instanceof Error)throw t[0];const n=t.filter(e=>""!==e).map(e=>"string"==typeof e?e:e instanceof Error?e.message:r(e));throw new a(n.join(" "),o)}},8314:e=>{e.exports=function(...e){try{return JSON.stringify(...e)}catch(e){return"[Cannot display object: "+e.message+"]"}}},8529:(e,t,n)=>{const{assert:a,clone:r,reach:o}=n(3115),i=n(9415);let l;const s={symbol:Symbol("ref"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:".",type:"value"}};t.create=function(e,t={}){a("string"==typeof e,"Invalid reference key:",e),i.assertOptions(t,["adjust","ancestor","in","iterables","map","prefix","render","separator"]),a(!t.prefix||"object"==typeof t.prefix,"options.prefix must be of type object");const n=Object.assign({},s.defaults,t);delete n.prefix;const r=n.separator,o=s.context(e,r,t.prefix);if(n.type=o.type,e=o.key,"value"===n.type)if(o.root&&(a(!r||e[0]!==r,"Cannot specify relative path with root prefix"),n.ancestor="root",e||(e=null)),r&&r===e)e=null,n.ancestor=0;else if(void 0!==n.ancestor)a(!r||!e||e[0]!==r,"Cannot combine prefix with ancestor option");else{const[t,a]=s.ancestor(e,r);a&&""===(e=e.slice(a))&&(e=null),n.ancestor=t}return n.path=r?null===e?[]:e.split(r):[e],new s.Ref(n)},t.in=function(e,n={}){return t.create(e,{...n,in:!0})},t.isRef=function(e){return!!e&&!!e[i.symbols.ref]},s.Ref=class{constructor(e){a("object"==typeof e,"Invalid reference construction"),i.assertOptions(e,["adjust","ancestor","in","iterables","map","path","render","separator","type","depth","key","root","display"]),a([!1,void 0].includes(e.separator)||"string"==typeof e.separator&&1===e.separator.length,"Invalid separator"),a(!e.adjust||"function"==typeof e.adjust,"options.adjust must be a function"),a(!e.map||Array.isArray(e.map),"options.map must be an array"),a(!e.map||!e.adjust,"Cannot set both map and adjust options"),Object.assign(this,s.defaults,e),a("value"===this.type||void 0===this.ancestor,"Non-value references cannot reference ancestors"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(e,t,n,r,o={}){return a(!this.in||o.in,"Invalid in() reference usage"),"global"===this.type?this._resolve(n.context,t,o):"local"===this.type?this._resolve(r,t,o):this.ancestor?"root"===this.ancestor?this._resolve(t.ancestors[t.ancestors.length-1],t,o):(a(this.ancestor<=t.ancestors.length,"Invalid reference exceeds the schema root:",this.display),this._resolve(t.ancestors[this.ancestor-1],t,o)):this._resolve(e,t,o)}_resolve(e,t,n){let a;if("value"===this.type&&t.mainstay.shadow&&!1!==n.shadow&&(a=t.mainstay.shadow.get(this.absolute(t))),void 0===a&&(a=o(e,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(a=this.adjust(a)),this.map){const e=this.map.get(a);void 0!==e&&(a=e)}return t.mainstay&&t.mainstay.tracer.resolve(t,this,a),a}toString(){return this.display}absolute(e){return[...e.path.slice(0,-this.ancestor),...this.path]}clone(){return new s.Ref(this)}describe(){const e={path:this.path};"value"!==this.type&&(e.type=this.type),"."!==this.separator&&(e.separator=this.separator),"value"===this.type&&1!==this.ancestor&&(e.ancestor=this.ancestor),this.map&&(e.map=[...this.map]);for(const t of["adjust","iterables","render"])null!==this[t]&&void 0!==this[t]&&(e[t]=this[t]);return!1!==this.in&&(e.in=!0),{ref:e}}updateDisplay(){const e=null!==this.key?this.key:"";if("value"!==this.type)return void(this.display=`ref:${this.type}:${e}`);if(!this.separator)return void(this.display=`ref:${e}`);if(!this.ancestor)return void(this.display=`ref:${this.separator}${e}`);if("root"===this.ancestor)return void(this.display=`ref:root:${e}`);if(1===this.ancestor)return void(this.display=`ref:${e||".."}`);const t=new Array(this.ancestor+1).fill(this.separator).join("");this.display=`ref:${t}${e||""}`}},s.Ref.prototype[i.symbols.ref]=!0,t.build=function(e){return"value"===(e=Object.assign({},s.defaults,e)).type&&void 0===e.ancestor&&(e.ancestor=1),new s.Ref(e)},s.context=function(e,t,n={}){if(e=e.trim(),n){const a=void 0===n.global?"$":n.global;if(a!==t&&e.startsWith(a))return{key:e.slice(a.length),type:"global"};const r=void 0===n.local?"#":n.local;if(r!==t&&e.startsWith(r))return{key:e.slice(r.length),type:"local"};const o=void 0===n.root?"/":n.root;if(o!==t&&e.startsWith(o))return{key:e.slice(o.length),type:"value",root:!0}}return{key:e,type:"value"}},s.ancestor=function(e,t){if(!t)return[1,0];if(e[0]!==t)return[1,0];if(e[1]!==t)return[0,1];let n=2;for(;e[n]===t;)++n;return[n-1,n]},t.toSibling=0,t.toParent=1,t.Manager=class{constructor(){this.refs=[]}register(e,a){if(e)if(a=void 0===a?t.toParent:a,Array.isArray(e))for(const t of e)this.register(t,a);else if(i.isSchema(e))for(const t of e._refs.refs)t.ancestor-a>=0&&this.refs.push({ancestor:t.ancestor-a,root:t.root});else t.isRef(e)&&"value"===e.type&&e.ancestor-a>=0&&this.refs.push({ancestor:e.ancestor-a,root:e.root}),l=l||n(1532),l.isTemplate(e)&&this.register(e.refs(),a)}get length(){return this.refs.length}clone(){const e=new t.Manager;return e.refs=r(this.refs),e}reset(){this.refs=[]}roots(){return this.refs.filter(e=>!e.ancestor).map(e=>e.root)}}},8663:()=>{},8669:e=>{e.exports=function(e){return e.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")}},8762:e=>{const t=Symbol("wrapped");e.exports=function(e){if(e[t])return e;let n=!1;const a=function(...t){n||(n=!0,e(...t))};return a[t]=!0,a}},9017:()=>{},9033:(e,t,n)=>{const{assert:a,escapeRegex:r}=n(3115),{isDomainValid:o,isEmailValid:i,ipRegex:l,uriRegex:s}=n(3305),c=n(4895),d=n(680),u=n(9415),f={tlds:c.tlds instanceof Set&&{tlds:{allow:c.tlds,deny:null}},base64Regex:{true:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/},false:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/}},dataUriRegex:/^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:l({cidr:"forbidden"}).regex,isoDurationRegex:/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,guidBrackets:{"{":"}","[":"]","(":")","":""},guidVersions:{uuidv1:"1",uuidv2:"2",uuidv3:"3",uuidv4:"4",uuidv5:"5",uuidv6:"6",uuidv7:"7",uuidv8:"8"},guidSeparators:new Set([void 0,!0,!1,"-",":"]),normalizationForms:["NFC","NFD","NFKC","NFKD"]};e.exports=d.extend({type:"string",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:"string",method(e,{schema:t,state:n,prefs:a}){const r=t.$_getRule("normalize");r&&(e=e.normalize(r.args.form));const o=t.$_getRule("case");o&&(e="upper"===o.args.direction?e.toLocaleUpperCase():e.toLocaleLowerCase());const i=t.$_getRule("trim");if(i&&i.args.enabled&&(e=e.trim()),t.$_terms.replacements)for(const n of t.$_terms.replacements)e=e.replace(n.pattern,n.replacement);const l=t.$_getRule("hex");if(l&&l.args.options.byteAligned&&e.length%2!=0&&(e=`0${e}`),t.$_getRule("isoDate")){const t=f.isoDate(e);t&&(e=t)}if(t._flags.truncate){const r=t.$_getRule("max");if(r){let o=r.args.limit;if(u.isResolvable(o)&&(o=o.resolve(e,n,a),!u.limit(o)))return{value:e,errors:t.$_createError("any.ref",o,{ref:r.args.limit,arg:"limit",reason:"must be a positive integer"},n,a)};e=e.slice(0,o)}}return{value:e}}},validate(e,{schema:t,error:n}){if("string"!=typeof e)return{value:e,errors:n("string.base")};if(""===e){const a=t.$_getRule("min");if(a&&0===a.args.limit)return;return{value:e,errors:n("string.empty")}}},rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate:(e,t)=>/^[a-zA-Z0-9]+$/.test(e)?e:t.error("string.alphanum")},base64:{method(e={}){return u.assertOptions(e,["paddingRequired","urlSafe"]),e={urlSafe:!1,paddingRequired:!0,...e},a("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),a("boolean"==typeof e.urlSafe,"urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:e}})},validate:(e,t,{options:n})=>f.base64Regex[n.paddingRequired][n.urlSafe].test(e)?e:t.error("string.base64")},case:{method(e){return a(["lower","upper"].includes(e),"Invalid case:",e),this.$_addRule({name:"case",args:{direction:e}})},validate:(e,t,{direction:n})=>"lower"===n&&e===e.toLocaleLowerCase()||"upper"===n&&e===e.toLocaleUpperCase()?e:t.error(`string.${n}case`),convert:!0},creditCard:{method(){return this.$_addRule("creditCard")},validate(e,t){let n=e.length,a=0,r=1;for(;n--;){const t=e.charAt(n)*r;a+=t-9*(t>9),r^=3}return a>0&&a%10==0?e:t.error("string.creditCard")}},dataUri:{method(e={}){return u.assertOptions(e,["paddingRequired"]),e={paddingRequired:!0,...e},a("boolean"==typeof e.paddingRequired,"paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:e}})},validate(e,t,{options:n}){const a=e.match(f.dataUriRegex);if(a){if(!a[2])return e;if("base64"!==a[2])return e;if(f.base64Regex[n.paddingRequired].false.test(a[3]))return e}return t.error("string.dataUri")}},domain:{method(e){e&&u.assertOptions(e,["allowFullyQualified","allowUnicode","allowUnderscore","maxDomainSegments","minDomainSegments","tlds"]);const t=f.addressOptions(e);return this.$_addRule({name:"domain",args:{options:e},address:t})},validate:(e,t,n,{address:a})=>o(e,a)?e:t.error("string.domain")},email:{method(e={}){u.assertOptions(e,["allowFullyQualified","allowUnicode","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),a(void 0===e.multiple||"boolean"==typeof e.multiple,"multiple option must be an boolean");const t=f.addressOptions(e),n=new RegExp(`\\s*[${e.separator?r(e.separator):","}]\\s*`);return this.$_addRule({name:"email",args:{options:e},regex:n,address:t})},validate(e,t,{options:n},{regex:a,address:r}){const o=n.multiple?e.split(a):[e],l=[];for(const e of o)i(e,r)||l.push(e);return l.length?t.error("string.email",{value:e,invalids:l}):e}},guid:{alias:"uuid",method(e={}){u.assertOptions(e,["version","separator","wrapper"]),a(void 0===e.wrapper||"boolean"==typeof e.wrapper||"string"==typeof e.wrapper&&"string"==typeof f.guidBrackets[e.wrapper],`"wrapper" must be true, false, or one of "${Object.keys(f.guidBrackets).filter(Boolean).join('", "')}"`);let t="";if(e.version){const n=[].concat(e.version);a(n.length>=1,"version must have at least 1 valid version specified");const r=new Set;for(let e=0;e<n.length;++e){const o=n[e];a("string"==typeof o,"version at position "+e+" must be a string");const i=f.guidVersions[o.toLowerCase()];a(i,"version at position "+e+" must be one of "+Object.keys(f.guidVersions).join(", ")),a(!r.has(i),"version at position "+e+" must not be a duplicate"),t+=i,r.add(i)}}a(f.guidSeparators.has(e.separator),'separator must be one of true, false, "-", or ":"');const n=void 0===e.separator?"[:-]?":!0===e.separator?"[:-]":!1===e.separator?"[]?":`\\${e.separator}`;let o,i;void 0===e.wrapper?(o="[\\[{\\(]?",i="[\\]}\\)]?"):!0===e.wrapper?(o="[\\[{\\(]",i="[\\]}\\)]"):!1===e.wrapper?(o="",i=""):(o=r(e.wrapper),i=r(f.guidBrackets[e.wrapper]));const l=new RegExp(`^(${o})[0-9A-F]{8}(${n})[0-9A-F]{4}\\2?[${t||"0-9A-F"}][0-9A-F]{3}\\2?[${t?"89AB":"0-9A-F"}][0-9A-F]{3}\\2?[0-9A-F]{12}(${i})$`,"i");return this.$_addRule({name:"guid",args:{options:e},regex:l})},validate(e,t,n,{regex:a}){const r=a.exec(e);if(!r)return t.error("string.guid");const o=r[1],i=r[r.length-1];return(o||i)&&f.guidBrackets[o]!==i?t.error("string.guid"):e}},hex:{method(e={}){return u.assertOptions(e,["byteAligned","prefix"]),e={byteAligned:!1,prefix:!1,...e},a("boolean"==typeof e.byteAligned,"byteAligned must be boolean"),a("boolean"==typeof e.prefix||"optional"===e.prefix,'prefix must be boolean or "optional"'),this.$_addRule({name:"hex",args:{options:e}})},validate:(e,t,{options:n})=>("optional"===n.prefix?f.hexRegex.withOptionalPrefix:!0===n.prefix?f.hexRegex.withPrefix:f.hexRegex.withoutPrefix).test(e)?n.byteAligned&&e.length%2!=0?t.error("string.hexAlign"):e:t.error("string.hex")},hostname:{method(){return this.$_addRule("hostname")},validate:(e,t)=>o(e,{minDomainSegments:1})||f.ipRegex.test(e)?e:t.error("string.hostname")},insensitive:{method(){return this.$_setFlag("insensitive",!0)}},ip:{method(e={}){u.assertOptions(e,["cidr","version"]);const{cidr:t,versions:n,regex:a}=l(e),r=e.version?n:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:t,version:r}},regex:a})},validate:(e,t,{options:n},{regex:a})=>a.test(e)?e:n.version?t.error("string.ipVersion",{value:e,cidr:n.cidr,version:n.version}):t.error("string.ip",{value:e,cidr:n.cidr})},isoDate:{method(){return this.$_addRule("isoDate")},validate:(e,{error:t})=>f.isoDate(e)?e:t("string.isoDate")},isoDuration:{method(){return this.$_addRule("isoDuration")},validate:(e,t)=>f.isoDurationRegex.test(e)?e:t.error("string.isoDuration")},length:{method(e,t){return f.length(this,"length",e,"=",t)},validate(e,t,{limit:n,encoding:a},{name:r,operator:o,args:i}){const l=!a&&e.length;return u.compare(l,n,o)?e:t.error("string."+r,{limit:i.limit,value:e,encoding:a})},args:[{name:"limit",ref:!0,assert:u.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(e,t){return f.length(this,"max",e,"<=",t)},args:["limit","encoding"]},min:{method(e,t){return f.length(this,"min",e,">=",t)},args:["limit","encoding"]},normalize:{method(e="NFC"){return a(f.normalizationForms.includes(e),"normalization form must be one of "+f.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:e}})},validate:(e,{error:t},{form:n})=>e===e.normalize(n)?e:t("string.normalize",{value:e,form:n}),convert:!0},pattern:{alias:"regex",method(e,t={}){a(e instanceof RegExp,"regex must be a RegExp"),a(!e.flags.includes("g")&&!e.flags.includes("y"),"regex should not use global or sticky mode"),"string"==typeof t&&(t={name:t}),u.assertOptions(t,["invert","name"]);const n=["string.pattern",t.invert?".invert":"",t.name?".name":".base"].join("");return this.$_addRule({name:"pattern",args:{regex:e,options:t},errorCode:n})},validate:(e,t,{regex:n,options:a},{errorCode:r})=>n.test(e)^a.invert?e:t.error(r,{name:a.name,regex:n,value:e}),args:["regex","options"],multi:!0},replace:{method(e,t){"string"==typeof e&&(e=new RegExp(r(e),"g")),a(e instanceof RegExp,"pattern must be a RegExp"),a("string"==typeof t,"replacement must be a String");const n=this.clone();return n.$_terms.replacements||(n.$_terms.replacements=[]),n.$_terms.replacements.push({pattern:e,replacement:t}),n}},token:{method(){return this.$_addRule("token")},validate:(e,t)=>/^\w+$/.test(e)?e:t.error("string.token")},trim:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:e}})},validate:(e,t,{enabled:n})=>n&&e!==e.trim()?t.error("string.trim"):e,convert:!0},truncate:{method(e=!0){return a("boolean"==typeof e,"enabled must be a boolean"),this.$_setFlag("truncate",e)}},uppercase:{method(){return this.case("upper")}},uri:{method(e={}){u.assertOptions(e,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme","encodeUri"]),e.domain&&u.assertOptions(e.domain,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const{regex:t,scheme:n}=s(e),a=e.domain?f.addressOptions(e.domain):null;return this.$_addRule({name:"uri",args:{options:e},regex:t,domain:a,scheme:n})},validate(e,t,{options:n},{regex:a,domain:r,scheme:i}){if(["http:/","https:/"].includes(e))return t.error("string.uri");let l=a.exec(e);if(!l&&t.prefs.convert&&n.encodeUri){const t=encodeURI(e);l=a.exec(t),l&&(e=t)}if(l){const a=l[1]||l[2];return!r||n.allowRelative&&!a||o(a,r)?e:t.error("string.domain",{value:a})}return n.relativeOnly?t.error("string.uriRelativeOnly"):n.scheme?t.error("string.uriCustomScheme",{scheme:i,value:e}):t.error("string.uri")}}},manifest:{build(e,t){if(t.replacements)for(const{pattern:n,replacement:a}of t.replacements)e=e.replace(n,a);return e}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}}),f.addressOptions=function(e){if(!e)return f.tlds||e;if(a(void 0===e.minDomainSegments||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,"minDomainSegments must be a positive integer"),a(void 0===e.maxDomainSegments||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),!1===e.tlds)return e;if(!0===e.tlds||void 0===e.tlds)return a(f.tlds,"Built-in TLD list disabled"),Object.assign({},e,f.tlds);a("object"==typeof e.tlds,"tlds must be true, false, or an object");const t=e.tlds.deny;if(t)return Array.isArray(t)&&(e=Object.assign({},e,{tlds:{deny:new Set(t)}})),a(e.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),a(!e.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),f.validateTlds(e.tlds.deny,"tlds.deny"),e;const n=e.tlds.allow;return n?!0===n?(a(f.tlds,"Built-in TLD list disabled"),Object.assign({},e,f.tlds)):(Array.isArray(n)&&(e=Object.assign({},e,{tlds:{allow:new Set(n)}})),a(e.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),f.validateTlds(e.tlds.allow,"tlds.allow"),e):{...e,tlds:!1}},f.validateTlds=function(e,t){for(const n of e)a(o(n,{minDomainSegments:1,maxDomainSegments:1}),`${t} must contain valid top level domain names`)},f.isoDate=function(e){if(!u.isIsoDate(e))return null;/.*T.*[+-]\d\d$/.test(e)&&(e+="00");const t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()},f.length=function(e,t,n,r,o){return a(!o||!1,"Invalid encoding:",o),e.$_addRule({name:t,method:"length",args:{limit:n,encoding:o},operator:r})}},9145:e=>{const t={};e.exports=t.Bench=class{constructor(){this.ts=0,this.reset()}reset(){this.ts=t.Bench.now()}elapsed(){return t.Bench.now()-this.ts}static now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}}},9241:(e,t,n)=>{const a=n(8253);e.exports=function(e){return a(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(e),"Bad attribute value ("+e+")"),e.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')}},9315:(e,t,n)=>{const a=n(8253),r=n(4126),o=n(86),i={};e.exports=i.merge=function(e,t,n){if(a(e&&"object"==typeof e,"Invalid target value: must be an object"),a(null==t||"object"==typeof t,"Invalid source value: must be null, undefined, or an object"),!t)return e;if(n=Object.assign({nullOverride:!0,mergeArrays:!0},n),Array.isArray(t)){a(Array.isArray(e),"Cannot merge array onto an object"),n.mergeArrays||(e.length=0);for(let a=0;a<t.length;++a)e.push(r(t[a],{symbols:n.symbols}));return e}const l=o.keys(t,n);for(let a=0;a<l.length;++a){const o=l[a];if("__proto__"===o||!Object.prototype.propertyIsEnumerable.call(t,o))continue;const s=t[o];if(s&&"object"==typeof s){if(e[o]===s)continue;!e[o]||"object"!=typeof e[o]||Array.isArray(e[o])!==Array.isArray(s)||s instanceof Date||s instanceof RegExp?e[o]=r(s,{symbols:n.symbols}):i.merge(e[o],s,n)}else(null!=s||n.nullOverride)&&(e[o]=s)}return e}},9415:(e,t,n)=>{const{assert:a,AssertError:r}=n(3115),o=n(6913);let i,l;const s={isoDate:/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/};t.version=o.version,t.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:"iso",errors:{escapeHtml:!1,label:"path",language:null,render:!0,stack:!1,wrap:{label:'"',array:"[]"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:"optional",skipFunctions:!1,stripUnknown:!1,warnings:!1},t.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")},t.assertOptions=function(e,t,n="Options"){a(e&&"object"==typeof e&&!Array.isArray(e),"Options must be of type object");const r=Object.keys(e).filter(e=>!t.includes(e));a(0===r.length,`${n} contain unknown keys: ${r}`)},t.checkPreferences=function(e){l=l||n(1688);const t=l.preferences.validate(e);if(t.error)throw new r([t.error.details[0].message])},t.compare=function(e,t,n){switch(n){case"=":return e===t;case">":return e>t;case"<":return e<t;case">=":return e>=t;case"<=":return e<=t}},t.default=function(e,t){return void 0===e?t:e},t.isIsoDate=function(e){return s.isoDate.test(e)},t.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},t.isResolvable=function(e){return!!e&&(e[t.symbols.ref]||e[t.symbols.template])},t.isSchema=function(e,n={}){const r=e&&e[t.symbols.any];return!!r&&(a(n.legacy||r.version===t.version,"Cannot mix different versions of joi schemas"),!0)},t.isValues=function(e){return e[t.symbols.values]},t.limit=function(e){return Number.isSafeInteger(e)&&e>=0},t.preferences=function(e,a){i=i||n(6162),e=e||{},a=a||{};const r=Object.assign({},e,a);return a.errors&&e.errors&&(r.errors=Object.assign({},e.errors,a.errors),r.errors.wrap=Object.assign({},e.errors.wrap,a.errors.wrap)),a.messages&&(r.messages=i.compile(a.messages,e.messages)),delete r[t.symbols.prefs],r},t.tryWithPath=function(e,t,n={}){try{return e()}catch(e){throw void 0!==e.path?e.path=t+"."+e.path:e.path=t,n.append&&(e.message=`${e.message} (${e.path})`),e}},t.validateArg=function(e,n,{assert:a,message:r}){if(t.isSchema(a)){const t=a.validate(e);if(!t.error)return;return t.error.message}if(!a(e))return n?`${n} ${r}`:r},t.verifyFlat=function(e,t){for(const n of e)a(!Array.isArray(n),"Method no longer accepts array arguments:",t)}},9556:(e,t,n)=>{const{assert:a}=n(3115),r=n(680),o=n(9415),i=n(3541),l=n(8013),s={};e.exports=r.extend({type:"link",properties:{schemaChain:!0},terms:{link:{init:null,manifest:"single",register:!1}},args:(e,t)=>e.ref(t),validate(e,{schema:t,state:n,prefs:r}){a(t.$_terms.link,"Uninitialized link schema");const o=s.generate(t,e,n,r),i=t.$_terms.link[0].ref;return o.$_validate(e,n.nest(o,`link:${i.display}:${o.type}`),r)},generate:(e,t,n,a)=>s.generate(e,t,n,a),rules:{ref:{method(e){a(!this.$_terms.link,"Cannot reinitialize schema"),e=i.ref(e),a("value"===e.type||"local"===e.type,"Invalid reference type:",e.type),a("local"===e.type||"root"===e.ancestor||e.ancestor>0,"Link cannot reference itself");const t=this.clone();return t.$_terms.link=[{ref:e}],t}},relative:{method(e=!0){return this.$_setFlag("relative",e)}}},overrides:{concat(e){a(this.$_terms.link,"Uninitialized link schema"),a(o.isSchema(e),"Invalid schema object"),a("link"!==e.type,"Cannot merge type link with another link");const t=this.clone();return t.$_terms.whens||(t.$_terms.whens=[]),t.$_terms.whens.push({concat:e}),t.$_mutateRebuild()}},manifest:{build:(e,t)=>(a(t.link,"Invalid link description missing link"),e.ref(t.link))}}),s.generate=function(e,t,n,a){let r=n.mainstay.links.get(e);if(r)return r._generate(t,n,a).schema;const o=e.$_terms.link[0].ref,{perspective:i,path:l}=s.perspective(o,n);s.assert(i,"which is outside of schema boundaries",o,e,n,a);try{r=l.length?i.$_reach(l):i}catch{s.assert(!1,"to non-existing schema",o,e,n,a)}return s.assert("link"!==r.type,"which is another link",o,e,n,a),e._flags.relative||n.mainstay.links.set(e,r),r._generate(t,n,a).schema},s.perspective=function(e,t){if("local"===e.type){for(const{schema:n,key:a}of t.schemas){if((n._flags.id||a)===e.path[0])return{perspective:n,path:e.path.slice(1)};if(n.$_terms.shared)for(const t of n.$_terms.shared)if(t._flags.id===e.path[0])return{perspective:t,path:e.path.slice(1)}}return{perspective:null,path:null}}return"root"===e.ancestor?{perspective:t.schemas[t.schemas.length-1].schema,path:e.path}:{perspective:t.schemas[e.ancestor]&&t.schemas[e.ancestor].schema,path:e.path}},s.assert=function(e,t,n,r,o,i){e||a(!1,`"${l.label(r._flags,o,i)}" contains link reference "${n.display}" ${t}`)}},9725:e=>{e.exports=function(){}}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,n),o.exports}return n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(1100)})())}(To)),To.exports),Do=Io(jo),Mo={defaults:{collection:null,hidden:!1,singleton:!1,icon:null,note:null,translations:null,display_template:null,accountability:"all"},data:[{collection:"directus_access",icon:"admin_panel_settings",note:"$t:directus_collection.directus_access",display_template:"{{ policy.name }}",sort_field:"sort"},{collection:"directus_activity",note:"$t:directus_collection.directus_activity",accountability:null},{collection:"directus_collections",icon:"database",note:"$t:directus_collection.directus_collections"},{collection:"directus_comments",note:"$t:directus_collection.directus_comments"},{collection:"directus_fields",icon:"input",note:"$t:directus_collection.directus_fields"},{collection:"directus_files",icon:"folder",note:"$t:directus_collection.directus_files",display_template:"{{ $thumbnail }} {{ title }}"},{collection:"directus_folders",note:"$t:directus_collection.directus_folders",display_template:"{{ name }}"},{collection:"directus_migrations",note:"$t:directus_collection.directus_migrations"},{collection:"directus_permissions",icon:"admin_panel_settings",note:"$t:directus_collection.directus_permissions"},{collection:"directus_policies",icon:"admin_panel_settings",note:"$t:directus_collection.directus_policies"},{collection:"directus_presets",icon:"bookmark",note:"$t:directus_collection.directus_presets",accountability:null},{collection:"directus_relations",icon:"merge_type",note:"$t:directus_collection.directus_relations"},{collection:"directus_revisions",note:"$t:directus_collection.directus_revisions",accountability:null},{collection:"directus_roles",icon:"supervised_user_circle",note:"$t:directus_collection.directus_roles"},{collection:"directus_sessions",note:"$t:directus_collection.directus_sessions"},{collection:"directus_settings",singleton:!0,note:"$t:directus_collection.directus_settings"},{collection:"directus_users",archive_field:"status",archive_value:"archived",unarchive_value:"draft",icon:"people_alt",note:"$t:directus_collection.directus_users",display_template:"{{ first_name }} {{ last_name }}"},{collection:"directus_dashboards",note:"$t:directus_collection.directus_dashboards"},{collection:"directus_panels",note:"$t:directus_collection.directus_panels"},{collection:"directus_notifications",note:"$t:directus_collection.directus_notifications"},{collection:"directus_shares",icon:"share",note:"$t:directus_collection.directus_shares"},{collection:"directus_flows",note:"$t:directus_collection.directus_flows"},{collection:"directus_operations",note:"$t:directus_collection.directus_operations"},{collection:"directus_translations",note:"$t:directus_collection.directus_translations"},{collection:"directus_versions",note:"$t:directus_collection.directus_versions"},{collection:"directus_extensions",note:"$t:directus_collection.directus_extensions"},{collection:"directus_deployments",icon:"cloud_upload",note:"$t:directus_collection.directus_deployments"},{collection:"directus_deployment_projects",note:"$t:directus_collection.directus_deployment_projects"},{collection:"directus_deployment_runs",note:"$t:directus_collection.directus_deployment_runs"}]};Mo.data.map(e=>({...Mo.defaults,...e,system:!0}));const Lo=Mo.data.map(e=>e.collection);var Fo={defaults:{many_collection:"directus_users",many_field:null,one_collection:null,one_field:null,one_allowed_collections:null,one_collection_field:null,one_deselect_action:"nullify",junction_field:null,sort_field:null},data:[{many_collection:"directus_collections",many_field:"group",one_collection:"directus_collections"},{many_collection:"directus_comments",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_comments",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_comments",many_field:"user_updated",one_collection:"directus_users"},{many_collection:"directus_users",many_field:"role",one_collection:"directus_roles",one_field:"users"},{many_collection:"directus_users",many_field:"avatar",one_collection:"directus_files"},{many_collection:"directus_revisions",many_field:"activity",one_collection:"directus_activity",one_field:"revisions"},{many_collection:"directus_revisions",many_field:"parent",one_collection:"directus_revisions"},{many_collection:"directus_revisions",many_field:"version",one_collection:"directus_versions"},{many_collection:"directus_presets",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_presets",many_field:"role",one_collection:"directus_roles"},{many_collection:"directus_folders",many_field:"parent",one_collection:"directus_folders"},{many_collection:"directus_files",many_field:"folder",one_collection:"directus_folders"},{many_collection:"directus_files",many_field:"uploaded_by",one_collection:"directus_users"},{many_collection:"directus_files",many_field:"modified_by",one_collection:"directus_users"},{many_collection:"directus_fields",many_field:"collection",one_collection:"directus_collections",one_field:"fields"},{many_collection:"directus_fields",many_field:"group",one_collection:"directus_fields"},{many_collection:"directus_activity",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_settings",many_field:"project_logo",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_foreground",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_background",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"public_favicon",one_collection:"directus_files"},{many_collection:"directus_settings",many_field:"storage_default_folder",one_collection:"directus_folders"},{many_collection:"directus_settings",many_field:"public_registration_role",one_collection:"directus_roles"},{many_collection:"directus_panels",many_field:"dashboard",one_collection:"directus_dashboards",one_field:"panels"},{many_collection:"directus_panels",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_flows",many_field:"operation",one_collection:"directus_operations"},{many_collection:"directus_flows",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_operations",many_field:"flow",one_collection:"directus_flows",one_field:"operations",one_deselect_action:"delete"},{many_collection:"directus_operations",many_field:"resolve",one_collection:"directus_operations"},{many_collection:"directus_operations",many_field:"reject",one_collection:"directus_operations"},{many_collection:"directus_operations",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_sessions",many_field:"user",one_collection:"directus_users"},{many_collection:"directus_sessions",many_field:"share",one_collection:"directus_shares"},{many_collection:"directus_dashboards",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_notifications",many_field:"recipient",one_collection:"directus_users"},{many_collection:"directus_notifications",many_field:"sender",one_collection:"directus_users"},{many_collection:"directus_shares",many_field:"role",one_collection:"directus_roles"},{many_collection:"directus_shares",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_shares",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_versions",many_field:"collection",one_collection:"directus_collections"},{many_collection:"directus_versions",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_versions",many_field:"user_updated",one_collection:"directus_users"},{many_collection:"directus_permissions",many_field:"policy",one_collection:"directus_policies",one_field:"permissions",one_deselect_action:"delete"},{many_collection:"directus_access",many_field:"policy",one_collection:"directus_policies",one_field:"roles",one_deselect_action:"delete",junction_field:"role"},{many_collection:"directus_access",many_field:"policy",one_collection:"directus_policies",one_field:"users",one_deselect_action:"delete",junction_field:"user"},{many_collection:"directus_access",many_field:"role",one_collection:"directus_roles",one_field:"policies",one_deselect_action:"delete",junction_field:"policy",sort_field:"sort"},{many_collection:"directus_access",many_field:"user",one_collection:"directus_users",one_field:"policies",one_deselect_action:"delete",junction_field:"policy",sort_field:"sort"},{many_collection:"directus_roles",many_field:"parent",one_collection:"directus_roles",one_field:"children"},{many_collection:"directus_deployment_projects",many_field:"deployment",one_collection:"directus_deployments",one_field:"projects",one_deselect_action:"delete"},{many_collection:"directus_deployments",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_deployment_projects",many_field:"user_created",one_collection:"directus_users"},{many_collection:"directus_deployment_runs",many_field:"project",one_collection:"directus_deployment_projects",one_field:"runs",one_deselect_action:"delete"},{many_collection:"directus_deployment_runs",many_field:"user_created",one_collection:"directus_users"}]};Fo.data.map(e=>({...Fo.defaults,...e,system:!0}));var Po={collection:null,field:null,special:null,interface:null,options:null,display:null,display_options:null,readonly:!1,hidden:!1,sort:null,width:"full",group:null,translations:null,note:null,conditions:null,required:!1,searchable:!0},Uo={table:"directus_activity",fields:[{field:"id",width:"half"},{field:"item",width:"half"},{field:"action",display:"labels",display_options:{choices:[{text:"$t:field_options.directus_activity.create",value:"create",foreground:"var(--theme--primary)",background:"var(--theme--primary-subdued)"},{text:"$t:field_options.directus_activity.update",value:"update",foreground:"var(--blue)",background:"var(--blue-25)"},{text:"$t:field_options.directus_activity.delete",value:"delete",foreground:"var(--theme--danger)",background:"var(--danger-25)"},{text:"$t:field_options.directus_activity.login",value:"login",foreground:"var(--purple)",background:"var(--purple-25)"}]},width:"half"},{field:"collection",display:"collection",display_options:{icon:!0},width:"half"},{field:"timestamp",display:"datetime",special:["date-created","cast-timestamp"],options:{relative:!0},width:"half"},{field:"user",display:"user",width:"half"},{field:"user_agent",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"origin",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"ip",display:"formatted-value",display_options:{font:"monospace"},width:"half"},{field:"revisions",interface:"list-o2m",special:["o2m"],options:{fields:["collection","item"]},width:"half"}],indexed:[{field:"timestamp"}]},Bo={table:"directus_collections",fields:[{field:"collection_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"box",title:"$t:field_options.directus_collections.collection_setup"},width:"full"},{field:"collection",interface:"input",options:{font:"monospace"},readonly:!0,width:"half"},{field:"note",interface:"input",options:{placeholder:"$t:field_options.directus_collections.note_placeholder"},width:"half"},{field:"icon",interface:"select-icon",options:null,width:"half"},{field:"color",interface:"select-color",options:{placeholder:"$t:interfaces.select-color.placeholder"},width:"half"},{field:"display_template",interface:"system-display-template",options:{collectionField:"collection"},width:"full"},{field:"hidden",special:["cast-boolean"],interface:"boolean",options:{label:"$t:field_options.directus_collections.hidden_label"},width:"half"},{field:"singleton",special:["cast-boolean"],interface:"boolean",options:{label:"$t:singleton_label"},width:"half"},{field:"translations",special:["cast-json"],interface:"list",note:"$t:field_options.directus_collections.collection_naming_translations_note",options:{template:"{{ translation }} ({{ language }})",fields:[{field:"language",name:"$t:language",type:"string",schema:{default_value:"en-US"},meta:{interface:"system-language",width:"half",required:!0}},{field:"translation",name:"$t:field_options.directus_collections.collection_name",type:"string",meta:{interface:"input",width:"half",required:!0,options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}},{field:"singular",name:"$t:field_options.directus_collections.singular_unit",type:"string",meta:{interface:"input",width:"half",options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}},{field:"plural",name:"$t:field_options.directus_collections.plural_unit",type:"string",meta:{interface:"input",width:"half",options:{placeholder:"$t:field_options.directus_collections.translation_placeholder"}}}]},width:"full"},{field:"content_translations_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"translate",title:"$t:field_options.directus_collections.content_translations_divider"},width:"full"},{field:"translations_enable_helper",special:["alias","no-data"],interface:"system-collections-translations",width:"full"},{field:"preview_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"preview",title:"$t:field_options.directus_collections.preview_divider"},width:"full"},{field:"preview_url",interface:"system-display-template",options:{collectionField:"collection",injectVersionField:!0},width:"full"},{field:"content_versioning_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"published_with_changes",title:"$t:field_options.directus_collections.content_versioning_divider"},width:"full"},{field:"versioning",interface:"boolean",special:["cast-boolean"],options:{label:"$t:field_options.directus_collections.enable_versioning"},width:"half"},{field:"archive_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"archive",title:"$t:field_options.directus_collections.archive_divider"},width:"full"},{field:"archive_field",interface:"system-field",options:{collectionField:"collection",allowNone:!0,placeholder:"$t:field_options.directus_collections.archive_field_placeholder"},width:"half"},{field:"archive_app_filter",interface:"boolean",special:["cast-boolean"],options:{label:"$t:field_options.directus_collections.archive_app_filter"},width:"half"},{field:"archive_value",interface:"input",options:{font:"monospace",iconRight:"archive",placeholder:"$t:field_options.directus_collections.archive_value"},width:"half"},{field:"unarchive_value",interface:"input",options:{font:"monospace",iconRight:"unarchive",placeholder:"$t:field_options.directus_collections.unarchive_value"},width:"half"},{field:"sort_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"sort",title:"$t:field_options.directus_collections.sort_divider"},width:"full"},{field:"sort_field",interface:"system-field",options:{collectionField:"collection",placeholder:"$t:field_options.directus_collections.sort_field",typeAllowList:["float","decimal","integer"],allowNone:!0,allowPrimaryKey:!1,allowForeignKeys:!1},width:"half"},{field:"accountability_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"admin_panel_settings",title:"$t:field_options.directus_collections.accountability_divider"},width:"full"},{field:"accountability",interface:"select-dropdown",options:{choices:[{text:"$t:field_options.directus_collections.track_activity_revisions",value:"all"},{text:"$t:field_options.directus_collections.only_track_activity",value:"activity"},{text:"$t:field_options.directus_collections.do_not_track_anything",value:null}]},width:"half"},{field:"duplication_divider",special:["alias","no-data"],interface:"presentation-divider",options:{icon:"content_copy",title:"$t:field_options.directus_collections.duplication_divider"}},{field:"item_duplication_fields",special:["cast-json"],interface:"system-field-tree",options:{collectionField:"collection"}},{field:"sort",hidden:!0},{field:"group",hidden:!0},{field:"collapse",hidden:!0}]},Vo={table:"directus_comments",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"collection"},{field:"item"},{field:"comment"},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"date_updated",special:["date-updated","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"user_updated",special:["user-updated"]}]},zo={table:"directus_dashboards",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"panels",special:["o2m"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"note"},{field:"color"}]},Go={table:"directus_deployment_projects",fields:[{field:"id",special:["uuid"]},{field:"deployment"},{field:"external_id"},{field:"name"},{field:"url"},{field:"framework"},{field:"deployable",special:["cast-boolean"]},{field:"runs",special:["o2m"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Ko={table:"directus_deployment_runs",fields:[{field:"id",special:["uuid"]},{field:"project"},{field:"external_id"},{field:"target"},{field:"status"},{field:"url"},{field:"started_at",special:["cast-timestamp"]},{field:"completed_at",special:["cast-timestamp"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Ho={table:"directus_deployments",fields:[{field:"id",special:["uuid"]},{field:"provider"},{field:"credentials",special:["encrypt"]},{field:"options",special:["cast-json"]},{field:"projects",special:["o2m"]},{field:"webhook_ids",special:["cast-json"]},{field:"last_synced_at",special:["cast-timestamp"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]}]},Xo={table:"directus_extensions",fields:[{collection:"directus_extensions",field:"id",special:["uuid"]},{collection:"directus_extensions",field:"folder"},{collection:"directus_extensions",field:"source"},{collection:"directus_extensions",field:"bundle"},{collection:"directus_extensions",field:"enabled",special:["cast-boolean"]}]},qo={table:"directus_fields",fields:[{collection:"directus_fields",field:"id",width:"half"},{collection:"directus_fields",field:"collection",width:"half"},{collection:"directus_fields",field:"field",width:"half"},{collection:"directus_fields",field:"special",hidden:!0,special:["cast-csv"],width:"half"},{collection:"directus_fields",field:"interface",width:"half"},{collection:"directus_fields",field:"options",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"display",width:"half"},{collection:"directus_fields",field:"display_options",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"readonly",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"hidden",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"required",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"searchable",hidden:!0,special:["cast-boolean"],width:"half"},{collection:"directus_fields",field:"sort",width:"half"},{collection:"directus_fields",field:"width",width:"half"},{collection:"directus_fields",field:"group",width:"half"},{collection:"directus_fields",field:"translations",hidden:!0,special:["cast-json"],width:"half"},{collection:"directus_fields",field:"note",width:"half"},{collection:"directus_fields",field:"conditions",hidden:!0,special:["cast-json"]},{collection:"directus_fields",field:"validation",hidden:!0,special:["cast-json"]},{collection:"directus_fields",field:"validation_message",hidden:!0}]},Wo={table:"directus_files",fields:[{field:"id",hidden:!0,interface:"input",special:["uuid"]},{field:"title",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_files.title"},width:"full"},{field:"description",interface:"input-multiline",width:"full",options:{placeholder:"$t:field_options.directus_files.description"}},{field:"tags",interface:"tags",options:{iconRight:"local_offer"},special:["cast-json"],width:"full",display:"labels",display_options:{choices:null,format:!1}},{field:"location",interface:"input",options:{iconRight:"place",placeholder:"$t:field_options.directus_files.location"},width:"half"},{field:"storage",interface:"input",options:{iconRight:"storage"},width:"half",readonly:!0},{field:"focal_point_divider",interface:"presentation-divider",options:{icon:"image_search",title:"$t:field_options.directus_files.focal_point_divider"},special:["alias","no-data"],width:"full"},{field:"focal_point_x",width:"half"},{field:"focal_point_y",width:"half"},{field:"storage_divider",interface:"presentation-divider",options:{icon:"insert_drive_file",title:"$t:field_options.directus_files.storage_divider"},special:["alias","no-data"],width:"full"},{field:"filename_disk",interface:"input",options:{iconRight:"publish",placeholder:"$t:field_options.directus_files.filename_disk"},readonly:!0,width:"half"},{field:"filename_download",interface:"input",options:{iconRight:"get_app",placeholder:"$t:field_options.directus_files.filename_download"},width:"half"},{field:"metadata",hidden:!0,special:["cast-json"]},{field:"type",display:"mime-type",readonly:!0},{field:"filesize",display:"filesize",readonly:!0},{field:"created_on",interface:"datetime",display:"datetime",width:"half",special:["date-created"],readonly:!0},{field:"modified_by",interface:"select-dropdown-m2o",special:["user-updated"],width:"half",display:"user",readonly:!0,options:{template:"{{avatar.$thumbnail}} {{first_name}} {{last_name}}"}},{field:"modified_on",interface:"datetime",special:["date-created","date-updated"],width:"half",display:"datetime",readonly:!0},{field:"embed",width:"half",hidden:!0},{field:"uploaded_by",display:"user",width:"half",hidden:!0,special:["user-created"]},{field:"uploaded_on",display:"datetime",width:"half",hidden:!0},{field:"folder",width:"half",readonly:!0,special:["m2o"],display:"related-values",display_options:{template:"{{ name }}"}},{field:"width",width:"half",readonly:!0},{field:"height",width:"half",readonly:!0},{field:"charset",width:"half",readonly:!0},{field:"duration",width:"half",readonly:!0},{field:"tus_id",width:"half",hidden:!0},{field:"tus_data",width:"half",hidden:!0,special:["cast-json"]}]},Yo={table:"directus_flows",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"color"},{field:"description"},{field:"status"},{field:"trigger"},{field:"accountability"},{field:"options",special:["cast-json"]},{field:"operation"},{field:"operations",special:["o2m"]},{field:"date_created",special:["date-created"]},{field:"user_created",special:["user-created"]}]},Jo={table:"directus_folders",fields:[{field:"id",interface:"input",special:["uuid"],width:"half"},{field:"parent",width:"half"},{field:"name",width:"full"}]},Qo={table:"directus_migrations",fields:[{collection:"directus_migrations",field:"version"},{collection:"directus_migrations",field:"name"},{collection:"directus_migrations",field:"timestamp"}]},Zo={table:"directus_notifications",fields:[{field:"id"},{field:"timestamp",special:["date-created","cast-timestamp"]},{field:"status"},{field:"recipient"},{field:"sender"},{field:"subject"},{field:"message"},{field:"collection"},{field:"item"}]},ei={table:"directus_operations",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"key"},{field:"type"},{field:"position_x"},{field:"position_y"},{field:"options",special:["cast-json"]},{field:"resolve"},{field:"reject"},{field:"flow"},{field:"date_created",special:["date-created"]},{field:"user_created",special:["user-created"]}]},ti={table:"directus_panels",fields:[{field:"id",special:["uuid"]},{field:"name"},{field:"icon"},{field:"color"},{field:"note"},{field:"type"},{field:"show_header",special:["cast-boolean"]},{field:"position_x"},{field:"position_y"},{field:"width"},{field:"height"},{field:"options",special:["cast-json"]},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"dashboard"}]},ni={table:"directus_permissions",fields:[{field:"permissions",hidden:!0,special:["cast-json"],width:"half"},{field:"presets",hidden:!0,special:["cast-json"],width:"half"},{field:"policy",hidden:!0,interface:"select-dropdown-m2o",width:"half",special:["m2o"]},{field:"collection",width:"half"},{field:"id",width:"half"},{field:"fields",width:"half",special:["cast-csv"]},{field:"action",width:"half"},{field:"validation",width:"half",special:["cast-json"]}]},ai={table:"directus_policies",fields:[{field:"id",hidden:!0,special:["uuid"]},{field:"name",required:!0,width:"half",display:"formatted-value",display_options:{translate:!0}},{field:"icon",interface:"select-icon",display:"icon",width:"half"},{field:"description",interface:"input",options:{placeholder:"$t:field_options.directus_policies.description"},width:"full",display:"formatted-value",display_options:{translate:!0}},{field:"permissions",interface:"system-permissions",special:["o2m"]},{field:"app_access",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"admin_access",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"ip_access",interface:"tags",options:{placeholder:"$t:field_options.directus_policies.ip_access"},special:["cast-csv"],width:"full"},{field:"enforce_tfa",note:"$t:field_options.directus_policies.enforce_tfa",interface:"boolean",special:["cast-boolean"],width:"half"},{field:"assigned_to_divider",interface:"presentation-divider",options:{title:"$t:field_options.directus_policies.assigned_to"},special:["alias","no-data"],width:"full"},{field:"users",interface:"list-m2m",options:{template:"{{ user.first_name }} {{ user.last_name }}",junctionFilter:{user:{_nnull:!0}}},special:["m2m"]},{field:"roles",interface:"list-m2m",options:{template:"{{ role.name }}",junctionFilter:{role:{_nnull:!0}}},special:["m2m"]}]},ri={table:"directus_presets",fields:[{field:"filter",hidden:!0,special:["cast-json"]},{field:"layout_query",hidden:!0,special:["cast-json"]},{field:"layout_options",hidden:!0,special:["cast-json"]},{field:"role",width:"half",special:["m2o"],display:"related-values",display_options:{template:"{{ name }}"}},{field:"user",width:"half",special:["m2o"],display:"related-values",display_options:{template:"{{ email }}"}},{field:"id",width:"half"},{field:"bookmark",width:"half"},{field:"icon",width:"half",display:"icon"},{field:"color",width:"half",display:"color"},{field:"search",width:"half"},{field:"collection",width:"half"},{field:"layout",width:"half"},{field:"refresh_interval"}]},oi={table:"directus_relations",fields:[{field:"id",width:"half"},{field:"many_collection",width:"half"},{field:"many_field",width:"half"},{field:"one_collection",width:"half"},{field:"one_field",width:"half"},{field:"one_collection_field",width:"half"},{field:"one_allowed_collections",special:["cast-csv"],width:"half"},{field:"junction_field",width:"half"},{field:"sort_field",width:"half"},{field:"one_deselect_action",width:"half"}]},ii={table:"directus_revisions",fields:[{field:"id",width:"half"},{field:"activity",width:"half"},{field:"collection",width:"half"},{field:"item",width:"half"},{field:"data",hidden:!0,special:["cast-json"]},{field:"delta",hidden:!0,special:["cast-json"]},{field:"parent",width:"half"},{field:"version",width:"half"}],indexed:[{field:"parent"},{field:"activity"}]},li={table:"directus_roles",fields:[{field:"id",hidden:!0,interface:"input",special:["uuid"]},{field:"name",required:!0,interface:"input",options:{placeholder:"$t:field_options.directus_roles.name"},width:"half",display:"formatted-value",display_options:{translate:!0}},{field:"icon",interface:"select-icon",display:"icon",width:"half"},{field:"description",interface:"input",options:{placeholder:"$t:field_options.directus_roles.description"},width:"full",display:"formatted-value",display_options:{translate:!0}},{field:"parent",interface:"select-dropdown-m2o",note:"$t:field_options.directus_roles.parent_note",options:{template:"{{ name }}",filter:{id:{_neq:"{{ id }}"}}},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"children",hidden:!0,interface:"list-o2m-tree-view",note:"$t:field_options.directus_roles.children_note",special:["o2m"],options:{displayTemplate:"{{ name }}",enableCreate:!1,fields:["name"],filter:{id:{_neq:"{{ id }}"}}},display:"related-values",display_options:{template:"{{ name }}"},width:"full"},{field:"policies",interface:"list-m2m",options:{layout:"list"},display:"related-values",special:["m2m"],width:"full"},{field:"users_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"users_divider",interface:"presentation-divider",options:{icon:"people_alt",title:"$t:users"},special:["alias","no-data"],width:"full",group:"users_group"},{field:"users",interface:"list-o2m",special:["o2m"],options:{fields:["first_name","last_name"]},width:"full",group:"users_group"}]},si={table:"directus_sessions",fields:[{field:"token",width:"half"},{field:"user",width:"half"},{field:"expires",width:"half"},{field:"ip",width:"half"},{field:"user_agent",width:"half"},{field:"origin",width:"half"},{field:"share",width:"half"},{field:"next_token",width:"half"}]},ci={table:"directus_settings",fields:[{field:"id",hidden:!0},{field:"project_name",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_settings.project_name_placeholder"},width:"half"},{field:"project_descriptor",interface:"input",options:{iconRight:"title",placeholder:"$t:field_options.directus_settings.project_name_placeholder"},width:"half"},{field:"project_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com"},width:"half"},{field:"default_language",interface:"system-language",options:{iconRight:"language",placeholder:"en-US"},width:"half"},{field:"project_owner",interface:"system-owner",width:"half"},{field:"project_usage",hidden:!0},{field:"org_name",hidden:!0},{field:"product_updates",hidden:!0,special:["cast-boolean"]},{field:"project_status",hidden:!0},{field:"modules_divider",interface:"presentation-divider",options:{icon:"menu_open",title:"$t:modules"},special:["alias","no-data"],width:"full"},{field:"module_bar",interface:"system-modules",special:["cast-json"]},{field:"visual_editor_divider",interface:"presentation-divider",options:{icon:"edit_square",title:"$t:visual_editor"},special:["alias","no-data"],width:"full"},{field:"visual_editor_urls",interface:"list",special:["cast-json"],options:{template:"{{url}}",fields:[{field:"url",name:"$t:url",schema:{is_nullable:!1},meta:{interface:"system-display-template",required:!0,options:{placeholder:"https://example.com/?version={{$version}}",fields:[{field:"$version",name:"$t:version",collection:"",key:"$version",path:"$version",type:"string"}]}}}]}},{field:"security_divider",interface:"presentation-divider",options:{icon:"shield",title:"$t:security"},special:["alias","no-data"],width:"full"},{field:"auth_password_policy",interface:"select-dropdown",options:{choices:[{value:null,text:"$t:field_options.directus_settings.auth_password_policy.none_text"},{value:"/^.{8,}$/",text:"$t:field_options.directus_settings.auth_password_policy.weak_text"},{value:"/(?=^.{8,}$)(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{';'?>.<,])(?!.*\\s).*$/",text:"$t:field_options.directus_settings.auth_password_policy.strong_text"}],allowOther:!0},width:"half"},{field:"auth_login_attempts",interface:"input",options:{iconRight:"lock",placeholder:"$t:unlimited"},width:"half"},{field:"public_registration_divider",interface:"presentation-divider",options:{icon:"person_add",title:"$t:fields.directus_settings.public_registration"},special:["alias","no-data"],width:"full"},{field:"public_registration",interface:"boolean",note:"$t:fields.directus_settings.public_registration_note",width:"half",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"public_registration_role",interface:"select-dropdown-m2o",note:"$t:fields.directus_settings.public_registration_role_note",options:{template:"{{ name }}"},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"public_registration_verify_email",interface:"boolean",note:"$t:fields.directus_settings.public_registration_verify_email_note",width:"half",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"public_registration_email_filter",interface:"system-filter",note:"$t:fields.directus_settings.public_registration_email_filter_note",options:{collectionName:"directus_users",collectionField:"email",fieldName:"email"},special:["cast-json"],width:"half"},{field:"files_divider",interface:"presentation-divider",options:{icon:"folder",title:"$t:fields.directus_settings.files_and_thumbnails"},special:["alias","no-data"],width:"full"},{field:"storage_asset_transform",interface:"select-dropdown",options:{choices:[{value:"all",text:"$t:fields.directus_settings.transformations_all"},{value:"none",text:"$t:fields.directus_settings.transformations_none"},{value:"presets",text:"$t:fields.directus_settings.transformations_presets"}]},width:"half"},{field:"storage_default_folder",interface:"system-folder",width:"half",note:"$t:interfaces.system-folder.field_hint"},{field:"storage_asset_presets",interface:"list",options:{fields:[{field:"key",name:"$t:key",type:"string",schema:{is_nullable:!1},meta:{interface:"input",options:{slug:!0,onlyOnCreate:!1},width:"full",required:!0}},{field:"fit",name:"$t:field_options.directus_settings.storage_asset_presets.fit_label",type:"string",schema:{is_nullable:!1},meta:{interface:"select-dropdown",options:{choices:[{value:"contain",text:"$t:field_options.directus_settings.storage_asset_presets.fit.contain_text"},{value:"cover",text:"$t:field_options.directus_settings.storage_asset_presets.fit.cover_text"},{value:"inside",text:"$t:field_options.directus_settings.storage_asset_presets.fit.fit_text"},{value:"outside",text:"$t:field_options.directus_settings.storage_asset_presets.fit.outside_text"}]},width:"half"}},{field:"width",name:"$t:width",type:"integer",schema:{is_nullable:!1},meta:{interface:"input",width:"half"}},{field:"height",name:"$t:height",type:"integer",schema:{is_nullable:!1},meta:{interface:"input",width:"half"}},{field:"quality",type:"integer",name:"$t:quality",schema:{default_value:80,is_nullable:!1},meta:{interface:"slider",options:{max:100,min:0,step:1},width:"half"}},{field:"withoutEnlargement",name:"$t:field_options.directus_settings.storage_asset_presets.upscaling",type:"boolean",schema:{default_value:!1},meta:{interface:"boolean",width:"half",options:{label:"$t:no_upscale"}}},{field:"format",name:"$t:format",type:"string",schema:{is_nullable:!1,default_value:""},meta:{interface:"select-dropdown",options:{allowNone:!0,choices:[{value:"auto",text:"Auto"},{value:"jpeg",text:"JPEG"},{value:"png",text:"PNG"},{value:"webp",text:"WebP"},{value:"tiff",text:"Tiff"},{value:"avif",text:"AVIF"}]},width:"half"}},{field:"transforms",name:"$t:field_options.directus_settings.additional_transforms",type:"json",schema:{is_nullable:!1,default_value:[]},meta:{note:"$t:field_options.directus_settings.transforms_note",interface:"json",options:{template:'[\n ["blur", 45],\n ["grayscale"],\n ["extend", { "right": 500, "background": "rgb(255, 0, 0)" }]\n]\n',placeholder:'[\n ["blur", 45],\n ["grayscale"],\n ["extend", { "right": 500, "background": "rgb(255, 0, 0)" }]\n]\n'},width:"full"}}],template:"{{key}}"},special:["cast-json"],width:"full"},{field:"reporting_divider",interface:"presentation-divider",options:{icon:"feedback",title:"$t:fields.directus_settings.reporting"},special:["alias","no-data"],width:"full"},{field:"report_feature_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com/feature"},width:"half"},{field:"report_bug_url",interface:"input",options:{iconRight:"link",placeholder:"https://example.com/bug"},width:"half"},{field:"report_error_url",interface:"system-display-template",options:{placeholder:"https://example.com/error",fields:[{name:"Error",field:"error",key:"error",path:"error",children:[{name:"Name",field:"name",key:"error.name",path:"error.name"},{name:"Message",field:"message",key:"error.message",path:"error.message"}]},{name:"Navigator",field:"navigator",key:"navigator",path:"navigator",children:[{name:"Language",field:"language",key:"navigator.language",path:"navigator.language"},{name:"User Agent",field:"userAgent",key:"navigator.userAgent",path:"navigator.userAgent"}]},{name:"Route",field:"route",key:"route",path:"route",children:[{name:"Full Path",field:"fullPath",key:"route.fullPath",path:"route.fullPath"},{name:"Hash",field:"hash",key:"route.hash",path:"route.hash"},{name:"Name",field:"name",key:"route.name",path:"route.name"},{name:"Path",field:"path",key:"route.path",path:"route.path"},{name:"Query",field:"query",key:"route.query",path:"route.query"}]},{name:"User",field:"user",key:"user",path:"user",children:[{name:"ID",field:"id",key:"user.id",path:"user.id"},{name:"First Name",field:"first_name",key:"user.first_name",path:"user.first_name"},{name:"Last Name",field:"last_name",key:"user.last_name",path:"user.last_name"},{name:"Status",field:"status",key:"user.status",path:"user.status"},{name:"Title",field:"title",key:"user.title",path:"user.title"},{name:"Description",field:"description",key:"user.description",path:"user.description"},{name:"Location",field:"location",key:"user.location",path:"user.location"}]},{name:"Role",field:"role",key:"role",path:"role",children:[{name:"ID",field:"id",key:"role.id",path:"role.id"},{name:"Name",field:"name",key:"role.name",path:"role.name"}]}]},width:"full"},{field:"collaborative_editing_divider",interface:"presentation-divider",options:{icon:"podcasts",title:"$t:fields.directus_settings.collaborative_editing"},special:["alias","no-data"],width:"full"},{field:"collaborative_editing_enabled",interface:"boolean",width:"half",note:"$t:fields.directus_settings.collaborative_editing_note",options:{label:"$t:enabled"},special:["cast-boolean"]},{field:"map_divider",interface:"presentation-divider",options:{icon:"map",title:"$t:fields.directus_settings.mapping"},special:["alias","no-data"],width:"full"},{field:"mapbox_key",interface:"input",options:{icon:"key",title:"$t:field_options.directus_settings.mapbox_key",placeholder:"$t:field_options.directus_settings.mapbox_placeholder",iconLeft:"vpn_key",font:"monospace"},width:"full"},{field:"basemaps",interface:"list",special:["cast-json"],options:{template:"{{name}}",fields:[{field:"name",name:"$t:name",schema:{is_nullable:!1},meta:{interface:"text-input",required:!0,options:{placeholder:"$t:field_options.directus_settings.basemaps_name_placeholder"}}},{field:"type",name:"$t:type",meta:{interface:"select-dropdown",options:{choices:[{value:"raster",text:"$t:field_options.directus_settings.basemaps_raster"},{value:"tile",text:"$t:field_options.directus_settings.basemaps_tile"},{value:"style",text:"$t:field_options.directus_settings.basemaps_style"}]}}},{field:"url",name:"$t:url",schema:{is_nullable:!1},meta:{interface:"text-input",options:{placeholder:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"}}},{field:"tileSize",name:"$t:tile_size",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",options:{placeholder:"512"},conditions:[{name:"typeNeqRaster",rule:{type:{_neq:"raster"}},hidden:!0}]}},{field:"attribution",name:"$t:fields.directus_settings.attribution",type:"string",schema:{is_nullable:!0},meta:{interface:"input",options:{placeholder:"$t:fields.directus_settings.attribution_placeholder"}}}]}},{field:"image_editor",interface:"presentation-divider",options:{icon:"image",title:"$t:fields.directus_settings.image_editor"},special:["alias","no-data"],width:"full"},{field:"custom_aspect_ratios",interface:"list",special:["cast-json"],options:{template:"{{text}}",fields:[{field:"text",name:"$t:text",type:"string",meta:{interface:"text-input",width:"half",required:!0,options:{placeholder:"$t:text"}}},{field:"value",name:"$t:value",type:"float",meta:{interface:"input",width:"half",required:!0,options:{placeholder:"$t:value"}}}]}},{field:"project_id",hidden:!0},{field:"theming_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"branding_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:fields.directus_settings.branding"},special:["alias","no-data"],width:"full",group:"theming_group"},{field:"project_color",interface:"select-color",note:"$t:field_options.directus_settings.project_color_note",width:"half",group:"theming_group"},{field:"project_logo",interface:"file",note:"$t:field_options.directus_settings.project_logo_note",width:"half",group:"theming_group"},{field:"public_foreground",interface:"file",width:"half",group:"theming_group"},{field:"public_background",interface:"file",width:"half",group:"theming_group"},{field:"public_favicon",interface:"file",note:"$t:field_options.directus_settings.project_favicon_note",width:"half",group:"theming_group"},{field:"public_note",interface:"input",options:{placeholder:"$t:field_options.directus_settings.public_note_placeholder",iconRight:"info"},width:"half",group:"theming_group"},{field:"theming_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:fields.directus_settings.theming"},special:["alias","no-data"],width:"full",group:"theming_group"},{field:"default_appearance",interface:"select-dropdown",width:"half",options:{choices:[{value:"auto",text:"$t:appearance_auto"},{value:"light",text:"$t:appearance_light"},{value:"dark",text:"$t:appearance_dark"}]},group:"theming_group"},{field:"default_theme_light",width:"full",interface:"system-theme",options:{appearance:"light"},group:"theming_group"},{field:"theme_light_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"light"},group:"theming_group",special:["cast-json"]},{field:"default_theme_dark",width:"full",interface:"system-theme",options:{appearance:"dark"},group:"theming_group"},{field:"theme_dark_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"dark"},group:"theming_group",special:["cast-json"]},{field:"custom_css",interface:"input-code",options:{language:"css",lineNumber:!0,template:"#app, #main-content, body {\n --v-button-background-color: #6644FF !important;\n --v-button-background-color-hover: #5E41EC !important;\n}\n"},width:"full",group:"theming_group"},{field:"ai_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"ai_divider",interface:"presentation-divider",options:{icon:"chat",title:"$t:ai_assistant"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_notice",interface:"presentation-notice",options:{icon:"info",text:"$t:fields.directus_settings.ai_notice"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_openai_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_openai_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"GPT-4o Mini",value:"gpt-4o-mini"},{text:"GPT-4.1 Nano",value:"gpt-4.1-nano"},{text:"GPT-4.1 Mini",value:"gpt-4.1-mini"},{text:"GPT-4.1",value:"gpt-4.1"},{text:"GPT-5 Nano",value:"gpt-5-nano"},{text:"GPT-5 Mini",value:"gpt-5-mini"},{text:"GPT-5",value:"gpt-5"},{text:"GPT-5.2",value:"gpt-5.2"},{text:"GPT-5.2 Chat",value:"gpt-5.2-chat-latest"},{text:"GPT-5.2 Pro",value:"gpt-5.2-pro"},{text:"GPT-5.4",value:"gpt-5.4"},{text:"GPT-5.4 Pro",value:"gpt-5.4-pro"}]},width:"half",group:"ai_group"},{field:"ai_anthropic_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_anthropic_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"Claude Haiku 4.5",value:"claude-haiku-4-5"},{text:"Claude Sonnet 4.5",value:"claude-sonnet-4-5"},{text:"Claude Opus 4.5",value:"claude-opus-4-5"},{text:"Claude Sonnet 4.6",value:"claude-sonnet-4-6"},{text:"Claude Opus 4.6",value:"claude-opus-4-6"}]},width:"half",group:"ai_group"},{field:"ai_google_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_google_allowed_models",interface:"select-multiple-dropdown",special:["cast-json"],options:{allowOther:!0,choices:[{text:"Gemini 3 Pro Preview",value:"gemini-3-pro-preview"},{text:"Gemini 3 Flash Preview",value:"gemini-3-flash-preview"},{text:"Gemini 2.5 Pro",value:"gemini-2.5-pro"},{text:"Gemini 2.5 Flash",value:"gemini-2.5-flash"},{text:"Gemini 3.1 Pro Preview",value:"gemini-3.1-pro-preview"},{text:"Gemini 3.1 Flash Lite Preview",value:"gemini-3.1-flash-lite-preview"},{text:"Gemini 2.5 Flash Lite",value:"gemini-2.5-flash-lite"}]},width:"half",group:"ai_group"},{field:"ai_system_prompt",interface:"input-rich-text-md",group:"ai_group",width:"full",note:"$t:fields.directus_settings.ai_system_prompt_note",options:{label:"$t:fields.directus_settings.ai_system_prompt"}},{field:"ai_openai_compatible_divider",interface:"presentation-divider",options:{inlineTitle:!0,color:"var(--theme--foreground-subdued)",title:"$t:fields.directus_settings.ai_openai_compatible"},special:["alias","no-data"],width:"full",group:"ai_group"},{field:"ai_openai_compatible_name",interface:"input",options:{placeholder:"LM Studio, Ollama, etc."},width:"half",group:"ai_group"},{field:"ai_openai_compatible_base_url",interface:"input",options:{placeholder:"http://localhost:1234/v1"},width:"half",group:"ai_group"},{field:"ai_openai_compatible_api_key",special:["encrypt"],interface:"input-hash",options:{iconRight:"lock",masked:!0,autocomplete:"off"},width:"half",group:"ai_group"},{field:"ai_openai_compatible_headers",interface:"list",special:["cast-json"],options:{template:"{{header}}",fields:[{field:"header",name:"$t:fields.directus_settings.ai_header_name",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"X-Custom-Header"}}},{field:"value",name:"$t:value",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"header-value"}}}]},width:"half",group:"ai_group"},{field:"ai_openai_compatible_models",interface:"list",special:["cast-json"],options:{template:"{{name}}",fields:[{field:"id",name:"$t:fields.directus_settings.ai_model_id",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"llama3.2"}}},{field:"name",name:"$t:name",type:"string",schema:{is_nullable:!1},meta:{interface:"input",required:!0,width:"half",options:{placeholder:"Llama 3.2"}}},{field:"context",name:"$t:fields.directus_settings.ai_context_limit",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",width:"half",options:{placeholder:"128000"}}},{field:"output",name:"$t:fields.directus_settings.ai_output_limit",type:"integer",schema:{is_nullable:!0},meta:{interface:"input",width:"half",options:{placeholder:"16000"}}},{field:"attachment",name:"$t:fields.directus_settings.ai_supports_attachments",type:"boolean",schema:{is_nullable:!0,default_value:!1},meta:{interface:"boolean",width:"half"}},{field:"reasoning",name:"$t:fields.directus_settings.ai_supports_reasoning",type:"boolean",schema:{is_nullable:!0,default_value:!1},meta:{interface:"boolean",width:"half"}},{field:"providerOptions",name:"$t:fields.directus_settings.ai_provider_options",type:"json",schema:{is_nullable:!0},meta:{interface:"input-code",width:"full",options:{language:"json",placeholder:'{ "customOption": "value" }'},note:"$t:fields.directus_settings.ai_provider_options_note"}}]},width:"full",group:"ai_group"},{field:"mcp_group",interface:"group-raw",special:["alias","no-data","group"]},{field:"mcp_divider",interface:"presentation-divider",options:{icon:"automation",title:"$t:model_context_protocol"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_notice",interface:"presentation-notice",options:{icon:"info",text:"$t:fields.directus_settings.mcp_notice"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_enabled",interface:"boolean",group:"mcp_group",special:["cast-boolean"],note:"$t:fields.directus_settings.mcp_enabled_note",width:"half",options:{label:"$t:enabled"}},{field:"mcp_allow_deletes",interface:"boolean",group:"mcp_group",special:["cast-boolean"],note:"$t:fields.directus_settings.mcp_allow_deletes_note",width:"half",options:{label:"$t:fields.directus_settings.mcp_allow_deletes"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_prompts_collection",interface:"system-collection",group:"mcp_group",width:"half",note:"$t:fields.directus_settings.mcp_prompts_collection_note",options:{includeSingleton:!1,allowNone:!0},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_prompts_collection_validation",interface:"system-mcp-prompts-collection-validation",group:"mcp_group",width:"half",special:["alias","no-data"],conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},hidden:!0}]},{field:"mcp_system_prompt_divider",interface:"presentation-divider",options:{inlineTitle:!0,color:"var(--theme--foreground-subdued)",title:"$t:fields.directus_settings.mcp_system_prompt_divider"},special:["alias","no-data"],width:"full",group:"mcp_group"},{field:"mcp_system_prompt_enabled",interface:"boolean",group:"mcp_group",special:["cast-boolean"],width:"half-left",note:"$t:fields.directus_settings.mcp_system_prompt_enabled_note",options:{label:"$t:enabled"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0}]},{field:"mcp_system_prompt",interface:"input-rich-text-md",group:"mcp_group",width:"full",note:"$t:fields.directus_settings.mcp_system_prompt_note",options:{label:"$t:fields.directus_settings.mcp_system_prompt"},conditions:[{name:"mcp_enabled",rule:{mcp_enabled:{_neq:!0}},readonly:!0},{name:"mcp_system_prompt_enabled",rule:{mcp_system_prompt_enabled:{_neq:!0}},readonly:!0}]}]},di={table:"directus_shares",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"name"},{field:"collection",width:"half",hidden:!0},{field:"item",width:"half",hidden:!0},{field:"role",interface:"select-dropdown-m2o",width:"half",options:{template:"{{name}}"}},{field:"password",special:["hash","conceal"],interface:"input-hash",options:{iconRight:"lock",masked:!0},width:"half",note:"$t:shared_leave_blank_for_passwordless_access"},{field:"date_start",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"date_end",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"max_uses",width:"half",note:"$t:shared_leave_blank_for_unlimited"},{field:"times_used",width:"half",readonly:!0},{field:"date_created",special:["date-created","cast-timestamp"],width:"half",readonly:!0,conditions:[{name:"notCreatedYet",rule:{id:{_null:!0}},hidden:!0}]},{field:"user_created",special:["user-created"],interface:"select-dropdown-m2o",width:"half",display:"user",options:{template:"{{avatar.$thumbnail}} {{first_name}} {{last_name}}"},readonly:!0,conditions:[{name:"notCreatedYet",rule:{id:{_null:!0}},hidden:!0}]}]},ui={table:"directus_translations",fields:[{field:"id",hidden:!0,sort:1,special:["uuid"]},{field:"key",width:"half",sort:2,required:!0,interface:"input",options:{font:"monospace",placeholder:"$t:translation_key_placeholder"}},{field:"language",interface:"system-language",width:"half",sort:3,required:!0},{field:"value",interface:"input-multiline",sort:4,required:!0,options:{placeholder:"$t:enter_a_value"}}]},fi={table:"directus_users",fields:[{field:"first_name",interface:"input",options:{iconRight:"account_circle"},width:"half"},{field:"last_name",interface:"input",options:{iconRight:"account_circle"},width:"half"},{field:"email",interface:"input",options:{iconRight:"email"},width:"half"},{field:"password",special:["hash","conceal"],interface:"input-hash",options:{iconRight:"lock",masked:!0},width:"half"},{field:"avatar",interface:"file",width:"full",display:"image"},{field:"location",interface:"input",options:{iconRight:"place"},width:"half"},{field:"title",interface:"input",options:{iconRight:"work"},width:"half"},{field:"description",interface:"input-multiline",width:"full"},{field:"tags",interface:"tags",special:["cast-json"],width:"full",options:{iconRight:"local_offer"},display:"labels",display_options:{choices:null,format:!1}},{field:"preferences_divider",interface:"presentation-divider",options:{icon:"face",title:"$t:fields.directus_users.user_preferences"},special:["alias","no-data"],width:"full"},{field:"language",interface:"system-language",width:"half",options:{includeProjectDefault:!0}},{field:"text_direction",interface:"select-dropdown",options:{choices:[{value:"auto",text:"$t:text_direction_auto"},{value:"ltr",text:"$t:text_direction_ltr"},{value:"rtl",text:"$t:text_direction_rtl"}]},width:"half"},{field:"tfa_secret",interface:"system-mfa-setup",special:["conceal"],width:"half"},{field:"email_notifications",interface:"boolean",width:"half",special:["cast-boolean"]},{field:"theming_divider",interface:"presentation-divider",options:{icon:"palette",title:"$t:theme"},special:["alias","no-data"],width:"full"},{field:"appearance",interface:"select-dropdown",options:{choices:[{value:null,text:"$t:default_sync_with_project"},{value:"auto",text:"$t:appearance_auto"},{value:"light",text:"$t:appearance_light"},{value:"dark",text:"$t:appearance_dark"}]},width:"half"},{field:"theme_light",width:"full",interface:"system-theme",options:{appearance:"light",includeNull:!0}},{field:"theme_light_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"light"},special:["cast-json"]},{field:"theme_dark",width:"full",interface:"system-theme",options:{appearance:"dark",includeNull:!0}},{field:"theme_dark_overrides",width:"full",interface:"system-theme-overrides",options:{appearance:"dark"},special:["cast-json"]},{field:"admin_divider",interface:"presentation-divider",options:{icon:"verified_user",title:"$t:fields.directus_users.admin_options",color:"var(--theme--danger)"},special:["alias","no-data"],width:"full"},{field:"status",interface:"select-dropdown",options:{choices:[{text:"$t:fields.directus_users.status_draft",value:"draft"},{text:"$t:fields.directus_users.status_invited",value:"invited"},{text:"$t:fields.directus_users.status_unverified",value:"unverified"},{text:"$t:fields.directus_users.status_active",value:"active"},{text:"$t:fields.directus_users.status_suspended",value:"suspended"},{text:"$t:fields.directus_users.status_archived",value:"archived"}]},width:"half"},{field:"role",interface:"select-dropdown-m2o",options:{template:"{{ name }}"},special:["m2o"],width:"half",display:"related-values",display_options:{template:"{{ name }}"}},{field:"policies",interface:"list-m2m",options:{layout:"list"},display:"related-values",special:["m2m"],width:"full"},{field:"token",interface:"system-token",special:["conceal"],width:"full"},{field:"id",special:["uuid"],interface:"input",options:{iconRight:"vpn_key"},width:"full"},{field:"last_page",width:"half"},{field:"last_access",width:"half",display:"datetime",readonly:!0},{field:"provider",width:"half",interface:"select-dropdown",options:{choices:[{text:"$t:default_provider",value:"default"}]}},{field:"external_identifier",width:"half",options:{iconRight:"account_circle"},interface:"input"},{field:"auth_data",hidden:!0}]},pi={table:"directus_versions",fields:[{field:"id",special:["uuid"],readonly:!0,hidden:!0},{field:"key"},{field:"name"},{field:"collection"},{field:"item"},{field:"hash",readonly:!0,hidden:!0},{field:"date_created",special:["date-created","cast-timestamp"]},{field:"date_updated",special:["date-updated","cast-timestamp"]},{field:"user_created",special:["user-created"]},{field:"user_updated",special:["user-updated"]},{field:"delta",special:["cast-json"]}]};const mi=[];function vi(e){let{table:t,fields:n,indexed:a}=e;n.forEach((e,n)=>{mi.push({system:!0,...Po,...e,collection:t,sort:n+1})}),a&&a.forEach(({field:e})=>{})}vi({table:"directus_access",fields:[{field:"id",special:["uuid"],hidden:!0,width:"half"},{field:"role",hidden:!0,width:"half",special:["m2o"]},{field:"user",hidden:!0,width:"half",special:["m2o"]},{field:"policy",hidden:!0,width:"half",special:["m2o"]},{field:"sort",hidden:!0,width:"half"}]}),vi(Uo),vi(Bo),vi(Vo),vi(zo),vi(Xo),vi(qo),vi(Wo),vi(Yo),vi(Jo),vi(Qo),vi(Zo),vi(ei),vi(ti),vi(ni),vi(ai),vi(ri),vi(oi),vi(ii),vi(li),vi(si),vi(ci),vi(di),vi(ui),vi(fi),vi(pi),vi(Ho),vi(Go),vi(Ko);var hi=[{collection:"directus_activity",action:"read",permissions:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_comments",action:"read",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_comments",action:"create",validation:{comment:{_nnull:!0}}},{collection:"directus_comments",action:"update",permissions:{user_created:{_eq:"$CURRENT_USER"}},fields:["comment"]},{collection:"directus_comments",action:"delete",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"read",permissions:{_or:[{user:{_eq:"$CURRENT_USER"}},{_and:[{user:{_null:!0}},{role:{_eq:"$CURRENT_ROLE"}}]},{_and:[{user:{_null:!0}},{role:{_null:!0}}]}]}},{collection:"directus_presets",action:"create",validation:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"update",permissions:{user:{_eq:"$CURRENT_USER"}},validation:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_presets",action:"delete",permissions:{user:{_eq:"$CURRENT_USER"}}},{collection:"directus_roles",action:"read",permissions:{id:{_in:"$CURRENT_ROLES"}}},{collection:"directus_settings",action:"read"},{collection:"directus_translations",action:"read"},{collection:"directus_notifications",action:"read",permissions:{recipient:{_eq:"$CURRENT_USER"}}},{collection:"directus_notifications",action:"update",permissions:{recipient:{_eq:"$CURRENT_USER"}},fields:["status"]},{collection:"directus_shares",action:"read",permissions:{user_created:{_eq:"$CURRENT_USER"}}},{collection:"directus_users",action:"read",permissions:{id:{_eq:"$CURRENT_USER"}},fields:["id","first_name","last_name","last_page","email","password","location","title","description","tags","provider","preferences_divider","avatar","language","appearance","theme_light","theme_dark","tfa_secret","status","role"]}];const gi={policy:null,permissions:{},validation:null,presets:null,fields:["*"],system:!0},yi=[{collection:"directus_collections",action:"read"},{collection:"directus_fields",action:"read"},{collection:"directus_relations",action:"read"},{collection:"directus_translations",action:"read"}].map(e=>({...gi,...e}));[...yi,...hi].map(e=>({...gi,...e}));var bi=Object.create,_i=Object.defineProperty,wi=Object.getOwnPropertyDescriptor,xi=Object.getOwnPropertyNames,Si=Object.getPrototypeOf,ki=Object.prototype.hasOwnProperty,Ei=(e,t)=>function(){return t||(0,e[xi(e)[0]])((t={exports:{}}).exports,t),t.exports},Ai=(e,t,n)=>(n=null!=e?bi(Si(e)):{},((e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var r,o=xi(t),i=0,l=o.length;i<l;i++)r=o[i],ki.call(e,r)||r===n||_i(e,r,{get:(e=>t[e]).bind(null,r),enumerable:!(a=wi(t,r))||a.enumerable});return e})(_i(n,"default",{value:e,enumerable:!0}),e));function Oi(e,t){e=$r(e,4);const n=t.startsWith("-");(n||t.startsWith("+"))&&(t=t.substring(1));const a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mth|mo|years?|yrs?|y)?$/i.exec(t);if(!a||!a[1])return;const r=parseFloat(a[1]);switch((a[2]??"days").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n?function(e,t){return po(e,-t)}(e,r):po(e,r);case"months":case"month":case"mth":case"mo":return n?function(e,t){return io(e,-t)}(e,r):io(e,r);case"weeks":case"week":case"w":return n?function(e,t){return fo(e,-t)}(e,r):fo(e,r);case"days":case"day":case"d":return n?function(e,t){return oo(e,-t)}(e,r):oo(e,r);case"hours":case"hour":case"hrs":case"hr":case"h":return n?function(e,t){return so(e,-t)}(e,r):so(e,r);case"minutes":case"minute":case"mins":case"min":case"m":return n?function(e,t){return co(e,-t)}(e,r):co(e,r);case"seconds":case"second":case"secs":case"sec":case"s":return n?function(e,t){return uo(e,-t)}(e,r):uo(e,r);case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n?function(e,t){return lo(e,-t)}(e,r):lo(e,r);default:return}}function $i(e){return String(e).includes("__proto__")?JSON.parse(e,Ci):JSON.parse(e)}function Ci(e,t){if("__proto__"!==e)return t}function Ii(e,t,n){return function e(a,r){return Array.isArray(a)?a.map(e):Dt(a)&&Da(a)?Object.fromEntries(Object.entries(a).map(([t,n])=>[t,e(n,t)])):void 0!==r?t.call(n,a,r):a}(e)}function Ri(e){return function(e){return!!e.startsWith("directus_")&&Lo.includes(e)}(e)?`/${e.substring(9)}`:`/items/${e}`}function Ni(e,t,n){let a=t.split(".")[0];const r=t.split(".").slice(1);a.includes(":")&&(a=a.split(":")[0]);const o=Array.isArray(e)?function(e,t){const n=e.map(e=>e?.[t]).filter(e=>e);return n.length>0?n.flat():void 0}(e,a):e?.[a];return void 0!==o&&r.length>0?Ni(o,r.join("."),n):o??n}function Ti(e){return"string"==typeof e?e.split(","):Array.isArray(e)?e:[e]}Do.extend({type:"string",base:Do.string(),messages:{"string.contains":"{{#label}} must contain [{{#substring}}]","string.icontains":"{{#label}} must contain case insensitive [{{#substring}}]","string.ncontains":"{{#label}} can't contain [{{#substring}}]"},rules:{contains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"contains",args:{substring:e}})},validate:(e,t,{substring:n})=>!1===e.includes(n)?t.error("string.contains",{substring:n}):e},icontains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"icontains",args:{substring:e}})},validate:(e,t,{substring:n})=>!1===e.toLowerCase().includes(n.toLowerCase())?t.error("string.icontains",{substring:n}):e},ncontains:{args:[{name:"substring",ref:!0,assert:e=>"string"==typeof e,message:"must be a string"}],method(e){return this.$_addRule({name:"ncontains",args:{substring:e}})},validate:(e,t,{substring:n})=>!0===e.includes(n)?t.error("string.ncontains",{substring:n}):e}}});const ji=["_and","_or"],Di=["_none","_some"];function Mi(e){const t=Object.keys(e)[0];if(!t)return e;if(ji.includes(t))return{[t]:e[t].map(Mi)};if(t.startsWith("_"))return e;{const n=Mi(e[t]),a=Object.keys(n)[0];return a?ji.includes(a)?Mi({[a]:n[a].map(e=>({[t]:e}))}):{[t]:n}:{[t]:n}}}function Li(e,t,n={}){if(null==e)return null;if(!Dt(e))return{_eq:Fi(e,t,n)};const a=Object.entries(e).map(e=>function([e,t],n,a){if(["_or","_and"].includes(String(e)))return{[e]:t.map(e=>Li(e,n,a))};if(["_in","_nin","_between","_nbetween"].includes(String(e))){const o="object"!=typeof(r=t)||null===r||Array.isArray(r)?t:Object.values(t);return{[e]:Ti(o).flatMap(e=>Fi(e,n,a))}}return["_intersects","_nintersects","_intersects_bbox","_nintersects_bbox"].includes(String(e))?{[e]:Fi("string"==typeof t?$i(t):t,n,a)}:String(e).startsWith("_")&&!Di.includes(e)?{[e]:Fi(t,n,a)}:{[e]:Li(t,n,a)};var r}(e,t,n));return 0===a.length?{}:1===a.length?a[0]??null:{_and:a}}function Fi(e,t,n){return"string"!=typeof e?e:e.startsWith("$NOW")?function(e){if(!1===e.startsWith("$NOW"))throw new Error(`"${e}" is not a valid $NOW format`);if(e.includes("(")&&e.includes(")")){const t=e.match(St)?.[1];if(t)return Oi(new Date,t)??new Date}return new Date}(e):e.startsWith("$CURRENT_USER")?"$CURRENT_USER"===e?t?.user??null:Ni(n,e,null):e.startsWith("$CURRENT_ROLES")?"$CURRENT_ROLES"===e?t?.roles??null:Ni(n,e,null):e.startsWith("$CURRENT_ROLE")?"$CURRENT_ROLE"===e?t?.role??null:Ni(n,e,null):e.startsWith("$CURRENT_POLICIES")?"$CURRENT_POLICIES"===e?Ni(n,e,null)?.map(({id:e})=>e)??null:Ni(n,e,null):e}var Pi=Ei({"../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js":(e,t)=>{var n=1e3,a=60*n,r=60*a,o=24*r,i=7*o,l=365.25*o;function s(e,t,n,a){var r=t>=1.5*n;return Math.round(e/n)+" "+a+(r?"s":"")}t.exports=function(e,t){t=t||{};var c,d,u=typeof e;if("string"===u&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return s*l;case"weeks":case"week":case"w":return s*i;case"days":case"day":case"d":return s*o;case"hours":case"hour":case"hrs":case"hr":case"h":return s*r;case"minutes":case"minute":case"mins":case"min":case"m":return s*a;case"seconds":case"second":case"secs":case"sec":case"s":return s*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===u&&isFinite(e))return t.long?(c=e,(d=Math.abs(c))>=o?s(c,d,o,"day"):d>=r?s(c,d,r,"hour"):d>=a?s(c,d,a,"minute"):d>=n?s(c,d,n,"second"):c+" ms"):function(e){var t=Math.abs(e);return t>=o?Math.round(e/o)+"d":t>=r?Math.round(e/r)+"h":t>=a?Math.round(e/a)+"m":t>=n?Math.round(e/n)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}}}),Ui=Ai(Pi());const Bi=(e,t,n=500)=>class extends Error{name="DirectusError";extensions;code=e.toUpperCase();status=n;constructor(e,n){super("string"==typeof t?t:t(e),n),this.extensions=e}toString(){return`${this.name} [${this.code}]: ${this.message}`}};let Vi=function(e){return e.ContainsNullValues="CONTAINS_NULL_VALUES",e.ContentTooLarge="CONTENT_TOO_LARGE",e.EmailLimitExceeded="EMAIL_LIMIT_EXCEEDED",e.Forbidden="FORBIDDEN",e.IllegalAssetTransformation="ILLEGAL_ASSET_TRANSFORMATION",e.Internal="INTERNAL_SERVER_ERROR",e.InvalidCredentials="INVALID_CREDENTIALS",e.InvalidForeignKey="INVALID_FOREIGN_KEY",e.InvalidInvite="INVALID_INVITE",e.InvalidIp="INVALID_IP",e.InvalidOtp="INVALID_OTP",e.InvalidPayload="INVALID_PAYLOAD",e.InvalidPathParameter="INVALID_PATH_PARAMETER",e.InvalidProvider="INVALID_PROVIDER",e.InvalidProviderConfig="INVALID_PROVIDER_CONFIG",e.InvalidQuery="INVALID_QUERY",e.InvalidToken="INVALID_TOKEN",e.LimitExceeded="LIMIT_EXCEEDED",e.MethodNotAllowed="METHOD_NOT_ALLOWED",e.NotNullViolation="NOT_NULL_VIOLATION",e.OutOfDate="OUT_OF_DATE",e.OutOfTime="OUT_OF_TIME",e.RangeNotSatisfiable="RANGE_NOT_SATISFIABLE",e.RecordNotUnique="RECORD_NOT_UNIQUE",e.RequestsExceeded="REQUESTS_EXCEEDED",e.RouteNotFound="ROUTE_NOT_FOUND",e.ServiceUnavailable="SERVICE_UNAVAILABLE",e.TokenExpired="TOKEN_EXPIRED",e.UnexpectedResponse="UNEXPECTED_RESPONSE",e.UnprocessableContent="UNPROCESSABLE_CONTENT",e.UnsupportedMediaType="UNSUPPORTED_MEDIA_TYPE",e.UserSuspended="USER_SUSPENDED",e.ValueOutOfRange="VALUE_OUT_OF_RANGE",e.ValueTooLong="VALUE_TOO_LONG",e}({});Bi(Vi.ContainsNullValues,({collection:e,field:t})=>`Field "${t}" in collection "${e}" contains null values.`,400),Bi(Vi.ContentTooLarge,"Uploaded content is too large.",413);Bi(Vi.EmailLimitExceeded,e=>{const t=["Email sending limit exceeded."];if("number"==typeof e.points&&"number"==typeof e.duration){const n=(0,Ui.default)(1e3*e.duration,{long:!0}),a=1!==e.points?"s":"";t.push(`Limit of ${e.points} email${a} every ${n}.`)}return e.message&&t.push(e.message),t.join(" ")},429);Bi(Vi.Forbidden,e=>e?.reason?e.reason:"You don't have permission to access this.",403);Bi(Vi.RequestsExceeded,e=>`Too many requests, retry after ${(0,Ui.default)(e.reset.getTime()-Date.now())}.`,429),Bi(Vi.IllegalAssetTransformation,"Illegal asset transformation.",400),Bi(Vi.Internal,"An unexpected error occurred."),Bi(Vi.InvalidCredentials,"Invalid user credentials.",401);Bi(Vi.InvalidForeignKey,({collection:e,field:t,value:n})=>{let a="Invalid foreign key";return n&&(a+=` "${n}"`),t&&(a+=` for field "${t}"`),e&&(a+=` in collection "${e}"`),a+=".",a},400),Bi(Vi.InvalidInvite,()=>"This invite is no longer valid.",400),Bi(Vi.InvalidIp,"Invalid IP address.",401),Bi(Vi.InvalidOtp,"Invalid user OTP.",401);Bi(Vi.InvalidPayload,({reason:e})=>`Invalid payload. ${e}.`,400);Bi(Vi.InvalidPathParameter,({reason:e})=>`Invalid path parameter. ${e}.`,400),Bi(Vi.InvalidProviderConfig,"Invalid config.",503),Bi(Vi.InvalidProvider,"Invalid provider.",403);Bi(Vi.InvalidQuery,({reason:e})=>`Invalid query. ${e}.`,400),Bi(Vi.InvalidToken,"Invalid token.",403);Bi(Vi.LimitExceeded,({category:e})=>`${e} limit exceeded.`,403);Bi(Vi.MethodNotAllowed,e=>`Invalid method "${e.current}" used. Should be one of ${e.allowed.map(e=>`"${e}"`).join(", ")}.`,405);Bi(Vi.NotNullViolation,({collection:e,field:t})=>{let n="Value ";return t&&(n+=`for field "${t}" `),e&&(n+=`in collection "${e}" `),n+="can't be null.",n},400),Bi(Vi.OutOfDate,"Operation could not be executed: Your current instance of Directus is out of date.",503);Bi(Vi.RangeNotSatisfiable,({range:e})=>`Range "${e.start??""}-${e.end??""}" is invalid or the file's size doesn't match the requested range.`,416);Bi(Vi.RecordNotUnique,({collection:e,field:t,value:n})=>{let a="Value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="has to be unique.",a},400);Bi(Vi.RouteNotFound,({path:e})=>`Route ${e} doesn't exist.`,404);Bi(Vi.ServiceUnavailable,({service:e,reason:t})=>`Service "${e}" is unavailable. ${t}.`,503),Bi(Vi.TokenExpired,"Token expired.",401),Bi(Vi.UnexpectedResponse,"Received an unexpected response.",503);Bi(Vi.UnprocessableContent,e=>`Can't process content. ${e.reason}.`,422);Bi(Vi.UnsupportedMediaType,e=>`Unsupported media type "${e.mediaType}" in ${e.where}.`,415),Bi(Vi.UserSuspended,"User suspended.",401);Bi(Vi.ValueOutOfRange,({collection:e,field:t,value:n})=>{let a="Numeric value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="is out of range.",a},400);Bi(Vi.ValueTooLong,({collection:e,field:t,value:n})=>{let a="Value ";return n&&(a+=`"${n}" `),t&&(a+=`for field "${t}" `),e&&(a+=`in collection "${e}" `),a+="is too long.",a},400);function zi(e){const t=o(0),n=o(0),a=new ResizeObserver(([e])=>{void 0!==e&&(t.value=e.contentRect.width,n.value=e.contentRect.height)});return b(()=>{const t=A(e)?e.value:e;Qr(t)||a.observe(t)}),T(()=>{a.disconnect()}),{width:t,height:n}}Bi(Vi.OutOfTime,({category:e,duration:t})=>`${e} timed out after ${(0,Ui.default)(t,{long:!0})}.`,408);const Gi="wrapper",Ki=["selection","layoutOptions","layoutQuery"];function Hi(e){const{layouts:t}=function(){const e=j("extensions");if(!e)throw new Error("[useExtensions]: The extensions could not be found.");return e}(),n=i(()=>t.value.map(e=>function(e){return l({name:`${e.id}-${Gi}`,props:{collection:{type:String,required:!0},selection:{type:Array,default:()=>[]},layoutOptions:{type:Object,default:()=>({})},layoutQuery:{type:Object,default:()=>({})},layoutProps:{type:Object,default:()=>({})},filter:{type:Object,default:null},filterUser:{type:Object,default:null},filterSystem:{type:Object,default:null},search:{type:String,default:null},showSelect:{type:String,default:"multiple"},selectMode:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resetPreset:{type:Function,default:null},clearFilters:{type:Function,default:null}},emits:Ki.map(e=>`update:${e}`),setup(t,{emit:n}){const a=I({...e.setup(t,{emit:n}),...D(t),sidebarShadow:e.sidebarShadow??!1});for(const e in a)a[`onUpdate:${e}`]=r=>{var o;o=e,Ki.includes(o)?n(`update:${e}`,r):Object.keys(t).includes(e)||(a[e]=r)};return{state:a}},render:e=>void 0!==e.$slots.default?e.$slots.default({layoutState:e.state}):null})}(e)));return{layoutWrapper:i(()=>{const t=n.value.find(t=>t.name===`${e.value}-${Gi}`);return void 0===t?n.value.find(e=>e.name===`tabular-${Gi}`):t})}}const Xi=["value","placeholder","tabindex","disabled"];var qi=l({__name:"search-input",props:{modelValue:{},disabled:{type:Boolean},showFilter:{type:Boolean,default:!0},collection:{},filter:{},autofocus:{type:Boolean},placeholder:{}},emits:["update:modelValue","update:filter"],setup(e,{emit:t}){const n=e,a=t,r=o(null),l=o(Boolean(n.autofocus)),v=o(!1),h=o(!1),g=j("main-element",void 0),w=o(),{width:S}=zi(g??o(void 0)),{width:A}=zi(w);y([S,A],()=>{if(!w.value)return;const e=g?.value?.firstElementChild,t=w.value.parentElement;if(!t)return;const n=t.offsetWidth-4;if(!e)return void(w.value.style.maxInlineSize="");const a=t.getBoundingClientRect().right-(e.getBoundingClientRect().left+Number(window.getComputedStyle(e).paddingInlineStart.replace("px","")));w.value.style.maxInlineSize=a>n?`${String(a)}px`:"0px"},{immediate:!0}),b(()=>{l.value&&r.value?.focus()});const O=i(()=>{if(!n.filter)return 0;const e=[];return function t(n){for(const[a,r]of Object.entries(n))"_and"===a||"_or"===a?r?.forEach?.(t):a.startsWith("_")?e.push(a):r&&"object"==typeof r&&t(r)}(n.filter),e.length});function C(e){return!(e.path||e.composedPath?.()||[]).some(e=>e?.classList?.contains("v-menu-content"))}function I(){l.value||r.value?.focus(),l.value=!0}function T(){v.value=!v.value,l.value=!0,v.value||r.value?.focus()}function D(){a("update:modelValue",null),l.value&&r.value?.focus()}function L(){l.value=!1,v.value=!1,r.value?.blur()}function F(e){if(v.value)return;const t=e.currentTarget?.closest(".search-input"),n=e.relatedTarget;n&&t?.contains(n)||L()}function P(){r.value&&a("update:modelValue",r.value.value||null)}return y(v,e=>{h.value=!!e}),(t,n)=>{const a=s("v-icon"),o=s("interface-system-filter"),i=s("v-badge"),g=R("tooltip"),y=R("click-outside");return c(),d(i,{bottom:"",right:"",class:$(["search-badge",{active:l.value,"filter-active":v.value}]),value:O.value,disabled:e.disabled||!O.value||v.value},{default:u(()=>[N((c(),p("div",{class:$(["search-input",{active:l.value,disabled:e.disabled,"filter-active":v.value,"has-content":!!e.modelValue,"filter-border":h.value,"show-filter":e.showFilter}]),role:"search",onClick:I},[f(a,{small:"",name:"search",class:"icon-search",disabled:e.disabled,clickable:!l.value,onClick:n[0]||(n[0]=e=>r.value?.focus())},null,8,["disabled","clickable"]),x("input",{ref_key:"input",ref:r,value:e.modelValue,placeholder:e.placeholder??"Search items…",type:"search",spellcheck:"false",autocapitalize:"off",autocorrect:"off",autocomplete:"off",tabindex:l.value||e.modelValue?void 0:-1,disabled:e.disabled,onInput:P,onPaste:P,onKeydown:k(L,["esc"]),onFocusin:I,onFocusout:F},null,40,Xi),n[2]||(n[2]=x("div",{class:"spacer"},null,-1)),e.modelValue?N((c(),d(a,{key:0,small:"",clickable:"",class:"icon-clear",name:"close",disabled:e.disabled,onClick:E(D,["stop"])},null,8,["disabled"])),[[g,"Clear value",void 0,{bottom:!0}]]):_("v-if",!0),e.showFilter?(c(),p(m,{key:1},[N(f(a,{small:"",clickable:"",class:"icon-filter",name:"filter_list",disabled:e.disabled,onClick:T},null,8,["disabled"]),[[g,!e.disabled&&"Filter",void 0,{bottom:!0}]]),N(x("div",{ref_key:"filterElement",ref:w,class:$(["filter",{active:l.value}])},[f(o,{class:"filter-input",inline:"",value:e.filter,"collection-name":e.collection,onInput:n[1]||(n[1]=e=>t.$emit("update:filter",e))},null,8,["value","collection-name"])],2),[[M,v.value]])],64)):_("v-if",!0)],2)),[[y,{handler:L,middleware:C,disabled:!l.value}]])]),_:1},8,["class","value","disabled"])}}});we("\n/* Mirrors upstream search-input.vue styles (logical props → physical where needed). */\n.search-badge[data-v-576fbb1b] {\n\t--v-badge-background-color: var(--theme--primary);\n\t--v-badge-offset-y: 0.4375rem;\n\t--v-badge-offset-x: 0.4375rem;\n}\n@media (width <= 22.5rem) {\n.search-badge.active[data-v-576fbb1b],\n\t.search-badge.filter-active[data-v-576fbb1b] {\n\t\tposition: absolute;\n\t\tinset-inline: 0;\n\t\tz-index: 1;\n\t\tbackground-color: var(--theme--header--background);\n}\n}\n.search-badge[data-v-576fbb1b] .badge {\n\tpointer-events: none;\n}\n.search-input[data-v-576fbb1b] {\n\t--button-size: 2rem;\n\t--search-input-size: calc(var(--button-size) - var(--theme--border-width) * 2);\n\t--search-input-radius: calc(var(--button-size) / 2);\n\t--icon-size: 1rem;\n\t--icon-search-padding-left: 0.375rem;\n\t--icon-search-padding-right: 0.25rem;\n\t--icon-filter-margin-right: 0.4375rem;\n\n\tposition: relative;\n\tbox-sizing: content-box;\n\tdisplay: flex;\n\talign-items: center;\n\twidth: var(--search-input-size);\n\tmin-height: var(--search-input-size);\n\tmax-width: calc(100% - var(--theme--border-width) * 2);\n\toverflow: hidden;\n\tborder: var(--theme--border-width) solid var(--theme--form--field--input--border-color);\n\tborder-radius: var(--search-input-radius);\n\ttransition:\n\t\twidth var(--slow, 300ms) var(--transition, ease-in-out),\n\t\tborder-bottom-left-radius var(--fast, 125ms) var(--transition, ease-in-out),\n\t\tborder-bottom-right-radius var(--fast, 125ms) var(--transition, ease-in-out);\n}\n.search-input.show-filter[data-v-576fbb1b] {\n\twidth: calc(\n\t\tvar(--icon-size) * 2 + var(--icon-search-padding-left) + var(--icon-search-padding-right) +\n\t\t\tvar(--icon-filter-margin-right)\n\t);\n}\n.search-input input[data-v-576fbb1b] {\n\twidth: 0;\n\theight: 100%;\n\tmargin: 0;\n\tpadding: 0;\n\toverflow: hidden;\n\tcolor: var(--theme--foreground);\n\ttext-overflow: ellipsis;\n\tbackground-color: transparent;\n\tborder: none;\n\tborder-radius: 0;\n\tflex-grow: 1;\n\topacity: 0;\n\toutline: none;\n\tfont: inherit;\n}\n.search-input input[data-v-576fbb1b]::placeholder {\n\tcolor: var(--theme--foreground-subdued);\n}\n.search-input.disabled input[data-v-576fbb1b] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.search-input .spacer[data-v-576fbb1b] {\n\twidth: 0.4375rem;\n}\n.search-input .icon-clear[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\t--v-icon-color-hover: var(--theme--danger);\n\tmin-width: auto;\n\toverflow: hidden;\n}\n.search-input .icon-search[data-v-576fbb1b],\n.search-input .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color-hover: var(--theme--primary);\n}\n.search-input.disabled .icon-search[data-v-576fbb1b],\n.search-input.disabled .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n}\n.search-input .icon-search[data-v-576fbb1b] {\n\tmargin-block: 0;\n\tmargin-inline: var(--icon-search-padding-left) var(--icon-search-padding-right);\n}\n.search-input .icon-filter[data-v-576fbb1b] {\n\tmargin-inline-end: var(--icon-filter-margin-right);\n}\n.search-input[data-v-576fbb1b]:focus-within,\n.search-input[data-v-576fbb1b]:not(.disabled):not(.active):hover {\n\tborder-color: var(--theme--form--field--input--border-color-hover);\n}\n.search-input.has-content[data-v-576fbb1b] {\n\twidth: 11.25rem;\n}\n.search-input.has-content .icon-clear[data-v-576fbb1b] {\n\tmargin-inline-end: 0.4375rem;\n}\n.search-input.has-content input[data-v-576fbb1b] {\n\topacity: 1;\n}\n.search-input.has-content.show-filter .icon-clear[data-v-576fbb1b] {\n\tmargin-inline-end: 0;\n}\n.search-input.active[data-v-576fbb1b] {\n\twidth: 100%;\n\tborder-color: var(--theme--form--field--input--border-color-focus);\n}\n@media (width > 22.5rem) {\n.search-input.active[data-v-576fbb1b] {\n\t\twidth: 8.4375rem;\n}\n}\n@media (width >= 48rem) {\n.search-input.active[data-v-576fbb1b] {\n\t\twidth: 11.25rem;\n}\n}\n.search-input.active input[data-v-576fbb1b] {\n\topacity: 1;\n}\n.search-input.filter-active[data-v-576fbb1b] {\n\twidth: 100%;\n}\n.search-input.filter-active .icon-filter[data-v-576fbb1b] {\n\t--v-icon-color: var(--theme--primary);\n}\n@media (width > 22.5rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 8.4375rem;\n}\n}\n@media (width >= 48rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 11.25rem;\n}\n}\n@media (width >= 54rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 16.875rem;\n}\n}\n@media (width >= 70.875rem) {\n.search-input.filter-active[data-v-576fbb1b] {\n\t\twidth: 23.625rem;\n}\n}\n.search-input.filter-border[data-v-576fbb1b] {\n\tpadding-block-end: var(--theme--border-width);\n\tborder-block-end: none;\n\tborder-bottom-right-radius: 0;\n\tborder-bottom-left-radius: 0;\n\ttransition:\n\t\tborder-bottom-left-radius 0s,\n\t\tborder-bottom-right-radius 0s;\n}\n.search-input.filter-border[data-v-576fbb1b]::after {\n\tposition: absolute;\n\tinset-inline: var(--theme--border-width) var(--theme--border-width);\n\tbottom: calc(-1 * var(--theme--border-width));\n\twidth: auto;\n\theight: var(--theme--border-width);\n\tbackground-color: var(--theme--border-color-subdued);\n\tcontent: '';\n\tpointer-events: none;\n}\n\n/* Allow the absolute filter panel to paint below the collapsed pill (upstream uses TransitionExpand). */\n.search-input.filter-active[data-v-576fbb1b],\n.search-input.filter-border[data-v-576fbb1b] {\n\toverflow: visible;\n}\n.filter[data-v-576fbb1b] {\n\tposition: absolute;\n\ttop: 100%;\n\tright: 0;\n\tz-index: 10;\n\twidth: auto;\n\tmin-width: 100%;\n\tpadding: 0;\n\tbackground-color: var(--theme--background-subdued);\n\tborder: var(--theme--border-width) solid var(--theme--form--field--input--border-color);\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: var(--search-input-radius);\n\tborder-bottom-left-radius: var(--search-input-radius);\n}\n.filter.active[data-v-576fbb1b] {\n\tborder-color: var(--theme--form--field--input--border-color-focus);\n}\n.filter .filter-input[data-v-576fbb1b] {\n\tmargin: 0.5625rem 0.4375rem;\n}\n",{});var Wi=xe(qi,[["__scopeId","data-v-576fbb1b"]]),Yi=l({__name:"header-action-button",props:{icon:{},disabled:{type:Boolean},loading:{type:Boolean},secondary:{type:Boolean},outlined:{type:Boolean},to:{},active:{type:Boolean}},emits:["click"],setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-button");return c(),d(r,{disabled:e.disabled,active:e.active,loading:e.loading,secondary:e.secondary,outlined:e.outlined,to:e.to,icon:"",rounded:"",small:"",onClick:n[0]||(n[0]=e=>t.$emit("click"))},{default:u(()=>[f(a,{name:e.icon,small:""},null,8,["name"])]),_:1},8,["disabled","active","loading","secondary","outlined","to"])}});const Ji={class:"layout-options"},Qi={class:"field"};var Zi=l({__name:"layout-sidebar-detail",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,r=i({get:()=>n.modelValue??"cards",set(e){a("update:modelValue",e)}}),o=[{text:"Cards",value:"cards",icon:"grid_view"},{text:"Table",value:"tabular",icon:"table_rows"}];return(e,t)=>{const n=s("v-select"),a=s("sidebar-detail");return c(),d(a,{id:"layout",icon:"layers",title:"Layout Options"},{default:u(()=>[x("div",Ji,[x("div",Qi,[t[1]||(t[1]=x("div",{class:"type-label"},"Layout",-1)),f(n,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=e=>r.value=e),items:o,"item-text":"text","item-value":"value","item-icon":"icon"},null,8,["modelValue"])]),L(e.$slots,"default",{},void 0,!0)])]),_:3})}}});we("\n.layout-options[data-v-65862970] {\n\t--theme--form--row-gap: 1.125rem;\n\tmargin-bottom: 0.25rem;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--theme--form--row-gap);\n}\n.field[data-v-65862970] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n.type-label[data-v-65862970] {\n\tfont-weight: 600;\n\tfont-size: 13px;\n}\n",{});var el=xe(Zi,[["__scopeId","data-v-65862970"]]);const tl=o(!1),nl=o(!1),al=o(null),rl=o(0),ol=o("/storage-manager"),il=I({from:null,to:"",currentIndex:0,totalFiles:0,currentName:"",transferredBytes:0,totalBytes:0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0});let ll=null,sl=null,cl={},dl=null,ul=null,fl=null;function pl(){return fl}function ml(e){const t={"Content-Type":"application/json",Accept:"text/event-stream"},n=e?.defaults?.headers,a=n?.common?.Authorization||n?.Authorization||n?.common?.authorization||n?.authorization;return"string"==typeof a&&a&&(t.Authorization=a),t}function vl(e){"start"===e.type?(il.from=e.from||il.from,il.to=e.to,il.totalFiles=e.total,il.totalBytes=e.total_bytes,il.currentIndex=0,il.currentName="",il.transferredBytes=0,il.elapsedMs=0,il.speedBps=0,il.succeeded=0,il.skipped=0,il.failed=0):"file_start"===e.type?(il.currentIndex=e.index,il.totalFiles=e.total,il.currentName=e.name||e.filename_disk,il.from||(il.from=e.from),il.to=e.to):"file_bytes"===e.type?(il.currentIndex=e.index,il.transferredBytes=e.transferred_bytes,il.totalBytes=e.total_bytes||il.totalBytes,il.elapsedMs=e.elapsed_ms,il.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0):"file_done"===e.type?(il.currentIndex=e.index,il.totalFiles=e.total,il.currentName=e.name||e.result.filename_disk,il.succeeded=e.succeeded,il.skipped=e.skipped,il.failed=e.failed,il.transferredBytes=e.transferred_bytes,il.totalBytes=e.total_bytes||il.totalBytes,il.elapsedMs=e.elapsed_ms,il.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0):"done"===e.type&&(il.succeeded=e.data.succeeded,il.skipped=e.data.skipped,il.failed=e.data.failed,il.transferredBytes=e.data.transferred_bytes??il.transferredBytes,il.totalBytes=e.data.total_bytes??il.totalBytes,il.elapsedMs=e.data.elapsed_ms??il.elapsedMs,il.totalFiles=e.data.total,il.currentIndex=e.data.total,il.speedBps=il.elapsedMs>0?1e3*il.transferredBytes/il.elapsedMs:0),cl.onProgress?.(e),nl.value&&function(){if(!sl)return;const e=pl();if(!e)return;e.update(sl,{title:gl(),text:il.currentName?`${il.currentName} · click for details`:`${Be(il.transferredBytes)}${il.totalBytes?` / ${Be(il.totalBytes)}`:""} · click for details`,loading:0===il.totalFiles,progress:0===il.totalFiles?void 0:hl(),type:"info",persist:!0,closeable:!0,alwaysShowText:!0,icon:"swap_horiz",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{yl()}})}()}function hl(){return il.totalBytes>0?Math.min(100,Math.round(il.transferredBytes/il.totalBytes*100)):il.totalFiles>0?Math.min(100,Math.round(il.currentIndex/il.totalFiles*100)):0}function gl(){const e="copy"===dl?.mode?"Copying":"Moving",t=il.to||dl?.target_storage||"…",n=il.from?`${il.from} → `:"";if(!il.totalFiles)return`${e} files to ${t}…`;return`${e} ${Math.min(il.currentIndex||0,il.totalFiles)}/${il.totalFiles} · ${n}${t}`}function yl(){sl=null,nl.value=!1,rl.value+=1,ul?.()}function bl(e,t,n){const a=pl();a&&(sl&&(a.remove(sl),sl=null),a.add({title:t,text:n,type:"warning"===e?"warning":e,icon:"success"===e?"check_circle":"warning"===e?"cancel":"error",persist:!1,closeable:!0}))}function _l(){const n=e();if(!fl)try{const{useNotificationsStore:e}=t();fl=e?.()??null}catch{fl=null}const a=i(()=>tl.value);function r(){cl={}}return{running:tl,backgrounded:nl,result:al,progress:il,reopenNonce:rl,returnToPath:ol,activeMode:i(()=>dl?.mode??null),activeTarget:i(()=>dl?.target_storage??null),isBusy:a,start:async function(e,t){if(tl.value)throw new Error("A migration is already running");dl=e,tl.value=!0,nl.value=!1,al.value=null,ll=new AbortController,t?.listener&&(cl=t.listener),function(e="",t=0,n=0,a=null){il.from=a,il.to=e,il.currentIndex=0,il.totalFiles=t,il.currentName="",il.transferredBytes=0,il.totalBytes=n,il.elapsedMs=0,il.speedBps=0,il.succeeded=0,il.skipped=0,il.failed=0}(e.target_storage,t?.estimatedCount??e.file_ids?.length??0,t?.estimatedBytes||0,t?.sourceStorage||e.source_storage||null);try{const t=await fetch(function(e){const t=String(e?.defaults?.baseURL||"").replace(/\/$/,""),n="/storage-manager/migrate/stream";return t?`${t}${n}`:n}(n),{method:"POST",headers:ml(n),body:JSON.stringify(e),credentials:"same-origin",signal:ll.signal}),a=await async function(e,t){if(!e.ok){let t=`Move failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for progress stream");const n=e.body.getReader(),a=new TextDecoder;let r="",o=null;for(;;){const{done:e,value:i}=await n.read();if(e)break;r+=a.decode(i,{stream:!0});const l=r.split("\n\n");r=l.pop()||"";for(const e of l)for(const n of e.split("\n")){const e=n.trim();if(!e.startsWith("data:"))continue;const a=e.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"done"===r.type&&(o=r.data),"error"===r.type)throw new Error(r.message||"Move failed")}}if(!o)throw new Error("Move stream ended without a result");return o}(t,vl);return al.value=a,nl.value&&bl(a.failed?"warning":"success",a.failed?`Move finished with ${a.failed} failure(s)`:`Move complete · ${a.succeeded} file(s)`,`${"copy"===e.mode?"Copied":"Moved"} to ${e.target_storage}`),cl.onDone?.(a),a}catch(t){if("AbortError"===t?.name){const t=(a=e.mode,r=e.target_storage,{mode:a,target_storage:r,total:il.totalFiles,succeeded:il.succeeded,skipped:il.skipped,failed:il.failed,results:[],transferred_bytes:il.transferredBytes,total_bytes:il.totalBytes,elapsed_ms:il.elapsedMs,cancelled:!0});return al.value=t,nl.value&&bl("warning","Move cancelled",`${il.succeeded} file(s) completed before cancel`),cl.onCancel?.(t),t}const n=t?.message||"Move failed";throw nl.value&&bl("error","Move failed",n),cl.onError?.(t instanceof Error?t:new Error(n)),t}finally{if(tl.value=!1,nl.value=!1,ll=null,dl=null,sl){const e=pl();e?.remove(sl),sl=null}}var a,r},runInBackground:function(e){if(!tl.value||nl.value)return!1;nl.value=!0,r(),e?.returnTo&&(ol.value=e.returnTo),ul=e?.navigate||null;const t=pl();return t&&!sl&&(sl=t.add({title:gl(),text:"Click for details — move continues in the background.",type:"info",persist:!0,closeable:!0,alwaysShowText:!0,loading:0===il.totalFiles,progress:0===il.totalFiles?void 0:hl(),icon:"swap_horiz",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{yl()}})),!0},attachForeground:function(e){if(nl.value=!1,e&&(cl=e),sl){const e=pl();e?.remove(sl),sl=null}},cancel:function(){ll?.abort()},clearLastResult:function(){al.value=null},setListeners:function(e){cl=e},clearListeners:r}}const wl={class:"progress-panel"},xl={class:"route"},Sl={class:"adapter"},kl={class:"adapter"},El={class:"file-line"},Al={class:"file-count"},Ol=["title"],$l={class:"bar-wrap"},Cl={class:"bar-track"},Il={class:"bar-meta"},Rl={class:"stats"},Nl={class:"stat"},Tl={class:"stat-value"},jl={class:"stat"},Dl={class:"stat-value"},Ml={class:"stat"},Ll={class:"stat-value"},Fl={class:"counts"},Pl={class:"ok"},Ul={class:"skip"},Bl={class:"fail"};var Vl=l({__name:"migrate-progress",props:{storages:{},mode:{},from:{},to:{},currentIndex:{},totalFiles:{},currentName:{},transferredBytes:{},totalBytes:{},elapsedMs:{},speedBps:{},succeeded:{},skipped:{},failed:{},isDone:{type:Boolean},isCancelled:{type:Boolean}},setup(e){const t=e;function n(e){if(!e)return{short:"—",icon:"storage"};const n=t.storages.find(t=>t.location===e);return n||{short:e,icon:"storage",location:e}}const a=i(()=>n(t.from)),r=i(()=>n(t.to)),o=i(()=>t.from?`${t.from} (${a.value.short})`:"Mixed sources"),l=i(()=>`${t.to} (${r.value.short})`),d=i(()=>a.value.icon),m=i(()=>r.value.icon),v=i(()=>"copy"===t.mode?"Copy":"Move"),y=i(()=>t.totalBytes>0?Math.max(0,Math.min(100,t.transferredBytes/t.totalBytes*100)):t.totalFiles>0?Math.max(0,Math.min(100,t.currentIndex/t.totalFiles*100)):0),b=i(()=>Math.round(y.value)),_=i(()=>t.isDone?t.isCancelled?"Cancelled":t.failed>0?"Completed with errors":"Completed":"Moving");return(t,n)=>{const a=s("v-icon"),r=s("v-chip");return c(),p("div",wl,[x("div",xl,[x("div",Sl,[f(a,{name:d.value},null,8,["name"]),x("span",null,g(o.value),1)]),f(a,{class:"arrow",name:"arrow_forward"}),x("div",kl,[f(a,{name:m.value},null,8,["name"]),x("span",null,g(l.value),1)]),f(r,{"x-small":"",class:"mode-chip"},{default:u(()=>[h(g(v.value),1)]),_:1})]),x("div",El,[x("span",Al,"File "+g(e.currentIndex)+" / "+g(e.totalFiles),1),x("span",{class:"file-name",title:e.currentName},g(e.currentName||"Preparing…"),9,Ol)]),x("div",$l,[x("div",Cl,[x("div",{class:"bar-fill",style:C({width:`${y.value}%`})},null,4)]),x("div",Il,[x("strong",null,g(b.value)+"%",1),x("span",null,g(O(Be)(e.transferredBytes))+" / "+g(O(Be)(e.totalBytes)),1)])]),x("div",Rl,[x("div",Nl,[n[0]||(n[0]=x("span",{class:"stat-label"},"Speed",-1)),x("span",Tl,g(O(Ve)(e.speedBps)),1)]),x("div",jl,[n[1]||(n[1]=x("span",{class:"stat-label"},"Elapsed",-1)),x("span",Dl,g(O(ze)(e.elapsedMs)),1)]),x("div",Ml,[n[2]||(n[2]=x("span",{class:"stat-label"},"Status",-1)),x("span",Ll,g(_.value),1)])]),x("div",Fl,[x("span",Pl,g(e.succeeded)+" Ok",1),x("span",Ul,g(e.skipped)+" Skipped",1),x("span",Bl,g(e.failed)+" Failed",1)])])}}});we("\n.progress-panel[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n\tpadding: 16px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color);\n\tbackground: var(--theme--background-subdued);\n}\n.route[data-v-49e3abe7] {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 10px;\n}\n.adapter[data-v-49e3abe7] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-weight: 600;\n}\n.arrow[data-v-49e3abe7] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.mode-chip[data-v-49e3abe7] {\n\tmargin-left: auto;\n}\n.file-line[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n\tmin-width: 0;\n}\n.file-count[data-v-49e3abe7] {\n\tfont-size: 12px;\n\tfont-weight: 700;\n\tletter-spacing: 0.02em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n}\n.file-name[data-v-49e3abe7] {\n\tfont-size: 14px;\n\tfont-weight: 600;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.bar-wrap[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n.bar-track[data-v-49e3abe7] {\n\theight: 10px;\n\tborder-radius: 999px;\n\tbackground: var(--theme--background-normal);\n\toverflow: hidden;\n}\n.bar-fill[data-v-49e3abe7] {\n\theight: 100%;\n\tborder-radius: inherit;\n\tbackground: var(--theme--primary);\n\ttransition: width 160ms ease;\n}\n.bar-meta[data-v-49e3abe7] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 12px;\n\tfont-size: 13px;\n}\n.stats[data-v-49e3abe7] {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, minmax(0, 1fr));\n\tgap: 8px;\n}\n.stat[data-v-49e3abe7] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tpadding: 8px 10px;\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background);\n}\n.stat-label[data-v-49e3abe7] {\n\tfont-size: 11px;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.03em;\n\tcolor: var(--theme--foreground-subdued);\n}\n.stat-value[data-v-49e3abe7] {\n\tfont-weight: 700;\n\tfont-variant-numeric: tabular-nums;\n}\n.counts[data-v-49e3abe7] {\n\tdisplay: flex;\n\tgap: 12px;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.counts .ok[data-v-49e3abe7] {\n\tcolor: var(--theme--success);\n}\n.counts .fail[data-v-49e3abe7] {\n\tcolor: var(--theme--danger);\n}\n",{});var zl=xe(Vl,[["__scopeId","data-v-49e3abe7"]]);const Gl={class:"drawer-body"},Kl={class:"intro"},Hl={key:0,class:"description"},Xl={class:"field"},ql={key:0,class:"field"},Wl={key:1,class:"field"},Yl={class:"dry-run-row"},Jl={key:0,class:"dry-run-result"},Ql={key:0},Zl={key:1,class:"dry-run-note"},es={key:2},ts={class:"dry-run-note"},ns={key:1,class:"note"},as={key:5,class:"background-actions"},rs={key:6,class:"result"},os={key:0},is={key:2,class:"failures"};var ls=l({__name:"migrate-drawer",props:{modelValue:{type:Boolean},storages:{},sourceStorage:{},selectionKind:{},fileIds:{},folderId:{},sourcePath:{},estimatedCount:{},estimatedBytes:{}},emits:["update:modelValue","done"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=X(),w=H(),{running:S,backgrounded:k,progress:E,result:A,activeMode:$,activeTarget:C,start:I,runInBackground:T,attachForeground:j,cancel:D,clearListeners:M,clearLastResult:L}=_l(),F=o(null),P=o("move"),U=o(!0),B=o(!0),V=o(null),z=o(!1),G=o(null),K=o(!1),q=i(()=>S.value&&!K.value&&!k.value&&!a.modelValue),W=i(()=>Boolean(F.value)&&!S.value);function Y(e){V.value=e,K.value=!1,e.mode&&(P.value=e.mode),e.target_storage&&(F.value=e.target_storage)}async function J(){if(F.value&&!z.value){z.value=!0,G.value=null;try{const e={target_storage:F.value,include_empty_folders:B.value};"files"===a.selectionKind?e.file_ids=a.fileIds||[]:"storage"===a.selectionKind?e.source_storage=a.sourceStorage||void 0:"storage_path"===a.selectionKind?(e.source_storage=a.sourceStorage||void 0,e.source_path=a.sourcePath||void 0,e.recursive=U.value):"folder"===a.selectionKind&&(e.folder_id=a.folderId??null,e.recursive=U.value,a.sourceStorage&&(e.source_storage=a.sourceStorage));const t=await l.post("/storage-manager/migrate/dry-run",e);G.value=t.data?.data??null}catch{}finally{z.value=!1}}}y(F,()=>{G.value=null}),y(()=>a.modelValue,e=>{if(e)return S.value?(j({onDone:e=>{V.value=e,K.value=!1,r("done",e)},onCancel:e=>{V.value=e,K.value=!1},onError:e=>{V.value={mode:$.value||P.value,target_storage:C.value||F.value||"",total:E.totalFiles,succeeded:E.succeeded,skipped:E.skipped,failed:Math.max(1,E.failed),results:[{id:"",filename_disk:"",from:E.from||"",to:C.value||F.value||"",status:"failed",error:e.message||"Move failed"}],transferred_bytes:E.transferredBytes,total_bytes:E.totalBytes,elapsed_ms:E.elapsedMs},K.value=!1}}),K.value=!0,$.value&&(P.value=$.value),C.value&&(F.value=C.value),void(A.value&&(V.value=A.value))):void(A.value?Y(A.value):function(){V.value=null,G.value=null,K.value=!1;const e=a.storages.find(e=>e.location!==a.sourceStorage);F.value=e?.location||null,P.value="move",U.value=!0,B.value=!0}())}),y(A,e=>{a.modelValue&&e&&!S.value&&Y(e)}),y(S,(e,t)=>{a.modelValue&&t&&!e&&A.value&&Y(A.value)});const Q=i(()=>a.storages.filter(e=>e.location!==a.sourceStorage).map(e=>({text:`${e.location} (${e.short})`,value:e.location}))),Z=i(()=>"Move"),ee=i(()=>{const e=V.value?.total??(S.value&&E.totalFiles>0?E.totalFiles:null)??a.estimatedCount??a.fileIds?.length??0,t=V.value?.total_bytes??(S.value&&E.totalBytes>0?E.totalBytes:null)??a.estimatedBytes,n=null!=t?` (${Be(t)})`:"",r=Boolean(V.value);if("storage"===a.selectionKind)return r?`Moved ${e.toLocaleString()} files${n} from “${a.sourceStorage}”.`:`Move all ${e.toLocaleString()} files${n} on “${a.sourceStorage}”.`;if("storage_path"===a.selectionKind){const t=a.sourcePath||"this folder";return r?`Moved ${e.toLocaleString()} files${n} from “${t}”.`:null==a.estimatedCount?`Move all files in “${t}”${n}.`:`Move ${e.toLocaleString()} files${n} in “${t}”.`}if("folder"===a.selectionKind){const t=a.folderId?"in this folder":"at the root (files with no virtual folder)";return r?a.folderId?`Moved ${e.toLocaleString()} files${n} from this folder.`:`Moved ${e.toLocaleString()} root files${n}.`:null==a.estimatedCount?a.folderId?`Move all files ${t}${n}.`:`Move all root files${n} (files with no virtual folder).`:`Move ${e.toLocaleString()} files${n} ${t}.`}return r?`Moved ${e.toLocaleString()} selected file(s)${n}.`:`Move ${e.toLocaleString()} selected file(s)${n}.`}),te=i(()=>{if("storage"===a.selectionKind)return`Every file currently stored on "${a.sourceStorage}" will be moved to the target storage. The file record in Directus is updated to point to the new location — no data is lost. Generated thumbnails are moved as well. Physical files are deleted from "${a.sourceStorage}" once safely copied. Empty folders can be included so the destination tree matches the source.`;if("storage_path"===a.selectionKind){return`All files under "${a.sourcePath||"this path"}" on "${a.sourceStorage}" will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are removed from the source path once copied.`}return"folder"===a.selectionKind?"Files in the selected Directus folder will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are deleted from the source storage once copied.":"The selected files will be moved to the target storage. File records in Directus are updated automatically. Generated thumbnails are moved as well. Physical files are deleted from the source once copied."}),ne=i(()=>(V.value?.results||[]).filter(e=>"failed"===e.status));function ae(e){e||!S.value||!K.value||k.value?r("update:modelValue",e):le()}function re(){S.value&&K.value&&!k.value?le():r("update:modelValue",!1)}function oe(){D()}function ie(){L(),V.value=null,r("update:modelValue",!1)}function le(){const e=b.path.startsWith("/storage-manager")?b.path:"/storage-manager";T({returnTo:e,navigate:()=>{w.push({path:e,query:{...b.query,migrateJob:"1"}})}})&&(K.value=!1,r("update:modelValue",!1))}async function se(){if(!F.value||S.value)return;V.value=null,K.value=!0;const e={target_storage:F.value,mode:P.value,keep_source_file_on_disk:!1,concurrency:1,file_ids:void 0,source_storage:void 0,source_path:void 0,folder_id:void 0,recursive:void 0,include_empty_folders:B.value};"files"===a.selectionKind?e.file_ids=a.fileIds||[]:"storage"===a.selectionKind?e.source_storage=a.sourceStorage||void 0:"storage_path"===a.selectionKind?(e.source_storage=a.sourceStorage||void 0,e.source_path=a.sourcePath||void 0,e.recursive=U.value):"folder"===a.selectionKind&&(e.folder_id=a.folderId??null,e.recursive=U.value,a.sourceStorage&&(e.source_storage=a.sourceStorage));try{await I(e,{estimatedCount:a.estimatedCount||a.fileIds?.length||0,estimatedBytes:a.estimatedBytes,sourceStorage:a.sourceStorage,listener:{onDone:e=>{K.value&&(V.value=e,r("done",e))},onCancel:e=>{K.value&&(V.value=e)},onError:e=>{K.value&&(V.value={mode:P.value,target_storage:F.value,total:E.totalFiles,succeeded:E.succeeded,skipped:E.skipped,failed:Math.max(1,E.failed),results:[{id:"",filename_disk:"",from:E.from||"",to:F.value,status:"failed",error:e.message||"Move failed"}],transferred_bytes:E.transferredBytes,total_bytes:E.totalBytes,elapsed_ms:E.elapsedMs})}}})}catch{}finally{K.value=!1,M()}}return(e,n)=>{const a=s("v-icon"),r=s("v-button"),o=s("v-notice"),i=s("v-select"),l=s("v-checkbox"),y=s("v-drawer"),b=R("tooltip");return c(),d(y,{"model-value":t.modelValue,title:"Move Files",icon:"swap_horiz",persistent:"","onUpdate:modelValue":ae,onCancel:re},{actions:u(()=>[O(S)||V.value?_("v-if",!0):N((c(),d(r,{key:0,disabled:!W.value,icon:"",rounded:"",onClick:se},{default:u(()=>[f(a,{name:"check"})]),_:1},8,["disabled"])),[[b,Z.value,void 0,{bottom:!0}]])]),default:u(()=>[x("div",Gl,[x("p",Kl,g(ee.value),1),O(S)||V.value?_("v-if",!0):(c(),p("p",Hl,g(te.value),1)),O(S)&&O(k)?(c(),d(o,{key:1,type:"info"},{default:u(()=>[...n[3]||(n[3]=[h(" Move continues in the background. You can close this drawer and navigate elsewhere in Studio. ",-1)])]),_:1})):q.value?(c(),d(o,{key:2,type:"warning"},{default:u(()=>[...n[4]||(n[4]=[h(" Another move is already running in the background. Wait for it to finish or cancel it from the progress toast. ",-1)])]),_:1})):_("v-if",!0),O(S)||V.value?_("v-if",!0):(c(),p(m,{key:3},[x("div",Xl,[n[5]||(n[5]=x("label",null,"Target Storage",-1)),f(i,{modelValue:F.value,"onUpdate:modelValue":n[0]||(n[0]=e=>F.value=e),items:Q.value,"item-text":"text","item-value":"value",placeholder:"Select target…"},null,8,["modelValue","items"])]),"folder"===t.selectionKind&&t.folderId||"storage_path"===t.selectionKind?(c(),p("div",ql,[f(l,{modelValue:U.value,"onUpdate:modelValue":n[1]||(n[1]=e=>U.value=e),label:"Include files in subfolders"},null,8,["modelValue"])])):_("v-if",!0),"storage"===t.selectionKind||"storage_path"===t.selectionKind?(c(),p("div",Wl,[f(l,{modelValue:B.value,"onUpdate:modelValue":n[2]||(n[2]=e=>B.value=e),label:"Include empty folders"},null,8,["modelValue"])])):_("v-if",!0),x("div",Yl,[f(r,{secondary:"",loading:z.value,disabled:!W.value,onClick:J},{default:u(()=>[...n[6]||(n[6]=[h(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),f(r,{disabled:!W.value,onClick:se},{default:u(()=>[...n[7]||(n[7]=[h("Run",-1)])]),_:1},8,["disabled"]),G.value?(c(),p("div",Jl,[x("span",null,g(G.value.total_files.toLocaleString())+" files",1),G.value.total_folders?(c(),p("span",Ql," · "+g(G.value.total_folders.toLocaleString())+" "+g(1===G.value.total_folders?"folder":"folders"),1)):_("v-if",!0),G.value.empty_folders?(c(),p("span",Zl," ("+g(G.value.empty_folders.toLocaleString())+" empty"+g(B.value?"":", skipped")+") ",1)):_("v-if",!0),G.value.total_bytes?(c(),p("span",es,"· "+g(O(Be)(G.value.total_bytes)),1)):_("v-if",!0),x("span",ts,"will be moved to "+g(F.value),1)])):(c(),p("p",ns," Count files, folders, and total size without moving anything. "))])],64)),O(S)&&!O(k)||V.value?(c(),d(zl,{key:4,storages:t.storages,mode:P.value,from:O(E).from,to:O(E).to,"current-index":O(E).currentIndex,"total-files":O(E).totalFiles,"current-name":O(E).currentName,"transferred-bytes":O(E).transferredBytes,"total-bytes":O(E).totalBytes,"elapsed-ms":O(E).elapsedMs,"speed-bps":O(E).speedBps,succeeded:O(E).succeeded,skipped:O(E).skipped,failed:O(E).failed,"is-done":Boolean(V.value)&&!O(S),"is-cancelled":Boolean(V.value?.cancelled)},null,8,["storages","mode","from","to","current-index","total-files","current-name","transferred-bytes","total-bytes","elapsed-ms","speed-bps","succeeded","skipped","failed","is-done","is-cancelled"])):_("v-if",!0),O(S)&&!O(k)?(c(),p("div",as,[f(r,{secondary:"",class:"background-btn",onClick:le},{default:u(()=>[...n[8]||(n[8]=[h(" Run in Background ",-1)])]),_:1}),f(r,{kind:"danger",secondary:"",class:"background-btn",onClick:oe},{default:u(()=>[...n[9]||(n[9]=[h(" Cancel Move ",-1)])]),_:1}),n[10]||(n[10]=x("p",{class:"note"}," Closing this drawer also runs in the background. Click the progress toast anytime for details. ",-1))])):_("v-if",!0),V.value?(c(),p("div",rs,[V.value.cancelled?(c(),d(o,{key:0,type:"warning",icon:"cancel"},{default:u(()=>[h(" Move cancelled. "+g(V.value.succeeded.toLocaleString())+" file(s) finished before stop ",1),V.value.total?(c(),p("span",os," (of "+g(V.value.total.toLocaleString())+" planned)",1)):_("v-if",!0),n[11]||(n[11]=h(". ",-1))]),_:1})):(c(),d(o,{key:1,type:V.value.failed?"danger":"success"},{default:u(()=>[h(g(V.value.succeeded)+" succeeded · "+g(V.value.skipped)+" skipped · "+g(V.value.failed)+" failed (of "+g(V.value.total)+") ",1)]),_:1},8,["type"])),!V.value.cancelled&&ne.value.length?(c(),p("div",is,[(c(!0),p(m,null,v(ne.value.slice(0,20),e=>(c(),p("div",{key:e.id,class:"fail-row"},[x("strong",null,g(e.filename_disk||e.id),1),x("span",null,g(e.error),1)]))),128))])):_("v-if",!0),f(r,{secondary:"",class:"background-btn",onClick:ie},{default:u(()=>[...n[12]||(n[12]=[h("Done",-1)])]),_:1})])):_("v-if",!0)])]),_:1},8,["model-value"])}}});we("\n.drawer-body[data-v-38d7930e] {\n\tpadding: 20px 24px 32px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 18px;\n}\n.intro[data-v-38d7930e] {\n\tmargin: 0;\n\tcolor: var(--theme--foreground);\n}\n.description[data-v-38d7930e] {\n\tmargin: 0;\n\tfont-size: 14px;\n\tcolor: var(--theme--foreground-subdued);\n\tline-height: 1.5;\n}\n.field[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n.field label[data-v-38d7930e] {\n\tfont-weight: 600;\n}\n.mode-radios[data-v-38d7930e] {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 10px;\n}\n.mode-radios[data-v-38d7930e] .v-radio.block {\n\twidth: 100%;\n\tmargin: 0;\n}\n.note[data-v-38d7930e] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.background-actions[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 8px;\n}\n.background-actions .note[data-v-38d7930e] {\n\tflex: 1 1 100%;\n}\n.result .background-btn[data-v-38d7930e] {\n\talign-self: flex-start;\n}\n.dry-run-row[data-v-38d7930e] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tflex-wrap: wrap;\n}\n.dry-run-result[data-v-38d7930e] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-size: 14px;\n\tfont-weight: 600;\n}\n.dry-run-note[data-v-38d7930e] {\n\tfont-weight: 400;\n\tcolor: var(--theme--foreground-subdued);\n}\n.result[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n.failures[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tmax-height: 240px;\n\toverflow: auto;\n\tpadding: 8px 0;\n}\n.fail-row[data-v-38d7930e] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tfont-size: 12px;\n\tpadding: 8px 10px;\n\tbackground: var(--theme--background-subdued);\n\tborder-radius: var(--theme--border-radius);\n}\n.fail-row span[data-v-38d7930e] {\n\tcolor: var(--theme--danger);\n}\n",{});var ss=xe(ls,[["__scopeId","data-v-38d7930e"]]);const cs={class:"body"},ds={class:"intro"},us={class:"toolbar"},fs={key:0,class:"meta"},ps={key:1,class:"loading"},ms={key:2,class:"error"},vs={key:3,class:"empty"},hs={key:4,class:"table-wrap"},gs={class:"check-col"},ys={class:"check-col"},bs=["title"];var _s=l({__name:"import-orphans-drawer",props:{modelValue:{type:Boolean},location:{},storagePath:{}},emits:["update:modelValue","imported"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=o(!1),w=o(!1),S=o(!1),k=o(!1),E=o(!1),A=o(!1),C=o(null),I=o([]),T=o([]),j=o(null),D=o(null),M=o(null),L=i(()=>String(a.storagePath||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"").replace(/\/+/g,"/")||""),F=i(()=>L.value?"Detect Files in this Folder":`Detect Files on ${a.location}`),P=i(()=>I.value.length>0&&T.value.length===I.value.length);function U(){k.value=!1,E.value=!1,r("update:modelValue",!1)}function B(e){T.value=e?I.value.map(e=>e.filename_disk):[]}function V(){!I.value.length||w.value||S.value||(k.value=!0)}function z(){!T.value.length||w.value||S.value||(E.value=!0)}async function G(){if(a.location){b.value=!0,C.value=null;try{const e=await l.get(`/storage-manager/storages/${encodeURIComponent(a.location)}/orphans`,{params:L.value?{path:L.value}:void 0});I.value=e.data?.data||[],j.value=e.data?.meta||null,A.value=!0,T.value=[]}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),I.value=[],j.value=null}finally{b.value=!1}}}async function K(){if(I.value.length){w.value=!0,C.value=null;try{const e=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/import-orphans`,{filename_disks:I.value.map(e=>e.filename_disk)}),t=e.data?.data;D.value={imported:Number(t?.imported||0),skipped:Number(t?.skipped||0),failed:Number(t?.failed||0)},k.value=!1,r("imported"),await G()}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),k.value=!1}finally{w.value=!1}}}async function H(){if(!T.value.length)return;S.value=!0,C.value=null;const e=[...T.value];try{const t=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/delete-orphans`,{filename_disks:e}),n=t.data?.data;M.value={deleted:Number(n?.deleted||0),skipped:Number(n?.skipped||0),failed:Number(n?.failed||0)},D.value=null,E.value=!1,r("imported"),await G()}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||String(e),E.value=!1}finally{S.value=!1}}return y(()=>a.modelValue,e=>{e&&(D.value=null,M.value=null,C.value=null,k.value=!1,E.value=!1,G())}),(e,n)=>{const a=s("v-icon"),r=s("v-button"),o=s("v-progress-circular"),i=s("v-checkbox"),l=s("v-drawer"),y=s("v-card-title"),X=s("v-card-text"),q=s("v-card-actions"),W=s("v-card"),Y=s("v-dialog"),J=R("tooltip");return c(),p(m,null,[f(l,{"model-value":t.modelValue,title:F.value,icon:"folder_off","onUpdate:modelValue":n[0]||(n[0]=t=>e.$emit("update:modelValue",t)),onCancel:U},{actions:u(()=>[T.value.length?N((c(),d(r,{key:0,icon:"",rounded:"",secondary:"",disabled:S.value||b.value,loading:S.value,onClick:z},{default:u(()=>[f(a,{name:"delete"})]),_:1},8,["disabled","loading"])),[[J,"Delete Selected from Storage",void 0,{bottom:!0}]]):_("v-if",!0),N((c(),d(r,{icon:"",rounded:"",disabled:!I.value.length||w.value||b.value||S.value,loading:w.value,onClick:V},{default:u(()=>[f(a,{name:"download"})]),_:1},8,["disabled","loading"])),[[J,"Import All Unknown Files",void 0,{bottom:!0}]])]),default:u(()=>[x("div",cs,[x("p",ds,[L.value?(c(),p(m,{key:0},[n[7]||(n[7]=h(" Finds files under ",-1)),x("strong",null,g(L.value),1),n[8]||(n[8]=h(" on ",-1)),x("strong",null,g(t.location),1),n[9]||(n[9]=h(" that aren’t registered in Directus yet. ",-1))],64)):(c(),p(m,{key:1},[n[10]||(n[10]=h(" Finds files on ",-1)),x("strong",null,g(t.location),1),n[11]||(n[11]=h(" that aren’t registered in Directus yet. ",-1))],64)),n[12]||(n[12]=h(" Import only creates database rows — nothing is copied. Titles come from the filename (underscores become spaces). You can delete selected unknown files from storage. Generated thumbnails are excluded. ",-1))]),x("div",us,[f(r,{secondary:"",loading:b.value,disabled:S.value,onClick:G},{default:u(()=>[f(a,{name:"radar",left:""}),h(" "+g(L.value?"Scan Folder":"Scan Storage"),1)]),_:1},8,["loading","disabled"]),f(r,{disabled:!I.value.length||w.value||b.value||S.value,loading:w.value,onClick:V},{default:u(()=>[h(" Import "+g(I.value.length||"")+" New File"+g(1===I.value.length?"":"s"),1)]),_:1},8,["disabled","loading"]),f(r,{secondary:"",disabled:!T.value.length||w.value||b.value||S.value,loading:S.value,onClick:z},{default:u(()=>[f(a,{name:"delete",left:""}),h(" Delete Selected ("+g(T.value.length)+") ",1)]),_:1},8,["disabled","loading"])]),j.value?(c(),p("p",fs," Scanned "+g(j.value.scanned.toLocaleString())+" objects · "+g(j.value.known.toLocaleString())+" already in DB · "+g(j.value.orphan_count.toLocaleString())+" unknown ",1)):_("v-if",!0),b.value?(c(),p("div",ps,[f(o,{indeterminate:""}),n[13]||(n[13]=x("span",null,"Listing storage…",-1))])):C.value?(c(),p("p",ms,g(C.value),1)):A.value&&!I.value.length?(c(),p("p",vs,[L.value?(c(),p(m,{key:0},[h(" No unknown files in this folder. Everything here is already in the database. ")],64)):(c(),p(m,{key:1},[h(" No unknown files on this storage. Everything here is already in the database. ")],64))])):I.value.length?(c(),p("div",hs,[x("table",null,[x("thead",null,[x("tr",null,[x("th",gs,[f(i,{"model-value":P.value,"onUpdate:modelValue":B},null,8,["model-value"])]),n[14]||(n[14]=x("th",null,"filename_disk",-1)),n[15]||(n[15]=x("th",null,"Type",-1)),n[16]||(n[16]=x("th",null,"Size",-1))])]),x("tbody",null,[(c(!0),p(m,null,v(I.value,e=>(c(),p("tr",{key:e.filename_disk},[x("td",ys,[f(i,{"model-value":T.value.includes(e.filename_disk),"onUpdate:modelValue":t=>function(e,t){t?T.value.includes(e)||(T.value=[...T.value,e]):T.value=T.value.filter(t=>t!==e)}(e.filename_disk,t)},null,8,["model-value","onUpdate:modelValue"])]),x("td",{class:"name",title:e.filename_disk},g(e.filename_disk),9,bs),x("td",null,g(e.type||"—"),1),x("td",null,g(O(Be)(e.filesize)),1)]))),128))])])])):_("v-if",!0),M.value?(c(),p("div",{key:5,class:$(["result",M.value.failed?"has-fail":"ok"])}," Deleted "+g(M.value.deleted)+" · skipped "+g(M.value.skipped)+" · failed "+g(M.value.failed),3)):_("v-if",!0),D.value?(c(),p("div",{key:6,class:$(["result",D.value.failed?"has-fail":"ok"])}," Imported "+g(D.value.imported)+" · skipped "+g(D.value.skipped)+" · failed "+g(D.value.failed),3)):_("v-if",!0)])]),_:1},8,["model-value","title"]),f(Y,{"model-value":k.value,"onUpdate:modelValue":n[2]||(n[2]=e=>k.value=e),onEsc:n[3]||(n[3]=e=>k.value=!1)},{default:u(()=>[f(W,null,{default:u(()=>[f(y,null,{default:u(()=>[...n[17]||(n[17]=[h("Import new files?",-1)])]),_:1}),f(X,null,{default:u(()=>[n[18]||(n[18]=h(" Do you want to import ",-1)),x("strong",null,g(I.value.length.toLocaleString()),1),h(" new file"+g(1===I.value.length?"":"s")+" into storage ",1),x("strong",null,g(t.location),1),n[19]||(n[19]=h("? ",-1)),n[20]||(n[20]=x("br",null,null,-1)),n[21]||(n[21]=x("br",null,null,-1)),n[22]||(n[22]=h(" Each file keeps its exact ",-1)),n[23]||(n[23]=x("code",null,"filename_disk",-1)),n[24]||(n[24]=h(". Titles are generated from the filename with underscores replaced by spaces (extension stripped). Image width and height are read from the file so thumbnails can be generated. ",-1))]),_:1}),f(q,null,{default:u(()=>[f(r,{secondary:"",disabled:w.value,onClick:n[1]||(n[1]=e=>k.value=!1)},{default:u(()=>[...n[25]||(n[25]=[h("Cancel",-1)])]),_:1},8,["disabled"]),f(r,{loading:w.value,onClick:K},{default:u(()=>[h(" Import "+g(I.value.length.toLocaleString()),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"]),f(Y,{"model-value":E.value,"onUpdate:modelValue":n[5]||(n[5]=e=>E.value=e),onEsc:n[6]||(n[6]=e=>E.value=!1)},{default:u(()=>[f(W,null,{default:u(()=>[f(y,null,{default:u(()=>[...n[26]||(n[26]=[h("Delete from Storage?",-1)])]),_:1}),f(X,null,{default:u(()=>[n[27]||(n[27]=h(" Permanently delete ",-1)),x("strong",null,g(T.value.length.toLocaleString()),1),h(" file"+g(1===T.value.length?"":"s")+" from storage ",1),x("strong",null,g(t.location),1),n[28]||(n[28]=h("? ",-1)),n[29]||(n[29]=x("br",null,null,-1)),n[30]||(n[30]=x("br",null,null,-1)),n[31]||(n[31]=h(" Only unregistered files are removed. Generated thumbnails are not deleted. ",-1))]),_:1}),f(q,null,{default:u(()=>[f(r,{secondary:"",disabled:S.value,onClick:n[4]||(n[4]=e=>E.value=!1)},{default:u(()=>[...n[32]||(n[32]=[h("Cancel",-1)])]),_:1},8,["disabled"]),f(r,{kind:"danger",loading:S.value,onClick:H},{default:u(()=>[h(" Delete "+g(T.value.length.toLocaleString()),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model-value"])],64)}}});we("\n.body[data-v-15d8b708] {\n\tpadding: 0 24px 24px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n}\n.intro[data-v-15d8b708] {\n\tmargin: 0;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tfont-size: 13px;\n}\n.intro code[data-v-15d8b708],\n.v-card-text code[data-v-15d8b708] {\n\tfont-size: 12px;\n}\n.toolbar[data-v-15d8b708] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n}\n.meta[data-v-15d8b708],\n.empty[data-v-15d8b708] {\n\tmargin: 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.loading[data-v-15d8b708] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.error[data-v-15d8b708] {\n\tmargin: 0;\n\tcolor: var(--theme--danger);\n\tfont-size: 13px;\n}\n.table-wrap[data-v-15d8b708] {\n\toverflow: auto;\n\tmax-height: 50vh;\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n}\ntable[data-v-15d8b708] {\n\twidth: 100%;\n\tborder-collapse: collapse;\n\tfont-size: 13px;\n}\nth[data-v-15d8b708],\ntd[data-v-15d8b708] {\n\tpadding: 8px 10px;\n\ttext-align: left;\n\tborder-bottom: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\nth[data-v-15d8b708] {\n\tfont-weight: 700;\n\tbackground: var(--theme--background-subdued);\n\tposition: sticky;\n\ttop: 0;\n}\n.name[data-v-15d8b708] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tmax-width: 280px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.check-col[data-v-15d8b708] {\n\twidth: 36px;\n\tpadding-left: 8px;\n\tpadding-right: 4px;\n\tvertical-align: middle;\n}\n.check-col[data-v-15d8b708] .v-checkbox {\n\tmargin: 0;\n}\n.result[data-v-15d8b708] {\n\tpadding: 10px 12px;\n\tborder-radius: var(--theme--border-radius);\n\tfont-size: 13px;\n\tfont-weight: 600;\n}\n.result.ok[data-v-15d8b708] {\n\tbackground: color-mix(in srgb, var(--theme--success) 16%, transparent);\n\tcolor: var(--theme--success);\n}\n.result.has-fail[data-v-15d8b708] {\n\tbackground: color-mix(in srgb, var(--theme--warning) 16%, transparent);\n\tcolor: var(--theme--warning);\n}\n",{});var ws=xe(_s,[["__scopeId","data-v-15d8b708"]]),xs=l({__name:"add-storage-folder",props:{location:{},parentPath:{}},emits:["created"],setup(t,{emit:n}){const a=t,r=n,i=e(),l=H(),p=o(!1),m=o(!1),v=o(null);async function g(){if(v.value?.trim()&&!m.value){m.value=!0;try{const e=await i.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/folders`,{name:v.value.trim(),parent_path:a.parentPath||""}),t=String(e.data?.data?.path||"");p.value=!1,v.value=null,r("created",t),t&&l.push(Re(a.location,t))}catch(e){const t=e?.response?.data?.errors?.[0]?.message||e?.message||"Could not create folder";window.alert(t)}finally{m.value=!1}}}return(e,t)=>{const n=s("v-card-title"),a=s("v-input"),r=s("v-card-text"),o=s("v-button"),i=s("v-card-actions"),l=s("v-card"),y=s("v-dialog"),b=R("tooltip");return c(),d(y,{modelValue:p.value,"onUpdate:modelValue":t[2]||(t[2]=e=>p.value=e),onEsc:t[3]||(t[3]=e=>p.value=!1),onApply:g},{activator:u(({on:e})=>[N(f(Yi,{icon:"create_new_folder",secondary:"",onClick:e},null,8,["onClick"]),[[b,"Create Storage Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(l,null,{default:u(()=>[f(n,null,{default:u(()=>[...t[4]||(t[4]=[h("Create Storage Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[f(a,{modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=e=>v.value=e),autofocus:"",placeholder:"Folder name",onKeydown:k(g,["enter"])},null,8,["modelValue"])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[1]||(t[1]=e=>p.value=!1)},{default:u(()=>[...t[5]||(t[5]=[h("Cancel",-1)])]),_:1}),f(o,{disabled:!v.value?.trim(),loading:m.value,onClick:g},{default:u(()=>[...t[6]||(t[6]=[h("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}});const Ss=["onClick","onKeydown","onContextmenu"],ks={class:"header"},Es={class:"title"};var As=l({__name:"storage-folder-section",props:S({location:{},folders:{},anyFileSelection:{type:Boolean}},{selection:{default:()=>[]},selectionModifiers:{}}),emits:S(["changed"],["update:selection"]),setup(e,{emit:t}){const n=e,a=t,r=w(e,"selection"),l=H(),d=o({}),u=i(()=>r.value.length>0||(n.anyFileSelection??!1));function h(e){r.value.includes(e)?r.value=r.value.filter(t=>t!==e):r.value=[...r.value,e]}function y(e){var t;u.value?h(e.path):(t=e.path,l.push(Re(n.location,t)))}function b(){a("changed")}return(t,n)=>{const a=s("v-icon");return c(),p(m,null,[_("\n\t\tFragment of cards — must be direct children of layout-cards `.grid`\n\t\t(same as File Library FolderSection + Card), not a nested grid wrapper.\n\t"),(c(!0),p(m,null,v(e.folders,t=>{return c(),p("div",{key:t.path,class:$(["card folder-card",{selected:r.value.includes(t.path),"select-mode":u.value}]),tabindex:"0",onClick:e=>y(t),onKeydown:[k(E(e=>y(t),["self","prevent"]),["enter"]),k(E(e=>y(t),["self","prevent"]),["space"])],onContextmenu:E(e=>{return n=e,a=t.path,void d.value[a]?.open(n);var n,a},["prevent"])},[f(a,{class:"selector",name:(o=t.path,r.value.includes(o)?"check_circle":"radio_button_unchecked"),clickable:"",onClick:E(e=>h(t.path),["stop"])},null,8,["name","onClick"]),x("div",ks,[n[0]||(n[0]=x("div",{class:"selection-fade"},null,-1)),f(a,{large:"",name:"folder"})]),x("div",Es,g(t.name),1),f(Te,{ref_for:!0,ref:e=>function(e,t){d.value[e]=t}(t.path,e),location:e.location,path:t.path,name:t.name,onChanged:b},null,8,["location","path","name"])],42,Ss);var o}),128))],2112)}}});we("\n/* Port of Directus layouts/cards/components/card.vue (folder-only subset) */\n.card[data-v-89b52992] {\n\tposition: relative;\n\tcursor: pointer;\n}\n.card[data-v-89b52992]:focus-visible {\n\toutline: none;\n}\n.card[data-v-89b52992]:focus-visible::after {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 2;\n\tinline-size: 100%;\n\taspect-ratio: 1 / 1;\n\tborder-radius: var(--theme--border-radius);\n\toutline: var(--focus-ring-width) solid var(--focus-ring-color);\n\toutline-offset: var(--focus-ring-offset);\n\tcontent: '';\n\tpointer-events: none;\n}\n.header[data-v-89b52992] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 100%;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--primary-subdued);\n\tborder-style: solid;\n\tborder-width: 0;\n\tborder-radius: var(--theme--border-radius);\n\ttransition: border-width var(--fast) var(--transition);\n}\n.header[data-v-89b52992]::after {\n\tdisplay: block;\n\tpadding-block-end: 100%;\n\tcontent: '';\n}\n.header .v-icon[data-v-89b52992] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tposition: absolute;\n}\n.selection-fade[data-v-89b52992] {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 1;\n\tinline-size: 100%;\n\tblock-size: 2.6875rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n}\n.selection-fade[data-v-89b52992]::before {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tbackground-image: linear-gradient(-180deg, rgb(38 50 56 / 0.1) 10%, rgb(38 50 56 / 0));\n\tcontent: '';\n}\n.card[data-v-89b52992]::before {\n\tposition: absolute;\n\tinset-block-start: 0.375rem;\n\tinset-inline-start: 0.375rem;\n\tz-index: 2;\n\tinline-size: 1rem;\n\tblock-size: 1rem;\n\tbackground-color: var(--theme--background);\n\tborder-radius: 1.375rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n\tcontent: '';\n}\n.selector[data-v-89b52992] {\n\t--v-icon-color: var(--white);\n\t--v-icon-color-hover: var(--white);\n\t--focus-ring-offset: 0;\n\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 3;\n\tmargin: 0.25rem;\n\topacity: 0;\n\ttransition:\n\t\topacity var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition);\n}\n.selector[data-v-89b52992]:focus-visible,\n.selector[data-v-89b52992]:hover {\n\topacity: 1 !important;\n}\n.card.select-mode .selector[data-v-89b52992] {\n\topacity: 0.5;\n}\n.card.select-mode .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.card.selected[data-v-89b52992]::before {\n\topacity: 1;\n}\n.card.selected .selector[data-v-89b52992] {\n\t--v-icon-color: var(--theme--primary);\n\t--v-icon-color-hover: var(--theme--primary);\n\topacity: 1;\n}\n.card.selected .header[data-v-89b52992] {\n\tborder-width: 12px;\n}\n.card.selected .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.card:hover .selector[data-v-89b52992] {\n\topacity: 0.5;\n}\n.card:hover .header .selection-fade[data-v-89b52992] {\n\topacity: 1;\n}\n.title[data-v-89b52992] {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tinline-size: 100%;\n\tblock-size: 1.4375rem;\n\tmargin-block-start: 0.125rem;\n\toverflow: hidden;\n\tline-height: 1.3;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n",{});var Os=xe(As,[["__scopeId","data-v-89b52992"]]);const $s=["onClick","onKeydown"],Cs={class:"header"},Is={class:"title"};var Rs=l({__name:"directus-folder-section",props:S({folders:{},anyFileSelection:{type:Boolean}},{selection:{default:()=>[]},selectionModifiers:{}}),emits:["update:selection"],setup(e){const t=e,n=w(e,"selection"),a=H(),r=i(()=>n.value.length>0||(t.anyFileSelection??!1));function o(e){n.value.includes(e)?n.value=n.value.filter(t=>t!==e):n.value=[...n.value,e]}function l(e){var t;r.value?o(e.id):(t=e.id,a.push(`/storage-manager/folders/${t}`))}return(t,a)=>{const i=s("v-icon");return c(),p(m,null,[_("\n\t\tFragment of cards for Directus virtual folders — same grid pattern as\n\t\tFile Library FolderSection / storage-folder-section.\n\t"),(c(!0),p(m,null,v(e.folders,e=>{return c(),p("div",{key:e.id,class:$(["card folder-card",{selected:n.value.includes(e.id),"select-mode":r.value}]),tabindex:"0",onClick:t=>l(e),onKeydown:[k(E(t=>l(e),["self","prevent"]),["enter"]),k(E(t=>l(e),["self","prevent"]),["space"])]},[f(i,{class:"selector",name:(t=e.id,n.value.includes(t)?"check_circle":"radio_button_unchecked"),clickable:"",onClick:E(t=>o(e.id),["stop"])},null,8,["name","onClick"]),x("div",Cs,[a[0]||(a[0]=x("div",{class:"selection-fade"},null,-1)),f(i,{large:"",name:"folder",outline:""})]),x("div",Is,g(e.name),1)],42,$s);var t}),128))],2112)}}});we("\n/* Port of Directus layouts/cards/components/card.vue (folder-only subset) */\n.card[data-v-d206f12f] {\n\tposition: relative;\n\tcursor: pointer;\n}\n.card[data-v-d206f12f]:focus-visible {\n\toutline: none;\n}\n.card[data-v-d206f12f]:focus-visible::after {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 2;\n\tinline-size: 100%;\n\taspect-ratio: 1 / 1;\n\tborder-radius: var(--theme--border-radius);\n\toutline: var(--focus-ring-width) solid var(--focus-ring-color);\n\toutline-offset: var(--focus-ring-offset);\n\tcontent: '';\n\tpointer-events: none;\n}\n.header[data-v-d206f12f] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 100%;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--primary-subdued);\n\tborder-style: solid;\n\tborder-width: 0;\n\tborder-radius: var(--theme--border-radius);\n\ttransition: border-width var(--fast) var(--transition);\n}\n.header[data-v-d206f12f]::after {\n\tdisplay: block;\n\tpadding-block-end: 100%;\n\tcontent: '';\n}\n.header .v-icon[data-v-d206f12f] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tposition: absolute;\n}\n.selection-fade[data-v-d206f12f] {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 1;\n\tinline-size: 100%;\n\tblock-size: 2.6875rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n}\n.selection-fade[data-v-d206f12f]::before {\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tbackground-image: linear-gradient(-180deg, rgb(38 50 56 / 0.1) 10%, rgb(38 50 56 / 0));\n\tcontent: '';\n}\n.card[data-v-d206f12f]::before {\n\tposition: absolute;\n\tinset-block-start: 0.375rem;\n\tinset-inline-start: 0.375rem;\n\tz-index: 2;\n\tinline-size: 1rem;\n\tblock-size: 1rem;\n\tbackground-color: var(--theme--background);\n\tborder-radius: 1.375rem;\n\topacity: 0;\n\ttransition: opacity var(--fast) var(--transition);\n\tcontent: '';\n}\n.selector[data-v-d206f12f] {\n\t--v-icon-color: var(--white);\n\t--v-icon-color-hover: var(--white);\n\t--focus-ring-offset: 0;\n\n\tposition: absolute;\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n\tz-index: 3;\n\tmargin: 0.25rem;\n\topacity: 0;\n\ttransition:\n\t\topacity var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition);\n}\n.selector[data-v-d206f12f]:focus-visible,\n.selector[data-v-d206f12f]:hover {\n\topacity: 1 !important;\n}\n.card.select-mode .selector[data-v-d206f12f] {\n\topacity: 0.5;\n}\n.card.select-mode .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.card.selected[data-v-d206f12f]::before {\n\topacity: 1;\n}\n.card.selected .selector[data-v-d206f12f] {\n\t--v-icon-color: var(--theme--primary);\n\t--v-icon-color-hover: var(--theme--primary);\n\topacity: 1;\n}\n.card.selected .header[data-v-d206f12f] {\n\tborder-width: 12px;\n}\n.card.selected .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.card:hover .selector[data-v-d206f12f] {\n\topacity: 0.5;\n}\n.card:hover .header .selection-fade[data-v-d206f12f] {\n\topacity: 1;\n}\n.title[data-v-d206f12f] {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tinline-size: 100%;\n\tblock-size: 1.4375rem;\n\tmargin-block-start: 0.125rem;\n\toverflow: hidden;\n\tfont-weight: 600;\n\tline-height: 1.3;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n",{});var Ns=xe(Rs,[["__scopeId","data-v-d206f12f"]]);const Ts={key:1,class:"folder-picker"},js={key:0,class:"empty"};var Ds=l({__name:"storage-target-picker",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{storages:r,loadStorages:l}=ie(),{trees:w,loading:x,loadTree:S}=fe(),k=o([]),E=i(()=>r.value.map(e=>e.location)),A=i(()=>{const e=n.modelValue?.location||"",t=String(n.modelValue?.path||"").replace(/^\/+|\/+$/g,"");if(!e)return[];const a=[`@${e}`];if(!t)return a;const r=t.split("/").filter(Boolean);for(let t=1;t<=r.length;t++)a.push(`${e}::${r.slice(0,t).join("/")}`);return a});function $(e,t){a("update:modelValue",{location:e,path:t})}return y(A,e=>{const t=new Set(k.value);for(const n of e)t.add(n);k.value=Array.from(t)},{immediate:!0}),y(k,e=>{for(const t of e){if("string"!=typeof t||!t.startsWith("@"))continue;const e=t.slice(1);e&&void 0===w.value[e]&&S(e)}},{deep:!0}),b(()=>{!async function(){await l().catch(()=>{})}()}),(t,a)=>{const r=s("v-skeleton-loader"),o=s("v-icon"),i=s("v-list-item-icon"),l=s("v-list-item-content"),y=s("v-list-group"),b=s("v-item-group"),S=s("v-list");return O(x)&&!E.value.length?(c(),d(r,{key:0})):(c(),p("div",Ts,[f(S,null,{default:u(()=>[f(b,{modelValue:k.value,"onUpdate:modelValue":a[0]||(a[0]=e=>k.value=e),scope:"storage-target-picker",multiple:""},{default:u(()=>[(c(!0),p(m,null,v(E.value,t=>{return c(),d(y,{key:t,"disable-groupable-parent":"",clickable:"",active:(a=t,r="",n.modelValue?.location===a&&(n.modelValue?.path||"")===r),scope:"storage-target-picker",value:`@${t}`,"arrow-placement":(O(w)[t]||[]).length>0&&"after",onClick:e=>$(t,"")},{activator:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"storage"})]),_:1}),f(l,null,{default:u(()=>[h("Root ("+g(t)+")",1)]),_:2},1024)]),default:u(()=>[(c(!0),p(m,null,v(O(w)[t]||[],n=>(c(),d(ve,{key:`${t}:${n.path}`,folder:n,"current-path":e.modelValue.location===t?e.modelValue.path:"__none__","click-handler":e=>$(t,e),scope:"storage-target-picker","value-prefix":`${t}::`},null,8,["folder","current-path","click-handler","value-prefix"]))),128))]),_:2},1032,["active","value","arrow-placement","onClick"]);var a,r}),128))]),_:1},8,["modelValue"])]),_:1}),E.value.length?_("v-if",!0):(c(),p("p",js,"No storage adapters configured."))]))}}});we("\n.folder-picker[data-v-0cc7349b] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-0cc7349b] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var Ms=xe(Ds,[["__scopeId","data-v-0cc7349b"]]),Ls=l({__name:"upload-files-dialog",props:{modelValue:{type:Boolean},title:{default:"Add File"},uploading:{type:Boolean,default:!1}},emits:["update:modelValue","files"],setup(e,{emit:t}){const n=t,a=o(null),r=o(!1);let i=0;function l(){n("update:modelValue",!1)}function v(e){n("update:modelValue",e),e||(r.value=!1,i=0)}function y(){a.value?.click()}function b(e){const t=Array.from(e||[]).filter(e=>Boolean(e.type)||e.size>0);t.length&&n("files",t)}function _(e){const t=e.target;b(t.files),t.value=""}function w(){i++,1===i&&(r.value=!0)}function S(){i--,i<=0&&(i=0,r.value=!1)}function k(e){i=0,r.value=!1,b(e.dataTransfer?.files)}return(t,n)=>{const o=s("v-card-title"),i=s("v-progress-circular"),b=s("v-icon"),A=s("v-card-text"),O=s("v-button"),C=s("v-card-actions"),I=s("v-card"),R=s("v-dialog");return c(),d(R,{"model-value":e.modelValue,"onUpdate:modelValue":v,onEsc:l},{default:u(()=>[f(I,null,{default:u(()=>[f(o,null,{default:u(()=>[h(g(e.title),1)]),_:1}),f(A,null,{default:u(()=>[x("div",{class:$(["upload-zone",{dragging:r.value,uploading:e.uploading}]),"data-dropzone":"",onClick:y,onDragenter:E(w,["prevent"]),onDragover:n[1]||(n[1]=E(()=>{},["prevent"])),onDragleave:E(S,["prevent"]),onDrop:E(k,["prevent","stop"])},[e.uploading?(c(),p(m,{key:0},[f(i,{indeterminate:""}),n[2]||(n[2]=x("p",null,"Uploading…",-1))],64)):(c(),p(m,{key:1},[f(b,{large:"",name:r.value?"file_download":"file_upload"},null,8,["name"]),x("p",null,g(r.value?"Drop files to upload":"Drag and drop files here"),1),n[3]||(n[3]=x("p",{class:"hint"},"or click to browse from your device",-1))],64)),x("input",{ref_key:"fileInput",ref:a,class:"hidden-input",type:"file",multiple:"",onChange:_,onClick:n[0]||(n[0]=E(()=>{},["stop"]))},null,544)],34)]),_:1}),f(C,null,{default:u(()=>[f(O,{onClick:l},{default:u(()=>[...n[4]||(n[4]=[h("Done",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])}}});we("\n.upload-zone[data-v-63a4ef66] {\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 8px;\n\tmin-block-size: 12.5rem;\n\tpadding: 2rem 1.5rem;\n\tcolor: var(--theme--foreground-subdued);\n\ttext-align: center;\n\tcursor: pointer;\n\tbackground-color: var(--theme--background);\n\tborder: var(--theme--border-width) dashed var(--theme--form--field--input--border-color);\n\tborder-radius: var(--theme--border-radius);\n\ttransition:\n\t\tborder-color var(--fast) var(--transition),\n\t\tcolor var(--fast) var(--transition),\n\t\tbackground-color var(--fast) var(--transition);\n}\n.upload-zone[data-v-63a4ef66]:hover,\n.upload-zone.dragging[data-v-63a4ef66] {\n\tcolor: var(--theme--primary);\n\tbackground-color: var(--theme--primary-background);\n\tborder-color: var(--theme--primary);\n}\n.upload-zone.uploading[data-v-63a4ef66] {\n\tpointer-events: none;\n\tcursor: default;\n}\n.upload-zone p[data-v-63a4ef66] {\n\tmargin: 0;\n\tcolor: inherit;\n}\n.upload-zone .hint[data-v-63a4ef66] {\n\tfont-size: 13px;\n\topacity: 0.85;\n}\n.hidden-input[data-v-63a4ef66] {\n\tposition: absolute;\n\tinline-size: 0;\n\tblock-size: 0;\n\topacity: 0;\n\tpointer-events: none;\n}\n",{});var Fs=xe(Ls,[["__scopeId","data-v-63a4ef66"]]);const Ps={class:"drawer-body"},Us={class:"field"},Bs={class:"mode-cards"},Vs={class:"mode-card-header"},zs={class:"mode-card-header"},Gs={key:0,class:"field"},Ks={key:1,class:"field"},Hs={class:"field"},Xs={class:"actions"},qs={key:3,class:"result"},Ws={key:0},Ys={key:1},Js={key:2,class:"note"},Qs={key:3,class:"by-storage"},Zs={key:4,class:"empty-storage"},ec={key:4,class:"result"};var tc=l({__name:"materialize-drawer",props:{modelValue:{type:Boolean},storages:{},folderId:{}},emits:["update:modelValue","done"],setup(t,{emit:n}){const a=t,r=n,l=e(),y=o("preserve"),b=o(null),w=o(!1),S=o(!0),k=o(!1),E=o(!1),A=o(!1),C=o(null),I=o(null),R=o(null),N=o(null),T=o(0),j=o({from:null,to:"",currentIndex:0,totalFiles:0,currentName:"",transferredBytes:0,totalBytes:0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0}),D=i(()=>a.storages.map(e=>({text:`${e.location} (${e.short})`,value:e.location}))),M=i(()=>"merge"!==y.value||Boolean(b.value));async function L(){C.value=null,k.value=!0;try{const e=await l.post("/storage-manager/materialize/dry-run",{folder_id:a.folderId??null,mode:y.value,target_storage:"merge"===y.value?b.value:void 0,structure_only:w.value,recursive:S.value});I.value=e.data?.data||null}catch(e){C.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed"}finally{k.value=!1}}async function F(){if(M.value){C.value=null,E.value=!0,A.value=!1,T.value=Date.now(),j.value={from:null,to:"merge"===y.value?String(b.value||""):"preserve",currentIndex:0,totalFiles:I.value?.total_files||0,currentName:"",transferredBytes:0,totalBytes:I.value?.total_bytes||0,elapsedMs:0,speedBps:0,succeeded:0,skipped:0,failed:0};try{N.value=new AbortController;const e=await fetch("/storage-manager/materialize/stream",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},credentials:"same-origin",signal:N.value.signal,body:JSON.stringify({folder_id:a.folderId??null,mode:y.value,target_storage:"merge"===y.value?b.value:void 0,structure_only:w.value,keep_source_file_on_disk:!1,recursive:S.value})});await async function(e,t){if(!e.ok){let t=`Materialize failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for materialize stream");const n=e.body.getReader(),a=new TextDecoder;let r="";for(;;){const{done:e,value:o}=await n.read();if(e)break;r+=a.decode(o,{stream:!0});const i=r.split("\n\n");r=i.pop()||"";for(const e of i)for(const n of e.split("\n")){const e=n.trim();if(!e.startsWith("data:"))continue;const a=e.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if(t(r),"error"===r.type)throw new Error(r.message||"Materialize failed")}}}(e,U),r("done")}catch(e){"AbortError"===e?.name?A.value=!0:C.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Materialize failed"}finally{E.value=!1,N.value=null}}}function P(){N.value?.abort()}function U(e){const t=Date.now()-T.value;return"start"===e.type?(j.value.from=e.from||null,j.value.to=e.to,j.value.totalFiles=e.total,void(j.value.totalBytes=e.total_bytes)):"file_start"===e.type?(j.value.currentIndex=e.index,void(j.value.currentName=e.name)):"file_done"===e.type?(j.value.currentIndex=e.index,j.value.currentName=e.name,j.value.succeeded=e.succeeded,j.value.skipped=e.skipped,j.value.failed=e.failed,j.value.transferredBytes=e.transferred_bytes,j.value.totalBytes=e.total_bytes,j.value.elapsedMs=e.elapsed_ms,void(j.value.speedBps=e.elapsed_ms>0?1e3*e.transferred_bytes/e.elapsed_ms:0)):void("done"===e.type&&(R.value={total:e.data.total,succeeded:e.data.succeeded,skipped:e.data.skipped,failed:e.data.failed},j.value.currentIndex=e.data.total,j.value.succeeded=e.data.succeeded,j.value.skipped=e.data.skipped,j.value.failed=e.data.failed,j.value.transferredBytes=e.data.transferred_bytes||j.value.transferredBytes,j.value.totalBytes=e.data.total_bytes||j.value.totalBytes,j.value.elapsedMs=e.data.elapsed_ms||t,j.value.speedBps=j.value.elapsedMs>0?1e3*j.value.transferredBytes/j.value.elapsedMs:0))}return(e,n)=>{const a=s("v-icon"),o=s("v-select"),i=s("v-checkbox"),l=s("v-button"),N=s("v-notice"),T=s("v-drawer");return c(),d(T,{"model-value":t.modelValue,title:"Materialize Folder",icon:"account_tree",persistent:E.value,"onUpdate:modelValue":n[5]||(n[5]=e=>r("update:modelValue",e)),onCancel:n[6]||(n[6]=e=>r("update:modelValue",!1))},{default:u(()=>[x("div",Ps,[n[22]||(n[22]=x("p",{class:"intro"}," Materialize virtual Directus folders into real storage paths. ",-1)),x("div",Us,[n[13]||(n[13]=x("label",null,"Storage Mode",-1)),x("div",Bs,[x("div",{class:$(["mode-card",{active:"preserve"===y.value}]),onClick:n[0]||(n[0]=e=>y.value="preserve")},[x("div",Vs,[f(a,{name:"devices",small:""}),n[7]||(n[7]=x("strong",null,"Keep",-1))]),n[8]||(n[8]=x("p",{class:"mode-card-desc"},"Each file stays on its current storage. Only the folder path is created there.",-1)),n[9]||(n[9]=x("p",{class:"mode-card-example"},[x("em",null,"Example:"),h(" photo.jpg on "),x("code",null,"s3"),h(" → moved to "),x("code",null,"s3/travel/paris/photo.jpg"),h(". A file on "),x("code",null,"local"),h(" stays on "),x("code",null,"local"),h(". ")],-1))],2),x("div",{class:$(["mode-card",{active:"merge"===y.value}]),onClick:n[1]||(n[1]=e=>y.value="merge")},[x("div",zs,[f(a,{name:"merge",small:""}),n[10]||(n[10]=x("strong",null,"Merge",-1))]),n[11]||(n[11]=x("p",{class:"mode-card-desc"},"All files are moved into one target storage, placed at their virtual folder path.",-1)),n[12]||(n[12]=x("p",{class:"mode-card-example"},[x("em",null,"Example:"),h(" Files from both "),x("code",null,"s3"),h(" and "),x("code",null,"local"),h(" end up on "),x("code",null,"local2/travel/paris/"),h(". ")],-1))],2)])]),"merge"===y.value?(c(),p("div",Gs,[n[14]||(n[14]=x("label",null,"Target Storage",-1)),f(o,{modelValue:b.value,"onUpdate:modelValue":n[2]||(n[2]=e=>b.value=e),items:D.value,"item-text":"text","item-value":"value"},null,8,["modelValue","items"])])):_("v-if",!0),"preserve"===y.value?(c(),p("div",Ks,[f(i,{modelValue:w.value,"onUpdate:modelValue":n[3]||(n[3]=e=>w.value=e),label:"Build Storage Folder Structure only (don't move files)"},null,8,["modelValue"])])):_("v-if",!0),x("div",Hs,[f(i,{modelValue:S.value,"onUpdate:modelValue":n[4]||(n[4]=e=>S.value=e),label:"Include subfolders"},null,8,["modelValue"])]),x("div",Xs,[f(l,{secondary:"",loading:k.value,disabled:E.value,onClick:L},{default:u(()=>[...n[15]||(n[15]=[h("Dry Run",-1)])]),_:1},8,["loading","disabled"]),E.value?(c(),d(l,{key:1,kind:"danger",secondary:"",onClick:P},{default:u(()=>[...n[17]||(n[17]=[h("Cancel",-1)])]),_:1})):(c(),d(l,{key:0,disabled:!M.value,loading:E.value,onClick:F},{default:u(()=>[...n[16]||(n[16]=[h("Run",-1)])]),_:1},8,["disabled","loading"]))]),C.value?(c(),d(N,{key:2,type:"danger"},{default:u(()=>[h(g(C.value),1)]),_:1})):_("v-if",!0),I.value?(c(),p("div",qs,[x("p",null,[n[18]||(n[18]=x("strong",null,"Files:",-1)),h(" "+g(I.value.total_files.toLocaleString()),1)]),I.value.total_folders>0?(c(),p("p",Ws,[n[19]||(n[19]=x("strong",null,"Folders:",-1)),h(" "+g(I.value.total_folders.toLocaleString()),1)])):_("v-if",!0),x("p",null,[n[20]||(n[20]=x("strong",null,"Total Size:",-1)),h(" "+g(O(Be)(I.value.total_bytes||0)),1)]),I.value.conflicts>0?(c(),p("p",Ys,[n[21]||(n[21]=x("strong",null,"Path conflicts:",-1)),h(" "+g(I.value.conflicts.toLocaleString()),1)])):_("v-if",!0),I.value.conflicts>0?(c(),p("p",Js," A destination path already exists on disk, or two files would use the same path. ")):_("v-if",!0),x("p",null,[x("strong",null,g("merge"===I.value.mode?"Will be written to":"Stay on current storage")+":",1)]),I.value.by_storage.length?(c(),p("ul",Qs,[(c(!0),p(m,null,v(I.value.by_storage,e=>(c(),p("li",{key:e.storage},g(e.storage),1))),128))])):(c(),p("p",Zs,"No files in this folder."))])):_("v-if",!0),R.value?(c(),p("div",ec,[f(N,{type:R.value.failed?"danger":"success"},{default:u(()=>[h(g(R.value.succeeded)+" succeeded · "+g(R.value.skipped)+" skipped · "+g(R.value.failed)+" failed (of "+g(R.value.total)+") ",1)]),_:1},8,["type"])])):_("v-if",!0),E.value||R.value?(c(),d(zl,{key:5,storages:t.storages,mode:"move",from:j.value.from,to:j.value.to,"current-index":j.value.currentIndex,"total-files":j.value.totalFiles,"current-name":j.value.currentName,"transferred-bytes":j.value.transferredBytes,"total-bytes":j.value.totalBytes,"elapsed-ms":j.value.elapsedMs,"speed-bps":j.value.speedBps,succeeded:j.value.succeeded,skipped:j.value.skipped,failed:j.value.failed,"is-done":Boolean(R.value)&&!E.value,"is-cancelled":A.value},null,8,["storages","from","to","current-index","total-files","current-name","transferred-bytes","total-bytes","elapsed-ms","speed-bps","succeeded","skipped","failed","is-done","is-cancelled"])):_("v-if",!0)])]),_:1},8,["model-value","persistent"])}}});we("\n.drawer-body[data-v-cb0b2133] { padding: 20px 24px 32px; display: flex; flex-direction: column; gap: 14px;\n}\n.field[data-v-cb0b2133] { display: flex; flex-direction: column; gap: 8px;\n}\n.note[data-v-cb0b2133] { margin: 0; font-size: 12px; color: var(--theme--foreground-subdued);\n}\n.actions[data-v-cb0b2133] { display: flex; gap: 8px;\n}\n.result[data-v-cb0b2133] { padding: 10px; border-radius: var(--theme--border-radius); background: var(--theme--background-subdued);\n}\n.by-storage[data-v-cb0b2133] { margin: 4px 0 0; padding-left: 18px;\n}\n.empty-storage[data-v-cb0b2133] { margin: 4px 0 0; color: var(--theme--foreground-subdued);\n}\n.mode-cards[data-v-cb0b2133] {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 10px;\n}\n.mode-card[data-v-cb0b2133] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n\tpadding: 12px 14px;\n\tborder-radius: var(--theme--border-radius);\n\tborder: 2px solid var(--theme--border-color);\n\tcursor: pointer;\n\ttransition: border-color 0.15s, background 0.15s;\n}\n.mode-card[data-v-cb0b2133]:hover {\n\tborder-color: var(--theme--primary);\n}\n.mode-card.active[data-v-cb0b2133] {\n\tborder-color: var(--theme--primary);\n\tbackground: var(--theme--primary-background);\n}\n.mode-card-header[data-v-cb0b2133] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n}\n.mode-card-desc[data-v-cb0b2133] {\n\tmargin: 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground);\n}\n.mode-card-example[data-v-cb0b2133] {\n\tmargin: 0;\n\tfont-size: 12px;\n\tcolor: var(--theme--foreground-subdued);\n\tline-height: 1.4;\n}\n.mode-card-example code[data-v-cb0b2133] {\n\tfont-family: var(--theme--fonts--mono--font-family, monospace);\n\tfont-size: 11px;\n\tbackground: var(--theme--background-subdued);\n\tpadding: 1px 4px;\n\tborder-radius: 3px;\n}\n",{});var nc=xe(tc,[["__scopeId","data-v-cb0b2133"]]);const ac={class:"fields"},rc={class:"field full"},oc={class:"field full delete-transforms"},ic={key:0,class:"dialog-text"},lc={key:1,class:"dialog-error"},sc={key:2,class:"dialog-text"};var cc=l({__name:"thumbnails-sidebar-detail",props:{modelValue:{},location:{},search:{}},emits:["update:modelValue","deleted"],setup(t,{emit:n}){const a=t,r=n,l=e(),b=i({get:()=>a.modelValue,set:e=>r("update:modelValue",e)}),w=[{value:"files",label:"Show Files"},{value:"transforms",label:"Show Thumbnails"}],S=i(()=>"files"!==b.value),k=o(!1),E=o(!1),A=o(!1),O=o(null),$=o("");function C(){k.value=!0,async function(){E.value=!0,$.value="",O.value=null;try{const e=await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/root-transforms/delete-all`,{dry_run:!0,search:a.search||null}),t=e.data?.data;O.value={deleted:Number(t?.deleted)||0,skipped:Number(t?.skipped)||0,scanned:Number(t?.scanned)||0}}catch(e){$.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Could not scan transforms"}finally{E.value=!1}}()}async function I(){if(!A.value){A.value=!0;try{await l.post(`/storage-manager/storages/${encodeURIComponent(a.location)}/root-transforms/delete-all`,{dry_run:!1,search:a.search||null}),k.value=!1,r("deleted")}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{A.value=!1}}}y(k,e=>{e||(O.value=null,$.value="")});const R=i(()=>{if(E.value)return"";if($.value)return"";if(!O.value)return"";const{deleted:e,skipped:t}=O.value,n=a.search?.trim()?"matching your search":"at the storage root";return 0===e?`No generated transform files ${n} would be deleted.${t?` ${t.toLocaleString()} registered file(s) would be skipped.`:""}`:`${e.toLocaleString()} generated transform file${1===e?"":"s"} ${n} will be removed.${t?` ${t.toLocaleString()} registered match(es) will be skipped.`:""}`});return(e,t)=>{const n=s("v-radio"),a=s("v-button"),r=s("v-card-title"),o=s("v-notice"),i=s("v-card-text"),l=s("v-card-actions"),y=s("v-card"),N=s("v-dialog"),T=s("sidebar-detail");return c(),d(T,{id:"thumbnails",icon:"photo_size_select_large",title:"Thumbnails",badge:S.value},{default:u(()=>[x("div",ac,[x("div",rc,[(c(),p(m,null,v(w,e=>f(n,{key:e.value,value:e.value,label:e.label,"model-value":b.value,"onUpdate:modelValue":t[0]||(t[0]=e=>b.value=e)},null,8,["value","label","model-value"])),64))]),x("div",oc,[f(a,{secondary:"","full-width":"",class:"sidebar-btn",onClick:C},{default:u(()=>[...t[4]||(t[4]=[h(" Delete All Transforms ",-1)])]),_:1})])]),f(N,{modelValue:k.value,"onUpdate:modelValue":t[2]||(t[2]=e=>k.value=e),onEsc:t[3]||(t[3]=e=>k.value=!1)},{default:u(()=>[f(y,null,{default:u(()=>[f(r,null,{default:u(()=>[...t[5]||(t[5]=[h("Delete All Transforms",-1)])]),_:1}),f(i,null,{default:u(()=>[f(o,{type:"info",class:"dialog-info"},{default:u(()=>[...t[6]||(t[6]=[h(" This deletes generated transform files (thumbnails and resized variants) at the storage root. ",-1),x("strong",null,"Source files are not deleted",-1),h(" — your originals in Directus stay untouched. Directus will recreate transforms automatically the next time those images are requested. ",-1)])]),_:1}),E.value?(c(),p("p",ic,"Scanning storage…")):$.value?(c(),p("p",lc,g($.value),1)):R.value?(c(),p("p",sc,g(R.value),1)):_("v-if",!0)]),_:1}),f(l,null,{default:u(()=>[f(a,{secondary:"",onClick:t[1]||(t[1]=e=>k.value=!1)},{default:u(()=>[...t[7]||(t[7]=[h("Cancel",-1)])]),_:1}),f(a,{kind:"danger",loading:A.value,disabled:E.value||Boolean($.value)||!O.value?.deleted,onClick:I},{default:u(()=>[...t[8]||(t[8]=[h(" Delete Transforms ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["badge"])}}});we("\n.fields[data-v-b9084ba6] {\n\t--theme--form--row-gap: 1.375rem;\n\t--theme--form--column-gap: 1.375rem;\n\n\tdisplay: grid;\n\tgrid-template-columns: [start] minmax(0, 1fr) [half] minmax(0, 1fr) [full];\n\tgap: var(--theme--form--row-gap) var(--theme--form--column-gap);\n\tcontainer-type: inline-size;\n}\n.field[data-v-b9084ba6] {\n\tgrid-column: start / full;\n\tmin-inline-size: 0;\n}\n.field.full[data-v-b9084ba6] {\n\tgrid-column: start / full;\n}\n.fields[data-v-b9084ba6] .v-radio + .v-radio {\n\tmargin-block-start: 0.4375rem;\n}\n\n/* Sidebar panel bg often matches --theme--background-normal, so default\n secondary buttons look like plain text. Force a visible chip fill. */\n.delete-transforms[data-v-b9084ba6] .sidebar-btn {\n\tdisplay: flex;\n\twidth: 100%;\n}\n.delete-transforms[data-v-b9084ba6] .sidebar-btn .button {\n\twidth: 100%;\n\tjustify-content: center;\n\tcolor: var(--theme--foreground);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n}\n.delete-transforms[data-v-b9084ba6] .sidebar-btn .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--background-normal);\n}\n.dialog-info[data-v-b9084ba6] {\n\tmargin-bottom: 16px;\n\tline-height: 1.5;\n}\n.dialog-text[data-v-b9084ba6] {\n\tmargin: 0;\n\tline-height: 1.5;\n}\n.dialog-error[data-v-b9084ba6] {\n\tmargin: 0;\n\tcolor: var(--theme--danger);\n}\n",{});var dc=xe(cc,[["__scopeId","data-v-b9084ba6"]]);function uc(n){const a=e(),{useNotificationsStore:r,useServerStore:l}=t(),s=r(),c=l?.(),d=o(!1),u=o(!1),f=o(0),p=i(()=>f.value>0);let m,v;function h(){d.value=!0,m=s.add({title:"Drop to upload",icon:"cloud_upload",type:"info",persist:!0,closeable:!1})}function g(){d.value=!1,m&&(s.remove(m),m=void 0)}function y(e){if(!e.dataTransfer)return;if(-1===e.dataTransfer.types.indexOf("Files"))return;e.preventDefault(),f.value++;const t=e.target&&""===e.target.getAttribute?.("data-dropzone");1===f.value&&!1===d.value&&!1===t&&h(),t&&(g(),f.value=0)}function _(e){e.dataTransfer&&-1!==e.dataTransfer.types.indexOf("Files")&&e.preventDefault()}function w(e){e.dataTransfer&&-1!==e.dataTransfer.types.indexOf("Files")&&(e.preventDefault(),f.value--,0===f.value&&g(),e.target&&""===e.target.getAttribute?.("data-dropzone")&&(h(),f.value=1))}async function x(e){if(!e.dataTransfer)return;if(-1===e.dataTransfer.types.indexOf("Files"))return;e.preventDefault(),d.value=!1,f.value=0,m&&(s.remove(m),m=void 0);const t=Array.from(e.dataTransfer.files).filter(e=>e.type);t.length&&await k(t)}async function S(e,t){const r=new FormData,o=O(n.preset);o.storage&&r.append("storage",o.storage),o.folder&&r.append("folder",o.folder),r.append("file",e);const i=await a.post("/files",r,{onUploadProgress:e=>{e.total&&t(Math.floor(100*e.loaded/e.total))}}),l=i?.data?.data?.id,s=o.storagePath?String(o.storagePath).replace(/^\/+|\/+$/g,""):"";l&&o.storage&&s&&await a.post(`/storage-manager/storages/${encodeURIComponent(o.storage)}/place-file`,{file_id:l,target_path:s})}async function k(e){if(!e.length||u.value)return;u.value=!0;const t=e.map(()=>0),a=Math.max(1,Number(c?.info?.uploads?.maxConcurrency)||2);v=s.add({title:`Uploading 0 of ${e.length}…`,type:"info",persist:!0,closeable:!1,loading:!0});const r=()=>{const n=t.filter(e=>100===e).length,a=t.reduce((e,t)=>e+t,0)/t.length;v&&s.update(v,{title:`Uploading ${n} of ${e.length}…`,loading:!1,progress:a})};let o=0,i=0;try{await Promise.all(Array.from({length:Math.min(a,e.length)},()=>async function(){for(;o<e.length;){const n=o++,a=e[n];try{await S(a,e=>{t[n]=e,r()}),t[n]=100,r()}catch(e){i++,t[n]=100,r();const o=e?.response?.data?.errors?.[0]?.message||e?.message||`Failed to upload ${a.name}`;s.add({title:o,type:"error",icon:"error"})}}}()))}finally{v&&(s.remove(v),v=void 0),u.value=!1,i<e.length&&(s.add({title:i?`Uploaded ${e.length-i} of ${e.length}`:"Upload complete",type:i?"warning":"success",icon:i?"warning":"check"}),await(n.onDone?.()))}}return b(()=>{window.addEventListener("dragenter",y),window.addEventListener("dragover",_),window.addEventListener("dragleave",w),window.addEventListener("drop",x)}),T(()=>{window.removeEventListener("dragenter",y),window.removeEventListener("dragover",_),window.removeEventListener("dragleave",w),window.removeEventListener("drop",x),g(),v&&s.remove(v)}),{dragging:p,showDropEffect:d,uploading:u,uploadFiles:k,onFileInputChange:function(e){const t=e.target,n=Array.from(t.files||[]).filter(e=>e.type);t.value="",n.length&&k(n)}}}const fc="storage-manager-files-preset",pc="cards",mc={icon:"insert_drive_file",title:"{{ title }}",subtitle:"{{ type }} • {{ filesize }}",size:4,imageFit:"crop"},vc={sort:["-uploaded_on"],page:1,limit:25};function hc(){const e=function(){try{const e=localStorage.getItem(fc);return e?JSON.parse(e):{}}catch{return{}}}(),t=o(e.layout||pc),n=o({...mc,...e.layoutOptions||{}}),a=o({...vc,...e.layoutQuery||{},page:Math.max(1,Number(e.layoutQuery?.page)||1),limit:yc(e.layoutQuery?.limit)}),r=o(null),i=o(null);return y([t,n,a],()=>{try{localStorage.setItem(fc,JSON.stringify({layout:t.value,layoutOptions:n.value,layoutQuery:{...a.value,page:Math.max(1,Number(a.value.page)||1),limit:yc(a.value.limit)}}))}catch{}},{deep:!0}),{layout:t,layoutOptions:n,layoutQuery:a,filter:r,search:i,resetPreset:function(){t.value=pc,n.value={...mc},a.value={...vc},r.value=null,i.value=null},resetPage:function(){1!==Number(a.value.page)&&(a.value={...a.value,page:1})}}}const gc=[25,50,100,250,500,1e3];function yc(e){const t=Number(e);return gc.includes(t)?t:25}const bc="directus_files",_c=["filename_disk","type","filesize"],wc=new Set([..._c,"title"]);function xc(e){const t=Number(e);return[25,50,100,250,500,1e3].includes(t)?t:25}const Sc=new Set(["files","transforms"]);function kc(e){const t={_and:[{type:{_nnull:!0}}]};return e?t._and.push({folder:{_eq:e}}):t._and.push({folder:{_null:!0}}),t}function Ec(e,t){return e?t?{_and:[e,t]}:e:t??null}const Ac={key:0,class:"move-hint"},Oc={key:1,class:"move-destination-hint"},$c={class:"move-dry-run"},Cc={key:0,class:"move-dry-result"},Ic={key:1,class:"move-hint"},Rc={key:0,class:"move-hint"},Nc={key:1,class:"move-samples"},Tc={key:0},jc={key:2,class:"move-hint"},Dc={class:"page-intro"},Mc={key:4,class:"transforms-intro"},Lc={class:"sidebar-actions"},Fc={class:"sidebar-text storage-label"},Pc={class:"sidebar-text sidebar-note"},Uc="storage-location-badge";var Bc=l({__name:"collection-browser",props:{mode:{},folder:{},storage:{},storagePath:{}},setup(n){const a=n,r=e(),l=X(),w=H(),{folders:S}=te(),{storages:k,loadStorages:E}=ie(),{refreshTree:C}=fe(),{running:I,reopenNonce:T,start:j}=_l(),D=Qe(),M=o(),L=o([]),G=o([]),K=o([]),Y=o(!1),J=o(!1),Q=o(!1),Z=o({location:"",path:""}),ee=o(!1),ne=o(!1),ae=o(!0),re=o(null),oe=o(!1),le=o(!1),se=o(!1),ce=o([]),{layout:de,layoutOptions:ue,layoutQuery:pe,filter:me,search:ve,resetPreset:he,resetPage:ge}=hc(),{layoutWrapper:ye}=Hi(de),{rootFileView:be,setRootFileView:_e}=function(){const e=X(),t=H();return{rootFileView:i(()=>{const t=String(e.query.view||"files");return"all"===t?"files":Sc.has(t)?t:"files"}),setRootFileView:function(n){const a={...e.query};"files"===n?delete a.view:a.view=n,t.replace({path:e.path,query:a})}}}(),we=i(()=>a.storage),{transformsLayoutState:xe,refreshTransforms:Se,onLayoutWidth:ke,onLimitUpdate:Ee,onFieldsUpdate:Oe,onTableSpacingUpdate:$e,onSizeUpdate:Ce,onSortUpdate:Ie}=function(n){const a=e(),{useFieldsStore:r,useCollectionsStore:l}=t(),s=r(),c=l(),d=o([]),u=o(!1),f=o(!1),p=o(null),m=o(null),v=o(0),h=i({get:()=>Math.max(1,Number(n.layoutQuery.value.page)||1),set(e){n.layoutQuery.value={...n.layoutQuery.value,page:Math.max(1,e)}}}),g=i({get:()=>xc(n.layoutQuery.value.limit),set(e){n.layoutQuery.value={...n.layoutQuery.value,limit:xc(e),page:1}}}),b=i({get(){const e=n.layoutQuery.value.fields;if(Array.isArray(e)&&e.length){const t=e.filter(e=>wc.has(String(e)));if(t.length)return t}return[..._c]},set(e){n.layoutQuery.value={...n.layoutQuery.value,fields:e}}}),_=i({get:()=>Array.isArray(n.layoutQuery.value.sort)?n.layoutQuery.value.sort:[],set(e){n.layoutQuery.value={...n.layoutQuery.value,sort:e}}}),w=i({get:()=>n.layoutOptions.value?.spacing||"cozy",set(e){n.layoutOptions.value={...n.layoutOptions.value,spacing:e}}}),x=i(()=>{switch(w.value){case"compact":return 32;case"comfortable":return 48;default:return 40}}),S=i(()=>s.getPrimaryKeyFieldForCollection(bc)),k=i(()=>s.getFieldsForCollection(bc)),E=i(()=>c.getCollection(bc)),A=i(()=>b.value.map(e=>{const t=s.getField(bc,e);return t?{...t,key:e}:null}).filter(Boolean)),O=i(()=>A.value.map(e=>({text:e.name,value:e.key,description:null,width:n.layoutOptions.value?.widths?.[e.key]||144,align:n.layoutOptions.value?.align?.[e.key]||"left",field:{display:e.meta?.display,displayOptions:e.meta?.display_options,interface:e.meta?.interface,interfaceOptions:e.meta?.options,type:e.type,field:e.field,collection:e.collection}}))),$=i(()=>{const e=_.value?.[0];return e?e.startsWith("-")?{by:e.slice(1),desc:!0}:{by:e,desc:!1}:null}),C=i(()=>d.value.length),I=i(()=>m.value?Math.max(1,Math.ceil(m.value/g.value)):1),R=i(()=>{if(!m.value||!C.value)return;const e=(h.value-1)*g.value+1,t=e+C.value-1;return m.value<=t?`${e}–${m.value} of ${m.value}`:`${e}–${t} of ${m.value}`}),N=i({get:()=>Number(n.layoutOptions.value?.size)||4,set(e){n.layoutOptions.value={...n.layoutOptions.value,size:e}}}),T=i(()=>n.layoutOptions.value?.icon||"insert_drive_file"),j=i(()=>n.layoutOptions.value?.imageFit||"crop"),D=i(()=>n.layoutOptions.value?.title||"{{ title }}"),M=i(()=>n.layoutOptions.value?.subtitle||"{{ type }} • {{ filesize }}"),L=i(()=>Math.max(1,Math.ceil(d.value.length/Math.max(1,N.value)))<=1&&v.value>0);let F=0;async function P(){if(n.location.value){f.value=!0;try{const e=await a.get(`/storage-manager/storages/${encodeURIComponent(n.location.value)}/root-transforms/count`,{params:{search:n.search.value?.trim()||void 0}});m.value=Number(e.data?.data?.count)||0}catch{m.value=null}finally{f.value=!1}}else m.value=0}async function U(){if(!n.location.value)return void(d.value=[]);const e=++F;u.value=!0,p.value=null;try{const t=await a.get(`/storage-manager/storages/${encodeURIComponent(n.location.value)}/root-transforms`,{params:{page:h.value,limit:g.value,search:n.search.value?.trim()||void 0}});if(e!==F)return;const r=t.data?.data||[];d.value=function(e){return e.map(e=>({id:e.filename_disk,filename_disk:e.filename_disk,title:e.filename_disk,type:e.type,filesize:e.filesize}))}(r)}catch(t){if(e!==F)return;d.value=[],p.value=t}finally{e===F&&(u.value=!1)}}async function B(){await Promise.all([U(),P()])}function V(e){h.value=e}function z(e){_.value=[e.desc?`-${e.by}`:e.by],h.value=1}async function G(){n.resetPreset(),h.value=1,await B()}function K(){}return y(()=>[n.location.value,n.search.value,h.value,g.value],()=>{U()},{immediate:!0}),y(()=>[n.location.value,n.search.value],()=>{h.value=1,P()},{immediate:!0}),{transformsLayoutState:i(()=>({collection:bc,items:d.value,loading:u.value,loadingItemCount:f.value,error:p.value,totalPages:I.value,page:h.value,toPage:V,itemCount:C.value,totalCount:m.value,limit:g.value,fields:b.value,tableHeaders:O.value,tableSort:$.value,tableRowHeight:x.value,tableSpacing:w.value,activeFields:A.value,primaryKeyField:S.value,fieldsInCollection:k.value,info:E.value,showingCount:R.value,sortField:"filename_disk",readonly:!0,showSelect:"none",selectMode:!1,selection:[],filterUser:null,search:n.search.value||void 0,aliasedFields:{},aliasedKeys:[],onRowClick:()=>{},onSortChange:z,onAlignChange:()=>{},changeManualSort:async()=>{},resetPresetAndRefresh:G,selectAll:K,refresh:B,download:()=>{},size:N.value,icon:T.value,imageFit:j.value,title:D.value,subtitle:M.value,imageSource:void 0,getLinkForItem:()=>{},isSingleRow:L.value,width:v.value,sort:_.value,hasPrependContent:!1,fileFields:[]})),refreshTransforms:B,onLayoutWidth:function(e){v.value=e},onLimitUpdate:function(e){g.value=e},onFieldsUpdate:function(e){b.value=e},onTableSpacingUpdate:function(e){w.value=e},onSizeUpdate:function(e){N.value=e},onSortUpdate:function(e){_.value=e}}}({location:we,search:ve,layout:de,layoutOptions:ue,layoutQuery:pe,resetPreset:he}),Ne=i(()=>String(a.storagePath||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")),Te=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value),je=Te,De=i(()=>!Te.value||"files"===be.value),Me=i(()=>!!Te.value&&"transforms"===be.value),Le=i(()=>Te.value&&"transforms"===be.value),Fe=i(()=>!Le.value),Pe=i(()=>Le.value?"Search transforms…":void 0),Ve=i(()=>"storage"===a.mode&&a.storage?function(e,t,n=[]){const a=String(t||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),r=[{type:{_nnull:!0}},{storage:{_eq:e}}];if(a){r.push({filename_disk:{_starts_with:`${a}/`}});for(const e of n){const t=String(e||"").trim();t&&!t.includes("/")&&r.push({filename_disk:{_nstarts_with:`${a}/${t}/`}})}}else r.push({filename_disk:{_ncontains:"/"}});return{_and:r}}(a.storage,Ne.value,K.value.map(e=>e.name)):kc(a.folder??null)),ze=i(()=>Le.value?{id:{_eq:"00000000-0000-0000-0000-000000000000"}}:Ec(me.value,Ve.value)),Ge=i(()=>{if("storage"===a.mode){if(Ne.value){const e=Ne.value.split("/");return e[e.length-1]||a.storage||"Storage"}return a.storage||"Storage"}if(a.folder){const e=S.value?.find(e=>e.id===a.folder);return e?.name||"Folder"}return"Directus Folders"}),Ke=i(()=>"folders"===a.mode&&!a.folder&&!ve.value&&!me.value),He=i(()=>{if("folders"!==a.mode||!S.value)return[];const e=a.folder??null;return S.value.filter(t=>e?t.parent===e:null==t.parent).slice().sort((e,t)=>e.name.localeCompare(t.name))}),Xe=i(()=>{const e=[{name:"Storage Manager",to:"/storage-manager"}];if("storage"===a.mode){if(e.push({name:a.storage||"Storage",to:`/storage-manager/storage/${a.storage}`}),Ne.value){const t=Ne.value.split("/").filter(Boolean);let n="";for(const r of t)n=n?`${n}/${r}`:r,e.push({name:r,to:Re(a.storage,n)})}}else e.push({name:"Directus Folders",to:"/storage-manager/folders"}),a.folder&&e.push({name:Ge.value,to:`/storage-manager/folders/${a.folder}`});return e}),qe=i(()=>"storage"===a.mode&&a.storage&&k.value.find(e=>e.location===a.storage)||null),We=o(!1),Je=o(!1),Ze=o("files"),et=o([]);o(!1);const tt=i(()=>"files"===Ze.value?et.value.length||L.value.length||void 0:"storage"===Ze.value?qe.value?.file_count??void 0:"folder"===Ze.value?at.value??void 0:void 0),nt=i(()=>{if("storage"===Ze.value)return qe.value?.total_bytes}),at=o(null),rt=i(()=>"folders"===a.mode&&ce.value.length>1),ot=i(()=>"folders"===a.mode),it=["title","type","filesize","modified_on"],lt=i({get(){const e={...pe.value};if(!ot.value||"tabular"!==de.value)return e;const t=[...e.fields?.length?e.fields:it];return t.includes("storage")||t.push("storage"),{...e,fields:t}},set(e){pe.value=e}}),st=i(()=>{if(!rt.value)return"";const e=ce.value.join(", ");return`This ${a.folder?"folder":"root view"} has files on ${ce.value.length} storages (${e}).`}),ct=i(()=>"folders"===a.mode&&0===L.value.length&&0===G.value.length),dt=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length),ut=i(()=>Ne.value?"Detect Files in this Folder":`Detect Files on ${a.storage}`),ft=i(()=>0===L.value.length&&0===G.value.length),pt=i(()=>L.value.length>0||"storage"===a.mode&&G.value.length>0||"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length||"folders"===a.mode&&0===L.value.length&&0===G.value.length&&(at.value??0)>0),mt=i(()=>"storage"===a.mode&&Boolean(a.storage)&&!Ne.value&&0===L.value.length&&0===G.value.length),vt=i(()=>mt.value?`Moves every file and folder on “${a.storage}” into the destination you pick. Existing folders with the same name are merged. Files that already exist at the destination stay there.`:"storage"===a.mode&&G.value.length?1===G.value.length?"Moves the selected storage folder into the destination you pick. If that folder name already exists there, files are merged into it.":"Moves the selected storage folders into the destination you pick. Matching folder names are merged.":1===L.value.length?"Moves the selected file into the storage folder you pick.":L.value.length>1?`Moves ${L.value.length} selected files into the storage folder you pick.`:"folders"===a.mode?a.folder?"No files selected — moves all files in this Directus folder into the storage folder you pick.":"No files selected — moves all unfiled files into the storage folder you pick.":""),ht=i(()=>"storage"===a.mode&&G.value.length?G.value.map(String):[]),gt=i(()=>mt.value?`Move all on ${a.storage}`:"Move to Storage Folder"),yt=i(()=>{const e=Z.value.location;if(!e)return"";const t=Z.value.path?`${e}/${Z.value.path}/`:`${e}/`;if(mt.value)return`Everything on “${a.storage}” will be merged into ${t}`;if(1===ht.value.length){const e=String(ht.value[0]).split("/").filter(Boolean).pop();return`Folder “${e}” will be merged into ${t}${e}/`}return ht.value.length>1?`Selected folders will be merged into ${t}{folder-name}/`:`Files will be moved to ${t}`});i(()=>"storage"===a.mode&&G.value.length>0);const bt=i(()=>L.value.length>0||"storage"===a.mode&&G.value.length>0);i(()=>G.value.length>0&&0===L.value.length?1===G.value.length?"Migrate Selected Folder":"Migrate Selected Folders":"Migrate Selected");const _t=i(()=>{const e=L.value.length;return 1===e?"Are you sure you want to delete this item? This action cannot be undone.":`Are you sure you want to delete ${e} items? This action cannot be undone.`});function wt(){"storage"===a.mode&&G.value.length>0?le.value=!0:oe.value=!0}async function xt(){if("folders"===a.mode)try{const e=await r.get("/files",{params:{limit:0,meta:"filter_count",filter:JSON.stringify(kc(a.folder??null))}});at.value=Number(e.data?.meta?.filter_count??0)}catch{at.value=0}else at.value=null}async function St(){if("folders"===a.mode)try{const e=await r.get("/files",{params:{filter:JSON.stringify(kc(a.folder??null)),fields:["storage"],limit:-1}}),t=new Set;for(const n of e.data?.data||[]){const e=String(n?.storage||"").trim();e&&t.add(e)}ce.value=Array.from(t).sort((e,t)=>e.localeCompare(t))}catch{ce.value=[]}else ce.value=[]}function kt(e){const t=document.createElement("span");return t.className=Uc,t.textContent=e,t}function Et(){document.querySelectorAll(`.layout-cards .header .${Uc}`).forEach(e=>{e.remove()}),document.querySelectorAll(`.layout-tabular .${Uc}`).forEach(e=>{const t=e.parentElement,n=e.textContent||"";e.remove(),t&&!t.querySelector(`.${Uc}`)&&t.append(n)})}async function At(e){if(Et(),!ot.value)return;if(await z(),"tabular"===de.value)return void function(){const e=document.querySelector(".layout-tabular thead tr");if(!e)return;const t=Array.from(e.children);let n=t.findIndex(e=>String(e.className||"").split(/\s+/).includes("storage")||"storage"===e.getAttribute("data-field"));n<0&&(n=t.findIndex(e=>"storage"===e.textContent?.trim().toLowerCase())),n<0||document.querySelectorAll(".layout-tabular tbody tr").forEach(e=>{const t=e.children[n];if(!t||t.querySelector(`.${Uc}`))return;const a=String(t.textContent||"").trim();a&&(t.textContent="",t.appendChild(kt(a)))})}();if("cards"!==de.value||!e?.length)return;const t=document.querySelectorAll(".layout-cards .grid .card:not(.folder-card)");if(!t.length)return;const n="id",a=e.some(e=>null!=e[n]&&null==e.storage);let o={};if(a){const t=e.map(e=>e[n]).filter(Boolean);if(!t.length)return;try{const e=await r.get("/files",{params:{filter:JSON.stringify({id:{_in:t}}),fields:["id","storage"],limit:t.length}});for(const t of e.data?.data||[])o[String(t.id)]=String(t.storage||"")}catch{return}}t.forEach((t,a)=>{const r=e[a];if(!r)return;const i=String(r.storage??o[String(r[n])]??"").trim();if(!i)return;const l=t.querySelector(".header");l&&l.appendChild(kt(i))})}async function Ot(){Me.value?await Se():await(M.value?.state?.refresh?.()),await E(!0).catch(()=>{}),await $t(),await xt().catch(()=>{}),await St().catch(()=>{}),"storage"===a.mode&&a.storage&&await C(a.storage).catch(()=>{})}async function $t(){if("storage"===a.mode&&a.storage){Y.value=!0;try{const e=await r.get(`/storage-manager/storages/${encodeURIComponent(a.storage)}/browse`,{params:{path:Ne.value||""}});K.value=e.data?.data?.folders||[]}catch{K.value=[]}finally{Y.value=!1}}else K.value=[]}function Ct(){me.value=null,ve.value=null}function It(){Je.value=!0,"storage"===a.mode&&a.storage&&"1"!==String(l.query.detect||"")&&w.replace({path:l.path,query:{...l.query,detect:"1"}})}function Rt(e){if(Je.value=e,!e&&"1"===String(l.query.detect||"")){const e={...l.query};delete e.detect,w.replace({path:l.path,query:e})}}async function Nt(){L.value=[],G.value=[],et.value=[],await Ot()}async function Tt(){L.value=[],G.value=[],await Ot()}async function jt(){await Ot()}q((e,t)=>{e.path!==t.path&&(L.value=[],G.value=[],oe.value=!1,le.value=!1,Et())}),W((e,t)=>{e.path!==t.path&&(L.value=[],G.value=[],oe.value=!1,le.value=!1)}),y(()=>[a.folder,a.storage,a.mode,Ne.value],()=>{L.value=[],G.value=[],ge(),xt(),St(),Et(),Te.value||"files"===be.value||_e("files")}),y(be,()=>{ge()}),y(()=>[ot.value,de.value,pe.value.page,pe.value.limit,JSON.stringify(pe.value.sort??[]),M.value?.state?.loading,M.value?.state?.items],()=>{var e;M.value?.state?.loading||(e=M.value?.state?.items,At(e).catch(()=>{}))},{deep:!0,flush:"post"}),y(()=>[a.storage,String(l.query.detect||"")],([e,t])=>{"storage"===a.mode&&e&&"1"===t&&(Je.value=!0)},{immediate:!0}),b(()=>{E().catch(()=>{}),$t().catch(()=>{}),xt().catch(()=>{}),St().catch(()=>{})}),y(()=>[a.mode,a.storage,Ne.value],()=>{$t()}),y(I,async(e,t)=>{t&&!e&&(L.value=[],await Ot())}),y(T,()=>{I.value&&(We.value=!0)}),y(()=>String(l.query.migrateJob||""),e=>{if("1"!==e)return;We.value=!0;const t={...l.query};delete t.migrateJob,w.replace({path:l.path,query:t})},{immediate:!0});const Dt=i(()=>"storage"===a.mode?{storage:a.storage,storagePath:Ne.value||null}:{folder:a.folder??null}),Mt=o(!1),{dragging:Lt,showDropEffect:Ft,uploading:Pt,uploadFiles:Ut}=uc({preset:Dt,onDone:Ot}),Bt=i(()=>"storage"===a.mode&&a.storage?`Upload to ${a.storage}`:"Add File");function Vt(){Mt.value=!0}async function zt(e){await Ut(e)}async function Gt(){if(!se.value&&L.value.length){se.value=!0;try{await r.delete("/files",{data:L.value}),L.value=[],oe.value=!1,await Ot()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}finally{se.value=!1}}}async function Kt(){try{L.value.length>0&&await r.delete("/files",{data:L.value})}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed")}L.value=[],G.value=[],le.value=!1,await Ot(),a.storage&&await C(a.storage).catch(()=>{})}async function Ht(){if(Z.value.location&&!ne.value){ne.value=!0,re.value=null;try{const e=await async function(){const e=Z.value.location,t=Z.value.path||"",n=[...ht.value],r={target_storage:e,target_path:t,preserve_paths:mt.value,include_empty_folders:ae.value,source_folders:n};return mt.value?r.source_storage=a.storage||void 0:"storage"===a.mode&&G.value.length?(r.source_storage=a.storage||void 0,L.value.length&&(r.file_ids=L.value.map(String))):"folders"===a.mode&&0===L.value.length?(r.folder_id=a.folder??null,r.recursive=!0):(r.file_ids=L.value.map(String),a.storage&&(r.source_storage=a.storage)),r}(),t=await r.post("/storage-manager/migrate/dry-run",e);re.value=t.data?.data??null}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed")}finally{ne.value=!1}}}async function Xt(){const e=Z.value.location,t=Z.value.path||"";if(!e)return;ee.value=!0;const n=[...ht.value],o=mt.value;try{const i=mt.value?((await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify({storage:{_eq:a.storage}})}})).data?.data||[]).map(e=>String(e.id)):await async function(){const e=new Set(L.value.map(String));if("folders"===a.mode&&0===e.size){try{const t=await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify(kc(a.folder??null))}});for(const n of t.data?.data||[])e.add(String(n.id))}catch{}return Array.from(e)}if("storage"===a.mode&&a.storage&&G.value.length)for(const t of G.value){const n=String(t||"").replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");if(n)try{const t=await r.get("/files",{params:{limit:-1,fields:["id"],filter:JSON.stringify({_and:[{storage:{_eq:a.storage}},{filename_disk:{_starts_with:`${n}/`}}]})}});for(const n of t.data?.data||[])e.add(String(n.id))}catch{}}return Array.from(e)}();if(!i.length&&!n.length&&!mt.value)return void window.alert("folders"===a.mode&&0===L.value.length?"This Directus folder has no files to move.":"No files selected.");if(!i.length&&(n.length||mt.value)){const i=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:[],target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o});return qt(i.data?.data?.skipped),J.value=!1,L.value=[],G.value=[],void await Ot()}const l=await r.get("/files",{params:{limit:-1,fields:["id","storage"],filter:JSON.stringify({id:{_in:i}})}}),s=l.data?.data||[],c=s.filter(t=>String(t.storage)!==e).map(e=>String(e.id));if(!c.length){const l=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:i,target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o});return qt(l.data?.data?.skipped),J.value=!1,L.value=[],G.value=[],void await Ot()}J.value=!1,ee.value=!1;const d=j({file_ids:c,target_storage:e,mode:"move",target_path:t,source_folders:n,include_empty_folders:ae.value,source_storage:a.storage||void 0,preserve_paths:o},{estimatedCount:c.length});We.value=!0,await d;const u=s.filter(t=>String(t.storage)===e).map(e=>String(e.id));if(u.length){const a=await r.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:u,target_path:t,source_folders:n,include_empty_folders:ae.value,preserve_paths:o});qt(a.data?.data?.skipped)}L.value=[],G.value=[],await Ot()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{ee.value=!1}}function qt(e){const t=Number(e)||0;t>0&&window.alert(`${t.toLocaleString()} file${1===t?"":"s"} already exist at the destination and were left in place.`)}y(J,e=>{if(!e)return;re.value=null,ae.value=!0;const t=k.value.filter(e=>e.location!==a.storage),n=(mt.value?t[0]?.location:null)||a.storage||k.value[0]?.location||"";Z.value={location:n,path:mt.value?"":"storage"===a.mode&&Ne.value||""}}),y(()=>[Z.value.location,Z.value.path,ae.value],()=>{re.value=null});const Wt=i(()=>{const e=l.query.file;return"string"==typeof e&&e.length>0?e:null});function Yt(e){const t={...l.query,file:String(e)},n=new URLSearchParams;for(const[e,a]of Object.entries(t))if(null!=a&&""!==a)if(Array.isArray(a))for(const t of a)n.append(e,String(t));else n.set(e,String(a));const a=n.toString();return a?`${l.path}?${a}`:l.path}function Jt(e){e||(!function(){if(!("file"in l.query))return;const e={...l.query};delete e.file,w.replace({path:l.path,query:e})}(),Ot().catch(()=>{}))}function Qt(){"folders"!==a.mode?"storage"===a.mode&&(G.value=K.value.map(e=>e.path)):G.value=He.value.map(e=>e.id)}async function Zt(){await Se()}function en(e){return{...e,hasPrependContent:!1}}function tn(e){return Me.value?xe.value:e}function nn(e){const t=e.primaryKeyField?.field||"id",n="storage"===a.mode&&K.value.length>0&&!ve.value&&!me.value;return{...e,hasPrependContent:n,selectMode:e.selectMode||G.value.length>0,getLinkForItem(e){const n=e?.[t];if(null!=n)return Yt(n)},onRowClick({item:e,event:n}){const a=e?.[t];if(null==a)return;if(L.value.length>0||G.value.length>0)return void(L.value.includes(a)?L.value=L.value.filter(e=>e!==a):L.value=L.value.concat(a));const r=Yt(a);n.ctrlKey||n.metaKey?window.open(w.resolve(r).href,"_blank"):w.push(r)}}}return(e,t)=>{const a=s("v-breadcrumb"),r=s("v-card-title"),o=s("v-checkbox"),i=s("v-button"),l=s("v-card-text"),y=s("v-card-actions"),b=s("v-card"),w=s("v-dialog"),S=s("v-icon"),E=s("v-divider"),C=s("v-notice"),I=s("v-info"),T=s("drawer-item"),j=s("sidebar-detail"),z=s("private-view"),H=R("tooltip");return c(),d(F(O(ye)),{ref_key:"layoutRef",ref:M,selection:L.value,"onUpdate:selection":t[21]||(t[21]=e=>L.value=e),"layout-options":O(ue),"onUpdate:layoutOptions":t[22]||(t[22]=e=>A(ue)?ue.value=e:null),"layout-query":lt.value,"onUpdate:layoutQuery":t[23]||(t[23]=e=>lt.value=e),filter:ze.value,"filter-user":O(me),"filter-system":Ve.value,search:O(ve),collection:"directus_files","reset-preset":O(he)},{default:u(({layoutState:e})=>[f(z,{title:Ge.value,icon:"storage"===n.mode?qe.value?.icon||"storage":"folder",class:$({dragging:O(Lt)})},{headline:u(()=>[f(a,{items:Xe.value},null,8,["items"])]),"actions:prepend":u(()=>[(c(),d(F(`layout-actions-${O(de)}`),B(V(tn(e))),null,16))]),actions:u(()=>[f(Wi,{modelValue:O(ve),"onUpdate:modelValue":t[0]||(t[0]=e=>A(ve)?ve.value=e:null),filter:O(me),"onUpdate:filter":t[1]||(t[1]=e=>A(me)?me.value=e:null),collection:"directus_files","show-filter":Fe.value,placeholder:Pe.value},null,8,["modelValue","filter","show-filter","placeholder"]),"storage"===n.mode&&n.storage?(c(),d(xs,{key:0,location:n.storage,"parent-path":Ne.value,onCreated:Ot},null,8,["location","parent-path"])):_("v-if",!0),pt.value?(c(),d(w,{key:1,modelValue:J.value,"onUpdate:modelValue":t[5]||(t[5]=e=>J.value=e),onEsc:t[6]||(t[6]=e=>J.value=!1),onApply:Xt},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder_move",secondary:"",onClick:e},null,8,["onClick"]),[[H,gt.value,void 0,{bottom:!0}]])]),default:u(()=>[f(b,null,{default:u(()=>[f(r,null,{default:u(()=>[h(g(gt.value),1)]),_:1}),f(l,null,{default:u(()=>[vt.value?(c(),p("p",Ac,g(vt.value),1)):_("v-if",!0),f(Ms,{modelValue:Z.value,"onUpdate:modelValue":t[2]||(t[2]=e=>Z.value=e)},null,8,["modelValue"]),yt.value?(c(),p("p",Oc,g(yt.value),1)):_("v-if",!0),t[27]||(t[27]=x("p",{class:"move-destination-hint"}," Existing folders are merged. If another registered file already owns the destination path, the incoming file is skipped and stays on the source. ",-1)),mt.value||ht.value.length?(c(),d(o,{key:2,modelValue:ae.value,"onUpdate:modelValue":t[3]||(t[3]=e=>ae.value=e),label:"Include empty folders"},null,8,["modelValue"])):_("v-if",!0),x("div",$c,[f(i,{secondary:"",loading:ne.value,disabled:!Z.value.location,onClick:Ht},{default:u(()=>[...t[24]||(t[24]=[h(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),re.value?(c(),p("div",Cc,[x("p",null,[x("strong",null,g(re.value.total_files.toLocaleString()),1),t[26]||(t[26]=h(" files ",-1)),re.value.total_folders?(c(),p(m,{key:0},[t[25]||(t[25]=h(" · ",-1)),x("strong",null,g(re.value.total_folders.toLocaleString()),1),h(" "+g(1===re.value.total_folders?"folder":"folders"),1)],64)):_("v-if",!0),re.value.empty_folders?(c(),p("span",Ic," ("+g(re.value.empty_folders.toLocaleString())+" empty"+g(ae.value?"":", skipped")+") ",1)):_("v-if",!0),re.value.total_bytes?(c(),p(m,{key:2},[h(" · "+g(O(Be)(re.value.total_bytes)),1)],64)):_("v-if",!0)]),re.value.skipped?(c(),p("p",Rc,g(re.value.skipped.toLocaleString())+" already at destination — skipped ",1)):_("v-if",!0),re.value.samples?.length?(c(),p("ul",Nc,[(c(!0),p(m,null,v(re.value.samples,(e,t)=>(c(),p("li",{key:t},[h(g(e.from)+" → "+g(e.to)+" ",1),e.skipped?(c(),p("span",Tc," (skipped)")):_("v-if",!0)]))),128))])):_("v-if",!0),re.value.samples?.length&&re.value.total_files>re.value.samples.length?(c(),p("p",jc," Showing "+g(re.value.samples.length)+" of "+g(re.value.total_files.toLocaleString())+" files ",1)):_("v-if",!0)])):_("v-if",!0)])]),_:1}),f(y,null,{default:u(()=>[f(i,{secondary:"",onClick:t[4]||(t[4]=e=>J.value=!1)},{default:u(()=>[...t[28]||(t[28]=[h("Cancel",-1)])]),_:1}),f(i,{disabled:!Z.value.location,loading:ee.value,onClick:Xt},{default:u(()=>[...t[29]||(t[29]=[h(" Move ",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),bt.value?N((c(),d(Yi,{key:2,class:"action-delete",icon:"delete",secondary:"",disabled:se.value,onClick:wt},null,8,["disabled"])),[[H,"Delete",void 0,{bottom:!0}]]):_("v-if",!0),f(w,{modelValue:oe.value,"onUpdate:modelValue":t[8]||(t[8]=e=>oe.value=e),onEsc:t[9]||(t[9]=e=>oe.value=!1),onApply:Gt},{default:u(()=>[f(b,null,{default:u(()=>[f(r,null,{default:u(()=>[h("Delete "+g(1===L.value.length?"Item":"Items"),1)]),_:1}),f(l,null,{default:u(()=>[h(g(_t.value),1)]),_:1}),f(y,null,{default:u(()=>[f(i,{secondary:"",onClick:t[7]||(t[7]=e=>oe.value=!1)},{default:u(()=>[...t[30]||(t[30]=[h("Cancel",-1)])]),_:1}),f(i,{kind:"danger",loading:se.value,onClick:Gt},{default:u(()=>[...t[31]||(t[31]=[h("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),"storage"===n.mode&&n.storage?(c(),d(Ae,{key:3,modelValue:le.value,"onUpdate:modelValue":t[10]||(t[10]=e=>le.value=e),location:n.storage,paths:G.value,onDone:Kt},null,8,["modelValue","location","paths"])):_("v-if",!0),ct.value?N((c(),d(Yi,{key:4,icon:"account_tree",secondary:"",onClick:t[11]||(t[11]=e=>Q.value=!0)},null,512)),[[H,n.folder?"Materialize This Folder":"Materialize Root Folders",void 0,{bottom:!0}]]):_("v-if",!0),N(f(Yi,{icon:"add",loading:O(Pt),onClick:Vt},null,8,["loading"]),[[H,"Upload File",void 0,{bottom:!0}]])]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(el,{modelValue:O(de),"onUpdate:modelValue":t[15]||(t[15]=e=>A(de)?de.value=e:null)},{default:u(()=>[(c(),d(F(`layout-options-${O(de)}`),B(V(tn(e))),null,16))]),_:2},1032,["modelValue"]),(c(),d(F(`layout-sidebar-${O(de)}`),B(V(tn(e))),null,16)),f(j,{id:"actions",icon:"swap_horiz",title:"Actions"},{default:u(()=>[x("div",Lc,["storage"===n.mode&&ft.value?(c(),d(i,{key:0,secondary:"","full-width":"",class:"sidebar-btn",onClick:It},{default:u(()=>[h(g(ut.value),1)]),_:1})):_("v-if",!0),dt.value?(c(),d(i,{key:1,"full-width":"",class:"sidebar-btn sidebar-btn-primary",onClick:t[16]||(t[16]=e=>J.value=!0)},{default:u(()=>[h(" Move all on "+g(n.storage),1)]),_:1})):_("v-if",!0),ct.value?(c(),d(i,{key:2,"full-width":"",class:"sidebar-btn",onClick:t[17]||(t[17]=e=>Q.value=!0)},{default:u(()=>[h(g(n.folder?"Materialize This Folder":"Materialize Root Folders"),1)]),_:1})):_("v-if",!0)])]),_:1}),O(je)&&n.storage?(c(),d(dc,{key:0,"model-value":O(be),location:n.storage,search:O(ve),"onUpdate:modelValue":O(_e),onDeleted:Zt},null,8,["model-value","location","search","onUpdate:modelValue"])):_("v-if",!0),"storage"===n.mode&&qe.value?(c(),d(j,{key:1,id:"storage-info",icon:"info",title:"Storage Info"},{default:u(()=>[x("p",Fc,g(qe.value.label),1),f(Ye,{usage:qe.value,compact:"",plain:""},null,8,["usage"])]),_:1})):(c(),d(j,{key:2,id:"directus-folders-info",icon:"info",title:"Directus Folders"},{default:u(()=>[x("p",Pc,g(O("A Directus folder is virtual — it organises files across any storage adapter. When Mirror Directus Folders is enabled on a storage, new uploads land on the matching physical path and folder renames or deletes are kept in sync on that adapter. Files on other adapters are unaffected.")),1),t[46]||(t[46]=x("p",{class:"sidebar-text"}," Use Move to Storage Folder to relocate files onto a physical path. Materialize builds storage folders from this virtual tree. At a storage root, Move all uses the same dialog. ",-1)),rt.value?(c(),d(C,{key:0,type:"info",class:"sidebar-multi-notice"},{default:u(()=>[h(" Files on "+g(ce.value.length)+" storages: ",1),x("strong",null,g(ce.value.join(", ")),1)]),_:1})):_("v-if",!0)]),_:1}))]),default:u(()=>[O(Ft)?(c(),p(m,{key:0},[t[32]||(t[32]=x("div",{class:"drop-border top"},null,-1)),t[33]||(t[33]=x("div",{class:"drop-border right"},null,-1)),t[34]||(t[34]=x("div",{class:"drop-border bottom"},null,-1)),t[35]||(t[35]=x("div",{class:"drop-border left"},null,-1))],64)):_("v-if",!0),Ke.value?(c(),p("div",{key:1,class:$(O(D))},[f(E,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(S,{name:"folder_special"})]),default:u(()=>[t[36]||(t[36]=h(" Directus Folders ",-1))]),_:1}),x("p",Dc,g(O("Browse the Directus folder tree. Use Move to Storage Folder to place files on a physical path, or Materialize to build that folder tree on disk. The virtual structure in the File Library is never changed here.")),1)],2)):_("v-if",!0),rt.value?(c(),d(C,{key:2,type:"info",class:"multi-storage-notice"},{default:u(()=>[h(g(st.value),1)]),_:1})):_("v-if",!0),De.value?(c(),d(F(`layout-${O(de)}`),P({key:3},nn(e),{"extra-selection":G.value,"onUpdate:extraSelection":t[14]||(t[14]=e=>G.value=e),onSelectAll:Qt}),U({"no-results":u(()=>[O(me)||O(ve)?(c(),d(I,{key:1,title:"No results",icon:"search",center:""},{append:u(()=>[f(i,{onClick:Ct},{default:u(()=>[...t[39]||(t[39]=[h("Clear filters",-1)])]),_:1})]),default:u(()=>[t[40]||(t[40]=h(" No files match your search or filters. ",-1))]),_:1})):(c(),d(I,{key:0,title:"No files",icon:"folder",center:""},{append:u(()=>[f(i,{onClick:Vt},{default:u(()=>[...t[37]||(t[37]=[h("Add File",-1)])]),_:1})]),default:u(()=>[t[38]||(t[38]=h(" Drop files here to upload, or use the + button. ",-1))]),_:1}))]),"no-items":u(()=>[f(I,{title:"No files",icon:"folder",center:""},{append:u(()=>[f(i,{onClick:Vt},{default:u(()=>[...t[42]||(t[42]=[h("Add File",-1)])]),_:1})]),default:u(()=>[Y.value?(c(),p(m,{key:0},[h("Loading storage folders…")],64)):(c(),p(m,{key:1},[t[41]||(t[41]=h(" Drop files here to upload, or use the + button. ",-1)),"storage"===n.mode?(c(),p(m,{key:0},[h(" Create a storage folder with the folder icon. ")],64)):_("v-if",!0)],64))]),_:1})]),_:2},["storage"!==n.mode||!K.value.length||O(ve)||O(me)?"folders"!==n.mode||!He.value.length||O(ve)||O(me)?void 0:{name:"prepend",fn:u(()=>[f(Ns,{selection:G.value,"onUpdate:selection":t[13]||(t[13]=e=>G.value=e),folders:He.value,"any-file-selection":L.value.length>0},null,8,["selection","folders","any-file-selection"])]),key:"1"}:{name:"prepend",fn:u(()=>[f(Os,{selection:G.value,"onUpdate:selection":t[12]||(t[12]=e=>G.value=e),location:n.storage,folders:K.value,"any-file-selection":L.value.length>0,onChanged:Ot},null,8,["selection","location","folders","any-file-selection"])]),key:"0"}]),1040,["extra-selection"])):_("v-if",!0),Me.value&&n.storage?(c(),p("p",Mc," Generated thumbnails and resized variants at the storage root — not registered in Directus Files. ")):_("v-if",!0),Me.value&&n.storage?(c(),d(F(`layout-${O(de)}`),P({key:5},en(O(xe)),{"onUpdate:width":O(ke),"onUpdate:limit":O(Ee),"onUpdate:fields":O(Oe),"onUpdate:tableSpacing":O($e),"onUpdate:size":O(Ce),"onUpdate:sort":O(Ie)}),{"no-results":u(()=>[f(I,{title:"No results",icon:"search",center:""},{append:u(()=>[f(i,{onClick:Ct},{default:u(()=>[...t[43]||(t[43]=[h("Clear search",-1)])]),_:1})]),default:u(()=>[t[44]||(t[44]=h(" No transforms match your search. ",-1))]),_:1})]),"no-items":u(()=>[f(I,{title:"No thumbnails",icon:"photo_size_select_large",center:""},{default:u(()=>[...t[45]||(t[45]=[h(" No generated transforms at the storage root. ",-1)])]),_:1})]),_:1},16,["onUpdate:width","onUpdate:limit","onUpdate:fields","onUpdate:tableSpacing","onUpdate:size","onUpdate:sort"])):_("v-if",!0),Wt.value?(c(),d(T,{key:6,collection:"directus_files","primary-key":Wt.value,active:!0,"onUpdate:active":Jt},null,8,["primary-key"])):_("v-if",!0),f(Fs,{modelValue:Mt.value,"onUpdate:modelValue":t[18]||(t[18]=e=>Mt.value=e),title:Bt.value,uploading:O(Pt),onFiles:zt},null,8,["modelValue","title","uploading"]),f(ss,{modelValue:We.value,"onUpdate:modelValue":t[19]||(t[19]=e=>We.value=e),storages:O(k),"source-storage":"storage"===n.mode&&n.storage||null,"selection-kind":Ze.value,"file-ids":et.value.length?et.value:L.value,"folder-id":"folders"===n.mode?n.folder??null:null,"source-path":"storage"===n.mode&&Ne.value||null,"estimated-count":tt.value,"estimated-bytes":nt.value,onDone:Nt},null,8,["modelValue","storages","source-storage","selection-kind","file-ids","folder-id","source-path","estimated-count","estimated-bytes"]),"storage"===n.mode&&n.storage?(c(),d(ws,{key:7,"model-value":Je.value,location:n.storage,"storage-path":Ne.value||null,"onUpdate:modelValue":Rt,onImported:Tt},null,8,["model-value","location","storage-path"])):_("v-if",!0),"folders"===n.mode?(c(),d(nc,{key:8,modelValue:Q.value,"onUpdate:modelValue":t[20]||(t[20]=e=>Q.value=e),storages:O(k),"folder-id":n.folder??null,onDone:jt},null,8,["modelValue","storages","folder-id"])):_("v-if",!0)]),_:2},1032,["title","icon","class"])]),_:1},40,["selection","layout-options","layout-query","filter","filter-user","filter-system","search","reset-preset"])}}});we("\n.drop-border[data-v-2c393c04] {\n\tposition: fixed;\n\tz-index: 500;\n\tbackground-color: var(--theme--primary);\n}\n.drop-border.top[data-v-2c393c04],\n.drop-border.bottom[data-v-2c393c04] {\n\tinline-size: 100%;\n\tblock-size: 0.25rem;\n}\n.drop-border.left[data-v-2c393c04],\n.drop-border.right[data-v-2c393c04] {\n\tinline-size: 0.25rem;\n\tblock-size: 100%;\n}\n.drop-border.top[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n}\n.drop-border.right[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-end: 0;\n}\n.drop-border.bottom[data-v-2c393c04] {\n\tinset-block-end: 0;\n\tinset-inline-start: 0;\n}\n.drop-border.left[data-v-2c393c04] {\n\tinset-block-start: 0;\n\tinset-inline-start: 0;\n}\n.dragging[data-v-2c393c04] * {\n\tpointer-events: none;\n}\n.dragging[data-v-2c393c04] [data-dropzone] {\n\tpointer-events: all;\n}\n.sidebar-actions[data-v-2c393c04] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n}\n\n/* Sidebar panel bg often matches --theme--background-normal, so default\n secondary buttons look like plain text. Force a visible chip fill. */\n.sidebar-actions[data-v-2c393c04] .sidebar-btn {\n\tdisplay: flex;\n\twidth: 100%;\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button {\n\twidth: 100%;\n\tjustify-content: center;\n\tcolor: var(--theme--foreground);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--background-normal);\n\tborder-color: var(--theme--background-normal);\n}\n\n/* Theme fill only when enabled — disabled stays gray like secondary */\n.sidebar-actions[data-v-2c393c04] .sidebar-btn-primary .button:not(:disabled) {\n\tcolor: var(--foreground-inverted, var(--theme--primary-foreground, #fff));\n\tbackground-color: var(--theme--primary);\n\tborder-color: var(--theme--primary);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn-primary .button:hover:not(:disabled) {\n\tbackground-color: var(--theme--primary-accent);\n\tborder-color: var(--theme--primary-accent);\n}\n.sidebar-actions[data-v-2c393c04] .sidebar-btn .button:disabled {\n\tcolor: var(--theme--foreground-subdued);\n\tbackground-color: var(--theme--background-accent);\n\tborder-color: var(--theme--background-accent);\n\topacity: 0.65;\n\tcursor: not-allowed;\n}\n.sidebar-text[data-v-2c393c04] {\n\tmargin: 0;\n\tline-height: 1.45;\n}\n.sidebar-note[data-v-2c393c04] {\n\tmargin-block-end: 12px;\n\tpadding: 10px 12px;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n\tbackground: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tborder: var(--theme--border-width) solid var(--theme--border-color-subdued);\n}\n.page-container[data-v-2c393c04] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: 0;\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-2c393c04] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-2c393c04] {\n\tmargin-bottom: 12px;\n}\n.page-intro[data-v-2c393c04] {\n\tmargin: 0 0 24px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.transforms-intro[data-v-2c393c04] {\n\tmargin: 0 var(--content-padding) 12px;\n\tfont-size: 13px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-hint[data-v-2c393c04] {\n\tmargin: 0 0 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-destination-hint[data-v-2c393c04] {\n\tmargin: 10px 0 0;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-dry-run[data-v-2c393c04] {\n\tmargin-top: 16px;\n}\n.move-dry-result[data-v-2c393c04] {\n\tmargin-top: 12px;\n\tline-height: 1.5;\n}\n.move-samples[data-v-2c393c04] {\n\tmargin: 8px 0 0;\n\tpadding-inline-start: 18px;\n\tmax-height: 180px;\n\toverflow: auto;\n\tfont-size: 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.multi-storage-notice[data-v-2c393c04] {\n\tmargin: 12px var(--content-padding, 16px) 0;\n}\n.sidebar-multi-notice[data-v-2c393c04] {\n\tmargin-block-start: 12px;\n}\n.action-delete[data-v-2c393c04] {\n\t--v-button-background-color-hover: var(--theme--danger) !important;\n\t--v-button-color-hover: var(--white, #fff) !important;\n}\n.storage-label[data-v-2c393c04] {\n\tmargin-bottom: 10px;\n\tfont-weight: 600;\n}\n",{});we("\n.storage-location-badge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-inline-size: 100%;\n\tpadding: 2px 8px;\n\toverflow: hidden;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tline-height: 1.35;\n\tcolor: var(--theme--primary-foreground, var(--white, #fff));\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpointer-events: none;\n\tbackground: var(--theme--primary);\n\tborder: none;\n\tborder-radius: var(--theme--border-radius);\n}\n.layout-cards .header .storage-location-badge {\n\tposition: absolute;\n\tinset-block-end: 8px;\n\tinset-inline-start: 8px;\n\tz-index: 2;\n\tmax-inline-size: calc(100% - 16px);\n\tbox-shadow: 0 1px 3px rgb(38 50 56 / 0.2);\n}\n",{});var Vc=xe(Bc,[["__scopeId","data-v-2c393c04"]]),zc=l({__name:"storage-view",setup(e){const t=X(),n=i(()=>String(t.params.location||"")),a=i(()=>{const e=t.params.storagePath;return Ie(Array.isArray(e)?e.map(String).join("/"):String(e||""))});return(e,t)=>(c(),d(Vc,{mode:"storage",storage:n.value,"storage-path":a.value},null,8,["storage","storage-path"]))}}),Gc=l({__name:"folders-view",setup(e){const t=X(),n=i(()=>{const e=t.params.folderId;return e?String(e):null});return(e,t)=>(c(),d(Vc,{mode:"folders",folder:n.value||void 0},null,8,["folder"]))}});function Kc(){const n=e(),{useUserStore:a,useSettingsStore:r}=t(),i=a(),l=r(),s=o(!1),c=o(!1),d=o({locations:{}});let u=null;return{loading:s,cleaning:c,settings:d,ensureLoaded:async function(e=!1){return u&&!e||(u=(async()=>{s.value=!0;try{const t=await n.get("/storage-manager/settings");d.value=(e=t.data?.data??{locations:{}},st({locations:{},...e}))}finally{s.value=!1}var e})()),u},exportStorageManagerConfig:function(){const e={...d.value,storage_manager:d.value,exported_at:(new Date).toISOString(),extension:"directus-extension-storage-manager"},t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),a=document.createElement("a"),r=(new Date).toISOString().slice(0,19).replace(/[:T]/g,"-");a.href=n,a.download=`storage-manager-${r}.json`,a.click(),URL.revokeObjectURL(n)},importStorageManagerConfig:async function(e){if(!Y(i.currentUser))throw new Error("Admin access required");const t=st(e);d.value=t,await n.patch("/storage-manager/settings",{locations:t.locations});try{await(l.hydrate?.())}catch{}u=null},cleanupExtensionData:async function(){if(!Y(i.currentUser))throw new Error("Admin access required");c.value=!0;let e=!1,t=!1;try{try{await n.patch("/settings",{[Ze]:null}),e=!0}catch(e){const t=e?.response?.status,n=String(e?.response?.data?.errors?.[0]?.message||e?.message||"");if(400!==t&&403!==t&&!/unknown|does not exist|forbidden/i.test(n))throw e}try{await n.delete(`/fields/directus_settings/${Ze}`),t=!0}catch(e){const n=e?.response?.status;if(404!==n)throw e;t=!0}d.value={locations:{}},u=null;try{await(l.hydrate?.())}catch{}return{clearedValue:e,deletedField:t}}finally{c.value=!1}}}}const Hc={class:"actions"},Xc={key:0,class:"result"},qc={class:"actions"},Wc={key:1,class:"result"},Yc={key:2,class:"result"},Jc={key:3,class:"result"};var Qc=l({__name:"settings-view",setup(t){const n=Qe(),a=e(),r=i(()=>"/admin/settings/marketplace/extension/88a7639e-db2a-4ade-a97f-94d2cc3836e7"),{loading:l,cleaning:v,ensureLoaded:y,cleanupExtensionData:w,exportStorageManagerConfig:S,importStorageManagerConfig:k}=Kc(),E=o(!1),A=o(null),C=o(null),I=o(!1),R=o(null),N=o(null),T=o(!1),j=o(null),D=i(()=>j.value?j.value.error||j.value.has_update?"warning":"success":"info");function M(){R.value=null,S()}function L(){R.value=null,N.value?.click()}async function F(e){const t=e.target,n=t.files?.[0];if(t.value="",n){I.value=!0,R.value=null;try{const e=await n.text(),t=JSON.parse(e);await k(t),R.value={type:"success",text:"Config imported and saved to settings."}}catch(e){R.value={type:"danger",text:e?.response?.data?.errors?.[0]?.message||e?.message||"Import failed"}}finally{I.value=!1}}}async function P(){A.value=null,C.value=null,R.value=null;try{C.value=await w(),E.value=!1}catch(e){A.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Cleanup failed"}}return b(()=>{y()}),(e,t)=>{const o=s("v-breadcrumb"),i=s("sidebar-detail"),y=s("v-icon"),b=s("v-divider"),w=s("v-button"),S=s("v-notice"),k=s("v-card-title"),U=s("v-card-text"),B=s("v-card-actions"),V=s("v-card"),z=s("v-dialog"),G=s("private-view");return c(),d(G,{title:"Settings",icon:"settings"},{headline:u(()=>[f(o,{items:[{name:"Storage Manager",to:"/storage-manager"}]})]),navigation:u(()=>[f(Ue)]),sidebar:u(()=>[f(i,{id:"about",icon:"info",title:"About"},{default:u(()=>[...t[5]||(t[5]=[x("p",{class:"sidebar-text"}," Export or import this extension’s JSON config, or remove the dedicated settings field before uninstalling. ",-1)])]),_:1})]),default:u(()=>[x("div",{class:$(O(n))},[f(b,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"system_update"})]),default:u(()=>[t[6]||(t[6]=h(" Extension Updates ",-1))]),_:1}),t[18]||(t[18]=x("p",{class:"explain"}," Check npm for the latest published version and compare it with the installed extension version. ",-1)),x("div",Hc,[f(w,{secondary:"",loading:T.value,onClick:t[0]||(t[0]=e=>async function(e){T.value=!0;try{const t=await a.get("/storage-manager/update-check",{params:{force:e?"1":void 0}});j.value=t.data?.data||null}catch(e){j.value={current_version:"unknown",latest_version:null,has_update:!1,checked_at:(new Date).toISOString(),error:e?.response?.data?.errors?.[0]?.message||e?.message||"Update check failed",links:{npm:"https://www.npmjs.com/package/directus-extension-storage-manager",github:"https://github.com/domdus/directus-extension-storage-manager",marketplace:r.value}}}finally{T.value=!1}}(!0))},{default:u(()=>[...t[7]||(t[7]=[h("Check now",-1)])]),_:1},8,["loading"]),j.value?.has_update&&r.value?(c(),d(w,{key:0,secondary:"",to:r.value},{default:u(()=>[...t[8]||(t[8]=[h(" Marketplace ",-1)])]),_:1},8,["to"])):_("v-if",!0)]),j.value?(c(),p("div",Xc,[f(S,{type:D.value},{default:u(()=>[t[10]||(t[10]=h(" Current: ",-1)),x("strong",null,g(j.value.current_version),1),j.value.latest_version?(c(),p(m,{key:0},[t[9]||(t[9]=h(" · Latest: ",-1)),x("strong",null,g(j.value.latest_version),1)],64)):_("v-if",!0),j.value.error?(c(),p(m,{key:1},[h(" · "+g(j.value.error),1)],64)):j.value.has_update?(c(),p(m,{key:2},[h(" · Update available")],64)):(c(),p(m,{key:3},[h(" · Up to date")],64))]),_:1},8,["type"])])):_("v-if",!0),f(b,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"import_export"})]),default:u(()=>[t[11]||(t[11]=h(" Export / Import ",-1))]),_:1}),t[19]||(t[19]=x("p",{class:"explain"},[h(" Back up or restore Mirror Directus Folders settings as JSON, or remove the dedicated "),x("code",null,"storage_manager"),h(" settings field before uninstalling. Per-location rules are stored in "),x("code",null,"directus_settings.storage_manager"),h(" only — other project settings are left untouched. ")],-1)),x("div",qc,[f(w,{secondary:"",disabled:O(l)||O(v),onClick:M},{default:u(()=>[...t[12]||(t[12]=[h("Export JSON",-1)])]),_:1},8,["disabled"]),f(w,{secondary:"",disabled:O(l)||O(v)||I.value,loading:I.value,onClick:L},{default:u(()=>[...t[13]||(t[13]=[h(" Import JSON ",-1)])]),_:1},8,["disabled","loading"]),x("input",{ref_key:"fileInput",ref:N,type:"file",accept:"application/json,.json",class:"file-input",onChange:F},null,544)]),R.value?(c(),p("div",Wc,[f(S,{type:R.value.type},{default:u(()=>[h(g(R.value.text),1)]),_:1},8,["type"])])):_("v-if",!0),f(b,{class:"section-divider add-margin-top",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(y,{name:"delete"})]),default:u(()=>[t[14]||(t[14]=h(" Remove extension data ",-1))]),_:1}),t[20]||(t[20]=x("p",{class:"explain"},[h(" Storage folder and sync settings live in a dedicated JSON field "),x("code",null,"directus_settings.storage_manager"),h(". Cleanup removes only that field and its value. If the extension stays installed, the next Directus restart may recreate an empty "),x("code",null,"storage_manager"),h(" field. ")],-1)),f(S,{type:"warning",class:"notice"},{default:u(()=>[...t[15]||(t[15]=[h(" Deleting extension data cannot be undone. Export first if you might need the config again. ",-1)])]),_:1}),C.value?(c(),p("div",Yc,[f(S,{type:"success"},{default:u(()=>[t[16]||(t[16]=h(" Cleanup finished. ",-1)),C.value.clearedValue?(c(),p(m,{key:0},[h(" Value cleared.")],64)):_("v-if",!0),C.value.deletedField?(c(),p(m,{key:1},[h(" Field removed.")],64)):_("v-if",!0)]),_:1})])):_("v-if",!0),A.value?(c(),p("div",Jc,[f(S,{type:"danger"},{default:u(()=>[h(g(A.value),1)]),_:1})])):_("v-if",!0),f(w,{kind:"danger",loading:O(v),disabled:O(v),onClick:t[1]||(t[1]=e=>E.value=!0)},{default:u(()=>[...t[17]||(t[17]=[h(" Delete storage_manager data ",-1)])]),_:1},8,["loading","disabled"])],2),f(z,{modelValue:E.value,"onUpdate:modelValue":t[3]||(t[3]=e=>E.value=e),onEsc:t[4]||(t[4]=e=>E.value=!1)},{default:u(()=>[f(V,null,{default:u(()=>[f(k,null,{default:u(()=>[...t[21]||(t[21]=[h("Delete storage_manager?",-1)])]),_:1}),f(U,null,{default:u(()=>[...t[22]||(t[22]=[h(" This removes only ",-1),x("code",null,"directus_settings.storage_manager",-1),h(" (the extension’s own JSON field). All other project settings stay as they are. ",-1)])]),_:1}),f(B,null,{default:u(()=>[f(w,{secondary:"",onClick:t[2]||(t[2]=e=>E.value=!1)},{default:u(()=>[...t[23]||(t[23]=[h("Cancel",-1)])]),_:1}),f(w,{kind:"danger",loading:O(v),onClick:P},{default:u(()=>[...t[24]||(t[24]=[h("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}}});we("\n.page-container[data-v-e3d57b64] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: var(--content-padding-bottom);\n\tmax-inline-size: 67.5rem;\n}\n.page-container--flush-top[data-v-e3d57b64] {\n\tpadding-block-start: 0;\n}\n.section-divider[data-v-e3d57b64] {\n\tmargin-bottom: 12px;\n}\n.section-divider.add-margin-top[data-v-e3d57b64] {\n\tmargin-top: 40px;\n}\n.explain[data-v-e3d57b64],\n.sidebar-text[data-v-e3d57b64] {\n\tmargin: 0 0 16px;\n\tline-height: 1.55;\n\tcolor: var(--theme--foreground);\n}\n.explain code[data-v-e3d57b64],\n.sidebar-text code[data-v-e3d57b64],\n.v-card-text code[data-v-e3d57b64] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.actions[data-v-e3d57b64] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tmargin-bottom: 16px;\n}\n.file-input[data-v-e3d57b64] {\n\tdisplay: none;\n}\n.notice[data-v-e3d57b64],\n.result[data-v-e3d57b64] {\n\tmargin-bottom: 16px;\n}\n",{});var Zc=xe(Qc,[["__scopeId","data-v-e3d57b64"]]),ed=l({name:"DirectusFolderPickerItem",__name:"directus-folder-picker-item",props:{folder:{},currentFolder:{},clickHandler:{type:Function}},setup:e=>(t,n)=>{const a=s("v-icon"),r=s("v-list-item-icon"),o=s("v-text-overflow"),i=s("v-list-item-content"),l=s("v-list-item"),h=s("directus-folder-picker-item",!0),g=s("v-list-group");return e.folder.children&&0!==e.folder.children.length?(c(),d(g,{key:1,clickable:"",scope:"directus-folder-picker",value:e.folder.id,active:e.currentFolder===e.folder.id,"arrow-placement":"after","disable-groupable-parent":"",onClick:n[1]||(n[1]=t=>e.clickHandler(e.folder.id))},{activator:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),default:u(()=>[(c(!0),p(m,null,v(e.folder.children,t=>(c(),d(h,{key:t.id,folder:t,"current-folder":e.currentFolder,"click-handler":e.clickHandler},null,8,["folder","current-folder","click-handler"]))),128))]),_:1},8,["value","active"])):(c(),d(l,{key:0,clickable:"",active:e.currentFolder===e.folder.id,onClick:n[0]||(n[0]=t=>e.clickHandler(e.folder.id))},{default:u(()=>[f(r,null,{default:u(()=>[f(a,{name:"folder",outline:""})]),_:1}),f(i,null,{default:u(()=>[f(o,{text:e.folder.name},null,8,["text"])]),_:1})]),_:1},8,["active"]))}});const td={key:1,class:"folder-picker"},nd={key:0,class:"empty"};var ad=l({__name:"directus-folder-picker",props:{modelValue:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,a=t,{nestedFolders:r,folders:o,loading:l,fetchFolders:g,openFolders:w}=te(),x=i(()=>{const e=n.modelValue;if(!e||!o.value?.length)return[];const t=new Map(o.value.map(e=>[e.id,e])),a=[];let r=t.get(e);for(;r?.parent;)a.unshift(r.parent),r=t.get(r.parent);return a});function S(e){a("update:modelValue",e)}return y(x,e=>{const t=new Set(w.value);for(const n of e)t.add(n);w.value=Array.from(t)},{immediate:!0}),b(()=>{g()}),(t,n)=>{const a=s("v-skeleton-loader"),o=s("v-icon"),i=s("v-list-item-icon"),g=s("v-list-item-content"),y=s("v-list-item"),b=s("v-item-group"),x=s("v-list");return O(l)&&!O(r)?.length?(c(),d(a,{key:0})):(c(),p("div",td,[f(x,null,{default:u(()=>[f(b,{modelValue:O(w),"onUpdate:modelValue":n[1]||(n[1]=e=>A(w)?w.value=e:null),scope:"directus-folder-picker",multiple:""},{default:u(()=>[f(y,{clickable:"",active:null===e.modelValue,onClick:n[0]||(n[0]=e=>S(null))},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"folder_open"})]),_:1}),f(g,null,{default:u(()=>[...n[2]||(n[2]=[h("Root (no folder)",-1)])]),_:1})]),_:1},8,["active"]),(c(!0),p(m,null,v(O(r)||[],t=>(c(),d(ed,{key:t.id,folder:t,"current-folder":e.modelValue,"click-handler":S},null,8,["folder","current-folder"]))),128))]),_:1},8,["modelValue"])]),_:1}),(O(r)||[]).length?_("v-if",!0):(c(),p("p",nd,"No Directus folders yet."))]))}}});we("\n.folder-picker[data-v-b47c6989] {\n\t--v-list-item-background-color-hover: var(--theme--background-accent);\n\t--v-list-item-background-color-active: var(--theme--background-accent);\n\n\tpadding: 0.6875rem;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n\tmax-block-size: 17.5rem;\n\toverflow: auto;\n}\n.empty[data-v-b47c6989] {\n\tmargin: 8px 12px 4px;\n\tfont-size: 13px;\n\tcolor: var(--theme--foreground-subdued);\n}\n",{});var rd=xe(ad,[["__scopeId","data-v-b47c6989"]]);const od=o(!1),id=o(!1),ld=o(null),sd=o(null),cd=o(0),dd=o("/storage-manager/unreferenced"),ud=I({phase:"idle",message:"",current:0,total:0,used_count:0,unreferenced_count:0,elapsed_ms:0});let fd=null,pd=null,md={},vd=null,hd=null,gd=0,yd=null;function bd(){return yd}function _d(e){const t={"Content-Type":"application/json",Accept:"text/event-stream"},n=e?.defaults?.headers,a=n?.common?.Authorization||n?.Authorization||n?.common?.authorization||n?.authorization;return"string"==typeof a&&a&&(t.Authorization=a),t}function wd(){return ud.total>0?Math.min(100,Math.round(ud.current/ud.total*100)):0}function xd(){return"files"===ud.phase&&ud.total>0?`Scanning files ${ud.current.toLocaleString()} / ${ud.total.toLocaleString()}`:"relations"===ud.phase&&ud.total>0?`Checking relations ${ud.current}/${ud.total}`:"text"===ud.phase&&ud.total>0?`Scanning text fields ${ud.current}/${ud.total}`:ud.message||"Scanning unreferenced files…"}function Sd(){pd=null,id.value=!1,cd.value+=1,hd?.()}function kd(e,t,n){const a=bd();a&&(pd&&(a.remove(pd),pd=null),a.add({title:t,text:n,type:"warning"===e?"warning":e,icon:"success"===e?"check_circle":"warning"===e?"cancel":"error",persist:!1,closeable:!0}))}function Ed(e){"heartbeat"!==e.type?("start"===e.type?(ud.phase="relations",ud.message=String(e.message||"Starting scan…"),ud.elapsed_ms=Date.now()-gd):"progress"===e.type&&(ud.phase=e.phase||ud.phase,ud.message=String(e.message||"Scanning…"),ud.current=Number(e.current)||0,ud.total=Number(e.total)||0,null!=e.used_count&&(ud.used_count=Number(e.used_count)||0),null!=e.unreferenced_count&&(ud.unreferenced_count=Number(e.unreferenced_count)||0),ud.elapsed_ms=Date.now()-gd),md.onProgress?.({...ud}),id.value&&function(){if(!pd)return;const e=bd();if(!e)return;const t=ud.total>0?wd():void 0;e.update(pd,{title:xd(),text:ud.message?`${ud.message} · click for details`:"Click for details — scan continues in the background.",loading:0===ud.total,progress:t,type:"info",persist:!0,closeable:!0,alwaysShowText:!0,icon:"radar",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{Sd()}})}()):ud.elapsed_ms=Date.now()-gd}function Ad(){const n=e();if(!yd)try{const{useNotificationsStore:e}=t();yd=e?.()??null}catch{yd=null}const a=i(()=>od.value);return{running:od,backgrounded:id,result:ld,errorMessage:sd,progress:ud,reopenNonce:cd,returnToPath:dd,activePayload:i(()=>vd),isBusy:a,start:async function(e,t){if(od.value)throw new Error("A scan is already running");vd=e,od.value=!0,id.value=!1,ld.value=null,sd.value=null,fd=new AbortController,gd=Date.now(),t?.listener&&(md=t.listener),ud.phase="idle",ud.message="Starting scan…",ud.current=0,ud.total=0,ud.used_count=0,ud.unreferenced_count=0,ud.elapsed_ms=0;try{const t=await fetch(function(e){const t=String(e?.defaults?.baseURL||"").replace(/\/$/,""),n="/storage-manager/unreferenced/scan/stream";return t?`${t}${n}`:n}(n),{method:"POST",headers:_d(n),body:JSON.stringify({min_age_minutes:e.min_age_minutes,scan_text_fields:e.scan_text_fields,storage:e.storage,limit:e.limit??1,offset:e.offset??0}),credentials:"same-origin",signal:fd.signal}),a=await async function(e,t){if(!e.ok){let t=`Scan failed (${e.status})`;try{const n=await e.json();t=n?.errors?.[0]?.message||t}catch{}throw new Error(t)}if(!e.body)throw new Error("No response body for scan stream");const n=e.body.getReader(),a=new TextDecoder;let r="",o=null;for(;;){const{done:e,value:i}=await n.read();if(e)break;r+=a.decode(i,{stream:!0});const l=r.split("\n\n");r=l.pop()||"";for(const e of l)for(const n of e.split("\n")){const e=n.trim();if(!e.startsWith("data:"))continue;const a=e.slice(5).trim();if(!a)continue;let r;try{r=JSON.parse(a)}catch{continue}if("error"===r.type)throw new Error(r.message||"Scan failed");"done"===r.type?(o=r.meta,ud.phase="done",ud.message="Scan complete",ud.elapsed_ms=Number(o?.elapsed_ms)||Date.now()-gd,o&&(ud.unreferenced_count=o.unreferenced_count,ud.used_count=o.used_count,ud.current=o.total_files,ud.total=o.total_files)):t(r)}}if(!o)throw new Error("Scan stream ended without a result");return o}(t,Ed);return ld.value=a,id.value&&kd("success",`Scan complete · ${a.unreferenced_count.toLocaleString()} unreferenced`,`${a.total_files.toLocaleString()} files checked`),md.onDone?.(a),a}catch(e){if("AbortError"===e?.name)return ud.phase="idle",ud.message="Scan cancelled",id.value&&kd("warning","Scan cancelled",ud.message),md.onCancel?.(),null;const t=e?.message||"Scan failed";throw sd.value=t,ud.phase="error",ud.message=t,id.value&&kd("error","Scan failed",t),md.onError?.(e instanceof Error?e:new Error(t)),e}finally{if(od.value=!1,id.value=!1,fd=null,vd=null,pd){const e=bd();e?.remove(pd),pd=null}}},runInBackground:function(e){if(!od.value||id.value)return!1;id.value=!0,md={},e?.returnTo&&(dd.value=e.returnTo),hd=e?.navigate||null;const t=bd();return t&&!pd&&(pd=t.add({title:xd(),text:"Click for details — scan continues in the background.",type:"info",persist:!0,closeable:!0,alwaysShowText:!0,loading:0===ud.total,progress:0===ud.total?void 0:wd(),icon:"radar",dismissText:"Details",dismissIcon:"open_in_new",dismissAction:()=>{Sd()}})),!0},attachForeground:function(e){if(id.value=!1,e&&(md=e),pd){const e=bd();e?.remove(pd),pd=null}},cancel:function(){fd?.abort()},clearLastResult:function(){ld.value=null,sd.value=null}}}const Od={class:"drawer-body"},$d={key:2,class:"progress-panel"},Cd={class:"phase-line"},Id={class:"phase"},Rd={class:"elapsed"},Nd=["title"],Td={class:"bar-wrap"},jd={class:"bar-track"},Dd={class:"bar-meta"},Md={key:0},Ld={key:1},Fd={key:2},Pd={class:"counts"},Ud={key:3,class:"background-actions"},Bd={key:4,class:"result"},Vd={class:"result-actions"},zd={key:5,class:"result"},Gd={class:"result-actions"};var Kd=l({__name:"unreferenced-scan-drawer",props:{modelValue:{type:Boolean}},emits:["update:modelValue","done"],setup(e,{emit:t}){const n=e,a=t,r=X(),l=H(),{running:m,backgrounded:v,progress:b,result:w,errorMessage:S,reopenNonce:k,returnToPath:E,runInBackground:A,attachForeground:I,cancel:R,clearLastResult:N}=Ad(),T=o(null),j=o(null),D=o(!1),M=i(()=>m.value&&!D.value&&!v.value&&!n.modelValue),L=i(()=>j.value?j.value:T.value?"Scan complete":b.message),F=i(()=>T.value?T.value.elapsed_ms:b.elapsed_ms),P=i(()=>{switch(b.phase){case"relations":return"Relations";case"text":return"Text fields";case"files":return"File Library";case"finalize":return"Finalizing";case"done":return"Done";case"error":return"Error";default:return"Scan"}}),U=i(()=>b.total>0&&"idle"!==b.phase),B=i(()=>b.total<=0?0:Math.max(0,Math.min(100,b.current/b.total*100))),V=i(()=>Math.round(B.value));function z(e){e?a("update:modelValue",!0):W()}function G(){A({returnTo:String(r.fullPath||"/storage-manager/unreferenced"),navigate:()=>{const e=E.value||"/storage-manager/unreferenced";r.fullPath!==e&&l.push(e),a("update:modelValue",!0)}}),D.value=!1,a("update:modelValue",!1)}function K(){R()}function q(){T.value&&a("done",T.value),N(),T.value=null,j.value=null,a("update:modelValue",!1)}function W(){m.value&&!v.value&&D.value?G():a("update:modelValue",!1)}return y(()=>n.modelValue,e=>{e?(D.value=!0,I({onDone:e=>{T.value=e,j.value=null},onError:e=>{j.value=e.message,T.value=null},onCancel:()=>{j.value="Scan cancelled",T.value=null}}),w.value&&!m.value&&(T.value=w.value),S.value&&!m.value&&(j.value=S.value)):D.value=!1}),y(k,()=>{a("update:modelValue",!0)}),y(w,e=>{e&&n.modelValue&&!v.value&&(T.value=e)}),(t,n)=>{const a=s("v-notice"),r=s("v-button"),o=s("v-drawer");return c(),d(o,{"model-value":e.modelValue,title:"Unreferenced Scan",icon:"radar",persistent:"","onUpdate:modelValue":z,onCancel:W},{default:u(()=>[x("div",Od,[n[8]||(n[8]=x("p",{class:"intro"}," Scanning the File Library for entries with no remaining references. ",-1)),O(m)&&O(v)?(c(),d(a,{key:0,type:"info"},{default:u(()=>[...n[0]||(n[0]=[h(" Scan continues in the background. You can close this drawer and navigate elsewhere in Studio. ",-1)])]),_:1})):M.value?(c(),d(a,{key:1,type:"warning"},{default:u(()=>[...n[1]||(n[1]=[h(" Another scan is already running in the background. Wait for it to finish or cancel it from the progress toast. ",-1)])]),_:1})):_("v-if",!0),O(m)&&!O(v)||T.value||j.value?(c(),p("div",$d,[x("div",Cd,[x("span",Id,g(P.value),1),x("span",Rd,g(O(ze)(F.value)),1)]),x("p",{class:"message",title:L.value},g(L.value||"Preparing…"),9,Nd),x("div",Td,[x("div",jd,[x("div",{class:$(["bar-fill",{indeterminate:!U.value}]),style:C(U.value?{width:`${B.value}%`}:void 0)},null,6)]),x("div",Dd,[U.value?(c(),p("strong",Md,g(V.value)+"%",1)):(c(),p("strong",Ld,"…")),O(b).total>0?(c(),p("span",Fd,g(O(b).current.toLocaleString())+" / "+g(O(b).total.toLocaleString()),1)):_("v-if",!0)])]),x("div",Pd,[x("span",null,"Used ≈ "+g(O(b).used_count.toLocaleString()),1),x("span",null,"Unreferenced "+g(O(b).unreferenced_count.toLocaleString()),1)])])):_("v-if",!0),O(m)&&!O(v)?(c(),p("div",Ud,[f(r,{secondary:"",class:"background-btn",onClick:G},{default:u(()=>[...n[2]||(n[2]=[h(" Run in Background ",-1)])]),_:1}),f(r,{kind:"danger",secondary:"",class:"background-btn",onClick:K},{default:u(()=>[...n[3]||(n[3]=[h(" Cancel Scan ",-1)])]),_:1}),n[4]||(n[4]=x("p",{class:"note"}," Closing this drawer also runs in the background. Click the progress toast anytime for details. ",-1))])):_("v-if",!0),T.value?(c(),p("div",Bd,[f(a,{type:"success",icon:"check_circle"},{default:u(()=>[n[5]||(n[5]=h(" Scan complete — ",-1)),x("strong",null,g(T.value.unreferenced_count.toLocaleString()),1),h(" unreferenced of "+g(T.value.total_files.toLocaleString())+" files ("+g(O(ze)(T.value.elapsed_ms))+"). ",1)]),_:1}),x("div",Vd,[f(r,{onClick:q},{default:u(()=>[...n[6]||(n[6]=[h("View Results",-1)])]),_:1})])])):j.value?(c(),p("div",zd,[f(a,{type:"danger",icon:"error"},{default:u(()=>[h(g(j.value),1)]),_:1}),x("div",Gd,[f(r,{secondary:"",onClick:W},{default:u(()=>[...n[7]||(n[7]=[h("Close",-1)])]),_:1})])])):_("v-if",!0)])]),_:1},8,["model-value"])}}});we("\n.drawer-body[data-v-1ee17a89] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: 2rem;\n}\n.intro[data-v-1ee17a89] {\n\tmargin: 0 0 1rem;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground);\n}\n.progress-panel[data-v-1ee17a89] {\n\tmargin-block-start: 1rem;\n\tpadding: 1rem;\n\tborder: 1px solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background-subdued);\n}\n.phase-line[data-v-1ee17a89] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: baseline;\n\tgap: 0.75rem;\n\tmargin-block-end: 0.5rem;\n}\n.phase[data-v-1ee17a89] {\n\tfont-size: 0.75rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n}\n.elapsed[data-v-1ee17a89] {\n\tfont-variant-numeric: tabular-nums;\n\tfont-size: 0.85rem;\n\tcolor: var(--theme--foreground-subdued);\n}\n.message[data-v-1ee17a89] {\n\tmargin: 0 0 0.85rem;\n\tfont-size: 0.95rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground);\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n.bar-wrap[data-v-1ee17a89] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.35rem;\n}\n.bar-track[data-v-1ee17a89] {\n\theight: 0.5rem;\n\toverflow: hidden;\n\tborder-radius: 999px;\n\tbackground: var(--theme--background-normal);\n}\n.bar-fill[data-v-1ee17a89] {\n\theight: 100%;\n\tborder-radius: 999px;\n\tbackground: var(--theme--primary);\n\ttransition: width 0.2s ease;\n}\n.bar-fill.indeterminate[data-v-1ee17a89] {\n\twidth: 35%;\n\tanimation: scan-indeterminate-1ee17a89 1.2s ease-in-out infinite;\n}\n@keyframes scan-indeterminate-1ee17a89 {\n0% {\n\t\ttransform: translateX(-120%);\n}\n100% {\n\t\ttransform: translateX(320%);\n}\n}\n.bar-meta[data-v-1ee17a89] {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 0.75rem;\n\tfont-size: 0.8rem;\n\tcolor: var(--theme--foreground-subdued);\n\tfont-variant-numeric: tabular-nums;\n}\n.counts[data-v-1ee17a89] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.75rem 1.25rem;\n\tmargin-block-start: 0.85rem;\n\tfont-size: 0.8rem;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground-subdued);\n}\n.background-actions[data-v-1ee17a89] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.5rem;\n\tmargin-block-start: 1.25rem;\n}\n.background-btn[data-v-1ee17a89] {\n\tflex: 0 0 auto;\n}\n.note[data-v-1ee17a89] {\n\tflex: 1 1 100%;\n\tmargin: 0.35rem 0 0;\n\tfont-size: 0.8rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.result[data-v-1ee17a89] {\n\tmargin-block-start: 1.25rem;\n}\n.result-actions[data-v-1ee17a89] {\n\tdisplay: flex;\n\tgap: 0.5rem;\n\tmargin-block-start: 1rem;\n}\n",{});var Hd=xe(Kd,[["__scopeId","data-v-1ee17a89"]]);const Xd="storage-location-badge";function qd(e){const t=document.createElement("span");return t.className=Xd,t.textContent=e,t}function Wd(){document.querySelectorAll(`.layout-cards .header .${Xd}`).forEach(e=>{e.remove()}),document.querySelectorAll(`.layout-tabular .${Xd}`).forEach(e=>{const t=e.parentElement,n=e.textContent||"";e.remove(),t&&!t.querySelector(`.${Xd}`)&&t.append(n)})}function Yd(t){const n=e();async function a(e){if(Wd(),!t.enabled.value)return;if(await z(),"tabular"===t.layout.value)return void function(){const e=document.querySelector(".layout-tabular thead tr");if(!e)return;const t=Array.from(e.children);let n=t.findIndex(e=>String(e.className||"").split(/\s+/).includes("storage")||"storage"===e.getAttribute("data-field"));n<0&&(n=t.findIndex(e=>"storage"===e.textContent?.trim().toLowerCase())),n<0||document.querySelectorAll(".layout-tabular tbody tr").forEach(e=>{const t=e.children[n];if(!t||t.querySelector(`.${Xd}`))return;const a=String(t.textContent||"").trim();a&&(t.textContent="",t.appendChild(qd(a)))})}();if("cards"!==t.layout.value||!e?.length)return;const a=document.querySelectorAll(".layout-cards .grid .card:not(.folder-card)");if(!a.length)return;const r="id",o=e.some(e=>null!=e[r]&&null==e.storage);let i={};if(o){const t=e.map(e=>e[r]).filter(Boolean);if(!t.length)return;try{const e=await n.get("/files",{params:{filter:JSON.stringify({id:{_in:t}}),fields:["id","storage"],limit:t.length}});for(const t of e.data?.data||[])i[String(t.id)]=String(t.storage||"")}catch{return}}a.forEach((t,n)=>{const a=e[n];if(!a)return;const o=String(a.storage??i[String(a[r])]??"").trim();if(!o)return;const l=t.querySelector(".header");l&&l.appendChild(qd(o))})}function r(e){a(e).catch(()=>{})}return y(()=>[t.enabled.value,t.layout.value,t.layoutQuery.value.page,t.layoutQuery.value.limit,JSON.stringify(t.layoutQuery.value.sort??[]),t.layoutRef.value?.state?.loading,t.layoutRef.value?.state?.items],()=>{t.layoutRef.value?.state?.loading||r(t.layoutRef.value?.state?.items)},{deep:!0,flush:"post"}),{clearStorageLocationBadges:Wd,scheduleStorageBadges:r}}const Jd={class:"move-hint"},Qd={class:"move-hint"},Zd={key:0,class:"move-destination-hint"},eu={class:"move-dry-run"},tu={key:0,class:"move-dry-result"},nu={key:0,class:"move-hint"},au={class:"side-field"},ru={class:"side-field"},ou={class:"scan-bar","aria-label":"Scan Options"},iu={class:"scan-bar-fields"},lu={class:"scan-bar-field scan-bar-field--age"},su={for:"scan-min-age",class:"scan-bar-label-row"},cu={class:"scan-bar-field scan-bar-field--storage"},du={class:"scan-bar-field scan-bar-field--check"},uu={class:"scan-bar-label-row"},fu={class:"scan-bar-radios",role:"radiogroup","aria-label":"Scan WYSIWYG / JSON Fields"},pu={class:"scan-bar-actions"},mu={key:0,class:"stats-grid"},vu={class:"stat"},hu={class:"stat-value"},gu={class:"stat-label"},yu={class:"stat"},bu={class:"stat-value"},_u={class:"stat-label"},wu={class:"stat"},xu={class:"stat-value"},Su={class:"stat-label"},ku={class:"stat"},Eu={class:"stat-value"},Au={class:"stat-label"},Ou={class:"stat"},$u={class:"stat-value"},Cu={key:1,class:"notice"},Iu={key:2,class:"error"},Ru={key:0,class:"loading-block"};var Nu=l({__name:"unreferenced-view",setup(t){const n=e(),a=X(),r=H(),l=Qe(),{storages:v,loadStorages:w}=ie(),{start:S}=_l(),{running:k,result:E,reopenNonce:C,start:T,clearLastResult:j}=Ad(),D=o(),M=o([]),L=o(!1),G=o(!1),K=o(!1),q=o(""),W=o(!1),Y=o(null),J=o([]),Q=i(()=>{const e=a.query.file;return"string"==typeof e&&e.length>0?e:null}),Z=o(!1),ee=o(null),te=o(!1),ne=o(!1),ae=o({location:"",path:""}),re=o(!1),oe=o(!1),le=o(null),se=o(!1),ce=i(()=>k.value||G.value||te.value||re.value),de=i(()=>{const e=ae.value.location;if(!e)return"";return`Files will be moved to ${ae.value.path?`${e}/${ae.value.path}/`:`${e}/`}`}),ue=I({...rt}),fe=o(!1),pe=o(null),me=o(null),ve=i(()=>v.value.map(e=>({text:e.location,value:e.location}))),he=[{text:"Keep file in library",value:"keep"},{text:"Ask (deselect vs delete if unused)",value:"ask"},{text:"Delete file if unreferenced",value:"delete_if_unreferenced"}],ge=[{text:"Keep file in library",value:"keep"},{text:"Delete file if unreferenced",value:"delete_if_unreferenced"}],{layout:ye,layoutOptions:be,layoutQuery:_e,filter:we,search:xe,resetPreset:Se,resetPage:ke}=hc(),{layoutWrapper:Ee}=Hi(ye),Ae=i(()=>K.value),Oe=["title","type","filesize","modified_on"],$e=i({get(){const e={..._e.value};if(!Ae.value||"tabular"!==ye.value)return e;const t=[...e.fields?.length?e.fields:Oe];return t.includes("storage")||t.push("storage"),{...e,fields:t}},set(e){_e.value=e}});Yd({enabled:Ae,layout:ye,layoutRef:D,layoutQuery:_e});const Ce=i(()=>({id:{_in:J.value.length?J.value:["00000000-0000-4000-8000-000000000000"]}})),Ie=i(()=>Ec(we.value,Ce.value));function Re(){we.value=null,xe.value=null,ke()}function Ne(e){const t={...a.query,file:String(e)},n=new URLSearchParams;for(const[e,a]of Object.entries(t))if(null!=a&&""!==a)if(Array.isArray(a))for(const t of a)n.append(e,String(t));else n.set(e,String(a));const r=n.toString();return r?`${a.path}?${r}`:a.path}function Te(e){const t=e.primaryKeyField?.field||"id";return{...e,hasPrependContent:!1,getLinkForItem(e){const n=e?.[t];if(null!=n)return Ne(n)},onRowClick({item:e,event:n}){const a=e?.[t];if(null==a)return;if(M.value.length>0)return void(M.value.includes(a)?M.value=M.value.filter(e=>e!==a):M.value=M.value.concat(a));const o=Ne(a);n.ctrlKey||n.metaKey?window.open(r.resolve(o).href,"_blank"):r.push(o)}}}function je(e){e||(!function(){if(!("file"in a.query))return;const e={...a.query};delete e.file,r.replace({path:a.path,query:e})}(),De().catch(()=>{}))}async function De(){await z(),await(D.value?.state?.refresh?.())}async function Me(e){await n.patch("/storage-manager/settings",{lifecycle:{on_deselect:ue.on_deselect,on_item_delete:ue.on_item_delete,scan_min_age_minutes:Number(ue.scan_min_age_minutes)||0,scan_text_fields:Boolean(ue.scan_text_fields),...e}})}async function Le(){fe.value=!0,pe.value=null;try{await Me({on_deselect:ue.on_deselect,on_item_delete:ue.on_item_delete}),pe.value={type:"success",text:"Lifecycle defaults saved."}}catch(e){pe.value={type:"danger",text:e?.response?.data?.errors?.[0]?.message||e?.message||"Save failed"}}finally{fe.value=!1}}async function Fe(e){Y.value=e;const t=Array.isArray(e.ids)?e.ids.map(String):[];J.value=t,K.value=!0,q.value="",ke(),await De()}async function Pe(e){await Fe(e),j()}async function Ve(){if(k.value)L.value=!0;else{q.value="",M.value=[];try{await async function(){await Me({scan_min_age_minutes:Number(ue.scan_min_age_minutes)||0,scan_text_fields:Boolean(ue.scan_text_fields)})}().catch(()=>{}),L.value=!0,await T({min_age_minutes:Number(ue.scan_min_age_minutes)||0,scan_text_fields:Boolean(ue.scan_text_fields),storage:me.value?.trim()||null,limit:1,offset:0})}catch(e){q.value=e?.message||"Scan failed"}}}function ze(){M.value.length&&(W.value=!0)}async function Ge(){if(M.value.length&&!G.value){G.value=!0;try{const e=await n.post("/storage-manager/unreferenced/delete",{file_ids:M.value,scan_text_fields:Boolean(ue.scan_text_fields)}),t=new Set((e.data?.data?.results||[]).filter(e=>"deleted"===e.status).map(e=>String(e.id)));J.value=J.value.filter(e=>!t.has(e)),Y.value&&(Y.value={...Y.value,unreferenced_count:J.value.length,ids:J.value}),M.value=[],W.value=!1,await De()}catch(e){q.value=e?.response?.data?.errors?.[0]?.message||e?.message||"Delete failed",W.value=!1}finally{G.value=!1}}}async function Ke(){if(M.value.length&&!te.value){te.value=!0;try{await n.patch("/files",{keys:M.value,data:{folder:ee.value}}),Z.value=!1,M.value=[],await De()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move to folder failed")}finally{te.value=!1}}}async function He(){if(ae.value.location&&!oe.value&&M.value.length){oe.value=!0,le.value=null;try{const e=await n.post("/storage-manager/migrate/dry-run",{file_ids:M.value.map(String),target_storage:ae.value.location,target_path:ae.value.path||"",preserve_paths:!1});le.value=e.data?.data??null}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Dry run failed")}finally{oe.value=!1}}}function Xe(e){const t=Number(e)||0;t>0&&window.alert(`${t.toLocaleString()} file${1===t?"":"s"} already exist at the destination and were left in place.`)}async function qe(){const e=ae.value.location,t=ae.value.path||"";if(e&&M.value.length){re.value=!0;try{const a=M.value.map(String),r=await n.get("/files",{params:{limit:-1,fields:["id","storage"],filter:JSON.stringify({id:{_in:a}})}}),o=r.data?.data||[],i=o.filter(t=>String(t.storage)!==e).map(e=>String(e.id));if(!i.length){const r=await n.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:a,target_path:t});return Xe(r.data?.data?.skipped),ne.value=!1,M.value=[],void await De()}ne.value=!1,re.value=!1;const l=S({file_ids:i,target_storage:e,mode:"move",target_path:t},{estimatedCount:i.length});se.value=!0,await l;const s=o.filter(t=>String(t.storage)===e).map(e=>String(e.id));if(s.length){const a=await n.post(`/storage-manager/storages/${encodeURIComponent(e)}/move-files`,{file_ids:s,target_path:t});Xe(a.data?.data?.skipped)}M.value=[],await De()}catch(e){window.alert(e?.response?.data?.errors?.[0]?.message||e?.message||"Move failed")}finally{re.value=!1}}}async function We(){M.value=[],await De()}return y([we,xe],()=>{ke()}),y(C,()=>{L.value=!0}),y(E,async e=>{e&&!k.value&&(L.value||(await Fe(e),j()))}),y(Z,e=>{e&&(ee.value=null)}),y(ne,e=>{e&&(le.value=null,ae.value={location:v.value[0]?.location||"",path:""})}),y(()=>[ae.value.location,ae.value.path],()=>{le.value=null}),b(async()=>{try{await w().catch(()=>{});const e=await n.get("/storage-manager/settings"),t=e.data?.data?.lifecycle;t&&Object.assign(ue,t)}catch{}}),(e,t)=>{const n=s("v-breadcrumb"),a=s("v-card-title"),r=s("v-card-text"),o=s("v-button"),i=s("v-card-actions"),y=s("v-card"),b=s("v-dialog"),w=s("v-select"),S=s("sidebar-detail"),E=s("v-icon"),C=s("v-divider"),I=s("v-input"),T=s("v-radio"),j=s("v-progress-circular"),z=s("v-info"),H=s("drawer-item"),X=s("private-view"),J=R("tooltip");return c(),d(F(O(Ee)),{ref_key:"layoutRef",ref:D,selection:M.value,"onUpdate:selection":t[22]||(t[22]=e=>M.value=e),"layout-options":O(be),"onUpdate:layoutOptions":t[23]||(t[23]=e=>A(be)?be.value=e:null),"layout-query":$e.value,"onUpdate:layoutQuery":t[24]||(t[24]=e=>$e.value=e),filter:Ie.value,"filter-user":O(we),"filter-system":Ce.value,search:O(xe),collection:"directus_files","reset-preset":O(Se)},{default:u(({layoutState:e})=>[f(X,{title:"Unreferenced Files",icon:"link_off"},U({headline:u(()=>[f(n,{items:[{name:"Storage Manager",to:"/storage-manager"},{name:"Unreferenced Files",to:"/storage-manager/unreferenced"}]})]),navigation:u(()=>[f(Ue)]),actions:u(()=>[K.value?(c(),d(Wi,{key:0,modelValue:O(xe),"onUpdate:modelValue":t[0]||(t[0]=e=>A(xe)?xe.value=e:null),filter:O(we),"onUpdate:filter":t[1]||(t[1]=e=>A(we)?we.value=e:null),collection:"directus_files"},null,8,["modelValue","filter"])):_("v-if",!0),M.value.length?(c(),d(b,{key:1,modelValue:Z.value,"onUpdate:modelValue":t[4]||(t[4]=e=>Z.value=e),onEsc:t[5]||(t[5]=e=>Z.value=!1),onApply:Ke},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder",secondary:"",disabled:ce.value,onClick:e},null,8,["disabled","onClick"]),[[J,"Move to Directus Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[...t[25]||(t[25]=[h("Move to Directus Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[x("p",Jd," Assigns "+g(M.value.length)+" selected file(s) to a Directus File Library folder (virtual label only — storage path is unchanged). ",1),f(rd,{modelValue:ee.value,"onUpdate:modelValue":t[2]||(t[2]=e=>ee.value=e)},null,8,["modelValue"])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[3]||(t[3]=e=>Z.value=!1)},{default:u(()=>[...t[26]||(t[26]=[h("Cancel",-1)])]),_:1}),f(o,{loading:te.value,onClick:Ke},{default:u(()=>[...t[27]||(t[27]=[h("Move",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),M.value.length?(c(),d(b,{key:2,modelValue:ne.value,"onUpdate:modelValue":t[8]||(t[8]=e=>ne.value=e),onEsc:t[9]||(t[9]=e=>ne.value=!1),onApply:qe},{activator:u(({on:e})=>[N(f(Yi,{icon:"folder_move",secondary:"",disabled:ce.value,onClick:e},null,8,["disabled","onClick"]),[[J,"Move to Storage Folder",void 0,{bottom:!0}]])]),default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[...t[28]||(t[28]=[h("Move to Storage Folder",-1)])]),_:1}),f(r,null,{default:u(()=>[x("p",Qd," Moves "+g(M.value.length)+" selected file(s) onto a physical storage path. Thumbnails move with the file when possible. Cross-storage moves use migrate. ",1),f(Ms,{modelValue:ae.value,"onUpdate:modelValue":t[6]||(t[6]=e=>ae.value=e)},null,8,["modelValue"]),de.value?(c(),p("p",Zd,g(de.value),1)):_("v-if",!0),t[31]||(t[31]=x("p",{class:"move-destination-hint"}," If another registered file already owns the destination path, the incoming file is skipped and stays on the source. ",-1)),x("div",eu,[f(o,{secondary:"",loading:oe.value,disabled:!ae.value.location,onClick:He},{default:u(()=>[...t[29]||(t[29]=[h(" Dry Run ",-1)])]),_:1},8,["loading","disabled"]),le.value?(c(),p("div",tu,[x("p",null,[x("strong",null,g(le.value.total_files.toLocaleString()),1),t[30]||(t[30]=h(" files ",-1)),le.value.total_bytes?(c(),p(m,{key:0},[h(" · "+g(O(Be)(le.value.total_bytes)),1)],64)):_("v-if",!0)]),le.value.skipped?(c(),p("p",nu,g(le.value.skipped.toLocaleString())+" already at destination — skipped ",1)):_("v-if",!0)])):_("v-if",!0)])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[7]||(t[7]=e=>ne.value=!1)},{default:u(()=>[...t[32]||(t[32]=[h("Cancel",-1)])]),_:1}),f(o,{disabled:!ae.value.location,loading:re.value,onClick:qe},{default:u(()=>[...t[33]||(t[33]=[h(" Move ",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])):_("v-if",!0),M.value.length?N((c(),d(Yi,{key:3,icon:"delete",secondary:"",loading:G.value,disabled:ce.value,onClick:ze},null,8,["loading","disabled"])),[[J,"Delete selected files",void 0,{bottom:!0}]]):_("v-if",!0)]),sidebar:u(()=>[K.value?(c(),d(el,{key:0,modelValue:O(ye),"onUpdate:modelValue":t[10]||(t[10]=e=>A(ye)?ye.value=e:null)},{default:u(()=>[(c(),d(F(`layout-options-${O(ye)}`),B(V(e)),null,16))]),_:2},1032,["modelValue"])):_("v-if",!0),f(S,{id:"lifecycle",icon:"policy",title:"File Lifecycle",close:!1},{default:u(()=>[t[37]||(t[37]=x("p",{class:"sidebar-text sidebar-text--spaced"}," Defaults for File / Image / Files with Storage Interfaces. Per-field options override these. ",-1)),x("div",au,[t[34]||(t[34]=x("label",null,"Default on deselect",-1)),f(w,{modelValue:ue.on_deselect,"onUpdate:modelValue":t[11]||(t[11]=e=>ue.on_deselect=e),items:he,disabled:fe.value||O(k)},null,8,["modelValue","disabled"])]),x("div",ru,[t[35]||(t[35]=x("label",null,"Default on item delete",-1)),f(w,{modelValue:ue.on_item_delete,"onUpdate:modelValue":t[12]||(t[12]=e=>ue.on_item_delete=e),items:ge,disabled:fe.value||O(k)},null,8,["modelValue","disabled"])]),f(o,{small:"",block:"",loading:fe.value,disabled:fe.value||O(k),onClick:Le},{default:u(()=>[...t[36]||(t[36]=[h(" Save defaults ",-1)])]),_:1},8,["loading","disabled"]),pe.value?(c(),p("p",{key:0,class:$(["lifecycle-msg",pe.value.type])},g(pe.value.text),3)):_("v-if",!0)]),_:1})]),default:u(()=>{return[x("div",{class:$(O(l))},[f(C,{class:"section-divider",large:"","inline-title":!1,style:{"--v-divider-color":"var(--theme--border-color-subdued)"}},{icon:u(()=>[f(E,{name:"link_off"})]),default:u(()=>[t[38]||(t[38]=h(" Find Unreferenced Files ",-1))]),_:1}),t[49]||(t[49]=x("p",{class:"page-intro"}," Dry-run scan of the File Library. Select files to move into a Directus folder, relocate on storage, or delete (delete always re-checks references first). ",-1)),x("div",ou,[t[43]||(t[43]=x("span",{class:"scan-bar-title"},"Scan Options",-1)),x("div",iu,[x("div",lu,[x("label",su,[t[39]||(t[39]=x("span",null,"Min Age (Minutes)",-1)),N(f(E,{name:"help_outline",small:"",class:"scan-bar-info"},null,512),[[J,"Skip files uploaded within this many minutes. Avoids catching mid-upload or draft files that are not referenced yet.",void 0,{top:!0}]])]),f(I,{id:"scan-min-age",modelValue:ue.scan_min_age_minutes,"onUpdate:modelValue":t[13]||(t[13]=e=>ue.scan_min_age_minutes=e),type:"number",min:0,disabled:O(k)},null,8,["modelValue","disabled"])]),x("div",cu,[t[40]||(t[40]=x("label",{for:"scan-storage"},"Storage Filter",-1)),f(w,{id:"scan-storage",modelValue:me.value,"onUpdate:modelValue":t[14]||(t[14]=e=>me.value=e),items:ve.value,disabled:O(k),"show-deselect":"",placeholder:"All Storages"},null,8,["modelValue","items","disabled"])]),x("div",du,[x("label",uu,[t[41]||(t[41]=x("span",null,"Scan WYSIWYG / JSON Fields",-1)),N(f(E,{name:"help_outline",small:"",class:"scan-bar-info"},null,512),[[J,"Optional: also searches rich text, Markdown, JSON, and code for /assets/ links and file UUIDs. Adds significant extra scan time on large content tables — turn off for a faster relations-only pass.",void 0,{top:!0}]])]),x("div",fu,[f(T,{"model-value":ue.scan_text_fields,value:!0,label:"Yes",disabled:O(k),"onUpdate:modelValue":t[15]||(t[15]=e=>ue.scan_text_fields=!0)},null,8,["model-value","disabled"]),f(T,{"model-value":ue.scan_text_fields,value:!1,label:"No",disabled:O(k),"onUpdate:modelValue":t[16]||(t[16]=e=>ue.scan_text_fields=!1)},null,8,["model-value","disabled"])])])]),x("div",pu,[f(o,{loading:O(k),disabled:ce.value,onClick:Ve},{default:u(()=>[f(E,{name:"radar",left:""}),t[42]||(t[42]=h(" Scan ",-1))]),_:1},8,["loading","disabled"])])]),Y.value?(c(),p("div",mu,[x("div",vu,[x("span",hu,g(Y.value.unreferenced_count.toLocaleString()),1),x("span",gu,[t[44]||(t[44]=h(" Unreferenced ",-1)),N(f(E,{name:"help_outline",small:"",class:"stat-info"},null,512),[[J,"File Library entries with no remaining references in relations or (optional) text fields, after Min Age / Storage Filter.",void 0,{top:!0}]])])]),x("div",yu,[x("span",bu,g((Y.value.collections_checked??0).toLocaleString()),1),x("span",_u,[t[45]||(t[45]=h(" Collections Checked ",-1)),N(f(E,{name:"help_outline",small:"",class:"stat-info"},null,512),[[J,"Unique collections that had at least one file relation or text field to inspect — not your total collection count. Includes system collections with file fields (e.g. avatar, logos).",void 0,{top:!0}]])])]),x("div",wu,[x("span",xu,g(Y.value.relation_targets.toLocaleString()),1),x("span",Su,[t[46]||(t[46]=h(" Relations Checked ",-1)),N(f(E,{name:"help_outline",small:"",class:"stat-info"},null,512),[[J,"Number of file/image fields that point at directus_files (one field = one). Includes system fields such as user avatars and project logos.",void 0,{top:!0}]])])]),x("div",ku,[x("span",Eu,g(Y.value.text_targets.toLocaleString()),1),x("span",Au,[t[47]||(t[47]=h(" Text Fields Scanned ",-1)),N(f(E,{name:"help_outline",small:"",class:"stat-info"},null,512),[[J,"WYSIWYG, Markdown, JSON, code, and similar content fields checked for /assets/ links or file UUIDs. System Directus tables are excluded.",void 0,{top:!0}]])])]),x("div",Ou,[x("span",$u,g((n=Y.value.elapsed_ms,n<1e3?`${n} ms`:`${(n/1e3).toFixed(1)} s`)),1),t[48]||(t[48]=x("span",{class:"stat-label"},"Duration",-1))])])):_("v-if",!0),Y.value?.ids_truncated?(c(),p("p",Cu," Result list is capped for the browser filter; the Unreferenced count includes everything found. ")):_("v-if",!0),q.value?(c(),p("p",Iu,g(q.value),1)):_("v-if",!0)],2),O(k)&&!L.value?(c(),p("div",Ru,[f(j,{indeterminate:""}),t[50]||(t[50]=x("span",null,"Scan running in the background…",-1))])):K.value?(c(),d(F(`layout-${O(ye)}`),B(P({key:1},Te(e))),{"no-results":u(()=>[f(z,{title:"No results",icon:"search",center:""},{append:u(()=>[f(o,{onClick:Re},{default:u(()=>[...t[51]||(t[51]=[h("Clear filters",-1)])]),_:1})]),default:u(()=>[t[52]||(t[52]=h(" No unreferenced files match your search or filters. ",-1))]),_:1})]),"no-items":u(()=>[f(z,{title:"No unreferenced files",icon:"link_off",center:""},{append:u(()=>[f(o,{onClick:Ve},{default:u(()=>[...t[53]||(t[53]=[h("Scan again",-1)])]),_:1})]),default:u(()=>[t[54]||(t[54]=h(" Nothing matched this scan (or leftovers are newer than the min age). ",-1))]),_:1})]),_:1},16)):_("v-if",!0),Q.value?(c(),d(H,{key:2,collection:"directus_files","primary-key":Q.value,active:!0,"onUpdate:active":je},null,8,["primary-key"])):_("v-if",!0),f(b,{modelValue:W.value,"onUpdate:modelValue":t[18]||(t[18]=e=>W.value=e),onEsc:t[19]||(t[19]=e=>W.value=!1)},{default:u(()=>[f(y,null,{default:u(()=>[f(a,null,{default:u(()=>[h("Delete "+g(M.value.length)+" file(s)?",1)]),_:1}),f(r,null,{default:u(()=>[...t[55]||(t[55]=[h(" Each file is re-checked for references before delete. Still-referenced files are skipped. This cannot be undone. ",-1)])]),_:1}),f(i,null,{default:u(()=>[f(o,{secondary:"",onClick:t[17]||(t[17]=e=>W.value=!1)},{default:u(()=>[...t[56]||(t[56]=[h("Cancel",-1)])]),_:1}),f(o,{kind:"danger",loading:G.value,onClick:Ge},{default:u(()=>[...t[57]||(t[57]=[h("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(ss,{modelValue:se.value,"onUpdate:modelValue":t[20]||(t[20]=e=>se.value=e),storages:O(v),"source-storage":null,"selection-kind":"files","file-ids":M.value,"folder-id":null,"source-path":null,"estimated-count":M.value.length||void 0,onDone:We},null,8,["modelValue","storages","file-ids","estimated-count"]),f(Hd,{modelValue:L.value,"onUpdate:modelValue":t[21]||(t[21]=e=>L.value=e),onDone:Pe},null,8,["modelValue"])];var n}),_:2},[K.value?{name:"actions:prepend",fn:u(()=>[(c(),d(F(`layout-actions-${O(ye)}`),B(V(e)),null,16))]),key:"0"}:void 0]),1024)]),_:1},40,["selection","layout-options","layout-query","filter","filter-user","filter-system","search","reset-preset"])}}});we("\n.page-container[data-v-4914d761] {\n\tpadding: var(--content-padding);\n\tpadding-block-end: 0;\n\tmax-inline-size: 67.5rem;\n}\n.page-intro[data-v-4914d761] {\n\tmargin: 0 0 1.25rem;\n\tcolor: var(--theme--foreground);\n\tline-height: 1.45;\n}\n.page-intro code[data-v-4914d761] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.section-divider[data-v-4914d761] {\n\tmargin-block-end: 0.75rem;\n}\n.scan-bar[data-v-4914d761] {\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: end;\n\tgap: 0.85rem 1rem;\n\tmargin-block-end: 0.75rem;\n\tpadding: 0.75rem 1rem;\n\tborder: 1px solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background-subdued);\n}\n.scan-bar-title[data-v-4914d761] {\n\tflex: 0 0 auto;\n\talign-self: center;\n\tmargin-inline-end: 0.25rem;\n\tfont-size: 0.75rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n\tcolor: var(--theme--foreground-subdued);\n\twhite-space: nowrap;\n}\n.scan-bar-fields[data-v-4914d761] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: end;\n\tgap: 0.85rem 1.5rem;\n\tmin-inline-size: 0;\n\tflex: 1 1 auto;\n}\n.scan-bar-field[data-v-4914d761] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: end;\n\tgap: 0.3rem;\n\tinline-size: auto;\n\tmin-inline-size: 7.5rem;\n}\n.scan-bar-field--age[data-v-4914d761] {\n\tmin-inline-size: 11.5rem;\n}\n.scan-bar-field--storage[data-v-4914d761] {\n\tmin-inline-size: 10rem;\n}\n.scan-bar-field--check[data-v-4914d761] {\n\tinline-size: auto;\n\tmin-inline-size: 12rem;\n}\n.scan-bar-radios[data-v-4914d761] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 0.75rem 1rem;\n\tmin-block-size: 2.25rem;\n}\n.scan-bar-radios[data-v-4914d761] .v-radio {\n\tmargin: 0;\n}\n.scan-bar-field label[data-v-4914d761],\n.scan-bar-spacer[data-v-4914d761] {\n\tdisplay: block;\n\tmin-block-size: 1.125rem;\n\tfont-size: 0.8125rem;\n\tfont-weight: 600;\n\tline-height: 1.125rem;\n\tcolor: var(--theme--foreground-subdued);\n\twhite-space: nowrap;\n}\n.scan-bar-label-row[data-v-4914d761] {\n\tdisplay: inline-flex !important;\n\talign-items: center;\n\tgap: 6px;\n}\n.scan-bar-info[data-v-4914d761] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n}\n.scan-bar-field[data-v-4914d761] .v-input,\n.scan-bar-field[data-v-4914d761] .v-select {\n\tmargin: 0;\n}\n.scan-bar-field[data-v-4914d761] .v-input .input,\n.scan-bar-field[data-v-4914d761] .v-input input,\n.scan-bar-field[data-v-4914d761] .v-select .input {\n\tmin-block-size: 2.25rem;\n}\n.scan-bar-actions[data-v-4914d761] {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-inline-start: auto;\n}\n.scan-bar-actions[data-v-4914d761] .v-button {\n\tmargin: 0;\n}\n.notice[data-v-4914d761] {\n\tmargin: 0 0 1rem;\n\tfont-size: 0.85rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--warning);\n}\n.stats-grid[data-v-4914d761] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.5rem;\n\tmargin: 0 0 0.75rem;\n\tinline-size: 100%;\n}\n.stat[data-v-4914d761] {\n\tdisplay: inline-flex;\n\tflex: 1 1 auto;\n\talign-items: baseline;\n\tgap: 0.4rem;\n\tmin-inline-size: max-content;\n\tpadding: 0.4rem 0.7rem;\n\tborder: 1px solid var(--theme--border-color-subdued);\n\tborder-radius: var(--theme--border-radius);\n\tbackground: var(--theme--background-subdued);\n\twhite-space: nowrap;\n}\n.stat-value[data-v-4914d761] {\n\tfont-size: 0.9rem;\n\tfont-weight: 700;\n\tline-height: 1.3;\n\tcolor: var(--theme--foreground);\n\tfont-variant-numeric: tabular-nums;\n}\n.stat-label[data-v-4914d761] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tfont-size: 0.8rem;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground-subdued);\n}\n.stat-info[data-v-4914d761] {\n\t--v-icon-color: var(--theme--foreground-subdued);\n\tcursor: pointer;\n\tflex-shrink: 0;\n}\n.error[data-v-4914d761] {\n\tmargin: 0 0 1rem;\n\tcolor: var(--theme--danger);\n}\n.loading-block[data-v-4914d761] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 0.75rem;\n\tpadding: 3rem var(--content-padding);\n\tcolor: var(--theme--foreground-subdued);\n}\n.sidebar-text[data-v-4914d761] {\n\tmargin: 0;\n\tfont-size: 0.875rem;\n\tline-height: 1.4;\n\tcolor: var(--theme--foreground-subdued);\n}\n.sidebar-text--spaced[data-v-4914d761] {\n\tmargin-bottom: 0.85rem;\n}\n.sidebar-text code[data-v-4914d761] {\n\tfont-family: var(--theme--fonts--monospace--font-family, monospace);\n\tfont-size: 0.9em;\n}\n.side-field[data-v-4914d761] {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.35rem;\n\tmargin-bottom: 0.85rem;\n}\n.side-field label[data-v-4914d761] {\n\tfont-size: 0.75rem;\n\tfont-weight: 600;\n\tcolor: var(--theme--foreground-subdued);\n}\n.lifecycle-msg[data-v-4914d761] {\n\tmargin: 0.65rem 0 0;\n\tfont-size: 0.8rem;\n}\n.lifecycle-msg.success[data-v-4914d761] {\n\tcolor: var(--theme--success);\n}\n.lifecycle-msg.danger[data-v-4914d761] {\n\tcolor: var(--theme--danger);\n}\n.move-hint[data-v-4914d761] {\n\tmargin: 0 0 12px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-destination-hint[data-v-4914d761] {\n\tmargin: 12px 0 0;\n\tfont-size: 13px;\n\tline-height: 1.45;\n\tcolor: var(--theme--foreground-subdued);\n}\n.move-dry-run[data-v-4914d761] {\n\tmargin-top: 14px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\talign-items: flex-start;\n}\n.move-dry-result[data-v-4914d761] {\n\twidth: 100%;\n\tfont-size: 13px;\n\tline-height: 1.45;\n}\n.move-dry-result p[data-v-4914d761] {\n\tmargin: 0 0 6px;\n}\n",{});we("\n.storage-location-badge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tmax-inline-size: 100%;\n\tpadding: 2px 8px;\n\toverflow: hidden;\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tline-height: 1.35;\n\tcolor: var(--theme--primary-foreground, var(--white, #fff));\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tpointer-events: none;\n\tbackground: var(--theme--primary);\n\tborder: none;\n\tborder-radius: var(--theme--border-radius);\n}\n.layout-cards .header .storage-location-badge {\n\tposition: absolute;\n\tinset-block-end: 8px;\n\tinset-inline-start: 8px;\n\tz-index: 2;\n\tmax-inline-size: calc(100% - 16px);\n\tbox-shadow: 0 1px 3px rgb(38 50 56 / 0.2);\n}\n",{});var Tu=n({id:"storage-manager",name:"Storage Manager",icon:"storage",routes:[{path:"",component:xt},{path:"unreferenced",component:xe(Nu,[["__scopeId","data-v-4914d761"]])},{path:"storage/:location",component:zc},{path:"storage/:location/path/:storagePath(.*)",component:zc},{path:"folders",component:Gc},{path:"folders/:folderId",component:Gc},{path:"settings",component:Zc}],preRegisterCheck:e=>Y(e)}),ju={id:"storage-manager-operation",name:"Storage Manager",icon:"swap_horiz",description:"Copy or move Directus files between storage adapters (same file id)",overview:({mode:e,target_storage:t,source_storage:n,folder_id:a})=>[{label:"Mode",text:String(e||"move")},{label:"Target",text:String(t||"")},{label:"Source",text:String(n||a||"file_ids")}],options:[{field:"mode",name:"Mode",type:"string",meta:{width:"half",interface:"select-dropdown",options:{choices:[{text:"Move (delete source after verify)",value:"move"},{text:"Copy (keep source)",value:"copy"}]},note:"Move only deletes the source object after the target is verified and the DB row is updated."},schema:{default_value:"move"}},{field:"target_storage",name:"Target Storage",type:"string",meta:{width:"half",interface:"input",options:{placeholder:"s3"},note:"Must match a configured STORAGE_LOCATIONS name."},schema:{required:!0}},{field:"file_ids",name:"File IDs",type:"json",meta:{width:"full",interface:"input-code",options:{language:"json",placeholder:'["uuid-1", "uuid-2"]'},note:"Optional JSON array of file UUIDs. Leave empty when using source storage or folder."}},{field:"source_storage",name:"Source Storage",type:"string",meta:{width:"half",interface:"input",options:{placeholder:"local"},note:"Migrate all files currently on this storage location."}},{field:"folder_id",name:"Folder ID",type:"uuid",meta:{width:"half",interface:"system-folder",note:"Migrate files in this folder (optional)."}},{field:"recursive",name:"Include Subfolders",type:"boolean",meta:{width:"half",interface:"boolean",note:"When a folder is selected, also migrate files in nested folders."},schema:{default_value:!0}}]};function Du(e){const n=i(()=>function(e){if(e?.length&&(1!==e.length||"*/*"!==e[0]))return e}(t().useServerStore().info?.files?.mimeTypeAllowList)),a=i(()=>{const t=O(e);if(!t?.length)return null;const n=t.map(e=>e.endsWith("/*")?{type:{_starts_with:e.slice(0,-1)}}:{type:{_eq:e}});return 1===n.length?n[0]:{_or:n}}),r=i(()=>{const t=O(e),a=n.value;if(!a?.length)return t?.join(",");if(!t?.length)return a.join(",");const r=function(e,t){const n=[];for(const a of e)t.some(e=>e.endsWith("/*")?a.startsWith(e.slice(0,-1)):a.endsWith("/*")?e.startsWith(a.slice(0,-1)):a===e)&&n.push(a);return[...new Set(n)]}(t,a);return r.length?r.join(","):a.join(",")});return{mimeTypeFilter:a,combinedAcceptString:r}}function Mu(e){console.error(e)}function Lu(e,{isDownload:t=!1,imageKey:n,cacheBuster:a}={}){const r=new URL(`assets/${e}`,window.location.origin);return t&&r.searchParams.set("download",""),n&&r.searchParams.set("key",n),a&&r.searchParams.set("v",!0===a?Date.now().toString():String(a)),r.href}function Fu(e){const{currentUser:n}=t().useUserStore();if(!n||!("id"in n))return e??{};return function(e,t,n={},a=!1){let r=Li(e,t,n);return r?(!1===a&&(r=Ii(r,e=>"true"===e||"false"!==e&&("null"===e||"NULL"===e?null:e))),Mi(r)):r}(e,{role:n.role?.id??null,roles:n.roles?.map(e=>e.id)??[],user:n.id},{$CURRENT_ROLE:n.role??void 0,$CURRENT_ROLES:n.roles,$CURRENT_USER:n})??{}}const Pu={"image/jpeg":"JPG","image/png":"PNG","image/gif":"GIF","image/svg+xml":"SVG","image/webp":"WEBP","video/mp4":"MP4","audio/mpeg":"MP3","application/pdf":"PDF","text/plain":"TXT"};function Uu(e){return i(()=>({storage:String(e.value||"local").trim()||"local"}))}const Bu={class:"file-with-storage"},Vu={key:1,class:"extension"},zu={key:0,class:"item-actions"};var Gu=l({__name:"interface",props:{value:{},disabled:{type:Boolean},nonEditable:{type:Boolean},loading:{type:Boolean},folder:{},storage:{default:"local"},filter:{},collection:{},field:{},enableCreate:{type:Boolean,default:!0},enableSelect:{type:Boolean,default:!0},allowedMimeTypes:{},onDeselect:{default:"keep"},onItemDelete:{default:"keep"}},emits:["input"],setup(n,{emit:a}){const r=n,l=a,v=e(),b=Uu(K(r,"storage")),w=i({get:()=>r.value,set:e=>l("input",e)}),{mimeTypeFilter:S,combinedAcceptString:k}=Du(K(r,"allowedMimeTypes")),C=o({fields:["id","title","type","filename_download","modified_on"]}),{collection:I,field:T}=D(r),{relationInfo:M}=function(e,n){const a=t().useRelationsStore(),r=t().useCollectionsStore(),o=t().useFieldsStore();return{relationInfo:i(()=>{const t=a.getRelationsForField(e.value,n.value);if(!t.length)return;const i=t[0];return{relation:i,relatedCollection:r.getCollection(i.related_collection),relatedPrimaryKeyField:o.getPrimaryKeyFieldForCollection(i.related_collection),type:"m2o"}})}}(I,T),L=o(null),F=o(!1),{displayItem:P,loading:U,update:B,remove:V}=function(t,n,a,r){const l=e(),s=o(null),c=o(!1),d=i(()=>void 0===r?.enabled||G(r?.enabled));return y([t,n,a,d],()=>{d.value&&u()},{immediate:!0}),{update:function(e){if(!a.value)return;const n=a.value.relatedPrimaryKeyField.field;if(t.value&&"object"==typeof e&&!(n in e)){const a="object"==typeof t.value?t.value[n]:t.value;e[n]=a}t.value=e},remove:function(){t.value=null},refresh:async function(){await u()},displayItem:s,loading:c};async function u(){const e=t.value;if(!e)return void(s.value=null);if(!a.value)return;const r=a.value.relatedCollection.collection,o=a.value.relatedPrimaryKeyField.field,i="object"==typeof e?e[o]:e;if(!i)return void(s.value=e);const d=new Set(n.value.fields);d.add(o),c.value=!0;try{const t=await l.get(`${Ri(r)}/${encodeURIComponent(String(i))}`,{params:{fields:Array.from(d)}}),n=t.data?.data;s.value="object"==typeof e?eo({},n,e):n}catch(t){"object"==typeof e&&403===t?.response?.status?s.value=e:Mu(t)}finally{c.value=!1}}}(w,C,M,{enabled:i(()=>!r.loading)}),{createAllowed:z}={createAllowed:i(()=>!0),updateAllowed:i(()=>!0)},H=o(!1),X=o(!1);function q(){const e=r.value;return e?"object"==typeof e&&e.id?String(e.id):String(e):null}async function W(e){try{await v.post("/storage-manager/files/delete-if-unreferenced",{file_ids:[e]})}catch(e){Mu(e)}}async function Y(){const e=r.onDeselect||"keep",t=q();if("ask"!==e||!t)return"delete_if_unreferenced"===e&&t?(V(),void await W(t)):void V();H.value=!0}async function J(){H.value=!1,V()}async function Q(){const e=q();X.value=!0;try{V(),e&&await W(e)}finally{X.value=!1,H.value=!1}}const Z=i(()=>null===P.value?null:function(e,t=!1){if(!e)return"";if(Pu[e])return Pu[e];if(!t)return e;const n=e.split("/");if(2!==n.length)return"FILE";let a=n[1];return a.includes("-")&&(a=a.split("-").pop()||a),a.includes(".")&&(a=a.split(".").pop()||a),a.toUpperCase()}(P.value.type,!0)),ee=i(()=>null===P.value||null===r.value?null:P.value.type.includes("image")?P.value.type.includes("svg")?Lu(P.value.id,{cacheBuster:P.value.modified_on}):Lu(P.value.id,{imageKey:"system-small-cover",cacheBuster:P.value.modified_on}):null),te=o(null),{url:ne,isValidURL:ae,loading:re,importFromURL:oe}=function(){const e=o(""),t=o(!1),n=i(()=>{try{return new URL(e.value),!0}catch{return!1}});return{url:e,loading:t,isValidURL:n,importFromURL:async function(){t.value=!0;try{const t=await v.post("/files/import",{url:e.value,data:{folder:r.folder,storage:b.value.storage},options:{filterMimeType:r.allowedMimeTypes}});P.value=t.data.data,L.value=null,e.value="",B(P.value?.id)}catch(e){Mu(e)}finally{t.value=!1}}}}(),ie=o(!1),le=i(()=>r.value&&"object"==typeof r.value?r.value:{}),se=j("values",o({})),ce=i(()=>{const e=Fu(Ii(r.filter,e=>e&&"string"==typeof e?Co(e,se.value):e));return S.value?e?{_and:[e,S.value]}:S.value:e}),de=i(()=>r.disabled||!1===r.enableCreate&&!1===r.enableSelect),ue=i(()=>Boolean(L.value)||F.value||ie.value);function fe(e){e?.[0]?B(e[0]):Y()}function pe(e){P.value=e,L.value=null,B(e.id)}return(e,t)=>{const a=s("v-skeleton-loader"),r=s("v-image"),o=s("v-icon"),i=s("v-list-item-icon"),l=s("v-text-overflow"),v=s("v-list-item-content"),y=s("v-remove"),w=s("v-list-item"),S=s("v-card-title"),C=s("v-card-text"),I=s("v-button"),j=s("v-card-actions"),D=s("v-card"),V=s("v-dialog"),G=s("v-divider"),K=s("v-list"),q=s("v-menu"),W=s("drawer-item"),se=s("v-upload"),me=s("drawer-files"),ve=s("v-input"),he=R("tooltip"),ge=R("prevent-focusout");return N((c(),p("div",Bu,[f(q,{modelValue:F.value,"onUpdate:modelValue":t[7]||(t[7]=e=>F.value=e),attached:"",disabled:O(U)||de.value},{activator:u(({toggle:s,active:h,deactivate:b})=>[x("div",null,[O(U)?(c(),d(a,{key:0,type:"input"})):(c(),d(w,{key:1,class:"activator",clickable:"",readonly:"",block:"",active:h,disabled:!(n.nonEditable&&O(P))&&de.value,"non-editable":n.nonEditable,placeholder:e.$t("no_file_selected"),"model-value":O(P)&&O(P).title,onClick:e=>n.nonEditable?ie.value=!0:s()},{default:u(()=>[f(i,null,{default:u(()=>[x("div",{class:$(["preview",{"has-file":O(P),"is-svg":O(P)?.type?.includes("svg")}])},[ee.value&&!te.value?(c(),d(r,{key:0,src:ee.value,alt:O(P)?.title,onError:t[0]||(t[0]=e=>te.value=e)},null,8,["src","alt"])):Z.value?(c(),p("span",Vu,g(Z.value),1)):(c(),d(o,{key:2,name:"folder_open"}))],2)]),_:1}),f(v,null,{default:u(()=>[O(P)?.title?(c(),d(l,{key:0,text:O(P).title},null,8,["text"])):(c(),d(l,{key:1,class:"placeholder",text:e.$t("no_file_selected")},null,8,["text"]))]),_:1}),n.nonEditable?_("v-if",!0):(c(),p("div",zu,[O(P)?(c(),p(m,{key:0},[N(f(o,{name:"edit",clickable:"",disabled:de.value,onClick:E(e=>{b(),ie.value=!0},["stop"])},null,8,["disabled","onClick"]),[[he,!de.value&&e.$t("edit_item")]]),f(y,{"item-info":O(M),"item-edits":le.value,deselect:"",disabled:de.value,onAction:Y},null,8,["item-info","item-edits","disabled"])],64)):(c(),d(o,{key:1,name:"attach_file"}))]))]),_:2},1032,["active","disabled","non-editable","placeholder","model-value","onClick"]))])]),default:u(()=>[f(V,{modelValue:H.value,"onUpdate:modelValue":t[2]||(t[2]=e=>H.value=e),onEsc:t[3]||(t[3]=e=>H.value=!1)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[...t[17]||(t[17]=[h("Remove file from this item?",-1)])]),_:1}),f(C,null,{default:u(()=>[...t[18]||(t[18]=[h(" Deselect clears the field only. Delete removes the file from the library if nothing else references it (relations, ",-1),x("code",null,"/assets/",-1),h(" links, or JSON/code UUIDs). ",-1)])]),_:1}),f(j,null,{default:u(()=>[f(I,{secondary:"",disabled:X.value,onClick:t[1]||(t[1]=e=>H.value=!1)},{default:u(()=>[...t[19]||(t[19]=[h("Cancel",-1)])]),_:1},8,["disabled"]),f(I,{secondary:"",disabled:X.value,onClick:J},{default:u(()=>[...t[20]||(t[20]=[h("Deselect only",-1)])]),_:1},8,["disabled"]),f(I,{kind:"danger",loading:X.value,onClick:Q},{default:u(()=>[...t[21]||(t[21]=[h(" Deselect & delete if unused ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(K,null,{default:u(()=>[O(P)?(c(),p(m,{key:0},[f(w,{clickable:"",download:O(P).filename_download,href:O(Lu)(O(P).id,{isDownload:!0})},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"get_app"})]),_:1}),f(v,null,{default:u(()=>[h(g(e.$t("download_file")),1)]),_:1})]),_:1},8,["download","href"]),de.value?_("v-if",!0):(c(),d(G,{key:0}))],64)):_("v-if",!0),de.value?_("v-if",!0):(c(),p(m,{key:1},[O(z)&&n.enableCreate?(c(),d(w,{key:0,clickable:"",onClick:t[4]||(t[4]=e=>L.value="upload")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"phonelink"})]),_:1}),f(v,null,{default:u(()=>[h(g(e.$t(O(P)?"replace_from_device":"upload_from_device")),1)]),_:1})]),_:1})):_("v-if",!0),n.enableSelect?(c(),d(w,{key:1,clickable:"",onClick:t[5]||(t[5]=e=>L.value="choose")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"folder_open"})]),_:1}),f(v,null,{default:u(()=>[h(g(e.$t(O(P)?"replace_from_library":"choose_from_library")),1)]),_:1})]),_:1})):_("v-if",!0),O(z)&&n.enableCreate?(c(),d(w,{key:2,clickable:"",onClick:t[6]||(t[6]=e=>L.value="url")},{default:u(()=>[f(i,null,{default:u(()=>[f(o,{name:"link"})]),_:1}),f(v,null,{default:u(()=>[h(g(e.$t(O(P)?"replace_from_url":"import_from_url")),1)]),_:1})]),_:1})):_("v-if",!0)],64))]),_:1})]),_:1},8,["modelValue","disabled"]),O(P)?(c(),d(W,{key:0,active:ie.value,"onUpdate:active":t[8]||(t[8]=e=>ie.value=e),collection:"directus_files","primary-key":O(P).id,edits:le.value,disabled:de.value,"non-editable":n.nonEditable,onInput:O(B)},{actions:u(()=>[f(I,{secondary:"",rounded:"",icon:"",href:O(Lu)(O(P).id,{isDownload:!0}),download:O(P).filename_download},{default:u(()=>[f(o,{name:"download"})]),_:1},8,["href","download"])]),_:1},8,["active","primary-key","edits","disabled","non-editable","onInput"])):_("v-if",!0),f(V,{"model-value":"upload"===L.value,onEsc:t[10]||(t[10]=e=>L.value=null),"onUpdate:modelValue":t[11]||(t[11]=e=>L.value=null)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[h(g(e.$t("upload_from_device")),1)]),_:1}),f(C,null,{default:u(()=>[f(se,{"from-url":"",folder:n.folder,preset:O(b),accept:O(k),onInput:pe},null,8,["folder","preset","accept"])]),_:1}),f(j,null,{default:u(()=>[f(I,{secondary:"",onClick:t[9]||(t[9]=e=>L.value=null)},{default:u(()=>[h(g(e.$t("cancel")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"]),"choose"===L.value?(c(),d(me,{key:1,folder:n.folder,field:O(T),active:"choose"===L.value,filter:ce.value,"onUpdate:active":t[12]||(t[12]=e=>L.value=null),onInput:fe},null,8,["folder","field","active","filter"])):_("v-if",!0),f(V,{"model-value":"url"===L.value,persistent:O(re),"onUpdate:modelValue":t[15]||(t[15]=e=>L.value=null),onEsc:t[16]||(t[16]=e=>L.value=null)},{default:u(()=>[f(D,null,{default:u(()=>[f(S,null,{default:u(()=>[h(g(e.$t("import_from_url")),1)]),_:1}),f(C,null,{default:u(()=>[f(ve,{modelValue:O(ne),"onUpdate:modelValue":t[13]||(t[13]=e=>A(ne)?ne.value=e:null),autofocus:"",placeholder:e.$t("url"),nullable:!1,disabled:O(re)},null,8,["modelValue","placeholder","disabled"])]),_:1}),f(j,null,{default:u(()=>[f(I,{disabled:O(re),secondary:"",onClick:t[14]||(t[14]=e=>L.value=null)},{default:u(()=>[h(g(e.$t("cancel")),1)]),_:1},8,["disabled"]),f(I,{loading:O(re),disabled:!1===O(ae),onClick:O(oe)},{default:u(()=>[h(g(e.$t("import_label")),1)]),_:1},8,["loading","disabled","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value","persistent"])])),[[ge,ue.value]])}}});we("\n.v-list-item.activator[data-v-8df4b3c2] {\n\t--v-list-item-color-active: var(--v-list-item-color);\n\t--v-list-item-background-color-active: var(\n\t\t--v-list-item-background-color,\n\t\tvar(--v-list-background-color, var(--theme--form--field--input--background))\n\t);\n}\n.v-list-item.activator.disabled[data-v-8df4b3c2]:not(.non-editable) {\n\t--v-list-item-color: var(--theme--foreground-subdued);\n\t--v-list-item-background-color: var(--theme--form--field--input--background-subdued);\n}\n.v-list-item.activator.active[data-v-8df4b3c2]:not(.disabled),\n.v-list-item.activator[data-v-8df4b3c2]:focus-within:not(.disabled) {\n\t--v-list-item-border-color: var(--v-input-border-color-focus, var(--theme--form--field--input--border-color-focus));\n\tbox-shadow: var(--theme--form--field--input--box-shadow-focus);\n}\n.item-actions[data-v-8df4b3c2] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\tpadding-inline-start: 0.4375rem;\n}\n.preview[data-v-8df4b3c2] {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tinline-size: 2.25rem;\n\tblock-size: 2.25rem;\n\tmargin-inline-start: -0.4375rem;\n\toverflow: hidden;\n\tbackground-color: var(--theme--background-normal);\n\tborder-radius: var(--theme--border-radius);\n}\n.preview.has-file[data-v-8df4b3c2] {\n\tbackground-color: var(--theme--primary-background);\n}\n.preview.is-svg[data-v-8df4b3c2] {\n\tpadding: 0.25rem;\n}\n.preview img[data-v-8df4b3c2] {\n\tinline-size: 100%;\n\tblock-size: 100%;\n\tobject-fit: cover;\n}\n.preview.is-svg img[data-v-8df4b3c2] {\n\tobject-fit: contain;\n}\n.placeholder[data-v-8df4b3c2] {\n\tcolor: var(--theme--foreground-subdued);\n}\n.extension[data-v-8df4b3c2] {\n\tcolor: var(--theme--primary);\n\tfont-weight: 600;\n\tfont-size: 0.625rem;\n\ttext-transform: uppercase;\n}\n",{});var Ku=xe(Gu,[["__scopeId","data-v-8df4b3c2"]]);const Hu=[{value:"image/*",text:"image/*"},{value:"video/*",text:"video/*"},{value:"audio/*",text:"audio/*"},{value:"text/*",text:"text/*"},{value:"application/pdf",text:"application/pdf"}],Xu={field:"storage",name:"Storage Location",type:"string",schema:{default_value:"local"},meta:{width:"half",interface:"storage-manager-storage-location",note:"Storage adapter for uploads from this field. Works with Mirror Directus Folders when enabled for that storage."}},qu=[{field:"onDeselect",name:"On Deselect",type:"string",schema:{default_value:"keep"},meta:{width:"half",interface:"select-dropdown",options:{choices:[{value:"keep",text:"Keep file in library"},{value:"ask",text:"Ask (deselect only vs delete if unused)"},{value:"delete_if_unreferenced",text:"Delete file if unreferenced"}]},note:"When the file is cleared on this field. “Ask” shows a Studio prompt; delete only runs if nothing else references the file."}},{field:"onItemDelete",name:"On Item Delete",type:"string",schema:{default_value:"keep"},meta:{width:"half",interface:"select-dropdown",options:{choices:[{value:"keep",text:"Keep file in library"},{value:"delete_if_unreferenced",text:"Delete file if unreferenced"}]},note:"When the parent item is deleted. Only deletes the file if it is not used elsewhere (relations, /assets/ links, JSON/code UUIDs)."}}];function Wu(e,t=[]){const n=e.m2o?.related_collection;return[{field:"folder",name:"$t:interfaces.system-folder.folder",type:"uuid",meta:{width:"half",interface:"system-folder",note:"$t:interfaces.system-folder.field_hint"}},Xu,...qu,...t,{field:"filter",name:"$t:filter",type:"json",meta:{interface:"system-filter",options:{collectionName:n}}},{field:"enableCreate",name:"$t:creating_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_create_button"},width:"half"}},{field:"enableSelect",name:"$t:selecting_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_select_button"},width:"half"}},{field:"allowedMimeTypes",name:"$t:interfaces.file.allowed_mime_types",type:"json",meta:{interface:"select-multiple-dropdown",options:{placeholder:"$t:interfaces.file.mime_types_placeholder",choices:Hu}}}]}const Yu=["image/*"];var Ju=a({id:"storage-manager-file-with-storage",name:"File with Storage",description:"Upload or select a single file to a configured storage adapter and folder",icon:"note_add",component:Ku,types:["uuid"],localTypes:["file"],group:"relational",relational:!0,options:({relations:e})=>Wu(e),recommendedDisplays:["file"]}),Qu=a({id:"storage-manager-image-with-storage",name:"Image with Storage",description:"Upload or select an image to a configured storage adapter and folder",icon:"insert_photo",component:Ku,types:["uuid"],localTypes:["file"],group:"relational",relational:!0,options:({relations:e})=>Wu(e).map(e=>"allowedMimeTypes"!==e.field?e:{...e,schema:{default_value:Yu}}),recommendedDisplays:["image"]}),Zu={exports:{}},ef=Ro(r);
|
|
2
2
|
/**!
|
|
3
3
|
* Sortable 1.14.0
|
|
4
4
|
* @author RubaXa <trash@rubaxa.org>
|
|
5
5
|
* @author owenm <owen23355@gmail.com>
|
|
6
6
|
* @license MIT
|
|
7
7
|
*/
|
|
8
|
-
function pu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function mu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pu(Object(n),!0).forEach(function(t){vu(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pu(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function hu(e){return hu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hu(e)}function vu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gu(){return gu=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},gu.apply(this,arguments)}function yu(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function bu(e){return function(e){if(Array.isArray(e))return _u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return _u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function wu(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var xu=wu(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Su=wu(/Edge/i),ku=wu(/firefox/i),Eu=wu(/safari/i)&&!wu(/chrome/i)&&!wu(/android/i),Au=wu(/iP(ad|od|hone)/i),Ou=wu(/chrome/i)&&wu(/android/i),$u={capture:!1,passive:!1};function Cu(e,t,n){e.addEventListener(t,n,!xu&&$u)}function Iu(e,t,n){e.removeEventListener(t,n,!xu&&$u)}function Ru(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function Nu(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Tu(e,t,n,a){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&Ru(e,t):Ru(e,t))||a&&e===n)return e;if(e===n)break}while(e=Nu(e))}return null}var ju,Du=/\s+/g;function Mu(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(Du," ").replace(" "+t+" "," ");e.className=(a+(n?" "+t:"")).replace(Du," ")}}function Lu(e,t,n){var a=e&&e.style;if(a){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=n+("string"==typeof n?"":"px")}}function Fu(e,t){var n="";if("string"==typeof e)n=e;else do{var a=Lu(e,"transform");a&&"none"!==a&&(n=a+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function Pu(e,t,n){if(e){var a=e.getElementsByTagName(t),r=0,o=a.length;if(n)for(;r<o;r++)n(a[r],r);return a}return[]}function Uu(){var e=document.scrollingElement;return e||document.documentElement}function Bu(e,t,n,a,r){if(e.getBoundingClientRect||e===window){var o,i,l,s,c,d,u;if(e!==window&&e.parentNode&&e!==Uu()?(i=(o=e.getBoundingClientRect()).top,l=o.left,s=o.bottom,c=o.right,d=o.height,u=o.width):(i=0,l=0,s=window.innerHeight,c=window.innerWidth,d=window.innerHeight,u=window.innerWidth),(t||n)&&e!==window&&(r=r||e.parentNode,!xu))do{if(r&&r.getBoundingClientRect&&("none"!==Lu(r,"transform")||n&&"static"!==Lu(r,"position"))){var f=r.getBoundingClientRect();i-=f.top+parseInt(Lu(r,"border-top-width")),l-=f.left+parseInt(Lu(r,"border-left-width")),s=i+o.height,c=l+o.width;break}}while(r=r.parentNode);if(a&&e!==window){var p=Fu(r||e),m=p&&p.a,h=p&&p.d;p&&(s=(i/=h)+(d/=h),c=(l/=m)+(u/=m))}return{top:i,left:l,bottom:s,right:c,width:u,height:d}}}function Vu(e,t,n){for(var a=Xu(e,!0),r=Bu(e)[t];a;){if(!(r>=Bu(a)[n]))return a;if(a===Uu())break;a=Xu(a,!1)}return!1}function zu(e,t,n,a){for(var r=0,o=0,i=e.children;o<i.length;){if("none"!==i[o].style.display&&i[o]!==ep.ghost&&(a||i[o]!==ep.dragged)&&Tu(i[o],n.draggable,e,!1)){if(r===t)return i[o];r++}o++}return null}function Gu(e,t){for(var n=e.lastElementChild;n&&(n===ep.ghost||"none"===Lu(n,"display")||t&&!Ru(n,t));)n=n.previousElementSibling;return n||null}function Ku(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)"TEMPLATE"===e.nodeName.toUpperCase()||e===ep.clone||t&&!Ru(e,t)||n++;return n}function Hu(e){var t=0,n=0,a=Uu();if(e)do{var r=Fu(e),o=r.a,i=r.d;t+=e.scrollLeft*o,n+=e.scrollTop*i}while(e!==a&&(e=e.parentNode));return[t,n]}function Xu(e,t){if(!e||!e.getBoundingClientRect)return Uu();var n=e,a=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var r=Lu(n);if(n.clientWidth<n.scrollWidth&&("auto"==r.overflowX||"scroll"==r.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==r.overflowY||"scroll"==r.overflowY)){if(!n.getBoundingClientRect||n===document.body)return Uu();if(a||t)return n;a=!0}}}while(n=n.parentNode);return Uu()}function qu(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function Wu(e,t){return function(){if(!ju){var n=arguments;1===n.length?e.call(this,n[0]):e.apply(this,n),ju=setTimeout(function(){ju=void 0},t)}}}function Yu(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Ju(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function Qu(e,t){Lu(e,"position","absolute"),Lu(e,"top",t.top),Lu(e,"left",t.left),Lu(e,"width",t.width),Lu(e,"height",t.height)}function Zu(e){Lu(e,"position",""),Lu(e,"top",""),Lu(e,"left",""),Lu(e,"width",""),Lu(e,"height","")}var ef="Sortable"+(new Date).getTime();function tf(){var e,t=[];return{captureAnimationState:function(){(t=[],this.options.animation)&&[].slice.call(this.el.children).forEach(function(e){if("none"!==Lu(e,"display")&&e!==ep.ghost){t.push({target:e,rect:Bu(e)});var n=mu({},t[t.length-1].rect);if(e.thisAnimationDuration){var a=Fu(e,!0);a&&(n.top-=a.f,n.left-=a.e)}e.fromRect=n}})},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice(function(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var a in t)if(t.hasOwnProperty(a)&&t[a]===e[n][a])return Number(n);return-1}(t,{target:e}),1)},animateAll:function(n){var a=this;if(!this.options.animation)return clearTimeout(e),void("function"==typeof n&&n());var r=!1,o=0;t.forEach(function(e){var t=0,n=e.target,i=n.fromRect,l=Bu(n),s=n.prevFromRect,c=n.prevToRect,d=e.rect,u=Fu(n,!0);u&&(l.top-=u.f,l.left-=u.e),n.toRect=l,n.thisAnimationDuration&&qu(s,l)&&!qu(i,l)&&(d.top-l.top)/(d.left-l.left)===(i.top-l.top)/(i.left-l.left)&&(t=function(e,t,n,a){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*a.animation}(d,s,c,a.options)),qu(l,i)||(n.prevFromRect=i,n.prevToRect=l,t||(t=a.options.animation),a.animate(n,d,l,t)),t&&(r=!0,o=Math.max(o,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(e),r?e=setTimeout(function(){"function"==typeof n&&n()},o):"function"==typeof n&&n(),t=[]},animate:function(e,t,n,a){if(a){Lu(e,"transition",""),Lu(e,"transform","");var r=Fu(this.el),o=r&&r.a,i=r&&r.d,l=(t.left-n.left)/(o||1),s=(t.top-n.top)/(i||1);e.animatingX=!!l,e.animatingY=!!s,Lu(e,"transform","translate3d("+l+"px,"+s+"px,0)"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),Lu(e,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),Lu(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout(function(){Lu(e,"transition",""),Lu(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1},a)}}}}var nf=[],af={initializeByDefault:!0},rf={mount:function(e){for(var t in af)af.hasOwnProperty(t)&&!(t in e)&&(e[t]=af[t]);nf.forEach(function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),nf.push(e)},pluginEvent:function(e,t,n){var a=this;this.eventCanceled=!1,n.cancel=function(){a.eventCanceled=!0};var r=e+"Global";nf.forEach(function(a){t[a.pluginName]&&(t[a.pluginName][r]&&t[a.pluginName][r](mu({sortable:t},n)),t.options[a.pluginName]&&t[a.pluginName][e]&&t[a.pluginName][e](mu({sortable:t},n)))})},initializePlugins:function(e,t,n,a){for(var r in nf.forEach(function(a){var r=a.pluginName;if(e.options[r]||a.initializeByDefault){var o=new a(e,t,e.options);o.sortable=e,o.options=e.options,e[r]=o,gu(n,o.defaults)}}),e.options)if(e.options.hasOwnProperty(r)){var o=this.modifyOption(e,r,e.options[r]);void 0!==o&&(e.options[r]=o)}},getEventProperties:function(e,t){var n={};return nf.forEach(function(a){"function"==typeof a.eventProperties&&gu(n,a.eventProperties.call(t[a.pluginName],e))}),n},modifyOption:function(e,t,n){var a;return nf.forEach(function(r){e[r.pluginName]&&r.optionListeners&&"function"==typeof r.optionListeners[t]&&(a=r.optionListeners[t].call(e[r.pluginName],n))}),a}};function of(e){var t=e.sortable,n=e.rootEl,a=e.name,r=e.targetEl,o=e.cloneEl,i=e.toEl,l=e.fromEl,s=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t=t||n&&n[ef]){var h,v=t.options,g="on"+a.charAt(0).toUpperCase()+a.substr(1);!window.CustomEvent||xu||Su?(h=document.createEvent("Event")).initEvent(a,!0,!0):h=new CustomEvent(a,{bubbles:!0,cancelable:!0}),h.to=i||n,h.from=l||n,h.item=r||n,h.clone=o,h.oldIndex=s,h.newIndex=c,h.oldDraggableIndex=d,h.newDraggableIndex=u,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var y=mu(mu({},m),rf.getEventProperties(a,t));for(var b in y)h[b]=y[b];n&&n.dispatchEvent(h),v[g]&&v[g].call(t,h)}}var lf=["evt"],sf=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.evt,r=yu(n,lf);rf.pluginEvent.bind(ep)(e,t,mu({dragEl:df,parentEl:uf,ghostEl:ff,rootEl:pf,nextEl:mf,lastDownEl:hf,cloneEl:vf,cloneHidden:gf,dragStarted:If,putSortable:Sf,activeSortable:ep.active,originalEvent:a,oldIndex:yf,oldDraggableIndex:_f,newIndex:bf,newDraggableIndex:wf,hideGhostForTarget:Yf,unhideGhostForTarget:Jf,cloneNowHidden:function(){gf=!0},cloneNowShown:function(){gf=!1},dispatchSortableEvent:function(e){cf({sortable:t,name:e,originalEvent:a})}},r))};function cf(e){of(mu({putSortable:Sf,cloneEl:vf,targetEl:df,rootEl:pf,oldIndex:yf,oldDraggableIndex:_f,newIndex:bf,newDraggableIndex:wf},e))}var df,uf,ff,pf,mf,hf,vf,gf,yf,bf,_f,wf,xf,Sf,kf,Ef,Af,Of,$f,Cf,If,Rf,Nf,Tf,jf,Df=!1,Mf=!1,Lf=[],Ff=!1,Pf=!1,Uf=[],Bf=!1,Vf=[],zf="undefined"!=typeof document,Gf=Au,Kf=Su||xu?"cssFloat":"float",Hf=zf&&!Ou&&!Au&&"draggable"in document.createElement("div"),Xf=function(){if(zf){if(xu)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),qf=function(e,t){var n=Lu(e),a=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=zu(e,0,t),o=zu(e,1,t),i=r&&Lu(r),l=o&&Lu(o),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+Bu(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Bu(o).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&i.float&&"none"!==i.float){var d="left"===i.float?"left":"right";return!o||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return r&&("block"===i.display||"flex"===i.display||"table"===i.display||"grid"===i.display||s>=a&&"none"===n[Kf]||o&&"none"===n[Kf]&&s+c>a)?"vertical":"horizontal"},Wf=function(e){function t(e,n){return function(a,r,o,i){var l=a.options.group.name&&r.options.group.name&&a.options.group.name===r.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(a,r,o,i),n)(a,r,o,i);var s=(n?a:r).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},a=e.group;a&&"object"==hu(a)||(a={name:a}),n.name=a.name,n.checkPull=t(a.pull,!0),n.checkPut=t(a.put),n.revertClone=a.revertClone,e.group=n},Yf=function(){!Xf&&ff&&Lu(ff,"display","none")},Jf=function(){!Xf&&ff&&Lu(ff,"display","")};zf&&document.addEventListener("click",function(e){if(Mf)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Mf=!1,!1},!0);var Qf=function(e){if(df){var t=function(e,t){var n;return Lf.some(function(a){var r=a[ef].options.emptyInsertThreshold;if(r&&!Gu(a)){var o=Bu(a),i=e>=o.left-r&&e<=o.right+r,l=t>=o.top-r&&t<=o.bottom+r;return i&&l?n=a:void 0}}),n}((e=e.touches?e.touches[0]:e).clientX,e.clientY);if(t){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[ef]._onDragOver(n)}}},Zf=function(e){df&&df.parentNode[ef]._isOutsideThisEl(e.target)};function ep(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=gu({},t),e[ef]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return qf(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==ep.supportPointer&&"PointerEvent"in window&&!Eu,emptyInsertThreshold:5};for(var a in rf.initializePlugins(this,e,n),n)!(a in t)&&(t[a]=n[a]);for(var r in Wf(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&Hf,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?Cu(e,"pointerdown",this._onTapStart):(Cu(e,"mousedown",this._onTapStart),Cu(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(Cu(e,"dragover",this),Cu(e,"dragenter",this)),Lf.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),gu(this,tf())}function tp(e,t,n,a,r,o,i,l){var s,c,d=e[ef],u=d.options.onMove;return!window.CustomEvent||xu||Su?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=a,s.related=r||t,s.relatedRect=o||Bu(t),s.willInsertAfter=l,s.originalEvent=i,e.dispatchEvent(s),u&&(c=u.call(d,s,i)),c}function np(e){e.draggable=!1}function ap(){Bf=!1}function rp(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,a=0;n--;)a+=t.charCodeAt(n);return a.toString(36)}function op(e){return setTimeout(e,0)}function ip(e){return clearTimeout(e)}ep.prototype={constructor:ep,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(Rf=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,df):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,a=this.options,r=a.preventOnFilter,o=e.type,i=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(i||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=a.filter;if(function(e){Vf.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var a=t[n];a.checked&&Vf.push(a)}}(n),!df&&!(/mousedown|pointerdown/.test(o)&&0!==e.button||a.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!Eu||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=Tu(l,a.draggable,n,!1))&&l.animated||hf===l)){if(yf=Ku(l),_f=Ku(l,a.draggable),"function"==typeof c){if(c.call(this,e,l,this))return cf({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),sf("filter",t,{evt:e}),void(r&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(a){if(a=Tu(s,a.trim(),n,!1))return cf({sortable:t,rootEl:a,name:"filter",targetEl:l,fromEl:n,toEl:n}),sf("filter",t,{evt:e}),!0})))return void(r&&e.cancelable&&e.preventDefault());a.handle&&!Tu(s,a.handle,n,!1)||this._prepareDragStart(e,i,l)}}},_prepareDragStart:function(e,t,n){var a,r=this,o=r.el,i=r.options,l=o.ownerDocument;if(n&&!df&&n.parentNode===o){var s=Bu(n);if(pf=o,uf=(df=n).parentNode,mf=df.nextSibling,hf=n,xf=i.group,ep.dragged=df,kf={target:df,clientX:(t||e).clientX,clientY:(t||e).clientY},$f=kf.clientX-s.left,Cf=kf.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,df.style["will-change"]="all",a=function(){sf("delayEnded",r,{evt:e}),ep.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!ku&&r.nativeDraggable&&(df.draggable=!0),r._triggerDragStart(e,t),cf({sortable:r,name:"choose",originalEvent:e}),Mu(df,i.chosenClass,!0))},i.ignore.split(",").forEach(function(e){Pu(df,e.trim(),np)}),Cu(l,"dragover",Qf),Cu(l,"mousemove",Qf),Cu(l,"touchmove",Qf),Cu(l,"mouseup",r._onDrop),Cu(l,"touchend",r._onDrop),Cu(l,"touchcancel",r._onDrop),ku&&this.nativeDraggable&&(this.options.touchStartThreshold=4,df.draggable=!0),sf("delayStart",this,{evt:e}),!i.delay||i.delayOnTouchOnly&&!t||this.nativeDraggable&&(Su||xu))a();else{if(ep.eventCanceled)return void this._onDrop();Cu(l,"mouseup",r._disableDelayedDrag),Cu(l,"touchend",r._disableDelayedDrag),Cu(l,"touchcancel",r._disableDelayedDrag),Cu(l,"mousemove",r._delayedDragTouchMoveHandler),Cu(l,"touchmove",r._delayedDragTouchMoveHandler),i.supportPointer&&Cu(l,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(a,i.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){df&&np(df),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Iu(e,"mouseup",this._disableDelayedDrag),Iu(e,"touchend",this._disableDelayedDrag),Iu(e,"touchcancel",this._disableDelayedDrag),Iu(e,"mousemove",this._delayedDragTouchMoveHandler),Iu(e,"touchmove",this._delayedDragTouchMoveHandler),Iu(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?Cu(document,"pointermove",this._onTouchMove):Cu(document,t?"touchmove":"mousemove",this._onTouchMove):(Cu(df,"dragend",this),Cu(pf,"dragstart",this._onDragStart));try{document.selection?op(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Df=!1,pf&&df){sf("dragStarted",this,{evt:t}),this.nativeDraggable&&Cu(document,"dragover",Zf);var n=this.options;!e&&Mu(df,n.dragClass,!1),Mu(df,n.ghostClass,!0),ep.active=this,e&&this._appendGhost(),cf({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(Ef){this._lastX=Ef.clientX,this._lastY=Ef.clientY,Yf();for(var e=document.elementFromPoint(Ef.clientX,Ef.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Ef.clientX,Ef.clientY))!==t;)t=e;if(df.parentNode[ef]._isOutsideThisEl(e),t)do{if(t[ef]){if(t[ef]._onDragOver({clientX:Ef.clientX,clientY:Ef.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Jf()}},_onTouchMove:function(e){if(kf){var t=this.options,n=t.fallbackTolerance,a=t.fallbackOffset,r=e.touches?e.touches[0]:e,o=ff&&Fu(ff,!0),i=ff&&o&&o.a,l=ff&&o&&o.d,s=Gf&&jf&&Hu(jf),c=(r.clientX-kf.clientX+a.x)/(i||1)+(s?s[0]-Uf[0]:0)/(i||1),d=(r.clientY-kf.clientY+a.y)/(l||1)+(s?s[1]-Uf[1]:0)/(l||1);if(!ep.active&&!Df){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(ff){o?(o.e+=c-(Af||0),o.f+=d-(Of||0)):o={a:1,b:0,c:0,d:1,e:c,f:d};var u="matrix(".concat(o.a,",").concat(o.b,",").concat(o.c,",").concat(o.d,",").concat(o.e,",").concat(o.f,")");Lu(ff,"webkitTransform",u),Lu(ff,"mozTransform",u),Lu(ff,"msTransform",u),Lu(ff,"transform",u),Af=c,Of=d,Ef=r}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ff){var e=this.options.fallbackOnBody?document.body:pf,t=Bu(df,!0,Gf,!0,e),n=this.options;if(Gf){for(jf=e;"static"===Lu(jf,"position")&&"none"===Lu(jf,"transform")&&jf!==document;)jf=jf.parentNode;jf!==document.body&&jf!==document.documentElement?(jf===document&&(jf=Uu()),t.top+=jf.scrollTop,t.left+=jf.scrollLeft):jf=Uu(),Uf=Hu(jf)}Mu(ff=df.cloneNode(!0),n.ghostClass,!1),Mu(ff,n.fallbackClass,!0),Mu(ff,n.dragClass,!0),Lu(ff,"transition",""),Lu(ff,"transform",""),Lu(ff,"box-sizing","border-box"),Lu(ff,"margin",0),Lu(ff,"top",t.top),Lu(ff,"left",t.left),Lu(ff,"width",t.width),Lu(ff,"height",t.height),Lu(ff,"opacity","0.8"),Lu(ff,"position",Gf?"absolute":"fixed"),Lu(ff,"zIndex","100000"),Lu(ff,"pointerEvents","none"),ep.ghost=ff,e.appendChild(ff),Lu(ff,"transform-origin",$f/parseInt(ff.style.width)*100+"% "+Cf/parseInt(ff.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,a=e.dataTransfer,r=n.options;sf("dragStart",this,{evt:e}),ep.eventCanceled?this._onDrop():(sf("setupClone",this),ep.eventCanceled||((vf=Ju(df)).draggable=!1,vf.style["will-change"]="",this._hideClone(),Mu(vf,this.options.chosenClass,!1),ep.clone=vf),n.cloneId=op(function(){sf("clone",n),ep.eventCanceled||(n.options.removeCloneOnHide||pf.insertBefore(vf,df),n._hideClone(),cf({sortable:n,name:"clone"}))}),!t&&Mu(df,r.dragClass,!0),t?(Mf=!0,n._loopId=setInterval(n._emulateDragOver,50)):(Iu(document,"mouseup",n._onDrop),Iu(document,"touchend",n._onDrop),Iu(document,"touchcancel",n._onDrop),a&&(a.effectAllowed="move",r.setData&&r.setData.call(n,a,df)),Cu(document,"drop",n),Lu(df,"transform","translateZ(0)")),Df=!0,n._dragStartId=op(n._dragStarted.bind(n,t,e)),Cu(document,"selectstart",n),If=!0,Eu&&Lu(document.body,"user-select","none"))},_onDragOver:function(e){var t,n,a,r,o=this.el,i=e.target,l=this.options,s=l.group,c=ep.active,d=xf===s,u=l.sort,f=Sf||c,p=this,m=!1;if(!Bf){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),i=Tu(i,l.draggable,o,!0),C("dragOver"),ep.eventCanceled)return m;if(df.contains(e.target)||i.animated&&i.animatingX&&i.animatingY||p._ignoreWhileAnimating===i)return R(!1);if(Mf=!1,c&&!l.disabled&&(d?u||(a=uf!==pf):Sf===this||(this.lastPutMode=xf.checkPull(this,c,df,e))&&s.checkPut(this,c,df,e))){if(r="vertical"===this._getDirection(e,i),t=Bu(df),C("dragOverValid"),ep.eventCanceled)return m;if(a)return uf=pf,I(),this._hideClone(),C("revert"),ep.eventCanceled||(mf?pf.insertBefore(df,mf):pf.appendChild(df)),R(!0);var h=Gu(o,l.draggable);if(!h||function(e,t,n){var a=Bu(Gu(n.el,n.options.draggable)),r=10;return t?e.clientX>a.right+r||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+r}(e,r,this)&&!h.animated){if(h===df)return R(!1);if(h&&o===e.target&&(i=h),i&&(n=Bu(i)),!1!==tp(pf,o,df,t,i,n,e,!!i))return I(),o.appendChild(df),uf=o,N(),R(!0)}else if(h&&function(e,t,n){var a=Bu(zu(n.el,0,n.options,!0)),r=10;return t?e.clientX<a.left-r||e.clientY<a.top&&e.clientX<a.right:e.clientY<a.top-r||e.clientY<a.bottom&&e.clientX<a.left}(e,r,this)){var v=zu(o,0,l,!0);if(v===df)return R(!1);if(n=Bu(i=v),!1!==tp(pf,o,df,t,i,n,e,!1))return I(),o.insertBefore(df,v),uf=o,N(),R(!0)}else if(i.parentNode===o){n=Bu(i);var g,y,b,_=df.parentNode!==o,w=!function(e,t,n){var a=n?e.left:e.top,r=n?e.right:e.bottom,o=n?e.width:e.height,i=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return a===i||r===l||a+o/2===i+s/2}(df.animated&&df.toRect||t,i.animated&&i.toRect||n,r),x=r?"top":"left",S=Vu(i,"top","top")||Vu(df,"top","top"),k=S?S.scrollTop:void 0;if(Rf!==i&&(y=n[x],Ff=!1,Pf=!w&&l.invertSwap||_),g=function(e,t,n,a,r,o,i,l){var s=a?e.clientY:e.clientX,c=a?n.height:n.width,d=a?n.top:n.left,u=a?n.bottom:n.right,f=!1;if(!i)if(l&&Tf<c*r){if(!Ff&&(1===Nf?s>d+c*o/2:s<u-c*o/2)&&(Ff=!0),Ff)f=!0;else if(1===Nf?s<d+Tf:s>u-Tf)return-Nf}else if(s>d+c*(1-r)/2&&s<u-c*(1-r)/2)return function(e){return Ku(df)<Ku(e)?1:-1}(t);if((f=f||i)&&(s<d+c*o/2||s>u-c*o/2))return s>d+c/2?1:-1;return 0}(e,i,n,r,w?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Pf,Rf===i),0!==g){var E=Ku(df);do{E-=g,b=uf.children[E]}while(b&&("none"===Lu(b,"display")||b===ff))}if(0===g||b===i)return R(!1);Rf=i,Nf=g;var A=i.nextElementSibling,O=!1,$=tp(pf,o,df,t,i,n,e,O=1===g);if(!1!==$)return 1!==$&&-1!==$||(O=1===$),Bf=!0,setTimeout(ap,30),I(),O&&!A?o.appendChild(df):i.parentNode.insertBefore(df,O?A:i),S&&Yu(S,0,k-S.scrollTop),uf=df.parentNode,void 0===y||Pf||(Tf=Math.abs(y-Bu(i)[x])),N(),R(!0)}if(o.contains(df))return R(!1)}return!1}function C(l,s){sf(l,p,mu({evt:e,isOwner:d,axis:r?"vertical":"horizontal",revert:a,dragRect:t,targetRect:n,canSort:u,fromSortable:f,target:i,completed:R,onMove:function(n,a){return tp(pf,o,df,t,n,Bu(n),e,a)},changed:N},s))}function I(){C("dragOverAnimationCapture"),p.captureAnimationState(),p!==f&&f.captureAnimationState()}function R(t){return C("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(p),p!==f&&(Mu(df,Sf?Sf.options.ghostClass:c.options.ghostClass,!1),Mu(df,l.ghostClass,!0)),Sf!==p&&p!==ep.active?Sf=p:p===ep.active&&Sf&&(Sf=null),f===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){C("dragOverAnimationComplete"),p._ignoreWhileAnimating=null}),p!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(i===df&&!df.animated||i===o&&!i.animated)&&(Rf=null),l.dragoverBubble||e.rootEl||i===document||(df.parentNode[ef]._isOutsideThisEl(e.target),!t&&Qf(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function N(){bf=Ku(df),wf=Ku(df,l.draggable),cf({sortable:p,name:"change",toEl:o,newIndex:bf,newDraggableIndex:wf,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){Iu(document,"mousemove",this._onTouchMove),Iu(document,"touchmove",this._onTouchMove),Iu(document,"pointermove",this._onTouchMove),Iu(document,"dragover",Qf),Iu(document,"mousemove",Qf),Iu(document,"touchmove",Qf)},_offUpEvents:function(){var e=this.el.ownerDocument;Iu(e,"mouseup",this._onDrop),Iu(e,"touchend",this._onDrop),Iu(e,"pointerup",this._onDrop),Iu(e,"touchcancel",this._onDrop),Iu(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;bf=Ku(df),wf=Ku(df,n.draggable),sf("drop",this,{evt:e}),uf=df&&df.parentNode,bf=Ku(df),wf=Ku(df,n.draggable),ep.eventCanceled||(Df=!1,Pf=!1,Ff=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),ip(this.cloneId),ip(this._dragStartId),this.nativeDraggable&&(Iu(document,"drop",this),Iu(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Eu&&Lu(document.body,"user-select",""),Lu(df,"transform",""),e&&(If&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ff&&ff.parentNode&&ff.parentNode.removeChild(ff),(pf===uf||Sf&&"clone"!==Sf.lastPutMode)&&vf&&vf.parentNode&&vf.parentNode.removeChild(vf),df&&(this.nativeDraggable&&Iu(df,"dragend",this),np(df),df.style["will-change"]="",If&&!Df&&Mu(df,Sf?Sf.options.ghostClass:this.options.ghostClass,!1),Mu(df,this.options.chosenClass,!1),cf({sortable:this,name:"unchoose",toEl:uf,newIndex:null,newDraggableIndex:null,originalEvent:e}),pf!==uf?(bf>=0&&(cf({rootEl:uf,name:"add",toEl:uf,fromEl:pf,originalEvent:e}),cf({sortable:this,name:"remove",toEl:uf,originalEvent:e}),cf({rootEl:uf,name:"sort",toEl:uf,fromEl:pf,originalEvent:e}),cf({sortable:this,name:"sort",toEl:uf,originalEvent:e})),Sf&&Sf.save()):bf!==yf&&bf>=0&&(cf({sortable:this,name:"update",toEl:uf,originalEvent:e}),cf({sortable:this,name:"sort",toEl:uf,originalEvent:e})),ep.active&&(null!=bf&&-1!==bf||(bf=yf,wf=_f),cf({sortable:this,name:"end",toEl:uf,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){sf("nulling",this),pf=df=uf=ff=mf=vf=hf=gf=kf=Ef=If=bf=wf=yf=_f=Rf=Nf=Sf=xf=ep.dragged=ep.ghost=ep.clone=ep.active=null,Vf.forEach(function(e){e.checked=!0}),Vf.length=Af=Of=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":df&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,a=0,r=n.length,o=this.options;a<r;a++)Tu(e=n[a],o.draggable,this.el,!1)&&t.push(e.getAttribute(o.dataIdAttr)||rp(e));return t},sort:function(e,t){var n={},a=this.el;this.toArray().forEach(function(e,t){var r=a.children[t];Tu(r,this.options.draggable,a,!1)&&(n[e]=r)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(a.removeChild(n[e]),a.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return Tu(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];var a=rf.modifyOption(this,e,t);n[e]=void 0!==a?a:t,"group"===e&&Wf(n)},destroy:function(){sf("destroy",this);var e=this.el;e[ef]=null,Iu(e,"mousedown",this._onTapStart),Iu(e,"touchstart",this._onTapStart),Iu(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(Iu(e,"dragover",this),Iu(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(e){e.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),Lf.splice(Lf.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!gf){if(sf("hideClone",this),ep.eventCanceled)return;Lu(vf,"display","none"),this.options.removeCloneOnHide&&vf.parentNode&&vf.parentNode.removeChild(vf),gf=!0}},_showClone:function(e){if("clone"===e.lastPutMode){if(gf){if(sf("showClone",this),ep.eventCanceled)return;df.parentNode!=pf||this.options.group.revertClone?mf?pf.insertBefore(vf,mf):pf.appendChild(vf):pf.insertBefore(vf,df),this.options.group.revertClone&&this.animate(df,vf),Lu(vf,"display",""),gf=!1}}else this._hideClone()}},zf&&Cu(document,"touchmove",function(e){(ep.active||Df)&&e.cancelable&&e.preventDefault()}),ep.utils={on:Cu,off:Iu,css:Lu,find:Pu,is:function(e,t){return!!Tu(e,t,e,!1)},extend:function(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},throttle:Wu,closest:Tu,toggleClass:Mu,clone:Ju,index:Ku,nextTick:op,cancelNextTick:ip,detectDirection:qf,getChild:zu},ep.get=function(e){return e[ef]},ep.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]),t.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(ep.utils=mu(mu({},ep.utils),e.utils)),rf.mount(e)})},ep.create=function(e,t){return new ep(e,t)},ep.version="1.14.0";var lp,sp,cp,dp,up,fp,pp=[],mp=!1;function hp(){pp.forEach(function(e){clearInterval(e.pid)}),pp=[]}function vp(){clearInterval(fp)}var gp,yp=Wu(function(e,t,n,a){if(t.scroll){var r,o=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,l=t.scrollSensitivity,s=t.scrollSpeed,c=Uu(),d=!1;sp!==n&&(sp=n,hp(),lp=t.scroll,r=t.scrollFn,!0===lp&&(lp=Xu(n,!0)));var u=0,f=lp;do{var p=f,m=Bu(p),h=m.top,v=m.bottom,g=m.left,y=m.right,b=m.width,_=m.height,w=void 0,x=void 0,S=p.scrollWidth,k=p.scrollHeight,E=Lu(p),A=p.scrollLeft,O=p.scrollTop;p===c?(w=b<S&&("auto"===E.overflowX||"scroll"===E.overflowX||"visible"===E.overflowX),x=_<k&&("auto"===E.overflowY||"scroll"===E.overflowY||"visible"===E.overflowY)):(w=b<S&&("auto"===E.overflowX||"scroll"===E.overflowX),x=_<k&&("auto"===E.overflowY||"scroll"===E.overflowY));var $=w&&(Math.abs(y-o)<=l&&A+b<S)-(Math.abs(g-o)<=l&&!!A),C=x&&(Math.abs(v-i)<=l&&O+_<k)-(Math.abs(h-i)<=l&&!!O);if(!pp[u])for(var I=0;I<=u;I++)pp[I]||(pp[I]={});pp[u].vx==$&&pp[u].vy==C&&pp[u].el===p||(pp[u].el=p,pp[u].vx=$,pp[u].vy=C,clearInterval(pp[u].pid),0==$&&0==C||(d=!0,pp[u].pid=setInterval(function(){a&&0===this.layer&&ep.active._onTouchMove(up);var t=pp[this.layer].vy?pp[this.layer].vy*s:0,n=pp[this.layer].vx?pp[this.layer].vx*s:0;"function"==typeof r&&"continue"!==r.call(ep.dragged.parentNode[ef],n,t,e,up,pp[this.layer].el)||Yu(pp[this.layer].el,n,t)}.bind({layer:u}),24))),u++}while(t.bubbleScroll&&f!==c&&(f=Xu(f,!1)));mp=d}},30),bp=function(e){var t=e.originalEvent,n=e.putSortable,a=e.dragEl,r=e.activeSortable,o=e.dispatchSortableEvent,i=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(t){var s=n||r;i();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,d=document.elementFromPoint(c.clientX,c.clientY);l(),s&&!s.el.contains(d)&&(o("spill"),this.onSpill({dragEl:a,putSortable:n}))}};function _p(){}function wp(){}_p.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var a=zu(this.sortable.el,this.startIndex,this.options);a?this.sortable.el.insertBefore(t,a):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:bp},gu(_p,{pluginName:"revertOnSpill"}),wp.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:bp},gu(wp,{pluginName:"removeOnSpill"});var xp,Sp,kp,Ep,Ap,Op=[],$p=[],Cp=!1,Ip=!1,Rp=!1;function Np(e,t){$p.forEach(function(n,a){var r=t.children[n.sortableIndex+(e?Number(a):0)];r?t.insertBefore(n,r):t.appendChild(n)})}function Tp(){Op.forEach(function(e){e!==kp&&e.parentNode&&e.parentNode.removeChild(e)})}ep.mount(new function(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?Cu(document,"dragover",this._handleAutoScroll):this.options.supportPointer?Cu(document,"pointermove",this._handleFallbackAutoScroll):t.touches?Cu(document,"touchmove",this._handleFallbackAutoScroll):Cu(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?Iu(document,"dragover",this._handleAutoScroll):(Iu(document,"pointermove",this._handleFallbackAutoScroll),Iu(document,"touchmove",this._handleFallbackAutoScroll),Iu(document,"mousemove",this._handleFallbackAutoScroll)),vp(),hp(),clearTimeout(ju),ju=void 0},nulling:function(){up=sp=lp=mp=fp=cp=dp=null,pp.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,a=(e.touches?e.touches[0]:e).clientX,r=(e.touches?e.touches[0]:e).clientY,o=document.elementFromPoint(a,r);if(up=e,t||this.options.forceAutoScrollFallback||Su||xu||Eu){yp(e,this.options,o,t);var i=Xu(o,!0);!mp||fp&&a===cp&&r===dp||(fp&&vp(),fp=setInterval(function(){var o=Xu(document.elementFromPoint(a,r),!0);o!==i&&(i=o,hp()),yp(e,n.options,o,t)},10),cp=a,dp=r)}else{if(!this.options.bubbleScroll||Xu(o,!0)===Uu())return void hp();yp(e,this.options,Xu(o,!1),!1)}}},gu(e,{pluginName:"scroll",initializeByDefault:!0})}),ep.mount(wp,_p);var jp,Dp=Object.freeze({__proto__:null,MultiDrag:function(){function e(e){for(var t in this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this));e.options.supportPointer?Cu(document,"pointerup",this._deselectMultiDrag):(Cu(document,"mouseup",this._deselectMultiDrag),Cu(document,"touchend",this._deselectMultiDrag)),Cu(document,"keydown",this._checkKeyDown),Cu(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(t,n){var a="";Op.length&&Sp===e?Op.forEach(function(e,t){a+=(t?", ":"")+e.textContent}):a=n.textContent,t.setData("Text",a)}}}return e.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(e){var t=e.dragEl;kp=t},delayEnded:function(){this.isMultiDrag=~Op.indexOf(kp)},setupClone:function(e){var t=e.sortable,n=e.cancel;if(this.isMultiDrag){for(var a=0;a<Op.length;a++)$p.push(Ju(Op[a])),$p[a].sortableIndex=Op[a].sortableIndex,$p[a].draggable=!1,$p[a].style["will-change"]="",Mu($p[a],this.options.selectedClass,!1),Op[a]===kp&&Mu($p[a],this.options.chosenClass,!1);t._hideClone(),n()}},clone:function(e){var t=e.sortable,n=e.rootEl,a=e.dispatchSortableEvent,r=e.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||Op.length&&Sp===t&&(Np(!0,n),a("clone"),r()))},showClone:function(e){var t=e.cloneNowShown,n=e.rootEl,a=e.cancel;this.isMultiDrag&&(Np(!1,n),$p.forEach(function(e){Lu(e,"display","")}),t(),Ap=!1,a())},hideClone:function(e){var t=this;e.sortable;var n=e.cloneNowHidden,a=e.cancel;this.isMultiDrag&&($p.forEach(function(e){Lu(e,"display","none"),t.options.removeCloneOnHide&&e.parentNode&&e.parentNode.removeChild(e)}),n(),Ap=!0,a())},dragStartGlobal:function(e){e.sortable,!this.isMultiDrag&&Sp&&Sp.multiDrag._deselectMultiDrag(),Op.forEach(function(e){e.sortableIndex=Ku(e)}),Op=Op.sort(function(e,t){return e.sortableIndex-t.sortableIndex}),Rp=!0},dragStarted:function(e){var t=this,n=e.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){Op.forEach(function(e){e!==kp&&Lu(e,"position","absolute")});var a=Bu(kp,!1,!0,!0);Op.forEach(function(e){e!==kp&&Qu(e,a)}),Ip=!0,Cp=!0}n.animateAll(function(){Ip=!1,Cp=!1,t.options.animation&&Op.forEach(function(e){Zu(e)}),t.options.sort&&Tp()})}},dragOver:function(e){var t=e.target,n=e.completed,a=e.cancel;Ip&&~Op.indexOf(t)&&(n(!1),a())},revert:function(e){var t=e.fromSortable,n=e.rootEl,a=e.sortable,r=e.dragRect;Op.length>1&&(Op.forEach(function(e){a.addAnimationState({target:e,rect:Ip?Bu(e):r}),Zu(e),e.fromRect=r,t.removeAnimationState(e)}),Ip=!1,function(e,t){Op.forEach(function(n,a){var r=t.children[n.sortableIndex+(e?Number(a):0)];r?t.insertBefore(n,r):t.appendChild(n)})}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(e){var t=e.sortable,n=e.isOwner,a=e.insertion,r=e.activeSortable,o=e.parentEl,i=e.putSortable,l=this.options;if(a){if(n&&r._hideClone(),Cp=!1,l.animation&&Op.length>1&&(Ip||!n&&!r.options.sort&&!i)){var s=Bu(kp,!1,!0,!0);Op.forEach(function(e){e!==kp&&(Qu(e,s),o.appendChild(e))}),Ip=!0}if(!n)if(Ip||Tp(),Op.length>1){var c=Ap;r._showClone(t),r.options.animation&&!Ap&&c&&$p.forEach(function(e){r.addAnimationState({target:e,rect:Ep}),e.fromRect=Ep,e.thisAnimationDuration=null})}else r._showClone(t)}},dragOverAnimationCapture:function(e){var t=e.dragRect,n=e.isOwner,a=e.activeSortable;if(Op.forEach(function(e){e.thisAnimationDuration=null}),a.options.animation&&!n&&a.multiDrag.isMultiDrag){Ep=gu({},t);var r=Fu(kp,!0);Ep.top-=r.f,Ep.left-=r.e}},dragOverAnimationComplete:function(){Ip&&(Ip=!1,Tp())},drop:function(e){var t=e.originalEvent,n=e.rootEl,a=e.parentEl,r=e.sortable,o=e.dispatchSortableEvent,i=e.oldIndex,l=e.putSortable,s=l||this.sortable;if(t){var c=this.options,d=a.children;if(!Rp)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),Mu(kp,c.selectedClass,!~Op.indexOf(kp)),~Op.indexOf(kp))Op.splice(Op.indexOf(kp),1),xp=null,of({sortable:r,rootEl:n,name:"deselect",targetEl:kp});else{if(Op.push(kp),of({sortable:r,rootEl:n,name:"select",targetEl:kp}),t.shiftKey&&xp&&r.el.contains(xp)){var u,f,p=Ku(xp),m=Ku(kp);if(~p&&~m&&p!==m)for(m>p?(f=p,u=m):(f=m,u=p+1);f<u;f++)~Op.indexOf(d[f])||(Mu(d[f],c.selectedClass,!0),Op.push(d[f]),of({sortable:r,rootEl:n,name:"select",targetEl:d[f]}))}else xp=kp;Sp=s}if(Rp&&this.isMultiDrag){if(Ip=!1,(a[ef].options.sort||a!==n)&&Op.length>1){var h=Bu(kp),v=Ku(kp,":not(."+this.options.selectedClass+")");if(!Cp&&c.animation&&(kp.thisAnimationDuration=null),s.captureAnimationState(),!Cp&&(c.animation&&(kp.fromRect=h,Op.forEach(function(e){if(e.thisAnimationDuration=null,e!==kp){var t=Ip?Bu(e):h;e.fromRect=t,s.addAnimationState({target:e,rect:t})}})),Tp(),Op.forEach(function(e){d[v]?a.insertBefore(e,d[v]):a.appendChild(e),v++}),i===Ku(kp))){var g=!1;Op.forEach(function(e){e.sortableIndex===Ku(e)||(g=!0)}),g&&o("update")}Op.forEach(function(e){Zu(e)}),s.animateAll()}Sp=s}(n===a||l&&"clone"!==l.lastPutMode)&&$p.forEach(function(e){e.parentNode&&e.parentNode.removeChild(e)})}},nullingGlobal:function(){this.isMultiDrag=Rp=!1,$p.length=0},destroyGlobal:function(){this._deselectMultiDrag(),Iu(document,"pointerup",this._deselectMultiDrag),Iu(document,"mouseup",this._deselectMultiDrag),Iu(document,"touchend",this._deselectMultiDrag),Iu(document,"keydown",this._checkKeyDown),Iu(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(e){if(!(void 0!==Rp&&Rp||Sp!==this.sortable||e&&Tu(e.target,this.options.draggable,this.sortable.el,!1)||e&&0!==e.button))for(;Op.length;){var t=Op[0];Mu(t,this.options.selectedClass,!1),Op.shift(),of({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:t})}},_checkKeyDown:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},gu(e,{pluginName:"multiDrag",utils:{select:function(e){var t=e.parentNode[ef];t&&t.options.multiDrag&&!~Op.indexOf(e)&&(Sp&&Sp!==t&&(Sp.multiDrag._deselectMultiDrag(),Sp=t),Mu(e,t.options.selectedClass,!0),Op.push(e))},deselect:function(e){var t=e.parentNode[ef],n=Op.indexOf(e);t&&t.options.multiDrag&&~n&&(Mu(e,t.options.selectedClass,!1),Op.splice(n,1))}},eventProperties:function(){var e=this,t=[],n=[];return Op.forEach(function(a){var r;t.push({multiDragElement:a,index:a.sortableIndex}),r=Ip&&a!==kp?-1:Ip?Ku(a,":not(."+e.options.selectedClass+")"):Ku(a),n.push({multiDragElement:a,index:r})}),{items:bu(Op),clones:[].concat($p),oldIndicies:t,newIndicies:n}},optionListeners:{multiDragKey:function(e){return"ctrl"===(e=e.toLowerCase())?e="Control":e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1)),e}}})},Sortable:ep,Swap:function(){function e(){this.defaults={swapClass:"sortable-swap-highlight"}}return e.prototype={dragStart:function(e){var t=e.dragEl;gp=t},dragOverValid:function(e){var t=e.completed,n=e.target,a=e.onMove,r=e.activeSortable,o=e.changed,i=e.cancel;if(r.options.swap){var l=this.sortable.el,s=this.options;if(n&&n!==l){var c=gp;!1!==a(n)?(Mu(n,s.swapClass,!0),gp=n):gp=null,c&&c!==gp&&Mu(c,s.swapClass,!1)}o(),t(!0),i()}},drop:function(e){var t=e.activeSortable,n=e.putSortable,a=e.dragEl,r=n||this.sortable,o=this.options;gp&&Mu(gp,o.swapClass,!1),gp&&(o.swap||n&&n.options.swap)&&a!==gp&&(r.captureAnimationState(),r!==t&&t.captureAnimationState(),function(e,t){var n,a,r=e.parentNode,o=t.parentNode;if(!r||!o||r.isEqualNode(t)||o.isEqualNode(e))return;n=Ku(e),a=Ku(t),r.isEqualNode(o)&&n<a&&a++;r.insertBefore(t,r.children[n]),o.insertBefore(e,o.children[a])}(a,gp),r.animateAll(),r!==t&&t.animateAll())},nulling:function(){gp=null}},gu(e,{pluginName:"swap",eventProperties:function(){return{swapItem:gp}}})},default:ep});var Mp,Lp=jp?uu.exports:(jp=1,"undefined"!=typeof self&&self,Mp=function(e,t){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"00ee":function(e,t,n){var a={};a[n("b622")("toStringTag")]="z",e.exports="[object z]"===String(a)},"0366":function(e,t,n){var a=n("1c0b");e.exports=function(e,t,n){if(a(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,a){return e.call(t,n,a)};case 3:return function(n,a,r){return e.call(t,n,a,r)}}return function(){return e.apply(t,arguments)}}},"057f":function(e,t,n){var a=n("fc6a"),r=n("241c").f,o={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==o.call(e)?function(e){try{return r(e)}catch(e){return i.slice()}}(e):r(a(e))}},"06cf":function(e,t,n){var a=n("83ab"),r=n("d1e7"),o=n("5c6c"),i=n("fc6a"),l=n("c04e"),s=n("5135"),c=n("0cfb"),d=Object.getOwnPropertyDescriptor;t.f=a?d:function(e,t){if(e=i(e),t=l(t,!0),c)try{return d(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},"0cfb":function(e,t,n){var a=n("83ab"),r=n("d039"),o=n("cc12");e.exports=!a&&!r(function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},"13d5":function(e,t,n){var a=n("23e7"),r=n("d58f").left,o=n("a640"),i=n("ae40"),l=o("reduce"),s=i("reduce",{1:0});a({target:"Array",proto:!0,forced:!l||!s},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,t,n){var a=n("c6b6"),r=n("9263");e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var o=n.call(e,t);if("object"!=typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==a(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},"159b":function(e,t,n){var a=n("da84"),r=n("fdbc"),o=n("17c2"),i=n("9112");for(var l in r){var s=a[l],c=s&&s.prototype;if(c&&c.forEach!==o)try{i(c,"forEach",o)}catch(e){c.forEach=o}}},"17c2":function(e,t,n){var a=n("b727").forEach,r=n("a640"),o=n("ae40"),i=r("forEach"),l=o("forEach");e.exports=i&&l?[].forEach:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}},"1be4":function(e,t,n){var a=n("d066");e.exports=a("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,t,n){var a=n("b622")("iterator"),r=!1;try{var o=0,i={next:function(){return{done:!!o++}},return:function(){r=!0}};i[a]=function(){return this},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var o={};o[a]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},"1d80":function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var a=n("d039"),r=n("b622"),o=n("2d00"),i=r("species");e.exports=function(e){return o>=51||!a(function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},"23cb":function(e,t,n){var a=n("a691"),r=Math.max,o=Math.min;e.exports=function(e,t){var n=a(e);return n<0?r(n+t,0):o(n,t)}},"23e7":function(e,t,n){var a=n("da84"),r=n("06cf").f,o=n("9112"),i=n("6eeb"),l=n("ce4e"),s=n("e893"),c=n("94ca");e.exports=function(e,t){var n,d,u,f,p,m=e.target,h=e.global,v=e.stat;if(n=h?a:v?a[m]||l(m,{}):(a[m]||{}).prototype)for(d in t){if(f=t[d],u=e.noTargetGet?(p=r(n,d))&&p.value:n[d],!c(h?d:m+(v?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;s(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),i(n,d,f,e)}}},"241c":function(e,t,n){var a=n("ca84"),r=n("7839").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,r)}},"25f0":function(e,t,n){var a=n("6eeb"),r=n("825a"),o=n("d039"),i=n("ad6d"),l="toString",s=RegExp.prototype,c=s[l],d=o(function(){return"/a/b"!=c.call({source:"a",flags:"b"})}),u=c.name!=l;(d||u)&&a(RegExp.prototype,l,function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in s)?i.call(e):n)},{unsafe:!0})},"2ca0":function(e,t,n){var a,r=n("23e7"),o=n("06cf").f,i=n("50c4"),l=n("5a34"),s=n("1d80"),c=n("ab13"),d=n("c430"),u="".startsWith,f=Math.min,p=c("startsWith");r({target:"String",proto:!0,forced:!(!d&&!p&&(a=o(String.prototype,"startsWith"),a&&!a.writable)||p)},{startsWith:function(e){var t=String(s(this));l(e);var n=i(f(arguments.length>1?arguments[1]:void 0,t.length)),a=String(e);return u?u.call(t,a,n):t.slice(n,n+a.length)===a}})},"2d00":function(e,t,n){var a,r,o=n("da84"),i=n("342f"),l=o.process,s=l&&l.versions,c=s&&s.v8;c?r=(a=c.split("."))[0]+a[1]:i&&(!(a=i.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=i.match(/Chrome\/(\d+)/))&&(r=a[1]),e.exports=r&&+r},"342f":function(e,t,n){var a=n("d066");e.exports=a("navigator","userAgent")||""},"35a1":function(e,t,n){var a=n("f5df"),r=n("3f8c"),o=n("b622")("iterator");e.exports=function(e){if(null!=e)return e[o]||e["@@iterator"]||r[a(e)]}},"37e8":function(e,t,n){var a=n("83ab"),r=n("9bf2"),o=n("825a"),i=n("df75");e.exports=a?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),l=a.length,s=0;l>s;)r.f(e,n=a[s++],t[n]);return e}},"3bbe":function(e,t,n){var a=n("861d");e.exports=function(e){if(!a(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"3ca3":function(e,t,n){var a=n("6547").charAt,r=n("69f3"),o=n("7dd0"),i="String Iterator",l=r.set,s=r.getterFor(i);o(String,"String",function(e){l(this,{type:i,string:String(e),index:0})},function(){var e,t=s(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=a(n,r),t.index+=e.length,{value:e,done:!1})})},"3f8c":function(e,t){e.exports={}},4160:function(e,t,n){var a=n("23e7"),r=n("17c2");a({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},"428f":function(e,t,n){var a=n("da84");e.exports=a},"44ad":function(e,t,n){var a=n("d039"),r=n("c6b6"),o="".split;e.exports=a(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==r(e)?o.call(e,""):Object(e)}:Object},"44d2":function(e,t,n){var a=n("b622"),r=n("7c73"),o=n("9bf2"),i=a("unscopables"),l=Array.prototype;null==l[i]&&o.f(l,i,{configurable:!0,value:r(null)}),e.exports=function(e){l[i][e]=!0}},"44e7":function(e,t,n){var a=n("861d"),r=n("c6b6"),o=n("b622")("match");e.exports=function(e){var t;return a(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==r(e))}},4930:function(e,t,n){var a=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!a(function(){return!String(Symbol())})},"4d64":function(e,t,n){var a=n("fc6a"),r=n("50c4"),o=n("23cb"),i=function(e){return function(t,n,i){var l,s=a(t),c=r(s.length),d=o(i,c);if(e&&n!=n){for(;c>d;)if((l=s[d++])!=l)return!0}else for(;c>d;d++)if((e||d in s)&&s[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"4de4":function(e,t,n){var a=n("23e7"),r=n("b727").filter,o=n("1dde"),i=n("ae40"),l=o("filter"),s=i("filter");a({target:"Array",proto:!0,forced:!l||!s},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,n){var a=n("0366"),r=n("7b0b"),o=n("9bdd"),i=n("e95a"),l=n("50c4"),s=n("8418"),c=n("35a1");e.exports=function(e){var t,n,d,u,f,p,m=r(e),h="function"==typeof this?this:Array,v=arguments.length,g=v>1?arguments[1]:void 0,y=void 0!==g,b=c(m),_=0;if(y&&(g=a(g,v>2?arguments[2]:void 0,2)),null==b||h==Array&&i(b))for(n=new h(t=l(m.length));t>_;_++)p=y?g(m[_],_):m[_],s(n,_,p);else for(f=(u=b.call(m)).next,n=new h;!(d=f.call(u)).done;_++)p=y?o(u,g,[d.value,_],!0):d.value,s(n,_,p);return n.length=_,n}},"4fad":function(e,t,n){var a=n("23e7"),r=n("6f53").entries;a({target:"Object",stat:!0},{entries:function(e){return r(e)}})},"50c4":function(e,t,n){var a=n("a691"),r=Math.min;e.exports=function(e){return e>0?r(a(e),9007199254740991):0}},5135:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},5319:function(e,t,n){var a=n("d784"),r=n("825a"),o=n("7b0b"),i=n("50c4"),l=n("a691"),s=n("1d80"),c=n("8aa5"),d=n("14c3"),u=Math.max,f=Math.min,p=Math.floor,m=/\$([$&'`]|\d\d?|<[^>]*>)/g,h=/\$([$&'`]|\d\d?)/g,v=function(e){return void 0===e?e:String(e)};a("replace",2,function(e,t,n,a){var g=a.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,y=a.REPLACE_KEEPS_$0,b=g?"$":"$0";return[function(n,a){var r=s(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r,a):t.call(String(r),n,a)},function(e,a){if(!g&&y||"string"==typeof a&&-1===a.indexOf(b)){var o=n(t,e,this,a);if(o.done)return o.value}var s=r(e),p=String(this),m="function"==typeof a;m||(a=String(a));var h=s.global;if(h){var w=s.unicode;s.lastIndex=0}for(var x=[];;){var S=d(s,p);if(null===S)break;if(x.push(S),!h)break;""===String(S[0])&&(s.lastIndex=c(p,i(s.lastIndex),w))}for(var k="",E=0,A=0;A<x.length;A++){S=x[A];for(var O=String(S[0]),$=u(f(l(S.index),p.length),0),C=[],I=1;I<S.length;I++)C.push(v(S[I]));var R=S.groups;if(m){var N=[O].concat(C,$,p);void 0!==R&&N.push(R);var T=String(a.apply(void 0,N))}else T=_(O,p,$,C,R,a);$>=E&&(k+=p.slice(E,$)+T,E=$+O.length)}return k+p.slice(E)}];function _(e,n,a,r,i,l){var s=a+e.length,c=r.length,d=h;return void 0!==i&&(i=o(i),d=m),t.call(l,d,function(t,o){var l;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,a);case"'":return n.slice(s);case"<":l=i[o.slice(1,-1)];break;default:var d=+o;if(0===d)return t;if(d>c){var u=p(d/10);return 0===u?t:u<=c?void 0===r[u-1]?o.charAt(1):r[u-1]+o.charAt(1):t}l=r[d-1]}return void 0===l?"":l})}})},5692:function(e,t,n){var a=n("c430"),r=n("c6cd");(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:a?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var a=n("d066"),r=n("241c"),o=n("7418"),i=n("825a");e.exports=a("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=o.f;return n?t.concat(n(e)):t}},"5a34":function(e,t,n){var a=n("44e7");e.exports=function(e){if(a(e))throw TypeError("The method doesn't accept regular expressions");return e}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"5db7":function(e,t,n){var a=n("23e7"),r=n("a2bf"),o=n("7b0b"),i=n("50c4"),l=n("1c0b"),s=n("65f0");a({target:"Array",proto:!0},{flatMap:function(e){var t,n=o(this),a=i(n.length);return l(e),(t=s(n,0)).length=r(t,n,n,a,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},6547:function(e,t,n){var a=n("a691"),r=n("1d80"),o=function(e){return function(t,n){var o,i,l=String(r(t)),s=a(n),c=l.length;return s<0||s>=c?e?"":void 0:(o=l.charCodeAt(s))<55296||o>56319||s+1===c||(i=l.charCodeAt(s+1))<56320||i>57343?e?l.charAt(s):o:e?l.slice(s,s+2):i-56320+(o-55296<<10)+65536}};e.exports={codeAt:o(!1),charAt:o(!0)}},"65f0":function(e,t,n){var a=n("861d"),r=n("e8b5"),o=n("b622")("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?a(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var a,r,o,i=n("7f9a"),l=n("da84"),s=n("861d"),c=n("9112"),d=n("5135"),u=n("f772"),f=n("d012"),p=l.WeakMap;if(i){var m=new p,h=m.get,v=m.has,g=m.set;a=function(e,t){return g.call(m,e,t),t},r=function(e){return h.call(m,e)||{}},o=function(e){return v.call(m,e)}}else{var y=u("state");f[y]=!0,a=function(e,t){return c(e,y,t),t},r=function(e){return d(e,y)?e[y]:{}},o=function(e){return d(e,y)}}e.exports={set:a,get:r,has:o,enforce:function(e){return o(e)?r(e):a(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},"6eeb":function(e,t,n){var a=n("da84"),r=n("9112"),o=n("5135"),i=n("ce4e"),l=n("8925"),s=n("69f3"),c=s.get,d=s.enforce,u=String(String).split("String");(e.exports=function(e,t,n,l){var s=!!l&&!!l.unsafe,c=!!l&&!!l.enumerable,f=!!l&&!!l.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||r(n,"name",t),d(n).source=u.join("string"==typeof t?t:"")),e!==a?(s?!f&&e[t]&&(c=!0):delete e[t],c?e[t]=n:r(e,t,n)):c?e[t]=n:i(t,n)})(Function.prototype,"toString",function(){return"function"==typeof this&&c(this).source||l(this)})},"6f53":function(e,t,n){var a=n("83ab"),r=n("df75"),o=n("fc6a"),i=n("d1e7").f,l=function(e){return function(t){for(var n,l=o(t),s=r(l),c=s.length,d=0,u=[];c>d;)n=s[d++],a&&!i.call(l,n)||u.push(e?[n,l[n]]:l[n]);return u}};e.exports={entries:l(!0),values:l(!1)}},"73d9":function(e,t,n){n("44d2")("flatMap")},7418:function(e,t){t.f=Object.getOwnPropertySymbols},"746f":function(e,t,n){var a=n("428f"),r=n("5135"),o=n("e538"),i=n("9bf2").f;e.exports=function(e){var t=a.Symbol||(a.Symbol={});r(t,e)||i(t,e,{value:o.f(e)})}},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,t,n){var a=n("1d80");e.exports=function(e){return Object(a(e))}},"7c73":function(e,t,n){var a,r=n("825a"),o=n("37e8"),i=n("7839"),l=n("d012"),s=n("1be4"),c=n("cc12"),d=n("f772"),u="prototype",f="script",p=d("IE_PROTO"),m=function(){},h=function(e){return"<"+f+">"+e+"</"+f+">"},v=function(){try{a=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t,n;v=a?function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t}(a):(t=c("iframe"),n="java"+f+":",t.style.display="none",s.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F);for(var r=i.length;r--;)delete v[u][i[r]];return v()};l[p]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[u]=r(e),n=new m,m[u]=null,n[p]=e):n=v(),void 0===t?n:o(n,t)}},"7dd0":function(e,t,n){var a=n("23e7"),r=n("9ed3"),o=n("e163"),i=n("d2bb"),l=n("d44e"),s=n("9112"),c=n("6eeb"),d=n("b622"),u=n("c430"),f=n("3f8c"),p=n("ae93"),m=p.IteratorPrototype,h=p.BUGGY_SAFARI_ITERATORS,v=d("iterator"),g="keys",y="values",b="entries",_=function(){return this};e.exports=function(e,t,n,d,p,w,x){r(n,t,d);var S,k,E,A=function(e){if(e===p&&R)return R;if(!h&&e in C)return C[e];switch(e){case g:case y:case b:return function(){return new n(this,e)}}return function(){return new n(this)}},O=t+" Iterator",$=!1,C=e.prototype,I=C[v]||C["@@iterator"]||p&&C[p],R=!h&&I||A(p),N="Array"==t&&C.entries||I;if(N&&(S=o(N.call(new e)),m!==Object.prototype&&S.next&&(u||o(S)===m||(i?i(S,m):"function"!=typeof S[v]&&s(S,v,_)),l(S,O,!0,!0),u&&(f[O]=_))),p==y&&I&&I.name!==y&&($=!0,R=function(){return I.call(this)}),u&&!x||C[v]===R||s(C,v,R),f[t]=R,p)if(k={values:A(y),keys:w?R:A(g),entries:A(b)},x)for(E in k)(h||$||!(E in C))&&c(C,E,k[E]);else a({target:t,proto:!0,forced:h||$},k);return k}},"7f9a":function(e,t,n){var a=n("da84"),r=n("8925"),o=a.WeakMap;e.exports="function"==typeof o&&/native code/.test(r(o))},"825a":function(e,t,n){var a=n("861d");e.exports=function(e){if(!a(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var a=n("d039");e.exports=!a(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},8418:function(e,t,n){var a=n("c04e"),r=n("9bf2"),o=n("5c6c");e.exports=function(e,t,n){var i=a(t);i in e?r.f(e,i,o(0,n)):e[i]=n}},"861d":function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},8875:function(e,t,n){var a,r,o;"undefined"!=typeof self&&self,r=[],a=function(){function e(){var t=Object.getOwnPropertyDescriptor(document,"currentScript");if(!t&&"currentScript"in document&&document.currentScript)return document.currentScript;if(t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw new Error}catch(e){var n,a,r,o=/@([^@]*):(\d+):(\d+)\s*$/gi,i=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(e.stack)||o.exec(e.stack),l=i&&i[1]||!1,s=i&&i[2]||!1,c=document.location.href.replace(document.location.hash,""),d=document.getElementsByTagName("script");l===c&&(n=document.documentElement.outerHTML,a=new RegExp("(?:[^\\n]+?\\n){0,"+(s-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),r=n.replace(a,"$1").trim());for(var u=0;u<d.length;u++){if("interactive"===d[u].readyState)return d[u];if(d[u].src===l)return d[u];if(l===c&&d[u].innerHTML&&d[u].innerHTML.trim()===r)return d[u]}return null}}return e},void 0===(o="function"==typeof a?a.apply(t,r):a)||(e.exports=o)},8925:function(e,t,n){var a=n("c6cd"),r=Function.toString;"function"!=typeof a.inspectSource&&(a.inspectSource=function(e){return r.call(e)}),e.exports=a.inspectSource},"8aa5":function(e,t,n){var a=n("6547").charAt;e.exports=function(e,t,n){return t+(n?a(e,t).length:1)}},"8bbf":function(t,n){t.exports=e},"90e3":function(e,t){var n=0,a=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+a).toString(36)}},9112:function(e,t,n){var a=n("83ab"),r=n("9bf2"),o=n("5c6c");e.exports=a?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},9263:function(e,t,n){var a,r,o=n("ad6d"),i=n("9f7f"),l=RegExp.prototype.exec,s=String.prototype.replace,c=l,d=(a=/a/,r=/b*/g,l.call(a,"a"),l.call(r,"a"),0!==a.lastIndex||0!==r.lastIndex),u=i.UNSUPPORTED_Y||i.BROKEN_CARET,f=void 0!==/()??/.exec("")[1];(d||f||u)&&(c=function(e){var t,n,a,r,i=this,c=u&&i.sticky,p=o.call(i),m=i.source,h=0,v=e;return c&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),v=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(m="(?: "+m+")",v=" "+v,h++),n=new RegExp("^(?:"+m+")",p)),f&&(n=new RegExp("^"+m+"$(?!\\s)",p)),d&&(t=i.lastIndex),a=l.call(c?n:i,v),c?a?(a.input=a.input.slice(h),a[0]=a[0].slice(h),a.index=i.lastIndex,i.lastIndex+=a[0].length):i.lastIndex=0:d&&a&&(i.lastIndex=i.global?a.index+a[0].length:t),f&&a&&a.length>1&&s.call(a[0],n,function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(a[r]=void 0)}),a}),e.exports=c},"94ca":function(e,t,n){var a=n("d039"),r=/#|\.prototype\./,o=function(e,t){var n=l[i(e)];return n==c||n!=s&&("function"==typeof t?a(t):!!t)},i=o.normalize=function(e){return String(e).replace(r,".").toLowerCase()},l=o.data={},s=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},"99af":function(e,t,n){var a=n("23e7"),r=n("d039"),o=n("e8b5"),i=n("861d"),l=n("7b0b"),s=n("50c4"),c=n("8418"),d=n("65f0"),u=n("1dde"),f=n("b622"),p=n("2d00"),m=f("isConcatSpreadable"),h=9007199254740991,v="Maximum allowed index exceeded",g=p>=51||!r(function(){var e=[];return e[m]=!1,e.concat()[0]!==e}),y=u("concat"),b=function(e){if(!i(e))return!1;var t=e[m];return void 0!==t?!!t:o(e)};a({target:"Array",proto:!0,forced:!g||!y},{concat:function(e){var t,n,a,r,o,i=l(this),u=d(i,0),f=0;for(t=-1,a=arguments.length;t<a;t++)if(b(o=-1===t?i:arguments[t])){if(f+(r=s(o.length))>h)throw TypeError(v);for(n=0;n<r;n++,f++)n in o&&c(u,f,o[n])}else{if(f>=h)throw TypeError(v);c(u,f++,o)}return u.length=f,u}})},"9bdd":function(e,t,n){var a=n("825a");e.exports=function(e,t,n,r){try{return r?t(a(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&a(o.call(e)),t}}},"9bf2":function(e,t,n){var a=n("83ab"),r=n("0cfb"),o=n("825a"),i=n("c04e"),l=Object.defineProperty;t.f=a?l:function(e,t,n){if(o(e),t=i(t,!0),o(n),r)try{return l(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"9ed3":function(e,t,n){var a=n("ae93").IteratorPrototype,r=n("7c73"),o=n("5c6c"),i=n("d44e"),l=n("3f8c"),s=function(){return this};e.exports=function(e,t,n){var c=t+" Iterator";return e.prototype=r(a,{next:o(1,n)}),i(e,c,!1,!0),l[c]=s,e}},"9f7f":function(e,t,n){var a=n("d039");function r(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=a(function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")}),t.BROKEN_CARET=a(function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")})},a2bf:function(e,t,n){var a=n("e8b5"),r=n("50c4"),o=n("0366"),i=function(e,t,n,l,s,c,d,u){for(var f,p=s,m=0,h=!!d&&o(d,u,3);m<l;){if(m in n){if(f=h?h(n[m],m,t):n[m],c>0&&a(f))p=i(e,t,f,r(f.length),p,c-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=f}p++}m++}return p};e.exports=i},a352:function(e,n){e.exports=t},a434:function(e,t,n){var a=n("23e7"),r=n("23cb"),o=n("a691"),i=n("50c4"),l=n("7b0b"),s=n("65f0"),c=n("8418"),d=n("1dde"),u=n("ae40"),f=d("splice"),p=u("splice",{ACCESSORS:!0,0:0,1:2}),m=Math.max,h=Math.min;a({target:"Array",proto:!0,forced:!f||!p},{splice:function(e,t){var n,a,d,u,f,p,v=l(this),g=i(v.length),y=r(e,g),b=arguments.length;if(0===b?n=a=0:1===b?(n=0,a=g-y):(n=b-2,a=h(m(o(t),0),g-y)),g+n-a>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(d=s(v,a),u=0;u<a;u++)(f=y+u)in v&&c(d,u,v[f]);if(d.length=a,n<a){for(u=y;u<g-a;u++)p=u+n,(f=u+a)in v?v[p]=v[f]:delete v[p];for(u=g;u>g-a+n;u--)delete v[u-1]}else if(n>a)for(u=g-a;u>y;u--)p=u+n-1,(f=u+a-1)in v?v[p]=v[f]:delete v[p];for(u=0;u<n;u++)v[u+y]=arguments[u+2];return v.length=g-a+n,d}})},a4d3:function(e,t,n){var a=n("23e7"),r=n("da84"),o=n("d066"),i=n("c430"),l=n("83ab"),s=n("4930"),c=n("fdbf"),d=n("d039"),u=n("5135"),f=n("e8b5"),p=n("861d"),m=n("825a"),h=n("7b0b"),v=n("fc6a"),g=n("c04e"),y=n("5c6c"),b=n("7c73"),_=n("df75"),w=n("241c"),x=n("057f"),S=n("7418"),k=n("06cf"),E=n("9bf2"),A=n("d1e7"),O=n("9112"),$=n("6eeb"),C=n("5692"),I=n("f772"),R=n("d012"),N=n("90e3"),T=n("b622"),j=n("e538"),D=n("746f"),M=n("d44e"),L=n("69f3"),F=n("b727").forEach,P=I("hidden"),U="Symbol",B="prototype",V=T("toPrimitive"),z=L.set,G=L.getterFor(U),K=Object[B],H=r.Symbol,X=o("JSON","stringify"),q=k.f,W=E.f,Y=x.f,J=A.f,Q=C("symbols"),Z=C("op-symbols"),ee=C("string-to-symbol-registry"),te=C("symbol-to-string-registry"),ne=C("wks"),ae=r.QObject,re=!ae||!ae[B]||!ae[B].findChild,oe=l&&d(function(){return 7!=b(W({},"a",{get:function(){return W(this,"a",{value:7}).a}})).a})?function(e,t,n){var a=q(K,t);a&&delete K[t],W(e,t,n),a&&e!==K&&W(K,t,a)}:W,ie=function(e,t){var n=Q[e]=b(H[B]);return z(n,{type:U,tag:e,description:t}),l||(n.description=t),n},le=c?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof H},se=function(e,t,n){e===K&&se(Z,t,n),m(e);var a=g(t,!0);return m(n),u(Q,a)?(n.enumerable?(u(e,P)&&e[P][a]&&(e[P][a]=!1),n=b(n,{enumerable:y(0,!1)})):(u(e,P)||W(e,P,y(1,{})),e[P][a]=!0),oe(e,a,n)):W(e,a,n)},ce=function(e,t){m(e);var n=v(t),a=_(n).concat(pe(n));return F(a,function(t){l&&!de.call(n,t)||se(e,t,n[t])}),e},de=function(e){var t=g(e,!0),n=J.call(this,t);return!(this===K&&u(Q,t)&&!u(Z,t))&&(!(n||!u(this,t)||!u(Q,t)||u(this,P)&&this[P][t])||n)},ue=function(e,t){var n=v(e),a=g(t,!0);if(n!==K||!u(Q,a)||u(Z,a)){var r=q(n,a);return!r||!u(Q,a)||u(n,P)&&n[P][a]||(r.enumerable=!0),r}},fe=function(e){var t=Y(v(e)),n=[];return F(t,function(e){u(Q,e)||u(R,e)||n.push(e)}),n},pe=function(e){var t=e===K,n=Y(t?Z:v(e)),a=[];return F(n,function(e){!u(Q,e)||t&&!u(K,e)||a.push(Q[e])}),a};s||(H=function(){if(this instanceof H)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=N(e),n=function(e){this===K&&n.call(Z,e),u(this,P)&&u(this[P],t)&&(this[P][t]=!1),oe(this,t,y(1,e))};return l&&re&&oe(K,t,{configurable:!0,set:n}),ie(t,e)},$(H[B],"toString",function(){return G(this).tag}),$(H,"withoutSetter",function(e){return ie(N(e),e)}),A.f=de,E.f=se,k.f=ue,w.f=x.f=fe,S.f=pe,j.f=function(e){return ie(T(e),e)},l&&(W(H[B],"description",{configurable:!0,get:function(){return G(this).description}}),i||$(K,"propertyIsEnumerable",de,{unsafe:!0}))),a({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:H}),F(_(ne),function(e){D(e)}),a({target:U,stat:!0,forced:!s},{for:function(e){var t=String(e);if(u(ee,t))return ee[t];var n=H(t);return ee[t]=n,te[n]=t,n},keyFor:function(e){if(!le(e))throw TypeError(e+" is not a symbol");if(u(te,e))return te[e]},useSetter:function(){re=!0},useSimple:function(){re=!1}}),a({target:"Object",stat:!0,forced:!s,sham:!l},{create:function(e,t){return void 0===t?b(e):ce(b(e),t)},defineProperty:se,defineProperties:ce,getOwnPropertyDescriptor:ue}),a({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:fe,getOwnPropertySymbols:pe}),a({target:"Object",stat:!0,forced:d(function(){S.f(1)})},{getOwnPropertySymbols:function(e){return S.f(h(e))}}),X&&a({target:"JSON",stat:!0,forced:!s||d(function(){var e=H();return"[null]"!=X([e])||"{}"!=X({a:e})||"{}"!=X(Object(e))})},{stringify:function(e,t,n){for(var a,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(a=t,(p(t)||void 0!==e)&&!le(e))return f(t)||(t=function(e,t){if("function"==typeof a&&(t=a.call(this,e,t)),!le(t))return t}),r[1]=t,X.apply(null,r)}}),H[B][V]||O(H[B],V,H[B].valueOf),M(H,U),R[P]=!0},a630:function(e,t,n){var a=n("23e7"),r=n("4df4");a({target:"Array",stat:!0,forced:!n("1c7e")(function(e){Array.from(e)})},{from:r})},a640:function(e,t,n){var a=n("d039");e.exports=function(e,t){var n=[][e];return!!n&&a(function(){n.call(null,t||function(){throw 1},1)})}},a691:function(e,t){var n=Math.ceil,a=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?a:n)(e)}},ab13:function(e,t,n){var a=n("b622")("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[a]=!1,"/./"[e](t)}catch(e){}}return!1}},ac1f:function(e,t,n){var a=n("23e7"),r=n("9263");a({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},ad6d:function(e,t,n){var a=n("825a");e.exports=function(){var e=a(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},ae40:function(e,t,n){var a=n("83ab"),r=n("d039"),o=n("5135"),i=Object.defineProperty,l={},s=function(e){throw e};e.exports=function(e,t){if(o(l,e))return l[e];t||(t={});var n=[][e],c=!!o(t,"ACCESSORS")&&t.ACCESSORS,d=o(t,0)?t[0]:s,u=o(t,1)?t[1]:void 0;return l[e]=!!n&&!r(function(){if(c&&!a)return!0;var e={length:-1};c?i(e,1,{enumerable:!0,get:s}):e[1]=1,n.call(e,d,u)})}},ae93:function(e,t,n){var a,r,o,i=n("e163"),l=n("9112"),s=n("5135"),c=n("b622"),d=n("c430"),u=c("iterator"),f=!1;[].keys&&("next"in(o=[].keys())?(r=i(i(o)))!==Object.prototype&&(a=r):f=!0),null==a&&(a={}),d||s(a,u)||l(a,u,function(){return this}),e.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:f}},b041:function(e,t,n){var a=n("00ee"),r=n("f5df");e.exports=a?{}.toString:function(){return"[object "+r(this)+"]"}},b0c0:function(e,t,n){var a=n("83ab"),r=n("9bf2").f,o=Function.prototype,i=o.toString,l=/^\s*function ([^ (]*)/,s="name";a&&!(s in o)&&r(o,s,{configurable:!0,get:function(){try{return i.call(this).match(l)[1]}catch(e){return""}}})},b622:function(e,t,n){var a=n("da84"),r=n("5692"),o=n("5135"),i=n("90e3"),l=n("4930"),s=n("fdbf"),c=r("wks"),d=a.Symbol,u=s?d:d&&d.withoutSetter||i;e.exports=function(e){return o(c,e)||(l&&o(d,e)?c[e]=d[e]:c[e]=u("Symbol."+e)),c[e]}},b64b:function(e,t,n){var a=n("23e7"),r=n("7b0b"),o=n("df75");a({target:"Object",stat:!0,forced:n("d039")(function(){o(1)})},{keys:function(e){return o(r(e))}})},b727:function(e,t,n){var a=n("0366"),r=n("44ad"),o=n("7b0b"),i=n("50c4"),l=n("65f0"),s=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,d=4==e,u=6==e,f=5==e||u;return function(p,m,h,v){for(var g,y,b=o(p),_=r(b),w=a(m,h,3),x=i(_.length),S=0,k=v||l,E=t?k(p,x):n?k(p,0):void 0;x>S;S++)if((f||S in _)&&(y=w(g=_[S],S,b),e))if(t)E[S]=y;else if(y)switch(e){case 3:return!0;case 5:return g;case 6:return S;case 2:s.call(E,g)}else if(d)return!1;return u?-1:c||d?d:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},c04e:function(e,t,n){var a=n("861d");e.exports=function(e,t){if(!a(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!a(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},c430:function(e,t){e.exports=!1},c6b6:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},c6cd:function(e,t,n){var a=n("da84"),r=n("ce4e"),o="__core-js_shared__",i=a[o]||r(o,{});e.exports=i},c740:function(e,t,n){var a=n("23e7"),r=n("b727").findIndex,o=n("44d2"),i=n("ae40"),l="findIndex",s=!0,c=i(l);l in[]&&Array(1)[l](function(){s=!1}),a({target:"Array",proto:!0,forced:s||!c},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o(l)},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},c975:function(e,t,n){var a=n("23e7"),r=n("4d64").indexOf,o=n("a640"),i=n("ae40"),l=[].indexOf,s=!!l&&1/[1].indexOf(1,-0)<0,c=o("indexOf"),d=i("indexOf",{ACCESSORS:!0,1:0});a({target:"Array",proto:!0,forced:s||!c||!d},{indexOf:function(e){return s?l.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:void 0)}})},ca84:function(e,t,n){var a=n("5135"),r=n("fc6a"),o=n("4d64").indexOf,i=n("d012");e.exports=function(e,t){var n,l=r(e),s=0,c=[];for(n in l)!a(i,n)&&a(l,n)&&c.push(n);for(;t.length>s;)a(l,n=t[s++])&&(~o(c,n)||c.push(n));return c}},caad:function(e,t,n){var a=n("23e7"),r=n("4d64").includes,o=n("44d2");a({target:"Array",proto:!0,forced:!n("ae40")("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cc12:function(e,t,n){var a=n("da84"),r=n("861d"),o=a.document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},ce4e:function(e,t,n){var a=n("da84"),r=n("9112");e.exports=function(e,t){try{r(a,e,t)}catch(n){a[e]=t}return t}},d012:function(e,t){e.exports={}},d039:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},d066:function(e,t,n){var a=n("428f"),r=n("da84"),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(a[e])||o(r[e]):a[e]&&a[e][t]||r[e]&&r[e][t]}},d1e7:function(e,t,n){var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!a.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:a},d28b:function(e,t,n){n("746f")("iterator")},d2bb:function(e,t,n){var a=n("825a"),r=n("3bbe");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,o){return a(n),r(o),t?e.call(n,o):n.__proto__=o,n}}():void 0)},d3b7:function(e,t,n){var a=n("00ee"),r=n("6eeb"),o=n("b041");a||r(Object.prototype,"toString",o,{unsafe:!0})},d44e:function(e,t,n){var a=n("9bf2").f,r=n("5135"),o=n("b622")("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&a(e,o,{configurable:!0,value:t})}},d58f:function(e,t,n){var a=n("1c0b"),r=n("7b0b"),o=n("44ad"),i=n("50c4"),l=function(e){return function(t,n,l,s){a(n);var c=r(t),d=o(c),u=i(c.length),f=e?u-1:0,p=e?-1:1;if(l<2)for(;;){if(f in d){s=d[f],f+=p;break}if(f+=p,e?f<0:u<=f)throw TypeError("Reduce of empty array with no initial value")}for(;e?f>=0:u>f;f+=p)f in d&&(s=n(s,d[f],f,c));return s}};e.exports={left:l(!1),right:l(!0)}},d784:function(e,t,n){n("ac1f");var a=n("6eeb"),r=n("d039"),o=n("b622"),i=n("9263"),l=n("9112"),s=o("species"),c=!r(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}),d="$0"==="a".replace(/./,"$0"),u=o("replace"),f=!!/./[u]&&""===/./[u]("a","$0"),p=!r(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]});e.exports=function(e,t,n,u){var m=o(e),h=!r(function(){var t={};return t[m]=function(){return 7},7!=""[e](t)}),v=h&&!r(function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[m]=/./[m]),n.exec=function(){return t=!0,null},n[m](""),!t});if(!h||!v||"replace"===e&&(!c||!d||f)||"split"===e&&!p){var g=/./[m],y=n(m,""[e],function(e,t,n,a,r){return t.exec===i?h&&!r?{done:!0,value:g.call(t,n,a)}:{done:!0,value:e.call(n,t,a)}:{done:!1}},{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),b=y[0],_=y[1];a(String.prototype,e,b),a(RegExp.prototype,m,2==t?function(e,t){return _.call(e,this,t)}:function(e){return _.call(e,this)})}u&&l(RegExp.prototype[m],"sham",!0)}},d81d:function(e,t,n){var a=n("23e7"),r=n("b727").map,o=n("1dde"),i=n("ae40"),l=o("map"),s=i("map");a({target:"Array",proto:!0,forced:!l||!s},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},da84:function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(e,t,n){var a=n("23e7"),r=n("83ab"),o=n("56ef"),i=n("fc6a"),l=n("06cf"),s=n("8418");a({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,a=i(e),r=l.f,c=o(a),d={},u=0;c.length>u;)void 0!==(n=r(a,t=c[u++]))&&s(d,t,n);return d}})},dbf1:function(e,t,n){(function(e){n.d(t,"a",function(){return a});var a="undefined"!=typeof window?window.console:e.console}).call(this,n("c8ba"))},ddb0:function(e,t,n){var a=n("da84"),r=n("fdbc"),o=n("e260"),i=n("9112"),l=n("b622"),s=l("iterator"),c=l("toStringTag"),d=o.values;for(var u in r){var f=a[u],p=f&&f.prototype;if(p){if(p[s]!==d)try{i(p,s,d)}catch(e){p[s]=d}if(p[c]||i(p,c,u),r[u])for(var m in o)if(p[m]!==o[m])try{i(p,m,o[m])}catch(e){p[m]=o[m]}}}},df75:function(e,t,n){var a=n("ca84"),r=n("7839");e.exports=Object.keys||function(e){return a(e,r)}},e01a:function(e,t,n){var a=n("23e7"),r=n("83ab"),o=n("da84"),i=n("5135"),l=n("861d"),s=n("9bf2").f,c=n("e893"),d=o.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||void 0!==d().description)){var u={},f=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof f?new d(e):void 0===e?d():d(e);return""===e&&(u[t]=!0),t};c(f,d);var p=f.prototype=d.prototype;p.constructor=f;var m=p.toString,h="Symbol(test)"==String(d("test")),v=/^Symbol\((.*)\)[^)]+$/;s(p,"description",{configurable:!0,get:function(){var e=l(this)?this.valueOf():this,t=m.call(e);if(i(u,e))return"";var n=h?t.slice(7,-1):t.replace(v,"$1");return""===n?void 0:n}}),a({global:!0,forced:!0},{Symbol:f})}},e163:function(e,t,n){var a=n("5135"),r=n("7b0b"),o=n("f772"),i=n("e177"),l=o("IE_PROTO"),s=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),a(e,l)?e[l]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},e177:function(e,t,n){var a=n("d039");e.exports=!a(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})},e260:function(e,t,n){var a=n("fc6a"),r=n("44d2"),o=n("3f8c"),i=n("69f3"),l=n("7dd0"),s="Array Iterator",c=i.set,d=i.getterFor(s);e.exports=l(Array,"Array",function(e,t){c(this,{type:s,target:a(e),index:0,kind:t})},function(){var e=d(this),t=e.target,n=e.kind,a=e.index++;return!t||a>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:a,done:!1}:"values"==n?{value:t[a],done:!1}:{value:[a,t[a]],done:!1}},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},e439:function(e,t,n){var a=n("23e7"),r=n("d039"),o=n("fc6a"),i=n("06cf").f,l=n("83ab"),s=r(function(){i(1)});a({target:"Object",stat:!0,forced:!l||s,sham:!l},{getOwnPropertyDescriptor:function(e,t){return i(o(e),t)}})},e538:function(e,t,n){var a=n("b622");t.f=a},e893:function(e,t,n){var a=n("5135"),r=n("56ef"),o=n("06cf"),i=n("9bf2");e.exports=function(e,t){for(var n=r(t),l=i.f,s=o.f,c=0;c<n.length;c++){var d=n[c];a(e,d)||l(e,d,s(t,d))}}},e8b5:function(e,t,n){var a=n("c6b6");e.exports=Array.isArray||function(e){return"Array"==a(e)}},e95a:function(e,t,n){var a=n("b622"),r=n("3f8c"),o=a("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},f5df:function(e,t,n){var a=n("00ee"),r=n("c6b6"),o=n("b622")("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=a?r:function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},f772:function(e,t,n){var a=n("5692"),r=n("90e3"),o=a("keys");e.exports=function(e){return o[e]||(o[e]=r(e))}},fb15:function(e,t,n){if(n.r(t),"undefined"!=typeof window){var a=window.document.currentScript,r=n("8875");a=r(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:r});var o=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function d(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{a||null==l.return||l.return()}finally{if(r)throw o}}return n}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}n("99af"),n("4de4"),n("4160"),n("c975"),n("d81d"),n("a434"),n("159b"),n("a4d3"),n("e439"),n("dbb4"),n("b64b"),n("e01a"),n("d28b"),n("e260"),n("d3b7"),n("3ca3"),n("ddb0"),n("a630"),n("fb6a"),n("b0c0"),n("25f0");var p=n("a352"),m=n.n(p);function h(e){null!==e.parentElement&&e.parentElement.removeChild(e)}function v(e,t,n){var a=0===n?e.children[0]:e.children[n-1].nextSibling;e.insertBefore(t,a)}var g=n("dbf1");n("13d5"),n("4fad"),n("ac1f"),n("5319");var y=/-(\w)/g,b=function(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}(function(e){return e.replace(y,function(e,t){return t.toUpperCase()})});n("5db7"),n("73d9");var _=["Start","Add","Remove","Update","End"],w=["Choose","Unchoose","Sort","Filter","Clone"],x=["Move"],S=[x,_,w].flatMap(function(e){return e}).map(function(e){return"on".concat(e)}),k={manage:x,manageAndEmit:_,emit:w};n("caad"),n("2ca0");var E=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];function A(e){return["id","class","role","style"].includes(e)||e.startsWith("data-")||e.startsWith("aria-")||e.startsWith("on")}function O(e){return e.reduce(function(e,t){var n=u(t,2),a=n[0],r=n[1];return e[a]=r,e},{})}function $(e){return Object.entries(e).filter(function(e){var t=u(e,2),n=t[0];return t[1],!A(n)}).map(function(e){var t=u(e,2),n=t[0],a=t[1];return[b(n),a]}).filter(function(e){var t,n=u(e,2),a=n[0];return n[1],t=a,!(-1!==S.indexOf(t))})}function C(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,t),e}n("c740");var I=function(e){return e.el},R=function(e){return e.__draggable_context},N=function(){function e(t){var n=t.nodes,a=n.header,r=n.default,o=n.footer,i=t.root,l=t.realList;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.defaultNodes=r,this.children=[].concat(f(a),f(r),f(o)),this.externalComponent=i.externalComponent,this.rootTransition=i.transition,this.tag=i.tag,this.realList=l}return C(e,[{key:"render",value:function(e,t){var n=this.tag,a=this.children;return e(n,t,this._isRootComponent?{default:function(){return a}}:a)}},{key:"updated",value:function(){var e=this.defaultNodes,t=this.realList;e.forEach(function(e,n){var a,r;a=I(e),r={element:t[n],index:n},a.__draggable_context=r})}},{key:"getUnderlyingVm",value:function(e){return R(e)}},{key:"getVmIndexFromDomIndex",value:function(e,t){var n=this.defaultNodes,a=n.length,r=t.children,o=r.item(e);if(null===o)return a;var i=R(o);if(i)return i.index;if(0===a)return 0;var l=I(n[0]),s=f(r).findIndex(function(e){return e===l});return e<s?0:a}},{key:"_isRootComponent",get:function(){return this.externalComponent||this.rootTransition}}]),e}(),T=n("8bbf");function j(e){var t=["transition-group","TransitionGroup"].includes(e),n=!function(e){return E.includes(e)}(e)&&!t;return{transition:t,externalComponent:n,tag:n?Object(T.resolveComponent)(e):t?T.TransitionGroup:e}}function D(e){var t=e.$slots,n=e.tag,a=e.realList,r=function(e){var t=e.$slots,n=e.realList,a=e.getKey,r=n||[],o=u(["header","footer"].map(function(e){return(n=t[e])?n():[];var n}),2),i=o[0],l=o[1],c=t.item;if(!c)throw new Error("draggable element must have an item slot");var d=r.flatMap(function(e,t){return c({element:e,index:t}).map(function(t){return t.key=a(e),t.props=s(s({},t.props||{}),{},{"data-draggable":!0}),t})});if(d.length!==r.length)throw new Error("Item slot must have only one child");return{header:i,footer:l,default:d}}({$slots:t,realList:a,getKey:e.getKey}),o=j(n);return new N({nodes:r,root:o,realList:a})}function M(e,t){var n=this;Object(T.nextTick)(function(){return n.$emit(e.toLowerCase(),t)})}function L(e){var t=this;return function(n,a){if(null!==t.realList)return t["onDrag".concat(e)](n,a)}}function F(e){var t=this,n=L.call(this,e);return function(a,r){n.call(t,a,r),M.call(t,e,a)}}var P=null,U={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function(e){return e}},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},B=["update:modelValue","change"].concat(f([].concat(f(k.manageAndEmit),f(k.emit)).map(function(e){return e.toLowerCase()}))),V=Object(T.defineComponent)({name:"draggable",inheritAttrs:!1,props:U,emits:B,data:function(){return{error:!1}},render:function(){try{this.error=!1;var e=this.$slots,t=this.$attrs,n=this.tag,a=this.componentData,r=D({$slots:e,tag:n,realList:this.realList,getKey:this.getKey});this.componentStructure=r;var o=function(e){var t=e.$attrs,n=e.componentData,a=void 0===n?{}:n;return s(s({},O(Object.entries(t).filter(function(e){var t=u(e,2),n=t[0];return t[1],A(n)}))),a)}({$attrs:t,componentData:a});return r.render(T.h,o)}catch(e){return this.error=!0,Object(T.h)("pre",{style:{color:"red"}},e.stack)}},created:function(){null!==this.list&&null!==this.modelValue&&g.a.error("modelValue and list props are mutually exclusive! Please set one or another.")},mounted:function(){var e=this;if(!this.error){var t=this.$attrs,n=this.$el;this.componentStructure.updated();var a=function(e){var t=e.$attrs,n=e.callBackBuilder,a=O($(t));Object.entries(n).forEach(function(e){var t=u(e,2),n=t[0],r=t[1];k[n].forEach(function(e){a["on".concat(e)]=r(e)})});var r="[data-draggable]".concat(a.draggable||"");return s(s({},a),{},{draggable:r})}({$attrs:t,callBackBuilder:{manageAndEmit:function(t){return F.call(e,t)},emit:function(t){return M.bind(e,t)},manage:function(t){return L.call(e,t)}}}),r=1===n.nodeType?n:n.parentElement;this._sortable=new m.a(r,a),this.targetDomElement=r,r.__draggable_component__=this}},updated:function(){this.componentStructure.updated()},beforeUnmount:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{realList:function(){var e=this.list;return e||this.modelValue},getKey:function(){var e=this.itemKey;return"function"==typeof e?e:function(t){return t[e]}}},watch:{$attrs:{handler:function(e){var t=this._sortable;t&&$(e).forEach(function(e){var n=u(e,2),a=n[0],r=n[1];t.option(a,r)})},deep:!0}},methods:{getUnderlyingVm:function(e){return this.componentStructure.getUnderlyingVm(e)||null},getUnderlyingPotencialDraggableComponent:function(e){return e.__draggable_component__},emitChanges:function(e){var t=this;Object(T.nextTick)(function(){return t.$emit("change",e)})},alterList:function(e){if(this.list)e(this.list);else{var t=f(this.modelValue);e(t),this.$emit("update:modelValue",t)}},spliceList:function(){var e=arguments,t=function(t){return t.splice.apply(t,f(e))};this.alterList(t)},updatePosition:function(e,t){var n=function(n){return n.splice(t,0,n.splice(e,1)[0])};this.alterList(n)},getRelatedContextFromMoveEvent:function(e){var t=e.to,n=e.related,a=this.getUnderlyingPotencialDraggableComponent(t);if(!a)return{component:a};var r=a.realList,o={list:r,component:a};return t!==n&&r?s(s({},a.getUnderlyingVm(n)||{}),o):o},getVmIndexFromDomIndex:function(e){return this.componentStructure.getVmIndexFromDomIndex(e,this.targetDomElement)},onDragStart:function(e){this.context=this.getUnderlyingVm(e.item),e.item._underlying_vm_=this.clone(this.context.element),P=e.item},onDragAdd:function(e){var t=e.item._underlying_vm_;if(void 0!==t){h(e.item);var n=this.getVmIndexFromDomIndex(e.newIndex);this.spliceList(n,0,t);var a={element:t,newIndex:n};this.emitChanges({added:a})}},onDragRemove:function(e){if(v(this.$el,e.item,e.oldIndex),"clone"!==e.pullMode){var t=this.context,n=t.index,a=t.element;this.spliceList(n,1);var r={element:a,oldIndex:n};this.emitChanges({removed:r})}else h(e.clone)},onDragUpdate:function(e){h(e.item),v(e.from,e.item,e.oldIndex);var t=this.context.index,n=this.getVmIndexFromDomIndex(e.newIndex);this.updatePosition(t,n);var a={element:this.context.element,oldIndex:t,newIndex:n};this.emitChanges({moved:a})},computeFutureIndex:function(e,t){if(!e.element)return 0;var n=f(t.to.children).filter(function(e){return"none"!==e.style.display}),a=n.indexOf(t.related),r=e.component.getVmIndexFromDomIndex(a);return-1===n.indexOf(P)&&t.willInsertAfter?r+1:r},onDragMove:function(e,t){var n=this.move,a=this.realList;if(!n||!a)return!0;var r=this.getRelatedContextFromMoveEvent(e),o=this.computeFutureIndex(r,e),i=s(s({},this.context),{},{futureIndex:o});return n(s(s({},e),{},{relatedContext:r,draggedContext:i}),t)},onDragEnd:function(){P=null}}}),z=V;t.default=z},fb6a:function(e,t,n){var a=n("23e7"),r=n("861d"),o=n("e8b5"),i=n("23cb"),l=n("50c4"),s=n("fc6a"),c=n("8418"),d=n("b622"),u=n("1dde"),f=n("ae40"),p=u("slice"),m=f("slice",{ACCESSORS:!0,0:0,1:2}),h=d("species"),v=[].slice,g=Math.max;a({target:"Array",proto:!0,forced:!p||!m},{slice:function(e,t){var n,a,d,u=s(this),f=l(u.length),p=i(e,f),m=i(void 0===t?f:t,f);if(o(u)&&("function"!=typeof(n=u.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[h])&&(n=void 0):n=void 0,n===Array||void 0===n))return v.call(u,p,m);for(a=new(void 0===n?Array:n)(g(m-p,0)),d=0;p<m;p++,d++)p in u&&c(a,d,u[p]);return a.length=d,a}})},fc6a:function(e,t,n){var a=n("44ad"),r=n("1d80");e.exports=function(e){return a(r(e))}},fdbc:function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(e,t,n){var a=n("4930");e.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}).default},uu.exports=Mp(fu,Ro(Dp))),Fp=Io(Lp);function Pp(e,t){return{path:e,config:t}}const Up={async request(t){const n=e(),a=await n.get(t.path,t.config);return a.data?.data}};async function Bp(n,a={},r=1/0){const o=e(),{info:i}=t().useServerStore();let l=1,s=!0;if(!i.queryLimit||-1===i.queryLimit?.max){to(a,"params.limit",-1);const{data:e}=await o.get(n,a);return e.data??[]}const c=i.queryLimit.max,d=[];for(;d.length<r&&s;){const e=Cr(a);to(e,"params.page",l),to(e,"params.limit",c);const{data:t}=await o.get(n,e);t.data?.length?d.push(...t.data):s=!1,l++}return Number.isFinite(r)?d.slice(0,r):d}function Vp(e,t,n,a,r){const l=o(!1),s=o([]),c=o(0),{cleanItem:d,getPage:u,isLocalItem:f,getItemEdits:p,isEmpty:m}={cleanItem:function(e){return Object.entries(e).reduce((e,[t,n])=>(t.startsWith("$")||(e[t]=n),e),{})},getPage:function(e,n){if(-1===t.value.limit)return n;const a=Ma((t.value.page-1)*t.value.limit-e,0,n.length),r=Ma(t.value.page*t.value.limit-e,0,n.length);return n.slice(a,r)},isLocalItem:function(e){return void 0!==e.$type&&("updated"!==e.$type||w(e))},getItemEdits:function(e){if("$type"in e&&void 0!==e.$index){if("created"===e.$type)return{...g.value.create[e.$index],$type:"created",$index:e.$index};if("updated"===e.$type)return{...g.value.update[e.$index],$type:"updated",$index:e.$index};if("deleted"===e.$type&&void 0!==e.$edits)return{...g.value.update[e.$edits],$type:"deleted",$index:e.$index,$edits:e.$edits}}return{}},isEmpty:function(e){if("updated"!==e.$type&&void 0===e.$edits)return!1;const t=Object.keys(e).filter(e=>!e.startsWith("$"));if("o2m"===n.value?.type)return 1===t.length&&t[0]===n.value.relatedPrimaryKeyField.field;if("m2m"===n.value?.type){if(1===t.length&&t[0]===n.value.junctionPrimaryKeyField.field)return!0;const a=Object.keys(e[n.value.junctionField.field]);return 2===t.length&&t.includes(n.value.junctionField.field)&&t.includes(n.value.junctionPrimaryKeyField.field)&&1===a.length&&a[0]===n.value.relatedPrimaryKeyField.field}if("m2a"===n.value?.type){if(1===t.length&&t[0]===n.value.junctionPrimaryKeyField.field)return!0;const a=Object.keys(e[n.value.junctionField.field]);return!(2!==t.length||!t.includes(n.value.junctionField.field)||!t.includes(n.value.junctionPrimaryKeyField.field)||1!==a.length)||3===t.length&&t.includes(n.value.junctionField.field)&&t.includes(n.value.junctionPrimaryKeyField.field)&&t.includes(n.value.collectionField.field)&&1===a.length}return!1}},h=i(()=>n.value?"o2m"===n.value.type?n.value.relatedPrimaryKeyField.field:n.value.junctionPrimaryKeyField.field:"id"),v=i(()=>s.value.map(e=>e[h.value])),g=i({get:()=>!e.value||Array.isArray(e.value)?{create:[],update:[],delete:[]}:e.value,set(t){if(0===t.create.length&&0===t.update.length&&0===t.delete.length){return null!==r.value?void(e.value=v.value):void(e.value=void 0)}e.value=t}});y(e,(e,t)=>{Array.isArray(e)&&t&&("create"in t&&Array.isArray(t.create)&&t.create.length>0||"update"in t&&Array.isArray(t.update)&&t.update.length>0||"delete"in t&&Array.isArray(t.delete)&&t.delete.length>0)&&R()}),y([t,a,n],(e,t)=>{Jr(e,t)||R()},{immediate:!0});const{fetchedSelectItems:b,selected:_,isItemSelected:w,selectedOnPage:x}=function(){const e=o([]),a=i(()=>n.value?"o2m"===n.value?.type?g.value.update.map((e,t)=>({...e,$index:t,$type:"updated"})).filter(s):g.value.create.map((e,t)=>({...e,$index:t,$type:"created"})).filter(s):[]),r=i(()=>u(c.value,a.value));return y(r,(a,o)=>{a.length===o?.length&&Jr(a.map(l),(o??[]).map(l))||async function(){switch(n.value?.type){case"o2m":return async function(n){if(0===r.value.length)return void(e.value=[]);const a=new Set(t.value.fields);a.add(n.relatedPrimaryKeyField.field),n.sortField&&a.add(n.sortField);const o=n.relatedCollection.collection;e.value=await Bp(Ri(o),{params:{fields:Array.from(a),filter:{[h.value]:{_in:r.value.map(l)}}}})}(n.value);case"m2m":return async function(n){if(0===r.value.length)return void(e.value=[]);const a=new Set(t.value.fields.reduce((e,t)=>{const a=n.junctionField.field+".";return t.startsWith(a)&&e.push(t.replace(a,"")),e},[]));a.add(n.relatedPrimaryKeyField.field);const o=n.relatedPrimaryKeyField.field,i=await Bp(Ri(n.relatedCollection.collection),{params:{fields:Array.from(a),filter:{[o]:{_in:r.value.map(l)}}}});e.value=i.map(e=>({[n.junctionField.field]:e}))}(n.value);case"m2a":(async function(n){if(0===r.value.length)return void(e.value=[]);const a=n.collectionField.field,o=r.value.reduce((e,t)=>{const n=t[a];return n in e||(e[n]=[]),e[n]?.push(t),e},{}),i=await Promise.all(Object.entries(o).map(([e,a])=>{const r=n.relationPrimaryKeyFields[e]?.field;if(!r)throw new Error(`No primary key field found for collection ${e}`);const o=new Set(t.value.fields.reduce((t,a)=>{const r=`${n.junctionField.field}:${e}.`;return a.startsWith(r)&&t.push(a.replace(r,"")),t},[]));return o.add(r),Bp(Ri(e),{params:{fields:Array.from(o),filter:{[r]:{_in:a.map(e=>e[n.junctionField.field][r])}}}})}));e.value=i.reduce((e,t,a)=>(e.push(...t.map(e=>({[n.collectionField.field]:Object.keys(o)[a],[n.junctionField.field]:e}))),e),[])})(n.value)}}()},{immediate:!0}),{fetchedSelectItems:e,selected:a,isItemSelected:s,selectedOnPage:r};function l(e){switch(n.value?.type){case"o2m":return e[n.value.relatedPrimaryKeyField.field];case"m2m":return e[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field];case"m2a":{const t=e[n.value.collectionField.field],a=n.value.relationPrimaryKeyFields[t]?.field;if(!a)throw new Error(`No primary key field found for collection ${t}`);return e[n.value.junctionField.field][a]}}}function s(e){return void 0!==n.value&&void 0!==e[n.value.reverseJunctionField.field]}}(),S=i(()=>"o2m"===n.value?.type?c.value+g.value.create.length+_.value.length:c.value+g.value.create.length),k=i(()=>{const e=n.value;if(void 0===e?.type)return[];const t=g.value.create.map((e,t)=>({...e,$type:"created",$index:t}));return"o2m"===e.type?t:t.filter(t=>void 0===t[e.reverseJunctionField.field])}),E=i(()=>{if(!n.value)return[];const e=s.value.map(e=>{let t;for(const[n,a]of g.value.update.entries())if("object"==typeof a&&a[h.value]===e[h.value]){t={index:n,value:a};break}let a=Cr(e);t&&(a={...a,...t.value},"m2m"!==n.value?.type&&"m2a"!==n.value?.type||(a[n.value.junctionField.field]={...Cr(e)[n.value.junctionField.field],...t.value[n.value.junctionField.field]}),a.$type="updated",a.$index=t.index,a.$edits=t.index);const r=g.value.delete.findIndex(t=>t===e[h.value]);return-1!==r&&eo(a,{$type:"deleted",$index:r}),a}),a=x.value.map(e=>{const t=b.value.find(t=>{switch(n.value?.type){case"o2m":return e[h.value]===t[h.value];case"m2m":return e[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field]===t[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field];case"m2a":{const a=t[n.value.collectionField.field],r=e[n.value.collectionField.field],o=n.value.relationPrimaryKeyFields[a]?.field,i=n.value.relationPrimaryKeyFields[r]?.field;if(!o)throw new Error(`No primary key field found for collection ${a}`);if(!i)throw new Error(`No primary key field found for collection ${r}`);return a===r&&e[n.value.junctionField.field][i]===t[n.value.junctionField.field][o]}}});return t?eo({},t,e):e}),r=u(c.value+_.value.length,k.value);e.push(...a,...r);const o=(t.value.sort??Ti(n.value.sortField))[0];return t.value.limit>0&&S.value>t.value.limit||!o?e:e.sort((e,t)=>{let n,a;if(o.startsWith("-")){const r=o.substring(1);n=Oa(t,r),a=Oa(e,r)}else n=Oa(e,o),a=Oa(t,o);return Number(n>a)-Number(a>n)})}),{create:A,remove:O,select:$,update:C}=I(g);function I(e){return{create:t,update:r,remove:function(...t){if(!n.value)return;for(const n of t)void 0===n.$type||void 0===n.$index?e.value.delete.push(n[h.value]):"created"===n.$type?e.value.create.splice(n.$index,1):"updated"===n.$type?w(n)?e.value.update.splice(n.$index,1):e.value.delete.push(n[h.value]):"deleted"===n.$type&&e.value.delete.splice(n.$index,1);o()},select:function(e,o){const i=n.value;if(!i)return;const l=e.map(e=>{switch(i.type){case"o2m":return{[i.reverseJunctionField.field]:a.value,[i.relatedPrimaryKeyField.field]:e};case"m2m":return{[i.reverseJunctionField.field]:a.value,[i.junctionField.field]:{[i.relatedPrimaryKeyField.field]:e}};case"m2a":{if(!o)throw new Error("You need to provide a collection on an m2a");const t=i.relationPrimaryKeyFields[o];if(!t)throw new Error(`No primary key field found for collection ${o}`);return{[i.reverseJunctionField.field]:a.value,[i.collectionField.field]:o,[i.junctionField.field]:{[t.field]:e}}}}});"o2m"===n.value?.type?r(...l):t(...l)}};function t(...t){for(const n of t)e.value.create.push(d(n));o()}function r(...t){if(n.value){for(const n of t)void 0===n.$type||void 0===n.$index?e.value.update.push(d(n)):"created"===n.$type?e.value.create[n.$index]=d(n):"updated"===n.$type?m(n)?e.value.update.splice(n.$index,1):e.value.update[n.$index]=d(n):"deleted"===n.$type&&(void 0!==n.$edits?m(n)?e.value.update.splice(n.$index,1):e.value.update[n.$edits]=d(n):e.value.update.push(d(n)));o()}}function o(){e.value=Cr(e.value)}}async function R(){if(!n.value)return;if(void 0===a.value||"+"===a.value)return void(s.value=[]);let e;const r=n.value.reverseJunctionField.field,o=new Set(t.value.fields);switch(n.value.type){case"m2a":e=n.value.junctionCollection.collection,o.add(n.value.junctionPrimaryKeyField.field),o.add(n.value.collectionField.field);for(const e of n.value.allowedCollections){const t=n.value.relationPrimaryKeyFields[e.collection];if(!t)throw new Error(`No primary key field found for collection ${e.collection}`);o.add(`${n.value.junctionField.field}:${e.collection}.${t.field}`)}break;case"m2m":e=n.value.junctionCollection.collection,o.add(n.value.junctionPrimaryKeyField.field),o.add(`${n.value.junctionField.field}.${n.value.relatedPrimaryKeyField.field}`);break;case"o2m":e=n.value.relatedCollection.collection,o.add(n.value.relatedPrimaryKeyField.field)}n.value.sortField&&o.add(n.value.sortField);try{if(l.value=!0,"+"!==a.value){const n=a.value,i={_and:[{[r]:null===a.value?{_null:!0}:a.value}]};t.value.filter&&i._and.push(t.value.filter);const l=await Up.request(Pp(Ri(e),{params:{search:t.value.search,fields:Array.from(o),filter:i,page:t.value.page,limit:t.value.limit,sort:t.value.sort}}));if(a.value!==n)return;s.value=l}}catch(e){qd(e)}finally{l.value=!1}}return y([t,a,n],(e,r)=>{const[o,i,l]=e,[s,d,u]=r;Jr(l,u)&&o.filter===s?.filter&&o.search===s?.search&&i===d||async function(){if(!n.value)return;if(!a.value||"+"===a.value)return void(c.value=0);let e;const r=n.value.reverseJunctionField.field;switch(n.value.type){case"m2a":case"m2m":e=n.value.junctionCollection.collection;break;case"o2m":e=n.value.relatedCollection.collection}const o={_and:[{[r]:a.value}]};t.value.filter&&o._and.push(t.value.filter);const i=await Up.request(Pp(Ri(e),{params:{search:t.value.search,aggregate:{count:h.value},filter:o}}));c.value=Number(i[0]?.count[h.value])}()},{immediate:!0}),{create:A,update:C,remove:O,select:$,displayItems:E,totalItemCount:S,loading:l,selected:_,fetchedSelectItems:b,fetchedItems:s,useActions:I,cleanItem:d,isItemSelected:w,isLocalItem:f,getItemEdits:p}}const zp={key:1,class:"files-with-storage"},Gp={key:1,class:"item-actions"},Kp={key:2,class:"actions"};var Hp=l({__name:"interface",props:{value:{},primaryKey:{},collection:{},field:{},disabled:{type:Boolean},nonEditable:{type:Boolean,default:!1},version:{},template:{default:null},enableCreate:{type:Boolean,default:!0},enableSelect:{type:Boolean,default:!0},folder:{},storage:{default:"local"},filter:{},limit:{default:15},allowedMimeTypes:{},onDeselect:{default:"keep"},onItemDelete:{default:"keep"}},emits:["input"],setup(n,{emit:a}){const r=n,l=a,y=e(),{collection:b,field:w,primaryKey:S,limit:k,version:A}=D(r),{relationInfo:C}=function(e,n){const a=t().useRelationsStore(),r=t().useCollectionsStore(),o=t().useFieldsStore();return{relationInfo:i(()=>{const t=a.getRelationsForField(e.value,n.value),i=t.find(t=>t.related_collection===e.value&&t.meta?.one_field===n.value&&t.meta.junction_field);if(!i)return;const l=t.find(e=>e.collection===i.collection&&e.field===i.meta?.junction_field);return l?{relation:l,relatedCollection:r.getCollection(l.related_collection),relatedPrimaryKeyField:o.getPrimaryKeyFieldForCollection(l.related_collection),sortField:i.meta?.sort_field??void 0,junctionCollection:r.getCollection(i.collection),junctionPrimaryKeyField:o.getPrimaryKeyFieldForCollection(i.collection),junctionField:o.getField(i.collection,i.meta?.junction_field),reverseJunctionField:o.getField(i.collection,l.meta?.junction_field),junction:i,type:"m2m"}:void 0})}}(b,w),I=Qd(K(r,"storage")),T=i({get:()=>r.value,set:e=>l("input",e)}),{mimeTypeFilter:M,combinedAcceptString:L}=Xd(K(r,"allowedMimeTypes")),F=i(()=>{if(!C.value)return null;if(r.template)return r.template;if(C.value.junctionCollection.meta?.display_template)return C.value.junctionCollection.meta.display_template;let e=C.value.relatedCollection.meta?.display_template;if(e){const t=/({{.*?}})/g,n=e.split(t).filter(e=>e);for(const t of n){if(!t.startsWith("{{"))continue;const n=t.replace(/{{/g,"").replace(/}}/g,"").trim(),a=`{{${C.value.relation.field}.${n}}}`;e=e.replace(t,a)}return e}return`{{${C.value.relation.field}.${C.value.relatedPrimaryKeyField.field}}}`}),U=i(()=>{if(!C.value)return[];const e=function(e){if(Qr(e))return[];const t=e.match(/{{(.*?)}}/g);return Array.isArray(t)?t.map(e=>e.replace(/{{/g,"").replace(/}}/g,"").trim()):[]}(F.value);return[...e,`${C.value.relation.field}.filename_download`]}),B=o(1),V=i(()=>({fields:U.value,limit:k.value,page:B.value})),{update:z,remove:G,select:H,displayItems:X,totalItemCount:q,loading:W,selected:Y,isItemSelected:J,isLocalItem:Q,getItemEdits:Z}=Vp(T,V,C,S,A),{createAllowed:ee,updateAllowed:te,selectAllowed:ne,deleteAllowed:ae}={createAllowed:i(()=>!0),selectAllowed:i(()=>!0),updateAllowed:i(()=>!0),deleteAllowed:i(()=>!0)},re=i(()=>Math.ceil(q.value/k.value));const oe=i(()=>{if(!C.value)return[];const e=C.value.junctionField.field,t=C.value.relatedPrimaryKeyField.field;return Y.value.map(n=>n[e][t])}),ie=o(!1),le=o(null),se=o(null),ce=o(!1),de=o({}),ue=o(!1);function fe(e){(function(e){if(null==e)return!0;if(Tn(e)&&(Lt(e)||"string"==typeof e||"function"==typeof e.splice||Gn(e)||Qn(e)||Un(e)))return!e.length;var t=dr(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(Dn(e))return!ra(e).length;for(var n in e)if(Yr.call(e,n))return!1;return!0})(e)||z(e)}function pe(e){!async function(e){const t=r.onDeselect||"keep",n=me(e);if("ask"===t&&n)return ge.value=e,void(he.value=!0);be(e),"delete_if_unreferenced"===t&&n&&await ye(n)}(e)}function me(e){if(!C.value)return null;const t=C.value.junctionField.field,n=C.value.relatedPrimaryKeyField.field,a=Oa(e,[t]);return a&&"object"==typeof a&&null!=a[n]?String(a[n]):"string"==typeof a||"number"==typeof a?String(a):null}const he=o(!1),ve=o(!1),ge=o(null);async function ye(e){try{await y.post("/storage-manager/files/delete-if-unreferenced",{file_ids:[e]})}catch(e){qd(e)}}function be(e){B.value===Math.ceil(q.value/k.value)&&B.value!==Math.ceil((q.value-1)/k.value)&&(B.value=Math.max(1,B.value-1)),G(e)}function _e(){const e=ge.value;he.value=!1,ge.value=null,e&&be(e)}async function we(){const e=ge.value,t=e?me(e):null;ve.value=!0;try{e&&be(e),t&&await ye(t)}finally{ve.value=!1,he.value=!1,ge.value=null}}function xe(e){ue.value=!1,e?.length&&C.value&&H(e.map(e=>e.id))}function Se(e){H(e.filter(e=>!oe.value.includes(e)))}const ke=i(()=>{if(null===se.value||"directus_files"!==C.value?.relatedCollection.collection)return;const e=C.value.junctionField.field,t=C.value.relatedPrimaryKeyField.field;return X.value.find(n=>Oa(n,[e,t])===se.value)?.[e]?.filename_download}),Ee=i(()=>{if(null!==se.value&&"directus_files"===C.value?.relatedCollection.collection)return Wd(String(se.value),{isDownload:!0})});function Ae(e){const t=C.value?.junctionField.field;if(t)return e[t]?.id??e[t]??null}function Oe(e){const t=C.value?.junctionField.field;if(t)return e[t]?.filename_download}const $e=j("values",o({})),Ce=i(()=>{if(!C.value)return;const e={_and:[]},t=`$FOLLOW(${C.value.junctionCollection.collection},${C.value.junctionField.field})`,n={[t]:{_none:{[C.value.reverseJunctionField.field]:{_eq:r.primaryKey}}}};return oe.value.length>0&&e._and.push({[C.value.relatedPrimaryKeyField.field]:{_nin:oe.value}}),"+"!==r.primaryKey&&e._and.push(n),r.filter&&e._and.push(Yd(Ii(r.filter,e=>e&&"string"==typeof e?Co(e,$e.value):e))),M.value&&e._and.push(M.value),e}),Ie=i(()=>q.value<=k.value&&void 0!==C.value?.sortField&&!r.disabled&&te.value),Re=i(()=>ie.value||ce.value||ue.value);return(e,t)=>{const a=s("v-notice"),r=s("v-skeleton-loader"),o=s("v-icon"),i=s("render-template"),l=s("v-remove"),y=s("v-list-item-icon"),b=s("v-list-item-content"),S=s("v-list-item"),A=s("v-list"),T=s("v-menu"),j=s("v-button"),D=s("v-pagination"),M=s("drawer-item"),U=s("drawer-files"),V=s("v-card-title"),G=s("v-upload"),K=s("v-card-text"),H=s("v-card-actions"),Y=s("v-card"),te=s("v-dialog"),oe=R("prevent-focusout");return O(C)?N((c(),p("div",zp,[O(W)?(c(!0),p(m,{key:0},h(O(Ma)(O(q)-(B.value-1)*O(k),1,O(k)),e=>(c(),d(r,{key:e,type:O(q)>4?"block-list-item-dense":"block-list-item"},null,8,["type"]))),128)):(c(),p(m,{key:1},[0===O(X).length?(c(),d(a,{key:0},{default:u(()=>[v(g(e.$t("no_items")),1)]),_:1})):(c(),d(O(Fp),P({key:1,"model-value":O(X),tag:"v-list","item-key":"id",handle:".drag-handle",disabled:!Ie.value},{"force-fallback":!0},{"onUpdate:modelValue":t[0]||(t[0]=e=>function(e){const t=C.value,n=t?.sortField;if(!t||!n)return;const a=e.map((e,a)=>{const r=e?.[t.junctionPrimaryKeyField.field],o=e?.[t.junctionField.field]?.[t.relatedPrimaryKeyField.field],i={$index:e.$index,$type:e.$type,$edits:e.$edits,...Z(e),[n]:a+1};return Qr(r)||(i[t.junctionPrimaryKeyField.field]=r),Qr(o)||to(i,`${t.junctionField.field}.${t.relatedPrimaryKeyField.field}`,o),i});z(...a)}(e))}),{item:u(({element:a})=>[f(S,{class:$({deleted:"deleted"===a.$type}),dense:O(q)>4,disabled:n.disabled&&!n.nonEditable,block:"",clickable:"",onClick:e=>function(e){if(!C.value)return;const t=C.value.relatedPrimaryKeyField.field,n=C.value.junctionField.field,a=C.value.junctionPrimaryKeyField.field;de.value=Z(e),ie.value=!0,"created"!==e?.$type||J(e)?(le.value=Oa(e,[a],null),se.value=Oa(e,[n,t],null)):(le.value=null,se.value=null)}(a)},{default:u(()=>[Ie.value?(c(),d(o,{key:0,name:"drag_handle",class:"drag-handle",left:"",onClick:E(()=>{},["stop"])})):_("v-if",!0),f(i,{collection:O(C).junctionCollection.collection,item:a,template:F.value},null,8,["collection","item","template"]),t[11]||(t[11]=x("div",{class:"spacer"},null,-1)),n.nonEditable?_("v-if",!0):(c(),p("div",Gp,[O(ae)||O(Q)(a)?(c(),d(l,{key:0,disabled:n.disabled,"item-type":a.$type,"item-info":O(C),"item-is-local":O(Q)(a),"item-edits":O(Z)(a),onAction:e=>pe(a)},null,8,["disabled","item-type","item-info","item-is-local","item-edits","onAction"])):_("v-if",!0),f(T,{"show-arrow":"",placement:"bottom-end",disabled:n.disabled},{activator:u(({toggle:e,active:t})=>[f(o,{name:"more_vert",clickable:"",class:$(["menu",{active:t}]),disabled:n.disabled,onClick:E(e,["stop"])},null,8,["class","disabled","onClick"])]),default:u(()=>[f(A,null,{default:u(()=>[f(S,{clickable:"",href:O(Wd)(Ae(a))},{default:u(()=>[f(y,null,{default:u(()=>[f(o,{name:"launch"})]),_:1}),f(b,null,{default:u(()=>[v(g(e.$t("open_file_in_tab")),1)]),_:1})]),_:1},8,["href"]),f(S,{clickable:"",download:Oe(a),href:O(Wd)(Ae(a),{isDownload:!0})},{default:u(()=>[f(y,null,{default:u(()=>[f(o,{name:"download"})]),_:1}),f(b,null,{default:u(()=>[v(g(e.$t("download_file")),1)]),_:1})]),_:1},8,["download","href"])]),_:2},1024)]),_:2},1032,["disabled"])]))]),_:2},1032,["class","dense","disabled","onClick"])]),_:1},16,["model-value","disabled"]))],64)),!n.nonEditable||re.value>1?(c(),p("div",Kp,[n.nonEditable?_("v-if",!0):(c(),p(m,{key:0},[n.enableCreate&&O(ee)?(c(),d(j,{key:0,disabled:n.disabled,onClick:t[1]||(t[1]=e=>ue.value=!0)},{default:u(()=>[v(g(e.$t("upload_file")),1)]),_:1},8,["disabled"])):_("v-if",!0),n.enableSelect&&O(ne)?(c(),d(j,{key:1,disabled:n.disabled,onClick:t[2]||(t[2]=e=>ce.value=!0)},{default:u(()=>[v(g(e.$t("add_existing")),1)]),_:1},8,["disabled"])):_("v-if",!0)],64)),t[12]||(t[12]=x("div",{class:"spacer"},null,-1)),re.value>1?(c(),d(D,{key:1,modelValue:B.value,"onUpdate:modelValue":t[3]||(t[3]=e=>B.value=e),length:re.value,"total-visible":2,"show-first-last":""},null,8,["modelValue","length"])):_("v-if",!0)])):_("v-if",!0),f(M,{active:ie.value,"onUpdate:active":t[4]||(t[4]=e=>ie.value=e),disabled:n.disabled,"non-editable":n.nonEditable,collection:O(C).junctionCollection.collection,"primary-key":le.value||"+","related-primary-key":se.value||"+","junction-field":O(C).junctionField.field,edits:de.value,"circular-field":O(C).reverseJunctionField.field,onInput:fe},{actions:u(()=>["+"!==le.value&&"directus_files"===O(C).relatedCollection.collection?(c(),d(j,{key:0,secondary:"",rounded:"",icon:"",download:ke.value,href:Ee.value},{default:u(()=>[f(o,{name:"download"})]),_:1},8,["download","href"])):_("v-if",!0)]),_:1},8,["active","disabled","non-editable","collection","primary-key","related-primary-key","junction-field","edits","circular-field"]),n.disabled?_("v-if",!0):(c(),d(U,{key:3,active:ce.value,"onUpdate:active":t[5]||(t[5]=e=>ce.value=e),collection:O(C).relatedCollection.collection,folder:n.folder,field:O(w),filter:Ce.value,multiple:"",onInput:Se},null,8,["active","collection","folder","field","filter"])),n.disabled?_("v-if",!0):(c(),d(te,{key:4,modelValue:ue.value,"onUpdate:modelValue":t[7]||(t[7]=e=>ue.value=e)},{default:u(()=>[f(Y,null,{default:u(()=>[f(V,null,{default:u(()=>[v(g(e.$t("upload_file")),1)]),_:1}),f(K,null,{default:u(()=>[f(G,{multiple:"","from-url":"",folder:n.folder,preset:O(I),accept:O(L),onInput:xe},null,8,["folder","preset","accept"])]),_:1}),f(H,null,{default:u(()=>[f(j,{onClick:t[6]||(t[6]=e=>ue.value=!1)},{default:u(()=>[v(g(e.$t("done")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])),f(te,{modelValue:he.value,"onUpdate:modelValue":t[9]||(t[9]=e=>he.value=e),onEsc:t[10]||(t[10]=e=>he.value=!1)},{default:u(()=>[f(Y,null,{default:u(()=>[f(V,null,{default:u(()=>[...t[13]||(t[13]=[v("Remove file from this item?",-1)])]),_:1}),f(K,null,{default:u(()=>[...t[14]||(t[14]=[v(" Deselect clears the field only. Delete removes the file from the library if nothing else references it (relations, ",-1),x("code",null,"/assets/",-1),v(" links, or JSON/code UUIDs). ",-1)])]),_:1}),f(H,null,{default:u(()=>[f(j,{secondary:"",disabled:ve.value,onClick:t[8]||(t[8]=e=>he.value=!1)},{default:u(()=>[...t[15]||(t[15]=[v("Cancel",-1)])]),_:1},8,["disabled"]),f(j,{secondary:"",disabled:ve.value,onClick:_e},{default:u(()=>[...t[16]||(t[16]=[v("Deselect only",-1)])]),_:1},8,["disabled"]),f(j,{kind:"danger",loading:ve.value,onClick:we},{default:u(()=>[...t[17]||(t[17]=[v(" Deselect & delete if unused ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])),[[oe,Re.value]]):(c(),d(a,{key:0,type:"warning"},{default:u(()=>[v(g(e.$t("relationship_not_setup")),1)]),_:1}))}}});we("\n.files-with-storage[data-v-3af5056c] .v-list {\n\t--v-list-padding: 0;\n}\n.v-list-item.disabled[data-v-3af5056c]:not(.non-editable) {\n\t--v-list-item-background-color: var(--theme--form--field--input--background-subdued);\n}\n.item-actions[data-v-3af5056c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n}\n.actions[data-v-3af5056c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmargin-block-start: 8px;\n}\n.spacer[data-v-3af5056c] {\n\tflex-grow: 1;\n}\n.menu.active[data-v-3af5056c] {\n\t--v-icon-color: var(--theme--form--field--input--foreground);\n}\n",{});var Xp=a({id:"storage-manager-files-with-storage",name:"Files with Storage",description:"Upload or select multiple files to a configured storage adapter and folder",icon:"note_add",component:xe(Hp,[["__scopeId","data-v-3af5056c"]]),relational:!0,types:["alias"],localTypes:["files"],group:"relational",options:({relations:e})=>function(e){const t=e.m2o?.related_collection;return[{field:"folder",name:"$t:interfaces.system-folder.folder",type:"uuid",meta:{width:"half",interface:"system-folder",note:"$t:interfaces.system-folder.field_hint"}},ou,...iu,{field:"template",name:"$t:display_template",meta:{interface:"system-display-template",options:{collectionName:e.o2m?.collection}}},{field:"filter",name:"$t:filter",type:"json",meta:{interface:"system-filter",options:{collectionName:t}}},{field:"enableCreate",name:"$t:creating_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_create_button"},width:"half"}},{field:"enableSelect",name:"$t:selecting_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_select_button"},width:"half"}},{field:"limit",name:"$t:per_page",type:"integer",meta:{interface:"input",width:"half"},schema:{default_value:15}},{field:"allowedMimeTypes",name:"$t:interfaces.file.allowed_mime_types",type:"json",meta:{interface:"select-multiple-dropdown",options:{placeholder:"$t:interfaces.file.mime_types_placeholder",choices:ru}}}]}(e),recommendedDisplays:["files"]}),qp=l({__name:"interface",props:{value:{},disabled:{type:Boolean}},emits:["input"],setup(t,{emit:n}){const a=t,r=n,i=e(),l=o([]),u=o(!0);function f(e){const t=String(e||"").trim();t&&r("input",t)}return b(async()=>{try{const e=await i.get("/storage-manager/storages"),t=(Array.isArray(e.data?.data)?e.data.data:[]).map(e=>{const t=String(e?.location||"").trim();if(!t)return null;const n=String(e?.short||e?.label||"").trim(),a=n&&n.toLowerCase()!==t.toLowerCase()?`${t} (${n})`:t;return{value:t,text:a}}).filter(Boolean);if(t.length){l.value=t;const e=String(a.value||"").trim();if(!e||!t.some(t=>t.value===e)){const e=t.find(e=>"local"===e.value)?.value||t[0].value;f(e)}return}}catch{}finally{l.value.length||(l.value=[{value:"local",text:"local"}],a.value||f("local")),u.value=!1}}),y(()=>a.value,e=>{u.value||e||!l.value.length||f(l.value.find(e=>"local"===e.value)?.value||l.value[0].value)}),(e,n)=>{const a=s("v-select");return c(),d(a,{"model-value":t.value,items:l.value,"item-text":"text","item-value":"value",disabled:t.disabled||u.value,loading:u.value,placeholder:"Storage location","onUpdate:modelValue":f},null,8,["model-value","items","disabled","loading"])}}});const Wp=[cu,du,Xp,a({id:"storage-manager-storage-location",name:"Storage Location",description:"Select a configured storage adapter",icon:"storage",component:qp,types:["string"],group:"other",system:!0,options:null})],Yp=[],Jp=[],Qp=[Kd],Zp=[],em=[],tm=[Hd];export{Yp as displays,Wp as interfaces,Jp as layouts,Qp as modules,tm as operations,Zp as panels,em as themes};
|
|
8
|
+
function tf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function nf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tf(Object(n),!0).forEach(function(t){rf(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tf(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function af(e){return af="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},af(e)}function rf(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function of(){return of=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},of.apply(this,arguments)}function lf(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sf(e){return function(e){if(Array.isArray(e))return cf(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return cf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function df(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var uf=df(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ff=df(/Edge/i),pf=df(/firefox/i),mf=df(/safari/i)&&!df(/chrome/i)&&!df(/android/i),vf=df(/iP(ad|od|hone)/i),hf=df(/chrome/i)&&df(/android/i),gf={capture:!1,passive:!1};function yf(e,t,n){e.addEventListener(t,n,!uf&&gf)}function bf(e,t,n){e.removeEventListener(t,n,!uf&&gf)}function _f(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function wf(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function xf(e,t,n,a){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&_f(e,t):_f(e,t))||a&&e===n)return e;if(e===n)break}while(e=wf(e))}return null}var Sf,kf=/\s+/g;function Ef(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(kf," ").replace(" "+t+" "," ");e.className=(a+(n?" "+t:"")).replace(kf," ")}}function Af(e,t,n){var a=e&&e.style;if(a){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=n+("string"==typeof n?"":"px")}}function Of(e,t){var n="";if("string"==typeof e)n=e;else do{var a=Af(e,"transform");a&&"none"!==a&&(n=a+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function $f(e,t,n){if(e){var a=e.getElementsByTagName(t),r=0,o=a.length;if(n)for(;r<o;r++)n(a[r],r);return a}return[]}function Cf(){var e=document.scrollingElement;return e||document.documentElement}function If(e,t,n,a,r){if(e.getBoundingClientRect||e===window){var o,i,l,s,c,d,u;if(e!==window&&e.parentNode&&e!==Cf()?(i=(o=e.getBoundingClientRect()).top,l=o.left,s=o.bottom,c=o.right,d=o.height,u=o.width):(i=0,l=0,s=window.innerHeight,c=window.innerWidth,d=window.innerHeight,u=window.innerWidth),(t||n)&&e!==window&&(r=r||e.parentNode,!uf))do{if(r&&r.getBoundingClientRect&&("none"!==Af(r,"transform")||n&&"static"!==Af(r,"position"))){var f=r.getBoundingClientRect();i-=f.top+parseInt(Af(r,"border-top-width")),l-=f.left+parseInt(Af(r,"border-left-width")),s=i+o.height,c=l+o.width;break}}while(r=r.parentNode);if(a&&e!==window){var p=Of(r||e),m=p&&p.a,v=p&&p.d;p&&(s=(i/=v)+(d/=v),c=(l/=m)+(u/=m))}return{top:i,left:l,bottom:s,right:c,width:u,height:d}}}function Rf(e,t,n){for(var a=Mf(e,!0),r=If(e)[t];a;){if(!(r>=If(a)[n]))return a;if(a===Cf())break;a=Mf(a,!1)}return!1}function Nf(e,t,n,a){for(var r=0,o=0,i=e.children;o<i.length;){if("none"!==i[o].style.display&&i[o]!==Vp.ghost&&(a||i[o]!==Vp.dragged)&&xf(i[o],n.draggable,e,!1)){if(r===t)return i[o];r++}o++}return null}function Tf(e,t){for(var n=e.lastElementChild;n&&(n===Vp.ghost||"none"===Af(n,"display")||t&&!_f(n,t));)n=n.previousElementSibling;return n||null}function jf(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)"TEMPLATE"===e.nodeName.toUpperCase()||e===Vp.clone||t&&!_f(e,t)||n++;return n}function Df(e){var t=0,n=0,a=Cf();if(e)do{var r=Of(e),o=r.a,i=r.d;t+=e.scrollLeft*o,n+=e.scrollTop*i}while(e!==a&&(e=e.parentNode));return[t,n]}function Mf(e,t){if(!e||!e.getBoundingClientRect)return Cf();var n=e,a=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var r=Af(n);if(n.clientWidth<n.scrollWidth&&("auto"==r.overflowX||"scroll"==r.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==r.overflowY||"scroll"==r.overflowY)){if(!n.getBoundingClientRect||n===document.body)return Cf();if(a||t)return n;a=!0}}}while(n=n.parentNode);return Cf()}function Lf(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function Ff(e,t){return function(){if(!Sf){var n=arguments;1===n.length?e.call(this,n[0]):e.apply(this,n),Sf=setTimeout(function(){Sf=void 0},t)}}}function Pf(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Uf(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function Bf(e,t){Af(e,"position","absolute"),Af(e,"top",t.top),Af(e,"left",t.left),Af(e,"width",t.width),Af(e,"height",t.height)}function Vf(e){Af(e,"position",""),Af(e,"top",""),Af(e,"left",""),Af(e,"width",""),Af(e,"height","")}var zf="Sortable"+(new Date).getTime();function Gf(){var e,t=[];return{captureAnimationState:function(){(t=[],this.options.animation)&&[].slice.call(this.el.children).forEach(function(e){if("none"!==Af(e,"display")&&e!==Vp.ghost){t.push({target:e,rect:If(e)});var n=nf({},t[t.length-1].rect);if(e.thisAnimationDuration){var a=Of(e,!0);a&&(n.top-=a.f,n.left-=a.e)}e.fromRect=n}})},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice(function(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var a in t)if(t.hasOwnProperty(a)&&t[a]===e[n][a])return Number(n);return-1}(t,{target:e}),1)},animateAll:function(n){var a=this;if(!this.options.animation)return clearTimeout(e),void("function"==typeof n&&n());var r=!1,o=0;t.forEach(function(e){var t=0,n=e.target,i=n.fromRect,l=If(n),s=n.prevFromRect,c=n.prevToRect,d=e.rect,u=Of(n,!0);u&&(l.top-=u.f,l.left-=u.e),n.toRect=l,n.thisAnimationDuration&&Lf(s,l)&&!Lf(i,l)&&(d.top-l.top)/(d.left-l.left)===(i.top-l.top)/(i.left-l.left)&&(t=function(e,t,n,a){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*a.animation}(d,s,c,a.options)),Lf(l,i)||(n.prevFromRect=i,n.prevToRect=l,t||(t=a.options.animation),a.animate(n,d,l,t)),t&&(r=!0,o=Math.max(o,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(e),r?e=setTimeout(function(){"function"==typeof n&&n()},o):"function"==typeof n&&n(),t=[]},animate:function(e,t,n,a){if(a){Af(e,"transition",""),Af(e,"transform","");var r=Of(this.el),o=r&&r.a,i=r&&r.d,l=(t.left-n.left)/(o||1),s=(t.top-n.top)/(i||1);e.animatingX=!!l,e.animatingY=!!s,Af(e,"transform","translate3d("+l+"px,"+s+"px,0)"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),Af(e,"transition","transform "+a+"ms"+(this.options.easing?" "+this.options.easing:"")),Af(e,"transform","translate3d(0,0,0)"),"number"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout(function(){Af(e,"transition",""),Af(e,"transform",""),e.animated=!1,e.animatingX=!1,e.animatingY=!1},a)}}}}var Kf=[],Hf={initializeByDefault:!0},Xf={mount:function(e){for(var t in Hf)Hf.hasOwnProperty(t)&&!(t in e)&&(e[t]=Hf[t]);Kf.forEach(function(t){if(t.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),Kf.push(e)},pluginEvent:function(e,t,n){var a=this;this.eventCanceled=!1,n.cancel=function(){a.eventCanceled=!0};var r=e+"Global";Kf.forEach(function(a){t[a.pluginName]&&(t[a.pluginName][r]&&t[a.pluginName][r](nf({sortable:t},n)),t.options[a.pluginName]&&t[a.pluginName][e]&&t[a.pluginName][e](nf({sortable:t},n)))})},initializePlugins:function(e,t,n,a){for(var r in Kf.forEach(function(a){var r=a.pluginName;if(e.options[r]||a.initializeByDefault){var o=new a(e,t,e.options);o.sortable=e,o.options=e.options,e[r]=o,of(n,o.defaults)}}),e.options)if(e.options.hasOwnProperty(r)){var o=this.modifyOption(e,r,e.options[r]);void 0!==o&&(e.options[r]=o)}},getEventProperties:function(e,t){var n={};return Kf.forEach(function(a){"function"==typeof a.eventProperties&&of(n,a.eventProperties.call(t[a.pluginName],e))}),n},modifyOption:function(e,t,n){var a;return Kf.forEach(function(r){e[r.pluginName]&&r.optionListeners&&"function"==typeof r.optionListeners[t]&&(a=r.optionListeners[t].call(e[r.pluginName],n))}),a}};function qf(e){var t=e.sortable,n=e.rootEl,a=e.name,r=e.targetEl,o=e.cloneEl,i=e.toEl,l=e.fromEl,s=e.oldIndex,c=e.newIndex,d=e.oldDraggableIndex,u=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t=t||n&&n[zf]){var v,h=t.options,g="on"+a.charAt(0).toUpperCase()+a.substr(1);!window.CustomEvent||uf||ff?(v=document.createEvent("Event")).initEvent(a,!0,!0):v=new CustomEvent(a,{bubbles:!0,cancelable:!0}),v.to=i||n,v.from=l||n,v.item=r||n,v.clone=o,v.oldIndex=s,v.newIndex=c,v.oldDraggableIndex=d,v.newDraggableIndex=u,v.originalEvent=f,v.pullMode=p?p.lastPutMode:void 0;var y=nf(nf({},m),Xf.getEventProperties(a,t));for(var b in y)v[b]=y[b];n&&n.dispatchEvent(v),h[g]&&h[g].call(t,v)}}var Wf=["evt"],Yf=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.evt,r=lf(n,Wf);Xf.pluginEvent.bind(Vp)(e,t,nf({dragEl:Qf,parentEl:Zf,ghostEl:ep,rootEl:tp,nextEl:np,lastDownEl:ap,cloneEl:rp,cloneHidden:op,dragStarted:yp,putSortable:up,activeSortable:Vp.active,originalEvent:a,oldIndex:ip,oldDraggableIndex:sp,newIndex:lp,newDraggableIndex:cp,hideGhostForTarget:Fp,unhideGhostForTarget:Pp,cloneNowHidden:function(){op=!0},cloneNowShown:function(){op=!1},dispatchSortableEvent:function(e){Jf({sortable:t,name:e,originalEvent:a})}},r))};function Jf(e){qf(nf({putSortable:up,cloneEl:rp,targetEl:Qf,rootEl:tp,oldIndex:ip,oldDraggableIndex:sp,newIndex:lp,newDraggableIndex:cp},e))}var Qf,Zf,ep,tp,np,ap,rp,op,ip,lp,sp,cp,dp,up,fp,pp,mp,vp,hp,gp,yp,bp,_p,wp,xp,Sp=!1,kp=!1,Ep=[],Ap=!1,Op=!1,$p=[],Cp=!1,Ip=[],Rp="undefined"!=typeof document,Np=vf,Tp=ff||uf?"cssFloat":"float",jp=Rp&&!hf&&!vf&&"draggable"in document.createElement("div"),Dp=function(){if(Rp){if(uf)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),Mp=function(e,t){var n=Af(e),a=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=Nf(e,0,t),o=Nf(e,1,t),i=r&&Af(r),l=o&&Af(o),s=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+If(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+If(o).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&i.float&&"none"!==i.float){var d="left"===i.float?"left":"right";return!o||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return r&&("block"===i.display||"flex"===i.display||"table"===i.display||"grid"===i.display||s>=a&&"none"===n[Tp]||o&&"none"===n[Tp]&&s+c>a)?"vertical":"horizontal"},Lp=function(e){function t(e,n){return function(a,r,o,i){var l=a.options.group.name&&r.options.group.name&&a.options.group.name===r.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(a,r,o,i),n)(a,r,o,i);var s=(n?a:r).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},a=e.group;a&&"object"==af(a)||(a={name:a}),n.name=a.name,n.checkPull=t(a.pull,!0),n.checkPut=t(a.put),n.revertClone=a.revertClone,e.group=n},Fp=function(){!Dp&&ep&&Af(ep,"display","none")},Pp=function(){!Dp&&ep&&Af(ep,"display","")};Rp&&document.addEventListener("click",function(e){if(kp)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),kp=!1,!1},!0);var Up=function(e){if(Qf){var t=function(e,t){var n;return Ep.some(function(a){var r=a[zf].options.emptyInsertThreshold;if(r&&!Tf(a)){var o=If(a),i=e>=o.left-r&&e<=o.right+r,l=t>=o.top-r&&t<=o.bottom+r;return i&&l?n=a:void 0}}),n}((e=e.touches?e.touches[0]:e).clientX,e.clientY);if(t){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[zf]._onDragOver(n)}}},Bp=function(e){Qf&&Qf.parentNode[zf]._isOutsideThisEl(e.target)};function Vp(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=of({},t),e[zf]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Mp(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Vp.supportPointer&&"PointerEvent"in window&&!mf,emptyInsertThreshold:5};for(var a in Xf.initializePlugins(this,e,n),n)!(a in t)&&(t[a]=n[a]);for(var r in Lp(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&jp,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?yf(e,"pointerdown",this._onTapStart):(yf(e,"mousedown",this._onTapStart),yf(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(yf(e,"dragover",this),yf(e,"dragenter",this)),Ep.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),of(this,Gf())}function zp(e,t,n,a,r,o,i,l){var s,c,d=e[zf],u=d.options.onMove;return!window.CustomEvent||uf||ff?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=a,s.related=r||t,s.relatedRect=o||If(t),s.willInsertAfter=l,s.originalEvent=i,e.dispatchEvent(s),u&&(c=u.call(d,s,i)),c}function Gp(e){e.draggable=!1}function Kp(){Cp=!1}function Hp(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,a=0;n--;)a+=t.charCodeAt(n);return a.toString(36)}function Xp(e){return setTimeout(e,0)}function qp(e){return clearTimeout(e)}Vp.prototype={constructor:Vp,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(bp=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,Qf):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,a=this.options,r=a.preventOnFilter,o=e.type,i=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(i||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=a.filter;if(function(e){Ip.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var a=t[n];a.checked&&Ip.push(a)}}(n),!Qf&&!(/mousedown|pointerdown/.test(o)&&0!==e.button||a.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!mf||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=xf(l,a.draggable,n,!1))&&l.animated||ap===l)){if(ip=jf(l),sp=jf(l,a.draggable),"function"==typeof c){if(c.call(this,e,l,this))return Jf({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),Yf("filter",t,{evt:e}),void(r&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(a){if(a=xf(s,a.trim(),n,!1))return Jf({sortable:t,rootEl:a,name:"filter",targetEl:l,fromEl:n,toEl:n}),Yf("filter",t,{evt:e}),!0})))return void(r&&e.cancelable&&e.preventDefault());a.handle&&!xf(s,a.handle,n,!1)||this._prepareDragStart(e,i,l)}}},_prepareDragStart:function(e,t,n){var a,r=this,o=r.el,i=r.options,l=o.ownerDocument;if(n&&!Qf&&n.parentNode===o){var s=If(n);if(tp=o,Zf=(Qf=n).parentNode,np=Qf.nextSibling,ap=n,dp=i.group,Vp.dragged=Qf,fp={target:Qf,clientX:(t||e).clientX,clientY:(t||e).clientY},hp=fp.clientX-s.left,gp=fp.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,Qf.style["will-change"]="all",a=function(){Yf("delayEnded",r,{evt:e}),Vp.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!pf&&r.nativeDraggable&&(Qf.draggable=!0),r._triggerDragStart(e,t),Jf({sortable:r,name:"choose",originalEvent:e}),Ef(Qf,i.chosenClass,!0))},i.ignore.split(",").forEach(function(e){$f(Qf,e.trim(),Gp)}),yf(l,"dragover",Up),yf(l,"mousemove",Up),yf(l,"touchmove",Up),yf(l,"mouseup",r._onDrop),yf(l,"touchend",r._onDrop),yf(l,"touchcancel",r._onDrop),pf&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Qf.draggable=!0),Yf("delayStart",this,{evt:e}),!i.delay||i.delayOnTouchOnly&&!t||this.nativeDraggable&&(ff||uf))a();else{if(Vp.eventCanceled)return void this._onDrop();yf(l,"mouseup",r._disableDelayedDrag),yf(l,"touchend",r._disableDelayedDrag),yf(l,"touchcancel",r._disableDelayedDrag),yf(l,"mousemove",r._delayedDragTouchMoveHandler),yf(l,"touchmove",r._delayedDragTouchMoveHandler),i.supportPointer&&yf(l,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(a,i.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Qf&&Gp(Qf),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;bf(e,"mouseup",this._disableDelayedDrag),bf(e,"touchend",this._disableDelayedDrag),bf(e,"touchcancel",this._disableDelayedDrag),bf(e,"mousemove",this._delayedDragTouchMoveHandler),bf(e,"touchmove",this._delayedDragTouchMoveHandler),bf(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?yf(document,"pointermove",this._onTouchMove):yf(document,t?"touchmove":"mousemove",this._onTouchMove):(yf(Qf,"dragend",this),yf(tp,"dragstart",this._onDragStart));try{document.selection?Xp(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Sp=!1,tp&&Qf){Yf("dragStarted",this,{evt:t}),this.nativeDraggable&&yf(document,"dragover",Bp);var n=this.options;!e&&Ef(Qf,n.dragClass,!1),Ef(Qf,n.ghostClass,!0),Vp.active=this,e&&this._appendGhost(),Jf({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(pp){this._lastX=pp.clientX,this._lastY=pp.clientY,Fp();for(var e=document.elementFromPoint(pp.clientX,pp.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(pp.clientX,pp.clientY))!==t;)t=e;if(Qf.parentNode[zf]._isOutsideThisEl(e),t)do{if(t[zf]){if(t[zf]._onDragOver({clientX:pp.clientX,clientY:pp.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Pp()}},_onTouchMove:function(e){if(fp){var t=this.options,n=t.fallbackTolerance,a=t.fallbackOffset,r=e.touches?e.touches[0]:e,o=ep&&Of(ep,!0),i=ep&&o&&o.a,l=ep&&o&&o.d,s=Np&&xp&&Df(xp),c=(r.clientX-fp.clientX+a.x)/(i||1)+(s?s[0]-$p[0]:0)/(i||1),d=(r.clientY-fp.clientY+a.y)/(l||1)+(s?s[1]-$p[1]:0)/(l||1);if(!Vp.active&&!Sp){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(ep){o?(o.e+=c-(mp||0),o.f+=d-(vp||0)):o={a:1,b:0,c:0,d:1,e:c,f:d};var u="matrix(".concat(o.a,",").concat(o.b,",").concat(o.c,",").concat(o.d,",").concat(o.e,",").concat(o.f,")");Af(ep,"webkitTransform",u),Af(ep,"mozTransform",u),Af(ep,"msTransform",u),Af(ep,"transform",u),mp=c,vp=d,pp=r}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ep){var e=this.options.fallbackOnBody?document.body:tp,t=If(Qf,!0,Np,!0,e),n=this.options;if(Np){for(xp=e;"static"===Af(xp,"position")&&"none"===Af(xp,"transform")&&xp!==document;)xp=xp.parentNode;xp!==document.body&&xp!==document.documentElement?(xp===document&&(xp=Cf()),t.top+=xp.scrollTop,t.left+=xp.scrollLeft):xp=Cf(),$p=Df(xp)}Ef(ep=Qf.cloneNode(!0),n.ghostClass,!1),Ef(ep,n.fallbackClass,!0),Ef(ep,n.dragClass,!0),Af(ep,"transition",""),Af(ep,"transform",""),Af(ep,"box-sizing","border-box"),Af(ep,"margin",0),Af(ep,"top",t.top),Af(ep,"left",t.left),Af(ep,"width",t.width),Af(ep,"height",t.height),Af(ep,"opacity","0.8"),Af(ep,"position",Np?"absolute":"fixed"),Af(ep,"zIndex","100000"),Af(ep,"pointerEvents","none"),Vp.ghost=ep,e.appendChild(ep),Af(ep,"transform-origin",hp/parseInt(ep.style.width)*100+"% "+gp/parseInt(ep.style.height)*100+"%")}},_onDragStart:function(e,t){var n=this,a=e.dataTransfer,r=n.options;Yf("dragStart",this,{evt:e}),Vp.eventCanceled?this._onDrop():(Yf("setupClone",this),Vp.eventCanceled||((rp=Uf(Qf)).draggable=!1,rp.style["will-change"]="",this._hideClone(),Ef(rp,this.options.chosenClass,!1),Vp.clone=rp),n.cloneId=Xp(function(){Yf("clone",n),Vp.eventCanceled||(n.options.removeCloneOnHide||tp.insertBefore(rp,Qf),n._hideClone(),Jf({sortable:n,name:"clone"}))}),!t&&Ef(Qf,r.dragClass,!0),t?(kp=!0,n._loopId=setInterval(n._emulateDragOver,50)):(bf(document,"mouseup",n._onDrop),bf(document,"touchend",n._onDrop),bf(document,"touchcancel",n._onDrop),a&&(a.effectAllowed="move",r.setData&&r.setData.call(n,a,Qf)),yf(document,"drop",n),Af(Qf,"transform","translateZ(0)")),Sp=!0,n._dragStartId=Xp(n._dragStarted.bind(n,t,e)),yf(document,"selectstart",n),yp=!0,mf&&Af(document.body,"user-select","none"))},_onDragOver:function(e){var t,n,a,r,o=this.el,i=e.target,l=this.options,s=l.group,c=Vp.active,d=dp===s,u=l.sort,f=up||c,p=this,m=!1;if(!Cp){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),i=xf(i,l.draggable,o,!0),C("dragOver"),Vp.eventCanceled)return m;if(Qf.contains(e.target)||i.animated&&i.animatingX&&i.animatingY||p._ignoreWhileAnimating===i)return R(!1);if(kp=!1,c&&!l.disabled&&(d?u||(a=Zf!==tp):up===this||(this.lastPutMode=dp.checkPull(this,c,Qf,e))&&s.checkPut(this,c,Qf,e))){if(r="vertical"===this._getDirection(e,i),t=If(Qf),C("dragOverValid"),Vp.eventCanceled)return m;if(a)return Zf=tp,I(),this._hideClone(),C("revert"),Vp.eventCanceled||(np?tp.insertBefore(Qf,np):tp.appendChild(Qf)),R(!0);var v=Tf(o,l.draggable);if(!v||function(e,t,n){var a=If(Tf(n.el,n.options.draggable)),r=10;return t?e.clientX>a.right+r||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+r}(e,r,this)&&!v.animated){if(v===Qf)return R(!1);if(v&&o===e.target&&(i=v),i&&(n=If(i)),!1!==zp(tp,o,Qf,t,i,n,e,!!i))return I(),o.appendChild(Qf),Zf=o,N(),R(!0)}else if(v&&function(e,t,n){var a=If(Nf(n.el,0,n.options,!0)),r=10;return t?e.clientX<a.left-r||e.clientY<a.top&&e.clientX<a.right:e.clientY<a.top-r||e.clientY<a.bottom&&e.clientX<a.left}(e,r,this)){var h=Nf(o,0,l,!0);if(h===Qf)return R(!1);if(n=If(i=h),!1!==zp(tp,o,Qf,t,i,n,e,!1))return I(),o.insertBefore(Qf,h),Zf=o,N(),R(!0)}else if(i.parentNode===o){n=If(i);var g,y,b,_=Qf.parentNode!==o,w=!function(e,t,n){var a=n?e.left:e.top,r=n?e.right:e.bottom,o=n?e.width:e.height,i=n?t.left:t.top,l=n?t.right:t.bottom,s=n?t.width:t.height;return a===i||r===l||a+o/2===i+s/2}(Qf.animated&&Qf.toRect||t,i.animated&&i.toRect||n,r),x=r?"top":"left",S=Rf(i,"top","top")||Rf(Qf,"top","top"),k=S?S.scrollTop:void 0;if(bp!==i&&(y=n[x],Ap=!1,Op=!w&&l.invertSwap||_),g=function(e,t,n,a,r,o,i,l){var s=a?e.clientY:e.clientX,c=a?n.height:n.width,d=a?n.top:n.left,u=a?n.bottom:n.right,f=!1;if(!i)if(l&&wp<c*r){if(!Ap&&(1===_p?s>d+c*o/2:s<u-c*o/2)&&(Ap=!0),Ap)f=!0;else if(1===_p?s<d+wp:s>u-wp)return-_p}else if(s>d+c*(1-r)/2&&s<u-c*(1-r)/2)return function(e){return jf(Qf)<jf(e)?1:-1}(t);if((f=f||i)&&(s<d+c*o/2||s>u-c*o/2))return s>d+c/2?1:-1;return 0}(e,i,n,r,w?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Op,bp===i),0!==g){var E=jf(Qf);do{E-=g,b=Zf.children[E]}while(b&&("none"===Af(b,"display")||b===ep))}if(0===g||b===i)return R(!1);bp=i,_p=g;var A=i.nextElementSibling,O=!1,$=zp(tp,o,Qf,t,i,n,e,O=1===g);if(!1!==$)return 1!==$&&-1!==$||(O=1===$),Cp=!0,setTimeout(Kp,30),I(),O&&!A?o.appendChild(Qf):i.parentNode.insertBefore(Qf,O?A:i),S&&Pf(S,0,k-S.scrollTop),Zf=Qf.parentNode,void 0===y||Op||(wp=Math.abs(y-If(i)[x])),N(),R(!0)}if(o.contains(Qf))return R(!1)}return!1}function C(l,s){Yf(l,p,nf({evt:e,isOwner:d,axis:r?"vertical":"horizontal",revert:a,dragRect:t,targetRect:n,canSort:u,fromSortable:f,target:i,completed:R,onMove:function(n,a){return zp(tp,o,Qf,t,n,If(n),e,a)},changed:N},s))}function I(){C("dragOverAnimationCapture"),p.captureAnimationState(),p!==f&&f.captureAnimationState()}function R(t){return C("dragOverCompleted",{insertion:t}),t&&(d?c._hideClone():c._showClone(p),p!==f&&(Ef(Qf,up?up.options.ghostClass:c.options.ghostClass,!1),Ef(Qf,l.ghostClass,!0)),up!==p&&p!==Vp.active?up=p:p===Vp.active&&up&&(up=null),f===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){C("dragOverAnimationComplete"),p._ignoreWhileAnimating=null}),p!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(i===Qf&&!Qf.animated||i===o&&!i.animated)&&(bp=null),l.dragoverBubble||e.rootEl||i===document||(Qf.parentNode[zf]._isOutsideThisEl(e.target),!t&&Up(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function N(){lp=jf(Qf),cp=jf(Qf,l.draggable),Jf({sortable:p,name:"change",toEl:o,newIndex:lp,newDraggableIndex:cp,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){bf(document,"mousemove",this._onTouchMove),bf(document,"touchmove",this._onTouchMove),bf(document,"pointermove",this._onTouchMove),bf(document,"dragover",Up),bf(document,"mousemove",Up),bf(document,"touchmove",Up)},_offUpEvents:function(){var e=this.el.ownerDocument;bf(e,"mouseup",this._onDrop),bf(e,"touchend",this._onDrop),bf(e,"pointerup",this._onDrop),bf(e,"touchcancel",this._onDrop),bf(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;lp=jf(Qf),cp=jf(Qf,n.draggable),Yf("drop",this,{evt:e}),Zf=Qf&&Qf.parentNode,lp=jf(Qf),cp=jf(Qf,n.draggable),Vp.eventCanceled||(Sp=!1,Op=!1,Ap=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),qp(this.cloneId),qp(this._dragStartId),this.nativeDraggable&&(bf(document,"drop",this),bf(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),mf&&Af(document.body,"user-select",""),Af(Qf,"transform",""),e&&(yp&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ep&&ep.parentNode&&ep.parentNode.removeChild(ep),(tp===Zf||up&&"clone"!==up.lastPutMode)&&rp&&rp.parentNode&&rp.parentNode.removeChild(rp),Qf&&(this.nativeDraggable&&bf(Qf,"dragend",this),Gp(Qf),Qf.style["will-change"]="",yp&&!Sp&&Ef(Qf,up?up.options.ghostClass:this.options.ghostClass,!1),Ef(Qf,this.options.chosenClass,!1),Jf({sortable:this,name:"unchoose",toEl:Zf,newIndex:null,newDraggableIndex:null,originalEvent:e}),tp!==Zf?(lp>=0&&(Jf({rootEl:Zf,name:"add",toEl:Zf,fromEl:tp,originalEvent:e}),Jf({sortable:this,name:"remove",toEl:Zf,originalEvent:e}),Jf({rootEl:Zf,name:"sort",toEl:Zf,fromEl:tp,originalEvent:e}),Jf({sortable:this,name:"sort",toEl:Zf,originalEvent:e})),up&&up.save()):lp!==ip&&lp>=0&&(Jf({sortable:this,name:"update",toEl:Zf,originalEvent:e}),Jf({sortable:this,name:"sort",toEl:Zf,originalEvent:e})),Vp.active&&(null!=lp&&-1!==lp||(lp=ip,cp=sp),Jf({sortable:this,name:"end",toEl:Zf,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Yf("nulling",this),tp=Qf=Zf=ep=np=rp=ap=op=fp=pp=yp=lp=cp=ip=sp=bp=_p=up=dp=Vp.dragged=Vp.ghost=Vp.clone=Vp.active=null,Ip.forEach(function(e){e.checked=!0}),Ip.length=mp=vp=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":Qf&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,a=0,r=n.length,o=this.options;a<r;a++)xf(e=n[a],o.draggable,this.el,!1)&&t.push(e.getAttribute(o.dataIdAttr)||Hp(e));return t},sort:function(e,t){var n={},a=this.el;this.toArray().forEach(function(e,t){var r=a.children[t];xf(r,this.options.draggable,a,!1)&&(n[e]=r)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(a.removeChild(n[e]),a.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return xf(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];var a=Xf.modifyOption(this,e,t);n[e]=void 0!==a?a:t,"group"===e&&Lp(n)},destroy:function(){Yf("destroy",this);var e=this.el;e[zf]=null,bf(e,"mousedown",this._onTapStart),bf(e,"touchstart",this._onTapStart),bf(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(bf(e,"dragover",this),bf(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(e){e.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),Ep.splice(Ep.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!op){if(Yf("hideClone",this),Vp.eventCanceled)return;Af(rp,"display","none"),this.options.removeCloneOnHide&&rp.parentNode&&rp.parentNode.removeChild(rp),op=!0}},_showClone:function(e){if("clone"===e.lastPutMode){if(op){if(Yf("showClone",this),Vp.eventCanceled)return;Qf.parentNode!=tp||this.options.group.revertClone?np?tp.insertBefore(rp,np):tp.appendChild(rp):tp.insertBefore(rp,Qf),this.options.group.revertClone&&this.animate(Qf,rp),Af(rp,"display",""),op=!1}}else this._hideClone()}},Rp&&yf(document,"touchmove",function(e){(Vp.active||Sp)&&e.cancelable&&e.preventDefault()}),Vp.utils={on:yf,off:bf,css:Af,find:$f,is:function(e,t){return!!xf(e,t,e,!1)},extend:function(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},throttle:Ff,closest:xf,toggleClass:Ef,clone:Uf,index:jf,nextTick:Xp,cancelNextTick:qp,detectDirection:Mp,getChild:Nf},Vp.get=function(e){return e[zf]},Vp.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]),t.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(e));e.utils&&(Vp.utils=nf(nf({},Vp.utils),e.utils)),Xf.mount(e)})},Vp.create=function(e,t){return new Vp(e,t)},Vp.version="1.14.0";var Wp,Yp,Jp,Qp,Zp,em,tm=[],nm=!1;function am(){tm.forEach(function(e){clearInterval(e.pid)}),tm=[]}function rm(){clearInterval(em)}var om,im=Ff(function(e,t,n,a){if(t.scroll){var r,o=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,l=t.scrollSensitivity,s=t.scrollSpeed,c=Cf(),d=!1;Yp!==n&&(Yp=n,am(),Wp=t.scroll,r=t.scrollFn,!0===Wp&&(Wp=Mf(n,!0)));var u=0,f=Wp;do{var p=f,m=If(p),v=m.top,h=m.bottom,g=m.left,y=m.right,b=m.width,_=m.height,w=void 0,x=void 0,S=p.scrollWidth,k=p.scrollHeight,E=Af(p),A=p.scrollLeft,O=p.scrollTop;p===c?(w=b<S&&("auto"===E.overflowX||"scroll"===E.overflowX||"visible"===E.overflowX),x=_<k&&("auto"===E.overflowY||"scroll"===E.overflowY||"visible"===E.overflowY)):(w=b<S&&("auto"===E.overflowX||"scroll"===E.overflowX),x=_<k&&("auto"===E.overflowY||"scroll"===E.overflowY));var $=w&&(Math.abs(y-o)<=l&&A+b<S)-(Math.abs(g-o)<=l&&!!A),C=x&&(Math.abs(h-i)<=l&&O+_<k)-(Math.abs(v-i)<=l&&!!O);if(!tm[u])for(var I=0;I<=u;I++)tm[I]||(tm[I]={});tm[u].vx==$&&tm[u].vy==C&&tm[u].el===p||(tm[u].el=p,tm[u].vx=$,tm[u].vy=C,clearInterval(tm[u].pid),0==$&&0==C||(d=!0,tm[u].pid=setInterval(function(){a&&0===this.layer&&Vp.active._onTouchMove(Zp);var t=tm[this.layer].vy?tm[this.layer].vy*s:0,n=tm[this.layer].vx?tm[this.layer].vx*s:0;"function"==typeof r&&"continue"!==r.call(Vp.dragged.parentNode[zf],n,t,e,Zp,tm[this.layer].el)||Pf(tm[this.layer].el,n,t)}.bind({layer:u}),24))),u++}while(t.bubbleScroll&&f!==c&&(f=Mf(f,!1)));nm=d}},30),lm=function(e){var t=e.originalEvent,n=e.putSortable,a=e.dragEl,r=e.activeSortable,o=e.dispatchSortableEvent,i=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(t){var s=n||r;i();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,d=document.elementFromPoint(c.clientX,c.clientY);l(),s&&!s.el.contains(d)&&(o("spill"),this.onSpill({dragEl:a,putSortable:n}))}};function sm(){}function cm(){}sm.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var a=Nf(this.sortable.el,this.startIndex,this.options);a?this.sortable.el.insertBefore(t,a):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:lm},of(sm,{pluginName:"revertOnSpill"}),cm.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:lm},of(cm,{pluginName:"removeOnSpill"});var dm,um,fm,pm,mm,vm=[],hm=[],gm=!1,ym=!1,bm=!1;function _m(e,t){hm.forEach(function(n,a){var r=t.children[n.sortableIndex+(e?Number(a):0)];r?t.insertBefore(n,r):t.appendChild(n)})}function wm(){vm.forEach(function(e){e!==fm&&e.parentNode&&e.parentNode.removeChild(e)})}Vp.mount(new function(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===e.charAt(0)&&"function"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?yf(document,"dragover",this._handleAutoScroll):this.options.supportPointer?yf(document,"pointermove",this._handleFallbackAutoScroll):t.touches?yf(document,"touchmove",this._handleFallbackAutoScroll):yf(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?bf(document,"dragover",this._handleAutoScroll):(bf(document,"pointermove",this._handleFallbackAutoScroll),bf(document,"touchmove",this._handleFallbackAutoScroll),bf(document,"mousemove",this._handleFallbackAutoScroll)),rm(),am(),clearTimeout(Sf),Sf=void 0},nulling:function(){Zp=Yp=Wp=nm=em=Jp=Qp=null,tm.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,a=(e.touches?e.touches[0]:e).clientX,r=(e.touches?e.touches[0]:e).clientY,o=document.elementFromPoint(a,r);if(Zp=e,t||this.options.forceAutoScrollFallback||ff||uf||mf){im(e,this.options,o,t);var i=Mf(o,!0);!nm||em&&a===Jp&&r===Qp||(em&&rm(),em=setInterval(function(){var o=Mf(document.elementFromPoint(a,r),!0);o!==i&&(i=o,am()),im(e,n.options,o,t)},10),Jp=a,Qp=r)}else{if(!this.options.bubbleScroll||Mf(o,!0)===Cf())return void am();im(e,this.options,Mf(o,!1),!1)}}},of(e,{pluginName:"scroll",initializeByDefault:!0})}),Vp.mount(cm,sm);var xm,Sm=Object.freeze({__proto__:null,MultiDrag:function(){function e(e){for(var t in this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this));e.options.supportPointer?yf(document,"pointerup",this._deselectMultiDrag):(yf(document,"mouseup",this._deselectMultiDrag),yf(document,"touchend",this._deselectMultiDrag)),yf(document,"keydown",this._checkKeyDown),yf(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(t,n){var a="";vm.length&&um===e?vm.forEach(function(e,t){a+=(t?", ":"")+e.textContent}):a=n.textContent,t.setData("Text",a)}}}return e.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(e){var t=e.dragEl;fm=t},delayEnded:function(){this.isMultiDrag=~vm.indexOf(fm)},setupClone:function(e){var t=e.sortable,n=e.cancel;if(this.isMultiDrag){for(var a=0;a<vm.length;a++)hm.push(Uf(vm[a])),hm[a].sortableIndex=vm[a].sortableIndex,hm[a].draggable=!1,hm[a].style["will-change"]="",Ef(hm[a],this.options.selectedClass,!1),vm[a]===fm&&Ef(hm[a],this.options.chosenClass,!1);t._hideClone(),n()}},clone:function(e){var t=e.sortable,n=e.rootEl,a=e.dispatchSortableEvent,r=e.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||vm.length&&um===t&&(_m(!0,n),a("clone"),r()))},showClone:function(e){var t=e.cloneNowShown,n=e.rootEl,a=e.cancel;this.isMultiDrag&&(_m(!1,n),hm.forEach(function(e){Af(e,"display","")}),t(),mm=!1,a())},hideClone:function(e){var t=this;e.sortable;var n=e.cloneNowHidden,a=e.cancel;this.isMultiDrag&&(hm.forEach(function(e){Af(e,"display","none"),t.options.removeCloneOnHide&&e.parentNode&&e.parentNode.removeChild(e)}),n(),mm=!0,a())},dragStartGlobal:function(e){e.sortable,!this.isMultiDrag&&um&&um.multiDrag._deselectMultiDrag(),vm.forEach(function(e){e.sortableIndex=jf(e)}),vm=vm.sort(function(e,t){return e.sortableIndex-t.sortableIndex}),bm=!0},dragStarted:function(e){var t=this,n=e.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){vm.forEach(function(e){e!==fm&&Af(e,"position","absolute")});var a=If(fm,!1,!0,!0);vm.forEach(function(e){e!==fm&&Bf(e,a)}),ym=!0,gm=!0}n.animateAll(function(){ym=!1,gm=!1,t.options.animation&&vm.forEach(function(e){Vf(e)}),t.options.sort&&wm()})}},dragOver:function(e){var t=e.target,n=e.completed,a=e.cancel;ym&&~vm.indexOf(t)&&(n(!1),a())},revert:function(e){var t=e.fromSortable,n=e.rootEl,a=e.sortable,r=e.dragRect;vm.length>1&&(vm.forEach(function(e){a.addAnimationState({target:e,rect:ym?If(e):r}),Vf(e),e.fromRect=r,t.removeAnimationState(e)}),ym=!1,function(e,t){vm.forEach(function(n,a){var r=t.children[n.sortableIndex+(e?Number(a):0)];r?t.insertBefore(n,r):t.appendChild(n)})}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(e){var t=e.sortable,n=e.isOwner,a=e.insertion,r=e.activeSortable,o=e.parentEl,i=e.putSortable,l=this.options;if(a){if(n&&r._hideClone(),gm=!1,l.animation&&vm.length>1&&(ym||!n&&!r.options.sort&&!i)){var s=If(fm,!1,!0,!0);vm.forEach(function(e){e!==fm&&(Bf(e,s),o.appendChild(e))}),ym=!0}if(!n)if(ym||wm(),vm.length>1){var c=mm;r._showClone(t),r.options.animation&&!mm&&c&&hm.forEach(function(e){r.addAnimationState({target:e,rect:pm}),e.fromRect=pm,e.thisAnimationDuration=null})}else r._showClone(t)}},dragOverAnimationCapture:function(e){var t=e.dragRect,n=e.isOwner,a=e.activeSortable;if(vm.forEach(function(e){e.thisAnimationDuration=null}),a.options.animation&&!n&&a.multiDrag.isMultiDrag){pm=of({},t);var r=Of(fm,!0);pm.top-=r.f,pm.left-=r.e}},dragOverAnimationComplete:function(){ym&&(ym=!1,wm())},drop:function(e){var t=e.originalEvent,n=e.rootEl,a=e.parentEl,r=e.sortable,o=e.dispatchSortableEvent,i=e.oldIndex,l=e.putSortable,s=l||this.sortable;if(t){var c=this.options,d=a.children;if(!bm)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),Ef(fm,c.selectedClass,!~vm.indexOf(fm)),~vm.indexOf(fm))vm.splice(vm.indexOf(fm),1),dm=null,qf({sortable:r,rootEl:n,name:"deselect",targetEl:fm});else{if(vm.push(fm),qf({sortable:r,rootEl:n,name:"select",targetEl:fm}),t.shiftKey&&dm&&r.el.contains(dm)){var u,f,p=jf(dm),m=jf(fm);if(~p&&~m&&p!==m)for(m>p?(f=p,u=m):(f=m,u=p+1);f<u;f++)~vm.indexOf(d[f])||(Ef(d[f],c.selectedClass,!0),vm.push(d[f]),qf({sortable:r,rootEl:n,name:"select",targetEl:d[f]}))}else dm=fm;um=s}if(bm&&this.isMultiDrag){if(ym=!1,(a[zf].options.sort||a!==n)&&vm.length>1){var v=If(fm),h=jf(fm,":not(."+this.options.selectedClass+")");if(!gm&&c.animation&&(fm.thisAnimationDuration=null),s.captureAnimationState(),!gm&&(c.animation&&(fm.fromRect=v,vm.forEach(function(e){if(e.thisAnimationDuration=null,e!==fm){var t=ym?If(e):v;e.fromRect=t,s.addAnimationState({target:e,rect:t})}})),wm(),vm.forEach(function(e){d[h]?a.insertBefore(e,d[h]):a.appendChild(e),h++}),i===jf(fm))){var g=!1;vm.forEach(function(e){e.sortableIndex===jf(e)||(g=!0)}),g&&o("update")}vm.forEach(function(e){Vf(e)}),s.animateAll()}um=s}(n===a||l&&"clone"!==l.lastPutMode)&&hm.forEach(function(e){e.parentNode&&e.parentNode.removeChild(e)})}},nullingGlobal:function(){this.isMultiDrag=bm=!1,hm.length=0},destroyGlobal:function(){this._deselectMultiDrag(),bf(document,"pointerup",this._deselectMultiDrag),bf(document,"mouseup",this._deselectMultiDrag),bf(document,"touchend",this._deselectMultiDrag),bf(document,"keydown",this._checkKeyDown),bf(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(e){if(!(void 0!==bm&&bm||um!==this.sortable||e&&xf(e.target,this.options.draggable,this.sortable.el,!1)||e&&0!==e.button))for(;vm.length;){var t=vm[0];Ef(t,this.options.selectedClass,!1),vm.shift(),qf({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:t})}},_checkKeyDown:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},of(e,{pluginName:"multiDrag",utils:{select:function(e){var t=e.parentNode[zf];t&&t.options.multiDrag&&!~vm.indexOf(e)&&(um&&um!==t&&(um.multiDrag._deselectMultiDrag(),um=t),Ef(e,t.options.selectedClass,!0),vm.push(e))},deselect:function(e){var t=e.parentNode[zf],n=vm.indexOf(e);t&&t.options.multiDrag&&~n&&(Ef(e,t.options.selectedClass,!1),vm.splice(n,1))}},eventProperties:function(){var e=this,t=[],n=[];return vm.forEach(function(a){var r;t.push({multiDragElement:a,index:a.sortableIndex}),r=ym&&a!==fm?-1:ym?jf(a,":not(."+e.options.selectedClass+")"):jf(a),n.push({multiDragElement:a,index:r})}),{items:sf(vm),clones:[].concat(hm),oldIndicies:t,newIndicies:n}},optionListeners:{multiDragKey:function(e){return"ctrl"===(e=e.toLowerCase())?e="Control":e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1)),e}}})},Sortable:Vp,Swap:function(){function e(){this.defaults={swapClass:"sortable-swap-highlight"}}return e.prototype={dragStart:function(e){var t=e.dragEl;om=t},dragOverValid:function(e){var t=e.completed,n=e.target,a=e.onMove,r=e.activeSortable,o=e.changed,i=e.cancel;if(r.options.swap){var l=this.sortable.el,s=this.options;if(n&&n!==l){var c=om;!1!==a(n)?(Ef(n,s.swapClass,!0),om=n):om=null,c&&c!==om&&Ef(c,s.swapClass,!1)}o(),t(!0),i()}},drop:function(e){var t=e.activeSortable,n=e.putSortable,a=e.dragEl,r=n||this.sortable,o=this.options;om&&Ef(om,o.swapClass,!1),om&&(o.swap||n&&n.options.swap)&&a!==om&&(r.captureAnimationState(),r!==t&&t.captureAnimationState(),function(e,t){var n,a,r=e.parentNode,o=t.parentNode;if(!r||!o||r.isEqualNode(t)||o.isEqualNode(e))return;n=jf(e),a=jf(t),r.isEqualNode(o)&&n<a&&a++;r.insertBefore(t,r.children[n]),o.insertBefore(e,o.children[a])}(a,om),r.animateAll(),r!==t&&t.animateAll())},nulling:function(){om=null}},of(e,{pluginName:"swap",eventProperties:function(){return{swapItem:om}}})},default:Vp});var km,Em=xm?Zu.exports:(xm=1,"undefined"!=typeof self&&self,km=function(e,t){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"00ee":function(e,t,n){var a={};a[n("b622")("toStringTag")]="z",e.exports="[object z]"===String(a)},"0366":function(e,t,n){var a=n("1c0b");e.exports=function(e,t,n){if(a(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,a){return e.call(t,n,a)};case 3:return function(n,a,r){return e.call(t,n,a,r)}}return function(){return e.apply(t,arguments)}}},"057f":function(e,t,n){var a=n("fc6a"),r=n("241c").f,o={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==o.call(e)?function(e){try{return r(e)}catch(e){return i.slice()}}(e):r(a(e))}},"06cf":function(e,t,n){var a=n("83ab"),r=n("d1e7"),o=n("5c6c"),i=n("fc6a"),l=n("c04e"),s=n("5135"),c=n("0cfb"),d=Object.getOwnPropertyDescriptor;t.f=a?d:function(e,t){if(e=i(e),t=l(t,!0),c)try{return d(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},"0cfb":function(e,t,n){var a=n("83ab"),r=n("d039"),o=n("cc12");e.exports=!a&&!r(function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},"13d5":function(e,t,n){var a=n("23e7"),r=n("d58f").left,o=n("a640"),i=n("ae40"),l=o("reduce"),s=i("reduce",{1:0});a({target:"Array",proto:!0,forced:!l||!s},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,t,n){var a=n("c6b6"),r=n("9263");e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var o=n.call(e,t);if("object"!=typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==a(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},"159b":function(e,t,n){var a=n("da84"),r=n("fdbc"),o=n("17c2"),i=n("9112");for(var l in r){var s=a[l],c=s&&s.prototype;if(c&&c.forEach!==o)try{i(c,"forEach",o)}catch(e){c.forEach=o}}},"17c2":function(e,t,n){var a=n("b727").forEach,r=n("a640"),o=n("ae40"),i=r("forEach"),l=o("forEach");e.exports=i&&l?[].forEach:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}},"1be4":function(e,t,n){var a=n("d066");e.exports=a("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1c7e":function(e,t,n){var a=n("b622")("iterator"),r=!1;try{var o=0,i={next:function(){return{done:!!o++}},return:function(){r=!0}};i[a]=function(){return this},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var o={};o[a]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},"1d80":function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var a=n("d039"),r=n("b622"),o=n("2d00"),i=r("species");e.exports=function(e){return o>=51||!a(function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},"23cb":function(e,t,n){var a=n("a691"),r=Math.max,o=Math.min;e.exports=function(e,t){var n=a(e);return n<0?r(n+t,0):o(n,t)}},"23e7":function(e,t,n){var a=n("da84"),r=n("06cf").f,o=n("9112"),i=n("6eeb"),l=n("ce4e"),s=n("e893"),c=n("94ca");e.exports=function(e,t){var n,d,u,f,p,m=e.target,v=e.global,h=e.stat;if(n=v?a:h?a[m]||l(m,{}):(a[m]||{}).prototype)for(d in t){if(f=t[d],u=e.noTargetGet?(p=r(n,d))&&p.value:n[d],!c(v?d:m+(h?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;s(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),i(n,d,f,e)}}},"241c":function(e,t,n){var a=n("ca84"),r=n("7839").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,r)}},"25f0":function(e,t,n){var a=n("6eeb"),r=n("825a"),o=n("d039"),i=n("ad6d"),l="toString",s=RegExp.prototype,c=s[l],d=o(function(){return"/a/b"!=c.call({source:"a",flags:"b"})}),u=c.name!=l;(d||u)&&a(RegExp.prototype,l,function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in s)?i.call(e):n)},{unsafe:!0})},"2ca0":function(e,t,n){var a,r=n("23e7"),o=n("06cf").f,i=n("50c4"),l=n("5a34"),s=n("1d80"),c=n("ab13"),d=n("c430"),u="".startsWith,f=Math.min,p=c("startsWith");r({target:"String",proto:!0,forced:!(!d&&!p&&(a=o(String.prototype,"startsWith"),a&&!a.writable)||p)},{startsWith:function(e){var t=String(s(this));l(e);var n=i(f(arguments.length>1?arguments[1]:void 0,t.length)),a=String(e);return u?u.call(t,a,n):t.slice(n,n+a.length)===a}})},"2d00":function(e,t,n){var a,r,o=n("da84"),i=n("342f"),l=o.process,s=l&&l.versions,c=s&&s.v8;c?r=(a=c.split("."))[0]+a[1]:i&&(!(a=i.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=i.match(/Chrome\/(\d+)/))&&(r=a[1]),e.exports=r&&+r},"342f":function(e,t,n){var a=n("d066");e.exports=a("navigator","userAgent")||""},"35a1":function(e,t,n){var a=n("f5df"),r=n("3f8c"),o=n("b622")("iterator");e.exports=function(e){if(null!=e)return e[o]||e["@@iterator"]||r[a(e)]}},"37e8":function(e,t,n){var a=n("83ab"),r=n("9bf2"),o=n("825a"),i=n("df75");e.exports=a?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),l=a.length,s=0;l>s;)r.f(e,n=a[s++],t[n]);return e}},"3bbe":function(e,t,n){var a=n("861d");e.exports=function(e){if(!a(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"3ca3":function(e,t,n){var a=n("6547").charAt,r=n("69f3"),o=n("7dd0"),i="String Iterator",l=r.set,s=r.getterFor(i);o(String,"String",function(e){l(this,{type:i,string:String(e),index:0})},function(){var e,t=s(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=a(n,r),t.index+=e.length,{value:e,done:!1})})},"3f8c":function(e,t){e.exports={}},4160:function(e,t,n){var a=n("23e7"),r=n("17c2");a({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},"428f":function(e,t,n){var a=n("da84");e.exports=a},"44ad":function(e,t,n){var a=n("d039"),r=n("c6b6"),o="".split;e.exports=a(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==r(e)?o.call(e,""):Object(e)}:Object},"44d2":function(e,t,n){var a=n("b622"),r=n("7c73"),o=n("9bf2"),i=a("unscopables"),l=Array.prototype;null==l[i]&&o.f(l,i,{configurable:!0,value:r(null)}),e.exports=function(e){l[i][e]=!0}},"44e7":function(e,t,n){var a=n("861d"),r=n("c6b6"),o=n("b622")("match");e.exports=function(e){var t;return a(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==r(e))}},4930:function(e,t,n){var a=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!a(function(){return!String(Symbol())})},"4d64":function(e,t,n){var a=n("fc6a"),r=n("50c4"),o=n("23cb"),i=function(e){return function(t,n,i){var l,s=a(t),c=r(s.length),d=o(i,c);if(e&&n!=n){for(;c>d;)if((l=s[d++])!=l)return!0}else for(;c>d;d++)if((e||d in s)&&s[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"4de4":function(e,t,n){var a=n("23e7"),r=n("b727").filter,o=n("1dde"),i=n("ae40"),l=o("filter"),s=i("filter");a({target:"Array",proto:!0,forced:!l||!s},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,t,n){var a=n("0366"),r=n("7b0b"),o=n("9bdd"),i=n("e95a"),l=n("50c4"),s=n("8418"),c=n("35a1");e.exports=function(e){var t,n,d,u,f,p,m=r(e),v="function"==typeof this?this:Array,h=arguments.length,g=h>1?arguments[1]:void 0,y=void 0!==g,b=c(m),_=0;if(y&&(g=a(g,h>2?arguments[2]:void 0,2)),null==b||v==Array&&i(b))for(n=new v(t=l(m.length));t>_;_++)p=y?g(m[_],_):m[_],s(n,_,p);else for(f=(u=b.call(m)).next,n=new v;!(d=f.call(u)).done;_++)p=y?o(u,g,[d.value,_],!0):d.value,s(n,_,p);return n.length=_,n}},"4fad":function(e,t,n){var a=n("23e7"),r=n("6f53").entries;a({target:"Object",stat:!0},{entries:function(e){return r(e)}})},"50c4":function(e,t,n){var a=n("a691"),r=Math.min;e.exports=function(e){return e>0?r(a(e),9007199254740991):0}},5135:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},5319:function(e,t,n){var a=n("d784"),r=n("825a"),o=n("7b0b"),i=n("50c4"),l=n("a691"),s=n("1d80"),c=n("8aa5"),d=n("14c3"),u=Math.max,f=Math.min,p=Math.floor,m=/\$([$&'`]|\d\d?|<[^>]*>)/g,v=/\$([$&'`]|\d\d?)/g,h=function(e){return void 0===e?e:String(e)};a("replace",2,function(e,t,n,a){var g=a.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,y=a.REPLACE_KEEPS_$0,b=g?"$":"$0";return[function(n,a){var r=s(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r,a):t.call(String(r),n,a)},function(e,a){if(!g&&y||"string"==typeof a&&-1===a.indexOf(b)){var o=n(t,e,this,a);if(o.done)return o.value}var s=r(e),p=String(this),m="function"==typeof a;m||(a=String(a));var v=s.global;if(v){var w=s.unicode;s.lastIndex=0}for(var x=[];;){var S=d(s,p);if(null===S)break;if(x.push(S),!v)break;""===String(S[0])&&(s.lastIndex=c(p,i(s.lastIndex),w))}for(var k="",E=0,A=0;A<x.length;A++){S=x[A];for(var O=String(S[0]),$=u(f(l(S.index),p.length),0),C=[],I=1;I<S.length;I++)C.push(h(S[I]));var R=S.groups;if(m){var N=[O].concat(C,$,p);void 0!==R&&N.push(R);var T=String(a.apply(void 0,N))}else T=_(O,p,$,C,R,a);$>=E&&(k+=p.slice(E,$)+T,E=$+O.length)}return k+p.slice(E)}];function _(e,n,a,r,i,l){var s=a+e.length,c=r.length,d=v;return void 0!==i&&(i=o(i),d=m),t.call(l,d,function(t,o){var l;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,a);case"'":return n.slice(s);case"<":l=i[o.slice(1,-1)];break;default:var d=+o;if(0===d)return t;if(d>c){var u=p(d/10);return 0===u?t:u<=c?void 0===r[u-1]?o.charAt(1):r[u-1]+o.charAt(1):t}l=r[d-1]}return void 0===l?"":l})}})},5692:function(e,t,n){var a=n("c430"),r=n("c6cd");(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:a?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var a=n("d066"),r=n("241c"),o=n("7418"),i=n("825a");e.exports=a("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=o.f;return n?t.concat(n(e)):t}},"5a34":function(e,t,n){var a=n("44e7");e.exports=function(e){if(a(e))throw TypeError("The method doesn't accept regular expressions");return e}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"5db7":function(e,t,n){var a=n("23e7"),r=n("a2bf"),o=n("7b0b"),i=n("50c4"),l=n("1c0b"),s=n("65f0");a({target:"Array",proto:!0},{flatMap:function(e){var t,n=o(this),a=i(n.length);return l(e),(t=s(n,0)).length=r(t,n,n,a,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},6547:function(e,t,n){var a=n("a691"),r=n("1d80"),o=function(e){return function(t,n){var o,i,l=String(r(t)),s=a(n),c=l.length;return s<0||s>=c?e?"":void 0:(o=l.charCodeAt(s))<55296||o>56319||s+1===c||(i=l.charCodeAt(s+1))<56320||i>57343?e?l.charAt(s):o:e?l.slice(s,s+2):i-56320+(o-55296<<10)+65536}};e.exports={codeAt:o(!1),charAt:o(!0)}},"65f0":function(e,t,n){var a=n("861d"),r=n("e8b5"),o=n("b622")("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?a(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var a,r,o,i=n("7f9a"),l=n("da84"),s=n("861d"),c=n("9112"),d=n("5135"),u=n("f772"),f=n("d012"),p=l.WeakMap;if(i){var m=new p,v=m.get,h=m.has,g=m.set;a=function(e,t){return g.call(m,e,t),t},r=function(e){return v.call(m,e)||{}},o=function(e){return h.call(m,e)}}else{var y=u("state");f[y]=!0,a=function(e,t){return c(e,y,t),t},r=function(e){return d(e,y)?e[y]:{}},o=function(e){return d(e,y)}}e.exports={set:a,get:r,has:o,enforce:function(e){return o(e)?r(e):a(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},"6eeb":function(e,t,n){var a=n("da84"),r=n("9112"),o=n("5135"),i=n("ce4e"),l=n("8925"),s=n("69f3"),c=s.get,d=s.enforce,u=String(String).split("String");(e.exports=function(e,t,n,l){var s=!!l&&!!l.unsafe,c=!!l&&!!l.enumerable,f=!!l&&!!l.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||r(n,"name",t),d(n).source=u.join("string"==typeof t?t:"")),e!==a?(s?!f&&e[t]&&(c=!0):delete e[t],c?e[t]=n:r(e,t,n)):c?e[t]=n:i(t,n)})(Function.prototype,"toString",function(){return"function"==typeof this&&c(this).source||l(this)})},"6f53":function(e,t,n){var a=n("83ab"),r=n("df75"),o=n("fc6a"),i=n("d1e7").f,l=function(e){return function(t){for(var n,l=o(t),s=r(l),c=s.length,d=0,u=[];c>d;)n=s[d++],a&&!i.call(l,n)||u.push(e?[n,l[n]]:l[n]);return u}};e.exports={entries:l(!0),values:l(!1)}},"73d9":function(e,t,n){n("44d2")("flatMap")},7418:function(e,t){t.f=Object.getOwnPropertySymbols},"746f":function(e,t,n){var a=n("428f"),r=n("5135"),o=n("e538"),i=n("9bf2").f;e.exports=function(e){var t=a.Symbol||(a.Symbol={});r(t,e)||i(t,e,{value:o.f(e)})}},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,t,n){var a=n("1d80");e.exports=function(e){return Object(a(e))}},"7c73":function(e,t,n){var a,r=n("825a"),o=n("37e8"),i=n("7839"),l=n("d012"),s=n("1be4"),c=n("cc12"),d=n("f772"),u="prototype",f="script",p=d("IE_PROTO"),m=function(){},v=function(e){return"<"+f+">"+e+"</"+f+">"},h=function(){try{a=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t,n;h=a?function(e){e.write(v("")),e.close();var t=e.parentWindow.Object;return e=null,t}(a):(t=c("iframe"),n="java"+f+":",t.style.display="none",s.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(v("document.F=Object")),e.close(),e.F);for(var r=i.length;r--;)delete h[u][i[r]];return h()};l[p]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[u]=r(e),n=new m,m[u]=null,n[p]=e):n=h(),void 0===t?n:o(n,t)}},"7dd0":function(e,t,n){var a=n("23e7"),r=n("9ed3"),o=n("e163"),i=n("d2bb"),l=n("d44e"),s=n("9112"),c=n("6eeb"),d=n("b622"),u=n("c430"),f=n("3f8c"),p=n("ae93"),m=p.IteratorPrototype,v=p.BUGGY_SAFARI_ITERATORS,h=d("iterator"),g="keys",y="values",b="entries",_=function(){return this};e.exports=function(e,t,n,d,p,w,x){r(n,t,d);var S,k,E,A=function(e){if(e===p&&R)return R;if(!v&&e in C)return C[e];switch(e){case g:case y:case b:return function(){return new n(this,e)}}return function(){return new n(this)}},O=t+" Iterator",$=!1,C=e.prototype,I=C[h]||C["@@iterator"]||p&&C[p],R=!v&&I||A(p),N="Array"==t&&C.entries||I;if(N&&(S=o(N.call(new e)),m!==Object.prototype&&S.next&&(u||o(S)===m||(i?i(S,m):"function"!=typeof S[h]&&s(S,h,_)),l(S,O,!0,!0),u&&(f[O]=_))),p==y&&I&&I.name!==y&&($=!0,R=function(){return I.call(this)}),u&&!x||C[h]===R||s(C,h,R),f[t]=R,p)if(k={values:A(y),keys:w?R:A(g),entries:A(b)},x)for(E in k)(v||$||!(E in C))&&c(C,E,k[E]);else a({target:t,proto:!0,forced:v||$},k);return k}},"7f9a":function(e,t,n){var a=n("da84"),r=n("8925"),o=a.WeakMap;e.exports="function"==typeof o&&/native code/.test(r(o))},"825a":function(e,t,n){var a=n("861d");e.exports=function(e){if(!a(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var a=n("d039");e.exports=!a(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},8418:function(e,t,n){var a=n("c04e"),r=n("9bf2"),o=n("5c6c");e.exports=function(e,t,n){var i=a(t);i in e?r.f(e,i,o(0,n)):e[i]=n}},"861d":function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},8875:function(e,t,n){var a,r,o;"undefined"!=typeof self&&self,r=[],a=function(){function e(){var t=Object.getOwnPropertyDescriptor(document,"currentScript");if(!t&&"currentScript"in document&&document.currentScript)return document.currentScript;if(t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw new Error}catch(e){var n,a,r,o=/@([^@]*):(\d+):(\d+)\s*$/gi,i=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(e.stack)||o.exec(e.stack),l=i&&i[1]||!1,s=i&&i[2]||!1,c=document.location.href.replace(document.location.hash,""),d=document.getElementsByTagName("script");l===c&&(n=document.documentElement.outerHTML,a=new RegExp("(?:[^\\n]+?\\n){0,"+(s-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),r=n.replace(a,"$1").trim());for(var u=0;u<d.length;u++){if("interactive"===d[u].readyState)return d[u];if(d[u].src===l)return d[u];if(l===c&&d[u].innerHTML&&d[u].innerHTML.trim()===r)return d[u]}return null}}return e},void 0===(o="function"==typeof a?a.apply(t,r):a)||(e.exports=o)},8925:function(e,t,n){var a=n("c6cd"),r=Function.toString;"function"!=typeof a.inspectSource&&(a.inspectSource=function(e){return r.call(e)}),e.exports=a.inspectSource},"8aa5":function(e,t,n){var a=n("6547").charAt;e.exports=function(e,t,n){return t+(n?a(e,t).length:1)}},"8bbf":function(t,n){t.exports=e},"90e3":function(e,t){var n=0,a=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+a).toString(36)}},9112:function(e,t,n){var a=n("83ab"),r=n("9bf2"),o=n("5c6c");e.exports=a?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},9263:function(e,t,n){var a,r,o=n("ad6d"),i=n("9f7f"),l=RegExp.prototype.exec,s=String.prototype.replace,c=l,d=(a=/a/,r=/b*/g,l.call(a,"a"),l.call(r,"a"),0!==a.lastIndex||0!==r.lastIndex),u=i.UNSUPPORTED_Y||i.BROKEN_CARET,f=void 0!==/()??/.exec("")[1];(d||f||u)&&(c=function(e){var t,n,a,r,i=this,c=u&&i.sticky,p=o.call(i),m=i.source,v=0,h=e;return c&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),h=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(m="(?: "+m+")",h=" "+h,v++),n=new RegExp("^(?:"+m+")",p)),f&&(n=new RegExp("^"+m+"$(?!\\s)",p)),d&&(t=i.lastIndex),a=l.call(c?n:i,h),c?a?(a.input=a.input.slice(v),a[0]=a[0].slice(v),a.index=i.lastIndex,i.lastIndex+=a[0].length):i.lastIndex=0:d&&a&&(i.lastIndex=i.global?a.index+a[0].length:t),f&&a&&a.length>1&&s.call(a[0],n,function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(a[r]=void 0)}),a}),e.exports=c},"94ca":function(e,t,n){var a=n("d039"),r=/#|\.prototype\./,o=function(e,t){var n=l[i(e)];return n==c||n!=s&&("function"==typeof t?a(t):!!t)},i=o.normalize=function(e){return String(e).replace(r,".").toLowerCase()},l=o.data={},s=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},"99af":function(e,t,n){var a=n("23e7"),r=n("d039"),o=n("e8b5"),i=n("861d"),l=n("7b0b"),s=n("50c4"),c=n("8418"),d=n("65f0"),u=n("1dde"),f=n("b622"),p=n("2d00"),m=f("isConcatSpreadable"),v=9007199254740991,h="Maximum allowed index exceeded",g=p>=51||!r(function(){var e=[];return e[m]=!1,e.concat()[0]!==e}),y=u("concat"),b=function(e){if(!i(e))return!1;var t=e[m];return void 0!==t?!!t:o(e)};a({target:"Array",proto:!0,forced:!g||!y},{concat:function(e){var t,n,a,r,o,i=l(this),u=d(i,0),f=0;for(t=-1,a=arguments.length;t<a;t++)if(b(o=-1===t?i:arguments[t])){if(f+(r=s(o.length))>v)throw TypeError(h);for(n=0;n<r;n++,f++)n in o&&c(u,f,o[n])}else{if(f>=v)throw TypeError(h);c(u,f++,o)}return u.length=f,u}})},"9bdd":function(e,t,n){var a=n("825a");e.exports=function(e,t,n,r){try{return r?t(a(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&a(o.call(e)),t}}},"9bf2":function(e,t,n){var a=n("83ab"),r=n("0cfb"),o=n("825a"),i=n("c04e"),l=Object.defineProperty;t.f=a?l:function(e,t,n){if(o(e),t=i(t,!0),o(n),r)try{return l(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"9ed3":function(e,t,n){var a=n("ae93").IteratorPrototype,r=n("7c73"),o=n("5c6c"),i=n("d44e"),l=n("3f8c"),s=function(){return this};e.exports=function(e,t,n){var c=t+" Iterator";return e.prototype=r(a,{next:o(1,n)}),i(e,c,!1,!0),l[c]=s,e}},"9f7f":function(e,t,n){var a=n("d039");function r(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=a(function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")}),t.BROKEN_CARET=a(function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")})},a2bf:function(e,t,n){var a=n("e8b5"),r=n("50c4"),o=n("0366"),i=function(e,t,n,l,s,c,d,u){for(var f,p=s,m=0,v=!!d&&o(d,u,3);m<l;){if(m in n){if(f=v?v(n[m],m,t):n[m],c>0&&a(f))p=i(e,t,f,r(f.length),p,c-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=f}p++}m++}return p};e.exports=i},a352:function(e,n){e.exports=t},a434:function(e,t,n){var a=n("23e7"),r=n("23cb"),o=n("a691"),i=n("50c4"),l=n("7b0b"),s=n("65f0"),c=n("8418"),d=n("1dde"),u=n("ae40"),f=d("splice"),p=u("splice",{ACCESSORS:!0,0:0,1:2}),m=Math.max,v=Math.min;a({target:"Array",proto:!0,forced:!f||!p},{splice:function(e,t){var n,a,d,u,f,p,h=l(this),g=i(h.length),y=r(e,g),b=arguments.length;if(0===b?n=a=0:1===b?(n=0,a=g-y):(n=b-2,a=v(m(o(t),0),g-y)),g+n-a>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(d=s(h,a),u=0;u<a;u++)(f=y+u)in h&&c(d,u,h[f]);if(d.length=a,n<a){for(u=y;u<g-a;u++)p=u+n,(f=u+a)in h?h[p]=h[f]:delete h[p];for(u=g;u>g-a+n;u--)delete h[u-1]}else if(n>a)for(u=g-a;u>y;u--)p=u+n-1,(f=u+a-1)in h?h[p]=h[f]:delete h[p];for(u=0;u<n;u++)h[u+y]=arguments[u+2];return h.length=g-a+n,d}})},a4d3:function(e,t,n){var a=n("23e7"),r=n("da84"),o=n("d066"),i=n("c430"),l=n("83ab"),s=n("4930"),c=n("fdbf"),d=n("d039"),u=n("5135"),f=n("e8b5"),p=n("861d"),m=n("825a"),v=n("7b0b"),h=n("fc6a"),g=n("c04e"),y=n("5c6c"),b=n("7c73"),_=n("df75"),w=n("241c"),x=n("057f"),S=n("7418"),k=n("06cf"),E=n("9bf2"),A=n("d1e7"),O=n("9112"),$=n("6eeb"),C=n("5692"),I=n("f772"),R=n("d012"),N=n("90e3"),T=n("b622"),j=n("e538"),D=n("746f"),M=n("d44e"),L=n("69f3"),F=n("b727").forEach,P=I("hidden"),U="Symbol",B="prototype",V=T("toPrimitive"),z=L.set,G=L.getterFor(U),K=Object[B],H=r.Symbol,X=o("JSON","stringify"),q=k.f,W=E.f,Y=x.f,J=A.f,Q=C("symbols"),Z=C("op-symbols"),ee=C("string-to-symbol-registry"),te=C("symbol-to-string-registry"),ne=C("wks"),ae=r.QObject,re=!ae||!ae[B]||!ae[B].findChild,oe=l&&d(function(){return 7!=b(W({},"a",{get:function(){return W(this,"a",{value:7}).a}})).a})?function(e,t,n){var a=q(K,t);a&&delete K[t],W(e,t,n),a&&e!==K&&W(K,t,a)}:W,ie=function(e,t){var n=Q[e]=b(H[B]);return z(n,{type:U,tag:e,description:t}),l||(n.description=t),n},le=c?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof H},se=function(e,t,n){e===K&&se(Z,t,n),m(e);var a=g(t,!0);return m(n),u(Q,a)?(n.enumerable?(u(e,P)&&e[P][a]&&(e[P][a]=!1),n=b(n,{enumerable:y(0,!1)})):(u(e,P)||W(e,P,y(1,{})),e[P][a]=!0),oe(e,a,n)):W(e,a,n)},ce=function(e,t){m(e);var n=h(t),a=_(n).concat(pe(n));return F(a,function(t){l&&!de.call(n,t)||se(e,t,n[t])}),e},de=function(e){var t=g(e,!0),n=J.call(this,t);return!(this===K&&u(Q,t)&&!u(Z,t))&&(!(n||!u(this,t)||!u(Q,t)||u(this,P)&&this[P][t])||n)},ue=function(e,t){var n=h(e),a=g(t,!0);if(n!==K||!u(Q,a)||u(Z,a)){var r=q(n,a);return!r||!u(Q,a)||u(n,P)&&n[P][a]||(r.enumerable=!0),r}},fe=function(e){var t=Y(h(e)),n=[];return F(t,function(e){u(Q,e)||u(R,e)||n.push(e)}),n},pe=function(e){var t=e===K,n=Y(t?Z:h(e)),a=[];return F(n,function(e){!u(Q,e)||t&&!u(K,e)||a.push(Q[e])}),a};s||(H=function(){if(this instanceof H)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=N(e),n=function(e){this===K&&n.call(Z,e),u(this,P)&&u(this[P],t)&&(this[P][t]=!1),oe(this,t,y(1,e))};return l&&re&&oe(K,t,{configurable:!0,set:n}),ie(t,e)},$(H[B],"toString",function(){return G(this).tag}),$(H,"withoutSetter",function(e){return ie(N(e),e)}),A.f=de,E.f=se,k.f=ue,w.f=x.f=fe,S.f=pe,j.f=function(e){return ie(T(e),e)},l&&(W(H[B],"description",{configurable:!0,get:function(){return G(this).description}}),i||$(K,"propertyIsEnumerable",de,{unsafe:!0}))),a({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:H}),F(_(ne),function(e){D(e)}),a({target:U,stat:!0,forced:!s},{for:function(e){var t=String(e);if(u(ee,t))return ee[t];var n=H(t);return ee[t]=n,te[n]=t,n},keyFor:function(e){if(!le(e))throw TypeError(e+" is not a symbol");if(u(te,e))return te[e]},useSetter:function(){re=!0},useSimple:function(){re=!1}}),a({target:"Object",stat:!0,forced:!s,sham:!l},{create:function(e,t){return void 0===t?b(e):ce(b(e),t)},defineProperty:se,defineProperties:ce,getOwnPropertyDescriptor:ue}),a({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:fe,getOwnPropertySymbols:pe}),a({target:"Object",stat:!0,forced:d(function(){S.f(1)})},{getOwnPropertySymbols:function(e){return S.f(v(e))}}),X&&a({target:"JSON",stat:!0,forced:!s||d(function(){var e=H();return"[null]"!=X([e])||"{}"!=X({a:e})||"{}"!=X(Object(e))})},{stringify:function(e,t,n){for(var a,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(a=t,(p(t)||void 0!==e)&&!le(e))return f(t)||(t=function(e,t){if("function"==typeof a&&(t=a.call(this,e,t)),!le(t))return t}),r[1]=t,X.apply(null,r)}}),H[B][V]||O(H[B],V,H[B].valueOf),M(H,U),R[P]=!0},a630:function(e,t,n){var a=n("23e7"),r=n("4df4");a({target:"Array",stat:!0,forced:!n("1c7e")(function(e){Array.from(e)})},{from:r})},a640:function(e,t,n){var a=n("d039");e.exports=function(e,t){var n=[][e];return!!n&&a(function(){n.call(null,t||function(){throw 1},1)})}},a691:function(e,t){var n=Math.ceil,a=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?a:n)(e)}},ab13:function(e,t,n){var a=n("b622")("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[a]=!1,"/./"[e](t)}catch(e){}}return!1}},ac1f:function(e,t,n){var a=n("23e7"),r=n("9263");a({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},ad6d:function(e,t,n){var a=n("825a");e.exports=function(){var e=a(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},ae40:function(e,t,n){var a=n("83ab"),r=n("d039"),o=n("5135"),i=Object.defineProperty,l={},s=function(e){throw e};e.exports=function(e,t){if(o(l,e))return l[e];t||(t={});var n=[][e],c=!!o(t,"ACCESSORS")&&t.ACCESSORS,d=o(t,0)?t[0]:s,u=o(t,1)?t[1]:void 0;return l[e]=!!n&&!r(function(){if(c&&!a)return!0;var e={length:-1};c?i(e,1,{enumerable:!0,get:s}):e[1]=1,n.call(e,d,u)})}},ae93:function(e,t,n){var a,r,o,i=n("e163"),l=n("9112"),s=n("5135"),c=n("b622"),d=n("c430"),u=c("iterator"),f=!1;[].keys&&("next"in(o=[].keys())?(r=i(i(o)))!==Object.prototype&&(a=r):f=!0),null==a&&(a={}),d||s(a,u)||l(a,u,function(){return this}),e.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:f}},b041:function(e,t,n){var a=n("00ee"),r=n("f5df");e.exports=a?{}.toString:function(){return"[object "+r(this)+"]"}},b0c0:function(e,t,n){var a=n("83ab"),r=n("9bf2").f,o=Function.prototype,i=o.toString,l=/^\s*function ([^ (]*)/,s="name";a&&!(s in o)&&r(o,s,{configurable:!0,get:function(){try{return i.call(this).match(l)[1]}catch(e){return""}}})},b622:function(e,t,n){var a=n("da84"),r=n("5692"),o=n("5135"),i=n("90e3"),l=n("4930"),s=n("fdbf"),c=r("wks"),d=a.Symbol,u=s?d:d&&d.withoutSetter||i;e.exports=function(e){return o(c,e)||(l&&o(d,e)?c[e]=d[e]:c[e]=u("Symbol."+e)),c[e]}},b64b:function(e,t,n){var a=n("23e7"),r=n("7b0b"),o=n("df75");a({target:"Object",stat:!0,forced:n("d039")(function(){o(1)})},{keys:function(e){return o(r(e))}})},b727:function(e,t,n){var a=n("0366"),r=n("44ad"),o=n("7b0b"),i=n("50c4"),l=n("65f0"),s=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,d=4==e,u=6==e,f=5==e||u;return function(p,m,v,h){for(var g,y,b=o(p),_=r(b),w=a(m,v,3),x=i(_.length),S=0,k=h||l,E=t?k(p,x):n?k(p,0):void 0;x>S;S++)if((f||S in _)&&(y=w(g=_[S],S,b),e))if(t)E[S]=y;else if(y)switch(e){case 3:return!0;case 5:return g;case 6:return S;case 2:s.call(E,g)}else if(d)return!1;return u?-1:c||d?d:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6)}},c04e:function(e,t,n){var a=n("861d");e.exports=function(e,t){if(!a(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!a(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},c430:function(e,t){e.exports=!1},c6b6:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},c6cd:function(e,t,n){var a=n("da84"),r=n("ce4e"),o="__core-js_shared__",i=a[o]||r(o,{});e.exports=i},c740:function(e,t,n){var a=n("23e7"),r=n("b727").findIndex,o=n("44d2"),i=n("ae40"),l="findIndex",s=!0,c=i(l);l in[]&&Array(1)[l](function(){s=!1}),a({target:"Array",proto:!0,forced:s||!c},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o(l)},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},c975:function(e,t,n){var a=n("23e7"),r=n("4d64").indexOf,o=n("a640"),i=n("ae40"),l=[].indexOf,s=!!l&&1/[1].indexOf(1,-0)<0,c=o("indexOf"),d=i("indexOf",{ACCESSORS:!0,1:0});a({target:"Array",proto:!0,forced:s||!c||!d},{indexOf:function(e){return s?l.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:void 0)}})},ca84:function(e,t,n){var a=n("5135"),r=n("fc6a"),o=n("4d64").indexOf,i=n("d012");e.exports=function(e,t){var n,l=r(e),s=0,c=[];for(n in l)!a(i,n)&&a(l,n)&&c.push(n);for(;t.length>s;)a(l,n=t[s++])&&(~o(c,n)||c.push(n));return c}},caad:function(e,t,n){var a=n("23e7"),r=n("4d64").includes,o=n("44d2");a({target:"Array",proto:!0,forced:!n("ae40")("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cc12:function(e,t,n){var a=n("da84"),r=n("861d"),o=a.document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},ce4e:function(e,t,n){var a=n("da84"),r=n("9112");e.exports=function(e,t){try{r(a,e,t)}catch(n){a[e]=t}return t}},d012:function(e,t){e.exports={}},d039:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},d066:function(e,t,n){var a=n("428f"),r=n("da84"),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(a[e])||o(r[e]):a[e]&&a[e][t]||r[e]&&r[e][t]}},d1e7:function(e,t,n){var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!a.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:a},d28b:function(e,t,n){n("746f")("iterator")},d2bb:function(e,t,n){var a=n("825a"),r=n("3bbe");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,o){return a(n),r(o),t?e.call(n,o):n.__proto__=o,n}}():void 0)},d3b7:function(e,t,n){var a=n("00ee"),r=n("6eeb"),o=n("b041");a||r(Object.prototype,"toString",o,{unsafe:!0})},d44e:function(e,t,n){var a=n("9bf2").f,r=n("5135"),o=n("b622")("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&a(e,o,{configurable:!0,value:t})}},d58f:function(e,t,n){var a=n("1c0b"),r=n("7b0b"),o=n("44ad"),i=n("50c4"),l=function(e){return function(t,n,l,s){a(n);var c=r(t),d=o(c),u=i(c.length),f=e?u-1:0,p=e?-1:1;if(l<2)for(;;){if(f in d){s=d[f],f+=p;break}if(f+=p,e?f<0:u<=f)throw TypeError("Reduce of empty array with no initial value")}for(;e?f>=0:u>f;f+=p)f in d&&(s=n(s,d[f],f,c));return s}};e.exports={left:l(!1),right:l(!0)}},d784:function(e,t,n){n("ac1f");var a=n("6eeb"),r=n("d039"),o=n("b622"),i=n("9263"),l=n("9112"),s=o("species"),c=!r(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}),d="$0"==="a".replace(/./,"$0"),u=o("replace"),f=!!/./[u]&&""===/./[u]("a","$0"),p=!r(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]});e.exports=function(e,t,n,u){var m=o(e),v=!r(function(){var t={};return t[m]=function(){return 7},7!=""[e](t)}),h=v&&!r(function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[m]=/./[m]),n.exec=function(){return t=!0,null},n[m](""),!t});if(!v||!h||"replace"===e&&(!c||!d||f)||"split"===e&&!p){var g=/./[m],y=n(m,""[e],function(e,t,n,a,r){return t.exec===i?v&&!r?{done:!0,value:g.call(t,n,a)}:{done:!0,value:e.call(n,t,a)}:{done:!1}},{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),b=y[0],_=y[1];a(String.prototype,e,b),a(RegExp.prototype,m,2==t?function(e,t){return _.call(e,this,t)}:function(e){return _.call(e,this)})}u&&l(RegExp.prototype[m],"sham",!0)}},d81d:function(e,t,n){var a=n("23e7"),r=n("b727").map,o=n("1dde"),i=n("ae40"),l=o("map"),s=i("map");a({target:"Array",proto:!0,forced:!l||!s},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},da84:function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(e,t,n){var a=n("23e7"),r=n("83ab"),o=n("56ef"),i=n("fc6a"),l=n("06cf"),s=n("8418");a({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,a=i(e),r=l.f,c=o(a),d={},u=0;c.length>u;)void 0!==(n=r(a,t=c[u++]))&&s(d,t,n);return d}})},dbf1:function(e,t,n){(function(e){n.d(t,"a",function(){return a});var a="undefined"!=typeof window?window.console:e.console}).call(this,n("c8ba"))},ddb0:function(e,t,n){var a=n("da84"),r=n("fdbc"),o=n("e260"),i=n("9112"),l=n("b622"),s=l("iterator"),c=l("toStringTag"),d=o.values;for(var u in r){var f=a[u],p=f&&f.prototype;if(p){if(p[s]!==d)try{i(p,s,d)}catch(e){p[s]=d}if(p[c]||i(p,c,u),r[u])for(var m in o)if(p[m]!==o[m])try{i(p,m,o[m])}catch(e){p[m]=o[m]}}}},df75:function(e,t,n){var a=n("ca84"),r=n("7839");e.exports=Object.keys||function(e){return a(e,r)}},e01a:function(e,t,n){var a=n("23e7"),r=n("83ab"),o=n("da84"),i=n("5135"),l=n("861d"),s=n("9bf2").f,c=n("e893"),d=o.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||void 0!==d().description)){var u={},f=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof f?new d(e):void 0===e?d():d(e);return""===e&&(u[t]=!0),t};c(f,d);var p=f.prototype=d.prototype;p.constructor=f;var m=p.toString,v="Symbol(test)"==String(d("test")),h=/^Symbol\((.*)\)[^)]+$/;s(p,"description",{configurable:!0,get:function(){var e=l(this)?this.valueOf():this,t=m.call(e);if(i(u,e))return"";var n=v?t.slice(7,-1):t.replace(h,"$1");return""===n?void 0:n}}),a({global:!0,forced:!0},{Symbol:f})}},e163:function(e,t,n){var a=n("5135"),r=n("7b0b"),o=n("f772"),i=n("e177"),l=o("IE_PROTO"),s=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),a(e,l)?e[l]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},e177:function(e,t,n){var a=n("d039");e.exports=!a(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})},e260:function(e,t,n){var a=n("fc6a"),r=n("44d2"),o=n("3f8c"),i=n("69f3"),l=n("7dd0"),s="Array Iterator",c=i.set,d=i.getterFor(s);e.exports=l(Array,"Array",function(e,t){c(this,{type:s,target:a(e),index:0,kind:t})},function(){var e=d(this),t=e.target,n=e.kind,a=e.index++;return!t||a>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:a,done:!1}:"values"==n?{value:t[a],done:!1}:{value:[a,t[a]],done:!1}},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},e439:function(e,t,n){var a=n("23e7"),r=n("d039"),o=n("fc6a"),i=n("06cf").f,l=n("83ab"),s=r(function(){i(1)});a({target:"Object",stat:!0,forced:!l||s,sham:!l},{getOwnPropertyDescriptor:function(e,t){return i(o(e),t)}})},e538:function(e,t,n){var a=n("b622");t.f=a},e893:function(e,t,n){var a=n("5135"),r=n("56ef"),o=n("06cf"),i=n("9bf2");e.exports=function(e,t){for(var n=r(t),l=i.f,s=o.f,c=0;c<n.length;c++){var d=n[c];a(e,d)||l(e,d,s(t,d))}}},e8b5:function(e,t,n){var a=n("c6b6");e.exports=Array.isArray||function(e){return"Array"==a(e)}},e95a:function(e,t,n){var a=n("b622"),r=n("3f8c"),o=a("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},f5df:function(e,t,n){var a=n("00ee"),r=n("c6b6"),o=n("b622")("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=a?r:function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},f772:function(e,t,n){var a=n("5692"),r=n("90e3"),o=a("keys");e.exports=function(e){return o[e]||(o[e]=r(e))}},fb15:function(e,t,n){if(n.r(t),"undefined"!=typeof window){var a=window.document.currentScript,r=n("8875");a=r(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:r});var o=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function d(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);a=!0);}catch(e){r=!0,o=e}finally{try{a||null==l.return||l.return()}finally{if(r)throw o}}return n}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}n("99af"),n("4de4"),n("4160"),n("c975"),n("d81d"),n("a434"),n("159b"),n("a4d3"),n("e439"),n("dbb4"),n("b64b"),n("e01a"),n("d28b"),n("e260"),n("d3b7"),n("3ca3"),n("ddb0"),n("a630"),n("fb6a"),n("b0c0"),n("25f0");var p=n("a352"),m=n.n(p);function v(e){null!==e.parentElement&&e.parentElement.removeChild(e)}function h(e,t,n){var a=0===n?e.children[0]:e.children[n-1].nextSibling;e.insertBefore(t,a)}var g=n("dbf1");n("13d5"),n("4fad"),n("ac1f"),n("5319");var y=/-(\w)/g,b=function(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}(function(e){return e.replace(y,function(e,t){return t.toUpperCase()})});n("5db7"),n("73d9");var _=["Start","Add","Remove","Update","End"],w=["Choose","Unchoose","Sort","Filter","Clone"],x=["Move"],S=[x,_,w].flatMap(function(e){return e}).map(function(e){return"on".concat(e)}),k={manage:x,manageAndEmit:_,emit:w};n("caad"),n("2ca0");var E=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];function A(e){return["id","class","role","style"].includes(e)||e.startsWith("data-")||e.startsWith("aria-")||e.startsWith("on")}function O(e){return e.reduce(function(e,t){var n=u(t,2),a=n[0],r=n[1];return e[a]=r,e},{})}function $(e){return Object.entries(e).filter(function(e){var t=u(e,2),n=t[0];return t[1],!A(n)}).map(function(e){var t=u(e,2),n=t[0],a=t[1];return[b(n),a]}).filter(function(e){var t,n=u(e,2),a=n[0];return n[1],t=a,!(-1!==S.indexOf(t))})}function C(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,t),e}n("c740");var I=function(e){return e.el},R=function(e){return e.__draggable_context},N=function(){function e(t){var n=t.nodes,a=n.header,r=n.default,o=n.footer,i=t.root,l=t.realList;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.defaultNodes=r,this.children=[].concat(f(a),f(r),f(o)),this.externalComponent=i.externalComponent,this.rootTransition=i.transition,this.tag=i.tag,this.realList=l}return C(e,[{key:"render",value:function(e,t){var n=this.tag,a=this.children;return e(n,t,this._isRootComponent?{default:function(){return a}}:a)}},{key:"updated",value:function(){var e=this.defaultNodes,t=this.realList;e.forEach(function(e,n){var a,r;a=I(e),r={element:t[n],index:n},a.__draggable_context=r})}},{key:"getUnderlyingVm",value:function(e){return R(e)}},{key:"getVmIndexFromDomIndex",value:function(e,t){var n=this.defaultNodes,a=n.length,r=t.children,o=r.item(e);if(null===o)return a;var i=R(o);if(i)return i.index;if(0===a)return 0;var l=I(n[0]),s=f(r).findIndex(function(e){return e===l});return e<s?0:a}},{key:"_isRootComponent",get:function(){return this.externalComponent||this.rootTransition}}]),e}(),T=n("8bbf");function j(e){var t=["transition-group","TransitionGroup"].includes(e),n=!function(e){return E.includes(e)}(e)&&!t;return{transition:t,externalComponent:n,tag:n?Object(T.resolveComponent)(e):t?T.TransitionGroup:e}}function D(e){var t=e.$slots,n=e.tag,a=e.realList,r=function(e){var t=e.$slots,n=e.realList,a=e.getKey,r=n||[],o=u(["header","footer"].map(function(e){return(n=t[e])?n():[];var n}),2),i=o[0],l=o[1],c=t.item;if(!c)throw new Error("draggable element must have an item slot");var d=r.flatMap(function(e,t){return c({element:e,index:t}).map(function(t){return t.key=a(e),t.props=s(s({},t.props||{}),{},{"data-draggable":!0}),t})});if(d.length!==r.length)throw new Error("Item slot must have only one child");return{header:i,footer:l,default:d}}({$slots:t,realList:a,getKey:e.getKey}),o=j(n);return new N({nodes:r,root:o,realList:a})}function M(e,t){var n=this;Object(T.nextTick)(function(){return n.$emit(e.toLowerCase(),t)})}function L(e){var t=this;return function(n,a){if(null!==t.realList)return t["onDrag".concat(e)](n,a)}}function F(e){var t=this,n=L.call(this,e);return function(a,r){n.call(t,a,r),M.call(t,e,a)}}var P=null,U={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function(e){return e}},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},B=["update:modelValue","change"].concat(f([].concat(f(k.manageAndEmit),f(k.emit)).map(function(e){return e.toLowerCase()}))),V=Object(T.defineComponent)({name:"draggable",inheritAttrs:!1,props:U,emits:B,data:function(){return{error:!1}},render:function(){try{this.error=!1;var e=this.$slots,t=this.$attrs,n=this.tag,a=this.componentData,r=D({$slots:e,tag:n,realList:this.realList,getKey:this.getKey});this.componentStructure=r;var o=function(e){var t=e.$attrs,n=e.componentData,a=void 0===n?{}:n;return s(s({},O(Object.entries(t).filter(function(e){var t=u(e,2),n=t[0];return t[1],A(n)}))),a)}({$attrs:t,componentData:a});return r.render(T.h,o)}catch(e){return this.error=!0,Object(T.h)("pre",{style:{color:"red"}},e.stack)}},created:function(){null!==this.list&&null!==this.modelValue&&g.a.error("modelValue and list props are mutually exclusive! Please set one or another.")},mounted:function(){var e=this;if(!this.error){var t=this.$attrs,n=this.$el;this.componentStructure.updated();var a=function(e){var t=e.$attrs,n=e.callBackBuilder,a=O($(t));Object.entries(n).forEach(function(e){var t=u(e,2),n=t[0],r=t[1];k[n].forEach(function(e){a["on".concat(e)]=r(e)})});var r="[data-draggable]".concat(a.draggable||"");return s(s({},a),{},{draggable:r})}({$attrs:t,callBackBuilder:{manageAndEmit:function(t){return F.call(e,t)},emit:function(t){return M.bind(e,t)},manage:function(t){return L.call(e,t)}}}),r=1===n.nodeType?n:n.parentElement;this._sortable=new m.a(r,a),this.targetDomElement=r,r.__draggable_component__=this}},updated:function(){this.componentStructure.updated()},beforeUnmount:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{realList:function(){var e=this.list;return e||this.modelValue},getKey:function(){var e=this.itemKey;return"function"==typeof e?e:function(t){return t[e]}}},watch:{$attrs:{handler:function(e){var t=this._sortable;t&&$(e).forEach(function(e){var n=u(e,2),a=n[0],r=n[1];t.option(a,r)})},deep:!0}},methods:{getUnderlyingVm:function(e){return this.componentStructure.getUnderlyingVm(e)||null},getUnderlyingPotencialDraggableComponent:function(e){return e.__draggable_component__},emitChanges:function(e){var t=this;Object(T.nextTick)(function(){return t.$emit("change",e)})},alterList:function(e){if(this.list)e(this.list);else{var t=f(this.modelValue);e(t),this.$emit("update:modelValue",t)}},spliceList:function(){var e=arguments,t=function(t){return t.splice.apply(t,f(e))};this.alterList(t)},updatePosition:function(e,t){var n=function(n){return n.splice(t,0,n.splice(e,1)[0])};this.alterList(n)},getRelatedContextFromMoveEvent:function(e){var t=e.to,n=e.related,a=this.getUnderlyingPotencialDraggableComponent(t);if(!a)return{component:a};var r=a.realList,o={list:r,component:a};return t!==n&&r?s(s({},a.getUnderlyingVm(n)||{}),o):o},getVmIndexFromDomIndex:function(e){return this.componentStructure.getVmIndexFromDomIndex(e,this.targetDomElement)},onDragStart:function(e){this.context=this.getUnderlyingVm(e.item),e.item._underlying_vm_=this.clone(this.context.element),P=e.item},onDragAdd:function(e){var t=e.item._underlying_vm_;if(void 0!==t){v(e.item);var n=this.getVmIndexFromDomIndex(e.newIndex);this.spliceList(n,0,t);var a={element:t,newIndex:n};this.emitChanges({added:a})}},onDragRemove:function(e){if(h(this.$el,e.item,e.oldIndex),"clone"!==e.pullMode){var t=this.context,n=t.index,a=t.element;this.spliceList(n,1);var r={element:a,oldIndex:n};this.emitChanges({removed:r})}else v(e.clone)},onDragUpdate:function(e){v(e.item),h(e.from,e.item,e.oldIndex);var t=this.context.index,n=this.getVmIndexFromDomIndex(e.newIndex);this.updatePosition(t,n);var a={element:this.context.element,oldIndex:t,newIndex:n};this.emitChanges({moved:a})},computeFutureIndex:function(e,t){if(!e.element)return 0;var n=f(t.to.children).filter(function(e){return"none"!==e.style.display}),a=n.indexOf(t.related),r=e.component.getVmIndexFromDomIndex(a);return-1===n.indexOf(P)&&t.willInsertAfter?r+1:r},onDragMove:function(e,t){var n=this.move,a=this.realList;if(!n||!a)return!0;var r=this.getRelatedContextFromMoveEvent(e),o=this.computeFutureIndex(r,e),i=s(s({},this.context),{},{futureIndex:o});return n(s(s({},e),{},{relatedContext:r,draggedContext:i}),t)},onDragEnd:function(){P=null}}}),z=V;t.default=z},fb6a:function(e,t,n){var a=n("23e7"),r=n("861d"),o=n("e8b5"),i=n("23cb"),l=n("50c4"),s=n("fc6a"),c=n("8418"),d=n("b622"),u=n("1dde"),f=n("ae40"),p=u("slice"),m=f("slice",{ACCESSORS:!0,0:0,1:2}),v=d("species"),h=[].slice,g=Math.max;a({target:"Array",proto:!0,forced:!p||!m},{slice:function(e,t){var n,a,d,u=s(this),f=l(u.length),p=i(e,f),m=i(void 0===t?f:t,f);if(o(u)&&("function"!=typeof(n=u.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[v])&&(n=void 0):n=void 0,n===Array||void 0===n))return h.call(u,p,m);for(a=new(void 0===n?Array:n)(g(m-p,0)),d=0;p<m;p++,d++)p in u&&c(a,d,u[p]);return a.length=d,a}})},fc6a:function(e,t,n){var a=n("44ad"),r=n("1d80");e.exports=function(e){return a(r(e))}},fdbc:function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(e,t,n){var a=n("4930");e.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}).default},Zu.exports=km(ef,Ro(Sm))),Am=Io(Em);function Om(e,t){return{path:e,config:t}}const $m={async request(t){const n=e(),a=await n.get(t.path,t.config);return a.data?.data}};async function Cm(n,a={},r=1/0){const o=e(),{info:i}=t().useServerStore();let l=1,s=!0;if(!i.queryLimit||-1===i.queryLimit?.max){to(a,"params.limit",-1);const{data:e}=await o.get(n,a);return e.data??[]}const c=i.queryLimit.max,d=[];for(;d.length<r&&s;){const e=Cr(a);to(e,"params.page",l),to(e,"params.limit",c);const{data:t}=await o.get(n,e);t.data?.length?d.push(...t.data):s=!1,l++}return Number.isFinite(r)?d.slice(0,r):d}function Im(e,t,n,a,r){const l=o(!1),s=o([]),c=o(0),{cleanItem:d,getPage:u,isLocalItem:f,getItemEdits:p,isEmpty:m}={cleanItem:function(e){return Object.entries(e).reduce((e,[t,n])=>(t.startsWith("$")||(e[t]=n),e),{})},getPage:function(e,n){if(-1===t.value.limit)return n;const a=Ma((t.value.page-1)*t.value.limit-e,0,n.length),r=Ma(t.value.page*t.value.limit-e,0,n.length);return n.slice(a,r)},isLocalItem:function(e){return void 0!==e.$type&&("updated"!==e.$type||w(e))},getItemEdits:function(e){if("$type"in e&&void 0!==e.$index){if("created"===e.$type)return{...g.value.create[e.$index],$type:"created",$index:e.$index};if("updated"===e.$type)return{...g.value.update[e.$index],$type:"updated",$index:e.$index};if("deleted"===e.$type&&void 0!==e.$edits)return{...g.value.update[e.$edits],$type:"deleted",$index:e.$index,$edits:e.$edits}}return{}},isEmpty:function(e){if("updated"!==e.$type&&void 0===e.$edits)return!1;const t=Object.keys(e).filter(e=>!e.startsWith("$"));if("o2m"===n.value?.type)return 1===t.length&&t[0]===n.value.relatedPrimaryKeyField.field;if("m2m"===n.value?.type){if(1===t.length&&t[0]===n.value.junctionPrimaryKeyField.field)return!0;const a=Object.keys(e[n.value.junctionField.field]);return 2===t.length&&t.includes(n.value.junctionField.field)&&t.includes(n.value.junctionPrimaryKeyField.field)&&1===a.length&&a[0]===n.value.relatedPrimaryKeyField.field}if("m2a"===n.value?.type){if(1===t.length&&t[0]===n.value.junctionPrimaryKeyField.field)return!0;const a=Object.keys(e[n.value.junctionField.field]);return!(2!==t.length||!t.includes(n.value.junctionField.field)||!t.includes(n.value.junctionPrimaryKeyField.field)||1!==a.length)||3===t.length&&t.includes(n.value.junctionField.field)&&t.includes(n.value.junctionPrimaryKeyField.field)&&t.includes(n.value.collectionField.field)&&1===a.length}return!1}},v=i(()=>n.value?"o2m"===n.value.type?n.value.relatedPrimaryKeyField.field:n.value.junctionPrimaryKeyField.field:"id"),h=i(()=>s.value.map(e=>e[v.value])),g=i({get:()=>!e.value||Array.isArray(e.value)?{create:[],update:[],delete:[]}:e.value,set(t){if(0===t.create.length&&0===t.update.length&&0===t.delete.length){return null!==r.value?void(e.value=h.value):void(e.value=void 0)}e.value=t}});y(e,(e,t)=>{Array.isArray(e)&&t&&("create"in t&&Array.isArray(t.create)&&t.create.length>0||"update"in t&&Array.isArray(t.update)&&t.update.length>0||"delete"in t&&Array.isArray(t.delete)&&t.delete.length>0)&&R()}),y([t,a,n],(e,t)=>{Jr(e,t)||R()},{immediate:!0});const{fetchedSelectItems:b,selected:_,isItemSelected:w,selectedOnPage:x}=function(){const e=o([]),a=i(()=>n.value?"o2m"===n.value?.type?g.value.update.map((e,t)=>({...e,$index:t,$type:"updated"})).filter(s):g.value.create.map((e,t)=>({...e,$index:t,$type:"created"})).filter(s):[]),r=i(()=>u(c.value,a.value));return y(r,(a,o)=>{a.length===o?.length&&Jr(a.map(l),(o??[]).map(l))||async function(){switch(n.value?.type){case"o2m":return async function(n){if(0===r.value.length)return void(e.value=[]);const a=new Set(t.value.fields);a.add(n.relatedPrimaryKeyField.field),n.sortField&&a.add(n.sortField);const o=n.relatedCollection.collection;e.value=await Cm(Ri(o),{params:{fields:Array.from(a),filter:{[v.value]:{_in:r.value.map(l)}}}})}(n.value);case"m2m":return async function(n){if(0===r.value.length)return void(e.value=[]);const a=new Set(t.value.fields.reduce((e,t)=>{const a=n.junctionField.field+".";return t.startsWith(a)&&e.push(t.replace(a,"")),e},[]));a.add(n.relatedPrimaryKeyField.field);const o=n.relatedPrimaryKeyField.field,i=await Cm(Ri(n.relatedCollection.collection),{params:{fields:Array.from(a),filter:{[o]:{_in:r.value.map(l)}}}});e.value=i.map(e=>({[n.junctionField.field]:e}))}(n.value);case"m2a":(async function(n){if(0===r.value.length)return void(e.value=[]);const a=n.collectionField.field,o=r.value.reduce((e,t)=>{const n=t[a];return n in e||(e[n]=[]),e[n]?.push(t),e},{}),i=await Promise.all(Object.entries(o).map(([e,a])=>{const r=n.relationPrimaryKeyFields[e]?.field;if(!r)throw new Error(`No primary key field found for collection ${e}`);const o=new Set(t.value.fields.reduce((t,a)=>{const r=`${n.junctionField.field}:${e}.`;return a.startsWith(r)&&t.push(a.replace(r,"")),t},[]));return o.add(r),Cm(Ri(e),{params:{fields:Array.from(o),filter:{[r]:{_in:a.map(e=>e[n.junctionField.field][r])}}}})}));e.value=i.reduce((e,t,a)=>(e.push(...t.map(e=>({[n.collectionField.field]:Object.keys(o)[a],[n.junctionField.field]:e}))),e),[])})(n.value)}}()},{immediate:!0}),{fetchedSelectItems:e,selected:a,isItemSelected:s,selectedOnPage:r};function l(e){switch(n.value?.type){case"o2m":return e[n.value.relatedPrimaryKeyField.field];case"m2m":return e[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field];case"m2a":{const t=e[n.value.collectionField.field],a=n.value.relationPrimaryKeyFields[t]?.field;if(!a)throw new Error(`No primary key field found for collection ${t}`);return e[n.value.junctionField.field][a]}}}function s(e){return void 0!==n.value&&void 0!==e[n.value.reverseJunctionField.field]}}(),S=i(()=>"o2m"===n.value?.type?c.value+g.value.create.length+_.value.length:c.value+g.value.create.length),k=i(()=>{const e=n.value;if(void 0===e?.type)return[];const t=g.value.create.map((e,t)=>({...e,$type:"created",$index:t}));return"o2m"===e.type?t:t.filter(t=>void 0===t[e.reverseJunctionField.field])}),E=i(()=>{if(!n.value)return[];const e=s.value.map(e=>{let t;for(const[n,a]of g.value.update.entries())if("object"==typeof a&&a[v.value]===e[v.value]){t={index:n,value:a};break}let a=Cr(e);t&&(a={...a,...t.value},"m2m"!==n.value?.type&&"m2a"!==n.value?.type||(a[n.value.junctionField.field]={...Cr(e)[n.value.junctionField.field],...t.value[n.value.junctionField.field]}),a.$type="updated",a.$index=t.index,a.$edits=t.index);const r=g.value.delete.findIndex(t=>t===e[v.value]);return-1!==r&&eo(a,{$type:"deleted",$index:r}),a}),a=x.value.map(e=>{const t=b.value.find(t=>{switch(n.value?.type){case"o2m":return e[v.value]===t[v.value];case"m2m":return e[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field]===t[n.value.junctionField.field][n.value.relatedPrimaryKeyField.field];case"m2a":{const a=t[n.value.collectionField.field],r=e[n.value.collectionField.field],o=n.value.relationPrimaryKeyFields[a]?.field,i=n.value.relationPrimaryKeyFields[r]?.field;if(!o)throw new Error(`No primary key field found for collection ${a}`);if(!i)throw new Error(`No primary key field found for collection ${r}`);return a===r&&e[n.value.junctionField.field][i]===t[n.value.junctionField.field][o]}}});return t?eo({},t,e):e}),r=u(c.value+_.value.length,k.value);e.push(...a,...r);const o=(t.value.sort??Ti(n.value.sortField))[0];return t.value.limit>0&&S.value>t.value.limit||!o?e:e.sort((e,t)=>{let n,a;if(o.startsWith("-")){const r=o.substring(1);n=Oa(t,r),a=Oa(e,r)}else n=Oa(e,o),a=Oa(t,o);return Number(n>a)-Number(a>n)})}),{create:A,remove:O,select:$,update:C}=I(g);function I(e){return{create:t,update:r,remove:function(...t){if(!n.value)return;for(const n of t)void 0===n.$type||void 0===n.$index?e.value.delete.push(n[v.value]):"created"===n.$type?e.value.create.splice(n.$index,1):"updated"===n.$type?w(n)?e.value.update.splice(n.$index,1):e.value.delete.push(n[v.value]):"deleted"===n.$type&&e.value.delete.splice(n.$index,1);o()},select:function(e,o){const i=n.value;if(!i)return;const l=e.map(e=>{switch(i.type){case"o2m":return{[i.reverseJunctionField.field]:a.value,[i.relatedPrimaryKeyField.field]:e};case"m2m":return{[i.reverseJunctionField.field]:a.value,[i.junctionField.field]:{[i.relatedPrimaryKeyField.field]:e}};case"m2a":{if(!o)throw new Error("You need to provide a collection on an m2a");const t=i.relationPrimaryKeyFields[o];if(!t)throw new Error(`No primary key field found for collection ${o}`);return{[i.reverseJunctionField.field]:a.value,[i.collectionField.field]:o,[i.junctionField.field]:{[t.field]:e}}}}});"o2m"===n.value?.type?r(...l):t(...l)}};function t(...t){for(const n of t)e.value.create.push(d(n));o()}function r(...t){if(n.value){for(const n of t)void 0===n.$type||void 0===n.$index?e.value.update.push(d(n)):"created"===n.$type?e.value.create[n.$index]=d(n):"updated"===n.$type?m(n)?e.value.update.splice(n.$index,1):e.value.update[n.$index]=d(n):"deleted"===n.$type&&(void 0!==n.$edits?m(n)?e.value.update.splice(n.$index,1):e.value.update[n.$edits]=d(n):e.value.update.push(d(n)));o()}}function o(){e.value=Cr(e.value)}}async function R(){if(!n.value)return;if(void 0===a.value||"+"===a.value)return void(s.value=[]);let e;const r=n.value.reverseJunctionField.field,o=new Set(t.value.fields);switch(n.value.type){case"m2a":e=n.value.junctionCollection.collection,o.add(n.value.junctionPrimaryKeyField.field),o.add(n.value.collectionField.field);for(const e of n.value.allowedCollections){const t=n.value.relationPrimaryKeyFields[e.collection];if(!t)throw new Error(`No primary key field found for collection ${e.collection}`);o.add(`${n.value.junctionField.field}:${e.collection}.${t.field}`)}break;case"m2m":e=n.value.junctionCollection.collection,o.add(n.value.junctionPrimaryKeyField.field),o.add(`${n.value.junctionField.field}.${n.value.relatedPrimaryKeyField.field}`);break;case"o2m":e=n.value.relatedCollection.collection,o.add(n.value.relatedPrimaryKeyField.field)}n.value.sortField&&o.add(n.value.sortField);try{if(l.value=!0,"+"!==a.value){const n=a.value,i={_and:[{[r]:null===a.value?{_null:!0}:a.value}]};t.value.filter&&i._and.push(t.value.filter);const l=await $m.request(Om(Ri(e),{params:{search:t.value.search,fields:Array.from(o),filter:i,page:t.value.page,limit:t.value.limit,sort:t.value.sort}}));if(a.value!==n)return;s.value=l}}catch(e){Mu(e)}finally{l.value=!1}}return y([t,a,n],(e,r)=>{const[o,i,l]=e,[s,d,u]=r;Jr(l,u)&&o.filter===s?.filter&&o.search===s?.search&&i===d||async function(){if(!n.value)return;if(!a.value||"+"===a.value)return void(c.value=0);let e;const r=n.value.reverseJunctionField.field;switch(n.value.type){case"m2a":case"m2m":e=n.value.junctionCollection.collection;break;case"o2m":e=n.value.relatedCollection.collection}const o={_and:[{[r]:a.value}]};t.value.filter&&o._and.push(t.value.filter);const i=await $m.request(Om(Ri(e),{params:{search:t.value.search,aggregate:{count:v.value},filter:o}}));c.value=Number(i[0]?.count[v.value])}()},{immediate:!0}),{create:A,update:C,remove:O,select:$,displayItems:E,totalItemCount:S,loading:l,selected:_,fetchedSelectItems:b,fetchedItems:s,useActions:I,cleanItem:d,isItemSelected:w,isLocalItem:f,getItemEdits:p}}const Rm={key:1,class:"files-with-storage"},Nm={key:1,class:"item-actions"},Tm={key:2,class:"actions"};var jm=l({__name:"interface",props:{value:{},primaryKey:{},collection:{},field:{},disabled:{type:Boolean},nonEditable:{type:Boolean,default:!1},version:{},template:{default:null},enableCreate:{type:Boolean,default:!0},enableSelect:{type:Boolean,default:!0},folder:{},storage:{default:"local"},filter:{},limit:{default:15},allowedMimeTypes:{},onDeselect:{default:"keep"},onItemDelete:{default:"keep"}},emits:["input"],setup(n,{emit:a}){const r=n,l=a,y=e(),{collection:b,field:w,primaryKey:S,limit:k,version:A}=D(r),{relationInfo:C}=function(e,n){const a=t().useRelationsStore(),r=t().useCollectionsStore(),o=t().useFieldsStore();return{relationInfo:i(()=>{const t=a.getRelationsForField(e.value,n.value),i=t.find(t=>t.related_collection===e.value&&t.meta?.one_field===n.value&&t.meta.junction_field);if(!i)return;const l=t.find(e=>e.collection===i.collection&&e.field===i.meta?.junction_field);return l?{relation:l,relatedCollection:r.getCollection(l.related_collection),relatedPrimaryKeyField:o.getPrimaryKeyFieldForCollection(l.related_collection),sortField:i.meta?.sort_field??void 0,junctionCollection:r.getCollection(i.collection),junctionPrimaryKeyField:o.getPrimaryKeyFieldForCollection(i.collection),junctionField:o.getField(i.collection,i.meta?.junction_field),reverseJunctionField:o.getField(i.collection,l.meta?.junction_field),junction:i,type:"m2m"}:void 0})}}(b,w),I=Uu(K(r,"storage")),T=i({get:()=>r.value,set:e=>l("input",e)}),{mimeTypeFilter:M,combinedAcceptString:L}=Du(K(r,"allowedMimeTypes")),F=i(()=>{if(!C.value)return null;if(r.template)return r.template;if(C.value.junctionCollection.meta?.display_template)return C.value.junctionCollection.meta.display_template;let e=C.value.relatedCollection.meta?.display_template;if(e){const t=/({{.*?}})/g,n=e.split(t).filter(e=>e);for(const t of n){if(!t.startsWith("{{"))continue;const n=t.replace(/{{/g,"").replace(/}}/g,"").trim(),a=`{{${C.value.relation.field}.${n}}}`;e=e.replace(t,a)}return e}return`{{${C.value.relation.field}.${C.value.relatedPrimaryKeyField.field}}}`}),U=i(()=>{if(!C.value)return[];const e=function(e){if(Qr(e))return[];const t=e.match(/{{(.*?)}}/g);return Array.isArray(t)?t.map(e=>e.replace(/{{/g,"").replace(/}}/g,"").trim()):[]}(F.value);return[...e,`${C.value.relation.field}.filename_download`]}),B=o(1),V=i(()=>({fields:U.value,limit:k.value,page:B.value})),{update:z,remove:G,select:H,displayItems:X,totalItemCount:q,loading:W,selected:Y,isItemSelected:J,isLocalItem:Q,getItemEdits:Z}=Im(T,V,C,S,A),{createAllowed:ee,updateAllowed:te,selectAllowed:ne,deleteAllowed:ae}={createAllowed:i(()=>!0),selectAllowed:i(()=>!0),updateAllowed:i(()=>!0),deleteAllowed:i(()=>!0)},re=i(()=>Math.ceil(q.value/k.value));const oe=i(()=>{if(!C.value)return[];const e=C.value.junctionField.field,t=C.value.relatedPrimaryKeyField.field;return Y.value.map(n=>n[e][t])}),ie=o(!1),le=o(null),se=o(null),ce=o(!1),de=o({}),ue=o(!1);function fe(e){(function(e){if(null==e)return!0;if(Tn(e)&&(Lt(e)||"string"==typeof e||"function"==typeof e.splice||Gn(e)||Qn(e)||Un(e)))return!e.length;var t=dr(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(Dn(e))return!ra(e).length;for(var n in e)if(Yr.call(e,n))return!1;return!0})(e)||z(e)}function pe(e){!async function(e){const t=r.onDeselect||"keep",n=me(e);if("ask"===t&&n)return ge.value=e,void(ve.value=!0);be(e),"delete_if_unreferenced"===t&&n&&await ye(n)}(e)}function me(e){if(!C.value)return null;const t=C.value.junctionField.field,n=C.value.relatedPrimaryKeyField.field,a=Oa(e,[t]);return a&&"object"==typeof a&&null!=a[n]?String(a[n]):"string"==typeof a||"number"==typeof a?String(a):null}const ve=o(!1),he=o(!1),ge=o(null);async function ye(e){try{await y.post("/storage-manager/files/delete-if-unreferenced",{file_ids:[e]})}catch(e){Mu(e)}}function be(e){B.value===Math.ceil(q.value/k.value)&&B.value!==Math.ceil((q.value-1)/k.value)&&(B.value=Math.max(1,B.value-1)),G(e)}function _e(){const e=ge.value;ve.value=!1,ge.value=null,e&&be(e)}async function we(){const e=ge.value,t=e?me(e):null;he.value=!0;try{e&&be(e),t&&await ye(t)}finally{he.value=!1,ve.value=!1,ge.value=null}}function xe(e){ue.value=!1,e?.length&&C.value&&H(e.map(e=>e.id))}function Se(e){H(e.filter(e=>!oe.value.includes(e)))}const ke=i(()=>{if(null===se.value||"directus_files"!==C.value?.relatedCollection.collection)return;const e=C.value.junctionField.field,t=C.value.relatedPrimaryKeyField.field;return X.value.find(n=>Oa(n,[e,t])===se.value)?.[e]?.filename_download}),Ee=i(()=>{if(null!==se.value&&"directus_files"===C.value?.relatedCollection.collection)return Lu(String(se.value),{isDownload:!0})});function Ae(e){const t=C.value?.junctionField.field;if(t)return e[t]?.id??e[t]??null}function Oe(e){const t=C.value?.junctionField.field;if(t)return e[t]?.filename_download}const $e=j("values",o({})),Ce=i(()=>{if(!C.value)return;const e={_and:[]},t=`$FOLLOW(${C.value.junctionCollection.collection},${C.value.junctionField.field})`,n={[t]:{_none:{[C.value.reverseJunctionField.field]:{_eq:r.primaryKey}}}};return oe.value.length>0&&e._and.push({[C.value.relatedPrimaryKeyField.field]:{_nin:oe.value}}),"+"!==r.primaryKey&&e._and.push(n),r.filter&&e._and.push(Fu(Ii(r.filter,e=>e&&"string"==typeof e?Co(e,$e.value):e))),M.value&&e._and.push(M.value),e}),Ie=i(()=>q.value<=k.value&&void 0!==C.value?.sortField&&!r.disabled&&te.value),Re=i(()=>ie.value||ce.value||ue.value);return(e,t)=>{const a=s("v-notice"),r=s("v-skeleton-loader"),o=s("v-icon"),i=s("render-template"),l=s("v-remove"),y=s("v-list-item-icon"),b=s("v-list-item-content"),S=s("v-list-item"),A=s("v-list"),T=s("v-menu"),j=s("v-button"),D=s("v-pagination"),M=s("drawer-item"),U=s("drawer-files"),V=s("v-card-title"),G=s("v-upload"),K=s("v-card-text"),H=s("v-card-actions"),Y=s("v-card"),te=s("v-dialog"),oe=R("prevent-focusout");return O(C)?N((c(),p("div",Rm,[O(W)?(c(!0),p(m,{key:0},v(O(Ma)(O(q)-(B.value-1)*O(k),1,O(k)),e=>(c(),d(r,{key:e,type:O(q)>4?"block-list-item-dense":"block-list-item"},null,8,["type"]))),128)):(c(),p(m,{key:1},[0===O(X).length?(c(),d(a,{key:0},{default:u(()=>[h(g(e.$t("no_items")),1)]),_:1})):(c(),d(O(Am),P({key:1,"model-value":O(X),tag:"v-list","item-key":"id",handle:".drag-handle",disabled:!Ie.value},{"force-fallback":!0},{"onUpdate:modelValue":t[0]||(t[0]=e=>function(e){const t=C.value,n=t?.sortField;if(!t||!n)return;const a=e.map((e,a)=>{const r=e?.[t.junctionPrimaryKeyField.field],o=e?.[t.junctionField.field]?.[t.relatedPrimaryKeyField.field],i={$index:e.$index,$type:e.$type,$edits:e.$edits,...Z(e),[n]:a+1};return Qr(r)||(i[t.junctionPrimaryKeyField.field]=r),Qr(o)||to(i,`${t.junctionField.field}.${t.relatedPrimaryKeyField.field}`,o),i});z(...a)}(e))}),{item:u(({element:a})=>[f(S,{class:$({deleted:"deleted"===a.$type}),dense:O(q)>4,disabled:n.disabled&&!n.nonEditable,block:"",clickable:"",onClick:e=>function(e){if(!C.value)return;const t=C.value.relatedPrimaryKeyField.field,n=C.value.junctionField.field,a=C.value.junctionPrimaryKeyField.field;de.value=Z(e),ie.value=!0,"created"!==e?.$type||J(e)?(le.value=Oa(e,[a],null),se.value=Oa(e,[n,t],null)):(le.value=null,se.value=null)}(a)},{default:u(()=>[Ie.value?(c(),d(o,{key:0,name:"drag_handle",class:"drag-handle",left:"",onClick:E(()=>{},["stop"])})):_("v-if",!0),f(i,{collection:O(C).junctionCollection.collection,item:a,template:F.value},null,8,["collection","item","template"]),t[11]||(t[11]=x("div",{class:"spacer"},null,-1)),n.nonEditable?_("v-if",!0):(c(),p("div",Nm,[O(ae)||O(Q)(a)?(c(),d(l,{key:0,disabled:n.disabled,"item-type":a.$type,"item-info":O(C),"item-is-local":O(Q)(a),"item-edits":O(Z)(a),onAction:e=>pe(a)},null,8,["disabled","item-type","item-info","item-is-local","item-edits","onAction"])):_("v-if",!0),f(T,{"show-arrow":"",placement:"bottom-end",disabled:n.disabled},{activator:u(({toggle:e,active:t})=>[f(o,{name:"more_vert",clickable:"",class:$(["menu",{active:t}]),disabled:n.disabled,onClick:E(e,["stop"])},null,8,["class","disabled","onClick"])]),default:u(()=>[f(A,null,{default:u(()=>[f(S,{clickable:"",href:O(Lu)(Ae(a))},{default:u(()=>[f(y,null,{default:u(()=>[f(o,{name:"launch"})]),_:1}),f(b,null,{default:u(()=>[h(g(e.$t("open_file_in_tab")),1)]),_:1})]),_:1},8,["href"]),f(S,{clickable:"",download:Oe(a),href:O(Lu)(Ae(a),{isDownload:!0})},{default:u(()=>[f(y,null,{default:u(()=>[f(o,{name:"download"})]),_:1}),f(b,null,{default:u(()=>[h(g(e.$t("download_file")),1)]),_:1})]),_:1},8,["download","href"])]),_:2},1024)]),_:2},1032,["disabled"])]))]),_:2},1032,["class","dense","disabled","onClick"])]),_:1},16,["model-value","disabled"]))],64)),!n.nonEditable||re.value>1?(c(),p("div",Tm,[n.nonEditable?_("v-if",!0):(c(),p(m,{key:0},[n.enableCreate&&O(ee)?(c(),d(j,{key:0,disabled:n.disabled,onClick:t[1]||(t[1]=e=>ue.value=!0)},{default:u(()=>[h(g(e.$t("upload_file")),1)]),_:1},8,["disabled"])):_("v-if",!0),n.enableSelect&&O(ne)?(c(),d(j,{key:1,disabled:n.disabled,onClick:t[2]||(t[2]=e=>ce.value=!0)},{default:u(()=>[h(g(e.$t("add_existing")),1)]),_:1},8,["disabled"])):_("v-if",!0)],64)),t[12]||(t[12]=x("div",{class:"spacer"},null,-1)),re.value>1?(c(),d(D,{key:1,modelValue:B.value,"onUpdate:modelValue":t[3]||(t[3]=e=>B.value=e),length:re.value,"total-visible":2,"show-first-last":""},null,8,["modelValue","length"])):_("v-if",!0)])):_("v-if",!0),f(M,{active:ie.value,"onUpdate:active":t[4]||(t[4]=e=>ie.value=e),disabled:n.disabled,"non-editable":n.nonEditable,collection:O(C).junctionCollection.collection,"primary-key":le.value||"+","related-primary-key":se.value||"+","junction-field":O(C).junctionField.field,edits:de.value,"circular-field":O(C).reverseJunctionField.field,onInput:fe},{actions:u(()=>["+"!==le.value&&"directus_files"===O(C).relatedCollection.collection?(c(),d(j,{key:0,secondary:"",rounded:"",icon:"",download:ke.value,href:Ee.value},{default:u(()=>[f(o,{name:"download"})]),_:1},8,["download","href"])):_("v-if",!0)]),_:1},8,["active","disabled","non-editable","collection","primary-key","related-primary-key","junction-field","edits","circular-field"]),n.disabled?_("v-if",!0):(c(),d(U,{key:3,active:ce.value,"onUpdate:active":t[5]||(t[5]=e=>ce.value=e),collection:O(C).relatedCollection.collection,folder:n.folder,field:O(w),filter:Ce.value,multiple:"",onInput:Se},null,8,["active","collection","folder","field","filter"])),n.disabled?_("v-if",!0):(c(),d(te,{key:4,modelValue:ue.value,"onUpdate:modelValue":t[7]||(t[7]=e=>ue.value=e)},{default:u(()=>[f(Y,null,{default:u(()=>[f(V,null,{default:u(()=>[h(g(e.$t("upload_file")),1)]),_:1}),f(K,null,{default:u(()=>[f(G,{multiple:"","from-url":"",folder:n.folder,preset:O(I),accept:O(L),onInput:xe},null,8,["folder","preset","accept"])]),_:1}),f(H,null,{default:u(()=>[f(j,{onClick:t[6]||(t[6]=e=>ue.value=!1)},{default:u(()=>[h(g(e.$t("done")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])),f(te,{modelValue:ve.value,"onUpdate:modelValue":t[9]||(t[9]=e=>ve.value=e),onEsc:t[10]||(t[10]=e=>ve.value=!1)},{default:u(()=>[f(Y,null,{default:u(()=>[f(V,null,{default:u(()=>[...t[13]||(t[13]=[h("Remove file from this item?",-1)])]),_:1}),f(K,null,{default:u(()=>[...t[14]||(t[14]=[h(" Deselect clears the field only. Delete removes the file from the library if nothing else references it (relations, ",-1),x("code",null,"/assets/",-1),h(" links, or JSON/code UUIDs). ",-1)])]),_:1}),f(H,null,{default:u(()=>[f(j,{secondary:"",disabled:he.value,onClick:t[8]||(t[8]=e=>ve.value=!1)},{default:u(()=>[...t[15]||(t[15]=[h("Cancel",-1)])]),_:1},8,["disabled"]),f(j,{secondary:"",disabled:he.value,onClick:_e},{default:u(()=>[...t[16]||(t[16]=[h("Deselect only",-1)])]),_:1},8,["disabled"]),f(j,{kind:"danger",loading:he.value,onClick:we},{default:u(()=>[...t[17]||(t[17]=[h(" Deselect & delete if unused ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])),[[oe,Re.value]]):(c(),d(a,{key:0,type:"warning"},{default:u(()=>[h(g(e.$t("relationship_not_setup")),1)]),_:1}))}}});we("\n.files-with-storage[data-v-3af5056c] .v-list {\n\t--v-list-padding: 0;\n}\n.v-list-item.disabled[data-v-3af5056c]:not(.non-editable) {\n\t--v-list-item-background-color: var(--theme--form--field--input--background-subdued);\n}\n.item-actions[data-v-3af5056c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n}\n.actions[data-v-3af5056c] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmargin-block-start: 8px;\n}\n.spacer[data-v-3af5056c] {\n\tflex-grow: 1;\n}\n.menu.active[data-v-3af5056c] {\n\t--v-icon-color: var(--theme--form--field--input--foreground);\n}\n",{});var Dm=a({id:"storage-manager-files-with-storage",name:"Files with Storage",description:"Upload or select multiple files to a configured storage adapter and folder",icon:"note_add",component:xe(jm,[["__scopeId","data-v-3af5056c"]]),relational:!0,types:["alias"],localTypes:["files"],group:"relational",options:({relations:e})=>function(e){const t=e.m2o?.related_collection;return[{field:"folder",name:"$t:interfaces.system-folder.folder",type:"uuid",meta:{width:"half",interface:"system-folder",note:"$t:interfaces.system-folder.field_hint"}},Xu,...qu,{field:"template",name:"$t:display_template",meta:{interface:"system-display-template",options:{collectionName:e.o2m?.collection}}},{field:"filter",name:"$t:filter",type:"json",meta:{interface:"system-filter",options:{collectionName:t}}},{field:"enableCreate",name:"$t:creating_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_create_button"},width:"half"}},{field:"enableSelect",name:"$t:selecting_items",schema:{default_value:!0},meta:{interface:"boolean",options:{label:"$t:enable_select_button"},width:"half"}},{field:"limit",name:"$t:per_page",type:"integer",meta:{interface:"input",width:"half"},schema:{default_value:15}},{field:"allowedMimeTypes",name:"$t:interfaces.file.allowed_mime_types",type:"json",meta:{interface:"select-multiple-dropdown",options:{placeholder:"$t:interfaces.file.mime_types_placeholder",choices:Hu}}}]}(e),recommendedDisplays:["files"]}),Mm=l({__name:"interface",props:{value:{},disabled:{type:Boolean}},emits:["input"],setup(t,{emit:n}){const a=t,r=n,i=e(),l=o([]),u=o(!0);function f(e){const t=String(e||"").trim();t&&r("input",t)}return b(async()=>{try{const e=await i.get("/storage-manager/storages"),t=(Array.isArray(e.data?.data)?e.data.data:[]).map(e=>{const t=String(e?.location||"").trim();if(!t)return null;const n=String(e?.short||e?.label||"").trim(),a=n&&n.toLowerCase()!==t.toLowerCase()?`${t} (${n})`:t;return{value:t,text:a}}).filter(Boolean);if(t.length){l.value=t;const e=String(a.value||"").trim();if(!e||!t.some(t=>t.value===e)){const e=t.find(e=>"local"===e.value)?.value||t[0].value;f(e)}return}}catch{}finally{l.value.length||(l.value=[{value:"local",text:"local"}],a.value||f("local")),u.value=!1}}),y(()=>a.value,e=>{u.value||e||!l.value.length||f(l.value.find(e=>"local"===e.value)?.value||l.value[0].value)}),(e,n)=>{const a=s("v-select");return c(),d(a,{"model-value":t.value,items:l.value,"item-text":"text","item-value":"value",disabled:t.disabled||u.value,loading:u.value,placeholder:"Storage location","onUpdate:modelValue":f},null,8,["model-value","items","disabled","loading"])}}});const Lm=[Ju,Qu,Dm,a({id:"storage-manager-storage-location",name:"Storage Location",description:"Select a configured storage adapter",icon:"storage",component:Mm,types:["string"],group:"other",system:!0,options:null})],Fm=[],Pm=[],Um=[Tu],Bm=[],Vm=[],zm=[ju];export{Fm as displays,Lm as interfaces,Pm as layouts,Um as modules,zm as operations,Bm as panels,Vm as themes};
|