inquirer-form 0.1.0
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/LICENSE +22 -0
- package/README.md +140 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.d.ts +84 -0
- package/dist/inquirer-form.css +1 -0
- package/dist/inquirer-form.es.js +2099 -0
- package/dist/inquirer-form.umd.js +8 -0
- package/package.json +72 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
(function(u,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("agilebuilder-form"),require("element-plus"),require("vue-i18n")):typeof define=="function"&&define.amd?define(["exports","vue","agilebuilder-form","element-plus","vue-i18n"],e):(u=typeof globalThis<"u"?globalThis:u||self,e(u.InquirerForm={},u.Vue,u.agilebuilderForm,u.elementPlus,u.vueI18n))})(this,(function(u,e,f,h,ne){"use strict";const oe={class:"inquirer-designer-card"},le={class:"card-header"},ae={class:"type-badge"},ie={class:"message"},re={key:0,class:"description"},se={key:1,class:"options-preview"},ce={key:0,class:"more"},de=e.defineComponent({inheritAttrs:!1,__name:"BaseQuestionDesigner",props:{label:{},message:{},description:{},typeLabel:{},options:{},isActive:{type:Boolean},previewCount:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>n.previewCount??3),r=e.computed(()=>n.options?.slice(0,i.value)??[]),l=e.computed(()=>(n.options?.length??0)>i.value),s=e.computed(()=>n.label||n.message||n.typeLabel),m=e.computed(()=>n.message||"未设置 message");return(d,c)=>(e.openBlock(),e.createBlock(e.unref(f.FormItemWrapper),{selectable:"",label:s.value,"is-active":t.isActive,onSelect:c[0]||(c[0]=p=>a("select"))},{default:e.withCtx(()=>[e.createElementVNode("div",oe,[e.createElementVNode("header",le,[e.createElementVNode("span",ae,e.toDisplayString(t.typeLabel),1)]),e.createElementVNode("div",ie,e.toDisplayString(m.value),1),t.description?(e.openBlock(),e.createElementBlock("p",re,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),r.value.length?(e.openBlock(),e.createElementBlock("ul",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value},e.toDisplayString(p.label||p.value),1))),128)),l.value?(e.openBlock(),e.createElementBlock("li",ce,"…")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]),_:1},8,["label","is-active"]))}}),x=(t,o)=>{const n=t.__vccOpts||t;for(const[a,i]of o)n[a]=i;return n},B=x(de,[["__scopeId","data-v-5aa173c3"]]),pe=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s}=e.toRefs(n);return(m,d)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),"type-label":"Inquirer Input","is-active":e.unref(s),onSelect:d[0]||(d[0]=c=>a("select"))},null,8,["label","message","description","is-active"]))}}),me={class:"inquirer-input"},fe={key:0,class:"transformer-preview"},ue=x(e.defineComponent({__name:"runtime",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},prefix:{},suffix:{},displayValue:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>n.displayValue===void 0?!1:n.displayValue!==n.modelValue);return(r,l)=>(e.openBlock(),e.createElementBlock("div",me,[e.createVNode(e.unref(h.ElInput),{"model-value":t.modelValue??"",placeholder:t.placeholder,disabled:t.disabled,clearable:"","onUpdate:modelValue":l[0]||(l[0]=s=>a("update:modelValue",s??""))},e.createSlots({_:2},[t.prefix?{name:"prepend",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.prefix),1)]),key:"0"}:void 0,t.suffix?{name:"append",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.suffix),1)]),key:"1"}:void 0]),1032,["model-value","placeholder","disabled"]),i.value?(e.openBlock(),e.createElementBlock("p",fe,e.toDisplayString(t.displayValue),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-b9ac497e"]]),he={class:"base-input-config"},xe=x(e.defineComponent({__name:"BaseInputConfig",props:{label:{},field:{}},emits:["update"],setup(t,{emit:o}){const n=o;function a(r){n("update",{field:r})}function i(r,l){n("update",{props:{[r]:l}})}return(r,l)=>(e.openBlock(),e.createElementBlock("div",he,[e.createVNode(e.unref(f.TextSetting),{label:r.$t("designer.node.field_label"),modelValue:t.field,"onUpdate:modelValue":a},null,8,["label","modelValue"]),e.createVNode(e.unref(f.TextSetting),{label:r.$t("designer.form.fields.label_label"),modelValue:t.label,"onUpdate:modelValue":l[0]||(l[0]=s=>i("label",s))},null,8,["label","modelValue"]),e.renderSlot(r.$slots,"default",{updateProp:i},void 0,!0)]))}}),[["__scopeId","data-v-bd4a89f6"]]),ge={class:"textarea-setting"},be={key:0,class:"hint"},Ve=x(e.defineComponent({__name:"TextareaSetting",props:{label:{},modelValue:{},hint:{},minRows:{default:2},maxRows:{default:4}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;return(a,i)=>(e.openBlock(),e.createElementBlock("div",ge,[e.createElementVNode("label",null,e.toDisplayString(t.label),1),e.createVNode(e.unref(h.ElInput),{type:"textarea","model-value":t.modelValue,autosize:{minRows:t.minRows,maxRows:t.maxRows},"onUpdate:modelValue":i[0]||(i[0]=r=>n("update:modelValue",r??""))},null,8,["model-value","autosize"]),t.hint?(e.openBlock(),e.createElementBlock("p",be,e.toDisplayString(t.hint),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-2c386165"]]);var ke=e.defineComponent({name:"InfoFilled",__name:"info-filled",setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),ye=ke;const Ee={"zh-CN":{config:{message:"提问文案 (message)",description:"描述 / 帮助信息 (description)",placeholder:"占位提示",default_value:"默认值",prefix:"前缀",suffix:"后缀",required:"必填",expressions:{when_label:"when 表达式",when_info:"控制是否展示该问题,可使用 input、answers,返回 true/false。",validate_label:"validate 表达式",validate_info:"校验输入,返回 true 表示通过,返回字符串为错误提示。",filter_label:"filter 表达式",filter_info:"提交前对值做处理,返回值会写入 answers 并导出给 inquirer。",transformer_label:"transformer 表达式",transformer_info:"仅影响展示,返回值用于实时提示,不写入 answers。"}},editor:{placeholder:"请输入 JavaScript 函数体",show_examples:"查看示例",hide_examples:"收起示例",examples_title:"示例"}},"en-US":{config:{message:"Prompt message",description:"Description / helper text",placeholder:"Placeholder",default_value:"Default value",prefix:"Prefix",suffix:"Suffix",required:"Required",expressions:{when_label:"when expression",when_info:"Control whether this question is shown. Use input / answers and return true or false.",validate_label:"validate expression",validate_info:"Validate the input. Return true to pass or a string as the error.",filter_label:"filter expression",filter_info:"Transform the value before submit. Returned value is written to answers and exported.",transformer_label:"transformer expression",transformer_info:"Affects display only. Returned value is shown but not written to answers."}},editor:{placeholder:"Enter JavaScript function body",show_examples:"Show examples",hide_examples:"Hide examples",examples_title:"Examples"}}};function Q(){return ne.useI18n({inheritLocale:!0,useScope:"local",messages:Ee})}const Be={class:"expression-editor"},Ce={class:"expression-editor__label"},_e={key:0,class:"expression-editor__examples"},we={class:"examples-title"},Se={class:"examples-list"},Ne={class:"expression-editor__footer"},T=x(e.defineComponent({__name:"ExpressionEditor",props:{label:{},modelValue:{},hint:{},info:{},placeholder:{},minRows:{default:6},maxRows:{default:10},suggestions:{default:()=>[]}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,{t:i}=Q(),r=["return input;",'return input?.trim() ?? "";',"return input ? input.toUpperCase() : input;","return answers.otherField;"],l=e.computed(()=>n.placeholder||i("editor.placeholder")),s=e.computed(()=>i("editor.show_examples")),m=e.computed(()=>i("editor.hide_examples")),d=e.computed(()=>i("editor.examples_title")),c=e.computed(()=>n.suggestions&&n.suggestions.length>0?n.suggestions:r),p=e.ref(!1);function $(){p.value=!p.value}return(D,U)=>(e.openBlock(),e.createElementBlock("div",Be,[e.createElementVNode("label",Ce,[e.createElementVNode("span",null,e.toDisplayString(t.label),1),t.info?(e.openBlock(),e.createBlock(e.unref(h.ElTooltip),{key:0,placement:"top",effect:"dark",content:t.info},{default:e.withCtx(()=>[e.createVNode(e.unref(h.ElIcon),{class:"info-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(ye))]),_:1})]),_:1},8,["content"])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(h.ElInput),{class:"code-input",type:"textarea","model-value":t.modelValue,autosize:{minRows:t.minRows,maxRows:t.maxRows},placeholder:l.value,"onUpdate:modelValue":U[0]||(U[0]=k=>a("update:modelValue",k??""))},null,8,["model-value","autosize","placeholder"]),e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("p",we,e.toDisplayString(d.value),1),e.createElementVNode("ul",Se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,k=>(e.openBlock(),e.createElementBlock("li",{key:k},[e.createElementVNode("code",null,e.toDisplayString(k),1)]))),128))])])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Ne,[e.createElementVNode("button",{class:"example-toggle",type:"button",onClick:$},e.toDisplayString(p.value?m.value:s.value),1)])]))}}),[["__scopeId","data-v-91ba45bb"]]),qe={class:"inline-settings"},w=x(e.defineComponent({__name:"BaseQuestionConfig",props:{label:{},field:{},message:{},description:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},showPlaceholder:{type:Boolean,default:!0},showDefaultInput:{type:Boolean,default:!0}},emits:["update"],setup(t,{emit:o}){const n=["return answers.age >= 18;","return answers.role === 'admin';","return Boolean(input);"],a=[`if (!input) return '必填';
|
|
2
|
+
return true;`,`if ((input || "").length < 3) return "至少 3 个字符";
|
|
3
|
+
return true;`,'return Array.isArray(input) && input.length > 0 ? true : "请选择至少一项";'],i=['return input?.trim() ?? "";',"return Number(input) || 0;","return input?.toLowerCase();"],r=["return input ? `⭐ ${input}` : input;",'return input ? `${input} (${answers.unit || ""})` : input;',"return input ? input.toUpperCase() : input;"],{t:l}=Q(),s=o;return(m,d)=>(e.openBlock(),e.createBlock(xe,{label:t.label,field:t.field,onUpdate:d[0]||(d[0]=c=>s("update",c))},{default:e.withCtx(({updateProp:c})=>[e.createVNode(e.unref(f.TextSetting),{label:e.unref(l)("config.message"),"model-value":t.message,"onUpdate:modelValue":p=>c("message",p)},null,8,["label","model-value","onUpdate:modelValue"]),e.createVNode(Ve,{label:e.unref(l)("config.description"),"model-value":t.description,"min-rows":2,"max-rows":3,"onUpdate:modelValue":p=>c("description",p)},null,8,["label","model-value","onUpdate:modelValue"]),t.showPlaceholder?(e.openBlock(),e.createBlock(e.unref(f.TextSetting),{key:0,label:e.unref(l)("config.placeholder"),"model-value":t.placeholder,"onUpdate:modelValue":p=>c("placeholder",p)},null,8,["label","model-value","onUpdate:modelValue"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"defaultValue",{updateProp:c},()=>[t.showDefaultInput?(e.openBlock(),e.createBlock(e.unref(f.TextSetting),{key:0,label:e.unref(l)("config.default_value"),"model-value":t.defaultValue,"onUpdate:modelValue":p=>c("defaultValue",p)},null,8,["label","model-value","onUpdate:modelValue"])):e.createCommentVNode("",!0)],!0),e.createElementVNode("div",qe,[e.createVNode(e.unref(f.TextSetting),{label:e.unref(l)("config.prefix"),"model-value":t.prefix,"onUpdate:modelValue":p=>c("prefix",p)},null,8,["label","model-value","onUpdate:modelValue"]),e.createVNode(e.unref(f.TextSetting),{label:e.unref(l)("config.suffix"),"model-value":t.suffix,"onUpdate:modelValue":p=>c("suffix",p)},null,8,["label","model-value","onUpdate:modelValue"])]),e.createVNode(e.unref(f.SwitchSetting),{label:e.unref(l)("config.required"),"model-value":t.required,"onUpdate:modelValue":p=>c("required",p)},null,8,["label","model-value","onUpdate:modelValue"]),e.renderSlot(m.$slots,"extra",{updateProp:c},void 0,!0),e.createVNode(T,{label:e.unref(l)("config.expressions.when_label"),info:e.unref(l)("config.expressions.when_info"),"model-value":t.whenExpression,"min-rows":2,"max-rows":3,placeholder:e.unref(l)("editor.placeholder"),suggestions:n,"onUpdate:modelValue":p=>c("whenExpression",p)},null,8,["label","info","model-value","placeholder","onUpdate:modelValue"]),e.createVNode(T,{label:e.unref(l)("config.expressions.validate_label"),info:e.unref(l)("config.expressions.validate_info"),"model-value":t.validateExpression,"min-rows":3,"max-rows":5,placeholder:e.unref(l)("editor.placeholder"),suggestions:a,"onUpdate:modelValue":p=>c("validateExpression",p)},null,8,["label","info","model-value","placeholder","onUpdate:modelValue"]),e.createVNode(T,{label:e.unref(l)("config.expressions.filter_label"),info:e.unref(l)("config.expressions.filter_info"),"model-value":t.filterExpression,"min-rows":2,"max-rows":4,placeholder:e.unref(l)("editor.placeholder"),suggestions:i,"onUpdate:modelValue":p=>c("filterExpression",p)},null,8,["label","info","model-value","placeholder","onUpdate:modelValue"]),e.createVNode(T,{label:e.unref(l)("config.expressions.transformer_label"),info:e.unref(l)("config.expressions.transformer_info"),"model-value":t.transformerExpression,"min-rows":2,"max-rows":4,placeholder:e.unref(l)("editor.placeholder"),suggestions:r,"onUpdate:modelValue":p=>c("transformerExpression",p)},null,8,["label","info","model-value","placeholder","onUpdate:modelValue"])]),_:3},8,["label","field"]))}}),[["__scopeId","data-v-c4882c52"]]),$e=e.defineComponent({__name:"config",props:{label:{},field:{},message:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{onUpdate:r[0]||(r[0]=l=>a("update",l))}),null,16))}});function C(t){return`${t}_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function V(t,o){return{label:t,value:o??t}}const j={type:"inq-input",category:"inputControl",label:"输入",icon:"⌨️",isContainer:!1,initialSchema:()=>({id:C("inq_input"),type:"inq-input",field:"question_"+Math.random().toString(36).slice(2,6),props:{label:"普通输入",message:"请输入内容",promptType:"input",placeholder:"例如:姓名",defaultValue:"",prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:pe,runtime:ue,config:$e,locales:{"zh-CN":{control:{"inq-input":{label:"输入"}}},"en-US":{control:{"inq-input":{label:"Input"}}}}},Ue=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s}=e.toRefs(n);return(m,d)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),"type-label":"Inquirer Password","is-active":e.unref(s),onSelect:d[0]||(d[0]=c=>a("select"))},null,8,["label","message","description","is-active"]))}}),Ie={class:"inquirer-password"},De={key:0,class:"mask-hint"},G={type:"inq-password",category:"inputControl",label:"密码",icon:"🔒",isContainer:!1,initialSchema:()=>({id:C("inq_password"),type:"inq-password",field:"secret_"+Math.random().toString(36).slice(2,6),props:{label:"密码",message:"请输入密码",promptType:"password",placeholder:"******",defaultValue:"",prefix:"",suffix:"",maskEnabled:!0,maskSymbol:"*",required:!0,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:Ue,runtime:x(e.defineComponent({__name:"runtime",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},prefix:{},suffix:{},maskEnabled:{type:Boolean},maskSymbol:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;return(a,i)=>(e.openBlock(),e.createElementBlock("div",Ie,[e.createVNode(e.unref(h.ElInput),{"model-value":t.modelValue??"",placeholder:t.placeholder,disabled:t.disabled,type:"password","show-password":"","onUpdate:modelValue":i[0]||(i[0]=r=>n("update:modelValue",r??""))},e.createSlots({_:2},[t.prefix?{name:"prepend",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.prefix),1)]),key:"0"}:void 0,t.suffix?{name:"append",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.suffix),1)]),key:"1"}:void 0]),1032,["model-value","placeholder","disabled"]),t.maskEnabled?(e.openBlock(),e.createElementBlock("p",De," 输出将使用 "+e.toDisplayString(t.maskSymbol||"掩码")+" 掩码 ",1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-0cb418f2"]]),config:e.defineComponent({__name:"config",props:{label:{},field:{},message:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},maskEnabled:{type:Boolean},maskSymbol:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{onUpdate:r[0]||(r[0]=l=>a("update",l))}),{extra:e.withCtx(({updateProp:l})=>[e.createVNode(e.unref(f.SwitchSetting),{label:"掩码输出","model-value":t.maskEnabled,"onUpdate:modelValue":s=>l("maskEnabled",s)},null,8,["model-value","onUpdate:modelValue"]),t.maskEnabled?(e.openBlock(),e.createBlock(e.unref(f.TextSetting),{key:0,label:"掩码符号","model-value":t.maskSymbol,"onUpdate:modelValue":s=>l("maskSymbol",s)},null,8,["model-value","onUpdate:modelValue"])):e.createCommentVNode("",!0)]),_:1},16))}}),locales:{"zh-CN":{control:{"inq-password":{label:"密码"}}},"en-US":{control:{"inq-password":{label:"Password"}}}}},Te=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s}=e.toRefs(n);return(m,d)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),"type-label":"Inquirer Number","is-active":e.unref(s),onSelect:d[0]||(d[0]=c=>a("select"))},null,8,["label","message","description","is-active"]))}}),Re={class:"number-runtime"},Ae={key:0,class:"affix"},ze={key:1,class:"affix"},Le=x(e.defineComponent({__name:"runtime",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},min:{},max:{},step:{},prefix:{},suffix:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;return(a,i)=>(e.openBlock(),e.createElementBlock("div",Re,[t.prefix?(e.openBlock(),e.createElementBlock("span",Ae,e.toDisplayString(t.prefix),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(h.ElInputNumber),{class:"number-runtime__input","model-value":t.modelValue,placeholder:t.placeholder,disabled:t.disabled,min:t.min,max:t.max,step:t.step||1,"controls-position":"right","onUpdate:modelValue":i[0]||(i[0]=r=>n("update:modelValue",r??void 0))},null,8,["model-value","placeholder","disabled","min","max","step"]),t.suffix?(e.openBlock(),e.createElementBlock("span",ze,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-ade0684b"]]),Me={class:"number-setting"},Oe=e.defineComponent({__name:"NumberSetting",props:{label:{},modelValue:{},min:{default:Number.NEGATIVE_INFINITY},max:{default:Number.POSITIVE_INFINITY},step:{default:1}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;return(a,i)=>(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("label",null,e.toDisplayString(t.label),1),e.createVNode(e.unref(h.ElInputNumber),{"model-value":t.modelValue,min:t.min,max:t.max,step:t.step,"controls-position":"right","onUpdate:modelValue":i[0]||(i[0]=r=>n("update:modelValue",r??void 0))},null,8,["model-value","min","max","step"])]))}}),q=x(Oe,[["__scopeId","data-v-4fb22ad3"]]),Y={type:"inq-number",category:"inputControl",label:"数字",icon:"🔢",isContainer:!1,initialSchema:()=>({id:C("inq_number"),type:"inq-number",field:"amount_"+Math.random().toString(36).slice(2,6),props:{label:"数字输入",message:"请输入数字",promptType:"number",defaultValue:0,min:0,max:100,step:1,prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:Te,runtime:Le,config:e.defineComponent({__name:"config",props:{label:{},field:{},message:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},min:{},max:{},step:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{"show-placeholder":!1,onUpdate:r[0]||(r[0]=l=>a("update",l))}),{defaultValue:e.withCtx(({updateProp:l})=>[e.createVNode(q,{label:"默认值","model-value":t.defaultValue,"onUpdate:modelValue":s=>l("defaultValue",s)},null,8,["model-value","onUpdate:modelValue"])]),extra:e.withCtx(({updateProp:l})=>[e.createVNode(q,{label:"最小值","model-value":t.min,"onUpdate:modelValue":s=>l("min",s)},null,8,["model-value","onUpdate:modelValue"]),e.createVNode(q,{label:"最大值","model-value":t.max,"onUpdate:modelValue":s=>l("max",s)},null,8,["model-value","onUpdate:modelValue"]),e.createVNode(q,{label:"步长","model-value":t.step,min:0,step:.1,"onUpdate:modelValue":s=>l("step",s)},null,8,["model-value","onUpdate:modelValue"])]),_:1},16))}}),locales:{"zh-CN":{control:{"inq-number":{label:"数字"}}},"en-US":{control:{"inq-number":{label:"Number"}}}}},Je=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s}=e.toRefs(n);return(m,d)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),"type-label":"Inquirer Confirm","is-active":e.unref(s),onSelect:d[0]||(d[0]=c=>a("select"))},null,8,["label","message","description","is-active"]))}}),Fe={class:"confirm-runtime"},Qe={key:0,class:"affix"},je={class:"state"},Ge={key:1,class:"affix"},P={type:"inq-confirm",category:"inputControl",label:"确认",icon:"❓",isContainer:!1,initialSchema:()=>({id:C("inq_confirm"),type:"inq-confirm",field:"confirm_"+Math.random().toString(36).slice(2,6),props:{label:"是否继续",message:"请确认是否执行",promptType:"confirm",defaultValue:!1,prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:Je,runtime:x(e.defineComponent({__name:"runtime",props:{modelValue:{type:Boolean},disabled:{type:Boolean},prefix:{},suffix:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;function a(i){n("update:modelValue",!!i)}return(i,r)=>(e.openBlock(),e.createElementBlock("div",Fe,[t.prefix?(e.openBlock(),e.createElementBlock("span",Qe,e.toDisplayString(t.prefix),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(h.ElSwitch),{"model-value":t.modelValue??!1,disabled:t.disabled,"onUpdate:modelValue":a},null,8,["model-value","disabled"]),e.createElementVNode("span",je,e.toDisplayString(t.modelValue??!1?"Yes":"No"),1),t.suffix?(e.openBlock(),e.createElementBlock("span",Ge,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-f41e6b08"]]),config:e.defineComponent({__name:"config",props:{label:{},field:{},message:{},defaultValue:{type:Boolean},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{"show-placeholder":!1,onUpdate:r[0]||(r[0]=l=>a("update",l))}),{defaultValue:e.withCtx(({updateProp:l})=>[e.createVNode(e.unref(f.SwitchSetting),{label:"默认值 (Yes/No)","model-value":t.defaultValue??!1,"onUpdate:modelValue":s=>l("defaultValue",s)},null,8,["model-value","onUpdate:modelValue"])]),_:1},16))}}),locales:{"zh-CN":{control:{"inq-confirm":{label:"确认"}}},"en-US":{control:{"inq-confirm":{label:"Confirm"}}}}},Ye=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean},choices:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s,choices:m}=e.toRefs(n);return(d,c)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),options:e.unref(m),"type-label":"Inquirer List","is-active":e.unref(s),onSelect:c[0]||(c[0]=p=>a("select"))},null,8,["label","message","description","options","is-active"]))}}),Pe={class:"inquirer-list"},He={key:0,class:"affix"},Ke={key:1,class:"affix"},We={key:2,class:"list-hint"},Xe={key:0},Ze={key:1},z=x(e.defineComponent({__name:"runtime",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},choices:{},prefix:{},suffix:{},pageSize:{},loop:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>(n.choices??[]).map(r=>({label:r.label||r.value,value:r.value})));return(r,l)=>(e.openBlock(),e.createElementBlock("div",Pe,[t.prefix?(e.openBlock(),e.createElementBlock("span",He,e.toDisplayString(t.prefix),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(h.ElSelect),{class:"select-runtime","model-value":t.modelValue,placeholder:t.placeholder,disabled:t.disabled,filterable:"",clearable:"","onUpdate:modelValue":l[0]||(l[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,s=>(e.openBlock(),e.createBlock(e.unref(h.ElOption),{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","placeholder","disabled"]),t.suffix?(e.openBlock(),e.createElementBlock("span",Ke,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0),t.loop||t.pageSize?(e.openBlock(),e.createElementBlock("p",We,[t.pageSize?(e.openBlock(),e.createElementBlock("span",Xe,"每页 "+e.toDisplayString(t.pageSize)+" 项",1)):e.createCommentVNode("",!0),t.loop?(e.openBlock(),e.createElementBlock("span",Ze," · 循环导航开启")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-ad8b9ebc"]]),L=e.defineComponent({__name:"config",props:{label:{},field:{},message:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},choices:{},defaultChoice:{},pageSize:{},loop:{type:Boolean}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{onUpdate:r[0]||(r[0]=l=>a("update",l))}),{extra:e.withCtx(({updateProp:l})=>[e.createVNode(e.unref(f.OptionsEditor),{label:"选项","model-value":t.choices,"onUpdate:modelValue":s=>l("choices",s)},null,8,["model-value","onUpdate:modelValue"]),e.createVNode(e.unref(f.TextSetting),{label:"默认选项值","model-value":t.defaultChoice,"onUpdate:modelValue":s=>l("defaultChoice",s)},null,8,["model-value","onUpdate:modelValue"]),e.createVNode(q,{label:"pageSize","model-value":t.pageSize,min:1,"onUpdate:modelValue":s=>l("pageSize",s)},null,8,["model-value","onUpdate:modelValue"]),e.createVNode(e.unref(f.SwitchSetting),{label:"循环 (loop)","model-value":t.loop,"onUpdate:modelValue":s=>l("loop",s)},null,8,["model-value","onUpdate:modelValue"])]),_:1},16))}}),H={type:"inq-list",category:"inputControl",label:"列表",icon:"📋",isContainer:!1,initialSchema:()=>({id:C("inq_list"),type:"inq-list",field:"list_"+Math.random().toString(36).slice(2,6),props:{label:"单选列表",message:"请选择一个选项",promptType:"list",placeholder:"请选择",defaultChoice:"opt_1",choices:[V("选项 1","opt_1"),V("选项 2","opt_2")],pageSize:7,loop:!0,prefix:"",suffix:"",required:!0,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:Ye,runtime:z,config:L,locales:{"zh-CN":{control:{"inq-list":{label:"列表"}}},"en-US":{control:{"inq-list":{label:"List"}}}}},ve={type:"inq-rawlist",category:"inputControl",label:"序号列表",icon:"🔢",isContainer:!1,initialSchema:()=>({id:C("inq_rawlist"),type:"inq-rawlist",field:"rawlist_"+Math.random().toString(36).slice(2,6),props:{label:"数字选择题",message:"请输入序号选择",promptType:"rawlist",placeholder:"输入编号",defaultChoice:"opt_a",choices:[V("Alpha","opt_a"),V("Beta","opt_b"),V("Gamma","opt_c")],pageSize:5,loop:!1,prefix:"#",suffix:"",required:!0,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean},choices:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s,choices:m}=e.toRefs(n);return(d,c)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),options:e.unref(m),"type-label":"Inquirer Raw List","is-active":e.unref(s),onSelect:c[0]||(c[0]=p=>a("select"))},null,8,["label","message","description","options","is-active"]))}}),runtime:z,config:L,locales:{"zh-CN":{control:{"inq-rawlist":{label:"序号列表"}}},"en-US":{control:{"inq-rawlist":{label:"Raw List"}}}}},et={type:"inq-expand",category:"inputControl",label:"扩展列表",icon:"🧩",isContainer:!1,initialSchema:()=>({id:C("inq_expand"),type:"inq-expand",field:"expand_"+Math.random().toString(36).slice(2,6),props:{label:"扩展选择",message:"通过按键选择",promptType:"expand",placeholder:"按键选择",defaultChoice:"opt_1",choices:[V("继续","opt_1"),V("跳过","opt_2"),V("退出","opt_3")],pageSize:5,loop:!1,prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean},choices:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s,choices:m}=e.toRefs(n);return(d,c)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),options:e.unref(m),"type-label":"Inquirer Expand","is-active":e.unref(s),onSelect:c[0]||(c[0]=p=>a("select"))},null,8,["label","message","description","options","is-active"]))}}),runtime:z,config:L,locales:{"zh-CN":{control:{"inq-expand":{label:"扩展列表"}}},"en-US":{control:{"inq-expand":{label:"Expand"}}}}},tt=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean},choices:{}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s,choices:m}=e.toRefs(n);return(d,c)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),options:e.unref(m),"type-label":"Inquirer Checkbox","is-active":e.unref(s),onSelect:c[0]||(c[0]=p=>a("select"))},null,8,["label","message","description","options","is-active"]))}}),nt={class:"checkbox-wrapper"},ot={key:0,class:"affix"},lt={key:1,class:"affix"},at=x(e.defineComponent({__name:"runtime",props:{modelValue:{},disabled:{type:Boolean},choices:{},prefix:{},suffix:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>(n.choices??[]).map(r=>({label:r.label||r.value,value:r.value})));return(r,l)=>(e.openBlock(),e.createElementBlock("div",nt,[t.prefix?(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(t.prefix),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(h.ElCheckboxGroup),{class:"checkbox-runtime","model-value":t.modelValue||[],disabled:t.disabled,"onUpdate:modelValue":l[0]||(l[0]=s=>a("update:modelValue",s))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,s=>(e.openBlock(),e.createBlock(e.unref(h.ElCheckbox),{key:s.value,label:s.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["model-value","disabled"]),t.suffix?(e.openBlock(),e.createElementBlock("span",lt,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-86b287ae"]]),it={class:"multi-default"},K={type:"inq-checkbox",category:"inputControl",label:"多选",icon:"☑️",isContainer:!1,initialSchema:()=>({id:C("inq_checkbox"),type:"inq-checkbox",field:"checkbox_"+Math.random().toString(36).slice(2,6),props:{label:"多选题",message:"选择一个或多个选项",promptType:"checkbox",choices:[V("JavaScript","js"),V("TypeScript","ts"),V("Rust","rust")],defaultChoices:["js"],prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:tt,runtime:at,config:x(e.defineComponent({__name:"config",props:{label:{},field:{},message:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},choices:{},defaultChoices:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{onUpdate:r[0]||(r[0]=l=>a("update",l))}),{defaultValue:e.withCtx(({updateProp:l})=>[e.createElementVNode("div",it,[r[1]||(r[1]=e.createElementVNode("label",null,"默认选中值",-1)),e.createVNode(e.unref(h.ElSelect),{multiple:"","collapse-tags":"","collapse-tags-tooltip":"","model-value":t.defaultChoices||[],"onUpdate:modelValue":s=>l("defaultChoices",s)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.choices||[],s=>(e.openBlock(),e.createBlock(e.unref(h.ElOption),{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","onUpdate:modelValue"])])]),extra:e.withCtx(({updateProp:l})=>[e.createVNode(e.unref(f.OptionsEditor),{label:"选项","model-value":t.choices,"onUpdate:modelValue":s=>l("choices",s)},null,8,["model-value","onUpdate:modelValue"])]),_:1},16))}}),[["__scopeId","data-v-c571b549"]]),locales:{"zh-CN":{control:{"inq-checkbox":{label:"多选"}}},"en-US":{control:{"inq-checkbox":{label:"Checkbox"}}}}},rt=e.defineComponent({__name:"designer",props:{label:{},message:{},description:{},isActive:{type:Boolean}},emits:["select"],setup(t,{emit:o}){const n=t,a=o,{label:i,message:r,description:l,isActive:s}=e.toRefs(n);return(m,d)=>(e.openBlock(),e.createBlock(B,{label:e.unref(i),message:e.unref(r),description:e.unref(l),"type-label":"Inquirer Editor","is-active":e.unref(s),onSelect:d[0]||(d[0]=c=>a("select"))},null,8,["label","message","description","is-active"]))}}),st={class:"editor-runtime"},ct={key:0,class:"affix"},dt={key:1,class:"affix"},pt={key:2,class:"transformer-preview"},W={type:"inq-editor",category:"inputControl",label:"长文本",icon:"📝",isContainer:!1,initialSchema:()=>({id:C("inq_editor"),type:"inq-editor",field:"editor_"+Math.random().toString(36).slice(2,6),props:{label:"长文本",message:"请输入长文本",promptType:"editor",placeholder:"多行输入",rows:6,defaultValue:"",prefix:"",suffix:"",required:!1,whenExpression:"",validateExpression:"",filterExpression:"",transformerExpression:""}}),designer:rt,runtime:x(e.defineComponent({__name:"runtime",props:{modelValue:{},placeholder:{},rows:{},disabled:{type:Boolean},prefix:{},suffix:{},displayValue:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>n.displayValue===void 0?!1:n.displayValue!==n.modelValue);return(r,l)=>(e.openBlock(),e.createElementBlock("div",st,[t.prefix?(e.openBlock(),e.createElementBlock("span",ct,e.toDisplayString(t.prefix),1)):e.createCommentVNode("",!0),e.createVNode(e.unref(h.ElInput),{type:"textarea",rows:t.rows||6,"model-value":t.modelValue??"",placeholder:t.placeholder,disabled:t.disabled,"onUpdate:modelValue":l[0]||(l[0]=s=>a("update:modelValue",s??""))},null,8,["rows","model-value","placeholder","disabled"]),t.suffix?(e.openBlock(),e.createElementBlock("span",dt,e.toDisplayString(t.suffix),1)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("p",pt,e.toDisplayString(t.displayValue),1)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-bd13db5a"]]),config:e.defineComponent({__name:"config",props:{label:{},field:{},message:{},placeholder:{},defaultValue:{},prefix:{},suffix:{},required:{type:Boolean},whenExpression:{},validateExpression:{},filterExpression:{},transformerExpression:{},rows:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o;return(i,r)=>(e.openBlock(),e.createBlock(w,e.mergeProps(n,{onUpdate:r[0]||(r[0]=l=>a("update",l))}),{extra:e.withCtx(({updateProp:l})=>[e.createVNode(q,{label:"行数","model-value":t.rows,min:2,max:20,"onUpdate:modelValue":s=>l("rows",s)},null,8,["model-value","onUpdate:modelValue"])]),_:1},16))}}),locales:{"zh-CN":{control:{"inq-editor":{label:"长文本"}}},"en-US":{control:{"inq-editor":{label:"Editor"}}}}},M=[j,G,Y,P,H,ve,et,K,W];function O(){f.registry.replaceAll(M)}function S(t,o){const n=t.initialSchema();return{...n,...o,props:{...n.props,...o.props}}}function J(){return[S(j,{field:"fullName",props:{label:"姓名",message:"请输入您的姓名",placeholder:"张三",description:"该信息将用于生成问候语"}}),S(G,{field:"accountPassword",props:{label:"账户密码",message:"请输入账户密码",description:"密码不会被保存在示例应用中"}}),S(Y,{field:"age",props:{label:"年龄",message:"请输入年龄",min:0,max:120,required:!0,description:"用于计算问卷分层,必填"}}),S(P,{field:"allowContact",props:{label:"是否允许联系",message:"我们可以通过邮件联系您吗?",defaultValue:!0,description:"若选择是,将会收到提效工具邮件"}}),S(H,{field:"favoriteStack",props:{label:"技术栈",message:"请选择主要技术栈",defaultChoice:"ts",description:"用于统计语言偏好"}}),S(K,{field:"tools",props:{label:"常用工具",message:"请选择常用工具",defaultChoices:["git","eslint"],choices:[{label:"Git",value:"git"},{label:"ESLint",value:"eslint"},{label:"Vite",value:"vite"},{label:"Vitest",value:"vitest"}],description:"可多选"}}),S(W,{field:"bio",props:{label:"自我介绍",message:"请输入自我介绍",rows:5,description:"可用于在 inquirer 中展示更丰富的信息"}})]}const X=e.defineComponent({name:"InquirerFormDesigner",__name:"InquirerFormDesigner",props:{engine:{},seedSample:{type:Boolean,default:!1},autoRegisterControls:{type:Boolean,default:!0}},setup(t){const o=t,n=new f.SchemaEngine,a=e.computed(()=>o.engine??n);let i=null;const r=o.autoRegisterControls;return r&&(i=[...f.registry.getAll()],O()),o.seedSample&&a.value.getSchema().controls.length===0&&(a.value.getSchema().controls=J()),e.onBeforeUnmount(()=>{r&&i&&f.registry.replaceAll(i)}),(l,s)=>(e.openBlock(),e.createBlock(e.unref(f.FormDesigner),{engine:a.value},null,8,["engine"]))}}),mt={"inq-input":"input","inq-password":"password","inq-number":"number","inq-confirm":"confirm","inq-list":"list","inq-rawlist":"rawlist","inq-expand":"expand","inq-checkbox":"checkbox","inq-editor":"editor"},ft=["list","rawlist","expand","checkbox"];function Z(t){const o=t.props?.promptType;return o||(mt[t.type]??null)}function ut(t){return ft.includes(t)}function v(t){const o=Z(t);if(!o)return;const n=t.props||{};if(o==="confirm")return typeof n.defaultValue=="boolean"?n.defaultValue:!1;if(o==="checkbox")return Array.isArray(n.defaultChoices)?n.defaultChoices:Array.isArray(n.defaultValue)?n.defaultValue:[];if(o==="number"){const a=Number(n.defaultValue);return Number.isNaN(a)?void 0:a}if((o==="list"||o==="rawlist"||o==="expand")&&typeof n.defaultChoice=="string")return n.defaultChoice;if(n.defaultValue!==void 0&&n.defaultValue!==null)return n.defaultValue;if(o==="input"||o==="password"||o==="editor")return""}function R(t,o){if(!(!t||typeof t!="string"))try{return new Function("input","answers",t)(o.input,o.answers)}catch(n){console.warn("[inquirer-demo] 表达式执行失败:",n);return}}function ht(t,o){const n=t.props?.whenExpression;if(!n)return!0;const a=R(n,{input:o[t.field||""],answers:o});return typeof a=="boolean"?a:!0}function xt(t,o,n){const a=t.props?.filterExpression;if(!a)return o;const i=R(a,{input:o,answers:n});return i===void 0?o:i}function gt(t,o,n){const a=t.props?.transformerExpression;if(!a)return o;const i=R(a,{input:o,answers:n});return i===void 0?o:i}function ee(t,o,n){const a=t.props?.validateExpression;if(!a&&!t.props?.required)return null;if(a){const i=R(a,{input:o,answers:n});if(i===!0||i===void 0)return null;if(typeof i=="string")return i}else if(t.props?.required){if(o==null||o==="")return"该问题为必填项";if(Array.isArray(o)&&o.length===0)return"至少选择一项"}return null}function bt(t,o){if(!o.field||t[o.field]!==void 0)return;const n=v(o);n!==void 0&&(t[o.field]=n)}function Vt(t){if(typeof t.props?.description=="string"&&t.props.description.trim().length>0)return t.props.description.trim();if(typeof t.props?.message=="string"&&t.props.message.trim().length>0)return t.props.message.trim()}const kt={key:0,class:"inquirer-container"},yt={key:0,class:"node-description"},Et={key:1,class:"node-error"},Bt=x(e.defineComponent({name:"InquirerRuntimeNode",__name:"InquirerRuntimeNode",props:{node:{},formData:{}},emits:["update"],setup(t,{emit:o}){const n=t,a=o,i=e.computed(()=>f.registry.get(n.node.type)),r=e.computed(()=>i.value?.runtime||null),l=e.computed(()=>n.formData||{}),s=e.computed(()=>{if(n.node.field)return l.value[n.node.field]}),m=e.computed(()=>Vt(n.node)),d=e.ref(null),c=e.computed(()=>ht(n.node,l.value));e.watch(c,y=>{!y&&n.node.field&&l.value[n.node.field]!==void 0&&(a("update",n.node.field,void 0),d.value=null)},{immediate:!0}),e.watch(()=>s.value,y=>{d.value=ee(n.node,y,l.value)},{immediate:!0});function p(y){if(!n.node.field)return;const _=xt(n.node,y,l.value);a("update",n.node.field,_),d.value=ee(n.node,_,l.value)}const $=e.computed(()=>typeof n.node.props?.message=="string"&&n.node.props.message.trim()?n.node.props.message:typeof n.node.props?.label=="string"&&n.node.props.label.trim()?n.node.props.label:n.node.field||"未命名控件"),D=e.computed(()=>gt(n.node,s.value,l.value)),U=e.computed(()=>i.value?.isContainer??!1);function k(y,_){a("update",y,_)}return(y,_)=>{const A=e.resolveComponent("InquirerRuntimeNode",!0);return c.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[U.value?(e.openBlock(),e.createElementBlock("div",kt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.normalizeProps(e.guardReactiveProps(t.node.props)),{default:e.withCtx(()=>[t.node.children&&t.node.children.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.node.children,E=>(e.openBlock(),e.createBlock(A,{key:E.id,node:E,formData:t.formData,onUpdate:k},null,8,["node","formData"]))),128)):e.createCommentVNode("",!0)]),_:1},16))])):(e.openBlock(),e.createBlock(e.unref(f.FormItemWrapper),{key:1,label:$.value},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps(t.node.props,{modelValue:s.value,displayValue:D.value,"onUpdate:modelValue":p}),{default:e.withCtx(()=>[t.node.children&&t.node.children.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.node.children,E=>(e.openBlock(),e.createBlock(A,{key:E.id,node:E,formData:t.formData,onUpdate:k},null,8,["node","formData"]))),128)):e.createCommentVNode("",!0)]),_:1},16,["modelValue","displayValue"])),m.value?(e.openBlock(),e.createElementBlock("p",yt,e.toDisplayString(m.value),1)):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("p",Et,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)]),_:1},8,["label"]))],64)):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-762f3565"]]),Ct={class:"inquirer-web-runtime"},_t={key:0,class:"runtime-empty"},F=x(e.defineComponent({name:"InquirerFormRuntime",__name:"InquirerFormRuntime",props:{schema:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,a=o,i=e.ref({...n.modelValue||{}});e.watch(()=>n.modelValue,m=>{i.value={...m||{}}},{deep:!0}),e.watch(()=>n.schema.controls,()=>{r()},{deep:!0,immediate:!0});function r(){l(n.schema.controls),a("update:modelValue",{...i.value})}function l(m){m&&m.forEach(d=>{bt(i.value,d),d.children?.length&&l(d.children)})}function s(m,d){d===void 0?delete i.value[m]:i.value[m]=d,a("update:modelValue",{...i.value})}return(m,d)=>(e.openBlock(),e.createElementBlock("div",Ct,[e.createVNode(e.unref(h.ElForm),{class:"form-content","label-position":"top",model:i.value},{default:e.withCtx(()=>[!t.schema.controls||t.schema.controls.length===0?(e.openBlock(),e.createElementBlock("div",_t," 暂无表单内容 ")):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.schema.controls,c=>(e.openBlock(),e.createBlock(Bt,{key:c.id,node:c,formData:i.value,onUpdate:s},null,8,["node","formData"]))),128))]),_:1},8,["model"])]))}}),[["__scopeId","data-v-2ef727bc"]]);function te(t,o={}){const n=[];function a(i){i&&i.forEach(r=>{const l=wt(r,o);l&&n.push(l),r.children?.length&&a(r.children)})}return a(t.controls),n}function wt(t,o){const n=Z(t);if(!n||t.props?.disabled&&!o.includeDisabled)return null;const a=t.field?.trim()||t.props?.alias||t.id,i=t.props?.message?.trim()||t.props?.label||a,r=v(t),l={type:n,name:a,message:i,default:r,prefix:N(t.props?.prefix),suffix:N(t.props?.suffix),pageSize:I(t.props?.pageSize),loop:typeof t.props?.loop=="boolean"?t.props.loop:void 0,whenExpression:N(t.props?.whenExpression),validateExpression:Nt(t),filterExpression:N(t.props?.filterExpression),transformerExpression:N(t.props?.transformerExpression),mask:St(t.props),choices:qt(n,t.props),metadata:{schemaNodeId:t.id,label:t.props?.label,placeholder:t.props?.placeholder,required:!!t.props?.required,inquirerType:n,group:t.props?.groupLabel,description:t.props?.description}};return n==="checkbox"&&(l.metadata={...l.metadata,defaultChoices:Array.isArray(t.props?.defaultChoices)?t.props.defaultChoices:void 0}),n==="number"&&(l.metadata={...l.metadata,min:I(t.props?.min),max:I(t.props?.max),step:I(t.props?.step)}),n==="editor"&&(l.metadata={...l.metadata,rows:I(t.props?.rows)}),l}function St(t={}){if(t.maskEnabled)return typeof t.maskSymbol=="string"&&t.maskSymbol.trim().length>0?t.maskSymbol:!0}function Nt(t){const o=N(t.props?.validateExpression);if(o)return o;if(t.props?.required)return"return input ? true : '该问题为必填项'"}function qt(t,o={}){if(!ut(t))return;const n=o.choices;return!Array.isArray(n)||n.length===0?[]:n.filter(a=>typeof a?.label=="string"&&typeof a?.value=="string").map(a=>({name:a.label,value:a.value,short:N(a.short)}))}function N(t){if(typeof t!="string")return;const o=t.trim();return o.length?o:void 0}function I(t){if(t==null)return;const o=Number(t);return Number.isNaN(o)?void 0:o}const $t={class:"inquirer-demo"},Ut={class:"demo-workspace"},It={class:"workspace-tabs"},Dt=["onClick"],Tt={class:"workspace-panel designer-panel"},Rt={class:"workspace-panel runtime-panel"},At={class:"runtime-json"},zt={class:"workspace-panel export-panel"},Lt={class:"json-viewer"},Mt={class:"code-snippet"},Ot={class:"workspace-panel docs-panel"},Jt={class:"callout-controls"},Ft={class:"type"},Qt={class:"meta"},jt=x(e.defineComponent({__name:"InquirerFormPlayground",setup(t){const o=new f.SchemaEngine;o.updateInfo({title:"Inquirer 表单定义",description:"通过拖拽生成 Inquirer QuestionCollection"});const n=[...f.registry.getAll()];O(),e.onMounted(()=>{o.getSchema().controls.length||D()}),e.onBeforeUnmount(()=>{f.registry.replaceAll(n)});const a=e.ref({}),i=e.ref(0),r=e.ref(0),l=[{key:"designer",label:"可视化设计器",desc:"拖拽字段,构建 Schema"},{key:"runtime",label:"运行态预览",desc:"实时数据与交互"},{key:"export",label:"Inquirer 输出",desc:"生成 QuestionCollection + 调用"},{key:"docs",label:"说明",desc:"当前已注册控件"}],s=e.ref(l[0]?.key??"designer"),m=e.computed(()=>te(o.getSchema())),d=e.computed(()=>JSON.stringify(m.value,null,2)),c=e.computed(()=>JSON.stringify(a.value,null,2));function p(){i.value++,r.value++}function $(E){const g=o.getSchema().controls;g.splice(0,g.length,...E),o.selectNode(void 0),o.snapshot("update"),p()}function D(){$(J())}function U(){$([]),a.value={}}async function k(E,g){try{await navigator.clipboard.writeText(E),alert(`${g} 已复制到剪贴板`)}catch(b){console.warn("clipboard failed",b)}}function y(){k(f.serialize(o.getSchema()),"Schema JSON")}function _(){k(d.value,"Inquirer JSON")}const A=e.computed(()=>`import inquirer from 'inquirer'
|
|
4
|
+
import { schemaToInquirer } from 'inquirer-form'
|
|
5
|
+
|
|
6
|
+
const questions = schemaToInquirer(schema)
|
|
7
|
+
const answers = await inquirer.prompt(questions)
|
|
8
|
+
console.log(answers)`);return(E,g)=>(e.openBlock(),e.createElementBlock("div",$t,[e.createElementVNode("section",{class:"callout-panel"},[e.createElementVNode("div",{class:"callout-header"},[g[1]||(g[1]=e.createElementVNode("div",null,[e.createElementVNode("h1",null,"🧭 Inquirer 表单调用示例")],-1)),e.createElementVNode("div",{class:"callout-actions"},[e.createElementVNode("button",{onClick:D},"生成示例表单"),e.createElementVNode("button",{onClick:U},"清空表单"),e.createElementVNode("button",{onClick:y},"复制 Schema JSON"),e.createElementVNode("button",{onClick:_},"复制 Inquirer JSON")])])]),e.createElementVNode("main",Ut,[e.createElementVNode("div",It,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,b=>e.createElementVNode("button",{key:b.key,class:e.normalizeClass(["tab-item",{active:b.key===s.value}]),onClick:bn=>s.value=b.key},[e.createElementVNode("span",null,e.toDisplayString(b.label),1),e.createElementVNode("small",null,e.toDisplayString(b.desc),1)],10,Dt)),64))]),e.withDirectives(e.createElementVNode("section",Tt,[(e.openBlock(),e.createBlock(e.unref(f.FormDesigner),{key:i.value,engine:e.unref(o)},null,8,["engine"]))],512),[[e.vShow,s.value==="designer"]]),e.withDirectives(e.createElementVNode("section",Rt,[(e.openBlock(),e.createBlock(F,{key:r.value,schema:e.unref(o).getSchema(),modelValue:a.value,"onUpdate:modelValue":g[0]||(g[0]=b=>a.value=b)},null,8,["schema","modelValue"])),e.createElementVNode("div",At,[g[2]||(g[2]=e.createElementVNode("header",null,"FormData(实时)",-1)),e.createElementVNode("pre",null,e.toDisplayString(c.value),1)])],512),[[e.vShow,s.value==="runtime"]]),e.withDirectives(e.createElementVNode("section",zt,[e.createElementVNode("div",{class:"panel-header"},[g[3]||(g[3]=e.createElementVNode("div",null,null,-1)),e.createElementVNode("button",{class:"btn-copy",onClick:_},"复制 JSON")]),e.createElementVNode("pre",Lt,e.toDisplayString(d.value),1),e.createElementVNode("div",Mt,[g[4]||(g[4]=e.createElementVNode("header",null,"调用示例",-1)),e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(A.value),1)])])],512),[[e.vShow,s.value==="export"]]),e.withDirectives(e.createElementVNode("section",Ot,[e.createElementVNode("div",Jt,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(M),b=>(e.openBlock(),e.createElementBlock("li",{key:b.type},[e.createElementVNode("span",Ft,e.toDisplayString(b.label),1),e.createElementVNode("span",Qt,e.toDisplayString(b.type),1)]))),128))])])],512),[[e.vShow,s.value==="docs"]])])]))}}),[["__scopeId","data-v-cdc491b8"]]),Gt={install(t){t.component("InquirerFormDesigner",X),t.component("InquirerFormRuntime",F)}};u.InquirerFormDesigner=X,u.InquirerFormPlayground=jt,u.InquirerFormRuntime=F,u.createInquirerSampleControls=J,u.default=Gt,u.inquirerControls=M,u.registerInquirerControls=O,u.schemaToInquirer=te,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "inquirer-form",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Inquirer.js oriented designer/runtime components built on agilebuilder-form",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"vue3",
|
|
7
|
+
"inquirer",
|
|
8
|
+
"form-builder",
|
|
9
|
+
"schema"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"private": false,
|
|
14
|
+
"main": "./dist/inquirer-form.umd.js",
|
|
15
|
+
"module": "./dist/inquirer-form.es.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/inquirer-form.es.js",
|
|
21
|
+
"require": "./dist/inquirer-form.umd.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"README.md",
|
|
27
|
+
"LICENSE"
|
|
28
|
+
],
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"dev": "vite",
|
|
34
|
+
"build": "run-p type-check \"build-only {@}\" --",
|
|
35
|
+
"preview": "vite preview",
|
|
36
|
+
"test:unit": "vitest",
|
|
37
|
+
"build-only": "vite build",
|
|
38
|
+
"type-check": "vue-tsc --build",
|
|
39
|
+
"docs:dev": "vitepress dev docs",
|
|
40
|
+
"docs:build": "vitepress build docs",
|
|
41
|
+
"docs:preview": "vitepress preview docs"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"element-plus": "^2.11.7",
|
|
45
|
+
"vue": "^3.5.0",
|
|
46
|
+
"vuedraggable": "^4.1.0"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@element-plus/icons-vue": "^2.3.2",
|
|
50
|
+
"agilebuilder-form": "file:../ag_form",
|
|
51
|
+
"vue-i18n": "^10.0.8"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@tsconfig/node22": "^22.0.2",
|
|
55
|
+
"@types/jsdom": "^27.0.0",
|
|
56
|
+
"@types/node": "^22.18.11",
|
|
57
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
58
|
+
"@vue/test-utils": "^2.4.6",
|
|
59
|
+
"@vue/tsconfig": "^0.8.1",
|
|
60
|
+
"jsdom": "^27.0.1",
|
|
61
|
+
"npm-run-all2": "^8.0.4",
|
|
62
|
+
"sass": "^1.93.2",
|
|
63
|
+
"typescript": "~5.9.0",
|
|
64
|
+
"vite": "^7.1.11",
|
|
65
|
+
"vite-plugin-dts": "^4.5.4",
|
|
66
|
+
"vite-plugin-vue-devtools": "^8.0.3",
|
|
67
|
+
"vitepress": "^1.5.0",
|
|
68
|
+
"vitest": "^3.2.4",
|
|
69
|
+
"vue": "^3.5.22",
|
|
70
|
+
"vue-tsc": "^3.1.1"
|
|
71
|
+
}
|
|
72
|
+
}
|