mokelay-editor 0.0.2 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/EditorPanel-CF3kVQ21.css +1 -0
- package/assets/EditorPanel-CIQRB85C.js +1 -0
- package/assets/MPage-CMw0gXU4.js +1 -0
- package/assets/MPage.vue_vue_type_script_setup_true_lang-D5yGdSyf.js +1 -0
- package/assets/PreviewPanel-DUteH-hK.js +1 -0
- package/assets/block-advanced-BuKEuWQ4.js +1 -0
- package/assets/block-advanced-DfEsE7Tf.css +1 -0
- package/assets/block-chart-0eTcp5HJ.js +1 -0
- package/assets/block-chart-BDhOWgsD.css +1 -0
- package/assets/block-datasource-DIH8wAmJ.css +1 -0
- package/assets/block-datasource-_a7GVdwT.js +1 -0
- package/assets/block-editor-selector-Da_ew6E9.css +1 -0
- package/assets/block-editor-selector-niI9qUPh.js +72 -0
- package/assets/block-form-0t-EPu3N.css +1 -0
- package/assets/block-form-BEDK0U9Z.js +51 -0
- package/assets/echarts-BN_iJMI5.js +24 -0
- package/assets/{editorjs-hCuh8vdW.js → editorjs-CrGo22NX.js} +10 -10
- package/assets/element-plus-CD8wJz6b.js +1 -0
- package/assets/element-plus-Dit-l95b.css +1 -0
- package/assets/index-CTUsYCbZ.css +1 -0
- package/assets/index-DaLT-qTF.js +10 -0
- package/assets/vue-vendor-Dh3tbb7h.js +17 -0
- package/assets/zrender-CyMoNtco.js +29 -0
- package/index.html +19 -6
- package/package.json +1 -1
- package/assets/EditorPanel-bZ_ztq4l.css +0 -1
- package/assets/EditorPanel-s8UfMl2a.js +0 -1
- package/assets/MForm-DHyGtILs.css +0 -1
- package/assets/MForm-icLQ2kKk.js +0 -50
- package/assets/MPage-BkuklFgX.js +0 -1
- package/assets/PreviewPanel-Bs7PtelH.js +0 -1
- package/assets/index-DP9Xxuqs.js +0 -18
- package/assets/index-qSOXU8wC.css +0 -1
- package/assets/storage-DLZD2nc7.js +0 -51
- package/assets/storage-DdQoXp86.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[data-v-5543de7b] .mokelay-editor-tool{position:relative}[data-v-5543de7b] .mokelay-editor-tool__property-dialog{width:min(100%,480px);border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px #0f172a52}[data-v-5543de7b] .mokelay-editor-tool__property-dialog::backdrop{background:#0f172a73}[data-v-5543de7b] .mokelay-editor-tool__property-panel{margin:0;padding:20px;background:#fff}[data-v-5543de7b] .mokelay-editor-tool__property-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}[data-v-5543de7b] .mokelay-editor-tool__property-title{margin:0;color:#0f172a;font-size:18px;font-weight:600}[data-v-5543de7b] .mokelay-editor-tool__property-close{border:0;border-radius:10px;padding:8px 12px;background:#e2e8f0;color:#334155;cursor:pointer}[data-v-5543de7b] .mokelay-editor-tool__property-body{display:flex;flex-direction:column;gap:14px}[data-v-5543de7b] .mokelay-editor-tool__property-field{display:flex;flex-direction:column;gap:6px}[data-v-5543de7b] .mokelay-editor-tool__property-field--checkbox{flex-direction:row;align-items:center;gap:10px}[data-v-5543de7b] .mokelay-editor-tool__property-label{color:#334155;font-size:13px;font-weight:600}[data-v-5543de7b] .mokelay-editor-tool__property-checkbox{width:16px;height:16px;margin:0}[data-v-5543de7b] .mokelay-editor-tool__property-input{width:100%;border:1px solid rgb(148 163 184 / .65);border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a;font-size:14px;line-height:20px}[data-v-5543de7b] .mokelay-editor-tool__property-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}[data-v-5543de7b] .mokelay-editor-tool__property-textarea{min-height:128px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}[data-v-5543de7b] .mokelay-editor-tool__property-input[aria-invalid=true]{border-color:#dc2626;box-shadow:0 0 0 2px #dc26261f}[data-v-5543de7b] .mokelay-editor-tool__property-error{color:#dc2626;font-size:12px;line-height:18px}.dark{background:#0f172a}.dark{color:#f1f5f9}.dark{background:#334155;color:#f1f5f9}.dark{color:#cbd5e1}.dark{background:#0f172a;color:#e2e8f0;border-color:#475569e6}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as f}from"./MPage.vue_vue_type_script_setup_true_lang-D5yGdSyf.js";import{u as b,_ as g}from"./block-advanced-BuKEuWQ4.js";import{f as x,o as r,j as a,C as n,u as h,t as i,x as y,r as _}from"./vue-vendor-Dh3tbb7h.js";import"./editorjs-CrGo22NX.js";import"./block-editor-selector-niI9qUPh.js";import"./block-form-BEDK0U9Z.js";import"./block-chart-0eTcp5HJ.js";import"./echarts-BN_iJMI5.js";import"./zrender-CyMoNtco.js";import"./block-datasource-_a7GVdwT.js";import"./element-plus-CD8wJz6b.js";const v={"data-testid":"editor-panel",class:"flex min-h-[520px] flex-1 flex-col rounded-xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900"},C={key:0,"data-testid":"editor-loading-state",class:"mb-3 rounded border border-sky-300 bg-sky-50 p-3 text-sm text-sky-800 dark:border-sky-500/60 dark:bg-sky-900/30 dark:text-sky-100"},B={key:1,"data-testid":"editor-error-state",class:"mb-3 rounded border border-red-300 bg-red-50 p-3 text-sm text-red-800 dark:border-red-500/60 dark:bg-red-900/30 dark:text-red-100"},E=x({__name:"EditorPanel",props:{blocks:{default:()=>[]},loading:{type:Boolean,default:!1},error:{default:""}},emits:["change"],setup(e,{expose:l,emit:c}){const m=e,s=c,d=_(null),{t:u}=b();async function k(){var o;const t=await((o=d.value)==null?void 0:o.saveEditor())??{blocks:m.blocks};return s("change",t.blocks),t}function p(t){s("change",t)}return l({save:k}),(t,o)=>(r(),a("section",v,[e.loading?(r(),a("p",C,n(h(u)("page.loading")),1)):e.error?(r(),a("p",B,n(e.error),1)):i("",!0),e.loading?i("",!0):(r(),y(f,{key:2,ref_key:"pageRef",ref:d,edit:!0,value:e.blocks,onChange:p},null,8,["value"]))]))}}),z=g(E,[["__scopeId","data-v-5543de7b"]]);export{z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o}from"./MPage.vue_vue_type_script_setup_true_lang-D5yGdSyf.js";import"./editorjs-CrGo22NX.js";import"./block-advanced-BuKEuWQ4.js";import"./vue-vendor-Dh3tbb7h.js";import"./element-plus-CD8wJz6b.js";import"./block-editor-selector-niI9qUPh.js";import"./block-form-BEDK0U9Z.js";import"./block-chart-0eTcp5HJ.js";import"./echarts-BN_iJMI5.js";import"./zrender-CyMoNtco.js";import"./block-datasource-_a7GVdwT.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A,F as L,E as q}from"./editorjs-CrGo22NX.js";import{u as z,k as D}from"./block-advanced-BuKEuWQ4.js";import{c as G}from"./block-editor-selector-niI9qUPh.js";import{_ as E}from"./block-form-BEDK0U9Z.js";import{f as H,z as U,F as v,A as B,B as I,o,j as i,G as k,H as g,x as K,q as Q,t as W,e as C,r as X}from"./vue-vendor-Dh3tbb7h.js";const Y={key:1,"data-testid":"preview-blocks",class:"space-y-1"},Z=["data-testid"],ee={key:1,"data-testid":"preview-columns",class:"grid gap-3 md:grid-cols-2"},te=["data-testid"],ae=["data-testid"],le=H({__name:"MPage",props:{edit:{type:Boolean,default:!1},value:{default:()=>[]},onToolChange:{}},emits:["change"],setup($,{expose:T,emit:J}){const s=$,N=J,l=C(()=>s.edit);let r=null,c=!1,u=!1,n={blocks:s.value};const{t:S,localeValue:h}=z(),d=X(null),x=C(()=>Array.isArray(s.value)?s.value:[]);function F(e){const t=e.data.cols;return Array.isArray(t)?t.filter(a=>typeof a=="object"&&a!==null):[]}function M(e){return Array.isArray(e.blocks)?e.blocks:[]}function w(e){return{blocks:e}}function O(e,t){return JSON.stringify(e)===JSON.stringify(t)}function P(e){var a;const t={edit:s.edit,value:e};(a=s.onToolChange)==null||a.call(s,t),u=!0,N("change",e)}async function f(){if(!d.value||!l.value||r)return;const e={...G({edit:!0}),table:{class:L,inlineToolbar:!0}};r=new A({holder:d.value,placeholder:S("editor.placeholder"),tools:{...e,columns:{class:q,config:{EditorJsLibrary:A,tools:e}}},data:n,i18n:{messages:D(h.value)},onChange:async()=>{if(!r)return;const t=await r.save();n=t,!c&&P(t.blocks)}})}async function y(){const e=r;if(e){r=null;try{n=await e.save()}catch{n=w(s.value)}e.destroy()}}async function _(){await y(),await B(),await f()}async function R(){if(!r)return n;const e=await r.save();return n=e,e}return T({saveEditor:R}),U(async()=>{await f()}),v(()=>s.value,async e=>{if(u){u=!1;return}const t=Array.isArray(e)?e:[],a=Array.isArray(n.blocks)?n.blocks:[];O(t,a)||(c=!0,n=w(t),r&&await _(),c=!1)},{deep:!0}),v(h,async()=>{r&&await _()}),v(l,async e=>{if(e){await B(),await f();return}await y()}),I(async()=>{await y()}),(e,t)=>l.value?(o(),i("div",{key:0,ref_key:"holderRef",ref:d,"data-testid":"editor-surface",class:"min-h-0 flex-1 rounded-lg border border-slate-300 bg-slate-50 py-3 pr-3 pl-11 dark:border-slate-700 dark:bg-slate-950"},null,512)):(o(),i("div",Y,[(o(!0),i(k,null,g(x.value,(a,p)=>(o(),i("div",{key:p,"data-testid":`preview-block-${a.type}`,class:"p-0"},[a.type!=="columns"?(o(),K(E,{key:0,block:a},null,8,["block"])):a.type==="columns"?(o(),i("div",ee,[(o(!0),i(k,null,g(F(a),(V,m)=>(o(),i("div",{key:`columns-${p}-${m}`,"data-testid":`preview-column-${m}`,class:"space-y-2 p-2"},[(o(!0),i(k,null,g(M(V),(b,j)=>(o(),i("div",{key:`columns-${p}-${m}-${j}`,"data-testid":`preview-column-block-${b.type}`,class:"p-2"},[Q(E,{block:b,"compact-table":""},null,8,["block"])],8,ae))),128))],8,te))),128))])):W("",!0)],8,Z))),128))]))}});export{le as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as s}from"./block-advanced-BuKEuWQ4.js";import{_ as l}from"./MPage.vue_vue_type_script_setup_true_lang-D5yGdSyf.js";import{f as i,o as r,j as t,l as n,C as a,u as d,x as b}from"./vue-vendor-Dh3tbb7h.js";import"./element-plus-CD8wJz6b.js";import"./editorjs-CrGo22NX.js";import"./block-editor-selector-niI9qUPh.js";import"./block-form-BEDK0U9Z.js";import"./block-chart-0eTcp5HJ.js";import"./echarts-BN_iJMI5.js";import"./zrender-CyMoNtco.js";import"./block-datasource-_a7GVdwT.js";const m={"data-testid":"preview-panel",class:"flex min-h-[520px] flex-1 flex-col rounded-xl border border-slate-200 bg-white p-4 shadow-sm dark:border-slate-700 dark:bg-slate-900"},c={class:"flex-1 overflow-auto"},p={key:0,"data-testid":"preview-loading-state",class:"rounded border border-sky-300 bg-sky-50 p-3 text-sky-800 dark:border-sky-500/60 dark:bg-sky-900/30 dark:text-sky-100"},k={key:1,"data-testid":"preview-error-state",class:"rounded border border-red-300 bg-red-50 p-3 text-red-800 dark:border-red-500/60 dark:bg-red-900/30 dark:text-red-100"},f={key:2,"data-testid":"preview-empty-state",class:"rounded border border-amber-300 bg-amber-50 p-3 text-amber-800 dark:border-amber-500/60 dark:bg-amber-900/30 dark:text-amber-100"},D=i({__name:"PreviewPanel",props:{blocks:{default:()=>[]},loading:{type:Boolean,default:!1},error:{default:""}},setup(e){const{t:o}=s();return(u,g)=>(r(),t("section",m,[n("div",c,[e.loading?(r(),t("p",p,a(d(o)("page.loading")),1)):e.error?(r(),t("p",k,a(e.error),1)):e.blocks.length?(r(),b(l,{key:3,edit:!1,value:e.blocks},null,8,["value"])):(r(),t("p",f,a(d(o)("preview.emptyState")),1))])]))}});export{D as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as F,e as D,y as Be,f as ae,o as f,j as g,l as S,z as xe,A as ue,B as Te,C as z,q as Fe,s as De,D as Ie,u as Y,E as he,F as we,v as q,G as A,H as U,p as Ne,t as K,x as Ee,m as Re,I as Oe,n as ce,J as Pe}from"./vue-vendor-Dh3tbb7h.js";import{E as Ue}from"./element-plus-CD8wJz6b.js";const je={app:{title:"Mokelay Editor",subtitle:"Mokelay page configurator",darkMode:"Dark mode",dark:"Dark",light:"Light",language:"Language",chinese:"中文",english:"English"},editor:{placeholder:"Start typing your content...",defaultParagraph:"Welcome to the Mokelay editor starter template.",fullscreenEdit:"Fullscreen",saveContent:"Save",saving:"Saving...",saveSuccess:"Saved",saveFailed:"Save failed. Please try again.",previewPage:"Preview",properties:"Properties",propertyDialogTitle:"Property Settings",configJson:"Config JSON",close:"Close",invalidJson:"Enter valid JSON."},preview:{title:"Config Preview",backToEditor:"Back",emptyState:"No page content yet."},globalCalls:{ok:"OK",cancel:"Cancel",alertRoleLabel:"Alert",confirmRoleLabel:"Confirm",messageRoleLabel:"Message"},input:{toolboxTitle:"Input",defaultPlaceholder:"Please enter...",propertyPanelTitle:"Input Properties",properties:{placeholder:"Placeholder",value:"Default value",valuePlaceholder:"Please enter a default value"}},link:{toolboxTitle:"Link",defaultText:"Link",defaultUrl:"https://mokelay.com",propertyPanelTitle:"Link Properties",properties:{text:"Link text",url:"Link URL",open:"Open in new page"}},advanceInput:{toolboxTitle:"Advanced Input"},dividerLine:{toolboxTitle:"Divider"},chart:{toolboxTitle:"Chart",propertyPanelTitle:"Chart Properties",defaultSeriesName:"Data",types:{line:"Line chart",bar:"Bar chart",pie:"Pie chart"},properties:{type:"Chart type",xAxis:"X-axis data",series:"Series data"},validation:{invalidJson:"Enter valid JSON."}},editorSelector:{toolboxTitle:"Component Selector",placeholder:"Select a component"},form:{toolboxTitle:"Form",placeholder:"Add a form item"},advanceTable:{toolboxTitle:"Advanced Table",propertyPanelTitle:"Advanced Table Properties",defaultColumnName:"Column",empty:"No data",selectAll:"Select all",selectRow:"Select row",properties:{index:"Show index column",selection:"Show selection column"},defaultColumns:{name:"Name",status:"Status",tag:"Tag",owner:"Owner",link:"Link"},defaultRows:{first:{name:"Mokelay Page",status:"Designing",tag:"Design",owner:"Product Team",linkText:"Website",linkUrl:"https://mokelay.com"},second:{name:"Advanced Table",status:"Previewable",tag:"Preview",owner:"Editor Team",linkText:"Docs",linkUrl:"https://editor.mokelay.com"}}},datasource:{toolboxTitle:"Datasource Editor",title:"Datasource",empty:"No items",emptySchema:'No field config yet. Click "Generate field config" first.',noListRecord:"This schema does not contain an array field for list data.",noFormFields:"This schema does not contain simple fields for a form.",fields:{type:"Datasource type",rawData:"JSON data",domain:"API domain",path:"API path",method:"Method",key:"Key",mock:"Mock data",jsonSchema:"JSON Schema",generatedFields:"Fields",searchFields:"Search fields or paths",recordPath:"List data path",rootRecordPath:"Root data",selectedFields:"Selected fields",required:"Required"},sections:{headers:"Header",queries:"Query",body:"Body",generateFields:"Generate field config",fieldSelection:"Field selection"},actions:{add:"Add",remove:"Remove",parseJsonSchema:"Parse JSON Schema",parsingJsonSchema:"Parsing...",generateFields:"Generate field config",generatingFields:"Generating..."},tabs:{list:"List fields",form:"Form fields",advanced:"Advanced Schema"},help:{generateFields:"Detect fields from JSON data or an API response, then prepare them for list and form components.",fieldSelection:"Choose the fields components should use, and rename them with business-friendly labels."},schemaTypes:{object:"Object",array:"List",string:"Text",number:"Number",boolean:"Switch",null:"Empty",union:"Union"},componentHints:{text:"Text",number:"Number",switch:"Switch",object:"Object",array:"List"},validation:{invalidJson:"Enter valid JSON.",invalidJsonSchema:"Enter a JSON Schema that matches the supported format.",invalidNumber:"Enter a valid number.",invalidObject:"Enter a valid JSON object.",invalidArray:"Enter a valid JSON array.",fixJsonBeforeSchema:"Fix JSON data before parsing JSON Schema.",fixBodyBeforeSchema:"Fix Body mock data before parsing JSON Schema.",nonJsonResponse:"The API response is not JSON.",invalidJsonResponse:"The API response is not valid JSON.",apiRequestFailed:"API request failed:",emptyArraySchema:"Cannot infer JSON Schema from an empty array.",mixedArraySchema:"The array contains incompatible types, so JSON Schema cannot be inferred."}},formItem:{toolboxTitle:"Form Item",defaultLabelName:"Field",propertyPanelTitle:"Form Item Properties",emptyEditor:"No editor selected",properties:{labelName:"Field label",variableName:"Variable name",editor:"Editor",layout:"Layout"},placeholders:{labelName:"Enter field label",variableName:"Enter variable name"},layouts:{vertical:"Vertical",horizontal:"Horizontal"}},tag:{toolboxTitle:"Tag",defaultTagName:"Tag",propertyPanelTitle:"Tag Properties",properties:{tagName:"Tag name",type:"Type",size:"Size",color:"Custom color",colorPlaceholder:"e.g. #409EFF",closable:"Closable"},types:{default:"Default",primary:"Primary",success:"Success",info:"Info",warning:"Warning",danger:"Danger"},sizes:{default:"Default",large:"Large",medium:"Medium",small:"Small"}},page:{toolboxTitle:"Page",loading:"Loading page...",loadFailed:"Failed to load page. Please try again."}},Ve={},He={app:{title:"Mokelay Editor",subtitle:"Mokelay页面配置器",darkMode:"深色模式",dark:"深色",light:"浅色",language:"语言",chinese:"中文",english:"English"},editor:{placeholder:"开始输入你的内容...",defaultParagraph:"欢迎使用 Mokelay 编辑器初始化模板。",fullscreenEdit:"全屏编辑",saveContent:"保存",saving:"保存中...",saveSuccess:"保存成功",saveFailed:"保存失败,请稍后重试",previewPage:"预览",properties:"属性",propertyDialogTitle:"属性设置",configJson:"配置 JSON",close:"关闭",invalidJson:"请输入有效 JSON。"},preview:{title:"配置预览",backToEditor:"返回",emptyState:"暂无页面内容。"},globalCalls:{ok:"确定",cancel:"取消",alertRoleLabel:"提示",confirmRoleLabel:"确认",messageRoleLabel:"消息"},input:{toolboxTitle:"输入框",defaultPlaceholder:"请输入.....",propertyPanelTitle:"输入框属性",properties:{placeholder:"占位提示",value:"默认值",valuePlaceholder:"请输入默认值"}},link:{toolboxTitle:"链接",defaultText:"链接",defaultUrl:"https://mokelay.com",propertyPanelTitle:"链接属性",properties:{text:"链接文本",url:"链接地址",open:"新页面打开"}},advanceInput:{toolboxTitle:"高级输入框"},dividerLine:{toolboxTitle:"分割线"},chart:{toolboxTitle:"图表",propertyPanelTitle:"图表属性",defaultSeriesName:"数据",types:{line:"折线图",bar:"柱状图",pie:"饼图"},properties:{type:"图表类型",xAxis:"横坐标数据",series:"图表数据"},validation:{invalidJson:"请输入有效 JSON。"}},editorSelector:{toolboxTitle:"组件选择器",placeholder:"选择组件"},form:{toolboxTitle:"表单",placeholder:"添加表单项"},advanceTable:{toolboxTitle:"高级表格",propertyPanelTitle:"高级表格属性",defaultColumnName:"列",empty:"暂无数据",selectAll:"全选",selectRow:"选择行",properties:{index:"显示序号列",selection:"显示多选列"},defaultColumns:{name:"名称",status:"状态",tag:"标签",owner:"负责人",link:"链接"},defaultRows:{first:{name:"Mokelay 页面",status:"设计中",tag:"设计",owner:"产品团队",linkText:"官网",linkUrl:"https://mokelay.com"},second:{name:"高级表格",status:"可预览",tag:"预览",owner:"编辑器团队",linkText:"文档",linkUrl:"https://editor.mokelay.com"}}},datasource:{toolboxTitle:"数据源编辑器",title:"数据源",empty:"暂无配置项",emptySchema:"还没有字段配置,请先点击“生成字段配置”。",noListRecord:"当前 Schema 中没有可作为列表数据的数组字段。",noFormFields:"当前 Schema 中没有可用于表单的普通字段。",fields:{type:"数据源类型",rawData:"JSON 数据",domain:"API 域名",path:"API Path",method:"调用方法",key:"Key",mock:"Mock 数据",jsonSchema:"JSON Schema",generatedFields:"字段数",searchFields:"搜索字段名称或路径",recordPath:"列表数据位置",rootRecordPath:"根数据",selectedFields:"已选择字段",required:"必填"},sections:{headers:"Header",queries:"Query",body:"Body",generateFields:"生成字段配置",fieldSelection:"字段选择"},actions:{add:"添加",remove:"删除",parseJsonSchema:"解析JSON Schema",parsingJsonSchema:"解析中...",generateFields:"生成字段配置",generatingFields:"生成中..."},tabs:{list:"列表字段",form:"表单字段",advanced:"高级 Schema"},help:{generateFields:"从 JSON 数据或 API 响应中识别字段,生成给列表和表单使用的配置。",fieldSelection:"勾选需要给组件使用的字段,可以直接改成业务同学看得懂的名称。"},schemaTypes:{object:"对象",array:"列表",string:"文本",number:"数字",boolean:"开关",null:"空值",union:"联合"},componentHints:{text:"文本",number:"数字",switch:"开关",object:"对象",array:"列表"},validation:{invalidJson:"请输入标准 JSON 结构。",invalidJsonSchema:"请输入符合数据格式的 JSON Schema。",invalidNumber:"请输入有效数字。",invalidObject:"请输入标准 JSON 对象。",invalidArray:"请输入标准 JSON 数组。",fixJsonBeforeSchema:"请先修正 JSON 数据。",fixBodyBeforeSchema:"请先修正 Body 中的 Mock 数据。",nonJsonResponse:"API 响应不是 JSON 数据。",invalidJsonResponse:"API 响应不是有效 JSON 数据。",apiRequestFailed:"API 请求失败:",emptyArraySchema:"空数组无法推断 JSON Schema。",mixedArraySchema:"数组中包含无法合并的类型,无法推断 JSON Schema。"}},formItem:{toolboxTitle:"表单项",defaultLabelName:"字段",propertyPanelTitle:"表单项属性",emptyEditor:"未选择编辑器",properties:{labelName:"字段文本",variableName:"变量名",editor:"编辑器",layout:"布局方式"},placeholders:{labelName:"请输入字段文本",variableName:"请输入变量名"},layouts:{vertical:"垂直",horizontal:"水平"}},tag:{toolboxTitle:"标签",defaultTagName:"标签",propertyPanelTitle:"标签属性",properties:{tagName:"标签内容",type:"标签类型",size:"标签尺寸",color:"自定义颜色",colorPlaceholder:"例如:#409EFF",closable:"可关闭"},types:{default:"默认",primary:"主要",success:"成功",info:"信息",warning:"警告",danger:"危险"},sizes:{default:"默认",large:"大",medium:"中",small:"小"}},page:{toolboxTitle:"页面",loading:"正在读取页面...",loadFailed:"页面读取失败,请稍后重试。"}},We={ui:{blockTunes:{toggler:{"Click to tune":"点击设置","or drag to move":"或拖拽移动"}},inlineToolbar:{converter:{"Convert to":"转换为"}},toolbar:{toolbox:{Add:"添加"}},popover:{Filter:"筛选","Nothing found":"未找到结果"}},blockTunes:{delete:{Delete:"删除"},moveUp:{"Move up":"上移"},moveDown:{"Move down":"下移"}},toolNames:{Text:"文本",Heading:"标题",List:"列表",Warning:"提示",Checklist:"清单",Quote:"引用",Delimiter:"分割线",Table:"表格",Link:"链接",Columns:"分栏"}},qe={zh:He,en:je},Ke={zh:We,en:Ve},Me="mokelay-editor-locale";function Xe(e){const s=(document.cookie?document.cookie.split("; "):[]).find(c=>c.startsWith(`${e}=`));return s?decodeURIComponent(s.slice(e.length+1)):null}function Ge(e,t){document.cookie=`${e}=${encodeURIComponent(t)}; path=/; max-age=31536000; samesite=lax`}function Qe(){return navigator.language.toLowerCase().startsWith("zh")?"zh":"en"}function Ye(){const e=Xe(Me);return e==="zh"||e==="en"?e:Qe()}const te=F(Ye());function ze(e){const t=e.split(".");let s=qe[te.value];for(const c of t){if(typeof s=="object"&&s!==null&&c in s){s=s[c];continue}s=void 0;break}return typeof s=="string"?s:e}function Ae(e){te.value=e,Ge(Me,e)}function Ce(){return{locale:Be(te),t:ze,setLocale:Ae,localeValue:D(()=>te.value)}}function Yt(e){return Ke[e]}const r={t:ze,get locale(){return te.value},setLocale:Ae};function Zt(e){return e}const Ze={class:"ce-input-tool","data-testid":"editor-input-tool"},et=["placeholder","value"],tt={toolbox:{get title(){return r.t("input.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="6" width="18" height="12" rx="2" ry="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M8 12h8" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},propertyPanel:{get title(){return r.t("input.propertyPanelTitle")},get fields(){return[{key:"placeholder",label:r.t("input.properties.placeholder"),placeholder:r.t("input.defaultPlaceholder")},{key:"value",label:r.t("input.properties.value"),placeholder:r.t("input.properties.valuePlaceholder")}]}},createInitialProps:()=>({placeholder:r.t("input.defaultPlaceholder"),value:""}),normalizeProps:e=>({edit:e.edit??!1,placeholder:e.placeholder??"",value:e.value??""}),serialize:e=>({placeholder:e.placeholder??"",value:e.value??""})},at=ae({__name:"MInput",props:{edit:{type:Boolean},placeholder:{},value:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e;function s(c){var T,M;const h={edit:t.edit,placeholder:t.placeholder??"",value:t.value??"",...c};(T=t.onToolChange)==null||T.call(t,h),(M=t.onChange)==null||M.call(t,h)}return(c,h)=>(f(),g("div",Ze,[S("input",{"data-testid":"editor-input-control",class:"ce-input-tool__control",type:"text",placeholder:e.placeholder,value:e.value,onInput:h[0]||(h[0]=T=>s({value:T.target.value}))},null,40,et)]))}}),oe=(e,t)=>{const s=e.__vccOpts||e;for(const[c,h]of t)s[c]=h;return s},ot=oe(at,[["__scopeId","data-v-38751236"]]),nt=["href","target","rel"],lt={toolbox:{get title(){return r.t("link.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10.6 13.4a4 4 0 0 0 5.7 0l2.1-2.1a4 4 0 0 0-5.7-5.7l-1.2 1.2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/><path d="M13.4 10.6a4 4 0 0 0-5.7 0l-2.1 2.1a4 4 0 0 0 5.7 5.7l1.2-1.2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},propertyPanel:{get title(){return r.t("link.propertyPanelTitle")},get fields(){return[{key:"text",label:r.t("link.properties.text"),placeholder:r.t("link.defaultText")},{key:"url",label:r.t("link.properties.url"),placeholder:r.t("link.defaultUrl")},{key:"open",label:r.t("link.properties.open"),type:"checkbox"}]}},createInitialProps:()=>({text:r.t("link.defaultText"),url:r.t("link.defaultUrl"),open:!1}),normalizeProps:e=>{var t,s;return{edit:e.edit??!1,text:((t=e.text)==null?void 0:t.trim())||r.t("link.defaultText"),url:((s=e.url)==null?void 0:s.trim())||r.t("link.defaultUrl"),open:e.open===!0}},serialize:e=>{var t,s;return{text:((t=e.text)==null?void 0:t.trim())||r.t("link.defaultText"),url:((s=e.url)==null?void 0:s.trim())||r.t("link.defaultUrl"),open:e.open===!0}}},rt=ae({__name:"MLink",props:{edit:{type:Boolean},text:{},url:{},open:{type:Boolean},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,{t:s}=Ce(),c=F(null),h=D(()=>{var b;return((b=t.text)==null?void 0:b.trim())||s("link.defaultText")}),T=D(()=>O(t.url??"")),M=D(()=>t.open?"_blank":void 0),E=D(()=>t.open?"noopener noreferrer":void 0);let k=null;function x(){k!==null&&(window.clearTimeout(k),k=null)}function C(){var B;const b=c.value;if(!b)return;const y=b.closest(".ce-block"),N=(B=b.closest(".codex-editor"))==null?void 0:B.querySelector(".ce-toolbar"),L=N==null?void 0:N.querySelector(".ce-toolbar__plus");if(!y||!N||!L)return;const $=y.getBoundingClientRect(),H=b.getBoundingClientRect(),ee=L.getBoundingClientRect().height||26,W=y.offsetTop+(H.top-$.top)+(H.height-ee)/2;N.style.top=`${Math.round(W)}px`}function w(){x(),k=window.setTimeout(()=>{C()},0)}function O(b){const y=b.trim();if(!y)return"#";if(y.startsWith("//"))return`https:${y}`;const N=y.match(/^([a-z][a-z\d+.-]*):/i);if(!N)return y;const L=N[1].toLowerCase();return["http","https","mailto","tel"].includes(L)?y:"#"}function V(b){var N,L;const y={edit:t.edit,text:t.text??"",url:t.url??"",open:t.open??!1,...b};(N=t.onToolChange)==null||N.call(t,y),(L=t.onChange)==null||L.call(t,y)}function J(b){(t.edit||T.value==="#")&&b.preventDefault(),V({text:h.value,url:t.url??"",open:t.open??!1})}return xe(()=>{ue(()=>{var b,y;(b=c.value)==null||b.addEventListener("mouseenter",w),(y=c.value)==null||y.addEventListener("mousemove",w)})}),Te(()=>{var b,y;x(),(b=c.value)==null||b.removeEventListener("mouseenter",w),(y=c.value)==null||y.removeEventListener("mousemove",w)}),(b,y)=>(f(),g("span",{ref_key:"rootRef",ref:c,class:"ce-link-tool","data-testid":"editor-link-tool"},[S("a",{class:"ce-link-tool__anchor","data-testid":"editor-link-value",href:T.value,target:M.value,rel:E.value,onClick:J},z(h.value),9,nt)],512))}}),it=oe(rt,[["__scopeId","data-v-e56db1bc"]]),st={toolbox:{get title(){return r.t("tag.toolboxTitle")},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" ry="5" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="8" cy="12" r="1.4" fill="currentColor"/></svg>'},propertyPanel:{get title(){return r.t("tag.propertyPanelTitle")},get fields(){return[{key:"tagName",label:r.t("tag.properties.tagName"),placeholder:r.t("tag.defaultTagName")},{key:"type",label:r.t("tag.properties.type"),type:"select",options:[{label:r.t("tag.types.default"),value:""},{label:r.t("tag.types.primary"),value:"primary"},{label:r.t("tag.types.success"),value:"success"},{label:r.t("tag.types.info"),value:"info"},{label:r.t("tag.types.warning"),value:"warning"},{label:r.t("tag.types.danger"),value:"danger"}]},{key:"size",label:r.t("tag.properties.size"),type:"select",options:[{label:r.t("tag.sizes.default"),value:""},{label:r.t("tag.sizes.large"),value:"large"},{label:r.t("tag.sizes.medium"),value:"default"},{label:r.t("tag.sizes.small"),value:"small"}]},{key:"color",label:r.t("tag.properties.color"),placeholder:r.t("tag.properties.colorPlaceholder")},{key:"closable",label:r.t("tag.properties.closable"),type:"checkbox"}]}},createInitialProps:()=>({tagName:r.t("tag.defaultTagName"),closable:!1,size:"",color:"",type:"success"}),normalizeProps:e=>{var t;return{edit:e.edit??!1,tagName:((t=e.tagName)==null?void 0:t.trim())||r.t("tag.defaultTagName"),closable:e.closable===!0,size:e.size??"",color:e.color??"",type:e.type??"success"}},serialize:e=>{var t;return{tagName:((t=e.tagName)==null?void 0:t.trim())||r.t("tag.defaultTagName"),closable:e.closable??!1,size:e.size??"",color:e.color??"",type:e.type??""}}},ct=ae({__name:"MTag",props:{edit:{type:Boolean},tagName:{},closable:{type:Boolean},size:{},color:{},type:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,s=F(null);let c=null;function h(x){var w,O;const C={edit:t.edit,tagName:t.tagName??"",closable:t.closable??!1,size:t.size??"",color:t.color??"",type:t.type??"",...x};(w=t.onToolChange)==null||w.call(t,C),(O=t.onChange)==null||O.call(t,C)}function T(){h({closable:t.closable??!1})}function M(){c!==null&&(window.clearTimeout(c),c=null)}function E(){var N;const x=s.value;if(!x)return;const C=x.closest(".ce-block"),w=(N=x.closest(".codex-editor"))==null?void 0:N.querySelector(".ce-toolbar"),O=w==null?void 0:w.querySelector(".ce-toolbar__plus");if(!C||!w||!O)return;const V=C.getBoundingClientRect(),J=x.getBoundingClientRect(),b=O.getBoundingClientRect().height||26,y=C.offsetTop+(J.top-V.top)+(J.height-b)/2;w.style.top=`${Math.round(y)}px`}function k(){M(),c=window.setTimeout(()=>{E()},0)}return xe(()=>{ue(()=>{var x,C;(x=s.value)==null||x.addEventListener("mouseenter",k),(C=s.value)==null||C.addEventListener("mousemove",k)})}),Te(()=>{var x,C;M(),(x=s.value)==null||x.removeEventListener("mouseenter",k),(C=s.value)==null||C.removeEventListener("mousemove",k)}),(x,C)=>(f(),g("div",{ref_key:"rootRef",ref:s,class:"ce-tag-tool","data-testid":"editor-tag-tool"},[Fe(Y(Ue),{"data-testid":"editor-tag-value",closable:e.closable,size:e.size||void 0,color:e.color||void 0,type:e.type||void 0,onClose:T},{default:De(()=>[Ie(z(e.tagName),1)]),_:1},8,["closable","size","color","type"])],512))}}),dt=oe(ct,[["__scopeId","data-v-ee7d9d5d"]]),Je={MInput:{component:he(ot),...tt},MLink:{component:he(it),...lt},MTag:{component:he(dt),...st}};function ut(){return Object.entries(Je)}function I(e){return Je[e]}function Le(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,10):Math.random().toString(36).slice(2,12)}function Z(e,t=Le()){return{id:t,type:"paragraph",data:{text:e}}}function j(e){return typeof e.data.text=="string"?e.data.text:""}function fe(){return[Z("")]}function pt(e){return JSON.parse(JSON.stringify(e))}function pe(e){return typeof e!="object"||e===null||Array.isArray(e)?{}:pt(e)}function de(e){return{id:e.id,type:e.type,data:pe(e.data)}}function ye(e){const t=[];for(const s of e){if(s.type==="paragraph"){const c=t[t.length-1];(c==null?void 0:c.type)==="paragraph"?c.data.text=j(c)+j(s):t.push(Z(j(s),s.id));continue}t.push(de(s))}return t.length?t:fe()}function X(e){if(!Array.isArray(e))return fe();const t=[];return e.forEach(s=>{if(typeof s!="object"||s===null)return;const c=s;if(typeof c.id!="string"||typeof c.type!="string"||typeof c.data!="object"||c.data===null||Array.isArray(c.data))return;const h={id:c.id,type:c.type,data:pe(c.data)};t.push(h.type==="paragraph"?Z(j(h),h.id):h)}),ye(t)}const ft={class:"ce-advance-input-tool","data-testid":"editor-advance-input-tool"},mt={key:0,class:"ce-advance-input-tool__editor-shell"},gt=["data-testid","onMousedown"],ht={key:1,class:"ce-advance-input-tool__preview","data-testid":"preview-advance-input-value"},vt={key:0,class:"ce-advance-input-tool__preview-text"},yt={key:1,class:"ce-advance-input-tool__preview-token"},bt={class:"ce-advance-input-tool__dialog-header"},kt={class:"ce-advance-input-tool__dialog-title","data-testid":"advance-input-embedded-property-title"},_t={type:"submit",class:"ce-advance-input-tool__dialog-close","data-testid":"advance-input-embedded-property-close"},xt={key:0,class:"ce-advance-input-tool__dialog-body"},Tt=["checked","data-testid","onChange"],Ct={class:"ce-advance-input-tool__dialog-label"},St={class:"ce-advance-input-tool__dialog-label"},wt=["value","data-testid","onChange"],Nt=["value"],Pt={class:"ce-advance-input-tool__dialog-label"},Et=["value","placeholder","data-testid","onInput"],ea={toolbox:{get title(){return r.t("advanceInput.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="5" width="18" height="14" rx="3" ry="3" fill="none" stroke="currentColor" stroke-width="2"/><path d="M7 10h5M7 14h3M14 10h3M14 14h3" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>'},createInitialProps:()=>({value:fe()}),normalizeProps:e=>({edit:e.edit??!1,value:X(e.value)}),serialize:e=>({value:X(e.value)})},Rt=ae({__name:"MAdvanceInput",props:{edit:{type:Boolean},value:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,{t:s}=Ce(),c=F(null),h=F(null),T=F(!1),M=F({left:0,top:0}),E=F(null),k=new Map;let x=!1,C="";function w(l){return ye(l)}function O(l){return JSON.stringify(w(l))}function V(l){var a;const o=I(l);if(!o)throw new Error(`Unknown inline component "${l}".`);const n=o.normalizeProps({...((a=o.createInitialProps)==null?void 0:a.call(o))??{},edit:!1});return{id:Le(),type:l,data:pe(o.serialize(n))}}function J(){k.forEach(l=>{l.app.unmount()}),k.clear()}function b(l){var P;const o=de(l),n=I(o.type);if(!n){const R=document.createElement("span");return R.className="ce-advance-input-tool__token ce-advance-input-tool__token--unknown",R.dataset.segmentType="component",R.dataset.blockId=o.id,R.dataset.block=JSON.stringify(o),R.textContent=o.type,R}const a=document.createElement("span");a.className="ce-advance-input-tool__token",a.dataset.segmentType="component",a.dataset.blockId=o.id,a.dataset.block=JSON.stringify(o),a.contentEditable="false",a.setAttribute("data-testid",`editor-advance-input-token-${o.type}`);const d=document.createElement("span");d.className="ce-advance-input-tool__token-mount",a.appendChild(d);const _=n.normalizeProps({...((P=n.createInitialProps)==null?void 0:P.call(n))??{},...o.data,edit:!1}),v=Pe(n.component,_);return v.mount(d),a.addEventListener("click",R=>{R.preventDefault(),R.stopPropagation(),ge(o.id)}),k.set(o.id,{app:v,block:de(o),mountPoint:d,wrapper:a}),a}function y(l,o=!1){const n=c.value;if(!n)return;x=!0,J(),n.innerHTML="";const a=X(l);for(const d of a){if(d.type==="paragraph"){n.appendChild(document.createTextNode(j(d)));continue}n.appendChild(b(d)),n.appendChild(document.createTextNode(""))}n.childNodes.length||n.appendChild(document.createTextNode("")),C=O(a),x=!1,o&&ue(()=>{H(n)})}function N(){const l=c.value;if(!l)return fe();const o=[];return l.childNodes.forEach(n=>{if(n.nodeType===Node.TEXT_NODE){const a=(n.textContent??"").replace(/\u200B/g,"");o.push(Z(a));return}if(n instanceof HTMLElement){if(n.dataset.segmentType==="component"){const a=n.dataset.blockId??"",d=k.get(a),_=n.dataset.block?JSON.parse(n.dataset.block):null,v=(d==null?void 0:d.block)??_;v&&o.push(de(v));return}o.push(Z((n.textContent??"").replace(/\u200B/g,"")))}}),ye(o)}function L(l){var n,a;C=O(l);const o={edit:t.edit,value:l};(n=t.onToolChange)==null||n.call(t,o),(a=t.onChange)==null||a.call(t,o)}function $(){if(x)return;const l=w(N());O(l)!==C&&L(l)}function H(l){const o=window.getSelection();if(!o)return;const n=document.createRange();n.selectNodeContents(l),n.collapse(!1),o.removeAllRanges(),o.addRange(n)}function ee(){const l=c.value;l&&l.focus()}function W(){const l=c.value,o=window.getSelection();if(!l||!o||o.rangeCount===0)return null;const n=o.getRangeAt(0);return l.contains(n.startContainer)?{root:l,selection:o,range:n}:null}function B(){const l=W();if(!l||!l.selection.isCollapsed){T.value=!1;return}const{range:o,root:n}=l;let a="";if(o.startContainer.nodeType===Node.TEXT_NODE){const v=o.startContainer.textContent??"";o.startOffset>0&&(a=v[o.startOffset-1]??"")}else if(o.startContainer instanceof HTMLElement&&o.startOffset>0){const v=o.startContainer.childNodes[o.startOffset-1];if((v==null?void 0:v.nodeType)===Node.TEXT_NODE){const P=v.textContent??"";a=P[P.length-1]??""}}if(a!=="/"){T.value=!1;return}const d=o.getBoundingClientRect(),_=n.getBoundingClientRect();M.value={left:Math.max(0,d.left-_.left),top:Math.max(_.height+8,d.bottom-_.top+8)},T.value=!0}function ne(){$(),B()}function le(){B()}function re(){window.setTimeout(()=>{T.value=!1},120)}function ie(l){var a,d;if(l.key==="Enter"){l.preventDefault();return}if(l.key!=="Backspace")return;const o=W();if(!o||!o.selection.isCollapsed)return;const{range:n}=o;if(n.startContainer.nodeType===Node.TEXT_NODE){const _=n.startContainer;if(n.startOffset<=0||_.data[n.startOffset-1]!=="")return;const v=_.previousSibling;if(!(v instanceof HTMLElement)||v.dataset.segmentType!=="component")return;l.preventDefault();const P=v.dataset.blockId??"";(a=k.get(P))==null||a.app.unmount(),k.delete(P),v.remove(),_.deleteData(n.startOffset-1,1),$();return}if(n.startContainer instanceof HTMLElement&&n.startOffset>0){const _=n.startContainer.childNodes[n.startOffset-1];if(!(_ instanceof HTMLElement)||_.dataset.segmentType!=="component")return;l.preventDefault();const v=_.dataset.blockId??"";(d=k.get(v))==null||d.app.unmount(),k.delete(v),_.remove(),$()}}function me(l){var n;l.preventDefault();const o=((n=l.clipboardData)==null?void 0:n.getData("text/plain"))??"";document.execCommand("insertText",!1,o.replace(/\n/g," "))}function se(l){const o=W();if(!o)return;const{selection:n,range:a}=o,d=V(l);if(a.startContainer.nodeType===Node.TEXT_NODE){const R=a.startContainer;a.startOffset>0&&R.data[a.startOffset-1]==="/"&&(R.deleteData(a.startOffset-1,1),a.setStart(R,a.startOffset-1),a.collapse(!0))}const _=b(d),v=document.createTextNode("");a.insertNode(v),a.insertNode(_);const P=document.createRange();P.setStart(v,1),P.collapse(!0),n.removeAllRanges(),n.addRange(P),T.value=!1,$(),ee()}function ge(l){var _,v,P,R;const o=k.get(l);if(!o)return;const n=I(o.block.type),a=((_=n==null?void 0:n.propertyPanel)==null?void 0:_.fields)??[];if(!n||!a.length)return;const d=n.normalizeProps({...((v=n.createInitialProps)==null?void 0:v.call(n))??{},...o.block.data,edit:!1});E.value={blockId:l,title:((P=n.propertyPanel)==null?void 0:P.title)||s("editor.propertyDialogTitle"),type:o.block.type,fields:a,values:Object.fromEntries(a.map(Se=>[Se.key,d[Se.key]??""]))},(R=h.value)==null||R.showModal()}function i(){var l;(l=h.value)==null||l.close(),E.value=null}function u(l,o){var P;const n=E.value;if(!n)return;n.values[l]=o,E.value={...n,values:{...n.values}};const a=k.get(n.blockId),d=I(n.type);if(!a||!d)return;const _=d.normalizeProps({...((P=d.createInitialProps)==null?void 0:P.call(d))??{},...n.values,edit:!1});a.block={...a.block,data:pe(d.serialize(_))},a.wrapper.dataset.block=JSON.stringify(a.block),a.app.unmount();const v=Pe(d.component,_);v.mount(a.mountPoint),a.app=v,$()}function m(){return X(t.value)}function p(l){var o;return((o=I(l))==null?void 0:o.component)??null}function G(l){return j(l)}function Q(l){var n;const o=I(l.type);return o?o.normalizeProps({...((n=o.createInitialProps)==null?void 0:n.call(o))??{},...l.data,edit:!1}):{edit:!1}}return xe(()=>{t.edit&&y(t.value)}),Te(()=>{J()}),we(()=>t.edit,l=>{if(!l){T.value=!1;return}ue(()=>{y(t.value)})}),we(()=>t.value,l=>{if(!t.edit)return;const o=X(l);O(o)!==C&&y(o)}),(l,o)=>{var n;return f(),g("div",ft,[e.edit?(f(),g("div",mt,[S("div",{ref_key:"editableRef",ref:c,class:"ce-advance-input-tool__editor","data-testid":"editor-advance-input-content",contenteditable:"true",spellcheck:"false",onInput:ne,onClick:le,onKeyup:B,onKeydown:ie,onPaste:me,onBlur:re},null,544),T.value?(f(),g("div",{key:0,class:"ce-advance-input-tool__menu","data-testid":"editor-advance-input-menu",style:q({left:`${M.value.left}px`,top:`${M.value.top}px`})},[(f(!0),g(A,null,U(Y(ut)(),([a,d])=>(f(),g("button",{key:a,type:"button",class:"ce-advance-input-tool__menu-item","data-testid":`editor-advance-input-menu-item-${a}`,onMousedown:Ne(_=>se(a),["prevent"])},z(d.toolbox.title),41,gt))),128))],4)):K("",!0)])):(f(),g("div",ht,[(f(!0),g(A,null,U(m(),(a,d)=>(f(),g(A,{key:`${a.id}-${a.type}-${d}`},[a.type==="paragraph"?(f(),g("span",vt,z(G(a)),1)):(f(),g("span",yt,[(f(),Ee(Oe(p(a.type)),Re({ref_for:!0},Q(a)),null,16))]))],64))),128))])),S("dialog",{ref_key:"embeddedDialogRef",ref:h,class:"ce-advance-input-tool__dialog","data-testid":"advance-input-embedded-property-dialog",onClose:o[0]||(o[0]=a=>E.value=null)},[S("form",{method:"dialog",class:"ce-advance-input-tool__dialog-panel",onSubmit:Ne(i,["prevent"])},[S("div",bt,[S("h3",kt,z((n=E.value)==null?void 0:n.title),1),S("button",_t,z(Y(s)("editor.close")),1)]),E.value?(f(),g("div",xt,[(f(!0),g(A,null,U(E.value.fields,a=>(f(),g("label",{key:a.key,class:ce(["ce-advance-input-tool__dialog-field",{"ce-advance-input-tool__dialog-field--checkbox":a.type==="checkbox"}])},[a.type==="checkbox"?(f(),g(A,{key:0},[S("input",{class:"ce-advance-input-tool__dialog-checkbox",type:"checkbox",checked:E.value.values[a.key]===!0,"data-testid":`advance-input-embedded-property-input-${a.key}`,onChange:d=>u(a.key,d.target.checked)},null,40,Tt),S("span",Ct,z(a.label),1)],64)):a.type==="select"?(f(),g(A,{key:1},[S("span",St,z(a.label),1),S("select",{class:"ce-advance-input-tool__dialog-input",value:String(E.value.values[a.key]??""),"data-testid":`advance-input-embedded-property-input-${a.key}`,onChange:d=>u(a.key,d.target.value)},[(f(!0),g(A,null,U(a.options??[],d=>(f(),g("option",{key:d.value,value:d.value},z(d.label),9,Nt))),128))],40,wt)],64)):(f(),g(A,{key:2},[S("span",Pt,z(a.label),1),S("input",{class:"ce-advance-input-tool__dialog-input",type:"text",value:String(E.value.values[a.key]??""),placeholder:a.placeholder,"data-testid":`advance-input-embedded-property-input-${a.key}`,onInput:d=>u(a.key,d.target.value)},null,40,Et)],64))],2))),128))])):K("",!0)],32)],544)])}}}),ta=oe(Rt,[["__scopeId","data-v-5ab6cc48"]]),Ot={class:"ce-advance-table-tool","data-testid":"editor-advance-table-tool"},Mt={class:"ce-advance-table-tool__scroller"},zt={class:"ce-advance-table-tool__table","data-testid":"advance-table"},At=["checked","aria-label"],Jt=["data-testid"],Lt=["data-testid"],$t=["data-testid"],Bt=["checked","aria-label","onChange"],Ft=["data-testid"],Dt=["data-testid"],It={key:0,class:"ce-advance-table-tool__cell-text"},Ut={key:1,class:"ce-advance-table-tool__cell-token"},jt={key:0},Vt=["colspan"];function ve(e,t){return[Z(e,t)]}function Ht(){return[{id:"advance-table-default-tag",type:"MTag",data:{tagName:"{{tag}}",type:"{{tagType}}",size:"small",color:"",closable:!1}}]}function Wt(){return[{id:"advance-table-default-link",type:"MLink",data:{text:"{{linkText}}",url:"{{linkUrl}}",open:!1}}]}function be(){return[{columnName:r.t("advanceTable.defaultColumns.name"),columnContent:ve("{{name}}","advance-table-default-name"),width:180,fixed:"left"},{columnName:r.t("advanceTable.defaultColumns.status"),columnContent:ve("{{status}}","advance-table-default-status"),width:140,fixed:null},{columnName:r.t("advanceTable.defaultColumns.tag"),columnContent:Ht(),width:120,fixed:null},{columnName:r.t("advanceTable.defaultColumns.owner"),columnContent:ve("{{owner}}","advance-table-default-owner"),width:160,fixed:null},{columnName:r.t("advanceTable.defaultColumns.link"),columnContent:Wt(),width:180,fixed:null}]}function $e(){return[{name:r.t("advanceTable.defaultRows.first.name"),status:r.t("advanceTable.defaultRows.first.status"),tag:r.t("advanceTable.defaultRows.first.tag"),tagType:"warning",owner:r.t("advanceTable.defaultRows.first.owner"),linkText:r.t("advanceTable.defaultRows.first.linkText"),linkUrl:r.t("advanceTable.defaultRows.first.linkUrl")},{name:r.t("advanceTable.defaultRows.second.name"),status:r.t("advanceTable.defaultRows.second.status"),tag:r.t("advanceTable.defaultRows.second.tag"),tagType:"success",owner:r.t("advanceTable.defaultRows.second.owner"),linkText:r.t("advanceTable.defaultRows.second.linkText"),linkUrl:r.t("advanceTable.defaultRows.second.linkUrl")}]}const aa={toolbox:{get title(){return r.t("advanceTable.toolboxTitle")},icon:'<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="5" width="18" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><path d="M3 10h18M8 5v14M16 5v14" stroke="currentColor" stroke-width="2"/></svg>'},propertyPanel:{get title(){return r.t("advanceTable.propertyPanelTitle")},get fields(){return[{key:"index",label:r.t("advanceTable.properties.index"),type:"checkbox"},{key:"selection",label:r.t("advanceTable.properties.selection"),type:"checkbox"}]}},createInitialProps:()=>({index:!1,selection:!1,columns:be(),data:$e()}),normalizeProps:e=>({edit:e.edit??!1,index:e.index===!0,selection:e.selection===!0,columns:ke(e.columns),data:_e(e.data)}),serialize:e=>({index:e.index===!0,selection:e.selection===!0,columns:ke(e.columns),data:_e(e.data)})};function ke(e){if(!Array.isArray(e)||!e.length)return be();const t=e.filter(s=>typeof s=="object"&&s!==null).map((s,c)=>{var h;return{columnName:((h=s.columnName)==null?void 0:h.trim())||`${r.t("advanceTable.defaultColumnName")}${c+1}`,columnContent:X(s.columnContent),width:qt(s.width),fixed:Kt(s.fixed)}});return t.length?t:be()}function _e(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)):$e()}function qt(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?null:Math.round(e)}function Kt(e){return e==="left"||e==="right"?e:null}const Xt=ae({__name:"MAdvanceTable",props:{edit:{type:Boolean},index:{type:Boolean},selection:{type:Boolean},columns:{},data:{},onChange:{type:Function},onToolChange:{type:Function}},setup(e){const t=e,{t:s}=Ce(),c=F(new Set),h=D(()=>ke(t.columns)),T=D(()=>_e(t.data)),M=D(()=>t.selection===!0),E=D(()=>t.index===!0),k=44,x=56,C=160;function w(i){if(i==null)return"";if(typeof i=="string")return i;if(typeof i=="number"||typeof i=="boolean")return String(i);try{return JSON.stringify(i)}catch{return String(i)}}function O(i,u){return i.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(m,p)=>w(V(u,p)))}function V(i,u){return u.split(".").reduce((m,p)=>typeof m!="object"||m===null||!(p in m)?"":m[p],i)}function J(i,u){return typeof i=="string"?O(i,u):Array.isArray(i)?i.map(m=>J(m,u)):typeof i=="object"&&i!==null?Object.fromEntries(Object.entries(i).map(([m,p])=>[m,J(p,u)])):i}function b(i,u){return X(u.columnContent).map(m=>m.type==="paragraph"?{...m,data:{text:O(j(m),i)}}:{...m,data:J(m.data,i)})}function y(i){var u;return((u=I(i))==null?void 0:u.component)??null}function N(i){var m;const u=I(i.type);return u?u.normalizeProps({...((m=u.createInitialProps)==null?void 0:m.call(u))??{},...i.data,edit:!1}):{edit:!1}}function L(i){return j(i)}function $(i){return i.width??null}function H(i){return $(i)??C}function ee(i){let u=0;M.value&&(u+=k),E.value&&(u+=x);for(let m=0;m<i;m+=1){const p=h.value[m];(p==null?void 0:p.fixed)==="left"&&(u+=H(p))}return u}function W(i){let u=0;for(let m=h.value.length-1;m>i;m-=1){const p=h.value[m];(p==null?void 0:p.fixed)==="right"&&(u+=H(p))}return u}function B(i,u){const m=$(i),p={};return m&&(p.width=`${m}px`,p.minWidth=`${m}px`),i.fixed==="left"&&(p.position="sticky",p.left=`${ee(u)}px`),i.fixed==="right"&&(p.position="sticky",p.right=`${W(u)}px`),p}function ne(i){return{"ce-advance-table-tool__cell--fixed-left":i.fixed==="left","ce-advance-table-tool__cell--fixed-right":i.fixed==="right"}}function le(){return{width:`${k}px`,minWidth:`${k}px`,left:"0px"}}function re(){return{width:`${x}px`,minWidth:`${x}px`,left:`${M.value?k:0}px`}}function ie(i){return c.value.has(i)}function me(i){const u=new Set(c.value);u.has(i)?u.delete(i):u.add(i),c.value=u}function se(){return T.value.length>0&&T.value.every((i,u)=>c.value.has(u))}function ge(){if(se()){c.value=new Set;return}c.value=new Set(T.value.map((i,u)=>u))}return(i,u)=>(f(),g("div",Ot,[S("div",Mt,[S("table",zt,[S("thead",null,[S("tr",null,[e.selection?(f(),g("th",{key:0,class:"ce-advance-table-tool__cell ce-advance-table-tool__cell--header ce-advance-table-tool__cell--control ce-advance-table-tool__cell--fixed-left",style:q(le()),"data-testid":"advance-table-selection-header"},[S("input",{class:"ce-advance-table-tool__checkbox",type:"checkbox",checked:se(),"aria-label":Y(s)("advanceTable.selectAll"),onChange:ge},null,40,At)],4)):K("",!0),e.index?(f(),g("th",{key:1,class:"ce-advance-table-tool__cell ce-advance-table-tool__cell--header ce-advance-table-tool__cell--control ce-advance-table-tool__cell--fixed-left",style:q(re()),"data-testid":"advance-table-index-header"}," # ",4)):K("",!0),(f(!0),g(A,null,U(h.value,(m,p)=>(f(),g("th",{key:`header-${p}`,class:ce(["ce-advance-table-tool__cell ce-advance-table-tool__cell--header",ne(m)]),style:q(B(m,p)),"data-testid":`advance-table-header-${p}`},z(m.columnName),15,Jt))),128))])]),S("tbody",null,[(f(!0),g(A,null,U(T.value,(m,p)=>(f(),g("tr",{key:`row-${p}`,class:ce(["ce-advance-table-tool__row",{"ce-advance-table-tool__row--selected":ie(p)}]),"data-testid":`advance-table-row-${p}`},[e.selection?(f(),g("td",{key:0,class:"ce-advance-table-tool__cell ce-advance-table-tool__cell--control ce-advance-table-tool__cell--fixed-left",style:q(le()),"data-testid":`advance-table-selection-cell-${p}`},[S("input",{class:"ce-advance-table-tool__checkbox",type:"checkbox",checked:ie(p),"aria-label":Y(s)("advanceTable.selectRow"),onChange:G=>me(p)},null,40,Bt)],12,$t)):K("",!0),e.index?(f(),g("td",{key:1,class:"ce-advance-table-tool__cell ce-advance-table-tool__cell--control ce-advance-table-tool__cell--fixed-left",style:q(re()),"data-testid":`advance-table-index-cell-${p}`},z(p+1),13,Ft)):K("",!0),(f(!0),g(A,null,U(h.value,(G,Q)=>(f(),g("td",{key:`cell-${p}-${Q}`,class:ce(["ce-advance-table-tool__cell",ne(G)]),style:q(B(G,Q)),"data-testid":`advance-table-cell-${p}-${Q}`},[(f(!0),g(A,null,U(b(m,G),(l,o)=>(f(),g(A,{key:`${p}-${Q}-${l.id}-${l.type}-${o}`},[l.type==="paragraph"?(f(),g("span",It,z(L(l)),1)):(f(),g("span",Ut,[(f(),Ee(Oe(y(l.type)),Re({ref_for:!0},N(l)),null,16))]))],64))),128))],14,Dt))),128))],10,Lt))),128)),T.value.length?K("",!0):(f(),g("tr",jt,[S("td",{class:"ce-advance-table-tool__cell ce-advance-table-tool__empty",colspan:h.value.length+(e.selection?1:0)+(e.index?1:0)},z(Y(s)("advanceTable.empty")),9,Vt)]))])])])]))}}),oa=oe(Xt,[["__scopeId","data-v-6eb0809a"]]);export{dt as M,oe as _,aa as a,ea as b,lt as c,Zt as d,tt as e,oa as f,ta as g,it as h,r as i,ot as j,Yt as k,I as l,st as m,X as n,j as o,Ce as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ce-input-tool[data-v-38751236]{display:flex;flex-direction:column;gap:8px}.ce-input-tool__control[data-v-38751236]{width:100%;border:1px solid rgb(148 163 184 / .6);border-radius:8px;padding:8px 10px;background-color:#fff;color:#0f172a;font-size:14px;line-height:20px}.ce-input-tool__control[data-v-38751236]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.dark{background-color:#0f172a;color:#e2e8f0;border-color:#475569e6}.ce-link-tool[data-v-e56db1bc]{display:inline-flex;align-items:center;max-width:100%;min-height:32px;vertical-align:middle}.ce-link-tool__anchor[data-v-e56db1bc]{display:inline-flex;align-items:center;min-width:0;max-width:100%;color:#2563eb;font-size:14px;line-height:20px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}.ce-link-tool__anchor[data-v-e56db1bc]:hover{color:#1d4ed8}.ce-link-tool__anchor[data-v-e56db1bc]:focus-visible{outline:2px solid rgb(96 165 250);outline-offset:2px;border-radius:4px}.dark{color:#60a5fa}.dark{color:#93c5fd}.ce-tag-tool[data-v-ee7d9d5d]{display:inline-flex;align-items:center;min-height:32px;max-width:100%}.ce-tag-tool[data-v-ee7d9d5d] .el-tag{max-width:100%;line-height:20px}.ce-tag-tool[data-v-ee7d9d5d] .el-tag__content{display:inline-flex;align-items:center;min-width:0}.ce-advance-input-tool[data-v-5ab6cc48]{position:relative}.ce-advance-input-tool__editor-shell[data-v-5ab6cc48],.ce-advance-input-tool__preview[data-v-5ab6cc48]{position:relative;display:flex;align-items:center;min-height:42px;width:100%;border:1px solid rgb(148 163 184 / .6);border-radius:10px;background:#fff}.ce-advance-input-tool__editor[data-v-5ab6cc48]{width:100%;min-height:42px;padding:9px 12px;white-space:pre;overflow-x:auto;overflow-y:hidden;line-height:22px;outline:none;cursor:text}.ce-advance-input-tool__preview[data-v-5ab6cc48]{padding:9px 12px;white-space:pre;overflow-x:auto;overflow-y:hidden}.ce-advance-input-tool__editor-shell[data-v-5ab6cc48]:focus-within{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.ce-advance-input-tool__menu[data-v-5ab6cc48]{position:absolute;z-index:20;min-width:168px;padding:6px;border:1px solid rgb(226 232 240);border-radius:12px;background:#fff;box-shadow:0 16px 40px #0f172a2e}.ce-advance-input-tool__menu-item[data-v-5ab6cc48]{display:flex;width:100%;border:0;border-radius:8px;padding:8px 10px;background:transparent;color:#0f172a;cursor:pointer;text-align:left}.ce-advance-input-tool__menu-item[data-v-5ab6cc48]:hover{background:#f1f5f9}.ce-advance-input-tool__preview-token[data-v-5ab6cc48],.ce-advance-input-tool__token[data-v-5ab6cc48]{display:inline-flex;align-items:center;margin:0 2px;vertical-align:middle}.ce-advance-input-tool__token[data-v-5ab6cc48]{border-radius:10px;cursor:pointer}.ce-advance-input-tool__token[data-v-5ab6cc48]:hover{box-shadow:0 0 0 2px #6366f12e}.ce-advance-input-tool__token--unknown[data-v-5ab6cc48]{padding:2px 8px;background:#f8fafc;color:#475569;font-size:12px}.ce-advance-input-tool__dialog[data-v-5ab6cc48]{width:min(100%,480px);border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px #0f172a52}.ce-advance-input-tool__dialog[data-v-5ab6cc48]::backdrop{background:#0f172a73}.ce-advance-input-tool__dialog-panel[data-v-5ab6cc48]{margin:0;padding:20px;background:#fff}.ce-advance-input-tool__dialog-header[data-v-5ab6cc48]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.ce-advance-input-tool__dialog-title[data-v-5ab6cc48]{margin:0;color:#0f172a;font-size:18px;font-weight:600}.ce-advance-input-tool__dialog-close[data-v-5ab6cc48]{border:0;border-radius:10px;padding:8px 12px;background:#e2e8f0;color:#334155;cursor:pointer}.ce-advance-input-tool__dialog-body[data-v-5ab6cc48]{display:flex;flex-direction:column;gap:14px}.ce-advance-input-tool__dialog-field[data-v-5ab6cc48]{display:flex;flex-direction:column;gap:6px}.ce-advance-input-tool__dialog-field--checkbox[data-v-5ab6cc48]{flex-direction:row;align-items:center;gap:10px}.ce-advance-input-tool__dialog-label[data-v-5ab6cc48]{color:#334155;font-size:13px;font-weight:600}.ce-advance-input-tool__dialog-checkbox[data-v-5ab6cc48]{width:16px;height:16px;margin:0}.ce-advance-input-tool__dialog-input[data-v-5ab6cc48]{width:100%;border:1px solid rgb(148 163 184 / .65);border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a;font-size:14px;line-height:20px}.ce-advance-input-tool__dialog-input[data-v-5ab6cc48]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.dark{background:#0f172a;border-color:#475569e6}.dark{background:#1e293b}.dark{background:#0f172a}.dark{color:#f1f5f9}.dark{background:#334155;color:#f1f5f9}.dark{color:#cbd5e1}.dark{background:#0f172a;color:#e2e8f0;border-color:#475569e6}.ce-advance-table-tool[data-v-6eb0809a]{width:100%;color:#0f172a}.ce-advance-table-tool__scroller[data-v-6eb0809a]{width:100%;overflow:auto;border:1px solid rgb(226 232 240);border-radius:8px;background:#fff}.ce-advance-table-tool__table[data-v-6eb0809a]{width:100%;min-width:520px;border-collapse:separate;border-spacing:0;font-size:14px;line-height:20px}.ce-advance-table-tool__cell[data-v-6eb0809a]{border-right:1px solid rgb(226 232 240);border-bottom:1px solid rgb(226 232 240);padding:10px 12px;background:#fff;text-align:left;vertical-align:middle;white-space:nowrap}.ce-advance-table-tool__cell[data-v-6eb0809a]:last-child{border-right:0}.ce-advance-table-tool__cell--header[data-v-6eb0809a]{position:sticky;top:0;z-index:3;background:#f8fafc;color:#334155;font-weight:600}.ce-advance-table-tool__cell--control[data-v-6eb0809a]{padding:10px;text-align:center}.ce-advance-table-tool__cell--fixed-left[data-v-6eb0809a],.ce-advance-table-tool__cell--fixed-right[data-v-6eb0809a]{z-index:2}.ce-advance-table-tool__cell--header.ce-advance-table-tool__cell--fixed-left[data-v-6eb0809a],.ce-advance-table-tool__cell--header.ce-advance-table-tool__cell--fixed-right[data-v-6eb0809a]{z-index:4}.ce-advance-table-tool__cell--fixed-left[data-v-6eb0809a]{box-shadow:1px 0 #e2e8f0}.ce-advance-table-tool__cell--fixed-right[data-v-6eb0809a]{box-shadow:-1px 0 #e2e8f0}.ce-advance-table-tool__row--selected .ce-advance-table-tool__cell[data-v-6eb0809a]{background:#eff6ff}.ce-advance-table-tool__checkbox[data-v-6eb0809a]{width:16px;height:16px;margin:0;vertical-align:middle;accent-color:rgb(37 99 235)}.ce-advance-table-tool__cell-token[data-v-6eb0809a]{display:inline-flex;align-items:center;margin:0 2px;vertical-align:middle}.ce-advance-table-tool__empty[data-v-6eb0809a]{color:#64748b;text-align:center}.dark{color:#e2e8f0}.dark{border-color:#334155;background:#0f172a}.dark{background:#1e293b;color:#f1f5f9}.dark{box-shadow:1px 0 #334155}.dark{box-shadow:-1px 0 #334155}.dark{background:#1e3a8a59}.dark{color:#94a3b8}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as j,i as a,_ as O}from"./block-advanced-BuKEuWQ4.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-Dh3tbb7h.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ce-chart-tool[data-v-c412345a]{width:100%;color:#0f172a}.ce-chart-tool__canvas[data-v-c412345a]{width:100%;height:320px;min-height:240px}.dark{color:#e2e8f0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ce-datasource-tool[data-v-ab5bf27d]{width:100%;border:1px solid rgb(226 232 240);border-radius:8px;background:#fff;color:#0f172a;font-size:14px;line-height:20px}.ce-datasource-tool__header[data-v-ab5bf27d]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid rgb(226 232 240)}.ce-datasource-tool__title[data-v-ab5bf27d]{font-size:15px;font-weight:650;color:#0f172a}.ce-datasource-tool__type-switch[data-v-ab5bf27d]{display:inline-grid;grid-template-columns:repeat(2,minmax(64px,1fr));overflow:hidden;border:1px solid rgb(203 213 225);border-radius:8px;background:#f8fafc}.ce-datasource-tool__type-button[data-v-ab5bf27d]{min-height:32px;border:0;border-right:1px solid rgb(203 213 225);padding:6px 12px;background:transparent;color:#475569;font:inherit;font-weight:600;cursor:pointer}.ce-datasource-tool__type-button[data-v-ab5bf27d]:last-child{border-right:0}.ce-datasource-tool__type-button--active[data-v-ab5bf27d]{background:#2563eb;color:#fff}.ce-datasource-tool__type-button[data-v-ab5bf27d]:disabled{cursor:default}.ce-datasource-tool__panel[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:14px;padding:12px}.ce-datasource-tool__schema-panel[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:12px;border-top:1px solid rgb(226 232 240);padding:12px}.ce-datasource-tool__generate-panel[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:10px;border-top:1px solid rgb(226 232 240);padding:12px;background:#f8fafc}.ce-datasource-tool__schema-header[data-v-ab5bf27d]{display:flex;align-items:center;justify-content:space-between;gap:10px}.ce-datasource-tool__section-title[data-v-ab5bf27d]{color:#0f172a;font-size:14px;font-weight:700}.ce-datasource-tool__section-copy[data-v-ab5bf27d]{margin:2px 0 0;color:#64748b;font-size:13px}.ce-datasource-tool__generate-actions[data-v-ab5bf27d]{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ce-datasource-tool__schema-summary[data-v-ab5bf27d]{color:#334155;font-size:13px;font-weight:600}.ce-datasource-tool__schema-search[data-v-ab5bf27d]{max-width:260px}.ce-datasource-tool__grid[data-v-ab5bf27d]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(120px,.4fr);gap:10px}.ce-datasource-tool__field[data-v-ab5bf27d]{display:flex;min-width:0;flex-direction:column;gap:6px}.ce-datasource-tool__label[data-v-ab5bf27d],.ce-datasource-tool__list-title[data-v-ab5bf27d]{margin:0;color:#334155;font-size:13px;font-weight:650}.ce-datasource-tool__input[data-v-ab5bf27d],.ce-datasource-tool__textarea[data-v-ab5bf27d]{width:100%;min-width:0;border:1px solid rgb(148 163 184 / .65);border-radius:8px;background:#fff;color:#0f172a;font:inherit}.ce-datasource-tool__input[data-v-ab5bf27d]{height:36px;padding:7px 10px}.ce-datasource-tool__textarea[data-v-ab5bf27d]{resize:vertical;padding:9px 10px}.ce-datasource-tool__textarea--json[data-v-ab5bf27d]{min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:19px}.ce-datasource-tool__textarea--schema[data-v-ab5bf27d]{min-height:130px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:19px}.ce-datasource-tool__textarea--mock[data-v-ab5bf27d]{min-height:70px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:18px}.ce-datasource-tool__input[data-v-ab5bf27d]:focus,.ce-datasource-tool__textarea[data-v-ab5bf27d]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.ce-datasource-tool__input[data-v-ab5bf27d]:-moz-read-only,.ce-datasource-tool__textarea[data-v-ab5bf27d]:-moz-read-only{background:#f8fafc}.ce-datasource-tool__input[data-v-ab5bf27d]:read-only,.ce-datasource-tool__textarea[data-v-ab5bf27d]:read-only,.ce-datasource-tool__input[data-v-ab5bf27d]:disabled{background:#f8fafc}.ce-datasource-tool__error[data-v-ab5bf27d],.ce-datasource-tool__body-error[data-v-ab5bf27d]{margin:0;color:#b91c1c;font-size:13px}.ce-datasource-tool__list[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:8px}.ce-datasource-tool__list[open][data-v-ab5bf27d]{gap:8px}.ce-datasource-tool__list-header[data-v-ab5bf27d]{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.ce-datasource-tool__list-header[data-v-ab5bf27d]::-webkit-details-marker{display:none}.ce-datasource-tool__action[data-v-ab5bf27d],.ce-datasource-tool__remove[data-v-ab5bf27d],.ce-datasource-tool__schema-button[data-v-ab5bf27d]{min-height:32px;border:1px solid rgb(203 213 225);border-radius:8px;background:#fff;color:#1e40af;font:inherit;font-weight:650;cursor:pointer}.ce-datasource-tool__action[data-v-ab5bf27d]{padding:5px 12px}.ce-datasource-tool__schema-button[data-v-ab5bf27d]{padding:5px 12px;white-space:nowrap}.ce-datasource-tool__remove[data-v-ab5bf27d]{padding:5px 10px;color:#b91c1c}.ce-datasource-tool__action[data-v-ab5bf27d]:hover,.ce-datasource-tool__remove[data-v-ab5bf27d]:hover,.ce-datasource-tool__schema-button[data-v-ab5bf27d]:hover{background:#f8fafc}.ce-datasource-tool__schema-button[data-v-ab5bf27d]:disabled{cursor:wait;opacity:.7}.ce-datasource-tool__tabs[data-v-ab5bf27d]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid rgb(203 213 225);border-radius:8px;background:#f8fafc}.ce-datasource-tool__tab[data-v-ab5bf27d]{min-height:34px;border:0;border-right:1px solid rgb(203 213 225);padding:6px 10px;background:transparent;color:#475569;font:inherit;font-weight:650;cursor:pointer}.ce-datasource-tool__tab[data-v-ab5bf27d]:last-child{border-right:0}.ce-datasource-tool__tab--active[data-v-ab5bf27d]{background:#2563eb;color:#fff}.ce-datasource-tool__schema-tab-panel[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:10px}.ce-datasource-tool__field-list[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:8px}.ce-datasource-tool__field-list-summary[data-v-ab5bf27d]{color:#334155;font-size:13px;font-weight:650}.ce-datasource-tool__schema-field[data-v-ab5bf27d]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgb(226 232 240);border-radius:8px;padding:8px;background:#fff}.ce-datasource-tool__checkbox[data-v-ab5bf27d]{width:16px;height:16px;margin:0;accent-color:rgb(37 99 235)}.ce-datasource-tool__schema-field-main[data-v-ab5bf27d]{display:flex;min-width:0;flex-direction:column;gap:4px}.ce-datasource-tool__field-label-input[data-v-ab5bf27d]{height:32px}.ce-datasource-tool__schema-path[data-v-ab5bf27d]{overflow:hidden;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.ce-datasource-tool__schema-badges[data-v-ab5bf27d]{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.ce-datasource-tool__schema-badge[data-v-ab5bf27d]{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:650;white-space:nowrap}.ce-datasource-tool__schema-badge--required[data-v-ab5bf27d]{background:#fef2f2;color:#b91c1c}.ce-datasource-tool__schema-tree[data-v-ab5bf27d]{display:flex;flex-direction:column;gap:6px;border:1px solid rgb(226 232 240);border-radius:8px;padding:8px;background:#f8fafc}.ce-datasource-tool__schema-node[data-v-ab5bf27d]{display:grid;grid-template-columns:minmax(90px,.5fr) minmax(0,1fr) auto auto;gap:8px;align-items:center;min-height:30px}.ce-datasource-tool__schema-node-name[data-v-ab5bf27d]{min-width:0;color:#0f172a;font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ce-datasource-tool__empty[data-v-ab5bf27d]{margin:0;border:1px dashed rgb(203 213 225);border-radius:8px;padding:9px 10px;color:#64748b;font-size:13px}.ce-datasource-tool__row[data-v-ab5bf27d]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:start}.ce-datasource-tool__body-row[data-v-ab5bf27d]{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(110px,.4fr) minmax(0,1fr) auto;gap:8px;align-items:start}.ce-datasource-tool__body-error[data-v-ab5bf27d]{grid-column:3 / 5}@media(max-width:720px){.ce-datasource-tool__header[data-v-ab5bf27d],.ce-datasource-tool__schema-header[data-v-ab5bf27d]{align-items:stretch;flex-direction:column}.ce-datasource-tool__schema-search[data-v-ab5bf27d]{max-width:none}.ce-datasource-tool__grid[data-v-ab5bf27d],.ce-datasource-tool__row[data-v-ab5bf27d],.ce-datasource-tool__body-row[data-v-ab5bf27d],.ce-datasource-tool__schema-field[data-v-ab5bf27d],.ce-datasource-tool__schema-node[data-v-ab5bf27d]{grid-template-columns:1fr}.ce-datasource-tool__body-error[data-v-ab5bf27d]{grid-column:1}}.dark{border-color:#334155;background:#0f172a;color:#e2e8f0}.dark{border-bottom-color:#334155}.dark{border-top-color:#334155}.dark{border-top-color:#334155;background:#1e293b73}.dark{color:#f1f5f9}.dark{color:#94a3b8}.dark{color:#cbd5e1}.dark{border-color:#475569;background:#1e293b}.dark{border-right-color:#475569;color:#cbd5e1}.dark{background:#3b82f6;color:#fff}.dark{border-color:#475569e6;background:#0f172a;color:#e2e8f0}.dark{border-color:#475569;background:#0f172a}.dark{background:#1e293b}.dark{border-color:#475569;color:#94a3b8}.dark{border-color:#334155;background:#0f172a}.dark{background:#1e40af57;color:#bfdbfe}.dark{background:#7f1d1d59;color:#fecaca}.dark{color:#f87171}
|
|
@@ -0,0 +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-Dh3tbb7h.js";import{u as Lt,d as Bt,i as Rt,_ as Kt}from"./block-advanced-BuKEuWQ4.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ce-editor-selector-tool[data-v-865609b6]{position:relative;width:100%}.ce-editor-selector-tool__editor-shell[data-v-865609b6],.ce-editor-selector-tool__preview[data-v-865609b6]{position:relative;width:100%;min-height:38px;border:1px solid rgb(148 163 184 / .6);border-radius:8px;background:#fff}.ce-editor-selector-tool__editor-shell[data-v-865609b6]{height:38px;padding:0 10px 0 38px;overflow:visible}.ce-editor-selector-tool__editor-shell--filled[data-v-865609b6]{height:auto;padding-top:4px;padding-bottom:4px}.ce-editor-selector-tool__editor[data-v-865609b6],.ce-editor-selector-tool__preview[data-v-865609b6]{min-height:0}.ce-editor-selector-tool__preview[data-v-865609b6]{display:flex;align-items:center;padding:7px 10px}.ce-editor-selector-tool__preview[data-v-865609b6]:empty{padding:0 10px}.ce-editor-selector-tool[data-v-865609b6] .codex-editor{min-height:0}.ce-editor-selector-tool[data-v-865609b6] .codex-editor__redactor{min-height:0;padding-bottom:0!important}.ce-editor-selector-tool[data-v-865609b6] .ce-block{padding:0}.ce-editor-selector-tool[data-v-865609b6] .ce-block__content,.ce-editor-selector-tool[data-v-865609b6] .ce-toolbar__content{max-width:none;margin:0}.ce-editor-selector-tool[data-v-865609b6] .ce-toolbar__actions{right:calc(100% + 8px);padding-right:0}.ce-editor-selector-tool[data-v-865609b6] .ce-paragraph{min-height:36px;padding:8px 0;line-height:20px;font-size:14px}.ce-editor-selector-tool[data-v-865609b6]:not(.ce-editor-selector-tool--filled) .ce-block,.ce-editor-selector-tool[data-v-865609b6]:not(.ce-editor-selector-tool--filled) .ce-block__content,.ce-editor-selector-tool[data-v-865609b6]:not(.ce-editor-selector-tool--filled) .ce-paragraph{min-height:0;height:36px}.ce-editor-selector-tool[data-v-865609b6]:not(.ce-editor-selector-tool--filled) .ce-paragraph{padding:8px 0}.ce-editor-selector-tool[data-v-865609b6] .ce-popover-item[data-item-name=paragraph],.ce-editor-selector-tool[data-v-865609b6] .ce-popover-item[data-item-name=table],.ce-editor-selector-tool[data-v-865609b6] .ce-popover-item[data-item-name=columns],.ce-editor-selector-tool[data-v-865609b6] .ce-popover-item[data-item-name=MEditorSelector]{display:none}.dark{border-color:#475569e6;background:#0f172a}
|
|
@@ -0,0 +1,72 @@
|
|
|
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-BuKEuWQ4.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-Dh3tbb7h.js";import{g as me,a as Z,n as A,c as H,_ as ve,m as fe}from"./block-form-BEDK0U9Z.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
|
+
<form method="dialog" class="mokelay-editor-tool__property-panel" data-testid="tool-property-panel">
|
|
3
|
+
<div class="mokelay-editor-tool__property-header">
|
|
4
|
+
<h3 class="mokelay-editor-tool__property-title" data-testid="tool-property-title">${this.escapeHtml(o)}</h3>
|
|
5
|
+
<button type="submit" class="mokelay-editor-tool__property-close" data-testid="tool-property-close">${this.escapeHtml(E.t("editor.close"))}</button>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="mokelay-editor-tool__property-body" data-testid="tool-property-body">
|
|
8
|
+
${n}
|
|
9
|
+
</div>
|
|
10
|
+
</form>
|
|
11
|
+
`,this.wrapper.appendChild(e),this.propertyDialog=e,this.bindPropertyInputs()}openPropertyDialog(){this.propertyDialog&&(this.syncPropertyDialogValues(),this.propertyDialog.open||this.propertyDialog.showModal())}syncPropertyDialogValues(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(e=>{const o=e.dataset.propertyKey;if(!o)return;const n=this.getPropertyFieldValue(o);if(this.setPropertyInputValidity(e,""),e instanceof HTMLInputElement&&e.type==="checkbox"){e.checked=n===!0;return}e.value=this.stringifyPropertyInputValue(n,e.dataset.propertyValueType)})}updateProperty(e,o){this.state[e]=o,this.mountVueApp()}getPropertyFieldValue(e){return this.state[e]}escapeHtml(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}renderPropertyField(e){if(e.type==="checkbox")return`
|
|
12
|
+
<label class="mokelay-editor-tool__property-field mokelay-editor-tool__property-field--checkbox">
|
|
13
|
+
<input
|
|
14
|
+
class="mokelay-editor-tool__property-checkbox"
|
|
15
|
+
data-testid="tool-property-input-${e.key}"
|
|
16
|
+
data-property-key="${e.key}"
|
|
17
|
+
data-property-type="checkbox"
|
|
18
|
+
type="checkbox"
|
|
19
|
+
${this.getPropertyFieldValue(e.key)===!0?"checked":""}
|
|
20
|
+
/>
|
|
21
|
+
<span class="mokelay-editor-tool__property-label">${this.escapeHtml(e.label)}</span>
|
|
22
|
+
</label>
|
|
23
|
+
`;if(e.type==="select"){const a=this.getPropertyFieldValue(e.key),i=(e.options??[]).map(p=>`
|
|
24
|
+
<option value="${this.escapeHtml(p.value)}" ${a===p.value?"selected":""}>${this.escapeHtml(p.label)}</option>
|
|
25
|
+
`).join("");return`
|
|
26
|
+
<label class="mokelay-editor-tool__property-field">
|
|
27
|
+
<span class="mokelay-editor-tool__property-label">${this.escapeHtml(e.label)}</span>
|
|
28
|
+
<select
|
|
29
|
+
class="mokelay-editor-tool__property-input"
|
|
30
|
+
data-testid="tool-property-input-${e.key}"
|
|
31
|
+
data-property-key="${e.key}"
|
|
32
|
+
data-property-type="select"
|
|
33
|
+
>
|
|
34
|
+
${i}
|
|
35
|
+
</select>
|
|
36
|
+
</label>
|
|
37
|
+
`}if(e.type==="textarea"){const a=this.getPropertyFieldValue(e.key),i=e.valueType??"string",p=e.validationMessage??E.t("editor.invalidJson"),f=i==="json"?6:4,g=this.stringifyPropertyInputValue(a,i);return`
|
|
38
|
+
<label class="mokelay-editor-tool__property-field">
|
|
39
|
+
<span class="mokelay-editor-tool__property-label">${this.escapeHtml(e.label)}</span>
|
|
40
|
+
<textarea
|
|
41
|
+
class="mokelay-editor-tool__property-input mokelay-editor-tool__property-textarea"
|
|
42
|
+
data-testid="tool-property-input-${e.key}"
|
|
43
|
+
data-property-key="${e.key}"
|
|
44
|
+
data-property-type="textarea"
|
|
45
|
+
data-property-value-type="${this.escapeHtml(i)}"
|
|
46
|
+
data-property-validation-message="${this.escapeHtml(p)}"
|
|
47
|
+
rows="${f}"
|
|
48
|
+
placeholder="${this.escapeHtml(e.placeholder??"")}"
|
|
49
|
+
>${this.escapeHtml(g)}</textarea>
|
|
50
|
+
<span
|
|
51
|
+
class="mokelay-editor-tool__property-error"
|
|
52
|
+
data-testid="tool-property-error-${e.key}"
|
|
53
|
+
data-property-error-for="${e.key}"
|
|
54
|
+
hidden
|
|
55
|
+
></span>
|
|
56
|
+
</label>
|
|
57
|
+
`}const o=this.getPropertyFieldValue(e.key),n=e.valueType??"string";return`
|
|
58
|
+
<label class="mokelay-editor-tool__property-field">
|
|
59
|
+
<span class="mokelay-editor-tool__property-label">${this.escapeHtml(e.label)}</span>
|
|
60
|
+
<input
|
|
61
|
+
class="mokelay-editor-tool__property-input"
|
|
62
|
+
data-testid="tool-property-input-${e.key}"
|
|
63
|
+
data-property-key="${e.key}"
|
|
64
|
+
data-property-type="text"
|
|
65
|
+
data-property-value-type="${this.escapeHtml(n)}"
|
|
66
|
+
data-property-validation-message="${this.escapeHtml(e.validationMessage??E.t("editor.invalidJson"))}"
|
|
67
|
+
type="text"
|
|
68
|
+
value="${this.escapeHtml(this.stringifyPropertyInputValue(o,n))}"
|
|
69
|
+
placeholder="${this.escapeHtml(e.placeholder??"")}"
|
|
70
|
+
/>
|
|
71
|
+
</label>
|
|
72
|
+
`}bindPropertyInputs(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(e=>{const o=e instanceof HTMLSelectElement||e instanceof HTMLInputElement&&e.type==="checkbox"?"change":"input";e.addEventListener(o,()=>{const n=e.dataset.propertyKey;if(!n)return;const a=this.readPropertyInputValue(e);if(!a.valid){this.setPropertyInputValidity(e,a.message);return}this.setPropertyInputValidity(e,""),this.updateProperty(n,a.value)})})}readPropertyInputValue(e){if(e instanceof HTMLInputElement&&e.type==="checkbox")return{valid:!0,value:e.checked};if(e.dataset.propertyValueType==="json")try{return{valid:!0,value:JSON.parse(e.value)}}catch{return{valid:!1,message:e.dataset.propertyValidationMessage||E.t("editor.invalidJson")}}return{valid:!0,value:e.value}}stringifyPropertyInputValue(e,o){if(o==="json")try{return JSON.stringify(e,null,2)??""}catch{return""}return typeof e=="string"?e:""}setPropertyInputValidity(e,o){var i;o?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid"),e.dataset.invalid=o?"true":"false",e.title=o;const n=e.dataset.propertyKey,a=n?(i=this.propertyDialog)==null?void 0:i.querySelector(`[data-property-error-for="${n}"]`):null;a&&(a.textContent=o,a.hidden=!o)}}const m=h;return K.set(s,m),m}}function ke(u={},s={}){const d=new Set(s.exclude??[]);return Object.fromEntries(Object.entries(me()).filter(([r])=>!d.has(r)).map(([r,h])=>{var m;return[r,{class:ge.create(r),config:h.normalizeProps({...((m=h.createInitialProps)==null?void 0:m.call(h))??{},...u})}]}))}const _e={key:1,class:"ce-editor-selector-tool__preview","data-testid":"preview-editor-selector-value"},be=ie({__name:"MEditorSelector",props:{edit:{type:Boolean,default:!1},value:{default:void 0},excludeToolNames:{},onChange:{},onToolChange:{}},setup(u){const s="MEditorSelector",d=new Set(["paragraph","table","columns"]),r=u,{t:h,localeValue:m}=ae(),C=$(null),e=$(null),o=$(A(r.value)),n=he(()=>o.value!==void 0);let a=null,i=!1,p=null,f=null,g=null,v=k(o.value);function k(t){return{blocks:t?[H(t)]:[]}}function b(t){return t?JSON.stringify(t):""}function M(){const t=new Set([s]);return(r.excludeToolNames??[]).forEach(l=>{t.add(l)}),t}function D(t){return!M().has(t)&&!d.has(t)&&!!Z(t)}function B(t){if(D(t.type))return A(t)}function I(t){const c=(Array.isArray(t.blocks)?t.blocks:[]).map(y=>B(y)).filter(y=>y!==void 0);return c[c.length-1]}function U(t,l){const c=Array.isArray(t.blocks)?t.blocks:[];return l?c.length!==1?!0:b(B(c[0]))!==b(l):c.some(y=>D(y.type))}function Y(t){var c,y;const l={edit:r.edit,value:t?H(t):void 0};(c=r.onToolChange)==null||c.call(r,l),(y=r.onChange)==null||y.call(r,l)}async function O(t){const l=a;if(l){i=!0,v=k(t);try{await l.blocks.render(v)}finally{await L(),i=!1}}}async function R(t){if(i)return;const l=I(t),c=b(o.value),y=b(l);o.value=l?H(l):void 0,v=k(o.value),c!==y&&Y(o.value),U(t,o.value)&&await O(o.value)}function F(){f!==null&&(window.clearTimeout(f),f=null)}function _(){!a||i||(F(),f=window.setTimeout(async()=>{if(f=null,!(!a||i))try{const t=await a.save();await R(t)}catch{}},0))}function G(){const t=e.value;t&&(j(),p=new MutationObserver(()=>{_()}),p.observe(t,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),t.addEventListener("input",_),t.addEventListener("change",_),t.addEventListener("click",_))}function j(){const t=e.value;p==null||p.disconnect(),p=null,F(),t==null||t.removeEventListener("input",_),t==null||t.removeEventListener("change",_),t==null||t.removeEventListener("click",_)}function Q(t){return t.querySelector(".codex-editor > .ce-toolbar")}function W(t){return t.closest('[data-testid="editor-form-tool"]')??t.closest('[data-testid="editor-panel"]')??document}function X(){const t=C.value;t&&W(t).querySelectorAll(".ce-editor-selector-tool").forEach(l=>{if(l===t)return;const c=Q(l);c==null||c.classList.remove("ce-toolbar--opened")})}function ee(){C.value&&X()}function N(){g!==null&&(window.clearTimeout(g),g=null)}function J(){N(),g=window.setTimeout(()=>{g=null,ee()},0)}async function x(){if(!r.edit||!e.value||a)return;v=k(o.value);const t=ke({edit:!0},{exclude:M()});a=new re({holder:e.value,placeholder:h("editorSelector.placeholder"),tools:t,data:v,minHeight:0,i18n:{messages:le(m.value)},onChange:async()=>{if(!a)return;const l=await a.save();await R(l)}}),G()}async function P(){const t=a;if(t){a=null,j();try{const l=await t.save();o.value=I(l),v=k(o.value)}catch{v=k(o.value)}t.destroy()}}async function q(){await P(),await L(),await x()}return ce(async()=>{await x()}),S(()=>r.value,async t=>{const l=A(t);b(l)!==b(o.value)&&(o.value=l,v=k(l),a&&await O(l))},{deep:!0}),S(()=>r.edit,async t=>{if(t){await L(),await x();return}await P()}),S(m,async()=>{a&&await q()}),S(()=>r.excludeToolNames,async()=>{a&&await q()},{deep:!0}),pe(async()=>{N(),await P()}),(t,l)=>(T(),V("div",{ref_key:"rootRef",ref:C,class:z(["ce-editor-selector-tool",{"ce-editor-selector-tool--filled":n.value}]),"data-testid":"editor-selector-tool",onMouseenter:J,onMousemove:J},[u.edit?(T(),V("div",{key:0,class:z(["ce-editor-selector-tool__editor-shell",{"ce-editor-selector-tool__editor-shell--filled":n.value}]),"data-testid":"editor-selector-shell"},[ue("div",{ref_key:"holderRef",ref:e,class:"ce-editor-selector-tool__editor","data-testid":"editor-selector-surface"},null,512)],2)):(T(),V("div",_e,[o.value?(T(),de(ve,{key:0,block:o.value},null,8,["block"])):ye("",!0)]))],34))}}),we=se(be,[["__scopeId","data-v-865609b6"]]),Pe=Object.freeze(Object.defineProperty({__proto__:null,default:we,mEditorSelectorEditorTool:fe},Symbol.toStringTag,{value:"Module"}));export{Pe as M,ke as c};
|
|
@@ -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}.dark{color:#cbd5e1}.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-niI9qUPh.js","./editorjs-CrGo22NX.js","./block-advanced-BuKEuWQ4.js","./vue-vendor-Dh3tbb7h.js","./element-plus-CD8wJz6b.js","./element-plus-Dit-l95b.css","./block-advanced-DfEsE7Tf.css","./block-editor-selector-Da_ew6E9.css","./MPage-CMw0gXU4.js","./MPage.vue_vue_type_script_setup_true_lang-D5yGdSyf.js","./block-chart-0eTcp5HJ.js","./echarts-BN_iJMI5.js","./zrender-CyMoNtco.js","./block-chart-BDhOWgsD.css","./block-datasource-_a7GVdwT.js","./block-datasource-DIH8wAmJ.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
var We=Object.defineProperty;var Qe=(e,r,d)=>r in e?We(e,r,{enumerable:!0,configurable:!0,writable:!0,value:d}):e[r]=d;var L=(e,r,d)=>Qe(e,typeof r!="symbol"?r+"":r,d);import{f as Q,o as p,j as g,l as N,G as ae,H as ne,x as K,I as ge,n as Z,M as Xe,m as Ye,C as j,e as ie,L as Ne,F as U,q as et,u as le,N as q,E as T,z as tt,A as ve,B as ot,r as rt,J as at,O as nt}from"./vue-vendor-Dh3tbb7h.js";import{A as it}from"./editorjs-CrGo22NX.js";import{d as O,i as f,_ as de,u as Me,m as lt,a as st,b as ct,c as dt,e as ut,M as ke,f as _e,g as we,h as Te,j as Ee,k as mt}from"./block-advanced-BuKEuWQ4.js";import{m as pt,M as Ce}from"./block-chart-0eTcp5HJ.js";import{m as yt,M as Ie}from"./block-datasource-_a7GVdwT.js";const ft="modulepreload",ht=function(e,r){return new URL(e,r).href},xe={},J=function(r,d,M){let C=Promise.resolve();if(d&&d.length>0){let _=function(n){return Promise.all(n.map(s=>Promise.resolve(s).then(k=>({status:"fulfilled",value:k}),k=>({status:"rejected",reason:k}))))};const h=document.getElementsByTagName("link"),v=document.querySelector("meta[property=csp-nonce]"),a=(v==null?void 0:v.nonce)||(v==null?void 0:v.getAttribute("nonce"));C=_(d.map(n=>{if(n=ht(n,M),n in xe)return;xe[n]=!0;const s=n.endsWith(".css"),k=s?'[rel="stylesheet"]':"";if(!!M)for(let E=h.length-1;E>=0;E--){const b=h[E];if(b.href===n&&(!s||b.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${k}`))return;const y=document.createElement("link");if(y.rel=s?"stylesheet":ft,s||(y.as="script"),y.crossOrigin="",y.href=n,a&&y.setAttribute("nonce",a),document.head.appendChild(y),s)return new Promise((E,b)=>{y.addEventListener("load",E),y.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${n}`)))})}))}function l(_){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=_,window.dispatchEvent(h),!h.defaultPrevented)throw _}return C.then(_=>{for(const h of _||[])h.status==="rejected"&&l(h.reason);return r().catch(l)})},bt={class:"ce-divider-line-tool","data-testid":"editor-divider-line-tool",role:"separator","aria-orientation":"horizontal"},gt=O({toolbox:{get title(){return f.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:()=>({})}),vt=Q({__name:"MDividerLine",props:{edit:{type:Boolean},onChange:{type:Function},onToolChange:{type:Function}},setup(e){return(r,d)=>(p(),g("div",bt,[...d[0]||(d[0]=[N("span",{class:"ce-divider-line-tool__line"},null,-1)])]))}}),Pe=de(vt,[["__scopeId","data-v-65668242"]]);function kt(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,10):Math.random().toString(36).slice(2,12)}function _t(e){return JSON.parse(JSON.stringify(e))}function Ae(e){return typeof e!="object"||e===null||Array.isArray(e)?{}:_t(e)}function V(e){if(typeof e!="object"||e===null||Array.isArray(e))return;const r=e;if(!(typeof r.type!="string"||typeof r.data!="object"||r.data===null||Array.isArray(r.data)))return{id:typeof r.id=="string"&&r.id?r.id:kt(),type:r.type,data:Ae(r.data)}}function X(e){return{id:e.id,type:e.type,data:Ae(e.data)}}const wt=O({toolbox:{get title(){return f.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:V(e.value),excludeToolNames:Array.isArray(e.excludeToolNames)?e.excludeToolNames.filter(r=>typeof r=="string"):[]}),serialize:e=>{const r=V(e.value);return r?{value:r}:{}}}),Tt=["innerHTML"],Et={key:1,class:"overflow-auto"},Ct={key:3,class:"overflow-auto rounded bg-slate-100 p-2 text-xs dark:bg-slate-800"},It=Q({__name:"EditorPreviewBlock",props:{block:{},compactTable:{type:Boolean,default:!1}},setup(e){const r=e,d=ie(()=>r.compactTable?"min-w-full border-collapse text-xs":"min-w-full border-collapse text-sm"),M=ie(()=>r.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 C(a){const n=a.data.content;return Array.isArray(n)?n.filter(s=>Array.isArray(s)):[]}function l(a,n){const s=a.data.withHeadings;return n===0&&s===!0}function _(a){return Ot(a)}function h(a){const n=R(a);return(n==null?void 0:n.component)??null}function v(a){var s;const n=R(a.type);return n?{...n.normalizeProps({...((s=n.createInitialProps)==null?void 0:s.call(n))??{},...a.data,edit:!1})}:{edit:!1,...a.data}}return(a,n)=>e.block.type==="paragraph"?(p(),g("p",{key:0,class:"text-sm leading-6",innerHTML:e.block.data.text},null,8,Tt)):e.block.type==="table"?(p(),g("div",Et,[N("table",{class:Z(d.value)},[N("tbody",null,[(p(!0),g(ae,null,ne(C(e.block),(s,k)=>(p(),g("tr",{key:`table-${k}`,class:"border-b border-slate-200 dark:border-slate-700"},[(p(!0),g(ae,null,ne(s,(D,y)=>(p(),K(ge(l(e.block,k)?"th":"td"),{key:`table-${k}-${y}`,class:Z(M.value),innerHTML:D},null,8,["class","innerHTML"]))),128))]))),128))])],2)])):_(e.block.type)?(p(),K(ge(h(e.block.type)),Xe(Ye({key:2},v(e.block))),null,16)):(p(),g("pre",Ct,j(e.block),1))}}),xt={key:0,class:"ce-form-item-tool__edit-shell","data-testid":"form-item-edit-shell"},Pt={class:"ce-form-item-tool__body"},Nt={class:"ce-form-item-tool__label","data-testid":"form-item-label-preview"},Mt={class:"ce-form-item-tool__editor","data-testid":"form-item-editor-field"},At={key:1,class:"ce-form-item-tool__body"},Lt={class:"ce-form-item-tool__label","data-testid":"preview-form-item-label"},Ft={class:"ce-form-item-tool__editor","data-testid":"preview-form-item-editor"},$t={key:1,class:"ce-form-item-tool__empty"};function Le(){return`field_${typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,8):Math.random().toString(36).slice(2,10)}`}function Fe(){return f.t("formItem.defaultLabelName")}function se(e){return e==="Horizontal"?"Horizontal":"Vertical"}function Dt(e){return typeof e=="string"&&e.trim()?e:Fe()}function St(e,r){return typeof e=="string"&&e.trim()?e.trim():r||Le()}function Bt(e){return e?X(e):void 0}function F(e,r){return{edit:e.edit??!1,labelName:Dt(e.labelName),variableName:St(e.variableName,r),editor:V(e.editor),layout:se(e.layout)}}function $e(e){const r=F(e);return{labelName:r.labelName,variableName:r.variableName,...r.editor?{editor:X(r.editor)}:{},layout:r.layout}}const ce=O({toolbox:{get title(){return f.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 f.t("formItem.propertyPanelTitle")},get fields(){return[{key:"labelName",label:f.t("formItem.properties.labelName"),placeholder:f.t("formItem.placeholders.labelName")},{key:"variableName",label:f.t("formItem.properties.variableName"),placeholder:f.t("formItem.placeholders.variableName")},{key:"layout",label:f.t("formItem.properties.layout"),type:"select",options:[{label:f.t("formItem.layouts.vertical"),value:"Vertical"},{label:f.t("formItem.layouts.horizontal"),value:"Horizontal"}]}]}},createInitialProps:()=>({labelName:Fe(),variableName:Le(),editor:void 0,layout:"Vertical"}),normalizeProps:e=>F(e),serialize:$e}),zt=Q({__name:"MFormItem",props:{edit:{type:Boolean,default:!1},labelName:{},variableName:{},editor:{default:void 0},layout:{default:"Vertical"},onChange:{},onToolChange:{}},setup(e){const r=q(()=>J(()=>import("./block-editor-selector-niI9qUPh.js").then(a=>a.M),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),d=e,{t:M}=Me(),C=["MFormItem","MForm"],l=Ne(F(d));function _(){var n,s;const a={edit:d.edit,labelName:l.labelName,variableName:l.variableName,editor:Bt(l.editor),layout:se(l.layout)};(n=d.onToolChange)==null||n.call(d,a),(s=d.onChange)==null||s.call(d,a)}function h(a){a.labelName!==void 0&&(l.labelName=a.labelName),a.variableName!==void 0&&(l.variableName=a.variableName),"editor"in a&&(l.editor=V(a.editor)),a.layout!==void 0&&(l.layout=se(a.layout)),_()}function v(a){h({editor:a.value})}return U(()=>({labelName:d.labelName,variableName:d.variableName,editor:d.editor,layout:d.layout,edit:d.edit}),a=>{Object.assign(l,F(a,l.variableName))},{deep:!0}),(a,n)=>(p(),g("div",{class:Z(["ce-form-item-tool",{"ce-form-item-tool--edit":e.edit,"ce-form-item-tool--horizontal":l.layout==="Horizontal"}]),"data-testid":"editor-form-item-tool"},[e.edit?(p(),g("div",xt,[N("div",Pt,[N("div",Nt,j(l.labelName),1),N("div",Mt,[et(le(r),{edit:!0,value:l.editor,"exclude-tool-names":C,"on-change":v},null,8,["value"])])])])):(p(),g("div",At,[N("div",Lt,j(l.labelName),1),N("div",Ft,[l.editor?(p(),K(It,{key:0,block:l.editor},null,8,["block"])):(p(),g("span",$t,j(le(M)("formItem.emptyEditor")),1))])]))],2))}}),G=de(zt,[["__scopeId","data-v-c59f1044"]]);function Rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W(e){const r=F({...e,edit:!1});return{labelName:r.labelName,variableName:r.variableName,...r.editor?{editor:X(r.editor)}:{},layout:r.layout}}function De(e){if(Rt(e))return W(e)}function z(e){return Array.isArray(e)?e.map(r=>De(r)).filter(r=>r!==void 0):[]}const Se=O({toolbox:{get title(){return f.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:z(e.items)}),serialize:e=>({items:z(e.items).map(r=>W(r))})}),Vt=O({toolbox:{get title(){return f.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 P(e){const r=e.name||e.__name;if(!r)throw new Error("Editor component is missing both name and __name.");return r}const ue={MPage:{component:T(q(()=>J(()=>import("./MPage-CMw0gXU4.js"),__vite__mapDeps([8,9,1,2,3,4,5,6,0,7,10,11,12,13,14,15]),import.meta.url))),...Vt},MEditorSelector:{component:T(q(()=>J(()=>import("./block-editor-selector-niI9qUPh.js").then(e=>e.M),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url))),...wt},MForm:{component:T(q(()=>J(()=>Promise.resolve().then(()=>Kt),void 0,import.meta.url))),...Se},[P(Ee)]:{component:T(Ee),...ut},[P(Te)]:{component:T(Te),...dt},[P(we)]:{component:T(we),...ct},[P(_e)]:{component:T(_e),...st},[P(Ce)]:{component:T(Ce),...pt},[P(Ie)]:{component:T(Ie),...yt},[P(Pe)]:{component:T(Pe),...gt},[P(G)]:{component:T(G),...ce},[P(ke)]:{component:T(ke),...lt}};function R(e){return ue[e]}function Ot(e){return e in ue}function Ht(){return ue}const jt={key:0,class:"ce-form-tool__editor-shell","data-testid":"form-editor-shell"},Ut={key:1,class:"ce-form-tool__preview","data-testid":"preview-form-items"},qt=Q({__name:"MForm",props:{edit:{type:Boolean,default:!1},items:{default:()=>[]},onChange:{},onToolChange:{}},emits:["change"],setup(e,{expose:r,emit:d}){const M=new Set(["MPage","MForm","MFormItem","MEditorSelector"]),C=new Map,l=e,_=d,{t:h,localeValue:v}=Me(),a=rt(null),n=ie(()=>z(l.items));let s=null,k=!1,D=!1,y=null,E=null,b=S(n.value);function Be(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().slice(0,10):Math.random().toString(36).slice(2,12)}function I(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Y(){return Object.keys(Ht()).filter(o=>!M.has(o)&&!!R(o))}function ee(o){return Y().includes(o)}function ze(){const o="MInput";return ee(o)?o:Y()[0]}function Re(o){var x;const c=R(o);if(!c)throw new Error(`MForm could not find a registered component for "${o}".`);const i=c.normalizeProps({...((x=c.createInitialProps)==null?void 0:x.call(c))??{},edit:!0});return{id:Be(),type:o,data:c.serialize(i)}}function Ve(o){const c=C.get(o);if(c)return c;const i=R(o);if(!i)throw new Error(`MForm could not create a form item tool for "${o}".`);class x{constructor({data:t,config:u}){L(this,"state");L(this,"wrapper",null);L(this,"contentRoot",null);L(this,"vueApp",null);L(this,"propertyDialog",null);L(this,"toolbarAlignTimer",null);L(this,"handleToolbarPointer",()=>{this.scheduleToolbarAlignment()});const m=typeof(u==null?void 0:u.edit)=="boolean"?u.edit:!0,w=V(t==null?void 0:t.editor);this.state=Ne(F({...t??{},edit:m,editor:w??Re(o)}))}static get toolbox(){return i.toolbox}render(){const t=document.createElement("div");t.className="mokelay-form-item-tool",t.dataset.toolName=o,t.dataset.testid=`form-item-tool-${o}`;const u=document.createElement("div");return u.className="mokelay-form-item-tool__content",t.appendChild(u),this.wrapper=t,this.contentRoot=u,t.addEventListener("mouseenter",this.handleToolbarPointer),t.addEventListener("mousemove",this.handleToolbarPointer),this.createPropertyDialog(),this.mountVueApp(),t}destroy(){var t,u,m;this.clearToolbarAlignTimer(),(t=this.wrapper)==null||t.removeEventListener("mouseenter",this.handleToolbarPointer),(u=this.wrapper)==null||u.removeEventListener("mousemove",this.handleToolbarPointer),this.unmountVueApp(),(m=this.propertyDialog)==null||m.remove(),this.propertyDialog=null,this.contentRoot=null,this.wrapper=null}save(){return $e(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:f.t("editor.properties"),onActivate:()=>{this.openPropertyDialog()},closeOnActivate:!0}:[]}mountVueApp(){if(!this.contentRoot)return;const t=u=>{Object.assign(this.state,F(u,this.state.variableName))};this.unmountVueApp(),this.vueApp=at({render:()=>nt(G,{...this.state,edit:!0,onToolChange:t,onChange:t})}),this.vueApp.mount(this.contentRoot)}unmountVueApp(){var t;(t=this.vueApp)==null||t.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 t=this.wrapper;if(!t)return;const u=t.closest(".ce-block"),m=t.closest(".codex-editor"),w=m==null?void 0:m.querySelector(":scope > .ce-toolbar"),A=w==null?void 0:w.querySelector(".ce-toolbar__plus");if(!u||!w||!A)return;const Ke=u.getBoundingClientRect(),be=t.getBoundingClientRect(),Ze=A.getBoundingClientRect().height||26,Ge=u.offsetTop+(be.top-Ke.top)+(be.height-Ze)/2;w.style.top=`${Math.max(0,Math.round(Ge))}px`}getPropertyFields(){var t;return((t=ce.propertyPanel)==null?void 0:t.fields)??[]}createPropertyDialog(){var w;if(!this.wrapper||!this.getPropertyFields().length)return;const t=document.createElement("dialog");t.className="mokelay-editor-tool__property-dialog",t.dataset.testid="tool-property-dialog",t.dataset.toolName="MFormItem";const u=((w=ce.propertyPanel)==null?void 0:w.title)||f.t("editor.propertyDialogTitle"),m=this.getPropertyFields().map(A=>this.renderPropertyField(A)).join("");t.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">${I(u)}</h3>
|
|
6
|
+
<button type="submit" class="mokelay-editor-tool__property-close" data-testid="tool-property-close">${I(f.t("editor.close"))}</button>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="mokelay-editor-tool__property-body" data-testid="tool-property-body">
|
|
9
|
+
${m}
|
|
10
|
+
</div>
|
|
11
|
+
</form>
|
|
12
|
+
`,this.wrapper.appendChild(t),this.propertyDialog=t,this.bindPropertyInputs()}openPropertyDialog(){this.propertyDialog&&(this.syncPropertyDialogValues(),this.propertyDialog.open||this.propertyDialog.showModal())}syncPropertyDialogValues(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(t=>{const u=t.dataset.propertyKey;if(!u)return;const m=this.getPropertyFieldValue(u);if(t instanceof HTMLInputElement&&t.type==="checkbox"){t.checked=m===!0;return}t.value=typeof m=="string"?m:""})}updateProperty(t,u){Object.assign(this.state,F({...this.state,[t]:u,edit:!0},this.state.variableName))}getPropertyFieldValue(t){return this.state[t]}renderPropertyField(t){if(t.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-${t.key}"
|
|
17
|
+
data-property-key="${t.key}"
|
|
18
|
+
data-property-type="checkbox"
|
|
19
|
+
type="checkbox"
|
|
20
|
+
${this.getPropertyFieldValue(t.key)===!0?"checked":""}
|
|
21
|
+
/>
|
|
22
|
+
<span class="mokelay-editor-tool__property-label">${I(t.label)}</span>
|
|
23
|
+
</label>
|
|
24
|
+
`;if(t.type==="select"){const m=this.getPropertyFieldValue(t.key),w=(t.options??[]).map(A=>`
|
|
25
|
+
<option value="${I(A.value)}" ${m===A.value?"selected":""}>${I(A.label)}</option>
|
|
26
|
+
`).join("");return`
|
|
27
|
+
<label class="mokelay-editor-tool__property-field">
|
|
28
|
+
<span class="mokelay-editor-tool__property-label">${I(t.label)}</span>
|
|
29
|
+
<select
|
|
30
|
+
class="mokelay-editor-tool__property-input"
|
|
31
|
+
data-testid="tool-property-input-${t.key}"
|
|
32
|
+
data-property-key="${t.key}"
|
|
33
|
+
data-property-type="select"
|
|
34
|
+
>
|
|
35
|
+
${w}
|
|
36
|
+
</select>
|
|
37
|
+
</label>
|
|
38
|
+
`}const u=this.getPropertyFieldValue(t.key);return`
|
|
39
|
+
<label class="mokelay-editor-tool__property-field">
|
|
40
|
+
<span class="mokelay-editor-tool__property-label">${I(t.label)}</span>
|
|
41
|
+
<input
|
|
42
|
+
class="mokelay-editor-tool__property-input"
|
|
43
|
+
data-testid="tool-property-input-${t.key}"
|
|
44
|
+
data-property-key="${t.key}"
|
|
45
|
+
data-property-type="text"
|
|
46
|
+
type="text"
|
|
47
|
+
value="${I(typeof u=="string"?u:"")}"
|
|
48
|
+
placeholder="${I(t.placeholder??"")}"
|
|
49
|
+
/>
|
|
50
|
+
</label>
|
|
51
|
+
`}bindPropertyInputs(){this.propertyDialog&&this.propertyDialog.querySelectorAll("[data-property-key]").forEach(t=>{const u=t instanceof HTMLInputElement?t.type==="checkbox"?"change":"input":"change";t.addEventListener(u,()=>{const m=t.dataset.propertyKey;m&&this.updateProperty(m,this.readPropertyInputValue(t))})})}readPropertyInputValue(t){return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}}const B=x;return C.set(o,B),B}function Oe(){return Object.fromEntries(Y().map(o=>[o,{class:Ve(o),config:{edit:!0}}]))}function He(o){var i;const c=(i=o.editor)==null?void 0:i.type;return c&&ee(c)?c:ze()}function je(o,c){const i=He(o);if(i)return{id:`form-item-${o.variableName||c}`,type:i,data:W(o)}}function S(o){return{blocks:o.map((c,i)=>je(c,i)).filter(c=>c!==void 0)}}function H(o){return(Array.isArray(o.blocks)?o.blocks:[]).filter(i=>ee(i.type)).map(i=>De(i.data)).filter(i=>i!==void 0)}function me(o,c){return JSON.stringify(o)===JSON.stringify(c)}function Ue(o){var x,B;const c=z(o),i={edit:l.edit,items:c.map(he=>W(he))};D=!0,(x=l.onToolChange)==null||x.call(l,i),(B=l.onChange)==null||B.call(l,i),_("change",i.items)}async function te(o){const c=H(b),i=H(o);b=S(i),!k&&!me(c,i)&&Ue(i)}function pe(){E!==null&&(window.clearTimeout(E),E=null)}function $(){s&&(pe(),E=window.setTimeout(async()=>{if(E=null,!!s)try{const o=await s.save();await te(o)}catch{}},0))}function qe(){const o=a.value;o&&(ye(),y=new MutationObserver(()=>{$()}),y.observe(o,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),o.addEventListener("input",$),o.addEventListener("change",$),o.addEventListener("click",$))}function ye(){const o=a.value;y==null||y.disconnect(),y=null,pe(),o==null||o.removeEventListener("input",$),o==null||o.removeEventListener("change",$),o==null||o.removeEventListener("click",$)}async function oe(){!l.edit||!a.value||s||(b=S(n.value),s=new it({holder:a.value,placeholder:h("form.placeholder"),tools:Oe(),data:b,minHeight:0,i18n:{messages:mt(v.value)},onChange:async()=>{if(!s)return;const o=await s.save();await te(o)}}),qe())}async function re(){const o=s;if(o){s=null,ye();try{const c=await o.save();b=S(H(c))}catch{b=S(n.value)}o.destroy()}}async function fe(){await re(),await ve(),await oe()}async function Je(){if(!s)return b;const o=await s.save();return await te(o),b}return r({saveEditor:Je}),tt(async()=>{await oe()}),U(()=>l.items,async o=>{if(D){D=!1;return}const c=z(o),i=H(b);me(c,i)||(k=!0,b=S(c),s&&await fe(),k=!1)},{deep:!0}),U(v,async()=>{s&&await fe()}),U(()=>l.edit,async o=>{if(o){await ve(),await oe();return}await re()}),ot(async()=>{await re()}),(o,c)=>(p(),g("div",{class:Z(["ce-form-tool",{"ce-form-tool--edit":e.edit}]),"data-testid":"editor-form-tool"},[e.edit?(p(),g("div",jt,[N("div",{ref_key:"holderRef",ref:a,class:"ce-form-tool__editor","data-testid":"form-editor-surface"},null,512)])):(p(),g("div",Ut,[(p(!0),g(ae,null,ne(n.value,(i,x)=>(p(),K(G,{key:`${i.variableName}-${x}`,edit:!1,"label-name":i.labelName,"variable-name":i.variableName,editor:i.editor?le(X)(i.editor):void 0,layout:i.layout},null,8,["label-name","variable-name","editor","layout"]))),128))]))],2))}}),Jt=de(qt,[["__scopeId","data-v-a3894c78"]]),Kt=Object.freeze(Object.defineProperty({__proto__:null,default:Jt,mFormEditorTool:Se},Symbol.toStringTag,{value:"Module"}));export{It as _,R as a,J as b,X as c,Ht as g,wt as m,V as n};
|