amis 1.4.2-beta.1 → 1.4.2-beta.11
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/lib/Schema.d.ts +9 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/AnchorNav.d.ts +22 -21
- package/lib/components/AnchorNav.js +7 -3
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/ArrayInput.d.ts +84 -84
- package/lib/components/AssociatedSelection.d.ts +930 -0
- package/lib/components/AssociatedSelection.js +89 -0
- package/lib/components/AssociatedSelection.js.map +13 -0
- package/lib/components/Badge.js +2 -2
- package/lib/components/Badge.js.map +2 -2
- package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
- package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
- package/lib/components/ChainedSelection.js.map +13 -0
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GroupedSelection.d.ts +907 -0
- package/lib/components/GroupedSelection.js +48 -0
- package/lib/components/GroupedSelection.js.map +13 -0
- package/lib/components/Link.d.ts +29 -36
- package/lib/components/Link.js +14 -15
- package/lib/components/Link.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ModalManager.js +1 -1
- package/lib/components/ModalManager.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/NumberInput.d.ts +20 -20
- package/lib/components/PickerColumn.d.ts +514 -0
- package/lib/components/PickerColumn.js +279 -0
- package/lib/components/PickerColumn.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +513 -0
- package/lib/components/PickerContainer.js +96 -0
- package/lib/components/PickerContainer.js.map +13 -0
- package/lib/components/Radios.d.ts +22 -21
- package/lib/components/Radios.js +1 -0
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Rating.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/SearchBox.d.ts +84 -84
- package/lib/components/SearchBox.js +4 -4
- package/lib/components/SearchBox.js.map +2 -2
- package/lib/components/Select.d.ts +245 -237
- package/lib/components/Select.js +25 -4
- package/lib/components/Select.js.map +2 -2
- package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
- package/lib/components/Selection.js +134 -0
- package/lib/components/Selection.js.map +13 -0
- package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
- package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
- package/lib/components/TableSelection.js.map +13 -0
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/TabsTransfer.js +9 -9
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/TabsTransferPicker.d.ts +489 -0
- package/lib/components/TabsTransferPicker.js +60 -0
- package/lib/components/TabsTransferPicker.js.map +13 -0
- package/lib/components/Transfer.d.ts +908 -274
- package/lib/components/Transfer.js +31 -24
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +487 -0
- package/lib/components/TransferDropDown.js +59 -0
- package/lib/components/TransferDropDown.js.map +13 -0
- package/lib/components/TransferPicker.d.ts +489 -0
- package/lib/components/TransferPicker.js +60 -0
- package/lib/components/TransferPicker.js.map +13 -0
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
- package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
- package/lib/components/TreeSelection.js.map +13 -0
- package/lib/components/WithRemoteConfig.js +1 -1
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/condition-builder/Field.js +5 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Func.js +2 -2
- package/lib/components/condition-builder/Func.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.js +3 -3
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/index.d.ts +8 -8
- package/lib/components/index.js +16 -16
- package/lib/components/index.js.map +2 -2
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +4 -2
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +13 -0
- package/lib/hooks/use-set-state.d.ts +2 -0
- package/lib/hooks/use-set-state.js +15 -0
- package/lib/hooks/use-set-state.js.map +13 -0
- package/lib/hooks/use-touch.d.ts +16 -0
- package/lib/hooks/use-touch.js +73 -0
- package/lib/hooks/use-touch.js.map +13 -0
- package/lib/hooks/use-update-effect.d.ts +3 -0
- package/lib/hooks/use-update-effect.js +17 -0
- package/lib/hooks/use-update-effect.js.map +13 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +2 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +2 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +4 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +4 -3
- package/lib/renderers/Action.js +17 -4
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/AnchorNav.d.ts +1 -0
- package/lib/renderers/AnchorNav.js +2 -2
- package/lib/renderers/AnchorNav.js.map +2 -2
- package/lib/renderers/Avatar.js +3 -3
- package/lib/renderers/Avatar.js.map +2 -2
- package/lib/renderers/Breadcrumb.js +1 -1
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +9 -0
- package/lib/renderers/CRUD.js +24 -4
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.d.ts +4 -0
- package/lib/renderers/Card.js +29 -23
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Chart.js +1 -1
- package/lib/renderers/Chart.js.map +2 -2
- package/lib/renderers/Collapse.js +3 -2
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/DropDownButton.js +1 -1
- package/lib/renderers/DropDownButton.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +4 -3
- package/lib/renderers/Form/Editor.d.ts +3 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +7 -6
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputFile.js +10 -4
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +11 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js.map +1 -1
- package/lib/renderers/Form/Options.js +13 -3
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +41 -4
- package/lib/renderers/Form/Select.js +23 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TabsTransferPicker.js +29 -0
- package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
- package/lib/renderers/Form/Transfer.js +3 -2
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +48 -0
- package/lib/renderers/Form/TransferPicker.js +29 -0
- package/lib/renderers/Form/TransferPicker.js.map +13 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +1 -1
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +13 -1
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/IFrame.js +1 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Json.d.ts +4 -0
- package/lib/renderers/Json.js +4 -13
- package/lib/renderers/Json.js.map +2 -2
- package/lib/renderers/Link.d.ts +4 -2
- package/lib/renderers/Link.js +15 -6
- package/lib/renderers/Link.js.map +2 -2
- package/lib/renderers/List.js +1 -1
- package/lib/renderers/List.js.map +2 -2
- package/lib/renderers/Mapping.d.ts +9 -2
- package/lib/renderers/Mapping.js +18 -6
- package/lib/renderers/Mapping.js.map +2 -2
- package/lib/renderers/Nav.d.ts +21 -21
- package/lib/renderers/Nav.js +39 -21
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Portlet.d.ts +125 -0
- package/lib/renderers/Portlet.js +156 -0
- package/lib/renderers/Portlet.js.map +13 -0
- package/lib/renderers/Property.js +2 -1
- package/lib/renderers/Property.js.map +2 -2
- package/lib/renderers/SearchBox.d.ts +6 -1
- package/lib/renderers/SearchBox.js +19 -5
- package/lib/renderers/SearchBox.js.map +2 -2
- package/lib/renderers/Table/TableContent.d.ts +4 -1
- package/lib/renderers/Table/TableContent.js +21 -1
- package/lib/renderers/Table/TableContent.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +5 -1
- package/lib/renderers/Table/index.js +64 -29
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.js +9 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/WebComponent.js +1 -1
- package/lib/renderers/WebComponent.js.map +2 -2
- package/lib/store/combo.d.ts +2 -16
- package/lib/store/crud.js +3 -7
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +1 -1
- package/lib/store/form.js +5 -6
- package/lib/store/form.js.map +2 -2
- package/lib/store/service.js +5 -4
- package/lib/store/service.js.map +2 -2
- package/lib/store/table.d.ts +2 -2
- package/lib/themes/ang-ie11.css +422 -149
- package/lib/themes/ang.css +422 -149
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +422 -149
- package/lib/themes/antd.css +422 -149
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +456 -182
- package/lib/themes/cxd.css +456 -182
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +422 -149
- package/lib/themes/dark.css +422 -149
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +456 -182
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +37 -0
- package/lib/types.js +0 -5
- package/lib/types.js.map +2 -2
- package/lib/utils/api.d.ts +3 -2
- package/lib/utils/api.js +28 -12
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +4 -0
- package/lib/utils/dom.js +11 -1
- package/lib/utils/dom.js.map +2 -2
- package/lib/utils/helper.d.ts +2 -0
- package/lib/utils/helper.js +11 -2
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/icon.js +3 -0
- package/lib/utils/icon.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +3038 -790
- package/scss/_mixins.scss +1 -3
- package/scss/_properties.scss +25 -1
- package/scss/base/_normalize.scss +2 -0
- package/scss/components/_anchor-nav.scss +88 -29
- package/scss/components/_card.scss +8 -14
- package/scss/components/_collapse.scss +16 -1
- package/scss/components/_mapping.scss +6 -0
- package/scss/components/_nav.scss +1 -1
- package/scss/components/_picker-columns.scss +123 -0
- package/scss/components/_popover.scss +17 -0
- package/scss/components/_portlet.scss +51 -0
- package/scss/components/_status.scss +1 -1
- package/scss/components/_table.scss +26 -0
- package/scss/components/form/_checks.scss +0 -351
- package/scss/components/form/_fieldset.scss +5 -1
- package/scss/components/form/_selection.scss +354 -0
- package/scss/components/form/_transfer.scss +75 -18
- package/scss/themes/_common.scss +4 -0
- package/scss/themes/_cxd-variables.scss +4 -1
- package/scss/themes/cxd.scss +16 -12
- package/sdk/ang-ie11.css +457 -152
- package/sdk/ang.css +480 -154
- package/sdk/antd-ie11.css +456 -151
- package/sdk/antd.css +480 -154
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +496 -194
- package/sdk/cxd.css +517 -190
- package/sdk/dark-ie11.css +457 -152
- package/sdk/dark.css +480 -154
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +2 -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 +20 -28
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +496 -194
- package/sdk/sdk.css +517 -190
- package/sdk/sdk.js +1268 -1236
- 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 +14 -0
- package/src/components/AnchorNav.tsx +15 -4
- package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
- package/src/components/Badge.tsx +3 -3
- package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
- package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
- package/src/components/Link.tsx +28 -37
- package/src/components/ModalManager.ts +1 -1
- package/src/components/PickerColumn.tsx +429 -0
- package/src/components/PickerContainer.tsx +128 -0
- package/src/components/Radios.tsx +3 -8
- package/src/components/SearchBox.tsx +4 -5
- package/src/components/Select.tsx +57 -5
- package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
- package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
- package/src/components/TabsTransfer.tsx +13 -7
- package/src/components/TabsTransferPicker.tsx +85 -0
- package/src/components/Transfer.tsx +71 -50
- package/src/components/TransferDropDown.tsx +117 -0
- package/src/components/TransferPicker.tsx +84 -0
- package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
- package/src/components/WithRemoteConfig.tsx +7 -2
- package/src/components/condition-builder/Field.tsx +5 -5
- package/src/components/condition-builder/Func.tsx +3 -3
- package/src/components/condition-builder/InputSwitch.tsx +3 -3
- package/src/components/condition-builder/Item.tsx +5 -12
- package/src/components/index.tsx +13 -13
- package/src/envOverwrite.ts +0 -1
- package/src/factory.tsx +18 -3
- package/src/hooks/index.ts +5 -0
- package/src/hooks/use-set-state.ts +19 -0
- package/src/hooks/use-touch.ts +100 -0
- package/src/hooks/use-update-effect.ts +16 -0
- package/src/index.tsx +3 -0
- package/src/locale/de-DE.ts +2 -0
- package/src/locale/en-US.ts +2 -0
- package/src/locale/zh-CN.ts +4 -2
- package/src/renderers/Action.tsx +28 -2
- package/src/renderers/AnchorNav.tsx +4 -0
- package/src/renderers/Avatar.tsx +8 -4
- package/src/renderers/Breadcrumb.tsx +5 -1
- package/src/renderers/CRUD.tsx +33 -3
- package/src/renderers/Card.tsx +63 -34
- package/src/renderers/Chart.tsx +6 -2
- package/src/renderers/Collapse.tsx +4 -2
- package/src/renderers/DropDownButton.tsx +1 -1
- package/src/renderers/Form/InputCity.tsx +4 -8
- package/src/renderers/Form/InputFile.tsx +29 -20
- package/src/renderers/Form/InputImage.tsx +11 -3
- package/src/renderers/Form/Item.tsx +1 -1
- package/src/renderers/Form/Options.tsx +16 -2
- package/src/renderers/Form/Select.tsx +144 -21
- package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
- package/src/renderers/Form/Transfer.tsx +3 -2
- package/src/renderers/Form/TransferPicker.tsx +123 -0
- package/src/renderers/Form/TreeSelect.tsx +25 -0
- package/src/renderers/Form/index.tsx +1 -1
- package/src/renderers/Form/wrapControl.tsx +26 -1
- package/src/renderers/IFrame.tsx +2 -4
- package/src/renderers/Json.tsx +9 -9
- package/src/renderers/Link.tsx +27 -13
- package/src/renderers/List.tsx +1 -1
- package/src/renderers/Mapping.tsx +27 -11
- package/src/renderers/Nav.tsx +108 -60
- package/src/renderers/Portlet.tsx +423 -0
- package/src/renderers/Property.tsx +3 -2
- package/src/renderers/SearchBox.tsx +23 -4
- package/src/renderers/Table/TableContent.tsx +40 -2
- package/src/renderers/Table/index.tsx +87 -41
- package/src/renderers/Tabs.tsx +9 -1
- package/src/renderers/WebComponent.tsx +2 -2
- package/src/store/crud.ts +3 -8
- package/src/store/form.ts +5 -10
- package/src/store/service.ts +5 -4
- package/src/types.ts +57 -0
- package/src/utils/api.ts +40 -20
- package/src/utils/dom.tsx +12 -0
- package/src/utils/helper.ts +8 -0
- package/src/utils/icon.tsx +4 -0
- package/dump.rdb +0 -0
- package/lib/components/AssociatedCheckboxes.d.ts +0 -762
- package/lib/components/AssociatedCheckboxes.js +0 -90
- package/lib/components/AssociatedCheckboxes.js.map +0 -13
- package/lib/components/ChainedCheckboxes.js.map +0 -13
- package/lib/components/Checkboxes.js +0 -101
- package/lib/components/Checkboxes.js.map +0 -13
- package/lib/components/ListCheckboxes.d.ts +0 -739
- package/lib/components/ListCheckboxes.js +0 -48
- package/lib/components/ListCheckboxes.js.map +0 -13
- package/lib/components/ListRadios.d.ts +0 -763
- package/lib/components/ListRadios.js +0 -86
- package/lib/components/ListRadios.js.map +0 -13
- package/lib/components/TableCheckboxes.js.map +0 -13
- package/lib/components/TreeCheckboxes.js.map +0 -13
- package/lib/components/TreeRadios.d.ts +0 -838
- package/lib/components/TreeRadios.js +0 -116
- package/lib/components/TreeRadios.js.map +0 -13
- package/src/components/ListRadios.tsx +0 -159
- package/src/components/TreeRadios.tsx +0 -202
package/src/renderers/Link.tsx
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import {Renderer, RendererProps} from '../factory';
|
3
3
|
import {BaseSchema, SchemaTpl} from '../Schema';
|
4
|
-
import {getPropValue} from '../utils/helper';
|
4
|
+
import {autobind, getPropValue} from '../utils/helper';
|
5
5
|
import {filter} from '../utils/tpl';
|
6
6
|
import {BadgeSchema, withBadge} from '../components/Badge';
|
7
7
|
import Link from '../components/Link';
|
@@ -42,9 +42,9 @@ export interface LinkSchema extends BaseSchema {
|
|
42
42
|
icon?: string;
|
43
43
|
|
44
44
|
/**
|
45
|
-
*
|
45
|
+
* 右侧图标
|
46
46
|
*/
|
47
|
-
|
47
|
+
rightIcon?: string;
|
48
48
|
}
|
49
49
|
|
50
50
|
export interface LinkProps
|
@@ -55,9 +55,23 @@ export class LinkCmpt extends React.Component<LinkProps, object> {
|
|
55
55
|
static defaultProps = {
|
56
56
|
blank: true,
|
57
57
|
disabled: false,
|
58
|
-
htmlTarget: '
|
58
|
+
htmlTarget: ''
|
59
59
|
};
|
60
60
|
|
61
|
+
handleClick(href: string) {
|
62
|
+
const {env, blank, body} = this.props;
|
63
|
+
env?.tracker(
|
64
|
+
{
|
65
|
+
eventType: 'url',
|
66
|
+
// 需要和 action 里命名一致方便后续分析
|
67
|
+
eventData: {url: href, blank, label: body}
|
68
|
+
},
|
69
|
+
this.props
|
70
|
+
);
|
71
|
+
}
|
72
|
+
|
73
|
+
getHref() {}
|
74
|
+
|
61
75
|
render() {
|
62
76
|
const {
|
63
77
|
className,
|
@@ -72,25 +86,25 @@ export class LinkCmpt extends React.Component<LinkProps, object> {
|
|
72
86
|
translate: __,
|
73
87
|
title,
|
74
88
|
icon,
|
75
|
-
|
89
|
+
rightIcon
|
76
90
|
} = this.props;
|
77
91
|
|
78
|
-
let value =
|
79
|
-
|
80
|
-
|
92
|
+
let value =
|
93
|
+
(typeof href === 'string' && href
|
94
|
+
? filter(href, data, '| raw')
|
95
|
+
: undefined) || getPropValue(this.props);
|
81
96
|
|
82
97
|
return (
|
83
98
|
<Link
|
84
99
|
className={className}
|
85
|
-
href={
|
86
|
-
body={text}
|
87
|
-
blank={blank}
|
100
|
+
href={value}
|
88
101
|
disabled={disabled}
|
89
102
|
title={title}
|
90
|
-
htmlTarget={htmlTarget}
|
103
|
+
htmlTarget={htmlTarget || (blank ? '_blank' : '_self')}
|
91
104
|
icon={icon}
|
92
|
-
|
105
|
+
rightIcon={rightIcon}
|
93
106
|
>
|
107
|
+
{body ? render('body', body) : value || __('link')}
|
94
108
|
</Link>
|
95
109
|
);
|
96
110
|
}
|
package/src/renderers/List.tsx
CHANGED
@@ -1189,7 +1189,7 @@ export class ListItem extends React.Component<ListItemProps> {
|
|
1189
1189
|
}
|
1190
1190
|
|
1191
1191
|
renderFeild(region: string, field: any, key: any, props: any) {
|
1192
|
-
const render = props
|
1192
|
+
const render = props?.render || this.props.render;
|
1193
1193
|
const data = this.props.data;
|
1194
1194
|
const cx = this.props.classnames;
|
1195
1195
|
const itemIndex = this.props.itemIndex;
|
@@ -20,7 +20,8 @@ import {
|
|
20
20
|
buildApi,
|
21
21
|
isApiOutdated,
|
22
22
|
isEffectiveApi,
|
23
|
-
normalizeApi
|
23
|
+
normalizeApi,
|
24
|
+
normalizeApiResponseData
|
24
25
|
} from '../utils/api';
|
25
26
|
|
26
27
|
/**
|
@@ -72,7 +73,7 @@ export const Store = StoreNode.named('MappingStore')
|
|
72
73
|
const ret: Payload = yield env.fetcher(api, data);
|
73
74
|
|
74
75
|
if (ret.ok) {
|
75
|
-
const data = ret.data
|
76
|
+
const data = normalizeApiResponseData(ret.data);
|
76
77
|
(self as any).setMap(data);
|
77
78
|
} else {
|
78
79
|
throw new Error(ret.msg || 'fetch error');
|
@@ -175,7 +176,7 @@ export const MappingField = withStore(props =>
|
|
175
176
|
}
|
176
177
|
}
|
177
178
|
|
178
|
-
|
179
|
+
renderSingleValue(key: any, reactKey?: number) {
|
179
180
|
const {
|
180
181
|
className,
|
181
182
|
placeholder,
|
@@ -185,17 +186,13 @@ export const MappingField = withStore(props =>
|
|
185
186
|
data,
|
186
187
|
store
|
187
188
|
} = this.props;
|
188
|
-
const map = store.map;
|
189
|
-
|
190
|
-
let key = getPropValue(this.props);
|
191
|
-
|
192
189
|
let viewValue: React.ReactNode = (
|
193
190
|
<span className="text-muted">{placeholder}</span>
|
194
191
|
);
|
195
|
-
|
196
|
-
key = typeof key === 'string' ? key.trim() : key; // trim 一下,干掉一些空白字符。
|
192
|
+
const map = store.map;
|
197
193
|
let value: any = undefined;
|
198
|
-
|
194
|
+
// trim 一下,干掉一些空白字符。
|
195
|
+
key = typeof key === 'string' ? key.trim() : key;
|
199
196
|
if (
|
200
197
|
typeof key !== 'undefined' &&
|
201
198
|
map &&
|
@@ -210,7 +207,26 @@ export const MappingField = withStore(props =>
|
|
210
207
|
viewValue = render('tpl', value);
|
211
208
|
}
|
212
209
|
|
213
|
-
return
|
210
|
+
return (
|
211
|
+
<span key={`map-${reactKey}`} className={cx('MappingField', className)}>
|
212
|
+
{viewValue}
|
213
|
+
</span>
|
214
|
+
);
|
215
|
+
}
|
216
|
+
|
217
|
+
render() {
|
218
|
+
const mapKey = getPropValue(this.props);
|
219
|
+
if (Array.isArray(mapKey)) {
|
220
|
+
return (
|
221
|
+
<span>
|
222
|
+
{mapKey.map((singleKey: string, index: number) =>
|
223
|
+
this.renderSingleValue(singleKey, index)
|
224
|
+
)}
|
225
|
+
</span>
|
226
|
+
);
|
227
|
+
} else {
|
228
|
+
return this.renderSingleValue(mapKey, 0);
|
229
|
+
}
|
214
230
|
}
|
215
231
|
}
|
216
232
|
);
|
package/src/renderers/Nav.tsx
CHANGED
@@ -17,7 +17,13 @@ import {
|
|
17
17
|
import {ScopedContext, IScopedContext} from '../Scoped';
|
18
18
|
import {themeable, ThemeProps} from '../theme';
|
19
19
|
import {Icon} from '../components/icons';
|
20
|
-
import {
|
20
|
+
import {
|
21
|
+
BaseSchema,
|
22
|
+
SchemaApi,
|
23
|
+
SchemaIcon,
|
24
|
+
SchemaUrlPath,
|
25
|
+
SchemaCollection
|
26
|
+
} from '../Schema';
|
21
27
|
import {generateIcon} from '../utils/icon';
|
22
28
|
import {
|
23
29
|
RemoteOptionsProps,
|
@@ -90,27 +96,27 @@ export interface NavSchema extends BaseSchema {
|
|
90
96
|
/**
|
91
97
|
* 更多操作菜单列表
|
92
98
|
*/
|
93
|
-
|
99
|
+
itemActions?: SchemaCollection;
|
94
100
|
|
95
101
|
/**
|
96
102
|
* 可拖拽
|
97
103
|
*/
|
98
|
-
|
104
|
+
draggable?: boolean;
|
99
105
|
|
100
|
-
|
101
|
-
|
102
|
-
|
106
|
+
/**
|
107
|
+
* 保存排序的 api
|
108
|
+
*/
|
103
109
|
saveOrderApi?: SchemaApi;
|
104
110
|
|
105
111
|
/**
|
106
112
|
* 角标
|
107
113
|
*/
|
108
|
-
|
114
|
+
itemBadge?: BadgeSchema;
|
109
115
|
|
110
116
|
/**
|
111
117
|
* 仅允许同层级拖拽
|
112
118
|
*/
|
113
|
-
|
119
|
+
dragOnSameLevel?: boolean;
|
114
120
|
}
|
115
121
|
|
116
122
|
export interface Link {
|
@@ -191,7 +197,19 @@ export class Navigation extends React.Component<
|
|
191
197
|
|
192
198
|
@autobind
|
193
199
|
handleClick(link: Link) {
|
194
|
-
this.props
|
200
|
+
const {env, onSelect} = this.props;
|
201
|
+
// 和 action 里命名一致方便分析
|
202
|
+
if (link && link.to) {
|
203
|
+
env?.tracker({
|
204
|
+
eventType: 'link',
|
205
|
+
eventData: {
|
206
|
+
label: link.label,
|
207
|
+
link: link.to
|
208
|
+
}
|
209
|
+
});
|
210
|
+
}
|
211
|
+
|
212
|
+
onSelect?.(link);
|
195
213
|
}
|
196
214
|
|
197
215
|
@autobind
|
@@ -207,14 +225,18 @@ export class Navigation extends React.Component<
|
|
207
225
|
const {top, height, width} = rect;
|
208
226
|
let {clientY, clientX} = e;
|
209
227
|
const left = depth * (parseInt(indentSize as any, 10) ?? 24);
|
210
|
-
const deltaX = left + width * .2;
|
228
|
+
const deltaX = left + width * 0.2;
|
211
229
|
let position;
|
212
|
-
if (clientY >= top + height / 2
|
230
|
+
if (clientY >= top + height / 2) {
|
213
231
|
position = 'bottom';
|
214
232
|
} else {
|
215
233
|
position = 'top';
|
216
234
|
}
|
217
|
-
if (
|
235
|
+
if (
|
236
|
+
!dragOnSameLevel &&
|
237
|
+
position === 'bottom' &&
|
238
|
+
clientX >= this.startPoint.x + deltaX
|
239
|
+
) {
|
218
240
|
position = 'self';
|
219
241
|
}
|
220
242
|
return {
|
@@ -232,8 +254,9 @@ export class Navigation extends React.Component<
|
|
232
254
|
const target = e.target as HTMLElement; // a标签
|
233
255
|
const targetId = target.getAttribute('data-id') as string;
|
234
256
|
const targetDepth = Number(target.getAttribute('data-depth'));
|
235
|
-
if (
|
236
|
-
&&
|
257
|
+
if (
|
258
|
+
dragOnSameLevel &&
|
259
|
+
this.dragNode?.node.parentElement !== target.parentElement?.parentElement
|
237
260
|
) {
|
238
261
|
this.setState({dropIndicator: undefined});
|
239
262
|
this.dropInfo = null;
|
@@ -254,13 +277,15 @@ export class Navigation extends React.Component<
|
|
254
277
|
left,
|
255
278
|
width: ul.getBoundingClientRect().width - left,
|
256
279
|
height,
|
257
|
-
opacity: .2
|
280
|
+
opacity: 0.2
|
258
281
|
}
|
259
282
|
});
|
260
283
|
} else {
|
261
284
|
this.setState({
|
262
285
|
dropIndicator: {
|
263
|
-
top:
|
286
|
+
top:
|
287
|
+
(position === 'bottom' ? rect.top + rect.height : rect.top) -
|
288
|
+
ul.getBoundingClientRect().top,
|
264
289
|
left,
|
265
290
|
width: ul.getBoundingClientRect().width - left
|
266
291
|
}
|
@@ -356,21 +381,31 @@ export class Navigation extends React.Component<
|
|
356
381
|
})}
|
357
382
|
onDragStart={this.handleDragStart(link)}
|
358
383
|
>
|
359
|
-
<Badge
|
384
|
+
<Badge
|
385
|
+
classnames={cx}
|
386
|
+
badge={itemBadge}
|
387
|
+
data={createObject(defaultData, link)}
|
388
|
+
>
|
360
389
|
<a
|
361
390
|
data-id={link.__id}
|
362
391
|
data-depth={depth}
|
363
392
|
onClick={this.handleClick.bind(this, link)}
|
364
|
-
style={{
|
393
|
+
style={{
|
394
|
+
paddingLeft: depth * (parseInt(indentSize as any, 10) ?? 24)
|
395
|
+
}}
|
365
396
|
>
|
366
|
-
{!disabled && draggable
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
397
|
+
{!disabled && draggable ? (
|
398
|
+
<div
|
399
|
+
className={cx('Nav-itemDrager')}
|
400
|
+
draggable
|
401
|
+
onMouseDown={e => {
|
402
|
+
this.toggleLink(link, true);
|
403
|
+
e.stopPropagation();
|
404
|
+
}}
|
405
|
+
>
|
406
|
+
<Icon icon="drag-bar" className="icon" />
|
407
|
+
</div>
|
408
|
+
) : null}
|
374
409
|
{link.loading ? (
|
375
410
|
<Spinner
|
376
411
|
size="sm"
|
@@ -387,20 +422,20 @@ export class Navigation extends React.Component<
|
|
387
422
|
</span>
|
388
423
|
) : null}
|
389
424
|
{generateIcon(cx, link.icon, 'Nav-itemIcon')}
|
390
|
-
{
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
}
|
425
|
+
{link.label &&
|
426
|
+
(typeof link.label === 'string'
|
427
|
+
? link.label
|
428
|
+
: render('inline', link.label as SchemaCollection))}
|
395
429
|
</a>
|
396
430
|
{
|
397
431
|
// 更多操作
|
398
|
-
itemActions
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
432
|
+
itemActions ? (
|
433
|
+
<div className={cx('Nav-item-atcions')}>
|
434
|
+
{render('inline', itemActions, {
|
435
|
+
data: createObject(defaultData, link)
|
436
|
+
})}
|
437
|
+
</div>
|
438
|
+
) : null
|
404
439
|
}
|
405
440
|
{Array.isArray(link.children) && link.children.length ? (
|
406
441
|
<ul className={cx('Nav-subItems')}>
|
@@ -419,17 +454,22 @@ export class Navigation extends React.Component<
|
|
419
454
|
const {dropIndicator} = this.state;
|
420
455
|
return (
|
421
456
|
<div className={cx('Nav')}>
|
422
|
-
<ul
|
457
|
+
<ul
|
458
|
+
className={cx(
|
459
|
+
'Nav-list',
|
460
|
+
className,
|
461
|
+
stacked ? 'Nav-list--stacked' : 'Nav-list--tabs'
|
462
|
+
)}
|
463
|
+
>
|
423
464
|
{Array.isArray(links)
|
424
465
|
? links.map((item, index) => this.renderItem(item, index))
|
425
466
|
: null}
|
426
467
|
|
427
468
|
<Spinner show={!!loading} overlay icon="reload" />
|
428
469
|
</ul>
|
429
|
-
{(
|
430
|
-
|
431
|
-
|
432
|
-
)}
|
470
|
+
{dropIndicator ? (
|
471
|
+
<div className={cx('Nav-dropIndicator')} style={dropIndicator} />
|
472
|
+
) : null}
|
433
473
|
</div>
|
434
474
|
);
|
435
475
|
}
|
@@ -444,7 +484,7 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
444
484
|
: config.links || config.options || config.items || config.rows;
|
445
485
|
|
446
486
|
if (!Array.isArray(links)) {
|
447
|
-
throw new Error('
|
487
|
+
throw new Error('payload.data.options is not array.');
|
448
488
|
}
|
449
489
|
|
450
490
|
return links;
|
@@ -480,7 +520,7 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
480
520
|
env &&
|
481
521
|
env.isCurrentUrl(filter(link.to as string, data))
|
482
522
|
)),
|
483
|
-
__id: guid()
|
523
|
+
__id: link.__id || guid()
|
484
524
|
};
|
485
525
|
|
486
526
|
item.unfolded =
|
@@ -586,12 +626,15 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
586
626
|
const {nodeId, dragLink, position} = dropInfo;
|
587
627
|
if (dragLink) {
|
588
628
|
// 删除原节点
|
589
|
-
const sourceIdx = findTreeIndex(
|
629
|
+
const sourceIdx = findTreeIndex(
|
630
|
+
links,
|
631
|
+
link => link.__id === dragLink.__id
|
632
|
+
) as number[];
|
590
633
|
links = spliceTree(links, sourceIdx, 1);
|
591
634
|
|
592
635
|
if (position === 'self') {
|
593
636
|
// 插入到对应节点的children中
|
594
|
-
mapTree(links,
|
637
|
+
mapTree(links, link => {
|
595
638
|
if (link.__id === nodeId) {
|
596
639
|
if (!link.children) {
|
597
640
|
link.children = [];
|
@@ -599,33 +642,39 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
599
642
|
link.children.push(dragLink);
|
600
643
|
}
|
601
644
|
return link;
|
602
|
-
})
|
645
|
+
});
|
603
646
|
} else {
|
604
647
|
// 找到需要插入的节点
|
605
|
-
const idx = findTreeIndex(
|
648
|
+
const idx = findTreeIndex(
|
649
|
+
links,
|
650
|
+
link => link.__id === nodeId
|
651
|
+
) as number[];
|
606
652
|
// 插入节点之后
|
607
653
|
if (position === 'bottom') {
|
608
|
-
idx.push(idx.pop() as number + 1);
|
654
|
+
idx.push((idx.pop() as number) + 1);
|
609
655
|
}
|
610
656
|
links = spliceTree(links, idx, 0, dragLink);
|
611
657
|
}
|
612
658
|
}
|
613
659
|
this.props.updateConfig(links, 'update');
|
614
|
-
await this.saveOrder(
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
660
|
+
await this.saveOrder(
|
661
|
+
mapTree(links, (link: Link) => {
|
662
|
+
// 清除内部加的字段
|
663
|
+
for (let key in link) {
|
664
|
+
if (/^__.*$/.test(key)) {
|
665
|
+
delete link[key];
|
666
|
+
}
|
619
667
|
}
|
620
|
-
|
621
|
-
|
622
|
-
|
668
|
+
return link;
|
669
|
+
})
|
670
|
+
);
|
623
671
|
}
|
624
672
|
|
625
673
|
async saveOrder(links: Links) {
|
626
674
|
const {saveOrderApi, env, data, reload} = this.props;
|
627
675
|
if (saveOrderApi && isEffectiveApi(saveOrderApi)) {
|
628
|
-
await env.fetcher(
|
676
|
+
await env.fetcher(
|
677
|
+
saveOrderApi as SchemaApi,
|
629
678
|
createObject(data, {data: links}),
|
630
679
|
{method: 'post'}
|
631
680
|
);
|
@@ -659,7 +708,7 @@ const ConditionBuilderWithRemoteOptions = withRemoteConfig({
|
|
659
708
|
<ThemedNavigation
|
660
709
|
{...rest}
|
661
710
|
loading={loading}
|
662
|
-
links={config ||
|
711
|
+
links={config || []}
|
663
712
|
disabled={loading}
|
664
713
|
onSelect={this.handleSelect}
|
665
714
|
onToggle={this.toggleLink}
|
@@ -721,7 +770,6 @@ export class NavigationRenderer extends React.Component<RendererProps> {
|
|
721
770
|
|
722
771
|
render() {
|
723
772
|
const {...rest} = this.props;
|
724
|
-
|
725
773
|
return (
|
726
774
|
<ConditionBuilderWithRemoteOptions
|
727
775
|
{...rest}
|