@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 22.9 kB
JavaScript
(function(D,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js"],o):(D=typeof globalThis<"u"?globalThis:D||self,o(D.layout={},D.Vue,D.LodashES,D.common))})(this,function(D,o,T,q){"use strict";const F={},W={};function V(n){const{properties:e,title:t,ignore:a}=n,l=a&&Array.isArray(a),s=Object.keys(e).reduce((c,v)=>((!l||!a.find(C=>C===v))&&(c[v]=e[v].type==="object"&&e[v].properties?V(e[v]):T.cloneDeep(e[v].default)),c),{});if(t&&(!l||!a.find(c=>c==="id"))){const c=t.toLowerCase().replace(/-/g,"_");s.id=`${c}_${Math.random().toString().slice(2,6)}`}return s}function x(n){const{properties:e,title:t,required:a}=n;if(a&&Array.isArray(a)){const l=a.reduce((s,c)=>(s[c]=e[c].type==="object"&&e[c].properties?V(e[c]):T.cloneDeep(e[c].default),s),{});if(t&&a.find(s=>s==="id")){const s=t.toLowerCase().replace(/-/g,"_");l.id=`${s}_${Math.random().toString().slice(2,6)}`}return l}return{type:t}}function _(n,e={},t){const a=F[n];if(a){let l=x(a);const s=W[n];return l=s?s({getSchemaByType:_},l,e,t):l,l}return null}function I(n,e){const t=V(e);return Object.keys(t).reduce((a,l)=>(Object.prototype.hasOwnProperty.call(n,l)&&(a[l]&&T.isPlainObject(a[l])&&T.isPlainObject(n[l]||!n[l])?Object.assign(a[l],n[l]||{}):a[l]=n[l]),a),t),t}function Y(n,e){return Object.keys(n).filter(a=>n[a]!=null).reduce((a,l)=>{if(e.has(l)){const s=e.get(l);if(typeof s=="string")a[s]=n[l];else{const c=s(l,n[l],n);Object.assign(a,c)}}else a[l]=n[l];return a},{})}function ee(n,e,t=new Map){const a=I(n,e);return Y(a,t)}function te(n={}){function e(r,m,u,z){if(typeof u=="number")return z[r].length===u;if(typeof u=="object"){const $=Object.keys(u)[0],j=u[$];if($==="not")return Number(z[r].length)!==Number(j);if($==="moreThan")return Number(z[r].length)>=Number(j);if($==="lessThan")return Number(z[r].length)<=Number(j)}return!1}function t(r,m,u,z){return z[r]&&z[r].propertyValue&&String(z[r].propertyValue.value)===String(u)}const a=new Map([["length",e],["getProperty",t]]);Object.keys(n).reduce((r,m)=>(r.set(m,n[m]),r),a);function l(r,m){const u=r;return typeof m=="number"?[{target:u,operator:"length",param:null,value:Number(m)}]:typeof m=="boolean"?[{target:u,operator:"getProperty",param:r,value:!!m}]:typeof m=="object"?Object.keys(m).map(z=>{if(z==="length")return{target:u,operator:"length",param:null,value:m[z]};const $=z,j=m[z];return{target:u,operator:"getProperty",param:$,value:j}}):[]}function s(r){return Object.keys(r).reduce((u,z)=>{const $=l(z,r[z]);return u.push(...$),u},[])}function c(r,m){if(a.has(r.operator)){const u=a.get(r.operator);return u&&u(r.target,r.param,r.value,m)||!1}return!1}function v(r,m){return s(r).reduce(($,j)=>$&&c(j,m),!0)}function C(r,m){const u=Object.keys(r),z=u.includes("allOf"),$=u.includes("anyOf"),j=z||$,y=(j?r[j?z?"allOf":"anyOf":"allOf"]:[r]).map(b=>v(b,m));return z?!y.includes(!1):y.includes(!0)}return{parseValueSchema:C}}const k={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:"筛选条"}},ne={},oe={};te();function X(n,e,t=new Map,a=(c,v,C,r)=>v,l={},s=c=>c){return F[e.title]=e,W[e.title]=a,ne[e.title]=l,oe[e.title]=s,(c={},v=!0)=>{if(!v)return Y(c,t);const C=ee(c,e,t),r=Object.keys(n).reduce((m,u)=>(m[u]=n[u].default,m),{});return Object.assign(r,C)}}function ae(n,e){return{customClass:e.class,customStyle:e.style}}const U=new Map([["appearance",ae]]);function G(n,e,t){return e}const re={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout.schema.json",title:"layout",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for layout component",type:"string"},type:{description:"The type string of layout component",type:"string",default:"layout"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},collapsable:{description:"",type:"boolean",default:!1},resizable:{description:"",type:"boolean",default:!0},visible:{description:"",type:"boolean",default:!0}},required:["id","type","contents"]},ie={title:"layout",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0}}},behavior:{description:"Basic Infomation",title:"行为",properties:{collapsable:{description:"",title:"可收折",type:"boolean"},resizable:{description:"",title:"可调整尺寸",type:"boolean"}}}}},N={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},R=X(N,re,U,G,ie);function J(n){const e=o.ref(-1),t=o.ref(-1),a=o.ref(0),l=o.ref(0),s=o.ref(!1),c=o.ref(!1),v=o.computed(()=>({display:s.value?"block":"none",left:`${a.value}px`,cursor:"e-resize"})),C=o.computed(()=>({display:c.value?"block":"none",top:`${l.value}px`,cursor:"n-resize"})),r=o.computed(()=>{const d={display:c.value||s.value?"block":"none"};return l.value>0&&(d.cursor="n-resize"),d});function m(d,y,h,b){const w=n.value;if(w){const{left:p,right:g,width:B}=w.getBoundingClientRect();let i=d.clientX-p;b==="right"&&(i=g-d.clientX),i>y&&(i=y),i<h&&(i=h),b==="right"&&(i=B-i),a.value=i}}function u(d,y,h,b){const w=n.value;if(w){const{top:p,bottom:g,height:B}=w.getBoundingClientRect();let i=d.clientY-p;b==="bottom"&&(i=g-d.clientY),i>y&&(i=y),i<h&&(i=h),b==="bottom"&&(i=B-i),l.value=i}}function z(){const d=n.value;if(d){const{width:y,height:h}=d.getBoundingClientRect();return{width:y,height:h}}return null}function $(){const d=n.value;return d?Array.from(d.querySelectorAll("[data-position]")).reduce((y,h)=>{const b=h.getAttribute("data-position");return y=Object.assign(y,{[b]:h}),y},{}):null}function j(d,y){const h=z(),b=$();if(h&&b){const w=b==null?void 0:b.right,p=b==null?void 0:b.left;if(d==="left"&&p)return w?h.width-w.clientWidth-y:h.width-y;if(d==="right"&&w)return p?h.width-p.clientWidth-y:h.width-y}}function O(d,y){const h=z(),b=$();if(h&&b){const w=b==null?void 0:b.bottom,p=b==null?void 0:b.top;if(d==="top"&&p)return w?h.height-w.clientHeight-y:h.height-y;if(d==="bottom"&&w)return p?h.height-p.clientHeight-y:h.height-y}}return{horizontalResizeHandleStyle:v,verticalResizeHandleStyle:C,resizeOverlayStyle:r,showHorizontalResizeHandle:s,showVerticalResizeHandle:c,horizontalResizeBarPosition:e,verticalResizeBarPosition:t,verticalResizeHandleOffset:l,horizontalResizeHandleOffset:a,draggingHorizontalResizeHandle:m,draggingVerticalResizeHandle:u,getPanelMaxHeight:O,getPanelMaxWidth:j}}const H=o.defineComponent({name:"FLayout",props:N,emits:[],setup(n,e){const t=o.ref(),a=J(t),{horizontalResizeHandleStyle:l,verticalResizeHandleStyle:s,resizeOverlayStyle:c}=a;o.provide("layout",{useResizeHandleComposition:a});const v=o.computed(()=>{const r={"f-layout":!0};return q.getCustomClass(r,n==null?void 0:n.customClass)}),C=o.computed(()=>{const r={};return q.getCustomStyle(r,n==null?void 0:n.customStyle)});return()=>o.createVNode("div",{class:v.value,style:C.value,ref:t},[e.slots.default&&e.slots.default(),o.createVNode("div",{class:"f-layout-resize-overlay",style:c.value},null),o.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:l.value},null),o.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:s.value},null)])}}),le={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout-pane.schema.json",title:"layout-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a layout pane",type:"string"},type:{description:"The type string of layout paney",type:"string",default:"layout-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},height:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizeable:{description:"",type:"boolean",default:!0},width:{description:"",type:"number"},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},se={title:"layout-pane",description:"A Farris Container Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"enum"},width:{description:"",type:"number",title:"宽度"},height:{description:"",type:"number",title:"高度"}}},appearance:{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},style:{title:"style",type:"string",description:""}}},behavior:{description:"",title:"行为",properties:{collapsable:{description:"",type:"boolean",title:"允许收折"},position:{description:"",type:"enum",title:"位置",editor:{type:"combo-list",data:[{id:"left",name:"左侧"},{id:"center",name:"居中"},{id:"right",name:"右侧"},{id:"top",name:"顶部"},{id:"bottom",name:"底部"}]}},resizeable:{description:"",type:"boolean",title:"允许调整尺寸"},visible:{description:"运行时组件是否可见",type:"boolean",title:"是否可见"}}}}},A={customClass:{type:String,defaut:""},customStyle:{type:String,defaut:""},width:{type:Number,default:-1},height:{type:Number,default:-1},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:100},minHeight:{type:Number,default:100}},Q=X(A,le,U,G,se);function Z(n,e,t,a,l){const{horizontalResizeBarPosition:s,horizontalResizeHandleOffset:c,showHorizontalResizeHandle:v,showVerticalResizeHandle:C,verticalResizeBarPosition:r,verticalResizeHandleOffset:m,draggingHorizontalResizeHandle:u,draggingVerticalResizeHandle:z,getPanelMaxHeight:$,getPanelMaxWidth:j}=l;let O="",d,y,h;function b(g){if((O==="left"||O==="right")&&y){const{left:B}=y.getBoundingClientRect(),{width:i}=d.getBoundingClientRect(),S=g.clientX-B;let f=O==="left"?(i||0)+(S-s.value):(i||0)-(S-s.value);f=t.value>0?Math.max(t.value,f):f;const P=j(O,t.value);P!=null&&(f=P>f?f:P),n.value=f}if((O==="top"||O==="bottom")&&y){const{top:B}=y.getBoundingClientRect(),{height:i}=d.getBoundingClientRect(),S=g.clientY-B;let f=O==="top"?(i||0)+(S-r.value):(i||0)-(S-r.value);f=a.value>0?Math.max(a.value,f):f;const P=$(O,a.value);P!=null&&(f=P>f?f:P),e.value=f}c.value=0,m.value=0,s.value=-1,r.value=-1,v.value=!1,C.value=!1,document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",b),document.body.style.userSelect="",O="",d=null,y=null}function w(g,B,i){if(O=B,d=i,v.value=!0,y=g.composedPath().find(f=>(f.className||"").split(" ")[0]==="f-layout"),y){const{left:f}=y.getBoundingClientRect(),P=g.clientX-f;c.value=P,s.value=P;const M=j(O,t.value)||0;h=L=>u(L,M,t.value,O),document.addEventListener("mousemove",h),document.addEventListener("mouseup",b),document.body.style.userSelect="none"}}function p(g,B,i){if(O=B,d=i,C.value=!0,y=g.composedPath().find(f=>(f.className||"").split(" ")[0]==="f-layout"),y){const{top:f}=y.getBoundingClientRect();m.value=g.clientY-f,r.value=g.clientY-f;const P=$(O,a.value)||0;h=M=>z(M,P,a.value,O),document.addEventListener("mousemove",h),document.addEventListener("mouseup",b),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:w,onClickVerticalResizeBar:p}}const E=o.defineComponent({name:"FLayoutPane",props:A,emits:[],setup(n,e){const t=o.ref(n.minHeight<=0?100:n.minHeight),a=o.ref(n.minWidth<=0?100:n.minWidth),l=o.ref(n.width<=0?100:n.width),s=o.ref(n.height<=0?100:n.height),c=o.ref(Math.max(t.value,s.value)),v=o.ref(Math.max(a.value,l.value)),C=o.ref(),r=o.ref(n.position),m=o.ref(n.resizable);o.watch(()=>n.resizable,p=>{m.value=p});const u=o.inject("layout"),{useResizeHandleComposition:z}=u,$=Z(v,c,a,t,z),{onClickHorizontalResizeBar:j,onClickVerticalResizeBar:O}=$,d=o.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":r.value==="left","f-layout-resize-bar-n":r.value==="bottom","f-layout-resize-bar-s":r.value==="top","f-layout-resize-bar-w":r.value==="right"})),y=o.computed(()=>r.value!=="center"&&m.value);function h(p,g){(g==="left"||g==="right")&&j(p,g,C.value),(g==="top"||g==="bottom")&&O(p,g,C.value)}const b=o.computed(()=>{const p={"f-layout-pane":!0,"f-page-content-nav":r.value==="left"||r.value==="right","f-page-content-main":r.value==="center"};return n.customClass&&String(n.customClass).split(" ").reduce((g,B)=>(g[B]=!0,g),p),p}),w=o.computed(()=>{const p={};return(v.value&&r.value==="left"||r.value==="right")&&(p.width=`${v.value}px`),(c.value&&r.value==="bottom"||r.value==="top")&&(p.height=`${c.value}px`),n.visible||(p.display="none"),p});return()=>o.createVNode("div",{ref:C,class:b.value,style:w.value,"data-position":r.value},[e.slots.default&&e.slots.default(),y.value&&o.createVNode("span",{class:d.value,onMousedown:p=>h(p,r.value)},null)])}});function ce(n,e){function t(){return!1}return{canAccepts:t}}function K(n,e,t){var B;const a=t&&t.getStyles&&t.getStyles()||"",l=t&&t.getDesignerClass&&t.getDesignerClass()||"",s=o.ref();function c(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanMoveComponent?t.checkCanMoveComponent():!0}function v(){return!1}function C(){return(e==null?void 0:e.schema.componentType)==="frame"?!1:t&&t.checkCanDeleteComponent?t.checkCanDeleteComponent():!0}function r(){return(e==null?void 0:e.schema.componentType)==="frame"?!0:t&&t.hideNestedPaddingInDesginerView?t.hideNestedPaddingInDesginerView():!1}function m(i){if(!i||!i.value)return null;if(i.value.schema&&i.value.schema.type==="component")return i.value;const S=o.ref(i==null?void 0:i.value.parent),f=m(S);return f||null}function u(i=e){var M;if(t!=null&&t.getDraggableDesignItemElement)return t.getDraggableDesignItemElement(i);const{componentInstance:S,designerItemElementRef:f}=i;if(!S||!S.value)return null;const{getCustomButtons:P}=S.value;return S.value.canMove||P&&((M=P())!=null&&M.length)?f:u(i.parent)}function z(i){return!!t&&t.canAccepts(i)}function $(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function j(){}function O(i,S){var f;!i||!S||(t!=null&&t.onAcceptMovedChildElement&&t.onAcceptMovedChildElement(i,S),(f=e==null?void 0:e.setupContext)==null||f.emit("dragEnd"))}function d(i,S){const{componentType:f}=i;let P=_(f,i,S);t&&t.onResolveNewComponentSchema&&(P=t.onResolveNewComponentSchema(i,P));const M=f.toLowerCase().replace(/-/g,"_");return P&&!P.id&&P.type===f&&(P.id=`${M}_${Math.random().toString().slice(2,6)}`),P}function y(i){i&&t!=null&&t.onChildElementMovedOut&&t.onChildElementMovedOut(i)}function h(...i){if(t&&t.getPropsConfig)return t.getPropsConfig(...i)}function b(i){if(!i)return;const S=e==null?void 0:e.schema,{formSchemaUtils:f}=i;if(S&&f.getExpressions().length){const P=f.getExpressions().findIndex(M=>M.target===S.id);P>-1&&f.getExpressions().splice(P,1)}}function w(i){t&&t.onRemoveComponent&&t.onRemoveComponent(),b(i),e!=null&&e.schema.contents&&e.schema.contents.map(S=>{let f=S.id;S.type==="component-ref"&&(f=S.component);const P=n.value.querySelectorAll(`#${f}-design-item`);P!=null&&P.length&&Array.from(P).map(M=>{var L;(L=M==null?void 0:M.componentInstance)!=null&&L.value.onRemoveComponent&&M.componentInstance.value.onRemoveComponent(i)})})}function p(){if(t&&t.getCustomButtons)return t.getCustomButtons()}function g(i){if(t&&t.onPropertyChanged)return t.onPropertyChanged(i)}return s.value={canMove:c(),canSelectParent:v(),canDelete:C(),canNested:!r(),contents:e==null?void 0:e.schema.contents,elementRef:n,parent:(B=e==null?void 0:e.parent)==null?void 0:B.componentInstance,schema:e==null?void 0:e.schema,styles:a,designerClass:l,canAccepts:z,getBelongedComponentInstance:m,getDraggableDesignItemElement:u,getDraggingDisplayText:$,getPropConfig:h,getDragScopeElement:j,onAcceptMovedChildElement:O,onChildElementMovedOut:y,addNewChildComponentSchema:d,triggerBelongedComponentToMoveWhenMoved:!!t&&t.triggerBelongedComponentToMoveWhenMoved||o.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!t&&t.triggerBelongedComponentToDeleteWhenDeleted||o.ref(!1),onRemoveComponent:w,getCustomButtons:p,onPropertyChanged:g},s}const ue=o.defineComponent({name:"FLayoutDesign",props:N,emits:[],setup(n,e){var m;const t=o.ref(),a=o.inject("design-item-context"),l=ce(a.schema,(m=a.parent)==null?void 0:m.schema),s=K(t,a,l);s.value.canNested=!1;const c=J(t),{horizontalResizeHandleStyle:v,verticalResizeHandleStyle:C,resizeOverlayStyle:r}=c;return o.provide("layout",{useResizeHandleComposition:c}),o.onMounted(()=>{t.value.componentInstance=s}),e.expose(s.value),()=>o.createVNode("div",{class:"f-layout f-page-content",ref:t},[e.slots.default&&e.slots.default(),o.createVNode("div",{class:"f-layout-resize-overlay",style:r.value},null),o.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:v.value},null),o.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:C.value},null)])}});function pe(){function n(e,t){var c;if(!e)return!1;const a=((c=e.targetContainer)==null?void 0:c.componentInstance)&&e.targetContainer.componentInstance.value;if(!a)return!1;const l=a.schema.type,s=t==null?void 0:t.formSchemaUtils.getComponentById(a.belongedComponentId);return!((e.componentCategory==="input"||e.componentType==="form-group")&&![k["response-layout-item"].type,k["response-form"].type,k.fieldset.type].includes(l)||(e.componentType===k.tabs.type||e.componentType===k.section.type)&&((s==null?void 0:s.componentType)!=="frame"||![k["content-container"].type,k["splitter-pane"].type,k["response-layout-item"].type].includes(l))||e.componentType===k["query-solution"].type||e.componentType===k.fieldset.type&&l!==k["response-form"].type)}return{basalDragulaRuleForContainer:n}}function fe(n,e){const t=n.schema;function a(s){return!!pe().basalDragulaRuleForContainer(s)}function l(){const s=["f-layout-pane"];return(t.position==="left"||t.position==="right")&&s.push("f-page-content-nav"),t.position==="center"&&s.push("f-page-content-main"),s.join(" ")}return{canAccepts:a,getDesignerClass:l}}const ye=o.defineComponent({name:"FLayoutPaneDesign",props:A,emits:[],setup(n,e){const t=o.ref(),a=o.ref();o.inject("designer-host-service");const l=o.inject("design-item-context"),s=fe(l),c=K(a,l,s);c.value.canNested=!1,c.value.canMove=!1,c.value.canDelete=!1,o.onMounted(()=>{a.value.componentInstance=c}),e.expose(c.value);const v=o.ref(Math.max(n.minHeight,n.height)),C=o.ref(Math.max(n.minWidth,n.width)),r=o.ref(n.minHeight),m=o.ref(n.minWidth),u=o.ref(n.position),z=o.inject("layout"),{useResizeHandleComposition:$}=z,j=Z(C,v,m,r,$),{onClickHorizontalResizeBar:O,onClickVerticalResizeBar:d}=j,y=o.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":u.value==="left","f-layout-resize-bar-n":u.value==="bottom","f-layout-resize-bar-s":u.value==="top","f-layout-resize-bar-w":u.value==="right"}));function h(p,g){(g==="left"||g==="right")&&O(p,g,t.value),(g==="top"||g==="bottom")&&d(p,g,t.value)}const b=o.computed(()=>{const p={"f-layout-pane":!0,"f-page-content-nav":u.value==="left"||u.value==="right","f-page-content-main":u.value==="center"};return n.customClass&&String(n.customClass).split(" ").reduce((g,B)=>(g[B]=!0,g),p),p}),w=o.computed(()=>{const p={flex:"1"};return(C.value&&u.value==="left"||u.value==="right")&&(p.width=`${C.value}px`),(v.value&&u.value==="bottom"||u.value==="top")&&(p.height=`${v.value}px`),p});return()=>o.createVNode("div",{ref:t,class:b.value,style:w.value},[o.createVNode("div",{ref:a,class:"drag-container","data-dragref":`${l.schema.id}-container`},[e.slots.default&&e.slots.default()]),o.createVNode("span",{class:y.value,onMousedown:p=>h(p,u.value)},null)])}});H.install=n=>{n.component(H.name,H),n.component(E.name,E)},H.register=(n,e,t,a)=>{n.layout=H,e.layout=R,n["layout-pane"]=E,e["layout-pane"]=Q},H.registerDesigner=(n,e,t)=>{n.layout=ue,e.layout=R,n["layout-pane"]=ye,e["layout-pane"]=Q},D.FLayout=H,D.FLayoutPane=E,D.default=H,D.layoutProps=N,D.layoutPropsResolver=R,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});