@farris/ui-vue 1.3.4 → 1.3.6

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 (145) hide show
  1. package/components/accordion/index.esm.js +16 -16
  2. package/components/accordion/index.umd.cjs +1 -1
  3. package/components/avatar/index.esm.js +65 -65
  4. package/components/avatar/index.umd.cjs +1 -1
  5. package/components/button-edit/index.esm.js +13 -13
  6. package/components/button-edit/index.umd.cjs +1 -1
  7. package/components/calendar/index.esm.js +504 -490
  8. package/components/calendar/index.umd.cjs +1 -1
  9. package/components/capsule/index.esm.js +247 -233
  10. package/components/capsule/index.umd.cjs +1 -1
  11. package/components/checkbox/index.esm.js +356 -344
  12. package/components/checkbox/index.umd.cjs +1 -1
  13. package/components/color-picker/index.esm.js +159 -145
  14. package/components/color-picker/index.umd.cjs +2 -2
  15. package/components/combo-list/index.esm.js +127 -128
  16. package/components/combo-list/index.umd.cjs +1 -1
  17. package/components/combo-tree/index.esm.js +15 -15
  18. package/components/combo-tree/index.umd.cjs +1 -1
  19. package/components/component/index.esm.js +101 -87
  20. package/components/component/index.umd.cjs +1 -1
  21. package/components/condition/index.esm.js +9 -7
  22. package/components/condition/index.umd.cjs +1 -1
  23. package/components/content-container/index.esm.js +181 -167
  24. package/components/content-container/index.umd.cjs +1 -1
  25. package/components/data-grid/index.esm.js +746 -730
  26. package/components/data-grid/index.umd.cjs +1 -1
  27. package/components/data-view/index.esm.js +9 -7
  28. package/components/data-view/index.umd.cjs +1 -1
  29. package/components/date-picker/index.esm.js +789 -777
  30. package/components/date-picker/index.umd.cjs +1 -1
  31. package/components/designer-canvas/index.esm.js +3096 -3069
  32. package/components/designer-canvas/index.umd.cjs +1 -1
  33. package/components/dropdown/index.esm.js +257 -243
  34. package/components/dropdown/index.umd.cjs +2 -2
  35. package/components/dynamic-form/index.esm.js +322 -306
  36. package/components/dynamic-form/index.umd.cjs +1 -1
  37. package/components/dynamic-resolver/index.esm.js +177 -163
  38. package/components/dynamic-resolver/index.umd.cjs +1 -1
  39. package/components/event-parameter/index.esm.js +78 -82
  40. package/components/event-parameter/index.umd.cjs +1 -1
  41. package/components/events-editor/index.esm.js +501 -487
  42. package/components/events-editor/index.umd.cjs +1 -1
  43. package/components/expression-editor/index.esm.js +37 -37
  44. package/components/expression-editor/index.umd.cjs +1 -1
  45. package/components/external-container/index.esm.js +487 -472
  46. package/components/external-container/index.umd.cjs +1 -1
  47. package/components/field-selector/index.esm.js +440 -433
  48. package/components/field-selector/index.umd.cjs +1 -1
  49. package/components/filter-bar/index.esm.js +594 -587
  50. package/components/filter-bar/index.umd.cjs +1 -1
  51. package/components/flow-canvas/index.esm.js +2766 -2739
  52. package/components/flow-canvas/index.umd.cjs +1 -1
  53. package/components/image-cropper/index.esm.js +402 -388
  54. package/components/image-cropper/index.umd.cjs +1 -1
  55. package/components/input-group/index.esm.js +201 -202
  56. package/components/input-group/index.umd.cjs +1 -1
  57. package/components/layout/index.esm.js +264 -245
  58. package/components/layout/index.umd.cjs +1 -1
  59. package/components/list-nav/index.esm.js +157 -143
  60. package/components/list-nav/index.umd.cjs +1 -1
  61. package/components/list-view/index.esm.js +314 -298
  62. package/components/list-view/index.umd.cjs +1 -1
  63. package/components/lookup/index.esm.js +862 -843
  64. package/components/lookup/index.umd.cjs +1 -1
  65. package/components/mapping-editor/index.esm.js +1031 -1015
  66. package/components/mapping-editor/index.umd.cjs +1 -1
  67. package/components/nav/index.esm.js +169 -155
  68. package/components/nav/index.umd.cjs +2 -2
  69. package/components/number-range/index.esm.js +150 -137
  70. package/components/number-range/index.umd.cjs +1 -1
  71. package/components/number-spinner/index.esm.js +207 -194
  72. package/components/number-spinner/index.umd.cjs +1 -1
  73. package/components/order/index.esm.js +427 -414
  74. package/components/order/index.umd.cjs +1 -1
  75. package/components/page-footer/index.esm.js +22 -22
  76. package/components/page-footer/index.umd.cjs +1 -1
  77. package/components/page-header/index.esm.js +510 -492
  78. package/components/page-header/index.umd.cjs +1 -1
  79. package/components/pagination/index.esm.js +192 -178
  80. package/components/pagination/index.umd.cjs +1 -1
  81. package/components/progress/index.esm.js +234 -220
  82. package/components/progress/index.umd.cjs +3 -3
  83. package/components/property-editor/index.esm.js +288 -277
  84. package/components/property-editor/index.umd.cjs +2 -2
  85. package/components/property-panel/index.esm.js +62 -61
  86. package/components/property-panel/index.umd.cjs +1 -1
  87. package/components/query-solution/index.esm.js +776 -770
  88. package/components/query-solution/index.umd.cjs +6 -6
  89. package/components/radio-button/index.esm.js +64 -64
  90. package/components/radio-button/index.umd.cjs +1 -1
  91. package/components/radio-group/index.esm.js +296 -283
  92. package/components/radio-group/index.umd.cjs +1 -1
  93. package/components/rate/index.esm.js +222 -208
  94. package/components/rate/index.umd.cjs +1 -1
  95. package/components/response-layout/index.esm.js +187 -173
  96. package/components/response-layout/index.umd.cjs +1 -1
  97. package/components/response-layout-editor/index.esm.js +554 -542
  98. package/components/response-layout-editor/index.umd.cjs +1 -1
  99. package/components/response-toolbar/index.esm.js +483 -469
  100. package/components/response-toolbar/index.umd.cjs +1 -1
  101. package/components/schema-selector/index.esm.js +634 -619
  102. package/components/schema-selector/index.umd.cjs +2 -2
  103. package/components/search-box/index.esm.js +228 -214
  104. package/components/search-box/index.umd.cjs +1 -1
  105. package/components/section/index.esm.js +419 -406
  106. package/components/section/index.umd.cjs +1 -1
  107. package/components/smoke-detector/index.esm.js +162 -148
  108. package/components/smoke-detector/index.umd.cjs +1 -1
  109. package/components/splitter/index.esm.js +308 -284
  110. package/components/splitter/index.umd.cjs +1 -1
  111. package/components/step/index.esm.js +279 -265
  112. package/components/step/index.umd.cjs +1 -1
  113. package/components/switch/index.esm.js +183 -170
  114. package/components/switch/index.umd.cjs +1 -1
  115. package/components/tabs/index.esm.js +307 -294
  116. package/components/tabs/index.umd.cjs +1 -1
  117. package/components/tags/index.esm.js +320 -306
  118. package/components/tags/index.umd.cjs +1 -1
  119. package/components/text/index.esm.js +245 -231
  120. package/components/text/index.umd.cjs +1 -1
  121. package/components/textarea/index.esm.js +260 -247
  122. package/components/textarea/index.umd.cjs +1 -1
  123. package/components/time-picker/index.esm.js +409 -396
  124. package/components/time-picker/index.umd.cjs +1 -1
  125. package/components/transfer/index.esm.js +424 -410
  126. package/components/transfer/index.umd.cjs +1 -1
  127. package/components/tree-grid/index.esm.js +383 -376
  128. package/components/tree-grid/index.umd.cjs +1 -1
  129. package/components/tree-view/index.esm.js +595 -575
  130. package/components/tree-view/index.umd.cjs +1 -1
  131. package/components/uploader/index.esm.js +325 -311
  132. package/components/uploader/index.umd.cjs +2 -2
  133. package/components/verify-detail/index.esm.js +304 -290
  134. package/components/verify-detail/index.umd.cjs +1 -1
  135. package/components/video/index.esm.js +99 -85
  136. package/components/video/index.umd.cjs +1 -1
  137. package/components/weather/index.esm.js +947 -933
  138. package/components/weather/index.umd.cjs +4 -4
  139. package/farris.all.esm.js +5492 -5470
  140. package/farris.all.umd.cjs +13 -13
  141. package/index.css +1 -1
  142. package/package.json +1 -1
  143. package/types/condition/src/composition/condition-value/input-group-value.d.ts +1 -1
  144. package/types/entity-binding-selector/composition/use-entity-tree.d.ts +3 -0
  145. package/types/entity-binding-selector/composition/use-field-tree.d.ts +1 -0
@@ -1,2 +1,2 @@
1
- (function(N,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],n):(N=typeof globalThis<"u"?globalThis:N||self,n(N.dropdown={},N.Vue,N.LodashES))})(this,function(N,n,L){"use strict";const z={},W={};function M(e){const{properties:t,title:c,ignore:i}=e,r=i&&Array.isArray(i),p=Object.keys(t).reduce((y,d)=>((!r||!i.find(S=>S===d))&&(y[d]=t[d].type==="object"&&t[d].properties?M(t[d]):L.cloneDeep(t[d].default)),y),{});if(c&&(!r||!i.find(y=>y==="id"))){const y=c.toLowerCase().replace(/-/g,"_");p.id=`${y}_${Math.random().toString().slice(2,6)}`}return p}function A(e,t={},c){const i=z[e];if(i){let r=M(i);const p=W[e];return r=p?p({getSchemaByType:A},r,t,c):r,r}return null}function Z(e,t){const c=M(t);return Object.keys(c).reduce((i,r)=>(i[r]&&L.isPlainObject(i[r])&&L.isPlainObject(e[r]||!e[r])?Object.assign(i[r],e[r]||{}):i[r]=e[r],i),c),c}function G(e,t){return Object.keys(e).filter(i=>e[i]!=null).reduce((i,r)=>{if(t.has(r)){const p=t.get(r);if(typeof p=="string")i[p]=e[r];else{const y=p(r,e[r],e);Object.assign(i,y)}}else i[r]=e[r];return i},{})}function J(e,t,c=new Map){const i=Z(e,t);return G(i,c)}function Q(e={}){function t(s,f,a,m){if(typeof a=="number")return m[s].length===a;if(typeof a=="object"){const b=Object.keys(a)[0],g=a[b];if(b==="not")return Number(m[s].length)!==Number(g);if(b==="moreThan")return Number(m[s].length)>=Number(g);if(b==="lessThan")return Number(m[s].length)<=Number(g)}return!1}function c(s,f,a,m){return m[s]&&m[s].propertyValue&&String(m[s].propertyValue.value)===String(a)}const i=new Map([["length",t],["getProperty",c]]);Object.keys(e).reduce((s,f)=>(s.set(f,e[f]),s),i);function r(s,f){const a=s;return typeof f=="number"?[{target:a,operator:"length",param:null,value:Number(f)}]:typeof f=="boolean"?[{target:a,operator:"getProperty",param:s,value:!!f}]:typeof f=="object"?Object.keys(f).map(m=>{if(m==="length")return{target:a,operator:"length",param:null,value:f[m]};const b=m,g=f[m];return{target:a,operator:"getProperty",param:b,value:g}}):[]}function p(s){return Object.keys(s).reduce((a,m)=>{const b=r(m,s[m]);return a.push(...b),a},[])}function y(s,f){if(i.has(s.operator)){const a=i.get(s.operator);return a&&a(s.target,s.param,s.value,f)||!1}return!1}function d(s,f){return p(s).reduce((b,g)=>b&&y(g,f),!0)}function S(s,f){const a=Object.keys(s),m=a.includes("allOf"),b=a.includes("anyOf"),g=m||b,u=(g?s[g?m?"allOf":"anyOf":"allOf"]:[s]).map(D=>d(D,f));return m?!u.includes(!1):u.includes(!0)}return{parseValueSchema:S}}const U={},C={};Q();function P(e,t,c=new Map,i=(y,d,S,s)=>d,r={},p=y=>y){return z[t.title]=t,W[t.title]=i,U[t.title]=r,C[t.title]=p,(y={})=>{const d=J(y,t,c),S=Object.keys(e).reduce((s,f)=>(s[f]=e[f].default,s),{});return Object.assign(S,d)}}function x(e,t){return{customClass:t.class,customStyle:t.style}}function K(e,t,c){return t}const I=new Map([["appearance",x]]),ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},te={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},j={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},F=P(j,ee,I,K,te);function q(e,t){let c;const i=n.ref(e.show),r=n.ref(),p=n.ref(),y=n.ref(),d=10;n.onMounted(()=>{c=p.value});const S=(u=1)=>{const o=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],D=Array.from(document.body.querySelectorAll(o.join(","))).filter(l=>l).map(l=>{const{display:h,zIndex:w}=window.getComputedStyle(l);return h==="none"?0:parseInt(w,10)}).filter(l=>l);let v=Math.max(...D);return v<1040&&(v=1040),v+u},s=(u,o)=>{const{height:D,left:v,top:l,width:h}=u.getBoundingClientRect(),{width:w,height:B,top:X}=o.getBoundingClientRect();if(u.className.indexOf("dropdown-submenu")>-1||u.closest(".dropdown-submenu")||u.classList.contains("dropright")){const R=window.innerWidth-v-u.offsetWidth,H=window.innerHeight-l,{position:E}=getComputedStyle(o);if(E==="fixed"){let $=v+u.offsetWidth;o.offsetWidth>R&&v>R&&($=v-w),o.style.left=$+"px",o.style.right="auto",window.innerHeight-2*d<o.offsetHeight?(o.style.top=d+"px",o.style.bottom=d+"px",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight?(o.style.top="auto",o.style.bottom=d+"px"):(o.style.top=l+"px",o.style.bottom="auto")}else{if(o.offsetWidth>R){const $=-w;o.style.left=$+"px"}window.innerHeight-2*d<o.offsetHeight?(o.style.top=-1*(l-d)+"px",o.style.bottom="auto",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight&&(o.style.top=H-o.offsetHeight-d+"px",o.style.bottom="auto")}}else{const{marginTop:R,marginBottom:H}=getComputedStyle(o);let E=0;const $=Math.ceil(parseFloat(R))+Math.ceil(parseFloat(H));let k=l+D,Y=v;window.innerHeight-k-$<B&&(k=l-B,k<0&&(window.innerHeight-l-D>l?(k=l+D,E=window.innerHeight-k-$-d):(k=d,E=l-k-$))),window.innerWidth-v<w&&window.innerWidth-v<v+h&&(Y=v-w+h),document.body.append(o),o.style.cssText=`position:fixed;bottom:unset;left:${Y}px
2
- !important;top:${k}px !important;right: unset;${E?"max-height:"+E+"px;overflow-y:auto;":""}`,E&&(o.className+=" dropdown-menu-maxheight"),o.style.zIndex=S().toString()}},f=()=>{s(r.value,p.value)},a=()=>{e.hover||(i.value=!1,document.removeEventListener("click",a),c.removeEventListener("click",a),document.removeEventListener("scroll",a),c.removeEventListener("scroll",a))};return{show:i,dropdownRef:r,dropdownMenuRef:p,clickEventRef:y,showDropMenu:u=>{e.hover||e.disabled||(u==null||u.stopPropagation(),i.value||setTimeout(()=>{f()}),i.value=!i.value,document.addEventListener("click",a),document.addEventListener("scroll",a),e.hideOnClick||(c.addEventListener("click",o=>{o.stopPropagation()}),c.addEventListener("scroll",o=>{o.stopPropagation()})))},hoverDropdown:u=>{e.hover&&(i.value||setTimeout(()=>{}),i.value=!i.value)},leftButtonClick:()=>{},closeDropMenu:a,selectItem:u=>{t.emit("select",u)},resolveSize:u=>{const o=/px|em|rem|pt|%/;return o.test(u)?`${parseInt(u,10)}${u.match(o)[0]}`:`${u}px`}}}const ne={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},_=n.defineComponent({name:"FDropdownItem",props:ne,emits:["select"],setup(e,t){const c=n.ref(e.value),i=n.ref(e.label),r=n.ref(e.disabled),p=n.ref(e.active),y=n.ref(e.divide),d=()=>{r.value||t.emit("select",e)};return()=>n.createVNode("div",null,[n.withDirectives(n.createVNode("div",{class:"dropdown-divider"},null),[[n.vShow,y.value]]),n.createVNode("li",{class:`dropdown-item${p.value?" active":""} ${r.value?" disabled":""}`,onClick:d,title:c.value.toString()},[i.value])])}}),O=n.defineComponent({name:"FDropdown",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:i,dropdownMenuRef:r,dropdownRef:p,clickEventRef:y,showDropMenu:d,hoverDropdown:S,leftButtonClick:s,closeDropMenu:f,selectItem:a,resolveSize:m}=q(e,t);function b(g){t.emit("select",g)}return()=>n.createVNode("div",{ref:p},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:s},[e.title]),n.createVNode("span",{ref:y,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:d,onMouseenter:S,onMouseleave:S},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode(n.Teleport,{to:"body"},{default:()=>[n.createVNode("div",{ref:r,class:`dropdown-menu${i.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:V,disabled:T,active:u,divide:o})=>n.createVNode(_,{value:V.toString(),label:g,disabled:T,active:u,divide:o,onSelect:D=>b(D)},null))])])]})])])}});function oe(e,t,c){var v;const i="",r="",p=n.ref();function y(){return(t==null?void 0:t.schema.componentType)!=="frame"}function d(){return!1}function S(){return(t==null?void 0:t.schema.componentType)!=="frame"}function s(){return(t==null?void 0:t.schema.componentType)==="frame"}function f(l){if(!l||!l.value)return null;if(l.value.schema&&l.value.schema.type==="component")return l.value;const h=n.ref(l==null?void 0:l.value.parent),w=f(h);return w||null}function a(l=t){const{componentInstance:h,designerItemElementRef:w}=l;return!h||!h.value?null:h.value.canMove?w:a(l.parent)}function m(l){return!!c}function b(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function g(){}function V(l,h){}function T(l,h){const{componentType:w}=l;let B=A(w,l,h);const X=w.toLowerCase().replace(/-/g,"_");return B&&!B.id&&B.type===w&&(B.id=`${X}_${Math.random().toString().slice(2,6)}`),B}function u(l){}function o(...l){}function D(){t!=null&&t.schema.contents&&t.schema.contents.map(l=>{var B;let h=l.id;l.type==="component-ref"&&(h=l.component);const w=e.value.querySelector(`#${h}-design-item`);(B=w==null?void 0:w.componentInstance)!=null&&B.value.onRemoveComponent&&w.componentInstance.value.onRemoveComponent()})}return p.value={canMove:y(),canSelectParent:d(),canDelete:S(),canNested:!s(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(v=t==null?void 0:t.parent)==null?void 0:v.componentInstance,schema:t==null?void 0:t.schema,styles:i,designerClass:r,canAccepts:m,getBelongedComponentInstance:f,getDraggableDesignItemElement:a,getDraggingDisplayText:b,getPropConfig:o,getDragScopeElement:g,onAcceptMovedChildElement:V,onChildElementMovedOut:u,addNewChildComponentSchema:T,triggerBelongedComponentToMoveWhenMoved:n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:n.ref(!1),onRemoveComponent:D},p}const ie=n.defineComponent({name:"FDropdownDesign",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:i,showDropMenu:r,hoverDropdown:p,leftButtonClick:y,closeDropMenu:d,selectItem:S,resolveSize:s}=q(e,t);function f(g){t.emit("select",g)}const a=n.ref(),m=n.inject("design-item-context"),b=oe(a,m);return n.onMounted(()=>{a.value.componentInstance=b}),t.expose(b.value),()=>n.createVNode("div",{ref:a},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:y},[e.title]),n.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:r,onMouseenter:p,onMouseleave:p},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode("div",{class:`dropdown-menu${i.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:V,disabled:T,active:u,divide:o})=>n.createVNode(_,{value:V.toString(),label:g,disabled:T,active:u,divide:o,onSelect:D=>f(D)},null))])])])])}}),re={install(e){e.component(O.name,O)},register(e,t,c,i){e.dropdown=O,t.dropdown=F},registerDesigner(e,t,c){e.dropdown=ie,t.dropdown=F}};N.Dropdown=O,N.default=re,N.dropdownProps=j,N.propsResolver=F,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(N,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],n):(N=typeof globalThis<"u"?globalThis:N||self,n(N.dropdown={},N.Vue,N.LodashES))})(this,function(N,n,j){"use strict";const q={},z={};function M(e){const{properties:t,title:c,ignore:o}=e,r=o&&Array.isArray(o),d=Object.keys(t).reduce((f,u)=>((!r||!o.find(S=>S===u))&&(f[u]=t[u].type==="object"&&t[u].properties?M(t[u]):j.cloneDeep(t[u].default)),f),{});if(c&&(!r||!o.find(f=>f==="id"))){const f=c.toLowerCase().replace(/-/g,"_");d.id=`${f}_${Math.random().toString().slice(2,6)}`}return d}function Z(e){const{properties:t,title:c,required:o}=e;if(o&&Array.isArray(o)){const r=o.reduce((d,f)=>(d[f]=t[f].type==="object"&&t[f].properties?M(t[f]):j.cloneDeep(t[f].default),d),{});if(c&&o.find(d=>d==="id")){const d=c.toLowerCase().replace(/-/g,"_");r.id=`${d}_${Math.random().toString().slice(2,6)}`}return r}return{type:c}}function A(e,t={},c){const o=q[e];if(o){let r=Z(o);const d=z[e];return r=d?d({getSchemaByType:A},r,t,c):r,r}return null}function G(e,t){const c=M(t);return Object.keys(c).reduce((o,r)=>(Object.prototype.hasOwnProperty.call(e,r)&&(o[r]&&j.isPlainObject(o[r])&&j.isPlainObject(e[r]||!e[r])?Object.assign(o[r],e[r]||{}):o[r]=e[r]),o),c),c}function J(e,t){return Object.keys(e).filter(o=>e[o]!=null).reduce((o,r)=>{if(t.has(r)){const d=t.get(r);if(typeof d=="string")o[d]=e[r];else{const f=d(r,e[r],e);Object.assign(o,f)}}else o[r]=e[r];return o},{})}function Q(e,t,c=new Map){const o=G(e,t);return J(o,c)}function U(e={}){function t(s,p,a,y){if(typeof a=="number")return y[s].length===a;if(typeof a=="object"){const b=Object.keys(a)[0],g=a[b];if(b==="not")return Number(y[s].length)!==Number(g);if(b==="moreThan")return Number(y[s].length)>=Number(g);if(b==="lessThan")return Number(y[s].length)<=Number(g)}return!1}function c(s,p,a,y){return y[s]&&y[s].propertyValue&&String(y[s].propertyValue.value)===String(a)}const o=new Map([["length",t],["getProperty",c]]);Object.keys(e).reduce((s,p)=>(s.set(p,e[p]),s),o);function r(s,p){const a=s;return typeof p=="number"?[{target:a,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:a,operator:"getProperty",param:s,value:!!p}]:typeof p=="object"?Object.keys(p).map(y=>{if(y==="length")return{target:a,operator:"length",param:null,value:p[y]};const b=y,g=p[y];return{target:a,operator:"getProperty",param:b,value:g}}):[]}function d(s){return Object.keys(s).reduce((a,y)=>{const b=r(y,s[y]);return a.push(...b),a},[])}function f(s,p){if(o.has(s.operator)){const a=o.get(s.operator);return a&&a(s.target,s.param,s.value,p)||!1}return!1}function u(s,p){return d(s).reduce((b,g)=>b&&f(g,p),!0)}function S(s,p){const a=Object.keys(s),y=a.includes("allOf"),b=a.includes("anyOf"),g=y||b,m=(g?s[g?y?"allOf":"anyOf":"allOf"]:[s]).map(D=>u(D,p));return y?!m.includes(!1):m.includes(!0)}return{parseValueSchema:S}}const P={},C={};U();function x(e,t,c=new Map,o=(f,u,S,s)=>u,r={},d=f=>f){return q[t.title]=t,z[t.title]=o,P[t.title]=r,C[t.title]=d,(f={})=>{const u=Q(f,t,c),S=Object.keys(e).reduce((s,p)=>(s[p]=e[p].default,s),{});return Object.assign(S,u)}}function K(e,t){return{customClass:t.class,customStyle:t.style}}function I(e,t,c){return t}const ee=new Map([["appearance",K]]),te={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},ne={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},O={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},F=x(O,te,ee,I,ne);function W(e,t){let c;const o=n.ref(e.show),r=n.ref(),d=n.ref(),f=n.ref(),u=10;n.onMounted(()=>{c=d.value});const S=(m=1)=>{const i=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],D=Array.from(document.body.querySelectorAll(i.join(","))).filter(l=>l).map(l=>{const{display:h,zIndex:w}=window.getComputedStyle(l);return h==="none"?0:parseInt(w,10)}).filter(l=>l);let v=Math.max(...D);return v<1040&&(v=1040),v+m},s=(m,i)=>{const{height:D,left:v,top:l,width:h}=m.getBoundingClientRect(),{width:w,height:B,top:X}=i.getBoundingClientRect();if(m.className.indexOf("dropdown-submenu")>-1||m.closest(".dropdown-submenu")||m.classList.contains("dropright")){const E=window.innerWidth-v-m.offsetWidth,H=window.innerHeight-l,{position:R}=getComputedStyle(i);if(R==="fixed"){let V=v+m.offsetWidth;i.offsetWidth>E&&v>E&&(V=v-w),i.style.left=V+"px",i.style.right="auto",window.innerHeight-2*u<i.offsetHeight?(i.style.top=u+"px",i.style.bottom=u+"px",i.style.maxHeight=window.innerHeight-2*u+"px",i.style.overflowY="auto",i.className+=" dropdown-menu-maxheight"):H<i.offsetHeight?(i.style.top="auto",i.style.bottom=u+"px"):(i.style.top=l+"px",i.style.bottom="auto")}else{if(i.offsetWidth>E){const V=-w;i.style.left=V+"px"}window.innerHeight-2*u<i.offsetHeight?(i.style.top=-1*(l-u)+"px",i.style.bottom="auto",i.style.maxHeight=window.innerHeight-2*u+"px",i.style.overflowY="auto",i.className+=" dropdown-menu-maxheight"):H<i.offsetHeight&&(i.style.top=H-i.offsetHeight-u+"px",i.style.bottom="auto")}}else{const{marginTop:E,marginBottom:H}=getComputedStyle(i);let R=0;const V=Math.ceil(parseFloat(E))+Math.ceil(parseFloat(H));let k=l+D,Y=v;window.innerHeight-k-V<B&&(k=l-B,k<0&&(window.innerHeight-l-D>l?(k=l+D,R=window.innerHeight-k-V-u):(k=u,R=l-k-V))),window.innerWidth-v<w&&window.innerWidth-v<v+h&&(Y=v-w+h),document.body.append(i),i.style.cssText=`position:fixed;bottom:unset;left:${Y}px
2
+ !important;top:${k}px !important;right: unset;${R?"max-height:"+R+"px;overflow-y:auto;":""}`,R&&(i.className+=" dropdown-menu-maxheight"),i.style.zIndex=S().toString()}},p=()=>{s(r.value,d.value)},a=()=>{e.hover||(o.value=!1,document.removeEventListener("click",a),c.removeEventListener("click",a),document.removeEventListener("scroll",a),c.removeEventListener("scroll",a))};return{show:o,dropdownRef:r,dropdownMenuRef:d,clickEventRef:f,showDropMenu:m=>{e.hover||e.disabled||(m==null||m.stopPropagation(),o.value||setTimeout(()=>{p()}),o.value=!o.value,document.addEventListener("click",a),document.addEventListener("scroll",a),e.hideOnClick||(c.addEventListener("click",i=>{i.stopPropagation()}),c.addEventListener("scroll",i=>{i.stopPropagation()})))},hoverDropdown:m=>{e.hover&&(o.value||setTimeout(()=>{}),o.value=!o.value)},leftButtonClick:()=>{},closeDropMenu:a,selectItem:m=>{t.emit("select",m)},resolveSize:m=>{const i=/px|em|rem|pt|%/;return i.test(m)?`${parseInt(m,10)}${m.match(i)[0]}`:`${m}px`}}}const oe={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},_=n.defineComponent({name:"FDropdownItem",props:oe,emits:["select"],setup(e,t){const c=n.ref(e.value),o=n.ref(e.label),r=n.ref(e.disabled),d=n.ref(e.active),f=n.ref(e.divide),u=()=>{r.value||t.emit("select",e)};return()=>n.createVNode("div",null,[n.withDirectives(n.createVNode("div",{class:"dropdown-divider"},null),[[n.vShow,f.value]]),n.createVNode("li",{class:`dropdown-item${d.value?" active":""} ${r.value?" disabled":""}`,onClick:u,title:c.value.toString()},[o.value])])}}),L=n.defineComponent({name:"FDropdown",props:O,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:o,dropdownMenuRef:r,dropdownRef:d,clickEventRef:f,showDropMenu:u,hoverDropdown:S,leftButtonClick:s,closeDropMenu:p,selectItem:a,resolveSize:y}=W(e,t);function b(g){t.emit("select",g)}return()=>n.createVNode("div",{ref:d},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:s},[e.title]),n.createVNode("span",{ref:f,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:u,onMouseenter:S,onMouseleave:S},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode(n.Teleport,{to:"body"},{default:()=>[n.createVNode("div",{ref:r,class:`dropdown-menu${o.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:$,disabled:T,active:m,divide:i})=>n.createVNode(_,{value:$.toString(),label:g,disabled:T,active:m,divide:i,onSelect:D=>b(D)},null))])])]})])])}});function ie(e,t,c){var v;const o="",r="",d=n.ref();function f(){return(t==null?void 0:t.schema.componentType)!=="frame"}function u(){return!1}function S(){return(t==null?void 0:t.schema.componentType)!=="frame"}function s(){return(t==null?void 0:t.schema.componentType)==="frame"}function p(l){if(!l||!l.value)return null;if(l.value.schema&&l.value.schema.type==="component")return l.value;const h=n.ref(l==null?void 0:l.value.parent),w=p(h);return w||null}function a(l=t){const{componentInstance:h,designerItemElementRef:w}=l;return!h||!h.value?null:h.value.canMove?w:a(l.parent)}function y(l){return!!c}function b(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function g(){}function $(l,h){}function T(l,h){const{componentType:w}=l;let B=A(w,l,h);const X=w.toLowerCase().replace(/-/g,"_");return B&&!B.id&&B.type===w&&(B.id=`${X}_${Math.random().toString().slice(2,6)}`),B}function m(l){}function i(...l){}function D(){t!=null&&t.schema.contents&&t.schema.contents.map(l=>{var B;let h=l.id;l.type==="component-ref"&&(h=l.component);const w=e.value.querySelector(`#${h}-design-item`);(B=w==null?void 0:w.componentInstance)!=null&&B.value.onRemoveComponent&&w.componentInstance.value.onRemoveComponent()})}return d.value={canMove:f(),canSelectParent:u(),canDelete:S(),canNested:!s(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(v=t==null?void 0:t.parent)==null?void 0:v.componentInstance,schema:t==null?void 0:t.schema,styles:o,designerClass:r,canAccepts:y,getBelongedComponentInstance:p,getDraggableDesignItemElement:a,getDraggingDisplayText:b,getPropConfig:i,getDragScopeElement:g,onAcceptMovedChildElement:$,onChildElementMovedOut:m,addNewChildComponentSchema:T,triggerBelongedComponentToMoveWhenMoved:n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:n.ref(!1),onRemoveComponent:D},d}const re=n.defineComponent({name:"FDropdownDesign",props:O,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:o,showDropMenu:r,hoverDropdown:d,leftButtonClick:f,closeDropMenu:u,selectItem:S,resolveSize:s}=W(e,t);function p(g){t.emit("select",g)}const a=n.ref(),y=n.inject("design-item-context"),b=ie(a,y);return n.onMounted(()=>{a.value.componentInstance=b}),t.expose(b.value),()=>n.createVNode("div",{ref:a},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:f},[e.title]),n.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:r,onMouseenter:d,onMouseleave:d},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode("div",{class:`dropdown-menu${o.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:$,disabled:T,active:m,divide:i})=>n.createVNode(_,{value:$.toString(),label:g,disabled:T,active:m,divide:i,onSelect:D=>p(D)},null))])])])])}}),se={install(e){e.component(L.name,L)},register(e,t,c,o){e.dropdown=L,t.dropdown=F},registerDesigner(e,t,c){e.dropdown=re,t.dropdown=F}};N.Dropdown=L,N.default=se,N.dropdownProps=O,N.propsResolver=F,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});