amis 1.3.5-beta.3 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/lib/components/Badge.d.ts +15 -2
  2. package/lib/components/Badge.js +47 -4
  3. package/lib/components/Badge.js.map +2 -2
  4. package/lib/components/Button.d.ts +24 -22
  5. package/lib/components/Button.js +13 -7
  6. package/lib/components/Button.js.map +2 -2
  7. package/lib/components/Checkbox.d.ts +1 -1
  8. package/lib/components/Checkbox.js +1 -1
  9. package/lib/components/Checkbox.js.map +2 -2
  10. package/lib/components/Drawer.js +1 -1
  11. package/lib/components/Drawer.js.map +2 -2
  12. package/lib/components/Modal.js +1 -1
  13. package/lib/components/Modal.js.map +2 -2
  14. package/lib/components/RichText.d.ts +6 -4
  15. package/lib/components/RichText.js +241 -27
  16. package/lib/components/RichText.js.map +2 -2
  17. package/lib/components/Select.d.ts +7 -0
  18. package/lib/components/Select.js.map +2 -2
  19. package/lib/components/Steps.d.ts +3 -3
  20. package/lib/components/Steps.js.map +1 -1
  21. package/lib/components/WithRemoteConfig.d.ts +8 -0
  22. package/lib/components/WithRemoteConfig.js +28 -2
  23. package/lib/components/WithRemoteConfig.js.map +2 -2
  24. package/lib/components/calendar/DaysView.js +2 -2
  25. package/lib/components/calendar/DaysView.js.map +2 -2
  26. package/lib/components/condition-builder/Field.js +0 -1
  27. package/lib/components/condition-builder/Field.js.map +2 -2
  28. package/lib/components/condition-builder/Value.js +2 -1
  29. package/lib/components/condition-builder/Value.js.map +2 -2
  30. package/lib/components/condition-builder/types.d.ts +5 -0
  31. package/lib/components/condition-builder/types.js.map +1 -1
  32. package/lib/components/icons.js +2 -0
  33. package/lib/components/icons.js.map +2 -2
  34. package/lib/factory.d.ts +5 -1
  35. package/lib/factory.js +9 -4
  36. package/lib/factory.js.map +2 -2
  37. package/lib/helper.css.map +1 -1
  38. package/lib/icons/loading-outline.js +7 -0
  39. package/lib/index.d.ts +1 -0
  40. package/lib/index.js +2 -1
  41. package/lib/index.js.map +2 -2
  42. package/lib/locale/de-DE.js +1 -0
  43. package/lib/locale/de-DE.js.map +2 -2
  44. package/lib/locale/en-US.js +2 -1
  45. package/lib/locale/en-US.js.map +2 -2
  46. package/lib/locale/zh-CN.js +2 -1
  47. package/lib/locale/zh-CN.js.map +2 -2
  48. package/lib/renderers/Action.d.ts +15 -1
  49. package/lib/renderers/Action.js +13 -6
  50. package/lib/renderers/Action.js.map +2 -2
  51. package/lib/renderers/CRUD.d.ts +2 -2
  52. package/lib/renderers/CRUD.js +11 -20
  53. package/lib/renderers/CRUD.js.map +2 -2
  54. package/lib/renderers/Card.js +11 -11
  55. package/lib/renderers/Card.js.map +2 -2
  56. package/lib/renderers/Collapse.d.ts +1 -1
  57. package/lib/renderers/Collapse.js +5 -1
  58. package/lib/renderers/Collapse.js.map +2 -2
  59. package/lib/renderers/Dialog.d.ts +0 -252
  60. package/lib/renderers/Dialog.js +3 -2
  61. package/lib/renderers/Dialog.js.map +2 -2
  62. package/lib/renderers/Drawer.js +2 -1
  63. package/lib/renderers/Drawer.js.map +2 -2
  64. package/lib/renderers/DropDownButton.d.ts +8 -0
  65. package/lib/renderers/DropDownButton.js +6 -4
  66. package/lib/renderers/DropDownButton.js.map +2 -2
  67. package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
  68. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  69. package/lib/renderers/Form/Combo.d.ts +2 -0
  70. package/lib/renderers/Form/Combo.js +16 -1
  71. package/lib/renderers/Form/Combo.js.map +2 -2
  72. package/lib/renderers/Form/DiffEditor.d.ts +0 -2
  73. package/lib/renderers/Form/Editor.d.ts +0 -2
  74. package/lib/renderers/Form/Editor.js +1 -1
  75. package/lib/renderers/Form/Editor.js.map +2 -2
  76. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  77. package/lib/renderers/Form/InputExcel.js +24 -3
  78. package/lib/renderers/Form/InputExcel.js.map +2 -2
  79. package/lib/renderers/Form/InputImage.d.ts +8 -0
  80. package/lib/renderers/Form/InputImage.js +2 -1
  81. package/lib/renderers/Form/InputImage.js.map +2 -2
  82. package/lib/renderers/Form/InputNumber.d.ts +19 -5
  83. package/lib/renderers/Form/InputNumber.js +69 -7
  84. package/lib/renderers/Form/InputNumber.js.map +2 -2
  85. package/lib/renderers/Form/InputRange.js +7 -2
  86. package/lib/renderers/Form/InputRange.js.map +2 -2
  87. package/lib/renderers/Form/InputTable.d.ts +23 -5
  88. package/lib/renderers/Form/InputTable.js +32 -3
  89. package/lib/renderers/Form/InputTable.js.map +2 -2
  90. package/lib/renderers/Form/Options.js +3 -1
  91. package/lib/renderers/Form/Options.js.map +2 -2
  92. package/lib/renderers/Form/index.js +0 -10
  93. package/lib/renderers/Form/index.js.map +2 -2
  94. package/lib/renderers/Form/wrapControl.js +3 -3
  95. package/lib/renderers/Form/wrapControl.js.map +2 -2
  96. package/lib/renderers/Json.js +5 -1
  97. package/lib/renderers/Json.js.map +2 -2
  98. package/lib/renderers/List.d.ts +5 -0
  99. package/lib/renderers/List.js +20 -14
  100. package/lib/renderers/List.js.map +2 -2
  101. package/lib/renderers/Nav.d.ts +52 -22
  102. package/lib/renderers/Nav.js +100 -15
  103. package/lib/renderers/Nav.js.map +2 -2
  104. package/lib/renderers/Page.d.ts +6 -0
  105. package/lib/renderers/Page.js +11 -3
  106. package/lib/renderers/Page.js.map +2 -2
  107. package/lib/renderers/Service.d.ts +10 -1
  108. package/lib/renderers/Service.js +85 -3
  109. package/lib/renderers/Service.js.map +2 -2
  110. package/lib/renderers/Steps.d.ts +4 -4
  111. package/lib/renderers/Steps.js +5 -2
  112. package/lib/renderers/Steps.js.map +2 -2
  113. package/lib/renderers/Table/TableBody.d.ts +5 -3
  114. package/lib/renderers/Table/TableBody.js +17 -11
  115. package/lib/renderers/Table/TableBody.js.map +2 -2
  116. package/lib/renderers/Table/TableCell.js +6 -2
  117. package/lib/renderers/Table/TableCell.js.map +2 -2
  118. package/lib/renderers/Table/TableContent.d.ts +3 -1
  119. package/lib/renderers/Table/TableContent.js +6 -2
  120. package/lib/renderers/Table/TableContent.js.map +2 -2
  121. package/lib/renderers/Table/TableRow.d.ts +1 -1
  122. package/lib/renderers/Table/TableRow.js +14 -13
  123. package/lib/renderers/Table/TableRow.js.map +2 -2
  124. package/lib/renderers/Table/index.d.ts +28 -3
  125. package/lib/renderers/Table/index.js +92 -52
  126. package/lib/renderers/Table/index.js.map +2 -2
  127. package/lib/schemaExtend.d.ts +1 -0
  128. package/lib/schemaExtend.js +59 -0
  129. package/lib/schemaExtend.js.map +13 -0
  130. package/lib/store/app.d.ts +0 -1
  131. package/lib/store/combo.d.ts +0 -2
  132. package/lib/store/crud.d.ts +3 -3
  133. package/lib/store/crud.js +41 -36
  134. package/lib/store/crud.js.map +2 -2
  135. package/lib/store/form.d.ts +0 -1
  136. package/lib/store/formItem.js +10 -6
  137. package/lib/store/formItem.js.map +2 -2
  138. package/lib/store/modal.d.ts +1 -1
  139. package/lib/store/modal.js +4 -0
  140. package/lib/store/modal.js.map +2 -2
  141. package/lib/store/root.d.ts +0 -1
  142. package/lib/store/service.d.ts +0 -1
  143. package/lib/store/service.js +0 -13
  144. package/lib/store/service.js.map +2 -2
  145. package/lib/store/table.d.ts +1 -2
  146. package/lib/store/table.js +44 -3
  147. package/lib/store/table.js.map +2 -2
  148. package/lib/themes/ang-ie11.css +624 -71
  149. package/lib/themes/ang.css +624 -71
  150. package/lib/themes/ang.css.map +1 -1
  151. package/lib/themes/antd-ie11.css +624 -71
  152. package/lib/themes/antd.css +624 -71
  153. package/lib/themes/antd.css.map +1 -1
  154. package/lib/themes/cxd-ie11.css +732 -191
  155. package/lib/themes/cxd.css +732 -191
  156. package/lib/themes/cxd.css.map +1 -1
  157. package/lib/themes/dark-ie11.css +624 -71
  158. package/lib/themes/dark.css +624 -71
  159. package/lib/themes/dark.css.map +1 -1
  160. package/lib/themes/default.css +732 -191
  161. package/lib/themes/default.css.map +1 -1
  162. package/lib/utils/api.js +12 -0
  163. package/lib/utils/api.js.map +2 -2
  164. package/lib/utils/attachmentAdpator.d.ts +7 -0
  165. package/lib/utils/attachmentAdpator.js +82 -0
  166. package/lib/utils/attachmentAdpator.js.map +13 -0
  167. package/lib/utils/helper.d.ts +2 -0
  168. package/lib/utils/helper.js +14 -1
  169. package/lib/utils/helper.js.map +2 -2
  170. package/lib/utils/resize-sensor.js +6 -0
  171. package/lib/utils/resize-sensor.js.map +2 -2
  172. package/lib/utils/tpl-builtin.d.ts +1 -0
  173. package/lib/utils/tpl-builtin.js +24 -8
  174. package/lib/utils/tpl-builtin.js.map +2 -2
  175. package/lib/utils/validations.js +62 -5
  176. package/lib/utils/validations.js.map +2 -2
  177. package/package.json +1 -2
  178. package/schema.json +561 -171
  179. package/scss/_mixins.scss +29 -0
  180. package/scss/_properties.scss +29 -11
  181. package/scss/components/_badge.scss +67 -2
  182. package/scss/components/_button.scss +35 -3
  183. package/scss/components/_image-gallery.scss +1 -1
  184. package/scss/components/_list.scss +8 -0
  185. package/scss/components/_markdown.scss +266 -0
  186. package/scss/components/_nav.scss +109 -35
  187. package/scss/components/_spinner.scss +6 -2
  188. package/scss/components/_table.scss +4 -0
  189. package/scss/components/form/_form.scss +3 -17
  190. package/scss/components/form/_group.scss +4 -0
  191. package/scss/components/form/_number.scss +12 -1
  192. package/scss/themes/_common.scss +1 -0
  193. package/scss/themes/_cxd-variables.scss +20 -20
  194. package/sdk/ang-ie11.css +769 -76
  195. package/sdk/ang.css +785 -76
  196. package/sdk/antd-ie11.css +759 -68
  197. package/sdk/antd.css +785 -76
  198. package/sdk/charts.js +13 -13
  199. package/sdk/color-picker.js +67 -67
  200. package/sdk/cropperjs.js +2 -2
  201. package/sdk/cxd-ie11.css +1243 -552
  202. package/sdk/cxd.css +893 -196
  203. package/sdk/dark-ie11.css +769 -76
  204. package/sdk/dark.css +785 -76
  205. package/sdk/exceljs.js +1 -1
  206. package/sdk/helper.css.map +1 -1
  207. package/sdk/locale/de-DE.js +1 -0
  208. package/sdk/markdown.js +69 -69
  209. package/sdk/papaparse.js +1 -1
  210. package/sdk/renderers/Form/CityDB.js +1 -1
  211. package/sdk/rest.js +22 -24
  212. package/sdk/rich-text.js +62 -64
  213. package/sdk/sdk-ie11.css +1243 -552
  214. package/sdk/sdk.css +893 -196
  215. package/sdk/sdk.js +1123 -1111
  216. package/sdk/thirds/hls.js/hls.js +1 -1
  217. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  218. package/sdk/tinymce.js +57 -57
  219. package/sdk.zip +0 -0
  220. package/src/components/Badge.tsx +111 -20
  221. package/src/components/Button.tsx +23 -7
  222. package/src/components/Checkbox.tsx +5 -2
  223. package/src/components/Drawer.tsx +3 -2
  224. package/src/components/Modal.tsx +3 -2
  225. package/src/components/RichText.tsx +280 -24
  226. package/src/components/Select.tsx +1 -0
  227. package/src/components/Steps.tsx +3 -3
  228. package/src/components/WithRemoteConfig.tsx +37 -2
  229. package/src/components/calendar/DaysView.tsx +2 -2
  230. package/src/components/condition-builder/Field.tsx +1 -2
  231. package/src/components/condition-builder/Value.tsx +3 -0
  232. package/src/components/condition-builder/types.ts +6 -0
  233. package/src/components/icons.tsx +2 -0
  234. package/src/factory.tsx +13 -3
  235. package/src/icons/loading-outline.svg +4 -0
  236. package/src/index.tsx +2 -0
  237. package/src/locale/de-DE.ts +1 -0
  238. package/src/locale/en-US.ts +2 -1
  239. package/src/locale/zh-CN.ts +2 -1
  240. package/src/renderers/Action.tsx +84 -14
  241. package/src/renderers/CRUD.tsx +13 -33
  242. package/src/renderers/Card.tsx +21 -15
  243. package/src/renderers/Collapse.tsx +5 -1
  244. package/src/renderers/Dialog.tsx +3 -2
  245. package/src/renderers/Drawer.tsx +2 -1
  246. package/src/renderers/DropDownButton.tsx +21 -4
  247. package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
  248. package/src/renderers/Form/Combo.tsx +7 -0
  249. package/src/renderers/Form/Editor.tsx +19 -20
  250. package/src/renderers/Form/InputExcel.tsx +28 -3
  251. package/src/renderers/Form/InputImage.tsx +23 -8
  252. package/src/renderers/Form/InputNumber.tsx +113 -18
  253. package/src/renderers/Form/InputRange.tsx +5 -2
  254. package/src/renderers/Form/InputTable.tsx +88 -9
  255. package/src/renderers/Form/Options.tsx +3 -1
  256. package/src/renderers/Form/index.tsx +0 -15
  257. package/src/renderers/Form/wrapControl.tsx +2 -2
  258. package/src/renderers/Json.tsx +10 -1
  259. package/src/renderers/List.tsx +32 -19
  260. package/src/renderers/Nav.tsx +165 -36
  261. package/src/renderers/Page.tsx +20 -1
  262. package/src/renderers/Service.tsx +101 -3
  263. package/src/renderers/Steps.tsx +12 -9
  264. package/src/renderers/Table/TableBody.tsx +29 -10
  265. package/src/renderers/Table/TableCell.tsx +15 -1
  266. package/src/renderers/Table/TableContent.tsx +7 -1
  267. package/src/renderers/Table/TableRow.tsx +18 -17
  268. package/src/renderers/Table/index.tsx +112 -27
  269. package/src/schemaExtend.ts +66 -0
  270. package/src/store/crud.ts +34 -38
  271. package/src/store/formItem.ts +10 -6
  272. package/src/store/modal.ts +4 -0
  273. package/src/store/service.ts +0 -19
  274. package/src/store/table.ts +48 -0
  275. package/src/utils/api.ts +11 -0
  276. package/src/utils/attachmentAdpator.ts +90 -0
  277. package/src/utils/helper.ts +16 -0
  278. package/src/utils/resize-sensor.ts +7 -0
  279. package/src/utils/tpl-builtin.ts +36 -17
  280. package/src/utils/validations.ts +80 -12
@@ -13,7 +13,7 @@ export interface BadgeSchema extends BaseSchema {
13
13
  /**
14
14
  * 文本内容
15
15
  */
16
- text?: string;
16
+ text?: string | number;
17
17
  /**
18
18
  * 大小
19
19
  */
@@ -21,11 +21,19 @@ export interface BadgeSchema extends BaseSchema {
21
21
  /**
22
22
  * 角标类型
23
23
  */
24
- mode?: 'text' | 'dot';
24
+ mode?: 'text' | 'dot' | 'ribbon';
25
+ /**
26
+ * 角标位置,优先级大于position
27
+ */
28
+ offset?: [number | string, number | string];
25
29
  /**
26
30
  * 角标位置
27
31
  */
28
32
  position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
33
+ /**
34
+ * 封顶的数字值
35
+ */
36
+ overflowCount?: number;
29
37
  /**
30
38
  * 动态控制是否显示
31
39
  */
@@ -40,6 +48,10 @@ export interface BadgeSchema extends BaseSchema {
40
48
  style?: {
41
49
  [propName: string]: any;
42
50
  };
51
+ /**
52
+ * 提示类型
53
+ */
54
+ level?: 'info' | 'warning' | 'success' | 'danger';
43
55
  }
44
56
  export interface BadgeProps {
45
57
  badge?: BadgeSchema;
@@ -49,6 +61,7 @@ export interface BadgeProps {
49
61
  export declare class Badge extends React.Component<BadgeProps, object> {
50
62
  static propsList: Array<string>;
51
63
  constructor(props: BadgeProps);
64
+ renderBadge(text: any, size: number, position: any, offsetStyle: any, sizeStyle: any, animationElement: any): JSX.Element | null;
52
65
  render(): React.ReactNode;
53
66
  }
54
67
  export declare function withBadge<P extends object>(Component: React.ComponentType<P>): {
@@ -14,6 +14,26 @@ var Badge = /** @class */ (function (_super) {
14
14
  function Badge(props) {
15
15
  return _super.call(this, props) || this;
16
16
  }
17
+ Badge.prototype.renderBadge = function (text, size, position, offsetStyle, sizeStyle, animationElement) {
18
+ var _a = this.props, cx = _a.classnames, badge = _a.badge;
19
+ var _b = badge, _c = _b.mode, mode = _c === void 0 ? 'dot' : _c, _d = _b.level, level = _d === void 0 ? 'danger' : _d, style = _b.style;
20
+ switch (mode) {
21
+ case 'dot':
22
+ return (react_1.default.createElement("span", { className: cx('Badge-dot', "Badge--" + position, "Badge--" + level), style: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, offsetStyle), sizeStyle), style) }, animationElement));
23
+ case 'text':
24
+ return (react_1.default.createElement("span", { className: cx('Badge-text', "Badge--" + position, "Badge--" + level), style: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, offsetStyle), sizeStyle), style) },
25
+ text,
26
+ animationElement));
27
+ case 'ribbon':
28
+ var outSize = size * Math.sqrt(2) + 5;
29
+ return (react_1.default.createElement("div", { className: cx('Badge-ribbon-out', "Badge-ribbon-out--" + position), style: { width: outSize, height: outSize } },
30
+ react_1.default.createElement("span", { className: cx('Badge-ribbon', "Badge-ribbon--" + position, "Badge--" + level), style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, sizeStyle), style) },
31
+ text,
32
+ animationElement)));
33
+ default:
34
+ return null;
35
+ }
36
+ };
17
37
  Badge.prototype.render = function () {
18
38
  var badge = this.props.badge;
19
39
  if (!badge) {
@@ -24,7 +44,7 @@ var Badge = /** @class */ (function (_super) {
24
44
  if (typeof badge === 'string') {
25
45
  isDisplay = (0, tpl_1.evalExpression)(badge, data) === true;
26
46
  }
27
- var _b = badge.mode, mode = _b === void 0 ? 'dot' : _b, text = badge.text, size = badge.size, style = badge.style, _c = badge.position, position = _c === void 0 ? 'top-right' : _c, visibleOn = badge.visibleOn, className = badge.className, animation = badge.animation;
47
+ var _b = badge.mode, mode = _b === void 0 ? 'dot' : _b, text = badge.text, size = badge.size, style = badge.style, offset = badge.offset, _c = badge.position, position = _c === void 0 ? 'top-right' : _c, _d = badge.overflowCount, overflowCount = _d === void 0 ? 99 : _d, visibleOn = badge.visibleOn, className = badge.className, animation = badge.animation;
28
48
  if (visibleOn) {
29
49
  isDisplay = (0, tpl_1.evalExpression)(visibleOn, data) === true;
30
50
  }
@@ -36,6 +56,9 @@ var Badge = /** @class */ (function (_super) {
36
56
  if (mode === 'dot') {
37
57
  size = 6;
38
58
  }
59
+ else if (mode === 'ribbon') {
60
+ size = 12;
61
+ }
39
62
  else {
40
63
  size = 16;
41
64
  }
@@ -47,6 +70,10 @@ var Badge = /** @class */ (function (_super) {
47
70
  height: size,
48
71
  lineHeight: size + 'px'
49
72
  };
73
+ // 当text、overflowCount都为number类型时,进行封顶值处理
74
+ if (typeof text === 'number' && typeof overflowCount === 'number') {
75
+ text = (text > overflowCount ? overflowCount + "+" : text);
76
+ }
50
77
  if (!text) {
51
78
  isDisplay = false;
52
79
  }
@@ -54,6 +81,23 @@ var Badge = /** @class */ (function (_super) {
54
81
  if (mode === 'dot') {
55
82
  sizeStyle = { width: size, height: size };
56
83
  }
84
+ if (mode === 'ribbon') {
85
+ sizeStyle = {
86
+ height: size,
87
+ lineHeight: size + 'px',
88
+ fontSize: size
89
+ };
90
+ }
91
+ var offsetStyle = {};
92
+ // 如果设置了offset属性,offset在position为'top-right'的基础上进行translate定位
93
+ if (offset && offset.length) {
94
+ position = 'top-right';
95
+ var left = "calc(50% + " + parseInt(offset[0], 10) + "px)";
96
+ var right = "calc(-50% + " + parseInt(offset[1], 10) + "px)";
97
+ offsetStyle = {
98
+ transform: "translate(" + left + ", " + right + ")",
99
+ };
100
+ }
57
101
  var animationBackground = 'var(--danger)';
58
102
  if (style && style.background) {
59
103
  animationBackground = style.background;
@@ -70,9 +114,8 @@ var Badge = /** @class */ (function (_super) {
70
114
  } })) : null;
71
115
  return (react_1.default.createElement("div", { className: cx('Badge', className) },
72
116
  children,
73
- isDisplay ? (mode === 'dot' ? (react_1.default.createElement("span", { className: cx('Badge-dot', "Badge--" + position), style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, sizeStyle), style) }, animationElement)) : (react_1.default.createElement("span", { className: cx('Badge-text', "Badge--" + position), style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, sizeStyle), style) },
74
- text,
75
- animationElement))) : null));
117
+ isDisplay ?
118
+ this.renderBadge(text, size, position, offsetStyle, sizeStyle, animationElement) : null));
76
119
  };
77
120
  Badge.propsList = ['body', 'className', 'children'];
78
121
  return Badge;
@@ -6,8 +6,8 @@
6
6
  "/src/components/Badge.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file 角标组件\n */\n\nimport React from 'react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {BaseSchema, SchemaExpression} from '../Schema';\nimport {evalExpression} from '../utils/tpl';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {ClassNamesFn} from '../theme';\n\n/**\n * Badge 角标。\n * 文档:https://baidu.gitee.io/amis/docs/components/badge\n */\nexport interface BadgeSchema extends BaseSchema {\n /**\n * 文本内容\n */\n text?: string;\n\n /**\n * 大小\n */\n size?: number;\n\n /**\n * 角标类型\n */\n mode?: 'text' | 'dot';\n\n /**\n * 角标位置\n */\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\n /**\n * 动态控制是否显示\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 是否显示动画\n */\n animation?: boolean;\n\n /**\n * 角标的自定义样式\n */\n style?: {\n [propName: string]: any;\n };\n}\n\nexport interface BadgeProps {\n badge?: BadgeSchema;\n classnames: ClassNamesFn;\n data: any;\n}\n\nexport class Badge extends React.Component<BadgeProps, object> {\n static propsList: Array<string> = ['body', 'className', 'children'];\n\n constructor(props: BadgeProps) {\n super(props);\n }\n\n render() {\n const badge = this.props.badge;\n if (!badge) {\n return this.props.children;\n }\n const {children, classnames: cx, data} = this.props;\n let isDisplay = true;\n if (typeof badge === 'string') {\n isDisplay = evalExpression(badge, data) === true;\n }\n\n let {\n mode = 'dot',\n text,\n size,\n style,\n position = 'top-right',\n visibleOn,\n className,\n animation\n } = badge;\n\n if (visibleOn) {\n isDisplay = evalExpression(visibleOn, data) === true;\n }\n\n if (typeof text === 'string' && text[0] === '$') {\n text = resolveVariable(text, data);\n }\n\n // 设置默认值\n if (typeof size === 'undefined') {\n if (mode === 'dot') {\n size = 6;\n } else {\n size = 16;\n }\n }\n\n let sizeStyle = {};\n if (mode === 'text') {\n sizeStyle = {\n borderRadius: size / 2,\n height: size,\n lineHeight: size + 'px'\n };\n\n if (!text) {\n isDisplay = false;\n }\n }\n\n if (mode === 'dot') {\n sizeStyle = {width: size, height: size};\n }\n\n let animationBackground = 'var(--danger)';\n\n if (style && style.background) {\n animationBackground = style.background;\n }\n\n const animationElement = animation ? (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: `1px solid ${animationBackground}`,\n borderRadius: '50%',\n animation: 'badgeDotAnimation 1.2s infinite ease-in-out'\n }}\n ></div>\n ) : null;\n\n return (\n <div className={cx('Badge', className)}>\n {children}\n {isDisplay ? (\n mode === 'dot' ? (\n <span\n className={cx('Badge-dot', `Badge--${position}`)}\n style={{...sizeStyle, ...style}}\n >\n {animationElement}\n </span>\n ) : (\n <span\n className={cx('Badge-text', `Badge--${position}`)}\n style={{...sizeStyle, ...style}}\n >\n {text}\n {animationElement}\n </span>\n )\n ) : null}\n </div>\n );\n }\n}\n\nexport function withBadge<P extends object>(Component: React.ComponentType<P>) {\n return hoistNonReactStatic(\n class WithBadge extends React.Component<P & BadgeProps> {\n static displayName = `WithBadge(${\n Component.displayName || Component.name\n })`;\n\n render() {\n const badge = this.props.badge;\n\n if (!badge) {\n return <Component {...(this.props as P)} />;\n }\n\n return (\n <Badge {...(this.props as BadgeProps)}>\n <Component {...(this.props as P)} />\n </Badge>\n );\n }\n },\n Component\n );\n}\n"
11
+ "/**\n * @file 角标组件\n */\n\nimport React from 'react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {BaseSchema, SchemaExpression} from '../Schema';\nimport {evalExpression} from '../utils/tpl';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {ClassNamesFn} from '../theme';\n\n/**\n * Badge 角标。\n * 文档:https://baidu.gitee.io/amis/docs/components/badge\n */\nexport interface BadgeSchema extends BaseSchema {\n /**\n * 文本内容\n */\n text?: string | number;\n\n /**\n * 大小\n */\n size?: number;\n\n /**\n * 角标类型\n */\n mode?: 'text' | 'dot' | 'ribbon';\n\n /**\n * 角标位置,优先级大于position\n */\n offset?: [number | string, number | string];\n\n /**\n * 角标位置\n */\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\n /**\n * 封顶的数字值\n */\n overflowCount?: number;\n\n /**\n * 动态控制是否显示\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 是否显示动画\n */\n animation?: boolean;\n\n /**\n * 角标的自定义样式\n */\n style?: {\n [propName: string]: any;\n };\n\n /**\n * 提示类型\n */\n level?: 'info' | 'warning' | 'success' | 'danger';\n}\n\nexport interface BadgeProps {\n badge?: BadgeSchema;\n classnames: ClassNamesFn;\n data: any;\n}\n\nexport class Badge extends React.Component<BadgeProps, object> {\n static propsList: Array<string> = ['body', 'className', 'children'];\n\n constructor(props: BadgeProps) {\n super(props);\n }\n\n renderBadge(\n text: any,\n size: number,\n position: any,\n offsetStyle: any,\n sizeStyle: any,\n animationElement: any\n ) {\n const {classnames: cx, badge} = this.props;\n const {\n mode = 'dot',\n level = 'danger',\n style\n } = badge as BadgeSchema;\n switch(mode) {\n case 'dot':\n return (\n <span\n className={cx('Badge-dot', `Badge--${position}`, `Badge--${level}`)}\n style={{...offsetStyle, ...sizeStyle, ...style}}\n >\n {animationElement}\n </span>\n );\n case 'text':\n return (\n <span\n className={cx('Badge-text', `Badge--${position}`, `Badge--${level}`)}\n style={{...offsetStyle, ...sizeStyle, ...style}}\n >\n {text}\n {animationElement}\n </span>\n );\n case 'ribbon':\n const outSize = size * Math.sqrt(2) + 5;\n return (\n <div\n className={cx('Badge-ribbon-out', `Badge-ribbon-out--${position}`)}\n style={{width: outSize, height: outSize}}\n >\n <span\n className={cx('Badge-ribbon', `Badge-ribbon--${position}`, `Badge--${level}`)}\n style={{...sizeStyle, ...style}}\n >\n {text}\n {animationElement}\n </span>\n </div>\n\n );\n default:\n return null;\n }\n }\n\n render() {\n const badge = this.props.badge;\n if (!badge) {\n return this.props.children;\n }\n const {children, classnames: cx, data} = this.props;\n let isDisplay = true;\n if (typeof badge === 'string') {\n isDisplay = evalExpression(badge, data) === true;\n }\n\n let {\n mode = 'dot',\n text,\n size,\n style,\n offset,\n position = 'top-right',\n overflowCount = 99,\n visibleOn,\n className,\n animation\n } = badge;\n\n if (visibleOn) {\n isDisplay = evalExpression(visibleOn, data) === true;\n }\n\n if (typeof text === 'string' && text[0] === '$') {\n text = resolveVariable(text, data);\n }\n\n // 设置默认值\n if (typeof size === 'undefined') {\n if (mode === 'dot') {\n size = 6;\n } else if (mode === 'ribbon'){\n size = 12;\n } else {\n size = 16;\n }\n }\n\n let sizeStyle = {};\n if (mode === 'text') {\n sizeStyle = {\n borderRadius: size / 2,\n height: size,\n lineHeight: size + 'px'\n };\n // 当text、overflowCount都为number类型时,进行封顶值处理\n if (typeof text === 'number' && typeof overflowCount === 'number') {\n text = (\n (text as number) > (overflowCount as number) ? `${overflowCount}+` : text\n ) as string | number;\n }\n\n if (!text) {\n isDisplay = false;\n }\n }\n\n if (mode === 'dot') {\n sizeStyle = {width: size, height: size};\n }\n\n if (mode === 'ribbon') {\n sizeStyle = {\n height: size,\n lineHeight: size + 'px',\n fontSize: size\n };\n }\n\n let offsetStyle = {};\n // 如果设置了offset属性,offset在position为'top-right'的基础上进行translate定位\n if (offset && offset.length) {\n position = 'top-right';\n const left = `calc(50% + ${parseInt(offset[0] as string, 10)}px)`;\n const right = `calc(-50% + ${parseInt(offset[1] as string, 10)}px)`;\n offsetStyle = {\n transform: `translate(${left}, ${right})`,\n };\n }\n\n let animationBackground = 'var(--danger)';\n\n if (style && style.background) {\n animationBackground = style.background;\n }\n\n const animationElement = animation ? (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: `1px solid ${animationBackground}`,\n borderRadius: '50%',\n animation: 'badgeDotAnimation 1.2s infinite ease-in-out'\n }}\n ></div>\n ) : null;\n\n return (\n <div className={cx('Badge', className)}>\n {children}\n {isDisplay ?\n this.renderBadge(\n text,\n size,\n position,\n offsetStyle,\n sizeStyle,\n animationElement\n ) : null}\n </div>\n );\n }\n}\n\nexport function withBadge<P extends object>(Component: React.ComponentType<P>) {\n return hoistNonReactStatic(\n class WithBadge extends React.Component<P & BadgeProps> {\n static displayName = `WithBadge(${\n Component.displayName || Component.name\n })`;\n\n render() {\n const badge = this.props.badge;\n\n if (!badge) {\n return <Component {...(this.props as P)} />;\n }\n\n return (\n <Badge {...(this.props as BadgeProps)}>\n <Component {...(this.props as P)} />\n </Badge>\n );\n }\n },\n Component\n );\n}\n"
12
12
  ]
13
13
  }