amis 1.6.5-beta.3 → 1.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Breadcrumb.d.ts +130 -0
- package/lib/components/Breadcrumb.js +161 -0
- package/lib/components/Breadcrumb.js.map +13 -0
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +2 -2
- package/lib/components/DateRangePicker.js +36 -45
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/Layout.d.ts +21 -21
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Radios.d.ts +21 -21
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Selection.d.ts +84 -84
- package/lib/components/TableSelection.d.ts +84 -84
- package/lib/components/Tabs.d.ts +52 -23
- package/lib/components/Tabs.js +198 -46
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +5 -0
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.js.map +1 -1
- package/lib/components/icons.js +8 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/icons/cloud-upload.js +17 -0
- package/lib/icons/image.js +7 -0
- package/lib/icons/refresh.js +9 -0
- package/lib/icons/trash.js +10 -0
- package/lib/icons/upload.js +3 -8
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/en-US.js +3 -1
- 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 +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Breadcrumb.d.ts +41 -6
- package/lib/renderers/Breadcrumb.js +23 -19
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
- package/lib/renderers/Form/ChainedSelect.js +83 -34
- package/lib/renderers/Form/ChainedSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +3 -0
- package/lib/renderers/Form/Checkbox.js +38 -1
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -1
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +8 -1
- package/lib/renderers/Form/InputFile.js +71 -42
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +21 -9
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputSubForm.js +2 -1
- package/lib/renderers/Form/InputSubForm.js.map +2 -2
- package/lib/renderers/Form/InputTag.js +2 -1
- package/lib/renderers/Form/InputTag.js.map +2 -2
- package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
- package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +9 -6
- package/lib/renderers/Form/NestedSelect.js +247 -130
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +2 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Radios.js +2 -1
- package/lib/renderers/Form/Radios.js.map +2 -2
- package/lib/renderers/Form/Select.js +6 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +58 -5
- package/lib/renderers/Tabs.js +170 -58
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/form.js +4 -13
- package/lib/store/form.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +742 -160
- package/lib/themes/ang.css +793 -163
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +757 -175
- package/lib/themes/antd.css +793 -163
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1249 -667
- package/lib/themes/cxd.css +970 -321
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +742 -160
- package/lib/themes/dark.css +793 -163
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1249 -667
- package/lib/themes/default.css +970 -321
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +16012 -736
- package/scss/_properties.scss +56 -2
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_breadcrumb.scss +90 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_tabs.scss +629 -132
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_file.scss +82 -24
- package/scss/components/form/_image.scss +30 -25
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-colors.scss +47 -47
- package/scss/themes/_cxd-variables.scss +20 -0
- package/sdk/ang-ie11.css +879 -196
- package/sdk/ang.css +931 -200
- package/sdk/antd-ie11.css +951 -268
- package/sdk/antd.css +931 -200
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1386 -703
- package/sdk/cxd.css +1107 -357
- package/sdk/dark-ie11.css +879 -196
- package/sdk/dark.css +931 -200
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1386 -703
- package/sdk/sdk.css +1107 -357
- package/sdk/sdk.js +1260 -1248
- 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 +5 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/Breadcrumb.tsx +294 -0
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DateRangePicker.tsx +40 -68
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +300 -54
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +5 -0
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/icons.tsx +8 -0
- package/src/components/index.tsx +2 -0
- package/src/icons/cloud-upload.svg +22 -0
- package/src/icons/image.svg +1 -0
- package/src/icons/refresh.svg +7 -0
- package/src/icons/trash.svg +8 -0
- package/src/icons/upload.svg +4 -9
- package/src/index.tsx +1 -0
- package/src/locale/en-US.ts +3 -1
- package/src/locale/zh-CN.ts +4 -2
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/Breadcrumb.tsx +89 -45
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Form/ChainedSelect.tsx +56 -12
- package/src/renderers/Form/Checkbox.tsx +30 -1
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +167 -115
- package/src/renderers/Form/InputImage.tsx +61 -35
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputSubForm.tsx +2 -1
- package/src/renderers/Form/InputTag.tsx +3 -1
- package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
- package/src/renderers/Form/NestedSelect.tsx +75 -26
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/Radios.tsx +3 -1
- package/src/renderers/Form/Select.tsx +6 -2
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Tabs.tsx +254 -93
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/form.ts +0 -9
- package/src/store/table.ts +1 -1
package/lib/renderers/Tabs.js
CHANGED
@@ -15,8 +15,9 @@ var Tabs = /** @class */ (function (_super) {
|
|
15
15
|
(0, tslib_1.__extends)(Tabs, _super);
|
16
16
|
function Tabs(props) {
|
17
17
|
var _this = _super.call(this, props) || this;
|
18
|
+
_this.newTabDefaultId = 3;
|
18
19
|
var location = props.location || window.location;
|
19
|
-
var tabs = props.tabs;
|
20
|
+
var tabs = props.tabs, source = props.source, data = props.data;
|
20
21
|
var activeKey = 0;
|
21
22
|
if (typeof props.activeKey !== 'undefined') {
|
22
23
|
activeKey = props.activeKey;
|
@@ -32,16 +33,37 @@ var Tabs = /** @class */ (function (_super) {
|
|
32
33
|
}
|
33
34
|
activeKey = activeKey || (tabs[0] && tabs[0].hash) || 0;
|
34
35
|
}
|
36
|
+
var _a = _this.initTabArray(tabs, source, data), localTabs = _a[0], isFromSource = _a[1];
|
35
37
|
_this.state = {
|
36
38
|
prevKey: undefined,
|
37
|
-
activeKey: (_this.activeKey = activeKey)
|
39
|
+
activeKey: (_this.activeKey = activeKey),
|
40
|
+
localTabs: localTabs,
|
41
|
+
isFromSource: isFromSource
|
38
42
|
};
|
39
43
|
return _this;
|
40
44
|
}
|
45
|
+
// 初始化 tabs 数组,当从 source 获取数据源时
|
46
|
+
Tabs.prototype.initTabArray = function (tabs, source, data) {
|
47
|
+
if (!tabs) {
|
48
|
+
return [[], false];
|
49
|
+
}
|
50
|
+
var arr = (0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw');
|
51
|
+
if (!Array.isArray(arr)) {
|
52
|
+
return [tabs, false];
|
53
|
+
}
|
54
|
+
tabs = Array.isArray(tabs) ? tabs : [tabs];
|
55
|
+
var sourceTabs = [];
|
56
|
+
arr.forEach(function (value, index) {
|
57
|
+
var ctx = (0, helper_1.createObject)(data, (0, helper_1.isObject)(value) ? (0, tslib_1.__assign)({ index: index }, value) : { item: value, index: index });
|
58
|
+
sourceTabs.push.apply(sourceTabs, tabs.map(function (tab) { return ((0, tslib_1.__assign)((0, tslib_1.__assign)({}, tab), { ctx: ctx })); }));
|
59
|
+
});
|
60
|
+
return [sourceTabs, true];
|
61
|
+
};
|
41
62
|
Tabs.prototype.componentDidMount = function () {
|
42
63
|
var _a, _b;
|
43
64
|
this.autoJumpToNeighbour(this.activeKey);
|
44
65
|
var _c = this.props, name = _c.name, value = _c.value, onChange = _c.onChange, source = _c.source, tabs = _c.tabs, data = _c.data;
|
66
|
+
var localTabs = this.state.localTabs;
|
45
67
|
// 如果没有配置 name ,说明不需要同步表单值
|
46
68
|
if (!name ||
|
47
69
|
typeof onChange !== 'function' ||
|
@@ -51,7 +73,7 @@ var Tabs = /** @class */ (function (_super) {
|
|
51
73
|
}
|
52
74
|
value = value !== null && value !== void 0 ? value : (0, helper_1.getVariable)(data, name);
|
53
75
|
// 如果有值,切到对应的 tab
|
54
|
-
if (value && Array.isArray(
|
76
|
+
if (value && Array.isArray(localTabs)) {
|
55
77
|
var key = this.resolveKeyByValue(value);
|
56
78
|
key !== undefined && this.handleSelect(key);
|
57
79
|
}
|
@@ -65,12 +87,29 @@ var Tabs = /** @class */ (function (_super) {
|
|
65
87
|
Tabs.prototype.componentDidUpdate = function (preProps, prevState) {
|
66
88
|
var _a, _b, _c;
|
67
89
|
var props = this.props;
|
68
|
-
|
90
|
+
var localTabs = this.state.localTabs;
|
91
|
+
// 响应外部修改 tabs
|
92
|
+
var isTabsModified = (0, helper_1.isObjectShallowModified)({
|
93
|
+
tabs: props.tabs,
|
94
|
+
source: (0, tpl_builtin_1.resolveVariableAndFilter)(props.source, props.data, '| raw')
|
95
|
+
}, {
|
96
|
+
tabs: preProps.tabs,
|
97
|
+
source: (0, tpl_builtin_1.resolveVariableAndFilter)(preProps.source, preProps.data, '| raw')
|
98
|
+
}, false);
|
99
|
+
if (isTabsModified) {
|
100
|
+
var _d = this.initTabArray(props.tabs, props.source, props.data), newLocalTabs = _d[0], isFromSource = _d[1];
|
101
|
+
this.setState({
|
102
|
+
localTabs: newLocalTabs,
|
103
|
+
isFromSource: isFromSource
|
104
|
+
});
|
105
|
+
localTabs = newLocalTabs;
|
106
|
+
}
|
107
|
+
if (props.location && preProps.location && props.location.hash !== preProps.location.hash) {
|
69
108
|
var hash_2 = props.location.hash.substring(1);
|
70
109
|
if (!hash_2) {
|
71
110
|
return;
|
72
111
|
}
|
73
|
-
var tab = (0, find_1.default)(
|
112
|
+
var tab = (0, find_1.default)(localTabs, function (tab) { return tab.hash === hash_2; });
|
74
113
|
if (tab && tab.hash && tab.hash !== this.state.activeKey) {
|
75
114
|
this.setState({
|
76
115
|
activeKey: (this.activeKey = tab.hash),
|
@@ -78,25 +117,25 @@ var Tabs = /** @class */ (function (_super) {
|
|
78
117
|
});
|
79
118
|
}
|
80
119
|
}
|
81
|
-
else if (Array.isArray(
|
82
|
-
Array.isArray(
|
83
|
-
JSON.stringify(
|
84
|
-
JSON.stringify(
|
120
|
+
else if (Array.isArray(localTabs) &&
|
121
|
+
Array.isArray(prevState.localTabs) &&
|
122
|
+
JSON.stringify(localTabs.map(function (item) { return item.hash; })) !==
|
123
|
+
JSON.stringify(prevState.localTabs.map(function (item) { return item.hash; }))) {
|
85
124
|
var activeKey_1 = this.state.activeKey;
|
86
125
|
var location = props.location;
|
87
126
|
var tab = null;
|
88
|
-
if (location && Array.isArray(
|
127
|
+
if (location && Array.isArray(localTabs)) {
|
89
128
|
var hash_3 = location.hash.substring(1);
|
90
|
-
tab = (0, find_1.default)(
|
129
|
+
tab = (0, find_1.default)(localTabs, function (tab) { return tab.hash === hash_3; });
|
91
130
|
}
|
92
131
|
if (tab) {
|
93
132
|
activeKey_1 = tab.hash;
|
94
133
|
}
|
95
|
-
else if (!
|
96
|
-
!
|
134
|
+
else if (!localTabs ||
|
135
|
+
!localTabs.some(function (item, index) {
|
97
136
|
return item.hash ? item.hash === activeKey_1 : index === activeKey_1;
|
98
137
|
})) {
|
99
|
-
activeKey_1 = (
|
138
|
+
activeKey_1 = (localTabs && localTabs[0] && localTabs[0].hash) || 0;
|
100
139
|
}
|
101
140
|
this.setState({
|
102
141
|
prevKey: undefined,
|
@@ -104,7 +143,7 @@ var Tabs = /** @class */ (function (_super) {
|
|
104
143
|
});
|
105
144
|
}
|
106
145
|
this.autoJumpToNeighbour(this.activeKey);
|
107
|
-
var
|
146
|
+
var _e = this.props, name = _e.name, value = _e.value, onChange = _e.onChange, source = _e.source, data = _e.data;
|
108
147
|
// 如果没有配置 name ,说明不需要同步表单值
|
109
148
|
if (!name ||
|
110
149
|
typeof onChange !== 'function' ||
|
@@ -128,39 +167,40 @@ var Tabs = /** @class */ (function (_super) {
|
|
128
167
|
}
|
129
168
|
};
|
130
169
|
Tabs.prototype.resolveTabByKey = function (key) {
|
131
|
-
var
|
132
|
-
if (!Array.isArray(
|
170
|
+
var localTabs = this.state.localTabs;
|
171
|
+
if (!Array.isArray(localTabs)) {
|
133
172
|
return;
|
134
173
|
}
|
135
|
-
return (0, find_1.default)(
|
174
|
+
return (0, find_1.default)(localTabs, function (tab, index) {
|
136
175
|
return tab.hash ? tab.hash === key : index === key;
|
137
176
|
});
|
138
177
|
};
|
139
178
|
Tabs.prototype.resolveKeyByValue = function (value) {
|
140
|
-
var
|
141
|
-
if (!Array.isArray(
|
179
|
+
var localTabs = this.state.localTabs;
|
180
|
+
if (!Array.isArray(localTabs)) {
|
142
181
|
return;
|
143
182
|
}
|
144
|
-
var tab = (0, find_1.default)(
|
145
|
-
return tab && tab.hash ? tab.hash :
|
183
|
+
var tab = (0, find_1.default)(localTabs, function (tab) { var _a; return ((_a = tab.value) !== null && _a !== void 0 ? _a : tab.title) === value; });
|
184
|
+
return tab && tab.hash ? tab.hash : localTabs.indexOf(tab);
|
146
185
|
};
|
147
186
|
Tabs.prototype.autoJumpToNeighbour = function (key) {
|
148
187
|
var _a = this.props, tabs = _a.tabs, data = _a.data;
|
149
|
-
|
188
|
+
var localTabs = this.state.localTabs;
|
189
|
+
if (!Array.isArray(localTabs)) {
|
150
190
|
return;
|
151
191
|
}
|
152
192
|
// 当前 tab 可能不可见,所以需要自动切到一个可见的 tab, 向前找,找一圈
|
153
|
-
var tabIndex = (0, findIndex_1.default)(
|
193
|
+
var tabIndex = (0, findIndex_1.default)(localTabs, function (tab, index) {
|
154
194
|
return tab.hash ? tab.hash === key : index === key;
|
155
195
|
});
|
156
|
-
if (
|
157
|
-
var len =
|
196
|
+
if (localTabs[tabIndex] && !(0, helper_1.isVisible)(localTabs[tabIndex], this.props.data)) {
|
197
|
+
var len = localTabs.length;
|
158
198
|
var i = tabIndex - 1 + len;
|
159
199
|
var tries = len - 1;
|
160
200
|
while (tries--) {
|
161
201
|
var index = i-- % len;
|
162
|
-
if ((0, helper_1.isVisible)(
|
163
|
-
var activeKey =
|
202
|
+
if ((0, helper_1.isVisible)(localTabs[index], data)) {
|
203
|
+
var activeKey = localTabs[index].hash || index;
|
164
204
|
this.setState({
|
165
205
|
activeKey: (this.activeKey = activeKey)
|
166
206
|
});
|
@@ -169,6 +209,53 @@ var Tabs = /** @class */ (function (_super) {
|
|
169
209
|
}
|
170
210
|
}
|
171
211
|
};
|
212
|
+
Tabs.prototype.handleAdd = function () {
|
213
|
+
var _this = this;
|
214
|
+
var localTabs = this.state.localTabs.concat();
|
215
|
+
localTabs.push({
|
216
|
+
title: "\u65B0\u589Etab".concat(this.newTabDefaultId++),
|
217
|
+
body: '新增tab 内容'
|
218
|
+
});
|
219
|
+
this.setState({
|
220
|
+
localTabs: localTabs
|
221
|
+
}, function () {
|
222
|
+
_this.switchTo(_this.state.localTabs.length - 1);
|
223
|
+
});
|
224
|
+
};
|
225
|
+
Tabs.prototype.handleClose = function (index, key) {
|
226
|
+
var originTabs = this.state.localTabs.concat();
|
227
|
+
originTabs.splice(index, 1);
|
228
|
+
this.setState({
|
229
|
+
localTabs: originTabs
|
230
|
+
});
|
231
|
+
};
|
232
|
+
Tabs.prototype.handleEdit = function (index, text) {
|
233
|
+
var originTabs = this.state.localTabs.concat();
|
234
|
+
originTabs[index].title = text;
|
235
|
+
this.setState({
|
236
|
+
localTabs: originTabs
|
237
|
+
});
|
238
|
+
};
|
239
|
+
Tabs.prototype.handleDragChange = function (e) {
|
240
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
241
|
+
var activeTab, originTabs;
|
242
|
+
var _this = this;
|
243
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
244
|
+
activeTab = this.resolveTabByKey(this.activeKey);
|
245
|
+
originTabs = this.state.localTabs.concat();
|
246
|
+
originTabs.splice(e.newIndex, 0, originTabs.splice(e.oldIndex, 1)[0]);
|
247
|
+
this.setState({
|
248
|
+
localTabs: originTabs
|
249
|
+
}, function () {
|
250
|
+
if (activeTab) {
|
251
|
+
var newActiveTabIndex = originTabs.indexOf(activeTab);
|
252
|
+
_this.switchTo(newActiveTabIndex);
|
253
|
+
}
|
254
|
+
});
|
255
|
+
return [2 /*return*/];
|
256
|
+
});
|
257
|
+
});
|
258
|
+
};
|
172
259
|
Tabs.prototype.handleSelect = function (key) {
|
173
260
|
var _a;
|
174
261
|
var _b = this.props, env = _b.env, onSelect = _b.onSelect, id = _b.id;
|
@@ -230,18 +317,19 @@ var Tabs = /** @class */ (function (_super) {
|
|
230
317
|
}
|
231
318
|
};
|
232
319
|
Tabs.prototype.switchTo = function (index) {
|
233
|
-
var
|
234
|
-
Array.isArray(
|
235
|
-
|
320
|
+
var localTabs = this.state.localTabs;
|
321
|
+
Array.isArray(localTabs) &&
|
322
|
+
localTabs[index] &&
|
236
323
|
this.setState({
|
237
|
-
activeKey: (this.activeKey =
|
324
|
+
activeKey: (this.activeKey = localTabs[index].hash || index)
|
238
325
|
});
|
239
326
|
};
|
240
327
|
Tabs.prototype.currentIndex = function () {
|
241
328
|
var _this = this;
|
242
|
-
|
243
|
-
|
244
|
-
|
329
|
+
// const {tabs} = this.props;
|
330
|
+
var localTabs = this.state.localTabs;
|
331
|
+
return Array.isArray(localTabs)
|
332
|
+
? (0, findIndex_1.default)(localTabs, function (tab, index) {
|
245
333
|
return tab.hash
|
246
334
|
? tab.hash === _this.state.activeKey
|
247
335
|
: index === _this.state.activeKey;
|
@@ -254,36 +342,29 @@ var Tabs = /** @class */ (function (_super) {
|
|
254
342
|
};
|
255
343
|
Tabs.prototype.renderTabs = function () {
|
256
344
|
var _this = this;
|
257
|
-
var _a = this.props, cx = _a.classnames, ns = _a.classPrefix, contentClassName = _a.contentClassName, linksClassName = _a.linksClassName, tabRender = _a.tabRender, className = _a.className, render = _a.render, data = _a.data, dMode = _a.mode, tabsMode = _a.tabsMode, unmountOnExit = _a.unmountOnExit, source = _a.source, formStore = _a.formStore, formMode = _a.formMode, formHorizontal = _a.formHorizontal, subFormMode = _a.subFormMode, subFormHorizontal = _a.subFormHorizontal,
|
345
|
+
var _a = this.props, cx = _a.classnames, ns = _a.classPrefix, contentClassName = _a.contentClassName, linksClassName = _a.linksClassName, tabRender = _a.tabRender, className = _a.className, render = _a.render, data = _a.data, dMode = _a.mode, tabsMode = _a.tabsMode, unmountOnExit = _a.unmountOnExit, source = _a.source, formStore = _a.formStore, formMode = _a.formMode, formHorizontal = _a.formHorizontal, subFormMode = _a.subFormMode, subFormHorizontal = _a.subFormHorizontal, addable = _a.addable, closable = _a.closable, draggable = _a.draggable, showTip = _a.showTip, showTipClassName = _a.showTipClassName, editable = _a.editable, sidePosition = _a.sidePosition, addBtnText = _a.addBtnText;
|
258
346
|
var mode = tabsMode || dMode;
|
259
|
-
var arr = (0, tpl_builtin_1.resolveVariableAndFilter)(source, data, '| raw');
|
260
347
|
var mountOnEnter = this.props.mountOnEnter;
|
261
348
|
// 如果在form下面,其他tabs默认需要渲染出来
|
262
349
|
// 否则在其他 tab 下面的必填项检测不到
|
263
350
|
if (formStore) {
|
264
351
|
mountOnEnter = false;
|
265
352
|
}
|
266
|
-
var
|
267
|
-
if (!tabs) {
|
268
|
-
return null;
|
269
|
-
}
|
270
|
-
tabs = Array.isArray(tabs) ? tabs : [tabs];
|
353
|
+
var _b = this.state, tabs = _b.localTabs, isFromSource = _b.isFromSource;
|
271
354
|
var children = [];
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
}))) : null;
|
286
|
-
}));
|
355
|
+
// 是否从 source 数据中生成
|
356
|
+
if (isFromSource) {
|
357
|
+
children = tabs.map(function (tab, index) {
|
358
|
+
var _a;
|
359
|
+
return (0, helper_1.isVisible)(tab, tab.ctx) ? (react_1.default.createElement(Tabs_1.Tab, (0, tslib_1.__assign)({}, tab, { title: (0, tpl_1.filter)(tab.title, tab.ctx), disabled: (0, helper_1.isDisabled)(tab, tab.ctx), key: index, eventKey: index, mountOnEnter: mountOnEnter, unmountOnExit: typeof tab.reload === 'boolean'
|
360
|
+
? tab.reload
|
361
|
+
: typeof tab.unmountOnExit === 'boolean'
|
362
|
+
? tab.unmountOnExit
|
363
|
+
: unmountOnExit }), render("item/".concat(index), ((_a = tab) === null || _a === void 0 ? void 0 : _a.type) ? tab : tab.tab || tab.body, {
|
364
|
+
data: tab.ctx,
|
365
|
+
formMode: tab.mode || subFormMode || formMode,
|
366
|
+
formHorizontal: tab.horizontal || subFormHorizontal || formHorizontal
|
367
|
+
}))) : null;
|
287
368
|
});
|
288
369
|
}
|
289
370
|
else {
|
@@ -303,23 +384,54 @@ var Tabs = /** @class */ (function (_super) {
|
|
303
384
|
}))) : null;
|
304
385
|
});
|
305
386
|
}
|
306
|
-
return (react_1.default.createElement(Tabs_1.Tabs, { classPrefix: ns, classnames: cx, mode: mode, className: className, contentClassName: contentClassName, linksClassName: linksClassName, onSelect: this.handleSelect, activeKey: this.state.activeKey, toolbar: this.renderToolbar(),
|
387
|
+
return (react_1.default.createElement(Tabs_1.Tabs, { classPrefix: ns, classnames: cx, mode: mode, closable: closable, className: className, contentClassName: contentClassName, linksClassName: linksClassName, onSelect: this.handleSelect, activeKey: this.state.activeKey, toolbar: this.renderToolbar(), addable: addable, onAdd: this.handleAdd, onClose: this.handleClose, draggable: draggable, onDragChange: this.handleDragChange, showTip: showTip, showTipClassName: showTipClassName, editable: editable, onEdit: this.handleEdit, sidePosition: sidePosition, addBtnText: addBtnText }, children));
|
307
388
|
};
|
308
389
|
Tabs.prototype.render = function () {
|
309
390
|
return this.renderTabs();
|
310
391
|
};
|
392
|
+
var _a;
|
311
393
|
Tabs.defaultProps = {
|
312
394
|
className: '',
|
313
395
|
mode: '',
|
314
396
|
mountOnEnter: true,
|
315
397
|
unmountOnExit: false
|
316
398
|
};
|
399
|
+
(0, tslib_1.__decorate)([
|
400
|
+
helper_1.autobind,
|
401
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
402
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof Array !== "undefined" && Array) === "function" ? _a : Object, String, Object]),
|
403
|
+
(0, tslib_1.__metadata)("design:returntype", Array)
|
404
|
+
], Tabs.prototype, "initTabArray", null);
|
317
405
|
(0, tslib_1.__decorate)([
|
318
406
|
helper_1.autobind,
|
319
407
|
(0, tslib_1.__metadata)("design:type", Function),
|
320
408
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
321
409
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
322
410
|
], Tabs.prototype, "autoJumpToNeighbour", null);
|
411
|
+
(0, tslib_1.__decorate)([
|
412
|
+
helper_1.autobind,
|
413
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
414
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
415
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
416
|
+
], Tabs.prototype, "handleAdd", null);
|
417
|
+
(0, tslib_1.__decorate)([
|
418
|
+
helper_1.autobind,
|
419
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
420
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Number, Object]),
|
421
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
422
|
+
], Tabs.prototype, "handleClose", null);
|
423
|
+
(0, tslib_1.__decorate)([
|
424
|
+
helper_1.autobind,
|
425
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
426
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Number, String]),
|
427
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
428
|
+
], Tabs.prototype, "handleEdit", null);
|
429
|
+
(0, tslib_1.__decorate)([
|
430
|
+
helper_1.autobind,
|
431
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
432
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
433
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
434
|
+
], Tabs.prototype, "handleDragChange", null);
|
323
435
|
(0, tslib_1.__decorate)([
|
324
436
|
helper_1.autobind,
|
325
437
|
(0, tslib_1.__metadata)("design:type", Function),
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Tabs.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AAEnD,kEAA+B;AAC/B,0CAOyB;AACzB,4EAAyC;AACzC,2CAAsD;AAStD,oCAAoC;AACpC,oDAI8B;AAE9B,oCAA+C;AAgJ/C;IAAkC,qCAAqC;IAWrE,cAAY,KAAgB;QAA5B,YACE,kBAAM,KAAK,CAAC,SAyBb;QAvBC,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACnD,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,SAAS,GAAQ,CAAC,CAAC;QAEvB,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE;YAC1C,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;SAC7B;aAAM,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAM,MAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACxC,IAAM,GAAG,GAAc,IAAA,cAAI,EAAC,IAAI,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,MAAI,EAAjB,CAAiB,CAAc,CAAC;YAEzE,IAAI,GAAG,EAAE;gBACP,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;aACtB;iBAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBACjC,SAAS,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1D;YAED,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzD;QAED,KAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SACxC,CAAC;;IACJ,CAAC;IAED,gCAAiB,GAAjB;;QACE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,IAAA,KAA8C,IAAI,CAAC,KAAK,EAAvD,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAc,CAAC;QAE7D,0BAA0B;QAC1B,IACE,CAAC,IAAI;YACL,OAAO,QAAQ,KAAK,UAAU;YAC9B,kBAAkB;YAClB,MAAM,EACN;YACA,OAAO;SACR;QAED,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,kBAAkB;QAClB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChC,IAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAC7C;aAAM;YACL,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,MAAC,GAAW,CAAC,KAAK,mCAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,MAAC,GAAW,CAAC,KAAK,mCAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC1D;SACF;IACH,CAAC;IAED,iCAAkB,GAAlB,UAAmB,QAAmB,EAAE,SAAc;;QACpD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpE,IAAM,MAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAI,EAAE;gBACT,OAAO;aACR;YAED,IAAM,GAAG,GAAc,IAAA,cAAI,EACzB,KAAK,CAAC,IAAI,EACV,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,MAAI,EAAjB,CAAiB,CACZ,CAAC;YACf,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxD,IAAI,CAAC,QAAQ,CAAC;oBACZ,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;oBACtC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;iBAC9B,CAAC,CAAC;aACJ;SACF;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC,EACtD;YACA,IAAI,WAAS,GAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1C,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,GAAG,GAAqB,IAAI,CAAC;YAEjC,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzC,IAAM,MAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxC,GAAG,GAAG,IAAA,cAAI,EAAC,KAAK,CAAC,IAAI,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,MAAI,EAAjB,CAAiB,CAAc,CAAC;aAC/D;YAED,IAAI,GAAG,EAAE;gBACP,WAAS,GAAG,GAAG,CAAC,IAAI,CAAC;aACtB;iBAAM,IACL,CAAC,KAAK,CAAC,IAAI;gBACX,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,KAAK;oBAC3B,OAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAS,CAAC,CAAC,CAAC,KAAK,KAAK,WAAS;gBAAzD,CAAyD,CAC1D,EACD;gBACA,WAAS,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtE;YAED,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,WAAS,CAAC;aACxC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,IAAA,KAAwC,IAAI,CAAC,KAAK,EAAjD,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAc,CAAC;QAEvD,0BAA0B;QAC1B,IACE,CAAC,IAAI;YACL,OAAO,QAAQ,KAAK,UAAU;YAC9B,kBAAkB;YAClB,MAAM,EACN;YACA,OAAO;SACR;QAED,IAAI,GAAQ,CAAC;QACb,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAM,SAAS,GACb,MAAA,QAAQ,CAAC,KAAK,mCAAI,IAAA,oBAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,IACE,KAAK,KAAK,SAAS;YACnB,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;YACnD,GAAG,KAAK,IAAI,CAAC,SAAS,EACtB;YACA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE;YACjD,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,MAAC,GAAW,CAAC,KAAK,mCAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gBACtD,IAAI,CAAC,YAAY,CAAC,MAAC,GAAW,CAAC,KAAK,mCAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC1D;SACF;IACH,CAAC;IAED,8BAAe,GAAf,UAAgB,GAAQ;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO;SACR;QAED,OAAO,IAAA,cAAI,EAAC,IAAI,EAAE,UAAC,GAAc,EAAE,KAAK;YACtC,OAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG;QAA3C,CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,gCAAiB,GAAjB,UAAkB,KAAU;QAC1B,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO;SACR;QAED,IAAM,GAAG,GAAc,IAAA,cAAI,EACzB,IAAI,EACJ,UAAA,GAAG,YAAI,OAAA,CAAC,MAAC,GAAW,CAAC,KAAK,mCAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA,EAAA,CACtC,CAAC;QAEf,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAGD,kCAAmB,GAAnB,UAAoB,GAAQ;QACpB,IAAA,KAAe,IAAI,CAAC,KAAK,EAAxB,IAAI,UAAA,EAAE,IAAI,UAAc,CAAC;QAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO;SACR;QAED,0CAA0C;QAC1C,IAAM,QAAQ,GAAG,IAAA,mBAAS,EAAC,IAAI,EAAE,UAAC,GAAc,EAAE,KAAK;YACrD,OAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG;QAA3C,CAA2C,CAC5C,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACjE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC;YAC3B,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAEpB,OAAO,KAAK,EAAE,EAAE;gBACd,IAAM,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;gBACxB,IAAI,IAAA,kBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE;oBAChC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;oBAC1C,IAAI,CAAC,QAAQ,CAAC;wBACZ,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;qBACxC,CAAC,CAAC;oBACH,MAAM;iBACP;aACF;SACF;IACH,CAAC;IAGD,2BAAY,GAAZ,UAAa,GAAQ;;QACb,IAAA,KAAsB,IAAI,CAAC,KAAK,EAA/B,GAAG,SAAA,EAAE,QAAQ,cAAA,EAAE,EAAE,QAAc,CAAC;QAEvC,MAAA,GAAG,CAAC,OAAO,+CAAX,GAAG,EAAW;YACZ,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE;gBACT,EAAE,IAAA;gBACF,GAAG,KAAA;aACJ;SACF,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE;YAClC,GAAG,CAAC,cAAc,CAAC,WAAI,GAAG,CAAE,CAAC,CAAC;SAC/B;aAAM,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,EAAE;YAC1D,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAC9B,CAAC,CAAC;QAEH,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,IAAM,UAAU,GAAG,IAAA,uBAAiB,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/D,UAAU,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3C;aAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YACzC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;IACH,CAAC;IAGK,2BAAY,GAAlB,UAAmB,GAAQ,EAAE,IAAS;;;;;;wBAC9B,KAAkC,IAAI,CAAC,KAAK,EAA3C,aAAa,mBAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAA,CAAe;wBAC7B,qBAAM,aAAa,CAAC,QAAQ,EAAE,IAAA,qBAAY,EAAC,IAAI,EAAE;gCACrE,KAAK,EAAE,GAAG;6BACX,CAAC,CAAC,EAAA;;wBAFG,aAAa,GAAG,SAEnB;wBACH,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,EAAE;4BAC5B,sBAAO;yBACR;wBAED,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;;;;KACjC;IAED;;OAEG;IACH,uBAAQ,GAAR,UAAS,MAAc,EAAE,IAAS;QAChC,IAAM,UAAU,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAoB,CAAC;QAChD,IAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAmB,CAAC;QAC9C,IAAI,UAAU,KAAK,iBAAiB,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;IAGD,uBAAQ,GAAR,UAAS,KAAa;QACb,IAAA,IAAI,GAAI,IAAI,CAAC,KAAK,KAAd,CAAe;QAE1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC;gBACZ,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;aACxD,CAAC,CAAC;IACP,CAAC;IAGD,2BAAY,GAAZ;QADA,iBAWC;QATQ,IAAA,IAAI,GAAI,IAAI,CAAC,KAAK,KAAd,CAAe;QAE1B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAA,mBAAS,EAAC,IAAI,EAAE,UAAC,GAAc,EAAE,KAAK;gBACpC,OAAA,GAAG,CAAC,IAAI;oBACN,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,KAAI,CAAC,KAAK,CAAC,SAAS;oBACnC,CAAC,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,CAAC,SAAS;YAFlC,CAEkC,CACnC;YACH,CAAC,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,4BAAa,GAAb;QACQ,IAAA,KAAsD,IAAI,CAAC,KAAK,EAA/D,OAAO,aAAA,EAAE,MAAM,YAAA,EAAc,EAAE,gBAAA,EAAE,gBAAgB,sBAAc,CAAC;QAEvE,OAAO,OAAO,CAAC,CAAC,CAAC,CACf,uCAAK,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,IACjD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CACvB,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,yBAAU,GAAV;QAAA,iBAoIC;QAnIO,IAAA,KAmBF,IAAI,CAAC,KAAK,EAlBA,EAAE,gBAAA,EACD,EAAE,iBAAA,EACf,gBAAgB,sBAAA,EAChB,cAAc,oBAAA,EACd,SAAS,eAAA,EACT,SAAS,eAAA,EACT,MAAM,YAAA,EACN,IAAI,UAAA,EACE,KAAK,UAAA,EACX,QAAQ,cAAA,EACR,aAAa,mBAAA,EACb,MAAM,YAAA,EACN,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,cAAc,oBAAA,EACd,WAAW,iBAAA,EACX,iBAAiB,uBAAA,EACjB,UAAU,gBACE,CAAC;QAEf,IAAM,IAAI,GAAG,QAAQ,IAAI,KAAK,CAAC;QAC/B,IAAM,GAAG,GAAG,IAAA,sCAAwB,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAE3C,2BAA2B;QAC3B,uBAAuB;QACvB,IAAI,SAAS,EAAE;YACb,YAAY,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QAED,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAA8B,EAAE,CAAC;QAE7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,KAAK;gBACvB,IAAM,GAAG,GAAG,IAAA,qBAAY,EACtB,IAAI,EACJ,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,yBAAE,KAAK,OAAA,IAAK,KAAK,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,OAAA,EAAC,CAC3D,CAAC;gBAEF,QAAQ,CAAC,IAAI,OAAb,QAAQ,EACH,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,QAAQ;;oBACxB,OAAA,IAAA,kBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB,8BAAC,UAAG,4BACG,GAAW,IAChB,KAAK,EAAE,IAAA,YAAM,EAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAC7B,QAAQ,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,GAAG,CAAC,EAC9B,GAAG,EAAE,UAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAE,EACjC,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,EACjC,YAAY,EAAE,YAAY,EAC1B,aAAa,EACX,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS;4BAC7B,CAAC,CAAC,GAAG,CAAC,MAAM;4BACZ,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,KAAK,SAAS;gCACxC,CAAC,CAAC,GAAG,CAAC,aAAa;gCACnB,CAAC,CAAC,aAAa,KAGlB,MAAM,CACL,eAAQ,KAAK,cAAI,QAAQ,CAAE,EAC3B,CAAA,MAAC,GAAW,0CAAE,IAAI,EAAC,CAAC,CAAE,GAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EACvD;wBACE,IAAI,EAAE,GAAG;wBACT,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,WAAW,IAAI,QAAQ;wBAC7C,cAAc,EACZ,GAAG,CAAC,UAAU,IAAI,iBAAiB,IAAI,cAAc;qBACxD,CACF,CACG,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;iBAAA,CACT,EACD;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK;;gBAC7B,OAAA,IAAA,kBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CACrB,8BAAC,UAAG,4BACG,GAAW,IAChB,KAAK,EAAE,IAAA,YAAM,EAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAC9B,QAAQ,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,IAAI,CAAC,EAC/B,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,EAC3B,YAAY,EAAE,YAAY,EAC1B,aAAa,EACX,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS;wBAC7B,CAAC,CAAC,GAAG,CAAC,MAAM;wBACZ,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,KAAK,SAAS;4BACxC,CAAC,CAAC,GAAG,CAAC,aAAa;4BACnB,CAAC,CAAC,aAAa,KAGlB,KAAI,CAAC,SAAS;oBACb,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAI,CAAC,KAAK,EAAE,KAAK,CAAC;oBACxC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,KAAI,CAAC,KAAK,EAAE,KAAK,CAAC;wBACnC,CAAC,CAAC,MAAM,CACJ,cAAO,KAAK,CAAE,EACd,CAAA,MAAC,GAAW,0CAAE,IAAI,EAAC,CAAC,CAAE,GAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EACvD;4BACE,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,WAAW,IAAI,QAAQ;4BAC7C,cAAc,EACZ,GAAG,CAAC,UAAU,IAAI,iBAAiB,IAAI,cAAc;yBACxD,CACF,CACD,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;aAAA,CACT,CAAC;SACH;QAED,OAAO,CACL,8BAAC,WAAK,IACJ,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAC7B,UAAU,EAAE,UAAU,IAErB,QAAQ,CACH,CACT,CAAC;IACJ,CAAC;IAED,qBAAM,GAAN;QACE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAlbM,iBAAY,GAAuB;QACxC,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACrB,CAAC;IA6KF;QADC,iBAAQ;;;;mDA6BR;IAGD;QADC,iBAAQ;;;;4CA8BR;IAGD;QADC,iBAAQ;;;;4CAWR;IAcD;QADC,iBAAQ;;;;wCASR;IAGD;QADC,iBAAQ;;;;4CAWR;IAqJH,WAAC;CAAA,AApbD,CAAkC,eAAK,CAAC,SAAS,GAobhD;kBApboB,IAAI;AAwbzB;IAAkC,6CAAI;IAAtC;;IAAwC,CAAC;IAA5B,YAAY;QAHxB,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,MAAM;SACb,CAAC;OACW,YAAY,CAAgB;IAAD,mBAAC;CAAA,AAAzC,CAAkC,IAAI,GAAG;AAA5B,oCAAY",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {Action, Schema, SchemaNode} from '../types';\nimport find from 'lodash/find';\nimport {\n isVisible,\n autobind,\n isDisabled,\n isObject,\n createObject,\n getVariable\n} from '../utils/helper';\nimport findIndex from 'lodash/findIndex';\nimport {Tabs as CTabs, Tab} from '../components/Tabs';\nimport {ClassNamesFn} from '../theme';\nimport {\n BaseSchema,\n SchemaClassName,\n SchemaCollection,\n SchemaIcon\n} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {filter} from '../utils/tpl';\nimport {\n resolveVariable,\n tokenize,\n resolveVariableAndFilter\n} from '../utils/tpl-builtin';\nimport {FormSchemaHorizontal} from './Form/index';\nimport {str2AsyncFunction} from '../utils/api';\nimport {ScopedContext, IScopedContext} from '../Scoped';\n\nexport interface TabSchema extends Omit<BaseSchema, 'type'> {\n /**\n * Tab 标题\n */\n title?: string;\n\n /**\n * 内容\n * @deprecated 用 body 属性\n */\n tab?: SchemaCollection;\n\n /**\n * 内容\n */\n body?: SchemaCollection;\n\n /**\n * 徽标\n */\n badge?: number;\n\n /**\n * 设置以后将跟url的hash对应\n */\n hash?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n iconPosition?: 'left' | 'right';\n\n /**\n * 设置以后内容每次都会重新渲染\n */\n reload?: boolean;\n\n /**\n * 点开时才加载卡片内容\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏就销毁卡片节点。\n */\n unmountOnExit?: boolean;\n\n /**\n * 配置子表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n horizontal?: FormSchemaHorizontal;\n}\n\n/**\n * 选项卡控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/tabs\n */\nexport interface TabsSchema extends BaseSchema {\n type: 'tabs';\n\n /**\n * 选项卡成员。当配置了 source 时,选项卡成员,将会根据目标数据进行重复。\n */\n tabs: Array<TabSchema>;\n\n /**\n * 关联已有数据,选项卡直接根据目标数据重复。\n */\n source?: string;\n\n /**\n * 类名\n */\n tabsClassName?: SchemaClassName;\n\n /**\n * 展示形式\n */\n tabsMode?: '' | 'line' | 'card' | 'radio' | 'vertical' | 'tiled';\n\n /**\n * 内容类名\n */\n contentClassName?: SchemaClassName;\n\n /**\n * 链接外层类名\n */\n linksClassName?: SchemaClassName;\n\n /**\n * 卡片是否只有在点开的时候加载?\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏的时候是否销毁卡片内容\n */\n unmountOnExit?: boolean;\n\n /**\n * 可以在右侧配置点其他功能按钮。\n */\n toolbar?: ActionSchema;\n\n /**\n * 配置子表单项默认的展示方式。\n */\n subFormMode?: 'normal' | 'inline' | 'horizontal';\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n subFormHorizontal?: FormSchemaHorizontal;\n /**\n * 是否支持溢出滚动\n */\n scrollable?: boolean;\n}\n\nexport interface TabsProps\n extends RendererProps,\n Omit<TabsSchema, 'className' | 'contentClassName'> {\n activeKey?: string | number;\n location?: any;\n tabRender?: (tab: TabSchema, props: TabsProps, index: number) => JSX.Element;\n}\n\nexport interface TabsState {\n activeKey: any;\n prevKey: any;\n}\n\nexport type TabsRendererEvent = 'change';\nexport type TabsRendererAction = 'changeActiveKey';\n\nexport default class Tabs extends React.Component<TabsProps, TabsState> {\n static defaultProps: Partial<TabsProps> = {\n className: '',\n mode: '',\n mountOnEnter: true,\n unmountOnExit: false\n };\n\n renderTab?: (tab: TabSchema, props: TabsProps, index: number) => JSX.Element;\n activeKey: any;\n\n constructor(props: TabsProps) {\n super(props);\n\n const location = props.location || window.location;\n const tabs = props.tabs;\n let activeKey: any = 0;\n\n if (typeof props.activeKey !== 'undefined') {\n activeKey = props.activeKey;\n } else if (location && Array.isArray(tabs)) {\n const hash = location.hash.substring(1);\n const tab: TabSchema = find(tabs, tab => tab.hash === hash) as TabSchema;\n\n if (tab) {\n activeKey = tab.hash;\n } else if (props.defaultActiveKey) {\n activeKey = tokenize(props.defaultActiveKey, props.data);\n }\n\n activeKey = activeKey || (tabs[0] && tabs[0].hash) || 0;\n }\n\n this.state = {\n prevKey: undefined,\n activeKey: (this.activeKey = activeKey)\n };\n }\n\n componentDidMount() {\n this.autoJumpToNeighbour(this.activeKey);\n\n let {name, value, onChange, source, tabs, data} = this.props;\n\n // 如果没有配置 name ,说明不需要同步表单值\n if (\n !name ||\n typeof onChange !== 'function' ||\n // 如果关联某个变量数据,则不启用\n source\n ) {\n return;\n }\n\n value = value ?? getVariable(data, name);\n\n // 如果有值,切到对应的 tab\n if (value && Array.isArray(tabs)) {\n const key = this.resolveKeyByValue(value);\n key !== undefined && this.handleSelect(key);\n } else {\n const tab = this.resolveTabByKey(this.activeKey);\n if (tab && value !== ((tab as any).value ?? tab.title)) {\n this.handleChange((tab as any).value ?? tab.title, name);\n }\n }\n }\n\n componentDidUpdate(preProps: TabsProps, prevState: any) {\n const props = this.props;\n\n if (props.location && props.location.hash !== preProps.location.hash) {\n const hash = props.location.hash.substring(1);\n if (!hash) {\n return;\n }\n\n const tab: TabSchema = find(\n props.tabs,\n tab => tab.hash === hash\n ) as TabSchema;\n if (tab && tab.hash && tab.hash !== this.state.activeKey) {\n this.setState({\n activeKey: (this.activeKey = tab.hash),\n prevKey: this.state.activeKey\n });\n }\n } else if (\n Array.isArray(props.tabs) &&\n Array.isArray(preProps.tabs) &&\n JSON.stringify(props.tabs.map(item => item.hash)) !==\n JSON.stringify(preProps.tabs.map(item => item.hash))\n ) {\n let activeKey: any = this.state.activeKey;\n const location = props.location;\n let tab: TabSchema | null = null;\n\n if (location && Array.isArray(props.tabs)) {\n const hash = location.hash.substring(1);\n tab = find(props.tabs, tab => tab.hash === hash) as TabSchema;\n }\n\n if (tab) {\n activeKey = tab.hash;\n } else if (\n !props.tabs ||\n !props.tabs.some((item, index) =>\n item.hash ? item.hash === activeKey : index === activeKey\n )\n ) {\n activeKey = (props.tabs && props.tabs[0] && props.tabs[0].hash) || 0;\n }\n\n this.setState({\n prevKey: undefined,\n activeKey: (this.activeKey = activeKey)\n });\n }\n\n this.autoJumpToNeighbour(this.activeKey);\n\n let {name, value, onChange, source, data} = this.props;\n\n // 如果没有配置 name ,说明不需要同步表单值\n if (\n !name ||\n typeof onChange !== 'function' ||\n // 如果关联某个变量数据,则不启用\n source\n ) {\n return;\n }\n\n let key: any;\n value = value ?? getVariable(data, name);\n const prevValue =\n preProps.value ?? getVariable(preProps.data, preProps.name);\n if (\n value !== prevValue &&\n (key = this.resolveKeyByValue(value)) !== undefined &&\n key !== this.activeKey\n ) {\n this.handleSelect(key);\n } else if (this.activeKey !== prevState.activeKey) {\n const tab = this.resolveTabByKey(this.activeKey);\n if (tab && value !== ((tab as any).value ?? tab.title)) {\n this.handleChange((tab as any).value ?? tab.title, name);\n }\n }\n }\n\n resolveTabByKey(key: any) {\n const tabs = this.props.tabs;\n\n if (!Array.isArray(tabs)) {\n return;\n }\n\n return find(tabs, (tab: TabSchema, index) =>\n tab.hash ? tab.hash === key : index === key\n );\n }\n\n resolveKeyByValue(value: any) {\n const tabs = this.props.tabs;\n\n if (!Array.isArray(tabs)) {\n return;\n }\n\n const tab: TabSchema = find(\n tabs,\n tab => ((tab as any).value ?? tab.title) === value\n ) as TabSchema;\n\n return tab && tab.hash ? tab.hash : tabs.indexOf(tab);\n }\n\n @autobind\n autoJumpToNeighbour(key: any) {\n const {tabs, data} = this.props;\n\n if (!Array.isArray(tabs)) {\n return;\n }\n\n // 当前 tab 可能不可见,所以需要自动切到一个可见的 tab, 向前找,找一圈\n const tabIndex = findIndex(tabs, (tab: TabSchema, index) =>\n tab.hash ? tab.hash === key : index === key\n );\n\n if (tabs[tabIndex] && !isVisible(tabs[tabIndex], this.props.data)) {\n let len = tabs.length;\n let i = tabIndex - 1 + len;\n let tries = len - 1;\n\n while (tries--) {\n const index = i-- % len;\n if (isVisible(tabs[index], data)) {\n let activeKey = tabs[index].hash || index;\n this.setState({\n activeKey: (this.activeKey = activeKey)\n });\n break;\n }\n }\n }\n }\n\n @autobind\n handleSelect(key: any) {\n const {env, onSelect, id} = this.props;\n\n env.tracker?.({\n eventType: 'tabChange',\n eventData: {\n id,\n key\n }\n });\n\n // 是 hash,需要更新到地址栏\n if (typeof key === 'string' && env) {\n env.updateLocation(`#${key}`);\n } else if (typeof this.state.activeKey === 'string' && env) {\n env.updateLocation(`#`);\n }\n\n this.setState({\n activeKey: (this.activeKey = key),\n prevKey: this.state.activeKey\n });\n\n if (typeof onSelect === 'string') {\n const selectFunc = str2AsyncFunction(onSelect, 'key', 'props');\n selectFunc && selectFunc(key, this.props);\n } else if (typeof onSelect === 'function') {\n onSelect(key, this.props);\n }\n }\n\n @autobind\n async handleChange(key: any, name: any) {\n const {dispatchEvent, data, onChange} = this.props;\n const rendererEvent = await dispatchEvent('change', createObject(data, {\n value: key,\n }));\n if (rendererEvent?.prevented) {\n return;\n }\n\n onChange && onChange(key, name);\n }\n\n /**\n * 动作处理\n */\n doAction(action: Action, args: any) {\n const actionType = action?.actionType as string;\n const activeKey = action?.activeKey as number;\n if (actionType === 'changeActiveKey') {\n this.handleSelect(activeKey);\n }\n }\n\n @autobind\n switchTo(index: number) {\n const {tabs} = this.props;\n\n Array.isArray(tabs) &&\n tabs[index] &&\n this.setState({\n activeKey: (this.activeKey = tabs[index].hash || index)\n });\n }\n\n @autobind\n currentIndex(): number {\n const {tabs} = this.props;\n\n return Array.isArray(tabs)\n ? findIndex(tabs, (tab: TabSchema, index) =>\n tab.hash\n ? tab.hash === this.state.activeKey\n : index === this.state.activeKey\n )\n : -1;\n }\n\n renderToolbar() {\n const {toolbar, render, classnames: cx, toolbarClassName} = this.props;\n\n return toolbar ? (\n <div className={cx(`Tabs-toolbar`, toolbarClassName)}>\n {render('toolbar', toolbar)}\n </div>\n ) : null;\n }\n\n renderTabs() {\n const {\n classnames: cx,\n classPrefix: ns,\n contentClassName,\n linksClassName,\n tabRender,\n className,\n render,\n data,\n mode: dMode,\n tabsMode,\n unmountOnExit,\n source,\n formStore,\n formMode,\n formHorizontal,\n subFormMode,\n subFormHorizontal,\n scrollable\n } = this.props;\n\n const mode = tabsMode || dMode;\n const arr = resolveVariableAndFilter(source, data, '| raw');\n let mountOnEnter = this.props.mountOnEnter;\n\n // 如果在form下面,其他tabs默认需要渲染出来\n // 否则在其他 tab 下面的必填项检测不到\n if (formStore) {\n mountOnEnter = false;\n }\n\n let tabs = this.props.tabs;\n if (!tabs) {\n return null;\n }\n\n tabs = Array.isArray(tabs) ? tabs : [tabs];\n let children: Array<JSX.Element | null> = [];\n\n if (Array.isArray(arr)) {\n arr.forEach((value, index) => {\n const ctx = createObject(\n data,\n isObject(value) ? {index, ...value} : {item: value, index}\n );\n\n children.push(\n ...tabs.map((tab, tabIndex) =>\n isVisible(tab, ctx) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, ctx)}\n disabled={isDisabled(tab, ctx)}\n key={`${index * 1000 + tabIndex}`}\n eventKey={index * 1000 + tabIndex}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {render(\n `item/${index}/${tabIndex}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body,\n {\n data: ctx,\n formMode: tab.mode || subFormMode || formMode,\n formHorizontal:\n tab.horizontal || subFormHorizontal || formHorizontal\n }\n )}\n </Tab>\n ) : null\n )\n );\n });\n } else {\n children = tabs.map((tab, index) =>\n isVisible(tab, data) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, data)}\n disabled={isDisabled(tab, data)}\n key={index}\n eventKey={tab.hash || index}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {this.renderTab\n ? this.renderTab(tab, this.props, index)\n : tabRender\n ? tabRender(tab, this.props, index)\n : render(\n `tab/${index}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body,\n {\n formMode: tab.mode || subFormMode || formMode,\n formHorizontal:\n tab.horizontal || subFormHorizontal || formHorizontal\n }\n )}\n </Tab>\n ) : null\n );\n }\n\n return (\n <CTabs\n classPrefix={ns}\n classnames={cx}\n mode={mode}\n className={className}\n contentClassName={contentClassName}\n linksClassName={linksClassName}\n onSelect={this.handleSelect}\n activeKey={this.state.activeKey}\n toolbar={this.renderToolbar()}\n scrollable={scrollable}\n >\n {children}\n </CTabs>\n );\n }\n\n render() {\n return this.renderTabs();\n }\n}\n@Renderer({\n type: 'tabs'\n})\nexport class TabsRenderer extends Tabs {}\n"
|
11
|
+
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {Action, Schema, SchemaNode} from '../types';\nimport find from 'lodash/find';\nimport {\n isVisible,\n autobind,\n isDisabled,\n isObject,\n createObject,\n getVariable,\n isObjectShallowModified\n} from '../utils/helper';\nimport findIndex from 'lodash/findIndex';\nimport {Tabs as CTabs, Tab, TabsMode} from '../components/Tabs';\nimport {ClassNamesFn} from '../theme';\nimport {\n BaseSchema,\n SchemaClassName,\n SchemaCollection,\n SchemaIcon\n} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {filter} from '../utils/tpl';\nimport {\n resolveVariable,\n tokenize,\n resolveVariableAndFilter\n} from '../utils/tpl-builtin';\nimport {FormSchemaHorizontal} from './Form/index';\nimport {str2AsyncFunction} from '../utils/api';\nimport {ScopedContext, IScopedContext} from '../Scoped';\n\nexport interface TabSchema extends Omit<BaseSchema, 'type'> {\n /**\n * Tab 标题\n */\n title?: string;\n\n /**\n * 内容\n * @deprecated 用 body 属性\n */\n tab?: SchemaCollection;\n\n /**\n * 内容\n */\n body?: SchemaCollection;\n\n /**\n * 徽标\n */\n badge?: number;\n\n /**\n * 设置以后将跟url的hash对应\n */\n hash?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n iconPosition?: 'left' | 'right';\n\n /**\n * 设置以后内容每次都会重新渲染\n */\n reload?: boolean;\n\n /**\n * 点开时才加载卡片内容\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏就销毁卡片节点。\n */\n unmountOnExit?: boolean;\n\n /**\n * 配置子表单项默认的展示方式。\n */\n mode?: 'normal' | 'inline' | 'horizontal';\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n horizontal?: FormSchemaHorizontal;\n /**\n * 是否可关闭,优先级高于 tabs 的 closable\n */\n closable?: boolean;\n /**\n * 是否禁用\n */\n disabled?: boolean;\n}\n\n/**\n * 选项卡控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/tabs\n */\nexport interface TabsSchema extends BaseSchema {\n type: 'tabs';\n\n /**\n * 选项卡成员。当配置了 source 时,选项卡成员,将会根据目标数据进行重复。\n */\n tabs: Array<TabSchema>;\n\n /**\n * 关联已有数据,选项卡直接根据目标数据重复。\n */\n source?: string;\n\n /**\n * 类名\n */\n tabsClassName?: SchemaClassName;\n\n /**\n * 展示形式\n */\n tabsMode?: TabsMode;\n\n /**\n * 内容类名\n */\n contentClassName?: SchemaClassName;\n\n /**\n * 链接外层类名\n */\n linksClassName?: SchemaClassName;\n\n /**\n * 卡片是否只有在点开的时候加载?\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏的时候是否销毁卡片内容\n */\n unmountOnExit?: boolean;\n\n /**\n * 可以在右侧配置点其他功能按钮。\n */\n toolbar?: ActionSchema;\n\n /**\n * 配置子表单项默认的展示方式。\n */\n subFormMode?: 'normal' | 'inline' | 'horizontal';\n /**\n * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。\n */\n subFormHorizontal?: FormSchemaHorizontal;\n /**\n * 是否支持新增\n */\n addable?: boolean;\n /**\n * 是否支持删除\n */\n closable?: boolean;\n /**\n * 是否支持拖拽\n */\n draggable?: boolean;\n /**\n * 是否显示提示\n */\n showTip?: boolean;\n /**\n * tooltip 提示的类名\n */\n showTipClassName?: string;\n /**\n * 是否可编辑标签名\n */\n editable?: boolean;\n /**\n * 是否导航支持内容溢出滚动。属性废弃,为了兼容暂且保留\n */\n scrollable?: boolean;\n /**\n * 编辑器模式,侧边的位置\n */\n sidePosition?: 'left' | 'right';\n /**\n * 自定义增加按钮文案\n */\n addBtnText?: string;\n}\n\nexport interface TabsProps\n extends RendererProps,\n Omit<TabsSchema, 'className' | 'contentClassName'> {\n activeKey?: string | number;\n location?: any;\n tabRender?: (tab: TabSchema, props: TabsProps, index: number) => JSX.Element;\n}\n\ninterface TabSource extends TabSchema {\n ctx?: any;\n}\n\nexport interface TabsState {\n activeKey: any;\n prevKey: any;\n localTabs: Array<TabSource>;\n isFromSource: boolean;\n}\n\nexport type TabsRendererEvent = 'change';\nexport type TabsRendererAction = 'changeActiveKey';\n\nexport default class Tabs extends React.Component<TabsProps, TabsState> {\n static defaultProps: Partial<TabsProps> = {\n className: '',\n mode: '',\n mountOnEnter: true,\n unmountOnExit: false\n };\n\n renderTab?: (tab: TabSchema, props: TabsProps, index: number) => JSX.Element;\n activeKey: any;\n newTabDefaultId: number = 3;\n\n constructor(props: TabsProps) {\n super(props);\n\n const location = props.location || window.location;\n const {tabs, source, data} = props;\n let activeKey: any = 0;\n\n if (typeof props.activeKey !== 'undefined') {\n activeKey = props.activeKey;\n } else if (location && Array.isArray(tabs)) {\n const hash = location.hash.substring(1);\n const tab: TabSource = find(tabs, tab => tab.hash === hash) as TabSource;\n\n if (tab) {\n activeKey = tab.hash;\n } else if (props.defaultActiveKey) {\n activeKey = tokenize(props.defaultActiveKey, props.data);\n }\n\n activeKey = activeKey || (tabs[0] && tabs[0].hash) || 0;\n }\n\n const [localTabs, isFromSource] = this.initTabArray(tabs, source, data);\n\n this.state = {\n prevKey: undefined,\n activeKey: (this.activeKey = activeKey),\n localTabs,\n isFromSource\n };\n }\n\n // 初始化 tabs 数组,当从 source 获取数据源时\n @autobind\n initTabArray(tabs: Array<TabSource>, source?: string, data?: any): [Array<TabSource>, boolean] {\n if (!tabs) {\n return [[], false];\n }\n\n const arr = resolveVariableAndFilter(source, data, '| raw');\n if (!Array.isArray(arr)) {\n return [tabs, false];\n }\n\n tabs = Array.isArray(tabs) ? tabs : [tabs];\n\n const sourceTabs: Array<TabSource> = [];\n arr.forEach((value, index) => {\n const ctx = createObject(\n data,\n isObject(value) ? {index, ...value} : {item: value, index}\n );\n\n sourceTabs.push(...tabs.map((tab: TabSource) => ({...tab, ctx})));\n });\n\n return [sourceTabs, true];\n }\n\n componentDidMount() {\n this.autoJumpToNeighbour(this.activeKey);\n\n let {name, value, onChange, source, tabs, data} = this.props;\n\n const localTabs = this.state.localTabs;\n\n // 如果没有配置 name ,说明不需要同步表单值\n if (\n !name ||\n typeof onChange !== 'function' ||\n // 如果关联某个变量数据,则不启用\n source\n ) {\n return;\n }\n\n value = value ?? getVariable(data, name);\n\n // 如果有值,切到对应的 tab\n if (value && Array.isArray(localTabs)) {\n const key = this.resolveKeyByValue(value);\n key !== undefined && this.handleSelect(key);\n } else {\n const tab = this.resolveTabByKey(this.activeKey);\n if (tab && value !== ((tab as any).value ?? tab.title)) {\n this.handleChange((tab as any).value ?? tab.title, name);\n }\n }\n }\n\n componentDidUpdate(preProps: TabsProps, prevState: any) {\n const props = this.props;\n let localTabs = this.state.localTabs;\n\n // 响应外部修改 tabs\n const isTabsModified = isObjectShallowModified({\n tabs: props.tabs,\n source: resolveVariableAndFilter(props.source, props.data, '| raw')\n }, {\n tabs: preProps.tabs,\n source: resolveVariableAndFilter(preProps.source, preProps.data, '| raw')\n }, false);\n\n if (isTabsModified) {\n const [newLocalTabs, isFromSource] = this.initTabArray(props.tabs, props.source, props.data);\n\n this.setState({\n localTabs: newLocalTabs,\n isFromSource\n });\n localTabs = newLocalTabs;\n }\n\n if (props.location && preProps.location && props.location.hash !== preProps.location.hash) {\n const hash = props.location.hash.substring(1);\n if (!hash) {\n return;\n }\n\n const tab: TabSource = find(\n localTabs,\n tab => tab.hash === hash\n ) as TabSource;\n if (tab && tab.hash && tab.hash !== this.state.activeKey) {\n this.setState({\n activeKey: (this.activeKey = tab.hash),\n prevKey: this.state.activeKey\n });\n }\n } else if (\n Array.isArray(localTabs) &&\n Array.isArray(prevState.localTabs) &&\n JSON.stringify(localTabs.map(item => item.hash)) !==\n JSON.stringify(prevState.localTabs.map((item: TabSource) => item.hash))\n ) {\n let activeKey: any = this.state.activeKey;\n const location = props.location;\n let tab: TabSource | null = null;\n\n if (location && Array.isArray(localTabs)) {\n const hash = location.hash.substring(1);\n tab = find(localTabs, tab => tab.hash === hash) as TabSource;\n }\n\n if (tab) {\n activeKey = tab.hash;\n } else if (\n !localTabs ||\n !localTabs.some((item, index) =>\n item.hash ? item.hash === activeKey : index === activeKey\n )\n ) {\n activeKey = (localTabs && localTabs[0] && localTabs[0].hash) || 0;\n }\n\n this.setState({\n prevKey: undefined,\n activeKey: (this.activeKey = activeKey)\n });\n }\n\n this.autoJumpToNeighbour(this.activeKey);\n\n let {name, value, onChange, source, data} = this.props;\n\n // 如果没有配置 name ,说明不需要同步表单值\n if (\n !name ||\n typeof onChange !== 'function' ||\n // 如果关联某个变量数据,则不启用\n source\n ) {\n return;\n }\n\n let key: any;\n value = value ?? getVariable(data, name);\n const prevValue =\n preProps.value ?? getVariable(preProps.data, preProps.name);\n if (\n value !== prevValue &&\n (key = this.resolveKeyByValue(value)) !== undefined &&\n key !== this.activeKey\n ) {\n this.handleSelect(key);\n } else if (this.activeKey !== prevState.activeKey) {\n const tab = this.resolveTabByKey(this.activeKey);\n if (tab && value !== ((tab as any).value ?? tab.title)) {\n this.handleChange((tab as any).value ?? tab.title, name);\n }\n }\n }\n\n resolveTabByKey(key: any) {\n const localTabs = this.state.localTabs;\n\n if (!Array.isArray(localTabs)) {\n return;\n }\n\n return find(localTabs, (tab: TabSource, index) =>\n tab.hash ? tab.hash === key : index === key\n );\n }\n\n resolveKeyByValue(value: any) {\n const localTabs = this.state.localTabs;\n\n if (!Array.isArray(localTabs)) {\n return;\n }\n\n const tab: TabSource = find(\n localTabs,\n tab => ((tab as any).value ?? tab.title) === value\n ) as TabSource;\n\n return tab && tab.hash ? tab.hash : localTabs.indexOf(tab);\n }\n\n @autobind\n autoJumpToNeighbour(key: any) {\n const {tabs, data} = this.props;\n const localTabs = this.state.localTabs;\n\n if (!Array.isArray(localTabs)) {\n return;\n }\n\n // 当前 tab 可能不可见,所以需要自动切到一个可见的 tab, 向前找,找一圈\n const tabIndex = findIndex(localTabs, (tab: TabSource, index) =>\n tab.hash ? tab.hash === key : index === key\n );\n\n if (localTabs[tabIndex] && !isVisible(localTabs[tabIndex], this.props.data)) {\n let len = localTabs.length;\n let i = tabIndex - 1 + len;\n let tries = len - 1;\n\n while (tries--) {\n const index = i-- % len;\n if (isVisible(localTabs[index], data)) {\n let activeKey = localTabs[index].hash || index;\n this.setState({\n activeKey: (this.activeKey = activeKey)\n });\n break;\n }\n }\n }\n }\n\n @autobind\n handleAdd() {\n const localTabs = this.state.localTabs.concat();\n\n localTabs.push({\n title: `新增tab${this.newTabDefaultId++}`,\n body: '新增tab 内容'\n } as TabSource);\n\n this.setState({\n localTabs: localTabs\n }, () => {\n this.switchTo(this.state.localTabs.length - 1);\n });\n }\n\n @autobind\n handleClose(index: number, key: string | number) {\n const originTabs = this.state.localTabs.concat();\n\n originTabs.splice(index, 1);\n\n this.setState({\n localTabs: originTabs\n });\n }\n\n @autobind\n handleEdit(index: number, text: string) {\n const originTabs = this.state.localTabs.concat();\n originTabs[index].title = text;\n\n this.setState({\n localTabs: originTabs\n });\n }\n\n @autobind\n async handleDragChange(e: any){\n const activeTab = this.resolveTabByKey(this.activeKey);\n const originTabs: TabSource[] = this.state.localTabs.concat();\n\n originTabs.splice(e.newIndex, 0, originTabs.splice(e.oldIndex, 1)[0]);\n\n this.setState({\n localTabs: originTabs\n }, () => {\n if (activeTab) {\n const newActiveTabIndex = originTabs.indexOf(activeTab);\n this.switchTo(newActiveTabIndex);\n }\n });\n }\n\n @autobind\n handleSelect(key: any) {\n const {env, onSelect, id} = this.props;\n\n env.tracker?.({\n eventType: 'tabChange',\n eventData: {\n id,\n key\n }\n });\n\n // 是 hash,需要更新到地址栏\n if (typeof key === 'string' && env) {\n env.updateLocation(`#${key}`);\n } else if (typeof this.state.activeKey === 'string' && env) {\n env.updateLocation(`#`);\n }\n\n this.setState({\n activeKey: (this.activeKey = key),\n prevKey: this.state.activeKey\n });\n\n if (typeof onSelect === 'string') {\n const selectFunc = str2AsyncFunction(onSelect, 'key', 'props');\n selectFunc && selectFunc(key, this.props);\n } else if (typeof onSelect === 'function') {\n onSelect(key, this.props);\n }\n }\n\n @autobind\n async handleChange(key: any, name: any) {\n const {dispatchEvent, data, onChange} = this.props;\n const rendererEvent = await dispatchEvent('change', createObject(data, {\n value: key,\n }));\n if (rendererEvent?.prevented) {\n return;\n }\n\n onChange && onChange(key, name);\n }\n\n /**\n * 动作处理\n */\n doAction(action: Action, args: any) {\n const actionType = action?.actionType as string;\n const activeKey = action?.activeKey as number;\n if (actionType === 'changeActiveKey') {\n this.handleSelect(activeKey);\n }\n }\n\n @autobind\n switchTo(index: number) {\n const localTabs = this.state.localTabs;\n\n Array.isArray(localTabs) &&\n localTabs[index] &&\n this.setState({\n activeKey: (this.activeKey = localTabs[index].hash || index)\n });\n }\n\n @autobind\n currentIndex(): number {\n // const {tabs} = this.props;\n const localTabs = this.state.localTabs;\n\n return Array.isArray(localTabs)\n ? findIndex(localTabs, (tab: TabSource, index) =>\n tab.hash\n ? tab.hash === this.state.activeKey\n : index === this.state.activeKey\n )\n : -1;\n }\n\n renderToolbar() {\n const {toolbar, render, classnames: cx, toolbarClassName} = this.props;\n\n return toolbar ? (\n <div className={cx(`Tabs-toolbar`, toolbarClassName)}>\n {render('toolbar', toolbar)}\n </div>\n ) : null;\n }\n\n renderTabs() {\n const {\n classnames: cx,\n classPrefix: ns,\n contentClassName,\n linksClassName,\n tabRender,\n className,\n render,\n data,\n mode: dMode,\n tabsMode,\n unmountOnExit,\n source,\n formStore,\n formMode,\n formHorizontal,\n subFormMode,\n subFormHorizontal,\n addable,\n closable,\n draggable,\n showTip,\n showTipClassName,\n editable,\n sidePosition,\n addBtnText\n } = this.props;\n\n const mode = tabsMode || dMode;\n let mountOnEnter = this.props.mountOnEnter;\n\n // 如果在form下面,其他tabs默认需要渲染出来\n // 否则在其他 tab 下面的必填项检测不到\n if (formStore) {\n mountOnEnter = false;\n }\n\n const {localTabs: tabs, isFromSource} = this.state;\n let children: Array<JSX.Element | null> = [];\n\n // 是否从 source 数据中生成\n if (isFromSource) {\n children = tabs.map((tab: TabSource, index: number) =>\n isVisible(tab, tab.ctx) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, tab.ctx)}\n disabled={isDisabled(tab, tab.ctx)}\n key={index}\n eventKey={index}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {render(\n `item/${index}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body,\n {\n data: tab.ctx,\n formMode: tab.mode || subFormMode || formMode,\n formHorizontal:\n tab.horizontal || subFormHorizontal || formHorizontal\n }\n )}\n </Tab>\n ) : null\n );\n } else {\n children = tabs.map((tab, index) =>\n isVisible(tab, data) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, data)}\n disabled={isDisabled(tab, data)}\n key={index}\n eventKey={tab.hash || index}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {this.renderTab\n ? this.renderTab(tab, this.props, index)\n : tabRender\n ? tabRender(tab, this.props, index)\n : render(\n `tab/${index}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body,\n {\n formMode: tab.mode || subFormMode || formMode,\n formHorizontal:\n tab.horizontal || subFormHorizontal || formHorizontal\n }\n )}\n </Tab>\n ) : null\n );\n }\n\n return (\n <CTabs\n classPrefix={ns}\n classnames={cx}\n mode={mode}\n closable={closable}\n className={className}\n contentClassName={contentClassName}\n linksClassName={linksClassName}\n onSelect={this.handleSelect}\n activeKey={this.state.activeKey}\n toolbar={this.renderToolbar()}\n addable={addable}\n onAdd={this.handleAdd}\n onClose={this.handleClose}\n draggable={draggable}\n onDragChange={this.handleDragChange}\n showTip={showTip}\n showTipClassName={showTipClassName}\n editable={editable}\n onEdit={this.handleEdit}\n sidePosition={sidePosition}\n addBtnText={addBtnText}\n >\n {children}\n </CTabs>\n );\n }\n\n render() {\n return this.renderTabs();\n }\n}\n@Renderer({\n type: 'tabs'\n})\nexport class TabsRenderer extends Tabs {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -0,0 +1,104 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { RendererProps } from '../factory';
|
3
|
+
import { BaseSchema, SchemaCollection } from '../Schema';
|
4
|
+
import type { Trigger } from '../components/TooltipWrapper';
|
5
|
+
export interface TooltipWrapperSchema extends BaseSchema {
|
6
|
+
/**
|
7
|
+
* 文字提示容器
|
8
|
+
*/
|
9
|
+
type: 'tooltip-wrapper';
|
10
|
+
/**
|
11
|
+
* 文字提示标题
|
12
|
+
*/
|
13
|
+
title?: string;
|
14
|
+
/**
|
15
|
+
* 文字提示
|
16
|
+
*/
|
17
|
+
tooltip?: string;
|
18
|
+
/**
|
19
|
+
* 文字提示浮层出现位置,默认为top
|
20
|
+
*/
|
21
|
+
placement?: 'top' | 'right' | 'bottom' | 'left';
|
22
|
+
/**
|
23
|
+
* 浮层触发方式,默认为hover
|
24
|
+
*/
|
25
|
+
trigger?: Trigger | Array<Trigger>;
|
26
|
+
/**
|
27
|
+
* 浮层隐藏延迟时间,单位ms,默认0
|
28
|
+
*/
|
29
|
+
delay?: number;
|
30
|
+
/**
|
31
|
+
* 是否点击非内容区域关闭提示,默认为true
|
32
|
+
*/
|
33
|
+
rootClose?: boolean;
|
34
|
+
/**
|
35
|
+
* 内容区域
|
36
|
+
*/
|
37
|
+
body?: SchemaCollection;
|
38
|
+
/**
|
39
|
+
* 内容区包裹标签
|
40
|
+
*/
|
41
|
+
wrapperComponent: string;
|
42
|
+
/**
|
43
|
+
* 内容区是否内联显示,默认为false
|
44
|
+
*/
|
45
|
+
inline?: boolean;
|
46
|
+
/**
|
47
|
+
* 浮层主题色,默认为light
|
48
|
+
*/
|
49
|
+
tooltipTheme?: 'light' | 'dark';
|
50
|
+
/**
|
51
|
+
* 内容区自定义样式
|
52
|
+
*/
|
53
|
+
style?: {
|
54
|
+
[propName: string]: any;
|
55
|
+
};
|
56
|
+
/**
|
57
|
+
* 自定义提示浮层样式
|
58
|
+
*/
|
59
|
+
tooltipStyle?: {
|
60
|
+
[propName: string]: any;
|
61
|
+
};
|
62
|
+
/**
|
63
|
+
* 内容区CSS类名
|
64
|
+
*/
|
65
|
+
className?: string;
|
66
|
+
/**
|
67
|
+
* 文字提示浮层CSS类名
|
68
|
+
*/
|
69
|
+
tooltipClassName?: string;
|
70
|
+
}
|
71
|
+
export interface TooltipWrapperProps extends RendererProps {
|
72
|
+
/**
|
73
|
+
* 文字提示标题
|
74
|
+
*/
|
75
|
+
title?: string;
|
76
|
+
/**
|
77
|
+
* 文字提示
|
78
|
+
*/
|
79
|
+
tooltip?: string;
|
80
|
+
/**
|
81
|
+
* 文字提示位置
|
82
|
+
*/
|
83
|
+
placement: 'top' | 'right' | 'bottom' | 'left';
|
84
|
+
inline?: boolean;
|
85
|
+
trigger: Trigger | Array<Trigger>;
|
86
|
+
rootClose?: boolean;
|
87
|
+
delay?: number;
|
88
|
+
container?: React.ReactNode;
|
89
|
+
style?: React.CSSProperties;
|
90
|
+
tooltipStyle?: React.CSSProperties;
|
91
|
+
wrapperComponent?: string;
|
92
|
+
tooltipTheme?: 'light' | 'dark';
|
93
|
+
}
|
94
|
+
interface TooltipWrapperState {
|
95
|
+
}
|
96
|
+
export default class TooltipWrapper extends React.Component<TooltipWrapperProps, TooltipWrapperState> {
|
97
|
+
static defaultProps: Pick<TooltipWrapperProps, 'placement' | 'trigger' | 'rootClose' | 'delay' | 'inline' | 'wrap' | 'tooltipTheme'>;
|
98
|
+
constructor(props: TooltipWrapperProps);
|
99
|
+
renderBody(): JSX.Element;
|
100
|
+
render(): JSX.Element;
|
101
|
+
}
|
102
|
+
export declare class TooltipWrapperRenderer extends TooltipWrapper {
|
103
|
+
}
|
104
|
+
export {};
|