@farris/ui-vue 1.3.1 → 1.3.3

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 (259) hide show
  1. package/components/accordion/index.esm.js +103 -99
  2. package/components/accordion/index.umd.cjs +1 -1
  3. package/components/avatar/index.esm.js +301 -351
  4. package/components/avatar/index.umd.cjs +1 -1
  5. package/components/binding-selector/index.esm.js +444 -0
  6. package/components/binding-selector/index.umd.cjs +1 -0
  7. package/components/binding-selector/package.json +8 -0
  8. package/components/border-editor/index.esm.js +5 -3
  9. package/components/border-editor/index.umd.cjs +1 -1
  10. package/components/button-edit/index.esm.js +143 -139
  11. package/components/button-edit/index.umd.cjs +1 -1
  12. package/components/calendar/index.esm.js +407 -396
  13. package/components/calendar/index.umd.cjs +1 -1
  14. package/components/capsule/index.esm.js +266 -255
  15. package/components/capsule/index.umd.cjs +1 -1
  16. package/components/checkbox/index.esm.js +628 -641
  17. package/components/checkbox/index.umd.cjs +1 -1
  18. package/components/color-picker/index.esm.js +379 -374
  19. package/components/color-picker/index.umd.cjs +2 -2
  20. package/components/combo-list/index.esm.js +471 -471
  21. package/components/combo-list/index.umd.cjs +1 -1
  22. package/components/combo-tree/index.esm.js +155 -148
  23. package/components/combo-tree/index.umd.cjs +1 -1
  24. package/components/common/index.esm.js +487 -478
  25. package/components/common/index.umd.cjs +1 -1
  26. package/components/component/index.esm.js +330 -279
  27. package/components/component/index.umd.cjs +1 -1
  28. package/components/condition/index.esm.js +1171 -1277
  29. package/components/condition/index.umd.cjs +1 -1
  30. package/components/content-container/index.esm.js +220 -204
  31. package/components/content-container/index.umd.cjs +1 -1
  32. package/components/data-grid/index.esm.js +4743 -4641
  33. package/components/data-grid/index.umd.cjs +1 -1
  34. package/components/data-view/index.esm.js +2916 -3019
  35. package/components/data-view/index.umd.cjs +1 -1
  36. package/components/date-picker/index.esm.js +2375 -2590
  37. package/components/date-picker/index.umd.cjs +1 -1
  38. package/components/designer-canvas/index.css +1 -1
  39. package/components/designer-canvas/index.esm.js +9518 -1198
  40. package/components/designer-canvas/index.umd.cjs +1 -1
  41. package/components/designer-outline/index.esm.js +2 -1
  42. package/components/designer-outline/index.umd.cjs +1 -1
  43. package/components/drawer/index.esm.js +34 -38
  44. package/components/drawer/index.umd.cjs +1 -1
  45. package/components/dropdown/index.esm.js +149 -138
  46. package/components/dropdown/index.umd.cjs +2 -2
  47. package/components/dynamic-form/index.esm.js +1602 -1740
  48. package/components/dynamic-form/index.umd.cjs +1 -1
  49. package/components/dynamic-resolver/index.esm.js +159 -151
  50. package/components/dynamic-resolver/index.umd.cjs +1 -1
  51. package/components/dynamic-view/index.esm.js +218 -218
  52. package/components/dynamic-view/index.umd.cjs +1 -1
  53. package/components/event-parameter/index.esm.js +311 -0
  54. package/components/event-parameter/index.umd.cjs +1 -0
  55. package/components/event-parameter/package.json +8 -0
  56. package/components/events-editor/index.css +1 -1
  57. package/components/events-editor/index.esm.js +533 -563
  58. package/components/events-editor/index.umd.cjs +1 -1
  59. package/components/expression-editor/index.esm.js +95 -91
  60. package/components/expression-editor/index.umd.cjs +1 -1
  61. package/components/external-container/index.esm.js +2356 -2455
  62. package/components/external-container/index.umd.cjs +1 -1
  63. package/components/field-selector/index.esm.js +3048 -3308
  64. package/components/field-selector/index.umd.cjs +1 -1
  65. package/components/filter-bar/index.css +1 -1
  66. package/components/filter-bar/index.esm.js +10537 -3249
  67. package/components/filter-bar/index.umd.cjs +1 -1
  68. package/components/flow-canvas/index.css +1 -1
  69. package/components/flow-canvas/index.esm.js +9781 -1327
  70. package/components/flow-canvas/index.umd.cjs +1 -1
  71. package/components/image-cropper/index.esm.js +353 -341
  72. package/components/image-cropper/index.umd.cjs +1 -1
  73. package/components/input-group/index.esm.js +510 -827
  74. package/components/input-group/index.umd.cjs +1 -1
  75. package/components/layout/index.esm.js +278 -268
  76. package/components/layout/index.umd.cjs +1 -1
  77. package/components/list-nav/index.esm.js +144 -136
  78. package/components/list-nav/index.umd.cjs +1 -1
  79. package/components/list-view/index.esm.js +2139 -2237
  80. package/components/list-view/index.umd.cjs +1 -1
  81. package/components/lookup/index.esm.js +6414 -6367
  82. package/components/lookup/index.umd.cjs +1 -1
  83. package/components/mapping-editor/index.esm.js +5216 -5114
  84. package/components/mapping-editor/index.umd.cjs +1 -1
  85. package/components/message-box/index.esm.js +252 -252
  86. package/components/message-box/index.umd.cjs +1 -1
  87. package/components/modal/index.esm.js +70 -70
  88. package/components/modal/index.umd.cjs +1 -1
  89. package/components/nav/index.esm.js +486 -984
  90. package/components/nav/index.umd.cjs +3 -3
  91. package/components/number-range/index.esm.js +446 -498
  92. package/components/number-range/index.umd.cjs +1 -1
  93. package/components/number-spinner/index.esm.js +363 -388
  94. package/components/number-spinner/index.umd.cjs +1 -1
  95. package/components/order/index.esm.js +1050 -1308
  96. package/components/order/index.umd.cjs +1 -1
  97. package/components/page-footer/index.esm.js +134 -131
  98. package/components/page-footer/index.umd.cjs +1 -1
  99. package/components/page-header/index.esm.js +1072 -1082
  100. package/components/page-header/index.umd.cjs +1 -1
  101. package/components/pagination/index.esm.js +412 -910
  102. package/components/pagination/index.umd.cjs +1 -1
  103. package/components/progress/index.esm.js +214 -203
  104. package/components/progress/index.umd.cjs +3 -3
  105. package/components/property-editor/index.esm.js +1361 -1536
  106. package/components/property-editor/index.umd.cjs +2 -2
  107. package/components/property-panel/index.esm.js +650 -677
  108. package/components/property-panel/index.umd.cjs +1 -1
  109. package/components/query-solution/index.css +1 -1
  110. package/components/query-solution/index.esm.js +12344 -5048
  111. package/components/query-solution/index.umd.cjs +6 -1
  112. package/components/radio-button/index.esm.js +97 -97
  113. package/components/radio-button/index.umd.cjs +1 -1
  114. package/components/radio-group/index.css +1 -1
  115. package/components/radio-group/index.esm.js +1821 -565
  116. package/components/radio-group/index.umd.cjs +1 -1
  117. package/components/rate/index.esm.js +251 -244
  118. package/components/rate/index.umd.cjs +1 -1
  119. package/components/response-layout/index.esm.js +151 -140
  120. package/components/response-layout/index.umd.cjs +1 -1
  121. package/components/response-layout-editor/index.esm.js +707 -676
  122. package/components/response-layout-editor/index.umd.cjs +1 -1
  123. package/components/response-toolbar/index.esm.js +719 -740
  124. package/components/response-toolbar/index.umd.cjs +1 -1
  125. package/components/schema-selector/index.esm.js +4977 -5249
  126. package/components/schema-selector/index.umd.cjs +2 -2
  127. package/components/search-box/index.esm.js +145 -134
  128. package/components/search-box/index.umd.cjs +1 -1
  129. package/components/section/index.esm.js +348 -337
  130. package/components/section/index.umd.cjs +1 -1
  131. package/components/smoke-detector/index.esm.js +141 -130
  132. package/components/smoke-detector/index.umd.cjs +1 -1
  133. package/components/splitter/index.esm.js +311 -301
  134. package/components/splitter/index.umd.cjs +1 -1
  135. package/components/step/index.esm.js +231 -220
  136. package/components/step/index.umd.cjs +1 -1
  137. package/components/switch/index.esm.js +385 -432
  138. package/components/switch/index.umd.cjs +1 -1
  139. package/components/tabs/index.esm.js +1932 -1914
  140. package/components/tabs/index.umd.cjs +1 -1
  141. package/components/tags/index.esm.js +351 -340
  142. package/components/tags/index.umd.cjs +1 -1
  143. package/components/text/index.esm.js +209 -199
  144. package/components/text/index.umd.cjs +1 -1
  145. package/components/textarea/index.esm.js +388 -415
  146. package/components/textarea/index.umd.cjs +1 -1
  147. package/components/time-picker/index.esm.js +619 -666
  148. package/components/time-picker/index.umd.cjs +1 -1
  149. package/components/transfer/index.esm.js +493 -486
  150. package/components/transfer/index.umd.cjs +1 -1
  151. package/components/tree-grid/index.esm.js +3169 -3278
  152. package/components/tree-grid/index.umd.cjs +1 -1
  153. package/components/tree-view/index.esm.js +2320 -2418
  154. package/components/tree-view/index.umd.cjs +1 -1
  155. package/components/uploader/index.esm.js +563 -554
  156. package/components/uploader/index.umd.cjs +2 -2
  157. package/components/verify-detail/index.esm.js +287 -276
  158. package/components/verify-detail/index.umd.cjs +1 -1
  159. package/components/video/index.esm.js +368 -324
  160. package/components/video/index.umd.cjs +1 -1
  161. package/components/weather/index.esm.js +498 -487
  162. package/components/weather/index.umd.cjs +5 -5
  163. package/farris.all.esm.js +51302 -47651
  164. package/farris.all.umd.cjs +14 -9
  165. package/index.css +1 -1
  166. package/package.json +1 -1
  167. package/types/binding-selector/index.d.ts +55 -0
  168. package/types/binding-selector/src/binding-selector.component.d.ts +11 -0
  169. package/types/binding-selector/src/binding-selector.props.d.ts +52 -0
  170. package/types/binding-selector/src/components/binding-selector-container.component.d.ts +13 -0
  171. package/types/binding-selector/src/composition/use-field-selection.d.ts +9 -0
  172. package/types/combo-list/src/components/list-container.component.d.ts +6 -6
  173. package/types/combo-list/src/components/list-container.props.d.ts +1 -1
  174. package/types/combo-tree/src/components/tree-container.component.d.ts +5 -5
  175. package/types/common/entity/entity-schema.d.ts +26 -11
  176. package/types/common/index.d.ts +1 -0
  177. package/types/common/types.d.ts +2 -2
  178. package/types/condition/src/condition-fields.design.component.d.ts +18 -0
  179. package/types/condition/src/types.d.ts +6 -6
  180. package/types/data-grid/src/composition/data-grid-component-creator.service.d.ts +20 -0
  181. package/types/data-grid/src/{designer/data-grid-column.props.d.ts → data-grid-column.props.d.ts} +1 -1
  182. package/types/data-grid/src/data-grid.props.d.ts +2 -2
  183. package/types/data-grid/src/designer/grid-field-editor.component.d.ts +14 -14
  184. package/types/data-grid/src/schema/schema-resolver.d.ts +1 -1
  185. package/types/data-view/composition/types.d.ts +2 -2
  186. package/types/date-picker/src/components/calendar/calendar.component.d.ts +3 -3
  187. package/types/date-picker/src/components/month/month.component.d.ts +3 -3
  188. package/types/date-picker/src/components/year/year.component.d.ts +3 -3
  189. package/types/designer-canvas/index.d.ts +2 -1
  190. package/types/designer-canvas/src/composition/dg-control.d.ts +5 -0
  191. package/types/designer-canvas/src/composition/function/drag-resolve.d.ts +5 -0
  192. package/types/designer-canvas/src/composition/types.d.ts +49 -40
  193. package/types/designer-canvas/src/types.d.ts +8 -20
  194. package/types/dynamic-form/index.d.ts +1 -1
  195. package/types/dynamic-form/src/designer/form-group-use-designer-rules.d.ts +3 -0
  196. package/types/dynamic-form/src/schema/{schema-resolver.d.ts → response-form-schema-resolver.d.ts} +1 -1
  197. package/types/dynamic-form/src/types.d.ts +1 -1
  198. package/types/dynamic-resolver/src/common/toolbar-resolver.d.ts +5 -0
  199. package/types/dynamic-resolver/src/converter/row-number.converter.d.ts +3 -0
  200. package/types/entity-binding-selector/composition/use-entity-tree.d.ts +7 -0
  201. package/types/entity-binding-selector/entity-binding-selector.component.d.ts +11 -0
  202. package/types/entity-binding-selector/entity-binding-selector.props.d.ts +3 -0
  203. package/types/enum-editor/src/components/enum-editor-container.component.d.ts +3 -3
  204. package/types/enum-editor/src/enum-editor.component.d.ts +3 -3
  205. package/types/event-parameter/index.d.ts +31 -0
  206. package/types/event-parameter/src/composition/type.d.ts +77 -0
  207. package/types/event-parameter/src/composition/use-editor-combotree.d.ts +3 -0
  208. package/types/event-parameter/src/composition/use-editor-input.d.ts +3 -0
  209. package/types/event-parameter/src/composition/use-editor-select.d.ts +3 -0
  210. package/types/event-parameter/src/composition/use-editor-switch.d.ts +3 -0
  211. package/types/event-parameter/src/composition/use-editor.d.ts +3 -0
  212. package/types/event-parameter/src/event-parameter.component.d.ts +8 -0
  213. package/types/event-parameter/src/event-parameter.props.d.ts +34 -0
  214. package/types/external-container/src/designer/import-external-schema.component.d.ts +1 -1
  215. package/types/field-selector/src/field-selector.component.d.ts +1 -2
  216. package/types/field-selector/src/field-selector.props.d.ts +0 -9
  217. package/types/input-group/src/designer/use-input-group-rules.d.ts +1 -2
  218. package/types/list-view/src/designer/list-view-table.design.component.d.ts +15 -0
  219. package/types/list-view/src/list-view-table.component.d.ts +15 -0
  220. package/types/lookup/src/composition/use-user-data.d.ts +2 -2
  221. package/types/lookup/src/property-config/lookup.property-config.d.ts +2 -6
  222. package/types/modal/src/composition/modal.service.d.ts +2 -1
  223. package/types/page-header/src/designer/page-header.design.component.d.ts +1 -1
  224. package/types/page-header/src/page-header.component.d.ts +1 -1
  225. package/types/property-panel/index.d.ts +2 -1
  226. package/types/property-panel/src/composition/entity/property-entity.d.ts +1 -1
  227. package/types/property-panel/src/composition/type.d.ts +0 -13
  228. package/types/query-solution/src/composition/types.d.ts +35 -4
  229. package/types/query-solution/src/composition/use-header.d.ts +21 -0
  230. package/types/query-solution/src/composition/{use-filter.d.ts → use-http.d.ts} +2 -2
  231. package/types/query-solution/src/composition/use-solution.d.ts +20 -0
  232. package/types/query-solution/src/designer/query-solution-config/composition/types.d.ts +17 -16
  233. package/types/query-solution/src/designer/query-solution-config/query-solution-config.props.d.ts +14 -14
  234. package/types/query-solution/src/property-config/query-solution.property-config.d.ts +3 -51
  235. package/types/query-solution/src/query-solution.d.ts +10 -2
  236. package/types/radio-group/src/designer/item-collection-editor-inner.component.d.ts +29 -0
  237. package/types/radio-group/src/designer/item-collection-editor.component.d.ts +29 -0
  238. package/types/radio-group/src/designer/item-collection-editor.props.d.ts +21 -0
  239. package/types/radio-group/src/schema/schema-mapper.d.ts +1 -0
  240. package/types/radio-group/src/schema/schema-resolver.d.ts +1 -0
  241. package/types/response-toolbar/src/property-config/response-toolbar.property-config.d.ts +1 -0
  242. package/types/section/src/property-config/section.property-config.d.ts +17 -17
  243. package/types/section/src/schema/schema-resolver.d.ts +1 -2
  244. package/types/section/src/schema/toolbar-resolver.d.ts +1 -1
  245. package/types/tabs/src/composition/types.d.ts +4 -1
  246. package/types/tabs/src/property-config/tab-page.property-config.d.ts +9 -59
  247. package/types/tabs/src/property-config/tabs.property-config.d.ts +8 -71
  248. package/types/tabs/src/schema/schema-resolver.d.ts +1 -2
  249. package/types/text/src/composition/types.d.ts +4 -4
  250. package/types/textarea/src/property-config/textarea.property-config.d.ts +23 -0
  251. package/types/weather/src/composition/use-weather-charts.d.ts +15 -0
  252. package/types/weather/src/composition/use-weather-color.d.ts +15 -0
  253. package/types/weather/src/composition/use-weather-data.d.ts +15 -0
  254. package/types/weather/src/composition/use-weather-format-number.d.ts +15 -0
  255. package/types/property-panel/src/composition/entity/use-input-rules.d.ts +0 -3
  256. package/types/tree-grid/src/schema/column-resolver.d.ts +0 -3
  257. package/types/weather/src/composition/types.d.ts +0 -2
  258. /package/types/dynamic-form/src/designer/{use-designer-rules.d.ts → response-form-use-designer-rules.d.ts} +0 -0
  259. /package/types/dynamic-form/src/property-config/{form.property-config.d.ts → response-form.property-config.d.ts} +0 -0
@@ -1,31 +1,35 @@
1
- import { ref as h, onMounted as X, defineComponent as F, createVNode as y, withDirectives as L, vShow as N, Teleport as U, Fragment as Y, inject as x } from "vue";
2
- import { isPlainObject as q, cloneDeep as P } from "lodash-es";
3
- const _ = {}, Z = {};
4
- function A(e) {
5
- const { properties: t, title: a, ignore: o } = e, i = o && Array.isArray(o), p = Object.keys(t).reduce((m, c) => ((!i || !o.find((D) => D == c)) && (m[c] = t[c].type === "object" && t[c].properties ? A(t[c]) : P(t[c].default)), m), {});
6
- return a && (!i || !o.find((m) => m == "id")) && (p.id = `${a}-${Date.now()}`), p;
1
+ import { ref as S, onMounted as _, defineComponent as F, createVNode as y, withDirectives as L, vShow as N, Teleport as x, Fragment as Y, inject as C } from "vue";
2
+ import { isPlainObject as V, cloneDeep as P } from "lodash-es";
3
+ const Z = {}, G = {};
4
+ function M(e) {
5
+ const { properties: t, title: a, ignore: o } = e, i = o && Array.isArray(o), f = Object.keys(t).reduce((m, c) => ((!i || !o.find((D) => D === c)) && (m[c] = t[c].type === "object" && t[c].properties ? M(t[c]) : P(t[c].default)), m), {});
6
+ if (a && (!i || !o.find((m) => m === "id"))) {
7
+ const m = a.toLowerCase().replace(/-/g, "_");
8
+ f.id = `${m}_${Math.random().toString().slice(2, 6)}`;
9
+ }
10
+ return f;
7
11
  }
8
- function G(e, t = {}, a) {
9
- const o = _[e];
12
+ function J(e, t = {}, a) {
13
+ const o = Z[e];
10
14
  if (o) {
11
- let i = A(o);
12
- const p = Z[e];
13
- return i = p ? p({ getSchemaByType: G }, i, t, a) : i, i;
15
+ let i = M(o);
16
+ const f = G[e];
17
+ return i = f ? f({ getSchemaByType: J }, i, t, a) : i, i;
14
18
  }
15
19
  return null;
16
20
  }
17
21
  function K(e, t) {
18
- const a = A(t);
19
- return Object.keys(e).reduce((o, i) => (o[i] && q(o[i]) && q(e[i]) ? Object.assign(o[i], e[i]) : o[i] = e[i], o), a), a;
22
+ const a = M(t);
23
+ return Object.keys(a).reduce((o, i) => (o[i] && V(o[i]) && V(e[i] || !e[i]) ? Object.assign(o[i], e[i] || {}) : o[i] = e[i], o), a), a;
20
24
  }
21
25
  function I(e, t) {
22
26
  return Object.keys(e).filter((o) => e[o] != null).reduce((o, i) => {
23
27
  if (t.has(i)) {
24
- const p = t.get(i);
25
- if (typeof p == "string")
26
- o[p] = e[i];
28
+ const f = t.get(i);
29
+ if (typeof f == "string")
30
+ o[f] = e[i];
27
31
  else {
28
- const m = p(i, e[i], e);
32
+ const m = f(i, e[i], e);
29
33
  Object.assign(o, m);
30
34
  }
31
35
  } else
@@ -38,22 +42,22 @@ function ee(e, t, a = /* @__PURE__ */ new Map()) {
38
42
  return I(o, a);
39
43
  }
40
44
  function te(e = {}) {
41
- function t(r, u, s, f) {
45
+ function t(r, u, s, p) {
42
46
  if (typeof s == "number")
43
- return f[r].length === s;
47
+ return p[r].length === s;
44
48
  if (typeof s == "object") {
45
49
  const b = Object.keys(s)[0], g = s[b];
46
50
  if (b === "not")
47
- return Number(f[r].length) !== Number(g);
51
+ return Number(p[r].length) !== Number(g);
48
52
  if (b === "moreThan")
49
- return Number(f[r].length) >= Number(g);
53
+ return Number(p[r].length) >= Number(g);
50
54
  if (b === "lessThan")
51
- return Number(f[r].length) <= Number(g);
55
+ return Number(p[r].length) <= Number(g);
52
56
  }
53
57
  return !1;
54
58
  }
55
- function a(r, u, s, f) {
56
- return f[r] && f[r].propertyValue && String(f[r].propertyValue.value) === String(s);
59
+ function a(r, u, s, p) {
60
+ return p[r] && p[r].propertyValue && String(p[r].propertyValue.value) === String(s);
57
61
  }
58
62
  const o = /* @__PURE__ */ new Map([
59
63
  ["length", t],
@@ -62,16 +66,16 @@ function te(e = {}) {
62
66
  Object.keys(e).reduce((r, u) => (r.set(u, e[u]), r), o);
63
67
  function i(r, u) {
64
68
  const s = r;
65
- return typeof u == "number" ? [{ target: s, operator: "length", param: null, value: Number(u) }] : typeof u == "boolean" ? [{ target: s, operator: "getProperty", param: r, value: !!u }] : typeof u == "object" ? Object.keys(u).map((f) => {
66
- if (f === "length")
67
- return { target: s, operator: "length", param: null, value: u[f] };
68
- const b = f, g = u[f];
69
+ return typeof u == "number" ? [{ target: s, operator: "length", param: null, value: Number(u) }] : typeof u == "boolean" ? [{ target: s, operator: "getProperty", param: r, value: !!u }] : typeof u == "object" ? Object.keys(u).map((p) => {
70
+ if (p === "length")
71
+ return { target: s, operator: "length", param: null, value: u[p] };
72
+ const b = p, g = u[p];
69
73
  return { target: s, operator: "getProperty", param: b, value: g };
70
74
  }) : [];
71
75
  }
72
- function p(r) {
73
- return Object.keys(r).reduce((s, f) => {
74
- const b = i(f, r[f]);
76
+ function f(r) {
77
+ return Object.keys(r).reduce((s, p) => {
78
+ const b = i(p, r[p]);
75
79
  return s.push(...b), s;
76
80
  }, []);
77
81
  }
@@ -83,18 +87,18 @@ function te(e = {}) {
83
87
  return !1;
84
88
  }
85
89
  function c(r, u) {
86
- return p(r).reduce((b, g) => b && m(g, u), !0);
90
+ return f(r).reduce((b, g) => b && m(g, u), !0);
87
91
  }
88
92
  function D(r, u) {
89
- const s = Object.keys(r), f = s.includes("allOf"), b = s.includes("anyOf"), g = f || b, d = (g ? r[g ? f ? "allOf" : "anyOf" : "allOf"] : [r]).map((B) => c(B, u));
90
- return f ? !d.includes(!1) : d.includes(!0);
93
+ const s = Object.keys(r), p = s.includes("allOf"), b = s.includes("anyOf"), g = p || b, d = (g ? r[g ? p ? "allOf" : "anyOf" : "allOf"] : [r]).map((B) => c(B, u));
94
+ return p ? !d.includes(!1) : d.includes(!0);
91
95
  }
92
96
  return { parseValueSchema: D };
93
97
  }
94
98
  const ne = {}, oe = {};
95
99
  te();
96
- function ie(e, t, a = /* @__PURE__ */ new Map(), o = (m, c, D) => c, i = {}, p = (m) => m) {
97
- return _[t.title] = t, Z[t.title] = o, ne[t.title] = i, oe[t.title] = p, (m = {}) => {
100
+ function ie(e, t, a = /* @__PURE__ */ new Map(), o = (m, c, D, r) => c, i = {}, f = (m) => m) {
101
+ return Z[t.title] = t, G[t.title] = o, ne[t.title] = i, oe[t.title] = f, (m = {}) => {
98
102
  const c = ee(m, t, a), D = Object.keys(e).reduce((r, u) => (r[u] = e[u].default, r), {});
99
103
  return Object.assign(D, c);
100
104
  };
@@ -180,7 +184,7 @@ const le = /* @__PURE__ */ new Map([
180
184
  type: fe,
181
185
  properties: pe,
182
186
  required: me
183
- }, ge = "dropdown", be = "A Farris Component", we = "object", he = {
187
+ }, ge = "dropdown", be = "A Farris Component", we = "object", ve = {
184
188
  basic: {
185
189
  description: "Basic Infomation",
186
190
  title: "基本信息",
@@ -233,11 +237,11 @@ const le = /* @__PURE__ */ new Map([
233
237
  }
234
238
  }
235
239
  }
236
- }, ve = {
240
+ }, he = {
237
241
  title: ge,
238
242
  description: be,
239
243
  type: we,
240
- categories: he
244
+ categories: ve
241
245
  }, W = {
242
246
  /** 默认展开或折叠 */
243
247
  show: { type: Boolean, default: !1 },
@@ -268,12 +272,12 @@ const le = /* @__PURE__ */ new Map([
268
272
  },
269
273
  onSelect: { type: Function, default: () => {
270
274
  } }
271
- }, C = ie(W, ye, le, se, ve);
272
- function J(e, t) {
275
+ }, X = ie(W, ye, le, se, he);
276
+ function Q(e, t) {
273
277
  let a;
274
- const o = h(e.show), i = h(), p = h(), m = h(), c = 10;
275
- X(() => {
276
- a = p.value;
278
+ const o = S(e.show), i = S(), f = S(), m = S(), c = 10;
279
+ _(() => {
280
+ a = f.value;
277
281
  });
278
282
  const D = (d = 1) => {
279
283
  const n = [
@@ -287,47 +291,47 @@ function J(e, t) {
287
291
  "body>filter-row-panel>.f-datagrid-filter-panel",
288
292
  "body>.f-section-maximize"
289
293
  ], B = Array.from(document.body.querySelectorAll(n.join(","))).filter((l) => l).map((l) => {
290
- const { display: S, zIndex: v } = window.getComputedStyle(l);
291
- return S === "none" ? 0 : parseInt(v, 10);
294
+ const { display: v, zIndex: w } = window.getComputedStyle(l);
295
+ return v === "none" ? 0 : parseInt(w, 10);
292
296
  }).filter((l) => l);
293
- let w = Math.max(...B);
294
- return w < 1040 && (w = 1040), w + d;
297
+ let h = Math.max(...B);
298
+ return h < 1040 && (h = 1040), h + d;
295
299
  }, r = (d, n) => {
296
300
  const {
297
301
  height: B,
298
- left: w,
302
+ left: h,
299
303
  top: l,
300
- width: S
301
- } = d.getBoundingClientRect(), { width: v, height: E, top: M } = n.getBoundingClientRect();
304
+ width: v
305
+ } = d.getBoundingClientRect(), { width: w, height: k, top: A } = n.getBoundingClientRect();
302
306
  if (d.className.indexOf("dropdown-submenu") > -1 || d.closest(".dropdown-submenu") || d.classList.contains("dropright")) {
303
- const O = window.innerWidth - w - d.offsetWidth, j = window.innerHeight - l, { position: R } = getComputedStyle(n);
307
+ const O = window.innerWidth - h - d.offsetWidth, j = window.innerHeight - l, { position: R } = getComputedStyle(n);
304
308
  if (R === "fixed") {
305
- let T = w + d.offsetWidth;
306
- n.offsetWidth > O && w > O && (T = w - v), n.style.left = T + "px", n.style.right = "auto", window.innerHeight - 2 * c < n.offsetHeight ? (n.style.top = c + "px", n.style.bottom = c + "px", n.style.maxHeight = window.innerHeight - 2 * c + "px", n.style.overflowY = "auto", n.className += " dropdown-menu-maxheight") : j < n.offsetHeight ? (n.style.top = "auto", n.style.bottom = c + "px") : (n.style.top = l + "px", n.style.bottom = "auto");
309
+ let $ = h + d.offsetWidth;
310
+ n.offsetWidth > O && h > O && ($ = h - w), n.style.left = $ + "px", n.style.right = "auto", window.innerHeight - 2 * c < n.offsetHeight ? (n.style.top = c + "px", n.style.bottom = c + "px", n.style.maxHeight = window.innerHeight - 2 * c + "px", n.style.overflowY = "auto", n.className += " dropdown-menu-maxheight") : j < n.offsetHeight ? (n.style.top = "auto", n.style.bottom = c + "px") : (n.style.top = l + "px", n.style.bottom = "auto");
307
311
  } else {
308
312
  if (n.offsetWidth > O) {
309
- const T = -v;
310
- n.style.left = T + "px";
313
+ const $ = -w;
314
+ n.style.left = $ + "px";
311
315
  }
312
316
  window.innerHeight - 2 * c < n.offsetHeight ? (n.style.top = -1 * (l - c) + "px", n.style.bottom = "auto", n.style.maxHeight = window.innerHeight - 2 * c + "px", n.style.overflowY = "auto", n.className += " dropdown-menu-maxheight") : j < n.offsetHeight && (n.style.top = j - n.offsetHeight - c + "px", n.style.bottom = "auto");
313
317
  }
314
318
  } else {
315
319
  const { marginTop: O, marginBottom: j } = getComputedStyle(n);
316
320
  let R = 0;
317
- const T = Math.ceil(parseFloat(O)) + Math.ceil(parseFloat(j));
318
- let $ = l + B, V = w;
319
- window.innerHeight - $ - T < E && ($ = l - E, $ < 0 && (window.innerHeight - l - B > l ? ($ = l + B, R = window.innerHeight - $ - T - c) : ($ = c, R = l - $ - T))), window.innerWidth - w < v && window.innerWidth - w < w + S && (V = w - v + S), document.body.append(n), n.style.cssText = `position:fixed;bottom:unset;left:${V}px
320
- !important;top:${$}px !important;right: unset;${R ? "max-height:" + R + "px;overflow-y:auto;" : ""}`, R && (n.className += " dropdown-menu-maxheight"), n.style.zIndex = D().toString();
321
+ const $ = Math.ceil(parseFloat(O)) + Math.ceil(parseFloat(j));
322
+ let T = l + B, q = h;
323
+ window.innerHeight - T - $ < k && (T = l - k, T < 0 && (window.innerHeight - l - B > l ? (T = l + B, R = window.innerHeight - T - $ - c) : (T = c, R = l - T - $))), window.innerWidth - h < w && window.innerWidth - h < h + v && (q = h - w + v), document.body.append(n), n.style.cssText = `position:fixed;bottom:unset;left:${q}px
324
+ !important;top:${T}px !important;right: unset;${R ? "max-height:" + R + "px;overflow-y:auto;" : ""}`, R && (n.className += " dropdown-menu-maxheight"), n.style.zIndex = D().toString();
321
325
  }
322
326
  }, u = () => {
323
- r(i.value, p.value);
327
+ r(i.value, f.value);
324
328
  }, s = () => {
325
329
  e.hover || (o.value = !1, document.removeEventListener("click", s), a.removeEventListener("click", s), document.removeEventListener("scroll", s), a.removeEventListener("scroll", s));
326
330
  };
327
331
  return {
328
332
  show: o,
329
333
  dropdownRef: i,
330
- dropdownMenuRef: p,
334
+ dropdownMenuRef: f,
331
335
  clickEventRef: m,
332
336
  showDropMenu: (d) => {
333
337
  e.hover || e.disabled || (d == null || d.stopPropagation(), o.value || setTimeout(() => {
@@ -354,7 +358,7 @@ function J(e, t) {
354
358
  }
355
359
  };
356
360
  }
357
- const De = {
361
+ const Se = {
358
362
  /** 下拉框标签 */
359
363
  label: { type: String, default: "XM1" },
360
364
  /** 下拉框名称 */
@@ -365,18 +369,18 @@ const De = {
365
369
  divide: { type: Boolean, default: !1 },
366
370
  onSelect: { type: Function, default: () => {
367
371
  } }
368
- }, Q = /* @__PURE__ */ F({
372
+ }, U = /* @__PURE__ */ F({
369
373
  name: "FDropdownItem",
370
- props: De,
374
+ props: Se,
371
375
  emits: ["select"],
372
376
  setup(e, t) {
373
- const a = h(e.value), o = h(e.label), i = h(e.disabled), p = h(e.active), m = h(e.divide), c = () => {
377
+ const a = S(e.value), o = S(e.label), i = S(e.disabled), f = S(e.active), m = S(e.divide), c = () => {
374
378
  i.value || t.emit("select", e);
375
379
  };
376
380
  return () => y("div", null, [L(y("div", {
377
381
  class: "dropdown-divider"
378
382
  }, null), [[N, m.value]]), y("li", {
379
- class: `dropdown-item${p.value ? " active" : ""} ${i.value ? " disabled" : ""}`,
383
+ class: `dropdown-item${f.value ? " active" : ""} ${i.value ? " disabled" : ""}`,
380
384
  onClick: c,
381
385
  title: a.value.toString()
382
386
  }, [o.value])]);
@@ -386,23 +390,23 @@ const De = {
386
390
  props: W,
387
391
  emits: ["select"],
388
392
  setup(e, t) {
389
- const a = h(e.model), {
393
+ const a = S(e.model), {
390
394
  show: o,
391
395
  dropdownMenuRef: i,
392
- dropdownRef: p,
396
+ dropdownRef: f,
393
397
  clickEventRef: m,
394
398
  showDropMenu: c,
395
399
  hoverDropdown: D,
396
400
  leftButtonClick: r,
397
401
  closeDropMenu: u,
398
402
  selectItem: s,
399
- resolveSize: f
400
- } = J(e, t);
403
+ resolveSize: p
404
+ } = Q(e, t);
401
405
  function b(g) {
402
406
  t.emit("select", g);
403
407
  }
404
408
  return () => y("div", {
405
- ref: p
409
+ ref: f
406
410
  }, [y("div", {
407
411
  class: ["farris-dropdown", "btn-group", {
408
412
  dropup: e.position === "top"
@@ -470,7 +474,7 @@ const De = {
470
474
  class: "sr-only"
471
475
  }, null), [[N, e.splitButton]]), e.splitButton ? "" : e.title, L(y("span", {
472
476
  class: `f-icon ${e.iconClass.toString()}`
473
- }, null), [[N, e.iconClass]])]), y(U, {
477
+ }, null), [[N, e.iconClass]])]), y(x, {
474
478
  to: "body"
475
479
  }, {
476
480
  default: () => [y("div", {
@@ -478,12 +482,12 @@ const De = {
478
482
  class: `dropdown-menu${o.value ? " show" : ""}`
479
483
  }, [y(Y, null, [a.value.map(({
480
484
  label: g,
481
- value: k,
485
+ value: E,
482
486
  disabled: H,
483
487
  active: d,
484
488
  divide: n
485
- }) => y(Q, {
486
- value: k.toString(),
489
+ }) => y(U, {
490
+ value: E.toString(),
487
491
  label: g,
488
492
  disabled: H,
489
493
  active: d,
@@ -493,99 +497,106 @@ const De = {
493
497
  })])]);
494
498
  }
495
499
  });
496
- function Se(e, t, a) {
497
- var w;
498
- function o() {
499
- }
500
- const i = "", p = "", m = h();
501
- function c() {
500
+ function De(e, t, a) {
501
+ var h;
502
+ const o = "", i = "", f = S();
503
+ function m() {
502
504
  return (t == null ? void 0 : t.schema.componentType) !== "frame";
503
505
  }
504
- function D() {
506
+ function c() {
505
507
  return !1;
506
508
  }
507
- function r() {
509
+ function D() {
508
510
  return (t == null ? void 0 : t.schema.componentType) !== "frame";
509
511
  }
510
- function u() {
512
+ function r() {
511
513
  return (t == null ? void 0 : t.schema.componentType) === "frame";
512
514
  }
513
- function s(l) {
515
+ function u(l) {
514
516
  if (!l || !l.value)
515
517
  return null;
516
518
  if (l.value.schema && l.value.schema.type === "component")
517
519
  return l.value;
518
- const S = h(l == null ? void 0 : l.value.parent), v = s(S);
519
- return v || null;
520
+ const v = S(l == null ? void 0 : l.value.parent), w = u(v);
521
+ return w || null;
520
522
  }
521
- function f(l = t) {
522
- const { componentInstance: S, designerItemElementRef: v } = l;
523
- return !S || !S.value ? null : S.value.canMove ? v : f(l.parent);
523
+ function s(l = t) {
524
+ const { componentInstance: v, designerItemElementRef: w } = l;
525
+ return !v || !v.value ? null : v.value.canMove ? w : s(l.parent);
524
526
  }
525
- function b(l) {
527
+ function p(l) {
526
528
  return !!a;
527
529
  }
528
- function g() {
530
+ function b() {
529
531
  return (t == null ? void 0 : t.schema.label) || (t == null ? void 0 : t.schema.title) || (t == null ? void 0 : t.schema.name);
530
532
  }
531
- function k() {
533
+ function g() {
534
+ }
535
+ function E(l, v) {
532
536
  }
533
- function H(l, S) {
537
+ function H(l, v) {
538
+ const { componentType: w } = l;
539
+ let k = J(w, l, v);
540
+ const A = w.toLowerCase().replace(/-/g, "_");
541
+ return k && !k.id && k.type === w && (k.id = `${A}_${Math.random().toString().slice(2, 6)}`), k;
534
542
  }
535
- function d(l, S) {
536
- const { componentType: v } = l;
537
- let E = G(v, l, S);
538
- const M = v.toLowerCase().replace("-", "_");
539
- return E && !E.id && E.type === v && (E.id = `${M}_${Math.random().toString().slice(2, 6)}`), E;
543
+ function d(l) {
540
544
  }
541
- function n(l) {
545
+ function n(...l) {
542
546
  }
543
- function B(...l) {
547
+ function B() {
548
+ t != null && t.schema.contents && t.schema.contents.map((l) => {
549
+ var k;
550
+ let v = l.id;
551
+ l.type === "component-ref" && (v = l.component);
552
+ const w = e.value.querySelector(`#${v}-design-item`);
553
+ (k = w == null ? void 0 : w.componentInstance) != null && k.value.onRemoveComponent && w.componentInstance.value.onRemoveComponent();
554
+ });
544
555
  }
545
- return m.value = {
546
- canMove: c(),
547
- canSelectParent: D(),
548
- canDelete: r(),
549
- canNested: !u(),
556
+ return f.value = {
557
+ canMove: m(),
558
+ canSelectParent: c(),
559
+ canDelete: D(),
560
+ canNested: !r(),
550
561
  contents: t == null ? void 0 : t.schema.contents,
551
562
  elementRef: e,
552
- parent: (w = t == null ? void 0 : t.parent) == null ? void 0 : w.componentInstance,
563
+ parent: (h = t == null ? void 0 : t.parent) == null ? void 0 : h.componentInstance,
553
564
  schema: t == null ? void 0 : t.schema,
554
- styles: i,
555
- designerClass: p,
556
- canAccepts: b,
557
- getBelongedComponentInstance: s,
558
- getDraggableDesignItemElement: f,
559
- getDraggingDisplayText: g,
560
- getPropConfig: B,
561
- getDragScopeElement: k,
562
- onAcceptMovedChildElement: H,
563
- onChildElementMovedOut: n,
564
- addNewChildComponentSchema: d,
565
- updateDragAndDropRules: o,
566
- triggerBelongedComponentToMoveWhenMoved: h(!1),
567
- triggerBelongedComponentToDeleteWhenDeleted: h(!1)
568
- }, m;
565
+ styles: o,
566
+ designerClass: i,
567
+ canAccepts: p,
568
+ getBelongedComponentInstance: u,
569
+ getDraggableDesignItemElement: s,
570
+ getDraggingDisplayText: b,
571
+ getPropConfig: n,
572
+ getDragScopeElement: g,
573
+ onAcceptMovedChildElement: E,
574
+ onChildElementMovedOut: d,
575
+ addNewChildComponentSchema: H,
576
+ triggerBelongedComponentToMoveWhenMoved: S(!1),
577
+ triggerBelongedComponentToDeleteWhenDeleted: S(!1),
578
+ onRemoveComponent: B
579
+ }, f;
569
580
  }
570
581
  const Be = /* @__PURE__ */ F({
571
582
  name: "FDropdownDesign",
572
583
  props: W,
573
584
  emits: ["select"],
574
585
  setup(e, t) {
575
- const a = h(e.model), {
586
+ const a = S(e.model), {
576
587
  show: o,
577
588
  showDropMenu: i,
578
- hoverDropdown: p,
589
+ hoverDropdown: f,
579
590
  leftButtonClick: m,
580
591
  closeDropMenu: c,
581
592
  selectItem: D,
582
593
  resolveSize: r
583
- } = J(e, t);
594
+ } = Q(e, t);
584
595
  function u(g) {
585
596
  t.emit("select", g);
586
597
  }
587
- const s = h(), f = x("design-item-context"), b = Se(s, f);
588
- return X(() => {
598
+ const s = S(), p = C("design-item-context"), b = De(s, p);
599
+ return _(() => {
589
600
  s.value.componentInstance = b;
590
601
  }), t.expose(b.value), () => y("div", {
591
602
  ref: s
@@ -652,8 +663,8 @@ const Be = /* @__PURE__ */ F({
652
663
  }],
653
664
  style: "width:100%",
654
665
  onClick: i,
655
- onMouseenter: p,
656
- onMouseleave: p
666
+ onMouseenter: f,
667
+ onMouseleave: f
657
668
  }, [L(y("span", {
658
669
  class: "sr-only"
659
670
  }, null), [[N, e.splitButton]]), e.splitButton ? "" : e.title, L(y("span", {
@@ -662,12 +673,12 @@ const Be = /* @__PURE__ */ F({
662
673
  class: `dropdown-menu${o.value ? " show" : ""}`
663
674
  }, [y(Y, null, [a.value.map(({
664
675
  label: g,
665
- value: k,
676
+ value: E,
666
677
  disabled: H,
667
678
  active: d,
668
679
  divide: n
669
- }) => y(Q, {
670
- value: k.toString(),
680
+ }) => y(U, {
681
+ value: E.toString(),
671
682
  label: g,
672
683
  disabled: H,
673
684
  active: d,
@@ -675,20 +686,20 @@ const Be = /* @__PURE__ */ F({
675
686
  onSelect: (B) => u(B)
676
687
  }, null))])])])]);
677
688
  }
678
- }), $e = {
689
+ }), Te = {
679
690
  install(e) {
680
691
  e.component(z.name, z);
681
692
  },
682
693
  register(e, t, a, o) {
683
- e.dropdown = z, t.dropdown = C;
694
+ e.dropdown = z, t.dropdown = X;
684
695
  },
685
696
  registerDesigner(e, t, a) {
686
- e.dropdown = Be, t.dropdown = C;
697
+ e.dropdown = Be, t.dropdown = X;
687
698
  }
688
699
  };
689
700
  export {
690
701
  z as Dropdown,
691
- $e as default,
702
+ Te as default,
692
703
  W as dropdownProps,
693
- C as propsResolver
704
+ X as propsResolver
694
705
  };
@@ -1,2 +1,2 @@
1
- (function(N,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],n):(N=typeof globalThis<"u"?globalThis:N||self,n(N.dropdown={},N.Vue,N.LodashES))})(this,function(N,n,L){"use strict";const z={},A={};function F(e){const{properties:t,title:c,ignore:r}=e,i=r&&Array.isArray(r),m=Object.keys(t).reduce((y,d)=>((!i||!r.find(v=>v==d))&&(y[d]=t[d].type==="object"&&t[d].properties?F(t[d]):L.cloneDeep(t[d].default)),y),{});return c&&(!i||!r.find(y=>y=="id"))&&(m.id=`${c}-${Date.now()}`),m}function W(e,t={},c){const r=z[e];if(r){let i=F(r);const m=A[e];return i=m?m({getSchemaByType:W},i,t,c):i,i}return null}function Y(e,t){const c=F(t);return Object.keys(e).reduce((r,i)=>(r[i]&&L.isPlainObject(r[i])&&L.isPlainObject(e[i])?Object.assign(r[i],e[i]):r[i]=e[i],r),c),c}function Z(e,t){return Object.keys(e).filter(r=>e[r]!=null).reduce((r,i)=>{if(t.has(i)){const m=t.get(i);if(typeof m=="string")r[m]=e[i];else{const y=m(i,e[i],e);Object.assign(r,y)}}else r[i]=e[i];return r},{})}function G(e,t,c=new Map){const r=Y(e,t);return Z(r,c)}function J(e={}){function t(s,f,a,p){if(typeof a=="number")return p[s].length===a;if(typeof a=="object"){const b=Object.keys(a)[0],g=a[b];if(b==="not")return Number(p[s].length)!==Number(g);if(b==="moreThan")return Number(p[s].length)>=Number(g);if(b==="lessThan")return Number(p[s].length)<=Number(g)}return!1}function c(s,f,a,p){return p[s]&&p[s].propertyValue&&String(p[s].propertyValue.value)===String(a)}const r=new Map([["length",t],["getProperty",c]]);Object.keys(e).reduce((s,f)=>(s.set(f,e[f]),s),r);function i(s,f){const a=s;return typeof f=="number"?[{target:a,operator:"length",param:null,value:Number(f)}]:typeof f=="boolean"?[{target:a,operator:"getProperty",param:s,value:!!f}]:typeof f=="object"?Object.keys(f).map(p=>{if(p==="length")return{target:a,operator:"length",param:null,value:f[p]};const b=p,g=f[p];return{target:a,operator:"getProperty",param:b,value:g}}):[]}function m(s){return Object.keys(s).reduce((a,p)=>{const b=i(p,s[p]);return a.push(...b),a},[])}function y(s,f){if(r.has(s.operator)){const a=r.get(s.operator);return a&&a(s.target,s.param,s.value,f)||!1}return!1}function d(s,f){return m(s).reduce((b,g)=>b&&y(g,f),!0)}function v(s,f){const a=Object.keys(s),p=a.includes("allOf"),b=a.includes("anyOf"),g=p||b,u=(g?s[g?p?"allOf":"anyOf":"allOf"]:[s]).map(S=>d(S,f));return p?!u.includes(!1):u.includes(!0)}return{parseValueSchema:v}}const Q={},U={};J();function x(e,t,c=new Map,r=(y,d,v)=>d,i={},m=y=>y){return z[t.title]=t,A[t.title]=r,Q[t.title]=i,U[t.title]=m,(y={})=>{const d=G(y,t,c),v=Object.keys(e).reduce((s,f)=>(s[f]=e[f].default,s),{});return Object.assign(v,d)}}function P(e,t){return{customClass:t.class,customStyle:t.style}}function K(e,t,c){return t}const I=new Map([["appearance",P]]),ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},te={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},j={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},M=x(j,ee,I,K,te);function q(e,t){let c;const r=n.ref(e.show),i=n.ref(),m=n.ref(),y=n.ref(),d=10;n.onMounted(()=>{c=m.value});const v=(u=1)=>{const o=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],S=Array.from(document.body.querySelectorAll(o.join(","))).filter(l=>l).map(l=>{const{display:D,zIndex:h}=window.getComputedStyle(l);return D==="none"?0:parseInt(h,10)}).filter(l=>l);let w=Math.max(...S);return w<1040&&(w=1040),w+u},s=(u,o)=>{const{height:S,left:w,top:l,width:D}=u.getBoundingClientRect(),{width:h,height:V,top:X}=o.getBoundingClientRect();if(u.className.indexOf("dropdown-submenu")>-1||u.closest(".dropdown-submenu")||u.classList.contains("dropright")){const R=window.innerWidth-w-u.offsetWidth,H=window.innerHeight-l,{position:E}=getComputedStyle(o);if(E==="fixed"){let k=w+u.offsetWidth;o.offsetWidth>R&&w>R&&(k=w-h),o.style.left=k+"px",o.style.right="auto",window.innerHeight-2*d<o.offsetHeight?(o.style.top=d+"px",o.style.bottom=d+"px",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight?(o.style.top="auto",o.style.bottom=d+"px"):(o.style.top=l+"px",o.style.bottom="auto")}else{if(o.offsetWidth>R){const k=-h;o.style.left=k+"px"}window.innerHeight-2*d<o.offsetHeight?(o.style.top=-1*(l-d)+"px",o.style.bottom="auto",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight&&(o.style.top=H-o.offsetHeight-d+"px",o.style.bottom="auto")}}else{const{marginTop:R,marginBottom:H}=getComputedStyle(o);let E=0;const k=Math.ceil(parseFloat(R))+Math.ceil(parseFloat(H));let $=l+S,_=w;window.innerHeight-$-k<V&&($=l-V,$<0&&(window.innerHeight-l-S>l?($=l+S,E=window.innerHeight-$-k-d):($=d,E=l-$-k))),window.innerWidth-w<h&&window.innerWidth-w<w+D&&(_=w-h+D),document.body.append(o),o.style.cssText=`position:fixed;bottom:unset;left:${_}px
2
- !important;top:${$}px !important;right: unset;${E?"max-height:"+E+"px;overflow-y:auto;":""}`,E&&(o.className+=" dropdown-menu-maxheight"),o.style.zIndex=v().toString()}},f=()=>{s(i.value,m.value)},a=()=>{e.hover||(r.value=!1,document.removeEventListener("click",a),c.removeEventListener("click",a),document.removeEventListener("scroll",a),c.removeEventListener("scroll",a))};return{show:r,dropdownRef:i,dropdownMenuRef:m,clickEventRef:y,showDropMenu:u=>{e.hover||e.disabled||(u==null||u.stopPropagation(),r.value||setTimeout(()=>{f()}),r.value=!r.value,document.addEventListener("click",a),document.addEventListener("scroll",a),e.hideOnClick||(c.addEventListener("click",o=>{o.stopPropagation()}),c.addEventListener("scroll",o=>{o.stopPropagation()})))},hoverDropdown:u=>{e.hover&&(r.value||setTimeout(()=>{}),r.value=!r.value)},leftButtonClick:()=>{},closeDropMenu:a,selectItem:u=>{t.emit("select",u)},resolveSize:u=>{const o=/px|em|rem|pt|%/;return o.test(u)?`${parseInt(u,10)}${u.match(o)[0]}`:`${u}px`}}}const ne={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},C=n.defineComponent({name:"FDropdownItem",props:ne,emits:["select"],setup(e,t){const c=n.ref(e.value),r=n.ref(e.label),i=n.ref(e.disabled),m=n.ref(e.active),y=n.ref(e.divide),d=()=>{i.value||t.emit("select",e)};return()=>n.createVNode("div",null,[n.withDirectives(n.createVNode("div",{class:"dropdown-divider"},null),[[n.vShow,y.value]]),n.createVNode("li",{class:`dropdown-item${m.value?" active":""} ${i.value?" disabled":""}`,onClick:d,title:c.value.toString()},[r.value])])}}),O=n.defineComponent({name:"FDropdown",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:r,dropdownMenuRef:i,dropdownRef:m,clickEventRef:y,showDropMenu:d,hoverDropdown:v,leftButtonClick:s,closeDropMenu:f,selectItem:a,resolveSize:p}=q(e,t);function b(g){t.emit("select",g)}return()=>n.createVNode("div",{ref:m},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:s},[e.title]),n.createVNode("span",{ref:y,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:d,onMouseenter:v,onMouseleave:v},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode(n.Teleport,{to:"body"},{default:()=>[n.createVNode("div",{ref:i,class:`dropdown-menu${r.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:B,disabled:T,active:u,divide:o})=>n.createVNode(C,{value:B.toString(),label:g,disabled:T,active:u,divide:o,onSelect:S=>b(S)},null))])])]})])])}});function oe(e,t,c){var w;function r(){}const i="",m="",y=n.ref();function d(){return(t==null?void 0:t.schema.componentType)!=="frame"}function v(){return!1}function s(){return(t==null?void 0:t.schema.componentType)!=="frame"}function f(){return(t==null?void 0:t.schema.componentType)==="frame"}function a(l){if(!l||!l.value)return null;if(l.value.schema&&l.value.schema.type==="component")return l.value;const D=n.ref(l==null?void 0:l.value.parent),h=a(D);return h||null}function p(l=t){const{componentInstance:D,designerItemElementRef:h}=l;return!D||!D.value?null:D.value.canMove?h:p(l.parent)}function b(l){return!!c}function g(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function B(){}function T(l,D){}function u(l,D){const{componentType:h}=l;let V=W(h,l,D);const X=h.toLowerCase().replace("-","_");return V&&!V.id&&V.type===h&&(V.id=`${X}_${Math.random().toString().slice(2,6)}`),V}function o(l){}function S(...l){}return y.value={canMove:d(),canSelectParent:v(),canDelete:s(),canNested:!f(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(w=t==null?void 0:t.parent)==null?void 0:w.componentInstance,schema:t==null?void 0:t.schema,styles:i,designerClass:m,canAccepts:b,getBelongedComponentInstance:a,getDraggableDesignItemElement:p,getDraggingDisplayText:g,getPropConfig:S,getDragScopeElement:B,onAcceptMovedChildElement:T,onChildElementMovedOut:o,addNewChildComponentSchema:u,updateDragAndDropRules:r,triggerBelongedComponentToMoveWhenMoved:n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:n.ref(!1)},y}const re=n.defineComponent({name:"FDropdownDesign",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:r,showDropMenu:i,hoverDropdown:m,leftButtonClick:y,closeDropMenu:d,selectItem:v,resolveSize:s}=q(e,t);function f(g){t.emit("select",g)}const a=n.ref(),p=n.inject("design-item-context"),b=oe(a,p);return n.onMounted(()=>{a.value.componentInstance=b}),t.expose(b.value),()=>n.createVNode("div",{ref:a},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:y},[e.title]),n.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:i,onMouseenter:m,onMouseleave:m},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode("div",{class:`dropdown-menu${r.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:B,disabled:T,active:u,divide:o})=>n.createVNode(C,{value:B.toString(),label:g,disabled:T,active:u,divide:o,onSelect:S=>f(S)},null))])])])])}}),ie={install(e){e.component(O.name,O)},register(e,t,c,r){e.dropdown=O,t.dropdown=M},registerDesigner(e,t,c){e.dropdown=re,t.dropdown=M}};N.Dropdown=O,N.default=ie,N.dropdownProps=j,N.propsResolver=M,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(N,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],n):(N=typeof globalThis<"u"?globalThis:N||self,n(N.dropdown={},N.Vue,N.LodashES))})(this,function(N,n,L){"use strict";const z={},W={};function M(e){const{properties:t,title:c,ignore:i}=e,r=i&&Array.isArray(i),p=Object.keys(t).reduce((y,d)=>((!r||!i.find(S=>S===d))&&(y[d]=t[d].type==="object"&&t[d].properties?M(t[d]):L.cloneDeep(t[d].default)),y),{});if(c&&(!r||!i.find(y=>y==="id"))){const y=c.toLowerCase().replace(/-/g,"_");p.id=`${y}_${Math.random().toString().slice(2,6)}`}return p}function A(e,t={},c){const i=z[e];if(i){let r=M(i);const p=W[e];return r=p?p({getSchemaByType:A},r,t,c):r,r}return null}function Z(e,t){const c=M(t);return Object.keys(c).reduce((i,r)=>(i[r]&&L.isPlainObject(i[r])&&L.isPlainObject(e[r]||!e[r])?Object.assign(i[r],e[r]||{}):i[r]=e[r],i),c),c}function G(e,t){return Object.keys(e).filter(i=>e[i]!=null).reduce((i,r)=>{if(t.has(r)){const p=t.get(r);if(typeof p=="string")i[p]=e[r];else{const y=p(r,e[r],e);Object.assign(i,y)}}else i[r]=e[r];return i},{})}function J(e,t,c=new Map){const i=Z(e,t);return G(i,c)}function Q(e={}){function t(s,f,a,m){if(typeof a=="number")return m[s].length===a;if(typeof a=="object"){const b=Object.keys(a)[0],g=a[b];if(b==="not")return Number(m[s].length)!==Number(g);if(b==="moreThan")return Number(m[s].length)>=Number(g);if(b==="lessThan")return Number(m[s].length)<=Number(g)}return!1}function c(s,f,a,m){return m[s]&&m[s].propertyValue&&String(m[s].propertyValue.value)===String(a)}const i=new Map([["length",t],["getProperty",c]]);Object.keys(e).reduce((s,f)=>(s.set(f,e[f]),s),i);function r(s,f){const a=s;return typeof f=="number"?[{target:a,operator:"length",param:null,value:Number(f)}]:typeof f=="boolean"?[{target:a,operator:"getProperty",param:s,value:!!f}]:typeof f=="object"?Object.keys(f).map(m=>{if(m==="length")return{target:a,operator:"length",param:null,value:f[m]};const b=m,g=f[m];return{target:a,operator:"getProperty",param:b,value:g}}):[]}function p(s){return Object.keys(s).reduce((a,m)=>{const b=r(m,s[m]);return a.push(...b),a},[])}function y(s,f){if(i.has(s.operator)){const a=i.get(s.operator);return a&&a(s.target,s.param,s.value,f)||!1}return!1}function d(s,f){return p(s).reduce((b,g)=>b&&y(g,f),!0)}function S(s,f){const a=Object.keys(s),m=a.includes("allOf"),b=a.includes("anyOf"),g=m||b,u=(g?s[g?m?"allOf":"anyOf":"allOf"]:[s]).map(D=>d(D,f));return m?!u.includes(!1):u.includes(!0)}return{parseValueSchema:S}}const U={},C={};Q();function P(e,t,c=new Map,i=(y,d,S,s)=>d,r={},p=y=>y){return z[t.title]=t,W[t.title]=i,U[t.title]=r,C[t.title]=p,(y={})=>{const d=J(y,t,c),S=Object.keys(e).reduce((s,f)=>(s[f]=e[f].default,s),{});return Object.assign(S,d)}}function x(e,t){return{customClass:t.class,customStyle:t.style}}function K(e,t,c){return t}const I=new Map([["appearance",x]]),ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/dropdown.schema.json",title:"dropdown",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for dropdown",type:"string"},type:{description:"The type string of dropdown",type:"string",default:"dropdown"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"]},te={title:"dropdown",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"}}}}},j={show:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{type:String,default:"下拉示例"},size:{type:String,default:""},type:{type:String,default:"primary"},iconClass:{type:String,default:""},active:{type:Boolean,default:!1},splitButton:{type:Boolean,default:!1},position:{type:String,default:"bottom"},model:{type:Array,default:[{label:"项目一",value:"XM1"},{label:"项目二",value:"XM2"},{label:"项目三",value:"XM3"}]},onSelect:{type:Function,default:()=>{}}},F=P(j,ee,I,K,te);function q(e,t){let c;const i=n.ref(e.show),r=n.ref(),p=n.ref(),y=n.ref(),d=10;n.onMounted(()=>{c=p.value});const S=(u=1)=>{const o=["body>.f-datagrid-settings-simple-host","body>div","body>farris-dialog>.farris-modal.show","body>.farris-modal.show","body>farris-filter-panel>.f-filter-panel-wrapper","body .f-sidebar-show>.f-sidebar-main","body>.popover.show","body>filter-row-panel>.f-datagrid-filter-panel","body>.f-section-maximize"],D=Array.from(document.body.querySelectorAll(o.join(","))).filter(l=>l).map(l=>{const{display:h,zIndex:w}=window.getComputedStyle(l);return h==="none"?0:parseInt(w,10)}).filter(l=>l);let v=Math.max(...D);return v<1040&&(v=1040),v+u},s=(u,o)=>{const{height:D,left:v,top:l,width:h}=u.getBoundingClientRect(),{width:w,height:B,top:X}=o.getBoundingClientRect();if(u.className.indexOf("dropdown-submenu")>-1||u.closest(".dropdown-submenu")||u.classList.contains("dropright")){const R=window.innerWidth-v-u.offsetWidth,H=window.innerHeight-l,{position:E}=getComputedStyle(o);if(E==="fixed"){let $=v+u.offsetWidth;o.offsetWidth>R&&v>R&&($=v-w),o.style.left=$+"px",o.style.right="auto",window.innerHeight-2*d<o.offsetHeight?(o.style.top=d+"px",o.style.bottom=d+"px",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight?(o.style.top="auto",o.style.bottom=d+"px"):(o.style.top=l+"px",o.style.bottom="auto")}else{if(o.offsetWidth>R){const $=-w;o.style.left=$+"px"}window.innerHeight-2*d<o.offsetHeight?(o.style.top=-1*(l-d)+"px",o.style.bottom="auto",o.style.maxHeight=window.innerHeight-2*d+"px",o.style.overflowY="auto",o.className+=" dropdown-menu-maxheight"):H<o.offsetHeight&&(o.style.top=H-o.offsetHeight-d+"px",o.style.bottom="auto")}}else{const{marginTop:R,marginBottom:H}=getComputedStyle(o);let E=0;const $=Math.ceil(parseFloat(R))+Math.ceil(parseFloat(H));let k=l+D,Y=v;window.innerHeight-k-$<B&&(k=l-B,k<0&&(window.innerHeight-l-D>l?(k=l+D,E=window.innerHeight-k-$-d):(k=d,E=l-k-$))),window.innerWidth-v<w&&window.innerWidth-v<v+h&&(Y=v-w+h),document.body.append(o),o.style.cssText=`position:fixed;bottom:unset;left:${Y}px
2
+ !important;top:${k}px !important;right: unset;${E?"max-height:"+E+"px;overflow-y:auto;":""}`,E&&(o.className+=" dropdown-menu-maxheight"),o.style.zIndex=S().toString()}},f=()=>{s(r.value,p.value)},a=()=>{e.hover||(i.value=!1,document.removeEventListener("click",a),c.removeEventListener("click",a),document.removeEventListener("scroll",a),c.removeEventListener("scroll",a))};return{show:i,dropdownRef:r,dropdownMenuRef:p,clickEventRef:y,showDropMenu:u=>{e.hover||e.disabled||(u==null||u.stopPropagation(),i.value||setTimeout(()=>{f()}),i.value=!i.value,document.addEventListener("click",a),document.addEventListener("scroll",a),e.hideOnClick||(c.addEventListener("click",o=>{o.stopPropagation()}),c.addEventListener("scroll",o=>{o.stopPropagation()})))},hoverDropdown:u=>{e.hover&&(i.value||setTimeout(()=>{}),i.value=!i.value)},leftButtonClick:()=>{},closeDropMenu:a,selectItem:u=>{t.emit("select",u)},resolveSize:u=>{const o=/px|em|rem|pt|%/;return o.test(u)?`${parseInt(u,10)}${u.match(o)[0]}`:`${u}px`}}}const ne={label:{type:String,default:"XM1"},value:{type:String||Number,default:"项目一"},disabled:{type:Boolean,default:!1},active:{type:Boolean,default:!1},divide:{type:Boolean,default:!1},onSelect:{type:Function,default:()=>{}}},_=n.defineComponent({name:"FDropdownItem",props:ne,emits:["select"],setup(e,t){const c=n.ref(e.value),i=n.ref(e.label),r=n.ref(e.disabled),p=n.ref(e.active),y=n.ref(e.divide),d=()=>{r.value||t.emit("select",e)};return()=>n.createVNode("div",null,[n.withDirectives(n.createVNode("div",{class:"dropdown-divider"},null),[[n.vShow,y.value]]),n.createVNode("li",{class:`dropdown-item${p.value?" active":""} ${r.value?" disabled":""}`,onClick:d,title:c.value.toString()},[i.value])])}}),O=n.defineComponent({name:"FDropdown",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:i,dropdownMenuRef:r,dropdownRef:p,clickEventRef:y,showDropMenu:d,hoverDropdown:S,leftButtonClick:s,closeDropMenu:f,selectItem:a,resolveSize:m}=q(e,t);function b(g){t.emit("select",g)}return()=>n.createVNode("div",{ref:p},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}]},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:s},[e.title]),n.createVNode("span",{ref:y,class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:d,onMouseenter:S,onMouseleave:S},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode(n.Teleport,{to:"body"},{default:()=>[n.createVNode("div",{ref:r,class:`dropdown-menu${i.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:V,disabled:T,active:u,divide:o})=>n.createVNode(_,{value:V.toString(),label:g,disabled:T,active:u,divide:o,onSelect:D=>b(D)},null))])])]})])])}});function oe(e,t,c){var v;const i="",r="",p=n.ref();function y(){return(t==null?void 0:t.schema.componentType)!=="frame"}function d(){return!1}function S(){return(t==null?void 0:t.schema.componentType)!=="frame"}function s(){return(t==null?void 0:t.schema.componentType)==="frame"}function f(l){if(!l||!l.value)return null;if(l.value.schema&&l.value.schema.type==="component")return l.value;const h=n.ref(l==null?void 0:l.value.parent),w=f(h);return w||null}function a(l=t){const{componentInstance:h,designerItemElementRef:w}=l;return!h||!h.value?null:h.value.canMove?w:a(l.parent)}function m(l){return!!c}function b(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function g(){}function V(l,h){}function T(l,h){const{componentType:w}=l;let B=A(w,l,h);const X=w.toLowerCase().replace(/-/g,"_");return B&&!B.id&&B.type===w&&(B.id=`${X}_${Math.random().toString().slice(2,6)}`),B}function u(l){}function o(...l){}function D(){t!=null&&t.schema.contents&&t.schema.contents.map(l=>{var B;let h=l.id;l.type==="component-ref"&&(h=l.component);const w=e.value.querySelector(`#${h}-design-item`);(B=w==null?void 0:w.componentInstance)!=null&&B.value.onRemoveComponent&&w.componentInstance.value.onRemoveComponent()})}return p.value={canMove:y(),canSelectParent:d(),canDelete:S(),canNested:!s(),contents:t==null?void 0:t.schema.contents,elementRef:e,parent:(v=t==null?void 0:t.parent)==null?void 0:v.componentInstance,schema:t==null?void 0:t.schema,styles:i,designerClass:r,canAccepts:m,getBelongedComponentInstance:f,getDraggableDesignItemElement:a,getDraggingDisplayText:b,getPropConfig:o,getDragScopeElement:g,onAcceptMovedChildElement:V,onChildElementMovedOut:u,addNewChildComponentSchema:T,triggerBelongedComponentToMoveWhenMoved:n.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:n.ref(!1),onRemoveComponent:D},p}const ie=n.defineComponent({name:"FDropdownDesign",props:j,emits:["select"],setup(e,t){const c=n.ref(e.model),{show:i,showDropMenu:r,hoverDropdown:p,leftButtonClick:y,closeDropMenu:d,selectItem:S,resolveSize:s}=q(e,t);function f(g){t.emit("select",g)}const a=n.ref(),m=n.inject("design-item-context"),b=oe(a,m);return n.onMounted(()=>{a.value.componentInstance=b}),t.expose(b.value),()=>n.createVNode("div",{ref:a},[n.createVNode("div",{class:["farris-dropdown","btn-group",{dropup:e.position==="top"},{dropdown:e.position==="bottom"},{dropleft:e.position==="left"},{dropright:e.position==="right"}],style:{width:e.width}},[e.splitButton&&n.createVNode("span",{class:["btn",{"dropdown-item":e.nest},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"}],style:"width:100%",onClick:y},[e.title]),n.createVNode("span",{class:["dropdown-toggle",{btn:!e.nest},{"dropdown-item":e.nest},{"dropdown-toggle-split":e.splitButton},{"btn-lg":e.size==="large"},{"btn-sm":e.size==="small"},{"btn-primary":e.type==="primary"},{"btn-success":e.type==="success"},{"btn-warning":e.type==="warning"},{"btn-danger":e.type==="danger"},{"btn-info":e.type==="info"},{"btn-secondary":e.type==="secondary"},{"btn-link":e.type==="link"},{disabled:e.disabled}],style:"width:100%",onClick:r,onMouseenter:p,onMouseleave:p},[n.withDirectives(n.createVNode("span",{class:"sr-only"},null),[[n.vShow,e.splitButton]]),e.splitButton?"":e.title,n.withDirectives(n.createVNode("span",{class:`f-icon ${e.iconClass.toString()}`},null),[[n.vShow,e.iconClass]])]),n.createVNode("div",{class:`dropdown-menu${i.value?" show":""}`},[n.createVNode(n.Fragment,null,[c.value.map(({label:g,value:V,disabled:T,active:u,divide:o})=>n.createVNode(_,{value:V.toString(),label:g,disabled:T,active:u,divide:o,onSelect:D=>f(D)},null))])])])])}}),re={install(e){e.component(O.name,O)},register(e,t,c,i){e.dropdown=O,t.dropdown=F},registerDesigner(e,t,c){e.dropdown=ie,t.dropdown=F}};N.Dropdown=O,N.default=re,N.dropdownProps=j,N.propsResolver=F,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});