UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 93 kB
(function(J,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("vue"),require("../button/index.umd.js"),require("lodash-es"),require("bignumber.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../button/index.umd.js","lodash-es","bignumber.js","../common/index.umd.js","../designer-canvas/index.umd.js"],i):(J=typeof globalThis<"u"?globalThis:J||self,i(J.drawer={},J.Vue,J.FButton,J.LodashES,J.BigNumber,J.common,J.designerCanvas))})(this,function(J,i,pe,le,jn,ce,qe){"use strict";var On=Object.defineProperty;var Rn=(J,i,pe)=>i in J?On(J,i,{enumerable:!0,configurable:!0,writable:!0,value:pe}):J[i]=pe;var U=(J,i,pe)=>Rn(J,typeof i!="symbol"?i+"":i,pe);const Ue={},We={};function Ce(n){const{properties:t,title:e,ignore:o}=n,r=o&&Array.isArray(o),s=Object.keys(t).reduce((a,f)=>((!r||!o.find(u=>u===f))&&(a[f]=t[f].type==="object"&&t[f].properties?Ce(t[f]):le.cloneDeep(t[f].default)),a),{});if(e&&(!r||!o.find(a=>a==="id"))){const a=e.toLowerCase().replace(/-/g,"_");s.id=`${a}_${Math.random().toString().slice(2,6)}`}return s}function wt(n){const{properties:t,title:e,required:o}=n;if(o&&Array.isArray(o)){const r=o.reduce((s,a)=>(s[a]=t[a].type==="object"&&t[a].properties?Ce(t[a]):le.cloneDeep(t[a].default),s),{});if(e&&o.find(s=>s==="id")){const s=e.toLowerCase().replace(/-/g,"_");r.id=`${s}_${Math.random().toString().slice(2,6)}`}return r}return{type:e}}function he(n,t={},e){const o=Ue[n];if(o){let r=wt(o);const s=We[n];return r=s?s({getSchemaByType:he},r,t,e):r,r}return null}function Ct(n,t){const e=Ce(t);return Object.keys(e).reduce((o,r)=>(Object.prototype.hasOwnProperty.call(n,r)&&(o[r]&&le.isPlainObject(o[r])&&le.isPlainObject(n[r]||!n[r])?Object.assign(o[r],n[r]||{}):o[r]=n[r]),o),e),e}function He(n,t){return Object.keys(n).filter(o=>n[o]!=null).reduce((o,r)=>{if(t.has(r)){const s=t.get(r);if(typeof s=="string")o[s]=n[r];else{const a=s(r,n[r],n);Object.assign(o,a)}}else o[r]=n[r];return o},{})}function xt(n,t,e=new Map){const o=Ct(n,t);return He(o,e)}function Tt(n={}){function t(c,m,d,g){if(typeof d=="number")return g[c].length===d;if(typeof d=="object"){const h=Object.keys(d)[0],b=d[h];if(h==="not")return Number(g[c].length)!==Number(b);if(h==="moreThan")return Number(g[c].length)>=Number(b);if(h==="lessThan")return Number(g[c].length)<=Number(b)}return!1}function e(c,m,d,g){return g[c]&&g[c].propertyValue&&String(g[c].propertyValue.value)===String(d)}const o=new Map([["length",t],["getProperty",e]]);Object.keys(n).reduce((c,m)=>(c.set(m,n[m]),c),o);function r(c,m){const d=c;return typeof m=="number"?[{target:d,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:d,operator:"getProperty",param:c,value:!!m}]:typeof m=="object"?Object.keys(m).map(g=>{if(g==="length")return{target:d,operator:"length",param:null,value:m[g]};const h=g,b=m[g];return{target:d,operator:"getProperty",param:h,value:b}}):[]}function s(c){return Object.keys(c).reduce((d,g)=>{const h=r(g,c[g]);return d.push(...h),d},[])}function a(c,m){if(o.has(c.operator)){const d=o.get(c.operator);return d&&d(c.target,c.param,c.value,m)||!1}return!1}function f(c,m){return s(c).reduce((h,b)=>h&&a(b,m),!0)}function u(c,m){const d=Object.keys(c),g=d.includes("allOf"),h=d.includes("anyOf"),b=g||h,v=(b?c[b?g?"allOf":"anyOf":"allOf"]:[c]).map(P=>f(P,m));return g?!v.includes(!1):v.includes(!0)}return{parseValueSchema:u}}const St={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:"列表导航"},"filter-bar":{type:"filter-bar",name:"筛选条"}},Et={},Pt={};Tt();function xe(n,t,e=new Map,o=(a,f,u,c)=>f,r={},s=a=>a){return Ue[t.title]=t,We[t.title]=o,Et[t.title]=r,Pt[t.title]=s,(a={},f=!0)=>{if(!f)return He(a,e);const u=xt(a,t,e),c=Object.keys(n).reduce((m,d)=>(m[d]=n[d].default,m),{});return Object.assign(c,u)}}function ze(n,t){return{customClass:t.class,customStyle:t.style}}function Mt(n,t){if(!n||n.length<1)return null;for(const e of n){if(e.id===t)return e;if(e.children){const o=e.children.find(r=>r.id===t);if(o)return o}}return null}function kt(){function n(t,e){const o=t.buttons;if(!o||o.length<1)return null;const[r,s]=e.payloads,a=Mt(o,s);return a?a.onClick||a.click:null}return{resolve:n}}function Dt(n,t,e){return t}const Vt=new Map([["appearance",ze]]),Nt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/drawer.schema.json",title:"drawer",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for drawer",type:"string"},type:{description:"The type string of drawer",type:"string",default:"drawer"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},visible:{description:"",type:"boolean",default:!0},title:{description:"",type:"string",default:"标题"},position:{description:"",type:"string",default:"right"},width:{description:"",type:"number"},showMask:{description:"",type:"boolean",default:!0},toolbar:{description:"",type:"object",properties:{appearance:{description:"",type:"object",properties:{class:{type:"string",default:"col-3"}}},id:{description:"",type:"string"},type:{description:"",type:"string",default:"response-toolbar"},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]}}}},required:["id","type","contents"]},Te={backgroundColor:{type:String,default:"#fff"},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},modalClass:{type:String,default:""},height:{type:String,default:300},modelValue:{type:Boolean,default:!1},position:{type:String,default:"right"},appendTo:{type:String,default:"body"},showEntry:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},allowClickMaskToClose:{type:Boolean,default:!0},title:{type:String,default:""},width:{type:String,default:300}},Se=Object.assign({},Te,{componentId:{type:String,default:""}}),Ee=xe(Se,Nt,Vt,Dt),me=i.defineComponent({name:"FDrawer",props:Te,emits:["afterClose","update:modelValue"],setup(n,t){i.computed(()=>({}));const e=i.computed(()=>{const c={};return n.maskClass&&n.maskClass.split(" ").forEach(m=>{c[m]=!0}),{"f-drawer-mask":!0,...c}}),o=i.computed(()=>{const c={};return n.maskClass&&n.class.split(" ").forEach(m=>{c[m]=!0}),{"f-drawer-wrapper":!0,[`f-drawer-wrapper-${n.position}`]:!0,...c}}),r=i.computed(()=>{const c=n.width;return typeof c=="string"?c:typeof c=="number"?`${c}px`:"20%"}),s=i.computed(()=>{const c=n.height;return typeof c=="string"?c:typeof c=="number"?`${c}px`:"20%"}),a=i.computed(()=>`f-drawer-${n.position}`),f=c=>{Promise.resolve().then(()=>{var m;return(m=n.beforeClose)==null?void 0:m.call(n)}).then(m=>{m&&(t.emit("update:modelValue",!1),t.emit("afterClose"))})},u=c=>{f()};return()=>i.createVNode(i.Teleport,{to:"body"},{default:()=>[i.createVNode("div",{class:"f-drawer"},[i.createVNode(i.Transition,{name:"f-drawer-mask",appear:!0},{default:()=>[n.modelValue&&i.createVNode("div",{class:e.value,onClick:i.withModifiers(c=>{n.allowClickMaskToClose&&f()},["stop"])},null)]}),i.createVNode(i.Transition,{name:a.value,appear:!0},{default:()=>{var c,m;return[n.modelValue&&i.createVNode("div",{class:o.value,style:{width:r.value,height:s.value,backgroundColor:n.backgroundColor}},[i.createVNode("div",{class:"f-drawer-container"},[i.createVNode("div",{class:"f-drawer-header"},[i.createVNode("div",{class:"f-drawer-title"},[t.slots.headerTemplate?t.slots.headerTemplate():n.title]),n.showClose&&i.createVNode("div",{class:"f-drawer-close"},[i.createVNode("span",{class:"f-icon f-icon-close",onClick:i.withModifiers(d=>{f()},["stop"])},null)])]),i.createVNode("div",{class:"f-drawer-body"},[(m=(c=t.slots).content)==null?void 0:m.call(c)]),i.createVNode("div",{class:"f-drawer-footer"},[t.slots.footerTemplate?t.slots.footerTemplate():i.createVNode(i.Fragment,null,[i.createVNode(pe,{class:"mr-2",onClick:f},{default:()=>[i.createTextVNode("取消")]}),i.createVNode(pe,{onClick:u},{default:()=>[i.createTextVNode("确定")]})])])])])]}})])]})}});function It(n,t,e){var O;const o=e&&e.getStyles&&e.getStyles()||"",r=e&&e.getDesignerClass&&e.getDesignerClass()||"",s=i.ref();function a(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanMoveComponent?e.checkCanMoveComponent():!0}function f(){return!1}function u(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanDeleteComponent?e.checkCanDeleteComponent():!0}function c(){return(t==null?void 0:t.schema.componentType)==="frame"?!0:e&&e.hideNestedPaddingInDesginerView?e.hideNestedPaddingInDesginerView():!1}function m(E){if(!E||!E.value)return null;if(E.value.schema&&E.value.schema.type==="component")return E.value;const _=i.ref(E==null?void 0:E.value.parent),y=m(_);return y||null}function d(E=t){var T;if(e!=null&&e.getDraggableDesignItemElement)return e.getDraggableDesignItemElement(E);const{componentInstance:_,designerItemElementRef:y}=E;if(!_||!_.value)return null;const{getCustomButtons:l}=_.value;return _.value.canMove||l&&((T=l())!=null&&T.length)?y:d(E.parent)}function g(E){return!!e&&e.canAccepts(E)}function h(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function b(){}function x(E,_){var y;!E||!_||(e!=null&&e.onAcceptMovedChildElement&&e.onAcceptMovedChildElement(E,_),(y=t==null?void 0:t.setupContext)==null||y.emit("dragEnd"))}function k(E,_){const{componentType:y}=E;let l=he(y,E,_);e&&e.onResolveNewComponentSchema&&(l=e.onResolveNewComponentSchema(E,l));const T=y.toLowerCase().replace(/-/g,"_");return l&&!l.id&&l.type===y&&(l.id=`${T}_${Math.random().toString().slice(2,6)}`),l}function v(E){E&&e!=null&&e.onChildElementMovedOut&&e.onChildElementMovedOut(E)}function p(...E){if(e&&e.getPropsConfig)return e.getPropsConfig(...E)}function P(E){if(!E)return;const _=t==null?void 0:t.schema,{formSchemaUtils:y}=E;if(_&&y.getExpressions().length){const l=y.getExpressions().findIndex(T=>T.target===_.id);l>-1&&y.getExpressions().splice(l,1)}}function I(E){e&&e.onRemoveComponent&&e.onRemoveComponent(),P(E),t!=null&&t.schema.contents&&t.schema.contents.map(_=>{let y=_.id;_.type==="component-ref"&&(y=_.component);const l=n.value.querySelectorAll(`#${y}-design-item`);l!=null&&l.length&&Array.from(l).map(T=>{var D;(D=T==null?void 0:T.componentInstance)!=null&&D.value.onRemoveComponent&&T.componentInstance.value.onRemoveComponent(E)})})}function N(){if(e&&e.getCustomButtons)return e.getCustomButtons()}function $(E){if(e&&e.onPropertyChanged)return e.onPropertyChanged(E)}return s.value={canMove:a(),canSelectParent:f(),canDelete:u(),canNested:!c(),contents:t==null?void 0:t.schema.contents,elementRef:n,parent:(O=t==null?void 0:t.parent)==null?void 0:O.componentInstance,schema:t==null?void 0:t.schema,styles:o,designerClass:r,canAccepts:g,getBelongedComponentInstance:m,getDraggableDesignItemElement:d,getDraggingDisplayText:h,getPropConfig:p,getDragScopeElement:b,onAcceptMovedChildElement:x,onChildElementMovedOut:v,addNewChildComponentSchema:k,triggerBelongedComponentToMoveWhenMoved:!!e&&e.triggerBelongedComponentToMoveWhenMoved||i.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!e&&e.triggerBelongedComponentToDeleteWhenDeleted||i.ref(!1),onRemoveComponent:I,getCustomButtons:N,onPropertyChanged:$},s}const Bt=i.ref(0);function At(){Bt.value++}const ge=i.ref(0);function $t(n,t){const e=t.getBoundingClientRect(),o=n.getBoundingClientRect(),r=o.top>=e.top,s=o.top<=e.bottom;return r&&s}function Xe(n){const t=n.querySelector(".component-btn-group");if(!t)return;t.style.display="";const e=t.getBoundingClientRect();if(!(e.top===0&&e.left===0)){const o=t.querySelector("div");if(o){const r=o.getBoundingClientRect();o.style.top=e.top+"px";let s=e.left-r.width;const a=document.querySelector(".editorDiv");if(a){const f=a.getBoundingClientRect();s<f.left&&({left:s}=n.getBoundingClientRect())}o.style.left=s+"px"}}}function Ot(n){if(!window.scrollContainerList)return;const t=Array.from(window.scrollContainerList);if(t.length&&t.length===1){const e=t[0],o=document.querySelector(`[id=${e}]`);if(o&&o.contains(n))return o}}function Ye(n){if(!n)return;const t=n.getBoundingClientRect();if(t.width===0&&t.height===0)return;const e=n.querySelector(".component-btn-group");if(e){let o=!0;const r=Ot(n);if(r&&(o=$t(n,r)),!o){e.style.display="none";return}Xe(n)}}function Rt(n){if(!n)return;let t;n.className.includes("dgComponentSelected")?t=n:t=n.querySelector(".dgComponentSelected"),t&&Ye(t)}function jt(n){const{formSchemaUtils:t,formStateMachineUtils:e}=n;function o(u,c=""){return{path:c+u.code,field:u.id,fullPath:u.code}}function r(u,c=""){return t.getViewModelById(u).states.map(d=>o(d,c))}function s(u){const c=t.getRootViewModelId(),m=r(u);if(u===c)return m;const d=r(c,"root-component.");return[...m,...d]}function a(u){return u.binding&&u.binding.path||u.id||""}function f(){return e&&e.getRenderStates()||[]}return{getVariables:s,getControlName:a,getStateMachines:f}}class _t{constructor(t){U(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);U(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});U(this,"getExpressionConverter",(t,e)=>({convertFrom:(o,r,s,a)=>{const f=s.getExpressionRuleValue(t,e||r);return f&&f.value||""},convertTo:(o,r,s,a,f)=>{var u;if(r==="dataPicking"&&(s!=null&&s.target)){const c=`${s.target}_dataPicking`;((u=s.rules)==null?void 0:u.some(d=>d.id===c&&d.value))?o.dictPickingExpressionId=c:delete o.dictPickingExpressionId}a.updateExpression(s)}}));this.formSchemaService=t}getExpressionRule(t,e){const o=this.formSchemaService.getExpressions();if(!o)return"";const r=o.find(a=>a.target===t);if(!r)return"";const s=r.rules.find(a=>a.type===e);return s||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),o=this.formSchemaService.getViewModelById(e);if(!o||!o.states||o.states.length===0)return[];const r=[];return o.states.forEach(s=>{r.push({key:s.code,name:s.name,description:s.name,category:s.category})}),r}createTreeNode(t,e,o="label"){return{id:t.id,name:t.name,bindingPath:t[o],parents:e}}buildEntityFieldsTreeData(t=null,e){const o=[];return t==null||t.forEach(r=>{var f;const s=this.createTreeNode(r,e);let a=[];(f=r.type)!=null&&f.fields&&(a=this.buildEntityFieldsTreeData(r.type.fields,[...e,r.label])),o.push({data:s,children:a,expanded:!0})}),o}buildChildEntityTreeData(t=null,e){const o=[];return t==null||t.forEach(r=>{var u,c;const s=this.createTreeNode(r,e),a=this.buildEntityFieldsTreeData((u=r.type)==null?void 0:u.fields,[...e,r.label]),f=this.buildChildEntityTreeData((c=r.type)==null?void 0:c.entities,[...e,r.label]);f!=null&&f.length&&(a==null||a.push(...f)),o.push({data:s,children:a||[],expanded:!0})}),o}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const e=t[0];if(!(e!=null&&e.type))return[];const o=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),r=this.buildChildEntityTreeData(e.type.entities,[e.code]);return r!=null&&r.length&&(o==null||o.push(...r)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:o||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,e,o){const r=o==="Field"?t.binding.field:t.id,s=this.getExpressionRule(r,e),a=this.getEntitiesAndVariables(),f={message:["validate","required","dataPicking"].includes(e)&&s?s.message:"",...a};return s.messageType!=null&&(f.messageType=s.messageType),f}buildRule(t,e,o,r){const{expression:s,message:a,messageType:f}=e,u={id:`${t}_${o}`,type:o,value:s};return(o==="validate"||o==="dataPicking"||o==="required")&&(u.message=a),o==="dataPicking"&&(u.messageType=f),o==="validate"&&r&&(u.elementId=r),u}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,o,r){const s=e==="Field"?t.binding.field:t.id,a=this.buildRule(s,o,r,t.type==="form-group"?t.id:"");let u=this.getExpressionData().find(m=>m.targetType===e&&m.target===s);const c=m=>m.value.trim()==="";if(u){const m=u.rules.find(d=>d.id===a.id);if(m)c(a)?u.rules=u.rules.filter(d=>d.id!==a.id):(Object.assign(m,a),r==="validate"&&t.type==="form-group"&&(m.elementId=t.id));else{if(c(a))return null;u.rules=u.rules||[],u.rules.push(a)}}else{if(c(a))return null;u={target:`${s}`,rules:[a],targetType:e}}return u}getExpressionEditorOptions(t,e,o,r){return o.reduce((s,a)=>{var u,c;const f=e==="Field"?(u=t==null?void 0:t.binding)==null?void 0:u.field:t.id;return s[a]={hide:e==="Field"?!!((c=t==null?void 0:t.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(f),editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[a]}编辑器`,showMessage:a==="validate"||a==="dataPicking"||a==="required",showMessageType:a==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(t,a,e),onSubmitModal:m=>{const d=this.updateExpression(t,e,m,a);if(r){const g=this.buildRule(f,m,a);r(g)}return d}}},s},{})}getExpressionInfo(t,e,o){const r=e==="Field"?t.binding.field:t.id,s=this.getExpressionRule(r,o),a={value:s&&s.value,targetId:r,targetType:e,expressionType:o};return s&&s.message&&(a.message=s.message),a}getExpressionConfig(t,e,o=["compute","dependency","validate"],r){return{description:"表达式",title:"表达式",properties:{...this.getExpressionEditorOptions(t,e,o,r)}}}getExpressionOptions(t,e,o){const r=this.getExpressionInfo(t,e,o);return{dialogTitle:`${this.expressionNames[o]}编辑器`,singleExpand:!1,showMessage:o==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,o,e),expressionInfo:r}}}class be{constructor(t,e){U(this,"componentId");U(this,"viewModelId");U(this,"eventsEditorUtils");U(this,"formSchemaUtils");U(this,"formMetadataConverter");U(this,"designViewModelUtils");U(this,"designViewModelField");U(this,"controlCreatorUtils");U(this,"designerHostService");U(this,"schemaService",null);U(this,"metadataService",null);U(this,"propertyConfig",{type:"object",categories:{}});var o;this.componentId=t,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((o=this.formSchemaUtils)==null?void 0:o.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var o;const e=t.binding&&t.binding.type==="Form"&&t.binding.field;if(e){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(s=>s.id===e)}t.updateOn=(o=this.designViewModelField)==null?void 0:o.updateOn}}getBasicPropConfig(t){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:t.type,name:St[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},o){const r={title:"外观",description:"Appearance"},s={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}};for(const a in e)s[a]=Object.assign(s[a]||{},e[a]);return{...r,properties:{...s},setPropertyRelates(a,f){if(a){switch(a&&a.propertyID){case"class":case"style":{ge.value++;break}}o&&o(a,t,f)}}}}getPropertyEditorParams(t,e=[],o="visible",r={},s={}){const{getVariables:a,getControlName:f,getStateMachines:u}=jt(this.designerHostService),c=this.getRealTargetType(t),m=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],d={type:"property-editor",propertyTypes:m};return m.map(g=>{switch(g){case"Const":Object.assign(d,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":d.expressionConfig=this.getExpressionOptions(t,c,o);break;case"StateMachine":d.stateMachines=u();break;case"Variable":Object.assign(d,{controlName:f(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),onBeforeOpenVariables:h=>{h.value=a(this.viewModelId)}},s);break}}),d}getVisibleProperty(t,e=""){return{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,e==="gridFieldEditor"?["Const","Expression"]:["Const","Variable","StateMachine","Expression"],"visible")}}}getBehaviorConfig(t,e="",o={},r){const s={title:"行为",description:""},a=this.getVisibleProperty(t,e);for(const u in o)a[u]=Object.assign(a[u]||{},o[u]);const f=this;return{...s,properties:{...a},setPropertyRelates(u,c){if(u){switch(u.propertyID){case"disabled":case"readonly":case"visible":f.afterMutilEditorChanged(t,u);break}r&&r(u,c)}}}}afterMutilEditorChanged(t,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,t)}updateElementByParentContainer(t,e){const o=e&&e.parent&&e.parent.schema;if(!o)return;const r=o.contents.findIndex(a=>a.id===t),s=le.cloneDeep(o.contents[r]);o.contents.splice(r,1),o.contents.splice(r,0,s),At()}addNewVariableToViewModel(t,e){const o=t.propertyValue;if(!(o&&typeof o=="object")||!(o.type==="Variable"&&o.isNewVariable))return;const a={id:o.field,category:"locale",code:o.fullPath,name:o.fullPath,type:o.newVariableType||"String"};delete o.newVariableType,delete o.isNewVariable,this.formSchemaUtils.getVariableByCode(a.code)||this.formSchemaUtils.getViewModelById(e).states.push(a)}updateExpressionValue(t){const e=t.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:s,expressionInfo:a}=e,{targetId:f,targetType:u,expressionType:c,value:m,message:d}=a,g=this.formSchemaUtils.getModule();g.expressions??(g.expressions=[]);const{expressions:h}=g;let b=h.find(k=>k.target===f);b||(b={target:f,rules:[],targetType:u},h.push(b));const x=b.rules.find(k=>k.type===c);if(x)x.value=m,x.message=d;else{const k={id:s,type:c,value:m,message:d};b.rules.push(k)}delete e.expressionInfo}clearExpression(t,e){const o=t.propertyValue;if(o&&o.type==="Expression")return;const s=t.propertyID,a=this.formSchemaUtils.getExpressions(),f=e.binding?e.binding.field:e.id,u=a.find(c=>c.target===f);!u||!u.rules||(u.rules=u.rules.filter(c=>c.type!==s))}getExpressionOptions(t,e,o){return new _t(this.formSchemaUtils).getExpressionOptions(t,e,o)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}}class Ft extends be{constructor(t,e){super(t,e)}getPropertyConfig(t){return this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.propertyConfig.categories.appearance=this.getAppearanceConfig(t),this.getBehaviorConfig(),this.propertyConfig}getBehaviorConfig(){this.propertyConfig.categories.behavior={title:"行为",description:"Behavior",properties:{title:{title:"标题",description:"标题",type:"string"},position:{title:"显示位置",description:"抽屉显示位置",type:"select",default:"right",editor:{type:"combo-list",textField:"name",valueField:"value",editable:!1,data:[{value:"left",name:"左侧"},{value:"right",name:"右侧"}]}},width:{title:"宽度",description:"抽屉宽度",type:"number"},showMask:{title:"显示遮罩",description:"是否显示遮罩",type:"boolean",default:!0}},setPropertyRelates(t,e){if(t)switch(t&&t.propertyID){case"title":{t.needRefreshControlTree=!0;break}}}}}}function Lt(n,t){function e(){return!1}function o(){return!1}function r(){return!1}function s(){return!0}function a(){return"position: absolute !important;border: none !important;left: 0;right: 0;padding: 0;"}function f(u){const c=new Ft(u,t),{schema:m}=n;return c.getPropertyConfig(m)}return{canAccepts:e,checkCanDeleteComponent:o,checkCanMoveComponent:r,hideNestedPaddingInDesginerView:s,getStyles:a,getPropsConfig:f}}class Ge{constructor(t){U(this,"id","");U(this,"class","btn-secondary");U(this,"icon","");U(this,"groupId","");U(this,"order",-1);U(this,"asDropDownTop",!1);U(this,"text","");U(this,"visible",!0);U(this,"shown",!0);U(this,"responsed",!1);U(this,"tipsEnable",!1);U(this,"tipsText","");U(this,"width",0);U(this,"dropdownClass","");U(this,"onClick",()=>{});U(this,"options");var o,r;this.options=t;const e=["id","class","icon","groupId","order","asDropDownTop","text","isDP","visible","responsed","width","tipsEnable","tipsText","dropdownClass","onClick"];Object.keys(t).filter(s=>e.indexOf(s)>-1).forEach(s=>{s==="visible"?this[s]=t[s]===void 0?!0:t[s]:this[s]=t[s]}),this.shown=this.visible,(o=t.appearance)!=null&&o.class&&(this.class=(r=t.appearance)==null?void 0:r.class)}get enable(){return Object.keys(this.options).indexOf("disabled")>-1?!this.options.disabled:i.computed(()=>!0)}setWidth(t){this.width=parseInt(t,10)}getWidth(){return this.visible?this.width:!1}}class qt extends Ge{constructor(t){super(t)}}function Qe(){function n(t){const e=[];return t.reduce((o,r)=>(r.children&&r.children.length>0?o.push(new ye(r)):o.push(new qt(r)),o),e),e}return{buildResponseToolbarItems:n}}const{buildResponseToolbarItems:Ut}=Qe();class ye extends Ge{constructor(e){super(e);U(this,"placement","");U(this,"visible",!0);U(this,"dropdownClass","");U(this,"menuClass","");U(this,"split",!1);U(this,"children",[]);U(this,"expanded",!1);U(this,"shown",!0);const o=["visible","icon","isDP","class","dropdownClass","menuClass","placement","split","expanded"];Object.keys(e).filter(r=>o.indexOf(r)>-1).forEach(r=>{r==="visible"?this[r]=e[r]===void 0?!0:e[r]:this[r]=e[r]}),this.shown=this.visible,e.children&&e.children.length&&(this.children=Ut(e.children))}}const Wt=new Map([["buttons","items"],["appearance",ze]]);function Je(n,t,e){return t}const Ht={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar.schema.json",title:"response-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]},buttonSize:{type:"string",default:""},visible:{description:"",type:"boolean",default:!0}},required:["id","type","buttons"],events:{onClick:"点击事件"}},zt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar-item.schema.json",title:"response-toolbar-item",description:"A Farris Toolbar Item Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar-item"},appearance:{description:"",type:"object",properties:{class:{type:"string",default:""}}},alignment:{description:"对齐",type:"string",default:"right"},text:{description:"文本",type:"string",default:"按钮"},icon:{description:"图标",type:"string",default:""},disabled:{description:"禁用",type:"boolean",default:!1},visible:{description:"是否可见",type:"boolean",default:!0},onClick:{description:"点击事件",type:"string",default:""},tipsEnable:{description:"",type:"boolean",default:!1},tipsText:{description:"",type:"string",default:""},dropdownClass:{description:"处于下拉菜单时的样式",type:"string",default:""},split:{description:"",type:"boolean",default:!1}},required:["id","type","text"]},Pe={id:{type:String,default:""},customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]},visible:{type:Boolean,default:!0}},Xt=Object.assign({},Pe,{componentId:{type:String,default:""}}),Me=xe(Pe,Ht,Wt,Je),Ze={id:{type:String,default:""},item:{type:Object,default:{}},items:{type:Object,default:{}},class:{type:String,default:"btn-secondary"},text:{type:String,default:""},disabled:{type:Boolean,default:!1},icon:{type:String,default:""},componentId:{type:String,default:""},expanded:{type:Boolean,default:!1},alignment:{Type:String,default:"right"},split:{type:Boolean,default:!1},isDP:{type:Boolean,default:!1},isDPItem:{type:Boolean,default:!1}},Yt=xe(Ze,zt,void 0,Je),Gt=kt();function ke(){function n(e){const o={"f-icon":!0};if(e.icon){const r=e.icon.trim().split(" ");r&&r.length&&r.reduce((s,a)=>(s[a]=!0,s),o)}return o}function t(e){return!!(e.icon&&e.icon.trim())}return{iconClass:n,shouldShowIcon:t}}const Qt=["moz","ms","webkit"];function Jt(){let n=0;return t=>{const e=new Date().getTime(),o=Math.max(0,16-(e-n)),r=setTimeout(()=>{t(e+o)},o);return n=e+o,r}}function Zt(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const n=Qt.filter(t=>`${t}RequestAnimationFrame`in window)[0];return n?window[`${n}RequestAnimationFrame`]:Jt()}Zt();function De(n,t){return((t==null?void 0:t.split(" "))||[]).reduce((o,r)=>(r&&(o[r]=!0),o),n),n}function Kt(n,t){function e(v){const p={"dropdown-menu":!0};if(v.class){const P=v.menuClass.split(" ");P&&P.length&&P.reduce((I,N)=>(I[N]=!0,I),p)}return p}function o(v){const p={disabled:!v.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0,"text-truncate":!0};return De(p,v.dropdownClass)}function r(v){const p={disabled:!v.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0};return De(p,v.dropdownClass)}function s(v){const p={disabled:!v.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0,"f-rt-toggle":!0};return De(p,v.dropdownClass)}let a;const f=new Map;function u(v,p,P){v.stopPropagation();const I=P?P.id:"__top_item__";if(p.children&&p.children.length&&(p.expanded=!p.expanded,p.expanded)){if(f.has(I)&&f.get(I)!==p){const N=f.get(I);N&&(N.expanded=!1,f.delete(I))}f.set(I,p)}}function c(v,p){document.body.click(),p.enable&&(v.stopPropagation(),typeof p.onClick=="function"&&p.onClick(v,p.id),n.emit("click",v,p.id))}function m(v,p){const P=v.target;P.className.indexOf("dropdown-item")<0||(P.title=P.scrollWidth>P.clientWidth?p:"")}function d(v,p){if(p.tipsEnable&&p.tipsText){const P=i.reactive({content:p.tipsText,enable:p.tipsEnable});return i.withDirectives(i.createVNode("li",{class:r(p),id:p.id,onClick:I=>c(I,p)},[i.createVNode("span",{class:"f-rt-btn text-truncate"},[t.shouldShowIcon(p)&&i.createVNode("i",{class:t.iconClass(p)},null),p.text])]),[[i.resolveDirective("tooltip"),P]])}return i.createVNode("li",{class:r(p),id:p.id,onClick:P=>c(P,p)},[i.createVNode("span",{class:"f-rt-btn text-truncate",onMouseenter:P=>m(P,p.text)},[t.shouldShowIcon(p)&&i.createVNode("i",{class:t.iconClass(p)},null),p.text])])}function g(v,p,P){p.enable&&(typeof p.onClick=="function"&&P.onClick(v,p.id),n.emit("click",v,p.id),u(v,p,P))}function h(v,p){if(p.tipsEnable&&p.tipsText){const P=i.reactive({content:p.tipsText,enable:p.tipsEnable});return i.createVNode("li",{class:o(p),id:p.id,onClick:I=>g(I,p,v)},[i.withDirectives(i.createVNode("span",{class:s(p)},[t.shouldShowIcon(p)&&i.createVNode("i",{class:t.iconClass(p)},null),p.text]),[[i.resolveDirective("tooltip"),P]]),a(p,p)])}return i.createVNode("li",{class:o(p),id:p.id,onClick:P=>g(P,p,v),onMouseenter:P=>m(P,p.text)},[i.createVNode("span",{class:s(p)},[t.shouldShowIcon(p)&&i.createVNode("i",{class:t.iconClass(p)},null),p.text]),a(p,p)])}function b(v){return v.children.filter(p=>p.visible).map(p=>p.children&&p.children.length?h(v,p):d(v,p))}function x(v,p,P){var E;const I={display:v.expanded?"block":"none",position:"fixed",maxWidth:"300px",minWidth:"120px",zIndex:1040},N=(E=document.getElementsByTagName("body")[0].getClientRects()[0])==null?void 0:E.width,$=p,O=$==null?void 0:$.getClientRects();if($&&O&&O.length){const{top:_,width:y,left:l,right:T,height:D}=O[0],C=Math.ceil(D+_);I.top=`${C}px`,I.left=`${l}px`;const V=v.id+"_menu",A=p?p.querySelector("#"+V):null;if(A){A.style.visibility="hidden",A.style.display="block";const S=A.offsetHeight;I.display==="block"&&(A.style.display="block");const M=A.getBoundingClientRect();if(P){I.top=`${_-6}px`;const j=Math.ceil(y+l);I.left=`${j}px`}N-l-y<M.width&&(I.left=`${(P?l:T)-M.width}px`),window.innerHeight-_-D<S&&(_>S?I.top=`${_-S-6}px`:(I.maxHeight=`${_-16}px`,I.overflowY="auto",_-D>window.innerHeight-_&&(I.top="10px"))),A.style.visibility="visible"}}return I}a=function(v,p){var $,O;const P=i.getCurrentInstance(),I=p?p.id:v.id,N=(O=($=P==null?void 0:P.exposed)==null?void 0:$.elementRef.value)==null?void 0:O.querySelector("#"+I);return i.createVNode("ul",{class:e(v),style:x(v,N,p),id:v.id+"_menu"},[b(v)])};function k(){f.forEach(v=>{v.expanded=!1}),f.clear()}return{renderDropdownMenu:a,clearAllDropDownMenu:k}}function en(n,t,e){const o=i.ref(n.alignment),{renderDropdownMenu:r,clearAllDropDownMenu:s}=Kt(t,e);function a(d){const g={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":o.value==="right"||o.value==="center","f-btn-mr":o.value==="left"},h=d.dropdownClass.split(" ");return h&&h.length&&h.reduce((b,x)=>(b[x]=!0,b),g),g}function f(d){const g={btn:!0,disabled:!d.enable,"f-rt-btn":!0,"btn-icontext":!!(d.icon&&d.icon.trim())};if(d.class){const h=d.class.split(" ");h&&h.length&&h.reduce((b,x)=>(b[x]=!0,b),g)}return g}function u(d,g){d.stopPropagation();const h=g.expanded;document.body.click(),typeof g.onClick=="function"&&g.onClick(d,g.id),t.emit("click",d,g.id),g.expanded=!h}function c(d,g=!0){if(d.tipsEnable&&d.tipsText){const h=i.reactive({content:d.tipsText,enable:d.tipsEnable});return i.createVNode("div",{id:d.id,class:a(d)},[i.withDirectives(i.createVNode("div",{class:f(d),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:b=>d.enable&&u(b,d)},[e.shouldShowIcon(d)&&i.createVNode("i",{class:e.iconClass(d)},null),i.createVNode("span",null,[d.text]),i.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),[[i.resolveDirective("tooltip"),h]]),g&&r(d)])}return i.createVNode("div",{id:d.id,class:a(d)},[i.createVNode("div",{class:f(d),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:h=>d.enable&&u(h,d)},[e.shouldShowIcon(d)&&i.createVNode("i",{class:e.iconClass(d)},null),i.createVNode("span",null,[d.text]),i.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),g&&r(d)])}function m(){s()}return{renderToolbarDropdown:c,clearAllDropDown:m}}const{buildResponseToolbarItems:Ke}=Qe(),ve=i.defineComponent({name:"FResponseToolbar",props:Pe,emits:["click"],setup(n,t){const e=i.ref(Ke(n.items)),o=i.ref(),r=i.ref(),s=i.ref(),a={id:"__more_buttons__",text:"更多"},f=i.ref(new ye(a)),u={id:a.id+"width",text:a.text},c=i.ref(-1),m=ke();let d=!1;const g=i.computed(()=>f.value.children.length>0),h=i.computed(()=>{const S={"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0,"f-response-toolbar-sm":n.buttonSize==="sm","f-response-toolbar-lg":n.buttonSize==="lg","d-none":!n.visible};return ce.getCustomClass(S,n.customClass)}),b=i.computed(()=>({"w-100":!0,"d-flex":!0,"flex-nowrap":!0,"justify-content-end":n.alignment==="right","justify-content-start":n.alignment==="left","justify-content-center":n.alignment==="center"})),{renderToolbarDropdown:x,clearAllDropDown:k}=en(n,t,m);function v(S){S&&S.target.closest("ul.dropdown-menu")&&S.type==="wheel"||(e.value.filter(M=>M.children&&M.children.length>0).forEach(M=>{M.expanded=!1}),f.value.expanded=!1,k())}function p(S,M){var q;const j={btn:!0,"f-rt-btn":!0,"f-btn-ml":n.alignment==="right"||M>0&&n.alignment==="center","f-btn-mr":n.alignment==="left","btn-icontext":!!(S.icon&&S.icon.trim())},W=((q=S==null?void 0:S.appearance)==null?void 0:q.class)||S.class||"btn-secondary";if(W){const z=W.split(" ");z&&z.length&&z.reduce((X,Q)=>(X[Q]=!0,X),j)}return j}function P(S,M){document.body.click(),typeof M.onClick=="function"&&M.onClick(S,M.id),t.emit("click",S,M.id)}function I(S,M){if(S.tipsEnable&&S.tipsText){const j=i.reactive({content:S.tipsText,enable:S.tipsEnable});return i.withDirectives(i.createVNode("button",{type:"button",class:p(S,M),id:S.id,disabled:!S.enable,onClick:W=>P(W,S)},[m.shouldShowIcon(S)&&i.createVNode("i",{class:m.iconClass(S)},null),S.text]),[[i.resolveDirective("tooltip"),j]])}return i.createVNode("button",{type:"button",class:p(S,M),id:S.id,disabled:!S.enable,onClick:j=>P(j,S)},[m.shouldShowIcon(S)&&i.createVNode("i",{class:m.iconClass(S)},null),S.text])}let N=new Map,$=[];function O(S){const M=S.computedStyleMap().get("margin-left"),j=S.computedStyleMap().get("margin-right");return(M?M.value:0)+S.getBoundingClientRect().width+(j?j.value:0)}function E(S,M,j){if(M<c.value){let W=j-1;for(;W>=0;W--){const q=S[W],z=O(q);if(M+=z,M>=c.value)break}j=W}return M-=c.value,{start:j,space:M}}function _(S){const M=s.value;let j=S;const q=Array.from(M.children).filter(ee=>ee.id!=="__more_buttons__"),z=q.length;let X=!1,Q=0;for(;Q<z;Q++){const ee=q[Q],re=O(ee);if(re<=j)j-=re;else{const Z=E(q,j,Q);Q=Z.start,j=Z.space,X=!0;break}}if(!X&&$.length>0){const ee=E(q,j,Q);Q=ee.start,j=ee.space}const H=$.length>0;for(;Q<z;Q++){const ee=q[Q],re=O(ee);N.set(ee.id,!0),$[H?"unshift":"push"]({id:ee.id,width:re})}return j}function y(S){let M=_(S);if($.length){let z=0;for(;z<$.length;z++){const X=n.items.find(Q=>Q.id===$[z].id);if(X&&X.visible!==!1){const Q=$[z].width;if(M>=Q||z===$.length-1&&M+c.value>=Q)M-=Q;else break}}for(let X=0;X<z;X++)N.delete($[X].id);$.splice(0,z-1)}const j=Object.assign({},f.value);j.children=[];const W=new ye(j),q=e.value.reduce((z,X)=>{const Q=n.items.find(H=>H.id===X.id);return N.has(X.id)?(W.children.push(X),X.shown=!1):X.shown=Q.visible!==!1,z.push(X),z},[]);f.value=W,e.value=q}function l(S=-1){if(S===0||!s.value||!r.value)return;S<0&&(S=r.value.getBoundingClientRect().width);const M=s.value.getBoundingClientRect().width;(S>=0&&S<M||$.length)&&(y(S),v())}function T(){return c.value<0&&i.createVNode("div",{style:"position:absolute;top:-30px;visibility:hidden;"},[x(new ye(u))])}const D=new ResizeObserver(S=>{if(S.length){const j=S[0].contentRect.width;l(j)}});function C(){N=new Map,$=[]}function V(){r.value&&!d&&(D.observe(r.value),d=!0)}function A(){if(o.value&&c.value<0){const S=o.value.querySelector("#"+u.id);S&&(c.value=O(S))}}return i.onMounted(()=>{A(),l(),V(),document.body.addEventListener("click",v),document.body.addEventListener("wheel",v)}),i.onUnmounted(()=>{D.disconnect(),document.body.removeEventListener("click",v),document.body.removeEventListener("wheel",v)}),i.watch(()=>n.items,()=>{e.value=Ke(n.items),f.value.children=[],i.nextTick(()=>{C(),l()})},{deep:!0}),i.watch(()=>n.visible,S=>{S&&i.nextTick(()=>{A(),l(),V()})}),t.expose({elementRef:o}),()=>i.createVNode("div",{class:h.value,id:n.id,ref:o,style:{"overflow-y":c.value<0?"hidden":"initial"}},[n.visible&&T(),n.visible&&i.createVNode("div",{ref:r,class:b.value},[i.createVNode("div",{ref:s,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[e.value.filter(S=>S.shown).map((S,M)=>S.children&&S.children.length>0?x(S):I(S,M)),g.value&&x(f.value)])])])}});class tn extends be{constructor(t,e){super(t,e)}getPropertyConfig(t){return this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.getAppearancePropConfig(t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(t),this.propertyConfig}getAppearancePropConfig(t){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"}}}}getBehaviorProperties(t){this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{alignment:{title:"对齐方式",description:"在工具栏区域内按钮组的位置",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}}function nn(n,t,e){const o=n.schema;function r(h){return!1}function s(h,b){return b.text=h.label,b}function a(){return!1}function f(){return!1}function u(){return!1}function c(){return!0}function m(h){return new tn(h,t).getPropertyConfig(o)}function d(h){var v;h&&(h.stopPropagation(),h.preventDefault());const{schema:b}=n;b.buttons||(b.buttons=[]);let x="";if(b.type)x=b.type+"-item";else{const p=(v=n.parent)==null?void 0:v.schema.type;x=p==="tabs"?"tab-toolbar-item":p==="section"?"section-toolbar-item":"response-toolbar-item"}const k=he(x);k.id=`toolbar_item_${Math.random().toString().slice(2,6)}`,b.buttons.push(k),e.updateToolbarItems(),e.changeSelectedId("")}function g(){return[{id:"appendItem",title:"新增按钮",text:"",icon:"f-icon f-icon-plus-circle text-white",onClick:h=>d(h)}]}return{canAccepts:r,checkCanAddComponent:u,checkCanDeleteComponent:f,checkCanMoveComponent:a,hideNestedPaddingInDesginerView:c,onResolveNewComponentSchema:s,getPropsConfig:m,getCustomButtons:g}}var de=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function on(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function we(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var et={exports:{}};(function(n,t){(function(e){n.exports=e()})(function(){return function(){function e(o,r,s){function a(c,m){if(!r[c]){if(!o[c]){var d=typeof we=="function"&&we;if(!m&&d)return d(c,!0);if(f)return f(c,!0);var g=new Error("Cannot find module '"+c+"'");throw g.code="MODULE_NOT_FOUND",g}var h=r[c]={exports:{}};o[c][0].call(h.exports,function(b){var x=o[c][1][b];return a(x||b)},h,h.exports,e,o,r,s)}return r[c].exports}for(var f=typeof we=="function"&&we,u=0;u<s.length;u++)a(s[u]);return a}return e}()({1:[function(e,o,r){var s={},a="(?:^|\\s)",f="(?:\\s|$)";function u(d){var g=s[d];return g?g.lastIndex=0:s[d]=g=new RegExp(a+d+f,"g"),g}function c(d,g){var h=d.className;h.length?u(g).test(h)||(d.className+=" "+g):d.className=g}function m(d,g){d.className=d.className.replace(u(g)," ").trim()}o.exports={add:c,rm:m}},{}],2:[function(e,o,r){(function(s){var a=e("contra/emitter"),f=e("crossvent"),u=e("./classes"),c=document,m=c.documentElement;function d(l,T){var D=arguments.length;D===1&&Array.isArray(l)===!1&&(T=l,l=[]);var C,V,A,S,M,j,W,q,z,X=null,Q,H,ee=!1,re=0,Z,F=T||{};F.moves===void 0&&(F.moves=p),F.accepts===void 0&&(F.accepts=p),F.invalid===void 0&&(F.invalid=xn),F.containers===void 0&&(F.containers=l||[]),F.isContainer===void 0&&(F.isContainer=v),F.copy===void 0&&(F.copy=!1),F.copySortSource===void 0&&(F.copySortSource=!1),F.revertOnSpill===void 0&&(F.revertOnSpill=!1),F.removeOnSpill===void 0&&(F.removeOnSpill=!1),F.direction===void 0&&(F.direction="vertical"),F.ignoreInputTextSelection===void 0&&(F.ignoreInputTextSelection=!0),F.mirrorContainer===void 0&&(F.mirrorContainer=c.body);var K=a({containers:F.containers,start:Cn,end:ft,cancel:gt,remove:mt,destroy:bn,canMove:wn,dragging:!1});return F.removeOnSpill===!0&&K.on("over",Sn).on("out",En),lt(),K;function Ie(w){return K.containers.indexOf(w)!==-1||F.isContainer(w)}function lt(w){var B=w?"remove":"add";b(m,B,"mousedown",yn),b(m,B,"mouseup",$e)}function Be(w){var B=w?"remove":"add";b(m,B,"mousemove",vn)}function ct(w){var B=w?"remove":"add";f[B](m,"selectstart",dt),f[B](m,"click",dt)}function bn(){lt(!0),$e({})}function dt(w){Q&&w.preventDefault()}function yn(w){S=w.clientX,M=w.clientY;var B=x(w)!==1||w.metaKey||w.ctrlKey;if(!B){var R=w.target,L=Ae(R);L&&(Q=L,Be(),w.type==="mousedown"&&($(R)?R.focus():w.preventDefault()))}}function vn(w){if(Q){if(x(w)===0){$e({});return}if(!(w.clientX!==void 0&&Math.abs(w.clientX-S)<=(F.slideFactorX||0)&&w.clientY!==void 0&&Math.abs(w.clientY-M)<=(F.slideFactorY||0))){if(F.ignoreInputTextSelection){var B=y("clientX",w)||0,R=y("clientY",w)||0,L=c.elementFromPoint(B,R);if($(L))return}var Y=Q;Be(!0),ct(),ft(),ut(Y),u.add(q||A,"gu-transit"),Mn(),Pn(),re=0,je(w)}}}function Ae(w){if(!(K.dragging&&C)&&!Ie(w)){for(var B=w;N(w)&&Ie(N(w))===!1;)if(F.invalid(w,B)||(w=N(w),!w))return;var R=N(w);if(R&&!F.invalid(w,B)){var L=F.moves(w,R,B,E(w));if(L)return{item:w,source:R}}}}function wn(w){return!!Ae(w)}function Cn(w){var B=Ae(w);B&&ut(B)}function ut(w){$n(w.item,w.source)&&(q=w.item.cloneNode(!0),K.emit("cloned",q,w.item,"copy")),V=w.source,A=w.item,j=W=E(w.item),K.dragging=!0,K.emit("drag",A,V)}function xn(){return!1}function ft(){if(K.dragging){var w=q||A;ht(w,N(w))}}function pt(){Q=!1,Be(!0),ct(!0)}function $e(w){if(pt(),!!K.dragging){var B=q||A,R=y("clientX",w)||0,L=y("clientY",w)||0,Y=k(C,R,L),G=bt(Y,R,L);G&&(q&&F.copySortSource||!q||G!==V)?ht(B,G):F.removeOnSpill?mt():gt()}}function ht(w,B){var R=N(w);q&&F.copySortSource&&B===V&&R.removeChild(A),Re(B)?K.emit("cancel",w,V):K.emit("drop",w,B,V,W),Oe()}function mt(){if(K.dragging){var w=q||A,B=N(w);B&&B.removeChild(w),K.emit(q?"cancel":"remove",w,B,V),Oe()}}function gt(w){if(K.dragging){var B=arguments.length>0?w:F.revertOnSpill,R=q||A,L=N(R),Y=Re(L);Y===!1&&B&&(q?L&&L.removeChild(q):V.insertBefore(R,j)),Y||B?K.emit("cancel",R,V,V):K.emit("drop",R,L,V,W),Oe()}}function Oe(){var w=q||A;pt(),kn(),Dn(),w&&u.rm(w,"gu-transit"),z&&clearTimeout(z),K.dragging=!1,X&&K.emit("out",w,X,V),K.emit("dragend",w,re),V=A=q=j=W=z=X=null}function Re(w,B){var R;return B!==void 0?R=B:C?R=W:R=E(q||A),w===V&&R===j}function bt(w,B,R){for(var L=w;L&&!Y();)L=N(L);return L;function Y(){var G=Ie(L);if(G===!1)return!1;var ae=yt(L,w),oe=vt(L,ae,B,R),se=Re(L,oe);return se?!0:F.accepts(A,L,V,oe)}}function je(w){if(!C)return;w.preventDefault();var B=y("clientX",w)||0,R=y("clientY",w)||0;C.style.left=B-2+"px",C.style.top=R-2+"px";var L=q||A,Y=k(C,B,R),G=bt(Y,B,R),ae=G!==null&&G!==X;(ae||G===null)&&(ie(),X=G,fe()),An(Y,R);var oe=N(L);if(G===V&&q&&!F.copySortSource){oe&&oe.removeChild(L);return}var se,ue=yt(G,Y);if(ee=Vn(ue,G),ue!==null)se=vt(G,ue,B,R);else if(F.revertOnSpill===!0&&!q)se=j,G=V;else{q&&oe&&oe.removeChild(L),q&&H&&(H.style.display="none");return}H.style.display="block",Tn(se,L,ae),se?In(ue,se):Bn(G);function te(ne){K.emit(ne,L,X,V)}function fe(){ae&&te("over")}function ie(){X&&te("out")}}function Tn(w,B,R){(w===B||w===E(B))&&(W=E(B)),(w===null&&R||w!==B&&w!==E(B))&&(W=w)}function Sn(w){u.rm(w,"gu-hide")}function En(w){K.dragging&&u.add(w,"gu-hide")}function Pn(){C||(C=document.createElement("div"),C.style="background: grey; color: white; height: 24px; text-align: center; padding: 3px 10px; min-width: 100px;border-radius: 4px; box-shadow: 0 0 6px grey;",C.innerHTML=F.getMirrorText&&F.getMirrorText(A)||"控件",u.add(C,"gu-mirror"),F.mirrorContainer.appendChild(C),b(m,"add","mousemove",je),u.add(F.mirrorContainer,"gu-unselectable"),K.emit("cloned",C,A,