@douyinfe/semi-ui 2.27.0 → 2.27.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/semi.css +72 -0
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +2055 -1986
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/lib/cjs/_portal/index.js +2 -2
- package/lib/cjs/_utils/index.js +3 -1
- package/lib/cjs/anchor/index.js +9 -9
- package/lib/cjs/anchor/link.js +8 -8
- package/lib/cjs/autoComplete/index.js +8 -4
- package/lib/cjs/autoComplete/option.js +7 -7
- package/lib/cjs/avatar/avatarGroup.js +7 -7
- package/lib/cjs/avatar/index.js +12 -12
- package/lib/cjs/badge/index.js +8 -8
- package/lib/cjs/banner/index.js +12 -12
- package/lib/cjs/breadcrumb/index.js +12 -12
- package/lib/cjs/breadcrumb/item.js +8 -8
- package/lib/cjs/button/Button.js +9 -9
- package/lib/cjs/button/buttonGroup.js +5 -5
- package/lib/cjs/button/splitButtonGroup.js +1 -1
- package/lib/cjs/calendar/dayCalendar.js +13 -13
- package/lib/cjs/calendar/dayCol.js +17 -17
- package/lib/cjs/calendar/monthCalendar.js +38 -38
- package/lib/cjs/calendar/rangeCalendar.js +27 -27
- package/lib/cjs/calendar/timeCol.js +6 -6
- package/lib/cjs/calendar/weekCalendar.js +27 -27
- package/lib/cjs/card/cardGroup.js +2 -2
- package/lib/cjs/card/index.js +16 -16
- package/lib/cjs/card/meta.js +5 -5
- package/lib/cjs/carousel/CarouselArrow.js +6 -6
- package/lib/cjs/carousel/CarouselIndicator.js +6 -6
- package/lib/cjs/carousel/index.js +12 -12
- package/lib/cjs/cascader/index.js +36 -36
- package/lib/cjs/cascader/item.js +25 -25
- package/lib/cjs/checkbox/checkbox.js +14 -14
- package/lib/cjs/checkbox/checkboxGroup.js +4 -4
- package/lib/cjs/checkbox/checkboxInner.js +6 -6
- package/lib/cjs/collapse/item.js +9 -9
- package/lib/cjs/collapsible/index.js +3 -3
- package/lib/cjs/configProvider/index.js +1 -1
- package/lib/cjs/datePicker/dateInput.d.ts +1 -1
- package/lib/cjs/datePicker/dateInput.js +16 -16
- package/lib/cjs/datePicker/datePicker.d.ts +1 -1
- package/lib/cjs/datePicker/datePicker.js +9 -9
- package/lib/cjs/datePicker/footer.js +1 -1
- package/lib/cjs/datePicker/index.js +1 -1
- package/lib/cjs/datePicker/month.js +2 -2
- package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
- package/lib/cjs/datePicker/monthsGrid.js +27 -27
- package/lib/cjs/datePicker/navigation.js +1 -1
- package/lib/cjs/datePicker/quickControl.js +14 -14
- package/lib/cjs/datePicker/yearAndMonth.js +4 -4
- package/lib/cjs/descriptions/index.js +3 -3
- package/lib/cjs/descriptions/item.js +5 -5
- package/lib/cjs/divider/index.js +7 -7
- package/lib/cjs/dropdown/dropdownDivider.js +1 -1
- package/lib/cjs/dropdown/dropdownItem.d.ts +4 -0
- package/lib/cjs/dropdown/dropdownItem.js +12 -8
- package/lib/cjs/dropdown/dropdownMenu.js +1 -1
- package/lib/cjs/dropdown/dropdownTitle.js +2 -2
- package/lib/cjs/dropdown/index.js +3 -3
- package/lib/cjs/empty/index.js +7 -7
- package/lib/cjs/form/arrayField.js +1 -1
- package/lib/cjs/form/baseForm.js +2 -2
- package/lib/cjs/form/errorMessage.js +1 -1
- package/lib/cjs/form/group.js +2 -2
- package/lib/cjs/form/hoc/withField.js +67 -47
- package/lib/cjs/form/label.js +9 -9
- package/lib/cjs/form/slot.js +5 -5
- package/lib/cjs/grid/col.js +11 -11
- package/lib/cjs/grid/row.js +4 -4
- package/lib/cjs/highlight/index.js +1 -1
- package/lib/cjs/iconButton/index.js +5 -5
- package/lib/cjs/image/image.js +10 -10
- package/lib/cjs/image/preview.js +3 -3
- package/lib/cjs/image/previewFooter.js +12 -12
- package/lib/cjs/image/previewHeader.js +3 -3
- package/lib/cjs/image/previewImage.js +7 -7
- package/lib/cjs/image/previewInner.js +7 -7
- package/lib/cjs/input/index.js +38 -38
- package/lib/cjs/input/inputGroup.js +7 -7
- package/lib/cjs/input/textarea.js +14 -14
- package/lib/cjs/inputNumber/index.js +11 -11
- package/lib/cjs/layout/Sider.js +3 -3
- package/lib/cjs/layout/index.js +2 -2
- package/lib/cjs/list/index.js +11 -11
- package/lib/cjs/list/item.js +6 -6
- package/lib/cjs/modal/ConfirmModal.js +7 -7
- package/lib/cjs/modal/Modal.js +4 -4
- package/lib/cjs/modal/ModalContent.js +24 -24
- package/lib/cjs/modal/useModal/index.js +1 -1
- package/lib/cjs/navigation/CollapseButton.js +1 -1
- package/lib/cjs/navigation/Footer.js +2 -2
- package/lib/cjs/navigation/Header.js +5 -5
- package/lib/cjs/navigation/Item.d.ts +3 -0
- package/lib/cjs/navigation/Item.js +35 -21
- package/lib/cjs/navigation/SubNav.d.ts +4 -0
- package/lib/cjs/navigation/SubNav.js +58 -34
- package/lib/cjs/navigation/index.js +8 -8
- package/lib/cjs/notification/index.js +3 -3
- package/lib/cjs/notification/notice.js +12 -12
- package/lib/cjs/overflowList/index.js +6 -6
- package/lib/cjs/pagination/index.js +26 -26
- package/lib/cjs/popconfirm/index.js +9 -9
- package/lib/cjs/popover/index.js +2 -2
- package/lib/cjs/progress/index.js +14 -14
- package/lib/cjs/radio/radio.js +22 -22
- package/lib/cjs/radio/radioGroup.js +5 -5
- package/lib/cjs/radio/radioInner.js +7 -7
- package/lib/cjs/rating/index.js +5 -5
- package/lib/cjs/rating/item.js +11 -11
- package/lib/cjs/scrollList/index.js +5 -5
- package/lib/cjs/scrollList/scrollItem.js +13 -13
- package/lib/cjs/select/index.js +57 -57
- package/lib/cjs/select/option.js +7 -7
- package/lib/cjs/sideSheet/SideSheetContent.js +10 -10
- package/lib/cjs/sideSheet/index.js +7 -7
- package/lib/cjs/skeleton/index.js +1 -1
- package/lib/cjs/skeleton/item.js +4 -4
- package/lib/cjs/slider/index.js +28 -28
- package/lib/cjs/space/index.js +12 -12
- package/lib/cjs/spin/icon.js +2 -2
- package/lib/cjs/spin/index.js +6 -6
- package/lib/cjs/steps/basicStep.js +14 -14
- package/lib/cjs/steps/basicSteps.js +6 -6
- package/lib/cjs/steps/fillStep.js +10 -10
- package/lib/cjs/steps/fillSteps.js +4 -4
- package/lib/cjs/steps/navStep.js +5 -5
- package/lib/cjs/steps/navSteps.js +2 -2
- package/lib/cjs/table/Body/BaseRow.js +5 -5
- package/lib/cjs/table/Body/ExpandedRow.js +3 -3
- package/lib/cjs/table/Body/SectionRow.js +1 -1
- package/lib/cjs/table/Body/index.js +8 -8
- package/lib/cjs/table/ColGroup.js +2 -2
- package/lib/cjs/table/ColumnFilter.js +3 -3
- package/lib/cjs/table/ColumnSelection.js +2 -2
- package/lib/cjs/table/ColumnSorter.js +7 -7
- package/lib/cjs/table/CustomExpandIcon.js +2 -2
- package/lib/cjs/table/HeadTable.js +3 -3
- package/lib/cjs/table/Table.js +20 -20
- package/lib/cjs/table/TableCell.js +8 -8
- package/lib/cjs/table/TableHeader.js +1 -1
- package/lib/cjs/table/TableHeaderRow.js +8 -8
- package/lib/cjs/table/TablePagination.js +3 -3
- package/lib/cjs/tabs/TabBar.js +18 -18
- package/lib/cjs/tabs/TabPane.js +3 -3
- package/lib/cjs/tabs/index.js +2 -2
- package/lib/cjs/tag/group.js +5 -5
- package/lib/cjs/tag/index.js +13 -13
- package/lib/cjs/tagInput/index.js +33 -33
- package/lib/cjs/timePicker/Combobox.js +4 -4
- package/lib/cjs/timePicker/TimeInput.js +4 -4
- package/lib/cjs/timePicker/TimePicker.js +8 -8
- package/lib/cjs/timeline/index.js +8 -8
- package/lib/cjs/timeline/item.js +7 -7
- package/lib/cjs/toast/index.js +5 -5
- package/lib/cjs/toast/toast.js +9 -9
- package/lib/cjs/tooltip/index.js +7 -7
- package/lib/cjs/transfer/index.js +31 -31
- package/lib/cjs/tree/autoSizer.js +1 -1
- package/lib/cjs/tree/index.js +6 -6
- package/lib/cjs/tree/nodeList.js +1 -1
- package/lib/cjs/tree/treeNode.js +26 -26
- package/lib/cjs/treeSelect/index.js +41 -41
- package/lib/cjs/typography/base.js +14 -14
- package/lib/cjs/typography/copyable.js +3 -3
- package/lib/cjs/typography/paragraph.js +1 -1
- package/lib/cjs/typography/title.js +1 -1
- package/lib/cjs/typography/util.js +1 -1
- package/lib/cjs/upload/fileCard.js +32 -32
- package/lib/cjs/upload/index.js +37 -37
- package/lib/es/_portal/index.js +2 -2
- package/lib/es/_utils/index.js +3 -1
- package/lib/es/anchor/index.js +9 -9
- package/lib/es/anchor/link.js +8 -8
- package/lib/es/autoComplete/index.js +8 -4
- package/lib/es/autoComplete/option.js +7 -7
- package/lib/es/avatar/avatarGroup.js +7 -7
- package/lib/es/avatar/index.js +12 -12
- package/lib/es/badge/index.js +8 -8
- package/lib/es/banner/index.js +12 -12
- package/lib/es/breadcrumb/index.js +12 -12
- package/lib/es/breadcrumb/item.js +8 -8
- package/lib/es/button/Button.js +9 -9
- package/lib/es/button/buttonGroup.js +5 -5
- package/lib/es/button/splitButtonGroup.js +1 -1
- package/lib/es/calendar/dayCalendar.js +13 -13
- package/lib/es/calendar/dayCol.js +17 -17
- package/lib/es/calendar/monthCalendar.js +38 -38
- package/lib/es/calendar/rangeCalendar.js +27 -27
- package/lib/es/calendar/timeCol.js +6 -6
- package/lib/es/calendar/weekCalendar.js +27 -27
- package/lib/es/card/cardGroup.js +2 -2
- package/lib/es/card/index.js +16 -16
- package/lib/es/card/meta.js +5 -5
- package/lib/es/carousel/CarouselArrow.js +6 -6
- package/lib/es/carousel/CarouselIndicator.js +6 -6
- package/lib/es/carousel/index.js +12 -12
- package/lib/es/cascader/index.js +36 -36
- package/lib/es/cascader/item.js +25 -25
- package/lib/es/checkbox/checkbox.js +14 -14
- package/lib/es/checkbox/checkboxGroup.js +4 -4
- package/lib/es/checkbox/checkboxInner.js +6 -6
- package/lib/es/collapse/item.js +9 -9
- package/lib/es/collapsible/index.js +3 -3
- package/lib/es/configProvider/index.js +1 -1
- package/lib/es/datePicker/dateInput.d.ts +1 -1
- package/lib/es/datePicker/dateInput.js +16 -16
- package/lib/es/datePicker/datePicker.d.ts +1 -1
- package/lib/es/datePicker/datePicker.js +9 -9
- package/lib/es/datePicker/footer.js +1 -1
- package/lib/es/datePicker/index.js +1 -1
- package/lib/es/datePicker/month.js +2 -2
- package/lib/es/datePicker/monthsGrid.d.ts +1 -1
- package/lib/es/datePicker/monthsGrid.js +27 -27
- package/lib/es/datePicker/navigation.js +1 -1
- package/lib/es/datePicker/quickControl.js +14 -14
- package/lib/es/datePicker/yearAndMonth.js +4 -4
- package/lib/es/descriptions/index.js +3 -3
- package/lib/es/descriptions/item.js +5 -5
- package/lib/es/divider/index.js +7 -7
- package/lib/es/dropdown/dropdownDivider.js +1 -1
- package/lib/es/dropdown/dropdownItem.d.ts +4 -0
- package/lib/es/dropdown/dropdownItem.js +12 -8
- package/lib/es/dropdown/dropdownMenu.js +1 -1
- package/lib/es/dropdown/dropdownTitle.js +2 -2
- package/lib/es/dropdown/index.js +3 -3
- package/lib/es/empty/index.js +7 -7
- package/lib/es/form/arrayField.js +1 -1
- package/lib/es/form/baseForm.js +2 -2
- package/lib/es/form/errorMessage.js +1 -1
- package/lib/es/form/group.js +2 -2
- package/lib/es/form/hoc/withField.js +67 -47
- package/lib/es/form/label.js +9 -9
- package/lib/es/form/slot.js +5 -5
- package/lib/es/grid/col.js +11 -11
- package/lib/es/grid/row.js +4 -4
- package/lib/es/highlight/index.js +1 -1
- package/lib/es/iconButton/index.js +5 -5
- package/lib/es/image/image.js +10 -10
- package/lib/es/image/preview.js +3 -3
- package/lib/es/image/previewFooter.js +12 -12
- package/lib/es/image/previewHeader.js +3 -3
- package/lib/es/image/previewImage.js +7 -7
- package/lib/es/image/previewInner.js +7 -7
- package/lib/es/input/index.js +38 -38
- package/lib/es/input/inputGroup.js +7 -7
- package/lib/es/input/textarea.js +14 -14
- package/lib/es/inputNumber/index.js +11 -11
- package/lib/es/layout/Sider.js +3 -3
- package/lib/es/layout/index.js +2 -2
- package/lib/es/list/index.js +11 -11
- package/lib/es/list/item.js +6 -6
- package/lib/es/modal/ConfirmModal.js +7 -7
- package/lib/es/modal/Modal.js +4 -4
- package/lib/es/modal/ModalContent.js +24 -24
- package/lib/es/modal/useModal/index.js +1 -1
- package/lib/es/navigation/CollapseButton.js +1 -1
- package/lib/es/navigation/Footer.js +2 -2
- package/lib/es/navigation/Header.js +5 -5
- package/lib/es/navigation/Item.d.ts +3 -0
- package/lib/es/navigation/Item.js +35 -21
- package/lib/es/navigation/SubNav.d.ts +4 -0
- package/lib/es/navigation/SubNav.js +58 -34
- package/lib/es/navigation/index.js +8 -8
- package/lib/es/notification/index.js +3 -3
- package/lib/es/notification/notice.js +12 -12
- package/lib/es/overflowList/index.js +6 -6
- package/lib/es/pagination/index.js +26 -26
- package/lib/es/popconfirm/index.js +9 -9
- package/lib/es/popover/index.js +2 -2
- package/lib/es/progress/index.js +14 -14
- package/lib/es/radio/radio.js +22 -22
- package/lib/es/radio/radioGroup.js +5 -5
- package/lib/es/radio/radioInner.js +7 -7
- package/lib/es/rating/index.js +5 -5
- package/lib/es/rating/item.js +11 -11
- package/lib/es/scrollList/index.js +5 -5
- package/lib/es/scrollList/scrollItem.js +13 -13
- package/lib/es/select/index.js +57 -57
- package/lib/es/select/option.js +7 -7
- package/lib/es/sideSheet/SideSheetContent.js +10 -10
- package/lib/es/sideSheet/index.js +7 -7
- package/lib/es/skeleton/index.js +1 -1
- package/lib/es/skeleton/item.js +4 -4
- package/lib/es/slider/index.js +28 -28
- package/lib/es/space/index.js +12 -12
- package/lib/es/spin/icon.js +2 -2
- package/lib/es/spin/index.js +6 -6
- package/lib/es/steps/basicStep.js +14 -14
- package/lib/es/steps/basicSteps.js +6 -6
- package/lib/es/steps/fillStep.js +10 -10
- package/lib/es/steps/fillSteps.js +4 -4
- package/lib/es/steps/navStep.js +5 -5
- package/lib/es/steps/navSteps.js +2 -2
- package/lib/es/table/Body/BaseRow.js +5 -5
- package/lib/es/table/Body/ExpandedRow.js +3 -3
- package/lib/es/table/Body/SectionRow.js +1 -1
- package/lib/es/table/Body/index.js +8 -8
- package/lib/es/table/ColGroup.js +2 -2
- package/lib/es/table/ColumnFilter.js +3 -3
- package/lib/es/table/ColumnSelection.js +2 -2
- package/lib/es/table/ColumnSorter.js +7 -7
- package/lib/es/table/CustomExpandIcon.js +2 -2
- package/lib/es/table/HeadTable.js +3 -3
- package/lib/es/table/Table.js +20 -20
- package/lib/es/table/TableCell.js +8 -8
- package/lib/es/table/TableHeader.js +1 -1
- package/lib/es/table/TableHeaderRow.js +8 -8
- package/lib/es/table/TablePagination.js +3 -3
- package/lib/es/tabs/TabBar.js +18 -18
- package/lib/es/tabs/TabPane.js +3 -3
- package/lib/es/tabs/index.js +2 -2
- package/lib/es/tag/group.js +5 -5
- package/lib/es/tag/index.js +13 -13
- package/lib/es/tagInput/index.js +33 -33
- package/lib/es/timePicker/Combobox.js +4 -4
- package/lib/es/timePicker/TimeInput.js +4 -4
- package/lib/es/timePicker/TimePicker.js +8 -8
- package/lib/es/timeline/index.js +8 -8
- package/lib/es/timeline/item.js +7 -7
- package/lib/es/toast/index.js +5 -5
- package/lib/es/toast/toast.js +9 -9
- package/lib/es/tooltip/index.js +7 -7
- package/lib/es/transfer/index.js +31 -31
- package/lib/es/tree/autoSizer.js +1 -1
- package/lib/es/tree/index.js +6 -6
- package/lib/es/tree/nodeList.js +1 -1
- package/lib/es/tree/treeNode.js +26 -26
- package/lib/es/treeSelect/index.js +41 -41
- package/lib/es/typography/base.js +14 -14
- package/lib/es/typography/copyable.js +3 -3
- package/lib/es/typography/paragraph.js +1 -1
- package/lib/es/typography/title.js +1 -1
- package/lib/es/typography/util.js +1 -1
- package/lib/es/upload/fileCard.js +32 -32
- package/lib/es/upload/index.js +37 -37
- package/package.json +8 -8
|
@@ -69,20 +69,20 @@ const ConfirmModal = props => {
|
|
|
69
69
|
setVisible(false);
|
|
70
70
|
}
|
|
71
71
|
}, [onCancel]);
|
|
72
|
-
const confirmCls =
|
|
72
|
+
const confirmCls = `${cssClasses.DIALOG}-confirm`;
|
|
73
73
|
const wrapperCls = cls(className, confirmCls, {
|
|
74
|
-
[
|
|
74
|
+
[`${confirmCls}-rtl`]: direction === 'rtl'
|
|
75
75
|
});
|
|
76
|
-
const typeCls = cls(
|
|
76
|
+
const typeCls = cls(`${cssClasses.DIALOG}-${type}`);
|
|
77
77
|
const iconNode = isSemiIcon(icon) ? /*#__PURE__*/React.cloneElement(icon, {
|
|
78
|
-
className:
|
|
78
|
+
className: `${confirmCls}-icon ${typeCls}-icon`,
|
|
79
79
|
size: 'extra-large'
|
|
80
80
|
}) : icon;
|
|
81
81
|
const titleNode = title == null ? null : /*#__PURE__*/React.createElement("span", {
|
|
82
|
-
className:
|
|
82
|
+
className: `${confirmCls}-title-text`
|
|
83
83
|
}, title);
|
|
84
|
-
const contentCls = cls(
|
|
85
|
-
[
|
|
84
|
+
const contentCls = cls(`${confirmCls}-content`, {
|
|
85
|
+
[`${confirmCls}-content-withIcon`]: props.icon
|
|
86
86
|
});
|
|
87
87
|
return /*#__PURE__*/React.createElement(Modal, Object.assign({
|
|
88
88
|
className: wrapperCls,
|
package/lib/es/modal/Modal.js
CHANGED
|
@@ -125,7 +125,7 @@ class Modal extends BaseComponent {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
const classList = cls(className, {
|
|
128
|
-
[
|
|
128
|
+
[`${cssClasses.DIALOG}-displayNone`]: keepDOM && this.state.displayNone
|
|
129
129
|
});
|
|
130
130
|
const shouldRender = this.props.visible || this.props.keepDOM && (!this.props.lazyRender || this._haveRendered) || this.props.motion && !this.state.displayNone
|
|
131
131
|
/* When there is animation, we use displayNone to judge whether animation is ended and judge whether to unmount content */
|
|
@@ -141,7 +141,7 @@ class Modal extends BaseComponent {
|
|
|
141
141
|
}, /*#__PURE__*/React.createElement(CSSAnimation, {
|
|
142
142
|
motion: this.props.motion,
|
|
143
143
|
animationState: visible ? 'enter' : 'leave',
|
|
144
|
-
startClassName: visible ?
|
|
144
|
+
startClassName: visible ? `${cssClasses.DIALOG}-content-animate-show` : `${cssClasses.DIALOG}-content-animate-hide`,
|
|
145
145
|
onAnimationEnd: () => {
|
|
146
146
|
this.updateState();
|
|
147
147
|
}
|
|
@@ -153,7 +153,7 @@ class Modal extends BaseComponent {
|
|
|
153
153
|
return /*#__PURE__*/React.createElement(CSSAnimation, {
|
|
154
154
|
motion: this.props.motion,
|
|
155
155
|
animationState: visible ? 'enter' : 'leave',
|
|
156
|
-
startClassName: visible ?
|
|
156
|
+
startClassName: visible ? `${cssClasses.DIALOG}-mask-animate-show` : `${cssClasses.DIALOG}-mask-animate-hide`,
|
|
157
157
|
onAnimationEnd: () => {
|
|
158
158
|
this.updateState();
|
|
159
159
|
}
|
|
@@ -202,7 +202,7 @@ class Modal extends BaseComponent {
|
|
|
202
202
|
|
|
203
203
|
if (!getPopupContainer && this.bodyOverflow !== 'hidden') {
|
|
204
204
|
document.body.style.overflow = 'hidden';
|
|
205
|
-
document.body.style.width =
|
|
205
|
+
document.body.style.width = `calc(${this.originBodyWidth || '100%'} - ${this.scrollBarWidth}px)`;
|
|
206
206
|
}
|
|
207
207
|
},
|
|
208
208
|
enabledBodyScroll: () => {
|
|
@@ -64,7 +64,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
64
64
|
} = props;
|
|
65
65
|
|
|
66
66
|
if (mask) {
|
|
67
|
-
const className = cls(
|
|
67
|
+
const className = cls(`${cssClasses.DIALOG}-mask`, {// [`${cssClasses.DIALOG}-mask-hidden`]: !props.visible,
|
|
68
68
|
});
|
|
69
69
|
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
70
70
|
key: "mask"
|
|
@@ -90,7 +90,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
90
90
|
});
|
|
91
91
|
closer = /*#__PURE__*/React.createElement(Button, {
|
|
92
92
|
"aria-label": "close",
|
|
93
|
-
className:
|
|
93
|
+
className: `${cssClasses.DIALOG}-close`,
|
|
94
94
|
key: "close-btn",
|
|
95
95
|
onClick: this.close,
|
|
96
96
|
type: "tertiary",
|
|
@@ -108,7 +108,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
108
108
|
icon
|
|
109
109
|
} = this.props;
|
|
110
110
|
return icon ? /*#__PURE__*/React.createElement("span", {
|
|
111
|
-
className:
|
|
111
|
+
className: `${cssClasses.DIALOG}-icon-wrapper`,
|
|
112
112
|
"x-semi-prop": "icon"
|
|
113
113
|
}, icon) : null;
|
|
114
114
|
};
|
|
@@ -124,11 +124,11 @@ export default class ModalContent extends BaseComponent {
|
|
|
124
124
|
const closer = this.renderCloseBtn();
|
|
125
125
|
const icon = this.renderIcon();
|
|
126
126
|
return title === null || title === undefined ? null : /*#__PURE__*/React.createElement("div", {
|
|
127
|
-
className:
|
|
127
|
+
className: `${cssClasses.DIALOG}-header`
|
|
128
128
|
}, icon, /*#__PURE__*/React.createElement(Typography.Title, {
|
|
129
129
|
heading: 5,
|
|
130
|
-
className:
|
|
131
|
-
id:
|
|
130
|
+
className: `${cssClasses.DIALOG}-title`,
|
|
131
|
+
id: `${cssClasses.DIALOG}-title`,
|
|
132
132
|
"x-semi-prop": "title"
|
|
133
133
|
}, title), closer);
|
|
134
134
|
};
|
|
@@ -139,19 +139,19 @@ export default class ModalContent extends BaseComponent {
|
|
|
139
139
|
children,
|
|
140
140
|
title
|
|
141
141
|
} = this.props;
|
|
142
|
-
const bodyCls = cls(
|
|
143
|
-
[
|
|
142
|
+
const bodyCls = cls(`${cssClasses.DIALOG}-body`, {
|
|
143
|
+
[`${cssClasses.DIALOG}-withIcon`]: this.props.icon
|
|
144
144
|
});
|
|
145
145
|
const closer = this.renderCloseBtn();
|
|
146
146
|
const icon = this.renderIcon();
|
|
147
147
|
const hasHeader = title !== null && title !== undefined || 'header' in this.props;
|
|
148
148
|
return hasHeader ? /*#__PURE__*/React.createElement("div", {
|
|
149
149
|
className: bodyCls,
|
|
150
|
-
id:
|
|
150
|
+
id: `${cssClasses.DIALOG}-body`,
|
|
151
151
|
style: bodyStyle,
|
|
152
152
|
"x-semi-prop": "children"
|
|
153
153
|
}, children) : /*#__PURE__*/React.createElement("div", {
|
|
154
|
-
className:
|
|
154
|
+
className: `${cssClasses.DIALOG}-body-wrapper`
|
|
155
155
|
}, icon, /*#__PURE__*/React.createElement("div", {
|
|
156
156
|
className: bodyCls,
|
|
157
157
|
style: bodyStyle,
|
|
@@ -163,9 +163,9 @@ export default class ModalContent extends BaseComponent {
|
|
|
163
163
|
const props = __rest(this.props, []);
|
|
164
164
|
|
|
165
165
|
const style = {};
|
|
166
|
-
const digCls = cls(
|
|
167
|
-
[
|
|
168
|
-
[
|
|
166
|
+
const digCls = cls(`${cssClasses.DIALOG}`, {
|
|
167
|
+
[`${cssClasses.DIALOG}-centered`]: props.centered,
|
|
168
|
+
[`${cssClasses.DIALOG}-${props.size}`]: props.size
|
|
169
169
|
});
|
|
170
170
|
|
|
171
171
|
if (props.width) {
|
|
@@ -185,7 +185,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
185
185
|
const body = this.renderBody();
|
|
186
186
|
const header = this.renderHeader();
|
|
187
187
|
const footer = props.footer ? /*#__PURE__*/React.createElement("div", {
|
|
188
|
-
className:
|
|
188
|
+
className: `${cssClasses.DIALOG}-footer`,
|
|
189
189
|
"x-semi-prop": "footer"
|
|
190
190
|
}, props.footer) : null;
|
|
191
191
|
const dialogElement =
|
|
@@ -201,11 +201,11 @@ export default class ModalContent extends BaseComponent {
|
|
|
201
201
|
role: "dialog",
|
|
202
202
|
ref: this.modalDialogRef,
|
|
203
203
|
"aria-modal": "true",
|
|
204
|
-
"aria-labelledby":
|
|
205
|
-
"aria-describedby":
|
|
204
|
+
"aria-labelledby": `${cssClasses.DIALOG}-title`,
|
|
205
|
+
"aria-describedby": `${cssClasses.DIALOG}-body`,
|
|
206
206
|
onAnimationEnd: props.onAnimationEnd,
|
|
207
|
-
className: cls([
|
|
208
|
-
[
|
|
207
|
+
className: cls([`${cssClasses.DIALOG}-content`, props.contentClassName, {
|
|
208
|
+
[`${cssClasses.DIALOG}-content-fullScreen`]: props.isFullScreen
|
|
209
209
|
}])
|
|
210
210
|
}, header, body, footer)); // return props.visible ? dialogElement : null;
|
|
211
211
|
|
|
@@ -217,7 +217,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
217
217
|
prevFocusElement: FocusTrapHandle.getActiveElement()
|
|
218
218
|
};
|
|
219
219
|
this.foundation = new ModalContentFoundation(this.adapter);
|
|
220
|
-
this.dialogId =
|
|
220
|
+
this.dialogId = `dialog-${uuid++}`;
|
|
221
221
|
this.modalDialogRef = /*#__PURE__*/React.createRef();
|
|
222
222
|
}
|
|
223
223
|
|
|
@@ -328,9 +328,9 @@ export default class ModalContent extends BaseComponent {
|
|
|
328
328
|
direction
|
|
329
329
|
} = this.context;
|
|
330
330
|
const classList = cls(className, {
|
|
331
|
-
[
|
|
332
|
-
[
|
|
333
|
-
[
|
|
331
|
+
[`${cssClasses.DIALOG}-popup`]: getPopupContainer && !maskFixed,
|
|
332
|
+
[`${cssClasses.DIALOG}-fixed`]: maskFixed,
|
|
333
|
+
[`${cssClasses.DIALOG}-rtl`]: direction === 'rtl'
|
|
334
334
|
});
|
|
335
335
|
const containerContext = getContainerContext();
|
|
336
336
|
const elem = /*#__PURE__*/React.createElement("div", {
|
|
@@ -338,8 +338,8 @@ export default class ModalContent extends BaseComponent {
|
|
|
338
338
|
}, this.getMaskElement(), /*#__PURE__*/React.createElement("div", Object.assign({
|
|
339
339
|
role: "none",
|
|
340
340
|
className: cls({
|
|
341
|
-
[
|
|
342
|
-
[
|
|
341
|
+
[`${cssClasses.DIALOG}-wrap`]: true,
|
|
342
|
+
[`${cssClasses.DIALOG}-wrap-center`]: this.props.centered
|
|
343
343
|
}),
|
|
344
344
|
onClick: maskClosable ? this.onMaskClick : null,
|
|
345
345
|
onMouseUp: maskClosable ? this.onMaskMouseUp : null
|
|
@@ -31,7 +31,7 @@ export default function CollapseButton(_ref) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
return /*#__PURE__*/React.createElement("div", {
|
|
34
|
-
className:
|
|
34
|
+
className: `${prefixCls}-collapse-btn`
|
|
35
35
|
}, isCollapsed ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
36
36
|
content: finalCollapseText,
|
|
37
37
|
position: "right"
|
|
@@ -53,8 +53,8 @@ export default class NavFooter extends PureComponent {
|
|
|
53
53
|
children = this.renderCollapseButton();
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const wrapCls = cls(className,
|
|
57
|
-
[
|
|
56
|
+
const wrapCls = cls(className, `${cssClasses.PREFIX}-footer`, {
|
|
57
|
+
[`${cssClasses.PREFIX}-footer-collapsed`]: isCollapsed
|
|
58
58
|
});
|
|
59
59
|
return /*#__PURE__*/React.createElement("div", {
|
|
60
60
|
className: wrapCls,
|
|
@@ -28,18 +28,18 @@ export default class NavHeader extends PureComponent {
|
|
|
28
28
|
const {
|
|
29
29
|
isCollapsed
|
|
30
30
|
} = this.context;
|
|
31
|
-
const wrapCls = cls(className,
|
|
32
|
-
[
|
|
31
|
+
const wrapCls = cls(className, `${cssClasses.PREFIX}-header`, {
|
|
32
|
+
[`${cssClasses.PREFIX}-header-collapsed`]: isCollapsed
|
|
33
33
|
});
|
|
34
34
|
let wrappedChildren = /*#__PURE__*/React.createElement(React.Fragment, null, logo ? /*#__PURE__*/React.createElement("i", {
|
|
35
|
-
className:
|
|
35
|
+
className: `${cssClasses.PREFIX}-header-logo`
|
|
36
36
|
}, this.renderLogo(logo)) : null, !isNullOrUndefined(text) && !isCollapsed ? /*#__PURE__*/React.createElement("span", {
|
|
37
|
-
className:
|
|
37
|
+
className: `${cssClasses.PREFIX}-header-text`
|
|
38
38
|
}, text) : null, children);
|
|
39
39
|
|
|
40
40
|
if (typeof link === 'string') {
|
|
41
41
|
wrappedChildren = /*#__PURE__*/React.createElement("a", Object.assign({
|
|
42
|
-
className:
|
|
42
|
+
className: `${prefixCls}-header-link`,
|
|
43
43
|
href: link
|
|
44
44
|
}, linkOptions), wrappedChildren);
|
|
45
45
|
}
|
|
@@ -19,6 +19,9 @@ export interface NavItemProps extends ItemProps, BaseProps {
|
|
|
19
19
|
onClick?(clickItems: SelectedData): void;
|
|
20
20
|
onMouseEnter?: React.MouseEventHandler<HTMLLIElement>;
|
|
21
21
|
onMouseLeave?: React.MouseEventHandler<HTMLLIElement>;
|
|
22
|
+
selected?: boolean;
|
|
23
|
+
mode?: string;
|
|
24
|
+
isInSubNav?: boolean;
|
|
22
25
|
}
|
|
23
26
|
export interface SelectedData extends SelectedItemProps<NavItemProps> {
|
|
24
27
|
text?: React.ReactNode;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _isUndefined from "lodash/isUndefined";
|
|
1
2
|
import _times from "lodash/times";
|
|
2
3
|
import _noop from "lodash/noop";
|
|
3
4
|
|
|
@@ -15,7 +16,7 @@ import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/navigation
|
|
|
15
16
|
import Tooltip from '../tooltip';
|
|
16
17
|
import NavContext from './nav-context';
|
|
17
18
|
import Dropdown from '../dropdown';
|
|
18
|
-
const clsPrefix =
|
|
19
|
+
const clsPrefix = `${cssClasses.PREFIX}-item`;
|
|
19
20
|
export default class NavItem extends BaseComponent {
|
|
20
21
|
constructor(props) {
|
|
21
22
|
super(props);
|
|
@@ -107,11 +108,15 @@ export default class NavItem extends BaseComponent {
|
|
|
107
108
|
let isToggleIcon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
108
109
|
let key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
109
110
|
|
|
111
|
+
var _a;
|
|
112
|
+
|
|
113
|
+
const mode = (_a = this.props.mode) !== null && _a !== void 0 ? _a : this.context.mode;
|
|
114
|
+
|
|
110
115
|
if (this.props.isSubNav) {
|
|
111
116
|
return null;
|
|
112
117
|
}
|
|
113
118
|
|
|
114
|
-
if (!icon &&
|
|
119
|
+
if (!icon && mode === strings.MODE_HORIZONTAL) {
|
|
115
120
|
return null;
|
|
116
121
|
}
|
|
117
122
|
|
|
@@ -121,9 +126,9 @@ export default class NavItem extends BaseComponent {
|
|
|
121
126
|
iconSize = 'default';
|
|
122
127
|
}
|
|
123
128
|
|
|
124
|
-
const className = cls(
|
|
125
|
-
[
|
|
126
|
-
[
|
|
129
|
+
const className = cls(`${clsPrefix}-icon`, {
|
|
130
|
+
[`${clsPrefix}-icon-toggle-${this.context.toggleIconPosition}`]: isToggleIcon,
|
|
131
|
+
[`${clsPrefix}-icon-info`]: !isToggleIcon
|
|
127
132
|
});
|
|
128
133
|
return /*#__PURE__*/React.createElement("i", {
|
|
129
134
|
className: className,
|
|
@@ -149,16 +154,21 @@ export default class NavItem extends BaseComponent {
|
|
|
149
154
|
linkOptions,
|
|
150
155
|
disabled,
|
|
151
156
|
level = 0,
|
|
152
|
-
tabIndex
|
|
157
|
+
tabIndex,
|
|
158
|
+
selected: selectedInProps,
|
|
159
|
+
isInSubNav: isInSubNavInProps,
|
|
160
|
+
mode: modeInProps
|
|
153
161
|
} = this.props;
|
|
154
162
|
const {
|
|
155
|
-
mode,
|
|
156
|
-
isInSubNav,
|
|
163
|
+
mode: modeInContext,
|
|
164
|
+
isInSubNav: isInSubNavInContext,
|
|
157
165
|
prefixCls,
|
|
158
166
|
limitIndent
|
|
159
167
|
} = this.context;
|
|
160
168
|
const isCollapsed = this.adapter.getIsCollapsed();
|
|
161
|
-
const selected = this.adapter.getSelected();
|
|
169
|
+
const selected = selectedInProps !== null && selectedInProps !== void 0 ? selectedInProps : this.adapter.getSelected();
|
|
170
|
+
const isInSubNav = isInSubNavInProps !== null && isInSubNavInProps !== void 0 ? isInSubNavInProps : isInSubNavInContext;
|
|
171
|
+
const mode = modeInProps !== null && modeInProps !== void 0 ? modeInProps : modeInContext;
|
|
162
172
|
let itemChildren = null;
|
|
163
173
|
|
|
164
174
|
if (!isNullOrUndefined(children)) {
|
|
@@ -172,13 +182,13 @@ export default class NavItem extends BaseComponent {
|
|
|
172
182
|
}
|
|
173
183
|
|
|
174
184
|
itemChildren = /*#__PURE__*/React.createElement(React.Fragment, null, placeholderIcons, this.context.toggleIconPosition === strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIcon, strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'), icon || indent || isInSubNav ? this.renderIcon(icon, strings.ICON_POS_LEFT, false, 'key-position-left') : null, !isNullOrUndefined(text) ? /*#__PURE__*/React.createElement("span", {
|
|
175
|
-
className:
|
|
185
|
+
className: `${cssClasses.PREFIX}-item-text`
|
|
176
186
|
}, text) : '', this.context.toggleIconPosition === strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIcon, strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'));
|
|
177
187
|
}
|
|
178
188
|
|
|
179
189
|
if (typeof link === 'string') {
|
|
180
190
|
itemChildren = /*#__PURE__*/React.createElement("a", Object.assign({
|
|
181
|
-
className:
|
|
191
|
+
className: `${prefixCls}-item-link`,
|
|
182
192
|
href: link,
|
|
183
193
|
tabIndex: -1
|
|
184
194
|
}, linkOptions), itemChildren);
|
|
@@ -189,10 +199,10 @@ export default class NavItem extends BaseComponent {
|
|
|
189
199
|
if (isInSubNav && (isCollapsed || mode === strings.MODE_HORIZONTAL)) {
|
|
190
200
|
const popoverItemCls = cls({
|
|
191
201
|
[clsPrefix]: true,
|
|
192
|
-
[
|
|
193
|
-
[
|
|
194
|
-
[
|
|
195
|
-
[
|
|
202
|
+
[`${clsPrefix}-sub`]: isSubNav,
|
|
203
|
+
[`${clsPrefix}-selected`]: selected,
|
|
204
|
+
[`${clsPrefix}-collapsed`]: isCollapsed,
|
|
205
|
+
[`${clsPrefix}-disabled`]: disabled
|
|
196
206
|
});
|
|
197
207
|
itemDom = /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
198
208
|
selected: selected,
|
|
@@ -207,13 +217,17 @@ export default class NavItem extends BaseComponent {
|
|
|
207
217
|
}, itemChildren);
|
|
208
218
|
} else {
|
|
209
219
|
// Items are divided into normal and sub-wrap
|
|
210
|
-
const
|
|
220
|
+
const isFirstLayer = !_isUndefined(isInSubNavInProps) && !isInSubNavInProps || _isUndefined(isInSubNavInProps) && _isUndefined(isInSubNavInContext);
|
|
221
|
+
|
|
222
|
+
const popoverItemCls = cls(`${className || `${clsPrefix}-normal`}`, {
|
|
211
223
|
[clsPrefix]: true,
|
|
212
|
-
[
|
|
213
|
-
[
|
|
214
|
-
[
|
|
215
|
-
[
|
|
216
|
-
[
|
|
224
|
+
[`${clsPrefix}-sub`]: isSubNav,
|
|
225
|
+
[`${clsPrefix}-selected`]: selected && !isSubNav,
|
|
226
|
+
[`${clsPrefix}-collapsed`]: isCollapsed,
|
|
227
|
+
[`${clsPrefix}-disabled`]: disabled,
|
|
228
|
+
[`${clsPrefix}-has-link`]: typeof link === 'string',
|
|
229
|
+
[`${cssClasses.PREFIX}-first-layer`]: isFirstLayer,
|
|
230
|
+
[`${clsPrefix}-horizontal`]: modeInProps === strings.MODE_HORIZONTAL
|
|
217
231
|
});
|
|
218
232
|
const ariaProps = {
|
|
219
233
|
'aria-disabled': disabled
|
|
@@ -22,6 +22,8 @@ export interface SubNavProps extends BaseProps {
|
|
|
22
22
|
onMouseLeave?: React.MouseEventHandler<HTMLLIElement>;
|
|
23
23
|
text?: React.ReactNode;
|
|
24
24
|
toggleIcon?: ToggleIcon;
|
|
25
|
+
active?: boolean;
|
|
26
|
+
mode?: string;
|
|
25
27
|
}
|
|
26
28
|
export interface SubNavState {
|
|
27
29
|
isHovered: boolean;
|
|
@@ -70,6 +72,7 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
|
|
|
70
72
|
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
|
71
73
|
disabled: PropTypes.Requireable<boolean>;
|
|
72
74
|
level: PropTypes.Requireable<number>;
|
|
75
|
+
active: PropTypes.Requireable<boolean>;
|
|
73
76
|
};
|
|
74
77
|
static defaultProps: {
|
|
75
78
|
level: number;
|
|
@@ -82,6 +85,7 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
|
|
|
82
85
|
closed: JSX.Element;
|
|
83
86
|
};
|
|
84
87
|
disabled: boolean;
|
|
88
|
+
active: boolean;
|
|
85
89
|
};
|
|
86
90
|
titleRef: React.RefObject<HTMLDivElement>;
|
|
87
91
|
itemRef: React.RefObject<HTMLLIElement>;
|
|
@@ -113,23 +113,30 @@ export default class SubNav extends BaseComponent {
|
|
|
113
113
|
renderIcon(icon, pos, withTransition) {
|
|
114
114
|
let isToggleIcon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
115
115
|
let key = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
|
116
|
+
|
|
117
|
+
var _a;
|
|
118
|
+
|
|
116
119
|
const {
|
|
117
|
-
prefixCls
|
|
120
|
+
prefixCls = cssClasses.PREFIX
|
|
118
121
|
} = this.context;
|
|
122
|
+
const {
|
|
123
|
+
isOpen: isOpenInProps
|
|
124
|
+
} = this.props;
|
|
119
125
|
let iconSize = 'large';
|
|
120
126
|
|
|
121
127
|
if (pos === strings.ICON_POS_RIGHT) {
|
|
122
128
|
iconSize = 'default';
|
|
123
129
|
}
|
|
124
130
|
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
[
|
|
131
|
+
const isOpen = isOpenInProps ? isOpenInProps : this.adapter.getIsOpen();
|
|
132
|
+
const className = cls(`${prefixCls}-item-icon`, {
|
|
133
|
+
[`${prefixCls}-item-icon-toggle-${(_a = this.context.toggleIconPosition) !== null && _a !== void 0 ? _a : 'right'}`]: isToggleIcon,
|
|
134
|
+
[`${prefixCls}-item-icon-info`]: !isToggleIcon,
|
|
135
|
+
[`${prefixCls}-icon-rotate-${isOpen ? "180" : "0"}-no-transition`]: !withTransition && isToggleIcon
|
|
128
136
|
});
|
|
129
|
-
const isOpen = this.adapter.getIsOpen();
|
|
130
137
|
const iconElem = /*#__PURE__*/React.isValidElement(icon) ? withTransition ? /*#__PURE__*/React.createElement(CSSAnimation, {
|
|
131
138
|
animationState: isOpen ? "enter" : "leave",
|
|
132
|
-
startClassName:
|
|
139
|
+
startClassName: `${prefixCls}-icon-rotate-${isOpen ? "180" : "0"}`
|
|
133
140
|
}, _ref => {
|
|
134
141
|
let {
|
|
135
142
|
animationClassName
|
|
@@ -156,20 +163,25 @@ export default class SubNav extends BaseComponent {
|
|
|
156
163
|
itemKey,
|
|
157
164
|
indent,
|
|
158
165
|
disabled,
|
|
159
|
-
level
|
|
166
|
+
level,
|
|
167
|
+
active,
|
|
168
|
+
mode: modeInProps
|
|
160
169
|
} = this.props;
|
|
161
170
|
const {
|
|
162
|
-
mode,
|
|
171
|
+
mode: modeInContext,
|
|
163
172
|
isInSubNav,
|
|
164
173
|
isCollapsed,
|
|
165
|
-
prefixCls,
|
|
174
|
+
prefixCls = cssClasses.PREFIX,
|
|
166
175
|
subNavMotion,
|
|
167
176
|
limitIndent
|
|
168
177
|
} = this.context;
|
|
178
|
+
const mode = modeInProps !== null && modeInProps !== void 0 ? modeInProps : modeInContext;
|
|
169
179
|
const isOpen = this.adapter.getIsOpen();
|
|
170
|
-
const titleCls = cls(
|
|
171
|
-
[
|
|
172
|
-
[
|
|
180
|
+
const titleCls = cls(`${prefixCls}-sub-title`, {
|
|
181
|
+
[`${prefixCls}-sub-title-selected`]: active ? active : this.adapter.getIsSelected(itemKey),
|
|
182
|
+
[`${prefixCls}-sub-title-disabled`]: disabled,
|
|
183
|
+
[`${prefixCls}-first-layer`]: !isInSubNav,
|
|
184
|
+
[`${prefixCls}-sub-title-horizontal`]: mode === strings.MODE_HORIZONTAL
|
|
173
185
|
});
|
|
174
186
|
let withTransition = false;
|
|
175
187
|
let toggleIconType = '';
|
|
@@ -210,6 +222,7 @@ export default class SubNav extends BaseComponent {
|
|
|
210
222
|
}
|
|
211
223
|
|
|
212
224
|
const isIconChevronRightShow = !isCollapsed && isInSubNav && mode === strings.MODE_HORIZONTAL || isCollapsed && isInSubNav;
|
|
225
|
+
const toggleIconPositionLeft = this.context.toggleIconPosition === strings.TOGGLE_ICON_LEFT;
|
|
213
226
|
const titleDiv = /*#__PURE__*/React.createElement("div", {
|
|
214
227
|
role: "menuitem",
|
|
215
228
|
// to avoid nested horizontal navigation be focused
|
|
@@ -220,29 +233,32 @@ export default class SubNav extends BaseComponent {
|
|
|
220
233
|
onKeyPress: this.handleKeyPress,
|
|
221
234
|
"aria-expanded": isOpen ? 'true' : 'false'
|
|
222
235
|
}, /*#__PURE__*/React.createElement("div", {
|
|
223
|
-
className:
|
|
224
|
-
}, placeholderIcons,
|
|
225
|
-
className:
|
|
226
|
-
}, text),
|
|
236
|
+
className: `${prefixCls}-item-inner`
|
|
237
|
+
}, placeholderIcons, toggleIconPositionLeft && this.renderIcon(toggleIconType, strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== strings.MODE_HORIZONTAL ? this.renderIcon(icon, strings.ICON_POS_LEFT, false, false, 'key-inSubNav-position-left') : null, /*#__PURE__*/React.createElement("span", {
|
|
238
|
+
className: `${prefixCls}-item-text`
|
|
239
|
+
}, text), !toggleIconPositionLeft && this.renderIcon(toggleIconType, strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-right')));
|
|
227
240
|
return titleDiv;
|
|
228
241
|
}
|
|
229
242
|
|
|
230
243
|
renderSubUl() {
|
|
231
244
|
const {
|
|
232
245
|
children,
|
|
233
|
-
maxHeight
|
|
246
|
+
maxHeight,
|
|
247
|
+
isOpen: isOpenInProps,
|
|
248
|
+
mode: modeInProps
|
|
234
249
|
} = this.props;
|
|
235
250
|
const {
|
|
236
251
|
isCollapsed,
|
|
237
|
-
mode,
|
|
252
|
+
mode: modeInContext,
|
|
238
253
|
subNavMotion,
|
|
239
|
-
prefixCls
|
|
254
|
+
prefixCls = cssClasses.PREFIX
|
|
240
255
|
} = this.context;
|
|
241
|
-
const isOpen = this.adapter.getIsOpen();
|
|
256
|
+
const isOpen = isOpenInProps ? isOpenInProps : this.adapter.getIsOpen();
|
|
257
|
+
const mode = modeInProps !== null && modeInProps !== void 0 ? modeInProps : modeInContext;
|
|
242
258
|
const isHorizontal = mode === strings.MODE_HORIZONTAL;
|
|
243
|
-
const subNavCls = cls(
|
|
244
|
-
[
|
|
245
|
-
[
|
|
259
|
+
const subNavCls = cls(`${prefixCls}-sub`, {
|
|
260
|
+
[`${prefixCls}-sub-open`]: isOpen,
|
|
261
|
+
[`${prefixCls}-sub-popover`]: isCollapsed || isHorizontal
|
|
246
262
|
});
|
|
247
263
|
const ulWithMotion = /*#__PURE__*/React.createElement(Collapsible, {
|
|
248
264
|
motion: subNavMotion,
|
|
@@ -264,21 +280,23 @@ export default class SubNav extends BaseComponent {
|
|
|
264
280
|
const {
|
|
265
281
|
children,
|
|
266
282
|
dropdownStyle,
|
|
267
|
-
disabled
|
|
283
|
+
disabled,
|
|
284
|
+
mode: modeInProps
|
|
268
285
|
} = this.props;
|
|
269
286
|
const {
|
|
270
|
-
mode,
|
|
287
|
+
mode: modeInContext,
|
|
271
288
|
isInSubNav,
|
|
272
289
|
isCollapsed,
|
|
273
290
|
subNavCloseDelay,
|
|
274
291
|
subNavOpenDelay,
|
|
275
|
-
prefixCls,
|
|
292
|
+
prefixCls = cssClasses.PREFIX,
|
|
276
293
|
getPopupContainer
|
|
277
294
|
} = this.context;
|
|
295
|
+
const mode = modeInProps !== null && modeInProps !== void 0 ? modeInProps : modeInContext;
|
|
278
296
|
const isOpen = this.adapter.getIsOpen();
|
|
279
297
|
const openKeysIsControlled = this.adapter.getOpenKeysIsControlled();
|
|
280
298
|
const subNavCls = cls({
|
|
281
|
-
[
|
|
299
|
+
[`${prefixCls}-popover`]: isCollapsed
|
|
282
300
|
});
|
|
283
301
|
const dropdownProps = {
|
|
284
302
|
trigger: 'hover',
|
|
@@ -316,13 +334,15 @@ export default class SubNav extends BaseComponent {
|
|
|
316
334
|
onMouseEnter,
|
|
317
335
|
onMouseLeave,
|
|
318
336
|
disabled,
|
|
319
|
-
text
|
|
337
|
+
text,
|
|
338
|
+
mode: modeInProps
|
|
320
339
|
} = this.props;
|
|
321
340
|
const {
|
|
322
|
-
mode,
|
|
341
|
+
mode: modeInContext,
|
|
323
342
|
isCollapsed,
|
|
324
|
-
prefixCls
|
|
343
|
+
prefixCls = cssClasses.PREFIX
|
|
325
344
|
} = this.context;
|
|
345
|
+
const mode = modeInProps !== null && modeInProps !== void 0 ? modeInProps : modeInContext;
|
|
326
346
|
let titleDiv = this.renderTitleDiv();
|
|
327
347
|
const subUl = this.renderSubUl(); // When mode=horizontal, it is displayed in Dropdown
|
|
328
348
|
|
|
@@ -336,13 +356,15 @@ export default class SubNav extends BaseComponent {
|
|
|
336
356
|
itemKey: itemKey,
|
|
337
357
|
forwardRef: this.setItemRef,
|
|
338
358
|
isCollapsed: isCollapsed,
|
|
339
|
-
className:
|
|
359
|
+
className: `${prefixCls}-sub-wrap`,
|
|
340
360
|
onMouseEnter: onMouseEnter,
|
|
341
361
|
onMouseLeave: onMouseLeave,
|
|
342
362
|
disabled: disabled,
|
|
343
|
-
text: text
|
|
363
|
+
text: text,
|
|
364
|
+
mode: mode
|
|
344
365
|
}, /*#__PURE__*/React.createElement(NavContext.Provider, {
|
|
345
366
|
value: Object.assign(Object.assign({}, this.context), {
|
|
367
|
+
mode: mode,
|
|
346
368
|
isInSubNav: true
|
|
347
369
|
})
|
|
348
370
|
}, titleDiv, subUl));
|
|
@@ -403,7 +425,8 @@ SubNav.propTypes = {
|
|
|
403
425
|
onMouseLeave: PropTypes.func,
|
|
404
426
|
// Is it disabled
|
|
405
427
|
disabled: PropTypes.bool,
|
|
406
|
-
level: PropTypes.number
|
|
428
|
+
level: PropTypes.number,
|
|
429
|
+
active: PropTypes.bool
|
|
407
430
|
};
|
|
408
431
|
SubNav.defaultProps = {
|
|
409
432
|
level: 0,
|
|
@@ -419,5 +442,6 @@ SubNav.defaultProps = {
|
|
|
419
442
|
"aria-hidden": true
|
|
420
443
|
})
|
|
421
444
|
},
|
|
422
|
-
disabled: false
|
|
445
|
+
disabled: false,
|
|
446
|
+
active: false
|
|
423
447
|
};
|