UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1 lines 243 kB
(function(G,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("lodash-es"),require("../list-view/index.umd.js"),require("../button-edit/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("bignumber.js"),require("../common/index.umd.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../modal/index.umd.js"),require("../transfer/index.umd.js"),require("../tabs/index.umd.js"),require("../order/index.umd.js"),require("../condition/index.umd.js"),require("../checkbox/index.umd.js"),require("../filter-bar/index.umd.js"),require("../tooltip/index.umd.js"),require("../pagination/index.umd.js"),require("../button/index.umd.js"),require("../search-box/index.umd.js"),require("../tags/index.umd.js"),require("../dynamic-form/index.umd.js"),require("../binding-selector/index.umd.js"),require("../notify/index.umd.js"),require("../accordion/index.umd.js"),require("../avatar/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../capsule/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("../external-container/index.umd.js"),require("../events-editor/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("../lookup/index.umd.js"),require("../nav/index.umd.js"),require("../number-spinner/index.umd.js"),require("../number-range/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/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("../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("../text/index.umd.js"),require("../time-picker/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("../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")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../list-view/index.umd.js","../button-edit/index.umd.js","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","bignumber.js","../common/index.umd.js","@vueuse/core","../data-view/index.umd.js","../modal/index.umd.js","../transfer/index.umd.js","../tabs/index.umd.js","../order/index.umd.js","../condition/index.umd.js","../checkbox/index.umd.js","../filter-bar/index.umd.js","../tooltip/index.umd.js","../pagination/index.umd.js","../button/index.umd.js","../search-box/index.umd.js","../tags/index.umd.js","../dynamic-form/index.umd.js","../binding-selector/index.umd.js","../notify/index.umd.js","../accordion/index.umd.js","../avatar/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../capsule/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","../external-container/index.umd.js","../events-editor/index.umd.js","../image-cropper/index.umd.js","../input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../lookup/index.umd.js","../nav/index.umd.js","../number-spinner/index.umd.js","../number-range/index.umd.js","../page-header/index.umd.js","../page-footer/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","../section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../switch/index.umd.js","../text/index.umd.js","../time-picker/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","../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"],o):(G=typeof globalThis<"u"?globalThis:G||self,o(G["combo-list"]={},G.Vue,G.LodashES,G.FListView,G.FButtonEdit,G.dynamicResolver,G.designerCanvas,G.BigNumber,G.common,G.VueUseCore,G.dataView,null,G.FTransfer,G.FTabs,G.FOrder,null,G.FCheckBox,G.FFilterBar,G.FTooltip,G.FPagination,G.FButton,G.FSearchBox,G.FTags,G.FDynamicForm,G.FBindingSelector,null,G.FAccordion,G.FAvatar,G.FButtonGroup,G.FCalendar,G.FCapsule,G.FColorPicker,G.FComboList$1,G.FContentContainer,G.FDataGrid,G.FDatePicker,G.FDropdown,null,G.FEventsEditor,G.FImageCropper,G.FInputGroup,G.FLayout,G.FListNav,G.FLookup,G.FNav,G.FNumberSpinner,G.FNumberRange,G.FPageHeader,G.FPageFooter,G.FProgress,G.FQuerySolution,G.FRadioGroup,G.FRate,G.FResponseToolbar,G.FResponseLayout,G.FResponseLayoutEditorSetting,G.FSection,G.FSmokeDetector,G.FSplitter,G.FStep,G.FSwitch,G.FText,G.FTimePicker,G.FTreeview,G.FUploader,G.FVerifyDetail,G.FComponent,G.FVideo,G.FTextArea,G.FTreeGrid$1,G.FFieldset,G.FDrawer,G.FComboTree,G.FFieldSelector,G.FMappingEditor,G.FSchemaSelector,G.FEventParameter,G.FFilterConditionEditor,G.FSortConditionEditor,G.FMenuLookup))})(this,function(G,o,Me,Ht,Wt,At,vt,La,_e,qt,Ce,Ha,Bn,jn,Dn,Wa,Gt,$n,zt,Rn,Pn,Ln,Hn,Vt,Wn,Aa,An,qn,Gn,zn,Un,Yn,Nt,Xn,Kn,Jn,Qn,qa,Zn,eo,to,no,oo,ro,io,ao,lo,so,co,uo,fo,po,mo,ho,go,yo,vo,bo,Co,wo,So,xo,_o,To,Fo,Vo,No,ko,Io,Eo,Oo,Mo,Bo,jo,Do,$o,Ro,Po,Lo,Ho){"use strict";var Ra=Object.defineProperty;var Pa=(G,o,Me)=>o in G?Ra(G,o,{enumerable:!0,configurable:!0,writable:!0,value:Me}):G[o]=Me;var q=(G,o,Me)=>Pa(G,typeof o!="symbol"?o+"":o,Me);const Ut={},Yt={};function kt(e){const{properties:t,title:n,ignore:r}=e,i=r&&Array.isArray(r),a=Object.keys(t).reduce((l,c)=>((!i||!r.find(u=>u===c))&&(l[c]=t[c].type==="object"&&t[c].properties?kt(t[c]):Me.cloneDeep(t[c].default)),l),{});if(n&&(!i||!r.find(l=>l==="id"))){const l=n.toLowerCase().replace(/-/g,"_");a.id=`${l}_${Math.random().toString().slice(2,6)}`}return a}function Wo(e){const{properties:t,title:n,required:r}=e;if(r&&Array.isArray(r)){const i=r.reduce((a,l)=>(a[l]=t[l].type==="object"&&t[l].properties?kt(t[l]):Me.cloneDeep(t[l].default),a),{});if(n&&r.find(a=>a==="id")){const a=n.toLowerCase().replace(/-/g,"_");i.id=`${a}_${Math.random().toString().slice(2,6)}`}return i}return{type:n}}function Xt(e,t={},n){const r=Ut[e];if(r){let i=Wo(r);const a=Yt[e];return i=a?a({getSchemaByType:Xt},i,t,n):i,i}return null}function Ao(e,t){const n=kt(t);return Object.keys(n).reduce((r,i)=>(Object.prototype.hasOwnProperty.call(e,i)&&(r[i]&&Me.isPlainObject(r[i])&&Me.isPlainObject(e[i]||!e[i])?Object.assign(r[i],e[i]||{}):r[i]=e[i]),r),n),n}function Kt(e,t){return Object.keys(e).filter(r=>e[r]!=null).reduce((r,i)=>{if(t.has(i)){const a=t.get(i);if(typeof a=="string")r[a]=e[i];else{const l=a(i,e[i],e);Object.assign(r,l)}}else r[i]=e[i];return r},{})}function qo(e,t,n=new Map){const r=Ao(e,t);return Kt(r,n)}function Go(e={}){function t(m,f,s,d){if(typeof s=="number")return d[m].length===s;if(typeof s=="object"){const g=Object.keys(s)[0],y=s[g];if(g==="not")return Number(d[m].length)!==Number(y);if(g==="moreThan")return Number(d[m].length)>=Number(y);if(g==="lessThan")return Number(d[m].length)<=Number(y)}return!1}function n(m,f,s,d){return d[m]&&d[m].propertyValue&&String(d[m].propertyValue.value)===String(s)}const r=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((m,f)=>(m.set(f,e[f]),m),r);function i(m,f){const s=m;return typeof f=="number"?[{target:s,operator:"length",param:null,value:Number(f)}]:typeof f=="boolean"?[{target:s,operator:"getProperty",param:m,value:!!f}]:typeof f=="object"?Object.keys(f).map(d=>{if(d==="length")return{target:s,operator:"length",param:null,value:f[d]};const g=d,y=f[d];return{target:s,operator:"getProperty",param:g,value:y}}):[]}function a(m){return Object.keys(m).reduce((s,d)=>{const g=i(d,m[d]);return s.push(...g),s},[])}function l(m,f){if(r.has(m.operator)){const s=r.get(m.operator);return s&&s(m.target,m.param,m.value,f)||!1}return!1}function c(m,f){return a(m).reduce((g,y)=>g&&l(y,f),!0)}function u(m,f){const s=Object.keys(m),d=s.includes("allOf"),g=s.includes("anyOf"),y=d||g,h=(y?m[y?d?"allOf":"anyOf":"allOf"]:[m]).map(_=>c(_,f));return d?!h.includes(!1):h.includes(!0)}return{parseValueSchema:u}}const ie={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:"抽屉"}},zo={},Uo={};Go();function ot(e,t,n=new Map,r=(l,c,u,m)=>c,i={},a=l=>l){return Ut[t.title]=t,Yt[t.title]=r,zo[t.title]=i,Uo[t.title]=a,(l={},c=!0)=>{if(!c)return Kt(l,n);const u=qo(l,t,n),m=Object.keys(e).reduce((f,s)=>(f[s]=e[s].default,f),{});return Object.assign(m,u)}}function pt(e,t){return{customClass:t.class,customStyle:t.style}}function Yo(){function e(t,n){const{dataSource:r}=t||{};return r===void 0?{}:{}}return{resolve:e}}function Xo(){function e(t,n){return t.selectItemById(n)}return{selectItemById:e}}function Ko(){function e(t,n){const{columns:r}=n;return t.updateColumns(r)}return{updateColumns:e}}const Jo=new Map([["appearance",pt]]),Qo={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0}},required:["type"],ignore:["id","appearance","binding","visible"]};function Zo(e,t,n){return t}var Jt=(e=>(e.Text="text",e.Tag="tag",e))(Jt||{}),Qt=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(Qt||{});const bt={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-60-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!0},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0}},Zt=Object.assign({},bt,{readonly:{}}),It=ot(bt,Qo,Jo,Zo),er={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},tr=o.defineComponent({name:"FComboListContainer",props:er,emits:["selectionChange"],setup(e,t){const n=o.ref(),r=o.ref(e.dataSource),i=o.ref([]),a=o.ref(e.separator),l=o.ref(e.width),c=o.ref(e.maxHeight),u=o.ref(String(e.selectedValues).split(a.value)),m=o.computed(()=>e.multiSelect),f=o.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:m.value,showSelectAll:!1,showSelection:!0}));o.watch(e.dataSource,()=>{r.value=e.dataSource}),o.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const s=o.computed(()=>{const w={};return l.value!==void 0&&(w.width=`${l.value}px`),c.value!==void 0&&c.value>0&&(w.maxHeight=`${c.value}px`),w});function d(w){n.value.search(w)}function g(w){i.value=w.map(h=>Object.assign({},h)),u.value=w.map(h=>h[e.idField]),t.emit("selectionChange",i.value)}function y(w){if(e.enableHighlightSearch)return;let h=[];const{searchOption:b}=e;typeof b=="function"?h=r.value.filter(_=>b(w,_)):h=r.value.filter(_=>_[e.valueField].indexOf(w)>-1||_[e.textField].indexOf(w)>-1),n.value.updateDataSource(h)}o.watch([()=>e.selectedValues],([w])=>{u.value=w.split(a.value)});function N(w){n.value.activeRowById(w)}return o.onMounted(()=>{e.multiSelect||N(u.value[0])}),t.expose({search:d,activeRowById:N}),()=>o.createVNode("div",{class:"f-combo-list-container",style:s.value},[o.createVNode(Ht,{ref:n,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:r.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:f.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:u.value,onSelectionChange:g,onAfterSearch:y},null)])}});function nr(e){const t=o.ref(""),n=o.ref(e.modelValue),r=o.ref(e.data||[]),i=o.ref(e.editable);function a(s){const d=e.multiSelect?String(s).split(e.separator):[String(s)],g=d.map(w=>[w,!0]),y=new Map(g);return r.value.filter(w=>y.has(String(w[e.valueField]))).sort((w,h)=>{const b=d.indexOf(w[e.valueField]),_=d.indexOf(h[e.valueField]);return b-_})}function l(s){const d=a(s).map(g=>g[e.textField]).join(e.separator);t.value=i.value?d||s:d}function c(s){const d=s.split(e.separator).map(y=>[y,!0]),g=new Map(d);return r.value.filter(y=>g.has(y[e.textField]))}function u(s){const d={};return d[e.idField]=s,d[e.textField]=s,[d]}function m(s){let d=c(s);const g=d&&d.length>0;return i.value&&!g&&(d=u(s)),d}function f(){const{url:s,method:d="GET",headers:g={},body:y=null}=e.remote,N=d.toLowerCase()==="get"?{method:d,headers:g}:{method:d,headers:g,body:y};let w=!1;fetch(s,N).then(h=>{var _,v;if(h.status===200)return w=!!((v=(_=h.headers)==null?void 0:_.get("content-type"))!=null&&v.includes("application/json")),w?h.text():h.json();throw new Error(h.statusText)}).then(h=>{r.value=w?JSON.parse(h):h}).catch(h=>{console.error(h)})}return e.remote&&f(),o.watch(()=>e.data,()=>{r.value=e.data}),o.watch([r],([s])=>{if(e.modelValue!=null){const d=s.find(g=>g[e.valueField]===e.modelValue);d&&(t.value=d[e.textField])}}),o.watch(()=>e.modelValue,s=>{n.value=s,l(s)}),l(e.modelValue),{dataSource:r,displayText:t,editable:i,modelValue:n,getItemsByDisplayText:c,getItemsByValue:a,getSelectedItemsByDisplayText:m}}const mt=o.defineComponent({name:"FComboList",props:bt,emits:["clear","update:modelValue","change","input"],setup(e,t){const n=o.ref(),r=o.ref(),i=o.ref(e.disabled),a=o.ref(e.enableClear),l=o.ref(e.enableSearch),c=o.ref(e.readonly);let u="";const{dataSource:m,displayText:f,editable:s,modelValue:d,getSelectedItemsByDisplayText:g}=nr(e),y=o.computed(()=>e.multiSelect),N=o.computed(()=>r.value?r.value.elementRef.getBoundingClientRect().width:0);function w(){!y.value&&r.value&&r.value.hidePopup()}function h(C){f.value=C.map(x=>x[e.textField]).join(e.separator);let F="";C.length===1?F=C[0][e.valueField]:F=C.map(x=>x[e.valueField]).join(e.separator),d.value!==F&&(d.value=F,t.emit("update:modelValue",d.value),t.emit("change",C,d.value))}function b(){const C=g(u);h(C)}function _(){c.value||(u=f.value)}function v(C){d.value="",n.value.activeRowById(""),t.emit("update:modelValue",""),t.emit("clear")}function T(C){e.enableSearch?(n.value.search(C),n.value.activeRowById(C)):(d.value=C,f.value=C,t.emit("update:modelValue",d.value),t.emit("change",[C],C))}function I(){return f.value}function p(C){T(C),t.emit("input",C)}function S(){r.value.hidePopup()}return t.expose({getDisplayText:I,hidePopup:S}),o.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([C,F,x,B,O])=>{i.value=C,s.value=F,a.value=x,l.value=B,c.value=O}),()=>o.createVNode(Wt,{ref:r,id:e.id,disable:i.value,readonly:c.value,forcePlaceholder:e.forcePlaceholder,editable:s.value,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:a.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:f.value,"onUpdate:modelValue":C=>f.value=C,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:v,onClick:_,onBlur:b,onInput:p,beforeOpen:e.beforeOpen,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick},{default:()=>[o.createVNode(tr,{ref:n,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:m.value,selectedValues:d.value,multiSelect:e.multiSelect,enableSearch:l.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?N.value:void 0,onSelectionChange:C=>{h(C),w()}},null)]})}}),or=new Map([["appearance",At.resolveAppearance]]);function rr(e,t,n){return t}const ir={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/button-edit.schema.json",title:"button-edit",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"button-edit"},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},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},forcePlaceholder:{description:"",type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""},autoComplete:{description:"",type:"boolean",default:!1},buttonContent:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["text","tag"],default:"text"},multiSelect:{description:"",type:"boolean",default:!1},popup:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},popupClass:{description:"",type:"sting",default:""},separator:{type:"string",default:","},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},wrapText:{type:"boolean",default:!1},onClear:{description:"",type:"string",default:""}},required:["id","type"]},ar={title:"buttonEdit",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:{editable:{description:"",title:"允许编辑",type:"boolean"},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"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},en={id:String,buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:Number,tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupOnClick:{type:Boolean,default:!1},popupClass:{type:String,default:""},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null},updateOn:{type:String,default:"change"},keepWidthWithReference:{type:Boolean,default:!0},placement:{type:String,default:"bottom-left"},preventScroll:{type:Boolean,default:!1}};ot(en,ir,or,rr,ar);const lr={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},sr=o.defineComponent({name:"FOverlay",props:lr,emits:["click"],setup(e,t){const n=o.ref(e.popupContentPosition),r=o.ref(e.host),i=o.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function a(c){t.emit("click"),c.preventDefault(),c.stopPropagation()}o.computed(()=>{const c=r.value;if(c){const u=c.getBoundingClientRect(),{left:m,top:f,height:s}=u;return{left:m,top:f+s}}return n.value});const l=o.computed(()=>({}));return()=>o.createVNode(o.Teleport,{to:"body"},{default:()=>{var c,u;return[o.createVNode("div",{class:"overlay-container",onClick:m=>a(m),style:i.value},[o.createVNode("div",{style:l.value},[(u=(c=t.slots).default)==null?void 0:u.call(c)])])]}})}});function cr(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function ur(e){const t=document.createElement("div");t.style.display="contents";let n;const r=e.onClickCallback||(()=>{}),i=()=>{r(),n&&n.unmount()};return n=o.createApp({setup(){o.onUnmounted(()=>{document.body.removeChild(t)});const a=cr(e);return()=>o.createVNode(sr,{"popup-content-position":e.popupPosition,host:e.host,onClick:i,backgroundColor:e.backgroundColor},{default:()=>[a&&a()]})}}),document.body.appendChild(t),n.mount(t),n}class dr{static show(t){return ur(t)}}const fr={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,n){this.x=t,this.y=n}static getTransformInfo(t){const r=window.getComputedStyle(t).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(r.length>=6){const i=parseInt(r[4],10),a=parseInt(r[5],10);return{x:i,y:a}}return{x:0,y:0}}static fromEvent(t,n=null){if(this.isMouseEvent(t))return new Ie(t.clientX,t.clientY);if(n===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===n)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 n=new Ie(0,0);if(window){const r=window.getComputedStyle(t);if(r){const i=parseInt(r.getPropertyValue("left"),10),a=parseInt(r.getPropertyValue("top"),10);n.x=isNaN(i)?0:i,n.y=isNaN(a)?0:a}return n}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,n){this.width=t,this.height=n}static getCurrent(t){const n=new ut(0,0);if(window){const r=window.getComputedStyle(t);return r&&(n.width=parseInt(r.getPropertyValue("width"),10),n.height=parseInt(r.getPropertyValue("height"),10)),n}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 pr(e,t){const n=o.ref(),r=o.ref(),i=o.ref(),a=o.ref(),l=o.ref(),c=o.ref(),u=o.ref(),m=o.ref(),f=o.ref(),s=o.ref(),d=o.ref(),g=o.ref(),y=o.ref(e.draggable),N=o.ref(!1);function w(){const k=r.value||document.body,j=window.getComputedStyle(k);if(!j||!n.value)return;const L=Ie.getTransformInfo(n.value),X={};u.value&&(X.deltaL=n.value.offsetLeft-u.value.x,X.deltaT=n.value.offsetTop-u.value.y);const ne=j.getPropertyValue("position");X.width=k.clientWidth,X.height=k.clientHeight,X.pr=parseInt(j.getPropertyValue("padding-right"),10),X.pb=parseInt(j.getPropertyValue("padding-bottom"),10),X.position=j.getPropertyValue("position"),ne==="static"&&(k.style.position="relative"),X.translateX=L.x,X.translateY=L.y,s.value=X}function h(k){if(n.value){a.value=ut.getCurrent(n.value),l.value=Ie.getCurrent(n.value),c.value=a.value?ut.copy(a.value):null,u.value=l.value?Ie.copy(l.value):null,w();const j=k.target.getAttribute("type")||"";m.value={n:!!j.match(/n/),s:!!j.match(/s/),w:!!j.match(/w/),e:!!j.match(/e/)}}}function b(){var k,j,L,X;if(n.value){const ne=n.value;m.value&&((m.value.n||m.value.s)&&((k=c.value)!=null&&k.height)&&(ne.style.height=c.value.height+"px"),(m.value.w||m.value.e)&&((j=c.value)!=null&&j.width)&&(ne.style.width=c.value.width+"px"),u.value&&((L=u.value)!=null&&L.x&&(ne.style.left=u.value.x+"px"),(X=u.value)!=null&&X.y&&(ne.style.top=u.value.y+"px")))}}function _(){const k=e.minHeight?e.minHeight:1,j=e.minWidth?e.minWidth:1;c.value&&u.value&&m.value&&a.value&&(c.value.height<k&&(c.value.height=k,m.value.n&&l.value&&(u.value.y=l.value.y+(a.value.height-k))),c.value.width<j&&(c.value.width=j,m.value.w&&l.value&&(u.value.x=l.value.x+(a.value.width-j))),e.maxHeight&&c.value.height>e.maxHeight&&(c.value.height=e.maxHeight,l.value&&m.value.n&&(u.value.y=l.value.y+(a.value.height-e.maxHeight))),e.maxWidth&&c.value.width>e.maxWidth&&(c.value.width=e.maxWidth,m.value.w&&l.value&&(u.value.x=l.value.x+(a.value.width-e.maxWidth))))}function v(){if(r.value){const k=s.value;if(u.value&&c.value&&m.value&&a.value){const j=k.width-k.pr-k.deltaL-k.translateX-u.value.x,L=k.height-k.pb-k.deltaT-k.translateY-u.value.y;m.value.n&&u.value.y+k.translateY<0&&l.value&&(u.value.y=-k.translateY,c.value.height=a.value.height+l.value.y+k.translateY),m.value.w&&u.value.x+k.translateX<0&&l.value&&(u.value.x=-k.translateX,c.value.width=a.value.width+l.value.x+k.translateX),c.value.width>j&&(c.value.width=j),c.value.height>L&&(c.value.height=L)}}}function T(k){if(!i.value||!a.value||!l.value||!m.value)return;k.subtract(i.value);const j=k.x,L=k.y;m.value.n?(u.value.y=l.value.y+L,c.value.height=a.value.height-L):m.value.s&&(c.value.height=a.value.height+L),m.value.e?c.value.width=a.value.width+j:m.value.w&&(c.value.width=a.value.width-j,u.value.x=l.value.x+j),v(),_(),b()}function I(k){if(!f.value)return;const j=Ie.fromEvent(k);j&&T(j)}function p(){if(n.value){const{width:k,height:j,x:L,y:X}=n.value.getBoundingClientRect(),ne=Ie.getTransformInfo(n.value);return{size:{width:k,height:j},position:{x:L-ne.x,y:X-ne.y}}}return null}function S(k){if(n.value){const j=p();d.value=j}i.value=void 0,a.value=null,l.value=null,c.value=null,u.value=null,m.value=null,f.value=null,document.removeEventListener("mousemove",I),document.removeEventListener("mouseup",S)}function C(){document.addEventListener("mousemove",I),document.addEventListener("mouseup",S)}function F(k){k instanceof MouseEvent&&k.button===2||y.value&&(document.body.click(),k.stopPropagation(),k.preventDefault(),i.value=Ie.fromEvent(k),f.value=k.target,h(k),C())}function x(k){return n.value=k,o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:j=>F(j)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:j=>F(j)},null)])}function B(k=!0){document.body.click();const j=r.value||document.body,L=ut.getCurrent(j),X=n.value;k&&X&&(g.value=p(),g.value.transform=X.style.transform),L&&X&&(c.value=L,X.style.height=c.value.height-14+"px",X.style.width=c.value.width-14+"px",X.style.left="7px",X.style.top="7px",X.style.transform="",d.value={size:c.value,position:{x:0,y:0}},y.value=!1,N.value=!0)}function O(){var k,j;if(document.body.click(),g.value){const L={width:g.value.size.width||0,height:g.value.size.height||0},X={x:(window.innerWidth-L.width)/2,y:(window.innerHeight-L.height)/2};(k=c.value)==null||k.set(L),(j=u.value)==null||j.set(X);const ne=n.value;ne.style.height=L.height+"px",ne.style.width=L.width+"px",ne.style.left=`${X.x}px`,ne.style.top=`${X.y}px`,ne.style.transform="",d.value={size:L,position:X},y.value=e.draggable,N.value=!1}}function M(){if(n.value){const k=ut.getCurrent(n.value);if(k){const{width:j,height:L}=k;n.value.style.left=`${(window.innerWidth-j)/2}px`,n.value.style.top=`${(window.innerHeight-L)/2}px`,n.value.style.transform=""}}}function V(){const k=()=>{N.value?B(!1):M(),document.body.click()};return window.addEventListener("resize",k),()=>{window.removeEventListener("resize",k)}}const E=V();return{renderResizeBar:x,boundingElement:r,resizedEventParam:d,maximize:B,restore:O,allowDrag:y,isMaximized:N,unWindowResizeHandle:E}}function mr(e,t,n){const r=o.ref(),i=o.ref(e.draggable),a=o.ref(e.lockAxis),l=o.ref(),c=o.ref(),u=o.ref(!1),m=o.ref(new Ie(0,0)),f=o.ref(new Ie(0,0)),s=o.ref(new Ie(0,0)),d=o.ref(new Ie(0,0));o.watch(()=>n.value,p=>{l.value.style.cursor=p?"move":"default"});function g(p,S){if(S.tagName==="BUTTON")return!1;if(S===p)return!0;for(const C in S.children)if(Object.prototype.hasOwnProperty.call(S.children,C)&&g(p,S.children[C]))return!0;return!1}function y(){var F,x;let p=s.value.x+f.value.x,S=s.value.y+f.value.y;a.value==="x"?(p=((F=m.value)==null?void 0:F.x)||0,s.value.x=0):a.value==="y"&&(S=((x=m.value)==null?void 0:x.y)||0,s.value.y=0);const C=`translate3d(${Math.round(p)}px, ${Math.round(S)}px, 0px)`;r.value&&(r.value.style.transform=C),d.value.x=p,d.value.y=S}function N(){if(!c.value||!r.value)return null;const p=c.value.getBoundingClientRect(),S=r.value.getBoundingClientRect(),C={top:p.top<S.top,right:p.right>S.right,bottom:p.bottom>S.bottom,left:p.left<S.left};return C.top||(s.value.y-=S.top-p.top),C.bottom||(s.value.y-=S.bottom-p.bottom),C.right||(s.value.x-=S.right-p.right),C.left||(s.value.x-=S.left-p.left),y(),C}function w(p){p&&(m.value&&p.subtract(m.value),s.value.set(p),y(),N())}function h(p){u.value&&i.value&&(p.stopPropagation(),p.preventDefault(),w(Ie.fromEvent(p,l.value)))}function b(){var p;u.value&&(u.value=!1,f.value.add(s.value),s.value.reset(),(p=r.value)==null||p.classList.remove("ng-dragging"),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",b))}function _(){!u.value&&l.value&&(u.value=!0,l.value.classList.add("ng-dragging"),document.addEventListener("mousemove",h),document.addEventListener("mouseup",b))}function v(){if(r.value){const p=Ie.getTransformInfo(r.value);f.value.set(p);return}f.value.reset()}function T(p){if(!n.value||p instanceof MouseEvent&&p.button===2)return;const S=p.target||p.srcElement;l.value!==void 0&&S&&!g(S,l.value)||i.value!==!1&&(document.body.click(),p.stopPropagation(),p.preventDefault(),m.value=Ie.fromEvent(p,r.value),v(),_())}function I(p,S,C){if(i.value&&S){if(p)l.value=p;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)l.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const F=S.querySelector(e.dragHandle);F&&(l.value=F)}}r.value=S,c.value=C,l.value?(l.value.classList.add("ng-draggable"),l.value.addEventListener("mousedown",T)):i.value=!1}}return{registerDraggle:I,resetTranslate:v}}function tn(e,t){if(e){const n=r=>{r.key.toLowerCase()===e.toLowerCase()&&t({event:r,key:e})};return document.addEventListener("keydown",n),()=>{document.removeEventListener("keydown",n)}}}function hr(e,t){const n=o.ref(e.enableEsc);let r=null;return n.value?(r=tn("Escape",i=>{t.emit("esc",{event:i.event,type:"esc"})}),{remove:r}):null}function gr(e,t){const n=o.ref(e.enableEnter);let r=null;return n.value?(r=tn("Enter",i=>{t.emit("enter",{event:i.event,type:"enter"})}),{remove:r}):null}const ht=o.defineComponent({name:"FModal",props:fr,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter"],setup(e,t){const n=o.ref(e.width||300),r=o.ref(e.height||200),i=o.ref(e.modelValue),a=o.ref(""),l=o.ref(e.class),c=o.ref(e.fitContent),u=o.ref(e.showHeader),m=o.ref(""),f=o.ref(e.showCloseButton),s=o.ref(e.showMaxButton),d=o.ref(!1),g=o.ref(e.dialogType),y=o.ref(e.src),N=o.ref(""),w=o.ref(e.showButtons),h=o.ref(e.title),b=o.ref(e.resizeable),_=o.ref(e.containment||null),v=o.ref(),T=o.ref(!1);function I(te,ve){i.value=!1,t.emit("update:modelValue",!1),ve!=null&&t.emit(ve?"accept":"cancel"),t.emit("closed",te)}const p=[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:te=>{I(te,!1)}},{name:"accept",text:"确定",class:"btn btn-primary",handle:te=>{I(te,!0)}}],S=o.ref(e.buttons&&e.buttons.length?e.buttons:p),C=o.computed(()=>!!m.value),F=o.computed(()=>!!w.value&&!!S.value),x=o.ref(),B=o.ref(),O=o.ref(!1),{renderResizeBar:M,maximize:V,restore:E,boundingElement:k,resizedEventParam:j,allowDrag:L,unWindowResizeHandle:X}=pr(e),{registerDraggle:ne}=mr(e,t,L);function ee(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function fe(){const te=document.querySelectorAll(".farris-modal").length;(!te||te-1<=0)&&document.body.classList.remove("modal-open"),v.value&&v.value.classList.remove("show")}o.watch(()=>e.title,(te,ve)=>{te!==ve&&(h.value=te)}),o.watch(()=>e.modelValue,(te,ve)=>{te!==ve&&(i.value=te,te||fe()),i.value&&(T.value=ee())}),o.watch(()=>e.showHeader,(te,ve)=>{te!==ve&&(u.value=te)}),o.watch(()=>e.showButtons,(te,ve)=>{te!==ve&&(w.value=te)}),o.watch(()=>j.value,(te,ve)=>{const Ne=te||{},Be=ve||{};JSON.stringify(Ne)!==JSON.stringify(Be)&&t.emit("resize",{newSize:te,oldSize:ve})});const P=o.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),R=o.computed(()=>{const te={modal:!0,"farris-modal":!0,fade:!0};return te["f-modal-fitContent"]=!!c.value,te.show=!!P.value,te}),H=o.computed(()=>{var Ne;const te={"modal-dialog":!0},ve=(Ne=l.value)==null?void 0:Ne.split(" ");return ve==null||ve.reduce((Be,Ve)=>(Be[Ve]=!0,Be),te),te}),U=o.computed(()=>({position:"absolute",top:`${(window.innerHeight-r.value)/2}px`,left:`${(window.innerWidth-n.value)/2}px`,width:`${n.value}px`,height:c.value?"auto":`${r.value}px`})),J=o.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value})),Y=o.computed(()=>{const te={display:u.value?"":"none"};return te["pointer-events"]=L.value?"auto":"none",te}),D=o.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:O.value})),A=o.computed(()=>({"modal-body":!0,"f-utils-flex-column":g.value==="iframe","f-utils-fill":!0}));function re(){return{height:`${e.footerHeight||60}px`}}const Q=o.computed(()=>{const te={textAlgin:N.value},ve=re();return Object.assign(te,ve)});function Z(te){if(te.stopPropagation(),O.value){O.value=!1,E();return}V(),O.value=!0}async function xe(te,ve){te.handle&&await te.handle(ve,te)&&t.emit("closed",ve)}function Fe(te){te.width&&(n.value=te.width),te.height&&(r.value=te.height),te.buttons&&(S.value=te.buttons),te.title&&(h.value=te.title)}const Te=o.computed(()=>{const te={display:"inline-block"};return T.value&&(te["background-color"]="transparent"),te});let He=null,De=null;o.onBeforeMount(()=>{T.value=ee()}),o.onMounted(()=>{B.value&&!_.value&&(_.value=B.value.parentElement,k.value=_.value,ne(x.value,B.value,k.value)),P.value&&document.body.classList.add("modal-open"),He=hr(e,t),De=gr(e,t)}),o.onUnmounted(()=>{X&&X(),He&&He.remove(),De&&De.remove()}),t.expose({modalElementRef:B,updateModalOptions:Fe,close:I,maxDialog:Z});function Ee(){return o.createVNode("ul",null,[d.value&&o.createVNode("li",{class:"f-btn-icon f-bare"},[o.createVNode("span",{class:"f-icon modal_minimize"},null)]),s.value&&o.createVNode("li",{onClick:Z,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[o.createVNode("span",{class:D.value},null)]),f.value&&o.createVNode("li",{class:"f-btn-icon f-bare",onClick:te=>I(te,!1),style:"pointer-events: auto;"},[o.createVNode("span",{class:"f-icon modal_close"},null)])])}function Ge(){return o.createVNode("div",{class:"modal-footer",style:Q.value},[S.value&&S.value.map(te=>o.createVNode("button",{name:te.name,type:"button",class:te.class+(te.iconClass?" btn-icontext":""),onClick:ve=>{xe(te,ve)}},[!!te.iconClass&&o.createVNode("i",{class:te.iconClass},null),te.text]))])}function Ae(){return o.createVNode("div",{ref:x,class:"modal-header",style:Y.value},[o.createVNode("div",{class:"modal-title"},[C.value&&o.createVNode("span",{class:m.value,style:"margin-right: 8px"},null),o.createVNode("span",{class:"modal-title-label"},[h.value])]),o.createVNode("div",{class:"actions"},[Ee()])])}function rt(te){te.stopPropagation()}return()=>o.createVNode(o.Teleport,{to:"body"},{default:()=>[P.value&&o.createVNode(o.Transition,{name:"fade",appear:!0},{default:()=>{var te,ve;return[o.createVNode("div",{class:R.value,style:Te.value,ref:v,onClick:rt},[o.createVNode("div",{id:a.value,class:H.value,style:U.value,ref:B},[o.createVNode("div",{class:J.value},[u.value&&Ae(),o.createVNode("div",{class:A.value},[(ve=(te=t.slots).default)==null?void 0:ve.call(te),g.value==="iframe"&&o.createVNode("iframe",{title:a.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:y.value},null)]),F.value&&Ge()]),!c.value&&b.value&&B.value&&!O.value&&M(B.value)])])]}})]})}});function nn(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function yr(e){const t=document.createElement("div");t.style.display="contents";const n=o.createApp({setup(r,i){o.onUnmounted(()=>{document.body.removeChild(t)});const a=o.ref(),l=o.ref(e.class||""),c=o.ref(!!e.showButtons),u=o.ref(!!e.showHeader),m=o.ref(e.showCloseButton==null?!0:e.showCloseButton),f=o.ref(!0),s=o.ref(e.title||""),d=e.acceptCallback||(()=>{}),g=e.rejectCallback||(()=>{}),y=e.closedCallback||(b=>{}),N=e.resizeHandle||(b=>{}),w=nn(e),h=b=>{f.value=!1,n.unmount(),y(b)};return o.onMounted(()=>{}),i.expose({modalRef:a}),()=>o.createVNode(ht,{ref:a,class:l.value,modelValue:f.value,"onUpdate:modelValue":b=>f.value=b,title:s.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:g,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:h,onResize:N},{default:()=>[w&&w(n)]})}});return document.body.appendChild(t),n.mount(t),n}class on{constructor(t){q(this,"appContext",null);q(this,"modalRef",o.ref());q(this,"activeModalIndex",o.ref(0));q(this,"modalRefs",{});q(this,"isUseEscCloseModal",o.ref(!1));q(this,"activeModalInstance",o.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=t,this.appContext=t?t._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(t,n){const{width:r,height:i}={width:window.innerWidth,height:window.innerHeight};return r<t&&(t=r),i<n&&(n=i),{width:t,height:n}}static show(t){const n=Object.assign({title:"",showButtons:!0,showHeader:!0},t);return yr(n)}close(t){var n,r;t?(r=t.value)==null||r.close():(n=this.getCurrentModal())==null||n.close()}open(t){const n=document.createDocumentFragment();t.showMaxButton&&t.fitContent&&(t.showMaxButton=!1);const r=o.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},t)),i=o.ref(!0),a=r.value.acceptCallback||(()=>{}),l=r.value.rejectCallback||(()=>{}),c=r.value.closedCallback||((v,T)=>{}),u=r.value.resizeHandle||(v=>{});let m;const f=nn(r.value),s=v=>{var I;i.value=!1;const T=(I=v==null?void 0:v.target)==null?void 0:I.classList.contains("modal_close");c(v,this.isUseEscCloseModal.value?"esc":T?"icon":"button")},d=v=>{s(v),m&&o.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],o.render(null,n),m=null,this.modalRef.value=null,this.modalRefs){const T=Object.keys(this.modalRefs).map(I=>Number(I));T.length>0?this.activeModalIndex.value=Math.max(...T):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},g=v=>{var T;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((T=this.activeModalInstance.value)==null||T.close(v==null?void 0:v.event))},{width:y,height:N}=r.value,w=this.adaptToWindow(y||500,N||320);Object.assign(r.value,w);const h=()=>o.createVNode(ht,o.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":v=>i.value=v},r.value,{onAccept:a,onCancel:l,onClosed:d,onResize:u,onEsc:g}),{default:()=>[f&&f(this.app)]});return m=(v=>{const T=o.h(h,v);return T.appContext=this.appContext,o.render(T,n),T})({...r.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:v=>{r.value={...r.value,...v},m&&o.render(o.cloneVNode(m,{...r}),n)},destroy:d,modalRef:this.activeModalInstance,close:this.close}}}const rn=Symbol("FModalService");ht.install=e=>{e.component(ht.name,ht);const t=new on(e);e.provide(rn,t),e.provide("FModalService",t)};function an(e,t){function n(){const r=e.beforeOpen||e.beforeClickButton||null;let i=Promise.resolve(!0);if(r){const a=r(t.value);if(typeof a>"u")return i;typeof a=="boolean"?i=Promise.resolve(a):i=a}return i}return{judgeCanOpen:n}}function vr(e,t,n,r,i){const a=o.ref(e.buttonBehavior),l=o.ref(e.popupOnInput),c=o.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:u}=an(e,i),m=o.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),f=o.inject(rn,null),s=o.ref();async function d(N){if(await u()&&m.value){const w=!!t.slots.default;if(a.value==="Modal"){const h=e.modalOptions,b=f==null?void 0:f.open({...h,render:()=>t.slots.default&&t.slots.default()});s.value=b==null?void 0:b.modalRef}a.value==="Overlay"&&dr.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),w&&a.value==="Popup"&&r.togglePopup(!0),w&&l.value&&r.hidePopup(),t.emit("clickButton",{origin:N,value:e.modelValue})}}function g(N){t.emit("mouseEnterIcon",N)}function y(N){t.emit("mouseLeaveIcon",N)}return{buttonGroupClass:c,onClickButton:d,onMouseEnterButton:g,onMouseLeaveButton:y,modalRef:s}}function br(e,t,n,r){const i=o.ref(),a=o.ref(!1),{judgeCanOpen:l}=an(e,r);function c(){const d=i.value;d&&d.show(n.value)}async function u(d=!1){if(!!t.slots.default){if(!d&&!a.value&&!await l())return;a.value=!a.value,await o.nextTick(),c()}}async function m(d=!1){if(!!t.slots.default){if(!d&&!await l())return;a.value=!0,await o.nextTick(),c()}}function f(){a.