@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 25.4 kB
JavaScript
(function(k,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../dynamic-resolver/index.umd.js","../common/index.umd.js"],i):(k=typeof globalThis<"u"?globalThis:k||self,i(k.capsule={},k.Vue,k.LodashES,k.dynamicResolver,k.common))})(this,function(k,i,_,ae,ie){"use strict";const ce={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/capsule.schema.json",title:"capsule",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a capsule",type:"string"},type:{description:"The type string of capsule component",type:"string",default:"capsule"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]};function U(e,t){let r;function s(c){const{properties:u,title:v,ignore:a}=c,o=a&&Array.isArray(a),l=Object.keys(u).reduce((y,h)=>((!o||!a.find(P=>P===h))&&(y[h]=u[h].type==="object"&&u[h].properties?s(u[h]):_.cloneDeep(u[h].default)),y),{});if(v&&(!o||!a.find(y=>y==="id"))){const y=v.toLowerCase().replace(/-/g,"_");l.id=`${y}_${Math.random().toString().slice(2,6)}`}return l}function F(c){const{properties:u,title:v,required:a}=c;if(a&&Array.isArray(a)){const o=a.reduce((l,y)=>(l[y]=u[y].type==="object"&&u[y].properties?s(u[y]):_.cloneDeep(u[y].default),l),{});if(v&&a.find(l=>l==="id")){const l=v.toLowerCase().replace(/-/g,"_");o.id=`${l}_${Math.random().toString().slice(2,6)}`}return o}return{type:v}}function M(c,u={},v){const a=e[c];if(a){let o=F(a);const l=t[c];return o=l?l({getSchemaByType:M},o,u,v):o,r!=null&&r.appendIdentifyForNewControl&&r.appendIdentifyForNewControl(o),o}return null}function T(c,u){const v=s(u);return Object.keys(v).reduce((a,o)=>(Object.prototype.hasOwnProperty.call(c,o)&&(a[o]&&_.isPlainObject(a[o])&&_.isPlainObject(c[o]||!c[o])?Object.assign(a[o],c[o]||{}):a[o]=c[o]),a),v),v}function N(c,u){return Object.keys(c).filter(a=>c[a]!=null).reduce((a,o)=>{if(u.has(o)){const l=u.get(o);if(typeof l=="string")a[l]=c[o];else{const y=l(o,c[o],c);Object.assign(a,y)}}else a[o]=c[o];return a},{})}function A(c,u,v=new Map){const a=T(c,u);return N(a,v)}function d(c){var v;const u=c.type;if(u){const a=e[u];if(!a)return c;const o=T(c,a),l=((v=c.editor)==null?void 0:v.type)||"";if(l){const y=e[l],h=T(c.editor,y);o.editor=h}return o}return c}function b(c){r=c}return{getSchemaByType:M,resolveSchemaWithDefaultValue:d,resolveSchemaToProps:A,mappingSchemaToProps:N,setDesignerContext:b}}const J={},Q={},{getSchemaByType:Ke,resolveSchemaWithDefaultValue:se,resolveSchemaToProps:le,mappingSchemaToProps:ue,setDesignerContext:et}=U(J,Q);function fe(e={}){function t(d,b,c,u){if(typeof c=="number")return u[d].length===c;if(typeof c=="object"){const v=Object.keys(c)[0],a=c[v];if(v==="not")return Number(u[d].length)!==Number(a);if(v==="moreThan")return Number(u[d].length)>=Number(a);if(v==="lessThan")return Number(u[d].length)<=Number(a)}return!1}function r(d,b,c,u){return u[d]&&u[d].propertyValue&&String(u[d].propertyValue.value)===String(c)}const s=new Map([["length",t],["getProperty",r]]);Object.keys(e).reduce((d,b)=>(d.set(b,e[b]),d),s);function F(d,b){const c=d;return typeof b=="number"?[{target:c,operator:"length",param:null,value:Number(b)}]:typeof b=="boolean"?[{target:c,operator:"getProperty",param:d,value:!!b}]:typeof b=="object"?Object.keys(b).map(u=>{if(u==="length")return{target:c,operator:"length",param:null,value:b[u]};const v=u,a=b[u];return{target:c,operator:"getProperty",param:v,value:a}}):[]}function M(d){return Object.keys(d).reduce((c,u)=>{const v=F(u,d[u]);return c.push(...v),c},[])}function T(d,b){if(s.has(d.operator)){const c=s.get(d.operator);return c&&c(d.target,d.param,d.value,b)||!1}return!1}function N(d,b){return M(d).reduce((v,a)=>v&&T(a,b),!0)}function A(d,b){const c=Object.keys(d),u=c.includes("allOf"),v=c.includes("anyOf"),a=u||v,y=(a?d[a?u?"allOf":"anyOf":"allOf"]:[d]).map(P=>N(P,b));return u?!y.includes(!1):y.includes(!0)}return{parseValueSchema:A}}const pe={convertTo:(e,t,r,s)=>{e.appearance||(e.appearance={}),e.appearance[t]=r},convertFrom:(e,t,r)=>e.appearance?e.appearance[t]:e[t]},me={convertFrom:(e,t,r)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},de={convertTo:(e,t,r,s)=>{e.editor&&(e.editor[t]=r)},convertFrom:(e,t,r)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},X={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:"多语输入框"}},ve={convertFrom:(e,t,r)=>{var F;const s=e.editor&&e.editor[t]?e.editor[t]:e[t];return((F=X[s])==null?void 0:F.name)||s}},ye={convertTo:(e,t,r,s)=>{e[t]=e[t]},convertFrom:(e,t,r)=>e.editor?r.getRealEditorType(e.editor.type):""},be={convertTo:(e,t,r,s)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=r:e.formatter={[t]:r})},convertFrom:(e,t,r)=>{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"}},ge={convertTo:(e,t,r,s)=>{e.command?e.command[t]=r:e.command={[t]:r},t==="enable"&&r&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,r)=>e.command&&t==="enable"?e.command.enable:""},he={convertTo:(e,t,r,s)=>{e.column?e.column[t]=r:e.column={[t]:r},t==="fitColumns"&&r&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,r)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},Se={convertTo:(e,t,r,s)=>{e.summary?e.summary[t]=r:e.summary={[t]:r},t==="enable"&&r&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:r,groupFields:[]})},convertFrom:(e,t,r)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},Te={convertTo:(e,t,r,s)=>{e.group?e.group[t]=r:e.group={[t]:r},t==="enable"&&r&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:r,groupFields:[],showSummary:!1})},convertFrom:(e,t,r)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},Fe={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,r)=>{if(r&&r.length>0){const s=r[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=s.bindingField,e.binding.field=s.id,e.binding.fullPath=s.path,e.path=s.bindingPath}}},Me={convertTo:(e,t,r,s)=>{e.pagination||(e.pagination={}),e.pagination[t]=r},convertFrom:(e,t,r)=>e.pagination?e.pagination[t]:e[t]},Oe={convertTo:(e,t,r,s)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=r},convertFrom:(e,t,r)=>e.rowNumber?e.rowNumber[t]:e[t]},je={convertTo:(e,t,r,s)=>{e.selection||(e.selection={}),e.selection[t]=r},convertFrom:(e,t,r)=>e.selection?e.selection[t]:e[t]},we={convertFrom:(e,t,r)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Pe={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,r)=>{e[t]=r}},De={convertTo:(e,t,r,s)=>{e.size||(e.size={}),e.size[t]=r},convertFrom:(e,t,r)=>e.size?e.size[t]:e[t]},$e={convertFrom:(e,t,r)=>{var s,F;return(s=e.formatter)!=null&&s.data&&t==="formatterEnumData"&&!e.formatterEnumData?(F=e.formatter)==null?void 0:F.data:e.formatterEnumData}},Ne={convertTo:(e,t,r,s)=>{e.sort||(e.sort={}),e.sort[t]=r},convertFrom:(e,t,r)=>{var s,F;if(t==="mode")return((s=e.sort)==null?void 0:s.mode)||"client";if(t==="multiSort")return!!((F=e.sort)!=null&&F.multiSort)}},Be={convertTo:(e,t,r,s)=>{e.filter||(e.filter={}),e.filter[t]=r},convertFrom:(e,t,r)=>{var s;if(t==="mode")return((s=e.filter)==null?void 0:s.mode)||"client"}},Ee={convertTo:(e,t,r,s)=>{e.rowOption?e.rowOption[t]=r:e.rowOption={[t]:r}},convertFrom:(e,t,r)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function Y(e,t,r){const s=new Map([["/converter/appearance.converter",pe],["/converter/buttons.converter",me],["/converter/property-editor.converter",de],["/converter/items-count.converter",we],["/converter/type.converter",ve],["/converter/change-editor.converter",ye],["/converter/change-formatter.converter",be],["/converter/column-command.converter",ge],["/converter/column-option.converter",he],["/converter/summary.converter",Se],["/converter/group.converter",Te],["/converter/form-group-label.converter",Pe],["/converter/field-selector.converter",Fe],["/converter/pagination.converter",Me],["/converter/row-number.converter",Oe],["/converter/grid-selection.converter",je],["/converter/size.converter",De],["/converter/change-formatter-enum.converter",$e],["/converter/grid-sort.converter",Ne],["/converter/grid-filter.converter",Be],["/converter/row-option.converter",Ee]]),F=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}]]),M=fe();function T(a,o){return()=>M.parseValueSchema(a,o)}function N(a,o,l){return a.includes("visible")&&o.visible!==void 0?typeof o.visible=="boolean"?()=>!!o.visible:o.visible===void 0?!0:T(o.visible,l):()=>!0}function A(a,o,l){return a.includes("readonly")&&o.readonly!==void 0?typeof o.readonly=="boolean"?()=>!!o.readonly:T(o.readonly,l):()=>!1}function d(a,o){const l=a.$converter||o;return typeof l=="string"&&l&&s.has(l)?s.get(l)||null:l||null}function b(a,o,l,y,h,P="",B=""){return Object.keys(a).map(O=>{const E=i.ref(1),m=O,n=a[O],p=Object.keys(n),j=n.title,f=n.type,g=F.get(f)||{type:"input-group",enableClear:!1},S=n.editor?Object.assign({},g,n.editor):Object.assign({},g),w=N(p,n,o),D=A(p,n,o);S.readonly=S.readonly===void 0?D():S.readonly;const C=n.type==="cascade"?b(n.properties,o,l,y,h,P,B):[],W=!0;let R=d(n,B);const V=i.computed({get(){if(E.value){if(["class","style"].find(Ue=>Ue===m)&&!R&&(R=s.get("/converter/appearance.converter")||null),R&&R.convertFrom)return R.convertFrom(l,O,h,P);const q=l[O];return Object.prototype.hasOwnProperty.call(n,"defaultValue")&&(q===void 0||typeof q=="string"&&q==="")?n.type==="boolean"?n.defaultValue:n.defaultValue||"":q}return null},set(q){E.value+=1,R&&R.convertTo?(R.convertTo(y,O,q,h,P),R.convertTo(l,O,q,h,P)):(y[O]=q,l[O]=q)}}),{refreshPanelAfterChanged:L,description:_e,isExpand:ze,parentPropertyID:Ge}=n,oe={propertyID:m,propertyName:j,propertyType:f,propertyValue:V,editor:S,visible:w,readonly:D,cascadeConfig:C,hideCascadeTitle:W,refreshPanelAfterChanged:L,description:_e,isExpand:ze,parentPropertyID:Ge};return o[m]=oe,oe})}function c(a,o,l={}){const y={},h=e[a];return h&&h.categories?Object.keys(h.categories).map(B=>{const $=h.categories[B],O=$==null?void 0:$.title,E=b($.properties||{},y,{},l,o);return{categoryId:B,categoryName:O,properties:E}}):[]}function u(a,o,l,y,h=""){const P=o.$ref.schema,B=o.$ref.converter,$=l[P],O=$.type,E=r($),m={},n=e[O];if(n&&n.categories){const p=n.categories[a],j=p==null?void 0:p.title;B&&Object.keys(p.properties).forEach(S=>{p.properties[S].$converter=B});const f=(p==null?void 0:p.properties)||{},g=b(f,m,E,$,y,h);return{categoryId:a,categoryName:j,properties:g}}return{categoryId:a,categoryName:"",properties:[]}}function v(a,o,l,y,h){const P=a.type,B=r(a),$={};let O=h||e[P];if(O&&Object.keys(O).length===0&&l&&l.getPropConfig&&(O=l.getPropConfig(y)),O&&O.categories){const E=[];return Object.keys(O.categories).map(m=>{const n=O.categories[m];if(n.$ref){E.push(u(m,n,a,o,y));return}const p=n==null?void 0:n.title,j=n==null?void 0:n.tabId,f=n==null?void 0:n.tabName,g=n==null?void 0:n.hide,S=n==null?void 0:n.hideTitle,w=b(n.properties||{},$,B,a,o,y,n.$converter),{setPropertyRelates:D}=n,C=n==null?void 0:n.parentPropertyID;E.push({categoryId:m,categoryName:p,tabId:j,tabName:f,hide:g,properties:w,hideTitle:S,setPropertyRelates:D,parentPropertyID:C})}),E}return[]}return{getPropertyConfigBySchema:v,getPropertyConfigByType:c,propertyConverterMap:s}}const Z={},x={};Y(Z,x,se);const I={},K={},{getSchemaByType:tt,resolveSchemaWithDefaultValue:Re,resolveSchemaToProps:nt,mappingSchemaToProps:rt,setDesignerContext:ot}=U(I,K),ee={},te={};Y(ee,te,Re);function ke(e,t,r=new Map,s=(T,N,A,d)=>N,F={},M=T=>T){return J[t.title]=t,Q[t.title]=s,Z[t.title]=F,x[t.title]=M,I[t.title]=t,K[t.title]=s,ee[t.title]=F,te[t.title]=M,(T={},N=!0)=>{if(!N)return ue(T,r);const A=le(T,t,r),d=Object.keys(e).reduce((b,c)=>(b[c]=e[c].default,b),{});return Object.assign(d,A)}}function Ae(e,t){return{customClass:t.class,customStyle:t.style}}const Ce=new Map([["appearance",Ae]]);function Ve(e,t,r){return t}const qe={title:"capsule",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},z={items:{Type:Array,default:[{name:"升序",value:"asc",icon:"f-icon f-icon-col-ascendingorder"},{name:"降序",value:"desc",icon:"f-icon f-icon-col-descendingorder"}]},modelValue:{type:String,default:""},type:{type:String,default:"primary"}},ne={name:{type:String,default:""},value:{type:String,default:""},isActive:{type:Boolean,default:!1},icon:{type:String,default:""},index:{type:Number,default:0},show:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},G=ke(z,ce,Ce,Ve,qe),re=i.defineComponent({name:"FCapsuleItem",props:ne,emits:["mounted","active"],setup(e,t){const r=i.ref(),s=i.ref(e.isActive);i.watch(()=>e.isActive,T=>{s.value=T});const F=i.computed(()=>({"f-capsule-item":!0,"f-capsule-active-item":s.value,"f-capsule-disabled":e.disabled}));i.onMounted(()=>{t.emit("mounted",r,e.value)});function M(T){e.disabled||t.emit("active",T,{name:e.name,value:e.value})}return()=>i.createVNode("div",{ref:r,class:F.value,onClick:T=>M(T)},[e.icon&&i.createVNode("i",{class:e.icon},null),e.name])}}),H=i.defineComponent({name:"FCapsule",props:z,emits:["change","update:modelValue"],setup(e,t){const r=i.ref(e.items),s=i.ref(),F=2,M=i.ref(e.modelValue),T=i.ref("none"),N=i.ref(e.type),A=i.computed(()=>{const m={"f-capsule-container":!0};return N.value&&(m[N.value]=!0),m}),d=i.computed(()=>({})),b=i.computed(()=>({"f-capsule":!0})),c=i.ref(F),u=i.ref(0),v=i.ref(0),a=i.computed(()=>({left:`${c.value}px`,width:`${u.value}px`,transition:T.value})),o=i.computed(()=>({width:`${v.value}px`})),l=new Map;function y(m){var n;if(l.has(m.value)){const p=(n=l.get(m.value))==null?void 0:n.value;if(p){const j=p.getBoundingClientRect(),f=s.value.getBoundingClientRect();c.value=j.left-f.left+F+s.value.scrollLeft,u.value=j.width-2*F}}}function h(m,n){const p=m.value;M.value=p,t.emit("update:modelValue",p),y(m),n&&t.emit("change",p)}function P(m){const n=r.value.findIndex(p=>p.value===m);n>-1&&h(r.value[n],!1)}i.watch(()=>e.modelValue,m=>{M.value=m,P(M.value)}),i.onMounted(async()=>{P(M.value),await i.nextTick(),T.value="0.1s ease-out all",v.value=Array.from(l.values()).reduce((m,n)=>(m+=n.value.clientWidth,m),0)});function B(m,n){h(n,!0)}function $(m,n){l.set(n,m)}function O(m){Array.from(l.keys()).forEach(n=>{m.find(j=>j.value===n)||l.delete(n)})}function E(m,n){return i.createVNode(re,{name:m.name,value:m.value,isActive:m.value===M.value,index:n,disabled:m.disabled,key:m.value,onMounted:$,onActive:B},null)}return i.watch(()=>e.items,async m=>{const n=m.filter(p=>p.show);O(n),r.value=n,await i.nextTick(),P(M.value),v.value=Array.from(l.values()).reduce((p,j)=>(p+=j.value.clientWidth,p),0)}),()=>i.createVNode("span",{ref:s,class:A.value,style:d.value},[i.createVNode("span",{class:"f-capsule-pane"},[r.value.map((m,n)=>E(m,n))]),i.createVNode("small",{class:b.value,style:a.value},null),i.createVNode("div",{class:"f-capsule-board",style:o.value},null)])}});function We(e,t,r){var j;const s="",F="",M=i.ref();let T;function N(){return(t==null?void 0:t.schema.componentType)!=="frame"}function A(){return!1}function d(){return(t==null?void 0:t.schema.componentType)!=="frame"}function b(){return(t==null?void 0:t.schema.componentType)==="frame"}function c(f){if(!f||!f.value)return null;if(f.value.schema&&f.value.schema.type==="component")return f.value;const g=i.ref(f==null?void 0:f.value.parent),S=c(g);return S||null}function u(f=t){var D;const{componentInstance:g,designerItemElementRef:S}=f;if(!g||!g.value)return null;const{getCustomButtons:w}=g.value;return g.value.canMove||w&&((D=w())!=null&&D.length)?S:u(f.parent)}function v(f){return!!r}function a(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function o(){}function l(f,g){var S;!f||!g||(S=t==null?void 0:t.setupContext)==null||S.emit("dragEnd")}function y(f,g){const{componentType:S}=f;let w=ae.getSchemaByTypeForDesigner(S,f,g);const D=S.toLowerCase().replace(/-/g,"_");return w&&!w.id&&w.type===S&&(w.id=`${D}_${Math.random().toString().slice(2,6)}`),w}function h(f){}function P(...f){}function B(f){if(!f)return;const g=t==null?void 0:t.schema,{formSchemaUtils:S}=f;if(g&&S.getExpressions().length){const w=S.getExpressions().findIndex(D=>D.target===g.id);w>-1&&S.getExpressions().splice(w,1)}}function $(f){if(!f||!(t!=null&&t.schema))return;const g=t.schema,{formSchemaUtils:S}=f;S.removeCommunicationInComponent(g)}function O(f){B(f),$(f),t!=null&&t.schema.contents&&t.schema.contents.map(g=>{let S=g.id;g.type==="component-ref"&&(S=g.component);const w=e.value.querySelectorAll(`#${S}-design-item`);w!=null&&w.length&&Array.from(w).map(D=>{var C;(C=D==null?void 0:D.componentInstance)!=null&&C.value.onRemoveComponent&&D.componentInstance.value.onRemoveComponent(f)})})}function E(){}function m(f){var S,w;if(!((S=t==null?void 0:t.schema)!=null&&S.id))return;!T&&f&&(T=f.formSchemaUtils);let g="";{const{text:D,title:C,label:W,mainTitle:R,name:V,type:L}=t.schema;g=D||C||W||R||V||((w=X[L])==null?void 0:w.name)}g&&T.getControlBasicInfoMap().set(t.schema.id,{componentTitle:g,parentPathName:g})}function n(f){var D;const{changeObject:g}=f,{propertyID:S,propertyValue:w}=g;if(["text","title","label","name","mainTitle"].includes((D=f==null?void 0:f.changeObject)==null?void 0:D.propertyID)&&S&&w&&(m(),T)){const C=T.getControlBasicInfoMap(),W=C.keys().toArray().filter(R=>{var V,L;return((V=C.get(R))==null?void 0:V.reliedComponentId)===((L=t==null?void 0:t.schema)==null?void 0:L.id)});W!=null&&W.length&&W.forEach(R=>{const V=C.get(R).parentPathName.split(" > ");V[0]=w,C.get(R).parentPathName=V.join(" > ")})}}function p(f){n(f)}return M.value={canMove:N(),canSelectParent:A(),canDelete:d(),canNested:!b(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(j=t==null?void 0:t.parent)==null?void 0:j.componentInstance,schema:t==null?void 0:t.schema,styles:s,designerClass:F,canAccepts:v,getBelongedComponentInstance:c,getDraggableDesignItemElement:u,getDraggingDisplayText:a,getPropConfig:P,getDragScopeElement:o,onAcceptMovedChildElement:l,onChildElementMovedOut:h,addNewChildComponentSchema:y,triggerBelongedComponentToMoveWhenMoved:i.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:i.ref(!1),onRemoveComponent:O,getCustomButtons:E,onPropertyChanged:p,setComponentBasicInfoMap:m,updateContextSchema:t==null?void 0:t.updateContextSchema},M}const Le=i.defineComponent({name:"FCapsuleDesign",props:z,emits:["change","update:modelValue"],setup(e,t){const r=i.ref(e.items),s=i.ref(),F=2,M=i.ref(e.modelValue),T=i.ref("none"),N=i.ref(e.type),A=i.inject("design-item-context"),d=We(s,A);i.onMounted(()=>{s.value.componentInstance=d}),t.expose(d.value);const b=i.computed(()=>{const n={"f-capsule-container":!0};return N.value&&(n[N.value]=!0),n}),c=i.computed(()=>({})),u=i.computed(()=>({"f-capsule":!0})),v=i.ref(F),a=i.ref(0),o=i.ref(0),l=i.computed(()=>({left:`${v.value}px`,width:`${a.value}px`,transition:T.value})),y=i.computed(()=>({width:`${o.value}px`})),h=new Map;function P(n){var p;if(h.has(n.value)){const j=(p=h.get(n.value))==null?void 0:p.value;if(j){const f=j.getBoundingClientRect(),g=s.value.getBoundingClientRect();v.value=f.left-g.left+F+s.value.scrollLeft,a.value=f.width-2*F}}}function B(n,p){const j=n.value;M.value=j,t.emit("update:modelValue",j),P(n),p&&t.emit("change",j)}function $(n){const p=r.value.findIndex(j=>j.value===n);p>-1&&B(r.value[p],!1)}i.watch(()=>e.modelValue,n=>{M.value=n,$(M.value)}),i.watch(()=>e.items,async n=>{r.value=n,await i.nextTick(),$(M.value),o.value=Array.from(h.values()).reduce((p,j)=>(p+=j.value.clientWidth,p),0)}),i.onMounted(async()=>{$(M.value),await i.nextTick(),T.value="0.1s ease-out all",o.value=Array.from(h.values()).reduce((n,p)=>(n+=p.value.clientWidth,n),0)});function O(n,p){B(p,!0)}function E(n,p){h.set(p,n)}function m(n,p){return i.createVNode(re,{name:n.name,value:n.value,isActive:n.value===M.value,index:p,onMounted:E,onActive:O},null)}return()=>i.createVNode("span",{ref:s,class:b.value,style:c.value},[i.createVNode("span",{class:"f-capsule-pane"},[r.value.map((n,p)=>m(n,p))]),i.createVNode("small",{class:u.value,style:l.value},null),i.createVNode("div",{class:"f-capsule-board",style:y.value},null)])}});H.register=(e,t,r)=>{e.capsule=H,t.capsule=G},H.registerDesigner=(e,t,r)=>{e.capsule=Le,t.capsule=G};const He=ie.withInstall(H);k.FCapsule=H,k.capsuleItemProps=ne,k.capsuleProps=z,k.default=He,k.propsResolver=G,Object.defineProperties(k,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});