@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 26.6 kB
JavaScript
(function(x,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("lodash-es"),require("../button-edit/index.umd.js"),require("../notify/index.umd.js"),require("../event-parameter/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../button-edit/index.umd.js","../notify/index.umd.js","../event-parameter/index.umd.js","../common/index.umd.js"],s):(x=typeof globalThis<"u"?globalThis:x||self,s(x["json-editor"]={},x.Vue,x.LodashES,x.FButtonEdit,x.notify,x.FEventParameter,x.common))})(this,function(x,s,B,J,ne,z,_){"use strict";function L(e,t){let n;function l(i){const{properties:a,title:f,ignore:r}=i,o=r&&Array.isArray(r),c=Object.keys(a).reduce((v,T)=>((!o||!r.find(P=>P===T))&&(v[T]=a[T].type==="object"&&a[T].properties?l(a[T]):B.cloneDeep(a[T].default)),v),{});if(f&&(!o||!r.find(v=>v==="id"))){const v=f.toLowerCase().replace(/-/g,"_");c.id=`${v}_${Math.random().toString().slice(2,6)}`}return c}function b(i){const{properties:a,title:f,required:r}=i;if(r&&Array.isArray(r)){const o=r.reduce((c,v)=>(c[v]=a[v].type==="object"&&a[v].properties?l(a[v]):B.cloneDeep(a[v].default),c),{});if(f&&r.find(c=>c==="id")){const c=f.toLowerCase().replace(/-/g,"_");o.id=`${c}_${Math.random().toString().slice(2,6)}`}return o}return{type:f}}function F(i,a={},f){const r=e[i];if(r){let o=b(r);const c=t[i];return o=c?c({getSchemaByType:F},o,a,f):o,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(o),o}return null}function C(i,a){const f=l(a);return Object.keys(f).reduce((r,o)=>(Object.prototype.hasOwnProperty.call(i,o)&&(r[o]&&B.isPlainObject(r[o])&&B.isPlainObject(i[o]||!i[o])?Object.assign(r[o],i[o]||{}):r[o]=i[o]),r),f),f}function j(i,a){return Object.keys(i).filter(r=>i[r]!=null).reduce((r,o)=>{if(a.has(o)){const c=a.get(o);if(typeof c=="string")r[c]=i[o];else{const v=c(o,i[o],i);Object.assign(r,v)}}else r[o]=i[o];return r},{})}function h(i,a,f=new Map){const r=C(i,a);return j(r,f)}function m(i){var f;const a=i.type;if(a){const r=e[a];if(!r)return i;const o=C(i,r),c=((f=i.editor)==null?void 0:f.type)||"";if(c){const v=e[c],T=C(i.editor,v);o.editor=T}return o}return i}function g(i){n=i}return{getSchemaByType:F,resolveSchemaWithDefaultValue:m,resolveSchemaToProps:h,mappingSchemaToProps:j,setDesignerContext:g}}const I={},G={},{getSchemaByType:Qe,resolveSchemaWithDefaultValue:re,resolveSchemaToProps:oe,mappingSchemaToProps:ie,setDesignerContext:Xe}=L(I,G);function ae(e={}){function t(m,g,i,a){if(typeof i=="number")return a[m].length===i;if(typeof i=="object"){const f=Object.keys(i)[0],r=i[f];if(f==="not")return Number(a[m].length)!==Number(r);if(f==="moreThan")return Number(a[m].length)>=Number(r);if(f==="lessThan")return Number(a[m].length)<=Number(r)}return!1}function n(m,g,i,a){return a[m]&&a[m].propertyValue&&String(a[m].propertyValue.value)===String(i)}const l=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((m,g)=>(m.set(g,e[g]),m),l);function b(m,g){const i=m;return typeof g=="number"?[{target:i,operator:"length",param:null,value:Number(g)}]:typeof g=="boolean"?[{target:i,operator:"getProperty",param:m,value:!!g}]:typeof g=="object"?Object.keys(g).map(a=>{if(a==="length")return{target:i,operator:"length",param:null,value:g[a]};const f=a,r=g[a];return{target:i,operator:"getProperty",param:f,value:r}}):[]}function F(m){return Object.keys(m).reduce((i,a)=>{const f=b(a,m[a]);return i.push(...f),i},[])}function C(m,g){if(l.has(m.operator)){const i=l.get(m.operator);return i&&i(m.target,m.param,m.value,g)||!1}return!1}function j(m,g){return F(m).reduce((f,r)=>f&&C(r,g),!0)}function h(m,g){const i=Object.keys(m),a=i.includes("allOf"),f=i.includes("anyOf"),r=a||f,v=(r?m[r?a?"allOf":"anyOf":"allOf"]:[m]).map(P=>j(P,g));return a?!v.includes(!1):v.includes(!0)}return{parseValueSchema:h}}const le={convertTo:(e,t,n,l)=>{e.appearance||(e.appearance={}),e.appearance[t]=n},convertFrom:(e,t,n)=>e.appearance?e.appearance[t]:e[t]},se={convertFrom:(e,t,n)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},ce={convertTo:(e,t,n,l)=>{e.editor&&(e.editor[t]=n)},convertFrom:(e,t,n)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},ue={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},de={convertFrom:(e,t,n)=>{var b;const l=e.editor&&e.editor[t]?e.editor[t]:e[t];return((b=ue[l])==null?void 0:b.name)||l}},fe={convertTo:(e,t,n,l)=>{e[t]=e[t]},convertFrom:(e,t,n)=>e.editor?n.getRealEditorType(e.editor.type):""},me={convertTo:(e,t,n,l)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=n:e.formatter={[t]:n})},convertFrom:(e,t,n)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},pe={convertTo:(e,t,n,l)=>{e.command?e.command[t]=n:e.command={[t]:n},t==="enable"&&n&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,n)=>e.command&&t==="enable"?e.command.enable:""},ge={convertTo:(e,t,n,l)=>{e.column?e.column[t]=n:e.column={[t]:n},t==="fitColumns"&&n&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,n)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},ve={convertTo:(e,t,n,l)=>{e.summary?e.summary[t]=n:e.summary={[t]:n},t==="enable"&&n&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:n,groupFields:[]})},convertFrom:(e,t,n)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},ye={convertTo:(e,t,n,l)=>{e.group?e.group[t]=n:e.group={[t]:n},t==="enable"&&n&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:n,groupFields:[],showSummary:!1})},convertFrom:(e,t,n)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},be={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,n)=>{if(n&&n.length>0){const l=n[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=l.bindingField,e.binding.field=l.id,e.binding.fullPath=l.path,e.path=l.bindingPath}}},Ce={convertTo:(e,t,n,l)=>{e.pagination||(e.pagination={}),e.pagination[t]=n},convertFrom:(e,t,n)=>e.pagination?e.pagination[t]:e[t]},Te={convertTo:(e,t,n,l)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=n},convertFrom:(e,t,n)=>e.rowNumber?e.rowNumber[t]:e[t]},Fe={convertTo:(e,t,n,l)=>{e.selection||(e.selection={}),e.selection[t]=n},convertFrom:(e,t,n)=>e.selection?e.selection[t]:e[t]},Se={convertFrom:(e,t,n)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},je={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,n)=>{e[t]=n}},he={convertTo:(e,t,n,l)=>{e.size||(e.size={}),e.size[t]=n},convertFrom:(e,t,n)=>e.size?e.size[t]:e[t]},Pe={convertFrom:(e,t,n)=>{var l,b;return(l=e.formatter)!=null&&l.data&&t==="formatterEnumData"&&!e.formatterEnumData?(b=e.formatter)==null?void 0:b.data:e.formatterEnumData}},xe={convertTo:(e,t,n,l)=>{e.sort||(e.sort={}),e.sort[t]=n},convertFrom:(e,t,n)=>{var l,b;if(t==="mode")return((l=e.sort)==null?void 0:l.mode)||"client";if(t==="multiSort")return!!((b=e.sort)!=null&&b.multiSort)}},Oe={convertTo:(e,t,n,l)=>{e.filter||(e.filter={}),e.filter[t]=n},convertFrom:(e,t,n)=>{var l;if(t==="mode")return((l=e.filter)==null?void 0:l.mode)||"client"}},Ve={convertTo:(e,t,n,l)=>{e.rowOption?e.rowOption[t]=n:e.rowOption={[t]:n}},convertFrom:(e,t,n)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function U(e,t,n){const l=new Map([["/converter/appearance.converter",le],["/converter/buttons.converter",se],["/converter/property-editor.converter",ce],["/converter/items-count.converter",Se],["/converter/type.converter",de],["/converter/change-editor.converter",fe],["/converter/change-formatter.converter",me],["/converter/column-command.converter",pe],["/converter/column-option.converter",ge],["/converter/summary.converter",ve],["/converter/group.converter",ye],["/converter/form-group-label.converter",je],["/converter/field-selector.converter",be],["/converter/pagination.converter",Ce],["/converter/row-number.converter",Te],["/converter/grid-selection.converter",Fe],["/converter/size.converter",he],["/converter/change-formatter-enum.converter",Pe],["/converter/grid-sort.converter",xe],["/converter/grid-filter.converter",Oe],["/converter/row-option.converter",Ve]]),b=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}]]),F=ae();function C(r,o){return()=>F.parseValueSchema(r,o)}function j(r,o,c){return r.includes("visible")&&o.visible!==void 0?typeof o.visible=="boolean"?()=>!!o.visible:o.visible===void 0?!0:C(o.visible,c):()=>!0}function h(r,o,c){return r.includes("readonly")&&o.readonly!==void 0?typeof o.readonly=="boolean"?()=>!!o.readonly:C(o.readonly,c):()=>!1}function m(r,o){const c=r.$converter||o;return typeof c=="string"&&c&&l.has(c)?l.get(c)||null:c||null}function g(r,o,c,v,T,P="",V=""){return Object.keys(r).map(d=>{const y=s.ref(1),S=d,p=r[d],O=Object.keys(p),M=p.title,w=p.type,k=b.get(w)||{type:"input-group",enableClear:!1},E=p.editor?Object.assign({},k,p.editor):Object.assign({},k),q=j(O,p,o),R=h(O,p,o);E.readonly=E.readonly===void 0?R():E.readonly;const H=p.type==="cascade"?g(p.properties,o,c,v,T,P,V):[],_e=!0;let N=m(p,V);const Le=s.computed({get(){if(y.value){if(["class","style"].find(Ye=>Ye===S)&&!N&&(N=l.get("/converter/appearance.converter")||null),N&&N.convertFrom)return N.convertFrom(c,d,T,P);const D=c[d];return Object.prototype.hasOwnProperty.call(p,"defaultValue")&&(D===void 0||typeof D=="string"&&D==="")?p.type==="boolean"?p.defaultValue:p.defaultValue||"":D}return null},set(D){y.value+=1,N&&N.convertTo?(N.convertTo(v,d,D,T,P),N.convertTo(c,d,D,T,P)):(v[d]=D,c[d]=D)}}),{refreshPanelAfterChanged:Ie,description:Ge,isExpand:Ue,parentPropertyID:We}=p,te={propertyID:S,propertyName:M,propertyType:w,propertyValue:Le,editor:E,visible:q,readonly:R,cascadeConfig:H,hideCascadeTitle:_e,refreshPanelAfterChanged:Ie,description:Ge,isExpand:Ue,parentPropertyID:We};return o[S]=te,te})}function i(r,o,c={}){const v={},T=e[r];return T&&T.categories?Object.keys(T.categories).map(V=>{const u=T.categories[V],d=u==null?void 0:u.title,y=g(u.properties||{},v,{},c,o);return{categoryId:V,categoryName:d,properties:y}}):[]}function a(r,o,c,v,T=""){const P=o.$ref.schema,V=o.$ref.converter,u=c[P],d=u.type,y=n(u),S={},p=e[d];if(p&&p.categories){const O=p.categories[r],M=O==null?void 0:O.title;V&&Object.keys(O.properties).forEach(E=>{O.properties[E].$converter=V});const w=(O==null?void 0:O.properties)||{},k=g(w,S,y,u,v,T);return{categoryId:r,categoryName:M,properties:k}}return{categoryId:r,categoryName:"",properties:[]}}function f(r,o,c,v,T){const P=r.type,V=n(r),u={};let d=T||e[P];if(d&&Object.keys(d).length===0&&c&&c.getPropConfig&&(d=c.getPropConfig(v)),d&&d.categories){const y=[];return Object.keys(d.categories).map(S=>{const p=d.categories[S];if(p.$ref){y.push(a(S,p,r,o,v));return}const O=p==null?void 0:p.title,M=p==null?void 0:p.tabId,w=p==null?void 0:p.tabName,k=p==null?void 0:p.hide,E=p==null?void 0:p.hideTitle,q=g(p.properties||{},u,V,r,o,v,p.$converter),{setPropertyRelates:R}=p,H=p==null?void 0:p.parentPropertyID;y.push({categoryId:S,categoryName:O,tabId:M,tabName:w,hide:k,properties:q,hideTitle:E,setPropertyRelates:R,parentPropertyID:H})}),y}return[]}return{getPropertyConfigBySchema:f,getPropertyConfigByType:i,propertyConverterMap:l}}const W={},Y={};U(W,Y,re);const Q={},X={},{getSchemaByType:Ze,resolveSchemaWithDefaultValue:Ne,resolveSchemaToProps:Ke,mappingSchemaToProps:et,setDesignerContext:tt}=L(Q,X),Z={},K={};U(Z,K,Ne);function De(e,t,n=new Map,l=(C,j,h,m)=>j,b={},F=C=>C){return I[t.title]=t,G[t.title]=l,W[t.title]=b,Y[t.title]=F,Q[t.title]=t,X[t.title]=l,Z[t.title]=b,K[t.title]=F,(C={},j=!0)=>{if(!j)return ie(C,n);const h=oe(C,t,n),m=Object.keys(e).reduce((g,i)=>(g[i]=e[i].default,g),{});return Object.assign(m,h)}}const Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/json-editor.schema.json",title:"json-editor",description:"A Farris Component",type:"object",properties:{type:{description:"The type string of json-editor",type:"string",default:"json-editor"},parameterDescriptors:{description:"Description of parameters to be configured",type:"array",default:[]},formContextData:{description:"Form context data",type:"object",default:{}},beforeOpen:{description:"Before opening the configuration dialog, the callback function is executed",type:"function",default:null},dialogTitle:{description:"Title of the dialog modal",type:"string",default:"JSON编辑器"},keyColumnTitle:{description:"Title for the key column in the table",type:"string",default:"键"},valueColumnTitle:{description:"Title for the value column in the table",type:"string",default:"值"},operationColumnTitle:{description:"Title for the operation column",type:"string",default:"操作"},keyColumnPlaceholder:{description:"Placeholder text for key input fields",type:"string",default:""},valueColumnPlaceholder:{description:"Placeholder text for value input fields",type:"string",default:""},addButtonText:{description:"Text displayed on the add new row button",type:"string",default:"添加"}},required:["id","type"],ignore:[]},we=new Map([]);function ke(e,t,n){return t}const A={modelValue:{type:String,default:""},parameterDescriptors:{type:Array,default:[]},formContextData:{type:Object,default:{}},beforeOpen:{type:Function,default:null},dialogTitle:{type:String,default:"JSON编辑器"},keyColumnTitle:{type:String,default:"键"},valueColumnTitle:{type:String,default:"值"},operationColumnTitle:{type:String,default:"操作"},keyColumnPlaceholder:{type:String,default:""},valueColumnPlaceholder:{type:String,default:""},addButtonText:{type:String,default:"添加"}},ee=De(A,Ee,we,ke);function Me(e,t,n){const l=s.inject(ne.F_NOTIFY_SERVICE_TOKEN,null),{formContextData:b,parameterDescriptors:F,initialize:C,hasDuplicateParameter:j,getNewValue:h}=n;function m(r){t.emit("change",r),t.emit("update:modelValue",r)}function g(){if(j())return l==null||l.warning({message:`配置中存在重复的${e.keyColumnTitle},请修改。`,position:"top-center"}),!1;const r=h();return m(r),!0}const i=s.reactive({title:e.dialogTitle,width:675,height:500,fitContent:!1,showHeader:!0,showCloseButton:!0,showMaxButton:!1,resizeable:!1,draggable:!0,closedCallback:()=>{},buttons:[{class:"btn btn-secondary",text:"取消",handle:()=>!0},{class:"btn btn-primary",text:"确定",handle:()=>g()}]});function a(){m("")}function f(){if(C(),typeof e.beforeOpen=="function"){const r=e.beforeOpen();if(!r)return;r.then(o=>{const c=o==null?void 0:o.formContextData;b.value=c||b.value||{};const v=o==null?void 0:o.parameterDescriptors;F.value=v||F.value||[]})}}return{modalConfigs:i,beforeOpenModalDialog:f,onClear:a,changeValue:m}}const Be={options:{type:Array,default:[]},idField:{type:String,default:"id"},valueField:{type:String,default:"id"},textField:{type:String,default:"name"},titleField:{type:String,default:"name"}},$e=s.defineComponent({name:"FEditableComboPopupContainer",props:Be,emits:["select","close"],setup(e,t){const n=s.computed(()=>e.options.length===0);function l(a){t.emit("select",a)}function b(){t.emit("close")}function F(a){return a[e.idField]}function C(a){return a[e.textField]}function j(a){return a[e.titleField]||""}function h(){return s.createVNode("div",{class:"fv-editable-combo-list-close",onClick:b},[s.createVNode("span",null,[s.createTextVNode("关闭")])])}function m(a){return s.createVNode("div",{class:"fv-editable-combo-list-item",key:F(a),title:j(a),onClick:()=>l(a)},[s.createVNode("span",null,[C(a)])])}function g(){return e.options.map(a=>m(a))}function i(){return s.createVNode("div",{class:"fv-editable-combo-list-placeholder"},[s.createVNode("span",null,[s.createTextVNode("无选项")])])}return()=>s.createVNode("div",{class:"fv-editable-combo-list"},[n.value&&i(),g(),h()])}}),Re={modelValue:{type:String,default:""},options:{type:Array,default:[]},idField:{type:String,default:"id"},valueField:{type:String,default:"id"},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},placeholder:{type:String,default:"请选择"},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-60-down"></span>'},autoApply:{type:Boolean,default:!0},filterOnType:{type:Boolean,default:!0}},Ae=s.defineComponent({name:"FEditableCombo",props:Re,emits:["update:modelValue","select"],setup(e,t){const n=s.ref(),l=s.ref(""),b=s.computed(()=>Array.isArray(e.options)?e.options.filter(f=>{if(!f||typeof f!="object")return!1;const r=f[e.valueField]||"";return typeof r!="string"?!1:r.includes(l.value)}):[]),F=s.computed(()=>b.value.length>0);function C(f){var r,o;f?(r=n.value)==null||r.showPopup():(o=n.value)==null||o.hidePopup()}function j(f){if(f.code==="Escape"){C(!1);return}e.filterOnType&&(l.value=e.modelValue,F.value?C(!0):C(!1))}function h(){l.value=""}function m(){h(),F.value&&C(!0)}function g(){h()}function i(f){t.emit("update:modelValue",f)}function a(f){if(t.emit("select",f),e.autoApply){const r=f[e.valueField];i(r)}C(!1)}return()=>s.createVNode(J,{ref:n,modelValue:e.modelValue,"onUpdate:modelValue":i,editable:!0,enableClear:!0,placeholder:e.placeholder,buttonContent:e.dropDownIcon,placement:"auto",popupClass:"fv-editable-combo-popup",onClick:m,onClickButton:g,onKeyup:j},{default:()=>[s.createVNode($e,{options:b.value,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,onSelect:a,onClose:()=>C(!1)},null)]})}}),qe={useParametersComposition:{type:Object,require:!0},jsonEditorProps:{type:Object,default:{}},formContextData:{type:Object,default:{}}},He=s.defineComponent({name:"FJsonEditorModalContainer",props:qe,emits:[],setup(e){const{parameterItems:t,parameterCodeOptions:n,appendNewParameter:l,deleteParameterById:b,onParameterCodeChanged:F}=e.useParametersComposition,C=s.computed(()=>t.value.length===0),j=s.computed(()=>!C.value);function h(){return s.createVNode("div",{class:"fv-json-editor-header"},[s.createVNode("div",{class:"fv-json-editor-key-col"},[e.jsonEditorProps.keyColumnTitle]),s.createVNode("div",{class:"fv-json-editor-value-col"},[e.jsonEditorProps.valueColumnTitle]),s.createVNode("div",{class:"fv-json-editor-operation-col"},[e.jsonEditorProps.operationColumnTitle])])}function m(){return s.createVNode("div",{class:"fv-json-editor-placeholder"},[s.createVNode("div",{class:"fv-json-editor-default-add-button",onClick:l},[s.createVNode("span",{class:"fv-json-editor-default-add-icon f-icon f-icon-add"},null),s.createVNode("span",{class:"fv-json-editor-default-add-text"},[e.jsonEditorProps.addButtonText])])])}function g(c){return s.createVNode(Ae,{modelValue:c.code,"onUpdate:modelValue":[v=>c.code=v,()=>F(c.id)],options:n.value,placeholder:e.jsonEditorProps.keyColumnPlaceholder},null)}function i(c){var v,T,P;return s.createVNode(z,{modelValue:c.value,"onUpdate:modelValue":V=>c.value=V,editorType:c.editorType,fieldData:(v=e.formContextData)==null?void 0:v.fieldData,varData:(T=e.formContextData)==null?void 0:T.varData,formData:(P=e.formContextData)==null?void 0:P.formData},null)}function a(c){return s.createVNode("div",{class:"fv-json-editor-row"},[s.createVNode("div",{class:"fv-json-editor-key-col"},[g(c)]),s.createVNode("div",{class:"fv-json-editor-value-col"},[i(c)]),s.createVNode("div",{class:"fv-json-editor-operation-col"},[s.createVNode("div",{class:"fv-json-editor-delete-button"},[s.createVNode("span",{class:"fv-json-editor-delete-icon f-icon f-icon-yxs_delete",onClick:()=>b(c.id)},null)])])])}function f(){return t.value.map(c=>a(c))}function r(){return s.createVNode("div",{class:"fv-json-editor-add-button",onClick:l},[s.createVNode("span",{class:"fv-json-editor-add-icon f-icon f-icon-add"},null),s.createVNode("span",{class:"fv-json-editor-add-text"},[e.jsonEditorProps.addButtonText])])}function o(){return s.createVNode("div",{class:"fv-json-editor-body"},[C.value&&m(),f(),j.value&&r()])}return()=>s.createVNode("div",{class:"fv-json-editor"},[h(),o()])}});function Je(e){const t=s.ref([]),n=s.ref([]),l=s.ref(e.parameterDescriptors||[]);s.watch(()=>e.parameterDescriptors,u=>{l.value=u});const{guid:b}=_.useGuid();function F(u){if(t.value=[],n.value=[],!h(u))return;const d=JSON.parse(u);Object.keys(d).forEach(y=>{const S=b(),p=a(y);t.value.push(s.reactive({id:S,code:y,value:m(d[y],S),editorType:p}))})}s.watch(()=>e.modelValue,u=>F(u));function C(){F(e.modelValue)}function j(){const u={};return t.value.forEach(y=>{const S=y==null?void 0:y.code;S&&S.trim().length>0&&(u[S]=g(y.value,y.id))}),Object.keys(u).length===0?"":JSON.stringify(u)}function h(u){try{const d=JSON.parse(u);if(!d||typeof d!="object"||Array.isArray(d))return!1}catch{return!1}return!0}function m(u,d){return typeof u=="object"?(n.value.push(d),JSON.stringify(u)):u}function g(u,d){if(u&&typeof u=="string"&&n.value.includes(d))try{u=JSON.parse(u)}catch{return u}return u===void 0?"":u}function i(u){const d=l.value;return!u||!d?void 0:d.find(S=>S.id===u)}function a(u){const d=i(u);return d==null?void 0:d.editorType}function f(u){if(!u)return"";switch(u){case z.EditorType.Switch:return!1;default:return""}}function r(u){const d=i(u);if(!d)return;const{editorType:y,defaultValue:S}=d;return S!==void 0?S:f(y)}function o(){const u=new Set;for(const d of t.value){const y=d==null?void 0:d.code;if(!(!y||y.trim().length===0)){if(u.has(y))return!0;u.add(y)}}return!1}function c(u){const d=t.value.find(O=>O.id===u);if(!d)return;const y=d.code;if(!y)return;const S=a(y);d.editorType=S||void 0;let p=r(y);p=m(p,u),d.value=p}function v(u){const d=t.value.findIndex(y=>y.id===u);d>=0&&t.value.splice(d,1)}function T(){t.value.push(s.reactive({id:b(),code:"",value:"",editorType:void 0}))}const P=s.computed(()=>l.value.map(u=>{let d=u.label;return u.description&&(d+=`(${u.description})`),{id:u.id,name:d}})),V=s.ref(e.formContextData);return{parameterItems:t,parameterCodeOptions:P,formContextData:V,parameterDescriptors:l,initialize:C,onParameterCodeChanged:c,hasDuplicateParameter:o,deleteParameterById:v,appendNewParameter:T,getNewValue:j}}const $=s.defineComponent({name:"FJsonEditor",props:A,emits:["change","update:modelValue"],setup(e,t){const n=Je(e),{modalConfigs:l,onClear:b,beforeOpenModalDialog:F,changeValue:C}=Me(e,t,n),{formContextData:j}=n;return()=>s.createVNode(J.FButtonEdit,{modelValue:e.modelValue,enableClear:!0,buttonBehavior:"Modal",modalOptions:l,beforeOpen:F,onClear:b,"onUpdate:modelValue":C},{default:()=>[s.createVNode(He,{useParametersComposition:n,jsonEditorProps:e,formContextData:j.value},null)]})}});$.register=(e,t,n,l)=>{e["json-editor"]=$,t["json-editor"]=ee};const ze=_.withInstall($);x.FJsonEditor=$,x.default=ze,x.jsonEditorProps=A,x.propsResolver=ee,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});