@vunk/form 2.3.3 → 2.5.0

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 (112) hide show
  1. package/components/api-tables-select/index.cjs +1 -9
  2. package/components/api-tables-select/index.mjs +1 -9
  3. package/components/api-tables-select/src/ctx.d.ts +4 -7
  4. package/components/api-tables-select/src/index.vue.d.ts +10 -9
  5. package/components/button/src/ctx.d.ts +4 -0
  6. package/components/button/src/index.vue.d.ts +9 -0
  7. package/components/card-input-collection/index.cjs +5 -10
  8. package/components/card-input-collection/index.mjs +6 -11
  9. package/components/card-input-collection/src/ctx.d.ts +4 -7
  10. package/components/card-input-collection/src/index.vue.d.ts +9 -9
  11. package/components/cascader/src/ctx.d.ts +5 -1
  12. package/components/cascader/src/index.vue.d.ts +11 -2
  13. package/components/checkbox/src/ctx.d.ts +5 -1
  14. package/components/checkbox/src/index.vue.d.ts +9 -0
  15. package/components/color-picker/src/ctx.d.ts +4 -0
  16. package/components/color-picker/src/index.vue.d.ts +9 -0
  17. package/components/date-picker/src/ctx.d.ts +5 -1
  18. package/components/date-picker/src/index.vue.d.ts +9 -0
  19. package/components/date-picker-range/src/ctx.d.ts +4 -0
  20. package/components/date-picker-range/src/index.vue.d.ts +9 -0
  21. package/components/download-plus/src/ctx.d.ts +4 -0
  22. package/components/download-plus/src/index.vue.d.ts +9 -0
  23. package/components/esri-input-geojson/src/ctx.d.ts +5 -1
  24. package/components/esri-input-geojson/src/index.vue.d.ts +10 -0
  25. package/components/fieldset/index.cjs +106 -0
  26. package/components/fieldset/index.css +5 -0
  27. package/components/fieldset/index.d.ts +4 -0
  28. package/components/fieldset/index.mjs +100 -0
  29. package/components/fieldset/src/ctx.d.ts +7 -0
  30. package/components/fieldset/src/index.vue.d.ts +14 -0
  31. package/components/fieldset/src/types.d.ts +1 -0
  32. package/components/fieldset/src/use.d.ts +5 -0
  33. package/components/form/index.cjs +12 -29
  34. package/components/form/index.mjs +13 -30
  35. package/components/form/src/ctx.d.ts +1 -8
  36. package/components/form/src/index.vue.d.ts +0 -20
  37. package/components/form-item/index.cjs +47 -5
  38. package/components/form-item/index.css +16 -0
  39. package/components/form-item/index.mjs +48 -6
  40. package/components/form-item/src/ctx.d.ts +5 -1
  41. package/components/form-item/src/index.vue.d.ts +12 -0
  42. package/components/form-item/src/types.d.ts +1 -0
  43. package/components/form-item-renderer/index.cjs +49 -7
  44. package/components/form-item-renderer/index.mjs +51 -9
  45. package/components/form-item-renderer/src/core.vue.d.ts +38 -0
  46. package/components/form-item-renderer/src/index.vue.d.ts +67 -12
  47. package/components/information/index.cjs +76 -0
  48. package/components/information/index.d.ts +4 -0
  49. package/components/information/index.mjs +70 -0
  50. package/components/information/src/ctx.d.ts +13 -0
  51. package/components/information/src/index.vue.d.ts +391 -0
  52. package/components/information/src/types.d.ts +3 -0
  53. package/components/information-templates-default/index.cjs +196 -0
  54. package/components/information-templates-default/index.css +12 -0
  55. package/components/information-templates-default/index.d.ts +4 -0
  56. package/components/information-templates-default/index.mjs +190 -0
  57. package/components/information-templates-default/src/ctx.d.ts +2 -0
  58. package/components/information-templates-default/src/index.vue.d.ts +52 -0
  59. package/components/information-templates-default/src/types.d.ts +1 -0
  60. package/components/input/src/ctx.d.ts +5 -1
  61. package/components/input/src/index.vue.d.ts +9 -0
  62. package/components/input-collection/index.cjs +113 -26
  63. package/components/input-collection/index.css +9 -0
  64. package/components/input-collection/index.mjs +114 -27
  65. package/components/input-collection/src/ctx.d.ts +13 -2
  66. package/components/input-collection/src/index.vue.d.ts +43 -5
  67. package/components/input-collection/src/types.d.ts +1 -0
  68. package/components/input-link/src/ctx.d.ts +4 -0
  69. package/components/input-link/src/index.vue.d.ts +9 -0
  70. package/components/input-number/src/ctx.d.ts +5 -1
  71. package/components/input-number/src/index.vue.d.ts +9 -0
  72. package/components/monaco-editor/src/ctx.d.ts +4 -0
  73. package/components/monaco-editor/src/index.vue.d.ts +9 -0
  74. package/components/radio/src/ctx.d.ts +4 -0
  75. package/components/radio/src/index.vue.d.ts +9 -0
  76. package/components/select/src/ctx.d.ts +5 -1
  77. package/components/select/src/index.vue.d.ts +9 -0
  78. package/components/slider/src/ctx.d.ts +4 -0
  79. package/components/slider/src/index.vue.d.ts +9 -0
  80. package/components/switch/src/ctx.d.ts +4 -0
  81. package/components/switch/src/index.vue.d.ts +9 -0
  82. package/components/tables-select/src/ctx.d.ts +5 -1
  83. package/components/tables-select/src/index.vue.d.ts +18 -0
  84. package/components/tag-information/index.cjs +114 -0
  85. package/components/tag-information/index.css +6 -0
  86. package/components/tag-information/index.d.ts +4 -0
  87. package/components/tag-information/index.mjs +108 -0
  88. package/components/tag-information/src/ctx.d.ts +34 -0
  89. package/components/tag-information/src/index.vue.d.ts +912 -0
  90. package/components/tag-information/src/types.d.ts +1 -0
  91. package/components/template-instances-provider/index.cjs +8 -13
  92. package/components/template-instances-provider/index.mjs +8 -13
  93. package/components/template-instances-provider/src/index.vue.d.ts +4 -14
  94. package/components/upload/src/ctx.d.ts +5 -1
  95. package/components/upload/src/index.vue.d.ts +9 -0
  96. package/components/upload-plus/src/ctx.d.ts +4 -0
  97. package/components/upload-plus/src/index.vue.d.ts +9 -0
  98. package/components/van-cascader/src/ctx.d.ts +4 -0
  99. package/components/van-cascader/src/index.vue.d.ts +76 -12803
  100. package/components/var-datetime-picker/src/ctx.d.ts +4 -0
  101. package/components/var-datetime-picker/src/index.vue.d.ts +9 -0
  102. package/components/vditor/src/ctx.d.ts +4 -0
  103. package/components/vditor/src/index.vue.d.ts +9 -0
  104. package/composables/index.cjs +31 -5
  105. package/composables/index.mjs +31 -6
  106. package/composables/useTemplateInstances.d.ts +6 -1
  107. package/index.css +51 -0
  108. package/index.d.ts +1 -0
  109. package/index.esm.js +1 -0
  110. package/package.json +30 -1
  111. package/shared/element-plus/ctx.d.ts +4 -4
  112. package/shared/types/index.d.ts +4 -1
@@ -43,13 +43,6 @@ export declare const props: {
43
43
  type: PropType<Partial<ColItem>>;
44
44
  default: () => ColItem;
45
45
  };
46
- /**
47
- * 是否继承父级模板
48
- */
49
- inheritTemplates: {
50
- type: BooleanConstructor;
51
- default: boolean;
52
- };
53
46
  model: ObjectConstructor;
54
47
  rules: {
55
48
  readonly type: import("vue").PropType<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("element-plus").FormItemRule>>>>;
@@ -82,7 +75,7 @@ export declare const props: {
82
75
  };
83
76
  disabled: BooleanConstructor;
84
77
  };
85
- export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"size", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"data", keyof T2> | Extract<"layout", keyof T2> | Extract<"inheritTemplates", keyof T2> | Extract<"model", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2>)[]>(propsArg: T2, excludes?: EX) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "inheritTemplates" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>, KE> : Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "inheritTemplates" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>]: { [k in Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "inheritTemplates" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>]: T2[k]; }[P]; }>;
78
+ export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"size", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"data", keyof T2> | Extract<"layout", keyof T2> | Extract<"model", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2>)[]>(propsArg: T2, excludes?: EX) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>, KE> : Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>]: { [k in Extract<"size" | "elRef" | "inline" | "readonly" | "labelWidth" | "labelPosition" | "rules" | "inlineMessage" | "showMessage" | "disabled" | "data" | "layout" | "model" | "requireAsteriskPosition" | "labelSuffix" | "statusIcon" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "scrollIntoViewOptions" | "formItems" | "rowSource" | "colSource", keyof T2>]: T2[k]; }[P]; }>;
86
79
  export declare const emits: {
87
80
  setData: (e: SetDataEvent) => SetDataEvent;
88
81
  validate: any;
@@ -28,10 +28,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
28
28
  type: import("vue").PropType<Partial<import("./types").ColItem>>;
29
29
  default: () => import("./types").ColItem;
30
30
  };
31
- inheritTemplates: {
32
- type: BooleanConstructor;
33
- default: boolean;
34
- };
35
31
  model: ObjectConstructor;
36
32
  rules: {
37
33
  readonly type: import("vue").PropType<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("element-plus").FormItemRule>>>>;
@@ -119,10 +115,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
119
115
  type: import("vue").PropType<Partial<import("./types").ColItem>>;
120
116
  default: () => import("./types").ColItem;
121
117
  };
122
- inheritTemplates: {
123
- type: BooleanConstructor;
124
- default: boolean;
125
- };
126
118
  model: ObjectConstructor;
127
119
  rules: {
128
120
  readonly type: import("vue").PropType<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("element-plus").FormItemRule>>>>;
@@ -352,7 +344,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
352
344
  disabled: boolean;
353
345
  data: Record<string, any>;
354
346
  layout: boolean;
355
- inheritTemplates: boolean;
356
347
  requireAsteriskPosition: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "left" | "right", unknown>;
357
348
  labelSuffix: string;
358
349
  statusIcon: boolean;
@@ -363,17 +354,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
363
354
  rowSource: Partial<RowItem>;
364
355
  colSource: Partial<import("./types").ColItem>;
365
356
  }, {}, {
366
- VkfTemplateInstancesProvider: {
367
- new (...args: any[]): any;
368
- __isFragment?: never;
369
- __isTeleport?: never;
370
- __isSuspense?: never;
371
- } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<Record<string | symbol, any>>>, Record<string | symbol, any>, any, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
372
- [x: string]: any;
373
- [x: symbol]: any;
374
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
375
- install(app: import("vue").App): void;
376
- };
377
357
  VkfRendererData: {
378
358
  new (...args: any[]): any;
379
359
  __isFragment?: never;
@@ -42,6 +42,10 @@ const _props = {
42
42
  labelTip: {
43
43
  type: String,
44
44
  default: void 0
45
+ },
46
+ information: {
47
+ type: Boolean,
48
+ default: false
45
49
  }
46
50
  };
47
51
  Reflect.deleteProperty(_props, "size");
@@ -64,7 +68,7 @@ var _sfc_main = vue.defineComponent({
64
68
  ElButton: elementPlus.ElButton
65
69
  },
66
70
  props,
67
- setup(props2) {
71
+ setup(props2, { slots }) {
68
72
  const formItemBindProps = elementPlus$1.createFormItemBindProps(props2, ["rules"]);
69
73
  const readonly = composables.useComputedReadonly(props2);
70
74
  const globalConfig = elementPlus.useGlobalConfig();
@@ -114,15 +118,48 @@ var _sfc_main = vue.defineComponent({
114
118
  });
115
119
  return data;
116
120
  });
121
+ const elFormItemSlots = vue.computed(() => {
122
+ const slots2 = {};
123
+ const keys = ["label", "default", "error"];
124
+ const formItemSlots = props2.formItemSlots;
125
+ if (formItemSlots) {
126
+ Object.keys(formItemSlots).forEach((key) => {
127
+ if (keys.includes(key)) {
128
+ slots2[key] = formItemSlots?.[key];
129
+ }
130
+ });
131
+ }
132
+ return slots2;
133
+ });
134
+ const customSlots = vue.computed(() => {
135
+ const theSlots = {
136
+ labelActions: slots?.labelActions ? () => slots.labelActions?.() : void 0
137
+ };
138
+ const keys = ["labelActions"];
139
+ const formItemSlots = props2.formItemSlots;
140
+ formItemSlots && Object.keys(formItemSlots).filter(keys.includes).forEach((key) => {
141
+ const slot = formItemSlots?.[key];
142
+ if (slot) {
143
+ theSlots[key] = slot;
144
+ }
145
+ });
146
+ return theSlots;
147
+ });
117
148
  return {
118
149
  formItemBindProps,
119
150
  readonly,
120
151
  rules: rules$1,
121
- localeName
152
+ localeName,
153
+ elFormItemSlots,
154
+ customSlots
122
155
  };
123
156
  }
124
157
  });
125
158
 
159
+ const _hoisted_1 = {
160
+ key: 1,
161
+ class: "vk-form-item-label__actions"
162
+ };
126
163
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
127
164
  const _component_Warning = vue.resolveComponent("Warning");
128
165
  const _component_ElIcon = vue.resolveComponent("ElIcon");
@@ -134,7 +171,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
134
171
  class: ["vkf-form-item", {
135
172
  "is-readonly": _ctx.readonly,
136
173
  "vkf-form-item--inline": _ctx.inline,
137
- "is-empty-label": !_ctx.label
174
+ "is-empty-label": !_ctx.label,
175
+ "is-information": _ctx.information,
176
+ "has-label-actions": _ctx.customSlots.labelActions
138
177
  }],
139
178
  size: _ctx.formItemSize,
140
179
  rules: _ctx.rules
@@ -197,11 +236,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
197
236
  ]),
198
237
  _: 1
199
238
  /* STABLE */
200
- }, 8, ["content"])) : vue.createCommentVNode("v-if", true)
239
+ }, 8, ["content"])) : vue.createCommentVNode("v-if", true),
240
+ _ctx.customSlots.labelActions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
241
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.customSlots.labelActions)))
242
+ ])) : vue.createCommentVNode("v-if", true)
201
243
  ]),
202
244
  key: "0"
203
245
  } : void 0,
204
- vue.renderList(_ctx.formItemSlots, (item, key) => {
246
+ vue.renderList(_ctx.elFormItemSlots, (item, key) => {
205
247
  return {
206
248
  name: key,
207
249
  fn: vue.withCtx((e) => [
@@ -1,3 +1,6 @@
1
+ .vkf-form-item.is-information{
2
+ margin-bottom: 0;
3
+ }
1
4
  .vkf-form-item--inline{
2
5
  display: inline-flex;
3
6
  }
@@ -17,3 +20,16 @@
17
20
  .vkf-form-item.is-empty-label .el-form-item__label:before{
18
21
  display: none;
19
22
  }
23
+ .vkf-form-item.has-label-actions > .el-form-item__label {
24
+ width: 100%;
25
+ padding-right: 0;
26
+ }
27
+ .vk-form-item-label__actions {
28
+ float: right;
29
+ align-items: center;
30
+ display: none;
31
+ height: 1.8em;
32
+ }
33
+ .el-form-item--label-top .vk-form-item-label__actions {
34
+ display: inline-flex;
35
+ }
@@ -1,6 +1,6 @@
1
1
  import { formItemProps, ElFormItem, ElIcon, ElTooltip, ElButton, useGlobalConfig } from 'element-plus';
2
2
  import { bindPropsFactory } from '@vunk/core/shared/utils-vue';
3
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, renderSlot, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode, createVNode, renderList, resolveDynamicComponent } from 'vue';
3
+ import { defineComponent, computed, resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, renderSlot, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode, createVNode, resolveDynamicComponent, renderList } from 'vue';
4
4
  import { createFormItemBindProps } from '@vunk/form/shared/element-plus';
5
5
  import { useComputedReadonly } from '@vunk/form/composables';
6
6
  import { isPlainObject } from '@vunk/core/shared/utils-object';
@@ -38,6 +38,10 @@ const _props = {
38
38
  labelTip: {
39
39
  type: String,
40
40
  default: void 0
41
+ },
42
+ information: {
43
+ type: Boolean,
44
+ default: false
41
45
  }
42
46
  };
43
47
  Reflect.deleteProperty(_props, "size");
@@ -60,7 +64,7 @@ var _sfc_main = defineComponent({
60
64
  ElButton
61
65
  },
62
66
  props,
63
- setup(props2) {
67
+ setup(props2, { slots }) {
64
68
  const formItemBindProps = createFormItemBindProps(props2, ["rules"]);
65
69
  const readonly = useComputedReadonly(props2);
66
70
  const globalConfig = useGlobalConfig();
@@ -110,15 +114,48 @@ var _sfc_main = defineComponent({
110
114
  });
111
115
  return data;
112
116
  });
117
+ const elFormItemSlots = computed(() => {
118
+ const slots2 = {};
119
+ const keys = ["label", "default", "error"];
120
+ const formItemSlots = props2.formItemSlots;
121
+ if (formItemSlots) {
122
+ Object.keys(formItemSlots).forEach((key) => {
123
+ if (keys.includes(key)) {
124
+ slots2[key] = formItemSlots?.[key];
125
+ }
126
+ });
127
+ }
128
+ return slots2;
129
+ });
130
+ const customSlots = computed(() => {
131
+ const theSlots = {
132
+ labelActions: slots?.labelActions ? () => slots.labelActions?.() : void 0
133
+ };
134
+ const keys = ["labelActions"];
135
+ const formItemSlots = props2.formItemSlots;
136
+ formItemSlots && Object.keys(formItemSlots).filter(keys.includes).forEach((key) => {
137
+ const slot = formItemSlots?.[key];
138
+ if (slot) {
139
+ theSlots[key] = slot;
140
+ }
141
+ });
142
+ return theSlots;
143
+ });
113
144
  return {
114
145
  formItemBindProps,
115
146
  readonly,
116
147
  rules,
117
- localeName
148
+ localeName,
149
+ elFormItemSlots,
150
+ customSlots
118
151
  };
119
152
  }
120
153
  });
121
154
 
155
+ const _hoisted_1 = {
156
+ key: 1,
157
+ class: "vk-form-item-label__actions"
158
+ };
122
159
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
123
160
  const _component_Warning = resolveComponent("Warning");
124
161
  const _component_ElIcon = resolveComponent("ElIcon");
@@ -130,7 +167,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
130
167
  class: ["vkf-form-item", {
131
168
  "is-readonly": _ctx.readonly,
132
169
  "vkf-form-item--inline": _ctx.inline,
133
- "is-empty-label": !_ctx.label
170
+ "is-empty-label": !_ctx.label,
171
+ "is-information": _ctx.information,
172
+ "has-label-actions": _ctx.customSlots.labelActions
134
173
  }],
135
174
  size: _ctx.formItemSize,
136
175
  rules: _ctx.rules
@@ -193,11 +232,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
193
232
  ]),
194
233
  _: 1
195
234
  /* STABLE */
196
- }, 8, ["content"])) : createCommentVNode("v-if", true)
235
+ }, 8, ["content"])) : createCommentVNode("v-if", true),
236
+ _ctx.customSlots.labelActions ? (openBlock(), createElementBlock("div", _hoisted_1, [
237
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.customSlots.labelActions)))
238
+ ])) : createCommentVNode("v-if", true)
197
239
  ]),
198
240
  key: "0"
199
241
  } : void 0,
200
- renderList(_ctx.formItemSlots, (item, key) => {
242
+ renderList(_ctx.elFormItemSlots, (item, key) => {
201
243
  return {
202
244
  name: key,
203
245
  fn: withCtx((e) => [
@@ -30,6 +30,10 @@ declare const _props: {
30
30
  type: StringConstructor;
31
31
  default: any;
32
32
  };
33
+ information: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
33
37
  label: StringConstructor;
34
38
  labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
35
39
  labelPosition: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "top" | "left" | "right", unknown, "", boolean>;
@@ -64,5 +68,5 @@ declare const _props: {
64
68
  };
65
69
  };
66
70
  export declare const props: Omit<typeof _props, "size">;
67
- export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"required", keyof T2> | Extract<"formItemSize", keyof T2> | Extract<"formItemSlots", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"formItemTip", keyof T2> | Extract<"formItemTipClass", keyof T2> | Extract<"labelTip", keyof T2> | Extract<"label", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"prop", keyof T2> | Extract<"rules", keyof T2> | Extract<"error", keyof T2> | Extract<"validateStatus", keyof T2> | Extract<"for", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2>)[]>(propsArg: T2, excludes?: EX) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>, KE> : Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>]: { [k in Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>]: T2[k]; }[P]; }>;
71
+ export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"required", keyof T2> | Extract<"formItemSize", keyof T2> | Extract<"formItemSlots", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"formItemTip", keyof T2> | Extract<"formItemTipClass", keyof T2> | Extract<"labelTip", keyof T2> | Extract<"information", keyof T2> | Extract<"label", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"prop", keyof T2> | Extract<"rules", keyof T2> | Extract<"error", keyof T2> | Extract<"validateStatus", keyof T2> | Extract<"for", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2>)[]>(propsArg: T2, excludes?: EX) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "information" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>, KE> : Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "information" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>]: { [k in Extract<"required" | "formItemSize" | "formItemSlots" | "elRef" | "inline" | "readonly" | "formItemTip" | "formItemTipClass" | "labelTip" | "information" | "label" | "labelWidth" | "labelPosition" | "prop" | "rules" | "error" | "validateStatus" | "for" | "inlineMessage" | "showMessage", keyof T2>]: T2[k]; }[P]; }>;
68
72
  export {};
@@ -1,4 +1,5 @@
1
1
  import { FormItemRule } from 'element-plus';
2
+ import { NormalObject } from '@vunk/shared';
2
3
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<Omit<{
3
4
  formItemSize: {
4
5
  type: import("vue").PropType<"default" | "small" | "large">;
@@ -29,6 +30,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
29
30
  type: StringConstructor;
30
31
  default: any;
31
32
  };
33
+ information: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
32
37
  label: StringConstructor;
33
38
  labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
34
39
  labelPosition: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "top" | "left" | "right", unknown, "", boolean>;
@@ -77,6 +82,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
77
82
  readonly: import("vue").ComputedRef<boolean>;
78
83
  rules: import("vue").ComputedRef<FormItemRule[]>;
79
84
  localeName: import("vue").ComputedRef<string>;
85
+ elFormItemSlots: import("vue").ComputedRef<NormalObject>;
86
+ customSlots: import("vue").ComputedRef<NormalObject>;
80
87
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<Omit<{
81
88
  formItemSize: {
82
89
  type: import("vue").PropType<"default" | "small" | "large">;
@@ -107,6 +114,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
107
114
  type: StringConstructor;
108
115
  default: any;
109
116
  };
117
+ information: {
118
+ type: BooleanConstructor;
119
+ default: boolean;
120
+ };
110
121
  label: StringConstructor;
111
122
  labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
112
123
  labelPosition: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "top" | "left" | "right", unknown, "", boolean>;
@@ -148,6 +159,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
148
159
  formItemTip: string;
149
160
  formItemTipClass: any;
150
161
  labelTip: string;
162
+ information: boolean;
151
163
  labelWidth: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
152
164
  labelPosition: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "top" | "left" | "right", unknown>;
153
165
  inlineMessage: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
@@ -3,4 +3,5 @@ export type FormItemSlots = {
3
3
  label: Func<{
4
4
  label: string;
5
5
  }>;
6
+ labelActions: Func;
6
7
  };
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
+ var templateInstancesProvider = require('@vunk/form/components/template-instances-provider');
6
7
  var form = require('@vunk/form/shared/form');
7
8
  var composables = require('@vunk/form/composables');
8
9
  var _pluginVue_exportHelper = require('../_plugin-vue_export-helper.cjs');
@@ -27,14 +28,12 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
27
28
  name: "VkfFormItemRenderer",
28
29
  props: props,
29
30
  setup(props, ctx) {
30
- const parentTemplateInstance = composables.useTemplateInstances();
31
+ const { templateInstances, getTemplateInstance } = composables.useTemplateInstancesContext();
31
32
  const {
32
33
  emitSetData,
33
34
  data: rendererData,
34
35
  getDataValue
35
36
  } = composables.useRendererData();
36
- const templateInstances = props.templateInstances ?? parentTemplateInstance ?? vue.shallowReactive({});
37
- vue.provide("vkTemplateInstances", templateInstances);
38
37
  const Renderer = (props2) => {
39
38
  return vue.h(VkfFormItemRenderer$1, {
40
39
  templateInstances,
@@ -47,7 +46,7 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
47
46
  const currentK = [...props.k, ...pK, index];
48
47
  const validateTemplateType = () => {
49
48
  vue.nextTick(() => {
50
- if (c.templateType && !templateInstances[c.templateType]) {
49
+ if (c.templateType && !getTemplateInstance(c.templateType)) {
51
50
  console.warn(
52
51
  c.templateType,
53
52
  "templateType\u4E0D\u5B58\u5728\u5C06\u8DF3\u8FC7"
@@ -55,7 +54,7 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
55
54
  }
56
55
  });
57
56
  };
58
- if (c.templateType && templateInstances[c.templateType]) {
57
+ if (c.templateType && getTemplateInstance(c.templateType)) {
59
58
  const templateIf = form.genTemplateIfFunc(c.templateIf);
60
59
  const preTemplateVisible = rendererData ? templateIf(rendererData.value) : true;
61
60
  if (!preTemplateVisible) return a;
@@ -70,7 +69,7 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
70
69
  v
71
70
  })
72
71
  });
73
- const nodes = templateInstances[c.templateType].slots.default?.({
72
+ const nodes = getTemplateInstance(c.templateType)?.slots.default?.({
74
73
  // for legacy
75
74
  data: slotData,
76
75
  raw: c,
@@ -101,7 +100,50 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
101
100
  }
102
101
  });
103
102
 
104
- var VkfFormItemRenderer = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(VkfFormItemRenderer$1, [["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/index.vue"]]);
103
+ var Core = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(VkfFormItemRenderer$1, [["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/core.vue"]]);
104
+
105
+ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
106
+ __name: "index",
107
+ props: props,
108
+ setup(__props, { expose: __expose }) {
109
+ __expose();
110
+ const props = __props;
111
+ const __returned__ = { props, get VkfTemplateInstancesProvider() {
112
+ return templateInstancesProvider.VkfTemplateInstancesProvider;
113
+ }, Core };
114
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
115
+ return __returned__;
116
+ }
117
+ });
118
+
119
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
120
+ return vue.openBlock(), vue.createBlock($setup["VkfTemplateInstancesProvider"], null, {
121
+ placeholder: vue.withCtx(() => [
122
+ vue.renderSlot(_ctx.$slots, "placeholder")
123
+ ]),
124
+ default: vue.withCtx(() => [
125
+ vue.createVNode(
126
+ $setup["Core"],
127
+ vue.normalizeProps(vue.guardReactiveProps({
128
+ ...$setup.props,
129
+ ..._ctx.$attrs
130
+ })),
131
+ {
132
+ default: vue.withCtx(() => [
133
+ vue.renderSlot(_ctx.$slots, "default")
134
+ ]),
135
+ _: 3
136
+ /* FORWARDED */
137
+ },
138
+ 16
139
+ /* FULL_PROPS */
140
+ )
141
+ ]),
142
+ _: 3
143
+ /* FORWARDED */
144
+ });
145
+ }
146
+ var VkfFormItemRenderer = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/index.vue"]]);
105
147
 
106
148
  var types = /*#__PURE__*/Object.freeze({
107
149
  __proto__: null
@@ -1,6 +1,7 @@
1
- import { defineComponent, shallowReactive, provide, computed, h, nextTick } from 'vue';
1
+ import { defineComponent, computed, h, nextTick, openBlock, createBlock, withCtx, renderSlot, createVNode, normalizeProps, guardReactiveProps } from 'vue';
2
+ import { VkfTemplateInstancesProvider } from '@vunk/form/components/template-instances-provider';
2
3
  import { genTemplateIfFunc } from '@vunk/form/shared/form';
3
- import { useTemplateInstances, useRendererData } from '@vunk/form/composables';
4
+ import { useTemplateInstancesContext, useRendererData } from '@vunk/form/composables';
4
5
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
5
6
 
6
7
  const props = {
@@ -23,14 +24,12 @@ const VkfFormItemRenderer$1 = defineComponent({
23
24
  name: "VkfFormItemRenderer",
24
25
  props: props,
25
26
  setup(props, ctx) {
26
- const parentTemplateInstance = useTemplateInstances();
27
+ const { templateInstances, getTemplateInstance } = useTemplateInstancesContext();
27
28
  const {
28
29
  emitSetData,
29
30
  data: rendererData,
30
31
  getDataValue
31
32
  } = useRendererData();
32
- const templateInstances = props.templateInstances ?? parentTemplateInstance ?? shallowReactive({});
33
- provide("vkTemplateInstances", templateInstances);
34
33
  const Renderer = (props2) => {
35
34
  return h(VkfFormItemRenderer$1, {
36
35
  templateInstances,
@@ -43,7 +42,7 @@ const VkfFormItemRenderer$1 = defineComponent({
43
42
  const currentK = [...props.k, ...pK, index];
44
43
  const validateTemplateType = () => {
45
44
  nextTick(() => {
46
- if (c.templateType && !templateInstances[c.templateType]) {
45
+ if (c.templateType && !getTemplateInstance(c.templateType)) {
47
46
  console.warn(
48
47
  c.templateType,
49
48
  "templateType\u4E0D\u5B58\u5728\u5C06\u8DF3\u8FC7"
@@ -51,7 +50,7 @@ const VkfFormItemRenderer$1 = defineComponent({
51
50
  }
52
51
  });
53
52
  };
54
- if (c.templateType && templateInstances[c.templateType]) {
53
+ if (c.templateType && getTemplateInstance(c.templateType)) {
55
54
  const templateIf = genTemplateIfFunc(c.templateIf);
56
55
  const preTemplateVisible = rendererData ? templateIf(rendererData.value) : true;
57
56
  if (!preTemplateVisible) return a;
@@ -66,7 +65,7 @@ const VkfFormItemRenderer$1 = defineComponent({
66
65
  v
67
66
  })
68
67
  });
69
- const nodes = templateInstances[c.templateType].slots.default?.({
68
+ const nodes = getTemplateInstance(c.templateType)?.slots.default?.({
70
69
  // for legacy
71
70
  data: slotData,
72
71
  raw: c,
@@ -97,7 +96,50 @@ const VkfFormItemRenderer$1 = defineComponent({
97
96
  }
98
97
  });
99
98
 
100
- var VkfFormItemRenderer = /* @__PURE__ */ _export_sfc(VkfFormItemRenderer$1, [["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/index.vue"]]);
99
+ var Core = /* @__PURE__ */ _export_sfc(VkfFormItemRenderer$1, [["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/core.vue"]]);
100
+
101
+ var _sfc_main = /* @__PURE__ */ defineComponent({
102
+ __name: "index",
103
+ props: props,
104
+ setup(__props, { expose: __expose }) {
105
+ __expose();
106
+ const props = __props;
107
+ const __returned__ = { props, get VkfTemplateInstancesProvider() {
108
+ return VkfTemplateInstancesProvider;
109
+ }, Core };
110
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
111
+ return __returned__;
112
+ }
113
+ });
114
+
115
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
116
+ return openBlock(), createBlock($setup["VkfTemplateInstancesProvider"], null, {
117
+ placeholder: withCtx(() => [
118
+ renderSlot(_ctx.$slots, "placeholder")
119
+ ]),
120
+ default: withCtx(() => [
121
+ createVNode(
122
+ $setup["Core"],
123
+ normalizeProps(guardReactiveProps({
124
+ ...$setup.props,
125
+ ..._ctx.$attrs
126
+ })),
127
+ {
128
+ default: withCtx(() => [
129
+ renderSlot(_ctx.$slots, "default")
130
+ ]),
131
+ _: 3
132
+ /* FORWARDED */
133
+ },
134
+ 16
135
+ /* FULL_PROPS */
136
+ )
137
+ ]),
138
+ _: 3
139
+ /* FORWARDED */
140
+ });
141
+ }
142
+ var VkfFormItemRenderer = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/form-item-renderer/src/index.vue"]]);
101
143
 
102
144
  var types = /*#__PURE__*/Object.freeze({
103
145
  __proto__: null
@@ -0,0 +1,38 @@
1
+ import { VNode } from 'vue';
2
+ import { RendererTreeData } from './types';
3
+ declare const VkfFormItemRenderer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ source: {
5
+ type: import("vue").PropType<RendererTreeData[]>;
6
+ default: () => any[];
7
+ };
8
+ templateInstances: {
9
+ type: import("vue").PropType<Record<string, import("vue").ComponentInternalInstance>>;
10
+ default: any;
11
+ };
12
+ k: {
13
+ type: import("vue").PropType<(string | number)[]>;
14
+ default: () => any[];
15
+ };
16
+ }>, () => (VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
+ [key: string]: any;
18
+ }>[] | VNode<import("vue").RendererNode, import("vue").RendererElement, {
19
+ [key: string]: any;
20
+ }>[][])[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
+ source: {
22
+ type: import("vue").PropType<RendererTreeData[]>;
23
+ default: () => any[];
24
+ };
25
+ templateInstances: {
26
+ type: import("vue").PropType<Record<string, import("vue").ComponentInternalInstance>>;
27
+ default: any;
28
+ };
29
+ k: {
30
+ type: import("vue").PropType<(string | number)[]>;
31
+ default: () => any[];
32
+ };
33
+ }>> & Readonly<{}>, {
34
+ source: RendererTreeData[];
35
+ templateInstances: Record<string, import("vue").ComponentInternalInstance>;
36
+ k: (string | number)[];
37
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
+ export default VkfFormItemRenderer;