@carefrees/form-utils-vue 0.0.8

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 (168) hide show
  1. package/README.md +3 -0
  2. package/assets/index.css +207 -0
  3. package/esm/component.d.ts +3 -0
  4. package/esm/component.mjs +12 -0
  5. package/esm/form/index.d.ts +37 -0
  6. package/esm/form/index.mjs +6 -0
  7. package/esm/form/index.vue.d.ts +19 -0
  8. package/esm/form/index.vue.mjs +110 -0
  9. package/esm/form/index.vue2.mjs +4 -0
  10. package/esm/formItem/form.Item.base.vue.d.ts +16 -0
  11. package/esm/formItem/form.Item.base.vue.mjs +114 -0
  12. package/esm/formItem/form.Item.base.vue2.mjs +4 -0
  13. package/esm/formItem/form.hide.item.vue.d.ts +16 -0
  14. package/esm/formItem/form.hide.item.vue.mjs +78 -0
  15. package/esm/formItem/form.hide.item.vue2.mjs +4 -0
  16. package/esm/formItem/formItem.vue.d.ts +18 -0
  17. package/esm/formItem/formItem.vue.mjs +102 -0
  18. package/esm/formItem/formItem.vue2.mjs +4 -0
  19. package/esm/formItem/index.d.ts +71 -0
  20. package/esm/formItem/index.mjs +12 -0
  21. package/esm/hooks/attr/attr.FormItem.d.ts +876 -0
  22. package/esm/hooks/attr/attr.FormItem.mjs +120 -0
  23. package/esm/hooks/index.d.ts +13 -0
  24. package/esm/hooks/register/register.FormHideItem.d.ts +9 -0
  25. package/esm/hooks/register/register.FormHideItem.mjs +38 -0
  26. package/esm/hooks/register/register.FormItem.d.ts +802 -0
  27. package/esm/hooks/register/register.FormItem.mjs +55 -0
  28. package/esm/hooks/register/register.FormList.d.ts +789 -0
  29. package/esm/hooks/register/register.FormList.mjs +43 -0
  30. package/esm/hooks/register/register.form.d.ts +3 -0
  31. package/esm/hooks/register/register.form.mjs +12 -0
  32. package/esm/hooks/useAttrs.d.ts +24 -0
  33. package/esm/hooks/useAttrs.mjs +45 -0
  34. package/esm/hooks/useEffect.d.ts +2 -0
  35. package/esm/hooks/useEffect.mjs +14 -0
  36. package/esm/hooks/useForm.d.ts +8 -0
  37. package/esm/hooks/useForm.mjs +26 -0
  38. package/esm/hooks/useFormItem.d.ts +7 -0
  39. package/esm/hooks/useFormItem.mjs +26 -0
  40. package/esm/hooks/useFormItemParentName.d.ts +18 -0
  41. package/esm/hooks/useFormItemParentName.mjs +37 -0
  42. package/esm/hooks/useFormList.d.ts +7 -0
  43. package/esm/hooks/useFormList.mjs +26 -0
  44. package/esm/hooks/useHtmlFor.d.ts +2 -0
  45. package/esm/hooks/useHtmlFor.mjs +11 -0
  46. package/esm/hooks/useMultipleForm.d.ts +7 -0
  47. package/esm/hooks/useMultipleForm.mjs +27 -0
  48. package/esm/index.d.ts +11 -0
  49. package/esm/index.mjs +59 -0
  50. package/esm/instance/ruleIntsnace.d.ts +49 -0
  51. package/esm/instance/ruleIntsnace.mjs +73 -0
  52. package/esm/interface/index.d.ts +36 -0
  53. package/esm/interface/layout.d.ts +28 -0
  54. package/esm/interface/layout.formItem.d.ts +39 -0
  55. package/esm/layout/index.d.ts +65 -0
  56. package/esm/layout/index.mjs +12 -0
  57. package/esm/layout/layout.form.rows.vue.d.ts +10 -0
  58. package/esm/layout/layout.form.rows.vue.mjs +31 -0
  59. package/esm/layout/layout.form.rows.vue2.mjs +4 -0
  60. package/esm/layout/layout.formItem.vue.d.ts +18 -0
  61. package/esm/layout/layout.formItem.vue.mjs +216 -0
  62. package/esm/layout/layout.formItem.vue2.mjs +4 -0
  63. package/esm/layout/layout.vue.d.ts +16 -0
  64. package/esm/layout/layout.vue.mjs +166 -0
  65. package/esm/layout/layout.vue2.mjs +4 -0
  66. package/esm/utils/index.d.ts +1 -0
  67. package/esm/utils/withInstall.d.ts +3 -0
  68. package/esm/utils/withInstall.mjs +22 -0
  69. package/lib/component.d.ts +3 -0
  70. package/lib/component.js +12 -0
  71. package/lib/form/index.d.ts +37 -0
  72. package/lib/form/index.js +6 -0
  73. package/lib/form/index.vue.d.ts +19 -0
  74. package/lib/form/index.vue.js +110 -0
  75. package/lib/form/index.vue2.js +4 -0
  76. package/lib/formItem/form.Item.base.vue.d.ts +16 -0
  77. package/lib/formItem/form.Item.base.vue.js +114 -0
  78. package/lib/formItem/form.Item.base.vue2.js +4 -0
  79. package/lib/formItem/form.hide.item.vue.d.ts +16 -0
  80. package/lib/formItem/form.hide.item.vue.js +78 -0
  81. package/lib/formItem/form.hide.item.vue2.js +4 -0
  82. package/lib/formItem/formItem.vue.d.ts +18 -0
  83. package/lib/formItem/formItem.vue.js +102 -0
  84. package/lib/formItem/formItem.vue2.js +4 -0
  85. package/lib/formItem/index.d.ts +71 -0
  86. package/lib/formItem/index.js +12 -0
  87. package/lib/hooks/attr/attr.FormItem.d.ts +876 -0
  88. package/lib/hooks/attr/attr.FormItem.js +120 -0
  89. package/lib/hooks/index.d.ts +13 -0
  90. package/lib/hooks/register/register.FormHideItem.d.ts +9 -0
  91. package/lib/hooks/register/register.FormHideItem.js +38 -0
  92. package/lib/hooks/register/register.FormItem.d.ts +802 -0
  93. package/lib/hooks/register/register.FormItem.js +55 -0
  94. package/lib/hooks/register/register.FormList.d.ts +789 -0
  95. package/lib/hooks/register/register.FormList.js +43 -0
  96. package/lib/hooks/register/register.form.d.ts +3 -0
  97. package/lib/hooks/register/register.form.js +12 -0
  98. package/lib/hooks/useAttrs.d.ts +24 -0
  99. package/lib/hooks/useAttrs.js +45 -0
  100. package/lib/hooks/useEffect.d.ts +2 -0
  101. package/lib/hooks/useEffect.js +14 -0
  102. package/lib/hooks/useForm.d.ts +8 -0
  103. package/lib/hooks/useForm.js +26 -0
  104. package/lib/hooks/useFormItem.d.ts +7 -0
  105. package/lib/hooks/useFormItem.js +26 -0
  106. package/lib/hooks/useFormItemParentName.d.ts +18 -0
  107. package/lib/hooks/useFormItemParentName.js +37 -0
  108. package/lib/hooks/useFormList.d.ts +7 -0
  109. package/lib/hooks/useFormList.js +26 -0
  110. package/lib/hooks/useHtmlFor.d.ts +2 -0
  111. package/lib/hooks/useHtmlFor.js +11 -0
  112. package/lib/hooks/useMultipleForm.d.ts +7 -0
  113. package/lib/hooks/useMultipleForm.js +27 -0
  114. package/lib/index.d.ts +11 -0
  115. package/lib/index.js +59 -0
  116. package/lib/instance/ruleIntsnace.d.ts +49 -0
  117. package/lib/instance/ruleIntsnace.js +73 -0
  118. package/lib/interface/index.d.ts +36 -0
  119. package/lib/interface/layout.d.ts +28 -0
  120. package/lib/interface/layout.formItem.d.ts +39 -0
  121. package/lib/layout/index.d.ts +65 -0
  122. package/lib/layout/index.js +12 -0
  123. package/lib/layout/layout.form.rows.vue.d.ts +10 -0
  124. package/lib/layout/layout.form.rows.vue.js +31 -0
  125. package/lib/layout/layout.form.rows.vue2.js +4 -0
  126. package/lib/layout/layout.formItem.vue.d.ts +18 -0
  127. package/lib/layout/layout.formItem.vue.js +216 -0
  128. package/lib/layout/layout.formItem.vue2.js +4 -0
  129. package/lib/layout/layout.vue.d.ts +16 -0
  130. package/lib/layout/layout.vue.js +166 -0
  131. package/lib/layout/layout.vue2.js +4 -0
  132. package/lib/utils/index.d.ts +1 -0
  133. package/lib/utils/withInstall.d.ts +3 -0
  134. package/lib/utils/withInstall.js +22 -0
  135. package/package.json +33 -0
  136. package/src/component.ts +3 -0
  137. package/src/form/index.ts +3 -0
  138. package/src/form/index.vue +66 -0
  139. package/src/formItem/form.Item.base.vue +54 -0
  140. package/src/formItem/form.hide.item.vue +28 -0
  141. package/src/formItem/formItem.vue +38 -0
  142. package/src/formItem/index.ts +7 -0
  143. package/src/hooks/attr/attr.FormItem.tsx +170 -0
  144. package/src/hooks/index.ts +13 -0
  145. package/src/hooks/register/register.FormHideItem.ts +45 -0
  146. package/src/hooks/register/register.FormItem.ts +80 -0
  147. package/src/hooks/register/register.FormList.ts +49 -0
  148. package/src/hooks/register/register.form.ts +12 -0
  149. package/src/hooks/useAttrs.ts +66 -0
  150. package/src/hooks/useEffect.ts +13 -0
  151. package/src/hooks/useForm.ts +28 -0
  152. package/src/hooks/useFormItem.ts +28 -0
  153. package/src/hooks/useFormItemParentName.ts +49 -0
  154. package/src/hooks/useFormList.ts +28 -0
  155. package/src/hooks/useHtmlFor.ts +9 -0
  156. package/src/hooks/useMultipleForm.ts +29 -0
  157. package/src/index.ts +16 -0
  158. package/src/instance/ruleIntsnace.ts +105 -0
  159. package/src/interface/index.ts +40 -0
  160. package/src/interface/layout.formItem.ts +42 -0
  161. package/src/interface/layout.ts +29 -0
  162. package/src/layout/index.ts +8 -0
  163. package/src/layout/layout.form.rows.vue +19 -0
  164. package/src/layout/layout.formItem.vue +119 -0
  165. package/src/layout/layout.vue +97 -0
  166. package/src/utils/index.ts +1 -0
  167. package/src/utils/withInstall.ts +28 -0
  168. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,120 @@
1
+ import { get } from "@carefrees/form-utils";
2
+ import { useHtmlFor } from "../useHtmlFor.mjs";
3
+ import { useRegisterFormItem } from "../register/register.FormItem.mjs";
4
+ import { ref, toValue, watch, computed } from "vue";
5
+ const useFormItemAttr = (options) => {
6
+ const {
7
+ trigger = "onChange",
8
+ dependencies,
9
+ noticeOnlyRuleDataField,
10
+ isNoticeParentField,
11
+ noticeWatchField,
12
+ preserve,
13
+ valuePropName = "value",
14
+ getValuePath = valuePropName,
15
+ getValueFromEvent,
16
+ formatValue,
17
+ onAfterUpdate,
18
+ useAttrs,
19
+ useRules,
20
+ inputAttrs,
21
+ ...rest
22
+ } = options;
23
+ const {
24
+ formItemInstance,
25
+ form,
26
+ ruleInstance,
27
+ newName,
28
+ newSort,
29
+ deepRefData
30
+ } = useRegisterFormItem({
31
+ ...rest
32
+ });
33
+ formItemInstance.dependencies = dependencies;
34
+ formItemInstance.noticeOnlyRuleDataField = noticeOnlyRuleDataField;
35
+ formItemInstance.isNoticeParentField = isNoticeParentField;
36
+ formItemInstance.onAfterUpdate = onAfterUpdate;
37
+ formItemInstance.noticeWatchField = noticeWatchField;
38
+ formItemInstance.preserve = preserve;
39
+ const oldValue = ref(get(form.formData, toValue(newName)));
40
+ watch(() => [get(form.formData, toValue(newName)), toValue(newName)], () => {
41
+ oldValue.value = form.getFieldValue(newName.value);
42
+ }, {
43
+ immediate: true
44
+ });
45
+ const onValueChange = (event) => {
46
+ var _a;
47
+ try {
48
+ let value = event;
49
+ if (typeof getValueFromEvent === "function") {
50
+ value = getValueFromEvent(event, form, formItemInstance);
51
+ } else if (event && event.target && typeof event.target === "object" && getValuePath in event.target) {
52
+ value = get(event.target, getValuePath);
53
+ }
54
+ if (typeof formatValue === "function") {
55
+ value = formatValue(value, form, formItemInstance, event);
56
+ }
57
+ if (oldValue.value !== value) {
58
+ form.updatedFieldValue(newName.value, value, "validate");
59
+ (_a = formItemInstance.onAfterUpdate) == null ? void 0 : _a.call(formItemInstance, value, form, formItemInstance, event);
60
+ if (Array.isArray(formItemInstance.noticeWatchField) && formItemInstance.noticeWatchField.length) {
61
+ form.noticeWatch(formItemInstance.noticeWatchField);
62
+ }
63
+ if (Array.isArray(formItemInstance.noticeOnlyRuleDataField) && formItemInstance.noticeOnlyRuleDataField.length) {
64
+ form.onlyValidate(formItemInstance.noticeOnlyRuleDataField);
65
+ }
66
+ if (formItemInstance.isNoticeParentField && formItemInstance.parentDataField) {
67
+ form.notice(formItemInstance.parentDataField);
68
+ }
69
+ }
70
+ } catch (error) {
71
+ console.log(error);
72
+ }
73
+ };
74
+ formItemInstance.onChange = onValueChange;
75
+ const htmlFor = useHtmlFor(newName);
76
+ watch(() => htmlFor, () => {
77
+ formItemInstance.htmlFor = htmlFor.value;
78
+ }, {
79
+ immediate: true
80
+ });
81
+ const newAttrs = computed(() => {
82
+ const _attr = inputAttrs || {};
83
+ return {
84
+ ..._attr,
85
+ [trigger]: onValueChange,
86
+ name: toValue(newName),
87
+ id: toValue(htmlFor),
88
+ [valuePropName]: toValue(oldValue)
89
+ };
90
+ });
91
+ const attrsLastData = ref(toValue(newAttrs));
92
+ watch(() => [toValue(newAttrs), toValue(deepRefData), toValue(oldValue)], () => {
93
+ attrsLastData.value = (useAttrs == null ? void 0 : useAttrs(newAttrs.value, form, formItemInstance)) || newAttrs.value;
94
+ }, {
95
+ immediate: true
96
+ });
97
+ const validateResult = ref(ruleInstance.value.getValidateResult());
98
+ watch(() => [toValue(deepRefData), toValue(oldValue)], () => {
99
+ useRules == null ? void 0 : useRules(ruleInstance.value, form, formItemInstance);
100
+ });
101
+ watch(() => [ruleInstance.value.messages, ruleInstance.value.rules, toValue(oldValue)], () => {
102
+ validateResult.value = ruleInstance.value.getValidateResult();
103
+ });
104
+ return {
105
+ valuePropName,
106
+ htmlFor,
107
+ onChange: onValueChange,
108
+ formItemInstance,
109
+ form,
110
+ ruleInstance,
111
+ newAttrs,
112
+ attrsLastData,
113
+ validateResult,
114
+ newSort,
115
+ newName
116
+ };
117
+ };
118
+ export {
119
+ useFormItemAttr
120
+ };
@@ -0,0 +1,13 @@
1
+ export * from './useAttrs';
2
+ export * from './useForm';
3
+ export * from './useFormItem';
4
+ export * from './useFormList';
5
+ export * from './useHtmlFor';
6
+ export * from './useMultipleForm';
7
+ export * from './useFormItemParentName';
8
+ export * from './useEffect';
9
+ export * from './register/register.FormHideItem';
10
+ export * from './register/register.FormItem';
11
+ export * from './register/register.FormList';
12
+ export * from './register/register.form';
13
+ export * from './attr/attr.FormItem';
@@ -0,0 +1,9 @@
1
+ import { RegisterFormItemOptions } from './register.FormItem';
2
+ interface RegisterFormHideItemOptions extends Omit<RegisterFormItemOptions, 'rules'> {
3
+ }
4
+ /**注册表单隐藏表单项到表单实例中*/
5
+ export declare const useRegisterFormHideItem: (options: RegisterFormHideItemOptions) => {
6
+ form: import('@carefrees/form-utils').FormInstanceBase<any>;
7
+ isHide: import('vue').Ref<any, any>;
8
+ };
9
+ export {};
@@ -0,0 +1,38 @@
1
+ import { ref, watch } from "vue";
2
+ import { FormHideItemInstanceBase } from "@carefrees/form-utils";
3
+ import { useFormItemParentNameInject } from "../useFormItemParentName.mjs";
4
+ import { useFormInject } from "../useForm.mjs";
5
+ import { useEffect } from "../useEffect.mjs";
6
+ const useRegisterFormHideItem = (options) => {
7
+ const { name, sort, isJoinParentField = true } = options;
8
+ const form = useFormInject();
9
+ const { newName, newSort } = useFormItemParentNameInject({ name, sort, isJoinParentField });
10
+ const hideItemInstance = ref(new FormHideItemInstanceBase().ctor(newName.value));
11
+ const isHide = ref(form.getFieldHideValue(newName.value));
12
+ watch(
13
+ [isHide.value],
14
+ () => {
15
+ hideItemInstance.value.preHideValue = isHide.value;
16
+ },
17
+ { immediate: true }
18
+ );
19
+ const setValue = () => {
20
+ isHide.value = form.getFieldHideValue(newName.value);
21
+ };
22
+ hideItemInstance.value.updatedItem = setValue;
23
+ watch(
24
+ [form, newSort.value],
25
+ () => {
26
+ hideItemInstance.value.instance = form;
27
+ hideItemInstance.value.sort = newSort.value;
28
+ },
29
+ { immediate: true }
30
+ );
31
+ useEffect(() => {
32
+ return form.registerFormHideItem(hideItemInstance.value);
33
+ });
34
+ return { form, isHide };
35
+ };
36
+ export {
37
+ useRegisterFormHideItem
38
+ };