@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 208 kB
JavaScript
(function(R,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../locale/index.umd.js"),require("../common/index.umd.js"),require("../property-panel/index.umd.js"),require("../tags/index.umd.js"),require("lodash-es"),require("../popover/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../button-edit/index.umd.js"),require("../list-view/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../tree-view/index.umd.js"),require("../event-parameter/index.umd.js"),require("../input-group/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../locale/index.umd.js","../common/index.umd.js","../property-panel/index.umd.js","../tags/index.umd.js","lodash-es","../popover/index.umd.js","../dynamic-resolver/index.umd.js","../button-edit/index.umd.js","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../designer-canvas/index.umd.js","../tree-view/index.umd.js","../event-parameter/index.umd.js","../input-group/index.umd.js"],t):(R=typeof globalThis<"u"?globalThis:R||self,t(R["filter-condition-editor"]={},R.Vue,R.locale,R.common,R.propertyPanel,R.FTags,R.LodashES,R.FPopover,R.dynamicResolver,R.FButtonEdit$1,R.FListView,R.FButtonEditDesign,R.designerCanvas,R.FTreeView,R.FEventParameter,R.inputGroup))})(this,function(R,t,U,Y,Vt,Mt,Z,Bt,K,ye,Ot,Et,pe,We,Dt,Pt){"use strict";var mo=Object.defineProperty;var yo=(R,t,U)=>t in R?mo(R,t,{enumerable:!0,configurable:!0,writable:!0,value:U}):R[t]=U;var ee=(R,t,U)=>yo(R,typeof t!="symbol"?t+"":t,U);const It={id:{type:String,default:""},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:{type: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"},limitContentBySpace:{type:Boolean,default:!1},beforeClosePopup:{type:Function,default:null}},jt={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},Rt=t.defineComponent({name:"FOverlay",props:jt,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),l=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function i(u){n.emit("click"),u.preventDefault(),u.stopPropagation()}t.computed(()=>{const u=o.value;if(u){const d=u.getBoundingClientRect(),{left:m,top:b,height:f}=d;return{left:m,top:b+f}}return a.value});const s=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var u,d;return[t.createVNode("div",{class:"overlay-container",onClick:m=>i(m),style:l.value},[t.createVNode("div",{style:s.value},[(d=(u=n.slots).default)==null?void 0:d.call(u)])])]}})}});function Lt(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function $t(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),l=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const i=Lt(e);return()=>t.createVNode(Rt,{"popup-content-position":e.popupPosition,host:e.host,onClick:l,backgroundColor:e.backgroundColor},{default:()=>[i&&i()]})}}),document.body.appendChild(n),a.mount(n),a}class zt{static show(n){return $t(n)}}const At={allowClickMaskToClose:{type:Boolean,default:!1},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},maskClass:{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},mask:{type:Boolean,default:!0},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},openedCallback:{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},host:{type:Object,default:"body"},isMessager:{type:Boolean,default:!1},maximized:{type:Boolean,default:!1}};class W{constructor(n,a){this.x=n,this.y=a}static getTransformInfo(n){const o=window.getComputedStyle(n).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(o.length>=6){const l=parseInt(o[4],10),i=parseInt(o[5],10);return{x:l,y:i}}return{x:0,y:0}}static fromEvent(n,a=null){if(this.isMouseEvent(n))return new W(n.clientX,n.clientY);if(a===null||n.changedTouches.length===1)return new W(n.changedTouches[0].clientX,n.changedTouches[0].clientY);for(let o=0;o<n.changedTouches.length;o++)if(n.changedTouches[o].target===a)return new W(n.changedTouches[o].clientX,n.changedTouches[o].clientY)}static isMouseEvent(n){return Object.prototype.toString.apply(n).indexOf("MouseEvent")===8}static isIPosition(n){return!!n&&"x"in n&&"y"in n}static getCurrent(n){const a=new W(0,0);if(window){const o=window.getComputedStyle(n);if(o){const l=parseInt(o.getPropertyValue("left"),10),i=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(l)?0:l,a.y=isNaN(i)?0:i}return a}return null}static copy(n){return new W(0,0).set(n)}get value(){return{x:this.x,y:this.y}}add(n){return this.x+=n.x,this.y+=n.y,this}subtract(n){return this.x-=n.x,this.y-=n.y,this}multiply(n){this.x*=n,this.y*=n}divide(n){this.x/=n,this.y/=n}reset(){return this.x=0,this.y=0,this}set(n){return this.x=n.x,this.y=n.y,this}}class ae{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new ae(0,0);if(window){const o=window.getComputedStyle(n);return o&&(a.width=parseInt(o.getPropertyValue("width"),10),a.height=parseInt(o.getPropertyValue("height"),10)),a}return null}static copy(n){return new ae(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function Ht(e,n){const a=t.ref(),o=t.ref(),l=t.ref(),i=t.ref(),s=t.ref(),u=t.ref(),d=t.ref(),m=t.ref(),b=t.ref(),f=t.ref(),y=t.ref(),x=t.ref(e.resizeable),v=t.ref(),C=t.ref(e.draggable),r=t.ref(!1);function c(){const O=o.value||document.body,B=window.getComputedStyle(O);if(!B||!a.value)return;const z=W.getTransformInfo(a.value),A={};d.value&&(A.deltaL=a.value.offsetLeft-d.value.x,A.deltaT=a.value.offsetTop-d.value.y);const H=B.getPropertyValue("position");A.width=O.clientWidth,A.height=O.clientHeight,A.pr=parseInt(B.getPropertyValue("padding-right"),10),A.pb=parseInt(B.getPropertyValue("padding-bottom"),10),A.position=B.getPropertyValue("position"),H==="static"&&(O.style.position="relative"),A.translateX=z.x,A.translateY=z.y,f.value=A}function h(O){if(a.value){i.value=ae.getCurrent(a.value),s.value=W.getCurrent(a.value),u.value=i.value?ae.copy(i.value):null,d.value=s.value?W.copy(s.value):null,c();const B=O.target.getAttribute("type")||"";m.value={n:!!B.match(/n/),s:!!B.match(/s/),w:!!B.match(/w/),e:!!B.match(/e/)}}}function k(){var O,B,z,A;if(a.value){const H=a.value;m.value&&((m.value.n||m.value.s)&&((O=u.value)!=null&&O.height)&&(H.style.height=u.value.height+"px"),(m.value.w||m.value.e)&&((B=u.value)!=null&&B.width)&&(H.style.width=u.value.width+"px"),d.value&&((z=d.value)!=null&&z.x&&(H.style.left=d.value.x+"px"),(A=d.value)!=null&&A.y&&(H.style.top=d.value.y+"px")))}}function T(){const O=e.minHeight?e.minHeight:1,B=e.minWidth?e.minWidth:1;u.value&&d.value&&m.value&&i.value&&(u.value.height<O&&(u.value.height=O,m.value.n&&s.value&&(d.value.y=s.value.y+(i.value.height-O))),u.value.width<B&&(u.value.width=B,m.value.w&&s.value&&(d.value.x=s.value.x+(i.value.width-B))),e.maxHeight&&u.value.height>e.maxHeight&&(u.value.height=e.maxHeight,s.value&&m.value.n&&(d.value.y=s.value.y+(i.value.height-e.maxHeight))),e.maxWidth&&u.value.width>e.maxWidth&&(u.value.width=e.maxWidth,m.value.w&&s.value&&(d.value.x=s.value.x+(i.value.width-e.maxWidth))))}function g(){if(o.value){const O=f.value;if(d.value&&u.value&&m.value&&i.value){const B=O.width-O.pr-O.deltaL-O.translateX-d.value.x,z=O.height-O.pb-O.deltaT-O.translateY-d.value.y;m.value.n&&d.value.y+O.translateY<0&&s.value&&(d.value.y=-O.translateY,u.value.height=i.value.height+s.value.y+O.translateY),m.value.w&&d.value.x+O.translateX<0&&s.value&&(d.value.x=-O.translateX,u.value.width=i.value.width+s.value.x+O.translateX),u.value.width>B&&(u.value.width=B),u.value.height>z&&(u.value.height=z)}}}function p(O){if(!l.value||!i.value||!s.value||!m.value)return;O.subtract(l.value);const B=O.x,z=O.y;m.value.n?(d.value.y=s.value.y+z,u.value.height=i.value.height-z):m.value.s&&(u.value.height=i.value.height+z),m.value.e?u.value.width=i.value.width+B:m.value.w&&(u.value.width=i.value.width-B,d.value.x=s.value.x+B),g(),T(),k()}function w(O){if(!b.value)return;const B=W.fromEvent(O);B&&p(B)}function S(){if(a.value){const{width:O,height:B,x:z,y:A}=a.value.getBoundingClientRect(),H=W.getTransformInfo(a.value);return{size:{width:O,height:B},position:{x:z-H.x,y:A-H.y}}}return null}function P(O){if(a.value){const B=S();y.value=B}l.value=void 0,i.value=null,s.value=null,u.value=null,d.value=null,m.value=null,b.value=null,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",P)}function j(){document.addEventListener("mousemove",w),document.addEventListener("mouseup",P)}function D(O){O instanceof MouseEvent&&O.button===2||C.value&&(document.body.click(),O.stopPropagation(),O.preventDefault(),l.value=W.fromEvent(O),b.value=O.target,h(O),j())}function M(O){return a.value=O,x.value&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:B=>D(B)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:B=>D(B)},null)])}function F(O=!0){document.body.click();const B=o.value||document.body,z=ae.getCurrent(B),A=a.value;O&&A&&(v.value=S(),v.value.transform=A.style.transform),z&&A&&(u.value=z,u.value.height-=14,u.value.width-=14,A.style.height=u.value.height+"px",A.style.width=u.value.width+"px",A.style.left="7px",A.style.top="7px",A.style.transform="",y.value={size:u.value,position:{x:0,y:0}},C.value=!1,r.value=!0)}function V(){var O,B;if(document.body.click(),v.value){const z={width:v.value.size.width||0,height:v.value.size.height||0},A={x:(window.innerWidth-z.width)/2,y:(window.innerHeight-z.height)/2};(O=u.value)==null||O.set(z),(B=d.value)==null||B.set(A);const H=a.value;H.style.height=z.height+"px",H.style.width=z.width+"px",H.style.left=`${A.x}px`,H.style.top=`${A.y}px`,H.style.transform="",y.value={size:z,position:A},C.value=e.draggable,r.value=!1}}function E(){if(a.value){const O=ae.getCurrent(a.value);if(O){const{width:B,height:z}=O;a.value.style.left=`${(window.innerWidth-B)/2}px`,a.value.style.top=`${(window.innerHeight-z)/2}px`,a.value.style.transform=""}}}function I(){const O=()=>{r.value?F(!1):E(),document.body.click()};return window.addEventListener("resize",O),()=>{window.removeEventListener("resize",O)}}const $=I();return{renderResizeBar:M,boundingElement:o,resizedEventParam:y,maximize:F,restore:V,allowDrag:C,isMaximized:r,unWindowResizeHandle:$,moveToCenter:E}}function Wt(e,n,a){const o=t.ref(),l=t.ref(e.draggable),i=t.ref(e.lockAxis),s=t.ref(),u=t.ref(),d=t.ref(!1),m=t.ref(new W(0,0)),b=t.ref(new W(0,0)),f=t.ref(new W(0,0)),y=t.ref(new W(0,0));t.watch(()=>a.value,w=>{s.value.style.cursor=w?"move":"default"});function x(w,S){if(S.tagName==="BUTTON")return!1;if(S===w)return!0;for(const P in S.children)if(Object.prototype.hasOwnProperty.call(S.children,P)&&x(w,S.children[P]))return!0;return!1}function v(){var j,D;let w=f.value.x+b.value.x,S=f.value.y+b.value.y;i.value==="x"?(w=((j=m.value)==null?void 0:j.x)||0,f.value.x=0):i.value==="y"&&(S=((D=m.value)==null?void 0:D.y)||0,f.value.y=0);const P=`translate3d(${Math.round(w)}px, ${Math.round(S)}px, 0px)`;o.value&&(o.value.style.transform=P),y.value.x=w,y.value.y=S}function C(){if(!u.value||!o.value)return null;const w=u.value.getBoundingClientRect(),S=o.value.getBoundingClientRect(),P={top:w.top<S.top,right:w.right>S.right,bottom:w.bottom>S.bottom,left:w.left<S.left};return P.top||(f.value.y-=S.top-w.top),P.bottom||(f.value.y-=S.bottom-w.bottom),P.right||(f.value.x-=S.right-w.right),P.left||(f.value.x-=S.left-w.left),v(),P}function r(w){w&&(m.value&&w.subtract(m.value),f.value.set(w),v(),C())}function c(w){d.value&&l.value&&(w.stopPropagation(),w.preventDefault(),r(W.fromEvent(w,s.value)))}function h(){var w;d.value&&(d.value=!1,b.value.add(f.value),f.value.reset(),(w=o.value)==null||w.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",h))}function k(){!d.value&&s.value&&(d.value=!0,s.value.classList.add("ng-dragging"),document.addEventListener("mousemove",c),document.addEventListener("mouseup",h))}function T(){if(o.value){const w=W.getTransformInfo(o.value);b.value.set(w);return}b.value.reset()}function g(w){if(!a.value||w instanceof MouseEvent&&w.button===2)return;const S=w.target||w.srcElement;s.value!==void 0&&S&&!x(S,s.value)||l.value!==!1&&(document.body.click(),w.stopPropagation(),w.preventDefault(),m.value=W.fromEvent(w,o.value),T(),k())}function p(w,S,P){if(l.value&&S){if(w)s.value=w;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)s.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const j=S.querySelector(e.dragHandle);j&&(s.value=j)}}o.value=S,u.value=P,s.value?(s.value.classList.add("ng-draggable"),s.value.addEventListener("mousedown",g)):l.value=!1}}return{registerDraggle:p,resetTranslate:T}}function qe(e,n){if(e){const a=o=>{o.key.toLowerCase()===e.toLowerCase()&&n({event:o,key:e})};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}}}function qt(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=qe("Escape",l=>{n.emit("esc",{event:l.event,type:"esc"})}),{remove:o}):null}function Ut(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=qe("Enter",l=>{n.emit("enter",{event:l.event,type:"enter"})}),{remove:o}):null}const ce=t.defineComponent({name:"FModal",props:At,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove"],setup(e,n){const a=t.ref(e.width||300),o=t.ref(e.height||200),l=t.ref(e.modelValue),i=t.ref(""),s=t.ref(e.class),u=t.ref(e.fitContent),d=t.ref(e.showHeader),m=t.ref(""),b=t.ref(e.showCloseButton),f=t.ref(e.showMaxButton),y=t.ref(!1),x=t.ref(e.dialogType),v=t.ref(e.src),C=t.ref(""),r=t.ref(e.showButtons),c=t.ref(e.title),h=t.ref(e.containment||null),k=t.ref();c.value==="错误提示"&&(c.value=U.LocaleService.getLocaleValue("messageBox.errorTitle"));const T=t.ref(!1);function g(N,L){const q=L?"accept":"cancel";Promise.resolve().then(()=>{var G;return(G=e.beforeClose)==null?void 0:G.call(e,{closeType:q})}).then(G=>{G&&(l.value=!1,n.emit("update:modelValue",!1),L!=null&&n.emit(L?"accept":"cancel"),n.emit("closed",N))})}const p=[{name:"cancel",text:U.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:N=>{g(N,!1)}},{name:"accept",text:U.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:N=>{g(N,!0)}}],w=t.ref(e.buttons&&e.buttons.length?e.buttons:p),S=t.computed(()=>!!m.value),P=t.computed(()=>!!r.value&&!!w.value),j=t.ref(),D=t.ref(),M=t.ref(e.maximized||!1),{renderResizeBar:F,maximize:V,restore:E,boundingElement:I,resizedEventParam:$,allowDrag:O,unWindowResizeHandle:B,moveToCenter:z}=Ht(e),{registerDraggle:A}=Wt(e,n,O);function H(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function Le(){const N=document.querySelectorAll(".farris-modal").length;(!N||N-1<=0)&&document.body.classList.remove("modal-open"),k.value&&k.value.classList.remove("show")}t.watch(()=>e.title,(N,L)=>{N!==L&&(c.value=N)}),t.watch(()=>e.modelValue,(N,L)=>{N!==L&&(l.value=N,l.value&&e.draggable&&t.nextTick(()=>{D.value&&!h.value&&(h.value=D.value.parentElement,I.value=h.value,A(j.value,D.value,I.value),z())}),N||(h.value&&(h.value=null),Le())),l.value?T.value=H():(M.value=!1,O.value=e.draggable)}),t.watch(()=>e.showHeader,(N,L)=>{N!==L&&(d.value=N)}),t.watch(()=>e.showButtons,(N,L)=>{N!==L&&(r.value=N)}),t.watch(()=>$.value,(N,L)=>{const q=N||{},G=L||{};JSON.stringify(q)!==JSON.stringify(G)&&n.emit("resize",{newSize:N,oldSize:L,isMaximized:M.value})}),t.watch([()=>e.width,()=>e.height],(N,L)=>{(N[0]!==L[0]||N[1]!==L[1])&&(a.value=N[0]||500,o.value=N[1]||600)}),t.watch(()=>e.class,(N,L)=>{s.value=N});const se=t.computed(()=>(l.value&&document.body.classList.add("modal-open"),l.value)),$e=t.computed(()=>{var q;const N={modal:!0,"farris-modal":!0,fade:!0};N["f-modal-fitContent"]=!!u.value,N.show=!!se.value;const L=(q=e.maskClass)==null?void 0:q.split(" ");return L==null||L.reduce((G,J)=>(G[J]=!0,G),N),N}),Xa=t.computed(()=>{var q;const N={"modal-dialog":!0},L=(q=s.value)==null?void 0:q.split(" ");return L==null||L.reduce((G,J)=>(G[J]=!0,G),N),N}),St=()=>Y.isMobilePhone()&&!e.isMessager,Ka=t.computed(()=>{const N=document.documentElement.clientWidth,L=document.documentElement.clientHeight;if(M.value)return{position:"fixed",top:"0px",left:"0px",width:"100vw",height:"100vh",margin:"0"};const q=Math.min(a.value,N),G=u.value?"auto":`${Math.min(o.value,L-10)}px`,J={position:"absolute",top:`${(window.innerHeight-parseInt(G==="auto"?"0":G))/2}px`,left:`${(window.innerWidth-q)/2}px`,width:`${q}px`,height:G};return St()&&(J.top="0px",J.left="0px",J.width=`${window.innerWidth}px`,J.height=`${window.innerHeight}px`),e.mask||(J.pointerEvents="auto"),J}),Tt=t.ref(Y.getMaxZIndex()||1050),_a=t.computed(()=>{const N={display:"block",overflow:"hidden"};return e.mask||(N.pointerEvents="none",N.backgroundColor="transparent"),T.value&&(N.backgroundColor="transparent"),N.zIndex=Tt.value,N}),Ja=t.computed(()=>({"modal-content":!0,"modal-content-has-header":d.value,"is-mobile":St()})),Za=t.computed(()=>{const N={display:d.value?"":"none"};return N["pointer-events"]=O.value?"auto":"none",N}),Qa=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:M.value})),eo=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":x.value==="iframe","f-utils-fill":!0}));function to(){return{height:`${e.footerHeight||60}px`}}const no=t.computed(()=>{const N={textAlgin:C.value},L=to();return Object.assign(N,L)});function ze(N){if(N==null||N.stopPropagation(),M.value){M.value=!1,E();return}V(),M.value=!0}async function ao(N,L){N.handle&&await N.handle(L,N)&&n.emit("closed",L)}function oo(N){N.width&&(a.value=N.width),N.height&&(o.value=N.height),N.buttons&&(w.value=N.buttons),N.title&&(c.value=N.title)}let Ae=null,He=null;t.onBeforeMount(()=>{T.value=H()}),t.onMounted(()=>{D.value&&!h.value&&(h.value=D.value.parentElement,I.value=h.value,A(j.value,D.value,I.value)),se.value&&document.body.classList.add("modal-open"),Ae=qt(e,n),He=Ut(e,n)}),t.onUnmounted(()=>{B&&B(),Ae&&Ae.remove(),He&&He.remove()}),n.expose({modalElementRef:D,updateModalOptions:oo,close:g,maxDialog:ze,isMaximized:M,disableButtons:(N,L=!0)=>{w.value.forEach(q=>{q.name&&N.includes(q.name)&&(q.disabled=L)})}});function lo(){return t.createVNode("ul",null,[y.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),f.value&&t.createVNode("li",{onClick:ze,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:Qa.value},null)]),b.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:N=>g(N,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function io(){return t.createVNode("div",{class:"modal-footer",style:no.value},[w.value&&w.value.map(N=>{const L=t.ref(N.disabled);return t.createVNode("button",{name:N.name,style:N.styles,type:"button",disabled:L.value,class:N.class+(N.iconClass?" btn-icontext":""),onClick:q=>{ao(N,q)}},[!!N.iconClass&&t.createVNode("i",{class:N.iconClass},null),N.text])})])}function Nt(N){f.value&&ze()}function ro(){return t.createVNode(t.Fragment,null,[M.value&&t.createVNode("div",{class:"modal-header",style:"position: absolute;background: transparent;height: 45px;width: 100%;",onDblclick:N=>Nt()},null),t.createVNode("div",{ref:j,class:"modal-header",style:Za.value,onDblclick:N=>Nt()},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[S.value&&t.createVNode("span",{class:m.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[c.value])]),t.createVNode("div",{class:"actions"},[lo()])])])}function so(){return n.slots.footerTemplate?n.slots.footerTemplate():P.value&&io()}function co(N){if(N.stopPropagation(),e.allowClickMaskToClose){if(N.target!==k.value)return;g(N,!1)}}function uo(){var N,L;return t.createVNode("div",{id:i.value,class:Xa.value,style:Ka.value,ref:D},[t.createVNode("div",{class:Ja.value},[d.value&&ro(),t.createVNode("div",{class:eo.value},[(L=(N=n.slots).default)==null?void 0:L.call(N),x.value==="iframe"&&t.createVNode("iframe",{title:i.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:v.value},null)]),so()]),!u.value&&D.value&&!M.value&&F(D.value)])}function fo(N){return N||"body"}return t.watchEffect(()=>{se.value&&(Tt.value=Y.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:fo(e.host)},{default:()=>[se.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:k,class:$e.value,style:_a.value,onClick:co},[uo()])]})]})}});function Ue(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Gt(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,l){t.onUnmounted(()=>{document.body.removeChild(n)});const i=t.ref(),s=t.ref(e.class||""),u=t.ref(!!e.showButtons),d=t.ref(!!e.showHeader),m=t.ref(e.showCloseButton==null?!0:e.showCloseButton),b=t.ref(!0),f=t.ref(e.title||""),y=e.acceptCallback||(()=>{}),x=e.rejectCallback||(()=>{}),v=e.closedCallback||(k=>{}),C=e.resizeHandle||(k=>{}),r=e.stopMoveHandle||(k=>{}),c=Ue(e),h=k=>{b.value=!1,a.unmount(),v(k)};return t.onMounted(()=>{}),l.expose({modalRef:i}),()=>t.createVNode(ce,{ref:i,class:s.value,modelValue:b.value,"onUpdate:modelValue":k=>b.value=k,title:f.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":d.value,"show-buttons":u.value,"show-close-button":m.value,"show-max-button":!1,onAccept:y,onCancel:x,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:h,onResize:C,onStopMove:r},{default:()=>[c&&c(a)]})}});return document.body.appendChild(n),a.use(U.LocaleService.i18n),a.mount(n),a}class Ge{constructor(n){ee(this,"appContext",null);ee(this,"modalRef",t.ref());ee(this,"activeModalIndex",t.ref(0));ee(this,"modalRefs",{});ee(this,"isUseEscCloseModal",t.ref(!1));this.app=n,this.appContext=n?n._context:null}getCurrentModal(){return this.modalRefs[this.activeModalIndex.value]}adaptToWindow(n,a){const{width:o,height:l}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),l<a&&(a=l-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return Gt(a)}close(n){var a,o;n?(o=n.value)==null||o.close():(a=this.getCurrentModal())==null||a.close()}open(n){const a=document.createDocumentFragment();n.showMaxButton&&n.fitContent&&(n.showMaxButton=!1);const o=t.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0,maximized:!1},n)),l=t.ref(!0),i=o.value.acceptCallback||(()=>{}),s=o.value.rejectCallback||(()=>{}),u=o.value.closedCallback||((S,P)=>{}),d=o.value.openedCallback||(S=>{}),m=o.value.resizeHandle||(S=>{}),b=n.stopMoveHandle||(S=>{});let f;const y=Ue(o.value),x=S=>{var j;l.value=!1;const P=(j=S==null?void 0:S.target)==null?void 0:j.classList.contains("modal_close");u(S,this.isUseEscCloseModal.value?"esc":P?"icon":"button")},v=S=>{x(S),f&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),f=null,this.modalRef.value=null,this.modalRefs){const P=Object.keys(this.modalRefs).map(j=>Number(j));P.length>0?this.activeModalIndex.value=Math.max(...P):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},C=S=>{var P;this.isUseEscCloseModal.value=!0,(P=this.getCurrentModal())==null||P.close(S==null?void 0:S.event)},{width:r,height:c}=o.value,h=this.adaptToWindow(r||500,c||320);Object.assign(o.value,h);const k=t.ref(),T=()=>t.createVNode(ce,t.mergeProps({ref:k,modelValue:l.value,"onUpdate:modelValue":S=>l.value=S},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:i,onCancel:s,onClosed:v,onResize:m,onEsc:C,onStopMove:b,maximized:o.value.maximized}),{default:()=>[y&&y(this.app)]});f=(S=>{const P=t.h(T,S);return P.appContext=this.appContext,t.render(P,a),P})({...o.value}),this.activeModalIndex.value++;const p=this.activeModalIndex.value;this.modalRefs[p]=k.value;const w=S=>{o.value={...o.value,...S},f&&t.render(t.cloneVNode(f,{...o}),a)};return t.nextTick(()=>{this.modalRefs[p]=k.value,this.modalRef.value=k.value,d(new Event("opened"))}),{update:w,destroy:v,modalRef:this.modalRef,close:()=>{this.modalRefs[p]&&this.modalRefs[p].close()},disableButtons:(S,P=!0)=>{this.modalRefs[p]&&this.modalRefs[p].disableButtons(S,P)}}}}const ue=Symbol("FModalService");ce.install=e=>{e.component(ce.name,ce);const n=new Ge(e);e.provide(ue,n),e.provide("FModalService",n)};function Ye(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let l=Promise.resolve(!0);if(o){const i=o(n.value);if(typeof i>"u")return l;typeof i=="boolean"?l=Promise.resolve(i):l=i}return l}return{judgeCanOpen:a}}function Yt(e,n,a,o,l){const i=t.ref(e.buttonBehavior),s=t.ref(e.popupOnInput),u=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:d}=Ye(e,l),m=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),b=t.inject(ue,null),f=t.ref();async function y(C){if(await d()&&m.value){const r=!!n.slots.default;if(i.value==="Modal"){const c=e.modalOptions,h=b==null?void 0:b.open({...c,render:()=>n.slots.default&&n.slots.default()});f.value=h==null?void 0:h.modalRef}i.value==="Overlay"&&zt.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),r&&i.value==="Popup"&&o.togglePopup(!0),r&&s.value&&o.hidePopup(),n.emit("clickButton",{origin:C,value:e.modelValue})}}function x(C){n.emit("mouseEnterIcon",C)}function v(C){n.emit("mouseLeaveIcon",C)}return{buttonGroupClass:u,onClickButton:y,onMouseEnterButton:x,onMouseLeaveButton:v,modalRef:f}}function Xt(e,n,a,o,l,i){const s=t.ref(!1),u=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:d,hasClearClass:m}=i;function b(v){s.value=v,m.value=v}t.watch(l,()=>{b(!!l.value)});function f(v){const C=!e.readonly&&!e.disable&&e.editable,r=!e.editable;v.stopPropagation(),(C||r)&&(d(""),l.value="",b(!s.value),n.emit("clear"))}function y(v){if(u.value){if(!a.value){b(!1);return}!e.disable&&!e.readonly&&b(!0)}}function x(v){u.value&&b(!1)}return{enableClearButton:u,showClearButton:s,onClearValue:f,onMouseEnterTextBox:y,onMouseLeaveTextBox:x}}function Kt(e,n,a,o,l){const i=t.computed(()=>e.popupOnInput),s=t.computed(()=>e.popupOnFocus),{shouldPopupContent:u,closeAllPopover:d}=l,m=t.ref(!1),b=t.computed(()=>e.enableTitle?a.value:""),f=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),y=t.computed(()=>e.readonly||!e.editable),x=t.ref(!1),v=t.computed(()=>!e.disable&&x.value),C=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),r=t.computed(()=>({"input-group":!0,"f-state-disabled":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly,"f-state-focus":v.value,"input-group--has-clear":e.enableClear&&m.value}));function c(D,M=!0){a.value=D,M&&(n.emit("change",D),n.emit("update:modelValue",D))}function h(D){u.value=!1,c(D,!0)}t.watch(()=>e.modelValue,D=>{a.value=D});function k(D){x.value=!1,n.emit("blur",D),D.stopPropagation()}function T(D){n.emit("click",D),d(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&l.togglePopup()}function g(D){!e.disable&&!e.readonly&&(x.value=!0,y.value||(n.emit("focus",D),s.value&&!u.value&&l.popup()))}function p(D){n.emit("input",D);const M=D.target.value;o.value=M,a.value!==M&&c(M,e.updateOn==="change"),i.value&&!u.value&&l.popup()}function w(D){D.target.tagName!=="INPUT"&&D.preventDefault(),D.stopPropagation()}function S(D){n.emit("keydown",D)}function P(D){D.key==="Enter"&&(i.value||s.value)&&l.hidePopup(),n.emit("keyup",D)}function j(D){const M=D.target.value;D.stopPropagation(),c(M)}return{hasFocusedTextBox:v,isTextBoxReadonly:y,textBoxClass:C,textBoxPlaceholder:f,textBoxTitle:b,inputGroupClass:r,hasClearClass:m,changeTextBoxValue:c,commitValue:h,onBlurTextBox:k,onClickTextBox:T,onFocusTextBox:g,onInput:p,onKeyDownTextBox:S,onKeyUpTextBox:P,onMouseDownTextBox:w,onTextBoxValueChange:j}}const oe="FarrisVue_PopoverInstancesKey";function _t(e,n,a,o){const l=t.ref(),i=t.ref(!1),{judgeCanOpen:s}=Ye(e,o);t.watch(()=>l.value,(x,v)=>{window[oe]=window[oe]||new WeakMap,x?window[oe].set(a.value,x):window[oe].delete(a.value)});function u(){if(window[oe]){const x=window[oe];document.querySelectorAll(".f-button-edit,.v-popover").forEach(v=>{const C=x.get(v);C&&v!==a.value&&!a.value.closest(".popover-fitcontent")&&C.hide()})}}function d(){const x=l.value;x&&x.show(a.value)}async function m(x=!1){if(!!n.slots.default){if(!x&&!i.value&&!await s())return;i.value=!i.value,i.value&&(await t.nextTick(),d())}}async function b(x=!1){if(!!n.slots.default){if(!x&&!await s())return;i.value=!0,await t.nextTick(),d()}}function f(){i.value=!1}function y(){i.value=!0,t.nextTick(()=>{d()})}return{hidePopup:f,showPopup:y,popup:b,shouldPopupContent:i,togglePopup:m,popoverRef:l,closeAllPopover:u}}function Jt(e,n,a){const o=t.ref(),{isTextBoxReadonly:l,textBoxClass:i,textBoxPlaceholder:s,textBoxTitle:u,onBlurTextBox:d,onClickTextBox:m,onFocusTextBox:b,onInput:f,onKeyDownTextBox:y,onKeyUpTextBox:x,onMouseDownTextBox:v,onTextBoxValueChange:C}=a,r=t.ref(e.id),{uuid:c}=Y.useGuid(),h=t.computed(()=>({}));t.onMounted(()=>{var w,S;e.selectOnCreated&&((w=o.value)==null||w.select()),e.focusOnCreated&&((S=o.value)==null||S.focus({preventScroll:!0})),r.value||(r.value="button-edit_"+c(8)),r.value=r.value+"-textbox"});const k=t.ref(!1),T=w=>{w.preventDefault(),k.value=!0},g=w=>{w.preventDefault(),k.value=!1,f(w)};function p(w){k.value||f(w)}return()=>t.createVNode("input",{id:e.id?e.id+"-textbox":void 0,ref:o,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:i.value,style:h.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:s.value,readonly:l.value,tabindex:e.tabIndex,title:u.value,type:e.inputType,value:n.value,onBlur:d,onChange:C,onClick:m,onFocus:b,onInput:p,onKeydown:y,onKeyup:x,onMousedown:v,onCompositionend:g,onCompositionstart:T},null)}function Zt(e,n,a){const o=t.ref(e.separator),l=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:i,onFocusTextBox:s,onBlurTextBox:u,onClickTextBox:d,textBoxPlaceholder:m}=a,b=t.computed(()=>n.value?n.value.split(o.value).map(v=>({name:v,selectable:!0})):[]);function f(v){i(v.map(C=>C.name).join(o.value),!0)}t.watch(()=>e.separator,v=>{o.value=v});const y=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([v,C],[r,c])=>{y.value=!v&&!C});function x(v){d(v)}return()=>t.createVNode(Mt,{tabindex:e.tabIndex,onFocus:s,onBlur:u,id:`${e.id}-tag-editor`,class:"form-control",placeholder:m.value,data:b.value,showClose:!l.value,showInput:!0,disable:l.value,onChange:f,onClick:x},null)}function Qt(e,n,a,o){const{buttonGroupClass:l,onClickButton:i,onMouseEnterButton:s,onMouseLeaveButton:u}=a,{enableClearButton:d,showClearButton:m,onClearValue:b}=o,f=t.ref(),y=Z.debounce(v=>{i(v)},e.buttonBehavior==="Modal"?0:200),x=()=>{n.emit("beforeClearValue")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:l.value},[d.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:b,onMousedown:x},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,m.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:y,onMouseenter:s,onMouseleave:u},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:f,onClick:v=>y(v),onMouseenter:s,onMouseleave:u},null):null]),buttonHandleElement:f}}function en(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:l,popoverRef:i}=a,s=()=>{n.emit("shown")};return()=>t.createVNode(Bt,{id:`${e.id}-popover`,ref:i,placement:e.placement,host:e.popupHost,"keep-width-with-reference":e.keepWidthWithReference,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:o.value,class:e.popupClass,offsetX:e.popupOffsetX,onHidden:l,onShown:s,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var u,d;return[(d=(u=n.slots).default)==null?void 0:d.call(u)]}})}const he=t.defineComponent({name:"FButtonEdit",props:It,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue","shown"],setup(e,n){const a=t.ref(),o=t.ref(e.customClass),l=t.ref(e.modelValue),i=_t(e,n,a,l),{shouldPopupContent:s,hidePopup:u,showPopup:d,togglePopup:m}=i,b=Yt(e,n,a,i,l),f=t.ref(""),y=Kt(e,n,l,f,i),{hasFocusedTextBox:x,commitValue:v,inputGroupClass:C}=y,r=Xt(e,n,l,x,f,y),{onMouseEnterTextBox:c,onMouseLeaveTextBox:h}=r,k=t.ref(!1),T=t.computed(()=>{const I={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return o.value&&o.value.split(" ").reduce(($,O)=>($[O]=!0,$),I),I}),g=t.computed(()=>({overflow:e.wrapText?"hidden":""})),p=t.computed(()=>({}));function w(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let I=0;const $=Array.from(a.value.querySelectorAll(".farris-tag-item"));return $&&$.length&&(I=$.map(O=>O.offsetTop).filter(O=>O>20).length),I}const S=t.ref(w());t.onUpdated(()=>{S.value=w()});function P(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[Zt(e,l,y)(),!!S.value&&t.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[t.createVNode("span",{class:"multi--more-text"},[t.createTextVNode("+"),S.value])])]):Jt(e,l,y)}let j=P();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{j=P()});const{renderButtonGroup:D,buttonHandleElement:M}=Qt(e,n,b,r),F=en(e,n,i),V=t.ref(s.value),E={displayText:f,commitValue:v,elementRef:a,hidePopup:u,showPopup:d,popoverRef:i.popoverRef,shouldPopupContent:s,togglePopup:m,openDialog:()=>{M.value&&e.buttonBehavior==="Modal"&&M.value.click()},getModal:()=>{var I;return e.buttonBehavior==="Modal"?(I=b.modalRef.value)==null?void 0:I.value:null},getTextbox:()=>{var I;return(I=a.value)==null?void 0:I.querySelector("input")},forceClosePopup:()=>{V.value=!1,k.value=!0,s.value=!1}};return t.onMounted(()=>{a.value.componentInstance=E,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var I;window.onresize=null,(I=window[oe])==null||I.delete(a.value)}),n.expose(E),t.watch(()=>s.value,async(I,$)=>{if(k.value){V.value=I,k.value=!1;return}if(!I&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const O=await e.beforeClosePopup();V.value=!O,(!O||e.readonly)&&(s.value=!0)}catch(O){console.error("Error in beforeClosePopup:",O),V.value=$,s.value=$}return}V.value=I}),()=>{var I,$;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:T.value,id:e.id?e.id:void 0,style:g.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:C.value,style:p.value,onMouseenter:c,onMouseleave:h},[($=(I=n.slots).precontent)==null?void 0:$.call(I),j(),D()])]),V.value&&F()])}}}),tn={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/field-selector.schema.json",title:"field-selector",description:"A Farris Input Component",type:"object",properties:{disabled:{description:"",type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},modelValue:{description:"",type:"string",default:""},repositoryToken:{description:"",type:"object",default:null},fields:{description:"",type:"array",default:null},editorParams:{type:"object",default:null},displayText:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},beforeOpen:{description:"",type:"function",default:null},onSubmitModal:{description:"",type:"function",default:null},editorType:{description:"",type:"string",default:"filter"},enableExpression:{description:"",type:"boolean",default:!1},expressionOptions:{description:"",type:"object",default:null},formContextData:{description:"",type:"object",default:{}},singleValue:{description:"",type:"boolean",default:!0},idField:{description:"",type:"string",default:"id"},textField:{type:"string",default:""},valueField:{type:"string",default:""},editable:{type:"boolean",default:!0},enableTitle:{type:"boolean",default:!0}}},Se={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},displayText:{type:String,default:""},enableExpression:{type:Boolean,default:!1},modelValue:{type:String,default:""},insertType:{type:String,default:"below"},fields:{type:Array,default:[]},repositoryToken:{type:Object,default:null},editorParams:{type:Object,default:null},onSubmitModal:{type:Function,default:null},beforeOpen:{type:Function,default:null},editorType:{type:String,default:"filter"},expressionOptions:{type:Object,default:null},formContextData:{type:Object,default:{}},singleValue:{type:Boolean,default:!0},idField:{type:String,default:"id"},textField:{type:String,default:""},valueField:{type:String,default:""},editable:{type:Boolean,default:!0},enableTitle:{type:Boolean,default:!0},disableConfirmWhenUnchanged:{type:Boolean,default:!1},compareOperators:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1}},Xe=K.createPropsResolver(Se,tn),Ke={conditions:{type:Array,default:[]},fields:{type:Array,default:[]},activeIndex:{type:Number,default:-1},formatter:{type:Function,default:(e,n)=>`${n.raw.name} [${n.raw.path}]`},enableExpression:{type:Boolean,default:!1},expressionOptions:{type:Object,default:null},formContextData:{type:Object,default:{}},singleValue:{type:Boolean,default:!0},idField:{type:String,default:"id"},textField:{type:String,default:""},valueField:{type:String,default:""},compareOperators:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1}},_e=new Map([["appearance",K.resolveAppearance]]),Je={$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"},dataSource:{description:"",type:"string"},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},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打卡面板前回调",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""},onDataChanged:{description:"清空事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onChange:"值变化事件",beforeOpen:"打开下拉面板前事件"}};function Ze(e,n,a){return n}function nn(){function e(n,a,o){const l={};return l.beforeOpen=i=>a.call("beforeOpen",n,[i,n],o),l}return{resolve:e}}const ge={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},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},load:{type:Function},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0}},an=Object.assign({},ge,{readonly:{}});K.createPropsResolver(ge,Je,_e,Ze);const Qe=K.getPropsResolverGenerator(ge,Je,_e,Ze),on=nn(),ln={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}},rn=t.defineComponent({name:"FComboListContainer",props:ln,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),l=t.ref([]),i=t.ref(e.separator),s=t.ref(e.width),u=t.ref(e.maxHeight),d=t.computed(()=>e.multiSelect),m=t.ref(e.multiSelect?String(e.selectedValues).split(i.value):[e.selectedValues]),b=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:d.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{o.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const f=t.computed(()=>{const r={};return s.value!==void 0&&(r.width=`${s.value}px`),u.value!==void 0&&u.value>0&&(r.maxHeight=`${u.value}px`),r});function y(r){a.value.search(r)}function x(r){l.value=r.map(c=>Object.assign({},c)),m.value=r.map(c=>c[e.idField]),n.emit("selectionChange",l.value)}function v(r){if(e.enableHighlightSearch)return;let c=[];const{searchOption:h}=e;typeof h=="function"?c=o.value.filter(k=>h(r,k)):c=o.value.filter(k=>k[e.valueField].indexOf(r)>-1||k[e.textField].indexOf(r)>-1),a.value.updateDataSource(c)}t.watch([()=>e.selectedValues],([r])=>{e.multiSelect?m.value=r.split(i.value):m.value=[r]});function C(r){a.value.activeRowById(r)}return t.onMounted(()=>{var r,c;if(!e.multiSelect){const h=(r=m.value)==null?void 0:r[0];let k=h;const T=o.value.map(g=>g[e.valueField||e.idField]);if(!Z.isUndefined(h)&&T.includes(h)){const g=typeof h,p=typeof((c=o.value[0])==null?void 0:c[e.valueField||e.idField]);p==="number"&&g!==p&&(k=Number(h)),p==="boolean"&&g!==p&&(k=h==="true"?!0:h==="false"?!1:h),C(k)}}}),n.expose({search:y,activeRowById:C}),()=>t.createVNode("div",{class:"f-combo-list-container",style:f.value},[t.createVNode(Ot,{ref:a,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:o.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:b.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:m.value,onSelectionUpdate:x,onAfterSearch:v},null)])}});function sn(e,n){const a=t.ref(""),o=t.ref(e.modelValue),l=t.ref(e.data||[]),i=t.ref(e.editable);function s(r){const c=e.multiSelect?String(r).split(e.separator):[String(r)],h=c.map(g=>[g,!0]),k=new Map(h);return l.value.filter(g=>k.has(String(g[e.valueField]))).sort((g,p)=>{const w=c.indexOf(g[e.valueField]),S=c.indexOf(p[e.valueField]);return w-S})}function u(r){const c=s(r).map(h=>h[e.textField]).join(e.separator);a.value=i.value?c||r:c}function d(r){if(e.multiSelect){const c=r.split(e.separator).map(k=>[k,!0]),h=new Map(c);return l.value.filter(k=>h.has(k[e.textField]))}return l.value.filter(c=>""+c[e.textField]===r)}function m(r){const c={};return c[e.idField]=r,c[e.textField]=r,[c]}function b(r){let c=d(r);const h=c&&c.length>0;return i.value&&!h&&(c=m(r)),c}function f(){const{url:r,method:c="GET",headers:h={"Content-Type":"application/json;charset=utf-8;"},body:k=null}=e.remote;if(!r)return;const T=c.toLowerCase()==="get"?{method:c,headers:h}:{method:c,headers:h,body:k};let g=!1;fetch(new Request(r,T)).then(p=>{var S,P;if(p.status===200)return g=!!((P=(S=p.headers)==null?void 0:S.get("content-type"))!=null&&P.includes("application/json")),g?p.text():p.json();throw p.status===405?new Error(U.LocaleService.getLocaleValue("comboList.remoteError")):new Error(p.statusText)}).then(p=>{p.length&&(l.value=g?JSON.parse(p):p,o.value&&u(o.value))}).catch(p=>{console.warn(p)})}e.remote&&(e.load?e.load().then(r=>{l.value=r}).catch(r=>{console.log(r)}):f()),t.watch(()=>e.data,()=>{l.value=e.data}),t.watch([l],([r],[c])=>{if(e.modelValue!=null&&!e.multiSelect){const h=r.find(k=>k[e.valueField]===o.value);h?h[e.valueField]!==o.value?(o.value=h[e.valueField],a.value=h[e.textField],n.emit("update:modelValue",h[e.valueField]),n.emit("change",[h],h[e.valueField])):a.value!==h[e.textField]&