@farris/ui-vue 1.8.0-alpha.0 → 1.8.0-beta.1

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 (193) hide show
  1. package/components/avatar/index.esm.js +138 -1526
  2. package/components/avatar/index.umd.cjs +1 -6
  3. package/components/button/index.css +1 -1
  4. package/components/button/index.esm.js +15951 -15410
  5. package/components/button/index.umd.cjs +27 -27
  6. package/components/calendar/index.esm.js +269 -255
  7. package/components/calendar/index.umd.cjs +3 -3
  8. package/components/collection-property-editor/index.esm.js +243 -229
  9. package/components/collection-property-editor/index.umd.cjs +2 -2
  10. package/components/combo-list/index.esm.js +32 -32
  11. package/components/combo-list/index.umd.cjs +1 -1
  12. package/components/comment/index.esm.js +473 -456
  13. package/components/comment/index.umd.cjs +6 -6
  14. package/components/component/index.css +1 -1
  15. package/components/component/index.esm.js +2503 -2239
  16. package/components/component/index.umd.cjs +2 -2
  17. package/components/condition/index.esm.js +1064 -954
  18. package/components/condition/index.umd.cjs +2 -2
  19. package/components/data-grid/index.esm.js +1 -1
  20. package/components/data-grid/index.umd.cjs +1 -1
  21. package/components/designer-canvas/index.css +1 -1
  22. package/components/designer-canvas/index.esm.js +3894 -3058
  23. package/components/designer-canvas/index.umd.cjs +1 -1
  24. package/components/drawer/index.esm.js +91 -77
  25. package/components/drawer/index.umd.cjs +2 -2
  26. package/components/dynamic-form/index.esm.js +220 -215
  27. package/components/dynamic-form/index.umd.cjs +1 -1
  28. package/components/dynamic-resolver/index.esm.js +145 -131
  29. package/components/dynamic-resolver/index.umd.cjs +2 -2
  30. package/components/dynamic-view/index.esm.js +336 -329
  31. package/components/dynamic-view/index.umd.cjs +1 -1
  32. package/components/events-editor/index.esm.js +1611 -1536
  33. package/components/events-editor/index.umd.cjs +3 -3
  34. package/components/expression-editor/index.esm.js +219 -219
  35. package/components/expression-editor/index.umd.cjs +2 -2
  36. package/components/external-container/index.esm.js +179 -178
  37. package/components/external-container/index.umd.cjs +1 -1
  38. package/components/fieldset/index.esm.js +285 -221
  39. package/components/fieldset/index.umd.cjs +1 -1
  40. package/components/filter-bar/index.css +1 -0
  41. package/components/filter-bar/index.esm.js +1512 -1290
  42. package/components/filter-bar/index.umd.cjs +7 -7
  43. package/components/filter-condition-editor/index.esm.js +851 -831
  44. package/components/filter-condition-editor/index.umd.cjs +3 -3
  45. package/components/flow-canvas/index.esm.js +520 -501
  46. package/components/flow-canvas/index.umd.cjs +8 -8
  47. package/components/image/index.esm.js +101 -79
  48. package/components/image/index.umd.cjs +3 -3
  49. package/components/language-textbox/index.esm.js +330 -251
  50. package/components/language-textbox/index.umd.cjs +2 -2
  51. package/components/list-nav/index.esm.js +399 -313
  52. package/components/list-nav/index.umd.cjs +1 -1
  53. package/components/locale/index.esm.js +3 -0
  54. package/components/locale/index.umd.cjs +1 -1
  55. package/components/lookup/index.esm.js +997 -976
  56. package/components/lookup/index.umd.cjs +2 -2
  57. package/components/mapping-editor/index.esm.js +725 -705
  58. package/components/mapping-editor/index.umd.cjs +1 -1
  59. package/components/message-box/index.esm.js +542 -522
  60. package/components/message-box/index.umd.cjs +1 -1
  61. package/components/nav/index.esm.js +95 -308
  62. package/components/nav/index.umd.cjs +1 -1
  63. package/components/number-range/index.esm.js +115 -107
  64. package/components/number-range/index.umd.cjs +2 -2
  65. package/components/order/index.esm.js +56 -54
  66. package/components/order/index.umd.cjs +1 -1
  67. package/components/page-footer/index.esm.js +135 -123
  68. package/components/page-footer/index.umd.cjs +1 -1
  69. package/components/page-header/index.esm.js +266 -222
  70. package/components/page-header/index.umd.cjs +1 -1
  71. package/components/property-panel/index.esm.js +402 -375
  72. package/components/property-panel/index.umd.cjs +4 -4
  73. package/components/query-solution/index.esm.js +3171 -3061
  74. package/components/query-solution/index.umd.cjs +7 -7
  75. package/components/response-toolbar/index.esm.js +1 -1
  76. package/components/response-toolbar/index.umd.cjs +1 -1
  77. package/components/schema-selector/index.esm.js +1620 -1608
  78. package/components/schema-selector/index.umd.cjs +5 -5
  79. package/components/scroll-navbar/index.esm.js +150 -136
  80. package/components/scroll-navbar/index.umd.cjs +2 -2
  81. package/components/section/index.esm.js +323 -311
  82. package/components/section/index.umd.cjs +2 -2
  83. package/components/sort-condition-editor/index.esm.js +850 -830
  84. package/components/sort-condition-editor/index.umd.cjs +3 -3
  85. package/components/step/index.esm.js +991 -224
  86. package/components/step/index.umd.cjs +1 -1
  87. package/components/tabs/index.esm.js +356 -334
  88. package/components/tabs/index.umd.cjs +1 -1
  89. package/components/wizard/index.esm.js +159 -162
  90. package/components/wizard/index.umd.cjs +1 -1
  91. package/designer/avatar/index.esm.js +1721 -0
  92. package/designer/avatar/index.umd.cjs +6 -0
  93. package/designer/button-edit/index.esm.js +2 -1
  94. package/designer/button-edit/index.umd.cjs +1 -1
  95. package/designer/data-grid/index.esm.js +693 -659
  96. package/designer/data-grid/index.umd.cjs +6 -6
  97. package/designer/data-view/index.esm.js +90 -78
  98. package/designer/data-view/index.umd.cjs +2 -2
  99. package/designer/date-picker/index.esm.js +203 -203
  100. package/designer/date-picker/index.umd.cjs +1 -1
  101. package/designer/drawer/index.esm.js +181 -167
  102. package/designer/drawer/index.umd.cjs +2 -2
  103. package/designer/dynamic-form/index.esm.js +228 -206
  104. package/designer/dynamic-form/index.umd.cjs +2 -2
  105. package/designer/farris-designer.all.esm.js +10014 -9692
  106. package/designer/farris-designer.all.umd.cjs +18 -18
  107. package/designer/index.css +1 -1
  108. package/designer/input-group/index.esm.js +15 -15
  109. package/designer/input-group/index.umd.cjs +1 -1
  110. package/designer/nav/index.esm.js +1719 -0
  111. package/designer/nav/index.umd.cjs +6 -0
  112. package/designer/number-spinner/index.esm.js +8 -7
  113. package/designer/number-spinner/index.umd.cjs +1 -1
  114. package/designer/radio-group/index.esm.js +133 -125
  115. package/designer/radio-group/index.umd.cjs +2 -2
  116. package/designer/response-toolbar/index.esm.js +864 -863
  117. package/designer/response-toolbar/index.umd.cjs +1 -1
  118. package/designer/section/index.esm.js +245 -183
  119. package/designer/section/index.umd.cjs +1 -1
  120. package/designer/tabs/index.css +1 -1
  121. package/designer/tabs/index.esm.js +3667 -2810
  122. package/designer/tabs/index.umd.cjs +2 -2
  123. package/designer/time-picker/index.esm.js +26 -17
  124. package/designer/time-picker/index.umd.cjs +2 -2
  125. package/designer/tree-grid/index.esm.js +69 -37
  126. package/designer/tree-grid/index.umd.cjs +1 -1
  127. package/designer/wizard/index.esm.js +110 -110
  128. package/designer/wizard/index.umd.cjs +3 -3
  129. package/farris.all.esm.js +39993 -39089
  130. package/farris.all.umd.cjs +36 -36
  131. package/index.css +1 -1
  132. package/locales/filter-bar/ui/en.json +1 -0
  133. package/locales/filter-bar/ui/zh-CHS.json +1 -0
  134. package/locales/filter-bar/ui/zh-CHT.json +1 -0
  135. package/locales/ui/en.json +1 -0
  136. package/locales/ui/zh-CHS.json +1 -0
  137. package/locales/ui/zh-CHT.json +1 -0
  138. package/package.json +1 -1
  139. package/types/avatar/designer.d.ts +28 -0
  140. package/types/avatar/index.d.ts +0 -15
  141. package/types/avatar/src/composition/types.d.ts +3 -0
  142. package/types/avatar/src/composition/use-file.d.ts +19 -0
  143. package/types/avatar/src/composition/use-image.d.ts +1 -1
  144. package/types/avatar/src/designer/avatar.design.props.d.ts +24 -0
  145. package/types/avatar/src/property-config/avatar.property-config.d.ts +11 -13
  146. package/types/avatar/src/schema/schema-mapper.d.ts +2 -0
  147. package/types/components.d.ts +3 -0
  148. package/types/condition/index.d.ts +18 -6
  149. package/types/condition/src/condition-fields.component.d.ts +9 -3
  150. package/types/condition/src/condition-fields.design.component.d.ts +9 -3
  151. package/types/condition/src/condition-list.component.d.ts +9 -3
  152. package/types/condition/src/condition.props.d.ts +11 -0
  153. package/types/data-view/designer/property-config/use-appearance.d.ts +17 -10
  154. package/types/data-view/designer/property-config/use-pagination.d.ts +0 -6
  155. package/types/designer-canvas/src/composition/dg-control.d.ts +13 -0
  156. package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.component.d.ts +3 -0
  157. package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.props.d.ts +4 -0
  158. package/types/dynamic-resolver/src/converter/tree-auto-check.converter.d.ts +3 -0
  159. package/types/dynamic-view/src/components/maps.d.ts +130 -4
  160. package/types/filter-bar/src/composition/types.d.ts +2 -0
  161. package/types/filter-bar/src/filter-bar.props.d.ts +0 -1
  162. package/types/filter-bar/src/locale/locale.d.ts +2 -1
  163. package/types/filter-bar/src/property-config/filter-bar.property-config.d.ts +0 -1
  164. package/types/language-textbox/index.d.ts +65 -2
  165. package/types/language-textbox/src/designer/language-textbox.design.component.d.ts +36 -0
  166. package/types/language-textbox/src/language-textbox.component.d.ts +38 -1
  167. package/types/language-textbox/src/language-textbox.props.d.ts +20 -0
  168. package/types/lookup/src/components/popup-container.component.d.ts +3 -3
  169. package/types/lookup/src/composition/use-compat.d.ts +28 -0
  170. package/types/lookup/src/composition/use-state.d.ts +1 -0
  171. package/types/message-box/src/message-box.service.d.ts +2 -1
  172. package/types/nav/designer.d.ts +28 -0
  173. package/types/nav/index.d.ts +24 -20
  174. package/types/nav/src/designer/nav.design.props.d.ts +29 -0
  175. package/types/nav/src/designer/use-design-rules.d.ts +3 -0
  176. package/types/nav/src/property-config/nav.property-config.d.ts +9 -0
  177. package/types/nav/src/schema/schema-mapper.d.ts +4 -0
  178. package/types/page-footer/src/designer/use-designer-rules.d.ts +2 -2
  179. package/types/page-header/src/designer/use-designer-rules.d.ts +2 -2
  180. package/types/property-panel/src/composition/entity/input-base-property.d.ts +1 -0
  181. package/types/query-solution/src/designer/query-solution-config/composition/use-util.d.ts +1 -1
  182. package/types/query-solution/src/designer/query-solution-config/query-solution-config.props.d.ts +1 -1
  183. package/types/section/src/designer/section.design.props.d.ts +4 -0
  184. package/types/section/src/property-config/section.property-config.d.ts +39 -0
  185. package/types/section/src/schema/toolbar-resolver.d.ts +0 -1
  186. package/types/step/src/designer/use-designer-rules.d.ts +3 -0
  187. package/types/step/src/designer/use-step-creator.d.ts +6 -0
  188. package/types/step/src/property-config/step.property-config.d.ts +15 -0
  189. package/types/step/src/schema/schema-resolver.d.ts +2 -1
  190. package/types/tabs/src/composition/types.d.ts +4 -0
  191. package/types/tabs/src/tabs.props.d.ts +6 -0
  192. package/types/tooltip/index.d.ts +3 -3
  193. package/types/tooltip/src/tooltip.component.d.ts +2 -2
@@ -74,7 +74,7 @@ function ne(h) {
74
74
  }
75
75
  return { getVariables: s, getControlName: r, getStateMachines: a };
76
76
  }
77
- class N {
77
+ class L {
78
78
  constructor(n) {
79
79
  g(this, "sessionVariables", [
80
80
  {
@@ -611,7 +611,7 @@ class se {
611
611
  !o || !o.rules || (o.rules = o.rules.filter((p) => p.type !== s));
612
612
  }
613
613
  getExpressionOptions(n, e, t) {
614
- return new N(this.formSchemaUtils).getExpressionOptions(n, e, t);
614
+ return new L(this.formSchemaUtils).getExpressionOptions(n, e, t);
615
615
  }
616
616
  getRealTargetType(n) {
617
617
  return ["response-toolbar-item", "tab-toolbar-item", "section-toolbar-item", "drawer-toolbar-item"].indexOf(n.type) > -1 ? "Button" : n.binding && n.binding.field ? "Field" : "Container";
@@ -686,6 +686,7 @@ g(E, "fieldControlTypeMapping", {
686
686
  { key: l.textarea.type, value: l.textarea.name },
687
687
  { key: l.lookup.type, value: l.lookup.name },
688
688
  { key: l.image.type, value: l.image.name },
689
+ { key: l.avatar.type, value: l.avatar.name },
689
690
  { key: l["rich-text-editor"].type, value: l["rich-text-editor"].name }
690
691
  ],
691
692
  Decimal: [
@@ -722,7 +723,7 @@ g(E, "fieldControlTypeMapping", {
722
723
  { key: l["radio-group"].type, value: l["radio-group"].name }
723
724
  ]
724
725
  });
725
- let w = E;
726
+ let k = E;
726
727
  var M = /* @__PURE__ */ ((h) => (h.Form = "Form", h.Variable = "Variable", h))(M || {});
727
728
  class re {
728
729
  constructor() {
@@ -813,12 +814,12 @@ function oe(h) {
813
814
  var v;
814
815
  const b = t.get(f.id), C = b.appearance && b.appearance.class;
815
816
  if (C) {
816
- const I = C.split(" ").filter((q) => !q.startsWith("col-")), F = "col-" + f.columnInSM, L = "col-md-" + f.columnInMD, A = "col-xl-" + f.columnInLG, $ = "col-el-" + f.columnInEL, R = [F, L, A, $].concat(I);
817
+ const I = C.split(" ").filter((q) => !q.startsWith("col-")), F = "col-" + f.columnInSM, U = "col-md-" + f.columnInMD, A = "col-xl-" + f.columnInLG, $ = "col-el-" + f.columnInEL, R = [F, U, A, $].concat(I);
817
818
  b.appearance.class = R.join(" ");
818
819
  }
819
820
  if (f.fieldSetId) {
820
- const k = y.contents.find((F) => F.id === f.fieldSetId), I = u.find((F) => F.id === f.fieldSetId);
821
- I ? (v = I.contents) == null || v.push(b) : (u.push(k), k.contents = [b]);
821
+ const w = y.contents.find((F) => F.id === f.fieldSetId), I = u.find((F) => F.id === f.fieldSetId);
822
+ I ? (v = I.contents) == null || v.push(b) : (u.push(w), w.contents = [b]);
822
823
  } else
823
824
  u.push(b);
824
825
  }), y.contents = u, y.id;
@@ -855,7 +856,7 @@ class de extends se {
855
856
  },
856
857
  {
857
858
  label: "onClickLabel",
858
- name: "点击标签事件"
859
+ name: "标签点击事件"
859
860
  }
860
861
  ]);
861
862
  g(this, "numberEditorOptions", {
@@ -869,7 +870,7 @@ class de extends se {
869
870
  getCommonPropertyConfig(e, t, i = "Card") {
870
871
  if (this.propertyConfig.categories.basic = this.getBasicProperties(e, t, i), this.propertyConfig.categories.appearance = this.getAppearanceProperties(e, t), this.propertyConfig.categories.behavior = this.getBehaviorConfig(e, "form-group"), i === "Card") {
871
872
  const s = this.getTipsConfig(e);
872
- this.propertyConfig.categories.behavior.properties = { ...this.propertyConfig.categories.behavior.properties, ...s }, ["time-picker", "date-picker", "lookup", "combo-list", "number-spinner", "input-group"].includes(e.editor.type) && (this.propertyConfig.categories.expansion = this.getExpandProperties(e));
873
+ this.propertyConfig.categories.behavior.properties = { ...this.propertyConfig.categories.behavior.properties, ...s }, ["time-picker", "date-picker", "lookup", "combo-list", "number-spinner", "input-group", "language-textbox"].includes(e.editor.type) && (this.propertyConfig.categories.expansion = this.getExpandProperties(e));
873
874
  }
874
875
  }
875
876
  getPropertyConfig(e, t) {
@@ -1041,7 +1042,7 @@ class de extends se {
1041
1042
  }]
1042
1043
  };
1043
1044
  let i = [];
1044
- return this.designViewModelField && this.designViewModelField.$type === B.SimpleField ? i = w.getEditorTypesByMDataType(this.designViewModelField.type.name, this.designViewModelField.multiLanguage) : this.bindingVarible && (i = w.getEditorTypesByMDataType(this.bindingVarible.type, !1)), { canChangeControlType: t, editorTypeList: i };
1045
+ return this.designViewModelField && this.designViewModelField.$type === B.SimpleField ? i = k.getEditorTypesByMDataType(this.designViewModelField.type.name, this.designViewModelField.multiLanguage) : this.bindingVarible && (i = k.getEditorTypesByMDataType(this.bindingVarible.type, !1)), { canChangeControlType: t, editorTypeList: i };
1045
1046
  }
1046
1047
  changeBindingField(e, t, i) {
1047
1048
  t.needRefreshEntityTree = !0;
@@ -1140,7 +1141,7 @@ class de extends se {
1140
1141
  });
1141
1142
  }
1142
1143
  getTipsConfig(e) {
1143
- return ["time-picker", "date-picker", "lookup", "combo-list", "number-spinner", "input-group", "textarea", "rich-text-editor"].includes(e.editor.type) ? {
1144
+ return ["time-picker", "date-picker", "lookup", "combo-list", "number-spinner", "input-group", "textarea", "rich-text-editor", "language-textbox"].includes(e.editor.type) ? {
1144
1145
  enableTips: {
1145
1146
  refreshPanelAfterChanged: !0,
1146
1147
  description: "",
@@ -1306,6 +1307,13 @@ class de extends se {
1306
1307
  }
1307
1308
  return e.type;
1308
1309
  }
1310
+ updateLinkedLabel(e, t) {
1311
+ if (e.boundEventsList && e.boundEventsList.length > 0) {
1312
+ const i = e.boundEventsList.find((s) => s.boundEvents && s.boundEvents.label === "onClickLabel");
1313
+ t.linkLabel = !!i;
1314
+ } else
1315
+ t.linkLabel = !1;
1316
+ }
1309
1317
  /**
1310
1318
  * 组装输入类控件的交互面板:包含标签超链、绑定字段值变化前后事件等。
1311
1319
  * @param propertyData 属性值
@@ -1338,14 +1346,14 @@ class de extends se {
1338
1346
  tabName: "交互",
1339
1347
  setPropertyRelates(m, y) {
1340
1348
  const u = m.propertyValue;
1341
- delete e[r.viewModelId], u && (u.setPropertyRelates = this.setPropertyRelates, u.controlInfo = { type: r.getControlMethodType(e), name: e.title }, r.eventsEditorUtils.saveRelatedParameters(e, r.viewModelId, u.events, u)), s && s(m, y, u);
1349
+ delete e[r.viewModelId], u && (u.setPropertyRelates = this.setPropertyRelates, u.controlInfo = { type: r.getControlMethodType(e), name: e.title }, r.eventsEditorUtils.saveRelatedParameters(e, r.viewModelId, u.events, u), r.updateLinkedLabel(u, y)), s && s(m, y, u);
1342
1350
  const f = r.designViewModelUtils.getDgViewModel(r.viewModelId);
1343
1351
  f && r.designViewModelField && f.changeField(r.designViewModelField.id, { valueChanging: e.fieldValueChanging, valueChanged: e.fieldValueChanged });
1344
1352
  }
1345
1353
  };
1346
1354
  }
1347
1355
  getExpressionConfig(e, t, i = ["compute", "dependency", "validate"], s) {
1348
- return new N(this.formSchemaUtils).getExpressionConfig(
1356
+ return new L(this.formSchemaUtils).getExpressionConfig(
1349
1357
  e,
1350
1358
  t,
1351
1359
  i,
@@ -1470,7 +1478,8 @@ const S = /* @__PURE__ */ Q({
1470
1478
  return Y(() => {
1471
1479
  s.value.componentInstance = p;
1472
1480
  }), n.expose(p.value), () => x("div", {
1473
- ref: s
1481
+ ref: s,
1482
+ style: "pointer-events: none;"
1474
1483
  }, [x(Z, {
1475
1484
  ref: i,
1476
1485
  modelValue: t.value,
@@ -1623,15 +1632,15 @@ const S = /* @__PURE__ */ Q({
1623
1632
  function xe(h, n, e) {
1624
1633
  return n;
1625
1634
  }
1626
- const U = X(W, ve, pe, xe);
1635
+ const N = X(W, ve, pe, xe);
1627
1636
  S.register = (h, n, e, t) => {
1628
- h["time-picker"] = O, n["time-picker"] = U;
1637
+ h["time-picker"] = O, n["time-picker"] = N;
1629
1638
  };
1630
1639
  S.registerDesigner = (h, n, e) => {
1631
- h["time-picker"] = S, n["time-picker"] = U;
1640
+ h["time-picker"] = S, n["time-picker"] = N;
1632
1641
  };
1633
1642
  export {
1634
1643
  S as FTimePickerDesign,
1635
1644
  S as default,
1636
- U as propsResolver
1645
+ N as propsResolver
1637
1646
  };
@@ -1,6 +1,6 @@
1
- (function(b,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("../../components/time-picker/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("vue"),require("../../components/button-edit/index.umd.js"),require("../../components/designer-canvas/index.umd.js"),require("lodash-es"),require("../../components/common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/time-picker/index.umd.js","../../components/dynamic-resolver/index.umd.js","vue","../../components/button-edit/index.umd.js","../../components/designer-canvas/index.umd.js","lodash-es","../../components/common/index.umd.js"],F):(b=typeof globalThis<"u"?globalThis:b||self,F(b["time-picker"]={},b.FTimePicker,b.dynamicResolver,b.Vue,b.buttonEdit,b.designerCanvas,b.LodashES,b.common))})(this,function(b,F,V,x,U,s,L,T){"use strict";var ee=Object.defineProperty;var te=(b,F,V)=>F in b?ee(b,F,{enumerable:!0,configurable:!0,writable:!0,value:V}):b[F]=V;var f=(b,F,V)=>te(b,typeof F!="symbol"?F+"":F,V);const A={modelValue:{type:String,default:""},hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},secondStep:{type:Number,default:1},popupClassName:{type:String,default:""},placeholder:{type:String,default:"请选择时间"},placement:{type:String,default:"auto"},defaultOpenValue:{type:Date,default:null},format:{type:String,default:"HH:mm:ss"},isOpen:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!1},use12Hours:{type:Boolean,default:!1},disabledHours:{type:Function,default:null},disabledMinutes:{type:Function,default:null},disabledSeconds:{type:Function,default:null},hideDisabledElements:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}};function $(h){const{formSchemaUtils:o,formStateMachineUtils:e}=h;function t(l,p=""){return{path:p+l.code,field:l.id,fullPath:l.code}}function i(l,p=""){const c=o.getViewModelById(l);return c?c.states.map(d=>t(d,p)):[]}function n(l){const p=o.getRootViewModelId(),c=i(l);if(l===p)return c;const d=i(p,"root-component.");return[...c,...d]}function r(l){return l.binding&&l.binding.path||l.id||""}function a(){return e&&e.getRenderStates()||[]}return{getVariables:n,getControlName:r,getStateMachines:a}}class N{constructor(o){f(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);f(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});f(this,"getExpressionConverter",(o,e)=>({convertFrom:(t,i,n,r)=>{const a=n.getExpressionRuleValue(o,e||i);return a&&a.value||""},convertTo:(t,i,n,r,a)=>{var l;if(i==="dataPicking"&&(n!=null&&n.target)){const p=`${n.target}_dataPicking`;((l=n.rules)==null?void 0:l.some(d=>d.id===p&&d.value))?t.dictPickingExpressionId=p:delete t.dictPickingExpressionId}r.updateExpression(n)}}));this.formSchemaService=o}getExpressionRule(o,e){const t=this.formSchemaService.getExpressions();if(!t)return"";const i=t.find(r=>r.target===o);if(!i)return"";const n=i.rules.find(r=>r.type===e);return n||""}getContextFormVariables(){const{module:o}=this.formSchemaService.getFormSchema();if(!o.viewmodels||o.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),t=this.formSchemaService.getViewModelById(e);if(!t||!t.states||t.states.length===0)return[];const i=[];return t.states.filter(n=>n.category==="remote").forEach(n=>{i.push({key:n.code,name:n.name,description:n.name,category:n.category})}),i}createTreeNode(o,e,t="label"){return{id:o.id,name:o.name,bindingPath:o[t],parents:e,type:"field"}}buildEntityFieldsTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var a;const n=this.createTreeNode(i,e);let r=[];(a=i.type)!=null&&a.fields&&(r=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),t.push({data:n,children:r,expanded:!0})}),t}buildChildEntityTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var l,p;const n=this.createTreeNode(i,e);n.type="entity";const r=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...e,i.label]),a=this.buildChildEntityTreeData((p=i.type)==null?void 0:p.entities,[...e,i.label]);a!=null&&a.length&&(r==null||r.push(...a)),t.push({data:n,children:r||[],expanded:!0})}),t}getEntitiesTreeData(){const o=this.formSchemaService.getSchemaEntities();if(!(o!=null&&o.length))return[];const e=o[0];if(!(e!=null&&e.type))return[];const t=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(t==null||t.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:t||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(o,e,t){const i=t==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,e),r=this.getEntitiesAndVariables(),a={message:["validate","required","dataPicking"].includes(e)&&n?n.message:"",...r};return n.messageType!=null&&(a.messageType=n.messageType),a}buildRule(o,e,t,i){const{expression:n,message:r,messageType:a}=e,l={id:`${o}_${t}`,type:t,value:n};return(t==="validate"||t==="dataPicking"||t==="required")&&(l.message=r),t==="dataPicking"&&(l.messageType=a),t==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:o}=this.formSchemaService.getFormSchema().module;return o||[]}updateExpression(o,e,t,i){const n=e==="Field"?o.binding.field:o.id,r=this.buildRule(n,t,i,o.type==="form-group"?o.id:"");let l=this.getExpressionData().find(c=>c.targetType===e&&c.target===n);const p=c=>c.value.trim()==="";if(l){const c=l.rules.find(d=>d.id===r.id);if(c)p(r)?l.rules=l.rules.filter(d=>d.id!==r.id):(Object.assign(c,r),i==="validate"&&o.type==="form-group"&&(c.elementId=o.id));else{if(p(r))return null;l.rules=l.rules||[],l.rules.push(r)}}else{if(p(r))return null;l={target:`${n}`,rules:[r],targetType:e}}return l}getExpressionEditorOptions(o,e,t,i){return t.reduce((n,r)=>{var l,p;const a=e==="Field"?(l=o==null?void 0:o.binding)==null?void 0:l.field:o.id;return n[r]={hide:e==="Field"?!!((p=o==null?void 0:o.binding)!=null&&p.field):!1,description:"",title:this.expressionNames[r],type:"string",$converter:this.getExpressionConverter(a),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[r]}编辑器`,showMessage:r==="validate"||r==="dataPicking"||r==="required",showMessageType:r==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(o,r,e),onSubmitModal:c=>{const d=this.updateExpression(o,e,c,r);if(i){const m=this.buildRule(a,c,r);i(m)}return d}}},n},{})}getExpressionInfo(o,e,t){const i=e==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,t),r={value:n&&n.value,targetId:i,targetType:e,expressionType:t};return n&&n.message&&(r.message=n.message),r}getExpressionConfig(o,e,t=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!o.binding,properties:{...this.getExpressionEditorOptions(o,e,t,i)}}}getExpressionOptions(o,e,t){const i=this.getExpressionInfo(o,e,t);return{dialogTitle:`${this.expressionNames[t]}编辑器`,singleExpand:!1,showMessage:t==="required",beforeOpen:()=>this.onBeforeOpenExpression(o,t,e),expressionInfo:i}}}class q{constructor(o,e){f(this,"componentId");f(this,"viewModelId");f(this,"eventsEditorUtils");f(this,"formSchemaUtils");f(this,"formMetadataConverter");f(this,"designViewModelUtils");f(this,"designViewModelField");f(this,"controlCreatorUtils");f(this,"designerHostService");f(this,"designerContext");f(this,"schemaService",null);f(this,"metadataService",null);f(this,"propertyConfig",{type:"object",categories:{}});var t;this.componentId=o,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((t=this.formSchemaUtils)==null?void 0:t.getViewModelIdByComponentId(o))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var o,e;return(e=(o=this.designerContext)==null?void 0:o.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var o;return(o=this.schemaService)==null?void 0:o.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(o){var t;const e=o.binding&&o.binding.type==="Form"&&o.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(n=>n.id===e)}o.updateOn=(t=this.designViewModelField)==null?void 0:t.updateOn}}getBasicPropConfig(o){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:o.type,name:s.DgControl[o.type]&&s.DgControl[o.type].name}]}}}}}getAppearanceConfig(o=null,e={},t){const i={title:"外观",description:"Appearance"},n={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const r in e)n[r]=Object.assign(n[r]||{},e[r]);return{...i,properties:{...n},setPropertyRelates(r,a){if(r){switch(r&&r.propertyID){case"class":case"style":{s.canvasChanged.value++;break}}t&&t(r,o,a)}}}}getPropertyEditorParams(o,e=[],t="visible",i={},n={},r=""){const{getVariables:a,getControlName:l,getStateMachines:p}=$(this.designerHostService),c=this.getRealTargetType(o),d=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],m={type:"property-editor",propertyTypes:d};return d.map(y=>{switch(y){case"Const":Object.assign(m,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":m.expressionConfig=this.getExpressionOptions(o,c,r||t);break;case"StateMachine":m.stateMachines=p();break;case"Variable":Object.assign(m,{controlName:l(o),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:u=>{u.value=a(this.viewModelId)}},n),this.designerContext.designerMode==="PC_RTC"&&(m.newVariablePrefix="ext_"+m.newVariablePrefix);break}}),m}getVisibleProperty(o,e=""){var n;let t=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?t=["Const","Expression"]:e==="form-group"&&!((n=o.binding)!=null&&n.field)?t=["Const","Variable","StateMachine"]:(e==="dataGrid"||e==="treeGrid"||e==="wizard")&&(t=["Const","Variable","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(o,t,"visible")}}}getBehaviorConfig(o,e="",t={},i){const n={title:"行为",description:""},r=this.getVisibleProperty(o,e);for(const l in t)r[l]=Object.assign(r[l]||{},t[l]);const a=this;return{...n,properties:{...r},setPropertyRelates(l,p){if(l){switch(l.propertyID){case"disabled":case"readonly":case"visible":a.afterMutilEditorChanged(o,l);break}i&&i(l,p)}}}}afterMutilEditorChanged(o,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,o)}updateElementByParentContainer(o,e){const t=e&&e.parent&&e.parent.schema;if(!t)return;const i=t.contents.findIndex(r=>r.id===o),n=L.cloneDeep(t.contents[i]);t.contents.splice(i,1),t.contents.splice(i,0,n),s.refreshCanvas()}addNewVariableToViewModel(o,e){const t=o.propertyValue;if(!(t&&typeof t=="object")||!(t.type==="Variable"&&t.isNewVariable))return;const r={id:t.field,category:"locale",code:t.fullPath,name:t.fullPath,type:t.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete t.newVariableType,delete t.isNewVariable,this.formSchemaUtils.getVariableByCode(r.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(r)}updateExpressionValue(o){const e=o.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:n,expressionInfo:r}=e,{targetId:a,targetType:l,expressionType:p,value:c,message:d}=r,m=this.formSchemaUtils.getModule();m.expressions=m.expressions||[];const{expressions:y}=m;let u=y.find(C=>C.target===a);u||(u={target:a,rules:[],targetType:l},y.push(u));const g=u.rules.find(C=>C.type===p);if(g)g.value=c,g.message=d;else{const C={id:n,type:p,value:c,message:d};u.rules.push(C)}delete e.expressionInfo}clearExpression(o,e){const t=o.propertyValue;if(t&&t.type==="Expression")return;const n=o.propertyID,r=this.formSchemaUtils.getExpressions(),a=e.binding?e.binding.field:e.id,l=r.find(p=>p.target===a);!l||!l.rules||(l.rules=l.rules.filter(p=>p.type!==n))}getExpressionOptions(o,e,t){return new N(this.formSchemaUtils).getExpressionOptions(o,e,t)}getRealTargetType(o){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(o.type)>-1?"Button":o.binding&&o.binding.field?"Field":"Container"}createBaseEventProperty(o){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:o,viewSourceHandle:t=>{var i;((i=t.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(t)}}},e}}const M=class M{static getEditorTypesByMDataType(o,e=!1,t=""){if(e)return[{key:s.DgControl["language-textbox"].type,value:s.DgControl["language-textbox"].name}];let i=M.fieldControlTypeMapping[o];if(t==="data-grid-column"&&(i!=null&&i.length)){const n=[s.DgControl["check-group"].type,s.DgControl["radio-group"].type,s.DgControl.image.type,s.DgControl["rich-text-editor"].type];i=i.filter(r=>!n.includes(r.key))}return i}static getAllInputTypes(){const o=[];for(const e in M.fieldControlTypeMapping)M.fieldControlTypeMapping[e].forEach(t=>{o.find(i=>i.key===t.key&&i.value===t.value)||o.push({key:t.key,value:t.value})});return o}static mappingDomPropAndSchemaProp(o,e){var n;const t=(n=o.editor)==null?void 0:n.type,i=[];return(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(t===s.DgControl["input-group"].type||t===s.DgControl.textarea.type||t===s.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),t===s.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(t===s.DgControl["combo-list"].type||t===s.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),t===s.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),t===s.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),t===s.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};f(M,"fieldControlTypeMapping",{String:[{key:s.DgControl["input-group"].type,value:s.DgControl["input-group"].name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name},{key:s.DgControl["check-group"].type,value:s.DgControl["check-group"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl["time-picker"].type,value:s.DgControl["time-picker"].name}],Text:[{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["rich-text-editor"].type,value:s.DgControl["rich-text-editor"].name}],Decimal:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Integer:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Number:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],BigNumber:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Date:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],DateTime:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],Boolean:[{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],Enum:[{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}],Object:[{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}]});let P=M;var v=(h=>(h.Form="Form",h.Variable="Variable",h))(v||{});class R{constructor(){f(this,"label","");f(this,"id","");f(this,"columnInSM",12);f(this,"columnInMD",6);f(this,"columnInLG",3);f(this,"columnInEL",2);f(this,"displayWidthInSM",1);f(this,"displayWidthInMD",1);f(this,"displayWidthInLG",1);f(this,"displayWidthInEL",1);f(this,"displayColumnCountAtBreakPoint","md");f(this,"tagRow",0);f(this,"showTopBorder",0);f(this,"group",1);f(this,"isSupportedClass",!0);f(this,"fieldSetId","")}}function G(h){let o,e;const t=new Map;let i=[];function n(c,d){const y=c.split(" ").filter(I=>I.startsWith("col-"));if(y.length===0){d.isSupportedClass=!1;return}let u=y.find(I=>/^col-([1-9]|10|11|12)$/.test(I)),g=y.find(I=>/^col-md-([1-9]|10|11|12)$/.test(I)),C=y.find(I=>/^col-xl-([1-9]|10|11|12)$/.test(I)),E=y.find(I=>/^col-el-([1-9]|10|11|12)$/.test(I));u=u||"col-12",d.columnInSM=parseInt(u.replace("col-",""),10),d.displayWidthInSM=d.columnInSM/12,d.displayWidthInSM!==1&&(d.isSupportedClass=!1),g=g||"col-md-"+d.columnInSM,d.columnInMD=parseInt(g.replace("col-md-",""),10),d.displayWidthInMD=d.columnInMD/6,[1,2].includes(d.displayWidthInMD)||(d.isSupportedClass=!1),C=C||"col-xl-"+d.columnInMD,d.columnInLG=parseInt(C.replace("col-xl-",""),10),d.displayWidthInLG=d.columnInLG/3,[1,2,3,4].includes(d.displayWidthInLG)||(d.isSupportedClass=!1),E=E||"col-el-"+d.columnInLG,d.columnInEL=parseInt(E.replace("col-el-",""),10),d.displayWidthInEL=d.columnInEL/2,[1,2,3,4,5,6].includes(d.displayWidthInEL)||(d.isSupportedClass=!1)}function r(c,d,m,y=!1){let u=!1;c.contents.forEach(g=>{if(g.type==="fieldset"){m+=1,r(g,d,m,!0),u=!0;return}u&&(m+=1,u=!1);const C=g.appearance&&g.appearance.class,E=new R;C?n(C,E):E.isSupportedClass=!1,E.label=g.label||g.id,E.id=g.id,E.group=m,y&&(E.fieldSetId=c.id),e===g.id&&(o=m),t.set(g.id,g),d.push(E)})}function a(c){const d=h.getComponentById(c);if(!d||!d.componentType||!d.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const m=h.selectNode(d,y=>y.type===s.DgControl["response-form"].type);return!m||!m.contents||m.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:m}}function l(c,d){d=d||c.id;const{result:m,message:y,formNode:u}=a(d);if(!m)return{result:m,message:y};e=c.id,i=[],t.clear();const g=u.contents[0].type===s.DgControl.fieldset.type?0:1;r(u,i,g);const C=i.find(I=>!I.isSupportedClass);return{defaultState:{defaultGroupNumber:o||1,model:C?"customize":"standard"},importData:i}}function p(c,d){d=d;const{result:m,formNode:y}=a(d);if(!m)return"";const u=[];return c.forEach(g=>{var I;const C=t.get(g.id),E=C.appearance&&C.appearance.class;if(E){const S=E.split(" ").filter(K=>!K.startsWith("col-")),k="col-"+g.columnInSM,J="col-md-"+g.columnInMD,Q="col-xl-"+g.columnInLG,Y="col-el-"+g.columnInEL,Z=[k,J,Q,Y].concat(S);C.appearance.class=Z.join(" ")}if(g.fieldSetId){const B=y.contents.find(k=>k.id===g.fieldSetId),S=u.find(k=>k.id===g.fieldSetId);S?(I=S.contents)==null||I.push(C):(u.push(B),B.contents=[C])}else u.push(C)}),y.contents=u,y.id}return{checkCanFindFormNode:a,checkCanOpenLayoutEditor:l,changeFormControlsByResponseLayoutConfig:p,getResonseFormLayoutConfig:r}}const H=h=>x.createVNode(x.Fragment,null,[x.createVNode("h5",null,[x.createTextVNode("代码示例")]),x.createVNode("pre",{style:"background-color: #f5f5f5; padding: 10px; border-radius: 5px;"},[x.createVNode("code",null,[`
1
+ (function(b,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("../../components/time-picker/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("vue"),require("../../components/button-edit/index.umd.js"),require("../../components/designer-canvas/index.umd.js"),require("lodash-es"),require("../../components/common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/time-picker/index.umd.js","../../components/dynamic-resolver/index.umd.js","vue","../../components/button-edit/index.umd.js","../../components/designer-canvas/index.umd.js","lodash-es","../../components/common/index.umd.js"],F):(b=typeof globalThis<"u"?globalThis:b||self,F(b["time-picker"]={},b.FTimePicker,b.dynamicResolver,b.Vue,b.buttonEdit,b.designerCanvas,b.LodashES,b.common))})(this,function(b,F,V,x,N,s,U,T){"use strict";var ee=Object.defineProperty;var te=(b,F,V)=>F in b?ee(b,F,{enumerable:!0,configurable:!0,writable:!0,value:V}):b[F]=V;var f=(b,F,V)=>te(b,typeof F!="symbol"?F+"":F,V);const A={modelValue:{type:String,default:""},hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},secondStep:{type:Number,default:1},popupClassName:{type:String,default:""},placeholder:{type:String,default:"请选择时间"},placement:{type:String,default:"auto"},defaultOpenValue:{type:Date,default:null},format:{type:String,default:"HH:mm:ss"},isOpen:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!1},use12Hours:{type:Boolean,default:!1},disabledHours:{type:Function,default:null},disabledMinutes:{type:Function,default:null},disabledSeconds:{type:Function,default:null},hideDisabledElements:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}};function $(y){const{formSchemaUtils:o,formStateMachineUtils:e}=y;function t(l,p=""){return{path:p+l.code,field:l.id,fullPath:l.code}}function i(l,p=""){const c=o.getViewModelById(l);return c?c.states.map(d=>t(d,p)):[]}function n(l){const p=o.getRootViewModelId(),c=i(l);if(l===p)return c;const d=i(p,"root-component.");return[...c,...d]}function r(l){return l.binding&&l.binding.path||l.id||""}function a(){return e&&e.getRenderStates()||[]}return{getVariables:n,getControlName:r,getStateMachines:a}}class L{constructor(o){f(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);f(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});f(this,"getExpressionConverter",(o,e)=>({convertFrom:(t,i,n,r)=>{const a=n.getExpressionRuleValue(o,e||i);return a&&a.value||""},convertTo:(t,i,n,r,a)=>{var l;if(i==="dataPicking"&&(n!=null&&n.target)){const p=`${n.target}_dataPicking`;((l=n.rules)==null?void 0:l.some(d=>d.id===p&&d.value))?t.dictPickingExpressionId=p:delete t.dictPickingExpressionId}r.updateExpression(n)}}));this.formSchemaService=o}getExpressionRule(o,e){const t=this.formSchemaService.getExpressions();if(!t)return"";const i=t.find(r=>r.target===o);if(!i)return"";const n=i.rules.find(r=>r.type===e);return n||""}getContextFormVariables(){const{module:o}=this.formSchemaService.getFormSchema();if(!o.viewmodels||o.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),t=this.formSchemaService.getViewModelById(e);if(!t||!t.states||t.states.length===0)return[];const i=[];return t.states.filter(n=>n.category==="remote").forEach(n=>{i.push({key:n.code,name:n.name,description:n.name,category:n.category})}),i}createTreeNode(o,e,t="label"){return{id:o.id,name:o.name,bindingPath:o[t],parents:e,type:"field"}}buildEntityFieldsTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var a;const n=this.createTreeNode(i,e);let r=[];(a=i.type)!=null&&a.fields&&(r=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),t.push({data:n,children:r,expanded:!0})}),t}buildChildEntityTreeData(o=null,e){const t=[];return o==null||o.forEach(i=>{var l,p;const n=this.createTreeNode(i,e);n.type="entity";const r=this.buildEntityFieldsTreeData((l=i.type)==null?void 0:l.fields,[...e,i.label]),a=this.buildChildEntityTreeData((p=i.type)==null?void 0:p.entities,[...e,i.label]);a!=null&&a.length&&(r==null||r.push(...a)),t.push({data:n,children:r||[],expanded:!0})}),t}getEntitiesTreeData(){const o=this.formSchemaService.getSchemaEntities();if(!(o!=null&&o.length))return[];const e=o[0];if(!(e!=null&&e.type))return[];const t=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(t==null||t.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:t||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(o,e,t){const i=t==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,e),r=this.getEntitiesAndVariables(),a={message:["validate","required","dataPicking"].includes(e)&&n?n.message:"",...r};return n.messageType!=null&&(a.messageType=n.messageType),a}buildRule(o,e,t,i){const{expression:n,message:r,messageType:a}=e,l={id:`${o}_${t}`,type:t,value:n};return(t==="validate"||t==="dataPicking"||t==="required")&&(l.message=r),t==="dataPicking"&&(l.messageType=a),t==="validate"&&i&&(l.elementId=i),l}getExpressionData(){const{expressions:o}=this.formSchemaService.getFormSchema().module;return o||[]}updateExpression(o,e,t,i){const n=e==="Field"?o.binding.field:o.id,r=this.buildRule(n,t,i,o.type==="form-group"?o.id:"");let l=this.getExpressionData().find(c=>c.targetType===e&&c.target===n);const p=c=>c.value.trim()==="";if(l){const c=l.rules.find(d=>d.id===r.id);if(c)p(r)?l.rules=l.rules.filter(d=>d.id!==r.id):(Object.assign(c,r),i==="validate"&&o.type==="form-group"&&(c.elementId=o.id));else{if(p(r))return null;l.rules=l.rules||[],l.rules.push(r)}}else{if(p(r))return null;l={target:`${n}`,rules:[r],targetType:e}}return l}getExpressionEditorOptions(o,e,t,i){return t.reduce((n,r)=>{var l,p;const a=e==="Field"?(l=o==null?void 0:o.binding)==null?void 0:l.field:o.id;return n[r]={hide:e==="Field"?!!((p=o==null?void 0:o.binding)!=null&&p.field):!1,description:"",title:this.expressionNames[r],type:"string",$converter:this.getExpressionConverter(a),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[r]}编辑器`,showMessage:r==="validate"||r==="dataPicking"||r==="required",showMessageType:r==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(o,r,e),onSubmitModal:c=>{const d=this.updateExpression(o,e,c,r);if(i){const m=this.buildRule(a,c,r);i(m)}return d}}},n},{})}getExpressionInfo(o,e,t){const i=e==="Field"?o.binding.field:o.id,n=this.getExpressionRule(i,t),r={value:n&&n.value,targetId:i,targetType:e,expressionType:t};return n&&n.message&&(r.message=n.message),r}getExpressionConfig(o,e,t=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!o.binding,properties:{...this.getExpressionEditorOptions(o,e,t,i)}}}getExpressionOptions(o,e,t){const i=this.getExpressionInfo(o,e,t);return{dialogTitle:`${this.expressionNames[t]}编辑器`,singleExpand:!1,showMessage:t==="required",beforeOpen:()=>this.onBeforeOpenExpression(o,t,e),expressionInfo:i}}}class q{constructor(o,e){f(this,"componentId");f(this,"viewModelId");f(this,"eventsEditorUtils");f(this,"formSchemaUtils");f(this,"formMetadataConverter");f(this,"designViewModelUtils");f(this,"designViewModelField");f(this,"controlCreatorUtils");f(this,"designerHostService");f(this,"designerContext");f(this,"schemaService",null);f(this,"metadataService",null);f(this,"propertyConfig",{type:"object",categories:{}});var t;this.componentId=o,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((t=this.formSchemaUtils)==null?void 0:t.getViewModelIdByComponentId(o))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var o,e;return(e=(o=this.designerContext)==null?void 0:o.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var o;return(o=this.schemaService)==null?void 0:o.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(o){var t;const e=o.binding&&o.binding.type==="Form"&&o.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(n=>n.id===e)}o.updateOn=(t=this.designViewModelField)==null?void 0:t.updateOn}}getBasicPropConfig(o){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:o.type,name:s.DgControl[o.type]&&s.DgControl[o.type].name}]}}}}}getAppearanceConfig(o=null,e={},t){const i={title:"外观",description:"Appearance"},n={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const r in e)n[r]=Object.assign(n[r]||{},e[r]);return{...i,properties:{...n},setPropertyRelates(r,a){if(r){switch(r&&r.propertyID){case"class":case"style":{s.canvasChanged.value++;break}}t&&t(r,o,a)}}}}getPropertyEditorParams(o,e=[],t="visible",i={},n={},r=""){const{getVariables:a,getControlName:l,getStateMachines:p}=$(this.designerHostService),c=this.getRealTargetType(o),d=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],m={type:"property-editor",propertyTypes:d};return d.map(h=>{switch(h){case"Const":Object.assign(m,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":m.expressionConfig=this.getExpressionOptions(o,c,r||t);break;case"StateMachine":m.stateMachines=p();break;case"Variable":Object.assign(m,{controlName:l(o),newVariablePrefix:"is",newVariableType:"Boolean",variables:a(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:u=>{u.value=a(this.viewModelId)}},n),this.designerContext.designerMode==="PC_RTC"&&(m.newVariablePrefix="ext_"+m.newVariablePrefix);break}}),m}getVisibleProperty(o,e=""){var n;let t=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?t=["Const","Expression"]:e==="form-group"&&!((n=o.binding)!=null&&n.field)?t=["Const","Variable","StateMachine"]:(e==="dataGrid"||e==="treeGrid"||e==="wizard")&&(t=["Const","Variable","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(o,t,"visible")}}}getBehaviorConfig(o,e="",t={},i){const n={title:"行为",description:""},r=this.getVisibleProperty(o,e);for(const l in t)r[l]=Object.assign(r[l]||{},t[l]);const a=this;return{...n,properties:{...r},setPropertyRelates(l,p){if(l){switch(l.propertyID){case"disabled":case"readonly":case"visible":a.afterMutilEditorChanged(o,l);break}i&&i(l,p)}}}}afterMutilEditorChanged(o,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,o)}updateElementByParentContainer(o,e){const t=e&&e.parent&&e.parent.schema;if(!t)return;const i=t.contents.findIndex(r=>r.id===o),n=U.cloneDeep(t.contents[i]);t.contents.splice(i,1),t.contents.splice(i,0,n),s.refreshCanvas()}addNewVariableToViewModel(o,e){const t=o.propertyValue;if(!(t&&typeof t=="object")||!(t.type==="Variable"&&t.isNewVariable))return;const r={id:t.field,category:"locale",code:t.fullPath,name:t.fullPath,type:t.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete t.newVariableType,delete t.isNewVariable,this.formSchemaUtils.getVariableByCode(r.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(r)}updateExpressionValue(o){const e=o.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:n,expressionInfo:r}=e,{targetId:a,targetType:l,expressionType:p,value:c,message:d}=r,m=this.formSchemaUtils.getModule();m.expressions=m.expressions||[];const{expressions:h}=m;let u=h.find(C=>C.target===a);u||(u={target:a,rules:[],targetType:l},h.push(u));const g=u.rules.find(C=>C.type===p);if(g)g.value=c,g.message=d;else{const C={id:n,type:p,value:c,message:d};u.rules.push(C)}delete e.expressionInfo}clearExpression(o,e){const t=o.propertyValue;if(t&&t.type==="Expression")return;const n=o.propertyID,r=this.formSchemaUtils.getExpressions(),a=e.binding?e.binding.field:e.id,l=r.find(p=>p.target===a);!l||!l.rules||(l.rules=l.rules.filter(p=>p.type!==n))}getExpressionOptions(o,e,t){return new L(this.formSchemaUtils).getExpressionOptions(o,e,t)}getRealTargetType(o){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(o.type)>-1?"Button":o.binding&&o.binding.field?"Field":"Container"}createBaseEventProperty(o){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:o,viewSourceHandle:t=>{var i;((i=t.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(t)}}},e}}const M=class M{static getEditorTypesByMDataType(o,e=!1,t=""){if(e)return[{key:s.DgControl["language-textbox"].type,value:s.DgControl["language-textbox"].name}];let i=M.fieldControlTypeMapping[o];if(t==="data-grid-column"&&(i!=null&&i.length)){const n=[s.DgControl["check-group"].type,s.DgControl["radio-group"].type,s.DgControl.image.type,s.DgControl["rich-text-editor"].type];i=i.filter(r=>!n.includes(r.key))}return i}static getAllInputTypes(){const o=[];for(const e in M.fieldControlTypeMapping)M.fieldControlTypeMapping[e].forEach(t=>{o.find(i=>i.key===t.key&&i.value===t.value)||o.push({key:t.key,value:t.value})});return o}static mappingDomPropAndSchemaProp(o,e){var n;const t=(n=o.editor)==null?void 0:n.type,i=[];return(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(t===s.DgControl["input-group"].type||t===s.DgControl.textarea.type||t===s.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),t===s.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(t===s.DgControl["combo-list"].type||t===s.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),t===s.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),t===s.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),t===s.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(o.type===s.DgControl["data-grid-column"].type||o.type===s.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};f(M,"fieldControlTypeMapping",{String:[{key:s.DgControl["input-group"].type,value:s.DgControl["input-group"].name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name},{key:s.DgControl["check-group"].type,value:s.DgControl["check-group"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl["time-picker"].type,value:s.DgControl["time-picker"].name}],Text:[{key:s.DgControl.textarea.type,value:s.DgControl.textarea.name},{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl.image.type,value:s.DgControl.image.name},{key:s.DgControl.avatar.type,value:s.DgControl.avatar.name},{key:s.DgControl["rich-text-editor"].type,value:s.DgControl["rich-text-editor"].name}],Decimal:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Integer:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Number:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name},{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],BigNumber:[{key:s.DgControl["number-spinner"].type,value:s.DgControl["number-spinner"].name}],Date:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],DateTime:[{key:s.DgControl["date-picker"].type,value:s.DgControl["date-picker"].name}],Boolean:[{key:s.DgControl.switch.type,value:s.DgControl.switch.name},{key:s.DgControl["check-box"].type,value:s.DgControl["check-box"].name}],Enum:[{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}],Object:[{key:s.DgControl.lookup.type,value:s.DgControl.lookup.name},{key:s.DgControl["combo-list"].type,value:s.DgControl["combo-list"].name},{key:s.DgControl["radio-group"].type,value:s.DgControl["radio-group"].name}]});let v=M;var P=(y=>(y.Form="Form",y.Variable="Variable",y))(P||{});class R{constructor(){f(this,"label","");f(this,"id","");f(this,"columnInSM",12);f(this,"columnInMD",6);f(this,"columnInLG",3);f(this,"columnInEL",2);f(this,"displayWidthInSM",1);f(this,"displayWidthInMD",1);f(this,"displayWidthInLG",1);f(this,"displayWidthInEL",1);f(this,"displayColumnCountAtBreakPoint","md");f(this,"tagRow",0);f(this,"showTopBorder",0);f(this,"group",1);f(this,"isSupportedClass",!0);f(this,"fieldSetId","")}}function G(y){let o,e;const t=new Map;let i=[];function n(c,d){const h=c.split(" ").filter(I=>I.startsWith("col-"));if(h.length===0){d.isSupportedClass=!1;return}let u=h.find(I=>/^col-([1-9]|10|11|12)$/.test(I)),g=h.find(I=>/^col-md-([1-9]|10|11|12)$/.test(I)),C=h.find(I=>/^col-xl-([1-9]|10|11|12)$/.test(I)),E=h.find(I=>/^col-el-([1-9]|10|11|12)$/.test(I));u=u||"col-12",d.columnInSM=parseInt(u.replace("col-",""),10),d.displayWidthInSM=d.columnInSM/12,d.displayWidthInSM!==1&&(d.isSupportedClass=!1),g=g||"col-md-"+d.columnInSM,d.columnInMD=parseInt(g.replace("col-md-",""),10),d.displayWidthInMD=d.columnInMD/6,[1,2].includes(d.displayWidthInMD)||(d.isSupportedClass=!1),C=C||"col-xl-"+d.columnInMD,d.columnInLG=parseInt(C.replace("col-xl-",""),10),d.displayWidthInLG=d.columnInLG/3,[1,2,3,4].includes(d.displayWidthInLG)||(d.isSupportedClass=!1),E=E||"col-el-"+d.columnInLG,d.columnInEL=parseInt(E.replace("col-el-",""),10),d.displayWidthInEL=d.columnInEL/2,[1,2,3,4,5,6].includes(d.displayWidthInEL)||(d.isSupportedClass=!1)}function r(c,d,m,h=!1){let u=!1;c.contents.forEach(g=>{if(g.type==="fieldset"){m+=1,r(g,d,m,!0),u=!0;return}u&&(m+=1,u=!1);const C=g.appearance&&g.appearance.class,E=new R;C?n(C,E):E.isSupportedClass=!1,E.label=g.label||g.id,E.id=g.id,E.group=m,h&&(E.fieldSetId=c.id),e===g.id&&(o=m),t.set(g.id,g),d.push(E)})}function a(c){const d=y.getComponentById(c);if(!d||!d.componentType||!d.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const m=y.selectNode(d,h=>h.type===s.DgControl["response-form"].type);return!m||!m.contents||m.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:m}}function l(c,d){d=d||c.id;const{result:m,message:h,formNode:u}=a(d);if(!m)return{result:m,message:h};e=c.id,i=[],t.clear();const g=u.contents[0].type===s.DgControl.fieldset.type?0:1;r(u,i,g);const C=i.find(I=>!I.isSupportedClass);return{defaultState:{defaultGroupNumber:o||1,model:C?"customize":"standard"},importData:i}}function p(c,d){d=d;const{result:m,formNode:h}=a(d);if(!m)return"";const u=[];return c.forEach(g=>{var I;const C=t.get(g.id),E=C.appearance&&C.appearance.class;if(E){const S=E.split(" ").filter(K=>!K.startsWith("col-")),w="col-"+g.columnInSM,J="col-md-"+g.columnInMD,Q="col-xl-"+g.columnInLG,Y="col-el-"+g.columnInEL,Z=[w,J,Q,Y].concat(S);C.appearance.class=Z.join(" ")}if(g.fieldSetId){const B=h.contents.find(w=>w.id===g.fieldSetId),S=u.find(w=>w.id===g.fieldSetId);S?(I=S.contents)==null||I.push(C):(u.push(B),B.contents=[C])}else u.push(C)}),h.contents=u,h.id}return{checkCanFindFormNode:a,checkCanOpenLayoutEditor:l,changeFormControlsByResponseLayoutConfig:p,getResonseFormLayoutConfig:r}}const H=y=>x.createVNode(x.Fragment,null,[x.createVNode("h5",null,[x.createTextVNode("代码示例")]),x.createVNode("pre",{style:"background-color: #f5f5f5; padding: 10px; border-radius: 5px;"},[x.createVNode("code",null,[`
2
2
  <h3>Tips:</h3>
3
3
  <span style="color: blue;">
4
4
  自定义提示内容
5
5
  </span>
6
- `])])]);class O extends q{constructor(e,t){super(e,t);f(this,"responseLayoutEditorFunction");f(this,"bindingVarible");f(this,"formGroupEvents",[{label:"fieldValueChanging",name:"绑定字段值变化前事件"},{label:"fieldValueChanged",name:"绑定字段值变化后事件"},{label:"onClickLabel",name:"点击标签事件"}]);f(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=G(this.formSchemaUtils)}getCommonPropertyConfig(e,t,i="Card"){if(this.propertyConfig.categories.basic=this.getBasicProperties(e,t,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group"),i==="Card"){const n=this.getTipsConfig(e);this.propertyConfig.categories.behavior.properties={...this.propertyConfig.categories.behavior.properties,...n},["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&(this.propertyConfig.categories.expansion=this.getExpandProperties(e))}}getPropertyConfig(e,t){return this.getCommonPropertyConfig(e,t,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,t){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,t,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,t,i="Card"){var p;const n=this;this.setDesignViewModelField(e);const{canChangeControlType:r,editorTypeList:a}=this.getAvailableEditorType(e),l={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:a,readonly:!r}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((p=e.editor)==null?void 0:p.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!0},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(c,d,m){if(c)switch(c&&c.propertyID){case"type":{n.changeControlType(e,c,t);break}case"label":{c.needRefreshControlTree=!0;break}case"binding":{n.changeBindingField(e,c,m);break}}}};return i.toLocaleLowerCase()!=="card"&&delete l.properties.showLabelType,l}getExpandProperties(e){const t=this,i=["Const","Variable"],n=this.getPropertyEditorParams(e,i,"expandable"),r=this.getPropertyEditorParams(e,i,"expandDisabled");return{description:"Expand Information",title:"扩展区域",properties:{expandable:{description:"是否启用扩展区域",title:"启用扩展区域",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:n},expandMode:{description:"扩展模式 text | button",title:"扩展模式",type:"enum",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:{data:[{id:"text",name:"静态文本"},{id:"button",name:"交互按钮"}]},defaultValue:"text",visible:!!e.editor.expandable},expandContent:{$converter:"/converter/property-editor.converter",description:"扩展内容",title:"扩展内容",type:"string",visible:!!e.editor.expandable},expandDisabled:{$converter:"/converter/property-editor.converter",description:"是否隐藏扩展区域",title:"隐藏扩展区域",editor:r,visible:!!e.editor.expandable}},setPropertyRelates(l,p){if(l)switch(l.propertyID){case"expandable":case"expandDisabled":t.afterMutilEditorChanged(e,l);break}}}}checkCanChangeControlType(e,t){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==T.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var n;const t=this.checkCanChangeControlType(e,this.viewModelId);if(!t)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((n=s.DgControl[e.editor.type])==null?void 0:n.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===T.FormSchemaEntityField$Type.SimpleField?i=P.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=P.getEditorTypesByMDataType(this.bindingVarible.type,!1)),{canChangeControlType:t,editorTypeList:i}}changeBindingField(e,t,i){t.needRefreshEntityTree=!0}getAppearanceProperties(e,t){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(n,r){if(n)switch(n&&n.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(n.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,t),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(n.propertyValue,e.id,this.componentId),s.canvasChanged.value++;break;case"style":{s.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,t,i){const n=t.propertyValue,r=i&&i.parent&&i.parent.schema;if(!r)return;const a=r.contents.findIndex(c=>c.id===e.id);if(a===-1)return;const l=r.contents[a];let p;if(this.designViewModelField){const m=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(u=>u.id===this.designViewModelField.id).fieldSchema||{};m.editor||(m.editor={}),m.editor.$type=n,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,m,!1),p=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,n)}p||(p=this.controlCreatorUtils.createFormGroupWithoutField(n)),Object.assign(p,{id:l.id,appearance:l.appearance,size:l.size,label:l.label,binding:l.binding}),Object.prototype.hasOwnProperty.call(l,"visible")&&Object.assign(p,{visible:l.visible}),l.editor&&["readonly","required","placeholder"].map(c=>{Object.prototype.hasOwnProperty.call(l.editor,c)&&(p.editor[c]=l.editor[c])}),i!=null&&i.updateContextSchema?i.updateContextSchema(p):(i.schema=Object.assign(l,p),Object.assign(e,p)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(c=>c.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(c=>c.classList.remove("dgComponentFocused")),s.canvasChanged.value++,x.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getTipsConfig(e){return["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","textarea","rich-text-editor"].includes(e.editor.type)?{enableTips:{refreshPanelAfterChanged:!0,description:"",title:"启用提示",type:"boolean",default:!1},tipsContent:{description:"提示内容",title:"提示内容",type:"string",editor:{type:"code-editor",language:"html",leftTemplate:H},visible:!!e.enableTips}}:{}}getComponentConfig(e,t={},i={},n){var m,y;const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},t),a=(m=e.binding)!=null&&m.field?[]:["Const","Variable","StateMachine"],l=this.getPropertyEditorParams(e,a,"readonly"),p=this.getPropertyEditorParams(e,a,"required"),c={readonly:{description:"",title:"只读",editor:l},required:{description:"",title:"必填",type:"boolean",editor:p,visible:!!((y=e.binding)!=null&&y.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const u in i)c[u]=Object.assign(c[u]||{},i[u]);const d=this;return{...r,properties:{...c},setPropertyRelates(u,g){if(u){switch(u.propertyID){case"readonly":case"required":d.afterMutilEditorChanged(e,u);break}n&&n.bind(d)(u,e,g)}}}}updateUnifiedLayoutAfterControlChanged(e,t,i){const n=e.split(" ");let r=n.find(d=>/^col-([1-9]|10|11|12)$/.test(d)),a=n.find(d=>/^col-md-([1-9]|10|11|12)$/.test(d)),l=n.find(d=>/^col-xl-([1-9]|10|11|12)$/.test(d)),p=n.find(d=>/^col-el-([1-9]|10|11|12)$/.test(d));r=r||"col-12",a=a||"col-md-"+r.replace("col-",""),l=l||"col-xl-"+a.replace("col-md-",""),p=p||"col-el-"+l.replace("col-xl-","");const c={id:t,columnInSM:parseInt(r.replace("col-",""),10),columnInMD:parseInt(a.replace("col-md-",""),10),columnInLG:parseInt(l.replace("col-xl-",""),10),columnInEL:parseInt(p.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,c)}updateUnifiedLayoutAfterResponseLayoutChanged(e,t){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const n=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,n,1),t){const u=n.find(g=>g.id===t.id);Object.assign(u||{},t)}const r=n.map(u=>u.columnInSM),a=n.map(u=>u.columnInMD),l=n.map(u=>u.columnInLG),p=n.map(u=>u.columnInEL),c=this.checkIsUniqueColumn(r)?r[0]:null,d=this.checkIsUniqueColumn(a)?a[0]:null,m=this.checkIsUniqueColumn(l)?l[0]:null,y=this.checkIsUniqueColumn(p)?p[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:c,uniqueColClassInMD:d,uniqueColClassInLG:m,uniqueColClassInEL:y})}checkIsUniqueColumn(e){const t=new Set(e);return Array.from(t).length===1}getItemCollectionEditor(e,t,i){return t=t||"value",i=i||"name",{editor:{columns:[{field:t,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:t,nameField:i,requiredFields:[t,i],uniqueFields:[t,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===T.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,t){e.binding&&e.binding.type===v.Form&&e.binding.field?(t.find(i=>i.label==="fieldValueChanging"),t.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):t=t.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case v.Form:return e.binding.path||e.type;case v.Variable:return e.binding.fullPath||e.type}return e.type}getEventPropertyConfig(e,t="card",i,n){const r=this;let a=[...this.formGroupEvents];if(["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&a.push({lable:"onClear",name:"清空事件"}),i&&(a=a.concat(i)),a.length===0)return{title:"事件",hideTitle:!0,properties:{},tabId:"commands",tabName:"交互",hide:!0};this.appendFieldValueChangeEvents(e,a);const p=r.eventsEditorUtils.formProperties(e,r.viewModelId,a);return{title:"事件",hideTitle:!0,properties:r.createBaseEventProperty(p),tabId:"commands",tabName:"交互",setPropertyRelates(m,y){const u=m.propertyValue;delete e[r.viewModelId],u&&(u.setPropertyRelates=this.setPropertyRelates,u.controlInfo={type:r.getControlMethodType(e),name:e.title},r.eventsEditorUtils.saveRelatedParameters(e,r.viewModelId,u.events,u)),n&&n(m,y,u);const g=r.designViewModelUtils.getDgViewModel(r.viewModelId);g&&r.designViewModelField&&g.changeField(r.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,t,i=["compute","dependency","validate"],n){return new N(this.formSchemaUtils).getExpressionConfig(e,t,i,n)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,t,i){var n;e.editor[t]!==i?e.editor[t]=i:(n=this.getFormDesignerInstance())==null||n.reloadPropertyPanel()}setBooleanValue(e,t,i){let n=i;this.getBindingDataType()==="string"&&(n=(n||"").trim()||(t==="trueValue"?"true":"false"));const a=t==="trueValue"?"falseValue":"trueValue";e.editor[a]===n&&(n=n+1),this.updatePropertyValue(e,t,n)}getBooleanValueConverter(){return{convertFrom:(e,t)=>e.editor[t],convertTo:(e,t,i)=>{this.setBooleanValue(e,t,i)}}}}class W extends O{constructor(o,e){super(o,e)}getEditorProperties(o){return this.getComponentConfig(o,{type:"time-picker"},{editable:{description:"",title:"允许编辑",type:"boolean"},use12Hours:{description:"",title:"是否使用12小时制",type:"boolean",refreshPanelAfterChanged:!0},format:{description:"",title:"格式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:o.editor.use12Hours?[{value:"hh:mm:ss",name:"hh:mm:ss"},{value:"hh:mm",name:"hh:mm"}]:[{value:"HH:mm:ss",name:"HH:mm:ss"},{value:"HH:mm",name:"HH:mm"}]}},showHeader:{description:"",title:"是否显示时分秒标题",type:"boolean"},hourStep:{description:"",title:"时步长",type:"number",editor:{min:1,max:12,useThousands:!1,needValid:!0}},minuteStep:{description:"",title:"分步长",type:"number",editor:{min:1,max:30,useThousands:!1,needValid:!0}},secondStep:{description:"",title:"秒步长",type:"number",editor:{min:1,max:30,useThousands:!1,needValid:!0}}},(e,t)=>{e.propertyID==="use12Hours"&&(t.editor.format=t.editor.format||"hh:mm:ss",t.editor.format=e.propertyValue?t.editor.format.replace("HH","hh"):t.editor.format.replace("hh","HH"))})}}function j(h,o){const e=h.schema;function t(i,n){return new W(i,o).getPropertyConfig(e,n)}return{getPropsConfig:t}}const w=x.defineComponent({name:"FTimePickerDesign",props:A,emits:["datePicked","update:modelValue"],setup(h,o){const e='<span class="f-icon f-icon-timepicker"></span>',t=x.ref(h.modelValue),i=x.ref(),n=x.ref(),r=x.inject("designer-host-service"),a=x.inject("design-item-context"),l=j(a,r),p=s.useDesignerComponent(n,a,l);return x.onMounted(()=>{n.value.componentInstance=p}),o.expose(p.value),()=>x.createVNode("div",{ref:n},[x.createVNode(U.FButtonEdit,{ref:i,modelValue:t.value,"onUpdate:modelValue":c=>t.value=c,buttonContent:e,editable:!1,placeholder:h.placeholder,expandable:h.expandable,expandMode:h.expandMode,expandContent:h.expandContent,expandDisabled:h.expandDisabled},null)])}}),z=new Map([["appearance",V.resolveAppearance]]),_={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/time-picker.schema.json",title:"time-picker",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a time picker",type:"string"},type:{description:"The type string of time picker component",type:"string",default:"time-picker"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:"请选择时间"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0},format:{description:"",type:"enum",default:"HH:mm:ss"},showHeader:{description:"",type:"boolean",default:!1},use12Hours:{description:"",type:"boolean",default:!1},hourStep:{description:"",type:"number",default:1},minuteStep:{description:"",type:"number",default:1},secondStep:{description:"",type:"number",default:1},placement:{description:"",type:"string",default:"auto"},expandable:{description:"",type:"boolean",default:!1},expandMode:{description:"",type:"string",default:"text"},expandContent:{description:"",type:"string",default:""},expandDisabled:{description:"",type:"boolean",default:!1}},required:["type"],ignore:["id","appearance","binding","visible"]};function X(h,o,e){return o}const D=V.createPropsResolver(F.timePickerProps,_,z,X);w.register=(h,o,e,t)=>{h["time-picker"]=F,o["time-picker"]=D},w.registerDesigner=(h,o,e)=>{h["time-picker"]=w,o["time-picker"]=D},b.FTimePickerDesign=w,b.default=w,b.propsResolver=D,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
6
+ `])])]);class O extends q{constructor(e,t){super(e,t);f(this,"responseLayoutEditorFunction");f(this,"bindingVarible");f(this,"formGroupEvents",[{label:"fieldValueChanging",name:"绑定字段值变化前事件"},{label:"fieldValueChanged",name:"绑定字段值变化后事件"},{label:"onClickLabel",name:"标签点击事件"}]);f(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=G(this.formSchemaUtils)}getCommonPropertyConfig(e,t,i="Card"){if(this.propertyConfig.categories.basic=this.getBasicProperties(e,t,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,t),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group"),i==="Card"){const n=this.getTipsConfig(e);this.propertyConfig.categories.behavior.properties={...this.propertyConfig.categories.behavior.properties,...n},["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","language-textbox"].includes(e.editor.type)&&(this.propertyConfig.categories.expansion=this.getExpandProperties(e))}}getPropertyConfig(e,t){return this.getCommonPropertyConfig(e,t,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,t){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,t,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,t,i="Card"){var p;const n=this;this.setDesignViewModelField(e);const{canChangeControlType:r,editorTypeList:a}=this.getAvailableEditorType(e),l={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:a,readonly:!r}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((p=e.editor)==null?void 0:p.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!0},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(c,d,m){if(c)switch(c&&c.propertyID){case"type":{n.changeControlType(e,c,t);break}case"label":{c.needRefreshControlTree=!0;break}case"binding":{n.changeBindingField(e,c,m);break}}}};return i.toLocaleLowerCase()!=="card"&&delete l.properties.showLabelType,l}getExpandProperties(e){const t=this,i=["Const","Variable"],n=this.getPropertyEditorParams(e,i,"expandable"),r=this.getPropertyEditorParams(e,i,"expandDisabled");return{description:"Expand Information",title:"扩展区域",properties:{expandable:{description:"是否启用扩展区域",title:"启用扩展区域",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:n},expandMode:{description:"扩展模式 text | button",title:"扩展模式",type:"enum",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:{data:[{id:"text",name:"静态文本"},{id:"button",name:"交互按钮"}]},defaultValue:"text",visible:!!e.editor.expandable},expandContent:{$converter:"/converter/property-editor.converter",description:"扩展内容",title:"扩展内容",type:"string",visible:!!e.editor.expandable},expandDisabled:{$converter:"/converter/property-editor.converter",description:"是否隐藏扩展区域",title:"隐藏扩展区域",editor:r,visible:!!e.editor.expandable}},setPropertyRelates(l,p){if(l)switch(l.propertyID){case"expandable":case"expandDisabled":t.afterMutilEditorChanged(e,l);break}}}}checkCanChangeControlType(e,t){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==T.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var n;const t=this.checkCanChangeControlType(e,this.viewModelId);if(!t)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((n=s.DgControl[e.editor.type])==null?void 0:n.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===T.FormSchemaEntityField$Type.SimpleField?i=v.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=v.getEditorTypesByMDataType(this.bindingVarible.type,!1)),{canChangeControlType:t,editorTypeList:i}}changeBindingField(e,t,i){t.needRefreshEntityTree=!0}getAppearanceProperties(e,t){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(n,r){if(n)switch(n&&n.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(n.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,t),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(n.propertyValue,e.id,this.componentId),s.canvasChanged.value++;break;case"style":{s.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,t,i){const n=t.propertyValue,r=i&&i.parent&&i.parent.schema;if(!r)return;const a=r.contents.findIndex(c=>c.id===e.id);if(a===-1)return;const l=r.contents[a];let p;if(this.designViewModelField){const m=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(u=>u.id===this.designViewModelField.id).fieldSchema||{};m.editor||(m.editor={}),m.editor.$type=n,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,m,!1),p=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,n)}p||(p=this.controlCreatorUtils.createFormGroupWithoutField(n)),Object.assign(p,{id:l.id,appearance:l.appearance,size:l.size,label:l.label,binding:l.binding}),Object.prototype.hasOwnProperty.call(l,"visible")&&Object.assign(p,{visible:l.visible}),l.editor&&["readonly","required","placeholder"].map(c=>{Object.prototype.hasOwnProperty.call(l.editor,c)&&(p.editor[c]=l.editor[c])}),i!=null&&i.updateContextSchema?i.updateContextSchema(p):(i.schema=Object.assign(l,p),Object.assign(e,p)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(c=>c.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(c=>c.classList.remove("dgComponentFocused")),s.canvasChanged.value++,x.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getTipsConfig(e){return["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","textarea","rich-text-editor","language-textbox"].includes(e.editor.type)?{enableTips:{refreshPanelAfterChanged:!0,description:"",title:"启用提示",type:"boolean",default:!1},tipsContent:{description:"提示内容",title:"提示内容",type:"string",editor:{type:"code-editor",language:"html",leftTemplate:H},visible:!!e.enableTips}}:{}}getComponentConfig(e,t={},i={},n){var m,h;const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},t),a=(m=e.binding)!=null&&m.field?[]:["Const","Variable","StateMachine"],l=this.getPropertyEditorParams(e,a,"readonly"),p=this.getPropertyEditorParams(e,a,"required"),c={readonly:{description:"",title:"只读",editor:l},required:{description:"",title:"必填",type:"boolean",editor:p,visible:!!((h=e.binding)!=null&&h.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const u in i)c[u]=Object.assign(c[u]||{},i[u]);const d=this;return{...r,properties:{...c},setPropertyRelates(u,g){if(u){switch(u.propertyID){case"readonly":case"required":d.afterMutilEditorChanged(e,u);break}n&&n.bind(d)(u,e,g)}}}}updateUnifiedLayoutAfterControlChanged(e,t,i){const n=e.split(" ");let r=n.find(d=>/^col-([1-9]|10|11|12)$/.test(d)),a=n.find(d=>/^col-md-([1-9]|10|11|12)$/.test(d)),l=n.find(d=>/^col-xl-([1-9]|10|11|12)$/.test(d)),p=n.find(d=>/^col-el-([1-9]|10|11|12)$/.test(d));r=r||"col-12",a=a||"col-md-"+r.replace("col-",""),l=l||"col-xl-"+a.replace("col-md-",""),p=p||"col-el-"+l.replace("col-xl-","");const c={id:t,columnInSM:parseInt(r.replace("col-",""),10),columnInMD:parseInt(a.replace("col-md-",""),10),columnInLG:parseInt(l.replace("col-xl-",""),10),columnInEL:parseInt(p.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,c)}updateUnifiedLayoutAfterResponseLayoutChanged(e,t){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const n=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,n,1),t){const u=n.find(g=>g.id===t.id);Object.assign(u||{},t)}const r=n.map(u=>u.columnInSM),a=n.map(u=>u.columnInMD),l=n.map(u=>u.columnInLG),p=n.map(u=>u.columnInEL),c=this.checkIsUniqueColumn(r)?r[0]:null,d=this.checkIsUniqueColumn(a)?a[0]:null,m=this.checkIsUniqueColumn(l)?l[0]:null,h=this.checkIsUniqueColumn(p)?p[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:c,uniqueColClassInMD:d,uniqueColClassInLG:m,uniqueColClassInEL:h})}checkIsUniqueColumn(e){const t=new Set(e);return Array.from(t).length===1}getItemCollectionEditor(e,t,i){return t=t||"value",i=i||"name",{editor:{columns:[{field:t,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:t,nameField:i,requiredFields:[t,i],uniqueFields:[t,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===T.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,t){e.binding&&e.binding.type===P.Form&&e.binding.field?(t.find(i=>i.label==="fieldValueChanging"),t.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):t=t.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case P.Form:return e.binding.path||e.type;case P.Variable:return e.binding.fullPath||e.type}return e.type}updateLinkedLabel(e,t){if(e.boundEventsList&&e.boundEventsList.length>0){const i=e.boundEventsList.find(n=>n.boundEvents&&n.boundEvents.label==="onClickLabel");t.linkLabel=!!i}else t.linkLabel=!1}getEventPropertyConfig(e,t="card",i,n){const r=this;let a=[...this.formGroupEvents];if(["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&a.push({lable:"onClear",name:"清空事件"}),i&&(a=a.concat(i)),a.length===0)return{title:"事件",hideTitle:!0,properties:{},tabId:"commands",tabName:"交互",hide:!0};this.appendFieldValueChangeEvents(e,a);const p=r.eventsEditorUtils.formProperties(e,r.viewModelId,a);return{title:"事件",hideTitle:!0,properties:r.createBaseEventProperty(p),tabId:"commands",tabName:"交互",setPropertyRelates(m,h){const u=m.propertyValue;delete e[r.viewModelId],u&&(u.setPropertyRelates=this.setPropertyRelates,u.controlInfo={type:r.getControlMethodType(e),name:e.title},r.eventsEditorUtils.saveRelatedParameters(e,r.viewModelId,u.events,u),r.updateLinkedLabel(u,h)),n&&n(m,h,u);const g=r.designViewModelUtils.getDgViewModel(r.viewModelId);g&&r.designViewModelField&&g.changeField(r.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,t,i=["compute","dependency","validate"],n){return new L(this.formSchemaUtils).getExpressionConfig(e,t,i,n)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,t,i){var n;e.editor[t]!==i?e.editor[t]=i:(n=this.getFormDesignerInstance())==null||n.reloadPropertyPanel()}setBooleanValue(e,t,i){let n=i;this.getBindingDataType()==="string"&&(n=(n||"").trim()||(t==="trueValue"?"true":"false"));const a=t==="trueValue"?"falseValue":"trueValue";e.editor[a]===n&&(n=n+1),this.updatePropertyValue(e,t,n)}getBooleanValueConverter(){return{convertFrom:(e,t)=>e.editor[t],convertTo:(e,t,i)=>{this.setBooleanValue(e,t,i)}}}}class W extends O{constructor(o,e){super(o,e)}getEditorProperties(o){return this.getComponentConfig(o,{type:"time-picker"},{editable:{description:"",title:"允许编辑",type:"boolean"},use12Hours:{description:"",title:"是否使用12小时制",type:"boolean",refreshPanelAfterChanged:!0},format:{description:"",title:"格式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:o.editor.use12Hours?[{value:"hh:mm:ss",name:"hh:mm:ss"},{value:"hh:mm",name:"hh:mm"}]:[{value:"HH:mm:ss",name:"HH:mm:ss"},{value:"HH:mm",name:"HH:mm"}]}},showHeader:{description:"",title:"是否显示时分秒标题",type:"boolean"},hourStep:{description:"",title:"时步长",type:"number",editor:{min:1,max:12,useThousands:!1,needValid:!0}},minuteStep:{description:"",title:"分步长",type:"number",editor:{min:1,max:30,useThousands:!1,needValid:!0}},secondStep:{description:"",title:"秒步长",type:"number",editor:{min:1,max:30,useThousands:!1,needValid:!0}}},(e,t)=>{e.propertyID==="use12Hours"&&(t.editor.format=t.editor.format||"hh:mm:ss",t.editor.format=e.propertyValue?t.editor.format.replace("HH","hh"):t.editor.format.replace("hh","HH"))})}}function j(y,o){const e=y.schema;function t(i,n){return new W(i,o).getPropertyConfig(e,n)}return{getPropsConfig:t}}const k=x.defineComponent({name:"FTimePickerDesign",props:A,emits:["datePicked","update:modelValue"],setup(y,o){const e='<span class="f-icon f-icon-timepicker"></span>',t=x.ref(y.modelValue),i=x.ref(),n=x.ref(),r=x.inject("designer-host-service"),a=x.inject("design-item-context"),l=j(a,r),p=s.useDesignerComponent(n,a,l);return x.onMounted(()=>{n.value.componentInstance=p}),o.expose(p.value),()=>x.createVNode("div",{ref:n,style:"pointer-events: none;"},[x.createVNode(N.FButtonEdit,{ref:i,modelValue:t.value,"onUpdate:modelValue":c=>t.value=c,buttonContent:e,editable:!1,placeholder:y.placeholder,expandable:y.expandable,expandMode:y.expandMode,expandContent:y.expandContent,expandDisabled:y.expandDisabled},null)])}}),z=new Map([["appearance",V.resolveAppearance]]),_={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/time-picker.schema.json",title:"time-picker",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a time picker",type:"string"},type:{description:"The type string of time picker component",type:"string",default:"time-picker"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:"请选择时间"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0},format:{description:"",type:"enum",default:"HH:mm:ss"},showHeader:{description:"",type:"boolean",default:!1},use12Hours:{description:"",type:"boolean",default:!1},hourStep:{description:"",type:"number",default:1},minuteStep:{description:"",type:"number",default:1},secondStep:{description:"",type:"number",default:1},placement:{description:"",type:"string",default:"auto"},expandable:{description:"",type:"boolean",default:!1},expandMode:{description:"",type:"string",default:"text"},expandContent:{description:"",type:"string",default:""},expandDisabled:{description:"",type:"boolean",default:!1}},required:["type"],ignore:["id","appearance","binding","visible"]};function X(y,o,e){return o}const D=V.createPropsResolver(F.timePickerProps,_,z,X);k.register=(y,o,e,t)=>{y["time-picker"]=F,o["time-picker"]=D},k.registerDesigner=(y,o,e)=>{y["time-picker"]=k,o["time-picker"]=D},b.FTimePickerDesign=k,b.default=k,b.propsResolver=D,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});