@vunk/form 0.0.1-alpha.4 → 0.0.1-alpha.40

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 (137) hide show
  1. package/components/button/index.d.ts +4 -0
  2. package/components/button/index.js +121 -0
  3. package/components/button/src/ctx.d.ts +91 -0
  4. package/components/button/src/ctx.js +39 -0
  5. package/components/button/src/index.vue.d.ts +241 -0
  6. package/components/button/src/types.d.ts +7 -0
  7. package/components/button/src/types.js +1 -0
  8. package/components/cascader/index.d.ts +4 -0
  9. package/components/cascader/index.js +103 -0
  10. package/components/cascader/src/ctx.d.ts +130 -0
  11. package/components/cascader/src/ctx.js +38 -0
  12. package/components/cascader/src/index.vue.d.ts +313 -0
  13. package/components/cascader/src/types.d.ts +1 -0
  14. package/components/cascader/src/types.js +1 -0
  15. package/components/checkbox/index.css +38 -0
  16. package/components/checkbox/index.d.ts +4 -0
  17. package/components/checkbox/index.js +125 -0
  18. package/components/checkbox/src/ctx.d.ts +82 -0
  19. package/components/checkbox/src/ctx.js +43 -0
  20. package/components/checkbox/src/index.vue.d.ts +213 -0
  21. package/components/checkbox/src/types.d.ts +1 -0
  22. package/components/checkbox/src/types.js +1 -0
  23. package/components/color-picker/index.d.ts +4 -0
  24. package/components/color-picker/index.js +72 -0
  25. package/components/color-picker/src/ctx.d.ts +74 -0
  26. package/components/color-picker/src/ctx.js +23 -0
  27. package/components/color-picker/src/index.vue.d.ts +196 -0
  28. package/components/color-picker/src/types.d.ts +1 -0
  29. package/components/color-picker/src/types.js +1 -0
  30. package/components/date-picker/index.js +11 -5
  31. package/components/date-picker/src/ctx.d.ts +64 -57
  32. package/components/date-picker/src/ctx.js +1 -1
  33. package/components/date-picker/src/index.vue.d.ts +183 -153
  34. package/components/date-picker/src/types.d.ts +7 -7
  35. package/components/firt-ep/index.d.ts +4 -0
  36. package/components/firt-ep/index.js +75 -0
  37. package/components/firt-ep/src/ctx.d.ts +9 -0
  38. package/components/firt-ep/src/ctx.js +9 -0
  39. package/components/firt-ep/src/index.vue.d.ts +19 -0
  40. package/components/firt-ep/src/types.d.ts +1 -0
  41. package/components/firt-ep/src/types.js +1 -0
  42. package/components/form/index.js +23 -7
  43. package/components/form/src/ctx.d.ts +95 -81
  44. package/components/form/src/ctx.js +5 -2
  45. package/components/form/src/index.vue.d.ts +284 -250
  46. package/components/form-item/index.css +4 -0
  47. package/components/form-item/index.js +19 -3
  48. package/components/form-item/src/ctx.d.ts +15 -7
  49. package/components/form-item/src/ctx.js +8 -0
  50. package/components/form-item/src/index.vue.d.ts +44 -14
  51. package/components/form-item-renderer/index.js +15 -1
  52. package/components/form-item-renderer/src/ctx.d.ts +3 -3
  53. package/components/form-item-renderer/src/index.vue.d.ts +8 -8
  54. package/components/form-item-renderer/src/types.d.ts +2 -0
  55. package/components/form-item-renderer-template/src/index.vue.d.ts +1 -1
  56. package/components/form-item-renderer-template-default/index.js +116 -22
  57. package/components/form-item-renderer-template-default/src/index.vue.d.ts +7 -7
  58. package/components/form-item-renderer-template-layout/index.js +27 -15
  59. package/components/form-item-renderer-template-layout/src/ctx.d.ts +3 -2
  60. package/components/form-item-renderer-template-layout/src/ctx.js +1 -1
  61. package/components/form-item-renderer-template-layout/src/index.vue.d.ts +18 -6
  62. package/components/input/index.js +23 -4
  63. package/components/input/src/ctx.d.ts +96 -49
  64. package/components/input/src/ctx.js +13 -1
  65. package/components/input/src/index.vue.d.ts +234 -128
  66. package/components/input-number/index.css +17 -0
  67. package/components/input-number/index.js +32 -5
  68. package/components/input-number/src/ctx.d.ts +28 -16
  69. package/components/input-number/src/ctx.js +13 -1
  70. package/components/input-number/src/index.vue.d.ts +104 -44
  71. package/components/radio/index.css +29 -0
  72. package/components/radio/index.d.ts +4 -0
  73. package/components/radio/index.js +121 -0
  74. package/components/radio/src/ctx.d.ts +77 -0
  75. package/components/radio/src/ctx.js +39 -0
  76. package/components/radio/src/index.vue.d.ts +204 -0
  77. package/components/radio/src/types.d.ts +1 -0
  78. package/components/radio/src/types.js +1 -0
  79. package/components/select/index.css +11 -0
  80. package/components/select/index.js +39 -6
  81. package/components/select/src/ctx.d.ts +48 -36
  82. package/components/select/src/ctx.js +4 -0
  83. package/components/select/src/index.vue.d.ts +206 -129
  84. package/components/switch/index.css +11 -0
  85. package/components/switch/index.js +39 -13
  86. package/components/switch/src/ctx.d.ts +46 -11
  87. package/components/switch/src/ctx.js +13 -2
  88. package/components/switch/src/index.vue.d.ts +147 -37
  89. package/components/upload/index.css +29 -0
  90. package/components/upload/index.d.ts +5 -0
  91. package/components/upload/index.js +524 -0
  92. package/components/upload/src/ctx.d.ts +173 -0
  93. package/components/upload/src/ctx.js +41 -0
  94. package/components/upload/src/file.vue.d.ts +96 -0
  95. package/components/upload/src/index.vue.d.ts +421 -0
  96. package/components/upload/src/types.d.ts +1 -0
  97. package/components/upload/src/types.js +1 -0
  98. package/composables/index.d.ts +1 -0
  99. package/composables/index.js +311 -7
  100. package/composables/useForm.d.ts +9 -0
  101. package/composables/useSourceManager.d.ts +2 -0
  102. package/index.css +146 -0
  103. package/index.d.ts +1 -0
  104. package/index.esm.js +4 -1
  105. package/package.json +4 -1
  106. package/shared/default-renderer-source/index.d.ts +12 -0
  107. package/shared/default-renderer-source/index.js +83 -0
  108. package/shared/element-plus/ctx.d.ts +86 -13
  109. package/shared/element-plus/index.js +18165 -32
  110. package/shared/element-plus/instances.d.ts +129 -27
  111. package/shared/infer-prop/index.d.ts +17 -0
  112. package/shared/infer-prop/index.js +34 -0
  113. package/shared/types/basic-source/index.d.ts +7 -0
  114. package/shared/types/basic-source/index.js +1 -0
  115. package/shared/types/ep-source/el-divider.d.ts +7 -0
  116. package/shared/types/ep-source/el-link.d.ts +8 -0
  117. package/shared/types/ep-source/index.d.ts +3 -0
  118. package/shared/types/ep-source/index.js +1 -0
  119. package/shared/types/form/checkbox.d.ts +13 -0
  120. package/shared/types/form/index.d.ts +2 -0
  121. package/shared/types/form/index.js +1 -0
  122. package/shared/types/form/radio.d.ts +8 -0
  123. package/shared/types/index.d.ts +2 -0
  124. package/shared/types/layout-source/index.d.ts +6 -4
  125. package/shared/types/renderer-source/button.d.ts +7 -0
  126. package/shared/types/renderer-source/cascader.d.ts +7 -0
  127. package/shared/types/renderer-source/checkbox.d.ts +7 -0
  128. package/shared/types/renderer-source/color-picker.d.ts +7 -0
  129. package/shared/types/renderer-source/compoent.d.ts +3 -0
  130. package/shared/types/renderer-source/date-picker.d.ts +3 -2
  131. package/shared/types/renderer-source/index.d.ts +13 -1
  132. package/shared/types/renderer-source/input-number.d.ts +3 -2
  133. package/shared/types/renderer-source/input.d.ts +3 -2
  134. package/shared/types/renderer-source/radio.d.ts +7 -0
  135. package/shared/types/renderer-source/select.d.ts +3 -2
  136. package/shared/types/renderer-source/switch.d.ts +3 -2
  137. package/shared/types/renderer-source/upload.d.ts +7 -0
@@ -0,0 +1,39 @@
1
+ import { _VkfFormItemCtx } from '@vunk/form/components/form-item';
2
+ import { radioGroupProps, radioGroupEmits } from 'element-plus';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ const props = __spreadProps(__spreadValues(__spreadValues({}, _VkfFormItemCtx.props), radioGroupProps), {
24
+ options: {
25
+ type: Array,
26
+ default: () => []
27
+ },
28
+ type: {
29
+ type: String,
30
+ default: "default"
31
+ },
32
+ modelValue: {
33
+ type: [String, Number]
34
+ },
35
+ defaultModelValue: null
36
+ });
37
+ const emits = __spreadValues({}, radioGroupEmits);
38
+
39
+ export { emits, props };
@@ -0,0 +1,204 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ options: {
3
+ type: import("vue").PropType<import("../../../shared/types/form").RadioProps[]>;
4
+ default: () => never[];
5
+ };
6
+ type: {
7
+ type: import("vue").PropType<"default" | "button">;
8
+ default: string;
9
+ };
10
+ modelValue: {
11
+ type: import("vue").PropType<string | number>;
12
+ };
13
+ defaultModelValue: null;
14
+ id: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
15
+ size: {
16
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
17
+ readonly required: false;
18
+ readonly validator: ((val: unknown) => boolean) | undefined;
19
+ __epPropKey: true;
20
+ };
21
+ disabled: BooleanConstructor;
22
+ fill: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
23
+ label: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
24
+ textColor: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
25
+ name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
26
+ validateEvent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
27
+ required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
28
+ labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
29
+ prop: {
30
+ 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>>;
31
+ readonly required: false;
32
+ readonly validator: ((val: unknown) => boolean) | undefined;
33
+ __epPropKey: true;
34
+ };
35
+ rules: {
36
+ 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>>;
37
+ readonly required: false;
38
+ readonly validator: ((val: unknown) => boolean) | undefined;
39
+ __epPropKey: true;
40
+ };
41
+ error: StringConstructor;
42
+ validateStatus: {
43
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
44
+ readonly required: false;
45
+ readonly validator: ((val: unknown) => boolean) | undefined;
46
+ __epPropKey: true;
47
+ };
48
+ for: StringConstructor;
49
+ inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
50
+ showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
51
+ formItemSize: {
52
+ type: import("vue").PropType<"default" | "small" | "large">;
53
+ default: string;
54
+ };
55
+ formItemSlots: {
56
+ type: import("vue").PropType<import("../../form-item/src/types").FormItemSlots>;
57
+ default: undefined;
58
+ };
59
+ elRef: {
60
+ type: import("vue").PropType<any>;
61
+ required: boolean;
62
+ };
63
+ inline: {
64
+ type: BooleanConstructor;
65
+ default: boolean;
66
+ };
67
+ readonly: {
68
+ type: BooleanConstructor;
69
+ default: undefined;
70
+ };
71
+ }, {
72
+ formItemBindProps: import("vue").ComputedRef<{
73
+ required: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
74
+ label: string | undefined;
75
+ labelWidth: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
76
+ prop: 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> | undefined;
77
+ rules: 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> | undefined;
78
+ error: string | undefined;
79
+ validateStatus: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown> | undefined;
80
+ for: string | undefined;
81
+ inlineMessage: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
82
+ showMessage: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
83
+ formItemSize: "default" | "small" | "large";
84
+ formItemSlots: import("../../form-item/src/types").FormItemSlots | undefined;
85
+ elRef: any;
86
+ inline: boolean;
87
+ readonly: boolean | undefined;
88
+ }>;
89
+ coreBindProps: import("vue").ComputedRef<{
90
+ label: string | undefined;
91
+ size: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never> | undefined;
92
+ fill: string;
93
+ name: string | undefined;
94
+ id: string | undefined;
95
+ validateEvent: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
96
+ modelValue: string | number | undefined;
97
+ textColor: string;
98
+ }>;
99
+ coreOnEmits: {
100
+ change: (val: string | number | boolean) => void;
101
+ "update:modelValue": (val: string | number | boolean) => void;
102
+ };
103
+ options: import("vue").ComputedRef<import("../../../shared/types/form").RadioProps[]>;
104
+ pickObject: <T extends import("@vunk/core").NormalObject, EX extends (keyof T)[] | undefined, KI extends keyof T>(data: T, opts?: {
105
+ excludes?: EX | undefined;
106
+ includes?: KI[] | undefined;
107
+ } | undefined) => { [P in EX extends (infer KE)[] ? Exclude<KI, KE> : KI]: T[P]; };
108
+ readonly: import("vue").ComputedRef<boolean>;
109
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
110
+ "update:modelValue": (val: string | number | boolean) => boolean;
111
+ change: (val: string | number | boolean) => boolean;
112
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
113
+ options: {
114
+ type: import("vue").PropType<import("../../../shared/types/form").RadioProps[]>;
115
+ default: () => never[];
116
+ };
117
+ type: {
118
+ type: import("vue").PropType<"default" | "button">;
119
+ default: string;
120
+ };
121
+ modelValue: {
122
+ type: import("vue").PropType<string | number>;
123
+ };
124
+ defaultModelValue: null;
125
+ id: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
126
+ size: {
127
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
128
+ readonly required: false;
129
+ readonly validator: ((val: unknown) => boolean) | undefined;
130
+ __epPropKey: true;
131
+ };
132
+ disabled: BooleanConstructor;
133
+ fill: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
134
+ label: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
135
+ textColor: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
136
+ name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
137
+ validateEvent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
138
+ required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
139
+ labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
140
+ prop: {
141
+ 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>>;
142
+ readonly required: false;
143
+ readonly validator: ((val: unknown) => boolean) | undefined;
144
+ __epPropKey: true;
145
+ };
146
+ rules: {
147
+ 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>>;
148
+ readonly required: false;
149
+ readonly validator: ((val: unknown) => boolean) | undefined;
150
+ __epPropKey: true;
151
+ };
152
+ error: StringConstructor;
153
+ validateStatus: {
154
+ readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
155
+ readonly required: false;
156
+ readonly validator: ((val: unknown) => boolean) | undefined;
157
+ __epPropKey: true;
158
+ };
159
+ for: StringConstructor;
160
+ inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
161
+ showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
162
+ formItemSize: {
163
+ type: import("vue").PropType<"default" | "small" | "large">;
164
+ default: string;
165
+ };
166
+ formItemSlots: {
167
+ type: import("vue").PropType<import("../../form-item/src/types").FormItemSlots>;
168
+ default: undefined;
169
+ };
170
+ elRef: {
171
+ type: import("vue").PropType<any>;
172
+ required: boolean;
173
+ };
174
+ inline: {
175
+ type: BooleanConstructor;
176
+ default: boolean;
177
+ };
178
+ readonly: {
179
+ type: BooleanConstructor;
180
+ default: undefined;
181
+ };
182
+ }>> & {
183
+ "onUpdate:modelValue"?: ((val: string | number | boolean) => any) | undefined;
184
+ onChange?: ((val: string | number | boolean) => any) | undefined;
185
+ }, {
186
+ required: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
187
+ type: "default" | "button";
188
+ label: string;
189
+ labelWidth: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
190
+ inlineMessage: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
191
+ showMessage: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
192
+ formItemSize: "default" | "small" | "large";
193
+ formItemSlots: import("../../form-item/src/types").FormItemSlots;
194
+ inline: boolean;
195
+ readonly: boolean;
196
+ fill: string;
197
+ name: string;
198
+ disabled: boolean;
199
+ id: string;
200
+ validateEvent: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
201
+ options: import("../../../shared/types/form").RadioProps[];
202
+ textColor: string;
203
+ }>;
204
+ export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,11 @@
1
+
2
+ .el-select.is-readonly{
3
+ --el-readonly-cursor: text;
4
+ --el-disabled-bg-color: initial;
5
+ --el-disabled-text-color: var(--el-input-text-color);
6
+ }
7
+ .el-select.is-readonly .el-input.is-disabled .el-input__inner,
8
+ .el-select.is-readonly .el-input.is-disabled .el-select__caret,
9
+ .el-select.is-readonly .el-input.is-disabled .el-input__wrapper{
10
+ cursor: var(--el-readonly-cursor);
11
+ }
@@ -1,8 +1,9 @@
1
1
  import { _VkfFormItemCtx, VkfFormItem } from '@vunk/form/components/form-item';
2
2
  import { selectProps, selectEmits, createSelectBindProps, createSelectOnEmits } from '@vunk/form/shared/element-plus';
3
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, normalizeProps, guardReactiveProps, withCtx, createVNode, mergeProps, toHandlers, createSlots, createElementBlock, Fragment, renderList, renderSlot, resolveDynamicComponent } from 'vue';
3
+ import { defineComponent, ref, watch, computed, nextTick, resolveComponent, openBlock, createBlock, normalizeProps, guardReactiveProps, withCtx, mergeProps, toHandlers, createSlots, createElementBlock, Fragment, renderList, renderSlot, resolveDynamicComponent, createCommentVNode } from 'vue';
4
4
  import { ElSelect, ElOption } from 'element-plus';
5
5
  import { isPlainObject } from '@vunk/core/shared/utils-object';
6
+ import { useComputedReadonly } from '@vunk/form/composables';
6
7
 
7
8
  var __defProp$1 = Object.defineProperty;
8
9
  var __defProps$1 = Object.defineProperties;
@@ -31,6 +32,10 @@ const props = __spreadProps$1(__spreadValues$1(__spreadValues$1({}, _VkfFormItem
31
32
  selectSlots: {
32
33
  type: Object,
33
34
  default: void 0
35
+ },
36
+ optionsUrl: {
37
+ type: String,
38
+ default: ""
34
39
  }
35
40
  });
36
41
  const emits = __spreadValues$1({}, selectEmits);
@@ -65,11 +70,24 @@ var script = defineComponent({
65
70
  props,
66
71
  setup(props2, { emit }) {
67
72
  const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
68
- const selectBindProps = createSelectBindProps(props2);
73
+ const selectBindProps = createSelectBindProps(props2, ["disabled"]);
69
74
  const selectOnEmits = createSelectOnEmits(emit);
75
+ const readonly = useComputedReadonly(props2);
76
+ const optionsFromUrl = ref([]);
77
+ watch(() => props2.optionsUrl, (url) => {
78
+ emit("update:modelValue", void 0);
79
+ if (url) {
80
+ fetch(url).then((res) => res.json()).then((data) => {
81
+ optionsFromUrl.value = data;
82
+ });
83
+ } else {
84
+ optionsFromUrl.value = [];
85
+ }
86
+ }, { immediate: true });
70
87
  const getKey = (item) => isPlainObject(item.value) ? item.value[selectBindProps.value.valueKey] : item.value;
71
88
  const selectOptions = computed(() => {
72
- return props2.options.reduce((a, c) => {
89
+ const options = optionsFromUrl.value.length ? optionsFromUrl.value : props2.options;
90
+ return options.reduce((a, c) => {
73
91
  const k = getKey(c);
74
92
  if (!k && k !== 0)
75
93
  return a;
@@ -79,11 +97,21 @@ var script = defineComponent({
79
97
  return a;
80
98
  }, []);
81
99
  });
100
+ const reshow = ref(true);
101
+ watch(() => selectBindProps.value.multiple, () => {
102
+ emit("update:modelValue", void 0);
103
+ reshow.value = false;
104
+ nextTick(() => {
105
+ reshow.value = true;
106
+ });
107
+ });
82
108
  return {
83
109
  formItemBindProps,
84
110
  selectBindProps,
85
111
  selectOnEmits,
86
- selectOptions
112
+ selectOptions,
113
+ reshow,
114
+ readonly
87
115
  };
88
116
  }
89
117
  });
@@ -94,7 +122,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
94
122
  const _component_VkfFormItem = resolveComponent("VkfFormItem");
95
123
  return openBlock(), createBlock(_component_VkfFormItem, normalizeProps(guardReactiveProps(_ctx.formItemBindProps)), {
96
124
  default: withCtx(() => [
97
- createVNode(_component_ElSelect, mergeProps(_ctx.selectBindProps, toHandlers(_ctx.selectOnEmits)), createSlots({
125
+ _ctx.reshow ? (openBlock(), createBlock(_component_ElSelect, mergeProps({ key: 0 }, _ctx.selectBindProps, toHandlers(_ctx.selectOnEmits), {
126
+ disabled: _ctx.readonly || _ctx.disabled,
127
+ class: {
128
+ "is-readonly": _ctx.readonly
129
+ }
130
+ }), createSlots({
98
131
  default: withCtx(() => [
99
132
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selectOptions, (item) => {
100
133
  return openBlock(), createBlock(_component_ElOption, mergeProps(item, {
@@ -113,7 +146,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
113
146
  ])
114
147
  };
115
148
  })
116
- ]), 1040)
149
+ ]), 1040, ["disabled", "class"])) : createCommentVNode("v-if", true)
117
150
  ]),
118
151
  _: 3
119
152
  }, 16);
@@ -6,7 +6,7 @@ export declare const props: {
6
6
  type: PropType<VueComponentPropsType<import("element-plus/es/utils").SFCWithInstall<import("vue").DefineComponent<{
7
7
  value: {
8
8
  required: true;
9
- type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[];
9
+ type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor)[];
10
10
  };
11
11
  label: (StringConstructor | NumberConstructor)[];
12
12
  created: BooleanConstructor;
@@ -16,16 +16,16 @@ export declare const props: {
16
16
  };
17
17
  }, {
18
18
  ns: {
19
- namespace: import("vue").ComputedRef<string>;
20
- b: (blockSuffix?: string) => string;
21
- e: (element?: string) => string;
22
- m: (modifier?: string) => string;
23
- be: (blockSuffix?: string, element?: string) => string;
24
- em: (element?: string, modifier?: string) => string;
25
- bm: (blockSuffix?: string, modifier?: string) => string;
26
- bem: (blockSuffix?: string, element?: string, modifier?: string) => string;
19
+ namespace: import("vue").Ref<string>;
20
+ b: (blockSuffix?: string | undefined) => string;
21
+ e: (element?: string | undefined) => string;
22
+ m: (modifier?: string | undefined) => string;
23
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
24
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
25
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
26
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
27
27
  is: {
28
- (name: string, state: boolean): string;
28
+ (name: string, state: boolean | undefined): string;
29
29
  (name: string): string;
30
30
  };
31
31
  cssVar: (object: Record<string, string>) => Record<string, string>;
@@ -36,7 +36,7 @@ export declare const props: {
36
36
  currentLabel: import("vue").ComputedRef<any>;
37
37
  itemSelected: import("vue").ComputedRef<boolean>;
38
38
  isDisabled: import("vue").ComputedRef<any>;
39
- select: import("element-plus").SelectContext;
39
+ select: import("element-plus").SelectContext | undefined;
40
40
  hoverItem: () => void;
41
41
  visible: import("vue").Ref<boolean>;
42
42
  hover: import("vue").Ref<boolean>;
@@ -51,7 +51,7 @@ export declare const props: {
51
51
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
52
52
  value: {
53
53
  required: true;
54
- type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[];
54
+ type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor)[];
55
55
  };
56
56
  label: (StringConstructor | NumberConstructor)[];
57
57
  created: BooleanConstructor;
@@ -63,17 +63,21 @@ export declare const props: {
63
63
  disabled: boolean;
64
64
  created: boolean;
65
65
  }>>>[]>;
66
- default: () => any[];
66
+ default: () => never[];
67
67
  };
68
68
  selectSlots: {
69
69
  type: PropType<SelectSlots>;
70
- default: any;
70
+ default: undefined;
71
+ };
72
+ optionsUrl: {
73
+ type: StringConstructor;
74
+ default: string;
71
75
  };
72
76
  name: StringConstructor;
73
77
  id: StringConstructor;
74
78
  modelValue: {
75
- type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
76
- default: any;
79
+ type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
80
+ default: undefined;
77
81
  };
78
82
  autocomplete: {
79
83
  type: StringConstructor;
@@ -145,53 +149,61 @@ export declare const props: {
145
149
  default: string;
146
150
  type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "warning" | "info" | "danger", unknown>>;
147
151
  required: false;
148
- validator: (val: unknown) => boolean;
152
+ validator: ((val: unknown) => boolean) | undefined;
149
153
  __epPropKey: true;
150
154
  };
151
155
  required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
152
- rules: {
153
- readonly type: PropType<unknown>;
154
- readonly required: false;
155
- readonly validator: (val: unknown) => boolean;
156
- __epPropKey: true;
157
- };
158
- labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
159
- inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
160
- showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
161
156
  label: StringConstructor;
157
+ labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
162
158
  prop: {
163
159
  readonly type: 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>>;
164
160
  readonly required: false;
165
- readonly validator: (val: unknown) => boolean;
161
+ readonly validator: ((val: unknown) => boolean) | undefined;
162
+ __epPropKey: true;
163
+ };
164
+ rules: {
165
+ readonly type: 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>>;
166
+ readonly required: false;
167
+ readonly validator: ((val: unknown) => boolean) | undefined;
166
168
  __epPropKey: true;
167
169
  };
168
170
  error: StringConstructor;
169
171
  validateStatus: {
170
172
  readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
171
173
  readonly required: false;
172
- readonly validator: (val: unknown) => boolean;
174
+ readonly validator: ((val: unknown) => boolean) | undefined;
173
175
  __epPropKey: true;
174
176
  };
175
177
  for: StringConstructor;
178
+ inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
179
+ showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
176
180
  formItemSize: {
177
181
  type: PropType<"default" | "small" | "large">;
178
182
  default: string;
179
183
  };
180
184
  formItemSlots: {
181
185
  type: PropType<import("../../form-item/src/types").FormItemSlots>;
182
- default: any;
186
+ default: undefined;
183
187
  };
184
188
  elRef: {
185
189
  type: PropType<any>;
186
190
  required: boolean;
187
191
  };
192
+ inline: {
193
+ type: BooleanConstructor;
194
+ default: boolean;
195
+ };
196
+ readonly: {
197
+ type: BooleanConstructor;
198
+ default: undefined;
199
+ };
188
200
  };
189
201
  export declare const emits: {
190
- 'update:modelValue': any;
191
- change: any;
192
- 'remove-tag': any;
193
- clear: any;
194
- 'visible-change': any;
195
- focus: any;
196
- blur: any;
202
+ 'update:modelValue': null;
203
+ change: null;
204
+ 'remove-tag': null;
205
+ clear: null;
206
+ 'visible-change': null;
207
+ focus: null;
208
+ blur: null;
197
209
  };
@@ -28,6 +28,10 @@ const props = __spreadProps(__spreadValues(__spreadValues({}, _VkfFormItemCtx.pr
28
28
  selectSlots: {
29
29
  type: Object,
30
30
  default: void 0
31
+ },
32
+ optionsUrl: {
33
+ type: String,
34
+ default: ""
31
35
  }
32
36
  });
33
37
  const emits = __spreadValues({}, selectEmits);