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

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 (138) hide show
  1. package/components/button/index.d.ts +4 -0
  2. package/components/button/index.js +126 -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 +108 -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 +127 -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 +77 -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 +26 -15
  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 +80 -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 +37 -16
  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 +34 -13
  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 +34 -30
  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/index.js +13 -6
  56. package/components/form-item-renderer-template/src/index.vue.d.ts +1 -1
  57. package/components/form-item-renderer-template-default/index.js +130 -31
  58. package/components/form-item-renderer-template-default/src/index.vue.d.ts +7 -7
  59. package/components/form-item-renderer-template-layout/index.js +41 -24
  60. package/components/form-item-renderer-template-layout/src/ctx.d.ts +3 -2
  61. package/components/form-item-renderer-template-layout/src/ctx.js +1 -1
  62. package/components/form-item-renderer-template-layout/src/index.vue.d.ts +18 -6
  63. package/components/input/index.js +39 -14
  64. package/components/input/src/ctx.d.ts +96 -49
  65. package/components/input/src/ctx.js +13 -1
  66. package/components/input/src/index.vue.d.ts +234 -128
  67. package/components/input-number/index.css +17 -0
  68. package/components/input-number/index.js +46 -14
  69. package/components/input-number/src/ctx.d.ts +28 -16
  70. package/components/input-number/src/ctx.js +13 -1
  71. package/components/input-number/src/index.vue.d.ts +104 -44
  72. package/components/radio/index.css +29 -0
  73. package/components/radio/index.d.ts +4 -0
  74. package/components/radio/index.js +123 -0
  75. package/components/radio/src/ctx.d.ts +77 -0
  76. package/components/radio/src/ctx.js +39 -0
  77. package/components/radio/src/index.vue.d.ts +204 -0
  78. package/components/radio/src/types.d.ts +1 -0
  79. package/components/radio/src/types.js +1 -0
  80. package/components/select/index.css +11 -0
  81. package/components/select/index.js +69 -49
  82. package/components/select/src/ctx.d.ts +48 -36
  83. package/components/select/src/ctx.js +4 -0
  84. package/components/select/src/index.vue.d.ts +206 -129
  85. package/components/switch/index.css +11 -0
  86. package/components/switch/index.js +44 -16
  87. package/components/switch/src/ctx.d.ts +46 -11
  88. package/components/switch/src/ctx.js +13 -2
  89. package/components/switch/src/index.vue.d.ts +147 -37
  90. package/components/upload/index.css +29 -0
  91. package/components/upload/index.d.ts +5 -0
  92. package/components/upload/index.js +522 -0
  93. package/components/upload/src/ctx.d.ts +173 -0
  94. package/components/upload/src/ctx.js +41 -0
  95. package/components/upload/src/file.vue.d.ts +96 -0
  96. package/components/upload/src/index.vue.d.ts +421 -0
  97. package/components/upload/src/types.d.ts +1 -0
  98. package/components/upload/src/types.js +1 -0
  99. package/composables/index.d.ts +1 -0
  100. package/composables/index.js +311 -7
  101. package/composables/useForm.d.ts +9 -0
  102. package/composables/useSourceManager.d.ts +2 -0
  103. package/index.css +146 -0
  104. package/index.d.ts +1 -0
  105. package/index.esm.js +4 -1
  106. package/package.json +4 -1
  107. package/shared/default-renderer-source/index.d.ts +12 -0
  108. package/shared/default-renderer-source/index.js +83 -0
  109. package/shared/element-plus/ctx.d.ts +86 -13
  110. package/shared/element-plus/index.js +18165 -32
  111. package/shared/element-plus/instances.d.ts +129 -27
  112. package/shared/infer-prop/index.d.ts +17 -0
  113. package/shared/infer-prop/index.js +34 -0
  114. package/shared/types/basic-source/index.d.ts +7 -0
  115. package/shared/types/basic-source/index.js +1 -0
  116. package/shared/types/ep-source/el-divider.d.ts +7 -0
  117. package/shared/types/ep-source/el-link.d.ts +8 -0
  118. package/shared/types/ep-source/index.d.ts +3 -0
  119. package/shared/types/ep-source/index.js +1 -0
  120. package/shared/types/form/checkbox.d.ts +13 -0
  121. package/shared/types/form/index.d.ts +2 -0
  122. package/shared/types/form/index.js +1 -0
  123. package/shared/types/form/radio.d.ts +8 -0
  124. package/shared/types/index.d.ts +2 -0
  125. package/shared/types/layout-source/index.d.ts +6 -4
  126. package/shared/types/renderer-source/button.d.ts +7 -0
  127. package/shared/types/renderer-source/cascader.d.ts +7 -0
  128. package/shared/types/renderer-source/checkbox.d.ts +7 -0
  129. package/shared/types/renderer-source/color-picker.d.ts +7 -0
  130. package/shared/types/renderer-source/compoent.d.ts +3 -0
  131. package/shared/types/renderer-source/date-picker.d.ts +3 -2
  132. package/shared/types/renderer-source/index.d.ts +13 -1
  133. package/shared/types/renderer-source/input-number.d.ts +3 -2
  134. package/shared/types/renderer-source/input.d.ts +3 -2
  135. package/shared/types/renderer-source/radio.d.ts +7 -0
  136. package/shared/types/renderer-source/select.d.ts +3 -2
  137. package/shared/types/renderer-source/switch.d.ts +3 -2
  138. package/shared/types/renderer-source/upload.d.ts +7 -0
@@ -0,0 +1,77 @@
1
+ import { RadioProps } from '@vunk/form/shared/types/form';
2
+ import { PropType } from 'vue';
3
+ export declare const props: {
4
+ options: {
5
+ type: PropType<RadioProps[]>;
6
+ default: () => never[];
7
+ };
8
+ type: {
9
+ type: PropType<"default" | "button">;
10
+ default: string;
11
+ };
12
+ modelValue: {
13
+ type: PropType<string | number>;
14
+ };
15
+ defaultModelValue: null;
16
+ id: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
17
+ size: {
18
+ readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
19
+ readonly required: false;
20
+ readonly validator: ((val: unknown) => boolean) | undefined;
21
+ __epPropKey: true;
22
+ };
23
+ disabled: BooleanConstructor;
24
+ fill: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
25
+ label: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
26
+ textColor: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
27
+ name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
28
+ validateEvent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
29
+ required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
30
+ labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
31
+ prop: {
32
+ 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>>;
33
+ readonly required: false;
34
+ readonly validator: ((val: unknown) => boolean) | undefined;
35
+ __epPropKey: true;
36
+ };
37
+ rules: {
38
+ 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>>;
39
+ readonly required: false;
40
+ readonly validator: ((val: unknown) => boolean) | undefined;
41
+ __epPropKey: true;
42
+ };
43
+ error: StringConstructor;
44
+ validateStatus: {
45
+ readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
46
+ readonly required: false;
47
+ readonly validator: ((val: unknown) => boolean) | undefined;
48
+ __epPropKey: true;
49
+ };
50
+ for: StringConstructor;
51
+ inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
52
+ showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
53
+ formItemSize: {
54
+ type: PropType<"default" | "small" | "large">;
55
+ default: string;
56
+ };
57
+ formItemSlots: {
58
+ type: PropType<import("../../form-item/src/types").FormItemSlots>;
59
+ default: undefined;
60
+ };
61
+ elRef: {
62
+ type: PropType<any>;
63
+ required: boolean;
64
+ };
65
+ inline: {
66
+ type: BooleanConstructor;
67
+ default: boolean;
68
+ };
69
+ readonly: {
70
+ type: BooleanConstructor;
71
+ default: undefined;
72
+ };
73
+ };
74
+ export declare const emits: {
75
+ "update:modelValue": (val: string | number | boolean) => boolean;
76
+ change: (val: string | number | boolean) => boolean;
77
+ };
@@ -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,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,64 @@ 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
+ watch(() => props2.optionsUrl, (url) => {
67
+ emit("update:modelValue", void 0);
68
+ if (url) {
69
+ fetch(url).then((res) => res.json()).then((data) => {
70
+ optionsFromUrl.value = data;
71
+ });
72
+ } else {
73
+ optionsFromUrl.value = [];
74
+ }
75
+ }, { immediate: true });
70
76
  const getKey = (item) => isPlainObject(item.value) ? item.value[selectBindProps.value.valueKey] : item.value;
71
77
  const selectOptions = computed(() => {
72
- return props2.options.reduce((a, c) => {
78
+ const options = optionsFromUrl.value.length ? optionsFromUrl.value : props2.options;
79
+ return options.reduce((a, c) => {
73
80
  const k = getKey(c);
74
81
  if (!k && k !== 0)
75
82
  return a;
76
- a.push(__spreadProps(__spreadValues({}, c), {
83
+ a.push({
84
+ ...c,
77
85
  key: k
78
- }));
86
+ });
79
87
  return a;
80
88
  }, []);
81
89
  });
90
+ const reshow = ref(true);
91
+ watch(() => selectBindProps.value.multiple, () => {
92
+ emit("update:modelValue", void 0);
93
+ reshow.value = false;
94
+ nextTick(() => {
95
+ reshow.value = true;
96
+ });
97
+ });
82
98
  return {
83
99
  formItemBindProps,
84
100
  selectBindProps,
85
101
  selectOnEmits,
86
- selectOptions
102
+ selectOptions,
103
+ reshow,
104
+ readonly
87
105
  };
88
106
  }
89
107
  });
90
-
91
- function render(_ctx, _cache, $props, $setup, $data, $options) {
108
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
92
109
  const _component_ElOption = resolveComponent("ElOption");
93
110
  const _component_ElSelect = resolveComponent("ElSelect");
94
111
  const _component_VkfFormItem = resolveComponent("VkfFormItem");
95
112
  return openBlock(), createBlock(_component_VkfFormItem, normalizeProps(guardReactiveProps(_ctx.formItemBindProps)), {
96
113
  default: withCtx(() => [
97
- createVNode(_component_ElSelect, mergeProps(_ctx.selectBindProps, toHandlers(_ctx.selectOnEmits)), createSlots({
114
+ _ctx.reshow ? (openBlock(), createBlock(_component_ElSelect, mergeProps({ key: 0 }, _ctx.selectBindProps, toHandlers(_ctx.selectOnEmits), {
115
+ disabled: _ctx.readonly || _ctx.disabled,
116
+ class: {
117
+ "is-readonly": _ctx.readonly
118
+ }
119
+ }), createSlots({
98
120
  default: withCtx(() => [
99
121
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selectOptions, (item) => {
100
122
  return openBlock(), createBlock(_component_ElOption, mergeProps(item, {
@@ -109,25 +131,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
109
131
  return {
110
132
  name: key,
111
133
  fn: withCtx((e) => [
112
- (openBlock(), createBlock(resolveDynamicComponent(item == null ? void 0 : item(e))))
134
+ (openBlock(), createBlock(resolveDynamicComponent(item?.(e))))
113
135
  ])
114
136
  };
115
137
  })
116
- ]), 1040)
138
+ ]), 1040, ["disabled", "class"])) : createCommentVNode("v-if", true)
117
139
  ]),
118
140
  _: 3
119
141
  }, 16);
120
142
  }
121
-
122
- script.render = render;
123
- script.__file = "select/src/index.vue";
143
+ var VkfSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "index.vue"]]);
124
144
 
125
145
  var types = /*#__PURE__*/Object.freeze({
126
146
  __proto__: null
127
147
  });
128
148
 
129
- script.install = (app) => {
130
- app.component(script.name, script);
149
+ VkfSelect.install = (app) => {
150
+ app.component(VkfSelect.name, VkfSelect);
131
151
  };
132
152
 
133
- export { script as VkfSelect, types as __VkfSelect, script as default };
153
+ export { VkfSelect, types as __VkfSelect, VkfSelect as default };