mokelay-editor 0.0.7 → 0.0.9

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.
@@ -1 +1 @@
1
- import{d as j,i as a,_ as O}from"./block-advanced-CdUL2rGG.js";import{u as V,i as q,a as I,b as J,c as W,d as X,e as H,f as U,g as G}from"./echarts-BN_iJMI5.js";import{f as K,z as Q,F as Y,B as Z,o as P,j as ee,l as te,r as A,e as z,A as ne}from"./vue-vendor-CGusfGYN.js";function v(){return a.locale==="en"?["Mon","Tue","Wed","Thu","Fri"]:["周一","周二","周三","周四","周五"]}function C(){return[{name:a.t("chart.defaultSeriesName"),data:[120,200,150,80,70]}]}function re(e){return e.map(r=>({name:r.name,data:[...r.data]}))}function oe(e){return e==="bar"||e==="pie"?e:"line"}function ie(e){if(!Array.isArray(e))return v();const r=e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean);return r.length?r:v()}function ae(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const r=Number(e);return Number.isFinite(r)?r:0}return 0}function se(e){if(!Array.isArray(e))return C();const r=e.filter(n=>typeof n=="object"&&n!==null&&!Array.isArray(n)).map((n,u)=>{const x=Array.isArray(n.data)?n.data.map(h=>ae(h)):[];return{name:typeof n.name=="string"&&n.name.trim()?n.name.trim():`${a.t("chart.defaultSeriesName")}${u+1}`,data:x}}).filter(n=>n.data.length>0);return r.length?r:C()}function T(e){return{edit:e.edit??!1,type:oe(e.type),xAxis:ie(e.xAxis),series:re(se(e.series))}}const pe=j({toolbox:{get title(){return a.t("chart.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="4" width="16" height="16" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 16V11M12 16V8M16 16v-6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},propertyPanel:{get title(){return a.t("chart.propertyPanelTitle")},get fields(){return[{key:"type",label:a.t("chart.properties.type"),type:"select",options:[{label:a.t("chart.types.line"),value:"line"},{label:a.t("chart.types.bar"),value:"bar"},{label:a.t("chart.types.pie"),value:"pie"}]},{key:"xAxis",label:a.t("chart.properties.xAxis"),type:"textarea",valueType:"json",validationMessage:a.t("chart.validation.invalidJson")},{key:"series",label:a.t("chart.properties.series"),type:"textarea",valueType:"json",validationMessage:a.t("chart.validation.invalidJson")}]}},createInitialProps:()=>({type:"line",xAxis:v(),series:C()}),normalizeProps:T,serialize:e=>{const r=T(e);return{type:r.type,xAxis:r.xAxis,series:r.series}}}),le=K({__name:"MChart",props:{edit:{type:Boolean},type:{},xAxis:{},series:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){V([I,J,W,X,H,U,G]);const r=e,n=A(null),u=A(null),x=A(!1),h=z(()=>T(r)),M=z(()=>N(h.value,x.value));let s=null,d=null,p=null,m=null;function B(t,i){return Array.from({length:i},(o,c)=>t[c]??0)}function S(t){return t?"#cbd5e1":"#475569"}function L(t){return t?"#475569":"#cbd5e1"}function $(t){return t?"rgba(71, 85, 105, 0.55)":"rgba(203, 213, 225, 0.72)"}function F(t,i){if(i<=1)return["0%","68%"];const o=18,f=(72-o)/i,l=o+t*f,y=l+f*.78;return[`${Math.round(l)}%`,`${Math.round(y)}%`]}function N(t,i){const o=S(i),c=L(i),f=$(i);return t.type==="pie"?{color:["#2563eb","#16a34a","#f59e0b","#dc2626","#7c3aed","#0891b2"],tooltip:{trigger:"item"},legend:{top:0,textStyle:{color:o}},series:t.series.map((l,y)=>({name:l.name,type:"pie",radius:F(y,t.series.length),center:["50%","56%"],data:t.xAxis.map((b,g)=>({name:b,value:l.data[g]??0})),emphasis:{focus:"self"}}))}:{color:["#2563eb","#16a34a","#f59e0b","#dc2626","#7c3aed","#0891b2"],tooltip:{trigger:"axis"},legend:{top:0,textStyle:{color:o}},grid:{top:44,right:24,bottom:32,left:44,containLabel:!0},xAxis:{type:"category",data:t.xAxis,axisLabel:{color:o},axisLine:{lineStyle:{color:c}}},yAxis:{type:"value",axisLabel:{color:o},axisLine:{lineStyle:{color:c}},splitLine:{lineStyle:{color:f}}},series:t.series.map(l=>({name:l.name,type:t.type,data:B(l.data,t.xAxis.length),smooth:t.type==="line",emphasis:{focus:"series"}}))}}function w(){x.value=document.documentElement.classList.contains("dark")}function D(){u.value&&(s||(s=q(u.value,void 0,{renderer:"canvas"})),s.setOption(M.value,!0),s.resize())}async function R(){await ne(),D()}function _(){m!==null&&(window.clearTimeout(m),m=null)}function E(){var g;m=null;const t=n.value;if(!t)return;const i=t.closest(".ce-block"),o=(g=t.closest(".codex-editor"))==null?void 0:g.querySelector(".ce-toolbar"),c=o==null?void 0:o.querySelector(".ce-toolbar__plus");if(!i||!o||!c)return;const f=i.getBoundingClientRect(),l=t.getBoundingClientRect(),y=c.getBoundingClientRect().height||26,b=i.offsetTop+(l.top-f.top)+(l.height-y)/2;o.style.top=`${Math.max(0,Math.round(b))}px`}function k(){_(),m=window.setTimeout(()=>{E()},0)}return Q(async()=>{w(),await R(),u.value&&typeof ResizeObserver<"u"&&(d=new ResizeObserver(()=>{s==null||s.resize()}),d.observe(u.value)),p=new MutationObserver(()=>{w()}),p.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}),Y(M,()=>{R()}),Z(()=>{_(),d==null||d.disconnect(),d=null,p==null||p.disconnect(),p=null,s==null||s.dispose(),s=null}),(t,i)=>(P(),ee("div",{ref_key:"rootRef",ref:n,class:"ce-chart-tool","data-testid":"editor-chart-tool",onMouseenter:k,onMousemove:k},[te("div",{ref_key:"chartRef",ref:u,class:"ce-chart-tool__canvas","data-testid":"editor-chart-canvas"},null,512)],544))}}),fe=O(le,[["__scopeId","data-v-c412345a"]]);export{fe as M,pe as m};
1
+ import{d as j,i as a,_ as O}from"./block-advanced-EJNdvNM4.js";import{u as V,i as q,a as I,b as J,c as W,d as X,e as H,f as U,g as G}from"./echarts-BN_iJMI5.js";import{f as K,z as Q,F as Y,B as Z,o as P,j as ee,l as te,r as A,e as z,A as ne}from"./vue-vendor-CGusfGYN.js";function v(){return a.locale==="en"?["Mon","Tue","Wed","Thu","Fri"]:["周一","周二","周三","周四","周五"]}function C(){return[{name:a.t("chart.defaultSeriesName"),data:[120,200,150,80,70]}]}function re(e){return e.map(r=>({name:r.name,data:[...r.data]}))}function oe(e){return e==="bar"||e==="pie"?e:"line"}function ie(e){if(!Array.isArray(e))return v();const r=e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean);return r.length?r:v()}function ae(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const r=Number(e);return Number.isFinite(r)?r:0}return 0}function se(e){if(!Array.isArray(e))return C();const r=e.filter(n=>typeof n=="object"&&n!==null&&!Array.isArray(n)).map((n,u)=>{const x=Array.isArray(n.data)?n.data.map(h=>ae(h)):[];return{name:typeof n.name=="string"&&n.name.trim()?n.name.trim():`${a.t("chart.defaultSeriesName")}${u+1}`,data:x}}).filter(n=>n.data.length>0);return r.length?r:C()}function T(e){return{edit:e.edit??!1,type:oe(e.type),xAxis:ie(e.xAxis),series:re(se(e.series))}}const pe=j({toolbox:{get title(){return a.t("chart.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="4" width="16" height="16" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 16V11M12 16V8M16 16v-6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},propertyPanel:{get title(){return a.t("chart.propertyPanelTitle")},get fields(){return[{key:"type",label:a.t("chart.properties.type"),type:"select",options:[{label:a.t("chart.types.line"),value:"line"},{label:a.t("chart.types.bar"),value:"bar"},{label:a.t("chart.types.pie"),value:"pie"}]},{key:"xAxis",label:a.t("chart.properties.xAxis"),type:"textarea",valueType:"json",validationMessage:a.t("chart.validation.invalidJson")},{key:"series",label:a.t("chart.properties.series"),type:"textarea",valueType:"json",validationMessage:a.t("chart.validation.invalidJson")}]}},createInitialProps:()=>({type:"line",xAxis:v(),series:C()}),normalizeProps:T,serialize:e=>{const r=T(e);return{type:r.type,xAxis:r.xAxis,series:r.series}}}),le=K({__name:"MChart",props:{edit:{type:Boolean},type:{},xAxis:{},series:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){V([I,J,W,X,H,U,G]);const r=e,n=A(null),u=A(null),x=A(!1),h=z(()=>T(r)),M=z(()=>N(h.value,x.value));let s=null,d=null,p=null,m=null;function B(t,i){return Array.from({length:i},(o,c)=>t[c]??0)}function S(t){return t?"#cbd5e1":"#475569"}function L(t){return t?"#475569":"#cbd5e1"}function $(t){return t?"rgba(71, 85, 105, 0.55)":"rgba(203, 213, 225, 0.72)"}function F(t,i){if(i<=1)return["0%","68%"];const o=18,f=(72-o)/i,l=o+t*f,y=l+f*.78;return[`${Math.round(l)}%`,`${Math.round(y)}%`]}function N(t,i){const o=S(i),c=L(i),f=$(i);return t.type==="pie"?{color:["#2563eb","#16a34a","#f59e0b","#dc2626","#7c3aed","#0891b2"],tooltip:{trigger:"item"},legend:{top:0,textStyle:{color:o}},series:t.series.map((l,y)=>({name:l.name,type:"pie",radius:F(y,t.series.length),center:["50%","56%"],data:t.xAxis.map((b,g)=>({name:b,value:l.data[g]??0})),emphasis:{focus:"self"}}))}:{color:["#2563eb","#16a34a","#f59e0b","#dc2626","#7c3aed","#0891b2"],tooltip:{trigger:"axis"},legend:{top:0,textStyle:{color:o}},grid:{top:44,right:24,bottom:32,left:44,containLabel:!0},xAxis:{type:"category",data:t.xAxis,axisLabel:{color:o},axisLine:{lineStyle:{color:c}}},yAxis:{type:"value",axisLabel:{color:o},axisLine:{lineStyle:{color:c}},splitLine:{lineStyle:{color:f}}},series:t.series.map(l=>({name:l.name,type:t.type,data:B(l.data,t.xAxis.length),smooth:t.type==="line",emphasis:{focus:"series"}}))}}function w(){x.value=document.documentElement.classList.contains("dark")}function D(){u.value&&(s||(s=q(u.value,void 0,{renderer:"canvas"})),s.setOption(M.value,!0),s.resize())}async function R(){await ne(),D()}function _(){m!==null&&(window.clearTimeout(m),m=null)}function E(){var g;m=null;const t=n.value;if(!t)return;const i=t.closest(".ce-block"),o=(g=t.closest(".codex-editor"))==null?void 0:g.querySelector(".ce-toolbar"),c=o==null?void 0:o.querySelector(".ce-toolbar__plus");if(!i||!o||!c)return;const f=i.getBoundingClientRect(),l=t.getBoundingClientRect(),y=c.getBoundingClientRect().height||26,b=i.offsetTop+(l.top-f.top)+(l.height-y)/2;o.style.top=`${Math.max(0,Math.round(b))}px`}function k(){_(),m=window.setTimeout(()=>{E()},0)}return Q(async()=>{w(),await R(),u.value&&typeof ResizeObserver<"u"&&(d=new ResizeObserver(()=>{s==null||s.resize()}),d.observe(u.value)),p=new MutationObserver(()=>{w()}),p.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]})}),Y(M,()=>{R()}),Z(()=>{_(),d==null||d.disconnect(),d=null,p==null||p.disconnect(),p=null,s==null||s.dispose(),s=null}),(t,i)=>(P(),ee("div",{ref_key:"rootRef",ref:n,class:"ce-chart-tool","data-testid":"editor-chart-tool",onMouseenter:k,onMousemove:k},[te("div",{ref_key:"chartRef",ref:u,class:"ce-chart-tool__canvas","data-testid":"editor-chart-canvas"},null,512)],544))}}),fe=O(le,[["__scopeId","data-v-c412345a"]]);export{fe as M,pe as m};
@@ -1 +1 @@
1
- var Ft=Object.defineProperty;var Pt=(e,t,a)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var se=(e,t,a)=>Pt(e,typeof t!="symbol"?t+"":t,a);import{f as Et,r as J,K as he,L as Mt,F as xt,o as l,j as p,l as c,C as u,u as y,n as G,p as D,t as k,G as F,H as P,v as zt,e as I}from"./vue-vendor-CGusfGYN.js";import{u as Lt,d as Bt,i as Rt,_ as Kt}from"./block-advanced-CdUL2rGG.js";function T(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function x(e){return e===null||typeof e=="string"||typeof e=="boolean"?!0:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.every(t=>x(t)):T(e)?Object.values(e).every(t=>x(t)):!1}function Xe(e){return T(e)&&x(e)}function B(e){return JSON.parse(JSON.stringify(e))}function _e(e){return JSON.parse(JSON.stringify(e))}function Oe(e){return JSON.parse(JSON.stringify(e))}function L(e,t){return Object.keys(e).every(a=>t.includes(a))}function K(e,t){if(t===void 0)return e;if(typeof t=="string")return{...e,description:t}}function Q(e){if(T(e)){if(e.anyOf!==void 0){if(!L(e,["anyOf","description"])||!Array.isArray(e.anyOf)||!e.anyOf.length)return;const t=[];for(const a of e.anyOf){const n=Q(a);if(!n)return;t.push(n)}return K({anyOf:t},e.description)}if(typeof e.type=="string"){if(e.type==="object"){if(!L(e,["type","properties","required","description"])||!T(e.properties))return;const t={};for(const[n,d]of Object.entries(e.properties)){const f=Q(d);if(!f)return;t[n]=f}const a={type:"object",properties:t};if(e.required!==void 0){if(!Array.isArray(e.required)||!e.required.every(n=>typeof n=="string"))return;a.required=[...e.required]}return K(a,e.description)}if(e.type==="array"){if(!L(e,["type","items","description"]))return;const t=Q(e.items);return t?K({type:"array",items:t},e.description):void 0}if(e.type==="string"){if(!L(e,["type","enum","description"]))return;const t={type:"string"};if(e.enum!==void 0){if(!Array.isArray(e.enum)||!e.enum.every(a=>typeof a=="string"))return;t.enum=[...e.enum]}return K(t,e.description)}if(e.type==="number"){if(!L(e,["type","minimum","maximum","description"]))return;const t={type:"number"};if(e.minimum!==void 0){if(typeof e.minimum!="number"||!Number.isFinite(e.minimum))return;t.minimum=e.minimum}if(e.maximum!==void 0){if(typeof e.maximum!="number"||!Number.isFinite(e.maximum))return;t.maximum=e.maximum}return K(t,e.description)}if(e.type==="boolean")return L(e,["type","description"])?K({type:"boolean"},e.description):void 0;if(e.type==="null"&&L(e,["type"]))return{type:"null"}}}}function be(e){return"type"in e&&e.type==="unknown"}function A(e){return"anyOf"in e}function ne(e){return"anyOf"in e}function W(e){return Oe(e)}function Ht(){return{type:"unknown"}}function Vt(){return{type:"object",properties:{}}}function re(e){if(be(e))return Vt();if(ne(e))return{anyOf:e.anyOf.map(t=>re(t))};if(e.type==="array")return{...e,items:re(e.items)};if(e.type==="object"){const t={};return Object.entries(e.properties).forEach(([a,n])=>{t[a]=re(n)}),{...e,properties:t}}return _e(e)}function Ye(e){return ne(e)?e.anyOf.flatMap(t=>Ye(t)):[e]}function ve(e,t){if(be(e))return W(t);if(be(t))return W(e);if(!(ne(e)||ne(t))&&e.type===t.type){if(e.type==="object"&&t.type==="object"){const a={},n=new Set([...Object.keys(e.properties),...Object.keys(t.properties)]);for(const d of n){const f=e.properties[d],_=t.properties[d];if(f&&_){const h=Se(f,_);a[d]=h;continue}a[d]=W(f??_)}return{type:"object",properties:a}}return e.type==="array"&&t.type==="array"?{type:"array",items:Se(e.items,t.items)}:W(e)}}function Ut(e){const t=[];return e.flatMap(a=>Ye(a)).forEach(a=>{const n=t.findIndex(d=>ve(d,a)!==void 0);if(n>=0){t[n]=ve(t[n],a);return}t.push(W(a))}),t.length===1?t[0]:{anyOf:t}}function Se(e,t){const a=ve(e,t);return a||Ut([e,t])}function ge(e){if(e===null)return{ok:!0,schema:{type:"null"}};if(typeof e=="string")return{ok:!0,schema:{type:"string"}};if(typeof e=="number")return{ok:!0,schema:{type:"number"}};if(typeof e=="boolean")return{ok:!0,schema:{type:"boolean"}};if(Array.isArray(e)){if(!e.length)return{ok:!0,schema:{type:"array",items:Ht()}};let a;for(const n of e){const d=ge(n);if(!d.ok)return d;if(!a){a=d.schema;continue}a=Se(a,d.schema)}return{ok:!0,schema:{type:"array",items:a}}}const t={};for(const[a,n]of Object.entries(e)){const d=ge(n);if(!d.ok)return d;t[a]=d.schema}return{ok:!0,schema:{type:"object",properties:t}}}function Gt(e){if(Array.isArray(e)&&!e.length)return{ok:!1,reason:"emptyArray"};const t=ge(e);return t.ok?{ok:!0,schema:re(t.schema)}:t}function De(e,t){return e?`${e}.${t}`:t}function Ze(e){return e?`${e}[]`:"[]"}function ue(e){return e.replace(/\[\]/g,"").split(".").filter(Boolean).pop()||e||"root"}function je(e){return e==="number"?"number":e==="boolean"?"switch":e==="object"?"object":e==="array"?"array":"text"}function Ge(e){return e==="string"||e==="number"||e==="boolean"||e==="null"}function Wt(e){return A(e)?"union":e.type}function et(e,t){if(!A(e))return e.type===t?e:void 0;const a=e.anyOf.filter(d=>!(!A(d)&&d.type==="null"));if(a.length!==1)return;const[n]=a;return!A(n)&&n.type===t?n:void 0}function ie(e){if(!e)return;const t=et(e,"object");return t&&!A(t)&&t.type==="object"?t:void 0}function ce(e){if(!e)return;const t=et(e,"array");return t&&!A(t)&&t.type==="array"?t:void 0}function tt(e){if(!A(e))return Ge(e.type)?e.type:void 0;const t=e.anyOf.filter(n=>!(!A(n)&&n.type==="null"));if(t.length!==1)return;const[a]=t;return!A(a)&&Ge(a.type)?a.type:void 0}function at(e,t,a=ue(e.path)){const n=e.selectionType??(e.type==="union"?void 0:e.type);if(!n)throw new TypeError("Schema tree node is not selectable.");return{path:e.path,label:a,type:n,required:e.required,enabled:t,componentHint:e.componentHint}}function ot(e){return{...e,selectable:!1,selectionType:void 0,children:e.children.map(t=>ot(t))}}function X(e,t="",a=0,n=!1){if(!e)return[];const d=tt(e),f=Wt(e),_=t?ue(t):"root",h={path:t,displayPath:t||"root",name:_,type:f,...d?{selectionType:d}:{},required:n,selectable:!!d,componentHint:je(d??(f==="union"?"string":f)),depth:a,children:[]};if(A(e))h.children=e.anyOf.flatMap((g,m)=>X(g,`${t||"root"}.anyOf[${m}]`,a+1,n).map(O=>ot(O)));else if(e.type==="object"){const g=new Set(e.required??[]);h.children=Object.entries(e.properties).flatMap(([m,O])=>X(O,De(t,m),a+1,g.has(m)))}else if(e.type==="array"){const g=Ze(t);h.children=X(e.items,g,a+1,n)}return[h]}function Ie(e){return e.flatMap(t=>[t,...Ie(t.children)])}function Ne(e){if(!e)return[];const t=[],a=new Set;function n(f){a.has(f)||(a.add(f),t.push({path:f,label:f?`${f}[]`:"root[]"}))}function d(f,_){const h=ce(f);if(h){n(_),d(h.items,Ze(_));return}const g=ie(f);g&&Object.entries(g.properties).forEach(([m,O])=>{d(O,De(_,m))})}return d(e,""),t}function Qt(e,t){var d,f;if(!e)return;if(!t)return(d=ce(e))==null?void 0:d.items;const a=t.split(".").filter(Boolean);let n=e;for(const _ of a){const h=ie(n);if(!h)return;n=h.properties[_]}return(f=ce(n))==null?void 0:f.items}function Xt(e,t="",a=!1){return Ie(X(e,t)).filter(n=>(a||n.path!==t)&&n.selectable)}function st(e,t){const a=Qt(e,t),n=t?`${t}[]`:"[]";return Xt(a,n,!0).map(d=>at(d,!0))}function Yt(e){var f;const t=((f=ce(e))==null?void 0:f.items)??e,a=ie(t);if(!a)return[];const n=[];function d(_,h,g){const m=tt(_);if(m){n.push(at({path:h,name:ue(h),type:A(_)?"union":_.type,selectionType:m,required:g,componentHint:je(m)},!0));return}const O=ie(_);if(!O)return;const j=new Set(O.required??[]);Object.entries(O.properties).forEach(([q,w])=>{d(w,De(h,q),j.has(q))})}return Object.entries(a.properties).forEach(([_,h])=>{d(h,_,(a.required??[]).includes(_))}),n}function ke(e,t){if(!T(e))return t?Oe(t):void 0;const a=typeof e.path=="string"&&e.path?e.path:t==null?void 0:t.path;if(!a)return;const n=e.type==="object"||e.type==="array"||e.type==="string"||e.type==="number"||e.type==="boolean"||e.type==="null"?e.type:(t==null?void 0:t.type)??"string",d=typeof e.label=="string"&&e.label.trim()?e.label.trim():(t==null?void 0:t.label)??ue(a),f=typeof e.required=="boolean"?e.required:(t==null?void 0:t.required)??!1,_=typeof e.enabled=="boolean"?e.enabled:(t==null?void 0:t.enabled)??!0,h=e.componentHint==="text"||e.componentHint==="number"||e.componentHint==="switch"||e.componentHint==="object"||e.componentHint==="array"?e.componentHint:(t==null?void 0:t.componentHint)??je(n);return{path:a,label:d,type:n,required:f,enabled:_,componentHint:h}}function We(e,t){const a=new Map;return Array.isArray(t)&&t.forEach(n=>{const d=ke(n);d&&a.set(d.path,d)}),e.map(n=>{const d=a.get(n.path);return d?{...n,label:d.label||n.label,enabled:d.enabled}:Oe(n)})}function Zt(e){var n;const t=Ne(e),a=t.find(d=>st(e,d.path).length>0);return(a==null?void 0:a.path)??((n=t[0])==null?void 0:n.path)??""}function Y(e,t){var g,m,O;if(!e)return;const a=Ne(e),n=((g=t==null?void 0:t.list)==null?void 0:g.recordPath)??"",d=a.some(j=>j.path===n)?n:Zt(e),f=a.length?We(st(e,d),(m=t==null?void 0:t.list)==null?void 0:m.fields):[],_=We(Yt(e),(O=t==null?void 0:t.form)==null?void 0:O.fields),h={};return a.length&&(h.list={recordPath:d,fields:f}),_.length&&(h.form={fields:_}),h.list||h.form?h:void 0}function we(e,t){if(!T(e))return t?Y(t):void 0;const a={};return T(e.list)&&(a.list={recordPath:typeof e.list.recordPath=="string"?e.list.recordPath:"",fields:Array.isArray(e.list.fields)?e.list.fields.map(n=>ke(n)).filter(n=>n!==void 0):[]}),T(e.form)&&(a.form={fields:Array.isArray(e.form.fields)?e.form.fields.map(n=>ke(n)).filter(n=>n!==void 0):[]}),t?Y(t,a):a.list||a.form?a:void 0}class M extends Error{constructor(a,n,d){super(n);se(this,"code");se(this,"status");se(this,"statusText");this.name="DatasourceError",this.code=a,this.status=d==null?void 0:d.status,this.statusText=d==null?void 0:d.statusText}}const rt=["string","number","boolean","null","object","array"];function H(e){return typeof e=="string"?e:""}function nt(e){return e==="POST"?"POST":"GET"}function it(e){return rt.includes(e)?e:"string"}function ct(e,t={}){return x(e)?B(e):t}function ea(e){return e==="number"?0:e==="boolean"?!1:e==="null"?null:e==="object"?{}:e==="array"?[]:""}function de(e,t){return e==="string"?typeof t=="string"?t:H(t):e==="number"?typeof t=="number"&&Number.isFinite(t)?t:0:e==="boolean"?typeof t=="boolean"?t:!1:e==="null"?null:e==="object"?Xe(t)?B(t):{}:Array.isArray(t)&&x(t)?B(t):[]}function Qe(e){return Array.isArray(e)?e.filter(t=>T(t)).map(t=>({key:H(t.key),mock:H(t.mock)})):[]}function ta(e){return Array.isArray(e)?e.filter(t=>T(t)).map(t=>{const a=it(t.dataType);return{key:H(t.key),dataType:a,mock:de(a,t.mock)}}):[]}function aa(){return{type:"API",domain:"",path:"",method:"GET",headerData:[],bodyData:[],queryData:[]}}function dt(){return{type:"JSON",rawData:{}}}function E(e){if(!T(e))return dt();const t=Q(e.jsonSchema),a=we(e.schemaSelections,t);if(e.type==="API"){const d={type:"API",domain:H(e.domain),path:H(e.path),method:nt(e.method),headerData:Qe(e.headerData),bodyData:ta(e.bodyData),queryData:Qe(e.queryData)};return t&&(d.jsonSchema=t),a&&(d.schemaSelections=a),d}const n={type:"JSON",rawData:ct(e.rawData,{})};return t&&(n.jsonSchema=t),a&&(n.schemaSelections=a),n}function oa(e){const t=e.domain.trim(),a=e.path.trim(),n=/^[a-z][a-z\d+\-.]*:/i.test(a),d=t||(typeof window<"u"?window.location.origin:"");if(!d&&!n)throw new TypeError("API domain is required when calling a relative datasource path outside the browser.");const f=d?new URL(a||"/",d.endsWith("/")?d:`${d}/`):new URL(a||"/");return e.queryData.forEach(_=>{const h=_.key.trim();h&&f.searchParams.append(h,_.mock)}),f.toString()}function sa(e){const t=new Headers;return e.headerData.forEach(a=>{const n=a.key.trim();n&&t.set(n,a.mock)}),e.method==="POST"&&!t.has("Content-Type")&&t.set("Content-Type","application/json"),t}function ra(e){if(e.method!=="POST")return;const t=e.bodyData.reduce((a,n)=>{const d=n.key.trim();return d&&(a[d]=de(n.dataType,n.mock)),a},{});return JSON.stringify(t)}async function na(e){if(!(e.headers.get("content-type")??"").toLowerCase().includes("json"))throw new M("nonJsonResponse","The API response is not JSON.");try{const a=await e.json();if(!x(a))throw new M("invalidJsonResponse","The API response is not valid JSON.");return a}catch(a){throw a instanceof M?a:new M("invalidJsonResponse","The API response is not valid JSON.")}}const ia=async e=>{const t=E(e);if(t.type==="JSON")return B(t.rawData);const a=await fetch(oa(t),{method:t.method,headers:sa(t),body:ra(t)});if(!a.ok)throw new M("apiRequestFailed",`API request failed: ${a.status} ${a.statusText}`.trim(),{status:a.status,statusText:a.statusText});return await na(a)},ca=async e=>{const t=await ia(e),a=Gt(t);if(a.ok)return a.schema;throw a.reason==="emptyArray"?new M("emptyArraySchema","Cannot infer JSON Schema from an empty array."):new M("mixedArraySchema","The array contains incompatible types, so JSON Schema cannot be inferred.")},da={class:"ce-datasource-tool","data-testid":"editor-datasource-tool"},ua={class:"ce-datasource-tool__header"},la={class:"ce-datasource-tool__title"},pa=["aria-label"],ya=["disabled"],fa=["disabled"],ma={key:0,class:"ce-datasource-tool__panel","data-testid":"datasource-json-panel"},ha={class:"ce-datasource-tool__field"},_a={class:"ce-datasource-tool__label"},ba=["readonly","value"],va={key:0,class:"ce-datasource-tool__error","data-testid":"datasource-json-error"},Sa={key:1,class:"ce-datasource-tool__panel","data-testid":"datasource-api-panel"},ga={class:"ce-datasource-tool__grid"},ka={class:"ce-datasource-tool__field"},wa={class:"ce-datasource-tool__label"},Oa=["readonly","value"],Da={class:"ce-datasource-tool__field"},ja={class:"ce-datasource-tool__label"},Ia=["readonly","value"],Na={class:"ce-datasource-tool__field"},Ta={class:"ce-datasource-tool__label"},Aa=["disabled","value"],Ja={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-header-list"},$a={class:"ce-datasource-tool__list-header"},qa={class:"ce-datasource-tool__list-title"},Ca={key:0,class:"ce-datasource-tool__empty"},Fa=["data-testid","readonly","placeholder","value","onInput"],Pa=["data-testid","readonly","placeholder","value","onInput"],Ea=["data-testid","aria-label","onClick"],Ma={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-query-list"},xa={class:"ce-datasource-tool__list-header"},za={class:"ce-datasource-tool__list-title"},La={key:0,class:"ce-datasource-tool__empty"},Ba=["data-testid","readonly","placeholder","value","onInput"],Ra=["data-testid","readonly","placeholder","value","onInput"],Ka=["data-testid","aria-label","onClick"],Ha={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-body-list"},Va={class:"ce-datasource-tool__list-header"},Ua={class:"ce-datasource-tool__list-title"},Ga={key:0,class:"ce-datasource-tool__empty"},Wa=["data-testid","readonly","placeholder","value","onInput"],Qa=["data-testid","disabled","value","onChange"],Xa=["value"],Ya=["data-testid","disabled","value","onChange"],Za=["data-testid"],eo=["data-testid","readonly","value","onInput"],to=["data-testid","type","readonly","placeholder","value","onInput"],ao=["data-testid","aria-label","onClick"],oo=["data-testid"],so={class:"ce-datasource-tool__generate-panel","data-testid":"datasource-schema-generate-panel"},ro={class:"ce-datasource-tool__section-title"},no={class:"ce-datasource-tool__section-copy"},io={class:"ce-datasource-tool__generate-actions"},co=["disabled"],uo={key:1,class:"ce-datasource-tool__schema-summary","data-testid":"datasource-schema-summary"},lo={key:0,class:"ce-datasource-tool__error","data-testid":"datasource-json-schema-error"},po={class:"ce-datasource-tool__schema-panel","data-testid":"datasource-json-schema-panel"},yo={class:"ce-datasource-tool__schema-header"},fo={class:"ce-datasource-tool__section-title"},mo={class:"ce-datasource-tool__section-copy"},ho=["placeholder","value"],_o={class:"ce-datasource-tool__tabs","data-testid":"datasource-schema-tabs"},bo={key:0,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-list-schema-panel"},vo={key:0,class:"ce-datasource-tool__empty","data-testid":"datasource-schema-empty"},So={key:1,class:"ce-datasource-tool__field"},go={class:"ce-datasource-tool__label"},ko=["disabled","value"],wo=["value"],Oo={key:2,class:"ce-datasource-tool__empty","data-testid":"datasource-list-schema-empty"},Do={key:3,class:"ce-datasource-tool__field-list","data-testid":"datasource-list-fields"},jo={class:"ce-datasource-tool__field-list-summary"},Io=["data-testid"],No=["disabled","checked","data-testid","onChange"],To={class:"ce-datasource-tool__schema-field-main"},Ao=["readonly","value","data-testid","onInput"],Jo={class:"ce-datasource-tool__schema-path"},$o={class:"ce-datasource-tool__schema-badges"},qo={class:"ce-datasource-tool__schema-badge"},Co={class:"ce-datasource-tool__schema-badge"},Fo={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},Po={key:1,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-form-schema-panel"},Eo={key:0,class:"ce-datasource-tool__field-list","data-testid":"datasource-form-fields"},Mo={class:"ce-datasource-tool__field-list-summary"},xo=["data-testid"],zo=["disabled","checked","data-testid","onChange"],Lo={class:"ce-datasource-tool__schema-field-main"},Bo=["readonly","value","data-testid","onInput"],Ro={class:"ce-datasource-tool__schema-path"},Ko={class:"ce-datasource-tool__schema-badges"},Ho={class:"ce-datasource-tool__schema-badge"},Vo={class:"ce-datasource-tool__schema-badge"},Uo={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},Go={key:1,class:"ce-datasource-tool__empty","data-testid":"datasource-form-schema-empty"},Wo={key:2,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-advanced-schema-panel"},Qo={key:0,class:"ce-datasource-tool__schema-tree","data-testid":"datasource-schema-tree"},Xo=["data-testid"],Yo={class:"ce-datasource-tool__schema-node-name"},Zo={class:"ce-datasource-tool__schema-path"},es={class:"ce-datasource-tool__schema-badge"},ts={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},as={class:"ce-datasource-tool__field"},os={class:"ce-datasource-tool__label"},ss=["readonly","value"],ds=Bt({toolbox:{get title(){return Rt.t("datasource.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><ellipse cx="12" cy="6" rx="7" ry="3" fill="none" stroke="currentColor" stroke-width="2"/><path d="M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6M5 12v6c0 1.7 3.1 3 7 3s7-1.3 7-3v-6" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 12c1.1.5 2.5.8 4 .8s2.9-.3 4-.8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({value:dt()}),normalizeProps:e=>({edit:e.edit??!1,value:E(e.value)}),serialize:e=>({value:E(e.value)})}),rs=Et({__name:"MDatasourceEditor",props:{edit:{type:Boolean},value:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,{t:a}=Lt(),n=E(t.value),d=rt,f=J(n.type),_=he(n.type==="JSON"?n.rawData:{}),h=J(le(_.value)),g=J(""),m=he(n.jsonSchema),O=J(pe(m.value)),j=J(""),q=J(!1),w=he(n.schemaSelections),C=J("list"),V=J(""),v=Mt(n.type==="API"?n:aa()),z=J(v.bodyData.map(o=>R(o))),$=J(v.bodyData.map(()=>"")),S=I(()=>!t.edit),ut=I(()=>X(m.value)),Te=I(()=>Ie(ut.value)),Ae=I(()=>Ne(m.value)),Je=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.list)==null?void 0:s.fields)??[]}),$e=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.form)==null?void 0:s.fields)??[]}),lt=I(()=>mt(Te.value,V.value)),qe=I(()=>Ee(Je.value,V.value)),Ce=I(()=>Ee($e.value,V.value)),pt=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.list)==null?void 0:s.recordPath)??""}),yt=I(()=>Je.value.filter(o=>o.enabled).length),ft=I(()=>$e.value.filter(o=>o.enabled).length);function le(o){return JSON.stringify(o,null,2)}function pe(o){return o?JSON.stringify(o,null,2):""}function ye(o){return a(`datasource.schemaTypes.${o}`)}function Fe(o){return a(`datasource.componentHints.${o}`)}function Pe(o){return o.trim().toLowerCase()}function mt(o,s){const r=Pe(s);return r?o.filter(i=>i.name.toLowerCase().includes(r)||i.displayPath.toLowerCase().includes(r)):o}function Ee(o,s){const r=Pe(s);return r?o.filter(i=>i.label.toLowerCase().includes(r)||i.path.toLowerCase().includes(r)):o}function ht(o){return o||"root"}function _t(o){return o?`${o}[]`:a("datasource.fields.rootRecordPath")}function bt(o){return{edit:t.edit,value:E(o)}}function Z(o){var r,i;if(!t.edit)return;const s=bt(o);(r=t.onToolChange)==null||r.call(t,s),(i=t.onChange)==null||i.call(t,s)}function ee(){return E({type:"JSON",rawData:ct(_.value,{}),jsonSchema:m.value,schemaSelections:w.value})}function fe(){return E({type:"API",domain:v.domain,path:v.path,method:v.method,headerData:v.headerData,bodyData:v.bodyData,queryData:v.queryData,jsonSchema:m.value,schemaSelections:w.value})}function U(){Z(f.value==="JSON"?ee():fe())}function N(){Z(fe())}function vt(){z.value=v.bodyData.map(o=>R(o)),$.value=v.bodyData.map(()=>"")}function St(o,s){m.value=o?_e(o):void 0,O.value=pe(m.value),w.value=we(s,m.value),j.value=""}function gt(o){Object.assign(v,{type:"API",domain:o.domain,path:o.path,method:o.method,headerData:o.headerData.map(s=>({...s})),bodyData:o.bodyData.map(s=>({key:s.key,dataType:s.dataType,mock:de(s.dataType,s.mock)})),queryData:o.queryData.map(s=>({...s}))}),vt()}function kt(o){const s=E(o);if(f.value=s.type,St(s.jsonSchema,s.schemaSelections),s.type==="JSON"){_.value=s.rawData,h.value=le(s.rawData),g.value="";return}gt(s)}function Me(o){if(!(!t.edit||f.value===o)){if(f.value=o,o==="JSON"){Z(ee());return}N()}}function wt(o){if(!t.edit)return;const s=o.target.value;h.value=s;try{const r=JSON.parse(s);if(!x(r))throw new Error("Invalid JSON value.");_.value=B(r),g.value="",Z(ee())}catch{g.value=a("datasource.validation.invalidJson")}}function Ot(o){if(!t.edit)return;const s=o.target.value;if(O.value=s,!s.trim()){m.value=void 0,w.value=void 0,j.value="",U();return}try{const r=JSON.parse(s),i=Q(r);if(!i)throw new Error("Invalid JSON Schema.");m.value=i,w.value=Y(i,w.value),j.value="",U()}catch{j.value=a("datasource.validation.invalidJsonSchema")}}function xe(o,s){t.edit&&(v[o]=s,N())}function Dt(o){t.edit&&(v.method=nt(o),N())}function te(o){return v[o]}function ze(o){t.edit&&(v[o].push({key:"",mock:""}),N())}function ae(o,s,r,i){if(!t.edit)return;const b=v[o][s];b&&(b[r]=i,N())}function Le(o,s){t.edit&&(v[o].splice(s,1),N())}function jt(){if(!t.edit)return;const o={key:"",dataType:"string",mock:""};v.bodyData.push(o),z.value.push(R(o)),$.value.push(""),N()}function It(o,s){if(!t.edit)return;const r=v.bodyData[o];r&&(r.key=s,N())}function Nt(o,s){if(!t.edit)return;const r=v.bodyData[o];r&&(r.dataType=it(s),r.mock=ea(r.dataType),z.value[o]=R(r),$.value[o]="",N())}function me(o,s){if(!t.edit)return;const r=v.bodyData[o];if(!r)return;z.value[o]=s;const i=Ct(r.dataType,s);if(!i.ok){$.value[o]=i.error;return}r.mock=i.value,$.value[o]="",N()}function Tt(o){t.edit&&(v.bodyData.splice(o,1),z.value.splice(o,1),$.value.splice(o,1),N())}function At(o){return o instanceof M?o.code==="apiRequestFailed"?`${a("datasource.validation.apiRequestFailed")} ${o.status??""} ${o.statusText??""}`.trim():a(`datasource.validation.${o.code}`):o instanceof Error?o.message:String(o)}function Jt(o){m.value=_e(o),O.value=pe(m.value),w.value=Y(m.value,w.value),j.value="",U()}function $t(o){var s,r;!t.edit||!m.value||(w.value=Y(m.value,{...w.value,list:{recordPath:o,fields:((r=(s=w.value)==null?void 0:s.list)==null?void 0:r.fields)??[]}}),U())}function Be(o,s,r){var Ve,Ue;if(!t.edit)return;const i=we(w.value,m.value),b=o==="list"?(Ve=i==null?void 0:i.list)==null?void 0:Ve.fields:(Ue=i==null?void 0:i.form)==null?void 0:Ue.fields;if(!b)return;const He=b.map(oe=>oe.path===s?{...oe,...r,label:r.label!==void 0?r.label:oe.label}:oe);w.value={...i,...o==="list"&&(i!=null&&i.list)?{list:{...i.list,fields:He}}:{},...o==="form"?{form:{fields:He}}:{}},U()}function Re(o,s,r){Be(o,s,{label:r.trim()||s})}function Ke(o,s,r){Be(o,s,{enabled:r})}async function qt(){if(!(!t.edit||q.value)){if(j.value="",f.value==="JSON"){if(g.value){j.value=a("datasource.validation.fixJsonBeforeSchema");return}}else if($.value.findIndex(s=>!!s)>=0){j.value=a("datasource.validation.fixBodyBeforeSchema");return}q.value=!0;try{const o=await ca(f.value==="JSON"?ee():fe());Jt(o)}catch(o){j.value=At(o)}finally{q.value=!1}}}function Ct(o,s){if(o==="string")return{ok:!0,value:s};if(o==="number"){const r=s.trim(),i=Number(r);return!r||!Number.isFinite(i)?{ok:!1,error:a("datasource.validation.invalidNumber")}:{ok:!0,value:i}}if(o==="boolean")return{ok:!0,value:s==="true"};if(o==="null")return{ok:!0,value:null};try{const r=JSON.parse(s);return o==="object"?Xe(r)?{ok:!0,value:B(r)}:{ok:!1,error:a("datasource.validation.invalidObject")}:!Array.isArray(r)||!x(r)?{ok:!1,error:a("datasource.validation.invalidArray")}:{ok:!0,value:B(r)}}catch{return{ok:!1,error:a(o==="object"?"datasource.validation.invalidObject":"datasource.validation.invalidArray")}}}function R(o){const s=de(o.dataType,o.mock);return o.dataType==="object"||o.dataType==="array"?le(s):o.dataType==="null"?"null":String(s)}return xt(()=>t.value,o=>{kt(o)},{deep:!0}),(o,s)=>(l(),p("div",da,[c("div",ua,[c("div",la,u(y(a)("datasource.title")),1),c("div",{class:"ce-datasource-tool__type-switch","aria-label":y(a)("datasource.fields.type")},[c("button",{type:"button",class:G(["ce-datasource-tool__type-button",{"ce-datasource-tool__type-button--active":f.value==="JSON"}]),disabled:S.value,"data-testid":"datasource-type-json",onClick:s[0]||(s[0]=r=>Me("JSON"))}," JSON ",10,ya),c("button",{type:"button",class:G(["ce-datasource-tool__type-button",{"ce-datasource-tool__type-button--active":f.value==="API"}]),disabled:S.value,"data-testid":"datasource-type-api",onClick:s[1]||(s[1]=r=>Me("API"))}," API ",10,fa)],8,pa)]),f.value==="JSON"?(l(),p("div",ma,[c("label",ha,[c("span",_a,u(y(a)("datasource.fields.rawData")),1),c("textarea",{class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--json","data-testid":"datasource-raw-data",spellcheck:"false",readonly:S.value,value:h.value,onInput:wt,onKeydown:s[2]||(s[2]=D(()=>{},["stop"]))},null,40,ba)]),g.value?(l(),p("p",va,u(g.value),1)):k("",!0)])):(l(),p("div",Sa,[c("div",ga,[c("label",ka,[c("span",wa,u(y(a)("datasource.fields.domain")),1),c("input",{class:"ce-datasource-tool__input","data-testid":"datasource-domain",type:"text",readonly:S.value,value:v.domain,onInput:s[3]||(s[3]=r=>xe("domain",r.target.value)),onKeydown:s[4]||(s[4]=D(()=>{},["stop"]))},null,40,Oa)]),c("label",Da,[c("span",ja,u(y(a)("datasource.fields.path")),1),c("input",{class:"ce-datasource-tool__input","data-testid":"datasource-path",type:"text",readonly:S.value,value:v.path,onInput:s[5]||(s[5]=r=>xe("path",r.target.value)),onKeydown:s[6]||(s[6]=D(()=>{},["stop"]))},null,40,Ia)]),c("label",Na,[c("span",Ta,u(y(a)("datasource.fields.method")),1),c("select",{class:"ce-datasource-tool__input","data-testid":"datasource-method",disabled:S.value,value:v.method,onChange:s[7]||(s[7]=r=>Dt(r.target.value))},[...s[26]||(s[26]=[c("option",{value:"GET"},"GET",-1),c("option",{value:"POST"},"POST",-1)])],40,Aa)])]),c("details",Ja,[c("summary",$a,[c("span",qa,u(y(a)("datasource.sections.headers")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-header-add",onClick:s[8]||(s[8]=D(r=>ze("headerData"),["stop","prevent"]))},u(y(a)("datasource.actions.add")),1)):k("",!0)]),te("headerData").length?k("",!0):(l(),p("p",Ca,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(te("headerData"),(r,i)=>(l(),p("div",{key:`header-${i}`,class:"ce-datasource-tool__row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-header-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>ae("headerData",i,"key",b.target.value),onKeydown:s[9]||(s[9]=D(()=>{},["stop"]))},null,40,Fa),c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-header-mock-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:r.mock,onInput:b=>ae("headerData",i,"mock",b.target.value),onKeydown:s[10]||(s[10]=D(()=>{},["stop"]))},null,40,Pa),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-header-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Le("headerData",i)},u(y(a)("datasource.actions.remove")),9,Ea)):k("",!0)]))),128))]),c("details",Ma,[c("summary",xa,[c("span",za,u(y(a)("datasource.sections.queries")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-query-add",onClick:s[11]||(s[11]=D(r=>ze("queryData"),["stop","prevent"]))},u(y(a)("datasource.actions.add")),1)):k("",!0)]),te("queryData").length?k("",!0):(l(),p("p",La,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(te("queryData"),(r,i)=>(l(),p("div",{key:`query-${i}`,class:"ce-datasource-tool__row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-query-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>ae("queryData",i,"key",b.target.value),onKeydown:s[12]||(s[12]=D(()=>{},["stop"]))},null,40,Ba),c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-query-mock-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:r.mock,onInput:b=>ae("queryData",i,"mock",b.target.value),onKeydown:s[13]||(s[13]=D(()=>{},["stop"]))},null,40,Ra),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-query-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Le("queryData",i)},u(y(a)("datasource.actions.remove")),9,Ka)):k("",!0)]))),128))]),c("details",Ha,[c("summary",Va,[c("span",Ua,u(y(a)("datasource.sections.body")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-body-add",onClick:D(jt,["stop","prevent"])},u(y(a)("datasource.actions.add")),1)):k("",!0)]),v.bodyData.length?k("",!0):(l(),p("p",Ga,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(v.bodyData,(r,i)=>(l(),p("div",{key:`body-${i}`,class:"ce-datasource-tool__body-row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-body-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>It(i,b.target.value),onKeydown:s[14]||(s[14]=D(()=>{},["stop"]))},null,40,Wa),c("select",{class:"ce-datasource-tool__input","data-testid":`datasource-body-type-${i}`,disabled:S.value,value:r.dataType,onChange:b=>Nt(i,b.target.value)},[(l(!0),p(F,null,P(y(d),b=>(l(),p("option",{key:b,value:b},u(b),9,Xa))),128))],40,Qa),r.dataType==="boolean"?(l(),p("select",{key:0,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,disabled:S.value,value:String(r.mock===!0),onChange:b=>me(i,b.target.value)},[...s[27]||(s[27]=[c("option",{value:"false"},"false",-1),c("option",{value:"true"},"true",-1)])],40,Ya)):r.dataType==="null"?(l(),p("input",{key:1,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,type:"text",readonly:"",value:"null"},null,8,Za)):r.dataType==="object"||r.dataType==="array"?(l(),p("textarea",{key:2,class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--mock","data-testid":`datasource-body-mock-${i}`,spellcheck:"false",readonly:S.value,value:z.value[i]??R(r),onInput:b=>me(i,b.target.value),onKeydown:s[15]||(s[15]=D(()=>{},["stop"]))},null,40,eo)):(l(),p("input",{key:3,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,type:r.dataType==="number"?"number":"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:z.value[i]??R(r),onInput:b=>me(i,b.target.value),onKeydown:s[16]||(s[16]=D(()=>{},["stop"]))},null,40,to)),e.edit?(l(),p("button",{key:4,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-body-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Tt(i)},u(y(a)("datasource.actions.remove")),9,ao)):k("",!0),$.value[i]?(l(),p("p",{key:5,class:"ce-datasource-tool__body-error","data-testid":`datasource-body-error-${i}`},u($.value[i]),9,oo)):k("",!0)]))),128))])])),c("div",so,[c("div",null,[c("div",ro,u(y(a)("datasource.sections.generateFields")),1),c("p",no,u(y(a)("datasource.help.generateFields")),1)]),c("div",io,[e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__schema-button",type:"button","data-testid":"datasource-json-schema-parse-button",disabled:q.value,onClick:qt},u(q.value?y(a)("datasource.actions.generatingFields"):y(a)("datasource.actions.generateFields")),9,co)):k("",!0),m.value?(l(),p("span",uo,u(y(a)("datasource.fields.generatedFields"))+": "+u(Te.value.length),1)):k("",!0)]),j.value?(l(),p("p",lo,u(j.value),1)):k("",!0)]),c("div",po,[c("div",yo,[c("div",null,[c("div",fo,u(y(a)("datasource.sections.fieldSelection")),1),c("p",mo,u(y(a)("datasource.help.fieldSelection")),1)]),m.value?(l(),p("input",{key:0,class:"ce-datasource-tool__input ce-datasource-tool__schema-search","data-testid":"datasource-schema-search",type:"search",placeholder:y(a)("datasource.fields.searchFields"),value:V.value,onInput:s[17]||(s[17]=r=>V.value=r.target.value),onKeydown:s[18]||(s[18]=D(()=>{},["stop"]))},null,40,ho)):k("",!0)]),c("div",_o,[c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="list"}]),"data-testid":"datasource-schema-tab-list",onClick:s[19]||(s[19]=r=>C.value="list")},u(y(a)("datasource.tabs.list")),3),c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="form"}]),"data-testid":"datasource-schema-tab-form",onClick:s[20]||(s[20]=r=>C.value="form")},u(y(a)("datasource.tabs.form")),3),c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="advanced"}]),"data-testid":"datasource-schema-tab-advanced",onClick:s[21]||(s[21]=r=>C.value="advanced")},u(y(a)("datasource.tabs.advanced")),3)]),C.value==="list"?(l(),p("div",bo,[m.value?Ae.value.length?(l(),p("label",So,[c("span",go,u(y(a)("datasource.fields.recordPath")),1),c("select",{class:"ce-datasource-tool__input","data-testid":"datasource-list-record-path",disabled:S.value,value:pt.value,onChange:s[22]||(s[22]=r=>$t(r.target.value))},[(l(!0),p(F,null,P(Ae.value,r=>(l(),p("option",{key:r.path||"root",value:r.path},u(_t(r.path)),9,wo))),128))],40,ko)])):(l(),p("p",Oo,u(y(a)("datasource.noListRecord")),1)):(l(),p("p",vo,u(y(a)("datasource.emptySchema")),1)),qe.value.length?(l(),p("div",Do,[c("div",jo,u(y(a)("datasource.fields.selectedFields"))+": "+u(yt.value),1),(l(!0),p(F,null,P(qe.value,r=>(l(),p("label",{key:r.path,class:"ce-datasource-tool__schema-field","data-testid":`datasource-list-field-${r.path}`},[c("input",{class:"ce-datasource-tool__checkbox",type:"checkbox",disabled:S.value,checked:r.enabled,"data-testid":`datasource-list-field-enabled-${r.path}`,onChange:i=>Ke("list",r.path,i.target.checked)},null,40,No),c("span",To,[c("input",{class:"ce-datasource-tool__input ce-datasource-tool__field-label-input",type:"text",readonly:S.value,value:r.label,"data-testid":`datasource-list-field-label-${r.path}`,onInput:i=>Re("list",r.path,i.target.value),onKeydown:s[23]||(s[23]=D(()=>{},["stop"]))},null,40,Ao),c("span",Jo,u(r.path),1)]),c("span",$o,[c("span",qo,u(ye(r.type)),1),c("span",Co,u(Fe(r.componentHint)),1),r.required?(l(),p("span",Fo,u(y(a)("datasource.fields.required")),1)):k("",!0)])],8,Io))),128))])):k("",!0)])):C.value==="form"?(l(),p("div",Po,[Ce.value.length?(l(),p("div",Eo,[c("div",Mo,u(y(a)("datasource.fields.selectedFields"))+": "+u(ft.value),1),(l(!0),p(F,null,P(Ce.value,r=>(l(),p("label",{key:r.path,class:"ce-datasource-tool__schema-field","data-testid":`datasource-form-field-${r.path}`},[c("input",{class:"ce-datasource-tool__checkbox",type:"checkbox",disabled:S.value,checked:r.enabled,"data-testid":`datasource-form-field-enabled-${r.path}`,onChange:i=>Ke("form",r.path,i.target.checked)},null,40,zo),c("span",Lo,[c("input",{class:"ce-datasource-tool__input ce-datasource-tool__field-label-input",type:"text",readonly:S.value,value:r.label,"data-testid":`datasource-form-field-label-${r.path}`,onInput:i=>Re("form",r.path,i.target.value),onKeydown:s[24]||(s[24]=D(()=>{},["stop"]))},null,40,Bo),c("span",Ro,u(r.path),1)]),c("span",Ko,[c("span",Ho,u(ye(r.type)),1),c("span",Vo,u(Fe(r.componentHint)),1),r.required?(l(),p("span",Uo,u(y(a)("datasource.fields.required")),1)):k("",!0)])],8,xo))),128))])):(l(),p("p",Go,u(y(a)("datasource.noFormFields")),1))])):(l(),p("div",Wo,[m.value?(l(),p("div",Qo,[(l(!0),p(F,null,P(lt.value,r=>(l(),p("div",{key:r.path||"root",class:"ce-datasource-tool__schema-node",style:zt({paddingLeft:`${r.depth*18}px`}),"data-testid":`datasource-schema-node-${ht(r.path)}`},[c("span",Yo,u(r.name),1),c("span",Zo,u(r.displayPath),1),c("span",es,u(ye(r.type)),1),r.required?(l(),p("span",ts,u(y(a)("datasource.fields.required")),1)):k("",!0)],12,Xo))),128))])):k("",!0),c("label",as,[c("span",os,u(y(a)("datasource.fields.jsonSchema")),1),c("textarea",{class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--schema","data-testid":"datasource-json-schema",spellcheck:"false",readonly:S.value,value:O.value,onInput:Ot,onKeydown:s[25]||(s[25]=D(()=>{},["stop"]))},null,40,ss)])]))])]))}}),us=Kt(rs,[["__scopeId","data-v-ab5bf27d"]]);export{ia as $,us as M,ca as a,ds as m};
1
+ var Ft=Object.defineProperty;var Pt=(e,t,a)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var se=(e,t,a)=>Pt(e,typeof t!="symbol"?t+"":t,a);import{f as Et,r as J,K as he,L as Mt,F as xt,o as l,j as p,l as c,C as u,u as y,n as G,p as D,t as k,G as F,H as P,v as zt,e as I}from"./vue-vendor-CGusfGYN.js";import{u as Lt,d as Bt,i as Rt,_ as Kt}from"./block-advanced-EJNdvNM4.js";function T(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function x(e){return e===null||typeof e=="string"||typeof e=="boolean"?!0:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.every(t=>x(t)):T(e)?Object.values(e).every(t=>x(t)):!1}function Xe(e){return T(e)&&x(e)}function B(e){return JSON.parse(JSON.stringify(e))}function _e(e){return JSON.parse(JSON.stringify(e))}function Oe(e){return JSON.parse(JSON.stringify(e))}function L(e,t){return Object.keys(e).every(a=>t.includes(a))}function K(e,t){if(t===void 0)return e;if(typeof t=="string")return{...e,description:t}}function Q(e){if(T(e)){if(e.anyOf!==void 0){if(!L(e,["anyOf","description"])||!Array.isArray(e.anyOf)||!e.anyOf.length)return;const t=[];for(const a of e.anyOf){const n=Q(a);if(!n)return;t.push(n)}return K({anyOf:t},e.description)}if(typeof e.type=="string"){if(e.type==="object"){if(!L(e,["type","properties","required","description"])||!T(e.properties))return;const t={};for(const[n,d]of Object.entries(e.properties)){const f=Q(d);if(!f)return;t[n]=f}const a={type:"object",properties:t};if(e.required!==void 0){if(!Array.isArray(e.required)||!e.required.every(n=>typeof n=="string"))return;a.required=[...e.required]}return K(a,e.description)}if(e.type==="array"){if(!L(e,["type","items","description"]))return;const t=Q(e.items);return t?K({type:"array",items:t},e.description):void 0}if(e.type==="string"){if(!L(e,["type","enum","description"]))return;const t={type:"string"};if(e.enum!==void 0){if(!Array.isArray(e.enum)||!e.enum.every(a=>typeof a=="string"))return;t.enum=[...e.enum]}return K(t,e.description)}if(e.type==="number"){if(!L(e,["type","minimum","maximum","description"]))return;const t={type:"number"};if(e.minimum!==void 0){if(typeof e.minimum!="number"||!Number.isFinite(e.minimum))return;t.minimum=e.minimum}if(e.maximum!==void 0){if(typeof e.maximum!="number"||!Number.isFinite(e.maximum))return;t.maximum=e.maximum}return K(t,e.description)}if(e.type==="boolean")return L(e,["type","description"])?K({type:"boolean"},e.description):void 0;if(e.type==="null"&&L(e,["type"]))return{type:"null"}}}}function be(e){return"type"in e&&e.type==="unknown"}function A(e){return"anyOf"in e}function ne(e){return"anyOf"in e}function W(e){return Oe(e)}function Ht(){return{type:"unknown"}}function Vt(){return{type:"object",properties:{}}}function re(e){if(be(e))return Vt();if(ne(e))return{anyOf:e.anyOf.map(t=>re(t))};if(e.type==="array")return{...e,items:re(e.items)};if(e.type==="object"){const t={};return Object.entries(e.properties).forEach(([a,n])=>{t[a]=re(n)}),{...e,properties:t}}return _e(e)}function Ye(e){return ne(e)?e.anyOf.flatMap(t=>Ye(t)):[e]}function ve(e,t){if(be(e))return W(t);if(be(t))return W(e);if(!(ne(e)||ne(t))&&e.type===t.type){if(e.type==="object"&&t.type==="object"){const a={},n=new Set([...Object.keys(e.properties),...Object.keys(t.properties)]);for(const d of n){const f=e.properties[d],_=t.properties[d];if(f&&_){const h=Se(f,_);a[d]=h;continue}a[d]=W(f??_)}return{type:"object",properties:a}}return e.type==="array"&&t.type==="array"?{type:"array",items:Se(e.items,t.items)}:W(e)}}function Ut(e){const t=[];return e.flatMap(a=>Ye(a)).forEach(a=>{const n=t.findIndex(d=>ve(d,a)!==void 0);if(n>=0){t[n]=ve(t[n],a);return}t.push(W(a))}),t.length===1?t[0]:{anyOf:t}}function Se(e,t){const a=ve(e,t);return a||Ut([e,t])}function ge(e){if(e===null)return{ok:!0,schema:{type:"null"}};if(typeof e=="string")return{ok:!0,schema:{type:"string"}};if(typeof e=="number")return{ok:!0,schema:{type:"number"}};if(typeof e=="boolean")return{ok:!0,schema:{type:"boolean"}};if(Array.isArray(e)){if(!e.length)return{ok:!0,schema:{type:"array",items:Ht()}};let a;for(const n of e){const d=ge(n);if(!d.ok)return d;if(!a){a=d.schema;continue}a=Se(a,d.schema)}return{ok:!0,schema:{type:"array",items:a}}}const t={};for(const[a,n]of Object.entries(e)){const d=ge(n);if(!d.ok)return d;t[a]=d.schema}return{ok:!0,schema:{type:"object",properties:t}}}function Gt(e){if(Array.isArray(e)&&!e.length)return{ok:!1,reason:"emptyArray"};const t=ge(e);return t.ok?{ok:!0,schema:re(t.schema)}:t}function De(e,t){return e?`${e}.${t}`:t}function Ze(e){return e?`${e}[]`:"[]"}function ue(e){return e.replace(/\[\]/g,"").split(".").filter(Boolean).pop()||e||"root"}function je(e){return e==="number"?"number":e==="boolean"?"switch":e==="object"?"object":e==="array"?"array":"text"}function Ge(e){return e==="string"||e==="number"||e==="boolean"||e==="null"}function Wt(e){return A(e)?"union":e.type}function et(e,t){if(!A(e))return e.type===t?e:void 0;const a=e.anyOf.filter(d=>!(!A(d)&&d.type==="null"));if(a.length!==1)return;const[n]=a;return!A(n)&&n.type===t?n:void 0}function ie(e){if(!e)return;const t=et(e,"object");return t&&!A(t)&&t.type==="object"?t:void 0}function ce(e){if(!e)return;const t=et(e,"array");return t&&!A(t)&&t.type==="array"?t:void 0}function tt(e){if(!A(e))return Ge(e.type)?e.type:void 0;const t=e.anyOf.filter(n=>!(!A(n)&&n.type==="null"));if(t.length!==1)return;const[a]=t;return!A(a)&&Ge(a.type)?a.type:void 0}function at(e,t,a=ue(e.path)){const n=e.selectionType??(e.type==="union"?void 0:e.type);if(!n)throw new TypeError("Schema tree node is not selectable.");return{path:e.path,label:a,type:n,required:e.required,enabled:t,componentHint:e.componentHint}}function ot(e){return{...e,selectable:!1,selectionType:void 0,children:e.children.map(t=>ot(t))}}function X(e,t="",a=0,n=!1){if(!e)return[];const d=tt(e),f=Wt(e),_=t?ue(t):"root",h={path:t,displayPath:t||"root",name:_,type:f,...d?{selectionType:d}:{},required:n,selectable:!!d,componentHint:je(d??(f==="union"?"string":f)),depth:a,children:[]};if(A(e))h.children=e.anyOf.flatMap((g,m)=>X(g,`${t||"root"}.anyOf[${m}]`,a+1,n).map(O=>ot(O)));else if(e.type==="object"){const g=new Set(e.required??[]);h.children=Object.entries(e.properties).flatMap(([m,O])=>X(O,De(t,m),a+1,g.has(m)))}else if(e.type==="array"){const g=Ze(t);h.children=X(e.items,g,a+1,n)}return[h]}function Ie(e){return e.flatMap(t=>[t,...Ie(t.children)])}function Ne(e){if(!e)return[];const t=[],a=new Set;function n(f){a.has(f)||(a.add(f),t.push({path:f,label:f?`${f}[]`:"root[]"}))}function d(f,_){const h=ce(f);if(h){n(_),d(h.items,Ze(_));return}const g=ie(f);g&&Object.entries(g.properties).forEach(([m,O])=>{d(O,De(_,m))})}return d(e,""),t}function Qt(e,t){var d,f;if(!e)return;if(!t)return(d=ce(e))==null?void 0:d.items;const a=t.split(".").filter(Boolean);let n=e;for(const _ of a){const h=ie(n);if(!h)return;n=h.properties[_]}return(f=ce(n))==null?void 0:f.items}function Xt(e,t="",a=!1){return Ie(X(e,t)).filter(n=>(a||n.path!==t)&&n.selectable)}function st(e,t){const a=Qt(e,t),n=t?`${t}[]`:"[]";return Xt(a,n,!0).map(d=>at(d,!0))}function Yt(e){var f;const t=((f=ce(e))==null?void 0:f.items)??e,a=ie(t);if(!a)return[];const n=[];function d(_,h,g){const m=tt(_);if(m){n.push(at({path:h,name:ue(h),type:A(_)?"union":_.type,selectionType:m,required:g,componentHint:je(m)},!0));return}const O=ie(_);if(!O)return;const j=new Set(O.required??[]);Object.entries(O.properties).forEach(([q,w])=>{d(w,De(h,q),j.has(q))})}return Object.entries(a.properties).forEach(([_,h])=>{d(h,_,(a.required??[]).includes(_))}),n}function ke(e,t){if(!T(e))return t?Oe(t):void 0;const a=typeof e.path=="string"&&e.path?e.path:t==null?void 0:t.path;if(!a)return;const n=e.type==="object"||e.type==="array"||e.type==="string"||e.type==="number"||e.type==="boolean"||e.type==="null"?e.type:(t==null?void 0:t.type)??"string",d=typeof e.label=="string"&&e.label.trim()?e.label.trim():(t==null?void 0:t.label)??ue(a),f=typeof e.required=="boolean"?e.required:(t==null?void 0:t.required)??!1,_=typeof e.enabled=="boolean"?e.enabled:(t==null?void 0:t.enabled)??!0,h=e.componentHint==="text"||e.componentHint==="number"||e.componentHint==="switch"||e.componentHint==="object"||e.componentHint==="array"?e.componentHint:(t==null?void 0:t.componentHint)??je(n);return{path:a,label:d,type:n,required:f,enabled:_,componentHint:h}}function We(e,t){const a=new Map;return Array.isArray(t)&&t.forEach(n=>{const d=ke(n);d&&a.set(d.path,d)}),e.map(n=>{const d=a.get(n.path);return d?{...n,label:d.label||n.label,enabled:d.enabled}:Oe(n)})}function Zt(e){var n;const t=Ne(e),a=t.find(d=>st(e,d.path).length>0);return(a==null?void 0:a.path)??((n=t[0])==null?void 0:n.path)??""}function Y(e,t){var g,m,O;if(!e)return;const a=Ne(e),n=((g=t==null?void 0:t.list)==null?void 0:g.recordPath)??"",d=a.some(j=>j.path===n)?n:Zt(e),f=a.length?We(st(e,d),(m=t==null?void 0:t.list)==null?void 0:m.fields):[],_=We(Yt(e),(O=t==null?void 0:t.form)==null?void 0:O.fields),h={};return a.length&&(h.list={recordPath:d,fields:f}),_.length&&(h.form={fields:_}),h.list||h.form?h:void 0}function we(e,t){if(!T(e))return t?Y(t):void 0;const a={};return T(e.list)&&(a.list={recordPath:typeof e.list.recordPath=="string"?e.list.recordPath:"",fields:Array.isArray(e.list.fields)?e.list.fields.map(n=>ke(n)).filter(n=>n!==void 0):[]}),T(e.form)&&(a.form={fields:Array.isArray(e.form.fields)?e.form.fields.map(n=>ke(n)).filter(n=>n!==void 0):[]}),t?Y(t,a):a.list||a.form?a:void 0}class M extends Error{constructor(a,n,d){super(n);se(this,"code");se(this,"status");se(this,"statusText");this.name="DatasourceError",this.code=a,this.status=d==null?void 0:d.status,this.statusText=d==null?void 0:d.statusText}}const rt=["string","number","boolean","null","object","array"];function H(e){return typeof e=="string"?e:""}function nt(e){return e==="POST"?"POST":"GET"}function it(e){return rt.includes(e)?e:"string"}function ct(e,t={}){return x(e)?B(e):t}function ea(e){return e==="number"?0:e==="boolean"?!1:e==="null"?null:e==="object"?{}:e==="array"?[]:""}function de(e,t){return e==="string"?typeof t=="string"?t:H(t):e==="number"?typeof t=="number"&&Number.isFinite(t)?t:0:e==="boolean"?typeof t=="boolean"?t:!1:e==="null"?null:e==="object"?Xe(t)?B(t):{}:Array.isArray(t)&&x(t)?B(t):[]}function Qe(e){return Array.isArray(e)?e.filter(t=>T(t)).map(t=>({key:H(t.key),mock:H(t.mock)})):[]}function ta(e){return Array.isArray(e)?e.filter(t=>T(t)).map(t=>{const a=it(t.dataType);return{key:H(t.key),dataType:a,mock:de(a,t.mock)}}):[]}function aa(){return{type:"API",domain:"",path:"",method:"GET",headerData:[],bodyData:[],queryData:[]}}function dt(){return{type:"JSON",rawData:{}}}function E(e){if(!T(e))return dt();const t=Q(e.jsonSchema),a=we(e.schemaSelections,t);if(e.type==="API"){const d={type:"API",domain:H(e.domain),path:H(e.path),method:nt(e.method),headerData:Qe(e.headerData),bodyData:ta(e.bodyData),queryData:Qe(e.queryData)};return t&&(d.jsonSchema=t),a&&(d.schemaSelections=a),d}const n={type:"JSON",rawData:ct(e.rawData,{})};return t&&(n.jsonSchema=t),a&&(n.schemaSelections=a),n}function oa(e){const t=e.domain.trim(),a=e.path.trim(),n=/^[a-z][a-z\d+\-.]*:/i.test(a),d=t||(typeof window<"u"?window.location.origin:"");if(!d&&!n)throw new TypeError("API domain is required when calling a relative datasource path outside the browser.");const f=d?new URL(a||"/",d.endsWith("/")?d:`${d}/`):new URL(a||"/");return e.queryData.forEach(_=>{const h=_.key.trim();h&&f.searchParams.append(h,_.mock)}),f.toString()}function sa(e){const t=new Headers;return e.headerData.forEach(a=>{const n=a.key.trim();n&&t.set(n,a.mock)}),e.method==="POST"&&!t.has("Content-Type")&&t.set("Content-Type","application/json"),t}function ra(e){if(e.method!=="POST")return;const t=e.bodyData.reduce((a,n)=>{const d=n.key.trim();return d&&(a[d]=de(n.dataType,n.mock)),a},{});return JSON.stringify(t)}async function na(e){if(!(e.headers.get("content-type")??"").toLowerCase().includes("json"))throw new M("nonJsonResponse","The API response is not JSON.");try{const a=await e.json();if(!x(a))throw new M("invalidJsonResponse","The API response is not valid JSON.");return a}catch(a){throw a instanceof M?a:new M("invalidJsonResponse","The API response is not valid JSON.")}}const ia=async e=>{const t=E(e);if(t.type==="JSON")return B(t.rawData);const a=await fetch(oa(t),{method:t.method,headers:sa(t),body:ra(t)});if(!a.ok)throw new M("apiRequestFailed",`API request failed: ${a.status} ${a.statusText}`.trim(),{status:a.status,statusText:a.statusText});return await na(a)},ca=async e=>{const t=await ia(e),a=Gt(t);if(a.ok)return a.schema;throw a.reason==="emptyArray"?new M("emptyArraySchema","Cannot infer JSON Schema from an empty array."):new M("mixedArraySchema","The array contains incompatible types, so JSON Schema cannot be inferred.")},da={class:"ce-datasource-tool","data-testid":"editor-datasource-tool"},ua={class:"ce-datasource-tool__header"},la={class:"ce-datasource-tool__title"},pa=["aria-label"],ya=["disabled"],fa=["disabled"],ma={key:0,class:"ce-datasource-tool__panel","data-testid":"datasource-json-panel"},ha={class:"ce-datasource-tool__field"},_a={class:"ce-datasource-tool__label"},ba=["readonly","value"],va={key:0,class:"ce-datasource-tool__error","data-testid":"datasource-json-error"},Sa={key:1,class:"ce-datasource-tool__panel","data-testid":"datasource-api-panel"},ga={class:"ce-datasource-tool__grid"},ka={class:"ce-datasource-tool__field"},wa={class:"ce-datasource-tool__label"},Oa=["readonly","value"],Da={class:"ce-datasource-tool__field"},ja={class:"ce-datasource-tool__label"},Ia=["readonly","value"],Na={class:"ce-datasource-tool__field"},Ta={class:"ce-datasource-tool__label"},Aa=["disabled","value"],Ja={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-header-list"},$a={class:"ce-datasource-tool__list-header"},qa={class:"ce-datasource-tool__list-title"},Ca={key:0,class:"ce-datasource-tool__empty"},Fa=["data-testid","readonly","placeholder","value","onInput"],Pa=["data-testid","readonly","placeholder","value","onInput"],Ea=["data-testid","aria-label","onClick"],Ma={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-query-list"},xa={class:"ce-datasource-tool__list-header"},za={class:"ce-datasource-tool__list-title"},La={key:0,class:"ce-datasource-tool__empty"},Ba=["data-testid","readonly","placeholder","value","onInput"],Ra=["data-testid","readonly","placeholder","value","onInput"],Ka=["data-testid","aria-label","onClick"],Ha={open:"",class:"ce-datasource-tool__list","data-testid":"datasource-body-list"},Va={class:"ce-datasource-tool__list-header"},Ua={class:"ce-datasource-tool__list-title"},Ga={key:0,class:"ce-datasource-tool__empty"},Wa=["data-testid","readonly","placeholder","value","onInput"],Qa=["data-testid","disabled","value","onChange"],Xa=["value"],Ya=["data-testid","disabled","value","onChange"],Za=["data-testid"],eo=["data-testid","readonly","value","onInput"],to=["data-testid","type","readonly","placeholder","value","onInput"],ao=["data-testid","aria-label","onClick"],oo=["data-testid"],so={class:"ce-datasource-tool__generate-panel","data-testid":"datasource-schema-generate-panel"},ro={class:"ce-datasource-tool__section-title"},no={class:"ce-datasource-tool__section-copy"},io={class:"ce-datasource-tool__generate-actions"},co=["disabled"],uo={key:1,class:"ce-datasource-tool__schema-summary","data-testid":"datasource-schema-summary"},lo={key:0,class:"ce-datasource-tool__error","data-testid":"datasource-json-schema-error"},po={class:"ce-datasource-tool__schema-panel","data-testid":"datasource-json-schema-panel"},yo={class:"ce-datasource-tool__schema-header"},fo={class:"ce-datasource-tool__section-title"},mo={class:"ce-datasource-tool__section-copy"},ho=["placeholder","value"],_o={class:"ce-datasource-tool__tabs","data-testid":"datasource-schema-tabs"},bo={key:0,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-list-schema-panel"},vo={key:0,class:"ce-datasource-tool__empty","data-testid":"datasource-schema-empty"},So={key:1,class:"ce-datasource-tool__field"},go={class:"ce-datasource-tool__label"},ko=["disabled","value"],wo=["value"],Oo={key:2,class:"ce-datasource-tool__empty","data-testid":"datasource-list-schema-empty"},Do={key:3,class:"ce-datasource-tool__field-list","data-testid":"datasource-list-fields"},jo={class:"ce-datasource-tool__field-list-summary"},Io=["data-testid"],No=["disabled","checked","data-testid","onChange"],To={class:"ce-datasource-tool__schema-field-main"},Ao=["readonly","value","data-testid","onInput"],Jo={class:"ce-datasource-tool__schema-path"},$o={class:"ce-datasource-tool__schema-badges"},qo={class:"ce-datasource-tool__schema-badge"},Co={class:"ce-datasource-tool__schema-badge"},Fo={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},Po={key:1,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-form-schema-panel"},Eo={key:0,class:"ce-datasource-tool__field-list","data-testid":"datasource-form-fields"},Mo={class:"ce-datasource-tool__field-list-summary"},xo=["data-testid"],zo=["disabled","checked","data-testid","onChange"],Lo={class:"ce-datasource-tool__schema-field-main"},Bo=["readonly","value","data-testid","onInput"],Ro={class:"ce-datasource-tool__schema-path"},Ko={class:"ce-datasource-tool__schema-badges"},Ho={class:"ce-datasource-tool__schema-badge"},Vo={class:"ce-datasource-tool__schema-badge"},Uo={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},Go={key:1,class:"ce-datasource-tool__empty","data-testid":"datasource-form-schema-empty"},Wo={key:2,class:"ce-datasource-tool__schema-tab-panel","data-testid":"datasource-advanced-schema-panel"},Qo={key:0,class:"ce-datasource-tool__schema-tree","data-testid":"datasource-schema-tree"},Xo=["data-testid"],Yo={class:"ce-datasource-tool__schema-node-name"},Zo={class:"ce-datasource-tool__schema-path"},es={class:"ce-datasource-tool__schema-badge"},ts={key:0,class:"ce-datasource-tool__schema-badge ce-datasource-tool__schema-badge--required"},as={class:"ce-datasource-tool__field"},os={class:"ce-datasource-tool__label"},ss=["readonly","value"],ds=Bt({toolbox:{get title(){return Rt.t("datasource.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><ellipse cx="12" cy="6" rx="7" ry="3" fill="none" stroke="currentColor" stroke-width="2"/><path d="M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6M5 12v6c0 1.7 3.1 3 7 3s7-1.3 7-3v-6" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 12c1.1.5 2.5.8 4 .8s2.9-.3 4-.8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({value:dt()}),normalizeProps:e=>({edit:e.edit??!1,value:E(e.value)}),serialize:e=>({value:E(e.value)})}),rs=Et({__name:"MDatasourceEditor",props:{edit:{type:Boolean},value:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,{t:a}=Lt(),n=E(t.value),d=rt,f=J(n.type),_=he(n.type==="JSON"?n.rawData:{}),h=J(le(_.value)),g=J(""),m=he(n.jsonSchema),O=J(pe(m.value)),j=J(""),q=J(!1),w=he(n.schemaSelections),C=J("list"),V=J(""),v=Mt(n.type==="API"?n:aa()),z=J(v.bodyData.map(o=>R(o))),$=J(v.bodyData.map(()=>"")),S=I(()=>!t.edit),ut=I(()=>X(m.value)),Te=I(()=>Ie(ut.value)),Ae=I(()=>Ne(m.value)),Je=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.list)==null?void 0:s.fields)??[]}),$e=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.form)==null?void 0:s.fields)??[]}),lt=I(()=>mt(Te.value,V.value)),qe=I(()=>Ee(Je.value,V.value)),Ce=I(()=>Ee($e.value,V.value)),pt=I(()=>{var o,s;return((s=(o=w.value)==null?void 0:o.list)==null?void 0:s.recordPath)??""}),yt=I(()=>Je.value.filter(o=>o.enabled).length),ft=I(()=>$e.value.filter(o=>o.enabled).length);function le(o){return JSON.stringify(o,null,2)}function pe(o){return o?JSON.stringify(o,null,2):""}function ye(o){return a(`datasource.schemaTypes.${o}`)}function Fe(o){return a(`datasource.componentHints.${o}`)}function Pe(o){return o.trim().toLowerCase()}function mt(o,s){const r=Pe(s);return r?o.filter(i=>i.name.toLowerCase().includes(r)||i.displayPath.toLowerCase().includes(r)):o}function Ee(o,s){const r=Pe(s);return r?o.filter(i=>i.label.toLowerCase().includes(r)||i.path.toLowerCase().includes(r)):o}function ht(o){return o||"root"}function _t(o){return o?`${o}[]`:a("datasource.fields.rootRecordPath")}function bt(o){return{edit:t.edit,value:E(o)}}function Z(o){var r,i;if(!t.edit)return;const s=bt(o);(r=t.onToolChange)==null||r.call(t,s),(i=t.onChange)==null||i.call(t,s)}function ee(){return E({type:"JSON",rawData:ct(_.value,{}),jsonSchema:m.value,schemaSelections:w.value})}function fe(){return E({type:"API",domain:v.domain,path:v.path,method:v.method,headerData:v.headerData,bodyData:v.bodyData,queryData:v.queryData,jsonSchema:m.value,schemaSelections:w.value})}function U(){Z(f.value==="JSON"?ee():fe())}function N(){Z(fe())}function vt(){z.value=v.bodyData.map(o=>R(o)),$.value=v.bodyData.map(()=>"")}function St(o,s){m.value=o?_e(o):void 0,O.value=pe(m.value),w.value=we(s,m.value),j.value=""}function gt(o){Object.assign(v,{type:"API",domain:o.domain,path:o.path,method:o.method,headerData:o.headerData.map(s=>({...s})),bodyData:o.bodyData.map(s=>({key:s.key,dataType:s.dataType,mock:de(s.dataType,s.mock)})),queryData:o.queryData.map(s=>({...s}))}),vt()}function kt(o){const s=E(o);if(f.value=s.type,St(s.jsonSchema,s.schemaSelections),s.type==="JSON"){_.value=s.rawData,h.value=le(s.rawData),g.value="";return}gt(s)}function Me(o){if(!(!t.edit||f.value===o)){if(f.value=o,o==="JSON"){Z(ee());return}N()}}function wt(o){if(!t.edit)return;const s=o.target.value;h.value=s;try{const r=JSON.parse(s);if(!x(r))throw new Error("Invalid JSON value.");_.value=B(r),g.value="",Z(ee())}catch{g.value=a("datasource.validation.invalidJson")}}function Ot(o){if(!t.edit)return;const s=o.target.value;if(O.value=s,!s.trim()){m.value=void 0,w.value=void 0,j.value="",U();return}try{const r=JSON.parse(s),i=Q(r);if(!i)throw new Error("Invalid JSON Schema.");m.value=i,w.value=Y(i,w.value),j.value="",U()}catch{j.value=a("datasource.validation.invalidJsonSchema")}}function xe(o,s){t.edit&&(v[o]=s,N())}function Dt(o){t.edit&&(v.method=nt(o),N())}function te(o){return v[o]}function ze(o){t.edit&&(v[o].push({key:"",mock:""}),N())}function ae(o,s,r,i){if(!t.edit)return;const b=v[o][s];b&&(b[r]=i,N())}function Le(o,s){t.edit&&(v[o].splice(s,1),N())}function jt(){if(!t.edit)return;const o={key:"",dataType:"string",mock:""};v.bodyData.push(o),z.value.push(R(o)),$.value.push(""),N()}function It(o,s){if(!t.edit)return;const r=v.bodyData[o];r&&(r.key=s,N())}function Nt(o,s){if(!t.edit)return;const r=v.bodyData[o];r&&(r.dataType=it(s),r.mock=ea(r.dataType),z.value[o]=R(r),$.value[o]="",N())}function me(o,s){if(!t.edit)return;const r=v.bodyData[o];if(!r)return;z.value[o]=s;const i=Ct(r.dataType,s);if(!i.ok){$.value[o]=i.error;return}r.mock=i.value,$.value[o]="",N()}function Tt(o){t.edit&&(v.bodyData.splice(o,1),z.value.splice(o,1),$.value.splice(o,1),N())}function At(o){return o instanceof M?o.code==="apiRequestFailed"?`${a("datasource.validation.apiRequestFailed")} ${o.status??""} ${o.statusText??""}`.trim():a(`datasource.validation.${o.code}`):o instanceof Error?o.message:String(o)}function Jt(o){m.value=_e(o),O.value=pe(m.value),w.value=Y(m.value,w.value),j.value="",U()}function $t(o){var s,r;!t.edit||!m.value||(w.value=Y(m.value,{...w.value,list:{recordPath:o,fields:((r=(s=w.value)==null?void 0:s.list)==null?void 0:r.fields)??[]}}),U())}function Be(o,s,r){var Ve,Ue;if(!t.edit)return;const i=we(w.value,m.value),b=o==="list"?(Ve=i==null?void 0:i.list)==null?void 0:Ve.fields:(Ue=i==null?void 0:i.form)==null?void 0:Ue.fields;if(!b)return;const He=b.map(oe=>oe.path===s?{...oe,...r,label:r.label!==void 0?r.label:oe.label}:oe);w.value={...i,...o==="list"&&(i!=null&&i.list)?{list:{...i.list,fields:He}}:{},...o==="form"?{form:{fields:He}}:{}},U()}function Re(o,s,r){Be(o,s,{label:r.trim()||s})}function Ke(o,s,r){Be(o,s,{enabled:r})}async function qt(){if(!(!t.edit||q.value)){if(j.value="",f.value==="JSON"){if(g.value){j.value=a("datasource.validation.fixJsonBeforeSchema");return}}else if($.value.findIndex(s=>!!s)>=0){j.value=a("datasource.validation.fixBodyBeforeSchema");return}q.value=!0;try{const o=await ca(f.value==="JSON"?ee():fe());Jt(o)}catch(o){j.value=At(o)}finally{q.value=!1}}}function Ct(o,s){if(o==="string")return{ok:!0,value:s};if(o==="number"){const r=s.trim(),i=Number(r);return!r||!Number.isFinite(i)?{ok:!1,error:a("datasource.validation.invalidNumber")}:{ok:!0,value:i}}if(o==="boolean")return{ok:!0,value:s==="true"};if(o==="null")return{ok:!0,value:null};try{const r=JSON.parse(s);return o==="object"?Xe(r)?{ok:!0,value:B(r)}:{ok:!1,error:a("datasource.validation.invalidObject")}:!Array.isArray(r)||!x(r)?{ok:!1,error:a("datasource.validation.invalidArray")}:{ok:!0,value:B(r)}}catch{return{ok:!1,error:a(o==="object"?"datasource.validation.invalidObject":"datasource.validation.invalidArray")}}}function R(o){const s=de(o.dataType,o.mock);return o.dataType==="object"||o.dataType==="array"?le(s):o.dataType==="null"?"null":String(s)}return xt(()=>t.value,o=>{kt(o)},{deep:!0}),(o,s)=>(l(),p("div",da,[c("div",ua,[c("div",la,u(y(a)("datasource.title")),1),c("div",{class:"ce-datasource-tool__type-switch","aria-label":y(a)("datasource.fields.type")},[c("button",{type:"button",class:G(["ce-datasource-tool__type-button",{"ce-datasource-tool__type-button--active":f.value==="JSON"}]),disabled:S.value,"data-testid":"datasource-type-json",onClick:s[0]||(s[0]=r=>Me("JSON"))}," JSON ",10,ya),c("button",{type:"button",class:G(["ce-datasource-tool__type-button",{"ce-datasource-tool__type-button--active":f.value==="API"}]),disabled:S.value,"data-testid":"datasource-type-api",onClick:s[1]||(s[1]=r=>Me("API"))}," API ",10,fa)],8,pa)]),f.value==="JSON"?(l(),p("div",ma,[c("label",ha,[c("span",_a,u(y(a)("datasource.fields.rawData")),1),c("textarea",{class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--json","data-testid":"datasource-raw-data",spellcheck:"false",readonly:S.value,value:h.value,onInput:wt,onKeydown:s[2]||(s[2]=D(()=>{},["stop"]))},null,40,ba)]),g.value?(l(),p("p",va,u(g.value),1)):k("",!0)])):(l(),p("div",Sa,[c("div",ga,[c("label",ka,[c("span",wa,u(y(a)("datasource.fields.domain")),1),c("input",{class:"ce-datasource-tool__input","data-testid":"datasource-domain",type:"text",readonly:S.value,value:v.domain,onInput:s[3]||(s[3]=r=>xe("domain",r.target.value)),onKeydown:s[4]||(s[4]=D(()=>{},["stop"]))},null,40,Oa)]),c("label",Da,[c("span",ja,u(y(a)("datasource.fields.path")),1),c("input",{class:"ce-datasource-tool__input","data-testid":"datasource-path",type:"text",readonly:S.value,value:v.path,onInput:s[5]||(s[5]=r=>xe("path",r.target.value)),onKeydown:s[6]||(s[6]=D(()=>{},["stop"]))},null,40,Ia)]),c("label",Na,[c("span",Ta,u(y(a)("datasource.fields.method")),1),c("select",{class:"ce-datasource-tool__input","data-testid":"datasource-method",disabled:S.value,value:v.method,onChange:s[7]||(s[7]=r=>Dt(r.target.value))},[...s[26]||(s[26]=[c("option",{value:"GET"},"GET",-1),c("option",{value:"POST"},"POST",-1)])],40,Aa)])]),c("details",Ja,[c("summary",$a,[c("span",qa,u(y(a)("datasource.sections.headers")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-header-add",onClick:s[8]||(s[8]=D(r=>ze("headerData"),["stop","prevent"]))},u(y(a)("datasource.actions.add")),1)):k("",!0)]),te("headerData").length?k("",!0):(l(),p("p",Ca,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(te("headerData"),(r,i)=>(l(),p("div",{key:`header-${i}`,class:"ce-datasource-tool__row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-header-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>ae("headerData",i,"key",b.target.value),onKeydown:s[9]||(s[9]=D(()=>{},["stop"]))},null,40,Fa),c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-header-mock-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:r.mock,onInput:b=>ae("headerData",i,"mock",b.target.value),onKeydown:s[10]||(s[10]=D(()=>{},["stop"]))},null,40,Pa),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-header-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Le("headerData",i)},u(y(a)("datasource.actions.remove")),9,Ea)):k("",!0)]))),128))]),c("details",Ma,[c("summary",xa,[c("span",za,u(y(a)("datasource.sections.queries")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-query-add",onClick:s[11]||(s[11]=D(r=>ze("queryData"),["stop","prevent"]))},u(y(a)("datasource.actions.add")),1)):k("",!0)]),te("queryData").length?k("",!0):(l(),p("p",La,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(te("queryData"),(r,i)=>(l(),p("div",{key:`query-${i}`,class:"ce-datasource-tool__row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-query-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>ae("queryData",i,"key",b.target.value),onKeydown:s[12]||(s[12]=D(()=>{},["stop"]))},null,40,Ba),c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-query-mock-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:r.mock,onInput:b=>ae("queryData",i,"mock",b.target.value),onKeydown:s[13]||(s[13]=D(()=>{},["stop"]))},null,40,Ra),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-query-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Le("queryData",i)},u(y(a)("datasource.actions.remove")),9,Ka)):k("",!0)]))),128))]),c("details",Ha,[c("summary",Va,[c("span",Ua,u(y(a)("datasource.sections.body")),1),e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__action",type:"button","data-testid":"datasource-body-add",onClick:D(jt,["stop","prevent"])},u(y(a)("datasource.actions.add")),1)):k("",!0)]),v.bodyData.length?k("",!0):(l(),p("p",Ga,u(y(a)("datasource.empty")),1)),(l(!0),p(F,null,P(v.bodyData,(r,i)=>(l(),p("div",{key:`body-${i}`,class:"ce-datasource-tool__body-row"},[c("input",{class:"ce-datasource-tool__input","data-testid":`datasource-body-key-${i}`,type:"text",readonly:S.value,placeholder:y(a)("datasource.fields.key"),value:r.key,onInput:b=>It(i,b.target.value),onKeydown:s[14]||(s[14]=D(()=>{},["stop"]))},null,40,Wa),c("select",{class:"ce-datasource-tool__input","data-testid":`datasource-body-type-${i}`,disabled:S.value,value:r.dataType,onChange:b=>Nt(i,b.target.value)},[(l(!0),p(F,null,P(y(d),b=>(l(),p("option",{key:b,value:b},u(b),9,Xa))),128))],40,Qa),r.dataType==="boolean"?(l(),p("select",{key:0,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,disabled:S.value,value:String(r.mock===!0),onChange:b=>me(i,b.target.value)},[...s[27]||(s[27]=[c("option",{value:"false"},"false",-1),c("option",{value:"true"},"true",-1)])],40,Ya)):r.dataType==="null"?(l(),p("input",{key:1,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,type:"text",readonly:"",value:"null"},null,8,Za)):r.dataType==="object"||r.dataType==="array"?(l(),p("textarea",{key:2,class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--mock","data-testid":`datasource-body-mock-${i}`,spellcheck:"false",readonly:S.value,value:z.value[i]??R(r),onInput:b=>me(i,b.target.value),onKeydown:s[15]||(s[15]=D(()=>{},["stop"]))},null,40,eo)):(l(),p("input",{key:3,class:"ce-datasource-tool__input","data-testid":`datasource-body-mock-${i}`,type:r.dataType==="number"?"number":"text",readonly:S.value,placeholder:y(a)("datasource.fields.mock"),value:z.value[i]??R(r),onInput:b=>me(i,b.target.value),onKeydown:s[16]||(s[16]=D(()=>{},["stop"]))},null,40,to)),e.edit?(l(),p("button",{key:4,class:"ce-datasource-tool__remove",type:"button","data-testid":`datasource-body-remove-${i}`,"aria-label":y(a)("datasource.actions.remove"),onClick:b=>Tt(i)},u(y(a)("datasource.actions.remove")),9,ao)):k("",!0),$.value[i]?(l(),p("p",{key:5,class:"ce-datasource-tool__body-error","data-testid":`datasource-body-error-${i}`},u($.value[i]),9,oo)):k("",!0)]))),128))])])),c("div",so,[c("div",null,[c("div",ro,u(y(a)("datasource.sections.generateFields")),1),c("p",no,u(y(a)("datasource.help.generateFields")),1)]),c("div",io,[e.edit?(l(),p("button",{key:0,class:"ce-datasource-tool__schema-button",type:"button","data-testid":"datasource-json-schema-parse-button",disabled:q.value,onClick:qt},u(q.value?y(a)("datasource.actions.generatingFields"):y(a)("datasource.actions.generateFields")),9,co)):k("",!0),m.value?(l(),p("span",uo,u(y(a)("datasource.fields.generatedFields"))+": "+u(Te.value.length),1)):k("",!0)]),j.value?(l(),p("p",lo,u(j.value),1)):k("",!0)]),c("div",po,[c("div",yo,[c("div",null,[c("div",fo,u(y(a)("datasource.sections.fieldSelection")),1),c("p",mo,u(y(a)("datasource.help.fieldSelection")),1)]),m.value?(l(),p("input",{key:0,class:"ce-datasource-tool__input ce-datasource-tool__schema-search","data-testid":"datasource-schema-search",type:"search",placeholder:y(a)("datasource.fields.searchFields"),value:V.value,onInput:s[17]||(s[17]=r=>V.value=r.target.value),onKeydown:s[18]||(s[18]=D(()=>{},["stop"]))},null,40,ho)):k("",!0)]),c("div",_o,[c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="list"}]),"data-testid":"datasource-schema-tab-list",onClick:s[19]||(s[19]=r=>C.value="list")},u(y(a)("datasource.tabs.list")),3),c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="form"}]),"data-testid":"datasource-schema-tab-form",onClick:s[20]||(s[20]=r=>C.value="form")},u(y(a)("datasource.tabs.form")),3),c("button",{type:"button",class:G(["ce-datasource-tool__tab",{"ce-datasource-tool__tab--active":C.value==="advanced"}]),"data-testid":"datasource-schema-tab-advanced",onClick:s[21]||(s[21]=r=>C.value="advanced")},u(y(a)("datasource.tabs.advanced")),3)]),C.value==="list"?(l(),p("div",bo,[m.value?Ae.value.length?(l(),p("label",So,[c("span",go,u(y(a)("datasource.fields.recordPath")),1),c("select",{class:"ce-datasource-tool__input","data-testid":"datasource-list-record-path",disabled:S.value,value:pt.value,onChange:s[22]||(s[22]=r=>$t(r.target.value))},[(l(!0),p(F,null,P(Ae.value,r=>(l(),p("option",{key:r.path||"root",value:r.path},u(_t(r.path)),9,wo))),128))],40,ko)])):(l(),p("p",Oo,u(y(a)("datasource.noListRecord")),1)):(l(),p("p",vo,u(y(a)("datasource.emptySchema")),1)),qe.value.length?(l(),p("div",Do,[c("div",jo,u(y(a)("datasource.fields.selectedFields"))+": "+u(yt.value),1),(l(!0),p(F,null,P(qe.value,r=>(l(),p("label",{key:r.path,class:"ce-datasource-tool__schema-field","data-testid":`datasource-list-field-${r.path}`},[c("input",{class:"ce-datasource-tool__checkbox",type:"checkbox",disabled:S.value,checked:r.enabled,"data-testid":`datasource-list-field-enabled-${r.path}`,onChange:i=>Ke("list",r.path,i.target.checked)},null,40,No),c("span",To,[c("input",{class:"ce-datasource-tool__input ce-datasource-tool__field-label-input",type:"text",readonly:S.value,value:r.label,"data-testid":`datasource-list-field-label-${r.path}`,onInput:i=>Re("list",r.path,i.target.value),onKeydown:s[23]||(s[23]=D(()=>{},["stop"]))},null,40,Ao),c("span",Jo,u(r.path),1)]),c("span",$o,[c("span",qo,u(ye(r.type)),1),c("span",Co,u(Fe(r.componentHint)),1),r.required?(l(),p("span",Fo,u(y(a)("datasource.fields.required")),1)):k("",!0)])],8,Io))),128))])):k("",!0)])):C.value==="form"?(l(),p("div",Po,[Ce.value.length?(l(),p("div",Eo,[c("div",Mo,u(y(a)("datasource.fields.selectedFields"))+": "+u(ft.value),1),(l(!0),p(F,null,P(Ce.value,r=>(l(),p("label",{key:r.path,class:"ce-datasource-tool__schema-field","data-testid":`datasource-form-field-${r.path}`},[c("input",{class:"ce-datasource-tool__checkbox",type:"checkbox",disabled:S.value,checked:r.enabled,"data-testid":`datasource-form-field-enabled-${r.path}`,onChange:i=>Ke("form",r.path,i.target.checked)},null,40,zo),c("span",Lo,[c("input",{class:"ce-datasource-tool__input ce-datasource-tool__field-label-input",type:"text",readonly:S.value,value:r.label,"data-testid":`datasource-form-field-label-${r.path}`,onInput:i=>Re("form",r.path,i.target.value),onKeydown:s[24]||(s[24]=D(()=>{},["stop"]))},null,40,Bo),c("span",Ro,u(r.path),1)]),c("span",Ko,[c("span",Ho,u(ye(r.type)),1),c("span",Vo,u(Fe(r.componentHint)),1),r.required?(l(),p("span",Uo,u(y(a)("datasource.fields.required")),1)):k("",!0)])],8,xo))),128))])):(l(),p("p",Go,u(y(a)("datasource.noFormFields")),1))])):(l(),p("div",Wo,[m.value?(l(),p("div",Qo,[(l(!0),p(F,null,P(lt.value,r=>(l(),p("div",{key:r.path||"root",class:"ce-datasource-tool__schema-node",style:zt({paddingLeft:`${r.depth*18}px`}),"data-testid":`datasource-schema-node-${ht(r.path)}`},[c("span",Yo,u(r.name),1),c("span",Zo,u(r.displayPath),1),c("span",es,u(ye(r.type)),1),r.required?(l(),p("span",ts,u(y(a)("datasource.fields.required")),1)):k("",!0)],12,Xo))),128))])):k("",!0),c("label",as,[c("span",os,u(y(a)("datasource.fields.jsonSchema")),1),c("textarea",{class:"ce-datasource-tool__textarea ce-datasource-tool__textarea--schema","data-testid":"datasource-json-schema",spellcheck:"false",readonly:S.value,value:O.value,onInput:Ot,onKeydown:s[25]||(s[25]=D(()=>{},["stop"]))},null,40,ss)])]))])]))}}),us=Kt(rs,[["__scopeId","data-v-ab5bf27d"]]);export{ia as $,us as M,ca as a,ds as m};
@@ -1,4 +1,4 @@
1
- var te=Object.defineProperty;var oe=(u,s,d)=>s in u?te(u,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):u[s]=d;var w=(u,s,d)=>oe(u,typeof s!="symbol"?s+"":s,d);import{A as re}from"./editorjs-CrGo22NX.js";import{i as E,u as ae,k as le,_ as se}from"./block-advanced-CdUL2rGG.js";import{J as ne,f as ie,r as $,z as ce,F as S,A as L,B as pe,o as T,j as V,n as z,l as ue,x as de,t as ye,e as he}from"./vue-vendor-CGusfGYN.js";import{g as me,a as Z,n as A,c as H,_ as ve,m as fe}from"./block-form-C_cJnRtX.js";const K=new Map;class ge{static create(s){const d=K.get(s);if(d)return d;const r=Z(s);if(!r)throw new Error(`EditorToolFactory could not find a registered component for "${s}".`);class h{constructor({data:e,config:o}){w(this,"state");w(this,"wrapper",null);w(this,"contentRoot",null);w(this,"vueApp",null);w(this,"propertyDialog",null);const n={...o??{},...e??{}};if(typeof n.edit!="boolean")throw new Error(`EditorToolFactory requires config.edit to be explicitly set for "${s}".`);this.state=r.normalizeProps({...n})}static get toolbox(){return r.toolbox}render(){const e=document.createElement("div");e.className="mokelay-editor-tool",e.dataset.toolName=s,e.dataset.testid=`editor-tool-${s}`;const o=document.createElement("div");return o.className="mokelay-editor-tool__content",o.dataset.testid=`editor-tool-content-${s}`,e.appendChild(o),this.wrapper=e,this.contentRoot=o,this.createPropertyDialog(),this.mountVueApp(),e}destroy(){var e;this.unmountVueApp(),(e=this.propertyDialog)==null||e.remove(),this.propertyDialog=null,this.contentRoot=null,this.wrapper=null}save(){return r.serialize(this.state)}renderSettings(){var e;return(e=r.propertyPanel)!=null&&e.fields.length?{icon:'<svg width="17" height="17" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.14 12.94C19.18 12.63 19.2 12.32 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.11 9.51C21.29 9.37 21.34 9.11 21.23 8.9L19.35 5.64C19.24 5.43 18.99 5.35 18.77 5.42L16.44 6.17C15.96 5.8 15.44 5.48 14.87 5.23L14.51 2.75C14.48 2.52 14.28 2.35 14.04 2.35H10.28C10.04 2.35 9.84 2.52 9.81 2.75L9.45 5.23C8.88 5.48 8.36 5.81 7.88 6.17L5.55 5.42C5.33 5.35 5.08 5.43 4.97 5.64L3.09 8.9C2.98 9.11 3.03 9.37 3.21 9.51L5.19 11.06C5.14 11.36 5.12 11.68 5.12 12C5.12 12.32 5.14 12.64 5.19 12.94L3.21 14.49C3.03 14.63 2.98 14.89 3.09 15.1L4.97 18.36C5.08 18.57 5.33 18.65 5.55 18.58L7.88 17.83C8.36 18.2 8.88 18.52 9.45 18.77L9.81 21.25C9.84 21.48 10.04 21.65 10.28 21.65H14.04C14.28 21.65 14.48 21.48 14.51 21.25L14.87 18.77C15.44 18.52 15.96 18.19 16.44 17.83L18.77 18.58C18.99 18.65 19.24 18.57 19.35 18.36L21.23 15.1C21.34 14.89 21.29 14.63 21.11 14.49L19.14 12.94ZM12.16 15.6C10.17 15.6 8.56 13.99 8.56 12C8.56 10.01 10.17 8.4 12.16 8.4C14.15 8.4 15.76 10.01 15.76 12C15.76 13.99 14.15 15.6 12.16 15.6Z" fill="currentColor"/></svg>',title:E.t("editor.properties"),onActivate:()=>{this.openPropertyDialog()},closeOnActivate:!0}:[]}mountVueApp(){this.contentRoot&&(this.unmountVueApp(),this.vueApp=ne(r.component,{...this.state,onToolChange:e=>{Object.assign(this.state,e)},onChange:e=>{Object.assign(this.state,e)}}),this.vueApp.mount(this.contentRoot))}unmountVueApp(){var e;(e=this.vueApp)==null||e.unmount(),this.vueApp=null}createPropertyDialog(){var a;if(!this.wrapper||!((a=r.propertyPanel)!=null&&a.fields.length))return;const e=document.createElement("dialog");e.className="mokelay-editor-tool__property-dialog",e.dataset.testid="tool-property-dialog",e.dataset.toolName=s;const o=r.propertyPanel.title||E.t("editor.propertyDialogTitle"),n=r.propertyPanel.fields.map(i=>this.renderPropertyField(i)).join("");e.innerHTML=`
1
+ var te=Object.defineProperty;var oe=(u,s,d)=>s in u?te(u,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):u[s]=d;var w=(u,s,d)=>oe(u,typeof s!="symbol"?s+"":s,d);import{A as re}from"./editorjs-CrGo22NX.js";import{i as E,u as ae,k as le,_ as se}from"./block-advanced-EJNdvNM4.js";import{J as ne,f as ie,r as $,z as ce,F as S,A as L,B as pe,o as T,j as V,n as z,l as ue,x as de,t as ye,e as he}from"./vue-vendor-CGusfGYN.js";import{g as me,a as Z,n as A,c as H,_ as ve,m as fe}from"./block-form-fUFBuZp1.js";const K=new Map;class ge{static create(s){const d=K.get(s);if(d)return d;const r=Z(s);if(!r)throw new Error(`EditorToolFactory could not find a registered component for "${s}".`);class h{constructor({data:e,config:o}){w(this,"state");w(this,"wrapper",null);w(this,"contentRoot",null);w(this,"vueApp",null);w(this,"propertyDialog",null);const n={...o??{},...e??{}};if(typeof n.edit!="boolean")throw new Error(`EditorToolFactory requires config.edit to be explicitly set for "${s}".`);this.state=r.normalizeProps({...n})}static get toolbox(){return r.toolbox}render(){const e=document.createElement("div");e.className="mokelay-editor-tool",e.dataset.toolName=s,e.dataset.testid=`editor-tool-${s}`;const o=document.createElement("div");return o.className="mokelay-editor-tool__content",o.dataset.testid=`editor-tool-content-${s}`,e.appendChild(o),this.wrapper=e,this.contentRoot=o,this.createPropertyDialog(),this.mountVueApp(),e}destroy(){var e;this.unmountVueApp(),(e=this.propertyDialog)==null||e.remove(),this.propertyDialog=null,this.contentRoot=null,this.wrapper=null}save(){return r.serialize(this.state)}renderSettings(){var e;return(e=r.propertyPanel)!=null&&e.fields.length?{icon:'<svg width="17" height="17" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.14 12.94C19.18 12.63 19.2 12.32 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.11 9.51C21.29 9.37 21.34 9.11 21.23 8.9L19.35 5.64C19.24 5.43 18.99 5.35 18.77 5.42L16.44 6.17C15.96 5.8 15.44 5.48 14.87 5.23L14.51 2.75C14.48 2.52 14.28 2.35 14.04 2.35H10.28C10.04 2.35 9.84 2.52 9.81 2.75L9.45 5.23C8.88 5.48 8.36 5.81 7.88 6.17L5.55 5.42C5.33 5.35 5.08 5.43 4.97 5.64L3.09 8.9C2.98 9.11 3.03 9.37 3.21 9.51L5.19 11.06C5.14 11.36 5.12 11.68 5.12 12C5.12 12.32 5.14 12.64 5.19 12.94L3.21 14.49C3.03 14.63 2.98 14.89 3.09 15.1L4.97 18.36C5.08 18.57 5.33 18.65 5.55 18.58L7.88 17.83C8.36 18.2 8.88 18.52 9.45 18.77L9.81 21.25C9.84 21.48 10.04 21.65 10.28 21.65H14.04C14.28 21.65 14.48 21.48 14.51 21.25L14.87 18.77C15.44 18.52 15.96 18.19 16.44 17.83L18.77 18.58C18.99 18.65 19.24 18.57 19.35 18.36L21.23 15.1C21.34 14.89 21.29 14.63 21.11 14.49L19.14 12.94ZM12.16 15.6C10.17 15.6 8.56 13.99 8.56 12C8.56 10.01 10.17 8.4 12.16 8.4C14.15 8.4 15.76 10.01 15.76 12C15.76 13.99 14.15 15.6 12.16 15.6Z" fill="currentColor"/></svg>',title:E.t("editor.properties"),onActivate:()=>{this.openPropertyDialog()},closeOnActivate:!0}:[]}mountVueApp(){this.contentRoot&&(this.unmountVueApp(),this.vueApp=ne(r.component,{...this.state,onToolChange:e=>{Object.assign(this.state,e)},onChange:e=>{Object.assign(this.state,e)}}),this.vueApp.mount(this.contentRoot))}unmountVueApp(){var e;(e=this.vueApp)==null||e.unmount(),this.vueApp=null}createPropertyDialog(){var a;if(!this.wrapper||!((a=r.propertyPanel)!=null&&a.fields.length))return;const e=document.createElement("dialog");e.className="mokelay-editor-tool__property-dialog",e.dataset.testid="tool-property-dialog",e.dataset.toolName=s;const o=r.propertyPanel.title||E.t("editor.propertyDialogTitle"),n=r.propertyPanel.fields.map(i=>this.renderPropertyField(i)).join("");e.innerHTML=`
2
2
  <form method="dialog" class="mokelay-editor-tool__property-panel" data-testid="tool-property-panel">
3
3
  <div class="mokelay-editor-tool__property-header">
4
4
  <h3 class="mokelay-editor-tool__property-title" data-testid="tool-property-title">${this.escapeHtml(o)}</h3>
@@ -0,0 +1 @@
1
+ .ce-divider-line-tool[data-v-65668242]{display:flex;align-items:center;width:100%;min-height:32px;padding:8px 0}.ce-divider-line-tool__line[data-v-65668242]{display:block;width:100%;height:1px;background-color:#cbd5e1}.dark{background-color:#475569}.ce-form-item-tool[data-v-c59f1044]{width:100%;color:#0f172a}.ce-form-item-tool__edit-shell[data-v-c59f1044]{width:100%;border:1px dashed rgb(148 163 184 / .7);border-radius:8px;padding:8px}.ce-form-item-tool__label[data-v-c59f1044]{color:#334155;font-size:13px;font-weight:600;line-height:20px}.ce-form-item-tool__body[data-v-c59f1044]{display:flex;flex-direction:column;gap:8px}.ce-form-item-tool--horizontal .ce-form-item-tool__body[data-v-c59f1044]{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);align-items:start;gap:12px}.ce-form-item-tool__label[data-v-c59f1044]{padding-top:9px;word-break:break-word}.ce-form-item-tool__editor[data-v-c59f1044]{min-width:0}.ce-form-item-tool__empty[data-v-c59f1044]{display:inline-flex;min-height:38px;align-items:center;color:#64748b;font-size:14px;line-height:20px}@media(max-width:640px){.ce-form-item-tool--horizontal .ce-form-item-tool__body[data-v-c59f1044]{display:flex;flex-direction:column}}.dark{border-color:#475569e6}.page-dsl-block[data-v-800a45fa]{width:100%;color:#0f172a}.page-dsl-heading[data-v-800a45fa]{margin:0;color:#0f172a;font-weight:700;letter-spacing:0;line-height:1.18}.page-dsl-heading--1[data-v-800a45fa]{font-size:30px}.page-dsl-heading--2[data-v-800a45fa]{font-size:24px}.page-dsl-heading--3[data-v-800a45fa]{font-size:18px}.page-dsl-block--center[data-v-800a45fa]{text-align:center}.page-dsl-block--right[data-v-800a45fa]{text-align:right}.page-dsl-rich-text[data-v-800a45fa]{white-space:pre-line;color:#475569;font-size:14px;line-height:1.75}.page-dsl-image[data-v-800a45fa]{margin:0}.page-dsl-image img[data-v-800a45fa]{display:block;width:100%;max-height:360px;border-radius:8px;-o-object-fit:cover;object-fit:cover}.page-dsl-image__empty[data-v-800a45fa],.page-dsl-image-option__placeholder[data-v-800a45fa]{display:flex;align-items:center;justify-content:center;min-height:120px;border:1px dashed rgb(148 163 184);border-radius:8px;background:#f8fafc;color:#64748b;font-size:13px}.page-dsl-image figcaption[data-v-800a45fa]{margin-top:6px;color:#64748b;font-size:12px;text-align:center}.page-dsl-embed[data-v-800a45fa]{display:block;border:1px solid rgb(226 232 240);border-radius:8px;padding:14px;color:#0f172a;text-decoration:none}.page-dsl-embed span[data-v-800a45fa],.page-dsl-embed small[data-v-800a45fa]{display:block}.page-dsl-embed span[data-v-800a45fa]{font-weight:700}.page-dsl-embed small[data-v-800a45fa]{margin-top:4px;color:#64748b;word-break:break-all}.page-dsl-field[data-v-800a45fa]{display:grid;gap:8px}.page-dsl-control[data-v-800a45fa]{width:100%;border:1px solid rgb(148 163 184 / .65);border-radius:8px;padding:9px 11px;background:#fff;color:#0f172a;font-size:14px;line-height:20px}.page-dsl-control[data-v-800a45fa]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f124}.page-dsl-options[data-v-800a45fa]{display:grid;gap:8px}.page-dsl-option[data-v-800a45fa]{display:flex;align-items:flex-start;gap:8px;border:1px solid rgb(226 232 240);border-radius:8px;padding:9px 11px;font-size:14px}.page-dsl-option input[data-v-800a45fa]{margin-top:3px}.page-dsl-option strong[data-v-800a45fa],.page-dsl-option small[data-v-800a45fa]{display:block}.page-dsl-option small[data-v-800a45fa]{margin-top:2px;color:#64748b;font-size:12px}.page-dsl-image-options[data-v-800a45fa]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.page-dsl-image-option[data-v-800a45fa]{display:grid;gap:8px;border:1px solid rgb(226 232 240);border-radius:8px;padding:8px;font-size:13px}.page-dsl-image-option input[data-v-800a45fa]{justify-self:start}.page-dsl-image-option img[data-v-800a45fa]{width:100%;aspect-ratio:16 / 9;border-radius:6px;-o-object-fit:cover;object-fit:cover}.page-dsl-rating[data-v-800a45fa],.page-dsl-scale div[data-v-800a45fa]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.page-dsl-rating button[data-v-800a45fa],.page-dsl-scale button[data-v-800a45fa]{min-width:36px;height:36px;border:1px solid rgb(226 232 240);border-radius:8px;background:#fff;color:#334155;font-weight:700}.page-dsl-rating .page-dsl-choice-button--active[data-v-800a45fa],.page-dsl-scale .page-dsl-choice-button--active[data-v-800a45fa]{border-color:#4f46e5;background:#eef2ff;color:#4338ca}.page-dsl-rating small[data-v-800a45fa],.page-dsl-scale p[data-v-800a45fa]{color:#64748b;font-size:12px}.page-dsl-scale p[data-v-800a45fa]{display:flex;justify-content:space-between;margin:4px 0 0}.page-dsl-matrix-wrap[data-v-800a45fa]{overflow-x:auto}.page-dsl-matrix[data-v-800a45fa]{min-width:100%;border-collapse:collapse;font-size:13px}.page-dsl-matrix th[data-v-800a45fa],.page-dsl-matrix td[data-v-800a45fa]{border-bottom:1px solid rgb(226 232 240);padding:8px;text-align:center}.page-dsl-matrix th[data-v-800a45fa]:first-child{text-align:left}.page-dsl-flow[data-v-800a45fa]{display:grid;gap:6px;border:1px dashed rgb(148 163 184);border-radius:8px;padding:14px;background:#f8fafc}.page-dsl-flow span[data-v-800a45fa]{color:#64748b;font-size:12px;font-weight:700}.page-dsl-flow strong[data-v-800a45fa]{color:#0f172a;font-size:18px}.page-dsl-flow p[data-v-800a45fa]{margin:0;color:#475569;font-size:13px}.page-dsl-flow--thanks[data-v-800a45fa]{border-color:#6ee7b7;background:#ecfdf5}.page-dsl-flow--result[data-v-800a45fa]{border-color:#a5b4fc;background:#eef2ff}.page-dsl-button-wrap[data-v-800a45fa]{display:flex;justify-content:flex-start}.page-dsl-button-wrap--center[data-v-800a45fa]{justify-content:center}.page-dsl-button-wrap--right[data-v-800a45fa]{justify-content:flex-end}.page-dsl-button[data-v-800a45fa]{border-radius:8px;padding:10px 16px;font-size:14px;font-weight:700;cursor:default}.page-dsl-button--primary[data-v-800a45fa]{border:1px solid rgb(79 70 229);background:#4f46e5;color:#fff}.page-dsl-button--secondary[data-v-800a45fa]{border:1px solid rgb(203 213 225);background:#fff;color:#0f172a}.page-dsl-button--ghost[data-v-800a45fa]{border:1px solid transparent;background:transparent;color:#334155}.dark{color:#f1f5f9}.dark{color:#cbd5e1}.dark{border-color:#475569;background:#0f172a;color:#e2e8f0}.dark{border-color:#334155}.dark{border-color:#475569;background:#0f172a;color:#94a3b8}.ce-form-tool[data-v-a3894c78]{width:100%;color:#0f172a}.ce-form-tool__editor-shell[data-v-a3894c78]{width:100%;min-height:54px;border:1px dashed rgb(148 163 184 / .72);border-radius:8px;background:#f8fafc;padding:8px 10px 8px 38px}.ce-form-tool__editor[data-v-a3894c78],.ce-form-tool__preview[data-v-a3894c78]{width:100%}.ce-form-tool__preview[data-v-a3894c78]{display:flex;flex-direction:column;gap:12px}.ce-form-tool[data-v-a3894c78] .codex-editor{min-height:0}.ce-form-tool[data-v-a3894c78] .codex-editor__redactor{min-height:0;padding-bottom:0!important}.ce-form-tool[data-v-a3894c78] .ce-block{padding:0}.ce-form-tool[data-v-a3894c78] .ce-block+.ce-block{margin-top:10px}.ce-form-tool[data-v-a3894c78] .ce-block__content,.ce-form-tool[data-v-a3894c78] .ce-toolbar__content{max-width:none;margin:0}.ce-form-tool[data-v-a3894c78] .ce-toolbar__actions{right:calc(100% + 8px);padding-right:0}.ce-form-tool[data-v-a3894c78] .ce-popover-item[data-item-name=paragraph]{display:none}.ce-form-tool[data-v-a3894c78] .ce-paragraph{min-height:36px;padding:8px 0;color:#64748b;font-size:14px;line-height:20px}.dark{color:#e2e8f0}.dark{border-color:#475569e6;background:#0f172a}.dark{color:#94a3b8}
@@ -0,0 +1,51 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./block-editor-selector-N7oIwjwP.js","./editorjs-CrGo22NX.js","./block-advanced-EJNdvNM4.js","./vue-vendor-CGusfGYN.js","./element-plus-Bo3B6ZwD.js","./element-plus-Dit-l95b.css","./block-advanced-DfEsE7Tf.css","./block-editor-selector-Da_ew6E9.css","./MPage-KIfv29YD.js","./MPage.vue_vue_type_script_setup_true_lang-Cv6Zw1sY.js","./block-chart-CQQxcr05.js","./echarts-BN_iJMI5.js","./zrender-CyMoNtco.js","./block-chart-BDhOWgsD.css","./block-datasource-C6tZoarT.js","./block-datasource-DIH8wAmJ.css"])))=>i.map(i=>d[i]);
2
+ var dt=Object.defineProperty;var pt=(e,t,o)=>t in e?dt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var K=(e,t,o)=>pt(e,typeof t!="symbol"?t+"":t,o);import{f as he,o as a,j as i,l as u,G as D,H as R,x as me,I as Ne,n as J,M as mt,m as yt,C as g,e as I,L as Ze,F as ke,q as ht,u as Le,N as we,B as Qe,s as ft,D as bt,t as ie,r as Xe,E as S,z as gt,A as Re,J as vt,O as kt}from"./vue-vendor-CGusfGYN.js";import{A as wt}from"./editorjs-CrGo22NX.js";import{d as oe,i as A,_ as Ce,u as et,m as xt,a as Tt,b as Mt,c as Ct,e as Ft,M as Ve,f as Oe,g as je,h as He,j as Ue,k as _t}from"./block-advanced-EJNdvNM4.js";import{m as It,M as Je}from"./block-chart-CQQxcr05.js";import{m as Et,M as qe}from"./block-datasource-C6tZoarT.js";const At="modulepreload",Pt=function(e,t){return new URL(e,t).href},Ge={},xe=function(t,o,v){let w=Promise.resolve();if(o&&o.length>0){let M=function(d){return Promise.all(d.map(h=>Promise.resolve(h).then(C=>({status:"fulfilled",value:C}),C=>({status:"rejected",reason:C}))))};const P=document.getElementsByTagName("link"),L=document.querySelector("meta[property=csp-nonce]"),s=(L==null?void 0:L.nonce)||(L==null?void 0:L.getAttribute("nonce"));w=M(o.map(d=>{if(d=Pt(d,v),d in Ge)return;Ge[d]=!0;const h=d.endsWith(".css"),C=h?'[rel="stylesheet"]':"";if(!!v)for(let $=P.length-1;$>=0;$--){const N=P[$];if(N.href===d&&(!h||N.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${C}`))return;const F=document.createElement("link");if(F.rel=h?"stylesheet":At,h||(F.as="script"),F.crossOrigin="",F.href=d,s&&F.setAttribute("nonce",s),document.head.appendChild(F),h)return new Promise(($,N)=>{F.addEventListener("load",$),F.addEventListener("error",()=>N(new Error(`Unable to preload CSS for ${d}`)))})}))}function m(M){const P=new Event("vite:preloadError",{cancelable:!0});if(P.payload=M,window.dispatchEvent(P),!P.defaultPrevented)throw M}return w.then(M=>{for(const P of M||[])P.status==="rejected"&&m(P.reason);return t().catch(m)})},Nt={class:"ce-divider-line-tool","data-testid":"editor-divider-line-tool",role:"separator","aria-orientation":"horizontal"},Lt=oe({toolbox:{get title(){return A.t("dividerLine.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 12h16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({}),normalizeProps:e=>({edit:e.edit??!1}),serialize:()=>({})}),$t=he({__name:"MDividerLine",props:{edit:{type:Boolean},onChange:{type:Function},onToolChange:{type:Function}},setup(e){return(t,o)=>(a(),i("div",Nt,[...o[0]||(o[0]=[u("span",{class:"ce-divider-line-tool__line"},null,-1)])]))}}),Ke=Ce($t,[["__scopeId","data-v-65668242"]]);function St(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,10):Math.random().toString(36).slice(2,12)}function Bt(e){return JSON.parse(JSON.stringify(e))}function tt(e){return typeof e!="object"||e===null||Array.isArray(e)?{}:Bt(e)}function ye(e){if(typeof e!="object"||e===null||Array.isArray(e))return;const t=e;if(!(typeof t.type!="string"||typeof t.data!="object"||t.data===null||Array.isArray(t.data)))return{id:typeof t.id=="string"&&t.id?t.id:St(),type:t.type,data:tt(t.data)}}function Fe(e){return{id:e.id,type:e.type,data:tt(e.data)}}const zt=oe({toolbox:{get title(){return A.t("editorSelector.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="5" width="16" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 9h8M8 13h5" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M16 15l2 2 3-4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>'},createInitialProps:()=>({value:void 0}),normalizeProps:e=>({edit:e.edit??!1,value:ye(e.value),excludeToolNames:Array.isArray(e.excludeToolNames)?e.excludeToolNames.filter(t=>typeof t=="string"):[]}),serialize:e=>{const t=ye(e.value);return t?{value:t}:{}}}),Dt=["innerHTML"],Rt={key:1,class:"overflow-auto"},Vt={key:3,class:"overflow-auto rounded bg-slate-100 p-2 text-xs dark:bg-slate-800"},Ot=he({__name:"EditorPreviewBlock",props:{block:{},compactTable:{type:Boolean,default:!1}},setup(e){const t=e,o=I(()=>t.compactTable?"min-w-full border-collapse text-xs":"min-w-full border-collapse text-sm"),v=I(()=>t.compactTable?"border border-slate-200 px-2 py-1 text-left align-top dark:border-slate-700":"border border-slate-200 px-3 py-2 text-left align-top dark:border-slate-700");function w(s){const d=s.data.content;return Array.isArray(d)?d.filter(h=>Array.isArray(h)):[]}function m(s,d){const h=s.data.withHeadings;return d===0&&h===!0}function M(s){return Yo(s)}function P(s){const d=pe(s);return(d==null?void 0:d.component)??null}function L(s){var h;const d=pe(s.type);return d?{...d.normalizeProps({...((h=d.createInitialProps)==null?void 0:h.call(d))??{},...s.data,edit:!1})}:{edit:!1,...s.data}}return(s,d)=>e.block.type==="paragraph"?(a(),i("p",{key:0,class:"text-sm leading-6",innerHTML:e.block.data.text},null,8,Dt)):e.block.type==="table"?(a(),i("div",Rt,[u("table",{class:J(o.value)},[u("tbody",null,[(a(!0),i(D,null,R(w(e.block),(h,C)=>(a(),i("tr",{key:`table-${C}`,class:"border-b border-slate-200 dark:border-slate-700"},[(a(!0),i(D,null,R(h,(O,F)=>(a(),me(Ne(m(e.block,C)?"th":"td"),{key:`table-${C}-${F}`,class:J(v.value),innerHTML:O},null,8,["class","innerHTML"]))),128))]))),128))])],2)])):M(e.block.type)?(a(),me(Ne(P(e.block.type)),mt(yt({key:2},L(e.block))),null,16)):(a(),i("pre",Vt,g(e.block),1))}}),jt={key:0,class:"ce-form-item-tool__edit-shell","data-testid":"form-item-edit-shell"},Ht={class:"ce-form-item-tool__body"},Ut={class:"ce-form-item-tool__label","data-testid":"form-item-label-preview"},Jt={class:"ce-form-item-tool__editor","data-testid":"form-item-editor-field"},qt={key:1,class:"ce-form-item-tool__body"},Gt={class:"ce-form-item-tool__label","data-testid":"preview-form-item-label"},Kt={class:"ce-form-item-tool__editor","data-testid":"preview-form-item-editor"},Wt={key:1,class:"ce-form-item-tool__empty"};function ot(){return`field_${typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10)}`}function lt(){return A.t("formItem.defaultLabelName")}function $e(e){return e==="Horizontal"?"Horizontal":"Vertical"}function Yt(e){return typeof e=="string"&&e.trim()?e:lt()}function Zt(e,t){return typeof e=="string"&&e.trim()?e.trim():t||ot()}function Qt(e){return e?Fe(e):void 0}function W(e,t){return{edit:e.edit??!1,labelName:Yt(e.labelName),variableName:Zt(e.variableName,t),editor:ye(e.editor),layout:$e(e.layout)}}function rt(e){const t=W(e);return{labelName:t.labelName,variableName:t.variableName,...t.editor?{editor:Fe(t.editor)}:{},layout:t.layout}}const Se=oe({toolbox:{get title(){return A.t("formItem.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="5" width="16" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 9h8M8 13h3" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><circle cx="16" cy="13" r="2" fill="none" stroke="currentColor" stroke-width="2"/></svg>'},propertyPanel:{get title(){return A.t("formItem.propertyPanelTitle")},get fields(){return[{key:"labelName",label:A.t("formItem.properties.labelName"),placeholder:A.t("formItem.placeholders.labelName")},{key:"variableName",label:A.t("formItem.properties.variableName"),placeholder:A.t("formItem.placeholders.variableName")},{key:"layout",label:A.t("formItem.properties.layout"),type:"select",options:[{label:A.t("formItem.layouts.vertical"),value:"Vertical"},{label:A.t("formItem.layouts.horizontal"),value:"Horizontal"}]}]}},createInitialProps:()=>({labelName:lt(),variableName:ot(),editor:void 0,layout:"Vertical"}),normalizeProps:e=>W(e),serialize:rt}),Xt=he({__name:"MFormItem",props:{edit:{type:Boolean,default:!1},labelName:{},variableName:{},editor:{default:void 0},layout:{default:"Vertical"},onChange:{},onToolChange:{}},setup(e){const t=we(()=>xe(()=>import("./block-editor-selector-N7oIwjwP.js").then(s=>s.M),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),o=e,{t:v}=et(),w=["MFormItem","MForm"],m=Ze(W(o));function M(){var d,h;const s={edit:o.edit,labelName:m.labelName,variableName:m.variableName,editor:Qt(m.editor),layout:$e(m.layout)};(d=o.onToolChange)==null||d.call(o,s),(h=o.onChange)==null||h.call(o,s)}function P(s){s.labelName!==void 0&&(m.labelName=s.labelName),s.variableName!==void 0&&(m.variableName=s.variableName),"editor"in s&&(m.editor=ye(s.editor)),s.layout!==void 0&&(m.layout=$e(s.layout)),M()}function L(s){P({editor:s.value})}return ke(()=>({labelName:o.labelName,variableName:o.variableName,editor:o.editor,layout:o.layout,edit:o.edit}),s=>{Object.assign(m,W(s,m.variableName))},{deep:!0}),(s,d)=>(a(),i("div",{class:J(["ce-form-item-tool",{"ce-form-item-tool--edit":e.edit,"ce-form-item-tool--horizontal":m.layout==="Horizontal"}]),"data-testid":"editor-form-item-tool"},[e.edit?(a(),i("div",jt,[u("div",Ht,[u("div",Ut,g(m.labelName),1),u("div",Jt,[ht(Le(t),{edit:!0,value:m.editor,"exclude-tool-names":w,"on-change":L},null,8,["value"])])])])):(a(),i("div",qt,[u("div",Gt,g(m.labelName),1),u("div",Kt,[m.editor?(a(),me(Ot,{key:0,block:m.editor},null,8,["block"])):(a(),i("span",Wt,g(Le(v)("formItem.emptyEditor")),1))])]))],2))}}),Te=Ce(Xt,[["__scopeId","data-v-c59f1044"]]);function eo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){const t=W({...e,edit:!1});return{labelName:t.labelName,variableName:t.variableName,...t.editor?{editor:Fe(t.editor)}:{},layout:t.layout}}function at(e){if(eo(e))return Me(e)}function de(e){return Array.isArray(e)?e.map(t=>at(t)).filter(t=>t!==void 0):[]}const nt=oe({toolbox:{get title(){return A.t("form.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="4" width="16" height="16" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 8h8M8 12h8M8 16h4" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({items:[]}),normalizeProps:e=>({edit:e.edit??!1,items:de(e.items)}),serialize:e=>({items:de(e.items).map(t=>Me(t))})}),to=["data-testid"],oo={key:1,class:"page-dsl-rich-text"},lo={key:2,class:"page-dsl-image"},ro=["src","alt"],ao={key:1,class:"page-dsl-image__empty"},no={key:2},io=["href"],so={key:4,class:"page-dsl-flow page-dsl-flow--break"},co={key:0},uo={key:5,class:"page-dsl-flow page-dsl-flow--thanks"},po={key:6,class:"page-dsl-flow page-dsl-flow--result"},mo={key:8,class:"page-dsl-field"},yo=["id","type","placeholder","value"],ho=["id","rows","placeholder","value"],fo=["id","accept","multiple"],bo=["id","value"],go=["value"],vo={key:4,class:"page-dsl-options"},ko=["name","value","checked","onChange"],wo={key:0},xo={key:5,class:"page-dsl-options"},To=["name","value","checked","onChange"],Mo={key:0},Co={key:6,class:"page-dsl-image-options"},Fo=["type","name","value","checked","onChange"],_o=["src","alt"],Io={key:1,class:"page-dsl-image-option__placeholder"},Eo={key:7,class:"page-dsl-rating"},Ao=["onClick"],Po={key:8,class:"page-dsl-scale"},No=["onClick"],Lo={key:9,class:"page-dsl-matrix-wrap"},$o={class:"page-dsl-matrix"},So=["name","value","checked","onChange"];let Bo=0;const zo=he({__name:"PageDslBlock",props:{edit:{type:Boolean},blockType:{},id:{},text:{},content:{},title:{},label:{},description:{},placeholder:{},value:{},src:{},alt:{},caption:{},url:{},level:{},align:{},options:{},rows:{},min:{},max:{},lowLabel:{},highLabel:{},accept:{},multiple:{type:Boolean},maxFiles:{},variant:{},action:{},resultField:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,o=Xe(null),v=`page-dsl-field-${++Bo}`,w=I(()=>t.id||v),m=I(()=>t.placeholder||""),M=I(()=>Array.isArray(t.options)?t.options:[]),P=I(()=>Array.isArray(t.rows)?t.rows:[]),L=I(()=>{const y=Number(t.rows);return Number.isFinite(y)&&y>0?y:4}),s=I(()=>Math.max(2,Number(t.max||5))),d=I(()=>Number.isFinite(Number(t.min))?Number(t.min):0),h=I(()=>Math.max(d.value+1,Number(t.max||10))),C=I(()=>typeof t.value=="string"||typeof t.value=="number"?String(t.value):""),O=I(()=>Array.isArray(t.value)?t.value.map(String):[]),F=I(()=>typeof t.value=="object"&&t.value!==null&&!Array.isArray(t.value)?t.value:{}),$=I(()=>{const y=[];for(let c=d.value;c<=h.value;c+=1)y.push(c);return y}),N=I(()=>t.level==="2"?"h2":t.level==="3"?"h3":"h1"),_e=I(()=>{const y=t.align==="center"?"page-dsl-block--center":t.align==="right"?"page-dsl-block--right":"";return["page-dsl-heading",`page-dsl-heading--${t.level||"1"}`,y].filter(Boolean).join(" ")}),V=I(()=>`page-dsl-button page-dsl-button--${t.variant==="secondary"?"secondary":t.variant==="ghost"?"ghost":"primary"}`),le=I(()=>t.align==="center"?"page-dsl-button-wrap page-dsl-button-wrap--center":t.align==="right"?"page-dsl-button-wrap page-dsl-button-wrap--right":"page-dsl-button-wrap");let j=null;function T(y){var c;return((c=M.value[y])==null?void 0:c.value)||`option_${y+1}`}function re(y){return Array.isArray(t.value)?O.value.includes(y):C.value===y}function B(y){const{onChange:c,onToolChange:n,...p}=t,E={...p,...y};n==null||n(E),c==null||c(E)}function fe(y,c){const n=new Set(O.value);c?n.add(y):n.delete(y),B({value:Array.from(n)})}function Ie(y,c){B({value:{...F.value,[y]:c}})}function Ee(y,c){return String(F.value[y]??"")===c}function q(y){const c=y.target,n=Array.from(c.files??[]).map(p=>({name:p.name,size:p.size,type:p.type}));B({value:n})}function Y(){j!==null&&(window.clearTimeout(j),j=null)}function be(){if(j=null,!t.edit)return;const y=o.value;if(!y)return;const c=y.closest(".ce-block"),n=y.closest(".codex-editor"),p=(n==null?void 0:n.querySelector(":scope > .ce-toolbar"))??(n==null?void 0:n.querySelector(".ce-toolbar")),E=p==null?void 0:p.querySelector(".ce-toolbar__plus");if(!c||!p||!E)return;const X=c.getBoundingClientRect(),ee=y.getBoundingClientRect(),ge=E.getBoundingClientRect().height||26,Ae=c.offsetTop+(ee.top-X.top)+(ee.height-ge)/2;p.style.top=`${Math.max(0,Math.round(Ae))}px`}function ae(){Y(),j=window.setTimeout(()=>{be()},0)}return Qe(()=>{Y()}),(y,c)=>(a(),i("div",{ref_key:"rootRef",ref:o,class:"page-dsl-block","data-testid":`page-dsl-block-${e.blockType}`,onFocusin:ae,onMouseenter:ae,onMousemove:ae},[e.blockType==="MHeading"?(a(),me(Ne(N.value),{key:0,class:J(_e.value)},{default:ft(()=>[bt(g(e.text||"页面标题"),1)]),_:1},8,["class"])):e.blockType==="MRichText"?(a(),i("div",oo,g(e.content||"这里填写说明内容。"),1)):e.blockType==="MImage"?(a(),i("figure",lo,[e.src?(a(),i("img",{key:0,src:e.src,alt:e.alt||"图片"},null,8,ro)):(a(),i("div",ao,"图片")),e.caption?(a(),i("figcaption",no,g(e.caption),1)):ie("",!0)])):e.blockType==="MEmbed"?(a(),i("a",{key:3,class:"page-dsl-embed",href:e.url||"https://www.mokelay.com/",target:"_blank",rel:"noreferrer"},[u("span",null,g(e.title||"外部资料"),1),u("small",null,g(e.url||"https://www.mokelay.com/"),1)],8,io)):e.blockType==="MPageBreak"?(a(),i("div",so,[c[3]||(c[3]=u("span",null,"分页",-1)),u("strong",null,g(e.title||"下一页"),1),e.description?(a(),i("p",co,g(e.description),1)):ie("",!0)])):e.blockType==="MThankYouPage"?(a(),i("div",uo,[c[4]||(c[4]=u("span",null,"感谢页",-1)),u("strong",null,g(e.title||"提交成功"),1),u("p",null,g(e.description||"谢谢你的提交,我们已经收到。"),1)])):e.blockType==="MResultPage"?(a(),i("div",po,[c[5]||(c[5]=u("span",null,"结果页",-1)),u("strong",null,g(e.title||"你的结果"),1),u("p",null,g(e.description||"这里展示测验或问卷结果。"),1)])):e.blockType==="MButton"?(a(),i("div",{key:7,class:J(le.value)},[u("button",{type:"button",class:J(V.value)},g(e.label||"提交"),3)],2)):(a(),i("div",mo,[e.blockType==="MTextField"||e.blockType==="MEmailField"||e.blockType==="MPhoneField"||e.blockType==="MLinkField"?(a(),i("input",{key:0,id:w.value,class:"page-dsl-control",type:e.blockType==="MEmailField"?"email":e.blockType==="MPhoneField"?"tel":e.blockType==="MLinkField"?"url":"text",placeholder:m.value,value:C.value,onInput:c[0]||(c[0]=n=>B({value:n.target.value}))},null,40,yo)):e.blockType==="MTextareaField"?(a(),i("textarea",{key:1,id:w.value,class:"page-dsl-control",rows:L.value,placeholder:m.value,value:C.value,onInput:c[1]||(c[1]=n=>B({value:n.target.value}))},null,40,ho)):e.blockType==="MFileUploadField"?(a(),i("input",{key:2,id:w.value,class:"page-dsl-control",type:"file",accept:e.accept,multiple:e.multiple,onChange:q},null,40,fo)):e.blockType==="MSelectField"?(a(),i("select",{key:3,id:w.value,class:"page-dsl-control",value:C.value,onChange:c[2]||(c[2]=n=>B({value:n.target.value}))},[c[6]||(c[6]=u("option",{value:""},"请选择",-1)),(a(!0),i(D,null,R(M.value,(n,p)=>(a(),i("option",{key:T(p),value:T(p)},g(n.label),9,go))),128))],40,bo)):e.blockType==="MRadioGroupField"?(a(),i("div",vo,[(a(!0),i(D,null,R(M.value,(n,p)=>(a(),i("label",{key:T(p),class:"page-dsl-option"},[u("input",{type:"radio",name:w.value,value:T(p),checked:re(T(p)),onChange:E=>B({value:T(p)})},null,40,ko),u("span",null,[u("strong",null,g(n.label),1),n.description?(a(),i("small",wo,g(n.description),1)):ie("",!0)])]))),128))])):e.blockType==="MCheckboxGroupField"?(a(),i("div",xo,[(a(!0),i(D,null,R(M.value,(n,p)=>(a(),i("label",{key:T(p),class:"page-dsl-option"},[u("input",{type:"checkbox",name:w.value,value:T(p),checked:re(T(p)),onChange:E=>fe(T(p),E.target.checked)},null,40,To),u("span",null,[u("strong",null,g(n.label),1),n.description?(a(),i("small",Mo,g(n.description),1)):ie("",!0)])]))),128))])):e.blockType==="MImageChoiceField"?(a(),i("div",Co,[(a(!0),i(D,null,R(M.value,(n,p)=>(a(),i("label",{key:T(p),class:"page-dsl-image-option"},[u("input",{type:e.multiple?"checkbox":"radio",name:w.value,value:T(p),checked:re(T(p)),onChange:E=>e.multiple?fe(T(p),E.target.checked):B({value:T(p)})},null,40,Fo),n.imageUrl?(a(),i("img",{key:0,src:n.imageUrl,alt:n.label},null,8,_o)):(a(),i("span",Io,"图片")),u("strong",null,g(n.label),1)]))),128))])):e.blockType==="MRatingField"?(a(),i("div",Eo,[u("small",null,g(e.lowLabel),1),(a(!0),i(D,null,R(s.value,n=>(a(),i("button",{key:n,type:"button",class:J({"page-dsl-choice-button--active":Number(C.value)===n}),onClick:p=>B({value:String(n)})},g(n),11,Ao))),128)),u("small",null,g(e.highLabel),1)])):e.blockType==="MLinearScaleField"?(a(),i("div",Po,[u("div",null,[(a(!0),i(D,null,R($.value,n=>(a(),i("button",{key:n,type:"button",class:J({"page-dsl-choice-button--active":Number(C.value)===n}),onClick:p=>B({value:String(n)})},g(n),11,No))),128))]),u("p",null,[u("span",null,g(e.lowLabel),1),u("span",null,g(e.highLabel),1)])])):e.blockType==="MMatrixField"?(a(),i("div",Lo,[u("table",$o,[u("thead",null,[u("tr",null,[c[7]||(c[7]=u("th",null,null,-1)),(a(!0),i(D,null,R(M.value,(n,p)=>(a(),i("th",{key:T(p)},g(n.label),1))),128))])]),u("tbody",null,[(a(!0),i(D,null,R(P.value,n=>(a(),i("tr",{key:n.value},[u("th",null,g(n.label),1),(a(!0),i(D,null,R(M.value,(p,E)=>(a(),i("td",{key:`${n.value}-${T(E)}`},[u("input",{type:"radio",name:`${w.value}-${n.value}`,value:T(E),checked:Ee(n.value,T(E)),onChange:X=>Ie(n.value,T(E))},null,40,So)]))),128))]))),128))])])])):ie("",!0)]))],40,to))}}),Do=Ce(zo,[["__scopeId","data-v-800a45fa"]]),We='<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M5 6h14M5 12h10M5 18h14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>',te='<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="6" width="16" height="12" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 12h8" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>',Z='<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="7" cy="7" r="2" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="7" cy="17" r="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M12 7h7M12 17h7" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>',Pe='<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M5 6h14v5H5zM5 16h14" fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round"/></svg>',Ye=[{label:"左对齐",value:"left"},{label:"居中",value:"center"},{label:"右对齐",value:"right"}],Ro={key:"placeholder",label:"占位提示"},ue={key:"value",label:"值"},ve={key:"value",label:"值 JSON",type:"textarea",valueType:"json",validationMessage:"请输入有效值 JSON。"},se=[Ro,ue],ce={key:"options",label:"选项 JSON",type:"textarea",valueType:"json",validationMessage:"请输入有效选项 JSON。"},Vo=[{type:"MHeading",title:"页面标题",icon:We,defaults:{text:"页面标题",level:"1",align:"left"},fields:[{key:"text",label:"标题文本"},{key:"level",label:"级别",type:"select",options:[{label:"一级标题",value:"1"},{label:"二级标题",value:"2"},{label:"三级标题",value:"3"}]},{key:"align",label:"对齐",type:"select",options:Ye}]},{type:"MRichText",title:"富文本",icon:We,defaults:{content:"这里填写说明内容。"},fields:[{key:"content",label:"正文",type:"textarea"}]},{type:"MImage",title:"图片",icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="5" width="16" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="m7 16 4-4 3 3 2-2 3 3" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>',defaults:{src:"",alt:"图片",caption:""},fields:[{key:"src",label:"图片地址"},{key:"alt",label:"替代文本"},{key:"caption",label:"图片说明"}]},{type:"MEmbed",title:"嵌入",icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 7H7a5 5 0 0 0 0 10h3M14 7h3a5 5 0 0 1 0 10h-3M8 12h8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>',defaults:{title:"外部资料",url:"https://www.mokelay.com/"},fields:[{key:"title",label:"标题"},{key:"url",label:"链接"}]},{type:"MTextField",title:"单行文本",icon:te,defaults:{placeholder:"请输入文本",value:""},fields:se},{type:"MEmailField",title:"邮箱字段",icon:te,defaults:{placeholder:"you@example.com",value:""},fields:se},{type:"MPhoneField",title:"电话字段",icon:te,defaults:{placeholder:"+1 555 000 0000",value:""},fields:se},{type:"MLinkField",title:"网址字段",icon:te,defaults:{placeholder:"https://example.com",value:""},fields:se},{type:"MTextareaField",title:"多行文本",icon:te,defaults:{placeholder:"请输入详细说明",value:"",rows:4},fields:[...se,{key:"rows",label:"行数"}]},{type:"MFileUploadField",title:"文件上传",icon:te,defaults:{value:[],accept:".pdf,.doc,.docx",multiple:!1,maxFiles:1},fields:[ve,{key:"accept",label:"文件类型",placeholder:".pdf,.doc,.docx"},{key:"multiple",label:"允许多文件",type:"checkbox"},{key:"maxFiles",label:"最多文件数"}]},{type:"MSelectField",title:"下拉选择",icon:Z,defaults:{value:"",options:[{label:"选项 A",value:"a"},{label:"选项 B",value:"b"}]},fields:[ue,ce]},{type:"MRadioGroupField",title:"单选题",icon:Z,defaults:{value:"",options:[{label:"非常符合",value:"high"},{label:"一般",value:"medium"},{label:"不符合",value:"low"}]},fields:[ue,ce]},{type:"MCheckboxGroupField",title:"多选题",icon:Z,defaults:{value:[],options:[{label:"产品演示",value:"demo"},{label:"价格咨询",value:"pricing"},{label:"技术支持",value:"support"}]},fields:[ve,ce]},{type:"MImageChoiceField",title:"图片选择",icon:Z,defaults:{value:[],multiple:!1,options:[{label:"简洁",value:"clean",imageUrl:""},{label:"活泼",value:"playful",imageUrl:""}]},fields:[ve,{key:"multiple",label:"允许多选",type:"checkbox"},ce]},{type:"MRatingField",title:"评分",icon:Z,defaults:{value:"",max:5,lowLabel:"不满意",highLabel:"非常满意"},fields:[ue,{key:"max",label:"最高分"},{key:"lowLabel",label:"低分文案"},{key:"highLabel",label:"高分文案"}]},{type:"MLinearScaleField",title:"线性量表",icon:Z,defaults:{value:"",min:0,max:10,lowLabel:"完全不会",highLabel:"非常愿意"},fields:[ue,{key:"min",label:"最低分"},{key:"max",label:"最高分"},{key:"lowLabel",label:"低分文案"},{key:"highLabel",label:"高分文案"}]},{type:"MMatrixField",title:"矩阵题",icon:Z,defaults:{value:{},rows:[{label:"产品体验",value:"product"},{label:"服务响应",value:"service"}],options:[{label:"不满意",value:"bad"},{label:"一般",value:"neutral"},{label:"满意",value:"good"}]},fields:[ve,{key:"rows",label:"行 JSON",type:"textarea",valueType:"json"},ce]},{type:"MPageBreak",title:"分页",icon:Pe,defaults:{title:"下一页",description:""},fields:[{key:"title",label:"页面标题"},{key:"description",label:"页面说明",type:"textarea"}]},{type:"MThankYouPage",title:"感谢页",icon:Pe,defaults:{title:"提交成功",description:"谢谢你的提交,我们已经收到。"},fields:[{key:"title",label:"标题"},{key:"description",label:"说明",type:"textarea"}]},{type:"MResultPage",title:"结果页",icon:Pe,defaults:{title:"你的结果",description:"这里展示测验或问卷结果。",resultField:"score"},fields:[{key:"title",label:"标题"},{key:"description",label:"说明",type:"textarea"},{key:"resultField",label:"结果字段"}]},{type:"MButton",title:"按钮",icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="7" width="16" height="10" rx="5" fill="none" stroke="currentColor" stroke-width="2"/><path d="M9 12h6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>',defaults:{label:"提交",variant:"primary",align:"left",action:{type:"submit"}},fields:[{key:"label",label:"按钮文案"},{key:"variant",label:"样式",type:"select",options:[{label:"主要",value:"primary"},{label:"次要",value:"secondary"},{label:"朴素",value:"ghost"}]},{key:"align",label:"对齐",type:"select",options:Ye},{key:"action",label:"动作 JSON(本阶段仅保存,不执行)",type:"textarea",valueType:"json"}]}];function x(e,t=""){return typeof e=="string"?e:t}function Oo(e,t=!1){return typeof e=="boolean"?e:t}function Q(e,t){const o=typeof e=="number"?e:typeof e=="string"&&e.trim()?Number(e):t;return Number.isFinite(o)?o:t}function jo(e,t){return(Array.isArray(e)?e:t).filter(v=>typeof v=="object"&&v!==null&&!Array.isArray(v)).map((v,w)=>({label:x(v.label,`选项 ${w+1}`),value:x(v.value,`option_${w+1}`),description:x(v.description),imageUrl:x(v.imageUrl)}))}function Ho(e,t){return(Array.isArray(e)?e:t).filter(v=>typeof v=="object"&&v!==null&&!Array.isArray(v)).map((v,w)=>({label:x(v.label,`问题 ${w+1}`),value:x(v.value,`row_${w+1}`)}))}function Uo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?JSON.parse(JSON.stringify(e)):{type:"submit"}}function Jo(e,t){const o=e===void 0?t:e;return typeof o=="string"||typeof o=="number"||typeof o=="boolean"||o===null?o:typeof o=="object"&&o!==null?JSON.parse(JSON.stringify(o)):t}function it(e,t){const o={...e.defaults,...t};return{edit:t.edit??!1,blockType:e.type,id:x(o.id),text:x(o.text),content:x(o.content),title:x(o.title),label:x(o.label),description:x(o.description),placeholder:x(o.placeholder),value:Jo(o.value,e.defaults.value??""),src:x(o.src),alt:x(o.alt),caption:x(o.caption),url:x(o.url),level:["1","2","3"].includes(x(o.level))?x(o.level):"1",align:["left","center","right"].includes(x(o.align))?x(o.align):"left",options:jo(o.options,Array.isArray(e.defaults.options)?e.defaults.options:[]),rows:e.type==="MMatrixField"?Ho(o.rows,Array.isArray(e.defaults.rows)?e.defaults.rows:[]):Q(o.rows,Q(e.defaults.rows,4)),min:Q(o.min,Q(e.defaults.min,0)),max:Q(o.max,Q(e.defaults.max,e.type==="MRatingField"?5:10)),lowLabel:x(o.lowLabel),highLabel:x(o.highLabel),accept:x(o.accept),multiple:Oo(o.multiple),maxFiles:Q(o.maxFiles,1),variant:["primary","secondary","ghost"].includes(x(o.variant))?x(o.variant):"primary",action:Uo(o.action),resultField:x(o.resultField,"score")}}function qo(e,t){const o=it(e,t),v={};for(const w of Object.keys(e.defaults))v[w]=o[w];return JSON.parse(JSON.stringify(v))}function Go(e){return oe({toolbox:{get title(){return e.title},icon:e.icon},propertyPanel:{get title(){return`${e.title}${A.t("editor.propertyDialogTitle")}`},fields:e.fields},createInitialProps:()=>({blockType:e.type,...e.defaults}),normalizeProps:t=>it(e,t),serialize:t=>qo(e,t)})}const Ko=Object.fromEntries(Vo.map(e=>[e.type,Go(e)])),Wo=oe({toolbox:{get title(){return A.t("page.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="4" y="3" width="16" height="18" rx="2" ry="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 8h8M8 12h8M8 16h5" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({edit:!1,value:[]}),normalizeProps:e=>({edit:e.edit??!1,value:Array.isArray(e.value)?e.value:[]}),serialize:e=>({value:e.value})});function U(e){const t=e.name||e.__name;if(!t)throw new Error("Editor component is missing both name and __name.");return t}const Be={MPage:{component:S(we(()=>xe(()=>import("./MPage-KIfv29YD.js"),__vite__mapDeps([8,9,1,2,3,4,5,6,0,7,10,11,12,13,14,15]),import.meta.url))),...Wo},MEditorSelector:{component:S(we(()=>xe(()=>import("./block-editor-selector-N7oIwjwP.js").then(e=>e.M),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url))),...zt},MForm:{component:S(we(()=>xe(()=>Promise.resolve().then(()=>ol),void 0,import.meta.url))),...nt},[U(Ue)]:{component:S(Ue),...Ft},[U(He)]:{component:S(He),...Ct},[U(je)]:{component:S(je),...Mt},[U(Oe)]:{component:S(Oe),...Tt},[U(Je)]:{component:S(Je),...It},[U(qe)]:{component:S(qe),...Et},[U(Ke)]:{component:S(Ke),...Lt},[U(Te)]:{component:S(Te),...Se},[U(Ve)]:{component:S(Ve),...xt},...Object.fromEntries(Object.entries(Ko).map(([e,t])=>[e,{component:S(Do),...t}]))};function pe(e){return Be[e]}function Yo(e){return e in Be}function Zo(){return Be}const Qo={key:0,class:"ce-form-tool__editor-shell","data-testid":"form-editor-shell"},Xo={key:1,class:"ce-form-tool__preview","data-testid":"preview-form-items"},el=he({__name:"MForm",props:{edit:{type:Boolean,default:!1},items:{default:()=>[]},onChange:{},onToolChange:{}},emits:["change"],setup(e,{expose:t,emit:o}){const v=new Set(["MPage","MForm","MFormItem","MEditorSelector"]),w=new Map,m=e,M=o,{t:P,localeValue:L}=et(),s=Xe(null),d=I(()=>de(m.items));let h=null,C=!1,O=!1,F=null,$=null,N=q(d.value);function _e(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,10):Math.random().toString(36).slice(2,12)}function V(r){return r.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function le(){return Object.keys(Zo()).filter(r=>!v.has(r)&&!!pe(r))}function j(r){return le().includes(r)}function T(){const r="MInput";return j(r)?r:le()[0]}function re(r){var H;const b=pe(r);if(!b)throw new Error(`MForm could not find a registered component for "${r}".`);const f=b.normalizeProps({...((H=b.createInitialProps)==null?void 0:H.call(b))??{},edit:!0});return{id:_e(),type:r,data:b.serialize(f)}}function B(r){const b=w.get(r);if(b)return b;const f=pe(r);if(!f)throw new Error(`MForm could not create a form item tool for "${r}".`);class H{constructor({data:l,config:k}){K(this,"state");K(this,"wrapper",null);K(this,"contentRoot",null);K(this,"vueApp",null);K(this,"propertyDialog",null);K(this,"toolbarAlignTimer",null);K(this,"handleToolbarPointer",()=>{this.scheduleToolbarAlignment()});const _=typeof(k==null?void 0:k.edit)=="boolean"?k.edit:!0,z=ye(l==null?void 0:l.editor);this.state=Ze(W({...l??{},edit:_,editor:z??re(r)}))}static get toolbox(){return f.toolbox}render(){const l=document.createElement("div");l.className="mokelay-form-item-tool",l.dataset.toolName=r,l.dataset.testid=`form-item-tool-${r}`;const k=document.createElement("div");return k.className="mokelay-form-item-tool__content",l.appendChild(k),this.wrapper=l,this.contentRoot=k,l.addEventListener("mouseenter",this.handleToolbarPointer),l.addEventListener("mousemove",this.handleToolbarPointer),this.createPropertyDialog(),this.mountVueApp(),l}destroy(){var l,k,_;this.clearToolbarAlignTimer(),(l=this.wrapper)==null||l.removeEventListener("mouseenter",this.handleToolbarPointer),(k=this.wrapper)==null||k.removeEventListener("mousemove",this.handleToolbarPointer),this.unmountVueApp(),(_=this.propertyDialog)==null||_.remove(),this.propertyDialog=null,this.contentRoot=null,this.wrapper=null}save(){return rt(this.state)}renderSettings(){return this.getPropertyFields().length?{icon:'<svg width="17" height="17" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.14 12.94C19.18 12.63 19.2 12.32 19.2 12C19.2 11.68 19.18 11.36 19.13 11.06L21.11 9.51C21.29 9.37 21.34 9.11 21.23 8.9L19.35 5.64C19.24 5.43 18.99 5.35 18.77 5.42L16.44 6.17C15.96 5.8 15.44 5.48 14.87 5.23L14.51 2.75C14.48 2.52 14.28 2.35 14.04 2.35H10.28C10.04 2.35 9.84 2.52 9.81 2.75L9.45 5.23C8.88 5.48 8.36 5.81 7.88 6.17L5.55 5.42C5.33 5.35 5.08 5.43 4.97 5.64L3.09 8.9C2.98 9.11 3.03 9.37 3.21 9.51L5.19 11.06C5.14 11.36 5.12 11.68 5.12 12C5.12 12.32 5.14 12.64 5.19 12.94L3.21 14.49C3.03 14.63 2.98 14.89 3.09 15.1L4.97 18.36C5.08 18.57 5.33 18.65 5.55 18.58L7.88 17.83C8.36 18.2 8.88 18.52 9.45 18.77L9.81 21.25C9.84 21.48 10.04 21.65 10.28 21.65H14.04C14.28 21.65 14.48 21.48 14.51 21.25L14.87 18.77C15.44 18.52 15.96 18.19 16.44 17.83L18.77 18.58C18.99 18.65 19.24 18.57 19.35 18.36L21.23 15.1C21.34 14.89 21.29 14.63 21.11 14.49L19.14 12.94ZM12.16 15.6C10.17 15.6 8.56 13.99 8.56 12C8.56 10.01 10.17 8.4 12.16 8.4C14.15 8.4 15.76 10.01 15.76 12C15.76 13.99 14.15 15.6 12.16 15.6Z" fill="currentColor"/></svg>',title:A.t("editor.properties"),onActivate:()=>{this.openPropertyDialog()},closeOnActivate:!0}:[]}mountVueApp(){if(!this.contentRoot)return;const l=k=>{Object.assign(this.state,W(k,this.state.variableName))};this.unmountVueApp(),this.vueApp=vt({render:()=>kt(Te,{...this.state,edit:!0,onToolChange:l,onChange:l})}),this.vueApp.mount(this.contentRoot)}unmountVueApp(){var l;(l=this.vueApp)==null||l.unmount(),this.vueApp=null}clearToolbarAlignTimer(){this.toolbarAlignTimer!==null&&(window.clearTimeout(this.toolbarAlignTimer),this.toolbarAlignTimer=null)}scheduleToolbarAlignment(){this.clearToolbarAlignTimer(),this.toolbarAlignTimer=window.setTimeout(()=>{this.alignToolbarToFormItem()},0)}alignToolbarToFormItem(){this.toolbarAlignTimer=null;const l=this.wrapper;if(!l)return;const k=l.closest(".ce-block"),_=l.closest(".codex-editor"),z=_==null?void 0:_.querySelector(":scope > .ce-toolbar"),G=z==null?void 0:z.querySelector(".ce-toolbar__plus");if(!k||!z||!G)return;const st=k.getBoundingClientRect(),De=l.getBoundingClientRect(),ct=G.getBoundingClientRect().height||26,ut=k.offsetTop+(De.top-st.top)+(De.height-ct)/2;z.style.top=`${Math.max(0,Math.round(ut))}px`}getPropertyFields(){var l;return((l=Se.propertyPanel)==null?void 0:l.fields)??[]}createPropertyDialog(){var z;if(!this.wrapper||!this.getPropertyFields().length)return;const l=document.createElement("dialog");l.className="mokelay-editor-tool__property-dialog",l.dataset.testid="tool-property-dialog",l.dataset.toolName="MFormItem";const k=((z=Se.propertyPanel)==null?void 0:z.title)||A.t("editor.propertyDialogTitle"),_=this.getPropertyFields().map(G=>this.renderPropertyField(G)).join("");l.innerHTML=`
3
+ <form method="dialog" class="mokelay-editor-tool__property-panel" data-testid="tool-property-panel">
4
+ <div class="mokelay-editor-tool__property-header">
5
+ <h3 class="mokelay-editor-tool__property-title" data-testid="tool-property-title">${V(k)}</h3>
6
+ <button type="submit" class="mokelay-editor-tool__property-close" data-testid="tool-property-close">${V(A.t("editor.close"))}</button>
7
+ </div>
8
+ <div class="mokelay-editor-tool__property-body" data-testid="tool-property-body">
9
+ ${_}
10
+ </div>
11
+ </form>
12
+ `,this.wrapper.appendChild(l),this.propertyDialog=l,this.bindPropertyInputs()}openPropertyDialog(){this.propertyDialog&&(this.syncPropertyDialogValues(),this.propertyDialog.open||this.propertyDialog.showModal())}syncPropertyDialogValues(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(l=>{const k=l.dataset.propertyKey;if(!k)return;const _=this.getPropertyFieldValue(k);if(l instanceof HTMLInputElement&&l.type==="checkbox"){l.checked=_===!0;return}l.value=typeof _=="string"?_:""})}updateProperty(l,k){Object.assign(this.state,W({...this.state,[l]:k,edit:!0},this.state.variableName))}getPropertyFieldValue(l){return this.state[l]}renderPropertyField(l){if(l.type==="checkbox")return`
13
+ <label class="mokelay-editor-tool__property-field mokelay-editor-tool__property-field--checkbox">
14
+ <input
15
+ class="mokelay-editor-tool__property-checkbox"
16
+ data-testid="tool-property-input-${l.key}"
17
+ data-property-key="${l.key}"
18
+ data-property-type="checkbox"
19
+ type="checkbox"
20
+ ${this.getPropertyFieldValue(l.key)===!0?"checked":""}
21
+ />
22
+ <span class="mokelay-editor-tool__property-label">${V(l.label)}</span>
23
+ </label>
24
+ `;if(l.type==="select"){const _=this.getPropertyFieldValue(l.key),z=(l.options??[]).map(G=>`
25
+ <option value="${V(G.value)}" ${_===G.value?"selected":""}>${V(G.label)}</option>
26
+ `).join("");return`
27
+ <label class="mokelay-editor-tool__property-field">
28
+ <span class="mokelay-editor-tool__property-label">${V(l.label)}</span>
29
+ <select
30
+ class="mokelay-editor-tool__property-input"
31
+ data-testid="tool-property-input-${l.key}"
32
+ data-property-key="${l.key}"
33
+ data-property-type="select"
34
+ >
35
+ ${z}
36
+ </select>
37
+ </label>
38
+ `}const k=this.getPropertyFieldValue(l.key);return`
39
+ <label class="mokelay-editor-tool__property-field">
40
+ <span class="mokelay-editor-tool__property-label">${V(l.label)}</span>
41
+ <input
42
+ class="mokelay-editor-tool__property-input"
43
+ data-testid="tool-property-input-${l.key}"
44
+ data-property-key="${l.key}"
45
+ data-property-type="text"
46
+ type="text"
47
+ value="${V(typeof k=="string"?k:"")}"
48
+ placeholder="${V(l.placeholder??"")}"
49
+ />
50
+ </label>
51
+ `}bindPropertyInputs(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(l=>{const k=l instanceof HTMLInputElement?l.type==="checkbox"?"change":"input":"change";l.addEventListener(k,()=>{const _=l.dataset.propertyKey;_&&this.updateProperty(_,this.readPropertyInputValue(l))})})}readPropertyInputValue(l){return l instanceof HTMLInputElement&&l.type==="checkbox"?l.checked:l.value}}const ne=H;return w.set(r,ne),ne}function fe(){return Object.fromEntries(le().map(r=>[r,{class:B(r),config:{edit:!0}}]))}function Ie(r){var f;const b=(f=r.editor)==null?void 0:f.type;return b&&j(b)?b:T()}function Ee(r,b){const f=Ie(r);if(f)return{id:`form-item-${r.variableName||b}`,type:f,data:Me(r)}}function q(r){return{blocks:r.map((b,f)=>Ee(b,f)).filter(b=>b!==void 0)}}function Y(r){return(Array.isArray(r.blocks)?r.blocks:[]).filter(f=>j(f.type)).map(f=>at(f.data)).filter(f=>f!==void 0)}function be(r,b){return JSON.stringify(r)===JSON.stringify(b)}function ae(r){var H,ne;const b=de(r),f={edit:m.edit,items:b.map(ze=>Me(ze))};O=!0,(H=m.onToolChange)==null||H.call(m,f),(ne=m.onChange)==null||ne.call(m,f),M("change",f.items)}async function y(r){const b=Y(N),f=Y(r);N=q(f),!C&&!be(b,f)&&ae(f)}function c(){$!==null&&(window.clearTimeout($),$=null)}function n(){h&&(c(),$=window.setTimeout(async()=>{if($=null,!!h)try{const r=await h.save();await y(r)}catch{}},0))}function p(){const r=s.value;r&&(E(),F=new MutationObserver(()=>{n()}),F.observe(r,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),r.addEventListener("input",n),r.addEventListener("change",n),r.addEventListener("click",n))}function E(){const r=s.value;F==null||F.disconnect(),F=null,c(),r==null||r.removeEventListener("input",n),r==null||r.removeEventListener("change",n),r==null||r.removeEventListener("click",n)}async function X(){!m.edit||!s.value||h||(N=q(d.value),h=new wt({holder:s.value,placeholder:P("form.placeholder"),tools:fe(),data:N,minHeight:0,i18n:{messages:_t(L.value)},onChange:async()=>{if(!h)return;const r=await h.save();await y(r)}}),p())}async function ee(){const r=h;if(r){h=null,E();try{const b=await r.save();N=q(Y(b))}catch{N=q(d.value)}r.destroy()}}async function ge(){await ee(),await Re(),await X()}async function Ae(){if(!h)return N;const r=await h.save();return await y(r),N}return t({saveEditor:Ae}),gt(async()=>{await X()}),ke(()=>m.items,async r=>{if(O){O=!1;return}const b=de(r),f=Y(N);be(b,f)||(C=!0,N=q(b),h&&await ge(),C=!1)},{deep:!0}),ke(L,async()=>{h&&await ge()}),ke(()=>m.edit,async r=>{if(r){await Re(),await X();return}await ee()}),Qe(async()=>{await ee()}),(r,b)=>(a(),i("div",{class:J(["ce-form-tool",{"ce-form-tool--edit":e.edit}]),"data-testid":"editor-form-tool"},[e.edit?(a(),i("div",Qo,[u("div",{ref_key:"holderRef",ref:s,class:"ce-form-tool__editor","data-testid":"form-editor-surface"},null,512)])):(a(),i("div",Xo,[(a(!0),i(D,null,R(d.value,(f,H)=>(a(),me(Te,{key:`${f.variableName}-${H}`,edit:!1,"label-name":f.labelName,"variable-name":f.variableName,editor:f.editor?Le(Fe)(f.editor):void 0,layout:f.layout},null,8,["label-name","variable-name","editor","layout"]))),128))]))],2))}}),tl=Ce(el,[["__scopeId","data-v-a3894c78"]]),ol=Object.freeze(Object.defineProperty({__proto__:null,default:tl,mFormEditorTool:nt},Symbol.toStringTag,{value:"Module"}));export{Ot as _,pe as a,xe as b,Fe as c,Zo as g,zt as m,ye as n};