amis 1.6.5-beta.3 → 1.8.0-beta.0

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 (238) hide show
  1. package/lib/Schema.d.ts +3 -2
  2. package/lib/Schema.js +0 -1
  3. package/lib/Schema.js.map +2 -2
  4. package/lib/components/Alert2.js +4 -2
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AssociatedSelection.d.ts +84 -84
  7. package/lib/components/Avatar.d.ts +20 -20
  8. package/lib/components/Breadcrumb.d.ts +130 -0
  9. package/lib/components/Breadcrumb.js +161 -0
  10. package/lib/components/Breadcrumb.js.map +13 -0
  11. package/lib/components/Card.d.ts +20 -20
  12. package/lib/components/ChainedSelection.d.ts +84 -84
  13. package/lib/components/CityArea.js +3 -0
  14. package/lib/components/CityArea.js.map +2 -2
  15. package/lib/components/Collapse.d.ts +20 -20
  16. package/lib/components/CollapseGroup.d.ts +20 -20
  17. package/lib/components/DatePicker.d.ts +84 -84
  18. package/lib/components/DateRangePicker.d.ts +2 -2
  19. package/lib/components/DateRangePicker.js +36 -45
  20. package/lib/components/DateRangePicker.js.map +2 -2
  21. package/lib/components/GroupedSelection.d.ts +84 -84
  22. package/lib/components/Layout.d.ts +21 -21
  23. package/lib/components/ListGroup.d.ts +21 -21
  24. package/lib/components/PopUp.js +2 -1
  25. package/lib/components/PopUp.js.map +2 -2
  26. package/lib/components/Radios.d.ts +21 -21
  27. package/lib/components/Range.js.map +2 -2
  28. package/lib/components/Selection.d.ts +84 -84
  29. package/lib/components/TableSelection.d.ts +84 -84
  30. package/lib/components/Tabs.d.ts +52 -23
  31. package/lib/components/Tabs.js +198 -46
  32. package/lib/components/Tabs.js.map +2 -2
  33. package/lib/components/TooltipWrapper.d.ts +21 -20
  34. package/lib/components/TooltipWrapper.js +2 -2
  35. package/lib/components/TooltipWrapper.js.map +2 -2
  36. package/lib/components/Transfer.d.ts +84 -84
  37. package/lib/components/TransferDropDown.d.ts +84 -84
  38. package/lib/components/Tree.d.ts +84 -84
  39. package/lib/components/TreeSelection.d.ts +84 -84
  40. package/lib/components/calendar/Calendar.js +5 -0
  41. package/lib/components/calendar/Calendar.js.map +2 -2
  42. package/lib/components/calendar/DaysView.js.map +1 -1
  43. package/lib/components/icons.js +8 -0
  44. package/lib/components/icons.js.map +2 -2
  45. package/lib/components/index.d.ts +2 -1
  46. package/lib/components/index.js +4 -2
  47. package/lib/components/index.js.map +2 -2
  48. package/lib/icons/cloud-upload.js +17 -0
  49. package/lib/icons/image.js +7 -0
  50. package/lib/icons/refresh.js +9 -0
  51. package/lib/icons/trash.js +10 -0
  52. package/lib/icons/upload.js +3 -8
  53. package/lib/index.d.ts +1 -0
  54. package/lib/index.js +2 -1
  55. package/lib/index.js.map +2 -2
  56. package/lib/locale/en-US.js +3 -1
  57. package/lib/locale/en-US.js.map +2 -2
  58. package/lib/locale/zh-CN.js +4 -2
  59. package/lib/locale/zh-CN.js.map +2 -2
  60. package/lib/renderers/Action.d.ts +1 -1
  61. package/lib/renderers/Action.js.map +2 -2
  62. package/lib/renderers/Breadcrumb.d.ts +41 -6
  63. package/lib/renderers/Breadcrumb.js +23 -19
  64. package/lib/renderers/Breadcrumb.js.map +2 -2
  65. package/lib/renderers/ButtonGroup.d.ts +2 -2
  66. package/lib/renderers/ButtonGroup.js.map +1 -1
  67. package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
  68. package/lib/renderers/Form/ChainedSelect.js +83 -34
  69. package/lib/renderers/Form/ChainedSelect.js.map +2 -2
  70. package/lib/renderers/Form/Checkbox.d.ts +3 -0
  71. package/lib/renderers/Form/Checkbox.js +38 -1
  72. package/lib/renderers/Form/Checkbox.js.map +2 -2
  73. package/lib/renderers/Form/Combo.d.ts +4 -3
  74. package/lib/renderers/Form/Combo.js +81 -32
  75. package/lib/renderers/Form/Combo.js.map +2 -2
  76. package/lib/renderers/Form/DiffEditor.d.ts +1 -1
  77. package/lib/renderers/Form/InputCity.d.ts +84 -84
  78. package/lib/renderers/Form/InputCity.js +4 -1
  79. package/lib/renderers/Form/InputCity.js.map +2 -2
  80. package/lib/renderers/Form/InputColor.js +3 -1
  81. package/lib/renderers/Form/InputColor.js.map +2 -2
  82. package/lib/renderers/Form/InputDate.js +3 -1
  83. package/lib/renderers/Form/InputDate.js.map +2 -2
  84. package/lib/renderers/Form/InputDateRange.js +3 -1
  85. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  86. package/lib/renderers/Form/InputExcel.d.ts +4 -0
  87. package/lib/renderers/Form/InputExcel.js +33 -6
  88. package/lib/renderers/Form/InputExcel.js.map +2 -2
  89. package/lib/renderers/Form/InputFile.d.ts +8 -1
  90. package/lib/renderers/Form/InputFile.js +71 -42
  91. package/lib/renderers/Form/InputFile.js.map +2 -2
  92. package/lib/renderers/Form/InputImage.d.ts +4 -1
  93. package/lib/renderers/Form/InputImage.js +21 -9
  94. package/lib/renderers/Form/InputImage.js.map +2 -2
  95. package/lib/renderers/Form/InputRange.d.ts +27 -9
  96. package/lib/renderers/Form/InputRange.js +88 -23
  97. package/lib/renderers/Form/InputRange.js.map +2 -2
  98. package/lib/renderers/Form/InputSubForm.js +2 -1
  99. package/lib/renderers/Form/InputSubForm.js.map +2 -2
  100. package/lib/renderers/Form/InputTag.js +2 -1
  101. package/lib/renderers/Form/InputTag.js.map +2 -2
  102. package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
  103. package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
  104. package/lib/renderers/Form/NestedSelect.d.ts +9 -6
  105. package/lib/renderers/Form/NestedSelect.js +247 -130
  106. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  107. package/lib/renderers/Form/Options.js +2 -1
  108. package/lib/renderers/Form/Options.js.map +2 -2
  109. package/lib/renderers/Form/Radios.js +2 -1
  110. package/lib/renderers/Form/Radios.js.map +2 -2
  111. package/lib/renderers/Form/Select.js +6 -3
  112. package/lib/renderers/Form/Select.js.map +2 -2
  113. package/lib/renderers/Form/Switch.d.ts +7 -6
  114. package/lib/renderers/Form/Switch.js +4 -1
  115. package/lib/renderers/Form/Switch.js.map +2 -2
  116. package/lib/renderers/Log.js +2 -1
  117. package/lib/renderers/Log.js.map +2 -2
  118. package/lib/renderers/PopOver.js +1 -1
  119. package/lib/renderers/PopOver.js.map +2 -2
  120. package/lib/renderers/Tabs.d.ts +58 -5
  121. package/lib/renderers/Tabs.js +170 -58
  122. package/lib/renderers/Tabs.js.map +2 -2
  123. package/lib/renderers/TooltipWrapper.d.ts +104 -0
  124. package/lib/renderers/TooltipWrapper.js +59 -0
  125. package/lib/renderers/TooltipWrapper.js.map +13 -0
  126. package/lib/renderers/Video.d.ts +6 -0
  127. package/lib/renderers/Video.js +13 -6
  128. package/lib/renderers/Video.js.map +2 -2
  129. package/lib/store/form.js +4 -13
  130. package/lib/store/form.js.map +2 -2
  131. package/lib/store/table.js +1 -1
  132. package/lib/store/table.js.map +2 -2
  133. package/lib/themes/ang-ie11.css +742 -160
  134. package/lib/themes/ang.css +793 -163
  135. package/lib/themes/ang.css.map +1 -1
  136. package/lib/themes/antd-ie11.css +757 -175
  137. package/lib/themes/antd.css +793 -163
  138. package/lib/themes/antd.css.map +1 -1
  139. package/lib/themes/cxd-ie11.css +1249 -667
  140. package/lib/themes/cxd.css +970 -321
  141. package/lib/themes/cxd.css.map +1 -1
  142. package/lib/themes/dark-ie11.css +742 -160
  143. package/lib/themes/dark.css +793 -163
  144. package/lib/themes/dark.css.map +1 -1
  145. package/lib/themes/default-ie11.css +1249 -667
  146. package/lib/themes/default.css +970 -321
  147. package/lib/themes/default.css.map +1 -1
  148. package/package.json +1 -1
  149. package/schema.json +16012 -736
  150. package/scss/_properties.scss +56 -2
  151. package/scss/components/_alert.scss +1 -1
  152. package/scss/components/_breadcrumb.scss +90 -1
  153. package/scss/components/_button-group.scss +15 -0
  154. package/scss/components/_city-area.scss +2 -0
  155. package/scss/components/_popup.scss +13 -3
  156. package/scss/components/_tabs.scss +629 -132
  157. package/scss/components/_tooltip.scss +72 -0
  158. package/scss/components/form/_file.scss +82 -24
  159. package/scss/components/form/_image.scss +30 -25
  160. package/scss/components/form/_number.scss +2 -0
  161. package/scss/components/form/_switch.scss +1 -3
  162. package/scss/themes/_cxd-colors.scss +47 -47
  163. package/scss/themes/_cxd-variables.scss +20 -0
  164. package/sdk/ang-ie11.css +879 -196
  165. package/sdk/ang.css +931 -200
  166. package/sdk/antd-ie11.css +951 -268
  167. package/sdk/antd.css +931 -200
  168. package/sdk/barcode.js +51 -51
  169. package/sdk/charts.js +14 -14
  170. package/sdk/codemirror.js +7 -7
  171. package/sdk/color-picker.js +65 -65
  172. package/sdk/cropperjs.js +2 -2
  173. package/sdk/cxd-ie11.css +1386 -703
  174. package/sdk/cxd.css +1107 -357
  175. package/sdk/dark-ie11.css +879 -196
  176. package/sdk/dark.css +931 -200
  177. package/sdk/exceljs.js +1 -1
  178. package/sdk/markdown.js +69 -69
  179. package/sdk/papaparse.js +1 -1
  180. package/sdk/renderers/Form/CityDB.js +1 -1
  181. package/sdk/rest.js +17 -17
  182. package/sdk/rich-text.js +62 -62
  183. package/sdk/sdk-ie11.css +1386 -703
  184. package/sdk/sdk.css +1107 -357
  185. package/sdk/sdk.js +1260 -1248
  186. package/sdk/thirds/hls.js/hls.js +1 -1
  187. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  188. package/sdk/tinymce.js +57 -57
  189. package/src/Schema.ts +5 -2
  190. package/src/components/Alert2.tsx +9 -3
  191. package/src/components/Breadcrumb.tsx +294 -0
  192. package/src/components/CityArea.tsx +3 -0
  193. package/src/components/DateRangePicker.tsx +40 -68
  194. package/src/components/PopUp.tsx +6 -5
  195. package/src/components/Range.tsx +7 -1
  196. package/src/components/Tabs.tsx +300 -54
  197. package/src/components/TooltipWrapper.tsx +4 -1
  198. package/src/components/calendar/Calendar.tsx +5 -0
  199. package/src/components/calendar/DaysView.tsx +2 -2
  200. package/src/components/icons.tsx +8 -0
  201. package/src/components/index.tsx +2 -0
  202. package/src/icons/cloud-upload.svg +22 -0
  203. package/src/icons/image.svg +1 -0
  204. package/src/icons/refresh.svg +7 -0
  205. package/src/icons/trash.svg +8 -0
  206. package/src/icons/upload.svg +4 -9
  207. package/src/index.tsx +1 -0
  208. package/src/locale/en-US.ts +3 -1
  209. package/src/locale/zh-CN.ts +4 -2
  210. package/src/renderers/Action.tsx +2 -1
  211. package/src/renderers/Breadcrumb.tsx +89 -45
  212. package/src/renderers/ButtonGroup.tsx +2 -2
  213. package/src/renderers/Form/ChainedSelect.tsx +56 -12
  214. package/src/renderers/Form/Checkbox.tsx +30 -1
  215. package/src/renderers/Form/Combo.tsx +84 -26
  216. package/src/renderers/Form/InputCity.tsx +13 -1
  217. package/src/renderers/Form/InputColor.tsx +2 -0
  218. package/src/renderers/Form/InputDate.tsx +2 -0
  219. package/src/renderers/Form/InputDateRange.tsx +2 -0
  220. package/src/renderers/Form/InputExcel.tsx +27 -5
  221. package/src/renderers/Form/InputFile.tsx +167 -115
  222. package/src/renderers/Form/InputImage.tsx +61 -35
  223. package/src/renderers/Form/InputRange.tsx +95 -40
  224. package/src/renderers/Form/InputSubForm.tsx +2 -1
  225. package/src/renderers/Form/InputTag.tsx +3 -1
  226. package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
  227. package/src/renderers/Form/NestedSelect.tsx +75 -26
  228. package/src/renderers/Form/Options.tsx +3 -1
  229. package/src/renderers/Form/Radios.tsx +3 -1
  230. package/src/renderers/Form/Select.tsx +6 -2
  231. package/src/renderers/Form/Switch.tsx +16 -9
  232. package/src/renderers/Log.tsx +2 -1
  233. package/src/renderers/PopOver.tsx +1 -1
  234. package/src/renderers/Tabs.tsx +254 -93
  235. package/src/renderers/TooltipWrapper.tsx +219 -0
  236. package/src/renderers/Video.tsx +21 -6
  237. package/src/store/form.ts +0 -9
  238. package/src/store/table.ts +1 -1
@@ -1,11 +1,6 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16" version="1.1" p-id="1463">
3
- <g stroke="currentColor" stroke-width="2" fill="none" fill-rule="evenodd">
4
- <path d="M8,12.2426 L8,1.2426"></path>
5
- <path d="M4.4648,4.9496 L8.7068,0.7076"></path>
6
- <path d="M11.5352,4.9496 L7.2932,0.7076"></path>
7
- <path d="M0,14.2426 L16,14.2426"></path>
8
- <path d="M1,9.2426 L1,15.2426"></path>
9
- <path d="M15,9.2426 L15,15.2426"></path>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <g id="上传" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
4
+ <path d="M3,10 L3,12.995 L13,12.995 L13,10 L14,10 L14,14 L13,14 L13,13.995 L3,13.995 L3,14 L2,14 L2,10 L3,10 Z M8.0259,1.9998 L11.8401458,5.8148 L11.1331458,6.5218 L8.5169,3.9048 L8.51614575,10.9998 L7.51614575,10.9998 L7.5169,3.9228 L4.89114575,6.5478 L4.18414575,5.8418 L8.0259,1.9998 Z" id="图标-填色" fill="currentColor"></path>
10
5
  </g>
11
6
  </svg>
package/src/index.tsx CHANGED
@@ -175,6 +175,7 @@ import './renderers/TableView';
175
175
  import './renderers/Code';
176
176
  import './renderers/WebComponent';
177
177
  import './renderers/GridNav';
178
+ import './renderers/TooltipWrapper';
178
179
 
179
180
  import Scoped, {ScopedContext} from './Scoped';
180
181
 
@@ -100,15 +100,17 @@ register('en-US', {
100
100
  'fetchFailed': 'Fetch api failed',
101
101
  'File.continueAdd': 'Continue add',
102
102
  'File.downloadTpl': 'Download template',
103
- 'File.dragDrop': `Drag 'n' drop some files here`,
103
+ 'File.dragDrop': `Drag 'n' drop some files here or click here to upload`,
104
104
  'File.errorRetry': 'File upload failed, please try again',
105
105
  'File.failed': 'Failed files.',
106
106
  'File.invalidType': '{{files}} does not match type `{{accept}}`',
107
+ 'File.maxLength': 'The maximum limit is {{maxLength}}',
107
108
  'File.maxSize': '{{filename}} you selected exceeds the maximum limit of {{maxsize}} (in bytes)',
108
109
  'File.pause': 'Pause uplaod',
109
110
  'File.repick': 'Repick',
110
111
  'File.result': 'Successfully uploaded {{uploaded}} files, failed to upload {{failed}} files',
111
112
  'File.retry': 'Retry',
113
+ 'File.sizeLimit': 'The maximum file size is {{maxSize}} B',
112
114
  'File.start': 'Start upload',
113
115
  'File.upload': 'Upload',
114
116
  'File.uploadFailed': 'return data of udpload api is empty',
@@ -105,17 +105,19 @@ register('zh-CN', {
105
105
  'fetchFailed': '初始化失败',
106
106
  'File.continueAdd': '继续添加',
107
107
  'File.downloadTpl': '下载模板',
108
- 'File.dragDrop': '将文件拖拽到此处',
108
+ 'File.dragDrop': '将文件拖到此处,或点击上传',
109
109
  'File.errorRetry': '文件上传失败请重试',
110
110
  'File.failed': '失败文件',
111
111
  'File.invalidType': '{{files}} 不符合类型的 {{accept}} 的设定,请仔细检查',
112
+ 'File.maxLength': '最多上传 {{maxLength}} 个文件',
112
113
  'File.maxSize': '{{filename}} 大小为 {{actualSize}} 超出了最大为 {{maxSize}} (字节)的限制',
113
114
  'File.pause': '暂停上传',
114
115
  'File.repick': '重新选择',
115
116
  'File.result': '已成功上传 {{uploaded}} 个文件,{{failed}} 个文件上传失败,',
116
117
  'File.retry': '重试上传',
118
+ 'File.sizeLimit': '文件大小不超过 {{maxSize}} B',
117
119
  'File.start': '开始上传',
118
- 'File.upload': '已上传',
120
+ 'File.upload': '文件上传',
119
121
  'File.uploadFailed': '接口返回错误,请仔细检查',
120
122
  'File.uploading': '上传中...',
121
123
  'Form.loadOptionsFailed': '加载选项失败,原因:{{reason}}',
@@ -62,7 +62,8 @@ export interface ButtonSchema extends BaseSchema {
62
62
  | 'link'
63
63
  | 'primary'
64
64
  | 'dark'
65
- | 'light';
65
+ | 'light'
66
+ | 'secondary';
66
67
 
67
68
  /**
68
69
  * @deprecated 通过 level 来配置
@@ -4,9 +4,26 @@
4
4
  import React from 'react';
5
5
  import {Renderer, RendererProps} from '../factory';
6
6
  import {BaseSchema, SchemaIcon, SchemaUrlPath} from '../Schema';
7
- import {generateIcon} from '../utils/icon';
8
7
  import {filter} from '../utils/tpl';
9
- import {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
8
+ import {resolveVariableAndFilter} from '../utils/tpl-builtin';
9
+ import Breadcrumb from '../components/Breadcrumb';
10
+
11
+ export type BreadcrumbBaseItemSchema = {
12
+ /**
13
+ * 文字
14
+ */
15
+ label?: string;
16
+
17
+ /**
18
+ * 图标类名
19
+ */
20
+ icon?: SchemaIcon;
21
+
22
+ /**
23
+ * 链接地址
24
+ */
25
+ href?: SchemaUrlPath;
26
+ } & Omit<BaseSchema, 'type'>;
10
27
 
11
28
  export type BreadcrumbItemSchema = {
12
29
  /**
@@ -23,90 +40,117 @@ export type BreadcrumbItemSchema = {
23
40
  * 链接地址
24
41
  */
25
42
  href?: SchemaUrlPath;
43
+
44
+ /**
45
+ * 下拉菜单
46
+ */
47
+ dropdown?: Array<BreadcrumbBaseItemSchema>;
26
48
  } & Omit<BaseSchema, 'type'>;
27
49
 
50
+ export type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';
51
+
52
+ export type ItemPlace = 'start' | 'middle' | 'end';
53
+
28
54
  /**
29
55
  * Breadcrumb 显示渲染器
30
56
  * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb
31
57
  */
32
- export interface BreadcrumbSchema extends BaseSchema {
58
+
59
+ export interface BreadcrumbSchema extends BaseSchema {
33
60
  /**
34
61
  * 指定为面包屑显示控件
35
62
  */
36
63
  type: 'breadcrumb';
37
64
 
65
+ /**
66
+ * 面包项类名
67
+ */
68
+ itemClassName?: string;
69
+
38
70
  /**
39
71
  * 分隔符
40
72
  */
41
73
  separator?: string;
42
74
 
43
75
  /**
44
- * 分隔符类
76
+ * 分隔符类名
45
77
  */
46
78
  separatorClassName?: string;
47
79
 
80
+ /**
81
+ * 下拉菜单类名
82
+ */
83
+ dropdownClassName?: string;
84
+
85
+ /**
86
+ * 下拉菜单项类名
87
+ */
88
+ dropdownItemClassName?: string;
89
+
48
90
  /**
49
91
  * 列表
50
92
  */
51
93
  items: Array<BreadcrumbItemSchema>;
94
+
95
+ /**
96
+ * labelMaxLength
97
+ */
98
+ labelMaxLength?: number;
99
+
100
+ /**
101
+ * 浮窗提示位置
102
+ */
103
+ tooltipPosition?: TooltipPositionType;
52
104
  }
53
105
 
54
- export interface BreadcrumbProps
55
- extends RendererProps,
56
- Omit<BreadcrumbSchema, 'type' | 'className'> {}
106
+ export interface BreadcrumbProps extends RendererProps,
107
+ Omit<BreadcrumbSchema, 'type' | 'className'> {}
57
108
 
58
109
  export class BreadcrumbField extends React.Component<BreadcrumbProps, object> {
59
- static defaultProps = {
60
- className: '',
61
- itemClassName: '',
62
- separator: '/'
63
- };
64
-
65
110
  render() {
66
111
  const {
67
- className,
68
- itemClassName,
69
- separatorClassName,
70
- classnames: cx,
71
112
  items,
72
113
  source,
73
114
  data,
74
- separator,
75
- render
115
+ env,
116
+ ...restProps
76
117
  } = this.props;
77
118
 
78
- const crumbItems = items
119
+ let crumbItems = items
79
120
  ? items
80
121
  : (resolveVariableAndFilter(
81
122
  source,
82
123
  data,
83
124
  '| raw'
84
125
  ) as Array<BreadcrumbItemSchema>);
85
- const crumbs = crumbItems
86
- .map<React.ReactNode>((item, index) => (
87
- <span className={cx('Breadcrumb-item', itemClassName)} key={index}>
88
- {item.icon
89
- ? generateIcon(cx, item.icon, 'Icon', 'Breadcrumb-icon')
90
- : null}
91
- {item.href ? (
92
- <a href={filter(item.href, data)}>{filter(item.label, data)}</a>
93
- ) : (
94
- render('label', filter(item.label, data))
95
- )}
96
- </span>
97
- ))
98
- .reduce((prev, curr, index) => [
99
- prev,
100
- <span
101
- className={cx('Breadcrumb-separator', separatorClassName)}
102
- key={`separator-${index}`}
103
- >
104
- {separator}
105
- </span>,
106
- curr
107
- ]);
108
-
109
- return <div className={cx('Breadcrumb', className)}>{crumbs}</div>;
126
+ crumbItems = crumbItems.map(item => {
127
+ if (item.label) {
128
+ item.label = filter(item.label, data);
129
+ }
130
+ if (item.href) {
131
+ item.href = filter(item.href, data);
132
+ }
133
+ if (item.dropdown) {
134
+ item.dropdown = item.dropdown.map(dropdownItem => {
135
+ if (dropdownItem.label) {
136
+ dropdownItem.label = filter(dropdownItem.label, data);
137
+ }
138
+ if (dropdownItem.href) {
139
+ dropdownItem.href = filter(dropdownItem.href, data);
140
+ }
141
+ return dropdownItem;
142
+ });
143
+ }
144
+ return item;
145
+ });
146
+
147
+ return (
148
+ <Breadcrumb
149
+ items={crumbItems}
150
+ tooltipContainer={env?.getModalContainer}
151
+ {...restProps}
152
+ ></Breadcrumb>
153
+ );
110
154
  }
111
155
  }
112
156
 
@@ -15,12 +15,12 @@ export interface ButtonGroupSchema extends BaseSchema {
15
15
  type: 'button-group';
16
16
 
17
17
  /**
18
- * 给 Button 配置 className
18
+ * @deprecated 给 Button 配置 className。建议用btnLevel
19
19
  */
20
20
  btnClassName?: SchemaClassName;
21
21
 
22
22
  /**
23
- * 给选中态 Button 配置 className
23
+ * @deprecated 给选中态 Button 配置 className。建议用btnActiveLevel
24
24
  */
25
25
  btnActiveClassName: string;
26
26
 
@@ -10,7 +10,8 @@ import Select from '../../components/Select';
10
10
  import {Api} from '../../types';
11
11
  import {isEffectiveApi} from '../../utils/api';
12
12
  import {SchemaApi} from '../../Schema';
13
- import {isMobile} from '../../utils/helper';
13
+ import {isMobile, createObject} from '../../utils/helper';
14
+ import {Action} from '../../types';
14
15
 
15
16
  /**
16
17
  * 级联选择框
@@ -81,6 +82,27 @@ export default class ChainedSelectControl extends React.Component<
81
82
  }
82
83
  }
83
84
 
85
+ doAction(action: Action, data: object, throwErrors: boolean) {
86
+ const {resetValue, onChange} = this.props;
87
+ const actionType = action?.actionType as string;
88
+
89
+ if (!!~['clear', 'reset'].indexOf(actionType)) {
90
+ onChange(resetValue ?? '');
91
+ }
92
+ }
93
+
94
+ array2value(arr: Array<any>, isExtracted: boolean = false) {
95
+ const {delimiter, joinValues, extractValue} = this.props;
96
+ // 判断arr的项是否已抽取
97
+ return isExtracted
98
+ ? (joinValues ? arr.join(delimiter || ',') : arr)
99
+ : (joinValues
100
+ ? arr.join(delimiter || ',')
101
+ : extractValue
102
+ ? arr.map(item => item.value || item)
103
+ : arr)
104
+ }
105
+
84
106
  loadMore() {
85
107
  const {
86
108
  value,
@@ -90,7 +112,8 @@ export default class ChainedSelectControl extends React.Component<
90
112
  extractValue,
91
113
  source,
92
114
  data,
93
- env
115
+ env,
116
+ dispatchEvent
94
117
  } = this.props;
95
118
 
96
119
  const arr = Array.isArray(value)
@@ -135,7 +158,7 @@ export default class ChainedSelectControl extends React.Component<
135
158
  parentId,
136
159
  parent: arr[idx]
137
160
  })
138
- .then(ret => {
161
+ .then(async (ret) => {
139
162
  // todo 没有检测 response.ok
140
163
 
141
164
  const stack = this.state.stack.concat();
@@ -147,7 +170,21 @@ export default class ChainedSelectControl extends React.Component<
147
170
  if (typeof remoteValue !== 'undefined') {
148
171
  arr.splice(idx + 1, value.length - idx - 1);
149
172
  arr.push(remoteValue);
150
- onChange(joinValues ? arr.join(delimiter || ',') : arr);
173
+
174
+ const valueRes = this.array2value(arr, true);
175
+
176
+ const rendererEvent = await dispatchEvent(
177
+ 'change',
178
+ createObject(data, {
179
+ value: valueRes
180
+ })
181
+ );
182
+
183
+ if (rendererEvent?.prevented) {
184
+ return;
185
+ }
186
+
187
+ onChange(valueRes);
151
188
  }
152
189
 
153
190
  stack.push({
@@ -171,8 +208,8 @@ export default class ChainedSelectControl extends React.Component<
171
208
  );
172
209
  }
173
210
 
174
- handleChange(index: number, currentValue: any) {
175
- const {value, delimiter, onChange, joinValues, extractValue} = this.props;
211
+ async handleChange(index: number, currentValue: any) {
212
+ const {value, delimiter, onChange, joinValues, extractValue, dispatchEvent, data} = this.props;
176
213
 
177
214
  const arr = Array.isArray(value)
178
215
  ? value.concat()
@@ -182,13 +219,20 @@ export default class ChainedSelectControl extends React.Component<
182
219
  arr.splice(index, arr.length - index);
183
220
  arr.push(joinValues ? currentValue.value : currentValue);
184
221
 
185
- onChange(
186
- joinValues
187
- ? arr.join(delimiter || ',')
188
- : extractValue
189
- ? arr.map(item => item.value || item)
190
- : arr
222
+ const valueRes = this.array2value(arr);
223
+
224
+ const rendererEvent = await dispatchEvent(
225
+ 'change',
226
+ createObject(data, {
227
+ value: valueRes
228
+ })
191
229
  );
230
+
231
+ if (rendererEvent?.prevented) {
232
+ return;
233
+ }
234
+
235
+ onChange(valueRes);
192
236
  }
193
237
 
194
238
  reload() {
@@ -3,6 +3,8 @@ import {FormItem, FormControlProps, FormBaseControl} from './Item';
3
3
  import cx from 'classnames';
4
4
  import Checkbox from '../../components/Checkbox';
5
5
  import {withBadge, BadgeSchema} from '../../components/Badge';
6
+ import {autobind, createObject} from '../../utils/helper';
7
+ import {Action} from '../../types';
6
8
 
7
9
  /**
8
10
  * Checkbox 勾选框。
@@ -50,6 +52,33 @@ export default class CheckboxControl extends React.Component<
50
52
  trueValue: true,
51
53
  falseValue: false
52
54
  };
55
+
56
+ doAction(action: Action, data: object, throwErrors: boolean) {
57
+ const {resetValue, onChange} = this.props;
58
+ const actionType = action?.actionType as string;
59
+
60
+ if (!!~['clear', 'reset'].indexOf(actionType)) {
61
+ onChange(resetValue ?? '');
62
+ }
63
+ }
64
+
65
+ @autobind
66
+ async dispatchChangeEvent(eventData: any = {}) {
67
+ const {dispatchEvent, data, onChange} = this.props;
68
+ const rendererEvent = await dispatchEvent(
69
+ 'change',
70
+ createObject(data, {
71
+ value: eventData,
72
+ })
73
+ );
74
+
75
+ if (rendererEvent?.prevented) {
76
+ return;
77
+ }
78
+
79
+ onChange && onChange(eventData);
80
+ }
81
+
53
82
  render() {
54
83
  const {
55
84
  className,
@@ -71,7 +100,7 @@ export default class CheckboxControl extends React.Component<
71
100
  trueValue={trueValue}
72
101
  falseValue={falseValue}
73
102
  disabled={disabled}
74
- onChange={(value: any) => onChange(value)}
103
+ onChange={(value: any) => this.dispatchChangeEvent(value)}
75
104
  >
76
105
  {option ? render('option', option) : null}
77
106
  </Checkbox>