amis 1.3.5-beta.6 → 1.4.2-beta.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.
- package/README.md +1 -1
- package/lib/Schema.d.ts +17 -0
- package/lib/Schema.js.map +1 -1
- package/lib/components/Alert.js +3 -1
- package/lib/components/Alert.js.map +2 -2
- package/lib/components/Badge.d.ts +16 -3
- package/lib/components/Badge.js +53 -4
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/Button.d.ts +24 -22
- package/lib/components/Button.js +13 -7
- package/lib/components/Button.js.map +2 -2
- package/lib/components/Checkbox.d.ts +1 -1
- package/lib/components/Checkbox.js +1 -1
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Collapse.js +1 -1
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.js +1 -1
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/InputBox.js +1 -1
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Link.d.ts +91 -0
- package/lib/components/Link.js +44 -0
- package/lib/components/Link.js.map +13 -0
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/MonthRangePicker.js +1 -1
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/RichText.d.ts +6 -1
- package/lib/components/RichText.js +207 -8
- package/lib/components/RichText.js.map +2 -2
- package/lib/components/Select.d.ts +7 -0
- package/lib/components/Select.js +3 -0
- package/lib/components/Select.js.map +2 -2
- package/lib/components/SparkLine.d.ts +85 -84
- package/lib/components/SparkLine.js +2 -2
- package/lib/components/SparkLine.js.map +2 -2
- package/lib/components/Steps.d.ts +3 -3
- package/lib/components/Steps.js.map +1 -1
- package/lib/components/Toast.js +2 -2
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Tree.js +5 -3
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/WithRemoteConfig.d.ts +8 -0
- package/lib/components/WithRemoteConfig.js +28 -2
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/calendar/DaysView.js +2 -2
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/condition-builder/Field.js +0 -1
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Value.js +2 -1
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/types.d.ts +5 -0
- package/lib/components/condition-builder/types.js.map +1 -1
- package/lib/components/icons.js +14 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.d.ts +5 -1
- package/lib/factory.js +9 -4
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/clock.js +10 -0
- package/lib/icons/loading-outline.js +7 -0
- package/lib/icons/status-close.js +11 -0
- package/lib/icons/status-fail.js +11 -0
- package/lib/icons/status-info.js +10 -0
- package/lib/icons/status-success.js +11 -0
- package/lib/icons/status-warning.js +10 -0
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +3 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +4 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +16 -1
- package/lib/renderers/Action.js +5 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +2 -2
- package/lib/renderers/CRUD.js +32 -26
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +1 -1
- package/lib/renderers/Collapse.js +7 -3
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +0 -252
- package/lib/renderers/Dialog.js +1 -4
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +0 -3
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +13 -1
- package/lib/renderers/DropDownButton.js +9 -5
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.js +3 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -0
- package/lib/renderers/Form/Checkbox.js +4 -0
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.js +2 -2
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +0 -2
- package/lib/renderers/Form/Editor.d.ts +0 -2
- package/lib/renderers/Form/Editor.js +1 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +5 -0
- package/lib/renderers/Form/InputExcel.js +24 -3
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +2 -2
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +8 -0
- package/lib/renderers/Form/InputImage.js +7 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputTable.d.ts +23 -5
- package/lib/renderers/Form/InputTable.js +32 -3
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Options.js +6 -3
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Picker.js +2 -2
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/IFrame.js +2 -2
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Image.d.ts +1 -0
- package/lib/renderers/Image.js +15 -1
- package/lib/renderers/Image.js.map +2 -2
- package/lib/renderers/Json.js +5 -1
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +16 -3
- package/lib/renderers/Link.js +16 -13
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/Log.d.ts +2 -2
- package/lib/renderers/Log.js +7 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/Nav.d.ts +81 -25
- package/lib/renderers/Nav.js +272 -29
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.js +4 -1
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +10 -1
- package/lib/renderers/Service.js +85 -3
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/SparkLine.d.ts +4 -0
- package/lib/renderers/SparkLine.js.map +2 -2
- package/lib/renderers/Steps.d.ts +4 -4
- package/lib/renderers/Steps.js +5 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
- package/lib/renderers/Table/ColumnToggler.js +216 -0
- package/lib/renderers/Table/ColumnToggler.js.map +13 -0
- package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
- package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
- package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
- package/lib/renderers/Table/TableBody.d.ts +5 -1
- package/lib/renderers/Table/TableBody.js +5 -1
- package/lib/renderers/Table/TableBody.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +3 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +1 -1
- package/lib/renderers/Table/TableContent.js +4 -0
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +22 -4
- package/lib/renderers/Table/index.js +196 -81
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/store/app.d.ts +0 -1
- package/lib/store/combo.d.ts +0 -2
- package/lib/store/crud.d.ts +3 -3
- package/lib/store/crud.js +41 -36
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +0 -1
- package/lib/store/modal.d.ts +1 -1
- package/lib/store/modal.js +4 -0
- package/lib/store/modal.js.map +2 -2
- package/lib/store/root.d.ts +0 -1
- package/lib/store/service.d.ts +0 -1
- package/lib/store/service.js +0 -13
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +258 -3
- package/lib/store/table.js +83 -7
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +941 -98
- package/lib/themes/ang.css +941 -98
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +941 -98
- package/lib/themes/antd.css +941 -98
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1580 -411
- package/lib/themes/cxd.css +1580 -411
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +941 -98
- package/lib/themes/dark.css +941 -98
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +1580 -411
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +16 -4
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/attachmentAdpator.d.ts +7 -0
- package/lib/utils/attachmentAdpator.js +82 -0
- package/lib/utils/attachmentAdpator.js.map +13 -0
- package/lib/utils/handleAction.d.ts +7 -0
- package/lib/utils/handleAction.js +30 -0
- package/lib/utils/handleAction.js.map +13 -0
- package/lib/utils/helper.d.ts +1 -1
- package/lib/utils/helper.js +3 -3
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/tpl-builtin.d.ts +1 -1
- package/lib/utils/tpl-builtin.js +25 -15
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/lib/utils/validations.js +62 -5
- package/lib/utils/validations.js.map +2 -2
- package/package.json +1 -2
- package/schema.json +633 -273
- package/scss/_mixins.scss +29 -0
- package/scss/_properties.scss +64 -13
- package/scss/_utilities.scss +4 -0
- package/scss/components/_badge.scss +67 -2
- package/scss/components/_button.scss +34 -3
- package/scss/components/_collapse.scss +26 -8
- package/scss/components/_column-toggler.scss +234 -0
- package/scss/components/_dropdown.scss +2 -1
- package/scss/components/_image-gallery.scss +1 -1
- package/scss/components/_images.scss +2 -1
- package/scss/components/_link.scss +6 -0
- package/scss/components/_markdown.scss +266 -0
- package/scss/components/_nav.scss +236 -154
- package/scss/components/_page.scss +5 -4
- package/scss/components/_progress.scss +2 -0
- package/scss/components/_spinner.scss +6 -2
- package/scss/components/_steps.scss +1 -1
- package/scss/components/_table.scss +25 -1
- package/scss/components/form/_color.scss +1 -0
- package/scss/components/form/_date-range.scss +2 -0
- package/scss/components/form/_date.scss +2 -0
- package/scss/components/form/_fieldset.scss +1 -2
- package/scss/components/form/_file.scss +5 -4
- package/scss/components/form/_group.scss +4 -0
- package/scss/components/form/_image.scss +7 -2
- package/scss/components/form/_list.scss +1 -0
- package/scss/components/form/_location.scss +1 -1
- package/scss/components/form/_text.scss +13 -0
- package/scss/components/form/_textarea.scss +10 -0
- package/scss/components/form/_transfer.scss +2 -0
- package/scss/themes/_common.scss +3 -0
- package/scss/themes/_cxd-colors.scss +56 -0
- package/scss/themes/_cxd-variables.scss +217 -92
- package/scss/themes/cxd.scss +366 -0
- package/sdk/ang-ie11.css +1192 -176
- package/sdk/ang.css +1175 -118
- package/sdk/antd-ie11.css +1177 -163
- package/sdk/antd.css +1175 -118
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +67 -67
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +2538 -1222
- package/sdk/cxd.css +1825 -401
- package/sdk/dark-ie11.css +1192 -176
- package/sdk/dark.css +1175 -118
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/ie11-patch.css +1 -0
- package/sdk/locale/de-DE.js +3 -0
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +22 -24
- package/sdk/rich-text.js +62 -64
- package/sdk/sdk-ie11.css +2538 -1222
- package/sdk/sdk.css +1825 -401
- package/sdk/sdk.js +1139 -1113
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +18 -0
- package/src/components/Alert.tsx +3 -1
- package/src/components/Badge.tsx +124 -21
- package/src/components/Button.tsx +23 -7
- package/src/components/Checkbox.tsx +5 -2
- package/src/components/Collapse.tsx +14 -9
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +23 -11
- package/src/components/Drawer.tsx +3 -2
- package/src/components/InputBox.tsx +1 -1
- package/src/components/Link.tsx +94 -0
- package/src/components/Modal.tsx +3 -2
- package/src/components/MonthRangePicker.tsx +10 -2
- package/src/components/RichText.tsx +244 -3
- package/src/components/Select.tsx +4 -0
- package/src/components/SparkLine.tsx +4 -1
- package/src/components/Steps.tsx +3 -3
- package/src/components/Toast.tsx +5 -5
- package/src/components/Tree.tsx +6 -8
- package/src/components/WithRemoteConfig.tsx +37 -2
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/condition-builder/Field.tsx +1 -2
- package/src/components/condition-builder/Value.tsx +3 -0
- package/src/components/condition-builder/types.ts +6 -0
- package/src/components/icons.tsx +15 -0
- package/src/factory.tsx +13 -3
- package/src/icons/clock.svg +1 -0
- package/src/icons/loading-outline.svg +4 -0
- package/src/icons/status-close.svg +10 -0
- package/src/icons/status-fail.svg +10 -0
- package/src/icons/status-info.svg +8 -0
- package/src/icons/status-success.svg +10 -0
- package/src/icons/status-warning.svg +8 -0
- package/src/locale/de-DE.ts +3 -0
- package/src/locale/en-US.ts +4 -1
- package/src/locale/zh-CN.ts +5 -2
- package/src/renderers/Action.tsx +71 -13
- package/src/renderers/CRUD.tsx +44 -59
- package/src/renderers/Collapse.tsx +6 -2
- package/src/renderers/Dialog.tsx +1 -5
- package/src/renderers/Drawer.tsx +0 -4
- package/src/renderers/DropDownButton.tsx +34 -12
- package/src/renderers/Form/ButtonGroupSelect.tsx +3 -0
- package/src/renderers/Form/Checkbox.tsx +8 -0
- package/src/renderers/Form/Combo.tsx +2 -3
- package/src/renderers/Form/Editor.tsx +19 -20
- package/src/renderers/Form/InputExcel.tsx +28 -3
- package/src/renderers/Form/InputFile.tsx +2 -1
- package/src/renderers/Form/InputImage.tsx +28 -10
- package/src/renderers/Form/InputTable.tsx +88 -9
- package/src/renderers/Form/Options.tsx +16 -5
- package/src/renderers/Form/Picker.tsx +3 -2
- package/src/renderers/Form/wrapControl.tsx +2 -2
- package/src/renderers/IFrame.tsx +2 -1
- package/src/renderers/Image.tsx +10 -0
- package/src/renderers/Json.tsx +10 -1
- package/src/renderers/Link.tsx +36 -11
- package/src/renderers/Log.tsx +16 -3
- package/src/renderers/Nav.tsx +340 -56
- package/src/renderers/Page.tsx +3 -1
- package/src/renderers/Service.tsx +101 -3
- package/src/renderers/SparkLine.tsx +5 -0
- package/src/renderers/Steps.tsx +12 -9
- package/src/renderers/Table/ColumnToggler.tsx +544 -0
- package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
- package/src/renderers/Table/TableBody.tsx +3 -2
- package/src/renderers/Table/TableCell.tsx +16 -1
- package/src/renderers/Table/TableContent.tsx +3 -1
- package/src/renderers/Table/index.tsx +240 -60
- package/src/store/crud.ts +34 -38
- package/src/store/modal.ts +4 -0
- package/src/store/service.ts +0 -19
- package/src/store/table.ts +103 -4
- package/src/utils/api.ts +24 -4
- package/src/utils/attachmentAdpator.ts +90 -0
- package/src/utils/handleAction.ts +41 -0
- package/src/utils/helper.ts +4 -3
- package/src/utils/tpl-builtin.ts +48 -17
- package/src/utils/validations.ts +80 -12
package/src/Schema.ts
CHANGED
@@ -492,6 +492,24 @@ export interface SchemaApiObject {
|
|
492
492
|
[propName: string]: any;
|
493
493
|
};
|
494
494
|
|
495
|
+
/**
|
496
|
+
* 默认数据映射中的key如果带点,或者带大括号,会转成对象比如:
|
497
|
+
*
|
498
|
+
* {
|
499
|
+
* 'a.b': '123'
|
500
|
+
* }
|
501
|
+
*
|
502
|
+
* 经过数据映射后变成
|
503
|
+
* {
|
504
|
+
* a: {
|
505
|
+
* b: '123
|
506
|
+
* }
|
507
|
+
* }
|
508
|
+
*
|
509
|
+
* 如果想要关闭此功能,请设置 convertKeyToPath 为 false
|
510
|
+
*/
|
511
|
+
convertKeyToPath?: boolean;
|
512
|
+
|
495
513
|
/**
|
496
514
|
* 用来做接口返回的数据映射。
|
497
515
|
*/
|
package/src/components/Alert.tsx
CHANGED
@@ -113,7 +113,9 @@ export class Alert extends React.Component<AlertProps, AlertState> {
|
|
113
113
|
|
114
114
|
this.setState(
|
115
115
|
{
|
116
|
-
show: false
|
116
|
+
show: false,
|
117
|
+
prompt: false,
|
118
|
+
confirm: false
|
117
119
|
},
|
118
120
|
isConfirm ? () => this._resolve(confirmed) /*this._reject()*/ : undefined
|
119
121
|
);
|
package/src/components/Badge.tsx
CHANGED
@@ -13,11 +13,11 @@ import {ClassNamesFn} from '../theme';
|
|
13
13
|
* Badge 角标。
|
14
14
|
* 文档:https://baidu.gitee.io/amis/docs/components/badge
|
15
15
|
*/
|
16
|
-
export interface BadgeSchema extends BaseSchema {
|
16
|
+
export interface BadgeSchema extends Omit<BaseSchema, 'type'> {
|
17
17
|
/**
|
18
18
|
* 文本内容
|
19
19
|
*/
|
20
|
-
text?: string;
|
20
|
+
text?: string | number;
|
21
21
|
|
22
22
|
/**
|
23
23
|
* 大小
|
@@ -27,13 +27,23 @@ export interface BadgeSchema extends BaseSchema {
|
|
27
27
|
/**
|
28
28
|
* 角标类型
|
29
29
|
*/
|
30
|
-
mode?: 'text' | 'dot';
|
30
|
+
mode?: 'text' | 'dot' | 'ribbon';
|
31
|
+
|
32
|
+
/**
|
33
|
+
* 角标位置,优先级大于position
|
34
|
+
*/
|
35
|
+
offset?: [number | string, number | string];
|
31
36
|
|
32
37
|
/**
|
33
38
|
* 角标位置
|
34
39
|
*/
|
35
40
|
position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
36
41
|
|
42
|
+
/**
|
43
|
+
* 封顶的数字值
|
44
|
+
*/
|
45
|
+
overflowCount?: number;
|
46
|
+
|
37
47
|
/**
|
38
48
|
* 动态控制是否显示
|
39
49
|
*/
|
@@ -50,6 +60,11 @@ export interface BadgeSchema extends BaseSchema {
|
|
50
60
|
style?: {
|
51
61
|
[propName: string]: any;
|
52
62
|
};
|
63
|
+
|
64
|
+
/**
|
65
|
+
* 提示类型
|
66
|
+
*/
|
67
|
+
level?: 'info' | 'warning' | 'success' | 'danger' | SchemaExpression;
|
53
68
|
}
|
54
69
|
|
55
70
|
export interface BadgeProps {
|
@@ -65,6 +80,70 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
65
80
|
super(props);
|
66
81
|
}
|
67
82
|
|
83
|
+
renderBadge(
|
84
|
+
text: any,
|
85
|
+
size: number,
|
86
|
+
position: any,
|
87
|
+
offsetStyle: any,
|
88
|
+
sizeStyle: any,
|
89
|
+
animationElement: any
|
90
|
+
) {
|
91
|
+
const {classnames: cx, badge, data} = this.props;
|
92
|
+
let {mode = 'dot', level = 'danger', style} = badge as BadgeSchema;
|
93
|
+
|
94
|
+
if (typeof level === 'string' && level[0] === '$') {
|
95
|
+
level = resolveVariable(level, data);
|
96
|
+
}
|
97
|
+
|
98
|
+
switch (mode) {
|
99
|
+
case 'dot':
|
100
|
+
return (
|
101
|
+
<span
|
102
|
+
className={cx('Badge-dot', `Badge--${position}`, `Badge--${level}`)}
|
103
|
+
style={{...offsetStyle, ...sizeStyle, ...style}}
|
104
|
+
>
|
105
|
+
{animationElement}
|
106
|
+
</span>
|
107
|
+
);
|
108
|
+
case 'text':
|
109
|
+
return (
|
110
|
+
<span
|
111
|
+
className={cx(
|
112
|
+
'Badge-text',
|
113
|
+
`Badge--${position}`,
|
114
|
+
`Badge--${level}`
|
115
|
+
)}
|
116
|
+
style={{...offsetStyle, ...sizeStyle, ...style}}
|
117
|
+
>
|
118
|
+
{text}
|
119
|
+
{animationElement}
|
120
|
+
</span>
|
121
|
+
);
|
122
|
+
case 'ribbon':
|
123
|
+
const outSize = size * Math.sqrt(2) + 5;
|
124
|
+
return (
|
125
|
+
<div
|
126
|
+
className={cx('Badge-ribbon-out', `Badge-ribbon-out--${position}`)}
|
127
|
+
style={{width: outSize, height: outSize}}
|
128
|
+
>
|
129
|
+
<span
|
130
|
+
className={cx(
|
131
|
+
'Badge-ribbon',
|
132
|
+
`Badge-ribbon--${position}`,
|
133
|
+
`Badge--${level}`
|
134
|
+
)}
|
135
|
+
style={{...sizeStyle, ...style}}
|
136
|
+
>
|
137
|
+
{text}
|
138
|
+
{animationElement}
|
139
|
+
</span>
|
140
|
+
</div>
|
141
|
+
);
|
142
|
+
default:
|
143
|
+
return null;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
68
147
|
render() {
|
69
148
|
const badge = this.props.badge;
|
70
149
|
if (!badge) {
|
@@ -79,9 +158,12 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
79
158
|
let {
|
80
159
|
mode = 'dot',
|
81
160
|
text,
|
161
|
+
level,
|
82
162
|
size,
|
83
163
|
style,
|
164
|
+
offset,
|
84
165
|
position = 'top-right',
|
166
|
+
overflowCount = 99,
|
85
167
|
visibleOn,
|
86
168
|
className,
|
87
169
|
animation
|
@@ -99,6 +181,8 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
99
181
|
if (typeof size === 'undefined') {
|
100
182
|
if (mode === 'dot') {
|
101
183
|
size = 6;
|
184
|
+
} else if (mode === 'ribbon') {
|
185
|
+
size = 12;
|
102
186
|
} else {
|
103
187
|
size = 16;
|
104
188
|
}
|
@@ -111,6 +195,14 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
111
195
|
height: size,
|
112
196
|
lineHeight: size + 'px'
|
113
197
|
};
|
198
|
+
// 当text、overflowCount都为number类型时,进行封顶值处理
|
199
|
+
if (typeof text === 'number' && typeof overflowCount === 'number') {
|
200
|
+
text = (
|
201
|
+
(text as number) > (overflowCount as number)
|
202
|
+
? `${overflowCount}+`
|
203
|
+
: text
|
204
|
+
) as string | number;
|
205
|
+
}
|
114
206
|
|
115
207
|
if (!text) {
|
116
208
|
isDisplay = false;
|
@@ -121,6 +213,25 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
121
213
|
sizeStyle = {width: size, height: size};
|
122
214
|
}
|
123
215
|
|
216
|
+
if (mode === 'ribbon') {
|
217
|
+
sizeStyle = {
|
218
|
+
height: size,
|
219
|
+
lineHeight: size + 'px',
|
220
|
+
fontSize: size
|
221
|
+
};
|
222
|
+
}
|
223
|
+
|
224
|
+
let offsetStyle = {};
|
225
|
+
// 如果设置了offset属性,offset在position为'top-right'的基础上进行translate定位
|
226
|
+
if (offset && offset.length) {
|
227
|
+
position = 'top-right';
|
228
|
+
const left = `calc(50% + ${parseInt(offset[0] as string, 10)}px)`;
|
229
|
+
const right = `calc(-50% + ${parseInt(offset[1] as string, 10)}px)`;
|
230
|
+
offsetStyle = {
|
231
|
+
transform: `translate(${left}, ${right})`
|
232
|
+
};
|
233
|
+
}
|
234
|
+
|
124
235
|
let animationBackground = 'var(--danger)';
|
125
236
|
|
126
237
|
if (style && style.background) {
|
@@ -145,24 +256,16 @@ export class Badge extends React.Component<BadgeProps, object> {
|
|
145
256
|
return (
|
146
257
|
<div className={cx('Badge', className)}>
|
147
258
|
{children}
|
148
|
-
{isDisplay
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
className={cx('Badge-text', `Badge--${position}`)}
|
159
|
-
style={{...sizeStyle, ...style}}
|
160
|
-
>
|
161
|
-
{text}
|
162
|
-
{animationElement}
|
163
|
-
</span>
|
164
|
-
)
|
165
|
-
) : null}
|
259
|
+
{isDisplay
|
260
|
+
? this.renderBadge(
|
261
|
+
text,
|
262
|
+
size,
|
263
|
+
position,
|
264
|
+
offsetStyle,
|
265
|
+
sizeStyle,
|
266
|
+
animationElement
|
267
|
+
)
|
268
|
+
: null}
|
166
269
|
</div>
|
167
270
|
);
|
168
271
|
}
|
@@ -7,7 +7,7 @@ import React from 'react';
|
|
7
7
|
import TooltipWrapper, {TooltipObject, Trigger} from './TooltipWrapper';
|
8
8
|
import {pickEventsProps} from '../utils/helper';
|
9
9
|
import {ClassNamesFn, themeable} from '../theme';
|
10
|
-
|
10
|
+
import {Icon} from './icons';
|
11
11
|
interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
|
12
12
|
id?: string;
|
13
13
|
className?: string;
|
@@ -16,7 +16,7 @@ interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
|
|
16
16
|
type: 'button' | 'reset' | 'submit';
|
17
17
|
level: string; // 'link' | 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'default';
|
18
18
|
tooltip?: string | TooltipObject;
|
19
|
-
|
19
|
+
tooltipPlacement: 'top' | 'right' | 'bottom' | 'left';
|
20
20
|
tooltipContainer?: any;
|
21
21
|
tooltipTrigger: Trigger | Array<Trigger>;
|
22
22
|
tooltipRootClose: boolean;
|
@@ -29,6 +29,8 @@ interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
|
|
29
29
|
classnames: ClassNamesFn;
|
30
30
|
componentClass: React.ReactType;
|
31
31
|
overrideClassName?: boolean;
|
32
|
+
loading?: boolean;
|
33
|
+
loadingClassName?: string;
|
32
34
|
}
|
33
35
|
|
34
36
|
export class Button extends React.Component<ButtonProps> {
|
@@ -37,14 +39,14 @@ export class Button extends React.Component<ButtonProps> {
|
|
37
39
|
| 'componentClass'
|
38
40
|
| 'level'
|
39
41
|
| 'type'
|
40
|
-
| '
|
42
|
+
| 'tooltipPlacement'
|
41
43
|
| 'tooltipTrigger'
|
42
44
|
| 'tooltipRootClose'
|
43
45
|
> = {
|
44
46
|
componentClass: 'button',
|
45
47
|
level: 'default',
|
46
48
|
type: 'button',
|
47
|
-
|
49
|
+
tooltipPlacement: 'top',
|
48
50
|
tooltipTrigger: ['hover', 'focus'],
|
49
51
|
tooltipRootClose: false
|
50
52
|
};
|
@@ -64,13 +66,15 @@ export class Button extends React.Component<ButtonProps> {
|
|
64
66
|
active,
|
65
67
|
iconOnly,
|
66
68
|
href,
|
69
|
+
loading,
|
70
|
+
loadingClassName,
|
67
71
|
overrideClassName,
|
68
72
|
...rest
|
69
73
|
} = this.props;
|
70
74
|
|
71
75
|
if (href) {
|
72
76
|
Comp = 'a';
|
73
|
-
} else if (Comp === 'button' && disabled) {
|
77
|
+
} else if ((Comp === 'button' && disabled) || loading) {
|
74
78
|
Comp = 'div';
|
75
79
|
}
|
76
80
|
|
@@ -95,6 +99,18 @@ export class Button extends React.Component<ButtonProps> {
|
|
95
99
|
)}
|
96
100
|
disabled={disabled}
|
97
101
|
>
|
102
|
+
{loading && !disabled ? (
|
103
|
+
<span
|
104
|
+
className={cx(
|
105
|
+
overrideClassName
|
106
|
+
? ''
|
107
|
+
: {[`Button--loading Button--loading--${level}`]: level},
|
108
|
+
loadingClassName
|
109
|
+
)}
|
110
|
+
>
|
111
|
+
<Icon icon="loading-outline" className="icon" />
|
112
|
+
</span>
|
113
|
+
) : null}
|
98
114
|
{children}
|
99
115
|
</Comp>
|
100
116
|
);
|
@@ -103,7 +119,7 @@ export class Button extends React.Component<ButtonProps> {
|
|
103
119
|
render() {
|
104
120
|
const {
|
105
121
|
tooltip,
|
106
|
-
|
122
|
+
tooltipPlacement,
|
107
123
|
tooltipContainer,
|
108
124
|
tooltipTrigger,
|
109
125
|
tooltipRootClose,
|
@@ -114,7 +130,7 @@ export class Button extends React.Component<ButtonProps> {
|
|
114
130
|
|
115
131
|
return (
|
116
132
|
<TooltipWrapper
|
117
|
-
placement={
|
133
|
+
placement={tooltipPlacement}
|
118
134
|
tooltip={disabled ? disabledTip : tooltip}
|
119
135
|
container={tooltipContainer}
|
120
136
|
trigger={tooltipTrigger}
|
@@ -15,7 +15,7 @@ interface CheckboxProps {
|
|
15
15
|
label?: string;
|
16
16
|
labelClassName?: string;
|
17
17
|
className?: string;
|
18
|
-
onChange?: (value: any) => void;
|
18
|
+
onChange?: (value: any, shift?: boolean) => void;
|
19
19
|
value?: any;
|
20
20
|
inline?: boolean;
|
21
21
|
trueValue?: any;
|
@@ -48,7 +48,10 @@ export class Checkbox extends React.Component<CheckboxProps, any> {
|
|
48
48
|
return;
|
49
49
|
}
|
50
50
|
|
51
|
-
onChange(
|
51
|
+
onChange(
|
52
|
+
e.currentTarget.checked ? trueValue : falseValue,
|
53
|
+
(e.nativeEvent as MouseEvent).shiftKey
|
54
|
+
);
|
52
55
|
}
|
53
56
|
|
54
57
|
render() {
|
@@ -100,15 +100,20 @@ export class Collapse extends React.Component<CollapseProps, any> {
|
|
100
100
|
if (status === ENTERING) {
|
101
101
|
this.contentDom.offsetWidth;
|
102
102
|
}
|
103
|
-
return
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
(children as
|
109
|
-
|
110
|
-
|
111
|
-
|
103
|
+
return (
|
104
|
+
<div
|
105
|
+
className={cx('Collapse-contentWrapper', collapseStyles[status])}
|
106
|
+
ref={this.contentRef}
|
107
|
+
>
|
108
|
+
{React.cloneElement(children as any, {
|
109
|
+
...(children as React.ReactElement).props,
|
110
|
+
className: cx(
|
111
|
+
'Collapse-content',
|
112
|
+
(children as React.ReactElement).props.className
|
113
|
+
)
|
114
|
+
})}
|
115
|
+
</div>
|
116
|
+
);
|
112
117
|
}}
|
113
118
|
</Transition>
|
114
119
|
);
|
@@ -618,7 +618,7 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
|
|
618
618
|
) : null}
|
619
619
|
|
620
620
|
<a className={cx(`DatePicker-toggler`)}>
|
621
|
-
<Icon icon="
|
621
|
+
<Icon icon="clock" className="icon" />
|
622
622
|
</a>
|
623
623
|
|
624
624
|
{isOpened ? (
|
@@ -438,12 +438,17 @@ export class DateRangePicker extends React.Component<
|
|
438
438
|
}
|
439
439
|
|
440
440
|
if (minDate && newValue && newValue.isBefore(minDate, 'second')) {
|
441
|
-
newValue = minDate
|
441
|
+
newValue = minDate;
|
442
442
|
}
|
443
443
|
|
444
444
|
this.setState(
|
445
445
|
{
|
446
|
-
startDate: this.filterDate(
|
446
|
+
startDate: this.filterDate(
|
447
|
+
newValue,
|
448
|
+
startDate || minDate,
|
449
|
+
timeFormat,
|
450
|
+
'start'
|
451
|
+
)
|
447
452
|
},
|
448
453
|
() => {
|
449
454
|
embed && this.confirm();
|
@@ -479,7 +484,12 @@ export class DateRangePicker extends React.Component<
|
|
479
484
|
|
480
485
|
this.setState(
|
481
486
|
{
|
482
|
-
endDate: this.filterDate(
|
487
|
+
endDate: this.filterDate(
|
488
|
+
newValue,
|
489
|
+
endDate || maxDate,
|
490
|
+
timeFormat,
|
491
|
+
'end'
|
492
|
+
)
|
483
493
|
},
|
484
494
|
() => {
|
485
495
|
embed && this.confirm();
|
@@ -492,12 +502,14 @@ export class DateRangePicker extends React.Component<
|
|
492
502
|
const now = moment();
|
493
503
|
this.setState(
|
494
504
|
{
|
495
|
-
startDate:
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
505
|
+
startDate:
|
506
|
+
minDate && minDate.isValid()
|
507
|
+
? moment.max(range.startDate(now.clone()), minDate)
|
508
|
+
: range.startDate(now.clone()),
|
509
|
+
endDate:
|
510
|
+
maxDate && maxDate.isValid()
|
511
|
+
? moment.min(maxDate, range.endDate(now.clone()))
|
512
|
+
: range.endDate(now.clone())
|
501
513
|
},
|
502
514
|
closeOnSelect ? this.confirm : noop
|
503
515
|
);
|
@@ -797,7 +809,7 @@ export class DateRangePicker extends React.Component<
|
|
797
809
|
{
|
798
810
|
'is-disabled': disabled,
|
799
811
|
'is-focused': isFocused,
|
800
|
-
[`${ns}DateRangePicker--border${ucFirst(borderMode)}`]: borderMode
|
812
|
+
[`${ns}DateRangePicker--border${ucFirst(borderMode)}`]: borderMode
|
801
813
|
},
|
802
814
|
className
|
803
815
|
)}
|
@@ -821,7 +833,7 @@ export class DateRangePicker extends React.Component<
|
|
821
833
|
) : null}
|
822
834
|
|
823
835
|
<a className={`${ns}DateRangePicker-toggler`}>
|
824
|
-
<Icon icon="
|
836
|
+
<Icon icon="clock" className="icon" />
|
825
837
|
</a>
|
826
838
|
|
827
839
|
{isOpened ? (
|
@@ -8,7 +8,8 @@ import React from 'react';
|
|
8
8
|
import Transition, {
|
9
9
|
ENTERED,
|
10
10
|
ENTERING,
|
11
|
-
EXITING
|
11
|
+
EXITING,
|
12
|
+
EXITED
|
12
13
|
} from 'react-transition-group/Transition';
|
13
14
|
import Portal from 'react-overlays/Portal';
|
14
15
|
import {Icon} from './icons';
|
@@ -230,7 +231,7 @@ export class Drawer extends React.Component<DrawerProps, DrawerState> {
|
|
230
231
|
>
|
231
232
|
<Icon icon="close" className="icon" />
|
232
233
|
</a>
|
233
|
-
{children}
|
234
|
+
{status === EXITED ? null : children}
|
234
235
|
</div>
|
235
236
|
</div>
|
236
237
|
);
|
@@ -37,7 +37,7 @@ export class InputBox extends React.Component<InputBoxProps, InputBoxState> {
|
|
37
37
|
clearValue(e: any) {
|
38
38
|
e.preventDefault();
|
39
39
|
|
40
|
-
const onClear = this.props.
|
40
|
+
const onClear = this.props.onClear;
|
41
41
|
const onChange = this.props.onChange;
|
42
42
|
onClear?.(e);
|
43
43
|
onChange?.('');
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import {RendererProps} from '../factory';
|
3
|
+
import {BaseSchema, SchemaTpl} from '../Schema';
|
4
|
+
import {getPropValue} from '../utils/helper';
|
5
|
+
import {filter} from '../utils/tpl';
|
6
|
+
import {themeable} from '../theme';
|
7
|
+
import {autobind} from '../utils/helper';
|
8
|
+
|
9
|
+
export interface LinkSchema extends BaseSchema {
|
10
|
+
/**
|
11
|
+
* 是否新窗口打开。
|
12
|
+
*/
|
13
|
+
blank?: boolean;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* 链接内容,如果不配置将显示链接地址。
|
17
|
+
*/
|
18
|
+
body?: SchemaTpl;
|
19
|
+
|
20
|
+
/**
|
21
|
+
* 禁用
|
22
|
+
*/
|
23
|
+
disabled?: boolean;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* 图标
|
27
|
+
*/
|
28
|
+
icon?: string;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* 图标位置
|
32
|
+
*/
|
33
|
+
position?: string;
|
34
|
+
}
|
35
|
+
|
36
|
+
export interface LinkProps
|
37
|
+
extends RendererProps,
|
38
|
+
Omit<LinkSchema, 'type' | 'className'> {}
|
39
|
+
|
40
|
+
export class Link extends React.Component<LinkProps, object> {
|
41
|
+
constructor(props: LinkProps) {
|
42
|
+
super(props);
|
43
|
+
}
|
44
|
+
|
45
|
+
@autobind
|
46
|
+
aClick(e: React.MouseEvent<any>) {
|
47
|
+
const {disabled} = this.props;
|
48
|
+
if (disabled) {
|
49
|
+
e.preventDefault();
|
50
|
+
e.stopPropagation();
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
render() {
|
55
|
+
const {
|
56
|
+
className,
|
57
|
+
body,
|
58
|
+
href,
|
59
|
+
classnames: cx,
|
60
|
+
blank,
|
61
|
+
disabled,
|
62
|
+
htmlTarget,
|
63
|
+
data,
|
64
|
+
title,
|
65
|
+
icon,
|
66
|
+
position
|
67
|
+
} = this.props;
|
68
|
+
|
69
|
+
let value = getPropValue(this.props);
|
70
|
+
const finnalHref = href ? filter(href, data, '| raw') : '';
|
71
|
+
|
72
|
+
return (
|
73
|
+
<a
|
74
|
+
href={finnalHref || value}
|
75
|
+
target={htmlTarget || (blank ? '_blank' : '_self')}
|
76
|
+
className={cx(
|
77
|
+
`Link`,
|
78
|
+
{
|
79
|
+
'is-disabled': disabled
|
80
|
+
},
|
81
|
+
className
|
82
|
+
)}
|
83
|
+
title={title}
|
84
|
+
onClick={this.aClick}
|
85
|
+
>
|
86
|
+
<i className={icon} style={{display: position !== 'right' ? 'inline-block' : 'none' }} />
|
87
|
+
{body}
|
88
|
+
<i className={icon} style={{display: position !== 'right' ? 'none' : 'inline-block' }} />
|
89
|
+
</a>
|
90
|
+
);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
export default themeable(Link);
|
package/src/components/Modal.tsx
CHANGED
@@ -8,7 +8,8 @@ import React from 'react';
|
|
8
8
|
import Transition, {
|
9
9
|
ENTERED,
|
10
10
|
ENTERING,
|
11
|
-
EXITING
|
11
|
+
EXITING,
|
12
|
+
EXITED
|
12
13
|
} from 'react-transition-group/Transition';
|
13
14
|
import Portal from 'react-overlays/Portal';
|
14
15
|
import {current, addModal, removeModal} from './ModalManager';
|
@@ -264,7 +265,7 @@ export class Modal extends React.Component<ModalProps, ModalState> {
|
|
264
265
|
fadeStyles[status]
|
265
266
|
)}
|
266
267
|
>
|
267
|
-
{children}
|
268
|
+
{status === EXITED ? null : children}
|
268
269
|
</div>
|
269
270
|
</div>
|
270
271
|
</Portal>
|
@@ -440,7 +440,15 @@ export class MonthRangePicker extends React.Component<
|
|
440
440
|
}
|
441
441
|
|
442
442
|
renderCalendar() {
|
443
|
-
const {
|
443
|
+
const {
|
444
|
+
classPrefix: ns,
|
445
|
+
classnames: cx,
|
446
|
+
locale,
|
447
|
+
embed,
|
448
|
+
ranges,
|
449
|
+
inputFormat,
|
450
|
+
timeFormat
|
451
|
+
} = this.props;
|
444
452
|
const __ = this.props.translate;
|
445
453
|
const viewMode: 'months' = 'months';
|
446
454
|
const dateFormat = 'YYYY-MM';
|
@@ -592,7 +600,7 @@ export class MonthRangePicker extends React.Component<
|
|
592
600
|
) : null}
|
593
601
|
|
594
602
|
<a className={`${ns}DateRangePicker-toggler`}>
|
595
|
-
<Icon icon="
|
603
|
+
<Icon icon="clock" className="icon" />
|
596
604
|
</a>
|
597
605
|
|
598
606
|
{isOpened ? (
|