@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 31.7 kB
JavaScript
(function(x,K){typeof exports=="object"&&typeof module<"u"?K(exports,require("../common/index.umd.js"),require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../common/index.umd.js","vue","lodash-es","../dynamic-resolver/index.umd.js"],K):(x=typeof globalThis<"u"?globalThis:x||self,K(x.tags={},x.common,x.Vue,x.LodashES,x.dynamicResolver))})(this,function(x,K,r,oe,Fe){"use strict";function Me(e,t,n){return t}function fe(e,t){let n;function p(o){const{properties:f,title:T,ignore:l}=o,a=l&&Array.isArray(l),d=Object.keys(f).reduce((w,F)=>((!a||!l.find(A=>A===F))&&(w[F]=f[F].type==="object"&&f[F].properties?p(f[F]):oe.cloneDeep(f[F].default)),w),{});if(T&&(!a||!l.find(w=>w==="id"))){const w=T.toLowerCase().replace(/-/g,"_");d.id=`${w}_${Math.random().toString().slice(2,6)}`}return d}function u(o){const{properties:f,title:T,required:l}=o;if(l&&Array.isArray(l)){const a=l.reduce((d,w)=>(d[w]=f[w].type==="object"&&f[w].properties?p(f[w]):oe.cloneDeep(f[w].default),d),{});if(T&&l.find(d=>d==="id")){const d=T.toLowerCase().replace(/-/g,"_");a.id=`${d}_${Math.random().toString().slice(2,6)}`}return a}return{type:T}}function P(o,f={},T){const l=e[o];if(l){let a=u(l);const d=t[o];return a=d?d({getSchemaByType:P},a,f,T):a,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(a),a}return null}function O(o,f){const T=p(f);return Object.keys(T).reduce((l,a)=>(Object.prototype.hasOwnProperty.call(o,a)&&(l[a]&&oe.isPlainObject(l[a])&&oe.isPlainObject(o[a]||!o[a])?Object.assign(l[a],o[a]||{}):l[a]=o[a]),l),T),T}function R(o,f){return Object.keys(o).filter(l=>o[l]!=null).reduce((l,a)=>{if(f.has(a)){const d=f.get(a);if(typeof d=="string")l[d]=o[a];else{const w=d(a,o[a],o);Object.assign(l,w)}}else l[a]=o[a];return l},{})}function $(o,f,T=new Map){const l=O(o,f);return R(l,T)}function y(o){var T;const f=o.type;if(f){const l=e[f];if(!l)return o;const a=O(o,l),d=((T=o.editor)==null?void 0:T.type)||"";if(d){const w=e[d],F=O(o.editor,w);a.editor=F}return a}return o}function b(o){n=o}return{getSchemaByType:P,resolveSchemaWithDefaultValue:y,resolveSchemaToProps:$,mappingSchemaToProps:R,setDesignerContext:b}}const de={},pe={},{getSchemaByType:st,resolveSchemaWithDefaultValue:Oe,resolveSchemaToProps:Pe,mappingSchemaToProps:Ne,setDesignerContext:ut}=fe(de,pe);function Ce(e={}){function t(y,b,o,f){if(typeof o=="number")return f[y].length===o;if(typeof o=="object"){const T=Object.keys(o)[0],l=o[T];if(T==="not")return Number(f[y].length)!==Number(l);if(T==="moreThan")return Number(f[y].length)>=Number(l);if(T==="lessThan")return Number(f[y].length)<=Number(l)}return!1}function n(y,b,o,f){return f[y]&&f[y].propertyValue&&String(f[y].propertyValue.value)===String(o)}const p=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((y,b)=>(y.set(b,e[b]),y),p);function u(y,b){const o=y;return typeof b=="number"?[{target:o,operator:"length",param:null,value:Number(b)}]:typeof b=="boolean"?[{target:o,operator:"getProperty",param:y,value:!!b}]:typeof b=="object"?Object.keys(b).map(f=>{if(f==="length")return{target:o,operator:"length",param:null,value:b[f]};const T=f,l=b[f];return{target:o,operator:"getProperty",param:T,value:l}}):[]}function P(y){return Object.keys(y).reduce((o,f)=>{const T=u(f,y[f]);return o.push(...T),o},[])}function O(y,b){if(p.has(y.operator)){const o=p.get(y.operator);return o&&o(y.target,y.param,y.value,b)||!1}return!1}function R(y,b){return P(y).reduce((T,l)=>T&&O(l,b),!0)}function $(y,b){const o=Object.keys(y),f=o.includes("allOf"),T=o.includes("anyOf"),l=f||T,w=(l?y[l?f?"allOf":"anyOf":"allOf"]:[y]).map(A=>R(A,b));return f?!w.includes(!1):w.includes(!0)}return{parseValueSchema:$}}const je={convertTo:(e,t,n,p)=>{e.appearance||(e.appearance={}),e.appearance[t]=n},convertFrom:(e,t,n)=>e.appearance?e.appearance[t]:e[t]},Ae={convertFrom:(e,t,n)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},Ee={convertTo:(e,t,n,p)=>{e.editor&&(e.editor[t]=n)},convertFrom:(e,t,n)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},me={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:"多语输入框"}},Re={convertFrom:(e,t,n)=>{var u;const p=e.editor&&e.editor[t]?e.editor[t]:e[t];return((u=me[p])==null?void 0:u.name)||p}},$e={convertTo:(e,t,n,p)=>{e[t]=e[t]},convertFrom:(e,t,n)=>e.editor?n.getRealEditorType(e.editor.type):""},Le={convertTo:(e,t,n,p)=>{(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"}},Ve={convertTo:(e,t,n,p)=>{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:""},qe={convertTo:(e,t,n,p)=>{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""}},He={convertTo:(e,t,n,p)=>{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:""},We={convertTo:(e,t,n,p)=>{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}}},xe={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,n)=>{if(n&&n.length>0){const p=n[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=p.bindingField,e.binding.field=p.id,e.binding.fullPath=p.path,e.path=p.bindingPath}}},_e={convertTo:(e,t,n,p)=>{e.pagination||(e.pagination={}),e.pagination[t]=n},convertFrom:(e,t,n)=>e.pagination?e.pagination[t]:e[t]},ze={convertTo:(e,t,n,p)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=n},convertFrom:(e,t,n)=>e.rowNumber?e.rowNumber[t]:e[t]},Ge={convertTo:(e,t,n,p)=>{e.selection||(e.selection={}),e.selection[t]=n},convertFrom:(e,t,n)=>e.selection?e.selection[t]:e[t]},Ue={convertFrom:(e,t,n)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Xe={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,n)=>{e[t]=n}},Je={convertTo:(e,t,n,p)=>{e.size||(e.size={}),e.size[t]=n},convertFrom:(e,t,n)=>e.size?e.size[t]:e[t]},Qe={convertFrom:(e,t,n)=>{var p,u;return(p=e.formatter)!=null&&p.data&&t==="formatterEnumData"&&!e.formatterEnumData?(u=e.formatter)==null?void 0:u.data:e.formatterEnumData}},Ye={convertTo:(e,t,n,p)=>{e.sort||(e.sort={}),e.sort[t]=n},convertFrom:(e,t,n)=>{var p,u;if(t==="mode")return((p=e.sort)==null?void 0:p.mode)||"client";if(t==="multiSort")return!!((u=e.sort)!=null&&u.multiSort)}},Ze={convertTo:(e,t,n,p)=>{e.filter||(e.filter={}),e.filter[t]=n},convertFrom:(e,t,n)=>{var p;if(t==="mode")return((p=e.filter)==null?void 0:p.mode)||"client"}},Ie={convertTo:(e,t,n,p)=>{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 ge(e,t,n){const p=new Map([["/converter/appearance.converter",je],["/converter/buttons.converter",Ae],["/converter/property-editor.converter",Ee],["/converter/items-count.converter",Ue],["/converter/type.converter",Re],["/converter/change-editor.converter",$e],["/converter/change-formatter.converter",Le],["/converter/column-command.converter",Ve],["/converter/column-option.converter",qe],["/converter/summary.converter",He],["/converter/group.converter",We],["/converter/form-group-label.converter",Xe],["/converter/field-selector.converter",xe],["/converter/pagination.converter",_e],["/converter/row-number.converter",ze],["/converter/grid-selection.converter",Ge],["/converter/size.converter",Je],["/converter/change-formatter-enum.converter",Qe],["/converter/grid-sort.converter",Ye],["/converter/grid-filter.converter",Ze],["/converter/row-option.converter",Ie]]),u=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}]]),P=Ce();function O(l,a){return()=>P.parseValueSchema(l,a)}function R(l,a,d){return l.includes("visible")&&a.visible!==void 0?typeof a.visible=="boolean"?()=>!!a.visible:a.visible===void 0?!0:O(a.visible,d):()=>!0}function $(l,a,d){return l.includes("readonly")&&a.readonly!==void 0?typeof a.readonly=="boolean"?()=>!!a.readonly:O(a.readonly,d):()=>!1}function y(l,a){const d=l.$converter||a;return typeof d=="string"&&d&&p.has(d)?p.get(d)||null:d||null}function b(l,a,d,w,F,A="",V=""){return Object.keys(l).map(B=>{const H=r.ref(1),q=B,v=l[B],E=Object.keys(v),X=v.title,g=v.type,D=u.get(g)||{type:"input-group",enableClear:!1},k=v.editor?Object.assign({},D,v.editor):Object.assign({},D),M=R(E,v,a),N=$(E,v,a);k.readonly=k.readonly===void 0?N():k.readonly;const L=v.type==="cascade"?b(v.properties,a,d,w,F,A,V):[],_=!0;let j=y(v,V);const z=r.computed({get(){if(H.value){if(["class","style"].find(re=>re===q)&&!j&&(j=p.get("/converter/appearance.converter")||null),j&&j.convertFrom)return j.convertFrom(d,B,F,A);const G=d[B];return Object.prototype.hasOwnProperty.call(v,"defaultValue")&&(G===void 0||typeof G=="string"&&G==="")?v.type==="boolean"?v.defaultValue:v.defaultValue||"":G}return null},set(G){H.value+=1,j&&j.convertTo?(j.convertTo(w,B,G,F,A),j.convertTo(d,B,G,F,A)):(w[B]=G,d[B]=G)}}),{refreshPanelAfterChanged:Q,description:te,isExpand:ne,parentPropertyID:I}=v,Z={propertyID:q,propertyName:X,propertyType:g,propertyValue:z,editor:k,visible:M,readonly:N,cascadeConfig:L,hideCascadeTitle:_,refreshPanelAfterChanged:Q,description:te,isExpand:ne,parentPropertyID:I};return a[q]=Z,Z})}function o(l,a,d={}){const w={},F=e[l];return F&&F.categories?Object.keys(F.categories).map(V=>{const C=F.categories[V],B=C==null?void 0:C.title,H=b(C.properties||{},w,{},d,a);return{categoryId:V,categoryName:B,properties:H}}):[]}function f(l,a,d,w,F=""){const A=a.$ref.schema,V=a.$ref.converter,C=d[A],B=C.type,H=n(C),q={},v=e[B];if(v&&v.categories){const E=v.categories[l],X=E==null?void 0:E.title;V&&Object.keys(E.properties).forEach(k=>{E.properties[k].$converter=V});const g=(E==null?void 0:E.properties)||{},D=b(g,q,H,C,w,F);return{categoryId:l,categoryName:X,properties:D}}return{categoryId:l,categoryName:"",properties:[]}}function T(l,a,d,w,F){const A=l.type,V=n(l),C={};let B=F||e[A];if(B&&Object.keys(B).length===0&&d&&d.getPropConfig&&(B=d.getPropConfig(w)),B&&B.categories){const H=[];return Object.keys(B.categories).map(q=>{const v=B.categories[q];if(v.$ref){H.push(f(q,v,l,a,w));return}const E=v==null?void 0:v.title,X=v==null?void 0:v.tabId,g=v==null?void 0:v.tabName,D=v==null?void 0:v.hide,k=v==null?void 0:v.hideTitle,M=b(v.properties||{},C,V,l,a,w,v.$converter),{setPropertyRelates:N}=v,L=v==null?void 0:v.parentPropertyID;H.push({categoryId:q,categoryName:E,tabId:X,tabName:g,hide:D,properties:M,hideTitle:k,setPropertyRelates:N,parentPropertyID:L})}),H}return[]}return{getPropertyConfigBySchema:T,getPropertyConfigByType:o,propertyConverterMap:p}}const ve={},ye={};ge(ve,ye,Oe);const be={},he={},{getSchemaByType:ft,resolveSchemaWithDefaultValue:Ke,resolveSchemaToProps:dt,mappingSchemaToProps:pt,setDesignerContext:mt}=fe(be,he),Te={},Se={};ge(Te,Se,Ke);function et(e,t,n=new Map,p=(O,R,$,y)=>R,u={},P=O=>O){return de[t.title]=t,pe[t.title]=p,ve[t.title]=u,ye[t.title]=P,be[t.title]=t,he[t.title]=p,Te[t.title]=u,Se[t.title]=P,(O={},R=!0)=>{if(!R)return Ne(O,n);const $=Pe(O,t,n),y=Object.keys(e).reduce((b,o)=>(b[o]=e[o].default,b),{});return Object.assign(y,$)}}function tt(e,t){return{customClass:t.class,customStyle:t.style}}const nt=new Map([["appearance",tt]]),rt={title:"tags",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:[]}}}}}},ot={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/tags.schema.json",title:"tags",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for tags",type:"string"},type:{description:"The type string of tags",type:"string",default:"tags"},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"]},ae={activeTag:{type:String,default:""},addButtonText:{type:String,default:""},customClass:{type:String,default:""},customStyle:{type:String,default:""},data:{type:Array,default:[{name:"示例1"}]},enableAddButton:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},showAddButton:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},showColor:{type:Boolean,default:!1},tagType:{type:String,default:""},tagStyle:{type:String,default:""},wrapText:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},disable:{type:Boolean,default:!1},placeholder:{type:String,default:""}},ce=et(ae,ot,nt,Me,rt);function we(e,t,n,p){const u=r.ref(-1),P=r.ref(!1);function O(b,o,f){e.disable||(b.stopPropagation(),o&&setTimeout(()=>{u.value=f,P.value=!0,o.moving=!0}))}function R(b,o){if(P.value&&(b.preventDefault(),u.value!==o)){const f=p.value[u.value],T=p.value;T.splice(u.value,1),T.splice(o,0,f),u.value=o}}function $(b,o){P.value&&(b.preventDefault(),b.dataTransfer&&(b.dataTransfer.dropEffect="move"))}function y(b,o){o&&(o.moving=!1),n.value=p.value.filter(f=>f.type==="Tag").map(f=>f.payload),P.value=!1,t.emit("change",n.value)}return{dragstart:O,dragenter:R,dragover:$,dragend:y,isDragging:P}}const ee=r.defineComponent({name:"FTags",props:ae,emits:["remove","selectionChange","change","click"],setup(e,t){const n=r.ref(e.selectable),p=r.ref(e.customClass),u=r.ref(e.data),P=r.ref(e.tagType),O=r.ref(e.tagStyle),R=r.ref(e.showColor),$=r.ref(e.customStyle),y=r.ref(e.activeTag),b=r.ref(e.addButtonText),o=r.ref(),f=r.ref(e.wrapText),T=r.ref();r.ref(e.disable);const l=r.ref(!1);function a(){const i=u.value.map(s=>({type:"Tag",payload:s}));return e.showAddButton&&i.push({type:"AddButton"}),i}const d=r.ref(a());function w(i){u.value=i,d.value=a()}const F=r.computed(()=>d.value.findIndex(i=>i.type==="Input")),A=we(e,t,u,d),{dragstart:V,dragenter:C,dragover:B,dragend:H}=A;r.watch(()=>e.data,i=>w(i)),r.watch(()=>e.showAddButton,()=>{d.value=a()}),r.watch(()=>e.disable,i=>{d.value=a()}),r.watch(()=>e.activeTag,i=>{y.value=i}),r.watch(()=>e.tagType,i=>{P.value=i}),r.watch(()=>e.tagStyle,i=>{O.value=i}),r.watch(()=>e.wrapText,i=>{f.value=i}),r.watch(()=>e.addButtonText,i=>{b.value=i}),r.watch(l,i=>{const s=[...d.value];i?s.length>0&&s[s.length-1].type!=="Input"&&(s.splice(s.length-1,1),s.splice(s.length,0,{type:"Input"}),d.value=s,r.nextTick(()=>{var S;T.value&&((S=T.value)==null||S.focus())})):s.length>0&&s[s.length-1].type!=="AddButton"&&(s.splice(s.length-1,1),s.splice(s.length,0,{type:"AddButton"}),d.value=s)});const q=r.computed(()=>{const i={"farris-tags":!0,"farris-tags-checkable":n.value,"farris-tags-nowrap":!f.value};return p.value.split(" ").reduce((s,S)=>(s[S]=!0,s),i),i});function v(i){const s={"farris-tag-item":!0,"farris-tag-item-checked":n.value&&i.checked,"farris-tag-item-checkable":!y.value&&!P.value&&n.value,"farris-tag-item-has-color":R.value,"farris-tag-item-actived":y.value===i.name};if(P.value){const S=`farris-tag-item-${P.value}`;s[S]=!0}return s}const E=r.computed(()=>{const i={borderColor:"#E6E6E6"};return $.value&&$.value.split(";").reduce((s,S)=>{const U=S.split(":");return s[U[0]]=U[1],s},i),i});function X(i,s){!e.disable&&n.value&&(!s.hasOwnProperty("selectable")||s.selectable)&&(s.checked=!s.checked,y.value=s.checked?s.name:"",s.checked&&u.value.filter(S=>S.name!==s.name).forEach(S=>{S.checked=!s.checked}),t.emit("change",u.value),t.emit("selectionChange",s))}function g(i,s){if(e.disable)return;let S;switch(i.key){case"Backspace":u.value=u.value.filter(U=>U.name!==s.name),t.emit("change",u.value);break;case"ArrowLeft":S=Math.max(o.value.scrollLeft+20,0),o.value.scrollLeft=S;break;case"ArrowRight":S=Math.max(o.value.scrollLeft-20,0),o.value.scrollLeft=S}}function D(i,s){const S=u.value.findIndex(U=>U.name===s.name);if(S>-1){const[U]=u.value.splice(S,1);d.value=a(),t.emit("change",u.value),t.emit("remove",{tags:u.value,remove:U})}i.stopPropagation()}const k=r.computed(()=>({"farris-tag-item":!0,"farris-tag-add-button":!0,"farris-tag-add-button-disabled":!e.enableAddButton}));function M(i){e.enableAddButton&&(i.stopPropagation(),l.value=!0)}function N(){return!e.disable&&r.createVNode("li",{class:k.value,onClick:i=>M(i)},[r.createVNode("span",{class:"f-icon f-icon-amplification"},null),b.value&&r.createVNode("span",{class:"farris-tag-add-text"},[b.value])])}function L(i,s,S){i>-1&&(u.value.splice(i,0,{name:s,value:S,selectable:n.value}),d.value=a(),l.value=!1,t.emit("change",u.value))}function _(i){if(i&&i.value){const s=i.value,S=F.value;L(S,s,s),i.innerText=""}else l.value=!1}function j(i){const s=i.target;s&&s.value?_(s):l.value=!1}function z(i){i.key==="Enter"&&_(i.target)}function Q(){return!e.disable&&r.createVNode("li",{class:"farris-tag-input-box"},[r.createVNode("input",{ref:T,class:"form-control",onKeyup:z,onBlur:j},null)])}function te(i,s){return r.createVNode("li",{class:v(i),style:E.value,tabindex:0,id:i.name,key:i.name,onClick:S=>X(S,i),onKeydown:S=>g(S,i),draggable:"false",onDragstart:S=>V(S,i,s),onDragenter:S=>C(S,s),onDragend:S=>H(S,i),onDragover:S=>B(S,s)},[r.createVNode("span",{title:i.name,class:"tag-box"},[i.name]),!e.disable&&e.showClose&&r.createVNode("span",{class:"tag-delete"},[r.createVNode("i",{class:"f-icon f-icon-close",onClick:S=>D(S,i)},null)])])}function ne(){return d.value.map((i,s)=>{switch(i.type){case"Tag":return te(i.payload,s);case"AddButton":return N();case"Input":return Q()}})}const I=r.computed(()=>({"h-100":!0,"farris-tags-item-container":!0,"farris-tag-item-capsule":O.value==="capsule"}));function Z(i){const s=Math.max(o.value.scrollLeft-i.deltaX,0);o.value.scrollLeft=s}function G(i){var S;i.preventDefault(),i.stopPropagation();const s=(S=i.dataTransfer)==null?void 0:S.getData("Text");if(s){const U=s.split(":"),se=U[0],ie=U[1];[...u.value].findIndex(c=>c.value===ie)>-1||L(u.value.length,se,ie)}}function re(i){i.preventDefault()}function le(){t.emit("click")}return()=>r.createVNode("div",r.mergeProps(t.attrs,{class:q.value,onDrop:G,onDragover:re,"data-placeholder":e.placeholder,onClick:le}),[!!d.value.length&&r.createVNode("ul",{ref:o,class:I.value,onWheel:i=>Z(i)},[ne()])])}});function at(e,t,n){var X;const p="",u="",P=r.ref();let O;function R(){return(t==null?void 0:t.schema.componentType)!=="frame"}function $(){return!1}function y(){return(t==null?void 0:t.schema.componentType)!=="frame"}function b(){return(t==null?void 0:t.schema.componentType)==="frame"}function o(g){if(!g||!g.value)return null;if(g.value.schema&&g.value.schema.type==="component")return g.value;const D=r.ref(g==null?void 0:g.value.parent),k=o(D);return k||null}function f(g=t){var N;const{componentInstance:D,designerItemElementRef:k}=g;if(!D||!D.value)return null;const{getCustomButtons:M}=D.value;return D.value.canMove||M&&((N=M())!=null&&N.length)?k:f(g.parent)}function T(g){return!!n}function l(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function a(){}function d(g,D){var k;!g||!D||(k=t==null?void 0:t.setupContext)==null||k.emit("dragEnd")}function w(g,D){const{componentType:k}=g;let M=Fe.getSchemaByTypeForDesigner(k,g,D);const N=k.toLowerCase().replace(/-/g,"_");return M&&!M.id&&M.type===k&&(M.id=`${N}_${Math.random().toString().slice(2,6)}`),M}function F(g){}function A(...g){}function V(g){if(!g)return;const D=t==null?void 0:t.schema,{formSchemaUtils:k}=g;if(D&&k.getExpressions().length){const M=k.getExpressions().findIndex(N=>N.target===D.id);M>-1&&k.getExpressions().splice(M,1)}}function C(g){if(!g||!(t!=null&&t.schema))return;const D=t.schema,{formSchemaUtils:k}=g;k.removeCommunicationInComponent(D)}function B(g){V(g),C(g),t!=null&&t.schema.contents&&t.schema.contents.map(D=>{let k=D.id;D.type==="component-ref"&&(k=D.component);const M=e.value.querySelectorAll(`#${k}-design-item`);M!=null&&M.length&&Array.from(M).map(N=>{var L;(L=N==null?void 0:N.componentInstance)!=null&&L.value.onRemoveComponent&&N.componentInstance.value.onRemoveComponent(g)})})}function H(){}function q(g){var k,M;if(!((k=t==null?void 0:t.schema)!=null&&k.id))return;!O&&g&&(O=g.formSchemaUtils);let D="";{const{text:N,title:L,label:_,mainTitle:j,name:z,type:Q}=t.schema;D=N||L||_||j||z||((M=me[Q])==null?void 0:M.name)}D&&O.getControlBasicInfoMap().set(t.schema.id,{componentTitle:D,parentPathName:D})}function v(g){var N;const{changeObject:D}=g,{propertyID:k,propertyValue:M}=D;if(["text","title","label","name","mainTitle"].includes((N=g==null?void 0:g.changeObject)==null?void 0:N.propertyID)&&k&&M&&(q(),O)){const L=O.getControlBasicInfoMap(),_=L.keys().toArray().filter(j=>{var z,Q;return((z=L.get(j))==null?void 0:z.reliedComponentId)===((Q=t==null?void 0:t.schema)==null?void 0:Q.id)});_!=null&&_.length&&_.forEach(j=>{const z=L.get(j).parentPathName.split(" > ");z[0]=M,L.get(j).parentPathName=z.join(" > ")})}}function E(g){v(g)}return P.value={canMove:R(),canSelectParent:$(),canDelete:y(),canNested:!b(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(X=t==null?void 0:t.parent)==null?void 0:X.componentInstance,schema:t==null?void 0:t.schema,styles:p,designerClass:u,canAccepts:T,getBelongedComponentInstance:o,getDraggableDesignItemElement:f,getDraggingDisplayText:l,getPropConfig:A,getDragScopeElement:a,onAcceptMovedChildElement:d,onChildElementMovedOut:F,addNewChildComponentSchema:w,triggerBelongedComponentToMoveWhenMoved:r.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:r.ref(!1),onRemoveComponent:B,getCustomButtons:H,onPropertyChanged:E,setComponentBasicInfoMap:q,updateContextSchema:t==null?void 0:t.updateContextSchema},P}const it=r.defineComponent({name:"FTagsDesign",props:ae,emits:["remove","selectionChange","change"],setup(e,t){const n=r.ref(e.selectable),p=r.ref(e.customClass),u=r.ref(e.data),P=r.ref(e.tagType),O=r.ref(e.tagStyle),R=r.ref(e.showColor),$=r.ref(e.activeTag),y=r.ref(e.customStyle),b=r.ref(e.showClose),o=r.ref(e.showAddButton),f=r.ref(e.showInput),T=r.ref(e.addButtonText),l=r.ref(e.enableAddButton);r.ref(e.placeholder),r.ref(""),r.ref();const a=r.ref(),d=r.ref(e.wrapText),w=r.ref(),F=r.ref(),A=r.inject("design-item-context"),V=at(F,A);r.onMounted(()=>{F.value.componentInstance=V}),t.expose(V.value);function C(){const c=u.value.map(m=>({type:"Tag",payload:m}));return o.value&&c.push({type:"AddButton"}),c}const B=r.ref(C());function H(c){u.value=c,B.value=C()}const q=r.computed(()=>B.value.findIndex(c=>c.type==="Input")),v=we(e,t,u,B),{dragstart:E,dragenter:X,dragover:g,dragend:D}=v;r.watch(()=>e.data,c=>H(c));const k=r.computed(()=>{const c={"farris-tags":!0,"farris-tags-checkable":n.value,"farris-tags-nowrap":!d.value};return p.value.split(" ").reduce((m,h)=>(m[h]=!0,m),c),c});function M(c){const m={"farris-tag-item":!0,"farris-tag-item-checked":n.value&&c.checked,"farris-tag-item-checkable":n.value,"farris-tag-item-has-color":R.value,"farris-tag-item-actived":$.value===c.name};if(P.value){const h=`farris-tag-item-${P.value}`;m[h]=!0}return m}const N=r.computed(()=>{const c={};return y.value&&y.value.split(";").reduce((m,h)=>{const W=h.split(":");return m[W[0]]=W[1],m},c),c});function L(c,m){n.value&&m.selectable&&(m.checked=!m.checked,$.value=m.checked?m.name:"",m.checked&&u.value.filter(h=>h.name!==m.name).forEach(h=>{h.checked=!m.checked}),t.emit("change",u.value),t.emit("selectionChange",m))}function _(c,m){let h;switch(c.key){case"Backspace":u.value=u.value.filter(W=>W.name!==m.name),t.emit("change",u.value);break;case"ArrowLeft":h=Math.max(a.value.scrollLeft+20,0),a.value.scrollLeft=h;break;case"ArrowRight":h=Math.max(a.value.scrollLeft-20,0),a.value.scrollLeft=h}}function j(c,m){const h=u.value.findIndex(W=>W.name===m.name);if(h>-1){const[W]=u.value.splice(h,1);B.value=C(),t.emit("change",u.value),t.emit("remove",u.value,W,h)}c.stopPropagation()}const z=r.computed(()=>({"farris-tag-item":!0,"farris-tag-add-button":!0,"farris-tag-add-button-disabled":!l.value}));function Q(c){}function te(){return r.createVNode("li",{class:z.value,onClick:c=>void 0},[r.createVNode("span",{class:"f-icon f-icon-amplification"},null),r.createVNode("span",{class:"farris-tag-add-text"},[T.value])])}function ne(c){if(c&&!c.innerText){const m=q.value;if(m>0){const[h]=u.value.splice(m-1,1);B.value.splice(m-1,1),t.emit("remove",u.value,h,m-1)}}}function I(c,m,h){c>-1&&(u.value.splice(c,0,{name:m,value:h,selectable:n.value}),B.value=C(),t.emit("change",u.value))}function Z(c){if(c&&c.innerText){const m=c.innerText,h=q.value;I(h,m,m),c.innerText=""}}function G(c){const m=c.target;m&&(m.innerText?Z(m):t.emit("change",u.value))}function re(c){c.key==="Enter"&&Z(c.target),c.key==="Backspace"&&(ne(c.target),r.nextTick(()=>{var m;w.value&&((m=w.value)==null||m.focus())}))}function le(){return r.createVNode("li",{class:"farris-tag-input-box"},[r.createVNode("div",{ref:w,class:"form-control",contenteditable:"true",onKeyup:re,onBlur:G},null)])}function i(c,m){return r.createVNode("li",{class:M(c),style:N.value,tabindex:0,id:c.name,key:c.name,onClick:h=>L(h,c),onKeydown:h=>_(h,c),draggable:"true",onDragstart:h=>E(h,c,m),onDragenter:h=>X(h,m),onDragend:h=>D(h,c),onDragover:h=>g(h,m)},[r.createVNode("div",{title:c.name,class:"tag-box"},[c.name]),b.value&&r.createVNode("span",{class:"tag-delete"},[r.createVNode("i",{class:"f-icon f-icon-close",onClick:h=>j(h,c)},null)])])}function s(){return B.value.map((c,m)=>{switch(c.type){case"Tag":return i(c.payload,m);case"AddButton":return te();case"Input":return le()}})}const S=r.computed(()=>({"farris-tags-item-container":!0,"farris-tag-item-capsule":O.value==="capsule"}));function U(c){const m=Math.max(a.value.scrollLeft-c.deltaX,0);a.value.scrollLeft=m}function se(c){const m=a.value,h=u.value.length-1;if(m){const W=Array.from(m.children).filter(Y=>Y.className.indexOf("farris-tag-item")>-1).findIndex(Y=>{const J=Y.getBoundingClientRect(),ue=window.getComputedStyle(Y),Be=parseInt(ue["margin-left"],10)+J.width+parseInt(ue["margin-right"],10);return J.left+Be>c});if(W>-1)return W}return h}function ie(c){if(f.value){const h=se(c.clientX)+1,Y=B.value.filter(J=>J.type!=="Input");Y.splice(h,0,{type:"Input"}),B.value=Y,r.nextTick(()=>{var J;w.value&&((J=w.value)==null||J.focus())})}}function ke(c){var h;c.preventDefault(),c.stopPropagation();const m=(h=c.dataTransfer)==null?void 0:h.getData("Text");if(m){const W=m.split(":"),Y=W[0],J=W[1];[...u.value].findIndex(lt=>lt.value===J)>-1||I(u.value.length,Y,J)}}function De(c){c.preventDefault()}return()=>r.createVNode("div",{ref:F,class:k.value,onClick:ie,onDrop:ke,onDragover:De},[r.createVNode("ul",{ref:a,class:S.value,onWheel:c=>U(c)},[s()])])}});ee.register=(e,t,n,p)=>{e.tags=ee,t.tags=ce},ee.registerDesigner=(e,t,n)=>{e.tags=it,t.tags=ce};const ct=K.withInstall(ee);x.FTags=ee,x.default=ct,x.propsResolver=ce,x.tagsProps=ae,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});