@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 24.6 kB
JavaScript
(function($,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","lodash-es"],s):($=typeof globalThis<"u"?globalThis:$||self,s($.nav={},$.Vue,$.dynamicResolver,$.LodashES))})(this,function($,s,C,H){"use strict";function J(e,t){let r;function l(c){const{properties:o,title:a,ignore:n}=c,i=n&&Array.isArray(n),f=Object.keys(o).reduce((y,h)=>((!i||!n.find(k=>k===h))&&(y[h]=o[h].type==="object"&&o[h].properties?l(o[h]):H.cloneDeep(o[h].default)),y),{});if(a&&(!i||!n.find(y=>y==="id"))){const y=a.toLowerCase().replace(/-/g,"_");f.id=`${y}_${Math.random().toString().slice(2,6)}`}return f}function S(c){const{properties:o,title:a,required:n}=c;if(n&&Array.isArray(n)){const i=n.reduce((f,y)=>(f[y]=o[y].type==="object"&&o[y].properties?l(o[y]):H.cloneDeep(o[y].default),f),{});if(a&&n.find(f=>f==="id")){const f=a.toLowerCase().replace(/-/g,"_");i.id=`${f}_${Math.random().toString().slice(2,6)}`}return i}return{type:a}}function O(c,o={},a){const n=e[c];if(n){let i=S(n);const f=t[c];return i=f?f({getSchemaByType:O},i,o,a):i,r!=null&&r.appendIdentifyForNewControl&&r.appendIdentifyForNewControl(i),i}return null}function M(c,o){const a=l(o);return Object.keys(a).reduce((n,i)=>(Object.prototype.hasOwnProperty.call(c,i)&&(n[i]&&H.isPlainObject(n[i])&&H.isPlainObject(c[i]||!c[i])?Object.assign(n[i],c[i]||{}):n[i]=c[i]),n),a),a}function N(c,o){return Object.keys(c).filter(n=>c[n]!=null).reduce((n,i)=>{if(o.has(i)){const f=o.get(i);if(typeof f=="string")n[f]=c[i];else{const y=f(i,c[i],c);Object.assign(n,y)}}else n[i]=c[i];return n},{})}function D(c,o,a=new Map){const n=M(c,o);return N(n,a)}function d(c){var a;const o=c.type;if(o){const n=e[o];if(!n)return c;const i=M(c,n),f=((a=c.editor)==null?void 0:a.type)||"";if(f){const y=e[f],h=M(c.editor,y);i.editor=h}return i}return c}function v(c){r=c}return{getSchemaByType:O,resolveSchemaWithDefaultValue:d,resolveSchemaToProps:D,mappingSchemaToProps:N,setDesignerContext:v}}const Z={},x={},{getSchemaByType:qe,resolveSchemaWithDefaultValue:I,resolveSchemaToProps:ze,mappingSchemaToProps:Ve,setDesignerContext:_e}=J(Z,x);function K(e={}){function t(d,v,c,o){if(typeof c=="number")return o[d].length===c;if(typeof c=="object"){const a=Object.keys(c)[0],n=c[a];if(a==="not")return Number(o[d].length)!==Number(n);if(a==="moreThan")return Number(o[d].length)>=Number(n);if(a==="lessThan")return Number(o[d].length)<=Number(n)}return!1}function r(d,v,c,o){return o[d]&&o[d].propertyValue&&String(o[d].propertyValue.value)===String(c)}const l=new Map([["length",t],["getProperty",r]]);Object.keys(e).reduce((d,v)=>(d.set(v,e[v]),d),l);function S(d,v){const c=d;return typeof v=="number"?[{target:c,operator:"length",param:null,value:Number(v)}]:typeof v=="boolean"?[{target:c,operator:"getProperty",param:d,value:!!v}]:typeof v=="object"?Object.keys(v).map(o=>{if(o==="length")return{target:c,operator:"length",param:null,value:v[o]};const a=o,n=v[o];return{target:c,operator:"getProperty",param:a,value:n}}):[]}function O(d){return Object.keys(d).reduce((c,o)=>{const a=S(o,d[o]);return c.push(...a),c},[])}function M(d,v){if(l.has(d.operator)){const c=l.get(d.operator);return c&&c(d.target,d.param,d.value,v)||!1}return!1}function N(d,v){return O(d).reduce((a,n)=>a&&M(n,v),!0)}function D(d,v){const c=Object.keys(d),o=c.includes("allOf"),a=c.includes("anyOf"),n=o||a,y=(n?d[n?o?"allOf":"anyOf":"allOf"]:[d]).map(k=>N(k,v));return o?!y.includes(!1):y.includes(!0)}return{parseValueSchema:D}}const ee={convertTo:(e,t,r,l)=>{e.appearance||(e.appearance={}),e.appearance[t]=r},convertFrom:(e,t,r)=>e.appearance?e.appearance[t]:e[t]},te={convertFrom:(e,t,r)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},re={convertTo:(e,t,r,l)=>{e.editor&&(e.editor[t]=r)},convertFrom:(e,t,r)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},Q={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:"多语输入框"}},ne={convertFrom:(e,t,r)=>{var S;const l=e.editor&&e.editor[t]?e.editor[t]:e[t];return((S=Q[l])==null?void 0:S.name)||l}},oe={convertTo:(e,t,r,l)=>{e[t]=e[t]},convertFrom:(e,t,r)=>e.editor?r.getRealEditorType(e.editor.type):""},ae={convertTo:(e,t,r,l)=>{(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"}},ie={convertTo:(e,t,r,l)=>{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:""},ce={convertTo:(e,t,r,l)=>{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""}},le={convertTo:(e,t,r,l)=>{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:""},se={convertTo:(e,t,r,l)=>{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}}},ue={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,r)=>{if(r&&r.length>0){const l=r[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}}},fe={convertTo:(e,t,r,l)=>{e.pagination||(e.pagination={}),e.pagination[t]=r},convertFrom:(e,t,r)=>e.pagination?e.pagination[t]:e[t]},pe={convertTo:(e,t,r,l)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=r},convertFrom:(e,t,r)=>e.rowNumber?e.rowNumber[t]:e[t]},de={convertTo:(e,t,r,l)=>{e.selection||(e.selection={}),e.selection[t]=r},convertFrom:(e,t,r)=>e.selection?e.selection[t]:e[t]},me={convertFrom:(e,t,r)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},ve={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,r)=>{e[t]=r}},ye={convertTo:(e,t,r,l)=>{e.size||(e.size={}),e.size[t]=r},convertFrom:(e,t,r)=>e.size?e.size[t]:e[t]},ge={convertFrom:(e,t,r)=>{var l,S;return(l=e.formatter)!=null&&l.data&&t==="formatterEnumData"&&!e.formatterEnumData?(S=e.formatter)==null?void 0:S.data:e.formatterEnumData}},be={convertTo:(e,t,r,l)=>{e.sort||(e.sort={}),e.sort[t]=r},convertFrom:(e,t,r)=>{var l,S;if(t==="mode")return((l=e.sort)==null?void 0:l.mode)||"client";if(t==="multiSort")return!!((S=e.sort)!=null&&S.multiSort)}},he={convertTo:(e,t,r,l)=>{e.filter||(e.filter={}),e.filter[t]=r},convertFrom:(e,t,r)=>{var l;if(t==="mode")return((l=e.filter)==null?void 0:l.mode)||"client"}},Se={convertTo:(e,t,r,l)=>{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 X(e,t,r){const l=new Map([["/converter/appearance.converter",ee],["/converter/buttons.converter",te],["/converter/property-editor.converter",re],["/converter/items-count.converter",me],["/converter/type.converter",ne],["/converter/change-editor.converter",oe],["/converter/change-formatter.converter",ae],["/converter/column-command.converter",ie],["/converter/column-option.converter",ce],["/converter/summary.converter",le],["/converter/group.converter",se],["/converter/form-group-label.converter",ve],["/converter/field-selector.converter",ue],["/converter/pagination.converter",fe],["/converter/row-number.converter",pe],["/converter/grid-selection.converter",de],["/converter/size.converter",ye],["/converter/change-formatter-enum.converter",ge],["/converter/grid-sort.converter",be],["/converter/grid-filter.converter",he],["/converter/row-option.converter",Se]]),S=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}]]),O=K();function M(n,i){return()=>O.parseValueSchema(n,i)}function N(n,i,f){return n.includes("visible")&&i.visible!==void 0?typeof i.visible=="boolean"?()=>!!i.visible:i.visible===void 0?!0:M(i.visible,f):()=>!0}function D(n,i,f){return n.includes("readonly")&&i.readonly!==void 0?typeof i.readonly=="boolean"?()=>!!i.readonly:M(i.readonly,f):()=>!1}function d(n,i){const f=n.$converter||i;return typeof f=="string"&&f&&l.has(f)?l.get(f)||null:f||null}function v(n,i,f,y,h,k="",B=""){return Object.keys(n).map(F=>{const R=s.ref(1),A=F,p=n[F],j=Object.keys(p),V=p.title,u=p.type,g=S.get(u)||{type:"input-group",enableClear:!1},m=p.editor?Object.assign({},g,p.editor):Object.assign({},g),b=N(j,p,i),T=D(j,p,i);m.readonly=m.readonly===void 0?T():m.readonly;const w=p.type==="cascade"?v(p.properties,i,f,y,h,k,B):[],_=!0;let P=d(p,B);const q=s.computed({get(){if(R.value){if(["class","style"].find(Ae=>Ae===A)&&!P&&(P=l.get("/converter/appearance.converter")||null),P&&P.convertFrom)return P.convertFrom(f,F,h,k);const z=f[F];return Object.prototype.hasOwnProperty.call(p,"defaultValue")&&(z===void 0||typeof z=="string"&&z==="")?p.type==="boolean"?p.defaultValue:p.defaultValue||"":z}return null},set(z){R.value+=1,P&&P.convertTo?(P.convertTo(y,F,z,h,k),P.convertTo(f,F,z,h,k)):(y[F]=z,f[F]=z)}}),{refreshPanelAfterChanged:L,description:$e,isExpand:Be,parentPropertyID:Re}=p,Y={propertyID:A,propertyName:V,propertyType:u,propertyValue:q,editor:m,visible:b,readonly:T,cascadeConfig:w,hideCascadeTitle:_,refreshPanelAfterChanged:L,description:$e,isExpand:Be,parentPropertyID:Re};return i[A]=Y,Y})}function c(n,i,f={}){const y={},h=e[n];return h&&h.categories?Object.keys(h.categories).map(B=>{const E=h.categories[B],F=E==null?void 0:E.title,R=v(E.properties||{},y,{},f,i);return{categoryId:B,categoryName:F,properties:R}}):[]}function o(n,i,f,y,h=""){const k=i.$ref.schema,B=i.$ref.converter,E=f[k],F=E.type,R=r(E),A={},p=e[F];if(p&&p.categories){const j=p.categories[n],V=j==null?void 0:j.title;B&&Object.keys(j.properties).forEach(m=>{j.properties[m].$converter=B});const u=(j==null?void 0:j.properties)||{},g=v(u,A,R,E,y,h);return{categoryId:n,categoryName:V,properties:g}}return{categoryId:n,categoryName:"",properties:[]}}function a(n,i,f,y,h){const k=n.type,B=r(n),E={};let F=h||e[k];if(F&&Object.keys(F).length===0&&f&&f.getPropConfig&&(F=f.getPropConfig(y)),F&&F.categories){const R=[];return Object.keys(F.categories).map(A=>{const p=F.categories[A];if(p.$ref){R.push(o(A,p,n,i,y));return}const j=p==null?void 0:p.title,V=p==null?void 0:p.tabId,u=p==null?void 0:p.tabName,g=p==null?void 0:p.hide,m=p==null?void 0:p.hideTitle,b=v(p.properties||{},E,B,n,i,y,p.$converter),{setPropertyRelates:T}=p,w=p==null?void 0:p.parentPropertyID;R.push({categoryId:A,categoryName:j,tabId:V,tabName:u,hide:g,properties:b,hideTitle:m,setPropertyRelates:T,parentPropertyID:w})}),R}return[]}return{getPropertyConfigBySchema:a,getPropertyConfigByType:c,propertyConverterMap:l}}X({},{},I);const Fe={},Te={},{getSchemaByType:We,resolveSchemaWithDefaultValue:Ne,resolveSchemaToProps:Ge,mappingSchemaToProps:Ue,setDesignerContext:Ce}=J(Fe,Te);X({},{},Ne);function Me(e,t){return{customClass:t.class,customStyle:t.style}}const De=new Map([["appearance",Me]]);function Pe(e,t,r){return t}const Oe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/nav.schema.json",title:"nav",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a nav",type:"string"},type:{description:"The type string of nav component",type:"string",default:"nav"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""}},required:["id","type"]},ke={title:"nav",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:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},W={activeNavId:{Type:String,default:"1"},displayField:{Type:String,default:"text"},disableField:{Type:String,default:"disable"},horizontal:{Type:Boolean,default:!0},idField:{Type:String,default:"id"},maxNum:{Type:Number,default:99},navData:{Type:Array,default:[{id:"1",text:"全部"},{id:"2",text:"已回复",disable:!0},{id:"3",text:"待回复",num:200},{id:"4",text:"@我",num:33}]},navPicking:{type:Function,default:()=>e=>!0},valueField:{Type:String,default:"num"}},U=C.createPropsResolver(W,Oe,De,Pe,ke),G=s.defineComponent({name:"FNav",props:W,emits:["nav","update:activeNavId"],setup(e,t){const r=s.ref(e.activeNavId),l=s.ref(e.navData),S=s.ref(e.horizontal),O=s.ref(e.navPicking),M=s.computed(()=>({paddingTop:"1rem"}));s.watch(()=>e.activeNavId,(o,a)=>{o!==a&&(r.value=o)});const N=s.computed({get(){return l.value},set(o){l.value=o,v()}}),D=s.computed({get(){return r.value},set(o){if(r.value=o,r.value&&N&&N.value.length){const a=N.value.find(n=>n.id===r.value);a&&t.emit("nav",a)}}}),d=s.computed({set(o){S.value=o},get(){return S.value}});function v(){if(N.value&&N.value.length&&!r.value){const o=N.value.find(a=>!a.disable);o&&(r.value=o.id)}}function c(o){o.disable||o.id===r.value||Promise.resolve().then(()=>O.value(o)).then(a=>{a&&(r.value=o.id,t.emit("update:activeNavId",o.id),t.emit("nav",o))})}return()=>{var o;return s.createVNode("div",{class:["farris-nav",{"farris-nav-vertical":!d.value}]},[(o=N.value)==null?void 0:o.map(a=>s.createVNode("div",{class:["farris-nav-item",{active:a[e.idField]===D.value},{disabled:a[e.disableField]}],onClick:()=>c(a)},[s.createVNode("div",{class:"farris-nav-item-link",style:M.value},[s.createVNode("span",{class:"farris-nav-item-link-text"},[typeof a[e.displayField]=="function"?a[e.displayField]():a[e.displayField],a[e.valueField]&&s.createVNode("div",{class:"farris-nav-item-tag"},[a[e.valueField]<=e.maxNum&&s.createVNode("span",{class:"tag-text"},[a[e.valueField]]),a[e.valueField]>e.maxNum&&s.createVNode("span",{class:"tag-text"},[e.maxNum,s.createTextVNode("+")])])]),s.createVNode("div",{class:"farris-nav-item-bottom-line"},null)])]))])}}});function je(e,t,r){var V;const l="",S="",O=s.ref();let M;function N(){return(t==null?void 0:t.schema.componentType)!=="frame"}function D(){return!1}function d(){return(t==null?void 0:t.schema.componentType)!=="frame"}function v(){return(t==null?void 0:t.schema.componentType)==="frame"}function c(u){if(!u||!u.value)return null;if(u.value.schema&&u.value.schema.type==="component")return u.value;const g=s.ref(u==null?void 0:u.value.parent),m=c(g);return m||null}function o(u=t){var T;const{componentInstance:g,designerItemElementRef:m}=u;if(!g||!g.value)return null;const{getCustomButtons:b}=g.value;return g.value.canMove||b&&((T=b())!=null&&T.length)?m:o(u.parent)}function a(u){return!!r}function n(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function i(){}function f(u,g){var m;!u||!g||(m=t==null?void 0:t.setupContext)==null||m.emit("dragEnd")}function y(u,g){const{componentType:m}=u;let b=C.getSchemaByTypeForDesigner(m,u,g);const T=m.toLowerCase().replace(/-/g,"_");return b&&!b.id&&b.type===m&&(b.id=`${T}_${Math.random().toString().slice(2,6)}`),b}function h(u){}function k(...u){}function B(u){if(!u)return;const g=t==null?void 0:t.schema,{formSchemaUtils:m}=u;if(g&&m.getExpressions().length){const b=m.getExpressions().findIndex(T=>T.target===g.id);b>-1&&m.getExpressions().splice(b,1)}}function E(u){if(!u||!(t!=null&&t.schema))return;const g=t.schema,{formSchemaUtils:m}=u;m.removeCommunicationInComponent(g)}function F(u){B(u),E(u),t!=null&&t.schema.contents&&t.schema.contents.map(g=>{let m=g.id;g.type==="component-ref"&&(m=g.component);const b=e.value.querySelectorAll(`#${m}-design-item`);b!=null&&b.length&&Array.from(b).map(T=>{var w;(w=T==null?void 0:T.componentInstance)!=null&&w.value.onRemoveComponent&&T.componentInstance.value.onRemoveComponent(u)})})}function R(){}function A(u){var m,b;if(!((m=t==null?void 0:t.schema)!=null&&m.id))return;!M&&u&&(M=u.formSchemaUtils);let g="";{const{text:T,title:w,label:_,mainTitle:P,name:q,type:L}=t.schema;g=T||w||_||P||q||((b=Q[L])==null?void 0:b.name)}g&&M.getControlBasicInfoMap().set(t.schema.id,{componentTitle:g,parentPathName:g})}function p(u){var T;const{changeObject:g}=u,{propertyID:m,propertyValue:b}=g;if(["text","title","label","name","mainTitle"].includes((T=u==null?void 0:u.changeObject)==null?void 0:T.propertyID)&&m&&b&&(A(),M)){const w=M.getControlBasicInfoMap(),_=w.keys().toArray().filter(P=>{var q,L;return((q=w.get(P))==null?void 0:q.reliedComponentId)===((L=t==null?void 0:t.schema)==null?void 0:L.id)});_!=null&&_.length&&_.forEach(P=>{const q=w.get(P).parentPathName.split(" > ");q[0]=b,w.get(P).parentPathName=q.join(" > ")})}}function j(u){p(u)}return O.value={canMove:N(),canSelectParent:D(),canDelete:d(),canNested:!v(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(V=t==null?void 0:t.parent)==null?void 0:V.componentInstance,schema:t==null?void 0:t.schema,styles:l,designerClass:S,canAccepts:a,getBelongedComponentInstance:c,getDraggableDesignItemElement:o,getDraggingDisplayText:n,getPropConfig:k,getDragScopeElement:i,onAcceptMovedChildElement:f,onChildElementMovedOut:h,addNewChildComponentSchema:y,triggerBelongedComponentToMoveWhenMoved:s.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:s.ref(!1),onRemoveComponent:F,getCustomButtons:R,onPropertyChanged:j,setComponentBasicInfoMap:A,updateContextSchema:t==null?void 0:t.updateContextSchema},O}const Ee=s.defineComponent({name:"FNavDesign",props:W,emits:["nav"],setup(e,t){const r=s.ref(e.activeNavId),l=s.ref(e.navData),S=s.ref(e.horizontal);s.ref(e.navPicking);const O=s.ref(),M=s.inject("design-item-context"),N=je(O,M);s.onMounted(()=>{O.value.componentInstance=N}),t.expose(N.value);const D=s.computed({get(){return l.value},set(a){l.value=a,c()}}),d=s.computed({get(){return r.value},set(a){if(r.value=a,r.value&&D&&D.value.length){const n=D.value.find(i=>i.id===r.value);n&&t.emit("nav",n)}}}),v=s.computed({set(a){S.value=a},get(){return S.value}});function c(){if(D.value&&D.value.length&&!r.value){const a=D.value.find(n=>!n.disable);a&&(r.value=a.id)}}function o(a){a.disable||a.id===r.value||(r.value=a.id,t.emit("nav",a))}return()=>{var a;return s.createVNode("div",{ref:O,class:["farris-nav",{"farris-nav-vertical":!v.value}]},[(a=D.value)==null?void 0:a.map(n=>s.createVNode("div",{class:["farris-nav-item",{active:n.id===d.value},{disabled:n.disable}],onClick:()=>o(n)},[s.createVNode("div",{class:"farris-nav-item-link"},[s.createVNode("span",{class:"farris-nav-item-link-text"},[n.text,n.num&&s.createVNode("div",{class:"farris-nav-item-tag"},[n.num<=e.maxNum&&s.createVNode("span",{class:"tag-text"},[n.num]),n.num>e.maxNum&&s.createVNode("span",{class:"tag-text"},[e.maxNum,s.createTextVNode("+")])])])])]))])}}}),we={install(e){e.component(G.name,G)},register(e,t,r,l){e.nav=G,t.nav=U},registerDesigner(e,t,r){e.nav=Ee,t.nav=U}};$.FNav=G,$.default=we,$.navProps=W,$.propsResolver=U,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});