@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 98.1 kB
JavaScript
(function(te,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js"),require("vue-i18n"),require("../designer-canvas/index.umd.js"),require("../dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js","vue-i18n","../designer-canvas/index.umd.js","../dynamic-resolver/index.umd.js"],c):(te=typeof globalThis<"u"?globalThis:te||self,c(te["response-toolbar"]={},te.Vue,te.LodashES,te.common,te.vueI18n,te.designerCanvas,te.dynamicResolver))})(this,function(te,c,de,re,wt,_e,xt){"use strict";var Qn=Object.defineProperty;var Zn=(te,c,de)=>c in te?Qn(te,c,{enumerable:!0,configurable:!0,writable:!0,value:de}):te[c]=de;var H=(te,c,de)=>Zn(te,typeof c!="symbol"?c+"":c,de);class Le{constructor(e){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,i;this.options=e;const n=["id","class","icon","groupId","order","asDropDownTop","text","isDP","visible","responsed","width","tipsEnable","tipsText","dropdownClass","onClick"];Object.keys(e).filter(r=>n.indexOf(r)>-1).forEach(r=>{r==="visible"?this[r]=e[r]===void 0?!0:e[r]:this[r]=e[r]}),this.shown=this.visible,(o=e.appearance)!=null&&o.class&&(this.class=(i=e.appearance)==null?void 0:i.class)}get enable(){return Object.keys(this.options).indexOf("disabled")>-1?!this.options.disabled:c.computed(()=>!0)}setWidth(e){this.width=parseInt(e,10)}getWidth(){return this.visible?this.width:!1}}class qe extends Le{constructor(e){super(e)}}function We(){function t(e){const n=[];return e.reduce((o,i)=>(i.children&&i.children.length>0?o.push(new we(i)):o.push(new qe(i)),o),n),n}return{buildResponseToolbarItems:t}}const{buildResponseToolbarItems:Tt}=We();class we extends Le{constructor(n){super(n);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(n).filter(i=>o.indexOf(i)>-1).forEach(i=>{i==="visible"?this[i]=n[i]===void 0?!0:n[i]:this[i]=n[i]}),this.shown=this.visible,n.children&&n.children.length&&(this.children=Tt(n.children))}}class St{constructor(e,n){H(this,"id");H(this,"name");H(this,"presetId",[]);H(this,"responsedIndex",[]);H(this,"width");this.id=e,this.name=n,this.width=0}setWidth(e){this.width=parseInt(e+"",10)}getWidth(){return this.width}setPreset(e){Array.isArray(e)?this.presetId=this.presetId.concat(e):this.presetId.push(e)}delPreset(){this.presetId=[]}removeResponsed(e){this.responsedIndex.splice(e,1)}setResponsed(e){Array.isArray(e)?this.responsedIndex=this.responsedIndex.concat(e):this.responsedIndex.push(e)}isResponsing(){return this.responsedIndex.length>0}isResponsed(){return this.presetId.length===this.responsedIndex.length}}function Ue(t,e){let n;function o(l){const{properties:p,title:g,ignore:u}=l,s=u&&Array.isArray(u),S=Object.keys(p).reduce((R,k)=>((!s||!u.find(F=>F===k))&&(R[k]=p[k].type==="object"&&p[k].properties?o(p[k]):de.cloneDeep(p[k].default)),R),{});if(g&&(!s||!u.find(R=>R==="id"))){const R=g.toLowerCase().replace(/-/g,"_");S.id=`${R}_${Math.random().toString().slice(2,6)}`}return S}function i(l){const{properties:p,title:g,required:u}=l;if(u&&Array.isArray(u)){const s=u.reduce((S,R)=>(S[R]=p[R].type==="object"&&p[R].properties?o(p[R]):de.cloneDeep(p[R].default),S),{});if(g&&u.find(S=>S==="id")){const S=g.toLowerCase().replace(/-/g,"_");s.id=`${S}_${Math.random().toString().slice(2,6)}`}return s}return{type:g}}function r(l,p={},g){const u=t[l];if(u){let s=i(u);const S=e[l];return s=S?S({getSchemaByType:r},s,p,g):s,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(s),s}return null}function a(l,p){const g=o(p);return Object.keys(g).reduce((u,s)=>(Object.prototype.hasOwnProperty.call(l,s)&&(u[s]&&de.isPlainObject(u[s])&&de.isPlainObject(l[s]||!l[s])?Object.assign(u[s],l[s]||{}):u[s]=l[s]),u),g),g}function b(l,p){return Object.keys(l).filter(u=>l[u]!=null).reduce((u,s)=>{if(p.has(s)){const S=p.get(s);if(typeof S=="string")u[S]=l[s];else{const R=S(s,l[s],l);Object.assign(u,R)}}else u[s]=l[s];return u},{})}function d(l,p,g=new Map){const u=a(l,p);return b(u,g)}function m(l){var g;const p=l.type;if(p){const u=t[p];if(!u)return l;const s=a(l,u),S=((g=l.editor)==null?void 0:g.type)||"";if(S){const R=t[S],k=a(l.editor,R);s.editor=k}return s}return l}function y(l){n=l}return{getSchemaByType:r,resolveSchemaWithDefaultValue:m,resolveSchemaToProps:d,mappingSchemaToProps:b,setDesignerContext:y}}const ze={},Ge={},{getSchemaByType:He,resolveSchemaWithDefaultValue:Et,resolveSchemaToProps:It,mappingSchemaToProps:Pt,setDesignerContext:Jn}=Ue(ze,Ge);function Mt(t={}){function e(m,y,l,p){if(typeof l=="number")return p[m].length===l;if(typeof l=="object"){const g=Object.keys(l)[0],u=l[g];if(g==="not")return Number(p[m].length)!==Number(u);if(g==="moreThan")return Number(p[m].length)>=Number(u);if(g==="lessThan")return Number(p[m].length)<=Number(u)}return!1}function n(m,y,l,p){return p[m]&&p[m].propertyValue&&String(p[m].propertyValue.value)===String(l)}const o=new Map([["length",e],["getProperty",n]]);Object.keys(t).reduce((m,y)=>(m.set(y,t[y]),m),o);function i(m,y){const l=m;return typeof y=="number"?[{target:l,operator:"length",param:null,value:Number(y)}]:typeof y=="boolean"?[{target:l,operator:"getProperty",param:m,value:!!y}]:typeof y=="object"?Object.keys(y).map(p=>{if(p==="length")return{target:l,operator:"length",param:null,value:y[p]};const g=p,u=y[p];return{target:l,operator:"getProperty",param:g,value:u}}):[]}function r(m){return Object.keys(m).reduce((l,p)=>{const g=i(p,m[p]);return l.push(...g),l},[])}function a(m,y){if(o.has(m.operator)){const l=o.get(m.operator);return l&&l(m.target,m.param,m.value,y)||!1}return!1}function b(m,y){return r(m).reduce((g,u)=>g&&a(u,y),!0)}function d(m,y){const l=Object.keys(m),p=l.includes("allOf"),g=l.includes("anyOf"),u=p||g,R=(u?m[u?p?"allOf":"anyOf":"allOf"]:[m]).map(F=>b(F,y));return p?!R.includes(!1):R.includes(!0)}return{parseValueSchema:d}}const Dt={convertTo:(t,e,n,o)=>{t.appearance||(t.appearance={}),t.appearance[e]=n},convertFrom:(t,e,n)=>t.appearance?t.appearance[e]:t[e]},kt={convertFrom:(t,e,n)=>t.buttons&&t.buttons.length?`共 ${t.buttons.length} 项`:"无"},Nt={convertTo:(t,e,n,o)=>{t.editor&&(t.editor[e]=n)},convertFrom:(t,e,n)=>t.editor&&Object.prototype.hasOwnProperty.call(t.editor,e)?t.editor[e]:t[e]},Ee={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},Bt={convertFrom:(t,e,n)=>{var i;const o=t.editor&&t.editor[e]?t.editor[e]:t[e];return((i=Ee[o])==null?void 0:i.name)||o}},Rt={convertTo:(t,e,n,o)=>{t[e]=t[e]},convertFrom:(t,e,n)=>t.editor?n.getRealEditorType(t.editor.type):""},Vt={convertTo:(t,e,n,o)=>{(t.type==="data-grid-column"||t.type==="tree-grid-column")&&(t.formatter?t.formatter[e]=n:t.formatter={[e]:n})},convertFrom:(t,e,n)=>{if(t.formatter){if(e==="trueText")return t.formatter.trueText;if(e==="falseText")return t.formatter.falseText;if(e==="prefix")return t.formatter.prefix;if(e==="suffix")return t.formatter.suffix;if(e==="precision")return t.formatter.precision;if(e==="decimal")return t.formatter.decimal;if(e==="thousand")return t.formatter.thousand;if(e==="tempDateFormat")return t.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":t.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":t.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":t.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":t.formatter.tempDateFormat||t.formatter.dateFormat||"yyyy-MM-dd";if(e==="customFormat")return t.formatter.customFormat;if(e==="type")return t.formatter.type||"none"}return"none"}},Ot={convertTo:(t,e,n,o)=>{t.command?t.command[e]=n:t.command={[e]:n},e==="enable"&&n&&(t.command.commands||(t.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(t,e,n)=>t.command&&e==="enable"?t.command.enable:""},Ft={convertTo:(t,e,n,o)=>{t.column?t.column[e]=n:t.column={[e]:n},e==="fitColumns"&&n&&(t.column.fitMode||(t.column.fitMode="average"))},convertFrom:(t,e,n)=>{if(t.column){if(e==="fitColumns")return t.column.fitColumns;if(e==="fitMode")return t.column.fitMode}return""}},jt={convertTo:(t,e,n,o)=>{t.summary?t.summary[e]=n:t.summary={[e]:n},e==="enable"&&n&&(t.summary?t.summary.groupFields||(t.summary.groupFields=[]):t.summary={enable:n,groupFields:[]})},convertFrom:(t,e,n)=>t.summary&&e==="enable"?t.summary.enable:t.type==="data-grid-column"?t.enableSummary===void 0?!1:t.enableSummary:""},At={convertTo:(t,e,n,o)=>{t.group?t.group[e]=n:t.group={[e]:n},e==="enable"&&n&&(t.group?t.group.groupFields||(t.group.groupFields=[]):t.group={enable:n,groupFields:[],showSummary:!1})},convertFrom:(t,e,n)=>{if(t.group){if(e==="enable")return t.group.enable;if(e==="showSummary")return t.group.showSummary}}},$t={convertFrom:(t,e)=>t.binding?t.binding.path:"",convertTo:(t,e,n)=>{if(n&&n.length>0){const o=n[0];t.binding||(t.binding={}),t.binding.type="Form",t.binding.path=o.bindingField,t.binding.field=o.id,t.binding.fullPath=o.path,t.path=o.bindingPath}}},_t={convertTo:(t,e,n,o)=>{t.pagination||(t.pagination={}),t.pagination[e]=n},convertFrom:(t,e,n)=>t.pagination?t.pagination[e]:t[e]},Lt={convertTo:(t,e,n,o)=>{t.rowNumber||(t.rowNumber={}),t.rowNumber[e]=n},convertFrom:(t,e,n)=>t.rowNumber?t.rowNumber[e]:t[e]},qt={convertTo:(t,e,n,o)=>{t.selection||(t.selection={}),t.selection[e]=n},convertFrom:(t,e,n)=>t.selection?t.selection[e]:t[e]},Wt={convertFrom:(t,e,n)=>t[e]&&t[e].length?`共 ${t[e].length} 项`:""},Ut={convertFrom:(t,e)=>t[e]||"",convertTo:(t,e,n)=>{t[e]=n}},zt={convertTo:(t,e,n,o)=>{t.size||(t.size={}),t.size[e]=n},convertFrom:(t,e,n)=>t.size?t.size[e]:t[e]},Gt={convertFrom:(t,e,n)=>{var o,i;return(o=t.formatter)!=null&&o.data&&e==="formatterEnumData"&&!t.formatterEnumData?(i=t.formatter)==null?void 0:i.data:t.formatterEnumData}},Ht={convertTo:(t,e,n,o)=>{t.sort||(t.sort={}),t.sort[e]=n},convertFrom:(t,e,n)=>{var o,i;if(e==="mode")return((o=t.sort)==null?void 0:o.mode)||"client";if(e==="multiSort")return!!((i=t.sort)!=null&&i.multiSort)}},Yt={convertTo:(t,e,n,o)=>{t.filter||(t.filter={}),t.filter[e]=n},convertFrom:(t,e,n)=>{var o;if(e==="mode")return((o=t.filter)==null?void 0:o.mode)||"client"}},Xt={convertTo:(t,e,n,o)=>{t.rowOption?t.rowOption[e]=n:t.rowOption={[e]:n}},convertFrom:(t,e,n)=>{if(t.rowOption){if(e==="customRowStyle")return t.rowOption.customRowStyle;if(e==="customCellStyle")return t.rowOption.customCellStyle}return""}};function Ye(t,e,n){const o=new Map([["/converter/appearance.converter",Dt],["/converter/buttons.converter",kt],["/converter/property-editor.converter",Nt],["/converter/items-count.converter",Wt],["/converter/type.converter",Bt],["/converter/change-editor.converter",Rt],["/converter/change-formatter.converter",Vt],["/converter/column-command.converter",Ot],["/converter/column-option.converter",Ft],["/converter/summary.converter",jt],["/converter/group.converter",At],["/converter/form-group-label.converter",Ut],["/converter/field-selector.converter",$t],["/converter/pagination.converter",_t],["/converter/row-number.converter",Lt],["/converter/grid-selection.converter",qt],["/converter/size.converter",zt],["/converter/change-formatter-enum.converter",Gt],["/converter/grid-sort.converter",Ht],["/converter/grid-filter.converter",Yt],["/converter/row-option.converter",Xt]]),i=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}]]),r=Mt();function a(u,s){return()=>r.parseValueSchema(u,s)}function b(u,s,S){return u.includes("visible")&&s.visible!==void 0?typeof s.visible=="boolean"?()=>!!s.visible:s.visible===void 0?!0:a(s.visible,S):()=>!0}function d(u,s,S){return u.includes("readonly")&&s.readonly!==void 0?typeof s.readonly=="boolean"?()=>!!s.readonly:a(s.readonly,S):()=>!1}function m(u,s){const S=u.$converter||s;return typeof S=="string"&&S&&o.has(S)?o.get(S)||null:S||null}function y(u,s,S,R,k,F="",M=""){return Object.keys(u).map(O=>{const E=c.ref(1),f=O,D=u[O],C=Object.keys(D),v=D.title,I=D.type,h=i.get(I)||{type:"input-group",enableClear:!1},w=D.editor?Object.assign({},h,D.editor):Object.assign({},h),N=b(C,D,s),T=d(C,D,s);w.readonly=w.readonly===void 0?T():w.readonly;const B=D.type==="cascade"?y(D.properties,s,S,R,k,F,M):[],L=!0;let q=m(D,M);const W=c.computed({get(){if(E.value){if(["class","style"].find(V=>V===f)&&!q&&(q=o.get("/converter/appearance.converter")||null),q&&q.convertFrom)return q.convertFrom(S,O,k,F);const ee=S[O];return Object.prototype.hasOwnProperty.call(D,"defaultValue")&&(ee===void 0||typeof ee=="string"&&ee==="")?D.type==="boolean"?D.defaultValue:D.defaultValue||"":ee}return null},set(ee){E.value+=1,q&&q.convertTo?(q.convertTo(R,O,ee,k,F),q.convertTo(S,O,ee,k,F)):(R[O]=ee,S[O]=ee)}}),{refreshPanelAfterChanged:_,description:Q,isExpand:Y,parentPropertyID:Z}=D,z={propertyID:f,propertyName:v,propertyType:I,propertyValue:W,editor:w,visible:N,readonly:T,cascadeConfig:B,hideCascadeTitle:L,refreshPanelAfterChanged:_,description:Q,isExpand:Y,parentPropertyID:Z};return s[f]=z,z})}function l(u,s,S={}){const R={},k=t[u];return k&&k.categories?Object.keys(k.categories).map(M=>{const P=k.categories[M],O=P==null?void 0:P.title,E=y(P.properties||{},R,{},S,s);return{categoryId:M,categoryName:O,properties:E}}):[]}function p(u,s,S,R,k=""){const F=s.$ref.schema,M=s.$ref.converter,P=S[F],O=P.type,E=n(P),f={},D=t[O];if(D&&D.categories){const C=D.categories[u],v=C==null?void 0:C.title;M&&Object.keys(C.properties).forEach(w=>{C.properties[w].$converter=M});const I=(C==null?void 0:C.properties)||{},h=y(I,f,E,P,R,k);return{categoryId:u,categoryName:v,properties:h}}return{categoryId:u,categoryName:"",properties:[]}}function g(u,s,S,R,k){const F=u.type,M=n(u),P={};let O=k||t[F];if(O&&Object.keys(O).length===0&&S&&S.getPropConfig&&(O=S.getPropConfig(R)),O&&O.categories){const E=[];return Object.keys(O.categories).map(f=>{const D=O.categories[f];if(D.$ref){E.push(p(f,D,u,s,R));return}const C=D==null?void 0:D.title,v=D==null?void 0:D.tabId,I=D==null?void 0:D.tabName,h=D==null?void 0:D.hide,w=D==null?void 0:D.hideTitle,N=y(D.properties||{},P,M,u,s,R,D.$converter),{setPropertyRelates:T}=D,B=D==null?void 0:D.parentPropertyID;E.push({categoryId:f,categoryName:C,tabId:v,tabName:I,hide:h,properties:N,hideTitle:w,setPropertyRelates:T,parentPropertyID:B})}),E}return[]}return{getPropertyConfigBySchema:g,getPropertyConfigByType:l,propertyConverterMap:o}}const Xe={},Qe={};Ye(Xe,Qe,Et);const Ze={},Je={},{getSchemaByType:Qt,resolveSchemaWithDefaultValue:Zt,resolveSchemaToProps:Kn,mappingSchemaToProps:eo,setDesignerContext:to}=Ue(Ze,Je),Ke={},et={};Ye(Ke,et,Zt);function tt(t,e,n=new Map,o=(a,b,d,m)=>b,i={},r=a=>a){return ze[e.title]=e,Ge[e.title]=o,Xe[e.title]=i,Qe[e.title]=r,Ze[e.title]=e,Je[e.title]=o,Ke[e.title]=i,et[e.title]=r,(a={},b=!0)=>{if(!b)return Pt(a,n);const d=It(a,e,n),m=Object.keys(t).reduce((y,l)=>(y[l]=t[l].default,y),{});return Object.assign(m,d)}}function Jt(t,e){return{customClass:e.class,customStyle:e.style}}function Kt(t,e){if(!t||t.length<1)return null;for(const n of t){if(n.id===e)return n;if(n.children){const o=n.children.find(i=>i.id===e);if(o)return o}}return null}function en(){function t(e,n){const o=e.buttons;if(!o||o.length<1)return null;const[i,r]=n.payloads,a=Kt(o,r);return a?a.onClick||a.click:null}return{resolve:t}}const tn=new Map([["buttons","items"],["appearance",Jt]]);function nt(t,e,n){return e}const nn={$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:"点击事件"}},on={$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"],events:{onClick:"点击事件"}},Pe={id:{type:String,default:""},customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]},visible:{type:Boolean,default:!0}},rn=Object.assign({},Pe,{componentId:{type:String,default:""}}),Me=tt(Pe,nn,tn,nt),ot={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}},sn=tt(ot,on,void 0,nt),an=en();function De(){function t(n){const o={"f-icon":!0};if(n.icon){const i=n.icon.trim().split(" ");i&&i.length&&i.reduce((r,a)=>(r[a]=!0,r),o)}return o}function e(n){return!!(n.icon&&n.icon.trim())}return{iconClass:t,shouldShowIcon:e}}function ln(t,e){function n(E){const f={"dropdown-menu":!0};return re.getCustomClass(f,E.menuClass)}function o(E){const f={disabled:!E.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0,"text-truncate":!0};return re.getCustomClass(f,E.dropdownClass)}function i(E){const f={disabled:!E.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0};return re.getCustomClass(f,E.dropdownClass)}function r(E){const f={disabled:!E.enable,"dropdown-item":!0,"f-rt-btn":!0,"text-truncate":!0,"f-rt-toggle":!E.split,"btn-icontext":!!(E.icon&&E.icon.trim()),"dropdown-toggle":!E.split};return re.getCustomClass(f,E.dropdownClass)}function a(E){const f={"f-rt-btn":!0,"text-truncate":!0,"btn-icontext":!!(E.icon&&E.icon.trim()),"d-block":!0};return re.getCustomClass(f,E.dropdownClass)}let b;const d=new Map;let m="";function y(E){m="#"+E}function l(E,f,D){E.stopPropagation();const C=D?D.id:"__top_item__";if(f.children&&f.children.length&&(f.expanded=!f.expanded,f.expanded)){if(d.has(C)&&d.get(C)!==f){const v=d.get(C);v&&(v.expanded=!1,d.delete(C))}d.set(C,f)}}function p(E,f){document.body.click(),f.enable&&(E.stopPropagation(),typeof f.onClick=="function"&&f.onClick(E,f.id),t.emit("click",E,f.id))}function g(E,f){const D=E.target;D.className.indexOf("dropdown-item")<0||(D.title=D.scrollWidth>D.clientWidth?f:"")}function u(E,f,D){if(f.tipsEnable&&f.tipsText){const C=c.reactive({content:f.tipsText,enable:f.tipsEnable});return c.withDirectives(c.createVNode("li",{class:i(f),id:f.id,key:f.id+"_"+D,onClick:v=>p(v,f)},[c.createVNode("span",{class:a(f)},[e.shouldShowIcon(f)&&c.createVNode("i",{class:e.iconClass(f)},null),f.text])]),[[c.resolveDirective("tooltip"),C]])}return c.createVNode("li",{class:i(f),id:f.id,onClick:C=>p(C,f)},[c.createVNode("span",{class:a(f),onMouseenter:C=>g(C,f.text)},[e.shouldShowIcon(f)&&c.createVNode("i",{class:e.iconClass(f)},null),f.text])])}function s(E,f,D){f.enable&&(typeof f.onClick=="function"&&D.onClick(E,f.id),t.emit("click",E,f.id),D.split||l(E,f,D))}function S(E,f,D){E&&E.stopPropagation(),l(E,f,D)}function R(E,f){E.stopPropagation();const D=f.id;if(f.children&&f.children.length&&f.expanded&&d.has(D)){const C=d.get(D);C&&(C.expanded=!1,d.delete(D))}}function k(E,f,D){if(f.tipsEnable&&f.tipsText){const C=c.reactive({content:f.tipsText,enable:f.tipsEnable});return c.createVNode("li",{class:o(f),id:f.id,key:f.id+"_"+D,onClick:v=>s(v,f,E)},[c.withDirectives(c.createVNode("span",{class:r(f)},[e.shouldShowIcon(f)&&c.createVNode("i",{class:e.iconClass(f)},null),f.text]),[[c.resolveDirective("tooltip"),C]]),f.split&&c.createVNode("span",{class:"dropdown-toggle dropdown-toggle-split f-rt-toggle",onClick:v=>S(v,f,E)},null),b(f,f)])}return c.createVNode("li",{class:o(f),id:f.id,onClick:C=>s(C,f,E),onMouseenter:C=>g(C,f.text)},[c.createVNode("span",{class:r(f)},[e.shouldShowIcon(f)&&c.createVNode("i",{class:e.iconClass(f)},null),f.text]),f.split&&c.createVNode("span",{class:"dropdown-toggle dropdown-toggle-split f-rt-toggle",onClick:C=>S(C,f,E)},null),b(f,f)])}function F(E){return E.children.filter(f=>f.visible).map((f,D)=>f.children&&f.children.length?k(E,f,D):u(E,f,D))}function M(E,f){if(!E)return 1080;let D=-1;const C=E.children.length;for(let v=0;v<C;v++)if(E.children[v].id===f){D=v;break}return 1080+C-D}function P(E,f,D){var B,L;const C={display:E.expanded?"block":"none",position:"fixed",maxWidth:"300px",minWidth:"120px",zIndex:1080,overflowY:"auto",maxHeight:"none"},v=document.querySelector(m);if(!v)return C;const I=c.getCurrentInstance();let h=(L=(B=I==null?void 0:I.exposed)==null?void 0:B.elementRef.value)==null?void 0:L.querySelector("#"+f);if(h||(h=v==null?void 0:v.querySelector("#"+f)),!h)return C;const w=window.innerWidth,N=window.innerHeight,T=h==null?void 0:h.getClientRects();if(h&&T&&T.length){const{top:q,width:W,left:_,right:Q,height:Y}=T[0],Z=Math.ceil(Y+q);C.top=`${Z}px`,C.left=`${_}px`;const z=E.id+"_menu",ee=(h==null?void 0:h.querySelector("#"+z))||(v==null?void 0:v.querySelector("#"+z))||null;if(ee){ee.style.visibility="hidden",ee.style.display="block";const V=ee.offsetHeight;C.zIndex=E.expanded?M(v,z):1080,C.display==="block"&&(ee.style.display="block");const U=ee.getBoundingClientRect();if(D){C.top=`${q-6}px`;const j=Math.ceil(W+_);C.left=`${j}px`}w-_-W<U.width&&(C.left=`${(D?_:Q)-U.width}px`),N-q-Y<V?q>V?(C.top=`${q-V-6}px`,C.maxHeight=`${q-16}px`):(C.maxHeight=`${N-Z}px`,q>N-q-Y&&(C.top="10px",C.maxHeight=`${q-16}px`)):C.maxHeight=`${N-Z}px`,ee.style.visibility="visible"}}return C}b=function(E,f){const D=f?f.id:E.id;return c.createVNode(c.Teleport,{to:m,disabled:!E.expanded},{default:()=>[c.createVNode("ul",{class:n(E),style:P(E,D,f),id:E.id+"_menu",onWheel:C=>R(C,E)},[F(E)])]})};function O(){d.forEach(E=>{E.expanded=!1}),d.clear()}return{renderDropdownMenu:b,clearAllDropDownMenu:O,updateContainerId:y}}function cn(t,e,n){const o=c.ref(t.alignment),{renderDropdownMenu:i,clearAllDropDownMenu:r,updateContainerId:a}=ln(e,n);function b(s){const S={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":o.value==="right"||o.value==="center","f-btn-mr":o.value==="left"};return re.getCustomClass(S,s.dropdownClass)}function d(s){const S={btn:!0,disabled:!s.enable,"f-rt-btn":!0,"btn-icontext":!!(s.icon&&s.icon.trim()),"f-rt-toggle":!s.split,"dropdown-toggle":!s.split};return re.getCustomClass(S,s.class)}function m(s){const S={btn:!0,"dropdown-toggle":!0,"dropdown-toggle-split":!0};return re.getCustomClass(S,s.class)}function y(s){return s.split?{display:"flex"}:{display:"flex","border-radius":"6px"}}function l(s,S){s.stopPropagation();const R=S.expanded;document.body.click(),typeof S.onClick=="function"&&S.onClick(s,S.id),e.emit("click",s,S.id),S.split||(S.expanded=!R)}function p(s,S){s.stopPropagation();const R=S.expanded;document.body.click(),S.expanded=!R}function g(s,S=!0){if(s.tipsEnable&&s.tipsText){const R=c.reactive({content:s.tipsText,enable:s.tipsEnable});return c.createVNode("div",{id:s.id,class:b(s)},[c.withDirectives(c.createVNode("div",{class:d(s),style:y(s),onClick:k=>s.enable&&l(k,s)},[n.shouldShowIcon(s)&&c.createVNode("i",{class:n.iconClass(s)},null),c.createVNode("span",null,[s.text])]),[[c.resolveDirective("tooltip"),R]]),s.split&&c.createVNode("button",{class:m(s),style:"border-radius:0 6px 6px 0;",onClick:k=>p(k,s)},null),S&&i(s)])}return c.createVNode("div",{id:s.id,class:b(s)},[c.createVNode("div",{class:d(s),style:y(s),onClick:R=>s.enable&&l(R,s)},[n.shouldShowIcon(s)&&c.createVNode("i",{class:n.iconClass(s)},null),c.createVNode("span",null,[s.text])]),s.split&&c.createVNode("button",{class:m(s),style:"border-radius:0 6px 6px 0;",onClick:R=>p(R,s)},null),S&&i(s)])}function u(){r()}return{renderToolbarDropdown:g,clearAllDropDown:u,updateContainerId:a}}const{buildResponseToolbarItems:rt}=We(),xe=c.defineComponent({name:"FResponseToolbar",props:Pe,emits:["click"],setup(t,e){const{t:n}=wt.useI18n(),o=c.ref(rt(t.items)),i=c.ref(),r=c.ref(),a=c.ref(),b={id:"__more_buttons__",text:n("responseToolbar.more")},d=c.ref(new we(b)),m={id:b.id+"width",text:b.text},y=c.ref(-1),l=De();let p=!1;const{guid:g,uuid:u}=re.useGuid(),s=t.id?t.id:"toolbar-"+g(),S=c.ref(),R="dropdown-container-"+s+"-"+u(4),{renderToolbarDropdown:k,clearAllDropDown:F,updateContainerId:M}=cn(t,e,l);M(R);const P=c.computed(()=>d.value.children.length>0),O=c.computed(()=>t.visible?d.value.children.length>0?!0:o.value.findIndex(V=>V.shown&&V.children&&V.children.length>0)>-1:!1);function E(){t.visible&&!S.value&&document&&(S.value=document.createElement("div"),S.value.id=R,document.body.appendChild(S.value))}E();function f(){S.value&&document.body.contains(S.value)&&(document.body.removeChild(S.value),S.value=null)}c.watch(O,(V,U)=>{V?E():f()});const D=c.computed(()=>{const V={"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0,"f-response-toolbar-sm":t.buttonSize==="sm","f-response-toolbar-lg":t.buttonSize==="lg","d-none":!t.visible};return re.getCustomClass(V,t.customClass)}),C=c.computed(()=>({"w-100":!0,"d-flex":!0,"flex-nowrap":!0,"justify-content-end":t.alignment==="right","justify-content-start":t.alignment==="left","justify-content-center":t.alignment==="center"}));function v(V){V&&V.target.closest("ul.dropdown-menu")&&V.type==="wheel"||(o.value.filter(U=>U.children&&U.children.length>0).forEach(U=>{U.expanded=!1}),d.value.expanded=!1,F())}function I(V,U){var se;const j={btn:!0,"f-rt-btn":!0,"f-btn-ml":t.alignment==="right"||U>0&&t.alignment==="center","f-btn-mr":t.alignment==="left","btn-icontext":!!(V.icon&&V.icon.trim())},X=((se=V==null?void 0:V.appearance)==null?void 0:se.class)||V.class||"btn-secondary";return re.getCustomClass(j,X)}function h(V,U){document.body.click(),typeof U.onClick=="function"&&U.onClick(V,U.id),e.emit("click",V,U.id)}function w(V,U){if(V.tipsEnable&&V.tipsText){const j=c.reactive({content:V.tipsText,enable:V.tipsEnable});return c.withDirectives(c.createVNode("button",{type:"button",class:I(V,U),id:V.id,disabled:!V.enable,onClick:X=>h(X,V)},[l.shouldShowIcon(V)&&c.createVNode("i",{class:l.iconClass(V)},null),V.text]),[[c.resolveDirective("tooltip"),j]])}return c.createVNode("button",{type:"button",class:I(V,U),id:V.id,disabled:!V.enable,onClick:j=>h(j,V)},[l.shouldShowIcon(V)&&c.createVNode("i",{class:l.iconClass(V)},null),V.text])}let N=new Map,T=[];function B(V){const U=Math.ceil(parseFloat(getComputedStyle(V).getPropertyValue("margin-left"))),j=Math.ceil(parseFloat(getComputedStyle(V).getPropertyValue("margin-right")));return(U||0)+V.getBoundingClientRect().width+(j||0)}function L(V,U,j){if(U<y.value){let X=j-1;for(;X>=0;X--){const se=V[X],ie=B(se);if(U+=ie,U>=y.value)break}j=X}return U-=y.value,{start:j,space:U}}function q(V){const U=a.value;let j=V;const se=Array.from(U.children).filter(le=>le.id!=="__more_buttons__"),ie=se.length;let oe=!1,ne=0;for(;ne<ie;ne++){const le=se[ne],ve=B(le);if(ve<=j)j-=ve;else{const ye=L(se,j,ne);ne=ye.start,j=ye.space,oe=!0;break}}if(!oe&&T.length>0){const le=L(se,j,ne);ne=le.start,j=le.space}const Te=T.length>0;for(;ne<ie;ne++){const le=se[ne],ve=B(le);N.set(le.id,!0);const ye=T.find(Se=>Se.id===le.id);ye?ye.width=ve:T[Te?"unshift":"push"]({id:le.id,width:ve})}return j}function W(V){let U=q(V);if(T.length){let ie=0;for(;ie<T.length;ie++){const oe=t.items.find(ne=>ne.id===T[ie].id);if(oe&&oe.visible!==!1){const ne=T[ie].width;if(U>=ne||ie===T.length-1&&U+y.value>=ne)U-=ne;else break}}for(let oe=0;oe<ie;oe++)N.delete(T[oe].id);T.splice(0,ie-1)}const j=Object.assign({},d.value);j.children=[];const X=new we(j),se=o.value.reduce((ie,oe)=>{const ne=t.items.find(Te=>Te.id===oe.id);return N.has(oe.id)?(X.children.push(oe),oe.shown=!1):oe.shown=ne.visible!==!1,ie.push(oe),ie},[]);d.value=X,o.value=se}function _(V=-1){if(V===0||!a.value||!r.value)return;V<0&&(V=r.value.getBoundingClientRect().width);const U=a.value.getBoundingClientRect().width;(V>=0&&V<U||T.length)&&(W(V),v())}function Q(){return y.value<0&&c.createVNode("div",{style:"position:absolute;top:-30px;visibility:hidden;"},[k(new we(m))])}const Y=new ResizeObserver(V=>{if(V.length){const j=V[0].contentRect.width;_(j)}});function Z(){N=new Map,T=[]}function z(){r.value&&!p&&(Y.observe(r.value),p=!0)}function ee(){if(i.value&&y.value<0){const V=i.value.querySelector("#"+m.id);V&&(y.value=B(V))}}return c.onMounted(()=>{ee(),_(),z(),document.body.addEventListener("click",v),document.body.addEventListener("wheel",v)}),c.onUnmounted(()=>{Y.disconnect(),f(),document.body.removeEventListener("click",v),document.body.removeEventListener("wheel",v)}),c.watch(()=>t.items,()=>{o.value=rt(t.items),d.value.children=[],c.nextTick(()=>{Z(),_()})},{deep:!0}),c.watch(()=>t.visible,V=>{V&&c.nextTick(()=>{ee(),_(),z()})}),e.expose({elementRef:i}),()=>c.createVNode("div",{class:D.value,id:s,ref:i,style:{"overflow-y":y.value<0?"hidden":"initial"}},[t.visible&&Q(),t.visible&&c.createVNode("div",{ref:r,class:C.value},[c.createVNode("div",{ref:a,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[o.value.filter(V=>V.shown).map((V,U)=>V.children&&V.children.length>0?k(V):w(V,U)),P.value&&k(d.value)])])])}}),dn=c.ref(0);function un(){dn.value++}const Ce=c.ref(0);function fn(t,e){const n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),i=o.top>=n.top,r=o.top<=n.bottom;return i&&r}function it(t){const e=t.querySelector(".component-btn-group");if(!e)return;e.style.display="";const n=e.getBoundingClientRect();if(!(n.top===0&&n.left===0)){const o=e.querySelector("div");if(o){const i=o.getBoundingClientRect();o.style.top=n.top+"px";let r=n.left-i.width;const a=document.querySelector(".editorDiv");if(a){const b=a.getBoundingClientRect();r<b.left&&({left:r}=t.getBoundingClientRect())}o.style.left=r+"px"}}}function pn(t){if(!window.scrollContainerList)return;const e=Array.from(window.scrollContainerList);if(e.length&&e.length===1){const n=e[0],o=document.querySelector(`[id=${n}]`);if(o&&o.contains(t))return o}}function st(t){if(!t)return;const e=t.getBoundingClientRect();if(e.width===0&&e.height===0)return;const n=t.querySelector(".component-btn-group");if(n){let o=!0;const i=pn(t);if(i&&(o=fn(t,i)),!o){n.style.display="none";return}it(t)}}function gn(t){if(!t)return;let e;t.className.includes("dgComponentSelected")?e=t:e=t.querySelector(".dgComponentSelected"),e&&st(e)}function mn(t){const{formSchemaUtils:e,formStateMachineUtils:n}=t;function o(d,m=""){return{path:m+d.code,field:d.id,fullPath:d.code}}function i(d,m=""){return e.getViewModelById(d).states.map(l=>o(l,m))}function r(d){const m=e.getRootViewModelId(),y=i(d);if(d===m)return y;const l=i(m,"root-component.");return[...y,...l]}function a(d){return d.binding&&d.binding.path||d.id||""}function b(){return n&&n.getRenderStates()||[]}return{getVariables:r,getControlName:a,getStateMachines:b}}class hn{constructor(e){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",(e,n)=>({convertFrom:(o,i,r,a)=>{const b=r.getExpressionRuleValue(e,n||i);return b&&b.value||""},convertTo:(o,i,r,a,b)=>{var d;if(i==="dataPicking"&&(r!=null&&r.target)){const m=`${r.target}_dataPicking`;((d=r.rules)==null?void 0:d.some(l=>l.id===m&&l.value))?o.dictPickingExpressionId=m:delete o.dictPickingExpressionId}a.updateExpression(r)}}));this.formSchemaService=e}getExpressionRule(e,n){const o=this.formSchemaService.getExpressions();if(!o)return"";const i=o.find(a=>a.target===e);if(!i)return"";const r=i.rules.find(a=>a.type===n);return r||""}getContextFormVariables(){const{module:e}=this.formSchemaService.getFormSchema();if(!e.viewmodels||e.viewmodels.length===0)return[];const n=this.formSchemaService.getRootViewModelId(),o=this.formSchemaService.getViewModelById(n);if(!o||!o.states||o.states.length===0)return[];const i=[];return o.states.forEach(r=>{i.push({key:r.code,name:r.name,description:r.name,category:r.category})}),i}createTreeNode(e,n,o="label"){return{id:e.id,name:e.name,bindingPath:e[o],parents:n,type:"field"}}buildEntityFieldsTreeData(e=null,n){const o=[];return e==null||e.forEach(i=>{var b;const r=this.createTreeNode(i,n);let a=[];(b=i.type)!=null&&b.fields&&(a=this.buildEntityFieldsTreeData(i.type.fields,[...n,i.label])),o.push({data:r,children:a,expanded:!0})}),o}buildChildEntityTreeData(e=null,n){const o=[];return e==null||e.forEach(i=>{var d,m;const r=this.createTreeNode(i,n);r.type="entity";const a=this.buildEntityFieldsTreeData((d=i.type)==null?void 0:d.fields,[...n,i.label]),b=this.buildChildEntityTreeData((m=i.type)==null?void 0:m.entities,[...n,i.label]);b!=null&&b.length&&(a==null||a.push(...b)),o.push({data:r,children:a||[],expanded:!0})}),o}getEntitiesTreeData(){const e=this.formSchemaService.getSchemaEntities();if(!(e!=null&&e.length))return[];const n=e[0];if(!(n!=null&&n.type))return[];const o=this.buildEntityFieldsTreeData(n.type.fields,[n.code]),i=this.buildChildEntityTreeData(n.type.entities,[n.code]);return i!=null&&i.length&&(o==null||o.push(...i)),{entityCode:n.code,fields:[{data:this.createTreeNode(n,[],"code"),children:o||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(e,n,o){const i=o==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,n),a=this.getEntitiesAndVariables(),b={message:["validate","required","dataPicking"].includes(n)&&r?r.message:"",...a};return r.messageType!=null&&(b.messageType=r.messageType),b}buildRule(e,n,o,i){const{expression:r,message:a,messageType:b}=n,d={id:`${e}_${o}`,type:o,value:r};return(o==="validate"||o==="dataPicking"||o==="required")&&(d.message=a),o==="dataPicking"&&(d.messageType=b),o==="validate"&&i&&(d.elementId=i),d}getExpressionData(){const{expressions:e}=this.formSchemaService.getFormSchema().module;return e||[]}updateExpression(e,n,o,i){const r=n==="Field"?e.binding.field:e.id,a=this.buildRule(r,o,i,e.type==="form-group"?e.id:"");let d=this.getExpressionData().find(y=>y.targetType===n&&y.target===r);const m=y=>y.value.trim()==="";if(d){const y=d.rules.find(l=>l.id===a.id);if(y)m(a)?d.rules=d.rules.filter(l=>l.id!==a.id):(Object.assign(y,a),i==="validate"&&e.type==="form-group"&&(y.elementId=e.id));else{if(m(a))return null;d.rules=d.rules||[],d.rules.push(a)}}else{if(m(a))return null;d={target:`${r}`,rules:[a],targetType:n}}return d}getExpressionEditorOptions(e,n,o,i){return o.reduce((r,a)=>{var d,m;const b=n==="Field"?(d=e==null?void 0:e.binding)==null?void 0:d.field:e.id;return r[a]={hide:n==="Field"?!!((m=e==null?void 0:e.binding)!=null&&m.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(b),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[a]}编辑器`,showMessage:a==="validate"||a==="dataPicking"||a==="required",showMessageType:a==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(e,a,n),onSubmitModal:y=>{const l=this.updateExpression(e,n,y,a);if(i){const p=this.buildRule(b,y,a);i(p)}return l}}},r},{})}getExpressionInfo(e,n,o){const i=n==="Field"?e.binding.field:e.id,r=this.getExpressionRule(i,o),a={value:r&&r.value,targetId:i,targetType:n,expressionType:o};return r&&r.message&&(a.message=r.message),a}getExpressionConfig(e,n,o=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!e.binding,properties:{...this.getExpressionEditorOptions(e,n,o,i)}}}getExpressionOptions(e,n,o){const i=this.getExpressionInfo(e,n,o);return{dialogTitle:`${this.expressionNames[o]}编辑器`,singleExpand:!1,showMessage:o==="required",beforeOpen:()=>this.onBeforeOpenExpression(e,o,n),expressionInfo:i}}}class ke{constructor(e,n){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,"designerContext");H(this,"schemaService",null);H(this,"metadataService",null);H(this,"propertyConfig",{type:"object",categories:{}});var o;this.componentId=e,this.designerHostService=n,this.eventsEditorUtils=n.eventsEditorUtils,this.formSchemaUtils=n.formSchemaUtils,this.formMetadataConverter=n.formMetadataConverter,this.viewModelId=((o=this.formSchemaUtils)==null?void 0:o.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=n.designViewModelUtils,this.controlCreatorUtils=n.controlCreatorUtils,this.metadataService=n.metadataService,this.schemaService=n.schemaService,this.designerContext=n.designerContext}getFormDesignerInstance(){var e,n;return(n=(e=this.designerContext)==null?void 0:e.instances)==null?void 0:n.formDesigner.value}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){var o;const n=e.binding&&e.binding.type==="Form"&&e.binding.field;if(n){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(r=>r.id===n)}e.updateOn=(o=this.designViewModelField)==null?void 0:o.updateOn}}getBasicPropConfig(e){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:e.type,name:Ee[e.type]&&Ee[e.type].name}]}}}}}getAppearanceConfig(e=null,n={},o){const i={title:"外观",description:"Appearance"},r={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const a in n)r[a]=Object.assign(r[a]||{},n[a]);return{...i,properties:{...r},setPropertyRelates(a,b){if(a){switch(a&&a.propertyID){case"class":case"style":{Ce.value++;break}}o&&o(a,e,b)}}}}getPropertyEditorParams(e,n=[],o="visible",i={},r={}){const{getVariables:a,getControlName:b,getStateMachines:d}=mn(this.designerHostService),m=this.getRealTargetType(e),y=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],l={type:"property-editor",propertyTypes:y};return y.map(p=>{switch(p){case"Const":Object.assign(l,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":l.expressionConfig=this.getExpressionOptions(e,m,o);break;case"StateMachine":l.stateMachines=d();break;case"Variable":Object.assign(l,{controlName:b(e),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),onBeforeOpenVariables:g=>{g.value=a(this.viewModelId)}},r);break}}),l}getVisibleProperty(e,n=""){var r;let o=["Const","Variable","StateMachine","Expression"];return n==="gridFieldEditor"?o=["Const","Expression"]:n==="form-group"&&!((r=e.binding)!=null&&r.field)&&(o=["Const","Variable","StateMachine"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(e,o,"visible")}}}getBehaviorConfig(e,n="",o={},i){const r={title:"行为",description:""},a=this.getVisibleProperty(e,n);for(const d in o)a[d]=Object.assign(a[d]||{},o[d]);const b=this;return{...r,properties:{...a},setPropertyRelates(d,m){if(d){switch(d.propertyID){case"disabled":case"readonly":case"visible":b.afterMutilEditorChanged(e,d);break}i&&i(d,m)}}}}afterMutilEditorChanged(e,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n),this.clearExpression(n,e)}updateElementByParentContainer(e,n){const o=n&&n.parent&&n.parent.schema;if(!o)return;const i=o.contents.findIndex(a=>a.id===e),r=de.cloneDeep(o.contents[i]);o.contents.splice(i,1),o.contents.splice(i,0,r),un()}addNewVariableToViewModel(e,n){const o=e.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(n).states.push(a)}updateExpressionValue(e){const n=e.propertyValue;if(!((n&&n.type)==="Expression"&&n.expressionInfo))return;const{expressionId:r,expressionInfo:a}=n,{targetId:b,targetType:d,expressionType:m,value:y,message:l}=a,p=this.formSchemaUtils.getModule();p.expressions=p.expressions||[];const{expressions:g}=p;let u=g.find(S=>S.target===b);u||(u={target:b,rules:[],targetType:d},g.push(u));const s=u.rules.find(S=>S.type===m);if(s)s.value=y,s.message=l;else{const S={id:r,type:m,value:y,message:l};u.rules.push(S)}delete n.expressionInfo}clearExpression(e,n){const o=e.propertyValue;if(o&&o.type==="Expression")return;const r=e.propertyID,a=this.formSchemaUtils.getExpressions(),b=n.binding?n.binding.field:n.id,d=a.find(m=>m.target===b);!d||!d.rules||(d.rules=d.rules.filter(m=>m.type!==r))}getExpressionOptions(e,n,o){return new hn(this.formSchemaUtils).getExpressionOptions(e,n,o)}getRealTargetType(e){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item"].indexOf(e.type)>-1?"Button":e.binding&&e.binding.field?"Field":"Container"}createBaseEventProperty(e){const n={};return n[this.viewModelId]={type:"events-editor",editor:{initialData:e,viewSourceHandle:o=>{var i;((i=o.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(o)}}},n}}class bn extends ke{constructor(n,o,i="response-toolbar"){super(n,o);H(this,"toolbarType","response-toolbar");this.toolbarType=i}getPropertyConfig(n){return this.propertyConfig.categories.basic=this.getBasicPropConfig(n),this.toolbarType!=="tab-toolbar"&&this.getAppearancePropConfig(n),this.propertyConfig.categories.behavior=this.getBehaviorConfig(n),this.propertyConfig}getAppearancePropConfig(n){this.propertyConfig.categories.appearance={title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}}}}getBehaviorProperties(n){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 vn(t,e,n){const o=t.schema;function i(){var s;let u=((s=t.parent)==null?void 0:s.schema.type)||"";["page-header","tabs","section"].findIndex(S=>S===u)===-1&&(u=""),n.toolbarPosition=u}i();function r(u){return!1}function a(u,s){return s.text=u.label,s}function b(){return!1}function d(){return!1}function m(){return!1}function y(){return!0}function l(u){return new bn(u,e,o.type).getPropertyConfig(o)}function p(u){var k;u&&(u.stopPropagation(),u.preventDefault());const{schema:s}=t;s.buttons||(s.buttons=[]);let S="";if(s.type)S=s.type+"-item";else{const F=(k=t.parent)==null?void 0:k.schema.type;S=F==="tabs"?"tab-toolbar-item":F==="section"?"section-toolbar-item":"response-toolbar-item"}const R=He(S);R.id=`toolbar_item_${Math.random().toString().slice(2,6)}`,s.buttons.push(R),n.updateToolbarItems(),n.changeSelectedId("")}function g(){return[{id:"appendItem",title:"新增按钮",text:"",icon:"f-icon f-icon-plus-circle text-white",onClick:u=>p(u)}]}return{canAccepts:r,checkCanAddComponent:m,checkCanDeleteComponent:d,checkCanMoveComponent:b,hideNestedPaddingInDesginerView:y,onResolveNewComponentSchema:a,getPropsConfig:l,getCustomButtons:g}}var me=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Ie(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var at={exports:{}};(function(t,e){(function(n){t.exports=n()})(function(){return function(){function n(o,i,r){function a(m,y){if(!i[m]){if(!o[m]){var l=typeof Ie=="function"&&Ie;if(!y&&l)return l(m,!0);if(b)return b(m,!0);var p=new Error("Cannot find module '"+m+"'");throw p.code="MODULE_NOT_FOUND",p}var g=i[m]={exports:{}};o[m][0].call(g.exports,function(u){var s=o[m][1][u];return a(s||u)},g,g.exports,n,o,i,r)}return i[m].exports}for(var b=typeof Ie=="function"&&Ie,d=0;d<r.length;d++)a(r[d]);return a}return n}()({1:[function(n,o,i){var r={},a="(?:^|\\s)",b="(?:\\s|$)";function d(l){var p=r[l];return p?p.lastIndex=0:r[l]=p=new RegExp(a+l+b,"g"),p}function m(l,p){var g=l.className;g.length?d(p).test(g)||(l.className+=" "+p):l.className=p}function y(l,p){l.className=l.className.replace(d(p)," ").trim()}o.exports={add:m,rm:y}},{}],2:[function(n,o,i){(function(r){var a=n("contra/emitter"),b=n("crossvent"),d=n("./classes"),m=document,y=m.documentElement;function l(v,I){var h=arguments.length;h===1&&Array.isArray(v)===!1&&(I=v,v=[]);var w,N,T,B,L,q,W,_,Q,Y=null,Z,z,ee=!1,V=0,U,j=I||{};j.moves===void 0&&(j.moves=k),j.accepts===void 0&&(j.accepts=k),j.invalid===void 0&&(j.invalid=Fn),j.containers===