@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
3 lines (2 loc) • 29 kB
JavaScript
(function(P,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../dynamic-resolver/index.umd.js"],c):(P=typeof globalThis<"u"?globalThis:P||self,c(P.dropdown={},P.Vue,P.LodashES,P.dynamicResolver))})(this,function(P,c,q,ie){"use strict";function G(e,t){let o;function a(n){const{properties:l,title:v,ignore:r}=n,i=r&&Array.isArray(r),u=Object.keys(l).reduce((w,d)=>((!i||!r.find(s=>s===d))&&(w[d]=l[d].type==="object"&&l[d].properties?a(l[d]):q.cloneDeep(l[d].default)),w),{});if(v&&(!i||!r.find(w=>w==="id"))){const w=v.toLowerCase().replace(/-/g,"_");u.id=`${w}_${Math.random().toString().slice(2,6)}`}return u}function F(n){const{properties:l,title:v,required:r}=n;if(r&&Array.isArray(r)){const i=r.reduce((u,w)=>(u[w]=l[w].type==="object"&&l[w].properties?a(l[w]):q.cloneDeep(l[w].default),u),{});if(v&&r.find(u=>u==="id")){const u=v.toLowerCase().replace(/-/g,"_");i.id=`${u}_${Math.random().toString().slice(2,6)}`}return i}return{type:v}}function M(n,l={},v){const r=e[n];if(r){let i=F(r);const u=t[n];return i=u?u({getSchemaByType:M},i,l,v):i,o!=null&&o.appendIdentifyForNewControl&&o.appendIdentifyForNewControl(i),i}return null}function B(n,l){const v=a(l);return Object.keys(v).reduce((r,i)=>(Object.prototype.hasOwnProperty.call(n,i)&&(r[i]&&q.isPlainObject(r[i])&&q.isPlainObject(n[i]||!n[i])?Object.assign(r[i],n[i]||{}):r[i]=n[i]),r),v),v}function D(n,l){return Object.keys(n).filter(r=>n[r]!=null).reduce((r,i)=>{if(l.has(i)){const u=l.get(i);if(typeof u=="string")r[u]=n[i];else{const w=u(i,n[i],n);Object.assign(r,w)}}else r[i]=n[i];return r},{})}function E(n,l,v=new Map){const r=B(n,l);return D(r,v)}function m(n){var v;const l=n.type;if(l){const r=e[l];if(!r)return n;const i=B(n,r),u=((v=n.editor)==null?void 0:v.type)||"";if(u){const w=e[u],d=B(n.editor,w);i.editor=d}return i}return n}function g(n){o=n}return{getSchemaByType:M,resolveSchemaWithDefaultValue:m,resolveSchemaToProps:E,mappingSchemaToProps:D,setDesignerContext:g}}const U={},Y={},{getSchemaByType:Ue,resolveSchemaWithDefaultValue:ae,resolveSchemaToProps:se,mappingSchemaToProps:ce,setDesignerContext:Ye}=G(U,Y);function le(e={}){function t(m,g,n,l){if(typeof n=="number")return l[m].length===n;if(typeof n=="object"){const v=Object.keys(n)[0],r=n[v];if(v==="not")return Number(l[m].length)!==Number(r);if(v==="moreThan")return Number(l[m].length)>=Number(r);if(v==="lessThan")return Number(l[m].length)<=Number(r)}return!1}function o(m,g,n,l){return l[m]&&l[m].propertyValue&&String(l[m].propertyValue.value)===String(n)}const a=new Map([["length",t],["getProperty",o]]);Object.keys(e).reduce((m,g)=>(m.set(g,e[g]),m),a);function F(m,g){const n=m;return typeof g=="number"?[{target:n,operator:"length",param:null,value:Number(g)}]:typeof g=="boolean"?[{target:n,operator:"getProperty",param:m,value:!!g}]:typeof g=="object"?Object.keys(g).map(l=>{if(l==="length")return{target:n,operator:"length",param:null,value:g[l]};const v=l,r=g[l];return{target:n,operator:"getProperty",param:v,value:r}}):[]}function M(m){return Object.keys(m).reduce((n,l)=>{const v=F(l,m[l]);return n.push(...v),n},[])}function B(m,g){if(a.has(m.operator)){const n=a.get(m.operator);return n&&n(m.target,m.param,m.value,g)||!1}return!1}function D(m,g){return M(m).reduce((v,r)=>v&&B(r,g),!0)}function E(m,g){const n=Object.keys(m),l=n.includes("allOf"),v=n.includes("anyOf"),r=l||v,w=(r?m[r?l?"allOf":"anyOf":"allOf"]:[m]).map(s=>D(s,g));return l?!w.includes(!1):w.includes(!0)}return{parseValueSchema:E}}const ue={convertTo:(e,t,o,a)=>{e.appearance||(e.appearance={}),e.appearance[t]=o},convertFrom:(e,t,o)=>e.appearance?e.appearance[t]:e[t]},fe={convertFrom:(e,t,o)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},de={convertTo:(e,t,o,a)=>{e.editor&&(e.editor[t]=o)},convertFrom:(e,t,o)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},Z={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:"多语输入框"}},pe={convertFrom:(e,t,o)=>{var F;const a=e.editor&&e.editor[t]?e.editor[t]:e[t];return((F=Z[a])==null?void 0:F.name)||a}},me={convertTo:(e,t,o,a)=>{e[t]=e[t]},convertFrom:(e,t,o)=>e.editor?o.getRealEditorType(e.editor.type):""},ye={convertTo:(e,t,o,a)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=o:e.formatter={[t]:o})},convertFrom:(e,t,o)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},ve={convertTo:(e,t,o,a)=>{e.command?e.command[t]=o:e.command={[t]:o},t==="enable"&&o&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,o)=>e.command&&t==="enable"?e.command.enable:""},ge={convertTo:(e,t,o,a)=>{e.column?e.column[t]=o:e.column={[t]:o},t==="fitColumns"&&o&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,o)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},be={convertTo:(e,t,o,a)=>{e.summary?e.summary[t]=o:e.summary={[t]:o},t==="enable"&&o&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:o,groupFields:[]})},convertFrom:(e,t,o)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},we={convertTo:(e,t,o,a)=>{e.group?e.group[t]=o:e.group={[t]:o},t==="enable"&&o&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:o,groupFields:[],showSummary:!1})},convertFrom:(e,t,o)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},he={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,o)=>{if(o&&o.length>0){const a=o[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=a.bindingField,e.binding.field=a.id,e.binding.fullPath=a.path,e.path=a.bindingPath}}},Se={convertTo:(e,t,o,a)=>{e.pagination||(e.pagination={}),e.pagination[t]=o},convertFrom:(e,t,o)=>e.pagination?e.pagination[t]:e[t]},Te={convertTo:(e,t,o,a)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=o},convertFrom:(e,t,o)=>e.rowNumber?e.rowNumber[t]:e[t]},Fe={convertTo:(e,t,o,a)=>{e.selection||(e.selection={}),e.selection[t]=o},convertFrom:(e,t,o)=>e.selection?e.selection[t]:e[t]},De={convertFrom:(e,t,o)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},Ne={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,o)=>{e[t]=o}},Be={convertTo:(e,t,o,a)=>{e.size||(e.size={}),e.size[t]=o},convertFrom:(e,t,o)=>e.size?e.size[t]:e[t]},Me={convertFrom:(e,t,o)=>{var a,F;return(a=e.formatter)!=null&&a.data&&t==="formatterEnumData"&&!e.formatterEnumData?(F=e.formatter)==null?void 0:F.data:e.formatterEnumData}},$e={convertTo:(e,t,o,a)=>{e.sort||(e.sort={}),e.sort[t]=o},convertFrom:(e,t,o)=>{var a,F;if(t==="mode")return((a=e.sort)==null?void 0:a.mode)||"client";if(t==="multiSort")return!!((F=e.sort)!=null&&F.multiSort)}},ke={convertTo:(e,t,o,a)=>{e.filter||(e.filter={}),e.filter[t]=o},convertFrom:(e,t,o)=>{var a;if(t==="mode")return((a=e.filter)==null?void 0:a.mode)||"client"}},Oe={convertTo:(e,t,o,a)=>{e.rowOption?e.rowOption[t]=o:e.rowOption={[t]:o}},convertFrom:(e,t,o)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function x(e,t,o){const a=new Map([["/converter/appearance.converter",ue],["/converter/buttons.converter",fe],["/converter/property-editor.converter",de],["/converter/items-count.converter",De],["/converter/type.converter",pe],["/converter/change-editor.converter",me],["/converter/change-formatter.converter",ye],["/converter/column-command.converter",ve],["/converter/column-option.converter",ge],["/converter/summary.converter",be],["/converter/group.converter",we],["/converter/form-group-label.converter",Ne],["/converter/field-selector.converter",he],["/converter/pagination.converter",Se],["/converter/row-number.converter",Te],["/converter/grid-selection.converter",Fe],["/converter/size.converter",Be],["/converter/change-formatter-enum.converter",Me],["/converter/grid-sort.converter",$e],["/converter/grid-filter.converter",ke],["/converter/row-option.converter",Oe]]),F=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}]]),M=le();function B(r,i){return()=>M.parseValueSchema(r,i)}function D(r,i,u){return r.includes("visible")&&i.visible!==void 0?typeof i.visible=="boolean"?()=>!!i.visible:i.visible===void 0?!0:B(i.visible,u):()=>!0}function E(r,i,u){return r.includes("readonly")&&i.readonly!==void 0?typeof i.readonly=="boolean"?()=>!!i.readonly:B(i.readonly,u):()=>!1}function m(r,i){const u=r.$converter||i;return typeof u=="string"&&u&&a.has(u)?a.get(u)||null:u||null}function g(r,i,u,w,d,s="",$=""){return Object.keys(r).map(h=>{const O=c.ref(1),k=h,p=r[h],j=Object.keys(p),L=p.title,f=p.type,b=F.get(f)||{type:"input-group",enableClear:!1},y=p.editor?Object.assign({},b,p.editor):Object.assign({},b),S=D(j,p,i),T=E(j,p,i);y.readonly=y.readonly===void 0?T():y.readonly;const R=p.type==="cascade"?g(p.properties,i,u,w,d,s,$):[],z=!0;let H=m(p,$);const C=c.computed({get(){if(O.value){if(["class","style"].find(Ge=>Ge===k)&&!H&&(H=a.get("/converter/appearance.converter")||null),H&&H.convertFrom)return H.convertFrom(u,h,d,s);const V=u[h];return Object.prototype.hasOwnProperty.call(p,"defaultValue")&&(V===void 0||typeof V=="string"&&V==="")?p.type==="boolean"?p.defaultValue:p.defaultValue||"":V}return null},set(V){O.value+=1,H&&H.convertTo?(H.convertTo(w,h,V,d,s),H.convertTo(u,h,V,d,s)):(w[h]=V,u[h]=V)}}),{refreshPanelAfterChanged:A,description:We,isExpand:_e,parentPropertyID:Xe}=p,re={propertyID:k,propertyName:L,propertyType:f,propertyValue:C,editor:y,visible:S,readonly:T,cascadeConfig:R,hideCascadeTitle:z,refreshPanelAfterChanged:A,description:We,isExpand:_e,parentPropertyID:Xe};return i[k]=re,re})}function n(r,i,u={}){const w={},d=e[r];return d&&d.categories?Object.keys(d.categories).map($=>{const N=d.categories[$],h=N==null?void 0:N.title,O=g(N.properties||{},w,{},u,i);return{categoryId:$,categoryName:h,properties:O}}):[]}function l(r,i,u,w,d=""){const s=i.$ref.schema,$=i.$ref.converter,N=u[s],h=N.type,O=o(N),k={},p=e[h];if(p&&p.categories){const j=p.categories[r],L=j==null?void 0:j.title;$&&Object.keys(j.properties).forEach(y=>{j.properties[y].$converter=$});const f=(j==null?void 0:j.properties)||{},b=g(f,k,O,N,w,d);return{categoryId:r,categoryName:L,properties:b}}return{categoryId:r,categoryName:"",properties:[]}}function v(r,i,u,w,d){const s=r.type,$=o(r),N={};let h=d||e[s];if(h&&Object.keys(h).length===0&&u&&u.getPropConfig&&(h=u.getPropConfig(w)),h&&h.categories){const O=[];return Object.keys(h.categories).map(k=>{const p=h.categories[k];if(p.$ref){O.push(l(k,p,r,i,w));return}const j=p==null?void 0:p.title,L=p==null?void 0:p.tabId,f=p==null?void 0:p.tabName,b=p==null?void 0:p.hide,y=p==null?void 0:p.hideTitle,S=g(p.properties||{},N,$,r,i,w,p.$converter),{setPropertyRelates:T}=p,R=p==null?void 0:p.parentPropertyID;O.push({categoryId:k,categoryName:j,tabId:L,tabName:f,hide:b,properties:S,hideTitle:y,setPropertyRelates:T,parentPropertyID:R})}),O}return[]}return{getPropertyConfigBySchema:v,getPropertyConfigByType:n,propertyConverterMap:a}}const J={},Q={};x(J,Q,ae);const I={},K={},{getSchemaByType:Ze,resolveSchemaWithDefaultValue:Ee,resolveSchemaToProps:xe,mappingSchemaToProps:Je,setDesignerContext:Qe}=G(I,K),ee={},te={};x(ee,te,Ee);function je(e,t,o=new Map,a=(B,D,E,m)=>D,F={},M=B=>B){return U[t.title]=t,Y[t.title]=a,J[t.title]=F,Q[t.title]=M,I[t.title]=t,K[t.title]=a,ee[t.title]=F,te[t.title]=M,(B={},D=!0)=>{if(!D)return ce(B,o);const E=se(B,t,o),m=Object.keys(e).reduce((g,n)=>(g[n]=e[n].default,g),{});return Object.assign(m,E)}}function Re(e,t){return{customClass:t.class,customStyle:t.style}}function He(e,t,o){return t}const Pe=new Map([["appearance",Re]]),Le={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},Ce={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},W={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},X=je(W,Le,Pe,He,Ce);function oe(e,t){let o;const a=c.ref(e.show),F=c.ref(),M=c.ref(),B=c.ref(),D=10;c.onMounted(()=>{o=M.value});const E=(d=1)=>{const s=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],$=Array.from(document.body.querySelectorAll(s.join(","))).filter(h=>h).map(h=>{const{display:O,zIndex:k}=window.getComputedStyle(h);return O==="none"?0:parseInt(k,10)}).filter(h=>h);let N=Math.max(...$);return N<1040&&(N=1040),N+d},m=(d,s)=>{const{height:$,left:N,top:h,width:O}=d.getBoundingClientRect(),{width:k,height:p,top:j}=s.getBoundingClientRect();if(d.className.indexOf("dropdown-submenu")>-1||d.closest(".dropdown-submenu")||d.classList.contains("dropright")){const f=window.innerWidth-N-d.offsetWidth,b=window.innerHeight-h,{position:y}=getComputedStyle(s);if(y==="fixed"){let S=N+d.offsetWidth;s.offsetWidth>f&&N>f&&(S=N-k),s.style.left=S+"px",s.style.right="auto",window.innerHeight-2*D<s.offsetHeight?(s.style.top=D+"px",s.style.bottom=D+"px",s.style.maxHeight=window.innerHeight-2*D+"px",s.style.overflowY="auto",s.className+=" dropdown-menu-maxheight"):b<s.offsetHeight?(s.style.top="auto",s.style.bottom=D+"px"):(s.style.top=h+"px",s.style.bottom="auto")}else{if(s.offsetWidth>f){const S=-k;s.style.left=S+"px"}window.innerHeight-2*D<s.offsetHeight?(s.style.top=-1*(h-D)+"px",s.style.bottom="auto",s.style.maxHeight=window.innerHeight-2*D+"px",s.style.overflowY="auto",s.className+=" dropdown-menu-maxheight"):b<s.offsetHeight&&(s.style.top=b-s.offsetHeight-D+"px",s.style.bottom="auto")}}else{const{marginTop:f,marginBottom:b}=getComputedStyle(s);let y=0;const S=Math.ceil(parseFloat(f))+Math.ceil(parseFloat(b));let T=h+$,R=N;window.innerHeight-T-S<p&&(T=h-p,T<0&&(window.innerHeight-h-$>h?(T=h+$,y=window.innerHeight-T-S-D):(T=D,y=h-T-S))),window.innerWidth-N<k&&window.innerWidth-N<N+O&&(R=N-k+O),document.body.append(s),s.style.cssText=`position:fixed;bottom:unset;left:${R}px
!important;top:${T}px !important;right: unset;${y?"max-height:"+y+"px;overflow-y:auto;":""}`,y&&(s.className+=" dropdown-menu-maxheight"),s.style.zIndex=E().toString()}},g=()=>{m(F.value,M.value)},n=()=>{e.hover||(a.value=!1,M.value.style=null,document.removeEventListener("click",n),o.removeEventListener("click",n),document.removeEventListener("scroll",n),o.removeEventListener("scroll",n))},l=(d=null,s=!1)=>{e.hover||e.disabled||(d==null||d.stopPropagation(),s?(setTimeout(()=>{g()}),a.value=!0):(a.value||setTimeout(()=>{g()}),a.value=!a.value),document.addEventListener("click",n),document.addEventListener("scroll",n),e.hideOnClick||(o.addEventListener("click",$=>{$.stopPropagation()}),o.addEventListener("scroll",$=>{$.stopPropagation()})))};return{show:a,dropdownRef:F,dropdownMenuRef:M,clickEventRef:B,showDropMenu:d=>{l(d,!1)},showDropMenuByForce:l,hoverDropdown:d=>{e.hover&&(a.value||setTimeout(()=>{}),a.value=!a.value)},leftButtonClick:()=>{},closeDropMenu:n,selectItem:d=>{t.emit("select",d)},resolveSize:d=>{const s=/px|em|rem|pt|%/;return s.test(d)?`${parseInt(d,10)}${d.match(s)[0]}`:`${d}px`}}}const Ve={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},ne=c.defineComponent({name:"FDropdownItem",props:Ve,emits:["select"],setup(e,t){const o=c.ref(e.value),a=c.ref(e.label),F=c.ref(e.disabled),M=c.ref(e.active),B=c.ref(e.divide),D=()=>{F.value||t.emit("select",e)};return()=>c.createVNode("div",null,[c.withDirectives(c.createVNode("div",{class:"dropdown-divider"},null),[[c.vShow,B.value]]),c.createVNode("li",{class:`dropdown-item${M.value?" active":""} ${F.value?" disabled":""}`,onClick:D,title:o.value.toString()},[a.value])])}}),_=c.defineComponent({name:"FDropdown",props:W,emits:["select"],setup(e,t){const o=c.ref(e.model),{show:a,dropdownMenuRef:F,dropdownRef:M,clickEventRef:B,showDropMenu:D,hoverDropdown:E,leftButtonClick:m,showDropMenuByForce:g,closeDropMenu:n,selectItem:l,resolveSize:v}=oe(e,t);function r(u){n(),t.emit("select",u)}function i(){return[{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}]}return c.onMounted(()=>{a.value&&g(null,!0)}),()=>c.createVNode("div",{ref:M},[c.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&c.createVNode("span",{class:["btn",...i()],style:"width:100%",onClick:m},[e.title]),c.createVNode("span",{ref:B,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-toggle-split":e.splitButton},...i()],style:"width:100%",onClick:D,onMouseenter:E,onMouseleave:E},[e.splitButton?"":e.title,e.iconClass&&c.createVNode("span",{class:`f-icon ${e.iconClass}`},null)]),c.createVNode(c.Teleport,{to:"body"},{default:()=>[c.createVNode("div",{ref:F,class:`dropdown-menu${a.value?" show":""}`},[c.createVNode(c.Fragment,null,[o.value.map(({label:u,value:w,disabled:d,active:s,divide:$})=>c.createVNode(ne,{value:w.toString(),label:u,disabled:d,active:s,divide:$,onSelect:N=>r(N)},null))])])]})])])}});function ze(e,t,o){var L;const a="",F="",M=c.ref();let B;function D(){return(t==null?void 0:t.schema.componentType)!=="frame"}function E(){return!1}function m(){return(t==null?void 0:t.schema.componentType)!=="frame"}function g(){return(t==null?void 0:t.schema.componentType)==="frame"}function n(f){if(!f||!f.value)return null;if(f.value.schema&&f.value.schema.type==="component")return f.value;const b=c.ref(f==null?void 0:f.value.parent),y=n(b);return y||null}function l(f=t){var T;const{componentInstance:b,designerItemElementRef:y}=f;if(!b||!b.value)return null;const{getCustomButtons:S}=b.value;return b.value.canMove||S&&((T=S())!=null&&T.length)?y:l(f.parent)}function v(f){return!!o}function r(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function i(){}function u(f,b){var y;!f||!b||(y=t==null?void 0:t.setupContext)==null||y.emit("dragEnd")}function w(f,b){const{componentType:y}=f;let S=ie.getSchemaByTypeForDesigner(y,f,b);const T=y.toLowerCase().replace(/-/g,"_");return S&&!S.id&&S.type===y&&(S.id=`${T}_${Math.random().toString().slice(2,6)}`),S}function d(f){}function s(...f){}function $(f){if(!f)return;const b=t==null?void 0:t.schema,{formSchemaUtils:y}=f;if(b&&y.getExpressions().length){const S=y.getExpressions().findIndex(T=>T.target===b.id);S>-1&&y.getExpressions().splice(S,1)}}function N(f){if(!f||!(t!=null&&t.schema))return;const b=t.schema,{formSchemaUtils:y}=f;y.removeCommunicationInComponent(b)}function h(f){$(f),N(f),t!=null&&t.schema.contents&&t.schema.contents.map(b=>{let y=b.id;b.type==="component-ref"&&(y=b.component);const S=e.value.querySelectorAll(`#${y}-design-item`);S!=null&&S.length&&Array.from(S).map(T=>{var R;(R=T==null?void 0:T.componentInstance)!=null&&R.value.onRemoveComponent&&T.componentInstance.value.onRemoveComponent(f)})})}function O(){}function k(f){var y,S;if(!((y=t==null?void 0:t.schema)!=null&&y.id))return;!B&&f&&(B=f.formSchemaUtils);let b="";{const{text:T,title:R,label:z,mainTitle:H,name:C,type:A}=t.schema;b=T||R||z||H||C||((S=Z[A])==null?void 0:S.name)}b&&B.getControlBasicInfoMap().set(t.schema.id,{componentTitle:b,parentPathName:b})}function p(f){var T;const{changeObject:b}=f,{propertyID:y,propertyValue:S}=b;if(["text","title","label","name","mainTitle"].includes((T=f==null?void 0:f.changeObject)==null?void 0:T.propertyID)&&y&&S&&(k(),B)){const R=B.getControlBasicInfoMap(),z=R.keys().toArray().filter(H=>{var C,A;return((C=R.get(H))==null?void 0:C.reliedComponentId)===((A=t==null?void 0:t.schema)==null?void 0:A.id)});z!=null&&z.length&&z.forEach(H=>{const C=R.get(H).parentPathName.split(" > ");C[0]=S,R.get(H).parentPathName=C.join(" > ")})}}function j(f){p(f)}return M.value={canMove:D(),canSelectParent:E(),canDelete:m(),canNested:!g(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(L=t==null?void 0:t.parent)==null?void 0:L.componentInstance,schema:t==null?void 0:t.schema,styles:a,designerClass:F,canAccepts:v,getBelongedComponentInstance:n,getDraggableDesignItemElement:l,getDraggingDisplayText:r,getPropConfig:s,getDragScopeElement:i,onAcceptMovedChildElement:u,onChildElementMovedOut:d,addNewChildComponentSchema:w,triggerBelongedComponentToMoveWhenMoved:c.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:c.ref(!1),onRemoveComponent:h,getCustomButtons:O,onPropertyChanged:j,setComponentBasicInfoMap:k,updateContextSchema:t==null?void 0:t.updateContextSchema},M}const Ae=c.defineComponent({name:"FDropdownDesign",props:W,emits:["select"],setup(e,t){const o=c.ref(e.model),{show:a,showDropMenu:F,hoverDropdown:M,leftButtonClick:B,closeDropMenu:D,selectItem:E,resolveSize:m}=oe(e,t);function g(r){t.emit("select",r)}const n=c.ref(),l=c.inject("design-item-context"),v=ze(n,l);return c.onMounted(()=>{n.value.componentInstance=v}),t.expose(v.value),()=>c.createVNode("div",{ref:n},[c.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&c.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:B},[e.title]),c.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:F,onMouseenter:M,onMouseleave:M},[c.withDirectives(c.createVNode("span",{class:"sr-only"},null),[[c.vShow,e.splitButton]]),e.splitButton?"":e.title,c.withDirectives(c.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[c.vShow,e.iconClass]])]),c.createVNode("div",{class:`dropdown-menu${a.value?" show":""}`},[c.createVNode(c.Fragment,null,[o.value.map(({label:r,value:i,disabled:u,active:w,divide:d})=>c.createVNode(ne,{value:i.toString(),label:r,disabled:u,active:w,divide:d,onSelect:s=>g(s)},null))])])])])}}),qe={install(e){e.component(_.name,_)},register(e,t,o,a){e.dropdown=_,t.dropdown=X},registerDesigner(e,t,o){e.dropdown=Ae,t.dropdown=X}};P.Dropdown=_,P.default=qe,P.dropdownProps=W,P.propsResolver=X,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});