@famgia/omnify-gui 1.0.31 → 1.0.33

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.
@@ -37,7 +37,7 @@ Error generating stack: `+l.message+`
37
37
  .row-has-changes:hover > td {
38
38
  background-color: ${d.colorWarningBgHover} !important;
39
39
  }
40
- `})]})}const lv=["String","Int","BigInt","Float","Decimal","Boolean","Text","LongText","Date","Time","Timestamp","Json","Email","Password","File","Point","Coordinates","Enum","EnumRef"],Bp=["OneToOne","OneToMany","ManyToOne","ManyToMany"],av=["MorphTo","MorphOne","MorphMany","MorphToMany","MorphedByMany"],Lp=["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"],iv=["String","Int","BigInt","Float","Decimal","Boolean","Text","Date","Time","Timestamp","Json"];function sv(i,a,s){if(a==null||a==="")return{valid:!0};const u=String(a);switch(i){case"Int":case"BigInt":if(!/^-?\d+$/.test(u))return{valid:!1,error:"Must be an integer"};break;case"Float":case"Decimal":if(!/^-?\d+(\.\d+)?$/.test(u))return{valid:!1,error:"Must be a number"};break;case"Boolean":if(!["true","false","1","0"].includes(u.toLowerCase()))return{valid:!1,error:"Must be true or false"};break;case"Email":if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(u))return{valid:!1,error:"Must be a valid email address"};break;case"Date":if(!/^\d{4}-\d{2}-\d{2}$/.test(u))return{valid:!1,error:"Must be in YYYY-MM-DD format"};break;case"Time":if(!/^\d{2}:\d{2}(:\d{2})?$/.test(u))return{valid:!1,error:"Must be in HH:MM or HH:MM:SS format"};break;case"DateTime":case"Timestamp":if(!/^\d{4}-\d{2}-\d{2}(T|\s)\d{2}:\d{2}(:\d{2})?/.test(u))return{valid:!1,error:"Must be in YYYY-MM-DD HH:MM:SS format"};break;case"Json":try{JSON.parse(u)}catch{return{valid:!1,error:"Must be valid JSON"}}break;case"Uuid":if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(u))return{valid:!1,error:"Must be a valid UUID"};break;case"Enum":{const r=s==null?void 0:s.enum;if(r&&Array.isArray(r)&&r.length>0&&!r.includes(u))return{valid:!1,error:`Must be one of: ${r.join(", ")}`};break}case"EnumRef":{const r=s==null?void 0:s.enum;if(r&&Array.isArray(r)&&r.length>0&&!r.includes(u))return{valid:!1,error:`Must be one of: ${r.join(", ")}`};break}}return{valid:!0}}function iy(i){return!i||!i.trim()?!1:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i.trim())}function uv(i,a,s){const u=a.trim();return i.some((r,d)=>d!==s&&r===u)}function Up(i,a,s){const u=(i==null?void 0:i.trim())??"";return u?iy(u)?uv(a,u,s)?{valid:!1,error:"Duplicate value"}:{valid:!0}:{valid:!1,error:"Must be a valid identifier (a-z, A-Z, 0-9, _)"}:{valid:!1,error:"Value is required"}}const wf=Symbol.for("yaml.alias"),bf=Symbol.for("yaml.document"),Yl=Symbol.for("yaml.map"),sy=Symbol.for("yaml.pair"),_n=Symbol.for("yaml.scalar"),zi=Symbol.for("yaml.seq"),on=Symbol.for("yaml.node.type"),wa=i=>!!i&&typeof i=="object"&&i[on]===wf,Ks=i=>!!i&&typeof i=="object"&&i[on]===bf,Ys=i=>!!i&&typeof i=="object"&&i[on]===Yl,tt=i=>!!i&&typeof i=="object"&&i[on]===sy,Ye=i=>!!i&&typeof i=="object"&&i[on]===_n,Gs=i=>!!i&&typeof i=="object"&&i[on]===zi;function Pe(i){if(i&&typeof i=="object")switch(i[on]){case Yl:case zi:return!0}return!1}function et(i){if(i&&typeof i=="object")switch(i[on]){case wf:case Yl:case _n:case zi:return!0}return!1}const uy=i=>(Ye(i)||Pe(i))&&!!i.anchor,ja=Symbol("break visit"),cv=Symbol("skip children"),Us=Symbol("remove node");function Di(i,a){const s=ov(a);Ks(i)?Si(null,i.contents,s,Object.freeze([i]))===Us&&(i.contents=null):Si(null,i,s,Object.freeze([]))}Di.BREAK=ja;Di.SKIP=cv;Di.REMOVE=Us;function Si(i,a,s,u){const r=rv(i,a,s,u);if(et(r)||tt(r))return fv(i,u,r),Si(i,r,s,u);if(typeof r!="symbol"){if(Pe(a)){u=Object.freeze(u.concat(a));for(let d=0;d<a.items.length;++d){const m=Si(d,a.items[d],s,u);if(typeof m=="number")d=m-1;else{if(m===ja)return ja;m===Us&&(a.items.splice(d,1),d-=1)}}}else if(tt(a)){u=Object.freeze(u.concat(a));const d=Si("key",a.key,s,u);if(d===ja)return ja;d===Us&&(a.key=null);const m=Si("value",a.value,s,u);if(m===ja)return ja;m===Us&&(a.value=null)}}return r}function ov(i){return typeof i=="object"&&(i.Collection||i.Node||i.Value)?Object.assign({Alias:i.Node,Map:i.Node,Scalar:i.Node,Seq:i.Node},i.Value&&{Map:i.Value,Scalar:i.Value,Seq:i.Value},i.Collection&&{Map:i.Collection,Seq:i.Collection},i):i}function rv(i,a,s,u){var r,d,m,p,g;if(typeof s=="function")return s(i,a,u);if(Ys(a))return(r=s.Map)==null?void 0:r.call(s,i,a,u);if(Gs(a))return(d=s.Seq)==null?void 0:d.call(s,i,a,u);if(tt(a))return(m=s.Pair)==null?void 0:m.call(s,i,a,u);if(Ye(a))return(p=s.Scalar)==null?void 0:p.call(s,i,a,u);if(wa(a))return(g=s.Alias)==null?void 0:g.call(s,i,a,u)}function fv(i,a,s){const u=a[a.length-1];if(Pe(u))u.items[i]=s;else if(tt(u))i==="key"?u.key=s:u.value=s;else if(Ks(u))u.contents=s;else{const r=wa(u)?"alias":"scalar";throw new Error(`Cannot replace node with ${r} parent`)}}const dv={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},hv=i=>i.replace(/[!,[\]{}]/g,a=>dv[a]);class Ct{constructor(a,s){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ct.defaultYaml,a),this.tags=Object.assign({},Ct.defaultTags,s)}clone(){const a=new Ct(this.yaml,this.tags);return a.docStart=this.docStart,a}atDocument(){const a=new Ct(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ct.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ct.defaultTags);break}return a}add(a,s){this.atNextDocument&&(this.yaml={explicit:Ct.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ct.defaultTags),this.atNextDocument=!1);const u=a.trim().split(/[ \t]+/),r=u.shift();switch(r){case"%TAG":{if(u.length!==2&&(s(0,"%TAG directive should contain exactly two parts"),u.length<2))return!1;const[d,m]=u;return this.tags[d]=m,!0}case"%YAML":{if(this.yaml.explicit=!0,u.length!==1)return s(0,"%YAML directive should contain exactly one part"),!1;const[d]=u;if(d==="1.1"||d==="1.2")return this.yaml.version=d,!0;{const m=/^\d+\.\d+$/.test(d);return s(6,`Unsupported YAML version ${d}`,m),!1}}default:return s(0,`Unknown directive ${r}`,!0),!1}}tagName(a,s){if(a==="!")return"!";if(a[0]!=="!")return s(`Not a valid tag: ${a}`),null;if(a[1]==="<"){const m=a.slice(2,-1);return m==="!"||m==="!!"?(s(`Verbatim tags aren't resolved, so ${a} is invalid.`),null):(a[a.length-1]!==">"&&s("Verbatim tags must end with a >"),m)}const[,u,r]=a.match(/^(.*!)([^!]*)$/s);r||s(`The ${a} tag has no suffix`);const d=this.tags[u];if(d)try{return d+decodeURIComponent(r)}catch(m){return s(String(m)),null}return u==="!"?a:(s(`Could not resolve tag: ${a}`),null)}tagString(a){for(const[s,u]of Object.entries(this.tags))if(a.startsWith(u))return s+hv(a.substring(u.length));return a[0]==="!"?a:`!<${a}>`}toString(a){const s=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],u=Object.entries(this.tags);let r;if(a&&u.length>0&&et(a.contents)){const d={};Di(a.contents,(m,p)=>{et(p)&&p.tag&&(d[p.tag]=!0)}),r=Object.keys(d)}else r=[];for(const[d,m]of u)d==="!!"&&m==="tag:yaml.org,2002:"||(!a||r.some(p=>p.startsWith(m)))&&s.push(`%TAG ${d} ${m}`);return s.join(`
40
+ `})]})}const lv=["String","Int","BigInt","Float","Decimal","Boolean","Text","LongText","Date","Time","Timestamp","Json","Email","Password","File","Point","Coordinates","Enum","EnumRef"],Bp=["OneToOne","OneToMany","ManyToOne","ManyToMany"],av=["MorphTo","MorphOne","MorphMany","MorphToMany","MorphedByMany"],Lp=["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"],iv=["String","Int","BigInt","Float","Decimal","Boolean","Text","Date","Time","Timestamp","Json","Enum"];function sv(i,a,s){if(a==null||a==="")return{valid:!0};const u=String(a);switch(i){case"Int":case"BigInt":if(!/^-?\d+$/.test(u))return{valid:!1,error:"Must be an integer"};break;case"Float":case"Decimal":if(!/^-?\d+(\.\d+)?$/.test(u))return{valid:!1,error:"Must be a number"};break;case"Boolean":if(!["true","false","1","0"].includes(u.toLowerCase()))return{valid:!1,error:"Must be true or false"};break;case"Email":if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(u))return{valid:!1,error:"Must be a valid email address"};break;case"Date":if(!/^\d{4}-\d{2}-\d{2}$/.test(u))return{valid:!1,error:"Must be in YYYY-MM-DD format"};break;case"Time":if(!/^\d{2}:\d{2}(:\d{2})?$/.test(u))return{valid:!1,error:"Must be in HH:MM or HH:MM:SS format"};break;case"DateTime":case"Timestamp":if(!/^\d{4}-\d{2}-\d{2}(T|\s)\d{2}:\d{2}(:\d{2})?/.test(u))return{valid:!1,error:"Must be in YYYY-MM-DD HH:MM:SS format"};break;case"Json":try{JSON.parse(u)}catch{return{valid:!1,error:"Must be valid JSON"}}break;case"Uuid":if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(u))return{valid:!1,error:"Must be a valid UUID"};break;case"Enum":{const r=s==null?void 0:s.enum;if(r&&Array.isArray(r)&&r.length>0&&!r.includes(u))return{valid:!1,error:`Must be one of: ${r.join(", ")}`};break}case"EnumRef":{const r=s==null?void 0:s.enum;if(r&&Array.isArray(r)&&r.length>0&&!r.includes(u))return{valid:!1,error:`Must be one of: ${r.join(", ")}`};break}}return{valid:!0}}function iy(i){return!i||!i.trim()?!1:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i.trim())}function uv(i,a,s){const u=a.trim();return i.some((r,d)=>d!==s&&r===u)}function Up(i,a,s){const u=(i==null?void 0:i.trim())??"";return u?iy(u)?uv(a,u,s)?{valid:!1,error:"Duplicate value"}:{valid:!0}:{valid:!1,error:"Must be a valid identifier (a-z, A-Z, 0-9, _)"}:{valid:!1,error:"Value is required"}}const wf=Symbol.for("yaml.alias"),bf=Symbol.for("yaml.document"),Yl=Symbol.for("yaml.map"),sy=Symbol.for("yaml.pair"),_n=Symbol.for("yaml.scalar"),zi=Symbol.for("yaml.seq"),on=Symbol.for("yaml.node.type"),wa=i=>!!i&&typeof i=="object"&&i[on]===wf,Ks=i=>!!i&&typeof i=="object"&&i[on]===bf,Ys=i=>!!i&&typeof i=="object"&&i[on]===Yl,tt=i=>!!i&&typeof i=="object"&&i[on]===sy,Ye=i=>!!i&&typeof i=="object"&&i[on]===_n,Gs=i=>!!i&&typeof i=="object"&&i[on]===zi;function Pe(i){if(i&&typeof i=="object")switch(i[on]){case Yl:case zi:return!0}return!1}function et(i){if(i&&typeof i=="object")switch(i[on]){case wf:case Yl:case _n:case zi:return!0}return!1}const uy=i=>(Ye(i)||Pe(i))&&!!i.anchor,ja=Symbol("break visit"),cv=Symbol("skip children"),Us=Symbol("remove node");function Di(i,a){const s=ov(a);Ks(i)?Si(null,i.contents,s,Object.freeze([i]))===Us&&(i.contents=null):Si(null,i,s,Object.freeze([]))}Di.BREAK=ja;Di.SKIP=cv;Di.REMOVE=Us;function Si(i,a,s,u){const r=rv(i,a,s,u);if(et(r)||tt(r))return fv(i,u,r),Si(i,r,s,u);if(typeof r!="symbol"){if(Pe(a)){u=Object.freeze(u.concat(a));for(let d=0;d<a.items.length;++d){const m=Si(d,a.items[d],s,u);if(typeof m=="number")d=m-1;else{if(m===ja)return ja;m===Us&&(a.items.splice(d,1),d-=1)}}}else if(tt(a)){u=Object.freeze(u.concat(a));const d=Si("key",a.key,s,u);if(d===ja)return ja;d===Us&&(a.key=null);const m=Si("value",a.value,s,u);if(m===ja)return ja;m===Us&&(a.value=null)}}return r}function ov(i){return typeof i=="object"&&(i.Collection||i.Node||i.Value)?Object.assign({Alias:i.Node,Map:i.Node,Scalar:i.Node,Seq:i.Node},i.Value&&{Map:i.Value,Scalar:i.Value,Seq:i.Value},i.Collection&&{Map:i.Collection,Seq:i.Collection},i):i}function rv(i,a,s,u){var r,d,m,p,g;if(typeof s=="function")return s(i,a,u);if(Ys(a))return(r=s.Map)==null?void 0:r.call(s,i,a,u);if(Gs(a))return(d=s.Seq)==null?void 0:d.call(s,i,a,u);if(tt(a))return(m=s.Pair)==null?void 0:m.call(s,i,a,u);if(Ye(a))return(p=s.Scalar)==null?void 0:p.call(s,i,a,u);if(wa(a))return(g=s.Alias)==null?void 0:g.call(s,i,a,u)}function fv(i,a,s){const u=a[a.length-1];if(Pe(u))u.items[i]=s;else if(tt(u))i==="key"?u.key=s:u.value=s;else if(Ks(u))u.contents=s;else{const r=wa(u)?"alias":"scalar";throw new Error(`Cannot replace node with ${r} parent`)}}const dv={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},hv=i=>i.replace(/[!,[\]{}]/g,a=>dv[a]);class Ct{constructor(a,s){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ct.defaultYaml,a),this.tags=Object.assign({},Ct.defaultTags,s)}clone(){const a=new Ct(this.yaml,this.tags);return a.docStart=this.docStart,a}atDocument(){const a=new Ct(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ct.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ct.defaultTags);break}return a}add(a,s){this.atNextDocument&&(this.yaml={explicit:Ct.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ct.defaultTags),this.atNextDocument=!1);const u=a.trim().split(/[ \t]+/),r=u.shift();switch(r){case"%TAG":{if(u.length!==2&&(s(0,"%TAG directive should contain exactly two parts"),u.length<2))return!1;const[d,m]=u;return this.tags[d]=m,!0}case"%YAML":{if(this.yaml.explicit=!0,u.length!==1)return s(0,"%YAML directive should contain exactly one part"),!1;const[d]=u;if(d==="1.1"||d==="1.2")return this.yaml.version=d,!0;{const m=/^\d+\.\d+$/.test(d);return s(6,`Unsupported YAML version ${d}`,m),!1}}default:return s(0,`Unknown directive ${r}`,!0),!1}}tagName(a,s){if(a==="!")return"!";if(a[0]!=="!")return s(`Not a valid tag: ${a}`),null;if(a[1]==="<"){const m=a.slice(2,-1);return m==="!"||m==="!!"?(s(`Verbatim tags aren't resolved, so ${a} is invalid.`),null):(a[a.length-1]!==">"&&s("Verbatim tags must end with a >"),m)}const[,u,r]=a.match(/^(.*!)([^!]*)$/s);r||s(`The ${a} tag has no suffix`);const d=this.tags[u];if(d)try{return d+decodeURIComponent(r)}catch(m){return s(String(m)),null}return u==="!"?a:(s(`Could not resolve tag: ${a}`),null)}tagString(a){for(const[s,u]of Object.entries(this.tags))if(a.startsWith(u))return s+hv(a.substring(u.length));return a[0]==="!"?a:`!<${a}>`}toString(a){const s=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],u=Object.entries(this.tags);let r;if(a&&u.length>0&&et(a.contents)){const d={};Di(a.contents,(m,p)=>{et(p)&&p.tag&&(d[p.tag]=!0)}),r=Object.keys(d)}else r=[];for(const[d,m]of u)d==="!!"&&m==="tag:yaml.org,2002:"||(!a||r.some(p=>p.startsWith(m)))&&s.push(`%TAG ${d} ${m}`);return s.join(`
41
41
  `)}}Ct.defaultYaml={explicit:!1,version:"1.2"};Ct.defaultTags={"!!":"tag:yaml.org,2002:"};function cy(i){if(/[\x00-\x19\s,[\]{}]/.test(i)){const s=`Anchor must not contain whitespace or control characters: ${JSON.stringify(i)}`;throw new Error(s)}return!0}function oy(i){const a=new Set;return Di(i,{Value(s,u){u.anchor&&a.add(u.anchor)}}),a}function ry(i,a){for(let s=1;;++s){const u=`${i}${s}`;if(!a.has(u))return u}}function mv(i,a){const s=[],u=new Map;let r=null;return{onAnchor:d=>{s.push(d),r??(r=oy(i));const m=ry(a,r);return r.add(m),m},setAnchors:()=>{for(const d of s){const m=u.get(d);if(typeof m=="object"&&m.anchor&&(Ye(m.node)||Pe(m.node)))m.node.anchor=m.anchor;else{const p=new Error("Failed to resolve repeated object (this should not happen)");throw p.source=d,p}}},sourceObjects:u}}function xi(i,a,s,u){if(u&&typeof u=="object")if(Array.isArray(u))for(let r=0,d=u.length;r<d;++r){const m=u[r],p=xi(i,u,String(r),m);p===void 0?delete u[r]:p!==m&&(u[r]=p)}else if(u instanceof Map)for(const r of Array.from(u.keys())){const d=u.get(r),m=xi(i,u,r,d);m===void 0?u.delete(r):m!==d&&u.set(r,m)}else if(u instanceof Set)for(const r of Array.from(u)){const d=xi(i,u,r,r);d===void 0?u.delete(r):d!==r&&(u.delete(r),u.add(d))}else for(const[r,d]of Object.entries(u)){const m=xi(i,u,r,d);m===void 0?delete u[r]:m!==d&&(u[r]=m)}return i.call(a,s,u)}function cn(i,a,s){if(Array.isArray(i))return i.map((u,r)=>cn(u,String(r),s));if(i&&typeof i.toJSON=="function"){if(!s||!uy(i))return i.toJSON(a,s);const u={aliasCount:0,count:1,res:void 0};s.anchors.set(i,u),s.onCreate=d=>{u.res=d,delete s.onCreate};const r=i.toJSON(a,s);return s.onCreate&&s.onCreate(r),r}return typeof i=="bigint"&&!(s!=null&&s.keep)?Number(i):i}class Mf{constructor(a){Object.defineProperty(this,on,{value:a})}clone(){const a=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(a.range=this.range.slice()),a}toJS(a,{mapAsMap:s,maxAliasCount:u,onAnchor:r,reviver:d}={}){if(!Ks(a))throw new TypeError("A document argument is required");const m={anchors:new Map,doc:a,keep:!0,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof u=="number"?u:100},p=cn(this,"",m);if(typeof r=="function")for(const{count:g,res:b}of m.anchors.values())r(b,g);return typeof d=="function"?xi(d,{"":p},"",p):p}}class zf extends Mf{constructor(a){super(wf),this.source=a,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(a,s){let u;s!=null&&s.aliasResolveCache?u=s.aliasResolveCache:(u=[],Di(a,{Node:(d,m)=>{(wa(m)||uy(m))&&u.push(m)}}),s&&(s.aliasResolveCache=u));let r;for(const d of u){if(d===this)break;d.anchor===this.source&&(r=d)}return r}toJSON(a,s){if(!s)return{source:this.source};const{anchors:u,doc:r,maxAliasCount:d}=s,m=this.resolve(r,s);if(!m){const g=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(g)}let p=u.get(m);if(p||(cn(m,null,s),p=u.get(m)),(p==null?void 0:p.res)===void 0){const g="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(g)}if(d>=0&&(p.count+=1,p.aliasCount===0&&(p.aliasCount=Oc(r,m,u)),p.count*p.aliasCount>d)){const g="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(g)}return p.res}toString(a,s,u){const r=`*${this.source}`;if(a){if(cy(this.source),a.options.verifyAliasOrder&&!a.anchors.has(this.source)){const d=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(d)}if(a.implicitKey)return`${r} `}return r}}function Oc(i,a,s){if(wa(a)){const u=a.resolve(i),r=s&&u&&s.get(u);return r?r.count*r.aliasCount:0}else if(Pe(a)){let u=0;for(const r of a.items){const d=Oc(i,r,s);d>u&&(u=d)}return u}else if(tt(a)){const u=Oc(i,a.key,s),r=Oc(i,a.value,s);return Math.max(u,r)}return 1}const fy=i=>!i||typeof i!="function"&&typeof i!="object";class fe extends Mf{constructor(a){super(_n),this.value=a}toJSON(a,s){return s!=null&&s.keep?this.value:cn(this.value,a,s)}toString(){return String(this.value)}}fe.BLOCK_FOLDED="BLOCK_FOLDED";fe.BLOCK_LITERAL="BLOCK_LITERAL";fe.PLAIN="PLAIN";fe.QUOTE_DOUBLE="QUOTE_DOUBLE";fe.QUOTE_SINGLE="QUOTE_SINGLE";const pv="tag:yaml.org,2002:";function yv(i,a,s){if(a){const u=s.filter(d=>d.tag===a),r=u.find(d=>!d.format)??u[0];if(!r)throw new Error(`Tag ${a} not found`);return r}return s.find(u=>{var r;return((r=u.identify)==null?void 0:r.call(u,i))&&!u.format})}function Hs(i,a,s){var S,C,w;if(Ks(i)&&(i=i.contents),et(i))return i;if(tt(i)){const U=(C=(S=s.schema[Yl]).createNode)==null?void 0:C.call(S,s.schema,null,s);return U.items.push(i),U}(i instanceof String||i instanceof Number||i instanceof Boolean||typeof BigInt<"u"&&i instanceof BigInt)&&(i=i.valueOf());const{aliasDuplicateObjects:u,onAnchor:r,onTagObj:d,schema:m,sourceObjects:p}=s;let g;if(u&&i&&typeof i=="object"){if(g=p.get(i),g)return g.anchor??(g.anchor=r(i)),new zf(g.anchor);g={anchor:null,node:null},p.set(i,g)}a!=null&&a.startsWith("!!")&&(a=pv+a.slice(2));let b=yv(i,a,m.tags);if(!b){if(i&&typeof i.toJSON=="function"&&(i=i.toJSON()),!i||typeof i!="object"){const U=new fe(i);return g&&(g.node=U),U}b=i instanceof Map?m[Yl]:Symbol.iterator in Object(i)?m[zi]:m[Yl]}d&&(d(b),delete s.onTagObj);const E=b!=null&&b.createNode?b.createNode(s.schema,i,s):typeof((w=b==null?void 0:b.nodeClass)==null?void 0:w.from)=="function"?b.nodeClass.from(s.schema,i,s):new fe(i);return a?E.tag=a:b.default||(E.tag=b.tag),g&&(g.node=E),E}function Dc(i,a,s){let u=s;for(let r=a.length-1;r>=0;--r){const d=a[r];if(typeof d=="number"&&Number.isInteger(d)&&d>=0){const m=[];m[d]=u,u=m}else u=new Map([[d,u]])}return Hs(u,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:i,sourceObjects:new Map})}const Bs=i=>i==null||typeof i=="object"&&!!i[Symbol.iterator]().next().done;class dy extends Mf{constructor(a,s){super(a),Object.defineProperty(this,"schema",{value:s,configurable:!0,enumerable:!1,writable:!0})}clone(a){const s=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return a&&(s.schema=a),s.items=s.items.map(u=>et(u)||tt(u)?u.clone(a):u),this.range&&(s.range=this.range.slice()),s}addIn(a,s){if(Bs(a))this.add(s);else{const[u,...r]=a,d=this.get(u,!0);if(Pe(d))d.addIn(r,s);else if(d===void 0&&this.schema)this.set(u,Dc(this.schema,r,s));else throw new Error(`Expected YAML collection at ${u}. Remaining path: ${r}`)}}deleteIn(a){const[s,...u]=a;if(u.length===0)return this.delete(s);const r=this.get(s,!0);if(Pe(r))return r.deleteIn(u);throw new Error(`Expected YAML collection at ${s}. Remaining path: ${u}`)}getIn(a,s){const[u,...r]=a,d=this.get(u,!0);return r.length===0?!s&&Ye(d)?d.value:d:Pe(d)?d.getIn(r,s):void 0}hasAllNullValues(a){return this.items.every(s=>{if(!tt(s))return!1;const u=s.value;return u==null||a&&Ye(u)&&u.value==null&&!u.commentBefore&&!u.comment&&!u.tag})}hasIn(a){const[s,...u]=a;if(u.length===0)return this.has(s);const r=this.get(s,!0);return Pe(r)?r.hasIn(u):!1}setIn(a,s){const[u,...r]=a;if(r.length===0)this.set(u,s);else{const d=this.get(u,!0);if(Pe(d))d.setIn(r,s);else if(d===void 0&&this.schema)this.set(u,Dc(this.schema,r,s));else throw new Error(`Expected YAML collection at ${u}. Remaining path: ${r}`)}}}const gv=i=>i.replace(/^(?!$)(?: $)?/gm,"#");function Pn(i,a){return/^\n+$/.test(i)?i.substring(1):a?i.replace(/^(?! *$)/gm,a):i}const Ea=(i,a,s)=>i.endsWith(`
42
42
  `)?Pn(s,a):s.includes(`
43
43
  `)?`
@@ -168,4 +168,4 @@ ${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.pus
168
168
  `,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(a){var u;const s=a.items[a.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){const r="end"in s.value?s.value.end:void 0,d=Array.isArray(r)?r[r.length-1]:void 0;(d==null?void 0:d.type)==="comment"?r==null||r.push(this.sourceToken):a.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)a.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,a.indent)){const r=a.items[a.items.length-2],d=(u=r==null?void 0:r.value)==null?void 0:u.end;if(Array.isArray(d)){Array.prototype.push.apply(d,s.start),d.push(this.sourceToken),a.items.pop();return}}s.start.push(this.sourceToken)}return}if(this.indent>=a.indent){const r=!this.onKeyLine&&this.indent===a.indent,d=r&&(s.sep||s.explicitKey)&&this.type!=="seq-item-ind";let m=[];if(d&&s.sep&&!s.value){const p=[];for(let g=0;g<s.sep.length;++g){const b=s.sep[g];switch(b.type){case"newline":p.push(g);break;case"space":break;case"comment":b.indent>a.indent&&(p.length=0);break;default:p.length=0}}p.length>=2&&(m=s.sep.splice(p[1]))}switch(this.type){case"anchor":case"tag":d||s.value?(m.push(this.sourceToken),a.items.push({start:m}),this.onKeyLine=!0):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"explicit-key-ind":!s.sep&&!s.explicitKey?(s.start.push(this.sourceToken),s.explicitKey=!0):d||s.value?(m.push(this.sourceToken),a.items.push({start:m,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(s.explicitKey)if(s.sep)if(s.value)a.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Hl(s.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:m,key:null,sep:[this.sourceToken]}]});else if(Ky(s.key)&&!Hl(s.sep,"newline")){const p=vi(s.start),g=s.key,b=s.sep;b.push(this.sourceToken),delete s.key,delete s.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:p,key:g,sep:b}]})}else m.length>0?s.sep=s.sep.concat(m,this.sourceToken):s.sep.push(this.sourceToken);else if(Hl(s.start,"newline"))Object.assign(s,{key:null,sep:[this.sourceToken]});else{const p=vi(s.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:p,key:null,sep:[this.sourceToken]}]})}else s.sep?s.value||d?a.items.push({start:m,key:null,sep:[this.sourceToken]}):Hl(s.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const p=this.flowScalar(this.type);d||s.value?(a.items.push({start:m,key:p,sep:[]}),this.onKeyLine=!0):s.sep?this.stack.push(p):(Object.assign(s,{key:p,sep:[]}),this.onKeyLine=!0);return}default:{const p=this.startBlockValue(a);if(p){if(p.type==="block-seq"){if(!s.explicitKey&&s.sep&&!Hl(s.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else r&&a.items.push({start:m});this.stack.push(p);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(a){var u;const s=a.items[a.items.length-1];switch(this.type){case"newline":if(s.value){const r="end"in s.value?s.value.end:void 0,d=Array.isArray(r)?r[r.length-1]:void 0;(d==null?void 0:d.type)==="comment"?r==null||r.push(this.sourceToken):a.items.push({start:[this.sourceToken]})}else s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)a.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(s.start,a.indent)){const r=a.items[a.items.length-2],d=(u=r==null?void 0:r.value)==null?void 0:u.end;if(Array.isArray(d)){Array.prototype.push.apply(d,s.start),d.push(this.sourceToken),a.items.pop();return}}s.start.push(this.sourceToken)}return;case"anchor":case"tag":if(s.value||this.indent<=a.indent)break;s.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==a.indent)break;s.value||Hl(s.start,"seq-item-ind")?a.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return}if(this.indent>a.indent){const r=this.startBlockValue(a);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(a){const s=a.items[a.items.length-1];if(this.type==="flow-error-end"){let u;do yield*this.pop(),u=this.peek(1);while((u==null?void 0:u.type)==="flow-collection")}else if(a.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!s||s.sep?a.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return;case"map-value-ind":!s||s.value?a.items.push({start:[],key:null,sep:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!s||s.value?a.items.push({start:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);!s||s.value?a.items.push({start:[],key:r,sep:[]}):s.sep?this.stack.push(r):Object.assign(s,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":a.end.push(this.sourceToken);return}const u=this.startBlockValue(a);u?this.stack.push(u):(yield*this.pop(),yield*this.step())}else{const u=this.peek(2);if(u.type==="block-map"&&(this.type==="map-value-ind"&&u.indent===a.indent||this.type==="newline"&&!u.items[u.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&u.type!=="flow-collection"){const r=Ac(u),d=vi(r);$p(a);const m=a.end.splice(1,a.end.length);m.push(this.sourceToken);const p={type:"block-map",offset:a.offset,indent:a.indent,items:[{start:d,key:a,sep:m}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=p}else yield*this.lineEnd(a)}}flowScalar(a){if(this.onNewLine){let s=this.source.indexOf(`
169
169
  `)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
170
170
  `,s)+1}return{type:a,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(a){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const s=Ac(a),u=vi(s);return u.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:u,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const s=Ac(a),u=vi(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:u,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(a,s){return this.type!=="comment"||this.indent<=s?!1:a.every(u=>u.type==="newline"||u.type==="space")}*documentEnd(a){this.type!=="doc-mode"&&(a.end?a.end.push(this.sourceToken):a.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(a){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:a.end?a.end.push(this.sourceToken):a.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function pS(i){const a=i.prettyErrors!==!1;return{lineCounter:i.lineCounter||a&&new hS||null,prettyErrors:a}}function yS(i,a={}){const{lineCounter:s,prettyErrors:u}=pS(a),r=new mS(s==null?void 0:s.addNewLine),d=new cS(a);let m=null;for(const p of d.compose(r.parse(i),!0,i.length))if(!m)m=p;else if(m.options.logLevel!=="silent"){m.errors.push(new Ls(p.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return u&&s&&(m.errors.forEach(Yp(i,s)),m.warnings.forEach(Yp(i,s))),m}function gS(i,a,s){let u;const r=yS(i,s);if(!r)return null;if(r.warnings.forEach(d=>py(r.options.logLevel,d)),r.errors.length>0){if(r.options.logLevel!=="silent")throw r.errors[0];r.errors=[]}return r.toJS(Object.assign({reviver:u},s))}function bS(i,a,s){let u=null;if(typeof a=="function"||Array.isArray(a)?u=a:s===void 0&&a&&(s=a),typeof s=="string"&&(s=s.length),typeof s=="number"){const r=Math.round(s);s=r<1?void 0:r>8?{indent:8}:{indent:r}}if(i===void 0){const{keepUndefined:r}=s??a??{};if(!r)return}return Ks(i)&&!u?i.toString(s):new Qs(i,u,s).toString(s)}function vS(i){const a={type:i.type};return i.displayName&&(a.displayName=i.displayName),i.description&&(a.description=i.description),i.nullable&&(a.nullable=i.nullable),i.unique&&(a.unique=i.unique),i.default!==void 0&&(a.default=i.default),i.length&&(a.length=i.length),i.precision&&(a.precision=i.precision),i.scale&&(a.scale=i.scale),i.unsigned&&(a.unsigned=i.unsigned),i.enum!==void 0&&(a.enum=i.enum),i.relation&&(a.relation=i.relation),i.target&&(a.target=i.target),i.targets&&i.targets.length>0&&(a.targets=i.targets),i.morphName&&(a.morphName=i.morphName),i.inversedBy&&(a.inversedBy=i.inversedBy),i.mappedBy&&(a.mappedBy=i.mappedBy),i.onDelete&&(a.onDelete=i.onDelete),i.onUpdate&&(a.onUpdate=i.onUpdate),i.owning!==void 0&&(a.owning=i.owning),i.joinTable&&(a.joinTable=i.joinTable),i.pivotFields&&Object.keys(i.pivotFields).length>0&&(a.pivotFields=i.pivotFields),i.multiple&&(a.multiple=i.multiple),i.maxFiles&&(a.maxFiles=i.maxFiles),i.accept&&i.accept.length>0&&(a.accept=i.accept),i.maxSize&&(a.maxSize=i.maxSize),a}function SS(i){const a={type:i.type||"String"};return i.displayName&&(a.displayName=i.displayName),i.description&&(a.description=i.description),i.nullable&&(a.nullable=i.nullable),i.unique&&(a.unique=i.unique),i.default!==void 0&&(a.default=i.default),i.length&&(a.length=i.length),i.precision&&(a.precision=i.precision),i.scale&&(a.scale=i.scale),i.unsigned&&(a.unsigned=i.unsigned),i.enum!==void 0&&(a.enum=i.enum),i.relation&&(a.relation=i.relation),i.target&&(a.target=i.target),i.targets&&(a.targets=i.targets),i.morphName&&(a.morphName=i.morphName),i.inversedBy&&(a.inversedBy=i.inversedBy),i.mappedBy&&(a.mappedBy=i.mappedBy),i.onDelete&&(a.onDelete=i.onDelete),i.onUpdate&&(a.onUpdate=i.onUpdate),i.owning!==void 0&&(a.owning=i.owning),i.joinTable&&(a.joinTable=i.joinTable),i.pivotFields&&(a.pivotFields=i.pivotFields),i.multiple&&(a.multiple=i.multiple),i.maxFiles&&(a.maxFiles=i.maxFiles),i.accept&&(a.accept=i.accept),i.maxSize&&(a.maxSize=i.maxSize),a}function xS(i){return i.map(a=>{if(!a.label&&(!a.extra||Object.keys(a.extra).length===0))return a.value;const s={value:a.value};return a.label&&(s.label=a.label),a.extra&&Object.keys(a.extra).length>0&&Object.assign(s,a.extra),s})}function jS(i){return i.map(a=>{if(typeof a=="string")return{value:a};const s={value:a.value};a.label&&(s.label=a.label);const u={};for(const[r,d]of Object.entries(a))r!=="value"&&r!=="label"&&(u[r]=d);return Object.keys(u).length>0&&(s.extra=u),s})}function TS(i){const a={};return i.id===!1&&(a.id=!1),i.idType&&i.idType!=="BigInt"&&(a.idType=i.idType),i.timestamps===!1&&(a.timestamps=!1),i.softDelete&&(a.softDelete=!0),i.tableName&&(a.tableName=i.tableName),i.translations&&(a.translations=!0),i.authenticatable&&(a.authenticatable=!0),i.authenticatableLoginIdField&&(a.authenticatableLoginIdField=i.authenticatableLoginIdField),i.authenticatablePasswordField&&(a.authenticatablePasswordField=i.authenticatablePasswordField),i.authenticatableGuardName&&(a.authenticatableGuardName=i.authenticatableGuardName),i.indexes&&i.indexes.length>0&&(a.indexes=i.indexes.map(s=>{const u={columns:s.columns};return s.unique&&(u.unique=s.unique),s.name&&(u.name=s.name),s.type&&(u.type=s.type),u})),i.unique&&i.unique.length>0&&(a.unique=i.unique),a}function ES(i){const a={};return i.id===!1&&(a.id=!1),i.idType&&(a.idType=i.idType),i.timestamps===!1&&(a.timestamps=!1),i.softDelete&&(a.softDelete=!0),i.tableName&&(a.tableName=i.tableName),i.translations&&(a.translations=!0),i.authenticatable&&(a.authenticatable=!0),i.authenticatableLoginIdField&&(a.authenticatableLoginIdField=i.authenticatableLoginIdField),i.authenticatablePasswordField&&(a.authenticatablePasswordField=i.authenticatablePasswordField),i.authenticatableGuardName&&(a.authenticatableGuardName=i.authenticatableGuardName),i.indexes&&Array.isArray(i.indexes)&&(a.indexes=i.indexes.map(s=>({columns:s.columns,unique:s.unique,name:s.name,type:s.type}))),i.unique&&(a.unique=i.unique),a}function NS(i){const a={};if(i.displayName&&(a.displayName=i.displayName),i.kind==="enum"&&(a.kind="enum"),i.singular&&(a.singular=i.singular),i.plural&&(a.plural=i.plural),i.titleIndex&&(a.titleIndex=i.titleIndex),i.group&&(a.group=i.group),i.options){const s=TS(i.options);Object.keys(s).length>0&&(a.options=s)}if(i.kind!=="enum"&&i.properties){const s={};for(const[u,r]of Object.entries(i.properties))s[u]=vS(r);Object.keys(s).length>0&&(a.properties=s)}return i.kind==="enum"&&i.values&&i.values.length>0&&(a.values=xS(i.values)),bS(a,{lineWidth:120,defaultKeyType:"PLAIN",defaultStringType:"PLAIN"})}function AS(i,a){const s=gS(i);if(!s||typeof s!="object")throw new Error("Invalid YAML: expected an object");const u={name:a,kind:s.kind==="enum"?"enum":"object"};if(s.displayName&&(u.displayName=s.displayName),s.singular&&(u.singular=s.singular),s.plural&&(u.plural=s.plural),s.titleIndex&&(u.titleIndex=s.titleIndex),s.group&&(u.group=s.group),s.options&&typeof s.options=="object"&&(u.options=ES(s.options)),s.properties&&typeof s.properties=="object"){const r={};for(const[d,m]of Object.entries(s.properties))m&&typeof m=="object"&&(r[d]=SS(m));u.properties=r}return s.values&&Array.isArray(s.values)&&(u.values=jS(s.values)),u}const Cc={OneToOne:{icon:"1:1",desc:"One to One"},OneToMany:{icon:"1:n",desc:"One to Many"},ManyToOne:{icon:"n:1",desc:"Many to One"},ManyToMany:{icon:"n:n",desc:"Many to Many"},MorphTo:{icon:"?:1",desc:"Morph To"},MorphOne:{icon:"1:?",desc:"Morph One"},MorphMany:{icon:"n:?",desc:"Morph Many"},MorphToMany:{icon:"?:n",desc:"Morph To Many"},MorphedByMany:{icon:"n:?",desc:"Morphed By Many"}},CS=["String","Email","Password"],OS=["Int","BigInt","Float","Decimal"],{Text:xa}=kn;function wS({schemaData:i,isNew:a,autoSingular:s,autoPlural:u,autoTableName:r,optionsTags:d,onEdit:m}){const{t:p}=pt();return f.jsx(xn,{title:a?p("schema.newSchema"):i.name,size:"small",extra:f.jsx(Ne,{size:"small",icon:f.jsx(nl,{}),onClick:m,children:p("common.edit")}),children:f.jsxs(Ve,{column:1,size:"small",children:[f.jsx(Ve.Item,{label:p("common.name"),children:f.jsx(xa,{strong:!0,children:i.name||"-"})}),f.jsx(Ve.Item,{label:p("schema.displayName"),children:i.displayName||"-"}),f.jsx(Ve.Item,{label:p("schema.kind"),children:f.jsx(Me,{color:i.kind==="enum"?"purple":"blue",children:i.kind==="enum"?p("schema.kindEnum"):p("schema.kindObject")})}),f.jsx(Ve.Item,{label:p("schema.singular"),children:i.singular||f.jsxs(xa,{type:"secondary",children:[s||"-"," ",p("common.auto")]})}),f.jsx(Ve.Item,{label:p("schema.plural"),children:i.plural||f.jsxs(xa,{type:"secondary",children:[u||"-"," ",p("common.auto")]})}),f.jsx(Ve.Item,{label:p("schema.group"),children:i.group||"-"}),i.kind==="object"&&f.jsxs(f.Fragment,{children:[f.jsx(Ve.Item,{label:p("schema.tableName"),children:i.tableName?i.tableName:f.jsxs(xa,{type:"secondary",children:[r||"-"," ",p("common.auto")]})}),f.jsx(Ve.Item,{label:p("schema.titleField"),children:i.titleIndex||"-"}),f.jsx(Ve.Item,{label:p("common.options"),children:d.length>0?f.jsx(Ee,{size:"small",children:d}):"-"}),i.authenticatable&&f.jsx(Ve.Item,{label:p("schema.authConfig"),children:f.jsxs(Ee,{children:[f.jsxs(xa,{type:"secondary",children:[p("schema.loginIdField"),":"]})," ",i.authenticatableLoginIdField,f.jsxs(xa,{type:"secondary",children:[p("schema.passwordField"),":"]})," ",i.authenticatablePasswordField,f.jsxs(xa,{type:"secondary",children:[p("schema.guardName"),":"]})," ",i.authenticatableGuardName]})})]})]})})}const{Text:ff}=kn;function MS({enumValues:i,isEnumValueNew:a,isEnumValueChanged:s,onAdd:u,onEdit:r,onRemove:d}){const{t:m}=pt();return f.jsx(xn,{title:m("enum.title"),size:"small",extra:f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(tl,{}),onClick:u,children:m("enum.addValue")}),children:f.jsx(Ca,{dataSource:i.map((p,g)=>({...p,_idx:g,_key:`enum_${g}_${p.value||"new"}`})),rowKey:"_key",pagination:!1,size:"small",locale:{emptyText:m("enum.noValues")},rowClassName:p=>a(p._idx)?"row-new":s(p._idx)?"row-changed":"",columns:[{title:m("enum.value"),dataIndex:"value",key:"value",render:p=>f.jsx(ff,{strong:!0,code:!0,children:p})},{title:m("enum.label"),dataIndex:"label",key:"label",render:p=>p||f.jsx(ff,{type:"secondary",children:"-"})},{title:m("enum.extra"),key:"extra",width:120,render:(p,g)=>{const b=g.extra?Object.keys(g.extra).length:0;return b>0?f.jsx(Ta,{title:Object.entries(g.extra).map(([E,S])=>`${E}: ${S}`).join(", "),children:f.jsxs(Me,{color:"blue",children:[b," props"]})}):f.jsx(ff,{type:"secondary",children:"-"})}},{title:m("common.actions"),key:"actions",width:100,render:(p,g)=>f.jsxs(Ee,{children:[f.jsx(Ne,{type:"text",size:"small",icon:f.jsx(nl,{}),onClick:()=>r(g._idx)}),f.jsx(Rs,{title:m("enum.deleteConfirm"),onConfirm:()=>d(g._idx),okText:m("common.yes"),cancelText:m("common.no"),children:f.jsx(Ne,{type:"text",size:"small",danger:!0,icon:f.jsx(Oi,{})})})]})}]})})}function zS({displayProperties:i,columns:a,isPropertyNew:s,isPropertyChanged:u,onAdd:r}){const{t:d}=pt();return f.jsx(xn,{title:d("property.title"),size:"small",extra:f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(tl,{}),onClick:r,children:d("property.addProperty")}),children:f.jsx(Ca,{dataSource:i,columns:a,rowKey:"name",pagination:!1,size:"small",locale:{emptyText:d("property.noProperties")},rowClassName:m=>m._isVirtual||m._idx===void 0||m._idx<0?"":s(m._idx)?"row-new":u(m._idx)?"row-changed":""})})}function DS({indexes:i,columns:a,isIndexNew:s,isIndexChanged:u,onAdd:r,disableAdd:d}){const{t:m}=pt(),p=i.map((g,b)=>({...g,_idx:b,_key:`idx_${b}_${g.columns.join("_")}`}));return f.jsx(xn,{title:m("index.title"),size:"small",extra:f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(tl,{}),onClick:r,disabled:d,children:m("index.addIndex")}),children:f.jsx(Ca,{dataSource:p,columns:a,rowKey:"_key",pagination:!1,size:"small",locale:{emptyText:m("index.noIndexes")},rowClassName:g=>s(g._idx)?"row-new":u(g._idx)?"row-changed":""})})}function _S({value:i,onChange:a,error:s,height:u="500px",readOnly:r=!1}){const d=ee.useRef(null),m=ee.useRef(null),p=Il(b=>b.darkMode);ee.useEffect(()=>{if(!d.current)return;const b=[jb,Tb(),Pr.updateListener.of(S=>{S.docChanged&&a(S.state.doc.toString())}),Pr.lineWrapping,Eb.readOnly.of(r)];p&&b.push(Nb);const E=new Pr({doc:i,extensions:b,parent:d.current});return m.current=E,()=>{E.destroy(),m.current=null}},[p,r]);const g=ee.useCallback(b=>{if(m.current){const E=m.current.state.doc.toString();b!==E&&m.current.dispatch({changes:{from:0,to:m.current.state.doc.length,insert:b}})}},[]);return ee.useEffect(()=>{g(i)},[i,g]),f.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[f.jsx("div",{ref:d,style:{height:u,border:s?"1px solid #ff4d4f":"1px solid #d9d9d9",borderRadius:6,overflow:"auto"}}),s&&f.jsx("div",{style:{color:"#ff4d4f",fontSize:14},children:s})]})}function kS({schemaName:i,yamlContent:a,yamlError:s,onYamlChange:u}){const{t:r}=pt();return f.jsx(xn,{title:f.jsxs(Ee,{children:[f.jsx(ty,{}),r("schema.yamlEditor"),i&&f.jsxs(Me,{children:[i,".yaml"]})]}),size:"small",children:f.jsx(_S,{value:a,onChange:u,error:s,height:"calc(100vh - 200px)"})})}function BS({open:i,form:a,isNew:s,autoSingular:u,autoPlural:r,autoTableName:d,propertyNames:m,groupOptions:p,onOk:g,onCancel:b}){const{t:E}=pt(),{token:S}=Et.useToken(),C=P.useWatch("kind",a),w=P.useWatch("authenticatable",a);return f.jsx(ll,{title:E("schema.editSchema"),open:i,onOk:g,onCancel:b,okText:E("common.apply"),width:700,children:f.jsxs(P,{form:a,layout:"horizontal",labelCol:{span:6},wrapperCol:{span:18},style:{marginTop:S.margin},children:[f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 120px",gap:S.margin},children:[f.jsx(P.Item,{name:"name",label:E("schema.schemaName"),rules:[{required:!0,message:E("validation.required",{field:E("schema.schemaName")})}],children:f.jsx(Ke,{placeholder:"e.g., User, Post",disabled:!s})}),f.jsx(P.Item,{name:"displayName",label:E("schema.displayName"),children:f.jsx(Ke,{placeholder:"e.g., User Account"})}),f.jsx(P.Item,{name:"kind",label:E("schema.kind"),children:f.jsx(dt,{disabled:!s,options:[{value:"object",label:E("schema.kindObject")},{value:"enum",label:E("schema.kindEnum")}]})})]}),f.jsx(P.Item,{name:"group",label:E("schema.group"),children:f.jsx(pb,{options:p,placeholder:"e.g., auth, content, blog",filterOption:(U,A)=>(A==null?void 0:A.value.toLowerCase().includes(U.toLowerCase()))??!1})}),C==="object"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:S.margin},children:[f.jsx(P.Item,{name:"singular",label:E("schema.singular","Singular"),children:f.jsx(Ke,{placeholder:u?`${u} ${E("common.auto")}`:"e.g., user"})}),f.jsx(P.Item,{name:"plural",label:E("schema.plural","Plural"),children:f.jsx(Ke,{placeholder:r?`${r} ${E("common.auto")}`:"e.g., users"})}),f.jsx(P.Item,{name:"tableName",label:E("schema.tableName"),children:f.jsx(Ke,{placeholder:d?`${d} ${E("common.auto")}`:"e.g., users"})})]}),f.jsx(P.Item,{name:"titleIndex",label:E("schema.titleField"),children:f.jsx(dt,{allowClear:!0,options:m.map(U=>({value:U,label:U})),placeholder:E("schema.titleField")})}),f.jsx(Bc,{style:{margin:`${S.marginSM}px 0`}}),f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:S.margin},children:[f.jsx(P.Item,{name:"primaryKey",label:E("schema.primaryKey"),children:f.jsx(dt,{options:[{value:"BigInt",label:"BigInt"},{value:"Int",label:"Int"},{value:"Uuid",label:"UUID"},{value:"none",label:E("schema.noPrimaryKey")}]})}),f.jsx(P.Item,{name:"timestamps",valuePropName:"checked",label:" ",colon:!1,children:f.jsx($t,{children:E("schema.timestamps")})}),f.jsx(P.Item,{name:"softDelete",valuePropName:"checked",label:" ",colon:!1,children:f.jsx($t,{children:E("schema.softDelete")})})]}),f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:S.marginLG,marginTop:S.marginSM},children:[f.jsx(P.Item,{name:"translations",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:E("schema.translations")})}),f.jsx(P.Item,{name:"authenticatable",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:E("schema.authenticatable")})})]}),w&&f.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:S.margin,marginTop:S.margin,background:S.colorBgTextHover,padding:S.padding,borderRadius:S.borderRadius},children:[f.jsx(P.Item,{name:"authenticatableLoginIdField",label:E("schema.loginIdField"),style:{marginBottom:0},children:f.jsx(Ke,{placeholder:"email"})}),f.jsx(P.Item,{name:"authenticatablePasswordField",label:E("schema.passwordField"),style:{marginBottom:0},children:f.jsx(Ke,{placeholder:"password"})}),f.jsx(P.Item,{name:"authenticatableGuardName",label:E("schema.guardName"),style:{marginBottom:0},children:f.jsx(Ke,{placeholder:"web"})})]})]})]})})}const{Text:zn}=kn;function LS({open:i,form:a,editingIndex:s,customTypes:u,schemaNames:r,schemas:d,inlineEnumValues:m,pivotFields:p,onOk:g,onCancel:b,onAddEnumValue:E,onEditEnumValue:S,onRemoveEnumValue:C,onAddPivotField:w,onEditPivotField:U,onRemovePivotField:A}){const{t:v}=pt(),{token:x}=Et.useToken(),Y=P.useWatch("type",a),Q=P.useWatch("relation",a),J=P.useWatch("enum",a),Z=CS.includes(Y),$=OS.includes(Y),I=Y==="Decimal",W=Y==="Enum",oe=Y==="EnumRef",Be=Y==="Association",Xe=Y==="File",me=P.useWatch("multiple",a)??!1,Je=Q==="MorphTo",nt=["MorphOne","MorphMany","MorphedByMany"].includes(Q??""),St=["ManyToMany","MorphToMany"].includes(Q??""),H=Bp.includes(Q),F=()=>{var q;if(Y==="Enum")return m.map(G=>({value:G.value,label:G.label??G.value}));if(Y==="EnumRef"&&typeof J=="string"){const G=d[J];if((G==null?void 0:G.kind)==="enum")return((q=G.values)==null?void 0:q.map(le=>({value:le.value,label:le.label??le.value})))??[]}return[]},ae=()=>F().map(q=>q.value);return f.jsx(ll,{title:v(s!==null?"property.editProperty":"property.addProperty"),open:i,onOk:g,onCancel:b,okText:v(s!==null?"common.update":"common.add"),width:600,children:f.jsxs(P,{form:a,layout:"horizontal",labelCol:{span:6},wrapperCol:{span:18},style:{marginTop:x.margin},children:[f.jsx(P.Item,{name:"name",label:v("property.propertyName"),rules:[{required:!0,message:v("validation.required",{field:v("property.propertyName")})},{pattern:/^[a-zA-Z_][a-zA-Z0-9_]*$/,message:v("validation.invalidName")}],children:f.jsx(Ke,{placeholder:"e.g., email, firstName"})}),f.jsx(P.Item,{name:"type",label:v("common.type"),rules:[{required:!0,message:v("validation.required",{field:v("common.type")})}],children:f.jsx(dt,{options:[...lv.map(q=>({value:q,label:q})),...u.map(q=>({value:q,label:`${q} (Custom)`})),{value:"Association",label:"Association (Relation)"}],showSearch:!0})}),Z&&f.jsx(P.Item,{name:"length",label:v("property.maxLength"),children:f.jsx(va,{min:1,max:65535,placeholder:"255",style:{width:"100%"}})}),$&&I&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"precision",label:v("property.precision"),children:f.jsx(va,{min:1,max:65,placeholder:"8",style:{width:"100%"}})}),f.jsx(P.Item,{name:"scale",label:v("property.scale"),children:f.jsx(va,{min:0,max:30,placeholder:"2",style:{width:"100%"}})})]}),$&&f.jsx(P.Item,{name:"unsigned",valuePropName:"checked",wrapperCol:{offset:6,span:18},children:f.jsx($t,{children:v("property.positiveOnly")})}),Xe&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"multiple",valuePropName:"checked",wrapperCol:{offset:6,span:18},children:f.jsx($t,{children:v("property.multipleFiles","Allow multiple files")})}),me&&f.jsx(P.Item,{name:"maxFiles",label:v("property.maxFiles","Max files"),children:f.jsx(va,{min:1,max:100,placeholder:"10",style:{width:"100%"}})}),f.jsx(P.Item,{name:"accept",label:v("property.acceptedExtensions","Accepted extensions"),help:v("property.acceptedExtensionsHelp","Comma-separated, e.g.: jpg, png, pdf"),children:f.jsx(Ke,{placeholder:"jpg, png, pdf"})}),f.jsx(P.Item,{name:"maxSize",label:v("property.maxSize","Max size (KB)"),children:f.jsx(va,{min:1,max:102400,placeholder:"10240",style:{width:"100%"}})})]}),W&&f.jsxs("div",{style:{marginBottom:x.margin},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:x.marginXS},children:[f.jsx(zn,{strong:!0,children:v("property.inlineEnumValues","Inline Enum Values")}),f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(tl,{}),onClick:E,children:v("enum.addValue")})]}),f.jsx(Ca,{dataSource:m.map((q,G)=>({...q,_idx:G,_key:`inline_enum_${G}_${q.value||"new"}`})),rowKey:"_key",pagination:!1,size:"small",locale:{emptyText:v("enum.noValues")},columns:[{title:v("enum.value"),dataIndex:"value",key:"value",render:q=>f.jsx(zn,{strong:!0,code:!0,children:q})},{title:v("enum.label"),dataIndex:"label",key:"label",render:q=>q||f.jsx(zn,{type:"secondary",children:"-"})},{title:v("enum.extra"),key:"extra",width:80,render:(q,G)=>{const le=G.extra?Object.keys(G.extra).length:0;return le>0?f.jsx(Ta,{title:Object.entries(G.extra).map(([ce,se])=>`${ce}: ${se}`).join(", "),children:f.jsx(Me,{color:"blue",children:le})}):f.jsx(zn,{type:"secondary",children:"-"})}},{title:"",key:"actions",width:80,render:(q,G)=>f.jsxs(Ee,{size:"small",children:[f.jsx(Ne,{type:"text",size:"small",icon:f.jsx(nl,{}),onClick:()=>S(G._idx)}),f.jsx(Ne,{type:"text",size:"small",danger:!0,icon:f.jsx(Oi,{}),onClick:()=>C(G._idx)})]})}]}),m.length===0&&f.jsx(zn,{type:"secondary",style:{display:"block",marginTop:x.marginXS},children:v("property.inlineEnumHint","Add enum values with optional labels and extra properties.")})]}),oe&&f.jsx(P.Item,{name:"enum",label:v("property.enumSchemaRef","Enum Schema Reference"),rules:[{required:!0,message:v("validation.required",{field:"Enum schema"})}],children:f.jsx(dt,{placeholder:v("property.selectEnumSchema","Select enum schema"),options:r.filter(q=>{var G;return((G=d[q])==null?void 0:G.kind)==="enum"}).map(q=>({value:q,label:q})),showSearch:!0})}),Be&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"relation",label:v("association.relationType"),rules:[{required:!0,message:v("validation.required",{field:v("association.relationType")})}],children:f.jsxs(Wr.Group,{style:{width:"100%"},children:[f.jsx("div",{style:{marginBottom:8},children:f.jsx(zn,{type:"secondary",style:{fontSize:12},children:v("association.standardRelations")})}),f.jsx(Ee,{wrap:!0,size:8,style:{marginBottom:12},children:Bp.map(q=>{var G,le;return f.jsxs(Wr.Button,{value:q,style:{height:"auto",padding:"8px 16px",display:"flex",flexDirection:"column",alignItems:"center",minWidth:80},children:[f.jsx("div",{style:{fontSize:16,fontWeight:600,fontFamily:"monospace"},children:(G=Cc[q])==null?void 0:G.icon}),f.jsx("div",{style:{fontSize:11,marginTop:2},children:(le=Cc[q])==null?void 0:le.desc})]},q)})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx(zn,{type:"secondary",style:{fontSize:12},children:v("association.polymorphicRelations")})}),f.jsx(Ee,{wrap:!0,size:8,children:av.map(q=>{var G,le;return f.jsxs(Wr.Button,{value:q,style:{height:"auto",padding:"8px 12px",display:"flex",flexDirection:"column",alignItems:"center",minWidth:70},children:[f.jsx("div",{style:{fontSize:14,fontWeight:600,fontFamily:"monospace"},children:(G=Cc[q])==null?void 0:G.icon}),f.jsx("div",{style:{fontSize:10,marginTop:2},children:(le=Cc[q])==null?void 0:le.desc})]},q)})})]})}),H&&f.jsx(P.Item,{name:"target",label:v("association.targetSchema"),rules:[{required:!0,message:v("validation.required",{field:v("association.targetSchema")})}],children:f.jsx(dt,{options:r.map(q=>({value:q,label:q})),placeholder:"Select target schema",showSearch:!0})}),Je&&f.jsx(P.Item,{name:"targets",label:v("association.targetSchemas"),rules:[{required:!0,message:v("validation.selectAtLeastOne")}],children:f.jsx(dt,{mode:"multiple",options:r.map(q=>({value:q,label:q})),placeholder:v("association.targetSchemas")})}),nt&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"target",label:v("association.targetSchema"),rules:[{required:!0,message:v("validation.required",{field:v("association.targetSchema")})}],children:f.jsx(dt,{options:r.map(q=>({value:q,label:q})),placeholder:v("association.targetSchema"),showSearch:!0})}),f.jsx(P.Item,{name:"morphName",label:v("association.morphName"),rules:[{required:!0,message:v("validation.required",{field:v("association.morphName")})}],children:f.jsx(Ke,{placeholder:"e.g., commentable, taggable"})})]}),Q==="MorphToMany"&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"target",label:v("association.targetSchema"),rules:[{required:!0,message:v("validation.required",{field:v("association.targetSchema")})}],children:f.jsx(dt,{options:r.map(q=>({value:q,label:q})),placeholder:v("association.targetSchema"),showSearch:!0})}),f.jsx(P.Item,{name:"morphName",label:v("association.morphName"),children:f.jsx(Ke,{placeholder:"e.g., taggable"})})]}),f.jsx(Lc,{ghost:!0,items:[{key:"advanced",label:v("association.advancedOptions"),children:f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"inversedBy",label:v("association.inversedBy"),children:f.jsx(Ke,{placeholder:"Property on target"})}),f.jsx(P.Item,{name:"mappedBy",label:v("association.mappedBy"),children:f.jsx(Ke,{placeholder:"Property on target"})}),H&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"onDelete",label:v("association.onDelete"),children:f.jsx(dt,{allowClear:!0,options:Lp.map(q=>({value:q,label:q})),placeholder:"CASCADE"})}),f.jsx(P.Item,{name:"onUpdate",label:v("association.onUpdate"),children:f.jsx(dt,{allowClear:!0,options:Lp.map(q=>({value:q,label:q})),placeholder:"CASCADE"})})]}),St&&f.jsxs(f.Fragment,{children:[f.jsx(P.Item,{name:"joinTable",label:v("association.joinTable"),children:f.jsx(Ke,{placeholder:v("index.autoGenerated")})}),f.jsxs("div",{style:{marginBottom:x.margin},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:x.marginXS},children:[f.jsx(zn,{strong:!0,children:v("association.pivotFields","Pivot Fields")}),f.jsx(Ne,{type:"dashed",size:"small",icon:f.jsx(tl,{}),onClick:w,children:v("common.add")})]}),p.length>0?f.jsx(Ca,{dataSource:p.map((q,G)=>({...q,_idx:G,_key:`pivot_${G}_${q.name}`})),rowKey:"_key",pagination:!1,size:"small",columns:[{title:v("common.name"),dataIndex:"name",key:"name",render:q=>f.jsx(zn,{code:!0,children:q})},{title:v("common.type"),dataIndex:"type",key:"type",width:100},{title:v("common.options"),key:"options",width:100,render:(q,G)=>f.jsxs(Ee,{size:4,children:[G.nullable&&f.jsx(Me,{children:"nullable"}),G.default&&f.jsx(Me,{color:"blue",children:"default"})]})},{title:"",key:"actions",width:80,render:(q,G)=>f.jsxs(Ee,{size:"small",children:[f.jsx(Ne,{type:"text",size:"small",icon:f.jsx(nl,{}),onClick:()=>U(G._idx)}),f.jsx(Ne,{type:"text",size:"small",danger:!0,icon:f.jsx(Oi,{}),onClick:()=>A(G._idx)})]})}]}):f.jsx(zn,{type:"secondary",style:{display:"block",fontStyle:"italic"},children:v("association.noPivotFields","No pivot fields. Add extra columns to the pivot table (e.g., order, role, expires_at).")})]})]}),f.jsx(P.Item,{name:"owning",valuePropName:"checked",children:f.jsx($t,{children:v("association.owning")})})]})}]})]}),f.jsx(Bc,{style:{margin:`${x.marginSM}px 0`}}),f.jsx(P.Item,{wrapperCol:{offset:6,span:18},children:f.jsxs(Ee,{size:"large",wrap:!0,children:[f.jsx(P.Item,{name:"nullable",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:v("property.nullable")})}),f.jsx(P.Item,{name:"unique",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:v("property.unique")})}),f.jsx(P.Item,{name:"primaryKey",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:v("property.primaryKey")})}),$&&f.jsx(P.Item,{name:"autoIncrement",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:v("property.autoIncrement")})})]})}),f.jsx(P.Item,{name:"default",label:v("property.defaultValue"),style:{marginTop:x.margin},rules:[{validator:(q,G)=>{const le=Y==="Enum"||Y==="EnumRef"?{enum:ae()}:void 0,se=sv(Y==="EnumRef"?"Enum":Y,G,le);return!se.valid&&se.error?Promise.reject(new Error(se.error)):Promise.resolve()}}],children:Y==="Boolean"?f.jsx(dt,{allowClear:!0,placeholder:v("property.defaultPlaceholder"),options:[{value:"true",label:"true"},{value:"false",label:"false"}]}):["Int","BigInt"].includes(Y)?f.jsx(va,{style:{width:"100%"},placeholder:v("property.defaultPlaceholder"),precision:0}):["Float","Decimal"].includes(Y)?f.jsx(va,{style:{width:"100%"},placeholder:v("property.defaultPlaceholder")}):Y==="Enum"||Y==="EnumRef"?f.jsx(dt,{allowClear:!0,placeholder:v("property.defaultPlaceholder"),options:F()}):f.jsx(Ke,{placeholder:v("property.defaultPlaceholder")})}),f.jsx(P.Item,{name:"displayName",label:v("schema.displayName"),children:f.jsx(Ke,{placeholder:v("schema.displayName")})}),f.jsx(P.Item,{name:"description",label:v("property.description"),children:f.jsx(Ke.TextArea,{placeholder:v("property.descriptionPlaceholder"),rows:2})})]})})}function US({open:i,form:a,editingIndex:s,propertyNames:u,indexTypes:r,databaseType:d,onOk:m,onCancel:p}){const{t:g}=pt(),{token:b}=Et.useToken();return f.jsx(ll,{title:g(s!==null?"index.editIndex":"index.addIndex"),open:i,onOk:m,onCancel:p,okText:g(s!==null?"common.update":"common.add"),width:500,children:f.jsxs(P,{form:a,layout:"horizontal",labelCol:{span:6},wrapperCol:{span:18},style:{marginTop:b.margin},children:[f.jsx(P.Item,{name:"columns",label:g("index.columns"),rules:[{required:!0,message:g("validation.selectAtLeastOne")}],children:f.jsx(dt,{mode:"multiple",options:u.map(E=>({value:E,label:E})),placeholder:g("index.selectColumns")})}),f.jsx(P.Item,{name:"name",label:g("index.indexName"),children:f.jsx(Ke,{placeholder:g("index.autoGenerated")})}),r.length>0&&f.jsx(P.Item,{name:"type",label:`${g("index.indexType")} (${d})`,children:f.jsx(dt,{allowClear:!0,options:r.map(E=>({value:E,label:E.toUpperCase()})),placeholder:"Default: btree"})}),f.jsx(P.Item,{name:"unique",valuePropName:"checked",noStyle:!0,children:f.jsx($t,{children:g("index.uniqueIndex")})})]})})}const{Text:Zp}=kn;function qS({open:i,form:a,editingIndex:s,extraProps:u,onOk:r,onCancel:d,onAddExtraProp:m,onUpdateExtraProp:p,onRemoveExtraProp:g}){const{t:b}=pt(),{token:E}=Et.useToken();return f.jsx(ll,{title:b(s!==null?"common.edit":"enum.addValue"),open:i,onOk:r,onCancel:d,okText:b(s!==null?"common.update":"common.add"),width:500,children:f.jsxs(P,{form:a,layout:"horizontal",labelCol:{span:6},wrapperCol:{span:18},style:{marginTop:E.margin},children:[f.jsx(P.Item,{name:"value",label:b("common.name"),normalize:S=>(S==null?void 0:S.trim())??S,rules:[{required:!0,message:b("validation.required",{field:b("common.name")})},{validator:(S,C)=>C?iy(C)?Promise.resolve():Promise.reject(new Error(b("validation.invalidName"))):Promise.resolve()}],children:f.jsx(Ke,{placeholder:"e.g., ACTIVE, pending, InProgress"})}),f.jsx(P.Item,{name:"label",label:b("enum.displayLabel"),children:f.jsx(Ke,{placeholder:"e.g., Active Status, In Progress"})}),f.jsx(Bc,{style:{margin:`${E.marginSM}px 0`}}),f.jsxs("div",{style:{marginBottom:E.marginSM},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:E.marginXS},children:[f.jsx(Zp,{type:"secondary",children:b("enum.extraProperties","Extra Properties")}),f.jsx(Ne,{size:"small",icon:f.jsx(tl,{}),onClick:m,children:b("common.add")})]}),u.length===0?f.jsx(Zp,{type:"secondary",style:{fontStyle:"italic",display:"block"},children:b("enum.noExtraProperties","No extra properties. Add custom fields like bgColor, textColor, icon, order, etc.")}):f.jsx(Ee,{direction:"vertical",style:{width:"100%"},children:u.map((S,C)=>f.jsxs(Ee,{style:{width:"100%"},children:[f.jsx(Ke,{value:S.key,onChange:w=>p(C,"key",w.target.value),placeholder:"Key (e.g., bgColor)",style:{width:150}}),f.jsx(Ke,{value:S.value,onChange:w=>p(C,"value",w.target.value),placeholder:"Value (e.g., #ff0000)",style:{width:200}}),f.jsx(Ne,{type:"text",danger:!0,icon:f.jsx(zc,{}),onClick:()=>g(C)})]},C))})]})]})})}function RS({open:i,form:a,editingIndex:s,onOk:u,onCancel:r}){const{t:d}=pt(),{token:m}=Et.useToken();return f.jsx(ll,{title:s!==null?d("common.edit"):d("association.addPivotField","Add Pivot Field"),open:i,onOk:u,onCancel:r,okText:d(s!==null?"common.update":"common.add"),width:450,children:f.jsxs(P,{form:a,layout:"horizontal",labelCol:{span:6},wrapperCol:{span:18},style:{marginTop:m.margin},children:[f.jsx(P.Item,{name:"name",label:d("common.name"),rules:[{required:!0,message:d("validation.required",{field:d("common.name")})},{pattern:/^[a-z_][a-z0-9_]*$/,message:d("validation.snakeCase","Use snake_case (e.g., created_at)")}],children:f.jsx(Ke,{placeholder:"e.g., order, role, expires_at"})}),f.jsx(P.Item,{name:"type",label:d("common.type"),rules:[{required:!0,message:d("validation.required",{field:d("common.type")})}],children:f.jsx(dt,{options:iv.map(p=>({value:p,label:p}))})}),f.jsx(P.Item,{name:"nullable",valuePropName:"checked",children:f.jsx($t,{children:d("property.nullable")})}),f.jsx(P.Item,{name:"default",label:d("property.defaultValue"),children:f.jsx(Ke,{placeholder:d("property.defaultPlaceholder")})})]})})}function HS({open:i,onProceed:a,onReset:s}){const{t:u}=pt();return f.jsx(ll,{title:u("unsaved.title"),open:i,onOk:a,onCancel:s,okText:u("unsaved.leave"),cancelText:u("unsaved.stay"),okButtonProps:{danger:!0},children:f.jsx("p",{children:u("unsaved.message")})})}const{Text:Dn}=kn;function VS(){const{t:i}=pt(),{name:a}=$0(),[s]=Z0(),u=Ef(),{schemas:r,loading:d,createSchema:m,updateSchema:p,validateSchema:g}=Gl(),{databaseType:b,customTypes:E}=Il(),{token:S}=Et.useToken(),{message:C}=Af.useApp(),w=Gb[b],[U]=P.useForm(),[A]=P.useForm(),[v]=P.useForm(),[x,Y]=ee.useState({name:"",kind:"object",primaryKey:"BigInt",timestamps:!0,softDelete:!1}),[Q,J]=ee.useState([]),[Z,$]=ee.useState([]),[I,W]=ee.useState([]),[oe,Be]=ee.useState(!1),[Xe,me]=ee.useState(!1),[Je,nt]=ee.useState(null),[St,H]=ee.useState([]),[F,ae]=ee.useState([]),[q,G]=ee.useState([]),le=J0(Xe),ce=k=>{if(oe)return!0;const j=St[k],B=Q[k];return!j||!B?!0:JSON.stringify(j)!==JSON.stringify(B)},se=k=>k>=St.length,ge=k=>{if(oe)return!0;const j=F[k],B=Z[k];return!j||!B?!0:JSON.stringify(j)!==JSON.stringify(B)},Zt=k=>k>=F.length,Tn=k=>{if(oe)return!0;const j=q[k],B=I[k];return!j||!B?!0:JSON.stringify(j)!==JSON.stringify(B)},Ma=k=>k>=q.length,qt=x.name||"",rn=qt?qt.endsWith("y")?qt.slice(0,-1)+"ies":qt.endsWith("s")?qt+"es":qt+"s":"",za=rn?rn.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,""):"",[Da,al]=ee.useState(!1),[$s,Jt]=ee.useState(!1),[Ql,_a]=ee.useState(null),[Ic,Xl]=ee.useState(!1),[fn,ka]=ee.useState(null),[Bi,Ba]=ee.useState(!1),[il,xt]=ee.useState(null),[$l]=P.useForm(),[sl,ul]=ee.useState([]),[Zl,Zs]=ee.useState("shared"),[Rt,cl]=ee.useState([]),[dn,Ft]=ee.useState([]),[Nt,Ht]=ee.useState(!1),[ht,Js]=ee.useState(null),[Jl]=P.useForm(),[Fs,ol]=ee.useState("visual"),[Fl,rl]=ee.useState(""),[Bn,Ln]=ee.useState(null),pe=a&&a!=="new"?r[a]:null,Qc=Object.keys(r).filter(k=>k!==a),La=Q.map(k=>k.name).filter(Boolean),Li=[...new Set(Object.values(r).map(k=>k.group).filter(k=>!!k))].sort().map(k=>({value:k})),Wl=(k,j)=>{const B=I.map(X=>X.value),M=Up(k,B,j);return M.valid?null:M.error??"Invalid value"};ee.useEffect(()=>{var k,j,B,M,X,re,Ae,be,wt,Mt,zt,Nn;if(ol("visual"),rl(""),Ln(null),me(!1),a==="new"){Be(!0);const An={name:"",kind:s.get("kind")==="enum"?"enum":"object",primaryKey:"BigInt",timestamps:!0,softDelete:!1,authenticatableLoginIdField:"email",authenticatablePasswordField:"password",authenticatableGuardName:"web"};Y(An),J([]),$([]),W([]),U.setFieldsValue(An),al(!0)}else if(pe){Be(!1);const pl=((k=pe.options)==null?void 0:k.id)!==!1,ye=((j=pe.options)==null?void 0:j.idType)??"BigInt",An=pl?ye:"none",yl={name:pe.name,kind:pe.kind,displayName:pe.displayName,singular:pe.singular,plural:pe.plural,titleIndex:pe.titleIndex,group:pe.group,primaryKey:An,timestamps:((B=pe.options)==null?void 0:B.timestamps)??!0,softDelete:((M=pe.options)==null?void 0:M.softDelete)??!1,tableName:(X=pe.options)==null?void 0:X.tableName,translations:((re=pe.options)==null?void 0:re.translations)??!1,authenticatable:((Ae=pe.options)==null?void 0:Ae.authenticatable)??!1,authenticatableLoginIdField:((be=pe.options)==null?void 0:be.authenticatableLoginIdField)??"email",authenticatablePasswordField:((wt=pe.options)==null?void 0:wt.authenticatablePasswordField)??"password",authenticatableGuardName:((Mt=pe.options)==null?void 0:Mt.authenticatableGuardName)??"web"};Y(yl);const Tt=Object.entries(pe.properties??{}).map(([Re,De])=>({name:Re,type:De.type,nullable:De.nullable,unique:De.unique,primaryKey:De.primaryKey,autoIncrement:De.autoIncrement,default:De.default!==void 0?String(De.default):void 0,displayName:De.displayName,description:De.description,relation:De.relation,target:De.target,targets:De.targets,morphName:De.morphName,inversedBy:De.inversedBy,mappedBy:De.mappedBy,onDelete:De.onDelete,onUpdate:De.onUpdate,owning:De.owning,joinTable:De.joinTable,length:De.length,precision:De.precision,scale:De.scale,unsigned:De.unsigned,enum:De.enum,pivotFields:De.pivotFields}));J(Tt);const ta=(((zt=pe.options)==null?void 0:zt.indexes)??[]).map(Re=>({name:Re.name,columns:[...Re.columns],unique:Re.unique,type:Re.type}));let Ce=[];if((Nn=pe.options)!=null&&Nn.unique){const Re=pe.options.unique;Ce=(Array.isArray(Re[0])?Re:[Re]).map(Ki=>({columns:[...Ki],unique:!0}))}const cu=[...ta,...Ce];$(cu);const na=pe.values?[...pe.values]:[];W(na),nt({...yl}),H(Tt.map(Re=>({...Re}))),ae(cu.map(Re=>({...Re,columns:[...Re.columns]}))),G(na.map(Re=>({...Re})))}else nt(null),H([]),ae([]),G([])},[a,pe,U,s]);const Xc=async()=>{try{if(x.kind==="enum"){for(let B=0;B<I.length;B++){const M=I[B];if(!M)continue;const X=Wl(M.value,B);if(X){C.error(`Enum value ${B+1}: ${X}`);return}}if(I.length===0){C.error("Enum must have at least one value");return}}const k={};for(const B of Q){const M={type:B.type};B.nullable&&(M.nullable=B.nullable),B.unique&&(M.unique=B.unique),B.default!==void 0&&B.default!==""&&(M.default=B.default),B.displayName&&(M.displayName=B.displayName),B.description&&(M.description=B.description),B.relation&&(M.relation=B.relation),B.target&&(M.target=B.target),B.targets&&B.targets.length>0&&(M.targets=B.targets),B.morphName&&(M.morphName=B.morphName),B.inversedBy&&(M.inversedBy=B.inversedBy),B.mappedBy&&(M.mappedBy=B.mappedBy),B.onDelete&&(M.onDelete=B.onDelete),B.onUpdate&&(M.onUpdate=B.onUpdate),B.owning!==void 0&&(M.owning=B.owning),B.joinTable&&(M.joinTable=B.joinTable),B.length!==void 0&&(M.length=B.length),B.precision!==void 0&&(M.precision=B.precision),B.scale!==void 0&&(M.scale=B.scale),B.unsigned&&(M.unsigned=B.unsigned),B.enum&&(M.enum=B.enum),B.pivotFields&&Object.keys(B.pivotFields).length>0&&(M.pivotFields=B.pivotFields),k[B.name]=M}const j={name:x.name,kind:x.kind,filePath:pe==null?void 0:pe.filePath,relativePath:pe==null?void 0:pe.relativePath};x.displayName&&(j.displayName=x.displayName),x.singular&&(j.singular=x.singular),x.plural&&(j.plural=x.plural),x.titleIndex&&(j.titleIndex=x.titleIndex),x.group&&(j.group=x.group),x.kind==="enum"?j.values=I:j.properties=k,j.options={},x.primaryKey==="none"?j.options.id=!1:x.primaryKey&&x.primaryKey!=="BigInt"&&(j.options.idType=x.primaryKey),x.timestamps===!1&&(j.options.timestamps=!1),x.softDelete&&(j.options.softDelete=!0),x.tableName&&(j.options.tableName=x.tableName),x.translations&&(j.options.translations=x.translations),x.authenticatable&&(j.options.authenticatable=!0,x.authenticatableLoginIdField&&(j.options.authenticatableLoginIdField=x.authenticatableLoginIdField),x.authenticatablePasswordField&&(j.options.authenticatablePasswordField=x.authenticatablePasswordField),x.authenticatableGuardName&&(j.options.authenticatableGuardName=x.authenticatableGuardName)),Z.length>0&&(j.options.indexes=Z.map(B=>({columns:B.columns,unique:B.unique,name:B.name,type:B.type}))),await g(j),oe?(await m(j),C.success(`Schema "${x.name}" created`),me(!1),nt({...x}),H(Q.map(B=>({...B}))),ae(Z.map(B=>({...B,columns:[...B.columns]}))),G(I.map(B=>({...B}))),u(`/schema/${x.name}`)):(await p(a,j),C.success(`Schema "${x.name}" saved`),me(!1),nt({...x}),H(Q.map(B=>({...B}))),ae(Z.map(B=>({...B,columns:[...B.columns]}))),G(I.map(B=>({...B}))))}catch(k){C.error(k.message)}},Ws=()=>{const k={};for(const M of Q){const X={type:M.type};M.nullable&&(X.nullable=M.nullable),M.unique&&(X.unique=M.unique),M.default!==void 0&&M.default!==""&&(X.default=M.default),M.displayName&&(X.displayName=M.displayName),M.description&&(X.description=M.description),M.relation&&(X.relation=M.relation),M.target&&(X.target=M.target),M.targets&&M.targets.length>0&&(X.targets=M.targets),M.morphName&&(X.morphName=M.morphName),M.inversedBy&&(X.inversedBy=M.inversedBy),M.mappedBy&&(X.mappedBy=M.mappedBy),M.onDelete&&(X.onDelete=M.onDelete),M.onUpdate&&(X.onUpdate=M.onUpdate),M.owning!==void 0&&(X.owning=M.owning),M.joinTable&&(X.joinTable=M.joinTable),M.length!==void 0&&(X.length=M.length),M.precision!==void 0&&(X.precision=M.precision),M.scale!==void 0&&(X.scale=M.scale),M.unsigned&&(X.unsigned=M.unsigned),M.primaryKey&&(X.primaryKey=M.primaryKey),M.autoIncrement&&(X.autoIncrement=M.autoIncrement),M.enum&&(X.enum=M.enum),M.pivotFields&&Object.keys(M.pivotFields).length>0&&(X.pivotFields=M.pivotFields),M.multiple&&(X.multiple=M.multiple),M.maxFiles&&(X.maxFiles=M.maxFiles),M.accept&&M.accept.length>0&&(X.accept=M.accept),M.maxSize&&(X.maxSize=M.maxSize),k[M.name]=X}const j={name:x.name,kind:x.kind};x.displayName&&(j.displayName=x.displayName),x.singular&&(j.singular=x.singular),x.plural&&(j.plural=x.plural),x.titleIndex&&(j.titleIndex=x.titleIndex),x.group&&(j.group=x.group),x.kind==="enum"?j.values=I:j.properties=k;const B=x.primaryKey!=="none";return j.options={},B||(j.options.id=!1),B&&x.primaryKey!=="BigInt"&&(j.options.idType=x.primaryKey),x.timestamps===!1&&(j.options.timestamps=!1),x.softDelete&&(j.options.softDelete=!0),x.tableName&&(j.options.tableName=x.tableName),x.translations&&(j.options.translations=x.translations),x.authenticatable&&(j.options.authenticatable=!0,x.authenticatableLoginIdField&&(j.options.authenticatableLoginIdField=x.authenticatableLoginIdField),x.authenticatablePasswordField&&(j.options.authenticatablePasswordField=x.authenticatablePasswordField),x.authenticatableGuardName&&(j.options.authenticatableGuardName=x.authenticatableGuardName)),Z.length>0&&(j.options.indexes=Z.map(M=>({columns:M.columns,unique:M.unique,name:M.name,type:M.type}))),j},Ps=k=>{var j,B,M,X,re,Ae,be,wt,Mt,zt,Nn,pl;if(k==="code"){const ye=Ws(),An=NS(ye);rl(An),Ln(null),ol("code")}else try{const ye=AS(Fl,x.name);if(Y({name:x.name,kind:ye.kind,displayName:ye.displayName,singular:ye.singular,plural:ye.plural,titleIndex:ye.titleIndex,group:ye.group,primaryKey:((j=ye.options)==null?void 0:j.id)===!1?"none":((B=ye.options)==null?void 0:B.idType)??"BigInt",timestamps:((M=ye.options)==null?void 0:M.timestamps)??!0,softDelete:((X=ye.options)==null?void 0:X.softDelete)??!1,tableName:(re=ye.options)==null?void 0:re.tableName,translations:(Ae=ye.options)==null?void 0:Ae.translations,authenticatable:(be=ye.options)==null?void 0:be.authenticatable,authenticatableLoginIdField:(wt=ye.options)==null?void 0:wt.authenticatableLoginIdField,authenticatablePasswordField:(Mt=ye.options)==null?void 0:Mt.authenticatablePasswordField,authenticatableGuardName:(zt=ye.options)==null?void 0:zt.authenticatableGuardName}),ye.properties){const Tt=Object.entries(ye.properties).map(([ta,Ce])=>({name:ta,type:Ce.type,nullable:Ce.nullable,unique:Ce.unique,default:Ce.default!==void 0?String(Ce.default):void 0,displayName:Ce.displayName,description:Ce.description,relation:Ce.relation,target:Ce.target,targets:Ce.targets,morphName:Ce.morphName,inversedBy:Ce.inversedBy,mappedBy:Ce.mappedBy,onDelete:Ce.onDelete,onUpdate:Ce.onUpdate,owning:Ce.owning,joinTable:Ce.joinTable,length:Ce.length,precision:Ce.precision,scale:Ce.scale,unsigned:Ce.unsigned,enum:Ce.enum,pivotFields:Ce.pivotFields,multiple:Ce.multiple,maxFiles:Ce.maxFiles,accept:Ce.accept,maxSize:Ce.maxSize}));J(Tt)}else J([]);ye.values?W(ye.values):W([]);const An=(((Nn=ye.options)==null?void 0:Nn.indexes)??[]).map(Tt=>({columns:[...Tt.columns],unique:Tt.unique,name:Tt.name,type:Tt.type}));let yl=[];(pl=ye.options)!=null&&pl.unique&&(yl=ye.options.unique.map(Tt=>({columns:Array.isArray(Tt)?[...Tt]:[Tt],unique:!0}))),$([...An,...yl]),Ln(null),ol("visual")}catch(ye){Ln(ye instanceof Error?ye.message:"Invalid YAML syntax")}},eu=()=>{U.setFieldsValue(x),al(!0)},Ui=async()=>{try{const k=await U.validateFields();Y({...x,...k}),al(!1),me(!0)}catch{}},qi=()=>{_a(null),A.resetFields(),A.setFieldsValue({type:"String",nullable:!1,unique:!1}),cl([]),Ft([]),Jt(!0)},tu=k=>{_a(k);const j=Q[k];if(!j)return;if(j.type==="Enum"&&Array.isArray(j.enum)){const M=j.enum.map(X=>{if(typeof X=="string")return{value:X};if(typeof X=="object"&&X!==null&&"value"in X){const re=X;return{value:re.value,label:re.label,extra:re.extra}}return{value:String(X)}});cl(M)}else cl([]);const B={...j,enum:j.type==="EnumRef"&&typeof j.enum=="string"?j.enum:void 0,accept:j.type==="File"&&Array.isArray(j.accept)?j.accept.join(", "):void 0};if(A.setFieldsValue(B),j.type==="Association"&&j.pivotFields){const M=Object.entries(j.pivotFields).map(([X,re])=>({name:X,type:re.type,nullable:re.nullable,default:re.default!==void 0?String(re.default):void 0}));Ft(M)}else Ft([]);Jt(!0)},nu=async()=>{var k;try{const j=await A.validateFields();if(j.type==="Enum"){if(Rt.length===0){C.error("Enum must have at least one value");return}for(let M=0;M<Rt.length;M++){const X=Rt[M];if(!((k=X==null?void 0:X.value)!=null&&k.trim())){C.error(`Enum value ${M+1}: Value is required`);return}}}const B={name:j.name,type:j.type,nullable:j.nullable,unique:j.unique,default:j.default,displayName:j.displayName,description:j.description,relation:j.relation,target:j.target,targets:j.targets,morphName:j.morphName,inversedBy:j.inversedBy,mappedBy:j.mappedBy,onDelete:j.onDelete,onUpdate:j.onUpdate,owning:j.owning,joinTable:j.joinTable,length:j.length,precision:j.precision,scale:j.scale,unsigned:j.unsigned,enum:j.type==="Enum"?Rt:j.enum,pivotFields:j.type==="Association"&&["ManyToMany","MorphToMany"].includes(j.relation)&&dn.length>0?dn.reduce((M,X)=>({...M,[X.name]:{type:X.type,...X.nullable?{nullable:!0}:{},...X.default?{default:X.default}:{}}}),{}):void 0,multiple:j.type==="File"?j.multiple:void 0,maxFiles:j.type==="File"&&j.multiple?j.maxFiles:void 0,accept:j.type==="File"&&typeof j.accept=="string"&&j.accept.trim()?j.accept.split(",").map(M=>M.trim()).filter(Boolean):void 0,maxSize:j.type==="File"?j.maxSize:void 0};if(Ql!==null){const M=[...Q];M[Ql]=B,J(M)}else J([...Q,B]);Jt(!1),me(!0)}catch{}},En=k=>{J(Q.filter((j,B)=>B!==k)),me(!0)},ot=()=>{ka(null),v.resetFields(),v.setFieldsValue({unique:!1}),Xl(!0)},jt=k=>{ka(k);const j=Z[k];v.setFieldsValue(j),Xl(!0)},hn=(k,j,B,M)=>{if(B)return B;const X=x.tableName||x.name.toLowerCase(),re=k.join("_"),Ae=j?"unique":"idx",be=M!==void 0?`_${M+1}`:"",wt=`${X}_${re}_${Ae}${be}`;return wt.length>64?wt.slice(0,64):wt},Ri=async()=>{try{const k=await v.validateFields(),j={name:k.name||void 0,columns:k.columns,unique:k.unique,type:k.type||void 0},B=fn!==null?fn:Z.length,M=hn(j.columns,j.unique,j.name,B);if(Z.findIndex((re,Ae)=>fn!==null&&Ae===fn?!1:hn(re.columns,re.unique,re.name,Ae)===M)!==-1){C.error(i("index.duplicateName",{name:M}));return}if(fn!==null){const re=[...Z];re[fn]=j,$(re)}else $([...Z,j]);Xl(!1),me(!0)}catch{}},$c=k=>{$(Z.filter((j,B)=>B!==k)),me(!0)},lu=(k="shared")=>{Zs(k),xt(null),$l.resetFields(),$l.setFieldsValue({value:"",label:""}),ul([]),Ba(!0)},Hi=(k,j="shared")=>{Zs(j),xt(k);const M=(j==="shared"?I:Rt)[k];if(!M)return;$l.setFieldsValue({value:M.value,label:M.label??""});const X=M.extra?Object.entries(M.extra).map(([re,Ae])=>({key:re,value:String(Ae)})):[];ul(X),Ba(!0)},Pl=async()=>{try{const k=await $l.validateFields(),j=Zl==="shared"?I:Rt,B=j.map(be=>be.value),M=il??j.length,X=Up(k.value,B,M);if(!X.valid){C.error(X.error??"Invalid value");return}const re={};for(const be of sl)be.key.trim()&&(re[be.key.trim()]=be.value);const Ae={value:k.value,label:k.label||void 0,extra:Object.keys(re).length>0?re:void 0};if(Zl==="shared"){if(il!==null){const be=[...I];be[il]=Ae,W(be)}else W([...I,Ae]);me(!0)}else if(il!==null){const be=[...Rt];be[il]=Ae,cl(be)}else cl([...Rt,Ae]);Ba(!1)}catch{}},Ua=(k,j="shared")=>{j==="shared"?(W(I.filter((B,M)=>M!==k)),me(!0)):cl(Rt.filter((B,M)=>M!==k))},fl=()=>{ul([...sl,{key:"",value:""}])},dl=(k,j,B)=>{const M=[...sl],X=M[k];X&&(M[k]={...X,[j]:B},ul(M))},ea=k=>{ul(sl.filter((j,B)=>B!==k))},hl=()=>{Js(null),Jl.resetFields(),Jl.setFieldsValue({name:"",type:"String",nullable:!1,default:""}),Ht(!0)},lt=k=>{Js(k);const j=dn[k];j&&(Jl.setFieldsValue({name:j.name,type:j.type,nullable:j.nullable??!1,default:j.default??""}),Ht(!0))},au=async()=>{try{const k=await Jl.validateFields(),j=dn.map(X=>X.name),B=ht??dn.length;if(j.some((X,re)=>re!==B&&X===k.name)){C.error(i("validation.duplicate",{field:k.name}));return}const M={name:k.name,type:k.type,nullable:k.nullable||void 0,default:k.default||void 0};if(ht!==null){const X=[...dn];X[ht]=M,Ft(X)}else Ft([...dn,M]);Ht(!1)}catch{}},iu=k=>{Ft(dn.filter((j,B)=>B!==k))};if(d&&!pe&&a!=="new")return f.jsx("div",{style:{textAlign:"center",padding:S.paddingXL},children:f.jsx(Aa,{size:"large"})});const mn=x.kind==="object",ml=Q.some(k=>k.name==="id"),su=x.primaryKey??"BigInt",Vi=mn&&su!=="none"&&!ml,uu=[...Vi?[{name:"id",type:su==="Uuid"?"Uuid":"Id",displayName:i("schema.fieldId"),nullable:!1,unique:!0,_isVirtual:!0,_idx:-1}]:[],...Q.map((k,j)=>({...k,_idx:j})),...mn&&x.timestamps!==!1?[{name:"created_at",type:"Timestamp",displayName:i("schema.fieldCreatedAt"),nullable:!0,_isVirtual:!0,_idx:-2},{name:"updated_at",type:"Timestamp",displayName:i("schema.fieldUpdatedAt"),nullable:!0,_isVirtual:!0,_idx:-3}]:[],...mn&&x.softDelete?[{name:"deleted_at",type:"Timestamp",displayName:i("schema.fieldDeletedAt"),nullable:!0,_isVirtual:!0,_idx:-4}]:[]],Zc=k=>{const j=k.type;if(j==="Id")return"BIGINT (PK)";if(j==="Uuid")return"UUID (PK)";if(j==="String"||j==="Email"||j==="Password")return k.length?`VARCHAR(${k.length})`:"VARCHAR(255)";if(j==="Text")return"TEXT";if(j==="LongText")return"LONGTEXT";if(j==="Int")return k.unsigned?"INT UNSIGNED":"INT";if(j==="BigInt")return k.unsigned?"BIGINT UNSIGNED":"BIGINT";if(j==="Float")return k.unsigned?"FLOAT UNSIGNED":"FLOAT";if(j==="Decimal"){const B=k.precision??8,M=k.scale??2;return k.unsigned?`DECIMAL(${B},${M}) UNSIGNED`:`DECIMAL(${B},${M})`}if(j==="Boolean")return"BOOLEAN";if(j==="Date")return"DATE";if(j==="Time")return"TIME";if(j==="Timestamp")return"TIMESTAMP";if(j==="Json")return"JSON";if(j==="Enum")return"ENUM";if(j==="EnumRef"){const B=k.enum;return typeof B=="string"?`ENUM(${B})`:"ENUM_REF"}return j==="Association"?i("schema.typeAssociation"):j.toUpperCase()},qa=(k,j)=>{const B=[],M=k==="id"&&Vi;M&&B.push({type:"pk",columns:["id"]}),j.unique&&!M&&B.push({type:"unique",columns:[k],isInline:!0});for(let X=0;X<Z.length;X++){const re=Z[X];if(re&&re.columns.includes(k)){if(M&&re.unique&&re.columns.length===1)continue;B.push({type:re.unique?"unique":"index",name:re.name,indexPosition:X,columns:re.columns})}}return B},Ra=[{title:i("common.name"),dataIndex:"name",key:"name",width:200,render:(k,j)=>{const B=qa(k,j),M=B.some(be=>be.type==="pk"),X=B.some(be=>be.type==="unique"),re=M?"#faad14":X?"#fa8c16":"#8c8c8c",Ae=B.length>0?f.jsx("div",{children:B.map((be,wt)=>{let Mt;if(be.type==="pk")Mt="PRIMARY KEY (AUTO_INCREMENT)";else if(be.isInline)Mt="UNIQUE (field property)";else{const zt=be.type==="unique"?"UNIQUE":"INDEX",Nn=hn(be.columns,be.type==="unique",be.name,be.indexPosition);Mt=`${zt} "${Nn}": (${be.columns.join(", ")})`}return f.jsx("div",{style:{whiteSpace:"nowrap"},children:Mt},wt)})}):null;return f.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:4},children:[f.jsxs("div",{style:{flex:1},children:[f.jsx(Dn,{strong:!0,children:k}),j.displayName&&f.jsx("div",{children:f.jsx(Dn,{type:"secondary",children:j.displayName})})]}),B.length>0&&f.jsx(Ta,{title:Ae,children:f.jsx(Ep,{style:{color:re,fontSize:14,cursor:"pointer"}})})]})}},{title:i("common.type"),dataIndex:"type",key:"type",width:150,render:(k,j)=>j.type==="Association"&&j.relation?f.jsxs(f.Fragment,{children:[i("schema.typeAssociation"),f.jsx("br",{}),f.jsx(Dn,{type:"secondary",style:{fontSize:12},children:j.relation})]}):Zc(j)},{title:i("common.options"),key:"settings",width:180,render:(k,j)=>{if(j._isVirtual)return j.name==="id"?f.jsxs(Ee,{size:4,wrap:!0,children:[f.jsx(Me,{color:"gold",children:"PK"}),j.type==="Id"&&f.jsx(Ta,{title:"Auto Increment",children:f.jsx(Me,{color:"green",children:"AI"})})]}):null;const B=j.type==="Association"&&j.onDelete,M=j.type==="Association"&&j.onUpdate;return f.jsxs(Ee,{size:4,wrap:!0,children:[!j.nullable&&f.jsx(Ta,{title:"NOT NULL",children:f.jsx(Me,{color:"red",children:"NN"})}),j.unique&&f.jsx(Me,{color:"blue",children:"unique"}),j.unsigned&&f.jsx(Me,{children:"unsigned"}),(B||M)&&f.jsx(Ta,{title:f.jsxs("div",{children:[B&&f.jsxs("div",{children:["onDelete: ",j.onDelete]}),M&&f.jsxs("div",{children:["onUpdate: ",j.onUpdate]})]}),children:f.jsx(Me,{color:"volcano",style:{cursor:"pointer"},children:j.onDelete===j.onUpdate?j.onDelete:`${j.onDelete||"-"}/${j.onUpdate||"-"}`})})]})}},{title:i("property.references","References"),key:"references",width:180,render:(k,j)=>{if(j.type!=="Association")return f.jsx(Dn,{type:"secondary",children:"-"});const B=j.inversedBy||j.mappedBy;return j.target?f.jsxs("div",{children:[f.jsxs("div",{children:["→ ",f.jsx("a",{onClick:()=>u(`/schema/${j.target}`),children:j.target})]}),B&&f.jsxs(Dn,{type:"secondary",style:{fontSize:12},children:[".",B]})]}):j.targets&&j.targets.length>0?f.jsxs("span",{children:["→ [",j.targets.map((M,X)=>f.jsxs("span",{children:[X>0&&", ",f.jsx("a",{onClick:()=>u(`/schema/${M}`),children:M})]},M)),"]"]}):f.jsx(Dn,{type:"secondary",children:"-"})}},{title:i("property.defaultValue"),key:"default",width:120,render:(k,j)=>j.default!==void 0&&j.default!==""?j.default:f.jsx(Dn,{type:"secondary",children:"-"})},{title:i("common.actions"),key:"actions",width:80,render:(k,j)=>j._isVirtual||j._idx===void 0||j._idx<0?f.jsx(Dn,{type:"secondary",children:"-"}):f.jsxs(Ee,{children:[f.jsx(Ne,{type:"text",size:"small",icon:f.jsx(nl,{}),onClick:()=>tu(j._idx)}),f.jsx(Rs,{title:i("property.deleteConfirm"),onConfirm:()=>En(j._idx),okText:i("common.yes"),cancelText:i("common.no"),children:f.jsx(Ne,{type:"text",size:"small",danger:!0,icon:f.jsx(Oi,{})})})]})}],pn=[{title:i("index.columns"),dataIndex:"columns",key:"columns",render:k=>f.jsx(Ee,{size:"small",children:k.map(j=>f.jsx(Me,{icon:f.jsx(Ep,{}),children:j},j))})},{title:i("common.name"),dataIndex:"name",key:"name",ellipsis:!0,render:(k,j)=>f.jsx(Dn,{type:"secondary",children:hn(j.columns,j.unique,k,j._idx)})},{title:i("common.type"),dataIndex:"type",key:"type",width:120,render:k=>k?f.jsx(Me,{color:"blue",children:k}):f.jsx(Dn,{type:"secondary",children:"-"})},{title:i("property.settings"),key:"settings",width:120,render:(k,j)=>f.jsx(Ee,{size:"small",children:j.unique&&f.jsx(Me,{color:"orange",children:i("property.unique")})})},{title:i("common.actions"),key:"actions",width:80,render:(k,j)=>f.jsxs(Ee,{children:[f.jsx(Ne,{type:"text",size:"small",icon:f.jsx(nl,{}),onClick:()=>jt(j._idx)}),f.jsx(Rs,{title:i("index.deleteConfirm"),onConfirm:()=>$c(j._idx),okText:i("common.yes"),cancelText:i("common.no"),children:f.jsx(Ne,{type:"text",size:"small",danger:!0,icon:f.jsx(Oi,{})})})]})}],rt=[];return x.primaryKey&&x.primaryKey!=="none"&&rt.push(f.jsxs(Me,{color:"blue",children:["ID: ",x.primaryKey]},"id")),x.timestamps&&rt.push(f.jsx(Me,{color:"green",children:"Timestamps"},"ts")),x.softDelete&&rt.push(f.jsx(Me,{color:"orange",children:"Soft Delete"},"sd")),x.translations&&rt.push(f.jsx(Me,{color:"purple",children:"Translations"},"tr")),x.authenticatable&&rt.push(f.jsx(Me,{color:"red",children:"Authenticatable"},"auth")),f.jsxs("div",{children:[f.jsxs("div",{style:{marginBottom:S.margin,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[f.jsx(Ne,{size:"small",icon:f.jsx(yb,{}),onClick:()=>u("/"),children:"Back"}),f.jsx(gb,{size:"small",options:[{label:i("schema.visualMode"),value:"visual",icon:f.jsx(bb,{})},{label:i("schema.codeMode"),value:"code",icon:f.jsx(ty,{})}],value:Fs,onChange:k=>Ps(k)}),f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(ny,{}),onClick:Xc,children:oe?"Create Schema":"Save Changes"})]}),Fs==="visual"?f.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:S.margin},children:[f.jsx(wS,{schemaData:{name:x.name,displayName:x.displayName,kind:x.kind,singular:x.singular,plural:x.plural,group:x.group,tableName:x.tableName,titleIndex:x.titleIndex,authenticatable:x.authenticatable,authenticatableLoginIdField:x.authenticatableLoginIdField,authenticatablePasswordField:x.authenticatablePasswordField,authenticatableGuardName:x.authenticatableGuardName},isNew:oe,autoSingular:qt,autoPlural:rn,autoTableName:za,optionsTags:rt,onEdit:eu}),x.kind==="enum"&&f.jsx(MS,{enumValues:I,isEnumValueNew:Ma,isEnumValueChanged:Tn,onAdd:()=>lu("shared"),onEdit:k=>Hi(k,"shared"),onRemove:k=>Ua(k,"shared")}),x.kind==="object"&&f.jsx(zS,{displayProperties:uu,columns:Ra,isPropertyNew:se,isPropertyChanged:ce,onAdd:qi}),x.kind==="object"&&f.jsx(DS,{indexes:Z,columns:pn,isIndexNew:Zt,isIndexChanged:ge,onAdd:ot,disableAdd:La.length===0})]}):f.jsx(kS,{schemaName:x.name,yamlContent:Fl,yamlError:Bn,onYamlChange:k=>{rl(k),me(!0)}}),f.jsx(BS,{open:Da,form:U,isNew:oe,autoSingular:qt,autoPlural:rn,autoTableName:za,propertyNames:La,groupOptions:Li,onOk:Ui,onCancel:()=>al(!1)}),f.jsx(LS,{open:$s,form:A,editingIndex:Ql,customTypes:E,schemaNames:Qc,schemas:r,inlineEnumValues:Rt,pivotFields:dn,onOk:nu,onCancel:()=>Jt(!1),onAddEnumValue:()=>lu("inline"),onEditEnumValue:k=>Hi(k,"inline"),onRemoveEnumValue:k=>Ua(k,"inline"),onAddPivotField:hl,onEditPivotField:lt,onRemovePivotField:iu}),f.jsx(US,{open:Ic,form:v,editingIndex:fn,propertyNames:La,indexTypes:w,databaseType:b,onOk:Ri,onCancel:()=>Xl(!1)}),f.jsx(qS,{open:Bi,form:$l,editingIndex:il,extraProps:sl,onOk:Pl,onCancel:()=>Ba(!1),onAddExtraProp:fl,onUpdateExtraProp:dl,onRemoveExtraProp:ea}),f.jsx(RS,{open:Nt,form:Jl,editingIndex:ht,onOk:au,onCancel:()=>Ht(!1)}),f.jsx(HS,{open:le.state==="blocked",onProceed:()=>{var k;return(k=le.proceed)==null?void 0:k.call(le)},onReset:()=>{var k;return(k=le.reset)==null?void 0:k.call(le)}})]})}const{Title:KS,Text:_s}=kn,{Panel:YS}=Lc;function GS(){const{t:i}=pt(),{token:a}=Et.useToken(),[s,u]=ee.useState([]),[r,d]=ee.useState(!0),[m,p]=ee.useState(null),[g,b]=ee.useState(null),[E,S]=ee.useState(!1),[C,w]=ee.useState(!1),[U,A]=ee.useState(null),[v,x]=ee.useState(null);ee.useEffect(()=>{Y()},[]);const Y=async()=>{d(!0),p(null);try{const $=await Kl.getAll();u($.reverse())}catch($){p($.message)}finally{d(!1)}},Q=async $=>{try{const I=await Kl.get($);b(I),S(!0)}catch(I){p(I.message)}},J=async($,I)=>{try{const W=await Kl.getDiff($,I);A(W),x({from:$,to:I}),w(!0)}catch(W){p(W.message)}},Z=[{title:i("history.version"),dataIndex:"version",key:"version",width:100,render:$=>f.jsx(Ci,{count:`v${$}`,style:{backgroundColor:a.colorPrimary}})},{title:i("history.migration"),dataIndex:"migration",key:"migration",ellipsis:!0,render:$=>$||f.jsx(_s,{type:"secondary",children:"-"})},{title:i("history.description"),dataIndex:"description",key:"description",ellipsis:!0,render:$=>$||f.jsx(_s,{type:"secondary",children:"-"})},{title:i("home.title"),dataIndex:"schemaCount",key:"schemaCount",width:100,align:"center",render:$=>f.jsx(Me,{children:$})},{title:i("history.changes"),dataIndex:"changeCount",key:"changeCount",width:100,align:"center",render:$=>f.jsx(Me,{color:$>0?"blue":"default",children:$})},{title:i("history.timestamp"),dataIndex:"timestamp",key:"timestamp",width:180,render:$=>new Date($).toLocaleString()},{title:i("common.actions"),key:"actions",width:150,render:($,I)=>f.jsxs(Ee,{children:[f.jsx(Ne,{type:"text",icon:f.jsx(vb,{}),onClick:()=>Q(I.version)}),I.version>1&&f.jsx(Ne,{type:"text",icon:f.jsx(Ai,{}),onClick:()=>J(I.version-1,I.version)})]})}];return r?f.jsx("div",{style:{textAlign:"center",padding:a.paddingXL},children:f.jsx(Aa,{size:"large"})}):f.jsxs("div",{children:[f.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:a.margin},children:f.jsxs(KS,{level:3,style:{margin:0},children:[f.jsx(df,{style:{marginRight:8}}),i("history.title")]})}),m&&f.jsx(Nf,{message:i("error.title"),description:m,type:"error",showIcon:!0,closable:!0,style:{marginBottom:a.margin},onClose:()=>p(null)}),s.length===0?f.jsx(Vl,{image:Vl.PRESENTED_IMAGE_SIMPLE,description:i("history.noVersions")}):f.jsx(Ca,{columns:Z,dataSource:s,rowKey:"version",pagination:{pageSize:10}}),f.jsx(ll,{title:f.jsxs(Ee,{children:[f.jsx(df,{}),f.jsxs("span",{children:[i("history.versionDetail")," ",g==null?void 0:g.version]})]}),open:E,onCancel:()=>S(!1),footer:null,width:800,children:g&&f.jsxs("div",{children:[f.jsxs(Ve,{column:2,size:"small",style:{marginBottom:16},children:[f.jsx(Ve.Item,{label:i("history.version"),children:g.version}),f.jsx(Ve.Item,{label:i("history.driver"),children:g.driver}),f.jsx(Ve.Item,{label:i("history.migration"),children:g.migration||"-"}),f.jsx(Ve.Item,{label:i("history.timestamp"),children:new Date(g.timestamp).toLocaleString()}),g.description&&f.jsx(Ve.Item,{label:i("history.description"),span:2,children:g.description})]}),f.jsx(xn,{title:i("history.changes"),size:"small",style:{marginBottom:16},children:g.changes.length===0?f.jsx(_s,{type:"secondary",children:i("history.noChangesRecorded")}):f.jsx(gf,{changes:g.changes,compact:!0})}),f.jsx(xn,{title:i("history.schemaSnapshot"),size:"small",children:f.jsx(Lc,{ghost:!0,children:Object.entries(g.snapshot).map(([$,I])=>f.jsx(YS,{header:f.jsxs(Ee,{children:[f.jsx(kc,{}),f.jsx(_s,{strong:!0,children:$}),f.jsx(Me,{children:I.kind})]}),children:f.jsx("pre",{style:{fontSize:12,background:a.colorBgLayout,padding:12,borderRadius:a.borderRadius,overflow:"auto",maxHeight:300},children:JSON.stringify(I,null,2)})},$))})})]})}),f.jsx(ll,{title:f.jsxs(Ee,{children:[f.jsx(Ai,{}),f.jsxs("span",{children:[i("history.diff"),": v",v==null?void 0:v.from," → v",v==null?void 0:v.to]})]}),open:C,onCancel:()=>w(!1),footer:null,width:700,children:U&&f.jsx("div",{children:U.changes.length===0?f.jsx(Vl,{description:i("history.noChangesBetween")}):f.jsxs("div",{children:[f.jsx(_s,{type:"secondary",style:{marginBottom:16,display:"block"},children:i("history.changesDetected",{count:U.changes.length})}),f.jsx(gf,{changes:U.changes})]})})})]})}const{Title:IS,Text:Sn}=kn,QS=[{value:"mysql",label:"MySQL / MariaDB"},{value:"postgresql",label:"PostgreSQL"},{value:"sqlite",label:"SQLite"},{value:"sqlserver",label:"SQL Server"}];function XS(){const{t:i}=pt(),{message:a}=Af.useApp(),{darkMode:s,toggleDarkMode:u,previewPanelOpen:r,togglePreviewPanel:d,databaseType:m,setDatabaseType:p,language:g,setLanguage:b}=Il(),{token:E}=Et.useToken(),S=Of(q=>q.connected),[C,w]=ee.useState(null),[U,A]=ee.useState([]),[v,x]=ee.useState(!0),[Y,Q]=ee.useState(!0),[J,Z]=ee.useState(null),[$,I]=ee.useState(!1),[W,oe]=ee.useState(null),[Be,Xe]=ee.useState({}),[me,Je]=ee.useState([]),nt=ee.useRef(!1);ee.useEffect(()=>{ct.get("/api/config").then(w).catch(console.error).finally(()=>x(!1)),ct.get("/api/plugins").then(q=>{A(q);const G={};for(const le of q)if(le.config)G[le.name]={...le.config};else if(le.configSchema){const ce={};for(const se of le.configSchema.fields)se.default!==void 0&&(ce[se.key]=se.default);G[le.name]=ce}Xe(G)}).catch(console.error).finally(()=>Q(!1))},[]),ee.useEffect(()=>{$&&(S?nt.current&&window.location.reload():nt.current=!0)},[$,S]);const St=async q=>{Z(q.name);try{await ct.post(`/api/plugins/${q.name}/toggle`,{enabled:!q.enabled}),I(!0),Z(null),nt.current=!1}catch{a.error(i("settings.pluginToggleError")),Z(null)}},H=async q=>{oe(q.name);try{const G=Be[q.name]||{};await ct.post(`/api/plugins/${q.name}/config`,{config:G}),I(!0),oe(null),nt.current=!1}catch{a.error(i("settings.pluginConfigSaveError")),oe(null)}},F=ee.useCallback((q,G,le)=>{Xe(ce=>({...ce,[q]:{...ce[q],[G]:le}}))},[]),ae=(q,G)=>{var ce,se;const le=(ce=Be[q.name])==null?void 0:ce[G.key];switch(G.type){case"boolean":return f.jsx(ks,{size:"small",checked:le===!0||le===void 0&&G.default===!0,onChange:ge=>F(q.name,G.key,ge)});case"number":return f.jsx(Ke,{type:"number",size:"small",style:{width:200},value:le??G.default??"",placeholder:G.placeholder,onChange:ge=>F(q.name,G.key,ge.target.value?parseFloat(ge.target.value):void 0)});case"select":return f.jsx(dt,{size:"small",style:{width:200},value:le??G.default,options:((se=G.options)==null?void 0:se.map(ge=>({value:ge.value,label:ge.label})))??[],onChange:ge=>F(q.name,G.key,ge)});case"path":case"string":default:return f.jsx(Ke,{size:"small",style:{width:300},value:le??"",placeholder:G.placeholder??G.default,onChange:ge=>F(q.name,G.key,ge.target.value)})}};return v?f.jsx("div",{style:{textAlign:"center",padding:E.paddingXL},children:f.jsx(Aa,{size:"large"})}):f.jsxs("div",{children:[f.jsx(IS,{level:3,children:i("settings.title")}),$&&f.jsxs("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",zIndex:9999},children:[f.jsx(Aa,{size:"large"}),f.jsx("div",{style:{marginTop:24,color:"#fff",fontSize:18,fontWeight:"bold"},children:i("settings.serverRestarting")}),f.jsx("div",{style:{marginTop:8,color:"#ccc"},children:i("settings.pleaseWait")})]}),f.jsxs(xn,{title:i("settings.plugins"),style:{marginBottom:E.margin},children:[Y?f.jsx("div",{style:{textAlign:"center",padding:E.padding},children:f.jsx(Aa,{})}):U.length>0?f.jsx("div",{children:U.map(q=>f.jsxs("div",{style:{borderBottom:`1px solid ${E.colorBorderSecondary}`,paddingBottom:E.paddingSM,marginBottom:E.marginSM},children:[f.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[f.jsxs("div",{style:{flex:1},children:[f.jsxs("div",{children:[f.jsx(Sn,{strong:!0,children:q.name}),f.jsxs(Sn,{type:"secondary",style:{marginLeft:E.marginXS},children:["v",q.version]})]}),f.jsx(Sn,{type:"secondary",children:q.description}),q.types.length>0&&f.jsx("div",{style:{marginTop:E.marginXS},children:q.types.map(G=>f.jsx(Me,{color:q.enabled?"blue":"default",children:G},G))})]}),f.jsx(ks,{checked:q.enabled,loading:J===q.name,onChange:()=>St(q)})]}),q.enabled&&q.configSchema&&q.configSchema.fields.length>0&&f.jsx("div",{style:{marginTop:E.marginMD},children:f.jsx(Lc,{size:"small",activeKey:me,onChange:G=>Je(G),items:[{key:q.name,label:f.jsxs(Ee,{children:[f.jsx(Pp,{}),f.jsx(Sn,{children:i("settings.pluginConfiguration")})]}),children:f.jsxs("div",{children:[f.jsx(P,{layout:"vertical",size:"small",children:(()=>{const G={},le=[];for(const ce of q.configSchema.fields)if(ce.group){const se=ce.group;G[se]||(G[se]=[]),G[se].push(ce)}else le.push(ce);return f.jsxs(f.Fragment,{children:[Object.entries(G).map(([ce,se])=>f.jsxs("div",{style:{marginBottom:E.marginMD},children:[f.jsx(Sn,{strong:!0,style:{textTransform:"capitalize"},children:ce}),f.jsx(Bc,{style:{margin:`${E.marginXS}px 0`}}),se.map(ge=>f.jsx(P.Item,{label:ge.label,help:ge.description,style:{marginBottom:E.marginSM},children:ae(q,ge)},ge.key))]},ce)),le.length>0&&f.jsx("div",{children:le.map(ce=>f.jsx(P.Item,{label:ce.label,help:ce.description,style:{marginBottom:E.marginSM},children:ae(q,ce)},ce.key))})]})})()}),f.jsx("div",{style:{marginTop:E.marginMD},children:f.jsx(Ne,{type:"primary",size:"small",icon:f.jsx(ny,{}),loading:W===q.name,onClick:()=>H(q),children:i("settings.savePluginConfig")})})]})}]})})]},q.name))}):f.jsx(Vl,{image:Vl.PRESENTED_IMAGE_SIMPLE,description:f.jsx(Sn,{type:"secondary",children:i("settings.noPlugins")})}),f.jsx(Sn,{type:"secondary",style:{marginTop:E.marginSM,display:"block"},children:i("settings.pluginsHint")})]}),f.jsxs(xn,{title:i("settings.database"),style:{marginBottom:E.margin},children:[f.jsx(Ve,{column:1,children:f.jsx(Ve.Item,{label:i("settings.databaseType"),children:f.jsx(dt,{value:m,onChange:p,options:QS,style:{width:200},size:"small"})})}),f.jsx(Sn,{type:"secondary",style:{marginTop:E.marginSM,display:"block"},children:i("settings.databaseHint")})]}),f.jsx(xn,{title:i("settings.appearance"),style:{marginBottom:E.margin},children:f.jsxs(Ve,{column:1,children:[f.jsx(Ve.Item,{label:i("settings.language"),children:f.jsx(dt,{value:g,onChange:q=>b(q),options:yf,style:{width:200},size:"small"})}),f.jsx(Ve.Item,{label:i("settings.darkMode"),children:f.jsx(ks,{checked:s,onChange:u,size:"small"})}),f.jsx(Ve.Item,{label:i("settings.showPreview"),children:f.jsx(ks,{checked:r,onChange:d,size:"small"})})]})}),f.jsx(xn,{title:i("settings.serverConfig"),children:f.jsxs(Ve,{column:1,children:[f.jsx(Ve.Item,{label:i("settings.schemasDir"),children:f.jsx(Sn,{code:!0,children:(C==null?void 0:C.schemasDir)??"N/A"})}),f.jsx(Ve.Item,{label:i("settings.serverPort"),children:f.jsx(Sn,{code:!0,children:(C==null?void 0:C.port)??"N/A"})}),f.jsx(Ve.Item,{label:i("settings.host"),children:f.jsx(Sn,{code:!0,children:(C==null?void 0:C.host)??"N/A"})})]})})]})}function $S(){const{loadSchemas:i}=Gl(),{setCustomTypes:a}=Il();return ee.useEffect(()=>{i(),ct.get("/api/config").then(s=>{s.customTypes&&a(s.customTypes)}).catch(console.error)},[i,a]),f.jsx(Fp,{})}const ZS=F0([{element:f.jsx($S,{}),children:[{element:f.jsx(ev,{}),children:[{path:"/",element:f.jsx(nv,{})},{path:"/schema/:name",element:f.jsx(VS,{})},{path:"/history",element:f.jsx(GS,{})},{path:"/settings",element:f.jsx(XS,{})},{path:"*",element:f.jsx(P0,{to:"/",replace:!0})}]}]}]);function JS(){const{darkMode:i}=Il();return f.jsx(Sb,{theme:{algorithm:i?Et.darkAlgorithm:Et.defaultAlgorithm,token:{colorPrimary:"#1677ff",borderRadius:6}},children:f.jsx(Af,{children:f.jsx(W0,{router:ZS})})})}const Yy=document.getElementById("root");if(!Yy)throw new Error("Root element not found");ly.createRoot(Yy).render(f.jsx(ee.StrictMode,{children:f.jsx(JS,{})}));
171
- //# sourceMappingURL=index-C2Z5gRc8.js.map
171
+ //# sourceMappingURL=index-PVj19yVg.js.map