@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 239 kB
JavaScript
(function(X,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../button-edit/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../capsule/index.umd.js"),require("../checkbox/index.umd.js"),require("../color-picker/index.umd.js"),require("../combo-list/index.umd.js"),require("../content-container/index.umd.js"),require("../data-grid/index.umd.js"),require("../date-picker/index.umd.js"),require("../dropdown/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../external-container/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../image-cropper/index.umd.js"),require("../input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../nav/index.umd.js"),require("../number-spinner/index.umd.js"),require("../number-range/index.umd.js"),require("../order/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../pagination/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../radio-group/index.umd.js"),require("../rate/index.umd.js"),require("../response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../switch/index.umd.js"),require("../tabs/index.umd.js"),require("../tags/index.umd.js"),require("../text/index.umd.js"),require("../time-picker/index.umd.js"),require("../transfer/index.umd.js"),require("../tree-view/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../component/index.umd.js"),require("../video/index.umd.js"),require("../textarea/index.umd.js"),require("../tree-grid/index.umd.js"),require("../fieldset/index.umd.js"),require("../drawer/index.umd.js"),require("../common/index.umd.js"),require("../data-view/index.umd.js"),require("../modal/index.umd.js"),require("../condition/index.umd.js"),require("../tooltip/index.umd.js"),require("../button/index.umd.js"),require("../designer-canvas/index.umd.js"),require("@vueuse/core"),require("../binding-selector/index.umd.js"),require("../notify/index.umd.js"),require("../combo-tree/index.umd.js"),require("../field-selector/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../schema-selector/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../accordion/index.umd.js","../avatar/index.umd.js","../button-edit/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../capsule/index.umd.js","../checkbox/index.umd.js","../color-picker/index.umd.js","../combo-list/index.umd.js","../content-container/index.umd.js","../data-grid/index.umd.js","../date-picker/index.umd.js","../dropdown/index.umd.js","../dynamic-form/index.umd.js","../external-container/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../image-cropper/index.umd.js","../input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../list-view/index.umd.js","../lookup/index.umd.js","../nav/index.umd.js","../number-spinner/index.umd.js","../number-range/index.umd.js","../order/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../pagination/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../radio-group/index.umd.js","../rate/index.umd.js","../response-toolbar/index.umd.js","../response-layout/index.umd.js","../response-layout-editor/index.umd.js","../search-box/index.umd.js","../section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../tabs/index.umd.js","../tags/index.umd.js","../text/index.umd.js","../time-picker/index.umd.js","../transfer/index.umd.js","../tree-view/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../component/index.umd.js","../video/index.umd.js","../textarea/index.umd.js","../tree-grid/index.umd.js","../fieldset/index.umd.js","../drawer/index.umd.js","../common/index.umd.js","../data-view/index.umd.js","../modal/index.umd.js","../condition/index.umd.js","../tooltip/index.umd.js","../button/index.umd.js","../designer-canvas/index.umd.js","@vueuse/core","../binding-selector/index.umd.js","../notify/index.umd.js","../combo-tree/index.umd.js","../field-selector/index.umd.js","../mapping-editor/index.umd.js","../schema-selector/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../dynamic-resolver/index.umd.js"],n):(X=typeof globalThis<"u"?globalThis:X||self,n(X["external-container"]={},X.Vue,X.LodashES,X.FAccordion,X.FAvatar,X.FButtonEdit,X.FButtonGroup,X.FCalendar,X.FCapsule,X.FCheckbox,X.FColorPicker,X.FComboList,X.FContentContainer,X.FDataGrid,X.FDatePicker,X.FDropdown,X.FDynamicForm,null,X.FEventsEditor,X.FFilterBar,X.FImageCropper,X.FInputGroup,X.FLayout,X.FListNav,X.FListView$1,X.FLookup,X.FNav,X.FNumberSpinner,X.FNumberRange,X.FOrder,X.FPageHeader,X.FPageFooter,X.FPagination,X.FProgress,X.FQuerySolution,X.FRadioGroup,X.FRate,X.FResponseToolbar,X.FResponseLayout,X.FResponseLayoutEditorSetting,X.FSearchBox,X.FSection,X.FSmokeDetector,X.FSplitter,X.FStep,X.FSwitch,X.FTabs,X.FTags,X.FText,X.FTimePicker,X.FTransfer,X.FTreeview,X.FUploader,X.FVerifyDetail,X.FComponent,X.FVideo,X.FTextArea,X.FTreeGrid$1,X.FFieldset,X.FDrawer,X.common,X.dataView,null,null,X.FTooltip,X.FButton,null,X.VueUseCore,X.FBindingSelector,null,X.FComboTree,X.FFieldSelector,X.FMappingEditor,X.FSchemaSelector,X.FEventParameter,X.FFilterConditionEditor,X.FSortConditionEditor,X.FMenuLookup,X.dynamicResolver))})(this,function(X,n,Oe,Qn,Zn,eo,to,no,oo,ht,ro,Et,io,ao,lo,so,Mt,La,co,uo,fo,po,mo,ho,go,vo,yo,bo,Co,wo,_o,xo,So,Vo,To,No,Fo,ko,Io,Eo,Mo,Oo,jo,$o,Do,Bo,Ro,Po,Ho,Lo,Wo,qo,Ao,zo,Go,Uo,Yo,Xo,Ko,Jo,Te,he,Wa,qa,Gt,Qo,Aa,Ut,Zo,za,er,tr,nr,or,rr,ir,ar,lr,sr){"use strict";var Pa=Object.defineProperty;var Ha=(X,n,Oe)=>n in X?Pa(X,n,{enumerable:!0,configurable:!0,writable:!0,value:Oe}):X[n]=Oe;var te=(X,n,Oe)=>Ha(X,typeof n!="symbol"?n+"":n,Oe);const Yt={},Xt={};function Ot(e){const{properties:t,title:o,ignore:r}=e,i=r&&Array.isArray(r),l=Object.keys(t).reduce((a,c)=>((!i||!r.find(u=>u===c))&&(a[c]=t[c].type==="object"&&t[c].properties?Ot(t[c]):Oe.cloneDeep(t[c].default)),a),{});if(o&&(!i||!r.find(a=>a==="id"))){const a=o.toLowerCase().replace(/-/g,"_");l.id=`${a}_${Math.random().toString().slice(2,6)}`}return l}function cr(e){const{properties:t,title:o,required:r}=e;if(r&&Array.isArray(r)){const i=r.reduce((l,a)=>(l[a]=t[a].type==="object"&&t[a].properties?Ot(t[a]):Oe.cloneDeep(t[a].default),l),{});if(o&&r.find(l=>l==="id")){const l=o.toLowerCase().replace(/-/g,"_");i.id=`${l}_${Math.random().toString().slice(2,6)}`}return i}return{type:o}}function Kt(e,t={},o){const r=Yt[e];if(r){let i=cr(r);const l=Xt[e];return i=l?l({getSchemaByType:Kt},i,t,o):i,i}return null}function ur(e,t){const o=Ot(t);return Object.keys(o).reduce((r,i)=>(Object.prototype.hasOwnProperty.call(e,i)&&(r[i]&&Oe.isPlainObject(r[i])&&Oe.isPlainObject(e[i]||!e[i])?Object.assign(r[i],e[i]||{}):r[i]=e[i]),r),o),o}function Jt(e,t){return Object.keys(e).filter(r=>e[r]!=null).reduce((r,i)=>{if(t.has(i)){const l=t.get(i);if(typeof l=="string")r[l]=e[i];else{const a=l(i,e[i],e);Object.assign(r,a)}}else r[i]=e[i];return r},{})}function dr(e,t,o=new Map){const r=ur(e,t);return Jt(r,o)}function fr(e={}){function t(m,p,f,d){if(typeof f=="number")return d[m].length===f;if(typeof f=="object"){const b=Object.keys(f)[0],w=f[b];if(b==="not")return Number(d[m].length)!==Number(w);if(b==="moreThan")return Number(d[m].length)>=Number(w);if(b==="lessThan")return Number(d[m].length)<=Number(w)}return!1}function o(m,p,f,d){return d[m]&&d[m].propertyValue&&String(d[m].propertyValue.value)===String(f)}const r=new Map([["length",t],["getProperty",o]]);Object.keys(e).reduce((m,p)=>(m.set(p,e[p]),m),r);function i(m,p){const f=m;return typeof p=="number"?[{target:f,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:f,operator:"getProperty",param:m,value:!!p}]:typeof p=="object"?Object.keys(p).map(d=>{if(d==="length")return{target:f,operator:"length",param:null,value:p[d]};const b=d,w=p[d];return{target:f,operator:"getProperty",param:b,value:w}}):[]}function l(m){return Object.keys(m).reduce((f,d)=>{const b=i(d,m[d]);return f.push(...b),f},[])}function a(m,p){if(r.has(m.operator)){const f=r.get(m.operator);return f&&f(m.target,m.param,m.value,p)||!1}return!1}function c(m,p){return l(m).reduce((b,w)=>b&&a(w,p),!0)}function u(m,p){const f=Object.keys(m),d=f.includes("allOf"),b=f.includes("anyOf"),w=d||b,g=(w?m[w?d?"allOf":"anyOf":"allOf"]:[m]).map(S=>c(S,p));return d?!g.includes(!1):g.includes(!0)}return{parseValueSchema:u}}const ae={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:"标签页工具栏按钮"},"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:"抽屉"}},pr={},mr={};fr();function Qe(e,t,o=new Map,r=(a,c,u,m)=>c,i={},l=a=>a){return Yt[t.title]=t,Xt[t.title]=r,pr[t.title]=i,mr[t.title]=l,(a={},c=!0)=>{if(!c)return Jt(a,o);const u=dr(a,t,o),m=Object.keys(e).reduce((p,f)=>(p[f]=e[f].default,p),{});return Object.assign(m,u)}}function pt(e,t){return{customClass:t.class,customStyle:t.style}}function hr(){function e(t,o){const{dataSource:r}=t||{};return r===void 0?{}:{}}return{resolve:e}}function gr(){function e(t,o){return t.selectItemById(o)}return{selectItemById:e}}function vr(){function e(t,o){const{columns:r}=o;return t.updateColumns(r)}return{updateColumns:e}}const yr=new Map([["appearance",pt]]);function br(e,t,o){return t}const Cr={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/external-container.schema.json",title:"external-container",description:"A Farris Visual Component",type:"object",properties:{id:{description:"The unique identifier for a external-container",type:"string"},type:{description:"The type string of external-container",type:"string",default:"external-container"},componentType:{description:"The type string of external-container",type:"string"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},visible:{description:"",type:"boolean",default:!0},url:{description:"The url that load the schema from",type:"string"},externalComponent:{description:"The unique identifier for component",type:"string"}},required:["id","type"]},wr={title:"external-container",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:[]}},url:{description:"外部组件地址",title:"URL",type:"string"}}}}},yt={customClass:{type:String,default:""},componentType:{type:String,default:""},url:{type:String,default:""},schema:{type:Object},useIsolateJs:{type:Boolean,default:!1}},jt=Qe(yt,Cr,yr,br,wr),bt=n.defineComponent({name:"FExternalContainer",props:yt,emits:[],setup(e,t){return()=>n.createVNode("div",{class:e.customClass},[t.slots.default&&t.slots.default()])}}),_r={id:{type:String,default:""},componentId:{type:String,default:""},type:{type:String,default:""},canDelete:{type:Boolean,default:!0},canMove:{type:Boolean,default:!0},canSelectParent:{type:Boolean,default:!0},customButtons:{type:Array,default:[]},customClass:{type:String,default:""},customStyle:{type:String,default:""},modelValue:{type:Object},ignore:{type:Boolean,default:!1}},xr={},Sr={},Vr={id:{type:String}},Tr=n.defineComponent({name:"FDesignerPlaceholder",props:Vr,emits:[],setup(e){const t=n.computed(()=>({"drag-and-drop-alert":!0,"no-drag":!0,"w-100":!0})),o=n.computed(()=>({height:"60px",display:"flex","justify-content":"center","align-items":"center",margin:0,padding:".75rem 1.25rem",border:"1px solid transparent","border-radius":"3px",color:"#315585","background-color":"#dfedff","border-color":"#d2e6ff"}));return()=>n.createVNode("div",{class:t.value,style:o.value,role:"alert","data-noattach":"true","data-position":"0"},[n.createTextVNode("拖拽组件到这里")])}}),Ct=n.ref(0);function Nr(e,t){const o=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=r.top>=o.top,l=r.top<=o.bottom;return i&&l}function Fr(e){const t=e.querySelector(".component-btn-group");if(!t)return;t.style.display="";const o=t.getBoundingClientRect();if(!(o.top===0&&o.left===0)){const r=t.querySelector("div");if(r){const i=r.getBoundingClientRect();r.style.top=o.top+"px";let l=o.left-i.width;const a=document.querySelector(".editorDiv");if(a){const c=a.getBoundingClientRect();l<c.left&&({left:l}=e.getBoundingClientRect())}r.style.left=l+"px"}}}function kr(e){if(!window.scrollContainerList)return;const t=Array.from(window.scrollContainerList);if(t.length&&t.length===1){const o=t[0],r=document.querySelector(`[id=${o}]`);if(r&&r.contains(e))return r}}function Qt(e){if(!e)return;const t=e.getBoundingClientRect();if(t.width===0&&t.height===0)return;const o=e.querySelector(".component-btn-group");if(o){let r=!0;const i=kr(e);if(i&&(r=Nr(e,i)),!r){o.style.display="none";return}Fr(e)}}function Ir(e){if(!e)return;let t;e.className.includes("dgComponentSelected")?t=e:t=e.querySelector(".dgComponentSelected"),t&&Qt(t)}function Er(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const wt=n.defineComponent({name:"FDesignerItem",props:_r,emits:["selectionChange","dragEnd"],setup(e,t){const o=n.ref(`${e.modelValue.id}-component`),r=n.ref(e.canMove),i=n.ref(e.canDelete),l=n.ref(!1),a=n.ref(e.modelValue),c=n.ref(e.componentId||""),u=n.ref(""),m=n.ref(""),p=n.ref(e.customClass),f=n.ref(),d=n.inject("canvas-dragula"),b=n.ref(),w=n.inject("design-item-context"),M={designerItemElementRef:f,componentInstance:b,schema:a.value,parent:w,setupContext:t};n.provide("design-item-context",M);const x=n.inject("useFormSchema"),g=n.computed(()=>{var H;const k=e.modelValue.appearance&&e.modelValue.appearance.class||"",I=((H=b.value)==null?void 0:H.getCustomButtons)&&b.value.getCustomButtons();let O={"farris-component":!0,"flex-fill":a.value.id==="root-component","position-relative":r.value&&i.value||(I==null?void 0:I.length),"farris-nested":l.value,"can-move":r.value,"d-none":f.value&&f.value.classList.contains("d-none"),dgComponentSelected:f.value&&f.value.classList.contains("dgComponentSelected"),dgComponentFocused:f.value&&f.value.classList.contains("dgComponentFocused")};return O[`farris-component-${a.value.type}`]=!0,O=Te.getCustomClass(O,k),O=Te.getCustomClass(O,m.value),O=Te.getCustomClass(O,p.value),O}),C=n.computed(()=>{const k={},I=e.modelValue.appearance&&e.modelValue.appearance.style||"";return I&&I.split(";").reduce((O,H)=>{const[Y,ee]=H.split(":");return O[Y]=ee,O},k),u.value&&u.value.split(";").reduce((O,H)=>{const[Y,ee]=H.split(":");return Y&&(O[Y]=ee),O},k),k});function S(k,I){var Y,ee;if(k&&(k.preventDefault(),k.stopPropagation()),b.value.triggerBelongedComponentToDeleteWhenDeleted){const G=b.value.getBelongedComponentInstance(b);if(G&&G.parent){const fe=n.ref(G==null?void 0:G.parent),P=fe.value.contents.findIndex(R=>R.id===G.schema.id);(ee=(Y=fe.value)==null?void 0:Y.contents)==null||ee.splice(P,1),Ct.value++}return}b.value.onRemoveComponent();let O=w,H=G=>G.id===I.id;if(I.type==="component"&&(O=w==null?void 0:w.parent,H=G=>G.component===I.id),O&&O.schema.contents){const G=O.schema.contents.findIndex(H);O.schema.contents.splice(G,1),Ct.value++,t.emit("selectionChange")}}function h(k){return i.value&&n.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeComponent",onClick:I=>{S(I,k)}},[n.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)])}function V(){return r.value&&n.createVNode("div",{role:"button",class:"btn component-settings-button",title:"移动",ref:"moveComponent"},[n.createVNode("i",{"data-dragging-icon":"true",class:"cmp_move f-icon f-icon-yxs_move"},null)])}function T(){var I;const k=((I=b.value)==null?void 0:I.getCustomButtons)&&b.value.getCustomButtons();return k&&!!k.length&&k.map(O=>n.createVNode("div",{role:"button",class:`btn component-settings-button ${O.class||""}`,title:O.title,ref:O.id,onClick:H=>O.onClick&&O.onClick(H)},[n.createVNode("i",{class:O.icon},null)]))}function s(k){return n.createVNode("div",{class:"component-btn-group","data-noattach":"true"},[n.createVNode("div",null,[h(k),V(),T()])])}function y(k,I,O,H){t.emit("selectionChange",k,I,O,H)}function v(){t.emit("dragEnd")}function F(k){let I;const O=k.type,H=xr[O],Y=Sr[O],ee=Y?Y(k):{};ee.customClass=e.ignore?ee.customClass:"",ee.componentId=c.value,ee.id=k.id;const G=k.contents&&k.contents.length===0;return k.contents&&!!k.contents.length&&H?n.createVNode(H,n.mergeProps({ref:b},ee),Er(I=k.contents.map(P=>n.createVNode(wt,{key:P.id,modelValue:P,"onUpdate:modelValue":R=>P=R,componentId:c.value,onSelectionChange:y,onDragEnd:v},null)))?I:{default:()=>[I]}):H?G?n.createVNode(H,n.mergeProps({ref:b},ee),{default:()=>[n.createVNode(Tr,null,null)]}):n.createVNode(H,n.mergeProps({ref:b},ee),null):n.createVNode("div",null,null)}function _(k){if(k.type==="component-ref"){let O=x==null?void 0:x.getFormSchema().module.components.find(H=>H.id===k.component);if(O)return n.createVNode(wt,{key:O.id,modelValue:O,"onUpdate:modelValue":H=>O=H,componentId:O.id,onSelectionChange:y,onDragEnd:v},null)}}n.watch(()=>e.modelValue,k=>{a.value=k,o.value=`${k.id}-component`,n.triggerRef(f)},{deep:!0});function $(k){window.scrollContainerList||(window.scrollContainerList=new Set);const I=k.getAttribute("id");I&&window.scrollContainerList.add(I)}function j(k){const I=k==null?void 0:k.target;$(I),Ir(I)}function E(){var k,I;if(f.value){(I=(k=a.value)==null?void 0:k.contents)!=null&&I.length&&f.value.addEventListener("scroll",j);const O=f.value.querySelector(".drag-container");O&&O.addEventListener("scroll",j)}}n.onMounted(()=>{if(f.value&&b.value&&b.value.schema){const k=f.value.querySelector(`[data-dragref='${b.value.schema.id}-container']`);d&&k&&d.attachComponents(k,a.value),l.value=b.value.canNested!==void 0?b.value.canNested:l.value,i.value=b.value.canDelete!==void 0?b.value.canDelete:i.value,r.value=b.value.canMove!==void 0?b.value.canMove:r.value,u.value=b.value.styles||"",m.value=b.value.designerClass||"",f.value&&(f.value.componentInstance=b,f.value.designItemContext=M),b.value.belongedComponentId=c.value}E(),Ct.value++}),n.onBeforeUnmount(()=>{f.value&&f.value.removeEventListener("scroll",j)});function N(k){k&&(k.preventDefault(),k.stopPropagation());let I=M.designerItemElementRef;const O=f.value;if(O){const H=document.getElementsByClassName("dgComponentFocused");H&&H.length===1&&H[0]===f.value||(Array.from(H).forEach(ee=>ee.classList.remove("dgComponentFocused")),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(ee=>ee.classList.remove("dgComponentSelected")),O.classList.add("dgComponentFocused"),t.emit("selectionChange",a.value.type,a.value,c.value,b.value),b.value.getDraggableDesignItemElement&&(I=b.value.getDraggableDesignItemElement(M),I&&I.value&&I.value.classList.add("dgComponentSelected")))}Qt(I==null?void 0:I.value)}return()=>a.value.type==="component-ref"?_(a.value):n.createVNode("div",{id:`${a.value.id}-design-item`,ref:f,class:g.value,style:C.value,onClick:N},[s(a.value),F(a.value)])}});function _t(e,t,o){var T;const r=o&&o.getStyles&&o.getStyles()||"",i=o&&o.getDesignerClass&&o.getDesignerClass()||"",l=n.ref();function a(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:o&&o.checkCanMoveComponent?o.checkCanMoveComponent():!0}function c(){return!1}function u(){return(t==null?void 0:t.schema.componentType)==="frame"?!1:o&&o.checkCanDeleteComponent?o.checkCanDeleteComponent():!0}function m(){return(t==null?void 0:t.schema.componentType)==="frame"?!0:o&&o.hideNestedPaddingInDesginerView?o.hideNestedPaddingInDesginerView():!1}function p(s){if(!s||!s.value)return null;if(s.value.schema&&s.value.schema.type==="component")return s.value;const y=n.ref(s==null?void 0:s.value.parent),v=p(y);return v||null}function f(s=t){var _;if(o!=null&&o.getDraggableDesignItemElement)return o.getDraggableDesignItemElement(s);const{componentInstance:y,designerItemElementRef:v}=s;if(!y||!y.value)return null;const{getCustomButtons:F}=y.value;return y.value.canMove||F&&((_=F())!=null&&_.length)?v:f(s.parent)}function d(s){return!!o&&o.canAccepts(s)}function b(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function w(){}function M(s,y){var v;!s||!y||(o!=null&&o.onAcceptMovedChildElement&&o.onAcceptMovedChildElement(s,y),(v=t==null?void 0:t.setupContext)==null||v.emit("dragEnd"))}function x(s,y){const{componentType:v}=s;let F=Kt(v,s,y);o&&o.onResolveNewComponentSchema&&(F=o.onResolveNewComponentSchema(s,F));const _=v.toLowerCase().replace(/-/g,"_");return F&&!F.id&&F.type===v&&(F.id=`${_}_${Math.random().toString().slice(2,6)}`),F}function g(s){s&&o!=null&&o.onChildElementMovedOut&&o.onChildElementMovedOut(s)}function C(...s){if(o&&o.getPropsConfig)return o.getPropsConfig(...s)}function S(){o&&o.onRemoveComponent&&o.onRemoveComponent(),t!=null&&t.schema.contents&&t.schema.contents.map(s=>{let y=s.id;s.type==="component-ref"&&(y=s.component);const v=e.value.querySelectorAll(`#${y}-design-item`);v!=null&&v.length&&Array.from(v).map(F=>{var _;(_=F==null?void 0:F.componentInstance)!=null&&_.value.onRemoveComponent&&F.componentInstance.value.onRemoveComponent()})})}function h(){if(o&&o.getCustomButtons)return o.getCustomButtons()}function V(s){if(o&&o.onPropertyChanged)return o.onPropertyChanged(s)}return l.value={canMove:a(),canSelectParent:c(),canDelete:u(),canNested:!m(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(T=t==null?void 0:t.parent)==null?void 0:T.componentInstance,schema:t==null?void 0:t.schema,styles:r,designerClass:i,canAccepts:d,getBelongedComponentInstance:p,getDraggableDesignItemElement:f,getDraggingDisplayText:b,getPropConfig:C,getDragScopeElement:w,onAcceptMovedChildElement:M,onChildElementMovedOut:g,addNewChildComponentSchema:x,triggerBelongedComponentToMoveWhenMoved:!!o&&o.triggerBelongedComponentToMoveWhenMoved||n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:!!o&&o.triggerBelongedComponentToDeleteWhenDeleted||n.ref(!1),onRemoveComponent:S,getCustomButtons:h,onPropertyChanged:V},l}function Mr(e,t){function o(){return!1}function r(){return!0}function i(){return!0}function l(){return!0}function a(){return" position:relative; padding:0 !important;border:0;"}return{canAccepts:o,checkCanDeleteComponent:r,checkCanMoveComponent:i,hideNestedPaddingInDesginerView:l,getStyles:a}}const Or={id:"data-grid-component",type:"component",componentType:"data-grid",appearance:{class:"f-struct-wrapper f-utils-fill-flex-column"},contents:[{id:"data-grid-section",type:"section",appearance:{class:"f-section-grid f-section-in-nav"},showHeader:!1,contents:[{id:"dataGrid",type:"data-grid",appearance:{class:"f-component-grid"},columns:[{id:"code_6d5f8d5b_1fvq",type:"GridField",title:"项目编号",field:"code",dataType:"string",binding:{type:"Form",path:"code",field:"6d5f8d5b-c68a-47fa-9f3b-f3805489cfae"},resizable:!0},{id:"name_2efe6193_lljv",type:"GridField",title:"项目名称",field:"name",dataType:"string",binding:{type:"Form",path:"name",field:"2efe6193-278c-4b5f-9f31-cdd8ee48751a"},resizable:!0},{id:"projectStatus_7d2dd238_3d6l",type:"GridField",title:"项目状态",binding:{type:"Form",path:"projectStatus",field:"7d2dd238-42a7-4643-a849-cdac3b4fe13f",fullPath:"ProjectStatus"},field:"projectStatus",dataType:"enum",data:[{name:"进行中",value:"1"},{name:"已结项",value:"2"}],resizable:!0}]}]}]},jr={class:{type:String,default:""},title:{type:String,default:""},width:{type:Number,default:500},height:{type:Number,default:320},buttons:{type:Array,default:[]},modelValue:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!0},fitContent:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showMaxButton:{type:Boolean,default:!1},minHeight:{type:Number},maxHeight:{type:Number},minWidth:{type:Number},maxWidth:{type:Number},containment:{type:Object,default:null},resizeable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},dragHandle:{type:Object,default:null},closedCallback:{type:Function,default:null},resizeHandle:{type:Function,default:null},render:{type:Function,default:null},acceptCallback:{type:Function,default:null},rejectCallback:{type:Function,default:null},enableEsc:{type:Boolean,default:!0},enableEnter:{type:Boolean,default:!1},dialogType:{type:String,default:""},src:{type:String,default:""},footerHeight:{type:Number,default:60}};class Ie{constructor(t,o){this.x=t,this.y=o}static getTransformInfo(t){const r=window.getComputedStyle(t).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(r.length>=6){const i=parseInt(r[4],10),l=parseInt(r[5],10);return{x:i,y:l}}return{x:0,y:0}}static fromEvent(t,o=null){if(this.isMouseEvent(t))return new Ie(t.clientX,t.clientY);if(o===null||t.changedTouches.length===1)return new Ie(t.changedTouches[0].clientX,t.changedTouches[0].clientY);for(let r=0;r<t.changedTouches.length;r++)if(t.changedTouches[r].target===o)return new Ie(t.changedTouches[r].clientX,t.changedTouches[r].clientY)}static isMouseEvent(t){return Object.prototype.toString.apply(t).indexOf("MouseEvent")===8}static isIPosition(t){return!!t&&"x"in t&&"y"in t}static getCurrent(t){const o=new Ie(0,0);if(window){const r=window.getComputedStyle(t);if(r){const i=parseInt(r.getPropertyValue("left"),10),l=parseInt(r.getPropertyValue("top"),10);o.x=isNaN(i)?0:i,o.y=isNaN(l)?0:l}return o}return null}static copy(t){return new Ie(0,0).set(t)}get value(){return{x:this.x,y:this.y}}add(t){return this.x+=t.x,this.y+=t.y,this}subtract(t){return this.x-=t.x,this.y-=t.y,this}multiply(t){this.x*=t,this.y*=t}divide(t){this.x/=t,this.y/=t}reset(){return this.x=0,this.y=0,this}set(t){return this.x=t.x,this.y=t.y,this}}class ut{constructor(t,o){this.width=t,this.height=o}static getCurrent(t){const o=new ut(0,0);if(window){const r=window.getComputedStyle(t);return r&&(o.width=parseInt(r.getPropertyValue("width"),10),o.height=parseInt(r.getPropertyValue("height"),10)),o}return null}static copy(t){return new ut(0,0).set(t)}set(t){return this.width=t.width,this.height=t.height,this}}function $r(e,t){const o=n.ref(),r=n.ref(),i=n.ref(),l=n.ref(),a=n.ref(),c=n.ref(),u=n.ref(),m=n.ref(),p=n.ref(),f=n.ref(),d=n.ref(),b=n.ref(),w=n.ref(e.draggable),M=n.ref(!1);function x(){const I=r.value||document.body,O=window.getComputedStyle(I);if(!O||!o.value)return;const H=Ie.getTransformInfo(o.value),Y={};u.value&&(Y.deltaL=o.value.offsetLeft-u.value.x,Y.deltaT=o.value.offsetTop-u.value.y);const ee=O.getPropertyValue("position");Y.width=I.clientWidth,Y.height=I.clientHeight,Y.pr=parseInt(O.getPropertyValue("padding-right"),10),Y.pb=parseInt(O.getPropertyValue("padding-bottom"),10),Y.position=O.getPropertyValue("position"),ee==="static"&&(I.style.position="relative"),Y.translateX=H.x,Y.translateY=H.y,f.value=Y}function g(I){if(o.value){l.value=ut.getCurrent(o.value),a.value=Ie.getCurrent(o.value),c.value=l.value?ut.copy(l.value):null,u.value=a.value?Ie.copy(a.value):null,x();const O=I.target.getAttribute("type")||"";m.value={n:!!O.match(/n/),s:!!O.match(/s/),w:!!O.match(/w/),e:!!O.match(/e/)}}}function C(){var I,O,H,Y;if(o.value){const ee=o.value;m.value&&((m.value.n||m.value.s)&&((I=c.value)!=null&&I.height)&&(ee.style.height=c.value.height+"px"),(m.value.w||m.value.e)&&((O=c.value)!=null&&O.width)&&(ee.style.width=c.value.width+"px"),u.value&&((H=u.value)!=null&&H.x&&(ee.style.left=u.value.x+"px"),(Y=u.value)!=null&&Y.y&&(ee.style.top=u.value.y+"px")))}}function S(){const I=e.minHeight?e.minHeight:1,O=e.minWidth?e.minWidth:1;c.value&&u.value&&m.value&&l.value&&(c.value.height<I&&(c.value.height=I,m.value.n&&a.value&&(u.value.y=a.value.y+(l.value.height-I))),c.value.width<O&&(c.value.width=O,m.value.w&&a.value&&(u.value.x=a.value.x+(l.value.width-O))),e.maxHeight&&c.value.height>e.maxHeight&&(c.value.height=e.maxHeight,a.value&&m.value.n&&(u.value.y=a.value.y+(l.value.height-e.maxHeight))),e.maxWidth&&c.value.width>e.maxWidth&&(c.value.width=e.maxWidth,m.value.w&&a.value&&(u.value.x=a.value.x+(l.value.width-e.maxWidth))))}function h(){if(r.value){const I=f.value;if(u.value&&c.value&&m.value&&l.value){const O=I.width-I.pr-I.deltaL-I.translateX-u.value.x,H=I.height-I.pb-I.deltaT-I.translateY-u.value.y;m.value.n&&u.value.y+I.translateY<0&&a.value&&(u.value.y=-I.translateY,c.value.height=l.value.height+a.value.y+I.translateY),m.value.w&&u.value.x+I.translateX<0&&a.value&&(u.value.x=-I.translateX,c.value.width=l.value.width+a.value.x+I.translateX),c.value.width>O&&(c.value.width=O),c.value.height>H&&(c.value.height=H)}}}function V(I){if(!i.value||!l.value||!a.value||!m.value)return;I.subtract(i.value);const O=I.x,H=I.y;m.value.n?(u.value.y=a.value.y+H,c.value.height=l.value.height-H):m.value.s&&(c.value.height=l.value.height+H),m.value.e?c.value.width=l.value.width+O:m.value.w&&(c.value.width=l.value.width-O,u.value.x=a.value.x+O),h(),S(),C()}function T(I){if(!p.value)return;const O=Ie.fromEvent(I);O&&V(O)}function s(){if(o.value){const{width:I,height:O,x:H,y:Y}=o.value.getBoundingClientRect(),ee=Ie.getTransformInfo(o.value);return{size:{width:I,height:O},position:{x:H-ee.x,y:Y-ee.y}}}return null}function y(I){if(o.value){const O=s();d.value=O}i.value=void 0,l.value=null,a.value=null,c.value=null,u.value=null,m.value=null,p.value=null,document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",y)}function v(){document.addEventListener("mousemove",T),document.addEventListener("mouseup",y)}function F(I){I instanceof MouseEvent&&I.button===2||w.value&&(document.body.click(),I.stopPropagation(),I.preventDefault(),i.value=Ie.fromEvent(I),p.value=I.target,g(I),v())}function _(I){return o.value=I,n.createVNode(n.Fragment,null,[n.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:O=>F(O)},null),n.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:O=>F(O)},null)])}function $(I=!0){document.body.click();const O=r.value||document.body,H=ut.getCurrent(O),Y=o.value;I&&Y&&(b.value=s(),b.value.transform=Y.style.transform),H&&Y&&(c.value=H,Y.style.height=c.value.height-14+"px",Y.style.width=c.value.width-14+"px",Y.style.left="7px",Y.style.top="7px",Y.style.transform="",d.value={size:c.value,position:{x:0,y:0}},w.value=!1,M.value=!0)}function j(){var I,O;if(document.body.click(),b.value){const H={width:b.value.size.width||0,height:b.value.size.height||0},Y={x:(window.innerWidth-H.width)/2,y:(window.innerHeight-H.height)/2};(I=c.value)==null||I.set(H),(O=u.value)==null||O.set(Y);const ee=o.value;ee.style.height=H.height+"px",ee.style.width=H.width+"px",ee.style.left=`${Y.x}px`,ee.style.top=`${Y.y}px`,ee.style.transform="",d.value={size:H,position:Y},w.value=e.draggable,M.value=!1}}function E(){if(o.value){const I=ut.getCurrent(o.value);if(I){const{width:O,height:H}=I;o.value.style.left=`${(window.innerWidth-O)/2}px`,o.value.style.top=`${(window.innerHeight-H)/2}px`,o.value.style.transform=""}}}function N(){const I=()=>{M.value?$(!1):E(),document.body.click()};return window.addEventListener("resize",I),()=>{window.removeEventListener("resize",I)}}const k=N();return{renderResizeBar:_,boundingElement:r,resizedEventParam:d,maximize:$,restore:j,allowDrag:w,isMaximized:M,unWindowResizeHandle:k}}function Dr(e,t,o){const r=n.ref(),i=n.ref(e.draggable),l=n.ref(e.lockAxis),a=n.ref(),c=n.ref(),u=n.ref(!1),m=n.ref(new Ie(0,0)),p=n.ref(new Ie(0,0)),f=n.ref(new Ie(0,0)),d=n.ref(new Ie(0,0));n.watch(()=>o.value,s=>{a.value.style.cursor=s?"move":"default"});function b(s,y){if(y.tagName==="BUTTON")return!1;if(y===s)return!0;for(const v in y.children)if(Object.prototype.hasOwnProperty.call(y.children,v)&&b(s,y.children[v]))return!0;return!1}function w(){var F,_;let s=f.value.x+p.value.x,y=f.value.y+p.value.y;l.value==="x"?(s=((F=m.value)==null?void 0:F.x)||0,f.value.x=0):l.value==="y"&&(y=((_=m.value)==null?void 0:_.y)||0,f.value.y=0);const v=`translate3d(${Math.round(s)}px, ${Math.round(y)}px, 0px)`;r.value&&(r.value.style.transform=v),d.value.x=s,d.value.y=y}function M(){if(!c.value||!r.value)return null;const s=c.value.getBoundingClientRect(),y=r.value.getBoundingClientRect(),v={top:s.top<y.top,right:s.right>y.right,bottom:s.bottom>y.bottom,left:s.left<y.left};return v.top||(f.value.y-=y.top-s.top),v.bottom||(f.value.y-=y.bottom-s.bottom),v.right||(f.value.x-=y.right-s.right),v.left||(f.value.x-=y.left-s.left),w(),v}function x(s){s&&(m.value&&s.subtract(m.value),f.value.set(s),w(),M())}function g(s){u.value&&i.value&&(s.stopPropagation(),s.preventDefault(),x(Ie.fromEvent(s,a.value)))}function C(){var s;u.value&&(u.value=!1,p.value.add(f.value),f.value.reset(),(s=r.value)==null||s.classList.remove("ng-dragging"),document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",C))}function S(){!u.value&&a.value&&(u.value=!0,a.value.classList.add("ng-dragging"),document.addEventListener("mousemove",g),document.addEventListener("mouseup",C))}function h(){if(r.value){const s=Ie.getTransformInfo(r.value);p.value.set(s);return}p.value.reset()}function V(s){if(!o.value||s instanceof MouseEvent&&s.button===2)return;const y=s.target||s.srcElement;a.value!==void 0&&y&&!b(y,a.value)||i.value!==!1&&(document.body.click(),s.stopPropagation(),s.preventDefault(),m.value=Ie.fromEvent(s,r.value),h(),S())}function T(s,y,v){if(i.value&&y){if(s)a.value=s;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)a.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const F=y.querySelector(e.dragHandle);F&&(a.value=F)}}r.value=y,c.value=v,a.value?(a.value.classList.add("ng-draggable"),a.value.addEventListener("mousedown",V)):i.value=!1}}return{registerDraggle:T,resetTranslate:h}}function Zt(e,t){if(e){const o=r=>{r.key.toLowerCase()===e.toLowerCase()&&t({event:r,key:e})};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}}}function Br(e,t){const o=n.ref(e.enableEsc);let r=null;return o.value?(r=Zt("Escape",i=>{t.emit("esc",{event:i.event,type:"esc"})}),{remove:r}):null}function Rr(e,t){const o=n.ref(e.enableEnter);let r=null;return o.value?(r=Zt("Enter",i=>{t.emit("enter",{event:i.event,type:"enter"})}),{remove:r}):null}const gt=n.defineComponent({name:"FModal",props:jr,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter"],setup(e,t){const o=n.ref(e.width||300),r=n.ref(e.height||200),i=n.ref(e.modelValue),l=n.ref(""),a=n.ref(e.class),c=n.ref(e.fitContent),u=n.ref(e.showHeader),m=n.ref(""),p=n.ref(e.showCloseButton),f=n.ref(e.showMaxButton),d=n.ref(!1),b=n.ref(e.dialogType),w=n.ref(e.src),M=n.ref(""),x=n.ref(e.showButtons),g=n.ref(e.title),C=n.ref(e.resizeable),S=n.ref(e.containment||null),h=n.ref(),V=n.ref(!1);function T(ne,be){i.value=!1,t.emit("update:modelValue",!1),be!=null&&t.emit(be?"accept":"cancel"),t.emit("closed",ne)}const s=[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:ne=>{T(ne,!1)}},{name:"accept",text:"确定",class:"btn btn-primary",handle:ne=>{T(ne,!0)}}],y=n.ref(e.buttons&&e.buttons.length?e.buttons:s),v=n.computed(()=>!!m.value),F=n.computed(()=>!!x.value&&!!y.value),_=n.ref(),$=n.ref(),j=n.ref(!1),{renderResizeBar:E,maximize:N,restore:k,boundingElement:I,resizedEventParam:O,allowDrag:H,unWindowResizeHandle:Y}=$r(e),{registerDraggle:ee}=Dr(e,t,H);function G(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function fe(){const ne=document.querySelectorAll(".farris-modal").length;(!ne||ne-1<=0)&&document.body.classList.remove("modal-open"),h.value&&h.value.classList.remove("show")}n.watch(()=>e.title,(ne,be)=>{ne!==be&&(g.value=ne)}),n.watch(()=>e.modelValue,(ne,be)=>{ne!==be&&(i.value=ne,ne||fe()),i.value&&(V.value=G())}),n.watch(()=>e.showHeader,(ne,be)=>{ne!==be&&(u.value=ne)}),n.watch(()=>e.showButtons,(ne,be)=>{ne!==be&&(x.value=ne)}),n.watch(()=>O.value,(ne,be)=>{const Fe=ne||{},je=be||{};JSON.stringify(Fe)!==JSON.stringify(je)&&t.emit("resize",{newSize:ne,oldSize:be})});const P=n.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),R=n.computed(()=>{const ne={modal:!0,"farris-modal":!0,fade:!0};return ne["f-modal-fitContent"]=!!c.value,ne.show=!!P.value,ne}),W=n.computed(()=>{var Fe;const ne={"modal-dialog":!0},be=(Fe=a.value)==null?void 0:Fe.split(" ");return be==null||be.reduce((je,Ne)=>(je[Ne]=!0,je),ne),ne}),L=n.computed(()=>({position:"absolute",top:`${(window.innerHeight-r.value)/2}px`,left:`${(window.innerWidth-o.value)/2}px`,width:`${o.value}px`,height:c.value?"auto":`${r.value}px`})),J=n.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value})),U=n.computed(()=>{const ne={display:u.value?"":"none"};return ne["pointer-events"]=H.value?"auto":"none",ne}),D=n.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:j.value})),A=n.computed(()=>({"modal-body":!0,"f-utils-flex-column":b.value==="iframe","f-utils-fill":!0}));function re(){return{height:`${e.footerHeight||60}px`}}const Q=n.computed(()=>{const ne={textAlgin:M.value},be=re();return Object.assign(ne,be)});function Z(ne){if(ne.stopPropagation(),j.value){j.value=!1,k();return}N(),j.value=!0}async function xe(ne,be){ne.handle&&await ne.handle(be,ne)&&t.emit("closed",be)}function Ve(ne){ne.width&&(o.value=ne.width),ne.height&&(r.value=ne.height),ne.buttons&&(y.value=ne.buttons),ne.title&&(g.value=ne.title)}const Se=n.computed(()=>{const ne={display:"inline-block"};return V.value&&(ne["background-color"]="transparent"),ne});let We=null,Be=null;n.onBeforeMount(()=>{V.value=G()}),n.onMounted(()=>{$.value&&!S.value&&(S.value=$.value.parentElement,I.value=S.value,ee(_.value,$.value,I.value)),P.value&&document.body.classList.add("modal-open"),We=Br(e,t),Be=Rr(e,t)}),n.onUnmounted(()=>{Y&&Y(),We&&We.remove(),Be&&Be.remove()}),t.expose({modalElementRef:$,updateModalOptions:Ve,close:T,maxDialog:Z});function Ee(){return n.createVNode("ul",null,[d.value&&n.createVNode("li",{class:"f-btn-icon f-bare"},[n.createVNode("span",{class:"f-icon modal_minimize"},null)]),f.value&&n.createVNode("li",{onClick:Z,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[n.createVNode("span",{class:D.value},null)]),p.value&&n.createVNode("li",{class:"f-btn-icon f-bare",onClick:ne=>T(ne,!1),style:"pointer-events: auto;"},[n.createVNode("span",{class:"f-icon modal_close"},null)])])}function Ge(){return n.createVNode("div",{class:"modal-footer",style:Q.value},[y.value&&y.value.map(ne=>n.createVNode("button",{name:ne.name,type:"button",class:ne.class+(ne.iconClass?" btn-icontext":""),onClick:be=>{xe(ne,be)}},[!!ne.iconClass&&n.createVNode("i",{class:ne.iconClass},null),ne.text]))])}function Ae(){return n.createVNode("div",{ref:_,class:"modal-header",style:U.value},[n.createVNode("div",{class:"modal-title"},[v.value&&n.createVNode("span",{class:m.value,style:"margin-right: 8px"},null),n.createVNode("span",{class:"modal-title-label"},[g.value])]),n.createVNode("div",{class:"actions"},[Ee()])])}function rt(ne){ne.stopPropagation()}return()=>n.createVNode(n.Teleport,{to:"body"},{default:()=>[P.value&&n.createVNode(n.Transition,{name:"fade",appear:!0},{default:()=>{var ne,be;return[n.createVNode("div",{class:R.value,style:Se.value,ref:h,onClick:rt},[n.createVNode("div",{id:l.value,class:W.value,style:L.value,ref:$},[n.createVNode("div",{class:J.value},[u.value&&Ae(),n.createVNode("div",{class:A.value},[(be=(ne=t.slots).default)==null?void 0:be.call(ne),b.value==="iframe"&&n.createVNode("iframe",{title:l.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:w.value},null)]),F.value&&Ge()]),!c.value&&C.value&&$.value&&!j.value&&E($.value)])])]}})]})}});function en(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Pr(e){const t=document.createElement("div");t.style.display="contents";const o=n.createApp({setup(r,i){n.onUnmounted(()=>{document.body.removeChild(t)});const l=n.ref(),a=n.ref(e.class||""),c=n.ref(!!e.showButtons),u=n.ref(!!e.showHeader),m=n.ref(e.showCloseButton==null?!0:e.showCloseButton),p=n.ref(!0),f=n.ref(e.title||""),d=e.acceptCallback||(()=>{}),b=e.rejectCallback||(()=>{}),w=e.closedCallback||(C=>{}),M=e.resizeHandle||(C=>{}),x=en(e),g=C=>{p.value=!1,o.unmount(),w(C)};return n.onMounted(()=>{}),i.expose({modalRef:l}),()=>n.createVNode(gt,{ref:l,class:a.value,modelValue:p.value,"onUpdate:modelValue":C=>p.value=C,title:f.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":u.value,"show-buttons":c.value,"show-close-button":m.value,"show-max-button":!1,onAccept:d,onCancel:b,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:g,onResize:M},{default:()=>[x&&x(o)]})}});return document.body.appendChild(t),o.mount(t),o}class $t{constructor(t){te(this,"appContext",null);te(this,"modalRef",n.ref());te(this,"activeModalIndex",n.ref(0));te(this,"modalRefs",{});te(this,"isUseEscCloseModal",n.ref(!1));te(this,"activeModalInstance",n.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=t,this.appContext=t?t._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(t,o){const{width:r,height:i}={width:window.innerWidth,height:window.innerHeight};return r<t&&(t=r),i<o&&(o=i),{width:t,height:o}}static show(t){const o=Object.assign({title:"",showButtons:!0,showHeader:!0},t);return Pr(o)}close(t){var o,r;t?(r=t.value)==null||r.close():(o=this.getCurrentModal())==null||o.close()}open(t){const o=document.createDocumentFragment();t.showMaxButton&&t.fitContent&&(t.showMaxButton=!1);const r=n.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},t)),i=n.ref(!0),l=r.value.acceptCallback||(()=>{}),a=r.value.rejectCallback||(()=>{}),c=r.value.closedCallback||((h,V)=>{}),u=r.value.resizeHandle||(h=>{});let m;const p=en(r.value),f=h=>{var T;i.value=!1;const V=(T=h==null?void 0:h.target)==null?void 0:T.classList.contains("modal_close");c(h,this.isUseEscCloseModal.value?"esc":V?"icon":"button")},d=h=>{f(h),m&&n.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],n.render(null,o),m=null,this.modalRef.value=null,this.modalRefs){const V=Object.keys(this.modalRefs).map(T=>Number(T));V.length>0?this.activeModalIndex.value=Math.max(...V):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},b=h=>{var V;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((V=this.activeModalInstance.value)==null||V.close(h==null?void 0:h.event))},{width:w,height:M}=r.value,x=this.adaptToWindow(w||500,M||320);Object.assign(r.value,x);const g=()=>n.createVNode(gt,n.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":h=>i.value=h},r.value,{onAccept:l,onCancel:a,onClosed:d,onResize:u,onEsc:b}),{default:()=>[p&&p(this.app)]});return m=(h=>{const V=n.h(g,h);return V.appContext=this.appContext,n.render(V,o),V})({...r.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:h=>{r.value={...r.value,...h},m&&n.render(n.cloneVNode(m,{...r}),o)},destroy:d,modalRef:this.activeModalInstance,close:this.close}}}const Hr=Symbol("FModalService");gt.install=e=>{e.component(gt.name,gt);const t=new $t(e);e.provide(Hr,t),e.provide("FModalService",t)};const tn=new Map([["appearance",pt]]);function nn(e,t,o){return t}const Lr={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/list-view.schema.json",title:"list-view",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for list-view",type:"string"},type:{description:"The type string of list-view",type:"string",default:"list-view"},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"]},Wr={title:"list-view",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:[]}}}}}},xt={columns:{type:Array,default:[{field:"name",title:"",dataType:"string"}]},data:{type:Array,default:[]},draggable:{type:Boolean,default:!1},multiSelect:{Type:Boolean,default:!1},multiSelectMode:{Type:String,default:"OnCheck"},idField:{Type:String,default:"id"},valueField:{Type:String,default:"id"},textField:{Type:String,default:"name"},titleField:{Type:String,default:"name"},view:{Type:String,default:"ContentView"},size:{Type:String,default:"default"},placeholder:{type:String,default:""},header:{Type:String,default:"ContentHeader"},headerClass:{Type:String,default:""},itemClass:{Type:String,default:""},itemContentClass:{Type:String,default:""},selectionValues:{type:Array,default:[]},group:{type:Object},selection:{type:Object,default:{enableSelectRow:!0,multiSelect:!1,multiSelectMode:"DependOnCheck",showCheckbox:!1,showSelectAll:!1,showSelection:!0}},keepOrder:{type:Boolean,default:!1},disableField:{type:String,default:"disabled"},enableHighlightSearch:{type:Boolean,default:!0},virtualized:{type:Boolean,default:!0}},on=Qe(xt,Lr,tn,nn,Wr);function rn(e,t){function o(l){const a=[];let c=l.nextNode();for(;c;)a.push(c),c=l.nextNode();return a}function r(l,a){const c=document.createTreeWalker(l,NodeFilter.SHOW_TEXT);return o(c).map(f=>({textNode:f,text:(f.textContent||"").toLocaleLowerCase()})).map(({textNode:f,text:d})=>{const b=[];let w=0;for(;w<d.length;){const M=d.indexOf(a,w);if(M===-1)break;b.push(M),w=M+a.length}return b.map(M=>{const x=new Range;return x.setStart(f,M),x.setEnd(f,M+a.length),x})}).flat()}function i(l){if(!CSS.highlights||(CSS.highlights.clear(),!l||!t))return;const a=r(t.value,l.toLocaleLowerCase()),c=new Highlight(...a);CSS.highlights.set("search-result",c)}return{search:i}}function an(e,t,o,r,i,l,a,c,u,m){const p=n.ref(e.size),f=n.ref(e.textField),d=n.ref(e.titleField),b=n.ref(e.disableField),w=n.computed(()=>{var y,v;return((y=e.selection)==null?void 0:y.multiSelect)&&((v=e.selection)==null?void 0:v.showCheckbox)}),{onMouseenterItem:M,onMouseoverItem:x,onMouseoutItem:g}=l,{getKey:C,listViewItemClass:S,onCheckItem:h,onClickItem:V}=a,T=n.comput