@vunk/form 2.13.1 → 2.14.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 (209) hide show
  1. package/components/fieldset/index.cjs +6 -2
  2. package/components/fieldset/index.mjs +6 -2
  3. package/components/form-item/index.cjs +8 -7
  4. package/components/form-item/index.css +6 -0
  5. package/components/form-item/index.mjs +8 -7
  6. package/components/input-array/index.cjs +287 -0
  7. package/components/input-array/index.css +14 -0
  8. package/components/input-array/index.mjs +280 -0
  9. package/index.css +21 -0
  10. package/package.json +9 -1
  11. package/components/api-tables-select/index.d.ts +0 -4
  12. package/components/api-tables-select/src/ctx.d.ts +0 -374
  13. package/components/api-tables-select/src/index.vue.d.ts +0 -1335
  14. package/components/api-tables-select/src/types.d.ts +0 -19
  15. package/components/button/index.d.ts +0 -4
  16. package/components/button/src/ctx.d.ts +0 -185
  17. package/components/button/src/index.vue.d.ts +0 -813
  18. package/components/button/src/types.d.ts +0 -13
  19. package/components/card-input-collection/index.d.ts +0 -4
  20. package/components/card-input-collection/src/ctx.d.ts +0 -114
  21. package/components/card-input-collection/src/index.vue.d.ts +0 -1029
  22. package/components/card-input-collection/src/types.d.ts +0 -10
  23. package/components/cascader/index.d.ts +0 -6
  24. package/components/cascader/src/ctx.d.ts +0 -285
  25. package/components/cascader/src/index.vue.d.ts +0 -627
  26. package/components/cascader/src/types.d.ts +0 -19
  27. package/components/cascader/src/use.d.ts +0 -5
  28. package/components/checkbox/index.d.ts +0 -5
  29. package/components/checkbox/src/ctx.d.ts +0 -146
  30. package/components/checkbox/src/index.vue.d.ts +0 -1353
  31. package/components/checkbox/src/types.d.ts +0 -8
  32. package/components/color-picker/index.d.ts +0 -4
  33. package/components/color-picker/src/ctx.d.ts +0 -164
  34. package/components/color-picker/src/index.vue.d.ts +0 -366
  35. package/components/color-picker/src/types.d.ts +0 -7
  36. package/components/date-picker/index.d.ts +0 -5
  37. package/components/date-picker/src/ctx.d.ts +0 -321
  38. package/components/date-picker/src/index.vue.d.ts +0 -1423
  39. package/components/date-picker/src/types.d.ts +0 -20
  40. package/components/date-picker-range/index.d.ts +0 -4
  41. package/components/date-picker-range/src/ctx.d.ts +0 -329
  42. package/components/date-picker-range/src/index.vue.d.ts +0 -720
  43. package/components/date-picker-range/src/types.d.ts +0 -12
  44. package/components/dialog-input-collection/index.d.ts +0 -4
  45. package/components/dialog-input-collection/src/ctx.d.ts +0 -140
  46. package/components/dialog-input-collection/src/dialog-form.vue.d.ts +0 -1782
  47. package/components/dialog-input-collection/src/index.vue.d.ts +0 -3100
  48. package/components/dialog-input-collection/src/layout.vue.d.ts +0 -85
  49. package/components/dialog-input-collection/src/types.d.ts +0 -28
  50. package/components/download-plus/index.d.ts +0 -4
  51. package/components/download-plus/src/api.d.ts +0 -13
  52. package/components/download-plus/src/const.d.ts +0 -9
  53. package/components/download-plus/src/ctx.d.ts +0 -124
  54. package/components/download-plus/src/index.vue.d.ts +0 -1453
  55. package/components/download-plus/src/types.d.ts +0 -17
  56. package/components/editable-text/index.d.ts +0 -4
  57. package/components/editable-text/src/ctx.d.ts +0 -127
  58. package/components/editable-text/src/index.vue.d.ts +0 -3385
  59. package/components/editable-text/src/types.d.ts +0 -1
  60. package/components/esri-input-geojson/index.d.ts +0 -6
  61. package/components/esri-input-geojson/src/append.vue.d.ts +0 -1179
  62. package/components/esri-input-geojson/src/const.d.ts +0 -12
  63. package/components/esri-input-geojson/src/ctx.d.ts +0 -344
  64. package/components/esri-input-geojson/src/default-view.vue.d.ts +0 -133
  65. package/components/esri-input-geojson/src/index.vue.d.ts +0 -1471
  66. package/components/esri-input-geojson/src/types.d.ts +0 -22
  67. package/components/esri-input-geojson/src/viewer.vue.d.ts +0 -427
  68. package/components/fieldset/index.d.ts +0 -4
  69. package/components/fieldset/src/ctx.d.ts +0 -12
  70. package/components/fieldset/src/index.vue.d.ts +0 -23
  71. package/components/fieldset/src/types.d.ts +0 -1
  72. package/components/fieldset/src/use.d.ts +0 -5
  73. package/components/form/index.d.ts +0 -5
  74. package/components/form/src/ctx.d.ts +0 -139
  75. package/components/form/src/index.vue.d.ts +0 -1182
  76. package/components/form/src/types.d.ts +0 -25
  77. package/components/form/src/utils.d.ts +0 -15
  78. package/components/form-item/index.d.ts +0 -5
  79. package/components/form-item/src/core.vue.d.ts +0 -1847
  80. package/components/form-item/src/ctx.d.ts +0 -102
  81. package/components/form-item/src/index.vue.d.ts +0 -211
  82. package/components/form-item/src/types.d.ts +0 -10
  83. package/components/form-item-renderer/index.d.ts +0 -4
  84. package/components/form-item-renderer/src/core.vue.d.ts +0 -38
  85. package/components/form-item-renderer/src/ctx.d.ts +0 -16
  86. package/components/form-item-renderer/src/index.vue.d.ts +0 -93
  87. package/components/form-item-renderer/src/types.d.ts +0 -5
  88. package/components/form-item-renderer/src/utils.d.ts +0 -5
  89. package/components/form-item-renderer-template/index.d.ts +0 -4
  90. package/components/form-item-renderer-template/src/ctx.d.ts +0 -7
  91. package/components/form-item-renderer-template/src/index.vue.d.ts +0 -16
  92. package/components/form-item-renderer-template/src/types.d.ts +0 -55
  93. package/components/forms-provider/index.d.ts +0 -6
  94. package/components/forms-provider/src/core.d.ts +0 -6
  95. package/components/forms-provider/src/index.vue.d.ts +0 -2
  96. package/components/forms-provider/src/segment.vue.d.ts +0 -9
  97. package/components/forms-provider/src/types.d.ts +0 -10
  98. package/components/forms-provider/src/view.vue.d.ts +0 -7
  99. package/components/information/index.d.ts +0 -4
  100. package/components/information/src/ctx.d.ts +0 -13
  101. package/components/information/src/index.vue.d.ts +0 -23
  102. package/components/information/src/types.d.ts +0 -3
  103. package/components/information-collection/index.d.ts +0 -4
  104. package/components/information-collection/src/ctx.d.ts +0 -142
  105. package/components/information-collection/src/index.vue.d.ts +0 -293
  106. package/components/information-collection/src/types.d.ts +0 -6
  107. package/components/information-renderer/index.d.ts +0 -73
  108. package/components/information-tag/index.d.ts +0 -4
  109. package/components/information-tag/src/ctx.d.ts +0 -64
  110. package/components/information-tag/src/index.vue.d.ts +0 -134
  111. package/components/information-tag/src/types.d.ts +0 -1
  112. package/components/information-templates-default/index.d.ts +0 -4
  113. package/components/information-templates-default/src/ctx.d.ts +0 -2
  114. package/components/information-templates-default/src/index.vue.d.ts +0 -2
  115. package/components/information-templates-default/src/types.d.ts +0 -1
  116. package/components/input/index.d.ts +0 -5
  117. package/components/input/src/ctx.d.ts +0 -273
  118. package/components/input/src/index.vue.d.ts +0 -1234
  119. package/components/input/src/types.d.ts +0 -13
  120. package/components/input-collection/index.d.ts +0 -4
  121. package/components/input-collection/src/ctx.d.ts +0 -132
  122. package/components/input-collection/src/index.vue.d.ts +0 -1127
  123. package/components/input-collection/src/types.d.ts +0 -29
  124. package/components/input-link/index.d.ts +0 -4
  125. package/components/input-link/src/ctx.d.ts +0 -277
  126. package/components/input-link/src/index.vue.d.ts +0 -587
  127. package/components/input-link/src/types.d.ts +0 -7
  128. package/components/input-number/index.d.ts +0 -4
  129. package/components/input-number/src/ctx.d.ts +0 -211
  130. package/components/input-number/src/index.vue.d.ts +0 -852
  131. package/components/input-number/src/types.d.ts +0 -12
  132. package/components/input-tag/index.d.ts +0 -5
  133. package/components/input-tag/src/ctx.d.ts +0 -227
  134. package/components/input-tag/src/index.vue.d.ts +0 -947
  135. package/components/input-tag/src/types.d.ts +0 -22
  136. package/components/monaco-editor/index.d.ts +0 -4
  137. package/components/monaco-editor/src/ctx.d.ts +0 -110
  138. package/components/monaco-editor/src/index.vue.d.ts +0 -294
  139. package/components/monaco-editor/src/types.d.ts +0 -7
  140. package/components/radio/index.d.ts +0 -4
  141. package/components/radio/src/ctx.d.ts +0 -157
  142. package/components/radio/src/index.vue.d.ts +0 -1302
  143. package/components/radio/src/types.d.ts +0 -8
  144. package/components/renderer-data/index.d.ts +0 -4
  145. package/components/renderer-data/src/ctx.d.ts +0 -12
  146. package/components/renderer-data/src/index.vue.d.ts +0 -20
  147. package/components/renderer-data/src/types.d.ts +0 -1
  148. package/components/select/index.d.ts +0 -5
  149. package/components/select/src/ctx.d.ts +0 -220
  150. package/components/select/src/index.vue.d.ts +0 -1034
  151. package/components/select/src/types.d.ts +0 -11
  152. package/components/slider/index.d.ts +0 -4
  153. package/components/slider/src/ctx.d.ts +0 -248
  154. package/components/slider/src/index.vue.d.ts +0 -579
  155. package/components/slider/src/types.d.ts +0 -7
  156. package/components/switch/index.d.ts +0 -4
  157. package/components/switch/src/ctx.d.ts +0 -203
  158. package/components/switch/src/index.vue.d.ts +0 -886
  159. package/components/switch/src/types.d.ts +0 -8
  160. package/components/tables-select/index.d.ts +0 -5
  161. package/components/tables-select/src/ctx.d.ts +0 -420
  162. package/components/tables-select/src/index.vue.d.ts +0 -5411
  163. package/components/tables-select/src/types.d.ts +0 -9
  164. package/components/template-instances-provider/index.d.ts +0 -3
  165. package/components/template-instances-provider/src/index.vue.d.ts +0 -6
  166. package/components/templates-default/index.d.ts +0 -4
  167. package/components/templates-default/src/ctx.d.ts +0 -19
  168. package/components/templates-default/src/index.vue.d.ts +0 -187
  169. package/components/templates-default/src/types.d.ts +0 -55
  170. package/components/templates-element-plus/index.d.ts +0 -4
  171. package/components/templates-element-plus/src/ctx.d.ts +0 -9
  172. package/components/templates-element-plus/src/index.vue.d.ts +0 -301
  173. package/components/templates-element-plus/src/types.d.ts +0 -13
  174. package/components/templates-esri/index.d.ts +0 -4
  175. package/components/templates-esri/src/ctx.d.ts +0 -11
  176. package/components/templates-esri/src/index.vue.d.ts +0 -43
  177. package/components/templates-esri/src/types.d.ts +0 -2
  178. package/components/templates-layout/index.d.ts +0 -4
  179. package/components/templates-layout/src/ctx.d.ts +0 -9
  180. package/components/templates-layout/src/index.vue.d.ts +0 -446
  181. package/components/templates-layout/src/types.d.ts +0 -32
  182. package/components/templates-variant/index.d.ts +0 -4
  183. package/components/templates-variant/src/ctx.d.ts +0 -11
  184. package/components/templates-variant/src/index.vue.d.ts +0 -43
  185. package/components/templates-variant/src/types.d.ts +0 -2
  186. package/components/upload/index.d.ts +0 -5
  187. package/components/upload/src/ctx.d.ts +0 -289
  188. package/components/upload/src/file.vue.d.ts +0 -492
  189. package/components/upload/src/index.vue.d.ts +0 -1926
  190. package/components/upload/src/types.d.ts +0 -13
  191. package/components/upload-plus/index.d.ts +0 -6
  192. package/components/upload-plus/src/api.d.ts +0 -38
  193. package/components/upload-plus/src/const.d.ts +0 -9
  194. package/components/upload-plus/src/ctx.d.ts +0 -143
  195. package/components/upload-plus/src/index.vue.d.ts +0 -1770
  196. package/components/upload-plus/src/types.d.ts +0 -32
  197. package/components/van-cascader/index.d.ts +0 -4
  198. package/components/van-cascader/src/ctx.d.ts +0 -272
  199. package/components/van-cascader/src/index.vue.d.ts +0 -2093
  200. package/components/van-cascader/src/types.d.ts +0 -1
  201. package/components/var-datetime-picker/index.d.ts +0 -4
  202. package/components/var-datetime-picker/src/const.d.ts +0 -10
  203. package/components/var-datetime-picker/src/ctx.d.ts +0 -107
  204. package/components/var-datetime-picker/src/index.vue.d.ts +0 -1485
  205. package/components/var-datetime-picker/src/types.d.ts +0 -22
  206. package/components/vditor/index.d.ts +0 -4
  207. package/components/vditor/src/ctx.d.ts +0 -117
  208. package/components/vditor/src/index.vue.d.ts +0 -409
  209. package/components/vditor/src/types.d.ts +0 -7
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
6
  var elementPlus = require('element-plus');
7
+ var _function = require('@vunk/shared/function');
7
8
  var _pluginVue_exportHelper = require('../_plugin-vue_export-helper.cjs');
8
9
 
9
10
  const props = {
@@ -73,7 +74,10 @@ var _sfc_main = vue.defineComponent({
73
74
  props,
74
75
  emits,
75
76
  setup(props2) {
76
- const formContext = vue.inject(elementPlus.formContextKey);
77
+ const backupFormContext = {
78
+ addField: _function.noop
79
+ };
80
+ const formContext = vue.inject(elementPlus.formContextKey, backupFormContext);
77
81
  const labelWidth = vue.computed(() => {
78
82
  return props2.labelWidth ?? formContext.labelWidth;
79
83
  });
@@ -83,7 +87,7 @@ var _sfc_main = vue.defineComponent({
83
87
  vue.provide(
84
88
  elementPlus.formContextKey,
85
89
  vue.reactive({
86
- ...vue.toRefs(formContext),
90
+ ...formContext === backupFormContext ? backupFormContext : vue.toRefs(formContext),
87
91
  labelWidth,
88
92
  labelPosition,
89
93
  ...useFormLabelWidth()
@@ -1,5 +1,6 @@
1
1
  import { ref, computed, defineComponent, inject, provide, reactive, toRefs, openBlock, createElementBlock, renderSlot } from 'vue';
2
2
  import { formContextKey } from 'element-plus';
3
+ import { noop } from '@vunk/shared/function';
3
4
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
4
5
 
5
6
  const props = {
@@ -69,7 +70,10 @@ var _sfc_main = defineComponent({
69
70
  props,
70
71
  emits,
71
72
  setup(props2) {
72
- const formContext = inject(formContextKey);
73
+ const backupFormContext = {
74
+ addField: noop
75
+ };
76
+ const formContext = inject(formContextKey, backupFormContext);
73
77
  const labelWidth = computed(() => {
74
78
  return props2.labelWidth ?? formContext.labelWidth;
75
79
  });
@@ -79,7 +83,7 @@ var _sfc_main = defineComponent({
79
83
  provide(
80
84
  formContextKey,
81
85
  reactive({
82
- ...toRefs(formContext),
86
+ ...formContext === backupFormContext ? backupFormContext : toRefs(formContext),
83
87
  labelWidth,
84
88
  labelPosition,
85
89
  ...useFormLabelWidth()
@@ -93,8 +93,9 @@ var _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
93
93
  }
94
94
  });
95
95
 
96
- const _hoisted_1 = {
97
- key: 1,
96
+ const _hoisted_1 = { key: 0 };
97
+ const _hoisted_2 = {
98
+ key: 2,
98
99
  class: "vkf-form-item-label__actions"
99
100
  };
100
101
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -128,15 +129,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
128
129
  ]),
129
130
  label: vue.withCtx((e) => [
130
131
  vue.renderSlot(_ctx.$slots, "label", vue.normalizeProps(vue.guardReactiveProps(e)), () => [
131
- vue.createElementVNode(
132
+ e.label ? (vue.openBlock(), vue.createElementBlock(
132
133
  "span",
133
- null,
134
+ _hoisted_1,
134
135
  vue.toDisplayString(e.label),
135
136
  1
136
137
  /* TEXT */
137
- ),
138
+ )) : vue.createCommentVNode("v-if", true),
138
139
  $props.labelTip ? (vue.openBlock(), vue.createBlock($setup["ElTooltip"], {
139
- key: 0,
140
+ key: 1,
140
141
  content: $props.labelTip
141
142
  }, {
142
143
  default: vue.withCtx(() => [
@@ -160,7 +161,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
160
161
  _: 1
161
162
  /* STABLE */
162
163
  }, 8, ["content"])) : vue.createCommentVNode("v-if", true),
163
- _ctx.$slots.labelActions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
164
+ _ctx.$slots.labelActions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
164
165
  vue.renderSlot(_ctx.$slots, "labelActions")
165
166
  ])) : vue.createCommentVNode("v-if", true)
166
167
  ])
@@ -30,3 +30,9 @@
30
30
  .vkf-form-item.is-empty-label .el-form-item__label:before{
31
31
  display: none;
32
32
  }
33
+ .vkf-form-item.is-empty-label .el-form-item__label::after{
34
+ display: none;
35
+ }
36
+ .vkf-form-item .el-form-item__label:empty{
37
+ display: none;
38
+ }
@@ -89,8 +89,9 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
89
89
  }
90
90
  });
91
91
 
92
- const _hoisted_1 = {
93
- key: 1,
92
+ const _hoisted_1 = { key: 0 };
93
+ const _hoisted_2 = {
94
+ key: 2,
94
95
  class: "vkf-form-item-label__actions"
95
96
  };
96
97
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -124,15 +125,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
124
125
  ]),
125
126
  label: withCtx((e) => [
126
127
  renderSlot(_ctx.$slots, "label", normalizeProps(guardReactiveProps(e)), () => [
127
- createElementVNode(
128
+ e.label ? (openBlock(), createElementBlock(
128
129
  "span",
129
- null,
130
+ _hoisted_1,
130
131
  toDisplayString(e.label),
131
132
  1
132
133
  /* TEXT */
133
- ),
134
+ )) : createCommentVNode("v-if", true),
134
135
  $props.labelTip ? (openBlock(), createBlock($setup["ElTooltip"], {
135
- key: 0,
136
+ key: 1,
136
137
  content: $props.labelTip
137
138
  }, {
138
139
  default: withCtx(() => [
@@ -156,7 +157,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
156
157
  _: 1
157
158
  /* STABLE */
158
159
  }, 8, ["content"])) : createCommentVNode("v-if", true),
159
- _ctx.$slots.labelActions ? (openBlock(), createElementBlock("div", _hoisted_1, [
160
+ _ctx.$slots.labelActions ? (openBlock(), createElementBlock("div", _hoisted_2, [
160
161
  renderSlot(_ctx.$slots, "labelActions")
161
162
  ])) : createCommentVNode("v-if", true)
162
163
  ])
@@ -0,0 +1,287 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var formItem = require('@vunk/form/components/form-item');
7
+ var elementPlus = require('element-plus');
8
+ var index = require('../index.cjs');
9
+ var composables = require('@vunk/form/composables');
10
+ var formItemRenderer = require('@vunk/form/components/form-item-renderer');
11
+ var templateInstancesProvider = require('@vunk/form/components/template-instances-provider');
12
+ var templatesDefault = require('@vunk/form/components/templates-default');
13
+ var fieldset = require('@vunk/form/components/fieldset');
14
+ var core = require('@vunk/core');
15
+ var rendererData = require('@vunk/form/components/renderer-data');
16
+ var avatar = require('@vunk/plus/components/avatar');
17
+ var cloneDeep = require('../cloneDeep.cjs');
18
+ var _pluginVue_exportHelper = require('../_plugin-vue_export-helper.cjs');
19
+ var formItemRendererTemplate = require('@vunk/form/components/form-item-renderer-template');
20
+ require('../isObject.cjs');
21
+
22
+ const props = {
23
+ ...formItem._VkfFormItemCtx.props,
24
+ modelValue: {
25
+ type: Array,
26
+ default: void 0
27
+ },
28
+ /**
29
+ * @description 是否可以 splice, 添加
30
+ */
31
+ splicable: {
32
+ type: Boolean,
33
+ default: true
34
+ },
35
+ /**
36
+ * @description 开启 form-item 的 label 上的操作区域, 在labelPosition为top时生效
37
+ */
38
+ labelActions: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ defaultItemValue: null,
43
+ source: {
44
+ type: Object,
45
+ default: () => ({})
46
+ },
47
+ defaultModelValue: {
48
+ type: Array,
49
+ default: void 0
50
+ },
51
+ /**
52
+ * @description 保留最后一行
53
+ */
54
+ keepLastRow: {
55
+ type: Boolean,
56
+ default: true
57
+ }
58
+ };
59
+ const emits = {
60
+ "update:modelValue": null
61
+ };
62
+
63
+ var _sfc_main$1 = /* @__PURE__ */vue.defineComponent({
64
+ ...{
65
+ name: "VkfInputArray"
66
+ },
67
+ __name: "index",
68
+ props: props,
69
+ emits,
70
+ setup(__props, {
71
+ expose: __expose,
72
+ emit: __emit
73
+ }) {
74
+ __expose();
75
+ const props = __props;
76
+ const emit = __emit;
77
+ const formItemBindProps = formItem._VkfFormItemCtx.createBindProps(props);
78
+ const readonly = composables.useComputedReadonly(props);
79
+ const addToFirst = () => {
80
+ emit("update:modelValue", [cloneDeep.cloneDeep(props.defaultItemValue), ...(props.modelValue ?? [])]);
81
+ };
82
+ if (props.modelValue === void 0 && props.defaultModelValue) {
83
+ emit("update:modelValue", props.defaultModelValue);
84
+ }
85
+ const hasMinus = vue.computed(() => {
86
+ if (!props.keepLastRow) {
87
+ return true;
88
+ }
89
+ return (props.modelValue ?? []).length > 1;
90
+ });
91
+ const formData = vue.computed(() => {
92
+ if (!props.prop || props.prop.length === 0) {
93
+ return props.modelValue;
94
+ }
95
+ const data = {};
96
+ core.ensetData(data, {
97
+ k: props.prop,
98
+ v: props.modelValue
99
+ });
100
+ return data;
101
+ });
102
+ const formItems = vue.computed(() => {
103
+ return props.modelValue?.map((v, index$1) => {
104
+ const prop = [props.prop ?? [], index$1, props.source.prop ?? []].flat();
105
+ return {
106
+ ...props.source,
107
+ prop,
108
+ formItemSlots: {
109
+ ...props.source.formItemSlots,
110
+ after: () => hasMinus.value && vue.createVNode(avatar.VkAvatar, vue.mergeProps({
111
+ "icon": index.delete_default,
112
+ "class": "vkf-input-array-delete",
113
+ "color": "var(--el-color-danger)"
114
+ }, {
115
+ onClick: () => handleMinus(index$1)
116
+ }), null)
117
+ }
118
+ };
119
+ });
120
+ });
121
+ function handleMinus(index) {
122
+ const data = cloneDeep.cloneDeep(props.modelValue) ?? [];
123
+ data.splice(index, 1);
124
+ emit("update:modelValue", data);
125
+ }
126
+ const handleFormSetData = e => {
127
+ const data = cloneDeep.cloneDeep(formData.value);
128
+ core.ensetData(data, e);
129
+ emit("update:modelValue", core.getValue(data, props.prop));
130
+ };
131
+ const __returned__ = {
132
+ props,
133
+ emit,
134
+ formItemBindProps,
135
+ readonly,
136
+ addToFirst,
137
+ hasMinus,
138
+ formData,
139
+ formItems,
140
+ handleMinus,
141
+ handleFormSetData,
142
+ get VkfFormItem() {
143
+ return formItem.VkfFormItem;
144
+ },
145
+ get ElButton() {
146
+ return elementPlus.ElButton;
147
+ },
148
+ get Plus() {
149
+ return index.plus_default;
150
+ },
151
+ get VkfFormItemRenderer() {
152
+ return formItemRenderer.VkfFormItemRenderer;
153
+ },
154
+ get VkfTemplateInstancesProvider() {
155
+ return templateInstancesProvider.VkfTemplateInstancesProvider;
156
+ },
157
+ get VkfTemplatesDefault() {
158
+ return templatesDefault.VkfTemplatesDefault;
159
+ },
160
+ get VkfFieldset() {
161
+ return fieldset.VkfFieldset;
162
+ },
163
+ get VkfRendererData() {
164
+ return rendererData.VkfRendererData;
165
+ }
166
+ };
167
+ Object.defineProperty(__returned__, "__isScriptSetup", {
168
+ enumerable: false,
169
+ value: true
170
+ });
171
+ return __returned__;
172
+ }
173
+ });
174
+
175
+ const _hoisted_1 = {
176
+ key: 0,
177
+ class: "vkf-input-array-options"
178
+ };
179
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
180
+ return vue.openBlock(), vue.createBlock(
181
+ $setup["VkfFormItem"],
182
+ vue.normalizeProps(vue.guardReactiveProps($setup.formItemBindProps)),
183
+ vue.createSlots({
184
+ default: vue.withCtx(() => [
185
+ !$setup.readonly && _ctx.splicable && !_ctx.labelActions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
186
+ vue.createVNode($setup["ElButton"], {
187
+ type: "primary",
188
+ onClick: $setup.addToFirst
189
+ }, {
190
+ default: vue.withCtx(() => _cache[1] || (_cache[1] = [
191
+ vue.createTextVNode(" \u6DFB\u52A0 ")
192
+ ])),
193
+ _: 1,
194
+ __: [1]
195
+ })
196
+ ])) : vue.createCommentVNode("v-if", true),
197
+ vue.createVNode($setup["VkfRendererData"], {
198
+ data: $setup.formData,
199
+ onSetData: $setup.handleFormSetData
200
+ }, {
201
+ default: vue.withCtx(() => [
202
+ vue.createVNode($setup["VkfTemplateInstancesProvider"], null, {
203
+ placeholder: vue.withCtx(() => [
204
+ vue.createVNode($setup["VkfTemplatesDefault"])
205
+ ]),
206
+ default: vue.withCtx(() => [
207
+ vue.createVNode($setup["VkfFieldset"], { class: "vkf-input-array-fieldset" }, {
208
+ default: vue.withCtx(() => [
209
+ vue.createVNode($setup["VkfFormItemRenderer"], { source: $setup.formItems }, null, 8, ["source"])
210
+ ]),
211
+ _: 1
212
+ /* STABLE */
213
+ })
214
+ ]),
215
+ _: 1
216
+ /* STABLE */
217
+ })
218
+ ]),
219
+ _: 1
220
+ /* STABLE */
221
+ }, 8, ["data"])
222
+ ]),
223
+ _: 2
224
+ /* DYNAMIC */
225
+ }, [
226
+ !$setup.readonly && _ctx.splicable && _ctx.labelActions ? {
227
+ name: "labelActions",
228
+ fn: vue.withCtx(() => [
229
+ vue.createVNode($setup["ElButton"], {
230
+ size: "small",
231
+ icon: $setup.Plus,
232
+ onClick: $setup.addToFirst
233
+ }, {
234
+ default: vue.withCtx(() => _cache[0] || (_cache[0] = [
235
+ vue.createTextVNode(" \u6DFB\u52A0 ")
236
+ ])),
237
+ _: 1,
238
+ __: [0]
239
+ }, 8, ["icon"])
240
+ ]),
241
+ key: "0"
242
+ } : void 0
243
+ ]),
244
+ 1040
245
+ /* FULL_PROPS, DYNAMIC_SLOTS */
246
+ );
247
+ }
248
+ var VkfInputArray = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/input-array/src/index.vue"]]);
249
+
250
+ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
251
+ __name: "form-template",
252
+ setup(__props, { expose: __expose }) {
253
+ __expose();
254
+ const __returned__ = { get VkfFormItemRendererTemplate() {
255
+ return formItemRendererTemplate.VkfFormItemRendererTemplate;
256
+ }, Core: VkfInputArray };
257
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
258
+ return __returned__;
259
+ }
260
+ });
261
+
262
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
263
+ return vue.openBlock(), vue.createBlock($setup["VkfFormItemRendererTemplate"], { type: "VkfInputArray" }, {
264
+ default: vue.withCtx(({ input, value, props }) => [
265
+ vue.createVNode($setup["Core"], vue.mergeProps(props, {
266
+ "model-value": value,
267
+ "onUpdate:modelValue": input
268
+ }), null, 16, ["model-value", "onUpdate:modelValue"])
269
+ ]),
270
+ _: 1
271
+ /* STABLE */
272
+ });
273
+ }
274
+ var formTemplate = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/private-vunk-form/private-vunk-form/packages/components/input-array/src/form-template.vue"]]);
275
+
276
+ var types = /*#__PURE__*/Object.freeze({
277
+ __proto__: null
278
+ });
279
+
280
+ VkfInputArray.install = (app) => {
281
+ app.component(VkfInputArray.name || "VkfInputArray", VkfInputArray);
282
+ };
283
+
284
+ exports.VkfInputArray = VkfInputArray;
285
+ exports.VkfInputArrayFormTemplate = formTemplate;
286
+ exports.__VkfInputArray = types;
287
+ exports.default = VkfInputArray;
@@ -0,0 +1,14 @@
1
+ .vkf-input-array-delete{
2
+ cursor: pointer;
3
+ }
4
+ .vkf-input-array-options{
5
+ width: 100%;
6
+ display: flex;
7
+ justify-content: flex-end;
8
+ }
9
+ .vkf-input-array-fieldset > .el-form-item:not(:last-child) {
10
+ margin-bottom: 8px;
11
+ }
12
+ .vkf-input-array-fieldset .el-form-item__content{
13
+ flex-wrap: initial;
14
+ }