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