yc-pro-components 0.0.83 → 0.0.85

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