@farris/ui-vue 1.2.5 → 1.2.7

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 (261) hide show
  1. package/components/accordion/index.esm.js +147 -139
  2. package/components/accordion/index.umd.cjs +1 -1
  3. package/components/accordion/package.json +1 -1
  4. package/components/avatar/index.esm.js +122 -131
  5. package/components/avatar/index.umd.cjs +1 -1
  6. package/components/avatar/package.json +1 -1
  7. package/components/border-editor/package.json +1 -1
  8. package/components/button/package.json +1 -1
  9. package/components/button-edit/index.css +1 -0
  10. package/components/button-edit/package.json +1 -1
  11. package/components/button-group/package.json +1 -1
  12. package/components/calculator/package.json +1 -1
  13. package/components/calendar/package.json +1 -1
  14. package/components/capsule/package.json +1 -1
  15. package/components/checkbox/index.esm.js +216 -223
  16. package/components/checkbox/index.umd.cjs +1 -1
  17. package/components/checkbox/package.json +1 -1
  18. package/components/color-picker/package.json +1 -1
  19. package/components/combo-list/index.esm.js +201 -181
  20. package/components/combo-list/index.umd.cjs +1 -1
  21. package/components/combo-list/package.json +1 -1
  22. package/components/combo-tree/index.esm.js +340 -107
  23. package/components/combo-tree/index.umd.cjs +1 -1
  24. package/components/combo-tree/package.json +1 -1
  25. package/components/common/package.json +1 -1
  26. package/components/component/index.esm.js +36 -29
  27. package/components/component/index.umd.cjs +1 -1
  28. package/components/component/package.json +1 -1
  29. package/components/condition/index.esm.js +341 -338
  30. package/components/condition/index.umd.cjs +1 -1
  31. package/components/condition/package.json +1 -1
  32. package/components/content-container/index.esm.js +9 -13
  33. package/components/content-container/index.umd.cjs +1 -1
  34. package/components/content-container/package.json +1 -1
  35. package/components/{tree-grid/style.css → data-grid/index.css} +1 -1
  36. package/components/data-grid/index.esm.js +3415 -3295
  37. package/components/data-grid/index.umd.cjs +1 -1
  38. package/components/data-grid/package.json +1 -1
  39. package/components/data-view/index.esm.js +2719 -2717
  40. package/components/data-view/index.umd.cjs +1 -1
  41. package/components/data-view/package.json +1 -1
  42. package/components/date-picker/index.esm.js +31 -40
  43. package/components/date-picker/index.umd.cjs +1 -1
  44. package/components/date-picker/package.json +1 -1
  45. package/components/designer-canvas/index.esm.js +23 -20
  46. package/components/designer-canvas/index.umd.cjs +1 -1
  47. package/components/designer-canvas/package.json +1 -1
  48. package/components/designer-outline/package.json +1 -1
  49. package/components/designer-toolbox/package.json +1 -1
  50. package/components/discussion-editor/package.json +1 -1
  51. package/components/discussion-list/package.json +1 -1
  52. package/components/drawer/package.json +1 -1
  53. package/components/dropdown/index.esm.js +86 -86
  54. package/components/dropdown/index.umd.cjs +1 -1
  55. package/components/dropdown/package.json +1 -1
  56. package/components/dynamic-form/index.esm.js +578 -584
  57. package/components/dynamic-form/index.umd.cjs +1 -1
  58. package/components/dynamic-form/package.json +1 -1
  59. package/components/dynamic-resolver/index.esm.js +56 -47
  60. package/components/dynamic-resolver/index.umd.cjs +1 -1
  61. package/components/dynamic-resolver/package.json +1 -1
  62. package/components/dynamic-view/index.esm.js +287 -278
  63. package/components/dynamic-view/index.umd.cjs +1 -1
  64. package/components/dynamic-view/package.json +1 -1
  65. package/components/enum-editor/package.json +1 -1
  66. package/components/events-editor/package.json +1 -1
  67. package/components/expression-editor/package.json +1 -1
  68. package/components/external-container/index.css +1 -0
  69. package/components/external-container/index.esm.js +1923 -1908
  70. package/components/external-container/index.umd.cjs +1 -1
  71. package/components/external-container/package.json +1 -1
  72. package/components/field-selector/index.css +1 -0
  73. package/components/field-selector/index.esm.js +3719 -3604
  74. package/components/field-selector/index.umd.cjs +1 -1
  75. package/components/field-selector/package.json +1 -1
  76. package/components/filter-bar/{style.css → index.css} +1 -1
  77. package/components/filter-bar/index.esm.js +483 -470
  78. package/components/filter-bar/index.umd.cjs +1 -1
  79. package/components/filter-bar/package.json +1 -1
  80. package/components/flow-canvas/index.esm.js +37 -34
  81. package/components/flow-canvas/index.umd.cjs +1 -1
  82. package/components/flow-canvas/package.json +1 -1
  83. package/components/image-cropper/package.json +1 -1
  84. package/components/input-group/index.esm.js +258 -267
  85. package/components/input-group/index.umd.cjs +1 -1
  86. package/components/input-group/package.json +1 -1
  87. package/components/layout/package.json +1 -1
  88. package/components/list-nav/package.json +1 -1
  89. package/components/list-view/index.esm.js +1452 -1450
  90. package/components/list-view/index.umd.cjs +1 -1
  91. package/components/list-view/package.json +1 -1
  92. package/components/loading/package.json +1 -1
  93. package/components/locale/package.json +1 -1
  94. package/components/lookup/index.css +1 -0
  95. package/components/lookup/index.esm.js +4860 -4657
  96. package/components/lookup/index.umd.cjs +1 -1
  97. package/components/lookup/package.json +1 -1
  98. package/components/mapping-editor/index.css +1 -0
  99. package/components/mapping-editor/index.esm.js +4411 -4259
  100. package/components/mapping-editor/index.umd.cjs +1 -1
  101. package/components/mapping-editor/package.json +1 -1
  102. package/components/message-box/index.css +1 -0
  103. package/components/message-box/index.esm.js +397 -386
  104. package/components/message-box/index.umd.cjs +1 -1
  105. package/components/message-box/package.json +1 -1
  106. package/components/modal/index.css +1 -0
  107. package/components/modal/index.esm.js +308 -297
  108. package/components/modal/index.umd.cjs +1 -1
  109. package/components/modal/package.json +1 -1
  110. package/components/nav/package.json +1 -1
  111. package/components/notify/package.json +1 -1
  112. package/components/order/index.esm.js +763 -741
  113. package/components/order/index.umd.cjs +1 -1
  114. package/components/order/package.json +1 -1
  115. package/components/page-footer/package.json +1 -1
  116. package/components/page-header/index.esm.js +948 -945
  117. package/components/page-header/index.umd.cjs +1 -1
  118. package/components/page-header/package.json +1 -1
  119. package/components/pagination/package.json +1 -1
  120. package/components/popover/package.json +1 -1
  121. package/components/progress/package.json +1 -1
  122. package/components/property-editor/index.esm.js +485 -466
  123. package/components/property-editor/index.umd.cjs +2 -2
  124. package/components/property-editor/package.json +1 -1
  125. package/components/property-panel/index.esm.js +437 -426
  126. package/components/property-panel/index.umd.cjs +1 -1
  127. package/components/property-panel/package.json +1 -1
  128. package/components/radio-button/package.json +1 -1
  129. package/components/radio-group/index.esm.js +98 -107
  130. package/components/radio-group/index.umd.cjs +1 -1
  131. package/components/radio-group/package.json +1 -1
  132. package/components/rate/package.json +1 -1
  133. package/components/response-layout/package.json +1 -1
  134. package/components/response-layout-editor/{style.css → index.css} +1 -1
  135. package/components/response-layout-editor/index.esm.js +840 -800
  136. package/components/response-layout-editor/index.umd.cjs +1 -1
  137. package/components/response-layout-editor/package.json +1 -1
  138. package/components/response-toolbar/index.esm.js +757 -760
  139. package/components/response-toolbar/index.umd.cjs +1 -1
  140. package/components/response-toolbar/package.json +1 -1
  141. package/components/schema-selector/index.css +1 -0
  142. package/components/schema-selector/index.esm.js +3659 -3432
  143. package/components/schema-selector/index.umd.cjs +8 -1
  144. package/components/schema-selector/package.json +1 -1
  145. package/components/search-box/package.json +1 -1
  146. package/components/section/index.esm.js +21 -14
  147. package/components/section/index.umd.cjs +1 -1
  148. package/components/section/package.json +1 -1
  149. package/components/smoke-detector/package.json +1 -1
  150. package/components/spacing-editor/package.json +1 -1
  151. package/components/splitter/package.json +1 -1
  152. package/components/step/package.json +1 -1
  153. package/components/switch/index.esm.js +126 -135
  154. package/components/switch/index.umd.cjs +1 -1
  155. package/components/switch/package.json +1 -1
  156. package/components/tabs/index.css +1 -0
  157. package/components/tabs/index.esm.js +1400 -1379
  158. package/components/tabs/index.umd.cjs +1 -1
  159. package/components/tabs/package.json +1 -1
  160. package/components/tags/package.json +1 -1
  161. package/components/text/package.json +1 -1
  162. package/components/textarea/index.esm.js +97 -106
  163. package/components/textarea/index.umd.cjs +1 -1
  164. package/components/textarea/package.json +1 -1
  165. package/components/time-picker/index.css +1 -0
  166. package/components/time-picker/index.esm.js +393 -402
  167. package/components/time-picker/index.umd.cjs +1 -1
  168. package/components/time-picker/package.json +1 -1
  169. package/components/tooltip/package.json +1 -1
  170. package/components/transfer/index.esm.js +124 -122
  171. package/components/transfer/index.umd.cjs +1 -1
  172. package/components/transfer/package.json +1 -1
  173. package/components/{data-grid/style.css → tree-grid/index.css} +1 -1
  174. package/components/tree-grid/index.esm.js +3531 -3412
  175. package/components/tree-grid/index.umd.cjs +1 -1
  176. package/components/tree-grid/package.json +1 -1
  177. package/components/tree-view/index.esm.js +2046 -2044
  178. package/components/tree-view/index.umd.cjs +1 -1
  179. package/components/tree-view/package.json +1 -1
  180. package/components/uploader/package.json +1 -1
  181. package/components/verify-detail/package.json +1 -1
  182. package/components/video/package.json +1 -1
  183. package/components/weather/package.json +1 -1
  184. package/farris.all.esm.js +12370 -11917
  185. package/farris.all.umd.cjs +9 -9
  186. package/index.css +1 -0
  187. package/package.json +2 -2
  188. package/types/combo-list/src/components/list-container.component.d.ts +6 -0
  189. package/types/combo-list/src/components/list-container.props.d.ts +9 -1
  190. package/types/combo-tree/src/combo-tree.props.d.ts +4 -0
  191. package/types/combo-tree/src/components/tree-container.component.d.ts +13 -3
  192. package/types/combo-tree/src/components/tree-container.props.d.ts +15 -1
  193. package/types/combo-tree/src/schema/schema-mapper.d.ts +2 -0
  194. package/types/combo-tree/src/schema/schema-resolver.d.ts +2 -0
  195. package/types/components.d.ts +1 -0
  196. package/types/data-grid/index.d.ts +5 -5
  197. package/types/data-grid/src/data-grid.component.d.ts +2 -2
  198. package/types/data-grid/src/data-grid.props.d.ts +1 -0
  199. package/types/data-grid/src/designer/data-grid.design.component.d.ts +2 -2
  200. package/types/data-grid/src/property-config/data-grid.property-config.d.ts +1 -1
  201. package/types/designer-canvas/src/composition/dg-control.d.ts +8 -8
  202. package/types/designer-canvas/src/composition/types.d.ts +1 -0
  203. package/types/dynamic-form/src/types.d.ts +1 -1
  204. package/types/dynamic-resolver/index.d.ts +1 -0
  205. package/types/dynamic-resolver/src/converter/pagination.converter.d.ts +6 -0
  206. package/types/dynamic-resolver/src/visible-prop-resolver.d.ts +3 -0
  207. package/types/lookup/src/designer/use-lookup-rules.d.ts +3 -0
  208. package/types/lookup/src/property-config/converters/lookup-property.converter.d.ts +7 -3
  209. package/types/lookup/src/property-config/lookup.property-config.d.ts +31 -27
  210. package/types/mapping-editor/src/mapping-editor.props.d.ts +8 -0
  211. package/types/modal/src/modal.component.d.ts +3 -3
  212. package/types/modal/src/modal.props.d.ts +3 -5
  213. package/types/page-header/src/page-header.props.d.ts +7 -0
  214. package/types/page-header/src/property-config/page-header.property-config.d.ts +1 -1
  215. package/types/property-panel/src/composition/entity/base-property.d.ts +2 -16
  216. package/types/property-panel/src/composition/entity/input-base-property.d.ts +21 -0
  217. package/types/response-toolbar/index.d.ts +9 -3
  218. package/types/response-toolbar/src/property-config/response-toolbar-item.property-config.d.ts +1 -1
  219. package/types/response-toolbar/src/property-config/response-toolbar.property-config.d.ts +1 -1
  220. package/types/response-toolbar/src/response-toolbar.component.d.ts +4 -2
  221. package/types/response-toolbar/src/response-toolbar.props.d.ts +9 -2
  222. package/types/schema-selector/src/composition/types.d.ts +3 -1
  223. package/types/schema-selector/src/schema-selector-editor.component.d.ts +5 -1
  224. package/types/tabs/src/designer/tab-toolbar.design.component.d.ts +1 -1
  225. package/types/tabs/src/tabs.props.d.ts +8 -0
  226. package/components/button-edit/style.css +0 -1
  227. package/components/external-container/style.css +0 -1
  228. package/components/field-selector/style.css +0 -1
  229. package/components/lookup/style.css +0 -1
  230. package/components/mapping-editor/style.css +0 -1
  231. package/components/message-box/style.css +0 -1
  232. package/components/modal/style.css +0 -1
  233. package/components/schema-selector/style.css +0 -1
  234. package/components/tabs/style.css +0 -1
  235. package/components/time-picker/style.css +0 -1
  236. package/style.css +0 -1
  237. package/types/tabs/src/designer/tab-toolbar-item.props.d.ts +0 -19
  238. /package/components/border-editor/{style.css → index.css} +0 -0
  239. /package/components/checkbox/{style.css → index.css} +0 -0
  240. /package/components/date-picker/{style.css → index.css} +0 -0
  241. /package/components/designer-canvas/{style.css → index.css} +0 -0
  242. /package/components/designer-outline/{style.css → index.css} +0 -0
  243. /package/components/designer-toolbox/{style.css → index.css} +0 -0
  244. /package/components/discussion-editor/{style.css → index.css} +0 -0
  245. /package/components/discussion-list/{style.css → index.css} +0 -0
  246. /package/components/drawer/{style.css → index.css} +0 -0
  247. /package/components/events-editor/{style.css → index.css} +0 -0
  248. /package/components/flow-canvas/{style.css → index.css} +0 -0
  249. /package/components/list-view/{style.css → index.css} +0 -0
  250. /package/components/order/{style.css → index.css} +0 -0
  251. /package/components/property-editor/{style.css → index.css} +0 -0
  252. /package/components/property-panel/{style.css → index.css} +0 -0
  253. /package/components/radio-button/{style.css → index.css} +0 -0
  254. /package/components/radio-group/{style.css → index.css} +0 -0
  255. /package/components/smoke-detector/{style.css → index.css} +0 -0
  256. /package/components/spacing-editor/{style.css → index.css} +0 -0
  257. /package/components/splitter/{style.css → index.css} +0 -0
  258. /package/components/switch/{style.css → index.css} +0 -0
  259. /package/components/transfer/{style.css → index.css} +0 -0
  260. /package/components/uploader/{style.css → index.css} +0 -0
  261. /package/components/weather/{style.css → index.css} +0 -0
@@ -1 +1 @@
1
- (function($,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("lodash-es"),require("@farris/ui-vue/components/designer-canvas/src/composition/function/use-designer-inner-component"),require("@farris/ui-vue/components/common")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","@farris/ui-vue/components/designer-canvas/src/composition/function/use-designer-inner-component","@farris/ui-vue/components/common"],t):($=typeof globalThis<"u"?globalThis:$||self,t($["response-toolbar"]={},$.Vue,$.LodashES,$.useDesignerInnerComponent$1,$.common))})(this,function($,t,q,oe,ve){"use strict";var Ze=Object.defineProperty;var Ke=($,t,q)=>t in $?Ze($,t,{enumerable:!0,configurable:!0,writable:!0,value:q}):$[t]=q;var N=($,t,q)=>Ke($,typeof t!="symbol"?t+"":t,q);class re{constructor(e){N(this,"id","");N(this,"class","btn-secondary");N(this,"icon","");N(this,"groupId","");N(this,"order",-1);N(this,"asDropDownTop",!1);N(this,"text","");N(this,"visible",!0);N(this,"responsed",!1);N(this,"tipsEnable",!1);N(this,"tipsText","");N(this,"width",0);N(this,"onClick",()=>{});N(this,"options");this.options=e;const o=["id","class","icon","groupId","order","asDropDownTop","text","isDP","visible","responsed","width","tipsEnable","tipsText","onClick"];Object.keys(e).filter(a=>o.indexOf(a)>-1).forEach(a=>{this[a]=e[a]})}get enable(){return Object.keys(this.options).indexOf("enable")>-1?this.options.enable:t.computed(()=>!0)}setWidth(e){this.width=parseInt(e,10)}getWidth(){return this.visible?this.width:!1}}class se extends re{constructor(e){super(e)}}function ie(){function l(e){const o=[];return e.reduce((a,f)=>(f.children&&f.children.length>0?a.push(new W(f)):a.push(new se(f)),a),o),o}return{buildResponseToolbarItems:l}}const{buildResponseToolbarItems:we}=ie();class W extends re{constructor(o){super(o);N(this,"placement","");N(this,"dropdownClass","");N(this,"menuClass","");N(this,"split",!1);N(this,"children",[]);N(this,"expanded",!1);const a=["isDP","class","dropdownClass","menuClass","placement","split","expanded"];Object.keys(o).filter(f=>a.indexOf(f)>-1).forEach(f=>{this[f]=o[f]}),o.children&&o.children.length&&(this.children=we(o.children))}}class Te{constructor(e,o){N(this,"id");N(this,"name");N(this,"presetId",[]);N(this,"responsedIndex",[]);N(this,"width");this.id=e,this.name=o,this.width=0}setWidth(e){this.width=parseInt(e+"",10)}getWidth(){return this.width}setPreset(e){Array.isArray(e)?this.presetId=this.presetId.concat(e):this.presetId.push(e)}delPreset(){this.presetId=[]}removeResponsed(e){this.responsedIndex.splice(e,1)}setResponsed(e){Array.isArray(e)?this.responsedIndex=this.responsedIndex.concat(e):this.responsedIndex.push(e)}isResponsing(){return this.responsedIndex.length>0}isResponsed(){return this.presetId.length===this.responsedIndex.length}}const G={},ae={};function Q(l){const{properties:e,title:o}=l,a=Object.keys(e).reduce((f,b)=>(f[b]=e[b].type==="object"&&e[b].properties?Q(e[b]):q.cloneDeep(e[b].default),f),{});return a.id=`${o}-${Date.now()}`,a}function z(l,e={}){const o=G[l];if(o){let a=Q(o);const f=ae[l];return a=f?f({getSchemaByType:z},a,e):a,a}return null}function xe(l,e){const o=Q(e);return Object.keys(l).reduce((a,f)=>(a[f]=l[f],a),o),o}function Se(l,e){return Object.keys(l).filter(a=>l[a]!=null).reduce((a,f)=>{if(e.has(f)){const b=e.get(f);if(typeof b=="string")a[b]=l[f];else{const w=b(f,l[f],l);Object.assign(a,w)}}else a[f]=l[f];return a},{})}function Me(l,e,o=new Map){const a=xe(l,e);return Se(a,o)}function De(l={}){function e(g,v,d,c){if(typeof d=="number")return c[g].length===d;if(typeof d=="object"){const u=Object.keys(d)[0],s=d[u];if(u==="not")return Number(c[g].length)!==Number(s);if(u==="moreThan")return Number(c[g].length)>=Number(s);if(u==="lessThan")return Number(c[g].length)<=Number(s)}return!1}function o(g,v,d,c){return c[g]&&c[g].propertyValue&&String(c[g].propertyValue.value)===String(d)}const a=new Map([["length",e],["getProperty",o]]);Object.keys(l).reduce((g,v)=>(g.set(v,l[v]),g),a);function f(g,v){const d=g;return typeof v=="number"?[{target:d,operator:"length",param:null,value:Number(v)}]:typeof v=="boolean"?[{target:d,operator:"getProperty",param:g,value:!!v}]:typeof v=="object"?Object.keys(v).map(c=>{if(c==="length")return{target:d,operator:"length",param:null,value:v[c]};const u=c,s=v[c];return{target:d,operator:"getProperty",param:u,value:s}}):[]}function b(g){return Object.keys(g).reduce((d,c)=>{const u=f(c,g[c]);return d.push(...u),d},[])}function w(g,v){if(a.has(g.operator)){const d=a.get(g.operator);return d&&d(g.target,g.param,g.value,v)||!1}return!1}function I(g,v){return b(g).reduce((u,s)=>u&&w(s,v),!0)}function S(g,v){const d=Object.keys(g),c=d.includes("allOf"),u=d.includes("anyOf"),s=c||u,x=(s?g[s?c?"allOf":"anyOf":"allOf"]:[g]).map(j=>I(j,v));return c?!x.includes(!1):x.includes(!0)}return{parseValueSchema:S}}const D={Button:{type:"Button",name:"按钮",icon:"Button"},ButtonGroup:{type:"ButtonGroup",name:"按钮组",icon:"ButtonGroup"},ToolBar:{type:"ToolBar",name:"工具栏",icon:"ButtonGroup"},ToolBarItem:{type:"ToolBarItem",name:"工具栏项",icon:"Button"},ContentContainer:{type:"ContentContainer",name:"容器",icon:"ContentContainer"},DisplayField:{type:"DisplayField",name:"标签",icon:"DisplayField"},"input-group":{type:"input-group",name:"文本",icon:"TextBox"},textarea:{type:"textarea",name:"多行文本",icon:"MultiTextBox"},lookup:{type:"lookup",name:"帮助",icon:"LookupEdit"},"number-spinner":{type:"number-spinner",name:"数值",icon:"NumericBox"},"date-picker":{type:"date-picker",name:"日期",icon:"DateBox"},switch:{type:"switch",name:"开关",icon:"SwitchField"},"radio-group":{type:"radio-group",name:"单选组",icon:"RadioGroup"},"check-box":{type:"check-box",name:"复选框",icon:"CheckBox"},"check-group":{type:"check-group",name:"复选框组",icon:"CheckGroup"},"combo-list":{type:"combo-list",name:"下拉列表",icon:"EnumField"},FlexLayout:{type:"FlexLayout",name:"弹性布局"},FlowLayout:{type:"FlowLayout",name:"流布局"},ResponseLayout:{type:"ResponseLayout",name:"布局容器",icon:"ResponseLayout3"},ResponseLayoutItem:{type:"ResponseLayoutItem",name:"布局",icon:"ResponseLayout1"},"tree-grid":{type:"tree-grid",name:"树表格",icon:"TreeGrid"},TreeGridField:{type:"TreeGridField",name:"树表格列"},FieldSet:{type:"FieldSet",name:"分组",icon:"FieldSet"},Form:{type:"Form",name:"卡片面板",icon:"Form"},QueryForm:{type:"QueryForm",name:"查询面板",icon:"Form"},"data-grid":{type:"data-grid",name:"表格",icon:"DataGrid"},"data-grid-column":{type:"data-grid-column",name:"表格列"},Panel:{type:"Panel",name:"面板",icon:"ContentContainer"},Module:{type:"Module",name:"模块",icon:"Module"},Component:{type:"Component",name:"组件",icon:"Component"},ExternalContainer:{type:"ExternalContainer",name:"外部容器",icon:"ContentContainer"},Image:{type:"Image",name:"图像",icon:"Image"},ImageUpload:{type:"ImageUpload",name:"图片上传",icon:"imageupload"},HiddenContainer:{type:"HiddenContainer",name:"隐藏区域",icon:"ContentContainer"},ModalContainer:{type:"ModalContainer",name:"弹窗容器",icon:"ContentContainer"},RouteContainer:{type:"RouteContainer",name:"路由区域",icon:"ContentContainer"},Tab:{type:"Tab",name:"标签页",icon:"Tab"},TabPage:{type:"TabPage",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮",icon:"Button"},Tag:{type:"Tag",name:"Tag",icon:"Tag"},Sidebar:{type:"Sidebar",name:"侧边栏",icon:"Sidebar"},HtmlTemplate:{type:"HtmlTemplate",name:"模版容器",icon:"HtmlTemplate"},ListView:{type:"ListView",name:"列表",icon:"ListView"},RichTextBox:{type:"RichTextBox",name:"富文本",icon:"RichTextBox"},TimeSpinner:{type:"TimeSpinner",name:"时间调节器",icon:"TimePicker"},TimePicker:{type:"TimePicker",name:"时间选择",icon:"TimePicker"},Section:{type:"Section",name:"分组面板",icon:"Section"},SectionToolbar:{type:"SectionToolbar",name:"分组面板工具栏"},SectionToolbarItem:{type:"SectionToolbarItem",name:"分组面板按钮"},QueryScheme:{type:"QueryScheme",name:"筛选方案",icon:"QueryScheme"},FormHeader:{type:"FormHeader",name:"翻页"},Splitter:{type:"Splitter",name:"分栏面板",icon:"Splitter"},SplitterPane:{type:"SplitterPane",name:"分栏面板项",dependentParentControl:"Splitter"},WizardDetail:{type:"WizardDetail",name:"向导详情页"},WizardDetailContainer:{type:"WizardDetailContainer",name:"向导详情容器"},Wizard:{type:"Wizard",name:"向导",icon:"Wizard"},MultiSelect:{type:"MultiSelect",name:"数据分配",icon:"MultiSelect"},Steps:{type:"Steps",name:"步骤条",icon:"Steps"},avatar:{type:"avatar",name:"头像",icon:"Avatar"},ListFilter:{type:"ListFilter",name:"筛选条",icon:"ListFilter"},ListNav:{type:"ListNav",name:"列表导航",icon:"ListNav"},NumberRange:{type:"NumberRange",name:"数字区间选择",icon:"NumericBox"},Scrollspy:{type:"Scrollspy",name:"滚动监听",icon:"Scrollspy"},LanguageTextBox:{type:"LanguageTextBox",name:"多语言输入框",icon:"LanguageTextBox"},ComponentRef:{type:"ComponentRef",name:"组件引用节点"},FileUpload:{type:"FileUpload",name:"附件上传",icon:"FileUpload"},FilePreview:{type:"FilePreview",name:"附件预览",icon:"FilePreview"},ViewChange:{type:"ViewChange",name:"多视图切换",icon:"Button"},MultiViewContainer:{type:"MultiViewContainer",name:"多视图",icon:"MultiViewContainer"},MultiViewItem:{type:"MultiViewItem",name:"多视图项",dependentParentControl:"MultiViewContainer"},Footer:{type:"Footer",name:"页脚"},DiscussionEditor:{type:"DiscussionEditor",name:"评论编辑区",icon:"DiscussionEditor"},DiscussionList:{type:"DiscussionList",name:"评论列表",icon:"DiscussionList"},NavTab:{type:"NavTab",name:"标签类导航",icon:"NavTab"},Tags:{type:"Tags",name:"标记组",icon:"Tags"},Portlet:{type:"Portlet",name:"小部件",icon:"dingzhi"},Header:{type:"Header",name:"页头",icon:"Header"},ModalFooter:{type:"ModalFooter",name:"弹窗页脚",icon:"ModalFooter"},ScrollCollapsibleArea:{type:"ScrollCollapsibleArea",name:"滚动收折区域",icon:"ScrollCollapsibleArea"},PersonnelSelector:{type:"PersonnelSelector",name:"人员选择",icon:"PersonnelSelector"},Table:{type:"Table",name:"表格",icon:"DataGrid"},LoopContainer:{type:"LoopContainer",name:"循环容器",icon:"ContentContainer"},FileUploadPreview:{type:"FileUploadPreview",name:"附件上传预览",icon:"FileUpload"},DynamicArea:{type:"DynamicArea",name:"动态区域",icon:"ContentContainer"},DynamicAreaItem:{type:"DynamicAreaItem",name:"动态区域项",icon:"ContentContainer"},TabToolbar:{type:"TabToolbar",name:"标签页工具栏",icon:"TabToolbar"},HeaderToolBar:{type:"HeaderToolBar",name:"头部组件工具栏",icon:"HeaderToolBar"},ModalFooterToolBar:{type:"ModalFooterToolBar",name:"底部组件工具栏",icon:"ModalFooterToolBar"},HeaderToolBarItem:{type:"HeaderToolBarItem",name:"头部组件工具栏按钮",icon:"HeaderToolBarItem"},ModalFooterToolBarItem:{type:"ModalFooterToolBarItem",name:"底部组件工具栏按钮",icon:"ModalFooterToolBarItem"},OrganizationSelector:{type:"OrganizationSelector",name:"组织选择",icon:"OrganizationSelector"},AdminOrganizationSelector:{type:"AdminOrganizationSelector",name:"组织选择",icon:"OrganizationSelector"},EmployeeSelector:{type:"EmployeeSelector",name:"人员选择",icon:"PersonnelSelector"},OaRelation:{type:"OaRelation",name:"关联行政审批",icon:"TextBox"},CitySelector:{type:"CitySelector",name:"城市选择",icon:"CitySelector"},ExtIntergration:{type:"ExtIntergration",name:"外部服务集成",icon:"ViewModel"},AppointmentCalendar:{type:"AppointmentCalendar",name:"预约日历",icon:"DateBox"},Charts:{type:"Charts",name:"图表",icon:"Charts"},QdpFramework:{type:"QdpFramework",name:"查询结果工具栏",icon:"QdpFramework"},SpreadSheet:{type:"SpreadSheet",name:"查询表格控件",icon:"Charts"},QdpConditionDialog:{type:"QdpConditionDialog",name:"查询筛选对话框",icon:"ContentContainer"},QdpConditionDialogTab:{type:"QdpConditionDialogTab",name:"查询筛选标签页",icon:"Tab"},ApprovalLogs:{type:"ApprovalLogs",name:"审批记录",icon:"ApprovalLogs"},ApprovalComments:{type:"ApprovalComments",name:"审批意见",icon:"shenpiyijian"}},ce={},Ie={};De();function le(l,e,o=new Map,a=(w,I,S)=>I,f={},b=w=>w){return G[e.title]=e,ae[e.title]=a,ce[e.title]=f,Ie[e.title]=b,(w={})=>{const I=Me(w,e,o),S=Object.keys(l).reduce((g,v)=>(g[v]=l[v].default,g),{});return Object.assign(S,I)}}const pe=new Map([["buttons","items"]]);function de(l,e,o){return e}const Pe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar.schema.json",title:"response-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]}},required:["id","type","buttons"]},X={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar-item.schema.json",title:"response-toolbar-item",description:"A Farris Toolbar Item Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar-item"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},text:{description:"The items of Response Toolbar.",type:"string",default:"新增"},icon:{description:"The icon of response toolbar item.",type:"string",default:""},onClick:{description:"The event of response toolbar item.",type:"string",default:""}},required:["id","type","text"]},ue={title:"response-toolbar-item",description:"A Farris Container Component",type:"object",categories:{basic:{title:"基本信息",description:"Basic Infomation",properties:{id:{title:"标识",type:"string",description:"The identifier of a component.",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",data:[]}},text:{title:"文本",type:"string",description:"",refreshPanelAfterChanged:!0},icon:{title:"图标",type:"string",description:""}}}}},Y={customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]}};G[X.title]=X,ce[ue.title]=ue;const Z=le(Y,Pe,pe,de),fe={id:{type:String,default:""},items:{type:Object,default:{}},text:{type:String,default:""},disabled:{type:Boolean,default:!1},icon:{type:String,default:""}},je=le(fe,X,pe,de);function me(){function l(o){const a={"f-icon":!0};if(o.icon){const f=o.icon.trim().split(" ");f&&f.length&&f.reduce((b,w)=>(b[w]=!0,b),a)}return a}function e(o){return!!(o.icon&&o.icon.trim())}return{iconClass:l,shouldShowIcon:e}}function ke(l){function e(d){const c={"dropdown-menu":!0};if(d.class){const u=d.menuClass.split(" ");u&&u.length&&u.reduce((s,y)=>(s[y]=!0,s),c)}return c}function o(d){const c={disabled:!d.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0},u=d.dropdownClass.split(" ");return u&&u.length&&u.reduce((s,y)=>(s[y]=!0,s),c),c}function a(d){const c={disabled:!d.enable,"dropdown-item":!0,"f-rt-btn":!0},u=d.class.split(" ");return u&&u.length&&u.reduce((s,y)=>(s[y]=!0,s),c),c}let f;const b=new Map;function w(d,c,u){var y;((y=d.target)==null?void 0:y.id)===c.id&&d.stopPropagation();const s=u?u.id:"__top_item__";if(c.children&&c.children.length&&(c.expanded=!c.expanded,c.expanded?b.set(s,c):b.delete(s)),b.has(s)&&b.get(s)!==c){const h=b.get(s);h&&(h.expanded=!1)}}function I(d,c){document.body.click(),c.enable&&c.onClick(d,c.id)}function S(d){return d.children.map(c=>c.children&&c.children.length?t.createVNode("li",{class:o(c),id:c.id,onClick:u=>c.enable&&w(u,c,d)},[t.createVNode("span",{id:c.id,class:a(c),onMouseover:u=>c.enable&&w(u,c,d)},[c.text,t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right",style:"display: inline-block;float: right;line-height: 1.25rem;"},null)]),f(c,c)]):t.createVNode("li",{class:a(c),id:c.id,onClick:u=>I(u,c),onMouseover:u=>c.enable&&w(u,c,d)},[l.shouldShowIcon(c)&&t.createVNode("i",{class:l.iconClass(c)},null),c.text]))}function g(d,c,u){const s={display:d.expanded?"block":"none",position:"fixed",maxWidth:"300px",width:"auto",minWidth:"120px"},y=document.getElementsByTagName("body")[0].getClientRects()[0].width,h=c,x=h==null?void 0:h.getClientRects();if(h&&x&&x.length){const{top:V,width:j,left:B,right:F,height:M}=x[0],C=Math.ceil(M+V);s.top=`${C}px`,s.left=`${B}px`;const P=d.id+"_menu",R=c?c.querySelector("#"+P):null;if(R){s.display==="block"&&(R.style.display="block");const p=R.getBoundingClientRect();if(u){s.top=`${V-6}px`;const r=Math.ceil(j+B);s.left=`${r}px`}y-B-j<p.width&&(s.left=`${(u?B:F)-p.width}px`)}}return s}f=function(d,c){var h,x;const u=t.getCurrentInstance(),s=c?c.id:d.id,y=(x=(h=u==null?void 0:u.exposed)==null?void 0:h.elementRef.value)==null?void 0:x.querySelector("#"+s);return t.createVNode("ul",{class:e(d),style:g(d,y,c),id:d.id+"_menu"},[S(d)])};function v(){b.forEach(d=>{d.expanded=!1}),b.clear()}return{renderDropdownMenu:f,clearAllDropDownMenu:v}}function Re(l,e){const o=t.ref(l.alignment),{renderDropdownMenu:a,clearAllDropDownMenu:f}=ke(e);function b(v){const d={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":o.value==="right","f-btn-mr":o.value==="left"},c=v.dropdownClass.split(" ");return c&&c.length&&c.reduce((u,s)=>(u[s]=!0,u),d),d}function w(v){const d={btn:!0,disabled:!v.enable,"f-rt-btn":!0,"btn-icontext":!!(v.icon&&v.icon.trim())};if(v.class){const c=v.class.split(" ");c&&c.length&&c.reduce((u,s)=>(u[s]=!0,u),d)}return d}function I(v,d){v.stopPropagation();const c=d.expanded;document.body.click(),d.expanded=!c}function S(v){return t.createVNode("div",{id:v.id,class:b(v)},[t.createVNode("div",{class:w(v),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:d=>v.enable&&I(d,v)},[e.shouldShowIcon(v)&&t.createVNode("i",{class:e.iconClass(v)},null),t.createVNode("span",null,[v.text]),t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),a(v)])}function g(){f()}return{renderToolbarDropdown:S,clearAllDropDown:g}}const{buildResponseToolbarItems:ge}=ie(),H=t.defineComponent({name:"FResponseToolbar",props:Y,emits:[],setup(l,e){const o=t.ref(ge(l.items)),a=t.ref(),f=t.ref(),b=t.ref(),w=t.ref(l.alignment),I={id:"__more_buttons__",text:"更多"},S=t.ref(new W(I)),g=me(),v=t.computed(()=>S.value.children.length>0),d=t.computed(()=>{const C={"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0};if(l.customClass){const P=l.customClass.split(" ");P&&P.length&&P.reduce((R,p)=>(R[p]=!0,R),C)}return C}),c=t.computed(()=>({"d-flex":!0,"flex-nowrap":!0,"justify-content-end":w.value==="right","justify-content-start":w.value==="left"})),{renderToolbarDropdown:u,clearAllDropDown:s}=Re(l,g);function y(){o.value.filter(C=>C.children&&C.children.length>0).forEach(C=>{C.expanded=!1}),S.value.expanded=!1,s()}function h(C){const P={btn:!0,"f-rt-btn":!0,"f-btn-ml":w.value==="right","f-btn-mr":w.value==="left","btn-icontext":!!(C.icon&&C.icon.trim())};if(C.class){const R=C.class.split(" ");R&&R.length&&R.reduce((p,r)=>(p[r]=!0,p),P)}return P}function x(C,P){document.body.click(),P.onClick(C,P.id)}function V(C){return t.createVNode("button",{type:"button",class:h(C),id:C.id,disabled:!C.enable,onClick:P=>x(P,C)},[g.shouldShowIcon(C)&&t.createVNode("i",{class:g.iconClass(C)},null),C.text])}const j=new Map,B=[];function F(C){const P=b.value;let R=C;const p=Array.from(P.children),r=p[p.length-1].id==="__more_buttons__"?p[p.length-1]:null;if(r){const T=r.computedStyleMap().get("margin-left"),E=r.computedStyleMap().get("margin-right"),L=(T?T.value:0)+r.getBoundingClientRect().width+(E?E.value:0);R-=L}const n=p.filter(T=>T.id!=="__more_buttons__");for(const T of n){const E=T.computedStyleMap().get("margin-left"),L=T.computedStyleMap().get("margin-right"),A=(E?E.value:0)+T.getBoundingClientRect().width+(L?L.value:0);R<A?(j.set(T.id,!0),B.push({id:T.id,width:A})):R-=A}if(B.length)for(let T=B.length-1;T>=0;T--){const E=B[T].width;if(R>=E)R-=E,j.delete(B[T].id),B.pop();else break}const i=Object.assign({},S.value);i.children=[];const m=new W(i),k=o.value.reduce((T,E)=>(j.has(E.id)&&m.children.push(E),E.visible=!j.has(E.id),T.push(E),T),[]);S.value=m,o.value=k}const M=new ResizeObserver(C=>{if(C.length){const R=C[0].contentRect.width,r=b.value.getBoundingClientRect().width;(R<r||B.length)&&(F(R),y())}});return t.onMounted(()=>{const C=f.value;M.observe(C),document.body.addEventListener("click",y),document.body.addEventListener("wheel",y)}),t.onUnmounted(()=>{M.disconnect(),document.body.removeEventListener("click",y),document.body.removeEventListener("wheel",y)}),t.watch(()=>l.items,()=>{o.value=ge(l.items)},{deep:!0}),e.expose({elementRef:a}),()=>t.createVNode("div",{class:d.value,ref:a},[t.createVNode("div",{ref:f,class:c.value},[t.createVNode("div",{ref:b,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[o.value.filter(C=>C.visible).map(C=>C.children&&C.children.length>0?u(C):V(C)),v.value&&u(S.value)])])])}});function Ee(l,e){const o=t.inject("design-item-context"),a=t.inject("toolbar-item-handler",()=>{});function f(){a&&a()}function b(r){const n={"dropdown-menu":!0};if(r.class){const i=r.menuClass.split(" ");i&&i.length&&i.reduce((m,k)=>(m[k]=!0,m),n)}return n}function w(r){const n={disabled:!r.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0},i=r.dropdownClass.split(" ");return i&&i.length&&i.reduce((m,k)=>(m[k]=!0,m),n),n}function I(r){const n={disabled:!r.enable,"dropdown-item":!0,"f-rt-btn":!0,"position-relative":!0,"farris-component":!0},i=r.class.split(" ");return i&&i.length&&i.reduce((m,k)=>(m[k]=!0,m),n),n}let S;const g=new Map;function v(r,n,i){var k;((k=r.target)==null?void 0:k.id)===n.id&&r.stopPropagation();const m=i?i.id:"__top_item__";if(n.children&&n.children.length&&(n.expanded=!n.expanded,n.expanded?g.set(m,n):g.delete(m)),g.has(m)&&g.get(m)!==n){const T=g.get(m);T&&(T.expanded=!1)}}function d(r){r&&(r.stopPropagation(),r.preventDefault())}function c(){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(n=>n.classList.remove("dgComponentFocused"));const r=document.getElementsByClassName("dgComponentSelected");Array.from(r).forEach(n=>n.classList.remove("dgComponentSelected"))}function u(r){r.currentTarget.classList.add("dgComponentFocused","dgComponentSelected")}function s(r){const{buttons:n=[]}=o.schema;let i=[];n.forEach(T=>{i=i.concat(T.children||[])});const m=i.findIndex(T=>T.id===r),k=m===-1?null:i[m];return{index:m,item:k}}function y(r){const{buttons:n=[]}=o.schema,i=n.findIndex(k=>k.id===r),m=i===-1?null:n[i];return{index:i,item:m}}function h(r){var m;o.schema;const{index:n,item:i}=s(r);(m=o==null?void 0:o.setupContext)==null||m.emit("selectionChange",i==null?void 0:i.type,i)}const x=function(r){const{componentType:n}=r,i=z(n,r),m=n.toLowerCase().replace("-","_");return i&&!i.id&&i.type===n&&(i.id=`${m}_${Math.random().toString().slice(2,6)}`),i},V=function(){const r={componentType:"response-toolbar-item",parentComponentInstance:e.value,targetPosition:-1};return x(r)};function j(r,n){d(r),c(),u(r),h(n.id)}function B(r,n,i){d(r);const m=n.id,k=i&&i.id,{buttons:T=[]}=o.schema;if(!k)return;const{index:E}=y(k);if(E===-1)return;const{index:L}=s(m);L!==-1&&(T[E].children.splice(L,1),f())}function F(r,n,i){d(r);const m=i&&i.id,{buttons:k=[]}=o.schema;if(!m)return;const{index:T}=y(m);if(T===-1)return;const E=V(),L=Object.assign({},E,{text:n.text});k[T].children.push(L),f()}function M(r,n,i){d(r);const m=i&&i.id,{buttons:k=[]}=o.schema;if(!m)return;const{index:T}=y(m);if(T===-1)return;const E=V(),L=Object.assign({},E,{text:"按钮"});k[T].children.push(L),f()}function C(r,n){return t.createVNode("div",{class:"component-btn-group"},[t.createVNode("div",null,[t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeButton",style:"position:static;",onClick:i=>B(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"复制",ref:"copyButton",style:"position:static;",onClick:i=>F(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-yxs_copy"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增同级",ref:"appendSame",style:"width:85px!important;padding:0 5px;position:static;",onClick:i=>M(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-plus-circle text-white mr-1"},null),t.createVNode("span",{style:"font-size:13px;margin:auto"},[t.createTextVNode("新增同级")])])])])}function P(r){return r.children.map(n=>n.children&&n.children.length?t.createVNode("li",{class:w(n),id:n.id,onClick:i=>n.enable&&v(i,n,r)},[t.createVNode("span",{id:n.id,class:I(n),onMouseover:i=>n.enable&&v(i,n,r)},[n.text,t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right",style:"display: inline-block;float: right;line-height: 1.25rem;"},null)]),S(n,n)]):t.createVNode("li",{class:I(n),id:n.id,onClick:i=>j(i,n)},[C(n,r),l.shouldShowIcon(n)&&t.createVNode("i",{class:l.iconClass(n)},null),n.text]))}function R(r,n,i){const m={display:r.expanded?"block":"none",position:"fixed",maxWidth:"300px",width:"auto",minWidth:"120px"},k=document.getElementsByTagName("body")[0].getClientRects()[0].width,T=n,E=T==null?void 0:T.getClientRects();if(T&&E&&E.length){const{top:L,width:A,left:O,right:_,height:U}=E[0],te=Math.ceil(U+L);m.top=`${te}px`,m.left=`${O}px`;const Xe=r.id+"_menu",ne=n?n.querySelector("#"+Xe):null;if(ne){m.display==="block"&&(ne.style.display="block");const Ce=ne.getBoundingClientRect();if(i){m.top=`${L-6}px`;const Ye=Math.ceil(A+O);m.left=`${Ye}px`}k-O-A<Ce.width&&(m.left=`${(i?O:_)-Ce.width}px`)}}return m}S=function(r,n){var T,E;const i=t.getCurrentInstance(),m=n?n.id:r.id,k=(E=(T=i==null?void 0:i.exposed)==null?void 0:T.elementRef.value)==null?void 0:E.querySelector("#"+m);return t.createVNode("ul",{class:b(r),style:R(r,k,n),id:r.id+"_menu"},[P(r)])};function p(){g.forEach(r=>{r.expanded=!1}),g.clear()}return{renderDropdownMenu:S,clearAllDropDownMenu:p}}function Be(l,e,o){const a=t.ref(l.alignment),{renderDropdownMenu:f,clearAllDropDownMenu:b}=Ee(e,o),w=t.inject("design-item-context"),I=t.inject("toolbar-item-handler",()=>{});function S(){I&&I()}function g(p){const r={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":a.value==="right","f-btn-mr":a.value==="left"},n=p.dropdownClass.split(" ");return n&&n.length&&n.reduce((i,m)=>(i[m]=!0,i),r),r}function v(p){const r={btn:!0,disabled:!p.enable,"position-relative":!0,"farris-component":!0,"f-rt-btn":!0,"btn-icontext":!!(p.icon&&p.icon.trim())};if(p.class){const n=p.class.split(" ");n&&n.length&&n.reduce((i,m)=>(i[m]=!0,i),r)}return r}function d(p){p&&(p.stopPropagation(),p.preventDefault())}function c(p,r){d(p);const n=r.expanded;document.body.click(),r.expanded=!n}const u=function(p){const{componentType:r}=p,n=z(r,p),i=r.toLowerCase().replace("-","_");return n&&!n.id&&n.type===r&&(n.id=`${i}_${Math.random().toString().slice(2,6)}`),n},s=function(){const p={componentType:"response-toolbar-item",parentComponentInstance:o.value,targetPosition:-1};return u(p)};function y(p){const r=w.schema.buttons||w.schema.contents,n=r==null?void 0:r.findIndex(m=>m.id===p),i=n===-1?null:r[n];return{index:n,toolbarItem:i}}function h(p,r){var E;const{index:n,toolbarItem:i}=y(r);if(n===-1)return;const m=i.text||"按钮",k=s(),T=Object.assign({},k,{text:m});(E=w.schema.buttons)==null||E.push(T),S()}function x(p,r){const{index:n,toolbarItem:i}=y(r);if(n===-1)return;const m=i.text||"按钮",k=s(),T=Object.assign({},k,{text:m}),E=w.schema.buttons[n].children||[];E.push(T),w.schema.buttons[n].children=E,S()}function V(p,r){const n=w.schema.buttons||w.schema.contents,i=n==null?void 0:n.findIndex(m=>m.id===r);i!==-1&&(n.splice(i,1),S())}function j(p){return t.createVNode("div",{class:"component-btn-group"},[t.createVNode("div",null,[t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeButton",style:"position:static;",onClick:r=>V(r,p)},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"复制",ref:"copyButton",style:"position:static;",onClick:r=>h(r,p)},[t.createVNode("i",{class:"f-icon f-icon-yxs_copy"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增子级",ref:"appendChildButton",style:"width:85px!important;padding:0 5px;position:static;",onClick:r=>x(r,p)},[t.createVNode("i",{class:"f-icon f-icon-plus-circle text-white mr-1"},null),t.createVNode("span",{style:"font-size:13px;margin:auto"},[t.createTextVNode("新增子级")])])])])}function B(){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(r=>r.classList.remove("dgComponentFocused"));const p=document.getElementsByClassName("dgComponentSelected");Array.from(p).forEach(r=>r.classList.remove("dgComponentSelected"))}function F(p){p.currentTarget.classList.add("dgComponentFocused","dgComponentSelected")}function M(p){var m;const r=w.schema.buttons||w.schema.contents,n=r==null?void 0:r.findIndex(k=>k.id===p);if(n===-1)return;const i=r[n];(m=w==null?void 0:w.setupContext)==null||m.emit("selectionChange","response-toolbar-item",i)}function C(p,r){d(p),B(),F(p),d(p),c(p,r),M(r.id)}function P(p){return t.createVNode("div",{id:p.id,class:g(p)},[t.createVNode("div",{class:v(p),style:"display: flex;padding-right: 0.1rem;",onClick:r=>p.enable&&C(r,p)},[j(p.id),e.shouldShowIcon(p)&&t.createVNode("i",{class:e.iconClass(p)},null),t.createVNode("span",null,[p.text]),t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),f(p)])}function R(){b()}return{renderToolbarDropdown:P,clearAllDropDown:R}}function Ne(){function l(e){var f,b;if(!e)return!1;const o=((f=e.targetContainer)==null?void 0:f.componentInstance)&&e.targetContainer.componentInstance.value;if(!o)return!1;const a=(b=o.schema.appearance)==null?void 0:b.class;if(e.controlCategory==="input"||e.controlType==="form-group"){const w=o.schema.type,I=(w==="response-form"||w==="content-container")&&a&&a.includes("farris-form");if(o.schema.type!=="response-layout-item"&&!I)return!1}return e.controlType!=="field-set"}return{basalDragulaRuleForContainer:l}}const Ve={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dragging-rules.schema.json",title:"Dragging Rules",description:"The rules of designer canvas",type:"object",properties:{"f-page":{description:"The root class of page designed by farris.",type:"object",properties:{contents:{type:"object",properties:{"f-page-header":{description:"The class of page header designed by farris.",type:"string"},"f-page-main":{description:"The class of page body designed by farris.",type:"object",properties:{contents:{type:"object",properties:{"f-struct-like-card":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-struct-form":{description:"The class of form component which has a hierarchical structure of component -> section -> respnse-form.",type:"object",properties:{contents:{type:"object",properties:{"f-section-form":{description:"The class of section which has wrapped a reponse-form component.",type:"object",properties:{contents:{type:"object",properties:{"f-form-layout":{description:"The class of reponse form",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}},"f-struct-wrapper":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-section-tabs":{description:"The class of section which has wrapped sub-grid tabs.",type:"object",properties:{contents:{type:"object",properties:{"f-tabs-in-card":{description:"The class of tabs which contains sub-grid.",type:"object",properties:{contents:{type:"object",properties:{"f-struct-data-grid-in-card":{description:"The class of sub-grid component",type:"object",properties:{contents:{type:"object",properties:{"f-grid-is-sub":{description:"The class of sub-grid",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-section-in-main":{description:"The class of section which has wrapped a reponse-form component.",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"object",const:{allOf:[{sibling:0,parent:{"f-page-main":!0}}]}}}}}},"f-struct-data-grid":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"object",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-main-content":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-struct-data-grid-in-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav-extend":{description:"",type:"object"},"f-section-in-nav":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}}}},"f-page-content-main":{description:"",type:"object",properties:{}}}}}},"f-page-content":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-list-nav":{description:"",type:"object"},"f-list-nav-left":{description:"",type:"object"}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}},"f-page-content-main":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"object",const:{anyOf:[{children:0},{children:{length:{not:1},"f-struct-like-card":!0}},{children:{"scroll-spy":!1,"f-page-content":!1,"f-struct-like-card":!1}}]}},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-footer":{description:"The class of page footer designed by farris.",type:"string"}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-is-managelist":{description:"The root class of mangement list page.",type:"string"},"f-page-card":{description:"",type:"object"},"f-page-is-mainsubcard":{description:"",type:"object"}},required:[]},K=new Map;function ye(){function l(s,y,h,x){var V;if(typeof h=="number")return((V=x[s])==null?void 0:V.length)===h;if(typeof h=="object"){const j=Object.keys(h)[0],B=h[j];if(j==="not")return Number(x[s].length)!==Number(B);if(j==="moreThan")return Number(x[s].length)>=Number(B);if(j==="lessThan")return Number(x[s].length)<=Number(B)}return!1}function e(s,y,h,x){return typeof h=="boolean"?x.childrenClassList.includes(y)===!!h:!1}function o(s,y,h,x){return typeof h=="boolean"?x.parentClassList.includes(y)===!!h:!1}function a(s,y,h,x){return typeof h=="boolean"?x.parentClassList.includes(y)===!!h:!1}const f=new Map([["length",l],["hasChildren",e],["hasSibling",a],["hasParent",o]]);function b(s,y){const h=s;return typeof y=="number"?[{target:h,operator:"length",param:null,value:Number(y)}]:typeof y=="object"?Object.keys(y).map(x=>{if(x==="length")return{target:h,operator:"length",param:null,value:y[x]};const V=x,j=y[x];return{target:h,operator:s==="children"?"hasChildren":s==="parent"?"hasParent":"hasSibling",param:V,value:j}}):[]}function w(s,y){if(f.has(s.operator)){const h=f.get(s.operator);return h&&h(s.target,s.param,s.value,y)||!1}return!1}function I(s,y){return Object.keys(s).reduce((j,B)=>{const F=b(B,s[B]);return j.push(...F),j},[]).reduce((j,B)=>j&&w(B,y),!0)}function S(s,y){const h=Object.keys(s),x=h.includes("allOf"),V=h.includes("anyOf"),j=x||V,M=(j?s[j?x?"allOf":"anyOf":"allOf"]:[s]).map(P=>I(P,y));return x?!M.includes(!1):M.includes(!0)}function g(s,y){const h=s.const;return h?typeof h=="boolean"?h:typeof h=="object"?S(h,y):!1:!1}function v(s){return y=>{const h={canAccept:!0,fixed:!1,hidePadding:!1};return s&&s.properties&&Object.keys(s.properties).reduce((x,V)=>{const j=s.properties[V];return x[V]=g(j,y),x},h),h}}function d(s,y,h){if(y.type==="object"&&y.properties){const{rules:x,contents:V}=y.properties;h.set(s,v(x)),V&&Object.keys(V.properties).forEach(j=>d(j,V.properties[j],h))}}function c(){const{properties:s}=Ve;Object.keys(s).forEach(y=>{d(y,s[y],K)})}function u(s,y){const h={canAccept:!0,fixed:!1,hidePadding:!0};return K.has(s)?K.get(s)(y):h}return c(),{getRuleValue:u}}class he{static getEditorTypesByMDataType(e){return this.fieldControlTypeMapping[e]}}N(he,"fieldControlTypeMapping",{String:[{key:D["input-group"].type,value:D["input-group"].name},{key:D.lookup.type,value:D.lookup.name},{key:D.Image.type,value:D.Image.name},{key:D["date-picker"].type,value:D["date-picker"].name},{key:D["check-box"].type,value:D["check-box"].name},{key:D["radio-group"].type,value:D["radio-group"].name},{key:D["combo-list"].type,value:D["combo-list"].name},{key:D.textarea.type,value:D.textarea.name}],Text:[{key:D.textarea.type,value:D.textarea.name},{key:D.avatar.type,value:D.avatar.name},{key:D.lookup.type,value:D.lookup.name}],Decimal:[{key:D["number-spinner"].type,value:D["number-spinner"].name}],Integer:[{key:D["number-spinner"].type,value:D["number-spinner"].name}],Number:[{key:D["number-spinner"].type,value:D["number-spinner"].name}],BigNumber:[{key:D["number-spinner"].type,value:D["number-spinner"].name}],Date:[{key:D["date-picker"].type,value:D["date-picker"].name}],DateTime:[{key:D["date-picker"].type,value:D["date-picker"].name}],Boolean:[{key:D.switch.type,value:D.switch.name},{key:D["check-box"].type,value:D["check-box"].name}],Enum:[{key:D["combo-list"].type,value:D["combo-list"].name},{key:D["radio-group"].type,value:D["radio-group"].name}],Object:[{key:D.lookup.type,value:D.lookup.name},{key:D["combo-list"].type,value:D["combo-list"].name},{key:D["radio-group"].type,value:D["radio-group"].name}],EmployeeSelector:[{key:D.EmployeeSelector.type,value:D.EmployeeSelector.name}],AdminOrganizationSelector:[{key:D.AdminOrganizationSelector.type,value:D.AdminOrganizationSelector.name}]});class J{constructor(e,o){N(this,"componentId");N(this,"viewModelId");N(this,"eventsEditorUtils");N(this,"formSchemaUtils");N(this,"formMetadataConverter");N(this,"designViewModelUtils");N(this,"designViewModelField");N(this,"controlCreatorUtils");N(this,"designerHostService");N(this,"metadataService",null);N(this,"propertyConfig",{type:"object",categories:{}});var a;this.componentId=e,this.designerHostService=o,this.eventsEditorUtils=o.eventsEditorUtils,this.formSchemaUtils=o.formSchemaUtils,this.formMetadataConverter=o.formMetadataConverter,this.viewModelId=((a=this.formSchemaUtils)==null?void 0:a.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=o.designViewModelUtils,this.controlCreatorUtils=o.controlCreatorUtils,this.metadataService=o.metadataService}setDesignViewModelField(e){const o=e.binding&&e.binding.type==="Form"&&e.binding.field;if(o){if(!this.designViewModelField){const a=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=a.fields.find(f=>f.id===o)}e.updateOn=this.designViewModelField.updateOn}}changeFieldEditorType(e,o){}getBasicPropConfig(e){var o=this;return this.setDesignViewModelField(e),{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"string",refreshPanelAfterChanged:!0,$converter:"/converter/change-editor.converter",editor:{type:"combo-list",textField:"value",valueField:"key",data:he.getEditorTypesByMDataType(o.designViewModelField.type.name)}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"}},setPropertyRelates(a,f){if(a)switch(a&&a.propertyID){case"type":{o.changeControlType(e,a);break}}}}}changeControlType(e,o){var g,v,d,c,u;const a=o.propertyValue,f=this.formSchemaUtils.getComponentById(this.componentId);let b=this.getControlParentContainer(e.id,f);if(!b)return;const w=b.contents.findIndex(s=>s.id===e.id),I=b.contents[w];let S;this.designViewModelField&&(this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,{editor:{$type:a},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1),S=this.controlCreatorUtils.setFormFieldProperty("Form",this.designViewModelField,null,a)),Object.assign(S,{id:I.id,appearance:I.appearance,size:I.size,label:I.label}),Object.assign(S.editor,{isTextArea:S.isTextArea&&I.isTextArea,type:a||"",placeHolder:(g=I.editor)==null?void 0:g.placeHolder,holdPlace:(v=I.editor)==null?void 0:v.holdPlace,readonly:(d=I.editor)==null?void 0:d.readonly,require:(c=I.editor)==null?void 0:c.require,visible:(u=I.editor)==null?void 0:u.visible}),b.contents.splice(w,1,S)}getAppearanceConfig(e=null){return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!1,editor:{type:"response-layout-editor-setting"},$converter:"/converter/response-form-layout.converter"}}}}getControlParentContainer(e,o){let a;if(!o||!o.contents||o.contents.length===0)return null;for(const f of o.contents){if(f.id===e)return a=o,o;if(a=this.getControlParentContainer(e,f),a)return a}}getBindingFieldEditorOptions(e){const o=this.formSchemaUtils.getFormMetadataBasicInfo();return{type:"field-selector",bindingType:{enable:!1},editorParams:{propertyData:e,formBasicInfo:o},columns:[{field:"name",title:"字段名称"},{field:"bindingField",title:"绑定字段"},{field:"fieldType",title:"字段类型"}],beforeOpenDialog:a=>{const f=this.designViewModelUtils.getAllFields2TreeByVMId(this.viewModelId);a.instance.loadData(f)},textField:"bindingField"}}}class Ae extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(e),this.getBehaviorProperties(e),this.propertyConfig}getBasicPropConfig(e){this.propertyConfig.categories.basic={description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",data:[]}}}}}getBehaviorProperties(e){this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{alignment:{title:"对齐方式",description:"The alignment of Response Toolbar Button.",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"right",name:"右对齐"},{value:"left",name:"左对齐"}]}},buttons:{title:"按钮",description:"The items of Response Toolbar.",type:"array",default:[],$converter:"/converter/buttons.converter",refreshPanelAfterChanged:!0}}}}}function Fe(l,e,o,a){const f=ye(),b=t.ref(!1),w=t.ref(!1);let I=!0,S=!1,g;function v(M){return g&&g.componentClassList&&g.componentClassList.includes("f-form-layout")&&g.componentClassList.includes("farris-form")?M.sourceType==="control"&&M.controlCategory==="input"||M.sourceType==="move"&&M.controlType==="form-group":!0}function d(M){return!Ne().basalDragulaRuleForContainer(M)||!I||!v(M),!1}function c(){b.value=!1,w.value=!1;const M=l,C=M.appearance&&M.appearance.class||"",P=C.split(" "),R=M.buttons||[],p=R.length?R[0]:null,r=p&&p.appearance?p.appearance.class:"",n=r?r.split(" "):[],i=R.length?R.reduce((O,_)=>{const U=_&&_.appearance?_.appearance.class:"",te=U?U.split(" "):[];return O.push(...te),O},[]):[],m=o==null?void 0:o.schema,k=m&&m.appearance&&m.appearance.class||"",T=k?k.split(" "):[];g={componentClass:C,componentClassList:P,childContents:R,firstChildContent:p,firstChildClass:r,firstChildClassList:n,parent:m,parentClass:k,parentClassList:T,children:R,childrenClassList:i};const{canAccept:E,fixed:L,hidePadding:A}=f.getRuleValue(P[0],g);return I=E,S=A,!0}function u(M){}function s(){return l.componentType?"display:inherit;flex-direction:inherit;margin-bottom:10px":""}function y(M,C){return C.text=M.label,C}function h(M,C,P){const R=l;if((R.appearance&&R.appearance.class||"").split(" ").includes("f-form-layout")){const n=String(M.innerText),i=z("form-group");return i.editor=P,i.label=n,i}return P}function x(){return!1}function V(){return!1}function j(){return!0}function B(){return S}function F(M){return new Ae(M,e).getPropertyConfig(l)}return{canAccepts:d,checkCanAddComponent:j,checkCanDeleteComponent:V,checkCanMoveComponent:x,getStyles:s,hideNestedPaddingInDesginerView:B,onAcceptNewChildElement:h,onAcceptMovedChildElement:u,onResolveNewComponentSchema:y,resolveComponentContext:c,getPropsConfig:F,triggerBelongedComponentToMoveWhenMoved:b,triggerBelongedComponentToDeleteWhenDeleted:w}}const Oe={id:{type:String,default:""},componentId:{type:String,default:""},canAdd:{type:Boolean,default:!1},canDelete:{type:Boolean,default:!1},canMove:{type:Boolean,default:!1},contentKey:{type:String,default:"contents"},childLabel:{type:String,default:""},childType:{type:String,default:""},modelValue:{type:Object}},ee=t.ref(0);function $e(l,e){const o=e.getBoundingClientRect(),a=l.getBoundingClientRect(),f=a.top>=o.top,b=a.top<=o.bottom;return f&&b}function Le(l){if(!l)return;let e;if(l.className.includes("dgComponentSelected")?e=l:e=l.querySelector(".dgComponentSelected"),!e)return;const o=e.getBoundingClientRect();if(o.width===0&&o.height===0)return;const a=e.querySelector(".component-btn-group");if(a){if(!$e(e,l)){a.style.display="none";return}a.style.display="";const b=a.getBoundingClientRect(),w=a.querySelector("div");if(w){const I=w.getBoundingClientRect();w.style.top=b.top+"px",w.style.left=b.left-I.width+"px"}}}function _e(l,e,o){var F;function a(){}const f="",b=t.ref();function w(){return!0}function I(){return!1}function S(){return!0}function g(){return!0}function v(){return!0}function d(M){if(!M||!M.value)return null;const C=t.ref(M==null?void 0:M.value.parent),P=d(C);return P||null}function c(M=e){const{componentInstance:C,designerItemElementRef:P}=M;return!C||!C.value?null:C.value.canMove||C.value.canAdd||C.value.canDelete?P:c(M.parent)}function u(M){return!!o}function s(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function y(){}function h(M,C){}function x(M){const{componentType:C}=M;let P=z(C,M);const R=C.toLowerCase().replace("-","_");return P&&!P.id&&P.type===C&&(P.id=`${R}_${Math.random().toString().slice(2,6)}`),P}function V(M,C){const P=String(M.getAttribute("data-controltype")),R=M.getAttribute("data-feature"),p=R?JSON.parse(R):{};p.parentComponentInstance=b.value;let r=z(P,p);const n=P.toLowerCase().replace("-","_");return r&&!r.id&&r.type===P&&(r.id=`${n}_${Math.random().toString().slice(2,6)}`),r}function j(M){}function B(){return[]}return b.value={canMove:w(),canSelectParent:I(),canAdd:g(),canDelete:S(),canNested:!v(),contents:[],elementRef:l,parent:(F=e.parent)==null?void 0:F.componentInstance,schema:e.schema,styles:f,canAccepts:u,getBelongedComponentInstance:d,getDraggableDesignItemElement:c,getDraggingDisplayText:s,getPropConfig:B,getDragScopeElement:y,onAcceptMovedChildElement:h,onAcceptNewChildElement:V,onChildElementMovedOut:j,addNewChildComponentSchema:x,updateDragAndDropRules:a,triggerBelongedComponentToMoveWhenMoved:t.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:t.ref(!1)},b}const Ue=t.defineComponent({name:"FDesignerInnerItem",props:Oe,emits:["selectionChange","addComponent","removeComponent"],setup(l,e){const o=t.ref(l.canMove),a=t.ref(l.canAdd),f=t.ref(l.canDelete),b=t.ref(!1),w=t.ref(l.contentKey),I=t.ref(l.childType),S=t.ref(l.childLabel),g=t.ref(l.modelValue),v=t.ref(""),d=t.ref(),c=t.inject("canvas-dragula"),u=t.ref(),s=t.inject("design-item-context"),y={designerItemElementRef:d,componentInstance:u,schema:g.value,parent:s,setupContext:e};t.provide("design-item-context",y);const h=t.computed(()=>({"farris-component":!0,"position-relative":o.value||f.value,"farris-nested":b.value,"can-move":o.value,"d-none":d.value&&d.value.classList.contains("d-none")})),x=t.computed(()=>{const n={};return v.value&&v.value.split(";").reduce((i,m)=>{const[k,T]=m.split(":");return k&&(i[k]=T),i},n),n});function V(n,i){if(s&&s.schema[w.value]){const m=s.schema[w.value].findIndex(k=>k.id===i.id);if(m>-1){const k=s.schema[w.value].length,T=s.schema[w.value][m%k];s.designerItemElementRef.value.querySelector(`#${T.id}-design-item`),s.schema[w.value].splice(m,1),s.componentInstance.value.updateDragAndDropRules(),ee.value++,e.emit("removeComponent")}}}function j(n){if(u.value.addNewChildComponentSchema){const i={componentType:I.value,label:S.value,parentComponentInstance:u.value,targetPosition:-1},m=u.value.addNewChildComponentSchema(i);g.value[w.value].push(m),e.emit("addComponent")}}function B(){return a.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增",ref:"removeComponent",onClick:n=>{j()}},[t.createVNode("i",{class:"f-icon f-icon-plus-circle"},null)])}function F(n){return f.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeComponent",onClick:t.withModifiers(i=>V(i,n),["stop"])},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)])}function M(){return o.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"移动",ref:"moveComponent"},[t.createVNode("i",{"data-dragging-icon":"true",class:"cmp_move f-icon f-icon-yxs_move"},null)])}function C(n){return t.createVNode("div",{class:"component-btn-group","data-noattach":"true"},[t.createVNode("div",null,[B(),M(),F(n)])])}t.watch(()=>l.modelValue,n=>{g.value=n,y.schema=n});function P(n){const i=n.target;Le(i)}function R(){var n,i;(i=(n=g.value)==null?void 0:n.contents)!=null&&i.length&&d.value&&d.value.addEventListener("scroll",P)}function p(){const n=d.value,i=t.ref(n.children[1]);return _e(i,y).value}t.onMounted(()=>{if(d.value){const n=d.value.querySelector(`[data-dragref='${g.value.id}-container']`);u.value=n&&n.componentInstance?n.componentInstance.value:p(),c&&n&&c.attachComponents(n,g.value),b.value=u.value.canNested!==void 0?u.value.canNested:b.value,a.value=u.value.canAdd!==void 0?u.value.canAdd:a.value,f.value=u.value.canDelete!==void 0?u.value.canDelete:f.value,o.value=u.value.canMove!==void 0?u.value.canMove:o.value,v.value=u.value.styles||"",d.value&&(d.value.componentInstance=u,d.value.designItemContext=y)}R(),ee.value++}),t.onBeforeUnmount(()=>{d.value&&d.value.removeEventListener("scroll",P)});function r(n){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(m=>m.classList.remove("dgComponentFocused")),n&&(n.preventDefault(),n.stopPropagation());const i=d.value;if(i){const m=document.getElementsByClassName("dgComponentSelected");if(!(m&&m.length===1&&m[0]===d.value)){Array.from(m).forEach(E=>E.classList.remove("dgComponentSelected")),i.classList.add("dgComponentFocused"),e.emit("selectionChange",g.value.type,g.value,l.componentId,u.value);const T=u.value.getDraggableDesignItemElement(y);T&&T.value&&T.value.classList.add("dgComponentSelected")}}ee.value++}return()=>t.createVNode("div",{id:`${l.id}-design-item`,ref:d,class:h.value,style:x.value,onClick:r},[C(g.value),e.slots.default&&e.slots.default()])}});class We extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(e),this.getAppearanceProperties(e),this.getEventPropConfig(e),this.propertyConfig}getBasicPropConfig(e){this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识00",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0,$converter:"/converter/type.converter"},text:{title:"文本",type:"string",description:""},icon:{title:"图标",type:"string",description:""}}}}getAppearanceProperties(e){this.propertyConfig.categories.appearance={title:"外观",properties:{class:{description:"组件的CSS样式",title:"class样式"},style:{description:"组件的内容样式",title:"style样式"}},setPropertyRelates(o,a){}}}getEventPropConfig(e){const o=[{label:"click",name:"点击事件"}];var a=this;const f=a.eventsEditorUtils.formProperties(e,a.viewModelId,o),b={};b[a.viewModelId]={type:"events-editor",editor:{initialData:f}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:b,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(w,I){const S=w.propertyValue;delete e[a.viewModelId],S&&(S.setPropertyRelates=this.setPropertyRelates,a.eventsEditorUtils.saveRelatedParameters(e,a.viewModelId,S.events,S))}}}}class ze extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(),this.getAppearanceProperties(e),this.getEventPropConfig(e),this.propertyConfig}getBasicPropConfig(){this.propertyConfig.categories.basic={title:"基本信息",description:"Basic Infomation",properties:{id:{title:"标识",type:"string",description:"The identifier of a component.",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",data:[]}},text:{title:"文本",type:"string",description:"",refreshPanelAfterChanged:!0},icon:{title:"图标",type:"string",description:""}}}}getAppearanceProperties(e){}getEventPropConfig(e){const o=[{label:"click",name:"点击事件"}],a=this,f=a.eventsEditorUtils.formProperties(e,a.viewModelId,o),b={};b[a.viewModelId]={type:"events-editor",editor:{initialData:f}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:b,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(w,I){const S=w.propertyValue;delete e[a.viewModelId],S&&(S.setPropertyRelates=this.setPropertyRelates,a.eventsEditorUtils.saveRelatedParameters(e,a.viewModelId,S.events,S))}}}}function qe(l,e){ye();const o=t.ref(!1),a=t.ref(!1);let f=!1,b=!1;function w(h){return!1}function I(h){}function S(){return""}function g(h,x){return x.text=h.label,x}function v(h,x,V){const j=l.schema;if((j.appearance&&j.appearance.class||"").split(" ").includes("f-form-layout")){const M=String(h.innerText),C=z("form-group");return C.editor=V,C.label=M,C}return V}function d(){return!1}function c(){return!b}function u(){return!1}function s(){return f}function y(h){let x;switch(l.schema.type){case"tab-toolbar-item":x=new We(h,e);break;default:x=new ze(h,e)}return x.getPropertyConfig(l.schema)}return{canAccepts:w,checkCanAddComponent:u,checkCanDeleteComponent:c,checkCanMoveComponent:d,getStyles:S,hideNestedPaddingInDesginerView:s,onAcceptNewChildElement:v,onAcceptMovedChildElement:I,onResolveNewComponentSchema:g,getPropsConfig:y,triggerBelongedComponentToMoveWhenMoved:o,triggerBelongedComponentToDeleteWhenDeleted:a}}const be=t.defineComponent({name:"FResponseToolbarItemDesign",props:fe,emits:["Click"],setup(l,e){t.ref(),t.ref();const o=t.ref(l.alignment),a={id:"__more_buttons__",text:"More"},f=t.ref(new W(a));t.computed(()=>f.value.children.length>0);const b=t.ref(),w=t.inject("designer-host-service"),I=t.inject("design-item-context"),S=qe(I,w),g=oe.useDesignerInnerComponent(b,I,S);t.inject("toolbar-item-handler",()=>{}),t.onMounted(()=>{b.value.componentInstance=g}),e.expose(g.value);function v(){const u={"f-icon":!0};if(l.icon){const s=l.icon.trim().split(" ");s&&s.length&&s.reduce((y,h)=>(y[h]=!0,y),u)}return u}function d(){return!!(l.icon&&l.icon.trim())}function c(){const u={btn:!0,"f-rt-btn":!0,"f-btn-ml":o.value==="right","f-btn-mr":o.value==="left","btn-icontext":!!(l.icon&&l.icon.trim())};if(l.class){const s=l.class.split(" ");s&&s.length&&s.reduce((y,h)=>(y[h]=!0,y),u)}return u}return t.onMounted(()=>{}),t.onUnmounted(()=>{}),()=>t.createVNode("div",{ref:b,"data-dragref":`${I.schema.id}-container`,class:"farris-component position-relative",style:"display:inline-block!important;"},[t.createVNode("button",{type:"button",class:c(),id:l.id},[d()&&t.createVNode("i",{class:v()},null),l.text])])}}),He=t.defineComponent({name:"FResponseToolbarDesign",props:Y,emits:["Click"],setup(l,e){const o=t.ref(l.items);let a=new Array(o.value.length).fill(t.ref());const f=t.ref(),b=t.ref(),w=t.ref(l.alignment),I={id:"__more_buttons__",text:"More"},S=t.ref(new W(I)),g=me();t.computed(()=>S.value.children.length>0);const v=t.ref(),d=t.inject("designer-host-service"),c=t.inject("design-item-context"),u=Fe(c.schema,d,c),s=oe.useDesignerInnerComponent(v,c,u);t.inject("toolbar-item-handler",()=>{}),t.onMounted(()=>{v.value.componentInstance=s}),e.expose(s.value);const y=t.computed(()=>({"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0})),h=t.computed(()=>({"d-flex":!0,"flex-nowrap":!0,"justify-content-end":w.value==="right","justify-content-start":w.value==="left"})),{renderToolbarDropdown:x,clearAllDropDown:V}=Be(l,g,s);function j(){o.value.filter(p=>p.children&&p.children.length>0).forEach(p=>{p.expanded=!1}),S.value.expanded=!1,V()}const B=new Map,F=[];function M(p){const r=b.value;let n=p;const i=Array.from(r.children),m=i[i.length-1].id==="__more_buttons__"?i[i.length-1]:null;if(m){const A=m.computedStyleMap().get("margin-left"),O=m.computedStyleMap().get("margin-right"),_=(A?A.value:0)+m.getBoundingClientRect().width+(O?O.value:0);n-=_}const k=i.filter(A=>A.id!=="__more_buttons__");for(const A of k){const O=A.computedStyleMap().get("margin-left"),_=A.computedStyleMap().get("margin-right"),U=(O?O.value:0)+A.getBoundingClientRect().width+(_?_.value:0);n<U?(B.set(A.id,!0),F.push({id:A.id,width:U})):n-=U}if(F.length)for(let A=F.length-1;A>=0;A--){const O=F[A].width;if(n>=O)n-=O,B.delete(F[A].id),F.pop();else break}const T=Object.assign({},S.value);T.children=[];const E=new W(T),L=o.value.reduce((A,O)=>(B.has(O.id)&&E.children.push(O),O.visible=!B.has(O.id),A.push(O),A),[]);S.value=E,o.value=L}const C=new ResizeObserver(p=>{if(p.length){const n=p[0].contentRect.width,m=b.value.getBoundingClientRect().width;(n<m||F.length)&&M(n)}});t.onMounted(()=>{const p=f.value;C.observe(p),document.body.addEventListener("click",j)}),t.onUnmounted(()=>{C.disconnect(),document.body.removeEventListener("click",j)}),t.watch(()=>l.items,()=>{o.value=l.items},{deep:!0}),t.watch(o,p=>{a=new Array(o.value.length).fill(t.ref())});function P(p,r,n,i){c&&c.setupContext&&c.setupContext.emit("selectionChange",p,r,n,i)}function R(){const p=b.value.querySelector(".dgComponentFocused.dgComponentSelected");p==null||p.classList.remove("dgComponentSelected"),p==null||p.classList.remove("dgComponentFocused")}return()=>t.createVNode("div",{ref:v,"data-dragref":`${c.schema.id}-container`,class:y.value},[t.createVNode("div",{ref:f,class:h.value},[t.createVNode("div",{ref:b,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[o.value.map((p,r)=>t.createVNode(Ue,{ref:a[r],class:"p-0 display-inline-block",modelValue:p,"onUpdate:modelValue":n=>p=n,canMove:!0,childType:"response-toolbar-item",childLabel:"按钮",contentKey:"buttons",componentId:p.id,id:p.id,style:"padding:0 !important;display:inline-block",onSelectionChange:P,onRemoveComponent:R},{default:()=>[t.createVNode(be,{id:p.id,disable:p.disable,text:p.text,icon:p.icon},null)]}))])])])}}),Ge=Z;H.register=(l,e,o)=>{l["response-toolbar"]=H,e["response-toolbar"]=Z},H.registerDesigner=(l,e,o)=>{l["response-toolbar"]=He,e["response-toolbar"]=Z,l["response-toolbar-item"]=be,e["response-toolbar-item"]=je};const Qe=ve.withInstall(H);$.FResponseToolbar=H,$.ResponseToolbarDropDownItem=W,$.ResponseToolbarGroup=Te,$.ResponseToolbarItem=se,$.default=Qe,$.responseToolbarResolver=Ge,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function($,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("lodash-es"),require("@farris/ui-vue/components/designer-canvas/src/composition/function/use-designer-inner-component"),require("@farris/ui-vue/components/common")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","@farris/ui-vue/components/designer-canvas/src/composition/function/use-designer-inner-component","@farris/ui-vue/components/common"],t):($=typeof globalThis<"u"?globalThis:$||self,t($["response-toolbar"]={},$.Vue,$.LodashES,$.useDesignerInnerComponent$1,$.common))})(this,function($,t,q,oe,ve){"use strict";var Ke=Object.defineProperty;var Je=($,t,q)=>t in $?Ke($,t,{enumerable:!0,configurable:!0,writable:!0,value:q}):$[t]=q;var N=($,t,q)=>Je($,typeof t!="symbol"?t+"":t,q);class re{constructor(e){N(this,"id","");N(this,"class","btn-secondary");N(this,"icon","");N(this,"groupId","");N(this,"order",-1);N(this,"asDropDownTop",!1);N(this,"text","");N(this,"visible",!0);N(this,"responsed",!1);N(this,"tipsEnable",!1);N(this,"tipsText","");N(this,"width",0);N(this,"onClick",()=>{});N(this,"options");this.options=e;const o=["id","class","icon","groupId","order","asDropDownTop","text","isDP","visible","responsed","width","tipsEnable","tipsText","onClick"];Object.keys(e).filter(l=>o.indexOf(l)>-1).forEach(l=>{this[l]=e[l]})}get enable(){return Object.keys(this.options).indexOf("enable")>-1?this.options.enable:t.computed(()=>!0)}setWidth(e){this.width=parseInt(e,10)}getWidth(){return this.visible?this.width:!1}}class se extends re{constructor(e){super(e)}}function ie(){function a(e){const o=[];return e.reduce((l,f)=>(f.children&&f.children.length>0?l.push(new W(f)):l.push(new se(f)),l),o),o}return{buildResponseToolbarItems:a}}const{buildResponseToolbarItems:we}=ie();class W extends re{constructor(o){super(o);N(this,"placement","");N(this,"dropdownClass","");N(this,"menuClass","");N(this,"split",!1);N(this,"children",[]);N(this,"expanded",!1);const l=["isDP","class","dropdownClass","menuClass","placement","split","expanded"];Object.keys(o).filter(f=>l.indexOf(f)>-1).forEach(f=>{this[f]=o[f]}),o.children&&o.children.length&&(this.children=we(o.children))}}class Te{constructor(e,o){N(this,"id");N(this,"name");N(this,"presetId",[]);N(this,"responsedIndex",[]);N(this,"width");this.id=e,this.name=o,this.width=0}setWidth(e){this.width=parseInt(e+"",10)}getWidth(){return this.width}setPreset(e){Array.isArray(e)?this.presetId=this.presetId.concat(e):this.presetId.push(e)}delPreset(){this.presetId=[]}removeResponsed(e){this.responsedIndex.splice(e,1)}setResponsed(e){Array.isArray(e)?this.responsedIndex=this.responsedIndex.concat(e):this.responsedIndex.push(e)}isResponsing(){return this.responsedIndex.length>0}isResponsed(){return this.presetId.length===this.responsedIndex.length}}const G={},ae={};function Q(a){const{properties:e,title:o}=a,l=Object.keys(e).reduce((f,g)=>(f[g]=e[g].type==="object"&&e[g].properties?Q(e[g]):q.cloneDeep(e[g].default),f),{});return l.id=`${o}-${Date.now()}`,l}function z(a,e={}){const o=G[a];if(o){let l=Q(o);const f=ae[a];return l=f?f({getSchemaByType:z},l,e):l,l}return null}function xe(a,e){const o=Q(e);return Object.keys(a).reduce((l,f)=>(l[f]=a[f],l),o),o}function Se(a,e){return Object.keys(a).filter(l=>a[l]!=null).reduce((l,f)=>{if(e.has(f)){const g=e.get(f);if(typeof g=="string")l[g]=a[f];else{const v=g(f,a[f],a);Object.assign(l,v)}}else l[f]=a[f];return l},{})}function De(a,e,o=new Map){const l=xe(a,e);return Se(l,o)}function Ie(a={}){function e(y,w,d,c){if(typeof d=="number")return c[y].length===d;if(typeof d=="object"){const u=Object.keys(d)[0],s=d[u];if(u==="not")return Number(c[y].length)!==Number(s);if(u==="moreThan")return Number(c[y].length)>=Number(s);if(u==="lessThan")return Number(c[y].length)<=Number(s)}return!1}function o(y,w,d,c){return c[y]&&c[y].propertyValue&&String(c[y].propertyValue.value)===String(d)}const l=new Map([["length",e],["getProperty",o]]);Object.keys(a).reduce((y,w)=>(y.set(w,a[w]),y),l);function f(y,w){const d=y;return typeof w=="number"?[{target:d,operator:"length",param:null,value:Number(w)}]:typeof w=="boolean"?[{target:d,operator:"getProperty",param:y,value:!!w}]:typeof w=="object"?Object.keys(w).map(c=>{if(c==="length")return{target:d,operator:"length",param:null,value:w[c]};const u=c,s=w[c];return{target:d,operator:"getProperty",param:u,value:s}}):[]}function g(y){return Object.keys(y).reduce((d,c)=>{const u=f(c,y[c]);return d.push(...u),d},[])}function v(y,w){if(l.has(y.operator)){const d=l.get(y.operator);return d&&d(y.target,y.param,y.value,w)||!1}return!1}function M(y,w){return g(y).reduce((u,s)=>u&&v(s,w),!0)}function S(y,w){const d=Object.keys(y),c=d.includes("allOf"),u=d.includes("anyOf"),s=c||u,x=(s?y[s?c?"allOf":"anyOf":"allOf"]:[y]).map(k=>M(k,w));return c?!x.includes(!1):x.includes(!0)}return{parseValueSchema:S}}const I={Button:{type:"Button",name:"按钮",icon:"Button"},ButtonGroup:{type:"ButtonGroup",name:"按钮组",icon:"ButtonGroup"},"response-toolbar":{type:"response-toolbar",name:"工具栏",icon:"ButtonGroup"},"response-toolbar-item":{type:"response-toolbar-item",name:"工具栏项",icon:"Button"},"content-container":{type:"content-container",name:"容器",icon:"ContentContainer"},DisplayField:{type:"DisplayField",name:"标签",icon:"DisplayField"},"input-group":{type:"input-group",name:"文本",icon:"TextBox"},textarea:{type:"textarea",name:"多行文本",icon:"MultiTextBox"},lookup:{type:"lookup",name:"帮助",icon:"LookupEdit"},"number-spinner":{type:"number-spinner",name:"数值",icon:"NumericBox"},"date-picker":{type:"date-picker",name:"日期",icon:"DateBox"},switch:{type:"switch",name:"开关",icon:"SwitchField"},"radio-group":{type:"radio-group",name:"单选组",icon:"RadioGroup"},"check-box":{type:"check-box",name:"复选框",icon:"CheckBox"},"check-group":{type:"check-group",name:"复选框组",icon:"CheckGroup"},"combo-list":{type:"combo-list",name:"下拉列表",icon:"EnumField"},FlexLayout:{type:"FlexLayout",name:"弹性布局"},FlowLayout:{type:"FlowLayout",name:"流布局"},ResponseLayout:{type:"ResponseLayout",name:"布局容器",icon:"ResponseLayout3"},ResponseLayoutItem:{type:"ResponseLayoutItem",name:"布局",icon:"ResponseLayout1"},"tree-grid":{type:"tree-grid",name:"树表格",icon:"TreeGrid"},TreeGridField:{type:"TreeGridField",name:"树表格列"},FieldSet:{type:"FieldSet",name:"分组",icon:"FieldSet"},Form:{type:"Form",name:"卡片面板",icon:"Form"},QueryForm:{type:"QueryForm",name:"查询面板",icon:"Form"},"data-grid":{type:"data-grid",name:"表格",icon:"DataGrid"},"data-grid-column":{type:"data-grid-column",name:"表格列"},Panel:{type:"Panel",name:"面板",icon:"ContentContainer"},Module:{type:"Module",name:"模块",icon:"Module"},component:{type:"component",name:"组件",icon:"Component"},ExternalContainer:{type:"ExternalContainer",name:"外部容器",icon:"ContentContainer"},Image:{type:"Image",name:"图像",icon:"Image"},ImageUpload:{type:"ImageUpload",name:"图片上传",icon:"imageupload"},HiddenContainer:{type:"HiddenContainer",name:"隐藏区域",icon:"ContentContainer"},ModalContainer:{type:"ModalContainer",name:"弹窗容器",icon:"ContentContainer"},RouteContainer:{type:"RouteContainer",name:"路由区域",icon:"ContentContainer"},tabs:{type:"tabs",name:"标签页",icon:"Tab"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮",icon:"Button"},Tag:{type:"Tag",name:"Tag",icon:"Tag"},Sidebar:{type:"Sidebar",name:"侧边栏",icon:"Sidebar"},HtmlTemplate:{type:"HtmlTemplate",name:"模版容器",icon:"HtmlTemplate"},ListView:{type:"ListView",name:"列表",icon:"ListView"},RichTextBox:{type:"RichTextBox",name:"富文本",icon:"RichTextBox"},TimeSpinner:{type:"TimeSpinner",name:"时间调节器",icon:"TimePicker"},TimePicker:{type:"TimePicker",name:"时间选择",icon:"TimePicker"},section:{type:"section",name:"分组面板",icon:"Section"},SectionToolbar:{type:"SectionToolbar",name:"分组面板工具栏"},SectionToolbarItem:{type:"SectionToolbarItem",name:"分组面板按钮"},QueryScheme:{type:"QueryScheme",name:"筛选方案",icon:"QueryScheme"},FormHeader:{type:"FormHeader",name:"翻页"},Splitter:{type:"Splitter",name:"分栏面板",icon:"Splitter"},SplitterPane:{type:"SplitterPane",name:"分栏面板项",dependentParentControl:"Splitter"},WizardDetail:{type:"WizardDetail",name:"向导详情页"},WizardDetailContainer:{type:"WizardDetailContainer",name:"向导详情容器"},Wizard:{type:"Wizard",name:"向导",icon:"Wizard"},MultiSelect:{type:"MultiSelect",name:"数据分配",icon:"MultiSelect"},Steps:{type:"Steps",name:"步骤条",icon:"Steps"},avatar:{type:"avatar",name:"头像",icon:"Avatar"},ListFilter:{type:"ListFilter",name:"筛选条",icon:"ListFilter"},ListNav:{type:"ListNav",name:"列表导航",icon:"ListNav"},NumberRange:{type:"NumberRange",name:"数字区间选择",icon:"NumericBox"},Scrollspy:{type:"Scrollspy",name:"滚动监听",icon:"Scrollspy"},LanguageTextBox:{type:"LanguageTextBox",name:"多语言输入框",icon:"LanguageTextBox"},ComponentRef:{type:"ComponentRef",name:"组件引用节点"},FileUpload:{type:"FileUpload",name:"附件上传",icon:"FileUpload"},FilePreview:{type:"FilePreview",name:"附件预览",icon:"FilePreview"},ViewChange:{type:"ViewChange",name:"多视图切换",icon:"Button"},MultiViewContainer:{type:"MultiViewContainer",name:"多视图",icon:"MultiViewContainer"},MultiViewItem:{type:"MultiViewItem",name:"多视图项",dependentParentControl:"MultiViewContainer"},Footer:{type:"Footer",name:"页脚"},DiscussionEditor:{type:"DiscussionEditor",name:"评论编辑区",icon:"DiscussionEditor"},DiscussionList:{type:"DiscussionList",name:"评论列表",icon:"DiscussionList"},NavTab:{type:"NavTab",name:"标签类导航",icon:"NavTab"},Tags:{type:"Tags",name:"标记组",icon:"Tags"},Portlet:{type:"Portlet",name:"小部件",icon:"dingzhi"},"page-header":{type:"page-header",name:"页头",icon:"Header"},ModalFooter:{type:"ModalFooter",name:"弹窗页脚",icon:"ModalFooter"},ScrollCollapsibleArea:{type:"ScrollCollapsibleArea",name:"滚动收折区域",icon:"ScrollCollapsibleArea"},PersonnelSelector:{type:"PersonnelSelector",name:"人员选择",icon:"PersonnelSelector"},Table:{type:"Table",name:"表格",icon:"DataGrid"},LoopContainer:{type:"LoopContainer",name:"循环容器",icon:"ContentContainer"},FileUploadPreview:{type:"FileUploadPreview",name:"附件上传预览",icon:"FileUpload"},DynamicArea:{type:"DynamicArea",name:"动态区域",icon:"ContentContainer"},DynamicAreaItem:{type:"DynamicAreaItem",name:"动态区域项",icon:"ContentContainer"},TabToolbar:{type:"TabToolbar",name:"标签页工具栏",icon:"TabToolbar"},HeaderToolBar:{type:"HeaderToolBar",name:"头部组件工具栏",icon:"HeaderToolBar"},ModalFooterToolBar:{type:"ModalFooterToolBar",name:"底部组件工具栏",icon:"ModalFooterToolBar"},HeaderToolBarItem:{type:"HeaderToolBarItem",name:"头部组件工具栏按钮",icon:"HeaderToolBarItem"},ModalFooterToolBarItem:{type:"ModalFooterToolBarItem",name:"底部组件工具栏按钮",icon:"ModalFooterToolBarItem"},OrganizationSelector:{type:"OrganizationSelector",name:"组织选择",icon:"OrganizationSelector"},AdminOrganizationSelector:{type:"AdminOrganizationSelector",name:"组织选择",icon:"OrganizationSelector"},EmployeeSelector:{type:"EmployeeSelector",name:"人员选择",icon:"PersonnelSelector"},OaRelation:{type:"OaRelation",name:"关联行政审批",icon:"TextBox"},CitySelector:{type:"CitySelector",name:"城市选择",icon:"CitySelector"},ExtIntergration:{type:"ExtIntergration",name:"外部服务集成",icon:"ViewModel"},AppointmentCalendar:{type:"AppointmentCalendar",name:"预约日历",icon:"DateBox"},Charts:{type:"Charts",name:"图表",icon:"Charts"},QdpFramework:{type:"QdpFramework",name:"查询结果工具栏",icon:"QdpFramework"},SpreadSheet:{type:"SpreadSheet",name:"查询表格控件",icon:"Charts"},QdpConditionDialog:{type:"QdpConditionDialog",name:"查询筛选对话框",icon:"ContentContainer"},QdpConditionDialogTab:{type:"QdpConditionDialogTab",name:"查询筛选标签页",icon:"Tab"},ApprovalLogs:{type:"ApprovalLogs",name:"审批记录",icon:"ApprovalLogs"},ApprovalComments:{type:"ApprovalComments",name:"审批意见",icon:"shenpiyijian"}},ce={},Me={};Ie();function le(a,e,o=new Map,l=(v,M,S)=>M,f={},g=v=>v){return G[e.title]=e,ae[e.title]=l,ce[e.title]=f,Me[e.title]=g,(v={})=>{const M=De(v,e,o),S=Object.keys(a).reduce((y,w)=>(y[w]=a[w].default,y),{});return Object.assign(S,M)}}const pe=new Map([["buttons","items"]]);function de(a,e,o){return e}const Pe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar.schema.json",title:"response-toolbar",description:"A Farris Toolbar Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},alignment:{description:"The alignment of Response Toolbar Button.",type:"string",default:"right"},buttons:{description:"The items of Response Toolbar.",type:"array",default:[]}},required:["id","type","buttons"]},X={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/response-toolbar-item.schema.json",title:"response-toolbar-item",description:"A Farris Toolbar Item Component",type:"object",properties:{id:{description:"The unique identifier for a Response Toolbar",type:"string"},type:{description:"The type string of Response Toolbar",type:"string",default:"response-toolbar-item"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},text:{description:"The items of Response Toolbar.",type:"string",default:"新增"},icon:{description:"The icon of response toolbar item.",type:"string",default:""},click:{description:"The event of response toolbar item.",type:"string",default:""}},required:["id","type","text"]},ue={title:"response-toolbar-item",description:"A Farris Container Component",type:"object",categories:{basic:{title:"基本信息",description:"Basic Infomation",properties:{id:{title:"标识",type:"string",description:"The identifier of a component.",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",data:[]}},text:{title:"文本",type:"string",description:"",refreshPanelAfterChanged:!0},icon:{title:"图标",type:"string",description:""}}}}},Y={customClass:{type:String,default:""},alignment:{Type:String,default:"right"},items:{Type:Array,default:[]}};G[X.title]=X,ce[ue.title]=ue;const ke=Object.assign({},Y,{componentId:{type:String,default:""}}),Z=le(Y,Pe,pe,de),fe={id:{type:String,default:""},items:{type:Object,default:{}},text:{type:String,default:""},disabled:{type:Boolean,default:!1},icon:{type:String,default:""},componentId:{type:String,default:""}},je=le(fe,X,pe,de);function me(){function a(o){const l={"f-icon":!0};if(o.icon){const f=o.icon.trim().split(" ");f&&f.length&&f.reduce((g,v)=>(g[v]=!0,g),l)}return l}function e(o){return!!(o.icon&&o.icon.trim())}return{iconClass:a,shouldShowIcon:e}}function Re(a){function e(d){const c={"dropdown-menu":!0};if(d.class){const u=d.menuClass.split(" ");u&&u.length&&u.reduce((s,h)=>(s[h]=!0,s),c)}return c}function o(d){const c={disabled:!d.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0},u=d.dropdownClass.split(" ");return u&&u.length&&u.reduce((s,h)=>(s[h]=!0,s),c),c}function l(d){const c={disabled:!d.enable,"dropdown-item":!0,"f-rt-btn":!0},u=d.class.split(" ");return u&&u.length&&u.reduce((s,h)=>(s[h]=!0,s),c),c}let f;const g=new Map;function v(d,c,u){var h;((h=d.target)==null?void 0:h.id)===c.id&&d.stopPropagation();const s=u?u.id:"__top_item__";if(c.children&&c.children.length&&(c.expanded=!c.expanded,c.expanded?g.set(s,c):g.delete(s)),g.has(s)&&g.get(s)!==c){const b=g.get(s);b&&(b.expanded=!1)}}function M(d,c){document.body.click(),c.enable&&c.onClick(d,c.id)}function S(d){return d.children.map(c=>c.children&&c.children.length?t.createVNode("li",{class:o(c),id:c.id,onClick:u=>c.enable&&v(u,c,d)},[t.createVNode("span",{id:c.id,class:l(c),onMouseover:u=>c.enable&&v(u,c,d)},[c.text,t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right",style:"display: inline-block;float: right;line-height: 1.25rem;"},null)]),f(c,c)]):t.createVNode("li",{class:l(c),id:c.id,onClick:u=>M(u,c),onMouseover:u=>c.enable&&v(u,c,d)},[a.shouldShowIcon(c)&&t.createVNode("i",{class:a.iconClass(c)},null),c.text]))}function y(d,c,u){const s={display:d.expanded?"block":"none",position:"fixed",maxWidth:"300px",width:"auto",minWidth:"120px"},h=document.getElementsByTagName("body")[0].getClientRects()[0].width,b=c,x=b==null?void 0:b.getClientRects();if(b&&x&&x.length){const{top:V,width:k,left:B,right:F,height:D}=x[0],C=Math.ceil(D+V);s.top=`${C}px`,s.left=`${B}px`;const P=d.id+"_menu",R=c?c.querySelector("#"+P):null;if(R){s.display==="block"&&(R.style.display="block");const p=R.getBoundingClientRect();if(u){s.top=`${V-6}px`;const r=Math.ceil(k+B);s.left=`${r}px`}h-B-k<p.width&&(s.left=`${(u?B:F)-p.width}px`)}}return s}f=function(d,c){var b,x;const u=t.getCurrentInstance(),s=c?c.id:d.id,h=(x=(b=u==null?void 0:u.exposed)==null?void 0:b.elementRef.value)==null?void 0:x.querySelector("#"+s);return t.createVNode("ul",{class:e(d),style:y(d,h,c),id:d.id+"_menu"},[S(d)])};function w(){g.forEach(d=>{d.expanded=!1}),g.clear()}return{renderDropdownMenu:f,clearAllDropDownMenu:w}}function Ee(a,e){const o=t.ref(a.alignment),{renderDropdownMenu:l,clearAllDropDownMenu:f}=Re(e);function g(w){const d={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":o.value==="right","f-btn-mr":o.value==="left"},c=w.dropdownClass.split(" ");return c&&c.length&&c.reduce((u,s)=>(u[s]=!0,u),d),d}function v(w){const d={btn:!0,disabled:!w.enable,"f-rt-btn":!0,"btn-icontext":!!(w.icon&&w.icon.trim())};if(w.class){const c=w.class.split(" ");c&&c.length&&c.reduce((u,s)=>(u[s]=!0,u),d)}return d}function M(w,d){w.stopPropagation();const c=d.expanded;document.body.click(),d.expanded=!c}function S(w){return t.createVNode("div",{id:w.id,class:g(w)},[t.createVNode("div",{class:v(w),style:"display: flex;padding-right: 0.1rem;border-top-right-radius: 6px;border-bottom-right-radius: 6px",onClick:d=>w.enable&&M(d,w)},[e.shouldShowIcon(w)&&t.createVNode("i",{class:e.iconClass(w)},null),t.createVNode("span",null,[w.text]),t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),l(w)])}function y(){f()}return{renderToolbarDropdown:S,clearAllDropDown:y}}const{buildResponseToolbarItems:ge}=ie(),H=t.defineComponent({name:"FResponseToolbar",props:Y,emits:["click"],setup(a,e){const o=t.ref(ge(a.items)),l=t.ref(),f=t.ref(),g=t.ref(),v=t.ref(a.alignment),M={id:"__more_buttons__",text:"更多"},S=t.ref(new W(M)),y=me(),w=t.computed(()=>S.value.children.length>0),d=t.computed(()=>{const C={"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0};if(a.customClass){const P=a.customClass.split(" ");P&&P.length&&P.reduce((R,p)=>(R[p]=!0,R),C)}return C}),c=t.computed(()=>({"d-flex":!0,"flex-nowrap":!0,"justify-content-end":v.value==="right","justify-content-start":v.value==="left"})),{renderToolbarDropdown:u,clearAllDropDown:s}=Ee(a,y);function h(){o.value.filter(C=>C.children&&C.children.length>0).forEach(C=>{C.expanded=!1}),S.value.expanded=!1,s()}function b(C){const P={btn:!0,"f-rt-btn":!0,"f-btn-ml":v.value==="right","f-btn-mr":v.value==="left","btn-icontext":!!(C.icon&&C.icon.trim())};if(C.class){const R=C.class.split(" ");R&&R.length&&R.reduce((p,r)=>(p[r]=!0,p),P)}return P}function x(C,P){document.body.click(),P.onClick(C,P.id),e.emit("click",C,P.id)}function V(C){return t.createVNode("button",{type:"button",class:b(C),id:C.id,disabled:!C.enable,onClick:P=>x(P,C)},[y.shouldShowIcon(C)&&t.createVNode("i",{class:y.iconClass(C)},null),C.text])}const k=new Map,B=[];function F(C){const P=g.value;let R=C;const p=Array.from(P.children),r=p[p.length-1].id==="__more_buttons__"?p[p.length-1]:null;if(r){const T=r.computedStyleMap().get("margin-left"),E=r.computedStyleMap().get("margin-right"),L=(T?T.value:0)+r.getBoundingClientRect().width+(E?E.value:0);R-=L}const n=p.filter(T=>T.id!=="__more_buttons__");for(const T of n){const E=T.computedStyleMap().get("margin-left"),L=T.computedStyleMap().get("margin-right"),A=(E?E.value:0)+T.getBoundingClientRect().width+(L?L.value:0);R<A?(k.set(T.id,!0),B.push({id:T.id,width:A})):R-=A}if(B.length)for(let T=B.length-1;T>=0;T--){const E=B[T].width;if(R>=E)R-=E,k.delete(B[T].id),B.pop();else break}const i=Object.assign({},S.value);i.children=[];const m=new W(i),j=o.value.reduce((T,E)=>(k.has(E.id)&&m.children.push(E),E.visible=!k.has(E.id),T.push(E),T),[]);S.value=m,o.value=j}const D=new ResizeObserver(C=>{if(C.length){const R=C[0].contentRect.width,r=g.value.getBoundingClientRect().width;(R<r||B.length)&&(F(R),h())}});return t.onMounted(()=>{const C=f.value;D.observe(C),document.body.addEventListener("click",h),document.body.addEventListener("wheel",h)}),t.onUnmounted(()=>{D.disconnect(),document.body.removeEventListener("click",h),document.body.removeEventListener("wheel",h)}),t.watch(()=>a.items,()=>{o.value=ge(a.items)},{deep:!0}),e.expose({elementRef:l}),()=>t.createVNode("div",{class:d.value,ref:l},[t.createVNode("div",{ref:f,class:c.value},[t.createVNode("div",{ref:g,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[o.value.filter(C=>C.visible).map(C=>C.children&&C.children.length>0?u(C):V(C)),w.value&&u(S.value)])])])}});function Be(a,e){const o=t.inject("design-item-context"),l=t.inject("toolbar-item-handler",()=>{});function f(){l&&l()}function g(r){const n={"dropdown-menu":!0};if(r.class){const i=r.menuClass.split(" ");i&&i.length&&i.reduce((m,j)=>(m[j]=!0,m),n)}return n}function v(r){const n={disabled:!r.enable,"dropdown-submenu":!0,"f-rt-dropdown":!0},i=r.dropdownClass.split(" ");return i&&i.length&&i.reduce((m,j)=>(m[j]=!0,m),n),n}function M(r){const n={disabled:!r.enable,"dropdown-item":!0,"f-rt-btn":!0,"position-relative":!0,"farris-component":!0},i=r.class.split(" ");return i&&i.length&&i.reduce((m,j)=>(m[j]=!0,m),n),n}let S;const y=new Map;function w(r,n,i){var j;((j=r.target)==null?void 0:j.id)===n.id&&r.stopPropagation();const m=i?i.id:"__top_item__";if(n.children&&n.children.length&&(n.expanded=!n.expanded,n.expanded?y.set(m,n):y.delete(m)),y.has(m)&&y.get(m)!==n){const T=y.get(m);T&&(T.expanded=!1)}}function d(r){r&&(r.stopPropagation(),r.preventDefault())}function c(){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(n=>n.classList.remove("dgComponentFocused"));const r=document.getElementsByClassName("dgComponentSelected");Array.from(r).forEach(n=>n.classList.remove("dgComponentSelected"))}function u(r){r.currentTarget.classList.add("dgComponentFocused","dgComponentSelected")}function s(r){const{buttons:n=[]}=o.schema;let i=[];n.forEach(T=>{i=i.concat(T.children||[])});const m=i.findIndex(T=>T.id===r),j=m===-1?null:i[m];return{index:m,item:j}}function h(r){const{buttons:n=[]}=o.schema,i=n.findIndex(j=>j.id===r),m=i===-1?null:n[i];return{index:i,item:m}}function b(r){var m;o.schema;const{index:n,item:i}=s(r);(m=o==null?void 0:o.setupContext)==null||m.emit("selectionChange",i==null?void 0:i.type,i)}const x=function(r){const{componentType:n}=r,i=z(n,r),m=n.toLowerCase().replace("-","_");return i&&!i.id&&i.type===n&&(i.id=`${m}_${Math.random().toString().slice(2,6)}`),i},V=function(){const r={componentType:"response-toolbar-item",parentComponentInstance:e.value,targetPosition:-1};return x(r)};function k(r,n){d(r),c(),u(r),b(n.id)}function B(r,n,i){d(r);const m=n.id,j=i&&i.id,{buttons:T=[]}=o.schema;if(!j)return;const{index:E}=h(j);if(E===-1)return;const{index:L}=s(m);L!==-1&&(T[E].children.splice(L,1),f())}function F(r,n,i){d(r);const m=i&&i.id,{buttons:j=[]}=o.schema;if(!m)return;const{index:T}=h(m);if(T===-1)return;const E=V(),L=Object.assign({},E,{text:n.text});j[T].children.push(L),f()}function D(r,n,i){d(r);const m=i&&i.id,{buttons:j=[]}=o.schema;if(!m)return;const{index:T}=h(m);if(T===-1)return;const E=V(),L=Object.assign({},E,{text:"按钮"});j[T].children.push(L),f()}function C(r,n){return t.createVNode("div",{class:"component-btn-group"},[t.createVNode("div",null,[t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeButton",style:"position:static;",onClick:i=>B(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"复制",ref:"copyButton",style:"position:static;",onClick:i=>F(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-yxs_copy"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增同级",ref:"appendSame",style:"width:85px!important;padding:0 5px;position:static;",onClick:i=>D(i,r,n)},[t.createVNode("i",{class:"f-icon f-icon-plus-circle text-white mr-1"},null),t.createVNode("span",{style:"font-size:13px;margin:auto"},[t.createTextVNode("新增同级")])])])])}function P(r){return r.children.map(n=>n.children&&n.children.length?t.createVNode("li",{class:v(n),id:n.id,onClick:i=>n.enable&&w(i,n,r)},[t.createVNode("span",{id:n.id,class:M(n),onMouseover:i=>n.enable&&w(i,n,r)},[n.text,t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right",style:"display: inline-block;float: right;line-height: 1.25rem;"},null)]),S(n,n)]):t.createVNode("li",{class:M(n),id:n.id,onClick:i=>k(i,n)},[C(n,r),a.shouldShowIcon(n)&&t.createVNode("i",{class:a.iconClass(n)},null),n.text]))}function R(r,n,i){const m={display:r.expanded?"block":"none",position:"fixed",maxWidth:"300px",width:"auto",minWidth:"120px"},j=document.getElementsByTagName("body")[0].getClientRects()[0].width,T=n,E=T==null?void 0:T.getClientRects();if(T&&E&&E.length){const{top:L,width:A,left:O,right:_,height:U}=E[0],te=Math.ceil(U+L);m.top=`${te}px`,m.left=`${O}px`;const Ye=r.id+"_menu",ne=n?n.querySelector("#"+Ye):null;if(ne){m.display==="block"&&(ne.style.display="block");const Ce=ne.getBoundingClientRect();if(i){m.top=`${L-6}px`;const Ze=Math.ceil(A+O);m.left=`${Ze}px`}j-O-A<Ce.width&&(m.left=`${(i?O:_)-Ce.width}px`)}}return m}S=function(r,n){var T,E;const i=t.getCurrentInstance(),m=n?n.id:r.id,j=(E=(T=i==null?void 0:i.exposed)==null?void 0:T.elementRef.value)==null?void 0:E.querySelector("#"+m);return t.createVNode("ul",{class:g(r),style:R(r,j,n),id:r.id+"_menu"},[P(r)])};function p(){y.forEach(r=>{r.expanded=!1}),y.clear()}return{renderDropdownMenu:S,clearAllDropDownMenu:p}}function Ne(a,e,o){const l=t.ref(a.alignment),{renderDropdownMenu:f,clearAllDropDownMenu:g}=Be(e,o),v=t.inject("design-item-context"),M=t.inject("toolbar-item-handler",()=>{});function S(){M&&M()}function y(p){const r={"btn-group":!0,"f-rt-dropdown":!0,"f-btn-ml":l.value==="right","f-btn-mr":l.value==="left"},n=p.dropdownClass.split(" ");return n&&n.length&&n.reduce((i,m)=>(i[m]=!0,i),r),r}function w(p){const r={btn:!0,disabled:!p.enable,"position-relative":!0,"farris-component":!0,"f-rt-btn":!0,"btn-icontext":!!(p.icon&&p.icon.trim())};if(p.class){const n=p.class.split(" ");n&&n.length&&n.reduce((i,m)=>(i[m]=!0,i),r)}return r}function d(p){p&&(p.stopPropagation(),p.preventDefault())}function c(p,r){d(p);const n=r.expanded;document.body.click(),r.expanded=!n}const u=function(p){const{componentType:r}=p,n=z(r,p),i=r.toLowerCase().replace("-","_");return n&&!n.id&&n.type===r&&(n.id=`${i}_${Math.random().toString().slice(2,6)}`),n},s=function(){const p={componentType:"response-toolbar-item",parentComponentInstance:o.value,targetPosition:-1};return u(p)};function h(p){const r=v.schema.buttons||v.schema.contents,n=r==null?void 0:r.findIndex(m=>m.id===p),i=n===-1?null:r[n];return{index:n,toolbarItem:i}}function b(p,r){var E;const{index:n,toolbarItem:i}=h(r);if(n===-1)return;const m=i.text||"按钮",j=s(),T=Object.assign({},j,{text:m});(E=v.schema.buttons)==null||E.push(T),S()}function x(p,r){const{index:n,toolbarItem:i}=h(r);if(n===-1)return;const m=i.text||"按钮",j=s(),T=Object.assign({},j,{text:m}),E=v.schema.buttons[n].children||[];E.push(T),v.schema.buttons[n].children=E,S()}function V(p,r){const n=v.schema.buttons||v.schema.contents,i=n==null?void 0:n.findIndex(m=>m.id===r);i!==-1&&(n.splice(i,1),S())}function k(p){return t.createVNode("div",{class:"component-btn-group"},[t.createVNode("div",null,[t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeButton",style:"position:static;",onClick:r=>V(r,p)},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"复制",ref:"copyButton",style:"position:static;",onClick:r=>b(r,p)},[t.createVNode("i",{class:"f-icon f-icon-yxs_copy"},null)]),t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增子级",ref:"appendChildButton",style:"width:85px!important;padding:0 5px;position:static;",onClick:r=>x(r,p)},[t.createVNode("i",{class:"f-icon f-icon-plus-circle text-white mr-1"},null),t.createVNode("span",{style:"font-size:13px;margin:auto"},[t.createTextVNode("新增子级")])])])])}function B(){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(r=>r.classList.remove("dgComponentFocused"));const p=document.getElementsByClassName("dgComponentSelected");Array.from(p).forEach(r=>r.classList.remove("dgComponentSelected"))}function F(p){p.currentTarget.classList.add("dgComponentFocused","dgComponentSelected")}function D(p){var m;const r=v.schema.buttons||v.schema.contents,n=r==null?void 0:r.findIndex(j=>j.id===p);if(n===-1)return;const i=r[n];(m=v==null?void 0:v.setupContext)==null||m.emit("selectionChange","response-toolbar-item",i)}function C(p,r){d(p),B(),F(p),d(p),c(p,r),D(r.id)}function P(p){return t.createVNode("div",{id:p.id,class:y(p)},[t.createVNode("div",{class:w(p),style:"display: flex;padding-right: 0.1rem;",onClick:r=>p.enable&&C(r,p)},[k(p.id),e.shouldShowIcon(p)&&t.createVNode("i",{class:e.iconClass(p)},null),t.createVNode("span",null,[p.text]),t.createVNode("i",{class:"f-icon f-icon-arrow-chevron-down",style:"display: inline-block;float: right;line-height: 1.25rem;margin-left: .25rem;margin-right: .25rem;"},null)]),f(p)])}function R(){g()}return{renderToolbarDropdown:P,clearAllDropDown:R}}function Ve(){function a(e){var f,g;if(!e)return!1;const o=((f=e.targetContainer)==null?void 0:f.componentInstance)&&e.targetContainer.componentInstance.value;if(!o)return!1;const l=(g=o.schema.appearance)==null?void 0:g.class;if(e.controlCategory==="input"||e.controlType==="form-group"){const v=o.schema.type,M=(v==="response-form"||v==="content-container")&&l&&l.includes("farris-form");if(o.schema.type!=="response-layout-item"&&!M)return!1}return e.controlType!=="field-set"}return{basalDragulaRuleForContainer:a}}const Ae={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dragging-rules.schema.json",title:"Dragging Rules",description:"The rules of designer canvas",type:"object",properties:{"f-page":{description:"The root class of page designed by farris.",type:"object",properties:{contents:{type:"object",properties:{"f-page-header":{description:"The class of page header designed by farris.",type:"string"},"f-page-main":{description:"The class of page body designed by farris.",type:"object",properties:{contents:{type:"object",properties:{"f-struct-like-card":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-struct-form":{description:"The class of form component which has a hierarchical structure of component -> section -> respnse-form.",type:"object",properties:{contents:{type:"object",properties:{"f-section-form":{description:"The class of section which has wrapped a reponse-form component.",type:"object",properties:{contents:{type:"object",properties:{"f-form-layout":{description:"The class of reponse form",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}},"f-struct-wrapper":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-section-tabs":{description:"The class of section which has wrapped sub-grid tabs.",type:"object",properties:{contents:{type:"object",properties:{"f-tabs-in-card":{description:"The class of tabs which contains sub-grid.",type:"object",properties:{contents:{type:"object",properties:{"f-struct-data-grid-in-card":{description:"The class of sub-grid component",type:"object",properties:{contents:{type:"object",properties:{"f-grid-is-sub":{description:"The class of sub-grid",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-section-in-main":{description:"The class of section which has wrapped a reponse-form component.",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"object",const:{allOf:[{sibling:0,parent:{"f-page-main":!0}}]}}}}}},"f-struct-data-grid":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"object",const:!0},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-main-content":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-struct-data-grid-in-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav-extend":{description:"",type:"object"},"f-section-in-nav":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!1}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!0},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}}}},"f-page-content-main":{description:"",type:"object",properties:{}}}}}},"f-page-content":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-page-content-nav":{description:"",type:"object",properties:{contents:{type:"object",properties:{"f-list-nav":{description:"",type:"object"},"f-list-nav-left":{description:"",type:"object"}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}},"f-page-content-main":{description:"",type:"object",properties:{rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!1},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}}}},rules:{type:"object",properties:{canAccept:{type:"object",const:{anyOf:[{children:0},{children:{length:{not:1},"f-struct-like-card":!0}},{children:{"scroll-spy":!1,"f-page-content":!1,"f-struct-like-card":!1}}]}},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-footer":{description:"The class of page footer designed by farris.",type:"string"}}},rules:{type:"object",properties:{canAccept:{type:"boolean",const:!1},fixed:{type:"boolean",const:!0},hidePadding:{type:"boolean",const:!0}}}}},"f-page-is-managelist":{description:"The root class of mangement list page.",type:"string"},"f-page-card":{description:"",type:"object"},"f-page-is-mainsubcard":{description:"",type:"object"}},required:[]},K=new Map;function ye(){function a(s,h,b,x){var V;if(typeof b=="number")return((V=x[s])==null?void 0:V.length)===b;if(typeof b=="object"){const k=Object.keys(b)[0],B=b[k];if(k==="not")return Number(x[s].length)!==Number(B);if(k==="moreThan")return Number(x[s].length)>=Number(B);if(k==="lessThan")return Number(x[s].length)<=Number(B)}return!1}function e(s,h,b,x){return typeof b=="boolean"?x.childrenClassList.includes(h)===!!b:!1}function o(s,h,b,x){return typeof b=="boolean"?x.parentClassList.includes(h)===!!b:!1}function l(s,h,b,x){return typeof b=="boolean"?x.parentClassList.includes(h)===!!b:!1}const f=new Map([["length",a],["hasChildren",e],["hasSibling",l],["hasParent",o]]);function g(s,h){const b=s;return typeof h=="number"?[{target:b,operator:"length",param:null,value:Number(h)}]:typeof h=="object"?Object.keys(h).map(x=>{if(x==="length")return{target:b,operator:"length",param:null,value:h[x]};const V=x,k=h[x];return{target:b,operator:s==="children"?"hasChildren":s==="parent"?"hasParent":"hasSibling",param:V,value:k}}):[]}function v(s,h){if(f.has(s.operator)){const b=f.get(s.operator);return b&&b(s.target,s.param,s.value,h)||!1}return!1}function M(s,h){return Object.keys(s).reduce((k,B)=>{const F=g(B,s[B]);return k.push(...F),k},[]).reduce((k,B)=>k&&v(B,h),!0)}function S(s,h){const b=Object.keys(s),x=b.includes("allOf"),V=b.includes("anyOf"),k=x||V,D=(k?s[k?x?"allOf":"anyOf":"allOf"]:[s]).map(P=>M(P,h));return x?!D.includes(!1):D.includes(!0)}function y(s,h){const b=s.const;return b?typeof b=="boolean"?b:typeof b=="object"?S(b,h):!1:!1}function w(s){return h=>{const b={canAccept:!0,fixed:!1,hidePadding:!1};return s&&s.properties&&Object.keys(s.properties).reduce((x,V)=>{const k=s.properties[V];return x[V]=y(k,h),x},b),b}}function d(s,h,b){if(h.type==="object"&&h.properties){const{rules:x,contents:V}=h.properties;b.set(s,w(x)),V&&Object.keys(V.properties).forEach(k=>d(k,V.properties[k],b))}}function c(){const{properties:s}=Ae;Object.keys(s).forEach(h=>{d(h,s[h],K)})}function u(s,h){const b={canAccept:!0,fixed:!1,hidePadding:!0};return K.has(s)?K.get(s)(h):b}return c(),{getRuleValue:u}}class he{static getEditorTypesByMDataType(e){const o=this.fieldControlTypeMapping[e];return o||[{key:"",value:""}]}}N(he,"fieldControlTypeMapping",{String:[{key:I["input-group"].type,value:I["input-group"].name},{key:I.lookup.type,value:I.lookup.name},{key:I.Image.type,value:I.Image.name},{key:I["date-picker"].type,value:I["date-picker"].name},{key:I["check-box"].type,value:I["check-box"].name},{key:I["radio-group"].type,value:I["radio-group"].name},{key:I["combo-list"].type,value:I["combo-list"].name},{key:I.textarea.type,value:I.textarea.name}],Text:[{key:I.textarea.type,value:I.textarea.name},{key:I.avatar.type,value:I.avatar.name},{key:I.lookup.type,value:I.lookup.name}],Decimal:[{key:I["number-spinner"].type,value:I["number-spinner"].name}],Integer:[{key:I["number-spinner"].type,value:I["number-spinner"].name}],Number:[{key:I["number-spinner"].type,value:I["number-spinner"].name}],BigNumber:[{key:I["number-spinner"].type,value:I["number-spinner"].name}],Date:[{key:I["date-picker"].type,value:I["date-picker"].name}],DateTime:[{key:I["date-picker"].type,value:I["date-picker"].name}],Boolean:[{key:I.switch.type,value:I.switch.name},{key:I["check-box"].type,value:I["check-box"].name}],Enum:[{key:I["combo-list"].type,value:I["combo-list"].name},{key:I["radio-group"].type,value:I["radio-group"].name}],Object:[{key:I.lookup.type,value:I.lookup.name},{key:I["combo-list"].type,value:I["combo-list"].name},{key:I["radio-group"].type,value:I["radio-group"].name}],EmployeeSelector:[{key:I.EmployeeSelector.type,value:I.EmployeeSelector.name}],AdminOrganizationSelector:[{key:I.AdminOrganizationSelector.type,value:I.AdminOrganizationSelector.name}]});class J{constructor(e,o){N(this,"componentId");N(this,"viewModelId");N(this,"eventsEditorUtils");N(this,"formSchemaUtils");N(this,"formMetadataConverter");N(this,"designViewModelUtils");N(this,"designViewModelField");N(this,"controlCreatorUtils");N(this,"designerHostService");N(this,"schemaService",null);N(this,"metadataService",null);N(this,"propertyConfig",{type:"object",categories:{}});var l;this.componentId=e,this.designerHostService=o,this.eventsEditorUtils=o.eventsEditorUtils,this.formSchemaUtils=o.formSchemaUtils,this.formMetadataConverter=o.formMetadataConverter,this.viewModelId=((l=this.formSchemaUtils)==null?void 0:l.getViewModelIdByComponentId(e))||"",this.designViewModelUtils=o.designViewModelUtils,this.controlCreatorUtils=o.controlCreatorUtils,this.metadataService=o.metadataService,this.schemaService=o.schemaService}getTableInfo(){var e;return(e=this.schemaService)==null?void 0:e.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(e){const o=e.binding&&e.binding.type==="Form"&&e.binding.field;if(o){if(!this.designViewModelField){const l=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=l.fields.find(f=>f.id===o)}e.updateOn=this.designViewModelField.updateOn}}changeFieldEditorType(e,o){}getBasicPropConfig(e){var l,f;var o=this;return this.setDesignViewModelField(e),{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"string",refreshPanelAfterChanged:!0,$converter:"/converter/change-editor.converter",editor:{type:"combo-list",textField:"value",valueField:"key",data:he.getEditorTypesByMDataType(((f=(l=o.designViewModelField)==null?void 0:l.type)==null?void 0:f.name)||""),editable:!1}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"}},setPropertyRelates(g,v){if(g)switch(g&&g.propertyID){case"type":{o.changeControlType(e,g);break}}}}}changeControlType(e,o){var y,w,d,c,u;const l=o.propertyValue,f=this.formSchemaUtils.getComponentById(this.componentId);let g=this.getControlParentContainer(e.id,f);if(!g)return;const v=g.contents.findIndex(s=>s.id===e.id),M=g.contents[v];let S;this.designViewModelField&&(this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,{editor:{$type:l},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1),S=this.controlCreatorUtils.setFormFieldProperty("Form",this.designViewModelField,null,l)),Object.assign(S,{id:M.id,appearance:M.appearance,size:M.size,label:M.label}),Object.assign(S.editor,{isTextArea:S.isTextArea&&M.isTextArea,type:l||"",placeHolder:(y=M.editor)==null?void 0:y.placeHolder,holdPlace:(w=M.editor)==null?void 0:w.holdPlace,readonly:(d=M.editor)==null?void 0:d.readonly,require:(c=M.editor)==null?void 0:c.require,visible:(u=M.editor)==null?void 0:u.visible}),g.contents.splice(v,1,S)}getAppearanceConfig(e=null){return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!1,editor:{type:"response-layout-editor-setting"},$converter:"/converter/response-form-layout.converter"}}}}getControlParentContainer(e,o){let l;if(!o||!o.contents||o.contents.length===0)return null;for(const f of o.contents){if(f.id===e)return l=o,o;if(l=this.getControlParentContainer(e,f),l)return l}}}class Fe extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(e),this.getBehaviorProperties(e),this.propertyConfig}getBasicPropConfig(e){this.propertyConfig.categories.basic={description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",textField:"value",valueField:"key",data:[{key:"response-toolbar",value:I["response-toolbar"].name}]}}}}}getBehaviorProperties(e){this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{alignment:{title:"对齐方式",description:"The alignment of Response Toolbar Button.",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"right",name:"右对齐"},{value:"left",name:"左对齐"}]}},buttons:{title:"按钮",description:"The items of Response Toolbar.",type:"array",default:[],$converter:"/converter/buttons.converter",refreshPanelAfterChanged:!0}}}}}function Oe(a,e,o,l){const f=ye(),g=t.ref(!1),v=t.ref(!1);let M=!0,S=!1,y;function w(D){return y&&y.componentClassList&&y.componentClassList.includes("f-form-layout")&&y.componentClassList.includes("farris-form")?D.sourceType==="control"&&D.controlCategory==="input"||D.sourceType==="move"&&D.controlType==="form-group":!0}function d(D){return!Ve().basalDragulaRuleForContainer(D)||!M||!w(D),!1}function c(){g.value=!1,v.value=!1;const D=a,C=D.appearance&&D.appearance.class||"",P=C.split(" "),R=D.buttons||[],p=R.length?R[0]:null,r=p&&p.appearance?p.appearance.class:"",n=r?r.split(" "):[],i=R.length?R.reduce((O,_)=>{const U=_&&_.appearance?_.appearance.class:"",te=U?U.split(" "):[];return O.push(...te),O},[]):[],m=o==null?void 0:o.schema,j=m&&m.appearance&&m.appearance.class||"",T=j?j.split(" "):[];y={componentClass:C,componentClassList:P,childContents:R,firstChildContent:p,firstChildClass:r,firstChildClassList:n,parent:m,parentClass:j,parentClassList:T,children:R,childrenClassList:i};const{canAccept:E,fixed:L,hidePadding:A}=f.getRuleValue(P[0],y);return M=E,S=A,!0}function u(D){}function s(){return a.componentType?"display:inherit;flex-direction:inherit;margin-bottom:10px":""}function h(D,C){return C.text=D.label,C}function b(D,C,P){const R=a;if((R.appearance&&R.appearance.class||"").split(" ").includes("f-form-layout")){const n=String(D.innerText),i=z("form-group");return i.editor=P,i.label=n,i}return P}function x(){return!1}function V(){return!1}function k(){return!0}function B(){return S}function F(D){return new Fe(D,e).getPropertyConfig(a)}return{canAccepts:d,checkCanAddComponent:k,checkCanDeleteComponent:V,checkCanMoveComponent:x,getStyles:s,hideNestedPaddingInDesginerView:B,onAcceptNewChildElement:b,onAcceptMovedChildElement:u,onResolveNewComponentSchema:h,resolveComponentContext:c,getPropsConfig:F,triggerBelongedComponentToMoveWhenMoved:g,triggerBelongedComponentToDeleteWhenDeleted:v}}const $e={id:{type:String,default:""},componentId:{type:String,default:""},canAdd:{type:Boolean,default:!1},canDelete:{type:Boolean,default:!1},canMove:{type:Boolean,default:!1},contentKey:{type:String,default:"contents"},childLabel:{type:String,default:""},childType:{type:String,default:""},modelValue:{type:Object}},ee=t.ref(0);function Le(a,e){const o=e.getBoundingClientRect(),l=a.getBoundingClientRect(),f=l.top>=o.top,g=l.top<=o.bottom;return f&&g}function _e(a){if(!a)return;let e;if(a.className.includes("dgComponentSelected")?e=a:e=a.querySelector(".dgComponentSelected"),!e)return;const o=e.getBoundingClientRect();if(o.width===0&&o.height===0)return;const l=e.querySelector(".component-btn-group");if(l){if(!Le(e,a)){l.style.display="none";return}l.style.display="";const g=l.getBoundingClientRect(),v=l.querySelector("div");if(v){const M=v.getBoundingClientRect();v.style.top=g.top+"px",v.style.left=g.left-M.width+"px"}}}function Ue(a,e,o){var F;function l(){}const f="",g=t.ref();function v(){return!0}function M(){return!1}function S(){return!0}function y(){return!0}function w(){return!0}function d(D){if(!D||!D.value)return null;const C=t.ref(D==null?void 0:D.value.parent),P=d(C);return P||null}function c(D=e){const{componentInstance:C,designerItemElementRef:P}=D;return!C||!C.value?null:C.value.canMove||C.value.canAdd||C.value.canDelete?P:c(D.parent)}function u(D){return!!o}function s(){return(e==null?void 0:e.schema.label)||(e==null?void 0:e.schema.title)||(e==null?void 0:e.schema.name)}function h(){}function b(D,C){}function x(D){const{componentType:C}=D;let P=z(C,D);const R=C.toLowerCase().replace("-","_");return P&&!P.id&&P.type===C&&(P.id=`${R}_${Math.random().toString().slice(2,6)}`),P}function V(D,C){const P=String(D.getAttribute("data-controltype")),R=D.getAttribute("data-feature"),p=R?JSON.parse(R):{};p.parentComponentInstance=g.value;let r=z(P,p);const n=P.toLowerCase().replace("-","_");return r&&!r.id&&r.type===P&&(r.id=`${n}_${Math.random().toString().slice(2,6)}`),r}function k(D){}function B(...D){return[]}return g.value={canMove:v(),canSelectParent:M(),canAdd:y(),canDelete:S(),canNested:!w(),contents:[],elementRef:a,parent:(F=e.parent)==null?void 0:F.componentInstance,schema:e.schema,styles:f,canAccepts:u,getBelongedComponentInstance:d,getDraggableDesignItemElement:c,getDraggingDisplayText:s,getPropConfig:B,getDragScopeElement:h,onAcceptMovedChildElement:b,onAcceptNewChildElement:V,onChildElementMovedOut:k,addNewChildComponentSchema:x,updateDragAndDropRules:l,triggerBelongedComponentToMoveWhenMoved:t.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:t.ref(!1)},g}const We=t.defineComponent({name:"FDesignerInnerItem",props:$e,emits:["selectionChange","addComponent","removeComponent"],setup(a,e){const o=t.ref(a.canMove),l=t.ref(a.canAdd),f=t.ref(a.canDelete),g=t.ref(!1),v=t.ref(a.contentKey),M=t.ref(a.childType),S=t.ref(a.childLabel),y=t.ref(a.modelValue),w=t.ref(""),d=t.ref(),c=t.inject("canvas-dragula"),u=t.ref(),s=t.inject("design-item-context"),h={designerItemElementRef:d,componentInstance:u,schema:y.value,parent:s,setupContext:e};t.provide("design-item-context",h);const b=t.computed(()=>({"farris-component":!0,"flex-fill":a.id=="root-component","position-relative":o.value||f.value,"farris-nested":g.value,"can-move":o.value,"d-none":d.value&&d.value.classList.contains("d-none")})),x=t.computed(()=>{const n={};return w.value&&w.value.split(";").reduce((i,m)=>{const[j,T]=m.split(":");return j&&(i[j]=T),i},n),n});function V(n,i){if(s&&s.schema[v.value]){const m=s.schema[v.value].findIndex(j=>j.id===i.id);if(m>-1){const j=s.schema[v.value].length,T=s.schema[v.value][m%j];s.designerItemElementRef.value.querySelector(`#${T.id}-design-item`),s.schema[v.value].splice(m,1),s.componentInstance.value.updateDragAndDropRules(),ee.value++,e.emit("removeComponent")}}}function k(n){if(u.value.addNewChildComponentSchema){const i={componentType:M.value,label:S.value,parentComponentInstance:u.value,targetPosition:-1},m=u.value.addNewChildComponentSchema(i);y.value[v.value].push(m),e.emit("addComponent")}}function B(){return l.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"新增",ref:"removeComponent",onClick:n=>{k()}},[t.createVNode("i",{class:"f-icon f-icon-plus-circle"},null)])}function F(n){return f.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"删除",ref:"removeComponent",onClick:t.withModifiers(i=>V(i,n),["stop"])},[t.createVNode("i",{class:"f-icon f-icon-yxs_delete"},null)])}function D(){return o.value&&t.createVNode("div",{role:"button",class:"btn component-settings-button",title:"移动",ref:"moveComponent"},[t.createVNode("i",{"data-dragging-icon":"true",class:"cmp_move f-icon f-icon-yxs_move"},null)])}function C(n){return t.createVNode("div",{class:"component-btn-group","data-noattach":"true"},[t.createVNode("div",null,[B(),D(),F(n)])])}t.watch(()=>a.modelValue,n=>{y.value=n,h.schema=n});function P(n){const i=n.target;_e(i)}function R(){var n,i;(i=(n=y.value)==null?void 0:n.contents)!=null&&i.length&&d.value&&d.value.addEventListener("scroll",P)}function p(){const n=d.value,i=t.ref(n.children[1]);return Ue(i,h).value}t.onMounted(()=>{if(d.value){const n=d.value.querySelector(`[data-dragref='${y.value.id}-container']`);u.value=n&&n.componentInstance?n.componentInstance.value:p(),c&&n&&c.attachComponents(n,y.value),g.value=u.value.canNested!==void 0?u.value.canNested:g.value,l.value=u.value.canAdd!==void 0?u.value.canAdd:l.value,f.value=u.value.canDelete!==void 0?u.value.canDelete:f.value,o.value=u.value.canMove!==void 0?u.value.canMove:o.value,w.value=u.value.styles||"",d.value&&(d.value.componentInstance=u,d.value.designItemContext=h)}R(),ee.value++}),t.onBeforeUnmount(()=>{d.value&&d.value.removeEventListener("scroll",P)});function r(n){Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(m=>m.classList.remove("dgComponentFocused")),n&&(n.preventDefault(),n.stopPropagation());const i=d.value;if(i){const m=document.getElementsByClassName("dgComponentSelected");if(!(m&&m.length===1&&m[0]===d.value)){Array.from(m).forEach(E=>E.classList.remove("dgComponentSelected")),i.classList.add("dgComponentFocused"),e.emit("selectionChange",y.value.type,y.value,a.componentId,u.value);const T=u.value.getDraggableDesignItemElement(h);T&&T.value&&T.value.classList.add("dgComponentSelected")}}ee.value++}return()=>t.createVNode("div",{id:`${a.id}-design-item`,ref:d,class:b.value,style:x.value,onClick:r},[C(y.value),e.slots.default&&e.slots.default()])}});class ze extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(e),this.getAppearanceProperties(e),this.getEventPropConfig(e),this.propertyConfig}getBasicPropConfig(e){this.propertyConfig.categories.basic={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识00",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0,$converter:"/converter/type.converter"},text:{title:"文本",type:"string",description:""},icon:{title:"图标",type:"string",description:""}}}}getAppearanceProperties(e){this.propertyConfig.categories.appearance={title:"外观",properties:{class:{description:"组件的CSS样式",title:"class样式"},style:{description:"组件的内容样式",title:"style样式"}},setPropertyRelates(o,l){}}}getEventPropConfig(e){const o=[{label:"click",name:"点击事件"}];var l=this;const f=l.eventsEditorUtils.formProperties(e,l.viewModelId,o),g={};g[l.viewModelId]={type:"events-editor",editor:{initialData:f}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:g,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(v,M){const S=v.propertyValue;delete e[l.viewModelId],S&&(S.setPropertyRelates=this.setPropertyRelates,l.eventsEditorUtils.saveRelatedParameters(e,l.viewModelId,S.events,S))}}}}class qe extends J{constructor(e,o){super(e,o)}getPropertyConfig(e){return this.getBasicPropConfig(),this.getAppearanceProperties(e),this.getEventPropConfig(e),this.propertyConfig}getBasicPropConfig(){this.propertyConfig.categories.basic={title:"基本信息",description:"Basic Infomation",properties:{id:{title:"标识",type:"string",description:"The identifier of a component.",readonly:!0},type:{title:"类型",type:"enum",description:"The type of a component.",editor:{type:"combo-list",textField:"value",valueField:"key",data:[{key:"response-toolbar-item",value:I["response-toolbar-item"].name}]}},text:{title:"文本",type:"string",description:"",refreshPanelAfterChanged:!0},icon:{title:"图标",type:"string",description:""}}}}getAppearanceProperties(e){}getEventPropConfig(e){const o=[{label:"click",name:"点击事件"}],l=this,f=l.eventsEditorUtils.formProperties(e,l.viewModelId,o),g={};g[l.viewModelId]={type:"events-editor",editor:{initialData:f}},this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:g,refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(v,M){const S=v.propertyValue;delete e[l.viewModelId],S&&(S.setPropertyRelates=this.setPropertyRelates,l.eventsEditorUtils.saveRelatedParameters(e,l.viewModelId,S.events,S))}}}}function He(a,e){ye();const o=t.ref(!1),l=t.ref(!1);let f=!1,g=!1;function v(b){return!1}function M(b){}function S(){return""}function y(b,x){return x.text=b.label,x}function w(b,x,V){const k=a.schema;if((k.appearance&&k.appearance.class||"").split(" ").includes("f-form-layout")){const D=String(b.innerText),C=z("form-group");return C.editor=V,C.label=D,C}return V}function d(){return!1}function c(){return!g}function u(){return!1}function s(){return f}function h(b){let x;switch(a.schema.type){case"tab-toolbar-item":x=new ze(b,e);break;default:x=new qe(b,e)}return x.getPropertyConfig(a.schema)}return{canAccepts:v,checkCanAddComponent:u,checkCanDeleteComponent:c,checkCanMoveComponent:d,getStyles:S,hideNestedPaddingInDesginerView:s,onAcceptNewChildElement:w,onAcceptMovedChildElement:M,onResolveNewComponentSchema:y,getPropsConfig:h,triggerBelongedComponentToMoveWhenMoved:o,triggerBelongedComponentToDeleteWhenDeleted:l}}const be=t.defineComponent({name:"FResponseToolbarItemDesign",props:fe,emits:["Click"],setup(a,e){t.ref(),t.ref();const o=t.ref(a.alignment),l={id:"__more_buttons__",text:"More"},f=t.ref(new W(l));t.computed(()=>f.value.children.length>0);const g=t.ref(),v=t.inject("designer-host-service"),M=t.inject("design-item-context"),S=He(M,v),y=oe.useDesignerInnerComponent(g,M,S);t.inject("toolbar-item-handler",()=>{}),t.onMounted(()=>{g.value.componentInstance=y}),e.expose(y.value);function w(){const u={"f-icon":!0};if(a.icon){const s=a.icon.trim().split(" ");s&&s.length&&s.reduce((h,b)=>(h[b]=!0,h),u)}return u}function d(){return!!(a.icon&&a.icon.trim())}function c(){const u={btn:!0,"f-rt-btn":!0,"f-btn-ml":o.value==="right","f-btn-mr":o.value==="left","btn-icontext":!!(a.icon&&a.icon.trim())};if(a.class){const s=a.class.split(" ");s&&s.length&&s.reduce((h,b)=>(h[b]=!0,h),u)}return u}return t.onMounted(()=>{}),t.onUnmounted(()=>{}),()=>t.createVNode("div",{ref:g,"data-dragref":`${M.schema.id}-container`,class:"farris-component position-relative",style:"display:inline-block!important;"},[t.createVNode("button",{type:"button",class:c(),id:a.id},[d()&&t.createVNode("i",{class:w()},null),a.text])])}}),Ge=t.defineComponent({name:"FResponseToolbarDesign",props:ke,emits:["Click"],setup(a,e){const o=t.ref(a.items);let l=new Array(o.value.length).fill(t.ref());const f=t.ref(),g=t.ref(),v=t.ref(a.alignment),M={id:"__more_buttons__",text:"More"},S=t.ref(new W(M)),y=me();t.computed(()=>S.value.children.length>0);const w=t.ref(),d=t.inject("designer-host-service"),c=t.inject("design-item-context"),u=Oe(c.schema,d,c),s=oe.useDesignerInnerComponent(w,c,u);t.inject("toolbar-item-handler",()=>{}),t.onMounted(()=>{w.value.componentInstance=s}),e.expose(s.value);const h=t.computed(()=>({"f-toolbar":!0,"f-response-toolbar":!0,"position-relative":!0})),b=t.computed(()=>({"d-flex":!0,"flex-nowrap":!0,"justify-content-end":v.value==="right","justify-content-start":v.value==="left"})),{renderToolbarDropdown:x,clearAllDropDown:V}=Ne(a,y,s);function k(){o.value.filter(p=>p.children&&p.children.length>0).forEach(p=>{p.expanded=!1}),S.value.expanded=!1,V()}const B=new Map,F=[];function D(p){const r=g.value;let n=p;const i=Array.from(r.children),m=i[i.length-1].id==="__more_buttons__"?i[i.length-1]:null;if(m){const A=m.computedStyleMap().get("margin-left"),O=m.computedStyleMap().get("margin-right"),_=(A?A.value:0)+m.getBoundingClientRect().width+(O?O.value:0);n-=_}const j=i.filter(A=>A.id!=="__more_buttons__");for(const A of j){const O=A.computedStyleMap().get("margin-left"),_=A.computedStyleMap().get("margin-right"),U=(O?O.value:0)+A.getBoundingClientRect().width+(_?_.value:0);n<U?(B.set(A.id,!0),F.push({id:A.id,width:U})):n-=U}if(F.length)for(let A=F.length-1;A>=0;A--){const O=F[A].width;if(n>=O)n-=O,B.delete(F[A].id),F.pop();else break}const T=Object.assign({},S.value);T.children=[];const E=new W(T),L=o.value.reduce((A,O)=>(B.has(O.id)&&E.children.push(O),O.visible=!B.has(O.id),A.push(O),A),[]);S.value=E,o.value=L}const C=new ResizeObserver(p=>{if(p.length){const n=p[0].contentRect.width,m=g.value.getBoundingClientRect().width;(n<m||F.length)&&D(n)}});t.onMounted(()=>{const p=f.value;C.observe(p),document.body.addEventListener("click",k)}),t.onUnmounted(()=>{C.disconnect(),document.body.removeEventListener("click",k)}),t.watch(()=>a.items,()=>{o.value=a.items},{deep:!0}),t.watch(o,p=>{l=new Array(o.value.length).fill(t.ref())});function P(p,r,n,i){c&&c.setupContext&&c.setupContext.emit("selectionChange",p,r,n,i)}function R(){const p=g.value.querySelector(".dgComponentFocused.dgComponentSelected");p==null||p.classList.remove("dgComponentSelected"),p==null||p.classList.remove("dgComponentFocused")}return()=>t.createVNode("div",{ref:w,"data-dragref":`${c.schema.id}-container`,class:h.value},[t.createVNode("div",{ref:f,class:b.value},[t.createVNode("div",{ref:g,class:"d-inline-block f-response-content",style:"white-space: nowrap;"},[o.value.map((p,r)=>t.createVNode(We,{ref:l[r],class:"p-0 display-inline-block",modelValue:p,"onUpdate:modelValue":n=>p=n,canMove:!0,childType:"response-toolbar-item",childLabel:"按钮",contentKey:"buttons",componentId:a.componentId,id:p.id,style:"padding:0 !important;display:inline-block",onSelectionChange:P,onRemoveComponent:R},{default:()=>[t.createVNode(be,{id:p.id,disable:p.disable,text:p.text,icon:p.icon,componentId:a.componentId},null)]}))])])])}}),Qe=Z;H.register=(a,e,o)=>{a["response-toolbar"]=H,e["response-toolbar"]=Z},H.registerDesigner=(a,e,o)=>{a["response-toolbar"]=Ge,e["response-toolbar"]=Z,a["response-toolbar-item"]=be,e["response-toolbar-item"]=je};const Xe=ve.withInstall(H);$.FResponseToolbar=H,$.ResponseToolbarDropDownItem=W,$.ResponseToolbarGroup=Te,$.ResponseToolbarItem=se,$.default=Xe,$.responseToolbarResolver=Qe,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -3,6 +3,6 @@
3
3
  "version": "1.1.7",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
- "style": "style.css",
6
+ "style": "index.css",
7
7
  "types": "../types/response-toolbar/index.d.ts"
8
8
  }
@@ -0,0 +1 @@
1
+ .fade{transition:opacity .2s linear}.fade:not(.show){opacity:0}.f-navlookup-recommandLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navlookup-recentHeader{height:32px;background:#fafaff;width:100%;display:flex;align-items:center;padding-left:10px;cursor:pointer;border:1px solid rgba(233,236,243,1)}.f-schema-selector-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-schema-selector .farris-tabs-header{display:flex;align-items:center;min-width:400px;width:100%;height:44px;border:1px solid #e5e9ef;background:#f9f9fc;margin:0!important;padding:.75rem 0 .75rem 5rem!important}.f-schema-selector .farris-tabs-header .nav-item{margin-right:5rem!important}.f-schema-selector .container{padding:0}.f-navForm-item{margin:20px 0 2px 20px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;width:283px;height:90px;background:#fff;border:1px solid rgba(218,227,255,1);border-radius:11px;display:flex;cursor:pointer}.f-listview-active .f-navForm-item,.f-listview-active .f-navForm-item:hover,.f-listview-active .f-navlookup-item,.f-listview-active .f-navlookup-item:hover{background-color:#c9e1ff!important}.f-navForm-leftIcon{flex:1}.f-navForm-itemIcon{width:42px;height:42px;background-image:linear-gradient(-45deg,#41d2bd,#1fc8dc);border-radius:12px}.f-navForm-rightText{flex:4}.f-navForm-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navForm-item-active{align-content:space-between;padding:15px 0 8px 18px;width:283px;height:90px;background:#fff;border:1px solid rgba(218,227,255,1);border-radius:11px;display:flex;border:1px solid #e5e9ef;background-color:#edf5fc!important;margin:20px 0 2px 20px;cursor:pointer}.f-navForm-name{width:fit-content;max-width:200px;display:inline-block;vertical-align:center;height:20px;font-family:PingFangSC-Regular;font-size:14px;color:#2e4c70;font-weight:400;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.f-navForm-source{width:fit-content;max-width:200px;height:22px;font-family:PingFangSC-Regular;font-size:13px;color:#8999b9;font-weight:400;background:#f7f9fc;border-radius:4px;padding:2px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.f-navlookup-item{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef}.f-navlookup-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navlookup-item-active{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;background-color:#edf5fc!important}.f-navlookup-itemIcon{width:16px;height:16px;padding:1px;margin-right:6px;background-color:#dcf4e8;display:inline-block}.f-navlookup-name{width:80%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top}.f-navlookup-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}.f-navUdt-item{border:1px solid #e5e9ef;width:115px;height:100px;background:#fafbfc;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navUdt-item-active{border:1px solid #e5e9ef;background-color:#edf5fc!important;width:115px;height:100px;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-name{width:98%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;text-align:center}.f-navUdt-code{width:98%;font-family:PingFangSC-Regular;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;height:17px;font-size:12px;color:#a6aebe;text-align:center}.f-navSelector{background-color:#fff;display:flex;margin:0 24px;border:1px solid #e5e9ef;border-radius:8px;height:395px;overflow:hidden}.f-navSelector-left{flex:2;background-color:#fff;display:flex;flex-direction:column;border-right:1px solid #e5e9ef;border-radius:8px 0 0 8px}.f-navSelector-right{flex:8}.f-navSelector-leftCategory{min-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:32px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;line-height:18px;font-weight:400;padding:7px 0 7px 15px;cursor:pointer}.f-navSelector-leftCategory:hover,.f-navSelector-leftCategory-active{min-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:32px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;line-height:18px;font-weight:400;padding:7px 0 7px 15px;background:#f7f8fb}.f-navSelector-header{display:flex;min-width:400px;height:44px;align-items:center;border-bottom:1px solid #e5e9ef;background:#f9f9fc;top:0;z-index:2;border-radius:0 8px 0 0}.f-navSelector-recommand{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navSelector-recommand-text{width:80px;height:22px;font-family:PingFangSC-Regular;font-size:16px;color:#2d2f33;text-align:center;font-weight:400;margin-left:5px}.f-navSelector-recommand-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid blue;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px}.f-navSelector-remainder{flex:12}.f-navSelector-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navSelector-content{width:100%;min-width:400px;height:348px;overflow-y:auto;display:flex;overflow-x:hidden;border-radius:0 8px 0 0;flex-direction:column;padding-bottom:1px}