yc-pro-components 0.0.83 → 0.0.84

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 (125) hide show
  1. package/es/components/check-card/index.d.ts +38 -38
  2. package/es/components/check-card/src/index.vue.d.ts +2 -2
  3. package/es/components/check-card-group/index.d.ts +19 -19
  4. package/es/components/check-card-group/src/index.vue.d.ts +1 -1
  5. package/es/components/date-picker/index.d.ts +10 -10
  6. package/es/components/date-picker/src/index.vue.d.ts +10 -10
  7. package/es/components/dialog-form/index.d.ts +7 -7
  8. package/es/components/dialog-form/src/index.vue.d.ts +7 -7
  9. package/es/components/display-item/index.d.ts +41 -41
  10. package/es/components/display-item/src/index.vue.d.ts +22 -22
  11. package/es/components/drawer-form/index.d.ts +32 -32
  12. package/es/components/drawer-form/src/index.vue.d.ts +10 -10
  13. package/es/components/form/index.d.ts +14 -14
  14. package/es/components/form/src/form-content.vue.d.ts +20 -20
  15. package/es/components/form/src/index.vue.d.ts +14 -14
  16. package/es/components/form-item/index.d.ts +38 -38
  17. package/es/components/form-item/src/index.vue.d.ts +24 -16
  18. package/es/components/form-item/src/index.vue2.mjs +429 -301
  19. package/es/components/form-item/src/overflow-tooltip.d.ts +16 -0
  20. package/es/components/form-item/src/overflow-tooltip.mjs +67 -0
  21. package/es/components/header/index.d.ts +19 -19
  22. package/es/components/header/src/index.vue.d.ts +1 -1
  23. package/es/components/input-tag/index.d.ts +9 -9
  24. package/es/components/input-tag/src/index.vue.d.ts +1 -1
  25. package/es/components/page/index.d.ts +112 -112
  26. package/es/components/page/src/index.vue.d.ts +42 -42
  27. package/es/components/radio/index.d.ts +23 -23
  28. package/es/components/radio/src/index.vue.d.ts +23 -23
  29. package/es/components/render/index.d.ts +6 -6
  30. package/es/components/render/src/index.vue.d.ts +2 -2
  31. package/es/components/search/index.d.ts +49 -49
  32. package/es/components/search/src/index.vue.d.ts +21 -21
  33. package/es/components/table/src/table-column.vue.d.ts +37 -37
  34. package/es/components/yc-count-to/index.d.ts +1 -1
  35. package/es/components/yc-count-to/src/normal/index.d.ts +1 -1
  36. package/es/components/yc-dialog/index.d.ts +24 -24
  37. package/es/components/yc-more-actions/index.d.ts +46 -46
  38. package/es/components/yc-more-actions/src/index.vue.d.ts +3 -3
  39. package/es/components/yc-plus-page/src/index.vue.d.ts +77 -77
  40. package/es/components/yc-select-v2/src/index.vue.d.ts +2 -2
  41. package/es/components/yc-status-dialog/src/index.vue.d.ts +1 -1
  42. package/es/components/yc-svg-icon/src/index.vue.d.ts +1 -1
  43. package/es/components/yc-text/src/index.vue.d.ts +2 -2
  44. package/es/hooks/usePlusFormReset.d.ts +102 -102
  45. package/es/index.css +9 -9
  46. package/es/version.d.ts +1 -1
  47. package/es/version.mjs +1 -1
  48. package/es/yc-components/version.d.ts +1 -1
  49. package/index.css +1 -1
  50. package/index.js +495 -302
  51. package/index.min.js +12 -12
  52. package/index.min.mjs +12 -12
  53. package/index.mjs +495 -302
  54. package/lib/components/check-card/index.d.ts +38 -38
  55. package/lib/components/check-card/src/index.vue.d.ts +2 -2
  56. package/lib/components/check-card-group/index.d.ts +19 -19
  57. package/lib/components/check-card-group/src/index.vue.d.ts +1 -1
  58. package/lib/components/date-picker/index.d.ts +10 -10
  59. package/lib/components/date-picker/src/index.vue.d.ts +10 -10
  60. package/lib/components/dialog-form/index.d.ts +7 -7
  61. package/lib/components/dialog-form/src/index.vue.d.ts +7 -7
  62. package/lib/components/display-item/index.d.ts +41 -41
  63. package/lib/components/display-item/src/index.vue.d.ts +22 -22
  64. package/lib/components/drawer-form/index.d.ts +32 -32
  65. package/lib/components/drawer-form/src/index.vue.d.ts +10 -10
  66. package/lib/components/form/index.d.ts +14 -14
  67. package/lib/components/form/src/form-content.vue.d.ts +20 -20
  68. package/lib/components/form/src/index.vue.d.ts +14 -14
  69. package/lib/components/form-item/index.d.ts +38 -38
  70. package/lib/components/form-item/src/index.vue.d.ts +24 -16
  71. package/lib/components/form-item/src/index.vue2.js +428 -300
  72. package/lib/components/form-item/src/overflow-tooltip.d.ts +16 -0
  73. package/lib/components/form-item/src/overflow-tooltip.js +71 -0
  74. package/lib/components/header/index.d.ts +19 -19
  75. package/lib/components/header/src/index.vue.d.ts +1 -1
  76. package/lib/components/input-tag/index.d.ts +9 -9
  77. package/lib/components/input-tag/src/index.vue.d.ts +1 -1
  78. package/lib/components/page/index.d.ts +112 -112
  79. package/lib/components/page/src/index.vue.d.ts +42 -42
  80. package/lib/components/radio/index.d.ts +23 -23
  81. package/lib/components/radio/src/index.vue.d.ts +23 -23
  82. package/lib/components/render/index.d.ts +6 -6
  83. package/lib/components/render/src/index.vue.d.ts +2 -2
  84. package/lib/components/search/index.d.ts +49 -49
  85. package/lib/components/search/src/index.vue.d.ts +21 -21
  86. package/lib/components/table/src/table-column.vue.d.ts +37 -37
  87. package/lib/components/yc-count-to/index.d.ts +1 -1
  88. package/lib/components/yc-count-to/src/normal/index.d.ts +1 -1
  89. package/lib/components/yc-dialog/index.d.ts +24 -24
  90. package/lib/components/yc-more-actions/index.d.ts +46 -46
  91. package/lib/components/yc-more-actions/src/index.vue.d.ts +3 -3
  92. package/lib/components/yc-plus-page/src/index.vue.d.ts +77 -77
  93. package/lib/components/yc-select-v2/src/index.vue.d.ts +2 -2
  94. package/lib/components/yc-status-dialog/src/index.vue.d.ts +1 -1
  95. package/lib/components/yc-svg-icon/src/index.vue.d.ts +1 -1
  96. package/lib/components/yc-text/src/index.vue.d.ts +2 -2
  97. package/lib/hooks/usePlusFormReset.d.ts +102 -102
  98. package/lib/index.css +10 -10
  99. package/lib/version.d.ts +1 -1
  100. package/lib/version.js +1 -1
  101. package/lib/yc-components/version.d.ts +1 -1
  102. package/locale/en.js +1 -1
  103. package/locale/en.min.js +1 -1
  104. package/locale/en.min.mjs +1 -1
  105. package/locale/en.mjs +1 -1
  106. package/locale/ja.js +1 -1
  107. package/locale/ja.min.js +1 -1
  108. package/locale/ja.min.mjs +1 -1
  109. package/locale/ja.mjs +1 -1
  110. package/locale/ko.js +1 -1
  111. package/locale/ko.min.js +1 -1
  112. package/locale/ko.min.mjs +1 -1
  113. package/locale/ko.mjs +1 -1
  114. package/locale/zh-cn.js +1 -1
  115. package/locale/zh-cn.min.js +1 -1
  116. package/locale/zh-cn.min.mjs +1 -1
  117. package/locale/zh-cn.mjs +1 -1
  118. package/locale/zh-tw.js +1 -1
  119. package/locale/zh-tw.min.js +1 -1
  120. package/locale/zh-tw.min.mjs +1 -1
  121. package/locale/zh-tw.mjs +1 -1
  122. package/package.json +1 -1
  123. package/theme-chalk/index.css +1 -1
  124. package/theme-chalk/plus-form-item.css +1 -1
  125. package/theme-chalk/src/form-item.scss +56 -0
@@ -12,6 +12,7 @@ require('sortablejs');
12
12
  var index$1 = require('../../render/index.js');
13
13
  var elementPlus = require('element-plus');
14
14
  var formItem = require('./form-item.js');
15
+ var overflowTooltip = require('./overflow-tooltip.js');
15
16
  var is = require('../../utils/is.js');
16
17
 
17
18
  const _hoisted_1 = { class: "el-form-item__error" };
@@ -24,6 +25,7 @@ const _hoisted_4 = {
24
25
  key: 1,
25
26
  class: "plus-form-item-field"
26
27
  };
28
+ const TOOLTIP_SHOW_DELAY = 300;
27
29
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
28
30
  ...{
29
31
  name: "PlusFormItem"
@@ -70,6 +72,85 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
70
72
  const customFieldPropsIsReady = vue.ref(false);
71
73
  const valueIsReady = vue.ref(false);
72
74
  const labelValue = vue.computed(() => index.getLabel(props.label));
75
+ const labelTextRef = vue.ref();
76
+ const labelOverflow = vue.ref(false);
77
+ const labelTooltipContent = vue.ref("");
78
+ const labelTooltipVisible = vue.ref(false);
79
+ const placeholderTooltipVisible = vue.ref(false);
80
+ const placeholderTooltipContent = vue.ref("");
81
+ const placeholderVirtualRef = vue.ref();
82
+ let labelTooltipTimer = null;
83
+ let placeholderTooltipTimer = null;
84
+ const syncLabelOverflow = () => {
85
+ const el = labelTextRef.value;
86
+ if (!el) {
87
+ labelOverflow.value = false;
88
+ labelTooltipContent.value = "";
89
+ return;
90
+ }
91
+ labelTooltipContent.value = (el.textContent || "").trim();
92
+ labelOverflow.value = el.scrollWidth > el.clientWidth + 1;
93
+ };
94
+ const showLabelTooltip = () => {
95
+ syncLabelOverflow();
96
+ if (labelTooltipTimer) clearTimeout(labelTooltipTimer);
97
+ if (!labelOverflow.value || !labelTooltipContent.value) {
98
+ labelTooltipVisible.value = false;
99
+ return;
100
+ }
101
+ if (labelTooltipVisible.value) return;
102
+ labelTooltipTimer = setTimeout(() => {
103
+ labelTooltipVisible.value = true;
104
+ labelTooltipTimer = null;
105
+ }, TOOLTIP_SHOW_DELAY);
106
+ };
107
+ const hideLabelTooltip = () => {
108
+ if (labelTooltipTimer) clearTimeout(labelTooltipTimer);
109
+ labelTooltipTimer = null;
110
+ labelTooltipVisible.value = false;
111
+ };
112
+ const hidePlaceholderTooltip = () => {
113
+ if (placeholderTooltipTimer) clearTimeout(placeholderTooltipTimer);
114
+ placeholderTooltipTimer = null;
115
+ placeholderTooltipVisible.value = false;
116
+ placeholderTooltipContent.value = "";
117
+ };
118
+ const handlePlaceholderHover = (event) => {
119
+ const root = event.currentTarget;
120
+ if (!(root instanceof HTMLElement)) return;
121
+ const hit = overflowTooltip.findPlaceholderOverflow(root, event.target, {
122
+ x: event.clientX,
123
+ y: event.clientY
124
+ });
125
+ if (!hit) {
126
+ hidePlaceholderTooltip();
127
+ return;
128
+ }
129
+ const sameTarget = placeholderTooltipContent.value === hit.text && placeholderVirtualRef.value === hit.el;
130
+ if (sameTarget && (placeholderTooltipVisible.value || placeholderTooltipTimer)) return;
131
+ if (placeholderTooltipTimer) clearTimeout(placeholderTooltipTimer);
132
+ placeholderTooltipVisible.value = false;
133
+ placeholderVirtualRef.value = hit.el;
134
+ placeholderTooltipContent.value = hit.text;
135
+ placeholderTooltipTimer = setTimeout(() => {
136
+ placeholderTooltipVisible.value = true;
137
+ placeholderTooltipTimer = null;
138
+ }, TOOLTIP_SHOW_DELAY);
139
+ };
140
+ vue.watch(labelTextRef, (el, _, onCleanup) => {
141
+ syncLabelOverflow();
142
+ if (!el || typeof ResizeObserver === "undefined") return;
143
+ const observer = new ResizeObserver(() => syncLabelOverflow());
144
+ observer.observe(el);
145
+ onCleanup(() => observer.disconnect());
146
+ });
147
+ vue.watch(labelValue, () => {
148
+ vue.nextTick(syncLabelOverflow);
149
+ });
150
+ vue.onBeforeUnmount(() => {
151
+ if (labelTooltipTimer) clearTimeout(labelTooltipTimer);
152
+ if (placeholderTooltipTimer) clearTimeout(placeholderTooltipTimer);
153
+ });
73
154
  const formFieldRefs = vue.inject(form.TableFormFieldRefInjectionKey, {});
74
155
  const tableRowInfo = vue.inject(form.TableFormRowInfoInjectionKey, {});
75
156
  const params = vue.computed(() => ({
@@ -238,212 +319,143 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
238
319
  "label-width": _ctx.hasLabel ? (_a = customFormItemProps.value) == null ? void 0 : _a.labelWidth : "0px"
239
320
  }), vue.createSlots({
240
321
  default: vue.withCtx(() => [
241
- _ctx.renderField && vue.unref(is.isFunction)(_ctx.renderField) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
242
- valueIsReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.PlusRender), {
243
- key: 0,
244
- render: _ctx.renderField,
245
- params: params.value,
246
- "callback-value": state.value,
247
- "custom-field-props": customFieldProps.value,
248
- "render-type": "form",
249
- "handle-change": handleChange
250
- }, null, 8, ["render", "params", "callback-value", "custom-field-props"])) : vue.createCommentVNode("v-if", true)
251
- ])) : _ctx.$slots[vue.unref(index.getFieldSlotName)(_ctx.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
252
- vue.renderSlot(_ctx.$slots, vue.unref(index.getFieldSlotName)(_ctx.prop), vue.mergeProps(params.value, { column: props }))
253
- ])) : _ctx.valueType === "select" && customFieldProps.value.multiple === true ? (vue.openBlock(), vue.createBlock(vue.unref(ElSelect), vue.mergeProps({
254
- key: 2,
255
- ref_key: "fieldInstance",
256
- ref: fieldInstance,
257
- modelValue: state.value,
258
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.value = $event),
259
- placeholder: vue.unref(t)("plus.field.pleaseSelect") + labelValue.value,
260
- class: "plus-form-item-field",
261
- clearable: _ctx.clearable
262
- }, customFieldProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
263
- default: vue.withCtx(() => [
264
- (vue.openBlock(true), vue.createElementBlock(
265
- vue.Fragment,
266
- null,
267
- vue.renderList(vue.unref(customOptions), (item) => {
268
- return vue.openBlock(), vue.createElementBlock(
269
- vue.Fragment,
270
- {
271
- key: item.value
272
- },
273
- [
274
- item.options ? (vue.openBlock(), vue.createBlock(vue.unref(ElOptionGroup), {
275
- key: 0,
276
- label: item.label,
277
- disabled: item.disabled
278
- }, {
279
- default: vue.withCtx(() => [
280
- (vue.openBlock(true), vue.createElementBlock(
281
- vue.Fragment,
282
- null,
283
- vue.renderList(item.options, (option) => {
284
- return vue.openBlock(), vue.createBlock(vue.unref(ElOption), vue.mergeProps(
285
- {
286
- key: option.value,
287
- label: option.label,
288
- value: option.value
289
- },
290
- vue.unref(is.isFunction)(option.fieldItemProps) ? option.fieldItemProps(option) : option.fieldItemProps
291
- ), {
292
- default: vue.withCtx(() => [
293
- vue.unref(is.isFunction)(option.fieldSlot) ? (vue.openBlock(), vue.createBlock(
294
- vue.resolveDynamicComponent(option.fieldSlot),
295
- vue.normalizeProps(vue.mergeProps({ key: 0 }, option)),
296
- null,
297
- 16
298
- /* FULL_PROPS */
299
- )) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(
300
- vue.resolveDynamicComponent(_ctx.fieldChildrenSlot),
301
- vue.normalizeProps(vue.mergeProps({ key: 1 }, option)),
302
- null,
303
- 16
304
- /* FULL_PROPS */
305
- )) : (vue.openBlock(), vue.createElementBlock(
306
- vue.Fragment,
307
- { key: 2 },
308
- [
309
- vue.createTextVNode(
310
- vue.toDisplayString(option.label),
311
- 1
312
- /* TEXT */
313
- )
314
- ],
315
- 64
316
- /* STABLE_FRAGMENT */
317
- ))
318
- ]),
319
- _: 2
320
- /* DYNAMIC */
321
- }, 1040, ["label", "value"]);
322
- }),
323
- 128
324
- /* KEYED_FRAGMENT */
325
- ))
326
- ]),
327
- _: 2
328
- /* DYNAMIC */
329
- }, 1032, ["label", "disabled"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElOption), vue.mergeProps(
330
- {
331
- key: 1,
332
- label: item.label,
333
- value: item.value
334
- },
335
- vue.unref(is.isFunction)(item.fieldItemProps) ? item.fieldItemProps(item) : item.fieldItemProps
336
- ), {
337
- default: vue.withCtx(() => [
338
- vue.unref(is.isFunction)(item.fieldSlot) ? (vue.openBlock(), vue.createBlock(
339
- vue.resolveDynamicComponent(item.fieldSlot),
340
- vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
341
- null,
342
- 16
343
- /* FULL_PROPS */
344
- )) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(
345
- vue.resolveDynamicComponent(_ctx.fieldChildrenSlot),
346
- vue.normalizeProps(vue.mergeProps({ key: 1 }, item)),
347
- null,
348
- 16
349
- /* FULL_PROPS */
350
- )) : (vue.openBlock(), vue.createElementBlock(
351
- vue.Fragment,
352
- { key: 2 },
353
- [
354
- vue.createTextVNode(
355
- vue.toDisplayString(item.label),
356
- 1
357
- /* TEXT */
358
- )
359
- ],
360
- 64
361
- /* STABLE_FRAGMENT */
362
- ))
363
- ]),
364
- _: 2
365
- /* DYNAMIC */
366
- }, 1040, ["label", "value"]))
367
- ],
368
- 64
369
- /* STABLE_FRAGMENT */
370
- );
371
- }),
372
- 128
373
- /* KEYED_FRAGMENT */
374
- ))
375
- ]),
376
- _: 2
377
- /* DYNAMIC */
378
- }, [
379
- vue.renderList(_ctx.fieldSlots, (fieldSlot, key) => {
380
- return {
381
- name: key,
382
- fn: vue.withCtx((data) => [
383
- (vue.openBlock(), vue.createBlock(
384
- vue.resolveDynamicComponent(fieldSlot),
385
- vue.normalizeProps(vue.guardReactiveProps(data)),
386
- null,
387
- 16
388
- /* FULL_PROPS */
389
- ))
390
- ])
391
- };
392
- })
393
- ]), 1040, ["modelValue", "placeholder", "clearable"])) : vue.unref(formItem.hasFieldComponent)(_ctx.valueType) ? (vue.openBlock(), vue.createElementBlock(
394
- vue.Fragment,
395
- { key: 3 },
322
+ vue.createElementVNode(
323
+ "div",
324
+ {
325
+ class: "plus-form-item__control",
326
+ onMouseover: handlePlaceholderHover,
327
+ onMouseleave: hidePlaceholderTooltip
328
+ },
396
329
  [
397
- vue.createCommentVNode(" \u7EDF\u4E00\u5904\u7406 "),
398
- vue.createCommentVNode(" has-children "),
399
- vue.unref(formItem.getFieldComponent)(_ctx.valueType).children ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).component), vue.mergeProps({
400
- key: 0,
330
+ _ctx.renderField && vue.unref(is.isFunction)(_ctx.renderField) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
331
+ valueIsReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.PlusRender), {
332
+ key: 0,
333
+ render: _ctx.renderField,
334
+ params: params.value,
335
+ "callback-value": state.value,
336
+ "custom-field-props": customFieldProps.value,
337
+ "render-type": "form",
338
+ "handle-change": handleChange
339
+ }, null, 8, ["render", "params", "callback-value", "custom-field-props"])) : vue.createCommentVNode("v-if", true)
340
+ ])) : _ctx.$slots[vue.unref(index.getFieldSlotName)(_ctx.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
341
+ vue.renderSlot(_ctx.$slots, vue.unref(index.getFieldSlotName)(_ctx.prop), vue.mergeProps(params.value, { column: props }))
342
+ ])) : _ctx.valueType === "select" && customFieldProps.value.multiple === true ? (vue.openBlock(), vue.createBlock(vue.unref(ElSelect), vue.mergeProps({
343
+ key: 2,
401
344
  ref_key: "fieldInstance",
402
345
  ref: fieldInstance,
403
346
  modelValue: state.value,
404
347
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.value = $event),
348
+ placeholder: vue.unref(t)("plus.field.pleaseSelect") + labelValue.value,
405
349
  class: "plus-form-item-field",
406
350
  clearable: _ctx.clearable
407
- }, commonProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
351
+ }, customFieldProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
408
352
  default: vue.withCtx(() => [
409
353
  (vue.openBlock(true), vue.createElementBlock(
410
354
  vue.Fragment,
411
355
  null,
412
356
  vue.renderList(vue.unref(customOptions), (item) => {
413
- return vue.openBlock(), vue.createBlock(
414
- vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).children),
415
- vue.mergeProps({
416
- key: item.value
417
- }, getChildrenProps(item)),
357
+ return vue.openBlock(), vue.createElementBlock(
358
+ vue.Fragment,
418
359
  {
419
- default: vue.withCtx(() => [
420
- vue.unref(is.isFunction)(item.fieldSlot) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.fieldSlot), vue.mergeProps({
421
- key: 0,
422
- "model-value": state.value,
423
- column: params.value
424
- }, item), null, 16, ["model-value", "column"])) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.fieldChildrenSlot), vue.mergeProps({
425
- key: 1,
426
- "model-value": state.value,
427
- column: params.value
428
- }, item), null, 16, ["model-value", "column"])) : (vue.openBlock(), vue.createElementBlock(
429
- vue.Fragment,
430
- { key: 2 },
431
- [
432
- vue.createTextVNode(
433
- vue.toDisplayString(item.label),
434
- 1
435
- /* TEXT */
436
- )
437
- ],
438
- 64
439
- /* STABLE_FRAGMENT */
440
- ))
441
- ]),
442
- _: 2
443
- /* DYNAMIC */
360
+ key: item.value
444
361
  },
445
- 1040
446
- /* FULL_PROPS, DYNAMIC_SLOTS */
362
+ [
363
+ item.options ? (vue.openBlock(), vue.createBlock(vue.unref(ElOptionGroup), {
364
+ key: 0,
365
+ label: item.label,
366
+ disabled: item.disabled
367
+ }, {
368
+ default: vue.withCtx(() => [
369
+ (vue.openBlock(true), vue.createElementBlock(
370
+ vue.Fragment,
371
+ null,
372
+ vue.renderList(item.options, (option) => {
373
+ return vue.openBlock(), vue.createBlock(vue.unref(ElOption), vue.mergeProps(
374
+ {
375
+ key: option.value,
376
+ label: option.label,
377
+ value: option.value
378
+ },
379
+ vue.unref(is.isFunction)(option.fieldItemProps) ? option.fieldItemProps(option) : option.fieldItemProps
380
+ ), {
381
+ default: vue.withCtx(() => [
382
+ vue.unref(is.isFunction)(option.fieldSlot) ? (vue.openBlock(), vue.createBlock(
383
+ vue.resolveDynamicComponent(option.fieldSlot),
384
+ vue.normalizeProps(vue.mergeProps({ key: 0 }, option)),
385
+ null,
386
+ 16
387
+ /* FULL_PROPS */
388
+ )) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(
389
+ vue.resolveDynamicComponent(_ctx.fieldChildrenSlot),
390
+ vue.normalizeProps(vue.mergeProps({ key: 1 }, option)),
391
+ null,
392
+ 16
393
+ /* FULL_PROPS */
394
+ )) : (vue.openBlock(), vue.createElementBlock(
395
+ vue.Fragment,
396
+ { key: 2 },
397
+ [
398
+ vue.createTextVNode(
399
+ vue.toDisplayString(option.label),
400
+ 1
401
+ /* TEXT */
402
+ )
403
+ ],
404
+ 64
405
+ /* STABLE_FRAGMENT */
406
+ ))
407
+ ]),
408
+ _: 2
409
+ /* DYNAMIC */
410
+ }, 1040, ["label", "value"]);
411
+ }),
412
+ 128
413
+ /* KEYED_FRAGMENT */
414
+ ))
415
+ ]),
416
+ _: 2
417
+ /* DYNAMIC */
418
+ }, 1032, ["label", "disabled"])) : (vue.openBlock(), vue.createBlock(vue.unref(ElOption), vue.mergeProps(
419
+ {
420
+ key: 1,
421
+ label: item.label,
422
+ value: item.value
423
+ },
424
+ vue.unref(is.isFunction)(item.fieldItemProps) ? item.fieldItemProps(item) : item.fieldItemProps
425
+ ), {
426
+ default: vue.withCtx(() => [
427
+ vue.unref(is.isFunction)(item.fieldSlot) ? (vue.openBlock(), vue.createBlock(
428
+ vue.resolveDynamicComponent(item.fieldSlot),
429
+ vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
430
+ null,
431
+ 16
432
+ /* FULL_PROPS */
433
+ )) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(
434
+ vue.resolveDynamicComponent(_ctx.fieldChildrenSlot),
435
+ vue.normalizeProps(vue.mergeProps({ key: 1 }, item)),
436
+ null,
437
+ 16
438
+ /* FULL_PROPS */
439
+ )) : (vue.openBlock(), vue.createElementBlock(
440
+ vue.Fragment,
441
+ { key: 2 },
442
+ [
443
+ vue.createTextVNode(
444
+ vue.toDisplayString(item.label),
445
+ 1
446
+ /* TEXT */
447
+ )
448
+ ],
449
+ 64
450
+ /* STABLE_FRAGMENT */
451
+ ))
452
+ ]),
453
+ _: 2
454
+ /* DYNAMIC */
455
+ }, 1040, ["label", "value"]))
456
+ ],
457
+ 64
458
+ /* STABLE_FRAGMENT */
447
459
  );
448
460
  }),
449
461
  128
@@ -457,27 +469,76 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
457
469
  return {
458
470
  name: key,
459
471
  fn: vue.withCtx((data) => [
460
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(fieldSlot), vue.mergeProps({
461
- value: state.value,
462
- column: params.value
463
- }, data), null, 16, ["value", "column"]))
472
+ (vue.openBlock(), vue.createBlock(
473
+ vue.resolveDynamicComponent(fieldSlot),
474
+ vue.normalizeProps(vue.guardReactiveProps(data)),
475
+ null,
476
+ 16
477
+ /* FULL_PROPS */
478
+ ))
464
479
  ])
465
480
  };
466
481
  })
467
- ]), 1040, ["modelValue", "clearable"])) : (vue.openBlock(), vue.createElementBlock(
482
+ ]), 1040, ["modelValue", "placeholder", "clearable"])) : vue.unref(formItem.hasFieldComponent)(_ctx.valueType) ? (vue.openBlock(), vue.createElementBlock(
468
483
  vue.Fragment,
469
- { key: 1 },
484
+ { key: 3 },
470
485
  [
471
- vue.createCommentVNode(" no-children "),
472
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).component), vue.mergeProps({
486
+ vue.createCommentVNode(" \u7EDF\u4E00\u5904\u7406 "),
487
+ vue.createCommentVNode(" has-children "),
488
+ vue.unref(formItem.getFieldComponent)(_ctx.valueType).children ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).component), vue.mergeProps({
489
+ key: 0,
473
490
  ref_key: "fieldInstance",
474
491
  ref: fieldInstance,
475
492
  modelValue: state.value,
476
493
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => state.value = $event),
477
494
  class: "plus-form-item-field",
478
- clearable: _ctx.clearable,
479
- "field-children-slot": _ctx.fieldChildrenSlot
495
+ clearable: _ctx.clearable
480
496
  }, commonProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
497
+ default: vue.withCtx(() => [
498
+ (vue.openBlock(true), vue.createElementBlock(
499
+ vue.Fragment,
500
+ null,
501
+ vue.renderList(vue.unref(customOptions), (item) => {
502
+ return vue.openBlock(), vue.createBlock(
503
+ vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).children),
504
+ vue.mergeProps({
505
+ key: item.value
506
+ }, getChildrenProps(item)),
507
+ {
508
+ default: vue.withCtx(() => [
509
+ vue.unref(is.isFunction)(item.fieldSlot) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.fieldSlot), vue.mergeProps({
510
+ key: 0,
511
+ "model-value": state.value,
512
+ column: params.value
513
+ }, item), null, 16, ["model-value", "column"])) : vue.unref(is.isFunction)(_ctx.fieldChildrenSlot) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.fieldChildrenSlot), vue.mergeProps({
514
+ key: 1,
515
+ "model-value": state.value,
516
+ column: params.value
517
+ }, item), null, 16, ["model-value", "column"])) : (vue.openBlock(), vue.createElementBlock(
518
+ vue.Fragment,
519
+ { key: 2 },
520
+ [
521
+ vue.createTextVNode(
522
+ vue.toDisplayString(item.label),
523
+ 1
524
+ /* TEXT */
525
+ )
526
+ ],
527
+ 64
528
+ /* STABLE_FRAGMENT */
529
+ ))
530
+ ]),
531
+ _: 2
532
+ /* DYNAMIC */
533
+ },
534
+ 1040
535
+ /* FULL_PROPS, DYNAMIC_SLOTS */
536
+ );
537
+ }),
538
+ 128
539
+ /* KEYED_FRAGMENT */
540
+ ))
541
+ ]),
481
542
  _: 2
482
543
  /* DYNAMIC */
483
544
  }, [
@@ -486,88 +547,129 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
486
547
  name: key,
487
548
  fn: vue.withCtx((data) => [
488
549
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(fieldSlot), vue.mergeProps({
489
- "model-value": state.value,
550
+ value: state.value,
490
551
  column: params.value
491
- }, data), null, 16, ["model-value", "column"]))
552
+ }, data), null, 16, ["value", "column"]))
492
553
  ])
493
554
  };
494
555
  })
495
- ]), 1040, ["modelValue", "clearable", "field-children-slot"]))
556
+ ]), 1040, ["modelValue", "clearable"])) : (vue.openBlock(), vue.createElementBlock(
557
+ vue.Fragment,
558
+ { key: 1 },
559
+ [
560
+ vue.createCommentVNode(" no-children "),
561
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(formItem.getFieldComponent)(_ctx.valueType).component), vue.mergeProps({
562
+ ref_key: "fieldInstance",
563
+ ref: fieldInstance,
564
+ modelValue: state.value,
565
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => state.value = $event),
566
+ class: "plus-form-item-field",
567
+ clearable: _ctx.clearable,
568
+ "field-children-slot": _ctx.fieldChildrenSlot
569
+ }, commonProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
570
+ _: 2
571
+ /* DYNAMIC */
572
+ }, [
573
+ vue.renderList(_ctx.fieldSlots, (fieldSlot, key) => {
574
+ return {
575
+ name: key,
576
+ fn: vue.withCtx((data) => [
577
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(fieldSlot), vue.mergeProps({
578
+ "model-value": state.value,
579
+ column: params.value
580
+ }, data), null, 16, ["model-value", "column"]))
581
+ ])
582
+ };
583
+ })
584
+ ]), 1040, ["modelValue", "clearable", "field-children-slot"]))
585
+ ],
586
+ 2112
587
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
588
+ ))
496
589
  ],
497
- 2112
498
- /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
499
- ))
590
+ 64
591
+ /* STABLE_FRAGMENT */
592
+ )) : _ctx.valueType === "text" ? (vue.openBlock(), vue.createBlock(
593
+ vue.unref(elementPlus.ElText),
594
+ vue.mergeProps({
595
+ key: 4,
596
+ ref_key: "fieldInstance",
597
+ ref: fieldInstance,
598
+ class: "plus-form-item-field"
599
+ }, customFieldProps.value),
600
+ {
601
+ default: vue.withCtx(() => [
602
+ vue.createTextVNode(
603
+ vue.toDisplayString(state.value),
604
+ 1
605
+ /* TEXT */
606
+ )
607
+ ]),
608
+ _: 1
609
+ /* STABLE */
610
+ },
611
+ 16
612
+ /* FULL_PROPS */
613
+ )) : _ctx.valueType === "divider" ? (vue.openBlock(), vue.createBlock(
614
+ vue.unref(elementPlus.ElDivider),
615
+ vue.mergeProps({
616
+ key: 5,
617
+ ref_key: "fieldInstance",
618
+ ref: fieldInstance,
619
+ class: "plus-form-item-field"
620
+ }, customFieldProps.value),
621
+ {
622
+ default: vue.withCtx(() => [
623
+ vue.createTextVNode(
624
+ vue.toDisplayString(state.value),
625
+ 1
626
+ /* TEXT */
627
+ )
628
+ ]),
629
+ _: 1
630
+ /* STABLE */
631
+ },
632
+ 16
633
+ /* FULL_PROPS */
634
+ )) : (vue.openBlock(), vue.createBlock(vue.unref(ElInput), vue.mergeProps({
635
+ key: 6,
636
+ ref_key: "fieldInstance",
637
+ ref: fieldInstance,
638
+ modelValue: state.value,
639
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => state.value = $event),
640
+ class: "plus-form-item-field",
641
+ placeholder: vue.unref(t)("plus.field.pleaseEnter") + labelValue.value,
642
+ autocomplete: "off",
643
+ clearable: _ctx.clearable
644
+ }, customFieldProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
645
+ _: 2
646
+ /* DYNAMIC */
647
+ }, [
648
+ vue.renderList(_ctx.fieldSlots, (fieldSlot, key) => {
649
+ return {
650
+ name: key,
651
+ fn: vue.withCtx((data) => [
652
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(fieldSlot), vue.mergeProps({
653
+ "model-value": state.value,
654
+ column: params.value
655
+ }, data), null, 16, ["model-value", "column"]))
656
+ ])
657
+ };
658
+ })
659
+ ]), 1040, ["modelValue", "placeholder", "clearable"])),
660
+ vue.createVNode(vue.unref(ElTooltip), {
661
+ visible: placeholderTooltipVisible.value,
662
+ "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => placeholderTooltipVisible.value = $event),
663
+ content: placeholderTooltipContent.value,
664
+ placement: "top",
665
+ "virtual-triggering": "",
666
+ "virtual-ref": placeholderVirtualRef.value,
667
+ disabled: !placeholderTooltipContent.value
668
+ }, null, 8, ["visible", "content", "virtual-ref", "disabled"])
500
669
  ],
501
- 64
502
- /* STABLE_FRAGMENT */
503
- )) : _ctx.valueType === "text" ? (vue.openBlock(), vue.createBlock(
504
- vue.unref(elementPlus.ElText),
505
- vue.mergeProps({
506
- key: 4,
507
- ref_key: "fieldInstance",
508
- ref: fieldInstance,
509
- class: "plus-form-item-field"
510
- }, customFieldProps.value),
511
- {
512
- default: vue.withCtx(() => [
513
- vue.createTextVNode(
514
- vue.toDisplayString(state.value),
515
- 1
516
- /* TEXT */
517
- )
518
- ]),
519
- _: 1
520
- /* STABLE */
521
- },
522
- 16
523
- /* FULL_PROPS */
524
- )) : _ctx.valueType === "divider" ? (vue.openBlock(), vue.createBlock(
525
- vue.unref(elementPlus.ElDivider),
526
- vue.mergeProps({
527
- key: 5,
528
- ref_key: "fieldInstance",
529
- ref: fieldInstance,
530
- class: "plus-form-item-field"
531
- }, customFieldProps.value),
532
- {
533
- default: vue.withCtx(() => [
534
- vue.createTextVNode(
535
- vue.toDisplayString(state.value),
536
- 1
537
- /* TEXT */
538
- )
539
- ]),
540
- _: 1
541
- /* STABLE */
542
- },
543
- 16
544
- /* FULL_PROPS */
545
- )) : (vue.openBlock(), vue.createBlock(vue.unref(ElInput), vue.mergeProps({
546
- key: 6,
547
- ref_key: "fieldInstance",
548
- ref: fieldInstance,
549
- modelValue: state.value,
550
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => state.value = $event),
551
- class: "plus-form-item-field",
552
- placeholder: vue.unref(t)("plus.field.pleaseEnter") + labelValue.value,
553
- autocomplete: "off",
554
- clearable: _ctx.clearable
555
- }, customFieldProps.value, { "onUpdate:modelValue": handleChange }), vue.createSlots({
556
- _: 2
557
- /* DYNAMIC */
558
- }, [
559
- vue.renderList(_ctx.fieldSlots, (fieldSlot, key) => {
560
- return {
561
- name: key,
562
- fn: vue.withCtx((data) => [
563
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(fieldSlot), vue.mergeProps({
564
- "model-value": state.value,
565
- column: params.value
566
- }, data), null, 16, ["model-value", "column"]))
567
- ])
568
- };
569
- })
570
- ]), 1040, ["modelValue", "placeholder", "clearable"]))
670
+ 32
671
+ /* NEED_HYDRATION */
672
+ )
571
673
  ]),
572
674
  _: 2
573
675
  /* DYNAMIC */
@@ -589,31 +691,57 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
589
691
  name: "label",
590
692
  fn: vue.withCtx(({ label: currentLabel }) => [
591
693
  vue.createElementVNode("span", _hoisted_2, [
592
- _ctx.renderLabel && vue.unref(is.isFunction)(_ctx.renderLabel) ? (vue.openBlock(), vue.createElementBlock(
593
- vue.Fragment,
594
- { key: 0 },
595
- [
596
- valueIsReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.PlusRender), {
597
- key: 0,
598
- render: _ctx.renderLabel,
599
- params: params.value,
600
- "callback-value": currentLabel,
601
- "custom-field-props": customFieldProps.value
602
- }, null, 8, ["render", "params", "callback-value", "custom-field-props"])) : vue.createCommentVNode("v-if", true)
603
- ],
604
- 64
605
- /* STABLE_FRAGMENT */
606
- )) : vue.renderSlot(_ctx.$slots, vue.unref(index.getLabelSlotName)(_ctx.prop), vue.normalizeProps(vue.mergeProps({ key: 1 }, params.value)), () => [
607
- vue.createTextVNode(
608
- vue.toDisplayString(currentLabel),
609
- 1
610
- /* TEXT */
611
- )
612
- ]),
694
+ vue.createVNode(vue.unref(ElTooltip), {
695
+ visible: labelTooltipVisible.value,
696
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => labelTooltipVisible.value = $event),
697
+ content: labelTooltipContent.value,
698
+ placement: "top",
699
+ disabled: !labelOverflow.value || !labelTooltipContent.value
700
+ }, {
701
+ default: vue.withCtx(() => [
702
+ vue.createElementVNode(
703
+ "span",
704
+ {
705
+ ref_key: "labelTextRef",
706
+ ref: labelTextRef,
707
+ class: "plus-form-item__label-text",
708
+ onMouseenter: showLabelTooltip,
709
+ onMouseleave: hideLabelTooltip
710
+ },
711
+ [
712
+ _ctx.renderLabel && vue.unref(is.isFunction)(_ctx.renderLabel) ? (vue.openBlock(), vue.createElementBlock(
713
+ vue.Fragment,
714
+ { key: 0 },
715
+ [
716
+ valueIsReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.PlusRender), {
717
+ key: 0,
718
+ render: _ctx.renderLabel,
719
+ params: params.value,
720
+ "callback-value": currentLabel,
721
+ "custom-field-props": customFieldProps.value
722
+ }, null, 8, ["render", "params", "callback-value", "custom-field-props"])) : vue.createCommentVNode("v-if", true)
723
+ ],
724
+ 64
725
+ /* STABLE_FRAGMENT */
726
+ )) : vue.renderSlot(_ctx.$slots, vue.unref(index.getLabelSlotName)(_ctx.prop), vue.normalizeProps(vue.mergeProps({ key: 1 }, params.value)), () => [
727
+ vue.createTextVNode(
728
+ vue.toDisplayString(currentLabel),
729
+ 1
730
+ /* TEXT */
731
+ )
732
+ ])
733
+ ],
734
+ 544
735
+ /* NEED_HYDRATION, NEED_PATCH */
736
+ )
737
+ ]),
738
+ _: 2
739
+ /* DYNAMIC */
740
+ }, 1032, ["visible", "content", "disabled"]),
613
741
  _ctx.tooltip ? (vue.openBlock(), vue.createBlock(
614
742
  vue.unref(ElTooltip),
615
743
  vue.mergeProps({
616
- key: 2,
744
+ key: 0,
617
745
  placement: "top"
618
746
  }, vue.unref(index.getTooltip)(_ctx.tooltip)),
619
747
  {