@vunk/form 0.0.1-alpha.9 → 1.0.1

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 (161) hide show
  1. package/component.d.ts +1 -1
  2. package/components/button/index.d.ts +4 -0
  3. package/components/button/index.js +126 -0
  4. package/components/button/src/ctx.d.ts +92 -0
  5. package/components/button/src/ctx.js +39 -0
  6. package/components/button/src/index.vue.d.ts +245 -0
  7. package/components/button/src/types.d.ts +13 -0
  8. package/components/cascader/index.d.ts +4 -0
  9. package/components/cascader/index.js +114 -0
  10. package/components/cascader/src/ctx.d.ts +129 -0
  11. package/components/cascader/src/ctx.js +38 -0
  12. package/components/cascader/src/index.vue.d.ts +311 -0
  13. package/components/cascader/src/types.d.ts +7 -0
  14. package/components/checkbox/index.css +38 -0
  15. package/components/checkbox/index.d.ts +4 -0
  16. package/components/checkbox/index.js +127 -0
  17. package/components/checkbox/src/ctx.d.ts +82 -0
  18. package/components/checkbox/src/ctx.js +43 -0
  19. package/components/checkbox/src/index.vue.d.ts +213 -0
  20. package/components/checkbox/src/types.d.ts +8 -0
  21. package/components/color-picker/index.d.ts +4 -0
  22. package/components/color-picker/index.js +77 -0
  23. package/components/color-picker/src/ctx.d.ts +72 -0
  24. package/components/color-picker/src/ctx.js +23 -0
  25. package/components/color-picker/src/index.vue.d.ts +193 -0
  26. package/components/color-picker/src/types.d.ts +7 -0
  27. package/components/date-picker/index.js +26 -15
  28. package/components/date-picker/src/ctx.d.ts +64 -57
  29. package/components/date-picker/src/ctx.js +1 -1
  30. package/components/date-picker/src/index.vue.d.ts +176 -146
  31. package/components/date-picker/src/types.d.ts +14 -8
  32. package/components/form/index.d.ts +1 -0
  33. package/components/form/index.js +44 -19
  34. package/components/form/src/ctx.d.ts +147 -97
  35. package/components/form/src/ctx.js +5 -2
  36. package/components/form/src/index.vue.d.ts +424 -287
  37. package/components/form/src/types.d.ts +2 -0
  38. package/components/form/src/types.js +1 -0
  39. package/components/form-item/index.css +4 -0
  40. package/components/form-item/index.js +34 -13
  41. package/components/form-item/src/ctx.d.ts +15 -7
  42. package/components/form-item/src/ctx.js +8 -0
  43. package/components/form-item/src/index.vue.d.ts +44 -14
  44. package/components/form-item-renderer/index.js +34 -30
  45. package/components/form-item-renderer/src/ctx.d.ts +3 -3
  46. package/components/form-item-renderer/src/index.vue.d.ts +9 -9
  47. package/components/form-item-renderer/src/types.d.ts +2 -0
  48. package/components/form-item-renderer-template/index.js +13 -6
  49. package/components/form-item-renderer-template/src/index.vue.d.ts +1 -1
  50. package/components/input/index.js +29 -15
  51. package/components/input/src/ctx.d.ts +88 -49
  52. package/components/input/src/ctx.js +5 -1
  53. package/components/input/src/index.vue.d.ts +219 -129
  54. package/components/input/src/types.d.ts +7 -1
  55. package/components/input-link/index.css +5 -0
  56. package/components/input-link/index.d.ts +4 -0
  57. package/components/input-link/index.js +181 -0
  58. package/components/input-link/src/ctx.d.ts +143 -0
  59. package/components/input-link/src/ctx.js +46 -0
  60. package/components/input-link/src/index.vue.d.ts +373 -0
  61. package/components/input-link/src/types.d.ts +7 -0
  62. package/components/input-link/src/types.js +1 -0
  63. package/components/input-number/index.css +17 -0
  64. package/components/input-number/index.js +46 -14
  65. package/components/input-number/src/ctx.d.ts +22 -10
  66. package/components/input-number/src/ctx.js +13 -1
  67. package/components/input-number/src/index.vue.d.ts +92 -32
  68. package/components/input-number/src/types.d.ts +7 -0
  69. package/components/radio/index.css +29 -0
  70. package/components/radio/index.d.ts +4 -0
  71. package/components/radio/index.js +123 -0
  72. package/components/radio/src/ctx.d.ts +77 -0
  73. package/components/radio/src/ctx.js +39 -0
  74. package/components/radio/src/index.vue.d.ts +204 -0
  75. package/components/radio/src/types.d.ts +8 -0
  76. package/components/radio/src/types.js +1 -0
  77. package/components/select/index.css +11 -0
  78. package/components/select/index.js +75 -49
  79. package/components/select/src/ctx.d.ts +37 -25
  80. package/components/select/src/ctx.js +4 -0
  81. package/components/select/src/index.vue.d.ts +181 -104
  82. package/components/select/src/types.d.ts +7 -1
  83. package/components/switch/index.css +11 -0
  84. package/components/switch/index.js +40 -29
  85. package/components/switch/src/ctx.d.ts +41 -13
  86. package/components/switch/src/ctx.js +3 -4
  87. package/components/switch/src/index.vue.d.ts +123 -49
  88. package/components/switch/src/types.d.ts +7 -0
  89. package/components/templates-default/index.d.ts +4 -0
  90. package/components/templates-default/index.js +244 -0
  91. package/components/{form-item-renderer-template-default → templates-default}/src/index.vue.d.ts +7 -7
  92. package/components/templates-default/src/types.d.ts +31 -0
  93. package/components/templates-default/src/types.js +1 -0
  94. package/components/templates-element-plus/index.d.ts +4 -0
  95. package/components/templates-element-plus/index.js +80 -0
  96. package/components/{form-item-renderer-template-layout → templates-element-plus}/src/ctx.d.ts +3 -2
  97. package/components/{form-item-renderer-template-layout → templates-element-plus}/src/ctx.js +1 -1
  98. package/components/templates-element-plus/src/index.vue.d.ts +19 -0
  99. package/components/templates-element-plus/src/types.d.ts +13 -0
  100. package/components/templates-element-plus/src/types.js +1 -0
  101. package/components/templates-layout/index.css +5 -0
  102. package/components/templates-layout/index.d.ts +4 -0
  103. package/components/templates-layout/index.js +108 -0
  104. package/components/templates-layout/src/ctx.d.ts +9 -0
  105. package/components/templates-layout/src/ctx.js +9 -0
  106. package/components/templates-layout/src/index.vue.d.ts +19 -0
  107. package/{shared/types/layout-source/index.d.ts → components/templates-layout/src/types.d.ts} +5 -4
  108. package/components/templates-layout/src/types.js +1 -0
  109. package/components/upload/index.css +33 -0
  110. package/components/upload/index.d.ts +5 -0
  111. package/components/upload/index.js +606 -0
  112. package/components/upload/src/ctx.d.ts +168 -0
  113. package/components/upload/src/ctx.js +45 -0
  114. package/components/upload/src/file.vue.d.ts +96 -0
  115. package/components/upload/src/index.vue.d.ts +416 -0
  116. package/components/upload/src/types.d.ts +7 -0
  117. package/components/upload/src/types.js +1 -0
  118. package/composables/index.d.ts +1 -0
  119. package/composables/index.js +28 -6
  120. package/composables/useForm.d.ts +9 -0
  121. package/composables/useSourceManager.d.ts +2 -0
  122. package/index.css +156 -2
  123. package/index.d.ts +14 -1
  124. package/index.esm.js +16 -5
  125. package/package.json +4 -1
  126. package/shared/element-plus/ctx.d.ts +86 -13
  127. package/shared/element-plus/index.js +18156 -35
  128. package/shared/element-plus/instances.d.ts +97 -26
  129. package/shared/helper/index.d.ts +1 -0
  130. package/shared/infer-prop/index.d.ts +17 -0
  131. package/shared/infer-prop/index.js +34 -0
  132. package/shared/progress-it/index.d.ts +16 -0
  133. package/shared/progress-it/index.js +57 -0
  134. package/shared/types/form/checkbox.d.ts +13 -0
  135. package/shared/types/form/index.d.ts +2 -0
  136. package/shared/types/form/index.js +1 -0
  137. package/shared/types/form/radio.d.ts +8 -0
  138. package/shared/types/index.d.ts +1 -2
  139. package/shared/types/source/index.d.ts +12 -0
  140. package/shared/types/source/index.js +1 -0
  141. package/components/form-item-renderer-template-default/index.d.ts +0 -4
  142. package/components/form-item-renderer-template-default/index.js +0 -129
  143. package/components/form-item-renderer-template-default/src/types.d.ts +0 -1
  144. package/components/form-item-renderer-template-layout/index.css +0 -7
  145. package/components/form-item-renderer-template-layout/index.d.ts +0 -4
  146. package/components/form-item-renderer-template-layout/index.js +0 -91
  147. package/components/form-item-renderer-template-layout/src/index.vue.d.ts +0 -7
  148. package/components/form-item-renderer-template-layout/src/types.d.ts +0 -1
  149. package/shared/types/renderer-source/compoent.d.ts +0 -5
  150. package/shared/types/renderer-source/date-picker.d.ts +0 -7
  151. package/shared/types/renderer-source/index.d.ts +0 -13
  152. package/shared/types/renderer-source/input-number.d.ts +0 -7
  153. package/shared/types/renderer-source/input.d.ts +0 -7
  154. package/shared/types/renderer-source/select.d.ts +0 -7
  155. package/shared/types/renderer-source/switch.d.ts +0 -7
  156. /package/components/{form-item-renderer-template-default → button}/src/types.js +0 -0
  157. /package/components/{form-item-renderer-template-layout → cascader}/src/types.js +0 -0
  158. /package/{shared/types/layout-source/index.js → components/checkbox/src/types.js} +0 -0
  159. /package/{shared/types/renderer-source/index.js → components/color-picker/src/types.js} +0 -0
  160. /package/components/{form-item-renderer-template-default → templates-default}/src/ctx.d.ts +0 -0
  161. /package/components/{form-item-renderer-template-default → templates-default}/src/ctx.js +0 -0
@@ -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
+ modelValue: string | number | undefined;
96
+ validateEvent: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
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
+ onChange?: ((val: string | number | boolean) => any) | undefined;
184
+ "onUpdate:modelValue"?: ((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,8 @@
1
+ import { BasicSource } from '@vunk/form/shared';
2
+ import { VueComponentPropsType } from '@vunk/core';
3
+ import VkfRadio from './index.vue';
4
+ export interface Source<P extends string = string> extends VueComponentPropsType<typeof VkfRadio>, BasicSource {
5
+ prop: P;
6
+ templateType: 'VkfRadio';
7
+ }
8
+ 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,39 +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
-
7
- var __defProp$1 = Object.defineProperty;
8
- var __defProps$1 = Object.defineProperties;
9
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
10
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
11
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
12
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
13
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
- var __spreadValues$1 = (a, b) => {
15
- for (var prop in b || (b = {}))
16
- if (__hasOwnProp$1.call(b, prop))
17
- __defNormalProp$1(a, prop, b[prop]);
18
- if (__getOwnPropSymbols$1)
19
- for (var prop of __getOwnPropSymbols$1(b)) {
20
- if (__propIsEnum$1.call(b, prop))
21
- __defNormalProp$1(a, prop, b[prop]);
22
- }
23
- return a;
24
- };
25
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
26
- const props = __spreadProps$1(__spreadValues$1(__spreadValues$1({}, _VkfFormItemCtx.props), selectProps), {
27
- options: {
28
- type: Array,
29
- default: () => []
30
- },
31
- selectSlots: {
32
- type: Object,
33
- default: void 0
34
- }
35
- });
36
- const emits = __spreadValues$1({}, selectEmits);
6
+ import { useComputedReadonly } from '@vunk/form/composables';
37
7
 
38
8
  var __defProp = Object.defineProperty;
39
9
  var __defProps = Object.defineProperties;
@@ -54,7 +24,31 @@ var __spreadValues = (a, b) => {
54
24
  return a;
55
25
  };
56
26
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
57
- var script = defineComponent({
27
+ const props = __spreadProps(__spreadValues(__spreadValues({}, _VkfFormItemCtx.props), selectProps), {
28
+ options: {
29
+ type: Array,
30
+ default: () => []
31
+ },
32
+ selectSlots: {
33
+ type: Object,
34
+ default: void 0
35
+ },
36
+ optionsUrl: {
37
+ type: String,
38
+ default: ""
39
+ }
40
+ });
41
+ const emits = __spreadValues({}, selectEmits);
42
+
43
+ var _export_sfc = (sfc, props) => {
44
+ const target = sfc.__vccOpts || sfc;
45
+ for (const [key, val] of props) {
46
+ target[key] = val;
47
+ }
48
+ return target;
49
+ };
50
+
51
+ const _sfc_main = defineComponent({
58
52
  name: "VkfSelect",
59
53
  components: {
60
54
  VkfFormItem,
@@ -65,36 +59,70 @@ var script = defineComponent({
65
59
  props,
66
60
  setup(props2, { emit }) {
67
61
  const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
68
- const selectBindProps = createSelectBindProps(props2);
62
+ const selectBindProps = createSelectBindProps(props2, ["disabled"]);
69
63
  const selectOnEmits = createSelectOnEmits(emit);
64
+ const readonly = useComputedReadonly(props2);
65
+ const optionsFromUrl = ref([]);
66
+ const rUrlOptions = (url) => {
67
+ if (url) {
68
+ fetch(url).then((res) => res.json()).then((data) => {
69
+ optionsFromUrl.value = data;
70
+ });
71
+ } else {
72
+ optionsFromUrl.value = [];
73
+ }
74
+ };
75
+ if (props2.optionsUrl) {
76
+ rUrlOptions(props2.optionsUrl);
77
+ }
78
+ watch(() => props2.optionsUrl, (url) => {
79
+ emit("update:modelValue", void 0);
80
+ rUrlOptions(url);
81
+ });
70
82
  const getKey = (item) => isPlainObject(item.value) ? item.value[selectBindProps.value.valueKey] : item.value;
71
83
  const selectOptions = computed(() => {
72
- return props2.options.reduce((a, c) => {
84
+ const options = optionsFromUrl.value.length ? optionsFromUrl.value : props2.options;
85
+ return options.reduce((a, c) => {
73
86
  const k = getKey(c);
74
87
  if (!k && k !== 0)
75
88
  return a;
76
- a.push(__spreadProps(__spreadValues({}, c), {
89
+ a.push({
90
+ ...c,
77
91
  key: k
78
- }));
92
+ });
79
93
  return a;
80
94
  }, []);
81
95
  });
96
+ const reshow = ref(true);
97
+ watch(() => selectBindProps.value.multiple, () => {
98
+ emit("update:modelValue", void 0);
99
+ reshow.value = false;
100
+ nextTick(() => {
101
+ reshow.value = true;
102
+ });
103
+ });
82
104
  return {
83
105
  formItemBindProps,
84
106
  selectBindProps,
85
107
  selectOnEmits,
86
- selectOptions
108
+ selectOptions,
109
+ reshow,
110
+ readonly
87
111
  };
88
112
  }
89
113
  });
90
-
91
- function render(_ctx, _cache, $props, $setup, $data, $options) {
114
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
92
115
  const _component_ElOption = resolveComponent("ElOption");
93
116
  const _component_ElSelect = resolveComponent("ElSelect");
94
117
  const _component_VkfFormItem = resolveComponent("VkfFormItem");
95
118
  return openBlock(), createBlock(_component_VkfFormItem, normalizeProps(guardReactiveProps(_ctx.formItemBindProps)), {
96
119
  default: withCtx(() => [
97
- createVNode(_component_ElSelect, mergeProps(_ctx.selectBindProps, toHandlers(_ctx.selectOnEmits)), createSlots({
120
+ _ctx.reshow ? (openBlock(), createBlock(_component_ElSelect, mergeProps({ key: 0 }, _ctx.selectBindProps, toHandlers(_ctx.selectOnEmits), {
121
+ disabled: _ctx.readonly || _ctx.disabled,
122
+ class: {
123
+ "is-readonly": _ctx.readonly
124
+ }
125
+ }), createSlots({
98
126
  default: withCtx(() => [
99
127
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selectOptions, (item) => {
100
128
  return openBlock(), createBlock(_component_ElOption, mergeProps(item, {
@@ -109,25 +137,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
109
137
  return {
110
138
  name: key,
111
139
  fn: withCtx((e) => [
112
- (openBlock(), createBlock(resolveDynamicComponent(item == null ? void 0 : item(e))))
140
+ (openBlock(), createBlock(resolveDynamicComponent(item?.(e))))
113
141
  ])
114
142
  };
115
143
  })
116
- ]), 1040)
144
+ ]), 1040, ["disabled", "class"])) : createCommentVNode("v-if", true)
117
145
  ]),
118
146
  _: 3
119
147
  }, 16);
120
148
  }
121
-
122
- script.render = render;
123
- script.__file = "select/src/index.vue";
149
+ var VkfSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "index.vue"]]);
124
150
 
125
151
  var types = /*#__PURE__*/Object.freeze({
126
152
  __proto__: null
127
153
  });
128
154
 
129
- script.install = (app) => {
130
- app.component(script.name, script);
155
+ VkfSelect.install = (app) => {
156
+ app.component(VkfSelect.name, VkfSelect);
131
157
  };
132
158
 
133
- export { script as VkfSelect, types as __VkfSelect, script as default };
159
+ export { VkfSelect, types as __VkfSelect, VkfSelect as default };
@@ -17,15 +17,15 @@ export declare const props: {
17
17
  }, {
18
18
  ns: {
19
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;
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>;
@@ -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
79
  type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
76
- default: any;
80
+ default: undefined;
77
81
  };
78
82
  autocomplete: {
79
83
  type: StringConstructor;
@@ -145,7 +149,7 @@ 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>;
@@ -154,20 +158,20 @@ export declare const props: {
154
158
  prop: {
155
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>>;
156
160
  readonly required: false;
157
- readonly validator: (val: unknown) => boolean;
161
+ readonly validator: ((val: unknown) => boolean) | undefined;
158
162
  __epPropKey: true;
159
163
  };
160
164
  rules: {
161
- readonly type: PropType<unknown>;
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>>;
162
166
  readonly required: false;
163
- readonly validator: (val: unknown) => boolean;
167
+ readonly validator: ((val: unknown) => boolean) | undefined;
164
168
  __epPropKey: true;
165
169
  };
166
170
  error: StringConstructor;
167
171
  validateStatus: {
168
172
  readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
169
173
  readonly required: false;
170
- readonly validator: (val: unknown) => boolean;
174
+ readonly validator: ((val: unknown) => boolean) | undefined;
171
175
  __epPropKey: true;
172
176
  };
173
177
  for: StringConstructor;
@@ -179,19 +183,27 @@ export declare const props: {
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);