@vunk/form 1.4.3 → 1.4.5

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 (197) hide show
  1. package/components/cascader/index.cjs +3 -3
  2. package/components/cascader/index.mjs +3 -3
  3. package/components/color-picker/index.cjs +1 -1
  4. package/components/color-picker/index.mjs +1 -1
  5. package/components/form/index.cjs +1 -1
  6. package/components/form/index.mjs +1 -1
  7. package/components/form-item-renderer/index.cjs +1 -0
  8. package/components/form-item-renderer/index.mjs +1 -0
  9. package/components/input/index.cjs +2 -6
  10. package/components/input/index.mjs +2 -6
  11. package/components/input-collection/index.cjs +17 -5
  12. package/components/input-collection/index.mjs +18 -6
  13. package/components/input-link/index.cjs +7 -7
  14. package/components/input-link/index.mjs +7 -7
  15. package/components/radio/index.cjs +3 -3
  16. package/components/radio/index.mjs +3 -3
  17. package/components/templates-default/index.cjs +0 -2
  18. package/components/templates-default/index.mjs +0 -2
  19. package/components/templates-layout/index.cjs +1 -1
  20. package/components/templates-layout/index.mjs +1 -1
  21. package/package.json +1 -1
  22. package/components/button/index.d.ts +0 -4
  23. package/components/button/src/ctx.d.ts +0 -96
  24. package/components/button/src/index.vue.d.ts +0 -495
  25. package/components/button/src/types.d.ts +0 -13
  26. package/components/cascader/index.d.ts +0 -6
  27. package/components/cascader/src/ctx.d.ts +0 -120
  28. package/components/cascader/src/index.vue.d.ts +0 -13955
  29. package/components/cascader/src/types.d.ts +0 -7
  30. package/components/cascader/src/use.d.ts +0 -5
  31. package/components/checkbox/index.d.ts +0 -5
  32. package/components/checkbox/src/ctx.d.ts +0 -89
  33. package/components/checkbox/src/index.vue.d.ts +0 -1099
  34. package/components/checkbox/src/types.d.ts +0 -8
  35. package/components/color-picker/index.d.ts +0 -4
  36. package/components/color-picker/src/ctx.d.ts +0 -80
  37. package/components/color-picker/src/index.vue.d.ts +0 -11135
  38. package/components/color-picker/src/types.d.ts +0 -7
  39. package/components/date-picker/index.d.ts +0 -5
  40. package/components/date-picker/src/ctx.d.ts +0 -158
  41. package/components/date-picker/src/index.vue.d.ts +0 -590
  42. package/components/date-picker/src/types.d.ts +0 -20
  43. package/components/date-picker-range/index.d.ts +0 -4
  44. package/components/date-picker-range/src/ctx.d.ts +0 -177
  45. package/components/date-picker-range/src/index.vue.d.ts +0 -410
  46. package/components/date-picker-range/src/types.d.ts +0 -12
  47. package/components/download-plus/index.d.ts +0 -4
  48. package/components/download-plus/src/api.d.ts +0 -13
  49. package/components/download-plus/src/const.d.ts +0 -9
  50. package/components/download-plus/src/ctx.d.ts +0 -84
  51. package/components/download-plus/src/index.vue.d.ts +0 -1020
  52. package/components/download-plus/src/types.d.ts +0 -17
  53. package/components/esri-input-geojson/index.d.ts +0 -6
  54. package/components/esri-input-geojson/src/append.vue.d.ts +0 -2259
  55. package/components/esri-input-geojson/src/const.d.ts +0 -12
  56. package/components/esri-input-geojson/src/ctx.d.ts +0 -223
  57. package/components/esri-input-geojson/src/default-view.vue.d.ts +0 -133
  58. package/components/esri-input-geojson/src/index.vue.d.ts +0 -1249
  59. package/components/esri-input-geojson/src/types.d.ts +0 -22
  60. package/components/esri-input-geojson/src/viewer.vue.d.ts +0 -427
  61. package/components/form/index.d.ts +0 -5
  62. package/components/form/src/ctx.d.ts +0 -84
  63. package/components/form/src/index.vue.d.ts +0 -789
  64. package/components/form/src/types.d.ts +0 -12
  65. package/components/form/src/utils.d.ts +0 -15
  66. package/components/form-item/index.d.ts +0 -5
  67. package/components/form-item/src/ctx.d.ts +0 -62
  68. package/components/form-item/src/index.vue.d.ts +0 -320
  69. package/components/form-item/src/types.d.ts +0 -6
  70. package/components/form-item-renderer/index.d.ts +0 -5
  71. package/components/form-item-renderer/src/ctx.d.ts +0 -16
  72. package/components/form-item-renderer/src/index.vue.d.ts +0 -38
  73. package/components/form-item-renderer/src/symbols.d.ts +0 -3
  74. package/components/form-item-renderer/src/types.d.ts +0 -7
  75. package/components/form-item-renderer-template/index.d.ts +0 -4
  76. package/components/form-item-renderer-template/src/ctx.d.ts +0 -7
  77. package/components/form-item-renderer-template/src/index.vue.d.ts +0 -16
  78. package/components/form-item-renderer-template/src/types.d.ts +0 -1
  79. package/components/geoinput/index.d.ts +0 -4
  80. package/components/geoinput/src/ctx.d.ts +0 -228
  81. package/components/geoinput/src/index.vue.d.ts +0 -519
  82. package/components/geoinput/src/types.d.ts +0 -12
  83. package/components/geoinput-read/index.d.ts +0 -5
  84. package/components/geoinput-read/src/append.vue.d.ts +0 -383
  85. package/components/geoinput-read/src/core.vue.d.ts +0 -644
  86. package/components/geoinput-read/src/ctx.d.ts +0 -199
  87. package/components/geoinput-read/src/index.vue.d.ts +0 -1169
  88. package/components/geoinput-read/src/types.d.ts +0 -3
  89. package/components/geoinput-update/index.d.ts +0 -5
  90. package/components/geoinput-update/src/append.vue.d.ts +0 -2246
  91. package/components/geoinput-update/src/ctx.d.ts +0 -207
  92. package/components/geoinput-update/src/index.vue.d.ts +0 -1302
  93. package/components/geoinput-update/src/types.d.ts +0 -6
  94. package/components/input/index.d.ts +0 -5
  95. package/components/input/src/ctx.d.ts +0 -148
  96. package/components/input/src/index.vue.d.ts +0 -809
  97. package/components/input/src/types.d.ts +0 -13
  98. package/components/input-collection/index.d.ts +0 -4
  99. package/components/input-collection/src/ctx.d.ts +0 -72
  100. package/components/input-collection/src/index.vue.d.ts +0 -1158
  101. package/components/input-collection/src/types.d.ts +0 -19
  102. package/components/input-link/index.d.ts +0 -4
  103. package/components/input-link/src/ctx.d.ts +0 -179
  104. package/components/input-link/src/index.vue.d.ts +0 -385
  105. package/components/input-link/src/types.d.ts +0 -7
  106. package/components/input-number/index.d.ts +0 -4
  107. package/components/input-number/src/ctx.d.ts +0 -90
  108. package/components/input-number/src/index.vue.d.ts +0 -1783
  109. package/components/input-number/src/types.d.ts +0 -8
  110. package/components/monaco-editor/index.d.ts +0 -4
  111. package/components/monaco-editor/src/ctx.d.ts +0 -70
  112. package/components/monaco-editor/src/index.vue.d.ts +0 -209
  113. package/components/monaco-editor/src/types.d.ts +0 -7
  114. package/components/radio/index.d.ts +0 -4
  115. package/components/radio/src/ctx.d.ts +0 -82
  116. package/components/radio/src/index.vue.d.ts +0 -629
  117. package/components/radio/src/types.d.ts +0 -8
  118. package/components/select/index.d.ts +0 -4
  119. package/components/select/src/ctx.d.ts +0 -156
  120. package/components/select/src/index.vue.d.ts +0 -13405
  121. package/components/select/src/types.d.ts +0 -11
  122. package/components/slider/index.d.ts +0 -4
  123. package/components/slider/src/ctx.d.ts +0 -127
  124. package/components/slider/src/index.vue.d.ts +0 -341
  125. package/components/slider/src/types.d.ts +0 -7
  126. package/components/switch/index.d.ts +0 -4
  127. package/components/switch/src/ctx.d.ts +0 -114
  128. package/components/switch/src/index.vue.d.ts +0 -584
  129. package/components/switch/src/types.d.ts +0 -8
  130. package/components/template-instances-provider/index.d.ts +0 -3
  131. package/components/template-instances-provider/src/index.vue.d.ts +0 -4
  132. package/components/templates-default/index.d.ts +0 -4
  133. package/components/templates-default/src/ctx.d.ts +0 -19
  134. package/components/templates-default/src/index.vue.d.ts +0 -198
  135. package/components/templates-default/src/types.d.ts +0 -53
  136. package/components/templates-element-plus/index.d.ts +0 -4
  137. package/components/templates-element-plus/src/ctx.d.ts +0 -9
  138. package/components/templates-element-plus/src/index.vue.d.ts +0 -206
  139. package/components/templates-element-plus/src/types.d.ts +0 -13
  140. package/components/templates-esri/index.d.ts +0 -4
  141. package/components/templates-esri/src/ctx.d.ts +0 -11
  142. package/components/templates-esri/src/index.vue.d.ts +0 -43
  143. package/components/templates-esri/src/types.d.ts +0 -2
  144. package/components/templates-layout/index.d.ts +0 -4
  145. package/components/templates-layout/src/ctx.d.ts +0 -9
  146. package/components/templates-layout/src/index.vue.d.ts +0 -161
  147. package/components/templates-layout/src/types.d.ts +0 -32
  148. package/components/templates-mapbox/index.d.ts +0 -4
  149. package/components/templates-mapbox/src/ctx.d.ts +0 -11
  150. package/components/templates-mapbox/src/index.vue.d.ts +0 -43
  151. package/components/templates-mapbox/src/types.d.ts +0 -3
  152. package/components/templates-variant/index.d.ts +0 -4
  153. package/components/templates-variant/src/ctx.d.ts +0 -11
  154. package/components/templates-variant/src/index.vue.d.ts +0 -43
  155. package/components/templates-variant/src/types.d.ts +0 -2
  156. package/components/upload/index.d.ts +0 -5
  157. package/components/upload/src/ctx.d.ts +0 -180
  158. package/components/upload/src/file.vue.d.ts +0 -363
  159. package/components/upload/src/index.vue.d.ts +0 -2784
  160. package/components/upload/src/types.d.ts +0 -7
  161. package/components/upload-plus/index.d.ts +0 -6
  162. package/components/upload-plus/src/api.d.ts +0 -38
  163. package/components/upload-plus/src/const.d.ts +0 -9
  164. package/components/upload-plus/src/ctx.d.ts +0 -103
  165. package/components/upload-plus/src/index.vue.d.ts +0 -1077
  166. package/components/upload-plus/src/types.d.ts +0 -32
  167. package/components/van-cascader/index.d.ts +0 -4
  168. package/components/van-cascader/src/ctx.d.ts +0 -118
  169. package/components/van-cascader/src/index.vue.d.ts +0 -13312
  170. package/components/van-cascader/src/types.d.ts +0 -1
  171. package/components/var-datetime-picker/index.d.ts +0 -4
  172. package/components/var-datetime-picker/src/const.d.ts +0 -10
  173. package/components/var-datetime-picker/src/ctx.d.ts +0 -67
  174. package/components/var-datetime-picker/src/index.vue.d.ts +0 -771
  175. package/components/var-datetime-picker/src/types.d.ts +0 -22
  176. package/components/vditor/index.d.ts +0 -4
  177. package/components/vditor/src/ctx.d.ts +0 -77
  178. package/components/vditor/src/index.vue.d.ts +0 -324
  179. package/components/vditor/src/types.d.ts +0 -7
  180. package/shared/const/index.d.ts +0 -4
  181. package/shared/element-plus/ctx.d.ts +0 -26
  182. package/shared/element-plus/index.d.ts +0 -3
  183. package/shared/element-plus/instances.d.ts +0 -195
  184. package/shared/element-plus/version.d.ts +0 -1
  185. package/shared/form/index.d.ts +0 -18
  186. package/shared/helper/index.d.ts +0 -4
  187. package/shared/index.d.ts +0 -2
  188. package/shared/infer-prop/index.d.ts +0 -17
  189. package/shared/progress-it/index.d.ts +0 -16
  190. package/shared/rules/index.d.ts +0 -35
  191. package/shared/types/form/checkbox.d.ts +0 -13
  192. package/shared/types/form/index.d.ts +0 -2
  193. package/shared/types/form/radio.d.ts +0 -8
  194. package/shared/types/index.d.ts +0 -2
  195. package/shared/types/source/index.d.ts +0 -21
  196. package/shared/types/source-manager/index.d.ts +0 -6
  197. package/shared/upload/index.d.ts +0 -7
@@ -71,8 +71,8 @@ var _sfc_main = vue.defineComponent({
71
71
  ElCascader: elementPlus.ElCascader,
72
72
  VkfFormItem: formItem.VkfFormItem
73
73
  },
74
- emits,
75
74
  props,
75
+ emits,
76
76
  setup(props2, { emit }) {
77
77
  const coreBindProps = elementPlus$1.createCascaderBindProps(props2, ["options"]);
78
78
  const coreOnEmits = elementPlus$1.createCascaderOnEmits(emit);
@@ -97,14 +97,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
97
97
  vue.normalizeProps(vue.guardReactiveProps(_ctx.formItemBindProps)),
98
98
  {
99
99
  default: vue.withCtx(() => [
100
- vue.createVNode(_component_ElCascader, vue.mergeProps(_ctx.coreBindProps, vue.toHandlers(_ctx.coreOnEmits), {
100
+ vue.createVNode(_component_ElCascader, vue.mergeProps(_ctx.coreBindProps, {
101
101
  readonly: _ctx.readonly,
102
102
  disabled: _ctx.readonly || _ctx.disabled,
103
103
  options: _ctx.options,
104
104
  class: {
105
105
  "is-readonly": _ctx.readonly
106
106
  }
107
- }), null, 16, ["readonly", "disabled", "options", "class"])
107
+ }, vue.toHandlers(_ctx.coreOnEmits)), null, 16, ["readonly", "disabled", "options", "class"])
108
108
  ]),
109
109
  _: 1
110
110
  /* STABLE */
@@ -67,8 +67,8 @@ var _sfc_main = defineComponent({
67
67
  ElCascader,
68
68
  VkfFormItem
69
69
  },
70
- emits,
71
70
  props,
71
+ emits,
72
72
  setup(props2, { emit }) {
73
73
  const coreBindProps = createCascaderBindProps(props2, ["options"]);
74
74
  const coreOnEmits = createCascaderOnEmits(emit);
@@ -93,14 +93,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
93
93
  normalizeProps(guardReactiveProps(_ctx.formItemBindProps)),
94
94
  {
95
95
  default: withCtx(() => [
96
- createVNode(_component_ElCascader, mergeProps(_ctx.coreBindProps, toHandlers(_ctx.coreOnEmits), {
96
+ createVNode(_component_ElCascader, mergeProps(_ctx.coreBindProps, {
97
97
  readonly: _ctx.readonly,
98
98
  disabled: _ctx.readonly || _ctx.disabled,
99
99
  options: _ctx.options,
100
100
  class: {
101
101
  "is-readonly": _ctx.readonly
102
102
  }
103
- }), null, 16, ["readonly", "disabled", "options", "class"])
103
+ }, toHandlers(_ctx.coreOnEmits)), null, 16, ["readonly", "disabled", "options", "class"])
104
104
  ]),
105
105
  _: 1
106
106
  /* STABLE */
@@ -22,8 +22,8 @@ var _sfc_main = vue.defineComponent({
22
22
  VkfFormItem: formItem.VkfFormItem,
23
23
  ElColorPicker: elementPlus.ElColorPicker
24
24
  },
25
- emits,
26
25
  props,
26
+ emits,
27
27
  setup(props2, { emit }) {
28
28
  const formItemBindProps = formItem._VkfFormItemCtx.createBindProps(props2);
29
29
  const coreBindProps = elementPlus$1.createColorPickerBindProps(props2, ["label"]);
@@ -18,8 +18,8 @@ var _sfc_main = defineComponent({
18
18
  VkfFormItem,
19
19
  ElColorPicker
20
20
  },
21
- emits,
22
21
  props,
22
+ emits,
23
23
  setup(props2, { emit }) {
24
24
  const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
25
25
  const coreBindProps = createColorPickerBindProps(props2, ["label"]);
@@ -133,7 +133,7 @@ var _sfc_main = vue.defineComponent({
133
133
  const rendererSource = vue.computed(() => {
134
134
  if (props2.layout) {
135
135
  return props2.formItems.reduce((a, c) => {
136
- const lastRow = a[a.length - 1];
136
+ const lastRow = a.findLast((item) => item.templateType === "ElRow");
137
137
  const itemSpan = c.span ?? props2.colSource.span;
138
138
  if (!itemSpan) {
139
139
  a.push(c);
@@ -129,7 +129,7 @@ var _sfc_main = defineComponent({
129
129
  const rendererSource = computed(() => {
130
130
  if (props2.layout) {
131
131
  return props2.formItems.reduce((a, c) => {
132
- const lastRow = a[a.length - 1];
132
+ const lastRow = a.findLast((item) => item.templateType === "ElRow");
133
133
  const itemSpan = c.span ?? props2.colSource.span;
134
134
  if (!itemSpan) {
135
135
  a.push(c);
@@ -36,6 +36,7 @@ const VkfFormItemRenderer$1 = vue.defineComponent({
36
36
  const Renderer = VkfFormItemRenderer$1;
37
37
  const renderFormItems = (data, pK = []) => {
38
38
  return data.reduce((a, c, index) => {
39
+ c.key = c.key ?? (Array.isArray(c.prop) ? c.prop.join() : c.prop);
39
40
  const currentK = [...props.k, ...pK, index];
40
41
  const validateTemplateType = () => {
41
42
  vue.nextTick(() => {
@@ -32,6 +32,7 @@ const VkfFormItemRenderer$1 = defineComponent({
32
32
  const Renderer = VkfFormItemRenderer$1;
33
33
  const renderFormItems = (data, pK = []) => {
34
34
  return data.reduce((a, c, index) => {
35
+ c.key = c.key ?? (Array.isArray(c.prop) ? c.prop.join() : c.prop);
35
36
  const currentK = [...props.k, ...pK, index];
36
37
  const validateTemplateType = () => {
37
38
  nextTick(() => {
@@ -74,11 +74,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
74
74
  vue.normalizeProps(vue.guardReactiveProps(_ctx.formItemBindProps)),
75
75
  {
76
76
  default: vue.withCtx(() => [
77
- vue.createVNode(_component_ElInput, vue.mergeProps({
78
- maxlength: _ctx.maxlength,
79
- minlength: _ctx.minlength,
80
- rows: _ctx.rows
81
- }, _ctx.inputBindProps, { readonly: _ctx.readonly }, vue.toHandlers(_ctx.inputOnEmits)), vue.createSlots({
77
+ vue.createVNode(_component_ElInput, vue.mergeProps({ rows: _ctx.rows }, _ctx.inputBindProps, { readonly: _ctx.readonly }, vue.toHandlers(_ctx.inputOnEmits)), vue.createSlots({
82
78
  default: vue.withCtx(() => [
83
79
  vue.renderSlot(_ctx.$slots, "default")
84
80
  ]),
@@ -93,7 +89,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
93
89
  ])
94
90
  };
95
91
  })
96
- ]), 1040, ["maxlength", "minlength", "rows", "readonly"]),
92
+ ]), 1040, ["rows", "readonly"]),
97
93
  vue.renderSlot(_ctx.$slots, "formItem")
98
94
  ]),
99
95
  _: 3
@@ -70,11 +70,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
70
70
  normalizeProps(guardReactiveProps(_ctx.formItemBindProps)),
71
71
  {
72
72
  default: withCtx(() => [
73
- createVNode(_component_ElInput, mergeProps({
74
- maxlength: _ctx.maxlength,
75
- minlength: _ctx.minlength,
76
- rows: _ctx.rows
77
- }, _ctx.inputBindProps, { readonly: _ctx.readonly }, toHandlers(_ctx.inputOnEmits)), createSlots({
73
+ createVNode(_component_ElInput, mergeProps({ rows: _ctx.rows }, _ctx.inputBindProps, { readonly: _ctx.readonly }, toHandlers(_ctx.inputOnEmits)), createSlots({
78
74
  default: withCtx(() => [
79
75
  renderSlot(_ctx.$slots, "default")
80
76
  ]),
@@ -89,7 +85,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
89
85
  ])
90
86
  };
91
87
  })
92
- ]), 1040, ["maxlength", "minlength", "rows", "readonly"]),
88
+ ]), 1040, ["rows", "readonly"]),
93
89
  renderSlot(_ctx.$slots, "formItem")
94
90
  ]),
95
91
  _: 3
@@ -2083,13 +2083,24 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
2083
2083
  }) {
2084
2084
  const formItemBindProps = formItem._VkfFormItemCtx.createBindProps(props2);
2085
2085
  const readonly = composables.useComputedReadonly(props2);
2086
+ const formData = vue.computed(() => {
2087
+ if (!props2.prop || props2.prop.length === 0) {
2088
+ return props2.modelValue;
2089
+ }
2090
+ const data = {};
2091
+ core.ensetData(data, {
2092
+ k: props2.prop,
2093
+ v: props2.modelValue
2094
+ });
2095
+ return data;
2096
+ });
2086
2097
  const fullColumns = vue.computed(() => {
2087
2098
  return props2.columns.map(column => {
2088
2099
  return {
2089
2100
  ...column,
2090
2101
  slots: e => vue.createVNode(formItemRenderer.VkfFormItemRenderer, {
2091
2102
  "source": [{
2092
- prop: [props2.prop, e.$index, column.prop].flat(),
2103
+ prop: [props2.prop ?? [], e.$index, column.prop].flat(),
2093
2104
  templateType: column.templateType,
2094
2105
  readonly: readonly.value,
2095
2106
  ...column.templateProps,
@@ -2130,9 +2141,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
2130
2141
  emit("update:modelValue", [{}, ...props2.modelValue]);
2131
2142
  };
2132
2143
  const handleFormSetData = e => {
2133
- const data = cloneDeep(props2.modelValue);
2144
+ const data = cloneDeep(formData.value);
2134
2145
  core.ensetData(data, e);
2135
- emit("update:modelValue", data);
2146
+ emit("update:modelValue", core.getValue(data, props2.prop));
2136
2147
  };
2137
2148
  return {
2138
2149
  addToFirst,
@@ -2140,7 +2151,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
2140
2151
  readonly,
2141
2152
  fullColumns,
2142
2153
  buttonsColumn,
2143
- handleFormSetData
2154
+ handleFormSetData,
2155
+ formData
2144
2156
  };
2145
2157
  }
2146
2158
  });
@@ -2159,7 +2171,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
2159
2171
  return vue.openBlock(), vue.createBlock(_component_VkfTemplateInstancesProvider, null, {
2160
2172
  default: vue.withCtx(() => [
2161
2173
  vue.createVNode(_component_VkfTemplatesDefault, {
2162
- data: _ctx.modelValue,
2174
+ data: _ctx.formData,
2163
2175
  onSetData: _ctx.handleFormSetData
2164
2176
  }, null, 8, ["data", "onSetData"]),
2165
2177
  vue.createVNode(
@@ -6,7 +6,7 @@ import { useComputedReadonly } from '@vunk/form/composables';
6
6
  import { VkfTemplatesDefault } from '@vunk/form/components/templates-default';
7
7
  import { VkfTemplateInstancesProvider } from '@vunk/form/components/template-instances-provider';
8
8
  import { VkfFormItemRenderer } from '@vunk/form/components/form-item-renderer';
9
- import { ensetData } from '@vunk/core';
9
+ import { ensetData, getValue as getValue$1 } from '@vunk/core';
10
10
  import { p as plus_default, f as minus_default } from '../index2.mjs';
11
11
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
12
12
 
@@ -2079,13 +2079,24 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
2079
2079
  }) {
2080
2080
  const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
2081
2081
  const readonly = useComputedReadonly(props2);
2082
+ const formData = computed(() => {
2083
+ if (!props2.prop || props2.prop.length === 0) {
2084
+ return props2.modelValue;
2085
+ }
2086
+ const data = {};
2087
+ ensetData(data, {
2088
+ k: props2.prop,
2089
+ v: props2.modelValue
2090
+ });
2091
+ return data;
2092
+ });
2082
2093
  const fullColumns = computed(() => {
2083
2094
  return props2.columns.map(column => {
2084
2095
  return {
2085
2096
  ...column,
2086
2097
  slots: e => createVNode(VkfFormItemRenderer, {
2087
2098
  "source": [{
2088
- prop: [props2.prop, e.$index, column.prop].flat(),
2099
+ prop: [props2.prop ?? [], e.$index, column.prop].flat(),
2089
2100
  templateType: column.templateType,
2090
2101
  readonly: readonly.value,
2091
2102
  ...column.templateProps,
@@ -2126,9 +2137,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
2126
2137
  emit("update:modelValue", [{}, ...props2.modelValue]);
2127
2138
  };
2128
2139
  const handleFormSetData = e => {
2129
- const data = cloneDeep(props2.modelValue);
2140
+ const data = cloneDeep(formData.value);
2130
2141
  ensetData(data, e);
2131
- emit("update:modelValue", data);
2142
+ emit("update:modelValue", getValue$1(data, props2.prop));
2132
2143
  };
2133
2144
  return {
2134
2145
  addToFirst,
@@ -2136,7 +2147,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
2136
2147
  readonly,
2137
2148
  fullColumns,
2138
2149
  buttonsColumn,
2139
- handleFormSetData
2150
+ handleFormSetData,
2151
+ formData
2140
2152
  };
2141
2153
  }
2142
2154
  });
@@ -2155,7 +2167,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
2155
2167
  return openBlock(), createBlock(_component_VkfTemplateInstancesProvider, null, {
2156
2168
  default: withCtx(() => [
2157
2169
  createVNode(_component_VkfTemplatesDefault, {
2158
- data: _ctx.modelValue,
2170
+ data: _ctx.formData,
2159
2171
  onSetData: _ctx.handleFormSetData
2160
2172
  }, null, 8, ["data", "onSetData"]),
2161
2173
  createVNode(
@@ -74,8 +74,8 @@ var _sfc_main = vue.defineComponent({
74
74
  components: {
75
75
  VkfInput: input.VkfInput
76
76
  },
77
- emits,
78
77
  props,
78
+ emits,
79
79
  setup(props2, { emit }) {
80
80
  const coreProps = input._VkfInputCtx.createBindProps(props2);
81
81
  const coreEmits = input._VkfInputCtx.createOnEmits(emit);
@@ -127,19 +127,19 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
127
127
  vue.createVNode(_component_VkfInput, {
128
128
  label: _ctx.referenceLabel,
129
129
  disabled: true,
130
- modelValue: _ctx.referenceUrl ?? _ctx.uploadUrl,
131
- inputSlots: {
130
+ "model-value": _ctx.referenceUrl ?? _ctx.uploadUrl,
131
+ "input-slots": {
132
132
  append: _ctx.createAppendEl(_ctx.referenceUrl ?? _ctx.uploadUrl)
133
133
  }
134
- }, null, 8, ["label", "modelValue", "inputSlots"]),
135
- !_ctx.referenceOnly ? (vue.openBlock(), vue.createBlock(_component_VkfInput, vue.mergeProps({ key: 0 }, _ctx.coreProps, vue.toHandlers(_ctx.coreEmits), {
134
+ }, null, 8, ["label", "model-value", "input-slots"]),
135
+ !_ctx.referenceOnly ? (vue.openBlock(), vue.createBlock(_component_VkfInput, vue.mergeProps({ key: 0 }, _ctx.coreProps, {
136
136
  rules: _ctx.rules,
137
137
  readonly: _ctx.readonly,
138
138
  type: _ctx.readonly ? "text" : _ctx.type,
139
- inputSlots: {
139
+ "input-slots": {
140
140
  append: _ctx.readonly ? _ctx.createAppendEl(_ctx.modelValue) : void 0
141
141
  }
142
- }), null, 16, ["rules", "readonly", "type", "inputSlots"])) : vue.createCommentVNode("v-if", true)
142
+ }, vue.toHandlers(_ctx.coreEmits)), null, 16, ["rules", "readonly", "type", "input-slots"])) : vue.createCommentVNode("v-if", true)
143
143
  ]);
144
144
  }
145
145
  var VkfInputLink = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/input-link/src/index.vue"]]);
@@ -70,8 +70,8 @@ var _sfc_main = defineComponent({
70
70
  components: {
71
71
  VkfInput
72
72
  },
73
- emits,
74
73
  props,
74
+ emits,
75
75
  setup(props2, { emit }) {
76
76
  const coreProps = _VkfInputCtx.createBindProps(props2);
77
77
  const coreEmits = _VkfInputCtx.createOnEmits(emit);
@@ -123,19 +123,19 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
123
123
  createVNode(_component_VkfInput, {
124
124
  label: _ctx.referenceLabel,
125
125
  disabled: true,
126
- modelValue: _ctx.referenceUrl ?? _ctx.uploadUrl,
127
- inputSlots: {
126
+ "model-value": _ctx.referenceUrl ?? _ctx.uploadUrl,
127
+ "input-slots": {
128
128
  append: _ctx.createAppendEl(_ctx.referenceUrl ?? _ctx.uploadUrl)
129
129
  }
130
- }, null, 8, ["label", "modelValue", "inputSlots"]),
131
- !_ctx.referenceOnly ? (openBlock(), createBlock(_component_VkfInput, mergeProps({ key: 0 }, _ctx.coreProps, toHandlers(_ctx.coreEmits), {
130
+ }, null, 8, ["label", "model-value", "input-slots"]),
131
+ !_ctx.referenceOnly ? (openBlock(), createBlock(_component_VkfInput, mergeProps({ key: 0 }, _ctx.coreProps, {
132
132
  rules: _ctx.rules,
133
133
  readonly: _ctx.readonly,
134
134
  type: _ctx.readonly ? "text" : _ctx.type,
135
- inputSlots: {
135
+ "input-slots": {
136
136
  append: _ctx.readonly ? _ctx.createAppendEl(_ctx.modelValue) : void 0
137
137
  }
138
- }), null, 16, ["rules", "readonly", "type", "inputSlots"])) : createCommentVNode("v-if", true)
138
+ }, toHandlers(_ctx.coreEmits)), null, 16, ["rules", "readonly", "type", "input-slots"])) : createCommentVNode("v-if", true)
139
139
  ]);
140
140
  }
141
141
  var VkfInputLink = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/input-link/src/index.vue"]]);
@@ -38,8 +38,8 @@ var _sfc_main = vue.defineComponent({
38
38
  ElRadioGroup: elementPlus.ElRadioGroup,
39
39
  ElRadioButton: elementPlus.ElRadioButton
40
40
  },
41
- emits,
42
41
  props,
42
+ emits,
43
43
  setup(props2, { emit }) {
44
44
  const formItemBindProps = formItem._VkfFormItemCtx.createBindProps(props2);
45
45
  const coreBindProps = elementPlus$1.createRadioGroupBindProps(props2, ["disabled", "label"]);
@@ -83,9 +83,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
83
83
  class: {
84
84
  "is-readonly": _ctx.readonly
85
85
  }
86
- }, _ctx.coreBindProps, vue.toHandlers(_ctx.coreOnEmits), {
86
+ }, _ctx.coreBindProps, {
87
87
  disabled: _ctx.readonly || _ctx.disabled
88
- }), {
88
+ }, vue.toHandlers(_ctx.coreOnEmits)), {
89
89
  default: vue.withCtx(() => [
90
90
  (vue.openBlock(true), vue.createElementBlock(
91
91
  vue.Fragment,
@@ -34,8 +34,8 @@ var _sfc_main = defineComponent({
34
34
  ElRadioGroup,
35
35
  ElRadioButton
36
36
  },
37
- emits,
38
37
  props,
38
+ emits,
39
39
  setup(props2, { emit }) {
40
40
  const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
41
41
  const coreBindProps = createRadioGroupBindProps(props2, ["disabled", "label"]);
@@ -79,9 +79,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
79
79
  class: {
80
80
  "is-readonly": _ctx.readonly
81
81
  }
82
- }, _ctx.coreBindProps, toHandlers(_ctx.coreOnEmits), {
82
+ }, _ctx.coreBindProps, {
83
83
  disabled: _ctx.readonly || _ctx.disabled
84
- }), {
84
+ }, toHandlers(_ctx.coreOnEmits)), {
85
85
  default: withCtx(() => [
86
86
  (openBlock(true), createElementBlock(
87
87
  Fragment,
@@ -255,7 +255,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
255
255
  _: 1
256
256
  /* STABLE */
257
257
  }),
258
- vue.createCommentVNode(" VkfInputLink "),
259
258
  vue.createVNode(_component_VkfFormItemRendererTemplate, { type: "VkfInputLink" }, {
260
259
  default: vue.withCtx(({ data: sourceData, templateIf, raw }) => [
261
260
  templateIf(_ctx.data) ? (vue.openBlock(), vue.createBlock(_component_VkfInputLink, vue.mergeProps({
@@ -271,7 +270,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
271
270
  _: 1
272
271
  /* STABLE */
273
272
  }),
274
- vue.createCommentVNode(" VkfSlider "),
275
273
  vue.createVNode(_component_VkfFormItemRendererTemplate, { type: "VkfSlider" }, {
276
274
  default: vue.withCtx(({ data: sourceData, templateIf, raw }) => [
277
275
  templateIf(_ctx.data) ? (vue.openBlock(), vue.createBlock(_component_VkfSlider, vue.mergeProps({
@@ -251,7 +251,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
251
251
  _: 1
252
252
  /* STABLE */
253
253
  }),
254
- createCommentVNode(" VkfInputLink "),
255
254
  createVNode(_component_VkfFormItemRendererTemplate, { type: "VkfInputLink" }, {
256
255
  default: withCtx(({ data: sourceData, templateIf, raw }) => [
257
256
  templateIf(_ctx.data) ? (openBlock(), createBlock(_component_VkfInputLink, mergeProps({
@@ -267,7 +266,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
267
266
  _: 1
268
267
  /* STABLE */
269
268
  }),
270
- createCommentVNode(" VkfSlider "),
271
269
  createVNode(_component_VkfFormItemRendererTemplate, { type: "VkfSlider" }, {
272
270
  default: withCtx(({ data: sourceData, templateIf, raw }) => [
273
271
  templateIf(_ctx.data) ? (openBlock(), createBlock(_component_VkfSlider, mergeProps({
@@ -17,12 +17,12 @@ const props = {
17
17
 
18
18
  var _sfc_main = vue.defineComponent({
19
19
  name: "VkfTemplatesLayout",
20
- props,
21
20
  components: {
22
21
  ElRow: elementPlus.ElRow,
23
22
  ElCol: elementPlus.ElCol,
24
23
  VkfFormItemRendererTemplate: formItemRendererTemplate.VkfFormItemRendererTemplate
25
24
  },
25
+ props,
26
26
  setup() {
27
27
  return {
28
28
  pickObject: utilsObject.pickObject
@@ -13,12 +13,12 @@ const props = {
13
13
 
14
14
  var _sfc_main = defineComponent({
15
15
  name: "VkfTemplatesLayout",
16
- props,
17
16
  components: {
18
17
  ElRow,
19
18
  ElCol,
20
19
  VkfFormItemRendererTemplate
21
20
  },
21
+ props,
22
22
  setup() {
23
23
  return {
24
24
  pickObject
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vunk/form",
3
- "version": "1.4.3",
3
+ "version": "1.4.5",
4
4
  "description": "",
5
5
  "main": "index.esm.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- import VkfButton from './src/index.vue';
2
- export * as __VkfButton from './src/types';
3
- export { VkfButton, };
4
- export default VkfButton;
@@ -1,96 +0,0 @@
1
- import { PropType } from 'vue';
2
- import { ButtonSlots } from './types';
3
- export declare const props: {
4
- buttonSlots: {
5
- type: PropType<ButtonSlots>;
6
- default: () => {};
7
- };
8
- buttonLabel: {
9
- type: StringConstructor;
10
- default: string;
11
- };
12
- validate: {
13
- type: BooleanConstructor;
14
- default: boolean;
15
- };
16
- size: {
17
- readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
18
- readonly required: false;
19
- readonly validator: ((val: unknown) => boolean) | undefined;
20
- __epPropKey: true;
21
- };
22
- disabled: BooleanConstructor;
23
- type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "default" | "success" | "warning" | "info" | "text" | "primary" | "danger", unknown, "", boolean>;
24
- icon: {
25
- readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown>>;
26
- readonly required: false;
27
- readonly validator: ((val: unknown) => boolean) | undefined;
28
- __epPropKey: true;
29
- };
30
- nativeType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "button" | "reset" | "submit", unknown, "button", boolean>;
31
- loading: BooleanConstructor;
32
- loadingIcon: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown, () => any, boolean>;
33
- plain: BooleanConstructor;
34
- text: BooleanConstructor;
35
- link: BooleanConstructor;
36
- bg: BooleanConstructor;
37
- autofocus: BooleanConstructor;
38
- round: BooleanConstructor;
39
- circle: BooleanConstructor;
40
- color: StringConstructor;
41
- dark: BooleanConstructor;
42
- autoInsertSpace: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
43
- tag: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown, "button", boolean>;
44
- required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
45
- formItemSize: {
46
- type: PropType<"default" | "small" | "large">;
47
- default: "default" | "small" | "large";
48
- };
49
- formItemSlots: {
50
- type: PropType<import("@vunk/form/components/form-item/src/types").FormItemSlots>;
51
- default: any;
52
- };
53
- elRef: {
54
- type: PropType<any>;
55
- required: boolean;
56
- };
57
- inline: {
58
- type: BooleanConstructor;
59
- default: boolean;
60
- };
61
- readonly: {
62
- type: BooleanConstructor;
63
- default: any;
64
- };
65
- labelPosition: {
66
- type: PropType<"right">;
67
- default: string;
68
- };
69
- label: StringConstructor;
70
- labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
71
- prop: {
72
- readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("element-plus").FormItemProp & {}) | (() => import("element-plus").FormItemProp) | ((new (...args: any[]) => import("element-plus").FormItemProp & {}) | (() => import("element-plus").FormItemProp))[], unknown, unknown>>;
73
- readonly required: false;
74
- readonly validator: ((val: unknown) => boolean) | undefined;
75
- __epPropKey: true;
76
- };
77
- rules: {
78
- readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("element-plus").FormItemRule | import("element-plus").FormItemRule[]) | (() => import("element-plus/es/utils").Arrayable<import("element-plus").FormItemRule>) | ((new (...args: any[]) => import("element-plus").FormItemRule | import("element-plus").FormItemRule[]) | (() => import("element-plus/es/utils").Arrayable<import("element-plus").FormItemRule>))[], unknown, unknown>>;
79
- readonly required: false;
80
- readonly validator: ((val: unknown) => boolean) | undefined;
81
- __epPropKey: true;
82
- };
83
- error: StringConstructor;
84
- validateStatus: {
85
- readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
86
- readonly required: false;
87
- readonly validator: ((val: unknown) => boolean) | undefined;
88
- __epPropKey: true;
89
- };
90
- for: StringConstructor;
91
- inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
92
- showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
93
- };
94
- export declare const emits: {
95
- click: (evt: MouseEvent) => boolean;
96
- };