fit2cloud-ui-plus 0.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +16 -0
  3. package/lib/favicon.bmp +0 -0
  4. package/lib/fit2cloud-ui-plus.es.js +3796 -0
  5. package/lib/fit2cloud-ui-plus.umd.js +1 -0
  6. package/package.json +48 -0
  7. package/src/components/filter-bar/FuFilter.vue +175 -0
  8. package/src/components/filter-bar/FuFilterBar.vue +75 -0
  9. package/src/components/filter-bar/FuFilterConditions.vue +29 -0
  10. package/src/components/filter-bar/FuSearchInput.vue +31 -0
  11. package/src/components/filter-bar/filter-components/FuFilterDate.vue +62 -0
  12. package/src/components/filter-bar/filter-components/FuFilterDateTime.vue +65 -0
  13. package/src/components/filter-bar/filter-components/FuFilterOption.vue +38 -0
  14. package/src/components/filter-bar/filter-components/FuFilterSelect.vue +143 -0
  15. package/src/components/filter-bar/index.ts +19 -0
  16. package/src/components/filter-bar/types.ts +31 -0
  17. package/src/components/read-write-switch/FuInputRwSwitch.vue +44 -0
  18. package/src/components/read-write-switch/FuReadWriteSwitch.vue +91 -0
  19. package/src/components/read-write-switch/FuSelectRwSwitch.vue +53 -0
  20. package/src/components/read-write-switch/index.ts +13 -0
  21. package/src/components/search-bar/FuComplexSearch.vue +108 -0
  22. package/src/components/search-bar/FuQuickSearch.vue +43 -0
  23. package/src/components/search-bar/FuSearchBar.vue +165 -0
  24. package/src/components/search-bar/FuSearchBarButton.vue +14 -0
  25. package/src/components/search-bar/FuSearchContions.vue +24 -0
  26. package/src/components/search-bar/index.ts +13 -0
  27. package/src/components/search-bar/store.ts +25 -0
  28. package/src/components/speed-dial/FuSpeedDial.vue +280 -0
  29. package/src/components/speed-dial/FuSpeedDialActionButton.vue +88 -0
  30. package/src/components/speed-dial/FuSpeedDialButton.vue +42 -0
  31. package/src/components/speed-dial/FuSpeedDialItem.vue +88 -0
  32. package/src/components/speed-dial/index.ts +11 -0
  33. package/src/components/split-pane/FuSplitPane.vue +228 -0
  34. package/src/components/split-pane/index.ts +8 -0
  35. package/src/components/steps/FuHorizontalNavigation.vue +18 -0
  36. package/src/components/steps/FuHorizontalSteps.vue +94 -0
  37. package/src/components/steps/FuStep.vue +13 -0
  38. package/src/components/steps/FuSteps.vue +22 -0
  39. package/src/components/steps/FuStepsFooter.ts +79 -0
  40. package/src/components/steps/FuVerticalNavigation.vue +35 -0
  41. package/src/components/steps/FuVerticalSteps.vue +79 -0
  42. package/src/components/steps/Stepper.ts +188 -0
  43. package/src/components/steps/index.ts +11 -0
  44. package/src/components/table/FuTable.vue +145 -0
  45. package/src/components/table/FuTableBody.ts +40 -0
  46. package/src/components/table/FuTablePagination.vue +42 -0
  47. package/src/components/table/index.ts +15 -0
  48. package/src/components/table/table-column-dropdown/FuTableColumnDropdown.vue +102 -0
  49. package/src/components/table/table-column-dropdown/index.ts +7 -0
  50. package/src/components/table/table-column-select/FuTableColumnSelect.vue +22 -0
  51. package/src/components/table/table-column-select/FuTableColumnSelectDialog.vue +99 -0
  52. package/src/components/table/table-column-select/FuTableColumnSelectPopover.vue +80 -0
  53. package/src/components/table/table-column-select/index.ts +8 -0
  54. package/src/components/table/table-column-select/utils.ts +59 -0
  55. package/src/components/table/table-operations/FuTableButton.vue +19 -0
  56. package/src/components/table/table-operations/FuTableMoreButton.vue +52 -0
  57. package/src/components/table/table-operations/FuTableOperations.vue +88 -0
  58. package/src/components/table/table-operations/index.ts +12 -0
  59. package/src/components/tabs/FuTabs.vue +84 -0
  60. package/src/components/tabs/index.ts +8 -0
  61. package/src/components/virtual-scroller/FuVirtualHorizontalScroll.js +96 -0
  62. package/src/components/virtual-scroller/FuVirtualScroll.js +15 -0
  63. package/src/components/virtual-scroller/FuVirtualVerticalScroll.js +95 -0
  64. package/src/components/virtual-scroller/index.js +10 -0
  65. package/src/hooks/index.ts +3 -0
  66. package/src/hooks/use-global-config/index.ts +32 -0
  67. package/src/hooks/use-locale/index.ts +47 -0
  68. package/src/index.ts +19 -0
  69. package/src/locale/index.ts +12 -0
  70. package/src/locale/lang/en.ts +58 -0
  71. package/src/locale/lang/zh-cn.ts +58 -0
  72. package/src/locale/lang/zh-tw.ts +58 -0
  73. package/src/styles/common/config.scss +5 -0
  74. package/src/styles/common/function.scss +81 -0
  75. package/src/styles/common/mixins.scss +85 -0
  76. package/src/styles/common/variables.scss +28 -0
  77. package/src/styles/components/filter-bar.scss +227 -0
  78. package/src/styles/components/read-write-switch.scss +6 -0
  79. package/src/styles/components/search-bar.scss +285 -0
  80. package/src/styles/components/speed-dial.scss +107 -0
  81. package/src/styles/components/split-pane.scss +111 -0
  82. package/src/styles/components/steps.scss +110 -0
  83. package/src/styles/components/table.scss +105 -0
  84. package/src/styles/components/tabs.scss +10 -0
  85. package/src/styles/components/virtual-scroller.scss +24 -0
  86. package/src/styles/index.scss +11 -0
  87. package/src/tools/theme.ts +23 -0
  88. package/src/tools/time.ts +30 -0
  89. package/src/tools/utils.ts +60 -0
@@ -0,0 +1 @@
1
+ var Pl=Object.defineProperty,Al=Object.defineProperties;var Ol=Object.getOwnPropertyDescriptors;var Je=Object.getOwnPropertySymbols;var Il=Object.prototype.hasOwnProperty,jl=Object.prototype.propertyIsEnumerable;var ke=(e,C,P)=>C in e?Pl(e,C,{enumerable:!0,configurable:!0,writable:!0,value:P}):e[C]=P,$=(e,C)=>{for(var P in C||(C={}))Il.call(C,P)&&ke(e,P,C[P]);if(Je)for(var P of Je(C))jl.call(C,P)&&ke(e,P,C[P]);return e},z=(e,C)=>Al(e,Ol(C));var M=(e,C,P)=>(ke(e,typeof C!="symbol"?C+"":C,P),P);(function(e,C){typeof exports=="object"&&typeof module!="undefined"?module.exports=C(require("vue")):typeof define=="function"&&define.amd?define(["vue"],C):(e=typeof globalThis!="undefined"?globalThis:e||self,e.Fit2cloudUIPlus=C(e.Vue))})(this,function(e){"use strict";var C=(t,o)=>{const l=t.__vccOpts||t;for(const[n,a]of o)l[n]=a;return l};const P={name:"FuSearchInput"},Xe=e.defineComponent(z($({},P),{props:{value:String},emits:["input","change"],setup(t,{emit:o}){const l=t,n=e.ref("");e.watch(()=>l.value,i=>{n.value=i});function a(i){o("input",n.value,i)}function r(i){o("change",n.value,i)}function u(i){i.key==="Enter"&&o("change",n.value,i)}return(i,p)=>{const m=e.resolveComponent("el-input");return e.openBlock(),e.createBlock(m,e.mergeProps({class:"fu-search-input","prefix-icon":"Search",modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=c=>n.value=c),onInput:a,onBlur:r,onKeydown:u},i.$attrs,{clearable:""}),null,16,["modelValue"])}}}));var se=C(Xe,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/FuSearchInput.vue"]]);const we=e.ref();function Qe(t,o=void 0){const l=e.getCurrentInstance()?e.inject(Symbol(),we):we;return t?e.computed(()=>{var n,a;return(a=(n=l.value)==null?void 0:n[t])!=null?a:o}):l}var Ze=typeof global=="object"&&global&&global.Object===Object&&global,ve=Ze,et=typeof self=="object"&&self&&self.Object===Object&&self,tt=ve||et||Function("return this")(),de=tt,ot=de.Symbol,U=ot,Be=Object.prototype,nt=Be.hasOwnProperty,lt=Be.toString,W=U?U.toStringTag:void 0;function rt(t){var o=nt.call(t,W),l=t[W];try{t[W]=void 0;var n=!0}catch{}var a=lt.call(t);return n&&(o?t[W]=l:delete t[W]),a}var at=Object.prototype,it=at.toString;function ct(t){return it.call(t)}var st="[object Null]",dt="[object Undefined]",xe=U?U.toStringTag:void 0;function Fe(t){return t==null?t===void 0?dt:st:xe&&xe in Object(t)?rt(t):ct(t)}function ut(t){return t!=null&&typeof t=="object"}var ft="[object Symbol]";function ue(t){return typeof t=="symbol"||ut(t)&&Fe(t)==ft}function pt(t,o){for(var l=-1,n=t==null?0:t.length,a=Array(n);++l<n;)a[l]=o(t[l],l,t);return a}var mt=Array.isArray,fe=mt,_t=1/0,Ee=U?U.prototype:void 0,Ve=Ee?Ee.toString:void 0;function Ne(t){if(typeof t=="string")return t;if(fe(t))return pt(t,Ne)+"";if(ue(t))return Ve?Ve.call(t):"";var o=t+"";return o=="0"&&1/t==-_t?"-0":o}function $e(t){var o=typeof t;return t!=null&&(o=="object"||o=="function")}var ht="[object AsyncFunction]",gt="[object Function]",bt="[object GeneratorFunction]",yt="[object Proxy]";function Ct(t){if(!$e(t))return!1;var o=Fe(t);return o==gt||o==bt||o==ht||o==yt}var St=de["__core-js_shared__"],pe=St,ze=function(){var t=/[^.]+$/.exec(pe&&pe.keys&&pe.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function kt(t){return!!ze&&ze in t}var wt=Function.prototype,Bt=wt.toString;function xt(t){if(t!=null){try{return Bt.call(t)}catch{}try{return t+""}catch{}}return""}var Ft=/[\\^$.*+?()[\]{}|]/g,Et=/^\[object .+?Constructor\]$/,Vt=Function.prototype,Nt=Object.prototype,$t=Vt.toString,zt=Nt.hasOwnProperty,Dt=RegExp("^"+$t.call(zt).replace(Ft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Tt(t){if(!$e(t)||kt(t))return!1;var o=Ct(t)?Dt:Et;return o.test(xt(t))}function Pt(t,o){return t==null?void 0:t[o]}function De(t,o){var l=Pt(t,o);return Tt(l)?l:void 0}function At(t,o){return t===o||t!==t&&o!==o}var Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,It=/^\w*$/;function jt(t,o){if(fe(t))return!1;var l=typeof t;return l=="number"||l=="symbol"||l=="boolean"||t==null||ue(t)?!0:It.test(t)||!Ot.test(t)||o!=null&&t in Object(o)}var Lt=De(Object,"create"),H=Lt;function qt(){this.__data__=H?H(null):{},this.size=0}function Mt(t){var o=this.has(t)&&delete this.__data__[t];return this.size-=o?1:0,o}var Ut="__lodash_hash_undefined__",Rt=Object.prototype,Kt=Rt.hasOwnProperty;function Wt(t){var o=this.__data__;if(H){var l=o[t];return l===Ut?void 0:l}return Kt.call(o,t)?o[t]:void 0}var Ht=Object.prototype,Gt=Ht.hasOwnProperty;function Yt(t){var o=this.__data__;return H?o[t]!==void 0:Gt.call(o,t)}var Jt="__lodash_hash_undefined__";function Xt(t,o){var l=this.__data__;return this.size+=this.has(t)?0:1,l[t]=H&&o===void 0?Jt:o,this}function L(t){var o=-1,l=t==null?0:t.length;for(this.clear();++o<l;){var n=t[o];this.set(n[0],n[1])}}L.prototype.clear=qt,L.prototype.delete=Mt,L.prototype.get=Wt,L.prototype.has=Yt,L.prototype.set=Xt;function Qt(){this.__data__=[],this.size=0}function X(t,o){for(var l=t.length;l--;)if(At(t[l][0],o))return l;return-1}var Zt=Array.prototype,vt=Zt.splice;function eo(t){var o=this.__data__,l=X(o,t);if(l<0)return!1;var n=o.length-1;return l==n?o.pop():vt.call(o,l,1),--this.size,!0}function to(t){var o=this.__data__,l=X(o,t);return l<0?void 0:o[l][1]}function oo(t){return X(this.__data__,t)>-1}function no(t,o){var l=this.__data__,n=X(l,t);return n<0?(++this.size,l.push([t,o])):l[n][1]=o,this}function R(t){var o=-1,l=t==null?0:t.length;for(this.clear();++o<l;){var n=t[o];this.set(n[0],n[1])}}R.prototype.clear=Qt,R.prototype.delete=eo,R.prototype.get=to,R.prototype.has=oo,R.prototype.set=no;var lo=De(de,"Map"),ro=lo;function ao(){this.size=0,this.__data__={hash:new L,map:new(ro||R),string:new L}}function io(t){var o=typeof t;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?t!=="__proto__":t===null}function Q(t,o){var l=t.__data__;return io(o)?l[typeof o=="string"?"string":"hash"]:l.map}function co(t){var o=Q(this,t).delete(t);return this.size-=o?1:0,o}function so(t){return Q(this,t).get(t)}function uo(t){return Q(this,t).has(t)}function fo(t,o){var l=Q(this,t),n=l.size;return l.set(t,o),this.size+=l.size==n?0:1,this}function q(t){var o=-1,l=t==null?0:t.length;for(this.clear();++o<l;){var n=t[o];this.set(n[0],n[1])}}q.prototype.clear=ao,q.prototype.delete=co,q.prototype.get=so,q.prototype.has=uo,q.prototype.set=fo;var po="Expected a function";function me(t,o){if(typeof t!="function"||o!=null&&typeof o!="function")throw new TypeError(po);var l=function(){var n=arguments,a=o?o.apply(this,n):n[0],r=l.cache;if(r.has(a))return r.get(a);var u=t.apply(this,n);return l.cache=r.set(a,u)||r,u};return l.cache=new(me.Cache||q),l}me.Cache=q;var mo=500;function _o(t){var o=me(t,function(n){return l.size===mo&&l.clear(),n}),l=o.cache;return o}var ho=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,go=/\\(\\)?/g,bo=_o(function(t){var o=[];return t.charCodeAt(0)===46&&o.push(""),t.replace(ho,function(l,n,a,r){o.push(a?r.replace(go,"$1"):n||l)}),o}),yo=bo;function Co(t){return t==null?"":Ne(t)}function So(t,o){return fe(t)?t:jt(t,o)?[t]:yo(Co(t))}var ko=1/0;function wo(t){if(typeof t=="string"||ue(t))return t;var o=t+"";return o=="0"&&1/t==-ko?"-0":o}function Bo(t,o){o=So(o,t);for(var l=0,n=o.length;t!=null&&l<n;)t=t[wo(o[l++])];return l&&l==n?t:void 0}function xo(t,o,l){var n=t==null?void 0:Bo(t,o);return n===void 0?l:n}var Fo={name:"zh-cn",fu:{filter_bar:{filter:"\u7B5B\u9009",results:"\u4E2A\u7ED3\u679C",clear:"\u6E05\u7A7A\u6761\u4EF6",drawer_title:"\u7B5B\u9009\u6761\u4EF6",cancel:"\u53D6\u6D88",search:"\u67E5\u8BE2",select_all:"\u5168\u9009",more:"\u66F4\u591A"},search_bar:{search:"\u641C\u7D22",adv_search:"\u9AD8\u7EA7\u641C\u7D22",ok:"\u786E\u5B9A",cancel:"\u53D6\u6D88",please_select:"\u8BF7\u9009\u62E9",please_input:"\u8BF7\u8F93\u5165",like:"\u5305\u542B",not_like:"\u4E0D\u5305\u542B",in:"\u5C5E\u4E8E",not_in:"\u4E0D\u5C5E\u4E8E",gt:"\u5927\u4E8E",ge:"\u5927\u4E8E\u7B49\u4E8E",lt:"\u5C0F\u4E8E",le:"\u5C0F\u4E8E\u7B49\u4E8E",eq:"\u7B49\u4E8E",ne:"\u4E0D\u7B49\u4E8E",between:"\u4E4B\u95F4",select_date:"\u9009\u62E9\u65E5\u671F",start_date:"\u5F00\u59CB\u65E5\u671F",end_date:"\u7ED3\u675F\u65E5\u671F",select_date_time:"\u9009\u62E9\u65E5\u671F\u65F6\u95F4",start_date_time:"\u5F00\u59CB\u65E5\u671F\u65F6\u95F4",end_date_time:"\u7ED3\u675F\u65E5\u671F\u65F6\u95F4",range_separator:"\u81F3",data_time_error:"\u5F00\u59CB\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u7ED3\u675F\u65E5\u671F",clean:"\u6E05\u7A7A",refresh:"\u5237\u65B0"},table:{ok:"\u786E\u5B9A",reset:"\u91CD\u7F6E",custom_table_fields:"\u81EA\u5B9A\u4E49\u8868\u683C\u5B57\u6BB5",custom_table_fields_desc:"\u56FA\u5B9A\u5B57\u6BB5\u4E0D\u5728\u9009\u62E9\u8303\u56F4\uFF0C\u53EF\u62D6\u62FD\u81EA\u5B9A\u4E49\u987A\u5E8F",custom_table_rows:"\u9009\u9879\u5217",more:"\u66F4\u591A"},steps:{cancel:"\u53D6\u6D88",next:"\u4E0B\u4E00\u6B65",prev:"\u4E0A\u4E00\u6B65",finish:"\u5B8C\u6210"}}};const Eo=t=>(o,l)=>Vo(o,l,e.unref(t)),Vo=(t,o,l)=>xo(l,t,t).replace(/\{(\w+)\}/g,(n,a)=>{var r;return`${(r=o==null?void 0:o[a])!=null?r:`{${a}}`}`}),No=t=>{const o=e.computed(()=>e.unref(t).name),l=e.isRef(t)?t:e.ref(t);return{lang:o,locale:l,t:Eo(t)}},j=()=>{const t=Qe("locale");return No(e.computed(()=>t.value||Fo))},$o={class:"fu-filter-conditions"},zo={class:"condition-text"};var Do=C(e.defineComponent({props:{conditions:Array},emits:["change"],setup(t,{emit:o}){const l=t;function n(r){var u;(u=l.conditions)==null||u.splice(r,1),o("change",l.conditions)}function a(r){return r.label+" "+r.valueLabel||r.value}return(r,u)=>{const i=e.resolveComponent("CloseBold"),p=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock("div",$o,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.conditions,(m,c)=>(e.openBlock(),e.createElementBlock("div",{class:"fu-filter-conditions__item",key:c},[e.createElementVNode("div",zo,e.toDisplayString(a(m)),1),e.createVNode(p,{class:"fu-scale-click",onClick:s=>n(c)},{default:e.withCtx(()=>[e.createVNode(i)]),_:2},1032,["onClick"])]))),128))])}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/FuFilterConditions.vue"]]);const Te=Symbol("SelectKey"),Z=Symbol("ReferenceKey"),To={class:"fu-filter__result"},Po={style:{opacity:"0.6"}},Ao=e.createElementVNode("div",{class:"fu-filter__split"},null,-1),Oo={class:"drawer-body"},Io={class:"drawer-footer"},jo={name:"FuFilter"},Lo=e.defineComponent(z($({},jo),{props:{count:{type:Number,default:0},components:Array,drawerWidth:{type:[Number,String],default:"680px"}},emits:["filter"],setup(t,{expose:o,emit:l}){const{t:n}=j(),a=e.ref(null),r=e.ref(null),u=e.ref(!0),i=e.ref(!1),p=e.ref([]),m=e.ref([]);let c,s;function f(){clearInterval(c),clearInterval(s)}function d(){var k;let S=(k=r.value)==null?void 0:k.$el;c=setInterval(()=>{S&&(S.scrollLeft-=15)},50)}function _(){var k;let S=(k=r.value)==null?void 0:k.$el;s=setInterval(()=>{S&&(S.scrollLeft+=15)},50)}function h(){e.nextTick(()=>{var k;let S=(k=r.value)==null?void 0:k.$el;i.value=S!=null&&(S==null?void 0:S.getBoundingClientRect().width)>=D.value}),l("filter",p.value)}function y(S){p.value=[],S&&(Object.keys(S).forEach(k=>{let E=S[k].value;m.value.forEach(V=>{if(V.field===k){V.init(E);const A=V.getCondition();A&&p.value.push(A)}})}),h())}function g(){p.value=[],m.value.forEach(S=>{let k;k=S.getCondition(),k&&p.value.push(k)}),u.value=!1,h()}function b(){u.value=!0}function x(){m.value.forEach(S=>{let k=p.value.find(E=>E.field===S.field);S.init(k==null?void 0:k.value)})}function w(){p.value=[],x(),h()}const D=e.computed(()=>{const S=a.value;return S===null?0:S.getBoundingClientRect().width-210});return e.provide(Z,m),e.onMounted(()=>{u.value=!1}),o({open:b,setConditions:y}),(S,k)=>{const E=e.resolveComponent("ArrowLeftBold"),V=e.resolveComponent("el-icon"),A=e.resolveComponent("ArrowRightBold"),Y=e.resolveComponent("Delete"),K=e.resolveComponent("el-button"),F=e.resolveComponent("el-drawer");return e.openBlock(),e.createElementBlock("div",{class:"fu-filter",ref_key:"filterRef",ref:a},[e.createElementVNode("div",To,[e.createTextVNode(e.toDisplayString(t.count)+" ",1),e.createElementVNode("span",Po,e.toDisplayString(e.unref(n)("fu.filter_bar.results")),1)]),Ao,i.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fu-filter__scroll",onMousedown:d,onMouseup:f},[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(E)]),_:1})],32)):e.createCommentVNode("v-if",!0),e.createVNode(Do,{conditions:p.value,onChange:h,ref_key:"conditionsRef",ref:r},null,8,["conditions"]),i.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"fu-filter__scroll",onMousedown:_,onMouseup:f},[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(A)]),_:1})],32)):e.createCommentVNode("v-if",!0),p.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:2,class:"fu-filter__clear fu-scale-click",onClick:w},[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(Y)]),_:1}),e.createTextVNode(" "+e.toDisplayString(e.unref(n)("fu.filter_bar.clear")),1)])):e.createCommentVNode("v-if",!0),e.createVNode(F,{size:t.drawerWidth,"custom-class":"fu-filter__drawer",title:e.unref(n)("fu.filter_bar.drawer_title"),modelValue:u.value,"onUpdate:modelValue":k[1]||(k[1]=N=>u.value=N),onOpen:x},{default:e.withCtx(()=>[e.createElementVNode("div",Oo,[e.renderSlot(S.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.components,(N,B)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(N.component),e.mergeProps({key:B},N,{ref_for:!0,ref:N.field},e.toHandlers(N)),null,16))),128))])]),e.createElementVNode("div",Io,[e.renderSlot(S.$slots,"footer",{},()=>[e.createVNode(K,{onClick:k[0]||(k[0]=N=>u.value=!1)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.filter_bar.cancel")),1)]),_:1}),e.createVNode(K,{type:"primary",onClick:g},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.filter_bar.search")),1)]),_:1})])])]),_:3},8,["size","title","modelValue"])],512)}}}));var _e=C(Lo,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/FuFilter.vue"]]);const qo={class:"fu-filter-bar"},Mo={class:"fu-filter-bar__top"},Uo={class:"top_left"},Ro={class:"top_right"},Ko={key:0},Wo={class:"fu-filter-bar__bottom"},Ho={name:"FuFilterBar"},Go=e.defineComponent(z($({},Ho),{props:{resultCount:Number,quickPlaceholder:String,components:Array},emits:["exec"],setup(t,{expose:o,emit:l}){const{t:n}=j(),a=e.ref(""),r=e.ref([]),u=e.ref();function i(){var f;(f=u.value)==null||f.open()}function p(){l("exec",s.value)}function m(f){r.value=f,l("exec",s.value)}function c(f){var d;(d=u.value)==null||d.setConditions(f)}const s=e.computed(()=>{let f={quick:a.value};return r.value.forEach(d=>{f[d.field]=d}),f});return o({setConditions:c}),(f,d)=>{const _=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",qo,[e.createElementVNode("div",Mo,[e.createElementVNode("div",Uo,[e.renderSlot(f.$slots,"tl")]),e.createElementVNode("div",Ro,[e.renderSlot(f.$slots,"tr",{},()=>[e.createCommentVNode(' :size="configSize" '),e.createVNode(se,{modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=h=>a.value=h),placeholder:t.quickPlaceholder,onChange:p},null,8,["modelValue","placeholder"]),e.createVNode(_,{onClick:i,icon:"Filter"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.filter_bar.filter"))+" ",1),r.value.length>0?(e.openBlock(),e.createElementBlock("span",Ko,"("+e.toDisplayString(r.value.length)+")",1)):e.createCommentVNode("v-if",!0)]),_:1})]),e.renderSlot(f.$slots,"buttons")])]),e.createElementVNode("div",Wo,[e.createVNode(_e,{ref_key:"filterRef",ref:u,onFilter:m,count:t.resultCount,components:t.components},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},8,["count","components"])])])}}}));var Pe=C(Go,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/FuFilterBar.vue"]]);const Yo=["onClick"];var Jo=C(e.defineComponent({props:{value:{type:[String,Number],required:!0},label:[String,Number],disabled:{type:Boolean,default:!1}},setup(t){const o=t,l=e.inject(Te),n=e.computed(()=>l?Array.isArray(l.selection.value)?l.selection.value.includes(o.value):l.selection.value===o.value:!1);function a(){l==null||l.setSelected(o.value,n.value)}return(r,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fu-filter-option",{"is-selected":e.unref(n),"is-disabled":t.disabled}]),onClick:e.withModifiers(a,["stop"])},e.toDisplayString(t.label||t.value),11,Yo))}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/filter-components/FuFilterOption.vue"]]);const Xo={class:"fu-filter-component"},Qo={class:"fu-filter-component__label"},Zo={class:"fu-filter-component__content"},vo={class:"fu-filter-option"},en={name:"FuFilterSelect"},tn=e.defineComponent(z($({},en),{props:{multiple:{type:Boolean,default:!1},showLimit:{type:Number,default:3},useSelectAll:{type:Boolean,default:!1},label:String,field:{type:String,required:!0},options:{type:Array,default:[]}},emits:["change"],setup(t,{expose:o,emit:l}){const n=t,{t:a}=j(),r=e.ref(n.multiple?[]:""),u=e.computed(()=>n.options.filter((g,b)=>{let x=n.showLimit<0?!0:b<n.showLimit;return Array.isArray(r.value)?x||r.value.includes(g.value):x||r.value===g.value})),i=e.computed(()=>{if(Array.isArray(r.value)){let g=[];return r.value.forEach(b=>{g.push(s(b))}),g.join(", ")}return s(r.value)});function p(g){g.includes("")&&(r.value=n.options.map(b=>b.value)),l("change",r.value)}function m(g,b){if(!Array.isArray(r.value)){r.value=b?"":g;return}if(b){let x=r.value.indexOf(g);r.value.splice(x,1)}else r.value.push(g)}function c(){r.value=n.options.map(g=>g.value)}function s(g){for(let b of n.options)if(b.value===g)return b.label;return g}function f(){if(!r.value||Array.isArray(r.value)&&r.value.length===0)return;let{field:g,label:b}=n;return{field:g,label:b,value:r.value,valueLabel:i.value}}function d(g){r.value=g!==void 0?g:n.multiple?[]:""}e.provide(Te,{setSelected:m,selection:r});const _=e.inject(Z),y={field:n.field,init:d,getCondition:f};return _==null||_.value.push(y),o({getCondition:f,init:d}),(g,b)=>{const x=e.resolveComponent("el-option"),w=e.resolveComponent("el-select"),D=e.resolveComponent("Plus"),S=e.resolveComponent("el-icon"),k=e.resolveComponent("el-popover");return e.openBlock(),e.createElementBlock("div",Xo,[e.createElementVNode("div",Qo,e.toDisplayString(t.label),1),e.createElementVNode("div",Zo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),E=>(e.openBlock(),e.createBlock(Jo,{label:E.label,value:E.value,key:E.value},null,8,["label","value"]))),128)),e.createVNode(k,{"popper-class":"fu-filter-component-popover","show-arrow":!1,placement:"bottom-start",trigger:"click",width:"240"},{reference:e.withCtx(()=>[e.createElementVNode("div",vo,[e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(D)]),_:1}),e.createTextVNode(" "+e.toDisplayString(e.unref(a)("fu.filter_bar.more")),1)])]),default:e.withCtx(()=>[e.createVNode(w,e.mergeProps({modelValue:r.value,"onUpdate:modelValue":b[0]||(b[0]=E=>r.value=E)},g.$attrs,{multiple:t.multiple,onChange:p,teleported:!1,placeholder:e.unref(a)("fu.search_bar.please_select")}),{default:e.withCtx(()=>[t.useSelectAll&&t.multiple?(e.openBlock(),e.createBlock(x,{key:0,value:""},{default:e.withCtx(()=>[e.createElementVNode("div",{onClick:c},e.toDisplayString(e.unref(a)("fu.filter_bar.select_all")),1)]),_:1})):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,E=>(e.openBlock(),e.createBlock(x,{label:E.label,value:E.value,key:E.value},null,8,["label","value"]))),128))]),_:1},16,["modelValue","multiple","placeholder"])]),_:1})])])}}}));var Ae=C(tn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/filter-components/FuFilterSelect.vue"]]);const Oe=t=>{if(!t)return!1;const o=new Date(t);return isNaN(o.getTime())?!1:o},Ie=t=>{const o=Oe(t);if(!o)return t;const l=o.getFullYear(),n=(o.getMonth()+1+"").padStart(2,"0"),a=(o.getDate()+"").padStart(2,"0"),r=(o.getHours()+"").padStart(2,"0"),u=(o.getMinutes()+"").padStart(2,"0"),i=(o.getSeconds()+"").padStart(2,"0");return`${l}-${n}-${a} ${r}:${u}:${i}`},je=t=>{const o=Oe(t);if(!o)return t;const l=o.getFullYear(),n=(o.getMonth()+1+"").padStart(2,"0"),a=(o.getDate()+"").padStart(2,"0");return`${l}-${n}-${a}`},on={class:"fu-filter-component"},nn={class:"fu-filter-component__label"},ln={class:"fu-filter-component__content"},rn={name:"FuFilterDate"},an=e.defineComponent(z($({},rn),{props:{label:String,field:{type:String,required:!0},valueFormat:{type:String,default:"x"}},setup(t,{expose:o}){const l=t,{t:n}=j(),a=e.ref(""),r=e.computed(()=>je(a.value[0])+" - "+je(a.value[1]));function u(){if(!String(a.value))return;let{field:s,label:f}=l;return{field:s,label:f,value:a.value,valueLabel:r.value}}function i(s){a.value=s!==void 0?s:""}const p=e.inject(Z),c={field:l.field,init:i,getCondition:u};return p==null||p.value.push(c),o({getCondition:u,init:i}),(s,f)=>{const d=e.resolveComponent("el-date-picker");return e.openBlock(),e.createElementBlock("div",on,[e.createElementVNode("div",nn,e.toDisplayString(t.label),1),e.createElementVNode("div",ln,[e.createCommentVNode(' :size="configSize" '),e.createVNode(d,e.mergeProps({class:"fu-filter-date",modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=_=>a.value=_)},s.$attrs,{placeholder:e.unref(n)("fu.search_bar.select_date"),type:"daterange","value-format":t.valueFormat,"start-placeholder":e.unref(n)("fu.search_bar.start_date"),"end-placeholder":e.unref(n)("fu.search_bar.end_date")}),null,16,["modelValue","placeholder","value-format","start-placeholder","end-placeholder"])])])}}}));var Le=C(an,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/filter-components/FuFilterDate.vue"]]);const cn={class:"fu-filter-component"},sn={class:"fu-filter-component__label"},dn={class:"fu-filter-component__content"},un={name:"FuFilterDateTime"},fn=e.defineComponent(z($({},un),{props:{label:String,field:{type:String,required:!0},valueFormat:{type:String,default:"x"}},setup(t,{expose:o}){const l=t,{t:n}=j(),a=e.ref(""),r=e.computed(()=>Ie(a.value[0])+" - "+Ie(a.value[1]));function u(){if(!String(a.value))return;let{field:s,label:f}=l;return{field:s,label:f,value:a.value,valueLabel:r.value}}function i(s){a.value=s!==void 0?s:""}const p=e.inject(Z),c={field:l.field,init:i,getCondition:u};return p==null||p.value.push(c),o({getCondition:u,init:i}),(s,f)=>{const d=e.resolveComponent("el-date-picker");return e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",sn,e.toDisplayString(t.label),1),e.createElementVNode("div",dn,[e.createCommentVNode(' :size="configSize" '),e.createVNode(d,e.mergeProps({class:"fu-filter-date",modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=_=>a.value=_)},s.$attrs,{placeholder:e.unref(n)("fu.search_bar.select_date_time"),type:"datetimerange","value-format":t.valueFormat,"start-placeholder":e.unref(n)("fu.search_bar.start_date_time"),"end-placeholder":e.unref(n)("fu.search_bar.end_date_time")}),null,16,["modelValue","placeholder","value-format","start-placeholder","end-placeholder"])])])}}}));var qe=C(fn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/filter-bar/filter-components/FuFilterDateTime.vue"]]),pn={install:t=>{t.component(Pe.name,Pe),t.component(_e.name,_e),t.component(se.name,se),t.component(Ae.name,Ae),t.component(Le.name,Le),t.component(qe.name,qe)}},mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));const Me=function(){let t=new Date().getTime(),o=performance&&performance.now&&performance.now()*1e3||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(l){let n=Math.random()*16;return t>0?(n=(t+n)%16|0,t=Math.floor(t/16)):(n=(o+n)%16|0,o=Math.floor(o/16)),(l==="x"?n:n&3|8).toString(16)})},Ue=["manual","click","dblclick"],_n=e.defineComponent({name:"FuReadWriteSwitch",props:{value:Boolean,data:[String,Number,Boolean],writeTrigger:{type:String,default:"click",validator:t=>Ue.includes(t)}},setup(t,{slots:o,emit:l}){const n=e.ref(Me()),a=e.ref(t.value===void 0?!1:t.value);e.watch(()=>t.value,c=>{console.log(c),c!==a.value&&(c?u():i())});function r(){l("input",a.value),l("change",[t.data,a.value])}function u(){a.value=!0,e.nextTick(()=>{const c=document.getElementById(n.value),s=c==null?void 0:c.querySelector("input");s==null||s.click(),s==null||s.focus();const f=c==null?void 0:c.querySelector("textarea");f==null||f.focus(),r()})}function i(){a.value=!1,r()}const p={class:"fu-read-write-switch",attrs:{id:n.value},on:{}};!a.value&&t.writeTrigger!==Ue[0]&&(p.on[t.writeTrigger]=u);let m=t.data;return!a.value&&o.read&&(m=o.read({write:u})),a.value&&o.default&&(m=o.default({read:i})),()=>e.h("div",p,m)}});var v=C(_n,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/read-write-switch/FuReadWriteSwitch.vue"]]);const hn={name:"FuInputRwSwitch"},gn=e.defineComponent(z($({},hn),{props:{value:[String,Number],writeTrigger:{type:String,default:"click",validator:t=>["click","dblclick"].includes(t)}},emits:["input","blur"],setup(t,{emit:o}){const l=t,n=e.ref(l.value);e.watch(()=>l.value,i=>{n.value=i});function a(i){o("input",n.value,i)}function r(i,p){o("blur",n.value,p),i()}function u(i,p){p.key==="Enter"&&i()}return(i,p)=>{const m=e.resolveComponent("el-input"),c=e.resolveComponent("fu-read-write-switch");return e.openBlock(),e.createBlock(c,{"write-trigger":t.writeTrigger,data:n.value},{default:e.withCtx(({read:s})=>[e.createVNode(m,e.mergeProps({modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f)},i.$attrs,{onInput:a,onBlur:f=>r(s,f),onKeydown:f=>u(s,f)}),null,16,["modelValue","onBlur","onKeydown"])]),_:1},8,["write-trigger","data"])}}}));var Re=C(gn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/read-write-switch/FuInputRwSwitch.vue"]]);const bn={name:"FuSelectRwSwitch"},yn=e.defineComponent(z($({},bn),{props:{value:[String,Number],options:Array,writeTrigger:{type:String,default:"click",validator:t=>["click","dblclick"].includes(t)}},emits:["input","blur","change"],setup(t,{emit:o}){const l=t,n=e.ref(l.value);e.watch(()=>l.value,i=>{n.value=i});function a(i){o("input",n.value,i)}function r(i,p){setTimeout(()=>{i()},100),o("blur",n.value,p)}function u(i,p){o("change",n.value,p),i()}return(i,p)=>{const m=e.resolveComponent("el-option"),c=e.resolveComponent("el-select"),s=e.resolveComponent("fu-read-write-switch");return e.openBlock(),e.createBlock(s,{"write-trigger":t.writeTrigger,data:n.value},{read:e.withCtx(()=>[e.renderSlot(i.$slots,"read",{},()=>[e.createTextVNode(e.toDisplayString(n.value),1)])]),default:e.withCtx(({read:f})=>[e.createVNode(c,e.mergeProps({modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=d=>n.value=d)},i.$attrs,{onInput:a,onBlur:d=>r(f,d),onChange:d=>u(f,d)}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,d=>(e.openBlock(),e.createBlock(m,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))])]),_:2},1040,["modelValue","onBlur","onChange"])]),_:3},8,["write-trigger","data"])}}}));var Ke=C(yn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/read-write-switch/FuSelectRwSwitch.vue"]]);v.install=t=>{t.component(v.name,v),t.component(Re.name,Re),t.component(Ke.name,Ke)};var Cn=Object.freeze(Object.defineProperty({__proto__:null,default:v},Symbol.toStringTag,{value:"Module"}));const Sn={class:e.normalizeClass(["fu-quick-search"])},kn=["placeholder"],wn={name:"FuQuickSearch"},Bn=e.defineComponent(z($({},wn),{props:{value:String,placeholder:String,useIcon:{type:Boolean,default:!0}},emits:["input","change"],setup(t,{emit:o}){const l=t,n=e.ref("");e.watch(()=>l.value,i=>{n.value=i});function a(i){o("input",n.value,i)}function r(i){o("change",n.value,i)}function u(i){i.key==="Enter"&&o("change",n.value,i)}return(i,p)=>{const m=e.resolveComponent("Search"),c=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" , 'fu-quick-search--' + configSize "),e.createElementVNode("div",Sn,[t.useIcon?(e.openBlock(),e.createBlock(c,{key:0},{default:e.withCtx(()=>[e.createVNode(m)]),_:1})):e.createCommentVNode("v-if",!0),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{placeholder:t.placeholder,"onUpdate:modelValue":p[0]||(p[0]=s=>n.value=s),onInput:a,onBlur:r,onKeydown:u},null,40,kn),[[e.vModelText,n.value]])])])],2112)}}}));var he=C(Bn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/search-bar/FuQuickSearch.vue"]]);const xn={name:"FuSearchBarButton"},Fn=e.defineComponent(z($({},xn),{props:{tooltip:String},setup(t){return(o,l)=>{const n=e.resolveComponent("el-button"),a=e.resolveComponent("el-tooltip");return e.openBlock(),e.createBlock(a,{content:t.tooltip,disabled:!t.tooltip},{default:e.withCtx(()=>[e.createCommentVNode(' :size="configSize" '),e.createVNode(n,e.mergeProps({class:"fu-search-bar-button",circle:""},o.$attrs),null,16),e.createCommentVNode(" <slot></slot> "),e.createCommentVNode(" *****element\u95EE\u9898 \u52A0\u4E0A\u63D2\u69FD \u7A7A\u7684\u60C5\u51B5\u4E0B\u6E32\u67D3\u591A\u51FA\u4E00\u4E2Aspan\u6807\u7B7E\u95EE\u9898 \u5F85\u8003\u8651 ")]),_:1},8,["content","disabled"])}}}));var G=C(Fn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/search-bar/FuSearchBarButton.vue"]]);const En={class:"fu-complex-search"},Vn={class:"fu-complex-components__body"},Nn={class:"fu-complex-components__footer"};var $n=C(e.defineComponent({props:{components:Array},emits:["close","change"],setup(t,{emit:o}){const l=t,n=e.useSlots(),a=e.getCurrentInstance(),{t:r}=j(),u=e.ref(!1);function i(){o("close")}function p(){u.value=!u.value,c.value.forEach(s=>{s!=null&&s.init?s.init():console.warn("init undefined",s)})}function m(){u.value=!1;let s=[];c.value.forEach(f=>{let d;f.getCondition?d=f.getCondition():console.warn("getCondition undefined",f),d&&d.value!==void 0&&s.push(d)}),o("change",s)}const c=e.computed(()=>{var f,d;let s=[];return(f=n.default)!=null&&f.call(n)[0].children.length?(d=n.default)==null||d.call(n).forEach(_=>{s.push(_.componentInstance)}):l.components.forEach(_=>{s.push(a.refs[_.field][0])}),s});return(s,f)=>{const d=e.resolveComponent("el-button"),_=e.resolveComponent("el-popover");return e.openBlock(),e.createElementBlock("div",En,[e.createVNode(_,{trigger:"manual",modelValue:u.value,"onUpdate:modelValue":f[1]||(f[1]=h=>u.value=h),"show-arrow":!1,onHide:i,"popper-class":"fu-complex-components"},{reference:e.withCtx(()=>[e.createCommentVNode(' :size="configSize" '),e.createVNode(G,{icon:"ArrowRight",onClick:p,class:e.normalizeClass(["fu-complex-search__trigger",{"is-active":u.value}]),tooltip:e.unref(r)("fu.search_bar.adv_search")},null,8,["class","tooltip"])]),default:e.withCtx(()=>[e.createElementVNode("div",Vn,[e.renderSlot(s.$slots,"default",{},()=>[e.createCommentVNode(' :size="configSize" '),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.components,(h,y)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.component),e.mergeProps({key:y},h,{ref_for:!0,ref:h.field},e.toHandlers(h)),null,16))),128))])]),e.createElementVNode("div",Nn,[e.createCommentVNode(' :size="configSize" '),e.createVNode(d,{onClick:f[0]||(f[0]=h=>u.value=!1)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(r)("fu.search_bar.cancel")),1)]),_:1}),e.createVNode(d,{type:"primary",onClick:m},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(r)("fu.search_bar.ok")),1)]),_:1})])]),_:3},8,["modelValue"])])}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/search-bar/FuComplexSearch.vue"]]);const zn={class:e.normalizeClass(["fu-search-conditions"])},Dn={key:0},Tn={key:1},Pn={class:"condition-value"},An=["onClick"];var On=C(e.defineComponent({props:{conditions:Array},emits:["change"],setup(t,{emit:o}){const l=t;function n(a){l.conditions.splice(a,1),o("change",l.conditions)}return(a,r)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(" , 'fu-search-conditions--' + configSize "),e.createElementVNode("div",zn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.conditions,(u,i)=>(e.openBlock(),e.createElementBlock("div",{class:"fu-search-conditions__item",key:i},[u.label?(e.openBlock(),e.createElementBlock("div",Dn,e.toDisplayString(u.label),1)):e.createCommentVNode("v-if",!0),u.operatorLabel?(e.openBlock(),e.createElementBlock("div",Tn,e.toDisplayString(u.operatorLabel),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Pn,e.toDisplayString(u.valueLabel),1),e.createElementVNode("i",{class:"el-icon-close condition-remove",onClick:p=>n(i)},null,8,An)]))),128))])],2112))}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/search-bar/FuSearchContions.vue"]]);class In{constructor(o){M(this,"field");M(this,"label");M(this,"operator");M(this,"operatorLabel");M(this,"value");M(this,"valueLabel");this.field=o.field,this.label=o.label,this.operator=o.operator,this.operatorLabel=o.operatorLabel,this.value=o.value,this.valueLabel=o.valueLabel||o.value}}const jn={class:"fu-search-bar"},Ln={class:"fu-search-bar__content"},qn={class:"fu-search-bar__buttons"},Mn={name:"FuSearchBar"},Un=e.defineComponent(z($({},Mn),{props:{quickKey:{type:String,default:"quick"},quickPlaceholder:String,useCleanButton:{type:Boolean,default:!0},useRefreshButton:{type:Boolean,default:!1},useQuickSearch:{type:Boolean,default:!0},components:Array},emits:["close","exec"],setup(t,{emit:o}){const l=t,{t:n}=j(),a=e.useSlots(),r=e.ref(""),u=e.ref([]),i=e.ref();function p(w,D){let S=w.concat(D),k=new Map;for(let V of S)k.set(V.field,V);let E=[];return k.forEach(V=>{E.push(V)}),E}function m(){o("close")}function c(w,D){if(w){const S=l.quickKey,k=w;u.value=p(u.value,[new In({field:S,value:w,valueLabel:k})]),_(),r.value=""}}function s(w){w.value=p(w.value,w),_()}function f(){r.value="",u.value=[],o("exec",u.value)}function d(){i.value.close(),_()}function _(){if(!y){o("exec",r.value);return}o("exec",x.value)}const h=e.computed(()=>l.quickPlaceholder?l.quickPlaceholder:n("fu.search_bar.search")),y=e.computed(()=>{var w;return a!=null&&a.complex?!0:((w=l.components)==null?void 0:w.length)>0}),g=e.computed(()=>l.useCleanButton&&y&&(u.value.length>0||r.value)),b=e.computed(()=>l.useRefreshButton&&y),x=e.computed(()=>{const w={};return u.value.length>0&&u.value.forEach(D=>{const{field:S,operator:k,value:E}=D;w[D.field]={field:S,operator:k,value:E}}),w});return(w,D)=>(e.openBlock(),e.createElementBlock("div",jn,[e.createElementVNode("div",Ln,[e.createCommentVNode(' :size="configSize" '),e.unref(y)?(e.openBlock(),e.createBlock($n,{key:0,ref_key:"complex",ref:i,components:t.components,onChange:s,onClose:m},{default:e.withCtx(()=>[e.renderSlot(w.$slots,"complex")]),_:3},8,["components"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(' :size="configSize" '),e.unref(y)?(e.openBlock(),e.createBlock(On,{key:1,conditions:u.value,onChange:s},null,8,["conditions"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(' :size="configSize" '),t.useQuickSearch?(e.openBlock(),e.createBlock(he,{key:2,"use-icon":!e.unref(y),placeholder:e.unref(h),modelValue:r.value,"onUpdate:modelValue":D[0]||(D[0]=S=>r.value=S),onChange:c},null,8,["use-icon","placeholder","modelValue"])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",qn,[e.renderSlot(w.$slots,"buttons",{},()=>[e.createCommentVNode(' :size="configSize" '),e.unref(g)?(e.openBlock(),e.createBlock(G,{key:0,icon:"Close",onClick:f,tooltip:e.unref(n)("fu.search_bar.clean")},null,8,["tooltip"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(' :size="configSize" '),e.unref(b)?(e.openBlock(),e.createBlock(G,{key:1,icon:"Refresh",onClick:d,tooltip:e.unref(n)("fu.search_bar.refresh")},null,8,["tooltip"])):e.createCommentVNode("v-if",!0),e.renderSlot(w.$slots,"default")])])]))}}));var ee=C(Un,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/search-bar/FuSearchBar.vue"]]);ee.install=t=>{t.component(ee.name,ee),t.component(G.name,G),t.component(he.name,he)};var Rn=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));const Kn=["default","primary","success","warning","danger","info"],Wn=t=>!t||Kn.includes(t)?!0:(console.error("types is not contains "+t),!1);var We=C(e.defineComponent({props:{type:{type:String,default:"default",validator:Wn},rotate:Boolean,disabled:Boolean,active:Boolean,icon:String,size:{type:String,default:"32px"},backgroundColor:String,color:String,fontSize:String},setup(t){return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fu-speed-dial-button","fu-speed-dial-button--"+t.type,{"fu-speed-dial-button--rotate":t.rotate,"is-disabled":t.disabled,"is-active":t.active}]),style:e.normalizeStyle({width:t.size,height:t.size,backgroundColor:t.backgroundColor,color:t.color,fontSize:t.fontSize})},[e.renderSlot(o.$slots,"default",{},()=>[e.createElementVNode("i",{class:e.normalizeClass(t.icon)},null,2)])],6))}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/speed-dial/FuSpeedDialButton.vue"]]);const Hn={class:"fu-speed-dial-action-button"};var Gn=C(e.defineComponent({props:{index:Number,icon:{type:String,default:"el-icon-plus"},titleClass:String,titleBgColor:String,titleColor:String,buttonClass:String,bgColor:String,color:String,title:[String,Number]},emits:["click"],setup(t,{emit:o}){const l=t,n=e.inject("FuSpeedDial"),a=e.computed(()=>n.config),r=e.computed(()=>n.direction);e.computed(()=>n.clickClose);const u=e.computed(()=>{let c=a.value.fab.size+"px",s={position:"absolute",height:c};return["top","bottom"].includes(r.value)?(s["text-align"]="right",s.right=c):(s["text-align"]="center",s["min-width"]=c,l.index%2===0?s.top=c:s.top="-"+c),s}),i=e.computed(()=>{let c=l.titleBgColor,s=l.titleColor,f=a.value.item.titleFontSize;return{backgroundColor:c,color:s,fontSize:f}}),p=e.computed(()=>{let c=l.bgColor,s=l.color,f=a.value.item.buttonFontSize,d=a.value.item.size+"px";return{backgroundColor:c,color:s,fontSize:f,size:d}});function m(c){const{index:s,title:f}=l;o("click",{index:s,title:f},c),n.close()}return(c,s)=>(e.openBlock(),e.createElementBlock("div",Hn,[t.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fu-speed-dial-action-button__title",style:e.normalizeStyle(e.unref(u))},[e.renderSlot(c.$slots,"title",{},()=>[e.createElementVNode("div",{class:e.normalizeClass(["fu-speed-dial-action-button__text",t.titleClass]),style:e.normalizeStyle(e.unref(i)),onClick:m},e.toDisplayString(t.title),7)])],4)):e.createCommentVNode("v-if",!0),e.renderSlot(c.$slots,"default",{},()=>[e.createVNode(We,e.mergeProps({class:t.buttonClass},e.unref(p),{icon:t.icon,onClick:m}),null,16,["class","icon"])])]))}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/speed-dial/FuSpeedDialActionButton.vue"]]);const Yn={name:"FuSpeedDialItem"},Jn=e.defineComponent(z($({},Yn),{props:{index:{type:Number,required:!0}},setup(t){const o=t,l=e.inject("FuSpeedDial"),n=e.computed(()=>l.config),a=e.computed(()=>l.direction),r=e.computed(()=>l.active);e.computed(()=>l.size);const u=e.computed(()=>n.value.item.spacing||0),i=e.computed(()=>["top","left"].includes(a.value)?-n.value.fab.size-u.value:n.value.fab.size+u.value),p=e.computed(()=>{let d=n.value.fab.size+"px";return{width:d,height:d}});function m(d,_){["top","bottom"].includes(a.value)?d.style.transform="translateY("+_+")":d.style.transform="translateX("+_+")"}function c(d){d.style.transition="all 0.3s",d.style.position="absolute",m(d,0),d.style.opacity="0"}function s(d,_){let h=o.index*i.value+"px";setTimeout(()=>{m(d,h),d.style.opacity="1",_()})}function f(d,_){m(d,0),d.style.opacity="0",setTimeout(()=>{_()},200)}return(d,_)=>(e.openBlock(),e.createBlock(e.Transition,{css:!1,onBeforeEnter:c,onEnter:s,onLeave:f},{default:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fu-speed-dial-item",style:e.normalizeStyle(e.unref(p))},[e.renderSlot(d.$slots,"default",{},()=>[e.createVNode(Gn,e.mergeProps({index:t.index},d.$attrs),null,16,["index"])])],4)):e.createCommentVNode("v-if",!0)]),_:3}))}}));var ge=C(Jn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/speed-dial/FuSpeedDialItem.vue"]]);const Xn={class:"fu-speed-dial__content"},Qn={name:"FuSpeedDial"},Zn=e.defineComponent(z($({},Qn),{props:{id:String,value:Boolean,type:{type:String,default:"primary"},items:Array,size:{type:String,default:"default",validator:t=>["big","default","medium","small"].includes(t)},direction:{type:String,default:"top",validator:t=>["top","bottom","left","right"].includes(t)},icon:{type:String,default:"el-icon-plus"},activeIcon:{type:String,default:"el-icon-close"},movable:{type:Boolean,default:!1},position:{type:String,validator:t=>["absolute","fixed"].includes(t)},left:String,top:String,right:String,bottom:String,zIndex:{type:[String,Number],default:99},itemClickClose:{type:Boolean,default:!0},outsideClose:{type:Boolean,default:!0},manual:{type:Boolean,default:!1},localKey:String,sizeOptions:{type:Object,default:()=>({big:{fab:{size:56,fontSize:"18px"},item:{size:40,spacing:0,titleFontSize:"14px",buttonFontSize:"18px"}},default:{fab:{size:40,fontSize:"16px"},item:{size:32,spacing:0,titleFontSize:"14px",buttonFontSize:"16px"}},medium:{fab:{size:36,fontSize:"14px"},item:{size:28,spacing:0,titleFontSize:"12px",buttonFontSize:"14px"}},small:{fab:{size:32,fontSize:"12px"},item:{size:24,spacing:0,titleFontSize:"12px",buttonFontSize:"12px"}}})}},emits:["close","outside-click","click"],setup(t,{expose:o,emit:l}){const n=t,a=e.useSlots(),r=e.getCurrentInstance(),{zIndex:u,position:i,left:p,top:m,right:c,bottom:s}=n,f=e.ref(!1),d=e.ref(!1),_=e.reactive({zIndex:u,position:i,left:p,top:m,right:c,bottom:s}),h=function(){_.value={zIndex:u,position:i,left:p,top:m,right:c,bottom:s}};e.provide("FuSpeedDial",r),e.watch(()=>n.value,B=>{f.value=B}),e.watch(()=>n.position,h),e.watch(()=>n.zIndex,h),e.watch(()=>n.left,h),e.watch(()=>n.right,h),e.watch(()=>n.top,h),e.watch(()=>n.bottom,h);const y=e.computed(()=>"Fu-SD-"+n.localKey),g=e.computed(()=>n.items&&n.items.length>0?!0:a&&a.default),b=e.computed(()=>n.sizeOptions[n.size]||n.sizeOptions.default),x=e.computed(()=>{let B=n.type,T=!0,I=f.value,O=b.value.fab.size+"px",J=b.value.fab.fontSize,ce=n.activeIcon===n.icon?n.icon:f.value?n.activeIcon:n.icon;return{type:B,rotate:T,active:I,size:O,fontSize:J,icon:ce}}),w=e.computed(()=>{let B=b.value.item.spacing||0;return B+=(b.value.fab.size-b.value.item.size)/2,B}),D=e.computed(()=>{let B=b.value.fab.size+w.value;["top","left"].includes(n.direction)&&(B=-b.value.fab.size-w.value);let T={position:"absolute",zIndex:n.zIndex};return["top","bottom"].includes(n.direction)?T.top=B+"px":(T.top=0,T.left=B+"px"),T});function S(B){!d.value&&g.value&&(B.value=B===void 0?!B.value:B)}function k(B){n.manual||S(),l("click",[n.id,f.value],B)}function E(){d.value&&(document.addEventListener("mousemove",V),document.addEventListener("mouseup",A))}function V(B){if(d.value=!0,n.position==="fixed"){const I=r.vnode.el.getBoundingClientRect();let O=B.clientX-I.width/2,J=B.clientY-I.height/2;_.value.left=O+"px",_.value.top=J+"px",delete _.value.right,delete _.value.bottom}if(n.position==="absolute"){const{offsetLeft:T,offsetTop:I,clientWidth:O,clientHeight:J,offsetParent:ce}=this.$el,Dl=ce.clientWidth-O,Tl=ce.clientHeight-J;let Ce=T+B.movementX,Se=I+B.movementY;Ce>0&&Ce<Dl&&(_.value.left=Ce+"px",delete _.value.right),Se>0&&Se<Tl&&(_.value.top=Se+"px",delete _.value.bottom)}}function A(){Y(),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",A),setTimeout(()=>d.value=!1)}function Y(){n.localKey&&localStorage.setItem(y.value,JSON.stringify(_.value))}function K(){let B=localStorage.getItem(y.value);try{localStorage.getItem(y.value),B&&(_.value=JSON.parse(B))}catch(T){console.warn(y.value+" error",T)}}function F(B,T){console.log(B);const{index:I}=B;if(I!==void 0){const O=n.items[I];if(O.click&&typeof O.click=="function")return O.click(B,T)}}function N(){n.itemClickClose&&!n.manual&&S(!1),l("close",[n.id,f.value])}return e.onMounted(()=>{K()}),o({close:N}),(B,T)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createCommentVNode(' v-outside-click="outsideClickClose" '),e.createElementVNode("div",{class:"fu-speed-dial",style:e.normalizeStyle(e.unref(_))},[e.createElementVNode("div",Xn,[e.renderSlot(B.$slots,"fab",{},()=>[e.createVNode(We,e.mergeProps(e.unref(x),{onClick:k,onMousedown:E}),null,16)]),e.createElementVNode("div",{style:e.normalizeStyle(e.unref(D))},[e.renderSlot(B.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(I,O)=>(e.openBlock(),e.createBlock(ge,e.mergeProps({index:O,key:O},I,{onClick:F}),null,16,["index"]))),128))])],4)])],4)],2112))}}));var te=C(Zn,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/speed-dial/FuSpeedDial.vue"]]);te.install=t=>{t.component(te.name,te),t.component(ge.name,ge)};var vn=Object.freeze(Object.defineProperty({__proto__:null,default:te},Symbol.toStringTag,{value:"Module"}));const el={key:0,class:"icon"},tl=e.createElementVNode("i",{class:"el-icon-more"},null,-1),ol={name:"FuSplitPane"},nl=e.defineComponent(z($({},ol),{props:{min:{type:[Number,String],default:"10px"},left:[Number,String],right:[Number,String],top:[Number,String],bottom:[Number,String],direction:{validator:t=>["vertical","horizontal"].includes(t),default:"horizontal"},localKey:String,resizable:{type:Boolean,default:!0},resizerType:{validator:t=>["resizer","line"].includes(t),default:"resizer"},resizerClass:String,resizerStyle:Object,resizerHoverClass:String},emits:["changeSplit"],setup(t,{emit:o}){const l=t,n=e.getCurrentInstance(),a=e.ref(!1),r=e.ref(0),u=e.ref(0),i=e.ref(0),p=e.ref(!1);e.watch(()=>l.left,(F,N)=>{F!==N&&e.nextTick(()=>{r.value=h.value})},{immediate:!0}),e.watch(()=>l.bottom,(F,N)=>{F!==N&&e.nextTick(()=>{r.value=h.value})},{immediate:!0});const m=e.computed(()=>l.right||l.bottom),c=e.computed(()=>l.direction==="horizontal"),s=e.computed(()=>a.value?"none":""),f=e.computed(()=>a.value&&l.resizable?c.value?"col-resize":"row-resize":""),d=e.computed(()=>n.refs.outerWrapper[_.value]),_=e.computed(()=>c.value?"offsetWidth":"offsetHeight"),h=e.computed(()=>c.value?l.left?A(V(l.left)):l.right&&A(V(l.right))||d.value/2:l.top?A(V(l.top)):l.bottom&&A(V(l.bottom))||d.value/2),y=e.computed(()=>`calc(100% - ${r.value}px)`),g=e.computed(()=>c.value?"width":"height"),b=e.computed(()=>c.value?m.value?"right":"left":m.value?"bottom":"top"),x=e.computed(()=>"Fu-SP-"+l.localKey),w=e.computed(()=>[`fu-split-pane__${l.resizerType}`,`is-${l.direction}`,l.resizable&&"is-resizable",l.resizerClass,p.value&&(l.resizerHoverClass||"hover")]),D=e.computed(()=>l.resizerType==="resizer"&&c.value&&"3px");function S(F){i.value=c.value?F.pageX:F.pageY,u.value=r.value,a.value=!0,document.addEventListener("mousemove",E),document.addEventListener("mouseup",k)}function k(){a.value=!1,document.removeEventListener("mousemove",E),document.removeEventListener("mouseup",k),o("changeSplit",r.value)}function E(F){if(!!l.resizable&&a.value){const B=(c.value?F.pageX:F.pageY)-i.value,T=m.value?u.value-B:u.value+B;T>V(l.min)&&T<d.value-V(l.min)&&(r.value=T,Y())}}function V(F){const N=n.refs.outerWrapper[_.value];return typeof F=="string"&&F.includes("%")?parseInt(F)/100*N:parseInt(F)}function A(F){return F<V(l.min)?V(l.min):F}function Y(){const F={[b.value]:r.value};l.localKey&&localStorage.setItem(x.value,JSON.stringify(F))}function K(){if(l.localKey){const F=localStorage.getItem(x.value);F&&F[b.value]?r.value=parseInt(F)||h.value:r.value=h.value}else r.value=h.value}return e.onMounted(()=>{K()}),(F,N)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle({cursor:e.unref(f),userSelect:e.unref(s)}),class:"fu-split-pane",ref:"outerWrapper"},[e.createElementVNode("div",{class:e.normalizeClass([`is-${t.direction}`,"fu-split-pane__left"]),style:e.normalizeStyle({[e.unref(g)]:e.unref(m)?e.unref(y):`${r.value}px`,"padding-right":e.unref(D)})},[e.renderSlot(F.$slots,e.unref(c)?"left":"top")],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(w)),style:e.normalizeStyle($({[e.unref(b)]:`${r.value}px`},t.resizerStyle)),onMousedown:S,onMouseover:N[0]||(N[0]=B=>p.value=!0),onMouseleave:N[1]||(N[1]=B=>p.value=!1)},[t.resizerType==="resizer"?(e.openBlock(),e.createElementBlock("div",el,[e.renderSlot(F.$slots,"resizer",{},()=>[tl])])):e.createCommentVNode("v-if",!0)],38),e.createElementVNode("div",{class:e.normalizeClass([`is-${t.direction}`,"fu-split-pane__right"]),style:e.normalizeStyle({[e.unref(g)]:e.unref(m)?`${r.value}px`:e.unref(y),"padding-left":e.unref(D)})},[e.renderSlot(F.$slots,e.unref(c)?"right":"bottom")],6)],4))}}));var oe=C(nl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/split-pane/FuSplitPane.vue"]]);oe.install=t=>{t.component(oe.name,oe)};var ll=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),rl={install:t=>{}},al=Object.freeze(Object.defineProperty({__proto__:null,default:rl},Symbol.toStringTag,{value:"Module"}));const il=t=>{const o=t.type.name.indexOf("FuTableColumnDropdown")>=0,{fix:l}=t.props;let{type:n}=t.props;return l!==void 0&&l!==!1||["selection","index","expand"].includes(n)||o},cl=t=>{if(t.props.label)return t.props.label;const o="FU-T-",l=t.type.name.indexOf("FuTableColumnDropdown")>=0;let{label:n,type:a}=t.props;return l&&(n=o+"dropdown"),n!=null||(n=t.props.label),n!=null||(n=o+a),n},sl=(t,o)=>{const l=o.slots.default(),n=[];let{columns:a}=t;const r=l[0].children.filter(u=>u.type.name!==void 0);return r?!a||(a==null?void 0:a.length)===0?r:(a.forEach(u=>{let i=r.find(p=>u.label===cl(p));i&&(il(i)||u.show!==!1)&&n.push(i)}),n):n},dl={name:"FuTable"},ul=e.defineComponent(z($({},dl),{props:{columns:Array,refresh:{type:Boolean,default:!0},localKey:String},setup(t){var _;const o=t,l=e.useSlots(),n=e.ref(0),a="FU-T-",r=h=>{const y=h.type.name.indexOf("FuTableColumnDropdown")>=0,{fix:g}=h.props;let{type:b}=h.props;return g!==void 0&&g!==!1||["selection","index","expand"].includes(b)||y},u=h=>{if(h.props.label)return h.props.label;const y=h.type.name.indexOf("FuTableColumnDropdown")>=0;let{label:g,type:b}=h.props;return y&&(g=a+"dropdown"),g!=null||(g=h.props.label),g!=null||(g=a+b),g},i=h=>{h.splice(0,h.length)},p=h=>{h.forEach(y=>{y.type.key||(y.type.key=u(y))})},m=(h,y)=>{h.forEach(g=>{const b=u(g),x=r(g),{show:w}=g.props;if(!b&&!x)throw new Error("unfixed column's label is required.");y.push({label:b,show:w,fix:x})})},c=(h,y)=>{h.forEach(g=>{y.push(g)})},s=(h,y)=>{y!==void 0&&(h.length!==y.length&&(i(y),m(h,y)),y.some(g=>g.label===void 0)&&y.forEach((g,b)=>{var x;(x=g.label)!=null||(g.label=u(h[b]))}))},f=e.computed(()=>a+o.localKey),d=(_=l.default)==null?void 0:_.call(l).filter(h=>h.type.name!==void 0);return e.watch(()=>o.columns,()=>{o.refresh&&n.value++,o.localKey&&localStorage.setItem(f.value,JSON.stringify(o.columns))},{deep:!0}),e.onMounted(()=>{if(p(d),!(!d||!o.columns)){if(o.localKey){let h=localStorage.getItem(f.value);if(h)try{const y=JSON.parse(h);i(o.columns),c(y,o.columns),s(d,o.columns);return}catch(y){console.error("get columns error",y)}}o.columns.length===0&&m(d,o.columns)}}),e.provide("localKey",o.localKey),e.onUpdated(()=>{p(d),s(d,o.columns)}),(h,y)=>{const g=e.resolveComponent("el-table");return e.openBlock(),e.createBlock(g,e.mergeProps({class:"fu-table"},h.$attrs,{key:n.value,"header-row-class-name":"fu-table-header"}),{default:e.withCtx(()=>[e.createVNode(e.unref(sl),{name:"table-body",columns:t.columns},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"default")]),_:3},8,["columns"])]),_:3},16)}}}));var ne=C(ul,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/FuTable.vue"]]);const He=t=>{const o=e.computed(()=>t?"FU-T-"+t:"");function l(i,p){i.dataTransfer&&(i.dataTransfer.effectAllowed="move",i.dataTransfer.setData("source_index",p))}function n(i){i.preventDefault(),i.target&&(i.target.style.opacity=.2)}function a(i){i.preventDefault(),i.target&&(i.target.style.opacity="")}function r(i){i.dataTransfer&&i.dataTransfer.clearData()}function u(i,p,m){var f;let c=Number((f=i.dataTransfer)==null?void 0:f.getData("source_index")),s=m;s>c?(p.splice(s+1,0,p[c]),p.splice(c,1)):(p.splice(s,0,p[c]),p.splice(c+1,1)),i.target&&(i.target.style.opacity="")}return{columnsKey:o,dragstart:l,dragenter:n,dragleave:a,dragend:r,drop:u}},fl={class:"fu-table-column-select-popper__body"},pl={class:"fu-table-column-select-popper__footer"};var ml=C(e.defineComponent({props:{icon:{type:String,default:"Setting"},trigger:{type:String,default:"click",validator:t=>["click","hover"].includes(t)},columns:{type:Array,default:()=>[]}},setup(t){const o=t,{t:l}=j(),n=e.inject("localKey"),{columnsKey:a,dragstart:r,dragenter:u,dragleave:i,dragend:p,drop:m}=He(n),c=e.computed(()=>{var d;return(d=o.columns)==null?void 0:d.every(_=>_.fix)}),s=e.computed(()=>{var d;return((d=o.columns)==null?void 0:d.length)>0&&!c.value});function f(){a&&localStorage.removeItem(a.value),o.columns.splice(0,o.columns.length)}return(d,_)=>{const h=e.resolveComponent("el-checkbox"),y=e.resolveComponent("el-button"),g=e.resolveComponent("el-popover");return e.withDirectives((e.openBlock(),e.createBlock(g,{class:"fu-table-column-select","popper-class":"fu-table-column-select-popper",trigger:t.trigger,"show-arrow":!1},{reference:e.withCtx(()=>[e.createVNode(y,{class:"fu-search-bar-button",icon:t.icon},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("fu.table.custom_table_rows")),1)]),_:1},8,["icon"])]),default:e.withCtx(()=>[e.createElementVNode("h3",null,e.toDisplayString(e.unref(l)("fu.table.custom_table_fields")),1),e.createElementVNode("div",fl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,(b,x)=>(e.openBlock(),e.createElementBlock("div",{key:x,class:"fu-table-column-select-popper__item"},[e.withDirectives(e.createVNode(h,{modelValue:b.show,"onUpdate:modelValue":w=>b.show=w,checked:b.show!==!1,draggable:"true",onDragstart:w=>e.unref(r)(w,x),onDragenter:e.unref(u),onDragleave:e.unref(i),onDragover:_[0]||(_[0]=e.withModifiers(()=>{},["prevent"])),onDragend:e.unref(p),onDrop:w=>e.unref(m)(w,t.columns,x)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","checked","onDragstart","onDragenter","onDragleave","onDragend","onDrop"]),[[e.vShow,!b.fix]])]))),128))]),e.createElementVNode("div",pl,[e.unref(a)?(e.openBlock(),e.createBlock(y,{key:0,onClick:f},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("fu.table.reset")),1)]),_:1})):e.createCommentVNode("v-if",!0)])]),_:1},8,["trigger"])),[[e.vShow,e.unref(s)]])}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-column-select/FuTableColumnSelectPopover.vue"]]);const _l={style:{display:"inline-block"}};var hl=C(e.defineComponent({props:{icon:{type:String,default:"Setting"},trigger:{type:String,default:"hover",validator:t=>["click","hover"].includes(t)},columns:{type:Array,default:()=>[]}},setup(t){const o=t,l=e.inject("localKey"),{t:n}=j(),a=(y,g)=>(y.forEach(b=>{g.push(Object.assign({},b))}),g),{columnsKey:r,dragstart:u,dragenter:i,dragleave:p,dragend:m,drop:c}=He(l),s=e.ref([]),f=e.ref(!1);function d(){s.value=[],a(o.columns,s.value)}function _(){o.columns.splice(0,o.columns.length),s.value.forEach(y=>{o.columns.push(y)}),f.value=!1}function h(){r&&localStorage.removeItem(r.value),o.columns.splice(0,o.columns.length),f.value=!1}return(y,g)=>{const b=e.resolveComponent("el-button"),x=e.resolveComponent("el-alert"),w=e.resolveComponent("el-checkbox"),D=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",_l,[e.createCommentVNode(' :size="configSize" '),e.createVNode(b,{class:"fu-search-bar-button",icon:t.icon,onClick:g[0]||(g[0]=S=>f.value=!0)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.table.custom_table_rows")),1)]),_:1},8,["icon"]),e.createVNode(D,{"custom-class":"fu-table-column-select-dialog",modelValue:f.value,"onUpdate:modelValue":g[2]||(g[2]=S=>f.value=S),onOpen:d,"append-to-body":""},{title:e.withCtx(()=>[e.createElementVNode("h3",null,e.toDisplayString(e.unref(n)("fu.table.custom_table_fields")),1),e.createVNode(x,{title:e.unref(n)("fu.table.custom_table_fields_desc"),type:"info",closable:!1},null,8,["title"])]),footer:e.withCtx(()=>[e.unref(r)?(e.openBlock(),e.createBlock(b,{key:0,onClick:h},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.table.reset")),1)]),_:1})):e.createCommentVNode("v-if",!0),e.createVNode(b,{type:"primary",onClick:_},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n)("fu.table.ok")),1)]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(S,k)=>e.withDirectives((e.openBlock(),e.createBlock(w,{key:k,modelValue:S.show,"onUpdate:modelValue":E=>S.show=E,checked:S.show!==!1,draggable:"true",onDragstart:E=>e.unref(u)(E,k),onDragenter:e.unref(i),onDragleave:e.unref(p),onDragover:g[1]||(g[1]=e.withModifiers(()=>{},["prevent"])),onDragend:e.unref(m),onDrop:E=>e.unref(c)(E,s.value,k)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","checked","onDragstart","onDragenter","onDragleave","onDragend","onDrop"])),[[e.vShow,!S.fix]])),128))]),_:1},8,["modelValue"])])}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-column-select/FuTableColumnSelectDialog.vue"]]);const gl=e.defineComponent({name:"FuTableColumnSelect",props:["type"],setup(t,o){const{type:l}=t;return()=>l==="dialog"?e.h(hl,o.attrs,o.slots):e.h(ml,o.attrs,o.slots)}});var le=C(gl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-column-select/FuTableColumnSelect.vue"]]);le.install=t=>{t.component(le.name,le)};const bl={name:"FuTablePagination"},yl=e.defineComponent(z($({},bl),{props:{currentPage:{type:Number,default:1},pageSize:{type:Number,default:5},pageSizes:{type:Array,default:function(){return[5,10,20,50,100]}},total:{type:Number,default:0}},emits:["size-change","current-change","change","update:pageSize","update:currentPage"],setup(t,{emit:o}){function l(a){o("update:pageSize",a),o("size-change"),o("change")}function n(a){o("update:currentPage",a),o("current-change"),o("change")}return(a,r)=>{const u=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(u,{onSizeChange:l,onCurrentChange:n,"current-page":t.currentPage,"page-sizes":t.pageSizes,"page-size":t.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:t.total},null,8,["current-page","page-sizes","page-size","total"])}}}));var Ge=C(yl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/FuTablePagination.vue"]]),be=C(e.defineComponent({props:{size:{type:String,default:"default"},label:String,disabled:Boolean,icon:Boolean},setup(t){return(o,l)=>{const n=e.resolveComponent("el-button"),a=e.resolveComponent("el-tooltip");return e.openBlock(),e.createBlock(a,{content:t.label,disabled:!t.icon},{default:e.withCtx(()=>[e.createVNode(n,e.mergeProps({link:""},o.$attrs,{disabled:t.disabled}),{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},16,["disabled"])]),_:3},8,["content","disabled"])}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-operations/FuTableButton.vue"]]),ye=C(e.defineComponent({props:{row:Object,buttons:{type:Array,required:!0},size:{type:String,default:"default"},type:{type:String,default:"label",validator:t=>["icon","label"].includes(t)}},setup(t){const o=t,{t:l}=j(),n=e.computed(()=>function(r){return typeof r.disabled=="function"?r.disabled(o.row):r.disabled});function a(r){r.click(o.row)}return(r,u)=>{const i=e.resolveComponent("MoreFilled"),p=e.resolveComponent("el-icon"),m=e.resolveComponent("el-button"),c=e.resolveComponent("el-dropdown-item"),s=e.resolveComponent("el-dropdown-menu"),f=e.resolveComponent("el-dropdown");return e.openBlock(),e.createBlock(f,{onCommand:a,class:"fu-table-more-button"},{dropdown:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.buttons,(d,_)=>(e.openBlock(),e.createBlock(c,{key:_,icon:t.type==="icon"&&d.icon,disabled:e.unref(n)(d),command:d},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.label),1)]),_:2},1032,["icon","disabled","command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(m,{link:"",type:"primary",onClick:u[0]||(u[0]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[t.type==="icon"?(e.openBlock(),e.createBlock(p,{key:0},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(l)("fu.table.more")),1)],2112))]),_:1})]),_:1})}}}),[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-operations/FuTableMoreButton.vue"]]);const Cl={name:"FuTableOperations"},Sl=e.defineComponent(z($({},Cl),{props:{align:{type:String,default:"center"},width:[String,Number],minWidth:[String,Number],ellipsis:{type:Number,default:3},buttons:{type:Array,required:!0},type:{type:String,default:"label",validator:t=>["icon","label"].includes(t)}},setup(t){const o=t,l=e.computed(()=>o.buttons.some(m=>typeof m.show=="function")),n=e.computed(()=>function(m){return p(m)?i(m).slice(0,o.ellipsis):i(m)}),a=e.computed(()=>function(m){return p(m)?i(m).slice(o.ellipsis):[]}),r=e.computed(()=>{let m=l.value?o.ellipsis:n.value.length,c=35+m*58+58;return o.minWidth&&(c=c<o.minWidth?o.minWidth:c),o.width?o.width:c}),u=e.computed(()=>function(m,c){return typeof m.disabled=="function"?m.disabled(c):m.disabled});function i(m){var c;return(c=o.buttons)==null?void 0:c.filter(s=>typeof s.show=="function"?s.show(m)!==!1:s.show!==!1)}function p(m){var c;return((c=i(m))==null?void 0:c.length)>o.ellipsis+1}return(m,c)=>{const s=e.resolveComponent("el-icon"),f=e.resolveComponent("el-table-column");return e.openBlock(),e.createBlock(f,e.mergeProps({"class-name":"fu-table-operations",align:t.align,width:e.unref(r)},m.$attrs),{header:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.$attrs.label),1)]),default:e.withCtx(({row:d})=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n)(d),(_,h)=>(e.openBlock(),e.createBlock(be,{icon:t.type==="icon",key:h,onClick:e.withModifiers(y=>_.click(d),["stop"]),disabled:e.unref(u)(_,d),label:_.label,type:_.type||"primary",link:""},{default:e.withCtx(()=>[t.type==="icon"?(e.openBlock(),e.createBlock(s,{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(_.icon)))]),_:2},1024)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(_.label),1)],2112))]),_:2},1032,["icon","onClick","disabled","label","type"]))),128)),e.unref(a)(d).length>0?(e.openBlock(),e.createBlock(ye,{key:0,type:t.type,buttons:e.unref(a)(d),row:d},null,8,["type","buttons","row"])):e.createCommentVNode("v-if",!0)]),_:1},16,["align","width"])}}}));var re=C(Sl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-operations/FuTableOperations.vue"]]);re.install=t=>{t.component(re.name,re),t.component(be.name,be),t.component(ye.name,ye)};const kl={class:"fu-dropdown-link"},wl={key:0,class:"fu-table-column-dropdown__title"},Bl={name:"FuTableColumnDropdown"},xl=e.defineComponent(z($({},Bl),{props:{showType:{type:String,default:"always",validator:t=>["always","hover","selected"].includes(t)},menus:{type:Array,default:()=>[]},title:String,trigger:{type:String,default:"click"},width:{type:String,default:"40"}},setup(t,{expose:o}){const l=t,n=e.getCurrentInstance(),a=e.computed(()=>function(c){var s,f,d;return l.showType==="selected"?((d=(f=(s=n==null?void 0:n.parent)==null?void 0:s.parent)==null?void 0:f.store)==null?void 0:d.getSelectionRows()).includes(c)&&!0:!0}),r=e.computed(()=>function(c,s){return typeof c.disabled=="function"?c.disabled(s):c.disabled});function u({item:c,row:s}){c.click(s)}function i(c,s){return{item:c,row:s}}function p(c){n.refs[`dropdown${c}`].handleOpen()}function m(c){n.refs[`dropdown${c}`].handleClose()}return o({show:p,hide:m}),(c,s)=>{const f=e.resolveComponent("MoreFilled"),d=e.resolveComponent("el-icon"),_=e.resolveComponent("el-dropdown-item"),h=e.resolveComponent("el-dropdown-menu"),y=e.resolveComponent("el-dropdown"),g=e.resolveComponent("el-table-column");return e.openBlock(),e.createBlock(g,e.mergeProps({"class-name":"fu-table-column-dropdown",width:t.width,resizable:!1,align:"center"},c.$attrs),{default:e.withCtx(b=>[e.unref(a)(b.row)?(e.openBlock(),e.createBlock(y,{key:0,onCommand:u,trigger:t.trigger,class:e.normalizeClass(t.showType==="hover"?"fu-show-icon":""),placement:"bottom",ref:`dropdown${b.$index}`},{dropdown:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[e.renderSlot(c.$slots,"title",{},()=>[t.title?(e.openBlock(),e.createElementBlock("div",wl,e.toDisplayString(t.title),1)):e.createCommentVNode("v-if",!0)]),e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(b)),()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menus,(x,w)=>(e.openBlock(),e.createBlock(_,{key:w,icon:x.icon,disabled:e.unref(r)(x,b.row),divided:x.divided,command:i(x,b.row)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1032,["icon","disabled","divided","command"]))),128))])]),_:2},1024)]),default:e.withCtx(()=>[e.createElementVNode("span",kl,[e.renderSlot(c.$slots,"icon",{},()=>[e.createVNode(d,{class:"fu-icon-more"},{default:e.withCtx(()=>[e.createVNode(f)]),_:1})])])]),_:2},1032,["trigger","class"])):e.createCommentVNode("v-if",!0)]),_:3},16,["width"])}}}));var ae=C(xl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/table/table-column-dropdown/FuTableColumnDropdown.vue"]]);ae.install=t=>{t.component(ae.name,ae)},ne.install=t=>{t.component(ne.name,ne),t.component(Ge.name,Ge),t.use(re.install),t.use(le.install),t.use(ae.install)};var Fl=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));const El={name:"FuTabs"},Vl=e.defineComponent(z($({},El),{props:{addType:{type:String,default:"default",validator:t=>["default","dropdown"].includes(t)},dropdownMenus:{type:Array,default:()=>[]},addTrigger:{type:String,default:"hover",validator:t=>["hover","click"].includes(t)},addIcon:{type:String,default:"Plus"},addButtonLabel:String,addable:Boolean},emits:["command"],setup(t,{emit:o}){const l=t;function n(r){const u=Me();let i=null;r&&(i=l.dropdownMenus.find(p=>p.command===r)),o("command",u,i)}function a(r,u){if(r==="add")return!1}return(r,u)=>{const i=e.resolveComponent("el-icon"),p=e.resolveComponent("el-button"),m=e.resolveComponent("el-dropdown-item"),c=e.resolveComponent("el-dropdown-menu"),s=e.resolveComponent("el-dropdown"),f=e.resolveComponent("el-tab-pane"),d=e.resolveComponent("el-tabs");return e.openBlock(),e.createBlock(d,e.mergeProps({class:"fu-tabs","before-leave":a,editable:!1,addable:!1},r.$attrs),{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default"),t.addable?(e.openBlock(),e.createBlock(f,{name:"add",key:"add"},{label:e.withCtx(()=>[e.renderSlot(r.$slots,"add",{},()=>[e.createCommentVNode(" \u4E0B\u62C9\u65B9\u5F0F "),t.addType==="dropdown"?(e.openBlock(),e.createBlock(s,{key:0,onCommand:n,trigger:t.addTrigger},{dropdown:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dropdownMenus,(_,h)=>(e.openBlock(),e.createBlock(m,{key:h,icon:_.icon,disabled:_.disabled,divided:_.divided,command:_.command},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.label),1)]),_:2},1032,["icon","disabled","divided","command"]))),128))]),_:1})]),default:e.withCtx(()=>[e.renderSlot(r.$slots,"dropdownButton",{},()=>[e.createVNode(p,{type:"primary",plain:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.addIcon)))]),_:1}),t.addButtonLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.addButtonLabel),1)],2112)):e.createCommentVNode("v-if",!0)]),_:1})])]),_:3},8,["trigger"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" \u9ED8\u8BA4 "),e.createVNode(p,{onClick:n,type:"primary",plain:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.addIcon)))]),_:1}),t.addButtonLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.addButtonLabel),1)],2112)):e.createCommentVNode("v-if",!0)]),_:1})],2112))])]),_:3})):e.createCommentVNode("v-if",!0)]),_:3},16)}}}));var ie=C(Vl,[["__file","/Users/q4speed/fit2cloud2.0/fit2cloud-ui-plus/src/components/tabs/FuTabs.vue"]]);ie.install=t=>{t.component(ie.name,ie)};var Nl=Object.freeze(Object.defineProperty({__proto__:null,default:ie},Symbol.toStringTag,{value:"Module"})),$l={name:"fit2cloud-ui-plus",version:"1.0.0-beta.0",private:!1,main:"lib/fit2cloud-ui-plus.common.js",style:"lib/fit2cloud-ui-plus.css",files:["lib","src"],author:"fit2cloud",license:"GPL-3.0 License",repository:{type:"git",url:"git+https://github.com/fit2cloud-ui/fit2cloud-ui-plus.git"},scripts:{dev:"vite",build:"vite build","build-lib":"vite build --mode lib",preview:"vite preview"},dependencies:{"@element-plus/icons-vue":"^1.1.4","element-plus":"^2.2.2","github-markdown-css":"^5.1.0",prismjs:"^1.28.0","vite-plugin-markdown":"^2.0.2",vue:"^3.2.25","vue-router":"^4.0.14"},devDependencies:{"@types/node":"^17.0.29","@vitejs/plugin-vue":"^2.3.1",sass:"^1.51.0","sass-loader":"^12.6.0",typescript:"^4.5.4","unplugin-vue-define-options":"^0.6.1",vite:"^2.9.5","vue-tsc":"^0.34.7"}};const Ye={"./components/filter-bar/index.ts":mn,"./components/read-write-switch/index.ts":Cn,"./components/search-bar/index.ts":Rn,"./components/speed-dial/index.ts":vn,"./components/split-pane/index.ts":ll,"./components/steps/index.ts":al,"./components/table/index.ts":Fl,"./components/tabs/index.ts":Nl},zl=t=>{Object.keys(Ye).forEach(o=>{let l=Ye[o].default;t.use(l)})};return{name:"Fit2CloudUIPlus",version:$l.version,install:zl}});
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "fit2cloud-ui-plus",
3
+ "version": "0.0.1-beta.0",
4
+ "private": false,
5
+ "main": "./lib/fit2cloud-ui-plus.umd.js",
6
+ "module": "./lib/fit2cloud-ui-plus.es.js",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./lib/fit2cloud-ui-plus.es.js",
10
+ "require": "./lib/fit2cloud-ui-plus.umd.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "lib",
15
+ "src"
16
+ ],
17
+ "author": "fit2cloud",
18
+ "license": "GPL-3.0 License",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/fit2cloud-ui/fit2cloud-ui-plus.git"
22
+ },
23
+ "scripts": {
24
+ "dev": "vite",
25
+ "build": "vite build",
26
+ "build-lib": "vite build --mode lib",
27
+ "preview": "vite preview"
28
+ },
29
+ "dependencies": {
30
+ "@element-plus/icons-vue": "^1.1.4",
31
+ "element-plus": "^2.2.2",
32
+ "github-markdown-css": "^5.1.0",
33
+ "prismjs": "^1.28.0",
34
+ "vite-plugin-markdown": "^2.0.2",
35
+ "vue": "^3.2.25",
36
+ "vue-router": "^4.0.14"
37
+ },
38
+ "devDependencies": {
39
+ "@types/node": "^17.0.29",
40
+ "@vitejs/plugin-vue": "^2.3.1",
41
+ "sass": "^1.51.0",
42
+ "sass-loader": "^12.6.0",
43
+ "typescript": "^4.5.4",
44
+ "unplugin-vue-define-options": "^0.6.1",
45
+ "vite": "^2.9.5",
46
+ "vue-tsc": "^0.34.7"
47
+ }
48
+ }
@@ -0,0 +1,175 @@
1
+ <template>
2
+ <div class="fu-filter" ref="filterRef">
3
+ <div class="fu-filter__result">{{ count }} <span style="opacity: 0.6">{{ t('fu.filter_bar.results') }}</span></div>
4
+ <div class="fu-filter__split"/>
5
+
6
+ <div class="fu-filter__scroll" @mousedown="left" @mouseup="mouseup" v-if="scroll">
7
+ <el-icon>
8
+ <ArrowLeftBold/>
9
+ </el-icon>
10
+ </div>
11
+
12
+ <fu-filter-conditions :conditions="conditions" @change="change" ref="conditionsRef"/>
13
+
14
+ <div class="fu-filter__scroll" @mousedown="right" @mouseup="mouseup" v-if="scroll">
15
+ <el-icon>
16
+ <ArrowRightBold/>
17
+ </el-icon>
18
+ </div>
19
+
20
+ <div class="fu-filter__clear fu-scale-click" @click="clear" v-if="conditions.length > 0">
21
+ <el-icon>
22
+ <Delete/>
23
+ </el-icon>
24
+ {{ t('fu.filter_bar.clear') }}
25
+ </div>
26
+
27
+ <el-drawer :size="drawerWidth" custom-class="fu-filter__drawer" :title="t('fu.filter_bar.drawer_title')"
28
+ v-model="drawer" @open="initComponents">
29
+ <div class="drawer-body">
30
+ <slot>
31
+ <component v-for="(c, i) in components" :key="i" :is="c.component" v-bind="c" :ref="c.field" v-on="c"/>
32
+ </slot>
33
+ </div>
34
+ <div class="drawer-footer">
35
+ <slot name="footer">
36
+ <el-button @click="drawer = false">{{ t('fu.filter_bar.cancel') }}</el-button>
37
+ <el-button type="primary" @click="filter">{{ t('fu.filter_bar.search') }}</el-button>
38
+ </slot>
39
+ </div>
40
+ </el-drawer>
41
+ </div>
42
+ </template>
43
+
44
+ <script setup lang="ts">
45
+ import {
46
+ ref,
47
+ computed,
48
+ onMounted,
49
+ nextTick,
50
+ provide,
51
+ Ref,
52
+ ComponentPublicInstance
53
+ } from "vue";
54
+ import FuFilterConditions from "./FuFilterConditions.vue";
55
+ import {useLocale} from "@/hooks"
56
+ import {FilterCondition, ReferenceContext, referenceKey} from "@/components/filter-bar/types";
57
+ defineOptions({ name: "FuFilter" });
58
+ const {t} = useLocale()
59
+
60
+ const filterRef = ref<HTMLElement | null>(null)
61
+ const conditionsRef = ref<ComponentPublicInstance | null>(null)
62
+
63
+ const props = defineProps({
64
+ count: {
65
+ type: Number,
66
+ default: 0
67
+ },
68
+ components: Array,
69
+ drawerWidth: {
70
+ type: [Number, String],
71
+ default: "680px"
72
+ }
73
+ })
74
+
75
+ const emit = defineEmits(["filter"])
76
+
77
+ const drawer = ref(true)
78
+ const scroll = ref(false)
79
+ const conditions: Ref<Array<FilterCondition>> = ref([])
80
+ const references: Ref<Array<ReferenceContext>> = ref([])
81
+
82
+ let leftTimer: NodeJS.Timer, rightTimer: NodeJS.Timer
83
+
84
+ function mouseup() {
85
+ clearInterval(leftTimer)
86
+ clearInterval(rightTimer)
87
+ }
88
+
89
+ function left() {
90
+ let el = conditionsRef.value?.$el
91
+ leftTimer = setInterval(() => {
92
+ if (el) el.scrollLeft -= 15
93
+ }, 50)
94
+ }
95
+
96
+ function right() {
97
+ let el = conditionsRef.value?.$el
98
+ rightTimer = setInterval(() => {
99
+ if (el) el.scrollLeft += 15
100
+ }, 50)
101
+ }
102
+
103
+ function change() {
104
+ nextTick(() => {
105
+ let el = conditionsRef.value?.$el
106
+ scroll.value = el != null && el?.getBoundingClientRect().width >= scrollWidth.value
107
+ })
108
+ emit("filter", conditions.value)
109
+ }
110
+
111
+ function setConditions(conditionObj: any) {
112
+ conditions.value = []
113
+ if (conditionObj) {
114
+ Object.keys(conditionObj).forEach(key => {
115
+ let value = conditionObj[key].value
116
+ references.value.forEach(r => {
117
+ if (r.field === key) {
118
+ r.init(value)
119
+ const condition = r.getCondition()
120
+ if (condition) {
121
+ conditions.value.push(condition)
122
+ }
123
+ }
124
+ })
125
+ })
126
+ change();
127
+ }
128
+ }
129
+
130
+ function filter() {
131
+ conditions.value = []
132
+ references.value.forEach(r => {
133
+ let condition: FilterCondition | undefined
134
+ condition = r.getCondition()
135
+ if (condition) {
136
+ conditions.value.push(condition)
137
+ }
138
+ })
139
+ drawer.value = false
140
+ change();
141
+ }
142
+
143
+ function open() {
144
+ drawer.value = true
145
+ }
146
+
147
+ function initComponents() {
148
+ references.value.forEach((r: any) => {
149
+ let condition = conditions.value.find(c => c.field === r.field)
150
+ r.init(condition?.value)
151
+ })
152
+ }
153
+
154
+ function clear() {
155
+ conditions.value = []
156
+ initComponents()
157
+ change();
158
+ }
159
+
160
+ const scrollWidth = computed(() => {
161
+ const el = filterRef.value
162
+ return el === null ? 0 : el.getBoundingClientRect().width - 210
163
+ })
164
+
165
+ provide(referenceKey, references)
166
+
167
+ onMounted(() => {
168
+ drawer.value = false
169
+ })
170
+
171
+ defineExpose({
172
+ open,
173
+ setConditions
174
+ })
175
+ </script>
@@ -0,0 +1,75 @@
1
+ <template>
2
+ <div class="fu-filter-bar">
3
+ <div class="fu-filter-bar__top">
4
+ <div class="top_left">
5
+ <slot name="tl"></slot>
6
+ </div>
7
+ <div class="top_right">
8
+ <slot name="tr">
9
+ <!-- :size="configSize" -->
10
+ <FuSearchInput v-model="quick" :placeholder="quickPlaceholder" @change="change"/>
11
+ <el-button @click="open" icon="Filter">{{ t('fu.filter_bar.filter') }}
12
+ <span v-if="conditions.length > 0">({{ conditions.length }})</span>
13
+ </el-button>
14
+ </slot>
15
+ <slot name="buttons"></slot>
16
+ </div>
17
+ </div>
18
+ <div class="fu-filter-bar__bottom">
19
+ <FuFilter ref="filterRef" @filter="filter" :count="resultCount" :components="components">
20
+ <slot></slot>
21
+ </FuFilter>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script setup lang="ts">
27
+ import {ref, computed} from "vue";
28
+ import {useLocale} from "@/hooks"
29
+ import FuSearchInput from "@/components/filter-bar/FuSearchInput.vue";
30
+ import FuFilter from "@/components/filter-bar/FuFilter.vue";
31
+ defineOptions({ name: "FuFilterBar" });
32
+ const {t} = useLocale()
33
+
34
+ const props = defineProps({
35
+ resultCount: Number,
36
+ quickPlaceholder: String,
37
+ components: Array
38
+ })
39
+
40
+ const emit = defineEmits(["exec"])
41
+
42
+ const quick = ref("")
43
+ const conditions = ref([])
44
+
45
+ const filterRef = ref()
46
+
47
+ function open() {
48
+ filterRef.value?.open()
49
+ }
50
+
51
+ function change() {
52
+ emit("exec", conditionObj.value)
53
+ }
54
+
55
+ function filter(c: any) {
56
+ conditions.value = c
57
+ emit("exec", conditionObj.value)
58
+ }
59
+
60
+ function setConditions(conditionObj: any) {
61
+ filterRef.value?.setConditions(conditionObj)
62
+ }
63
+
64
+ const conditionObj = computed(() => {
65
+ let obj: any = {quick: quick.value}
66
+ conditions.value.forEach((c: any) => {
67
+ obj[c.field] = c
68
+ })
69
+ return obj
70
+ });
71
+
72
+ defineExpose({
73
+ setConditions
74
+ })
75
+ </script>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div class="fu-filter-conditions">
3
+ <div class="fu-filter-conditions__item" v-for="(condition, index) in conditions" :key="index">
4
+ <div class="condition-text">{{ text(condition) }}</div>
5
+ <el-icon class="fu-scale-click" @click="remove(index)">
6
+ <CloseBold/>
7
+ </el-icon>
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+
14
+ const props = defineProps({
15
+ conditions: Array
16
+ })
17
+
18
+ const emit = defineEmits(["change"])
19
+
20
+ function remove(index: number) {
21
+ props.conditions?.splice(index, 1)
22
+ emit("change", props.conditions)
23
+ }
24
+
25
+ function text(condition: any) {
26
+ return condition.label + " " + condition.valueLabel || condition.value
27
+ }
28
+
29
+ </script>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <el-input class="fu-search-input" prefix-icon="Search" v-model="quick" @input="input" @blur="blur"
3
+ @keydown="keydown" v-bind="$attrs" clearable />
4
+ </template>
5
+
6
+ <script setup lang="ts">
7
+ import { ref, watch } from "vue";
8
+ defineOptions({ name: "FuSearchInput" });
9
+ const props = defineProps({
10
+ value: String,
11
+ })
12
+ const emit = defineEmits(["input", "change"])
13
+ const quick = ref("")
14
+
15
+ watch(() => props.value, (val: any) => {
16
+ quick.value = val
17
+ })
18
+
19
+ function input(e: Event) {
20
+ emit("input", quick.value, e)
21
+ }
22
+ function blur(e: Event) {
23
+ emit("change", quick.value, e)
24
+ }
25
+ function keydown(e: Event) {
26
+ const event = e as KeyboardEvent
27
+ if (event.key === "Enter") {
28
+ emit("change", quick.value, e)
29
+ }
30
+ }
31
+ </script>
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <div class="fu-filter-component">
3
+ <div class="fu-filter-component__label">{{ label }}</div>
4
+ <div class="fu-filter-component__content">
5
+ <!-- :size="configSize" -->
6
+ <el-date-picker class="fu-filter-date" v-model="value" v-bind="$attrs"
7
+ :placeholder="t('fu.search_bar.select_date')" type="daterange" :value-format="valueFormat"
8
+ :start-placeholder="t('fu.search_bar.start_date')" :end-placeholder="t('fu.search_bar.end_date')">
9
+ </el-date-picker>
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import {ref, computed, inject} from "vue";
16
+ import {FilterCondition, ReferenceContext, referenceKey} from "../types";
17
+ import {dateFormat} from "@/tools/time";
18
+ import {useLocale} from "@/hooks"
19
+ defineOptions({ name: "FuFilterDate" });
20
+ const {t} = useLocale()
21
+
22
+ const props = defineProps({
23
+ label: String,
24
+ field: {
25
+ type: String,
26
+ required: true
27
+ },
28
+ valueFormat: {
29
+ type: String,
30
+ default: "x",
31
+ },
32
+ })
33
+ const value = ref('')
34
+
35
+ const valueLabel = computed(() => {
36
+ return (
37
+ dateFormat(value.value[0]) +
38
+ " - " +
39
+ dateFormat(value.value[1])
40
+ );
41
+ })
42
+
43
+ function getCondition(): FilterCondition | undefined {
44
+ if (!String(value.value)) return;
45
+ let {field, label} = props
46
+ return {field, label, value: value.value, valueLabel: valueLabel.value}
47
+ }
48
+
49
+ function init(v: any) {
50
+ value.value = v !== undefined ? v : ''
51
+ }
52
+
53
+ const references = inject(referenceKey)
54
+ const field = props.field
55
+ const reference: ReferenceContext = {field, init, getCondition}
56
+ references?.value.push(reference)
57
+
58
+ defineExpose({
59
+ getCondition,
60
+ init
61
+ })
62
+ </script>