UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 93 kB
(function(J,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("lodash-es"),require("../response-toolbar/index.umd.js"),require("bignumber.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../response-toolbar/index.umd.js","bignumber.js","../common/index.umd.js","../designer-canvas/index.umd.js"],s):(J=typeof globalThis<"u"?globalThis:J||self,s(J["page-header"]={},J.Vue,J.LodashES,J.FResponseToolbar$1,J.BigNumber,J.common,J.designerCanvas))})(this,function(J,s,oe,wt,Ln,fe,Fe){"use strict";var _n=Object.defineProperty;var Fn=(J,s,oe)=>s in J?_n(J,s,{enumerable:!0,configurable:!0,writable:!0,value:oe}):J[s]=oe;var H=(J,s,oe)=>Fn(J,typeof s!="symbol"?s+"":s,oe);const Le={},qe={};function we(n){const{properties:t,title:e,ignore:o}=n,r=o&&Array.isArray(o),i=Object.keys(t).reduce((a,u)=>((!r||!o.find(d=>d===u))&&(a[u]=t[u].type==="object"&&t[u].properties?we(t[u]):oe.cloneDeep(t[u].default)),a),{});if(e&&(!r||!o.find(a=>a==="id"))){const a=e.toLowerCase().replace(/-/g,"_");i.id=`${a}_${Math.random().toString().slice(2,6)}`}return i}function xt(n){const{properties:t,title:e,required:o}=n;if(o&&Array.isArray(o)){const r=o.reduce((i,a)=>(i[a]=t[a].type==="object"&&t[a].properties?we(t[a]):oe.cloneDeep(t[a].default),i),{});if(e&&o.find(i=>i==="id")){const i=e.toLowerCase().replace(/-/g,"_");r.id=`${i}_${Math.random().toString().slice(2,6)}`}return r}return{type:e}}function pe(n,t={},e){const o=Le[n];if(o){let r=xt(o);const i=qe[n];return r=i?i({getSchemaByType:pe},r,t,e):r,r}return null}function Tt(n,t){const e=we(t);return Object.keys(e).reduce((o,r)=>(Object.prototype.hasOwnProperty.call(n,r)&&(o[r]&&oe.isPlainObject(o[r])&&oe.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 i=t.get(r);if(typeof i=="string")o[i]=n[r];else{const a=i(r,n[r],n);Object.assign(o,a)}}else o[r]=n[r];return o},{})}function St(n,t,e=new Map){const o=Tt(n,t);return He(o,e)}function Pt(n={}){function t(p,m,l,h){if(typeof l=="number")return h[p].length===l;if(typeof l=="object"){const g=Object.keys(l)[0],b=l[g];if(g==="not")return Number(h[p].length)!==Number(b);if(g==="moreThan")return Number(h[p].length)>=Number(b);if(g==="lessThan")return Number(h[p].length)<=Number(b)}return!1}function e(p,m,l,h){return h[p]&&h[p].propertyValue&&String(h[p].propertyValue.value)===String(l)}const o=new Map([["length",t],["getProperty",e]]);Object.keys(n).reduce((p,m)=>(p.set(m,n[m]),p),o);function r(p,m){const l=p;return typeof m=="number"?[{target:l,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:l,operator:"getProperty",param:p,value:!!m}]:typeof m=="object"?Object.keys(m).map(h=>{if(h==="length")return{target:l,operator:"length",param:null,value:m[h]};const g=h,b=m[h];return{target:l,operator:"getProperty",param:g,value:b}}):[]}function i(p){return Object.keys(p).reduce((l,h)=>{const g=r(h,p[h]);return l.push(...g),l},[])}function a(p,m){if(o.has(p.operator)){const l=o.get(p.operator);return l&&l(p.target,p.param,p.value,m)||!1}return!1}function u(p,m){return i(p).reduce((g,b)=>g&&a(b,m),!0)}function d(p,m){const l=Object.keys(p),h=l.includes("allOf"),g=l.includes("anyOf"),b=h||g,v=(b?p[b?h?"allOf":"anyOf":"allOf"]:[p]).map(w=>u(w,m));return h?!v.includes(!1):v.includes(!0)}return{parseValueSchema:d}}const Et={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:"筛选条"}},Dt={},Mt={};Pt();function xe(n,t,e=new Map,o=(a,u,d,p)=>u,r={},i=a=>a){return Le[t.title]=t,qe[t.title]=o,Dt[t.title]=r,Mt[t.title]=i,(a={},u=!0)=>{if(!u)return He(a,e);const d=St(a,t,e),p=Object.keys(n).reduce((m,l)=>(m[l]=n[l].default,m),{});return Object.assign(p,d)}}function Ue(n,t){return{customClass:t.class,customStyle:t.style}}function kt(n,t){var o,r;const e={};if(t!=null&&t.buttons){const i=[];(o=t==null?void 0:t.buttons)==null||o.map(a=>{const u={};Object.keys(a).map(d=>{var p;d==="appearance"?u.class=((p=a[d])==null?void 0:p.class)||"":u[d]=a[d]}),i.push(u)}),e.buttons=i}return(r=t==null?void 0:t.appearance)!=null&&r.class&&(e.buttonClass=t.appearance.class||"col-6"),t!=null&&t.id&&(e.toolbarId=t.id),t&&Object.prototype.hasOwnProperty.call(t,"visible")&&(e.buttonsVisible=t.visible),e}function We(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 Vt(){function n(t,e){var u;const o=(u=t.toolbar)==null?void 0:u.buttons;if(!o||o.length<1)return null;const[r,i]=e.payloads,a=We(o,i);return a?a.onClick||a.click:null}return{resolve:n}}function Nt(){function n(t,e){const o=t.buttons;if(!o||o.length<1)return null;const[r,i]=e.payloads,a=We(o,i);return a?a.onClick||a.click:null}return{resolve:n}}const It=new Map([["appearance",Ue],["toolbar",kt]]),Bt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/page-header.schema.json",title:"page-header",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a Page Header",type:"string"},type:{description:"The type string of Page Header component",type:"string",default:"page-header"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},showIcon:{description:"",type:"boolean",default:!0},icon:{description:"",type:"string",default:"f-icon-page-title-record"},iconClass:{description:"",type:"string",default:"f-text-orna-bill"},title:{description:"",type:"string",default:""},subTitle:{description:"",type:"string",default:""},toolbar:{description:"",type:"object",properties:{appearance:{description:"",type:"object",properties:{class:{type:"string",default:"col-6"}}},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:[]},visible:{description:"",type:"boolean",default:!0}}},buttonClass:{description:"",type:"string",default:"col-6"},toolbarId:{description:"",type:"string",default:""},titleContentClass:{description:"",type:"string",default:""},contentClass:{description:"",type:"string",default:""},downContentClass:{description:"",type:"string",default:""},showPagination:{description:"",type:"boolean",default:!1},prePaginationDisabled:{description:"",type:"boolean",default:!0},nextPaginationDisabled:{description:"",type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]};function At(n,t,e){return t.title="标题",t}const he={customClass:{type:String,default:""},showIcon:{type:Boolean,default:!0},icon:{type:String,default:"f-icon-page-title-record"},iconClass:{type:String,default:"f-text-orna-bill"},title:{type:String,default:""},subTitle:{type:String,default:""},buttonClass:{type:String,default:"col-6"},toolbarId:{type:String,default:""},buttons:{type:Array,default:[]},titleContentClass:{type:String,default:""},contentClass:{type:String,default:""},downContentClass:{type:String,default:""},showPagination:{type:Boolean,default:!1},prePaginationDisabled:{type:Boolean,default:!0},nextPaginationDisabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},buttonsVisible:{type:Boolean,default:!0}},ze=Object.assign({},he,{componentId:{type:String,default:""}}),Te=xe(he,Bt,It,At),Xe=Vt(),me=s.defineComponent({name:"FPageHeader",props:he,emits:["click","prePaginationClick","nextPaginationClick"],setup(n,t){const e=s.ref(n.buttons),o=(w,k)=>{t.emit("click",w,k)};function r(w,k){w&&k&&k.split(" ").reduce((A,R)=>(A[R]=!0,A),w)}const i=s.computed(()=>{const w={"f-page-header":!0,"d-none":!n.visible};return r(w,n.customClass),w}),a=s.computed(()=>{const w={"f-title-icon":!0};return r(w,n.iconClass),w}),u=s.computed(()=>{const w={"f-icon":!0};return r(w,n.icon),w}),d=s.computed(()=>{const w={"f-title":!0};return r(w,n.titleContentClass),w}),p=s.computed(()=>{const w={"f-content":!0};return r(w,n.contentClass),w}),m=s.computed(()=>{const w={"f-content":!0};return r(w,n.downContentClass),w}),l=s.computed(()=>({"f-icon f-icon-arrow-w":!0,"f-state-disabled":n.prePaginationDisabled})),h=s.computed(()=>({"f-icon f-icon-arrow-e":!0,"f-state-disabled":n.nextPaginationDisabled}));function g(w){n.prePaginationDisabled||t.emit("prePaginationClick",w)}function b(w){n.nextPaginationDisabled||t.emit("nextPaginationClick",w)}function C(){return t.slots.titleContent?s.createVNode("div",{class:d.value},[s.createTextVNode(" "),t.slots.titleContent()]):s.createVNode("div",{class:"f-title"},[n.showIcon&&n.icon?s.createVNode("span",{class:a.value},[s.createVNode("i",{class:u.value},null)]):"",s.createVNode("h4",{class:"f-title-text"},[n.title]),n.subTitle?s.createVNode("h5",{class:"f-title-subtitle"},[n.subTitle]):"",n.showPagination?s.createVNode("div",{class:"f-title-pagination"},[s.createVNode("span",{class:l.value,onClick:g},null),s.createVNode("span",{class:h.value,onClick:b},null)]):""])}function D(){return t.slots.content?s.createVNode("div",{class:p.value},[s.createTextVNode(" "),t.slots.content()]):""}function v(){if(n.buttons&&n.buttons.length>0)return s.createVNode(wt,{id:n.toolbarId,customClass:n.buttonClass,visible:n.buttonsVisible,items:e.value,onClick:o},null)}function f(){return t.slots.downContent?s.createVNode("div",{class:m.value},[s.createTextVNode(" "),t.slots.downContent()]):""}return s.watch(()=>n.buttons,w=>{e.value=w},{deep:!0}),()=>n.visible?s.createVNode("div",{class:i.value},[s.createVNode("nav",{class:"f-page-header-base"},[C(),D(),v()]),f()]):null}});function $t(n,t,e){var R;const o=e&&e.getStyles&&e.getStyles()||"",r=e&&e.getDesignerClass&&e.getDesignerClass()||"",i=s.ref();function a(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanMoveComponent?e.checkCanMoveComponent():!0}function u(){return!1}function d(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:e&&e.checkCanDeleteComponent?e.checkCanDeleteComponent():!0}function p(){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 _=s.ref(E==null?void 0:E.value.parent),x=m(_);return x||null}function l(E=t){var P;if(e!=null&&e.getDraggableDesignItemElement)return e.getDraggableDesignItemElement(E);const{componentInstance:_,designerItemElementRef:x}=E;if(!_||!_.value)return null;const{getCustomButtons:c}=_.value;return _.value.canMove||c&&((P=c())!=null&&P.length)?x:l(E.parent)}function h(E){return!!e&&e.canAccepts(E)}function g(){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 C(E,_){var x;!E||!_||(e!=null&&e.onAcceptMovedChildElement&&e.onAcceptMovedChildElement(E,_),(x=t==null?void 0:t.setupContext)==null||x.emit("dragEnd"))}function D(E,_){const{componentType:x}=E;let c=pe(x,E,_);e&&e.onResolveNewComponentSchema&&(c=e.onResolveNewComponentSchema(E,c));const P=x.toLowerCase().replace(/-/g,"_");return c&&!c.id&&c.type===x&&(c.id=`${P}_${Math.random().toString().slice(2,6)}`),c}function v(E){E&&e!=null&&e.onChildElementMovedOut&&e.onChildElementMovedOut(E)}function f(...E){if(e&&e.getPropsConfig)return e.getPropsConfig(...E)}function w(E){if(!E)return;const _=t==null?void 0:t.schema,{formSchemaUtils:x}=E;if(_&&x.getExpressions().length){const c=x.getExpressions().findIndex(P=>P.target===_.id);c>-1&&x.getExpressions().splice(c,1)}}function k(E){e&&e.onRemoveComponent&&e.onRemoveComponent(),w(E),t!=null&&t.schema.contents&&t.schema.contents.map(_=>{let x=_.id;_.type==="component-ref"&&(x=_.component);const c=n.value.querySelectorAll(`#${x}-design-item`);c!=null&&c.length&&Array.from(c).map(P=>{var I;(I=P==null?void 0:P.componentInstance)!=null&&I.value.onRemoveComponent&&P.componentInstance.value.onRemoveComponent(E)})})}function N(){if(e&&e.getCustomButtons)return e.getCustomButtons()}function A(E){if(e&&e.onPropertyChanged)return e.onPropertyChanged(E)}return i.value={canMove:a(),canSelectParent:u(),canDelete:d(),canNested:!p(),contents:t==null?void 0:t.schema.contents,elementRef:n,parent:(R=t==null?void 0:t.parent)==null?void 0:R.componentInstance,schema:t==null?void 0:t.schema,styles:o,designerClass:r,canAccepts:h,getBelongedComponentInstance:m,getDraggableDesignItemElement:l,getDraggingDisplayText:g,getPropConfig:f,getDragScopeElement:b,onAcceptMovedChildElement:C,onChildElementMovedOut:v,addNewChildComponentSchema:D,triggerBelongedComponentToMoveWhenMoved:!!e&&e.triggerBelongedComponentToMoveWhenMoved||s.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!e&&e.triggerBelongedComponentToDeleteWhenDeleted||s.ref(!1),onRemoveComponent:k,getCustomButtons:N,onPropertyChanged:A},i}const Rt=s.ref(0);function Ot(){Rt.value++}const ge=s.ref(0);function jt(n,t){const e=t.getBoundingClientRect(),o=n.getBoundingClientRect(),r=o.top>=e.top,i=o.top<=e.bottom;return r&&i}function Ye(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 i=e.left-r.width;const a=document.querySelector(".editorDiv");if(a){const u=a.getBoundingClientRect();i<u.left&&({left:i}=n.getBoundingClientRect())}o.style.left=i+"px"}}}function _t(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 Ge(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=_t(n);if(r&&(o=jt(n,r)),!o){e.style.display="none";return}Ye(n)}}function Ft(n){if(!n)return;let t;n.className.includes("dgComponentSelected")?t=n:t=n.querySelector(".dgComponentSelected"),t&&Ge(t)}function Lt(n){const{formSchemaUtils:t,formStateMachineUtils:e}=n;function o(d,p=""){return{path:p+d.code,field:d.id,fullPath:d.code}}function r(d,p=""){return t.getViewModelById(d).states.map(l=>o(l,p))}function i(d){const p=t.getRootViewModelId(),m=r(d);if(d===p)return m;const l=r(p,"root-component.");return[...m,...l]}function a(d){return d.binding&&d.binding.path||d.id||""}function u(){return e&&e.getRenderStates()||[]}return{getVariables:i,getControlName:a,getStateMachines:u}}class qt{constructor(t){H(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'"}]);H(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});H(this,"getExpressionConverter",(t,e)=>({convertFrom:(o,r,i,a)=>{const u=i.getExpressionRuleValue(t,e||r);return u&&u.value||""},convertTo:(o,r,i,a,u)=>{var d;if(r==="dataPicking"&&(i!=null&&i.target)){const p=`${i.target}_dataPicking`;((d=i.rules)==null?void 0:d.some(l=>l.id===p&&l.value))?o.dictPickingExpressionId=p:delete o.dictPickingExpressionId}a.updateExpression(i)}}));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 i=r.rules.find(a=>a.type===e);return i||""}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(i=>{r.push({key:i.code,name:i.name,description:i.name,category:i.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 u;const i=this.createTreeNode(r,e);let a=[];(u=r.type)!=null&&u.fields&&(a=this.buildEntityFieldsTreeData(r.type.fields,[...e,r.label])),o.push({data:i,children:a,expanded:!0})}),o}buildChildEntityTreeData(t=null,e){const o=[];return t==null||t.forEach(r=>{var d,p;const i=this.createTreeNode(r,e),a=this.buildEntityFieldsTreeData((d=r.type)==null?void 0:d.fields,[...e,r.label]),u=this.buildChildEntityTreeData((p=r.type)==null?void 0:p.entities,[...e,r.label]);u!=null&&u.length&&(a==null||a.push(...u)),o.push({data:i,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,i=this.getExpressionRule(r,e),a=this.getEntitiesAndVariables(),u={message:["validate","required","dataPicking"].includes(e)&&i?i.message:"",...a};return i.messageType!=null&&(u.messageType=i.messageType),u}buildRule(t,e,o,r){const{expression:i,message:a,messageType:u}=e,d={id:`${t}_${o}`,type:o,value:i};return(o==="validate"||o==="dataPicking"||o==="required")&&(d.message=a),o==="dataPicking"&&(d.messageType=u),o==="validate"&&r&&(d.elementId=r),d}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,o,r){const i=e==="Field"?t.binding.field:t.id,a=this.buildRule(i,o,r,t.type==="form-group"?t.id:"");let d=this.getExpressionData().find(m=>m.targetType===e&&m.target===i);const p=m=>m.value.trim()==="";if(d){const m=d.rules.find(l=>l.id===a.id);if(m)p(a)?d.rules=d.rules.filter(l=>l.id!==a.id):(Object.assign(m,a),r==="validate"&&t.type==="form-group"&&(m.elementId=t.id));else{if(p(a))return null;d.rules=d.rules||[],d.rules.push(a)}}else{if(p(a))return null;d={target:`${i}`,rules:[a],targetType:e}}return d}getExpressionEditorOptions(t,e,o,r){return o.reduce((i,a)=>{var d,p;const u=e==="Field"?(d=t==null?void 0:t.binding)==null?void 0:d.field:t.id;return i[a]={hide:e==="Field"?!!((p=t==null?void 0:t.binding)!=null&&p.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(u),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 l=this.updateExpression(t,e,m,a);if(r){const h=this.buildRule(u,m,a);r(h)}return l}}},i},{})}getExpressionInfo(t,e,o){const r=e==="Field"?t.binding.field:t.id,i=this.getExpressionRule(r,o),a={value:i&&i.value,targetId:r,targetType:e,expressionType:o};return i&&i.message&&(a.message=i.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){H(this,"componentId");H(this,"viewModelId");H(this,"eventsEditorUtils");H(this,"formSchemaUtils");H(this,"formMetadataConverter");H(this,"designViewModelUtils");H(this,"designViewModelField");H(this,"controlCreatorUtils");H(this,"designerHostService");H(this,"schemaService",null);H(this,"metadataService",null);H(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(i=>i.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:Et[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},o){const r={title:"外观",description:"Appearance"},i={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)i[a]=Object.assign(i[a]||{},e[a]);return{...r,properties:{...i},setPropertyRelates(a,u){if(a){switch(a&&a.propertyID){case"class":case"style":{ge.value++;break}}o&&o(a,t,u)}}}}getPropertyEditorParams(t,e=[],o="visible",r={},i={}){const{getVariables:a,getControlName:u,getStateMachines:d}=Lt(this.designerHostService),p=this.getRealTargetType(t),m=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],l={type:"property-editor",propertyTypes:m};return m.map(h=>{switch(h){case"Const":Object.assign(l,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":l.expressionConfig=this.getExpressionOptions(t,p,o);break;case"StateMachine":l.stateMachines=d();break;case"Variable":Object.assign(l,{controlName:u(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),onBeforeOpenVariables:g=>{g.value=a(this.viewModelId)}},i);break}}),l}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 i={title:"行为",description:""},a=this.getVisibleProperty(t,e);for(const d in o)a[d]=Object.assign(a[d]||{},o[d]);const u=this;return{...i,properties:{...a},setPropertyRelates(d,p){if(d){switch(d.propertyID){case"disabled":case"readonly":case"visible":u.afterMutilEditorChanged(t,d);break}r&&r(d,p)}}}}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),i=oe.cloneDeep(o.contents[r]);o.contents.splice(r,1),o.contents.splice(r,0,i),Ot()}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:i,expressionInfo:a}=e,{targetId:u,targetType:d,expressionType:p,value:m,message:l}=a,h=this.formSchemaUtils.getModule();h.expressions??(h.expressions=[]);const{expressions:g}=h;let b=g.find(D=>D.target===u);b||(b={target:u,rules:[],targetType:d},g.push(b));const C=b.rules.find(D=>D.type===p);if(C)C.value=m,C.message=l;else{const D={id:i,type:p,value:m,message:l};b.rules.push(D)}delete e.expressionInfo}clearExpression(t,e){const o=t.propertyValue;if(o&&o.type==="Expression")return;const i=t.propertyID,a=this.formSchemaUtils.getExpressions(),u=e.binding?e.binding.field:e.id,d=a.find(p=>p.target===u);!d||!d.rules||(d.rules=d.rules.filter(p=>p.type!==i))}getExpressionOptions(t,e,o){return new qt(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 Ht extends be{constructor(t,e){super(t,e)}getPropertyConfig(t){return this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.propertyConfig.categories.appearance=this.getAppearanceProperties(t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(t),this.propertyConfig}getAppearanceProperties(t){return{title:"外观",description:"",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式"},icon:{title:"图标",type:"string",description:"图标"},title:{title:"标题",type:"string",description:"标题"}},setPropertyRelates(e,o){if(e)switch(e&&e.propertyID){case"title":{e.needRefreshControlTree=!0;break}}}}}}function Ut(n,t){function e(u){return!1}function o(){return!1}function r(){return!1}function i(){return!0}function a(u){return new Ht(u,t).getPropertyConfig(n)}return{canAccepts:e,hideNestedPaddingInDesginerView:i,getPropsConfig:a,checkCanDeleteComponent:o,checkCanMoveComponent:r}}class Qe{constructor(t){H(this,"id","");H(this,"class","btn-secondary");H(this,"icon","");H(this,"groupId","");H(this,"order",-1);H(this,"asDropDownTop",!1);H(this,"text","");H(this,"visible",!0);H(this,"shown",!0);H(this,"responsed",!1);H(this,"tipsEnable",!1);H(this,"tipsText","");H(this,"width",0);H(this,"dropdownClass","");H(this,"onClick",()=>{});H(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(i=>e.indexOf(i)>-1).forEach(i=>{i==="visible"?this[i]=t[i]===void 0?!0:t[i]:this[i]=t[i]}),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:s.computed(()=>!0)}setWidth(t){this.width=parseInt(t,10)}getWidth(){return this.visible?this.width:!1}}class Wt extends Qe{constructor(t){super(t)}}function Je(){function n(t){const e=[];return t.reduce((o,r)=>(r.children&&r.children.length>0?o.push(new ve(r)):o.push(new Wt(r)),o),e),e}return{buildResponseToolbarItems:n}}const{buildResponseToolbarItems:zt}=Je();class ve extends Qe{constructor(e){super(e);H(this,"placement","");H(this,"visible",!0);H(this,"dropdownClass","");H(this,"menuClass","");H(this,"split",!1);H(this,"children",[]);H(this,"expanded",!1);H(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=zt(e.children))}}const Xt=new Map([["buttons","items"],["appearance",Ue]]);function Ze(n,t,e){return t}const Yt={$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:"点击事件"}},Gt={$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"]},Se={id:{type:String,default:""},customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]},visible:{type:Boolean,default:!0}},Qt=Object.assign({},Se,{componentId:{type:String,default:""}}),Pe=xe(Se,Yt,Xt,Ze),Ke={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}},Jt=xe(Ke,Gt,void 0,Ze),Zt=Nt();function Ee(){function n(e){const o={"f-icon":!0};if(e.icon){const r=e.icon.trim().split(" ");r&&r.length&&r.reduce((i,a)=>(i[a]=!0,i),o)}return o}function t(e){return!!(e.icon&&e.icon.trim())}return{iconClass:n,shouldShowIcon:t}}const Kt=["moz","ms","webkit"];function en(){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 tn(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const n=Kt.filter(t=>`${t}RequestAnimationFrame`in window)[0];return n?window[`${n}RequestAnimationFrame`]:en()}tn();function De(n,t){return((t==null?void 0:t.split(" "))||[]).reduce((o,r)=>(r&&(o[r]=!0),o),n),n}function nn(n,t){function e(v){const f={"dropdown-menu":!0};if(v.class){const w=v.menuClass.split(" ");w&&w.length&&w.reduce((k,N)=>(k[N]=!0,k),f)}return f}function o(v){const f={disabled:!v.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0,"text-truncate":!0};return De(f,v.dropdownClass)}function r(v){const f={disabled:!v.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0};return De(f,v.dropdownClass)}function i(v){const f={disabled:!v.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0,"f-rt-toggle":!0};return De(f,v.dropdownClass)}let a;const u=new Map;function d(v,f,w){v.stopPropagation();const k=w?w.id:"__top_item__";if(f.children&&f.children.length&&(f.expanded=!f.expanded,f.expanded)){if(u.has(k)&&u.get(k)!==f){const N=u.get(k);N&&(N.expanded=!1,u.delete(k))}u.set(k,f)}}function p(v,f){document.body.click(),f.enable&&(v.stopPropagation(),typeof f.onClick=="function"&&f.onClick(v,f.id),n.emit("click",v,f.id))}function m(v,f){const w=v.target;w.className.indexOf("dropdown-item")<0||(w.title=w.scrollWidth>w.clientWidth?f:"")}function l(v,f){if(f.tipsEnable&&f.tipsText){const w=s.reactive({content:f.tipsText,enable:f.tipsEnable});return s.withDirectives(s.createVNode("li",{class:r(f),id:f.id,onClick:k=>p(k,f)},[s.createVNode("span",{class:"f-rt-btn text-truncate"},[t.shouldShowIcon(f)&&s.createVNode("i",{class:t.iconClass(f)},null),f.text])]),[[s.resolveDirective("tooltip"),w]])}return s.createVNode("li",{class:r(f),id:f.id,onClick:w=>p(w,f)},[s.createVNode("span",{class:"f-rt-btn text-truncate",onMouseenter:w=>m(w,f.text)},[t.shouldShowIcon(f)&&s.createVNode("i",{class:t.iconClass(f)},null),f.text])])}function h(v,f,w){f.enable&&(typeof f.onClick=="function"&&w.onClick(v,f.id),n.emit("click",v,f.id),d(v,f,w))}function g(v,f){if(f.tipsEnable&&f.tipsText){const w=s.reactive({content:f.tipsText,enable:f.tipsEnable});return s.createVNode("li",{class:o(f),id:f.id,onClick:k=>h(k,f,v)},[s.withDirectives(s.createVNode("span",{class:i(f)},[t.shouldShowIcon(f)&&s.createVNode("i",{class:t.iconClass(f)},null),f.text]),[[s.resolveDirective("tooltip"),w]]),a(f,f)])}return s.createVNode("li",{class:o(f),id:f.id,onClick:w=>h(w,f,v),onMouseenter:w=>m(w,f.text)},[s.createVNode("span",{class:i(f)},[t.shouldShowIcon(f)&&s.createVNode("i",{class:t.iconClass(f)},null),f.text]),a(f,f)])}function b(v){return v.children.filter(f=>f.visible).map(f=>f.children&&f.children.length?g(v,f):l(v,f))}function C(v,f,w){var E;const k={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,A=f,R=A==null?void 0:A.getClientRects();if(A&&R&&R.length){const{top:_,width:x,left:c,right:P,height:I}=R[0],T=Math.ceil(I+_);k.top=`${T}px`,k.left=`${c}px`;const V=v.id+"_menu",$=f?f.querySelector("#"+V):null;if($){$.style.visibility="hidden",$.style.display="block";const S=$.offsetHeight;k.display==="block"&&($.style.display="block");const M=$.getBoundingClientRect();if(w){k.top=`${_-6}px`;const j=Math.ceil(x+c);k.left=`${j}px`}N-c-x<M.width&&(k.left=`${(w?c:P)-M.width}px`),window.innerHeight-_-I<S&&(_>S?k.top=`${_-S-6}px`:(k.maxHeight=`${_-16}px`,k.overflowY="auto",_-I>window.innerHeight-_&&(k.top="10px"))),$.style.visibility="visible"}}return k}a=function(v,f){var A,R;const w=s.getCurrentInstance(),k=f?f.id:v.id,N=(R=(A=w==null?void 0:w.exposed)==null?void 0:A.elementRef.value)==null?void 0:R.querySelector("#"+k);return s.createVNode("ul",{class:e(v),style:C(v,N,f),id:v.id+"_menu"},[b(v)])};function D(){u.forEach(v=>{v.expanded=!1}),u.clear()}return{renderDropdownMenu:a,clearAllDropDownMenu:D}}function on(n,t,e){const o=s.ref(n.alignment),{renderDropdownMenu:r,clearAllDropDownMenu:i}=nn(t,e);function a(l){const h={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":o.value==="right"||o.value==="center","f-btn-mr":o.value==="left"},g=l.dropdownClass.split(" ");return g&&g.length&&g.reduce((b,C)=>(b[C]=!0,b),h),h}function u(l){const h={btn:!0,disabled:!l.enable,"f-rt-btn":!0,"btn-icontext":!!(l.icon&&l.icon.trim())};if(l.class){const g=l.class.split(" ");g&&g.length&&g.reduce((b,C)=>(b[C]=!0,b),h)}return h}function d(l,h){l.stopPropagation();const g=h.expanded;document.body.click(),typeof h.onClick=="function"&&h.onClick(l,h.id),t.emit("click",l,h.id),h.expanded=!g}function p(l,h=!0){if(l.tipsEnable&&l.tipsText){const g=s.reactive({content:l.tipsText,enable:l.tipsEnable});return s.createVNode("div",{id:l.id,class:a(l)},[s.withDirectives(s.createVNode("div",{class:u(l),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:b=>l.enable&&d(b,l)},[e.shouldShowIcon(l)&&s.createVNode("i",{class:e.iconClass(l)},null),s.createVNode("span",null,[l.text]),s.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)]),[[s.resolveDirective("tooltip"),g]]),h&&r(l)])}return s.createVNode("div",{id:l.id,class:a(l)},[s.createVNode("div",{class:u(l),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:g=>l.enable&&d(g,l)},[e.shouldShowIcon(l)&&s.createVNode("i",{class:e.iconClass(l)},null),s.createVNode("span",null,[l.text]),s.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)]),h&&r(l)])}function m(){i()}return{renderToolbarDropdown:p,clearAllDropDown:m}}const{buildResponseToolbarItems:et}=Je(),ye=s.defineComponent({name:"FResponseToolbar",props:Se,emits:["click"],setup(n,t){const e=s.ref(et(n.items)),o=s.ref(),r=s.ref(),i=s.ref(),a={id:"__more_buttons__",text:"更多"},u=s.ref(new ve(a)),d={id:a.id+"width",text:a.text},p=s.ref(-1),m=Ee();let l=!1;const h=s.computed(()=>u.value.children.length>0),g=s.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 fe.getCustomClass(S,n.customClass)}),b=s.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:C,clearAllDropDown:D}=on(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}),u.value.expanded=!1,D())}function f(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())},U=((q=S==null?void 0:S.appearance)==null?void 0:q.class)||S.class||"btn-secondary";if(U){const z=U.split(" ");z&&z.length&&z.reduce((X,Q)=>(X[Q]=!0,X),j)}return j}function w(S,M){document.body.click(),typeof M.onClick=="function"&&M.onClick(S,M.id),t.emit("click",S,M.id)}function k(S,M){if(S.tipsEnable&&S.tipsText){const j=s.reactive({content:S.tipsText,enable:S.tipsEnable});return s.withDirectives(s.createVNode("button",{type:"button",class:f(S,M),id:S.id,disabled:!S.enable,onClick:U=>w(U,S)},[m.shouldShowIcon(S)&&s.createVNode("i",{class:m.iconClass(S)},null),S.text]),[[s.resolveDirective("tooltip"),j]])}return s.createVNode("button",{type:"button",class:f(S,M),id:S.id,disabled:!S.enable,onClick:j=>w(j,S)},[m.shouldShowIcon(S)&&s.createVNode("i",{class:m.iconClass(S)},null),S.text])}let N=new Map,A=[];function R(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<p.value){let U=j-1;for(;U>=0;U--){const q=S[U],z=R(q);if(M+=z,M>=p.value)break}j=U}return M-=p.value,{start:j,space:M}}function _(S){const M=i.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],ie=R(ee);if(ie<=j)j-=ie;else{const Z=E(q,j,Q);Q=Z.start,j=Z.space,X=!0;break}}if(!X&&A.length>0){const ee=E(q,j,Q);Q=ee.start,j=ee.space}const W=A.length>0;for(;Q<z;Q++){const ee=q[Q],ie=R(ee);N.set(ee.id,!0),A[W?"unshift":"push"]({id:ee.id,width:ie})}return j}function x(S){let M=_(S);if(A.length){let z=0;for(;z<A.length;z++){const X=n.items.find(Q=>Q.id===A[z].id);if(X&&X.visible!==!1){const Q=A[z].width;if(M>=Q||z===A.length-1&&M+p.value>=Q)M-=Q;else break}}for(let X=0;X<z;X++)N.delete(A[X].id);A.splice(0,z-1)}const j=Object.assign({},u.value);j.children=[];const U=new ve(j),q=e.value.reduce((z,X)=>{const Q=n.items.find(W=>W.id===X.id);return N.has(X.id)?(U.children.push(X),X.shown=!1):X.shown=Q.visible!==!1,z.push(X),z},[]);u.value=U,e.value=q}function c(S=-1){if(S===0||!i.value||!r.value)return;S<0&&(S=r.value.getBoundingClientRect().width);const M=i.value.getBoundingClientRect().width;(S>=0&&S<M||A.length)&&(x(S),v())}function P(){return p.value<0&&s.createVNode("div",{style:"position:absolute;top:-30px;visibility:hidden;"},[C(new ve(d))])}const I=new ResizeObserver(S=>{if(S.length){const j=S[0].contentRect.width;c(j)}});function T(){N=new Map,A=[]}function V(){r.value&&!l&&(I.observe(r.value),l=!0)}function $(){if(o.value&&p.value<0){const S=o.value.querySelector("#"+d.id);S&&(p.value=R(S))}}return s.onMounted(()=>{$(),c(),V(),document.body.addEventListener("click",v),document.body.addEventListener("wheel",v)}),s.onUnmounted(()=>{I.disconnect(),document.body.removeEventListener("click",v),document.body.removeEventListener("wheel",v)}),s.watch(()=>n.items,()=>{e.value=et(n.items),u.value.children=[],s.nextTick(()=>{T(),c()})},{deep:!0}),s.watch(()=>n.visible,S=>{S&&s.nextTick(()=>{$(),c(),V()})}),t.expose({elementRef:o}),()=>s.createVNode("div",{class:g.value,id:n.id,ref:o,style:{"overflow-y":p.value<0?"hidden":"initial"}},[n.visible&&P(),n.visible&&s.createVNode("div",{ref:r,class:b.value},[s.createVNode("div",{ref:i,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?C(S):k(S,M)),h.value&&C(u.value)])])])}});class rn 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 sn(n,t,e){const o=n.schema;function r(g){return!1}function i(g,b){return b.text=g.label,b}function a(){return!1}function u(){return!1}function d(){return!1}function p(){return!0}function m(g){return new rn(g,t).getPropertyConfig(o)}function l(g){var v;g&&(g.stopPropagation(),g.preventDefault());const{schema:b}=n;b.buttons||(b.buttons=[]);let C="";if(b.type)C=b.type+"-item";else{const f=(v=n.parent)==null?void 0:v.schema.type;C=f==="tabs"?"tab-toolbar-item":f==="section"?"section-toolbar-item":"response-toolbar-item"}const D=pe(C);D.id=`toolbar_item_${Math.random().toString().slice(2,6)}`,b.buttons.push(D),e.updateToolbarItems(),e.changeSelectedId("")}function h(){return[{id:"appendItem",title:"新增按钮",text:"",icon:"f-icon f-icon-plus-circle text-white",onClick:g=>l(g)}]}return{canAccepts:r,checkCanAddComponent:d,checkCanDeleteComponent:u,checkCanMoveComponent:a,hideNestedPaddingInDesginerView:p,onResolveNewComponentSchema:i,getPropsConfig:m,getCustomButtons:h}}var ce=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function an(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function Ce(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 tt={exports:{}};(function(n,t){(function(e){n.exports=e()})(function(){return function(){function e(o,r,i){function a(p,m){if(!r[p]){if(!o[p]){var l=typeof Ce=="function"&&Ce;if(!m&&l)return l(p,!0);if(u)return u(p,!0);var h=new Error("Cannot find module '"+p+"'");throw h.code="MODULE_NOT_FOUND",h}var g=r[p]={exports:{}};o[p][0].call(g.exports,function(b){var C=o[p][1][b];return a(C||b)},g,g.exports,e,o,r,i)}return r[p].exports}for(var u=typeof Ce=="function"&&Ce,d=0;d<i.length;d++)a(i[d]);return a}return e}()({1:[function(e,o,r){var i={},a="(?:^|\\s)",u="(?:\\s|$)";function d(l){var h=i[l];return h?h.lastIndex=0:i[l]=h=new RegExp(a+l+u,"g"),h}function p(l,h){var g=l.className;g.length?d(h).test(g)||(l.className+=" "+h):l.className=h}function m(l,h){l.className=l.className.replace(d(h)," ").trim()}o.exports={add:p,rm:m}},{}],2:[function(e,o,r){(function(i){var a=e("contra/emitter"),u=e("crossvent"),d=e("./classes"),p=document,m=p.documentElement;function l(c,P){var I=arguments.length;I===1&&Array.isArray(c)===!1&&(P=c,c=[]);var T,V,$,S,M,j,U,q,z,X=null,Q,W,ee=!1,ie=0,Z,F=P||{};F.moves===void 0&&(F.moves=f),F.accepts===void 0&&(F.accepts=f),F.invalid===void 0&&(F.invalid=Pn),F.containers===void 0&&(F.containers=c||[]),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=p.body);var K=a({containers:F.containers,start:Sn,end:pt,cancel:bt,remove:mt,destroy:Cn,canMove:Tn,dragging:!1});return F.removeOnSpill===!0&&K.on("over",Dn).on("out",Mn),ct(),K;function Ve(y){return K.containers.indexOf(y)!==-1||F.isContainer(y)}function ct(y){var B=y?"remove":"add";b(m,B,"mousedown",wn),b(m,B,"mouseup",Be)}function Ne(y){var B=y?"remove":"add";b(m,B,"mousemove",xn)}function dt(y){var B=y?"remove":"add";u[B](m,"selectstart",ut),u[B](m,"click",ut)}function Cn(){ct(!0),Be({})}function ut(y){Q&&y.preventDefault()}function wn(y){S=y.clientX,M=y.clientY;var B=C(y)!==1||y.metaKey||y.ctrlKey;if(!B){var O=y.target,L=Ie(O);L&&(Q=L,Ne(),y.type==="mousedown"&&(A(O)?O.focus():y.preventDefault()))}}function xn(y){if(Q){if(C(y)===0){Be({});return}if(!(y.clientX!==void 0&&Math.abs(y.clientX-S)<=(F.slideFactorX||0)&&y.clientY!==void 0&&Math.abs(y.clientY-M)<=(F.slideFactorY||0))){if(F.ignoreInputTextSelection){var B=x("clientX",y)||0,O=x("clientY",y)||0,L=p.elementFromPoint(B,O);if(A(L))return}var Y=Q;Ne(!0),dt(),pt(),ft(Y),d.add(q||$,"gu-transit"),Vn(),kn(),ie=0,Re(y)}}}function Ie(y){if(!(K.dragging&&T)&&!Ve(y)){for(var B=y;N(y)&&Ve(N(y))===!1;)if(F.invalid(y,B)||(y=N(y),!y))return;var O=N(y);if(O&&!F.invalid(y,B)){var L=F.moves(y,O,B,E(y));if(L)return{item:y,source:O}}}}function Tn(y){return!!Ie(y)}function Sn(y){var B=Ie(y);B&&ft(B)}function ft(y){jn(y.item,y.source)&&(q=y.item.cloneNode(!0),K.emit("cloned",q,y.item,"copy")),V=y.source,$=y.item,j=U=E(y.item),K.dragging=!0,K.emit("drag",$,V)}function Pn(){return!1}function pt(){if(K.dragging){var y=q||$;ht(y,N(y))}}function gt(){Q=!1,Ne(!0),dt(!0)}function Be(y){if(gt(),!!K.dragging){var B=q||$,O=x("clientX",y)||0,L=x("clientY",y)||0,Y=D(T,O,L),G=vt(Y,O,L);G&&(q&&F.copySortSource||!q||G!==V)?ht(B,G):F.removeOnSpill?mt():bt()}}function ht(y,B){var O=N(y);q&&F.copySortSource&&B===V&&O.removeChild($),$e(B)?K.emit("cancel",y,V):K.emit("drop",y,B,V,U),Ae()}function mt(){if(K.dragging){var y=q||$,B=N(y);B&&B.removeChild(y),K.emit(q?"cancel":"remove",y,B,V),Ae()}}function bt(y){if(K.dragging){var B=arguments.length>0?y:F.revertOnSpill,O=q||$,L=N(O),Y=$e(L);Y===!1&&B&&(q?L&&L.removeChild(q):V.insertBefore(O,j)),Y||B?K.emit("cancel",O,V,V):K.emit("drop",O,L,V,U),Ae()}}function Ae(){var y=q||$;gt(),Nn(),In(),y&&d.rm(y,"gu-transit"),z&&clearTimeout(z),K.dragging=!1,X&&K.emit("out",y,X,V),K.emit("dragend",y,ie),V=$=q=j=U=z=X=null}function $e(y,B){var O;return B!==void 0?O=B:T?O=