@hi-ui/schema-fields 4.0.0-experimental.1 → 4.0.0-experimental.10

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 (193) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/bundle.d.ts +1 -0
  3. package/bundle.js +1 -0
  4. package/components/image-preview.d.ts +1 -0
  5. package/components/image-preview.js +1 -0
  6. package/components/upload-bridge.d.ts +1 -0
  7. package/components/upload-bridge.js +1 -0
  8. package/fields/cascader.d.ts +1 -0
  9. package/fields/cascader.js +1 -0
  10. package/fields/check-cascader.d.ts +1 -0
  11. package/fields/check-cascader.js +1 -0
  12. package/fields/check-select.d.ts +1 -0
  13. package/fields/check-select.js +1 -0
  14. package/fields/check-tree-select.d.ts +1 -0
  15. package/fields/check-tree-select.js +1 -0
  16. package/fields/checkbox.d.ts +1 -0
  17. package/fields/checkbox.js +1 -0
  18. package/fields/counter.d.ts +1 -0
  19. package/fields/counter.js +1 -0
  20. package/fields/date.d.ts +1 -0
  21. package/fields/date.js +1 -0
  22. package/fields/image.d.ts +1 -0
  23. package/fields/image.js +1 -0
  24. package/fields/link.d.ts +1 -0
  25. package/fields/link.js +1 -0
  26. package/fields/number-range.d.ts +1 -0
  27. package/fields/number-range.js +1 -0
  28. package/fields/number.d.ts +1 -0
  29. package/fields/number.js +1 -0
  30. package/fields/radio.d.ts +1 -0
  31. package/fields/radio.js +1 -0
  32. package/fields/rating.d.ts +1 -0
  33. package/fields/rating.js +1 -0
  34. package/fields/select.d.ts +1 -0
  35. package/fields/select.js +1 -0
  36. package/fields/slider.d.ts +1 -0
  37. package/fields/slider.js +1 -0
  38. package/fields/switch.d.ts +1 -0
  39. package/fields/switch.js +1 -0
  40. package/fields/tag.d.ts +1 -0
  41. package/fields/tag.js +1 -0
  42. package/fields/text.d.ts +1 -0
  43. package/fields/text.js +1 -0
  44. package/fields/textarea.d.ts +1 -0
  45. package/fields/textarea.js +1 -0
  46. package/fields/time-picker.d.ts +1 -0
  47. package/fields/time-picker.js +1 -0
  48. package/fields/tree-select.d.ts +1 -0
  49. package/fields/tree-select.js +1 -0
  50. package/fields/upload.d.ts +1 -0
  51. package/fields/upload.js +1 -0
  52. package/lib/{types/index.d.ts → bundle.d.ts} +1 -33
  53. package/lib/{esm/index.js → bundle.js} +1 -20
  54. package/lib/{types/ctx.d.ts → ctx.d.ts} +7 -2
  55. package/lib/{esm/ctx.js → ctx.js} +9 -1
  56. package/lib/{types/fields → fields}/semantic/tag/index.d.ts +1 -54
  57. package/lib/{esm/fields → fields}/semantic/tag/index.js +2 -51
  58. package/lib/fields/semantic/tag/preset.d.ts +54 -0
  59. package/lib/fields/semantic/tag/preset.js +60 -0
  60. package/lib/index.d.ts +30 -0
  61. package/lib/index.js +24 -0
  62. package/lib/{esm/utils.js → utils.js} +14 -1
  63. package/package.json +61 -44
  64. package/lib/cjs/base.js +0 -125
  65. package/lib/cjs/components/image-preview/index.js +0 -63
  66. package/lib/cjs/components/span/index.js +0 -33
  67. package/lib/cjs/components/upload-bridge/index.js +0 -227
  68. package/lib/cjs/components/upload-bridge/utils.js +0 -73
  69. package/lib/cjs/ctx.js +0 -70
  70. package/lib/cjs/editable/ctx.js +0 -45
  71. package/lib/cjs/editable/editable.js +0 -141
  72. package/lib/cjs/editable/index.js +0 -62
  73. package/lib/cjs/editable/readonly.js +0 -36
  74. package/lib/cjs/editable/simple.js +0 -61
  75. package/lib/cjs/editable/use-readonly.js +0 -200
  76. package/lib/cjs/extensible/selectable/index.js +0 -114
  77. package/lib/cjs/extensible/selectable/match-cascader.js +0 -184
  78. package/lib/cjs/fields/basic/cascader/index.js +0 -98
  79. package/lib/cjs/fields/basic/check-cascader/index.js +0 -58
  80. package/lib/cjs/fields/basic/check-select/index.js +0 -89
  81. package/lib/cjs/fields/basic/check-tree-select/index.js +0 -61
  82. package/lib/cjs/fields/basic/checkbox/index.js +0 -84
  83. package/lib/cjs/fields/basic/counter/index.js +0 -40
  84. package/lib/cjs/fields/basic/radio/index.js +0 -44
  85. package/lib/cjs/fields/basic/rating/index.js +0 -40
  86. package/lib/cjs/fields/basic/select/index.js +0 -98
  87. package/lib/cjs/fields/basic/slider/index.js +0 -40
  88. package/lib/cjs/fields/basic/switch/index.js +0 -47
  89. package/lib/cjs/fields/basic/textarea/index.js +0 -40
  90. package/lib/cjs/fields/basic/time-picker/index.js +0 -45
  91. package/lib/cjs/fields/basic/time-picker/index.scss.js +0 -18
  92. package/lib/cjs/fields/basic/tree-select/index.js +0 -61
  93. package/lib/cjs/fields/basic/upload/custom.js +0 -29
  94. package/lib/cjs/fields/basic/upload/index.js +0 -48
  95. package/lib/cjs/fields/enhance/number-range/index.js +0 -39
  96. package/lib/cjs/fields/semantic/date/index.js +0 -82
  97. package/lib/cjs/fields/semantic/image/index.js +0 -65
  98. package/lib/cjs/fields/semantic/image/upload.js +0 -32
  99. package/lib/cjs/fields/semantic/link/index.js +0 -96
  100. package/lib/cjs/fields/semantic/number/index.js +0 -106
  101. package/lib/cjs/fields/semantic/tag/index.js +0 -164
  102. package/lib/cjs/fields/semantic/tag/index.scss.js +0 -18
  103. package/lib/cjs/fields/semantic/text/index.js +0 -61
  104. package/lib/cjs/index.js +0 -145
  105. package/lib/cjs/utils/batch-dep-update.js +0 -40
  106. package/lib/cjs/utils/form-binding.js +0 -40
  107. package/lib/cjs/utils/label.js +0 -34
  108. package/lib/cjs/utils.js +0 -35
  109. /package/lib/{types/base.d.ts → base.d.ts} +0 -0
  110. /package/lib/{esm/base.js → base.js} +0 -0
  111. /package/lib/{types/components → components}/async-refill-placeholder/index.d.ts +0 -0
  112. /package/lib/{types/components → components}/image-preview/index.d.ts +0 -0
  113. /package/lib/{esm/components → components}/image-preview/index.js +0 -0
  114. /package/lib/{types/components → components}/span/index.d.ts +0 -0
  115. /package/lib/{esm/components → components}/span/index.js +0 -0
  116. /package/lib/{types/components → components}/upload-bridge/index.d.ts +0 -0
  117. /package/lib/{esm/components → components}/upload-bridge/index.js +0 -0
  118. /package/lib/{types/components → components}/upload-bridge/type.d.ts +0 -0
  119. /package/lib/{types/components → components}/upload-bridge/utils.d.ts +0 -0
  120. /package/lib/{esm/components → components}/upload-bridge/utils.js +0 -0
  121. /package/lib/{types/editable → editable}/ctx.d.ts +0 -0
  122. /package/lib/{esm/editable → editable}/ctx.js +0 -0
  123. /package/lib/{types/editable → editable}/editable.d.ts +0 -0
  124. /package/lib/{esm/editable → editable}/editable.js +0 -0
  125. /package/lib/{types/editable → editable}/index.d.ts +0 -0
  126. /package/lib/{esm/editable → editable}/index.js +0 -0
  127. /package/lib/{types/editable → editable}/readonly.d.ts +0 -0
  128. /package/lib/{esm/editable → editable}/readonly.js +0 -0
  129. /package/lib/{types/editable → editable}/simple.d.ts +0 -0
  130. /package/lib/{esm/editable → editable}/simple.js +0 -0
  131. /package/lib/{types/editable → editable}/type.d.ts +0 -0
  132. /package/lib/{types/editable → editable}/use-readonly.d.ts +0 -0
  133. /package/lib/{esm/editable → editable}/use-readonly.js +0 -0
  134. /package/lib/{types/extensible → extensible}/selectable/index.d.ts +0 -0
  135. /package/lib/{esm/extensible → extensible}/selectable/index.js +0 -0
  136. /package/lib/{types/extensible → extensible}/selectable/match-cascader.d.ts +0 -0
  137. /package/lib/{esm/extensible → extensible}/selectable/match-cascader.js +0 -0
  138. /package/lib/{types/extensible → extensible}/selectable/type.d.ts +0 -0
  139. /package/lib/{types/fields → fields}/basic/cascader/index.d.ts +0 -0
  140. /package/lib/{esm/fields → fields}/basic/cascader/index.js +0 -0
  141. /package/lib/{types/fields → fields}/basic/check-cascader/index.d.ts +0 -0
  142. /package/lib/{esm/fields → fields}/basic/check-cascader/index.js +0 -0
  143. /package/lib/{types/fields → fields}/basic/check-select/index.d.ts +0 -0
  144. /package/lib/{esm/fields → fields}/basic/check-select/index.js +0 -0
  145. /package/lib/{types/fields → fields}/basic/check-tree-select/index.d.ts +0 -0
  146. /package/lib/{esm/fields → fields}/basic/check-tree-select/index.js +0 -0
  147. /package/lib/{types/fields → fields}/basic/checkbox/index.d.ts +0 -0
  148. /package/lib/{esm/fields → fields}/basic/checkbox/index.js +0 -0
  149. /package/lib/{types/fields → fields}/basic/counter/index.d.ts +0 -0
  150. /package/lib/{esm/fields → fields}/basic/counter/index.js +0 -0
  151. /package/lib/{types/fields → fields}/basic/radio/index.d.ts +0 -0
  152. /package/lib/{esm/fields → fields}/basic/radio/index.js +0 -0
  153. /package/lib/{types/fields → fields}/basic/rating/index.d.ts +0 -0
  154. /package/lib/{esm/fields → fields}/basic/rating/index.js +0 -0
  155. /package/lib/{types/fields → fields}/basic/select/index.d.ts +0 -0
  156. /package/lib/{esm/fields → fields}/basic/select/index.js +0 -0
  157. /package/lib/{types/fields → fields}/basic/slider/index.d.ts +0 -0
  158. /package/lib/{esm/fields → fields}/basic/slider/index.js +0 -0
  159. /package/lib/{types/fields → fields}/basic/switch/index.d.ts +0 -0
  160. /package/lib/{esm/fields → fields}/basic/switch/index.js +0 -0
  161. /package/lib/{types/fields → fields}/basic/textarea/index.d.ts +0 -0
  162. /package/lib/{esm/fields → fields}/basic/textarea/index.js +0 -0
  163. /package/lib/{types/fields → fields}/basic/time-picker/index.d.ts +0 -0
  164. /package/lib/{esm/fields → fields}/basic/time-picker/index.js +0 -0
  165. /package/lib/{esm/fields → fields}/basic/time-picker/index.scss.js +0 -0
  166. /package/lib/{types/fields → fields}/basic/tree-select/index.d.ts +0 -0
  167. /package/lib/{esm/fields → fields}/basic/tree-select/index.js +0 -0
  168. /package/lib/{types/fields → fields}/basic/upload/custom.d.ts +0 -0
  169. /package/lib/{esm/fields → fields}/basic/upload/custom.js +0 -0
  170. /package/lib/{types/fields → fields}/basic/upload/index.d.ts +0 -0
  171. /package/lib/{esm/fields → fields}/basic/upload/index.js +0 -0
  172. /package/lib/{types/fields → fields}/enhance/number-range/index.d.ts +0 -0
  173. /package/lib/{esm/fields → fields}/enhance/number-range/index.js +0 -0
  174. /package/lib/{types/fields → fields}/semantic/date/index.d.ts +0 -0
  175. /package/lib/{esm/fields → fields}/semantic/date/index.js +0 -0
  176. /package/lib/{types/fields → fields}/semantic/image/index.d.ts +0 -0
  177. /package/lib/{esm/fields → fields}/semantic/image/index.js +0 -0
  178. /package/lib/{types/fields → fields}/semantic/image/upload.d.ts +0 -0
  179. /package/lib/{esm/fields → fields}/semantic/image/upload.js +0 -0
  180. /package/lib/{types/fields → fields}/semantic/link/index.d.ts +0 -0
  181. /package/lib/{esm/fields → fields}/semantic/link/index.js +0 -0
  182. /package/lib/{types/fields → fields}/semantic/number/index.d.ts +0 -0
  183. /package/lib/{esm/fields → fields}/semantic/number/index.js +0 -0
  184. /package/lib/{esm/fields → fields}/semantic/tag/index.scss.js +0 -0
  185. /package/lib/{types/fields → fields}/semantic/text/index.d.ts +0 -0
  186. /package/lib/{esm/fields → fields}/semantic/text/index.js +0 -0
  187. /package/lib/{types/utils → utils}/batch-dep-update.d.ts +0 -0
  188. /package/lib/{esm/utils → utils}/batch-dep-update.js +0 -0
  189. /package/lib/{types/utils → utils}/form-binding.d.ts +0 -0
  190. /package/lib/{esm/utils → utils}/form-binding.js +0 -0
  191. /package/lib/{types/utils → utils}/label.d.ts +0 -0
  192. /package/lib/{esm/utils → utils}/label.js +0 -0
  193. /package/lib/{types/utils.d.ts → utils.d.ts} +0 -0
@@ -14,57 +14,8 @@ import { omit, isNil } from 'lodash-es';
14
14
  import { Tag } from '@hi-ui/tag';
15
15
  import { ProField } from '../../../base.js';
16
16
  import { ReadonlyWrapper } from '../../../components/span/index.js';
17
+ import { colorPreset } from './preset.js';
17
18
  import './index.scss.js';
18
-
19
- // IPD的标签颜色规范,先记录在这里吧
20
- // https://www.figma.com/design/R7gUHJaKDPSAaWojTrNUe2/%E7%A0%94%E4%BA%A7%E4%BE%9B%E4%B8%9A%E5%8A%A1%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83-IPD?node-id=2042-50477&node-type=frame&t=uCEcQbmB9uwVVUIQ-0
21
- var colorPreset = {
22
- blue: {
23
- back: '#EDF7FE',
24
- fore: '#0744AD'
25
- },
26
- yellow: {
27
- back: '#FEFCE9',
28
- fore: '#875100'
29
- },
30
- green: {
31
- back: '#EEFEF2',
32
- fore: '#007D3E'
33
- },
34
- red: {
35
- back: '#FEF1EE',
36
- fore: '#B32D36'
37
- },
38
- orange: {
39
- back: '#FEF5EE',
40
- fore: '#B23E1B'
41
- },
42
- purple: {
43
- back: '#F5EEFE',
44
- fore: '#533DAD'
45
- },
46
- /** 蓝绿色 */cyan: {
47
- back: '#ECFEFC',
48
- fore: '#0C737A'
49
- },
50
- /** 天蓝色 */skyblue: {
51
- back: '#ECFCFE',
52
- fore: '#006BB3'
53
- },
54
- /** 深紫色 */darkPurple: {
55
- back: '#EEF2FE',
56
- fore: '#363AB3'
57
- },
58
- /** 蓝灰色 */blueGray: {
59
- back: '#EEF7FE',
60
- fore: '#3C5485'
61
- },
62
- /** 中灰色 */midGray: {
63
- back: '#F2F4F7',
64
- fore: '#1F2733'
65
- }
66
- };
67
- var ColorEnumPreset = Object.keys(colorPreset);
68
19
  function isInvalidTagData(data) {
69
20
  if (isNil(data)) return true;
70
21
  if (data === '') return true;
@@ -146,4 +97,4 @@ var ProTag = /*#__PURE__*/function (_ProField) {
146
97
  };
147
98
  return ProTag;
148
99
  }(ProField);
149
- export { ColorEnumPreset, ProTag, colorPreset };
100
+ export { ProTag };
@@ -0,0 +1,54 @@
1
+ import { type TagProps } from '@hi-ui/tag';
2
+ export type ColorPreset = {
3
+ back: TagProps['background'];
4
+ fore: TagProps['color'];
5
+ };
6
+ export declare const colorPreset: {
7
+ blue: {
8
+ back: string;
9
+ fore: string;
10
+ };
11
+ yellow: {
12
+ back: string;
13
+ fore: string;
14
+ };
15
+ green: {
16
+ back: string;
17
+ fore: string;
18
+ };
19
+ red: {
20
+ back: string;
21
+ fore: string;
22
+ };
23
+ orange: {
24
+ back: string;
25
+ fore: string;
26
+ };
27
+ purple: {
28
+ back: string;
29
+ fore: string;
30
+ };
31
+ /** 蓝绿色 */ cyan: {
32
+ back: string;
33
+ fore: string;
34
+ };
35
+ /** 天蓝色 */ skyblue: {
36
+ back: string;
37
+ fore: string;
38
+ };
39
+ /** 深紫色 */ darkPurple: {
40
+ back: string;
41
+ fore: string;
42
+ };
43
+ /** 蓝灰色 */ blueGray: {
44
+ back: string;
45
+ fore: string;
46
+ };
47
+ /** 中灰色 */ midGray: {
48
+ back: string;
49
+ fore: string;
50
+ };
51
+ };
52
+ export type BuiltinColorEnum = Required<TagProps>['type'];
53
+ export type SCMColorEnumPreset = keyof typeof colorPreset;
54
+ export declare const ColorEnumPreset: SCMColorEnumPreset[];
@@ -0,0 +1,60 @@
1
+ /** @LICENSE
2
+ * @hi-ui/schema-fields
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/schema/schema-fields#readme
4
+ *
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ // 内部的的标签颜色规范 // TODO 待确认后更新
11
+ var colorPreset = {
12
+ blue: {
13
+ back: '#EDF7FE',
14
+ fore: '#0744AD'
15
+ },
16
+ yellow: {
17
+ back: '#FEFCE9',
18
+ fore: '#875100'
19
+ },
20
+ green: {
21
+ back: '#EEFEF2',
22
+ fore: '#007D3E'
23
+ },
24
+ red: {
25
+ back: '#FEF1EE',
26
+ fore: '#B32D36'
27
+ },
28
+ orange: {
29
+ back: '#FEF5EE',
30
+ fore: '#B23E1B'
31
+ },
32
+ purple: {
33
+ back: '#F5EEFE',
34
+ fore: '#533DAD'
35
+ },
36
+ /** 蓝绿色 */cyan: {
37
+ back: '#ECFEFC',
38
+ fore: '#0C737A'
39
+ },
40
+ /** 天蓝色 */skyblue: {
41
+ back: '#ECFCFE',
42
+ fore: '#006BB3'
43
+ },
44
+ /** 深紫色 */darkPurple: {
45
+ back: '#EEF2FE',
46
+ fore: '#363AB3'
47
+ },
48
+ /** 蓝灰色 */blueGray: {
49
+ back: '#EEF7FE',
50
+ fore: '#3C5485'
51
+ },
52
+ /** 中灰色 */midGray: {
53
+ back: '#F2F4F7',
54
+ fore: '#1F2733'
55
+ }
56
+ // eslint-disable-next-line prettier/prettier
57
+ };
58
+
59
+ var ColorEnumPreset = Object.keys(colorPreset);
60
+ export { ColorEnumPreset, colorPreset };
package/lib/index.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ export type { ProCascaderProps } from './fields/basic/cascader';
2
+ export type { ProCheckCascaderProps } from './fields/basic/check-cascader';
3
+ export type { ProCheckSelectProps } from './fields/basic/check-select';
4
+ export type { ProCheckTreeSelectProps } from './fields/basic/check-tree-select';
5
+ export type { ProCheckboxProps } from './fields/basic/checkbox';
6
+ export type { ProCounterProps } from './fields/basic/counter';
7
+ export type { ProDateProps } from './fields/semantic/date';
8
+ export type { ProImageProps, ImageUploadProps } from './fields/semantic/image';
9
+ export type { ProLinkProps } from './fields/semantic/link';
10
+ export type { ProNumberProps } from './fields/semantic/number';
11
+ export type { ProRadioProps } from './fields/basic/radio';
12
+ export type { ProRatingProps } from './fields/basic/rating';
13
+ export type { ProSelectProps } from './fields/basic/select';
14
+ export type { ProSliderProps } from './fields/basic/slider';
15
+ export type { ProSwitchProps } from './fields/basic/switch';
16
+ export type { ProTagProps } from './fields/semantic/tag';
17
+ export type { ProTextProps } from './fields/semantic/text';
18
+ export type { ProTextAreaProps } from './fields/basic/textarea';
19
+ export type { ProTimePickerProps } from './fields/basic/time-picker';
20
+ export type { ProTreeSelectProps } from './fields/basic/tree-select';
21
+ export type { ProUploadProps } from './fields/basic/upload';
22
+ export type { ProNumberRangeProps } from './fields/enhance/number-range';
23
+ export type { BuiltinFieldMapType, ProFieldMapType } from './bundle';
24
+ export * from './base';
25
+ export * from './components/span';
26
+ export * from './ctx';
27
+ export * from './utils';
28
+ export { DumbInput } from './fields/semantic/text';
29
+ export { colorPreset, ColorEnumPreset } from './fields/semantic/tag/preset';
30
+ export * from './editable';
package/lib/index.js ADDED
@@ -0,0 +1,24 @@
1
+ /** @LICENSE
2
+ * @hi-ui/schema-fields
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/schema/schema-fields#readme
4
+ *
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ export { ProField } from './base.js';
11
+ export { ReadonlyWrapper, ReadonlyWrapper as Span } from './components/span/index.js';
12
+ export { FieldMapProvider, getFieldRenderFn, matchFieldClass, matchFieldRenderFn, useFieldMap, useMatchFieldClass } from './ctx.js';
13
+ export { getFieldProps, getFormItemProps, getWrapperProps } from './utils.js';
14
+ export { DumbInput } from './fields/semantic/text/index.js';
15
+ export { ColorEnumPreset, colorPreset } from './fields/semantic/tag/preset.js';
16
+ export { EditableField } from './editable/index.js';
17
+ export { getLabel } from './utils/label.js';
18
+ export { BatchDepUpdate } from './utils/batch-dep-update.js';
19
+ export { wrapFormBinding } from './utils/form-binding.js';
20
+ export { isReadonly, runDynamicEditable, useReadonly } from './editable/use-readonly.js';
21
+ export { EditableControlProvider, useEditableControlCtx } from './editable/ctx.js';
22
+ export { SimpleCase, isSimpleCase } from './editable/simple.js';
23
+ export { ReadonlyCase } from './editable/readonly.js';
24
+ export { EditableCase } from './editable/editable.js';
@@ -7,6 +7,7 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
+ import { __rest } from 'tslib';
10
11
  import { getPipeGetterValue, mergeProps } from '@hi-ui/schema-utils';
11
12
  import { wrapFormBinding } from './utils/form-binding.js';
12
13
  import 'react';
@@ -16,7 +17,19 @@ function getFieldProps(dftProps, ctx) {
16
17
  var fieldProps = getPipeGetterValue(dftProps, ctx.field.fieldProps);
17
18
  // formBinding 本质是 Form 注入给 field 的属性,因此在此处统一处理
18
19
  var formBindingProps = ctx.formBinding ? wrapFormBinding(ctx.formBinding, fieldProps) : {};
19
- return mergeProps(fieldProps, formBindingProps);
20
+ var value = formBindingProps.value,
21
+ onChange = formBindingProps.onChange,
22
+ onBlur = formBindingProps.onBlur,
23
+ invalid = formBindingProps.invalid,
24
+ restProps = __rest(formBindingProps, ["value", "onChange", "onBlur", "invalid"]);
25
+ var coreProps = {
26
+ value: value,
27
+ onChange: onChange,
28
+ onBlur: onBlur,
29
+ invalid: invalid
30
+ };
31
+ // 优先级:注入的普通属性 < 字段本身的属性 < formBinding 的核心属性
32
+ return mergeProps(restProps, fieldProps, coreProps);
20
33
  }
21
34
  function getWrapperProps(dftProps, ctx) {
22
35
  return getPipeGetterValue(dftProps, ctx.field.wrapperProps);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/schema-fields",
3
- "version": "4.0.0-experimental.1",
3
+ "version": "4.0.0-experimental.10",
4
4
  "description": "A sub-package for @hi-ui/schema.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -11,16 +11,32 @@
11
11
  "test": "__tests__"
12
12
  },
13
13
  "files": [
14
- "lib"
14
+ "lib",
15
+ "fields",
16
+ "components",
17
+ "bundle.js",
18
+ "bundle.d.ts"
15
19
  ],
16
- "main": "lib/cjs/index.js",
17
- "module": "lib/esm/index.js",
18
- "types": "lib/types/index.d.ts",
19
- "typings": "lib/types/index.d.ts",
20
+ "main": "lib/index.js",
21
+ "module": "lib/index.js",
22
+ "types": "lib/index.d.ts",
23
+ "typings": "lib/index.d.ts",
20
24
  "exports": {
21
25
  ".": {
22
- "require": "./lib/cjs/index.js",
23
- "default": "./lib/esm/index.js"
26
+ "default": "./lib/index.js",
27
+ "types": "./lib/index.d.ts"
28
+ },
29
+ "./bundle": {
30
+ "default": "./bundle.js",
31
+ "types": "./bundle.d.ts"
32
+ },
33
+ "./fields/*": {
34
+ "default": "./fields/*.js",
35
+ "types": "./fields/*.d.ts"
36
+ },
37
+ "./components/*": {
38
+ "default": "./components/*.js",
39
+ "types": "./components/*.d.ts"
24
40
  }
25
41
  },
26
42
  "publishConfig": {
@@ -32,12 +48,13 @@
32
48
  },
33
49
  "scripts": {
34
50
  "test": "jest",
35
- "clean": "rimraf lib",
51
+ "clean": "rimraf lib fields components bundle.*",
36
52
  "prebuild": "yarn clean",
37
- "build:esm": "hi-build ./src/index.tsx --format esm -d ./lib/esm",
38
- "build:cjs": "hi-build ./src/index.tsx --format cjs -d ./lib/cjs",
39
- "build:types": "tsc --emitDeclarationOnly --declaration --declarationDir lib/types && node scripts/prepend-types-refs.mjs",
40
- "build": "concurrently yarn:build:*"
53
+ "build:esm": "hi-build ./src/index.tsx --format esm -d ./lib",
54
+ "build:bundle:esm": "hi-build ./src/bundle.tsx --format esm -d ./lib",
55
+ "build:types": "node -e \"try{require('child_process').execSync('tsc --emitDeclarationOnly --declaration --declarationDir ./lib',{stdio:'ignore'});}catch(e){}\"",
56
+ "build-alias": "node scripts/build-alias.mjs",
57
+ "build": "yarn build:bundle:esm && yarn build:esm && yarn build:types && yarn build-alias"
41
58
  },
42
59
  "bugs": {
43
60
  "url": "https://github.com/XiaoMi/hiui/issues"
@@ -47,48 +64,48 @@
47
64
  "@hi-ui/dumb-wrapper": ">=4.0.0-experimental.1",
48
65
  "@hi-ui/schema-interrupt-injector": ">=4.0.0-experimental.1",
49
66
  "@hi-ui/number-range": ">=4.0.0-experimental.1",
50
- "@hi-ui/schema-option-injector": ">=4.0.0-experimental.1",
51
- "@hi-ui/schema-core": ">=4.0.0-experimental.1",
67
+ "@hi-ui/schema-option-injector": ">=4.0.0-experimental.7",
68
+ "@hi-ui/schema-core": ">=4.0.0-experimental.8",
52
69
  "@hi-ui/schema-hooks": ">=4.0.0-experimental.1",
53
- "@hi-ui/schema-utils": ">=4.0.0-experimental.1",
70
+ "@hi-ui/schema-utils": ">=4.0.0-experimental.5",
54
71
  "ahooks": "^3.9.6",
55
72
  "lodash-es": "^4.17.23"
56
73
  },
57
74
  "peerDependencies": {
58
- "@hi-ui/cascader": ">=5.0.0-experimental.0",
59
- "@hi-ui/check-cascader": ">=5.0.0-experimental.0",
60
- "@hi-ui/check-select": ">=5.0.0-experimental.0",
61
- "@hi-ui/check-tree-select": ">=5.0.0-experimental.0",
62
- "@hi-ui/checkbox": ">=5.0.0-experimental.0",
75
+ "@hi-ui/cascader": ">=5.0.0-experimental.2",
76
+ "@hi-ui/check-cascader": ">=5.0.0-experimental.2",
77
+ "@hi-ui/check-select": ">=5.0.0-experimental.2",
78
+ "@hi-ui/check-tree-select": ">=5.0.0-experimental.2",
79
+ "@hi-ui/checkbox": ">=5.0.0-experimental.1",
63
80
  "@hi-ui/classname": ">=5.0.0-experimental.0",
64
- "@hi-ui/counter": ">=5.0.0-experimental.0",
65
- "@hi-ui/date-picker": ">=5.0.0-experimental.0",
66
- "@hi-ui/ellipsis-tooltip": ">=5.0.0-experimental.0",
67
- "@hi-ui/icons": ">=5.0.0-experimental.0",
68
- "@hi-ui/input": ">=5.0.0-experimental.0",
69
- "@hi-ui/message": ">=5.0.0-experimental.0",
70
- "@hi-ui/number-input": ">=5.0.0-experimental.0",
71
- "@hi-ui/preview": ">=5.0.0-experimental.0",
72
- "@hi-ui/radio": ">=5.0.0-experimental.0",
73
- "@hi-ui/rating": ">=5.0.0-experimental.0",
74
- "@hi-ui/schema-types": ">=4.0.0-experimental.1",
75
- "@hi-ui/select": ">=5.0.0-experimental.0",
76
- "@hi-ui/slider": ">=5.0.0-experimental.0",
77
- "@hi-ui/space": ">=5.0.0-experimental.0",
78
- "@hi-ui/switch": ">=5.0.0-experimental.0",
79
- "@hi-ui/tag": ">=5.0.0-experimental.0",
80
- "@hi-ui/textarea": ">=5.0.0-experimental.0",
81
- "@hi-ui/time-picker": ">=5.0.0-experimental.0",
82
- "@hi-ui/tree-select": ">=5.0.0-experimental.0",
83
- "@hi-ui/upload": ">=5.0.0-experimental.0",
84
- "@hi-ui/utility-types": ">=4.0.0-experimental.1",
81
+ "@hi-ui/counter": ">=5.0.0-experimental.2",
82
+ "@hi-ui/date-picker": ">=5.0.0-experimental.2",
83
+ "@hi-ui/ellipsis-tooltip": ">=5.0.0-experimental.1",
84
+ "@hi-ui/icons": ">=5.0.0-experimental.1",
85
+ "@hi-ui/input": ">=5.0.0-experimental.2",
86
+ "@hi-ui/message": ">=5.0.0-experimental.1",
87
+ "@hi-ui/number-input": ">=5.0.0-experimental.2",
88
+ "@hi-ui/preview": ">=5.0.0-experimental.1",
89
+ "@hi-ui/radio": ">=5.0.0-experimental.1",
90
+ "@hi-ui/rating": ">=5.0.0-experimental.1",
91
+ "@hi-ui/schema-types": ">=4.0.0-experimental.3",
92
+ "@hi-ui/select": ">=5.0.0-experimental.2",
93
+ "@hi-ui/slider": ">=5.0.0-experimental.1",
94
+ "@hi-ui/space": ">=5.0.0-experimental.1",
95
+ "@hi-ui/switch": ">=5.0.0-experimental.1",
96
+ "@hi-ui/tag": ">=5.0.0-experimental.1",
97
+ "@hi-ui/textarea": ">=5.0.0-experimental.2",
98
+ "@hi-ui/time-picker": ">=5.0.0-experimental.2",
99
+ "@hi-ui/tree-select": ">=5.0.0-experimental.2",
100
+ "@hi-ui/upload": ">=5.0.0-experimental.1",
101
+ "@hi-ui/utility-types": ">=4.0.0-experimental.2",
85
102
  "dayjs": "^1.10.7",
86
103
  "react": ">=16.8.6",
87
104
  "react-router-dom": "^6.30.3"
88
105
  },
89
106
  "devDependencies": {
90
- "@hi-ui/schema-types": ">=4.0.0-experimental.1",
91
- "@hi-ui/utility-types": ">=4.0.0-experimental.1",
107
+ "@hi-ui/schema-types": ">=4.0.0-experimental.3",
108
+ "@hi-ui/utility-types": ">=4.0.0-experimental.2",
92
109
  "react": "^17.0.2",
93
110
  "react-router-dom": "^6.30.3"
94
111
  },
package/lib/cjs/base.js DELETED
@@ -1,125 +0,0 @@
1
- /** @LICENSE
2
- * @hi-ui/schema-fields
3
- * https://github.com/XiaoMi/hiui/tree/master/packages/schema/schema-fields#readme
4
- *
5
- * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
- 'use strict';
11
-
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
- Object.defineProperty(exports, '__esModule', {
14
- value: true
15
- });
16
- var _inheritsLoose = require('@babel/runtime/helpers/inheritsLoose');
17
- var React = require('react');
18
- var lodashEs = require('lodash-es');
19
- var Input = require('@hi-ui/input');
20
- var EllipsisTooltip = require('@hi-ui/ellipsis-tooltip');
21
- var schemaCore = require('@hi-ui/schema-core');
22
- var index = require('./components/span/index.js');
23
- var utils = require('./utils.js');
24
- function _interopDefaultCompat(e) {
25
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
- 'default': e
27
- };
28
- }
29
- var _inheritsLoose__default = /*#__PURE__*/_interopDefaultCompat(_inheritsLoose);
30
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
- var Input__default = /*#__PURE__*/_interopDefaultCompat(Input);
32
- var EllipsisTooltip__default = /*#__PURE__*/_interopDefaultCompat(EllipsisTooltip);
33
- var ProField = /*#__PURE__*/function (_AbstractProField) {
34
- _inheritsLoose__default["default"](ProField, _AbstractProField);
35
- function ProField() {
36
- var _this;
37
- _this = _AbstractProField.apply(this, arguments) || this;
38
- _this.dftDom = /*#__PURE__*/React__default["default"].createElement("span", {
39
- "data-case": "default"
40
- }, "-");
41
- return _this;
42
- }
43
- var _proto = ProField.prototype;
44
- _proto.getFieldProps = function getFieldProps(dftProps, ctx) {
45
- return utils.getFieldProps(dftProps, ctx);
46
- };
47
- _proto.getWrapperProps = function getWrapperProps(dftProps, ctx) {
48
- return utils.getWrapperProps(dftProps, ctx);
49
- };
50
- _proto.getFormItemProps = function getFormItemProps(dftProps, ctx) {
51
- return utils.getFormItemProps(dftProps, ctx);
52
- }
53
- /**
54
- * 渲染字符串的内部方法
55
- * @desc 很多类型的字段最终渲染时都是文本,因此提取一个公共方法到此处
56
- * @desc 封装了 EllipsisTooltip 的逻辑 */;
57
- _proto.renderString = function renderString(text, ctx) {
58
- var fieldProps = this.getFieldProps({
59
- numberOfLines: 1
60
- }, ctx);
61
- return /*#__PURE__*/React__default["default"].createElement(index.ReadonlyWrapper, null, /*#__PURE__*/React__default["default"].createElement(EllipsisTooltip__default["default"], {
62
- className: fieldProps.tooltipClassName,
63
- numberOfLines: fieldProps.numberOfLines
64
- }, text));
65
- }
66
- /** 只读模式的渲染逻辑 */;
67
- _proto.render = function render(data, ctx) {
68
- if (lodashEs.isNil(data)) return this.dftDom;
69
- if (Array.isArray(data)) {
70
- if (data.length === 0) return this.dftDom;
71
- return this.renderString(data.join(', '), ctx);
72
- }
73
- if (_typeof(data) === 'object') {
74
- return this.renderString(JSON.stringify(data), ctx);
75
- }
76
- return this.renderString(String(data), ctx);
77
- }
78
- /**
79
- * 表格单元格渲染逻辑
80
- * @desc 默认直接使用 render 的逻辑 */;
81
- _proto.renderCell = function renderCell(data, ctx) {
82
- return this.render(data, ctx);
83
- }
84
- /**
85
- * 表格 Footer 单元格渲染逻辑
86
- * @desc 没有默认逻辑,需由字段自行实现 */;
87
- _proto.renderFooterCell = function renderFooterCell(ctx) {
88
- console.log(ctx); // 仅用于规避定义未使用检查
89
- return null;
90
- };
91
- _proto.renderFormItem = function renderFormItem(data, ctx) {
92
- console.log(data, ctx); // 仅用于规避定义未使用检查
93
- throw new Error('ProField.renderFormItem not implemented');
94
- };
95
- _proto.getEditablePlaceholder = function getEditablePlaceholder(data, ctx) {
96
- if (lodashEs.isNil(data)) return '';
97
- if (typeof data === 'string') return data;
98
- if (typeof data === 'number') return String(data);
99
- if (typeof data === 'boolean') return data ? 'true' : 'false';
100
- if (Array.isArray(data)) return data.join(' / ');
101
- if (_typeof(data) === 'object') return JSON.stringify(data);
102
- return '';
103
- }
104
- /** 编辑模式的渲染逻辑,在只读与可编辑之间切换 */;
105
- _proto.renderEditable = function renderEditable(data, ctx, extraProps) {
106
- var _a;
107
- var fieldProps = this.getFieldProps({
108
- placeholder: this.getDftPlaceholder(ctx)
109
- }, ctx);
110
- return /*#__PURE__*/React__default["default"].createElement(Input__default["default"], Object.assign({
111
- value: this.getEditablePlaceholder(data, ctx),
112
- readOnly: true,
113
- disabled: (_a = ctx.field.control) === null || _a === void 0 ? void 0 : _a.disabled,
114
- onDoubleClick: ctx.onActivate,
115
- onFocus: ctx.onActivate,
116
- placeholder: fieldProps.placeholder
117
- }, extraProps));
118
- };
119
- _proto.getDftPlaceholder = function getDftPlaceholder(ctx) {
120
- var titleText = ctx.field._titleText;
121
- if (titleText) return "\u8BF7\u8F93\u5165" + titleText;
122
- };
123
- return ProField;
124
- }(schemaCore.AbstractProField);
125
- exports.ProField = ProField;
@@ -1,63 +0,0 @@
1
- /** @LICENSE
2
- * @hi-ui/schema-fields
3
- * https://github.com/XiaoMi/hiui/tree/master/packages/schema/schema-fields#readme
4
- *
5
- * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
- 'use strict';
11
-
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
- Object.defineProperty(exports, '__esModule', {
14
- value: true
15
- });
16
- var React = require('react');
17
- var Preview = require('@hi-ui/preview');
18
- var Space = require('@hi-ui/space');
19
- function _interopDefaultCompat(e) {
20
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
- 'default': e
22
- };
23
- }
24
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
- var Preview__default = /*#__PURE__*/_interopDefaultCompat(Preview);
26
- var Space__default = /*#__PURE__*/_interopDefaultCompat(Space);
27
- function ImagePreview(props) {
28
- var images = props.images;
29
- var _React$useState = React__default["default"].useState(false),
30
- visible = _React$useState[0],
31
- setVisible = _React$useState[1];
32
- var _React$useState2 = React__default["default"].useState(0),
33
- current = _React$useState2[0],
34
- setCurrent = _React$useState2[1];
35
- return /*#__PURE__*/React__default["default"].createElement("div", {
36
- className: "image-preview"
37
- }, /*#__PURE__*/React__default["default"].createElement(Preview__default["default"], {
38
- title: current + 1 + "/" + images.length,
39
- src: images,
40
- current: current,
41
- onPreviewChange: setCurrent,
42
- visible: visible,
43
- onClose: function onClose() {
44
- setVisible(false);
45
- }
46
- }), /*#__PURE__*/React__default["default"].createElement(Space__default["default"], null, images.map(function (url, index) {
47
- return /*#__PURE__*/React__default["default"].createElement("div", {
48
- key: index,
49
- className: "image-preview__item-wrapper"
50
- }, /*#__PURE__*/React__default["default"].createElement("img", {
51
- src: url,
52
- style: {
53
- width: '100%',
54
- cursor: 'pointer'
55
- },
56
- onClick: function onClick() {
57
- setCurrent(index);
58
- setVisible(true);
59
- }
60
- }));
61
- })));
62
- }
63
- exports.ImagePreview = ImagePreview;
@@ -1,33 +0,0 @@
1
- /** @LICENSE
2
- * @hi-ui/schema-fields
3
- * https://github.com/XiaoMi/hiui/tree/master/packages/schema/schema-fields#readme
4
- *
5
- * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
- 'use strict';
11
-
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
- Object.defineProperty(exports, '__esModule', {
14
- value: true
15
- });
16
- var React = require('react');
17
- var schemaUtils = require('@hi-ui/schema-utils');
18
- function _interopDefaultCompat(e) {
19
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
20
- 'default': e
21
- };
22
- }
23
- var React__default = /*#__PURE__*/_interopDefaultCompat(React);
24
- function ReadonlyWrapper(props) {
25
- var dataSet = schemaUtils.getDataSet(props.dataSet);
26
- return /*#__PURE__*/React__default["default"].createElement("span", Object.assign({
27
- "data-case": "readonly"
28
- }, dataSet, {
29
- style: props.style
30
- }), props.children);
31
- }
32
- exports.ReadonlyWrapper = ReadonlyWrapper;
33
- exports.Span = ReadonlyWrapper;