@zohodesk/components 1.0.0-temp-255 → 1.0.0-temp-256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -3
- package/assets/Appearance/dark/mode/Component_DarkMode.module.css +4 -4
- package/assets/Appearance/dark/themes/blue/blue_componentsCTA_DarkModifyCategory.module.css +14 -0
- package/assets/Appearance/dark/themes/green/green_componentsCTA_DarkModifyCategory.module.css +14 -0
- package/assets/Appearance/dark/themes/orange/orange_componentsCTA_DarkModifyCategory.module.css +14 -0
- package/assets/Appearance/dark/themes/red/red_componentsCTA_DarkModifyCategory.module.css +14 -0
- package/assets/Appearance/dark/themes/yellow/yellow_componentsCTA_DarkModifyCategory.module.css +14 -0
- package/assets/Appearance/light/mode/Component_LightMode.module.css +6 -6
- package/assets/Appearance/light/themes/blue/blue_componentsCTA_LightModifyCategory.module.css +14 -0
- package/assets/Appearance/light/themes/green/green_componentsCTA_LightModifyCategory.module.css +14 -0
- package/assets/Appearance/light/themes/orange/orange_componentsCTA_LightModifyCategory.module.css +14 -0
- package/assets/Appearance/light/themes/red/red_componentsCTA_LightModifyCategory.module.css +14 -0
- package/assets/Appearance/light/themes/yellow/yellow_componentsCTA_LightModifyCategory.module.css +14 -0
- package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +3 -3
- package/assets/Appearance/pureDark/themes/blue/blue_componentsCTA_PureDarkModifyCategory.module.css +14 -0
- package/assets/Appearance/pureDark/themes/green/green_componentsCTA_PureDarkModifyCategory.module.css +14 -0
- package/assets/Appearance/pureDark/themes/orange/orange_componentsCTA_PureDarkModifyCategory.module.css +14 -0
- package/assets/Appearance/pureDark/themes/red/red_componentsCTA_PureDarkModifyCategory.module.css +14 -0
- package/assets/Appearance/pureDark/themes/yellow/yellow_componentsCTA_PureDarkModifyCategory.module.css +14 -0
- package/cbt.config.js +12 -3
- package/es/AppContainer/AppContainer.js +2 -0
- package/es/DateTime/DateWidget.js +32 -6
- package/es/Provider/LibraryContext.js +5 -1
- package/es/Select/Select.js +3 -1
- package/es/Tab/Tab.js +62 -11
- package/es/Tab/Tab.module.css +25 -0
- package/es/Tab/Tabs.js +37 -6
- package/es/Tab/Tabs.module.css +48 -3
- package/es/Tab/__tests__/Tab.spec.js +112 -0
- package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +316 -0
- package/es/Tab/props/defaultProps.js +3 -2
- package/es/Tab/props/propTypes.js +12 -3
- package/es/Tab/utils/tabConfigs.js +5 -0
- package/es/utils/datetime/common.js +10 -3
- package/lib/AppContainer/AppContainer.js +4 -0
- package/lib/DateTime/DateWidget.js +33 -6
- package/lib/Provider/LibraryContext.js +5 -1
- package/lib/Select/Select.js +3 -1
- package/lib/Tab/Tab.js +62 -9
- package/lib/Tab/Tab.module.css +25 -0
- package/lib/Tab/Tabs.js +34 -3
- package/lib/Tab/Tabs.module.css +48 -3
- package/lib/Tab/__tests__/Tab.spec.js +115 -0
- package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +316 -0
- package/lib/Tab/props/defaultProps.js +3 -2
- package/lib/Tab/props/propTypes.js +14 -3
- package/lib/Tab/utils/tabConfigs.js +7 -1
- package/lib/utils/datetime/common.js +10 -2
- package/package.json +11 -10
package/lib/Tab/Tab.module.css
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
width: 100% ;
|
|
12
12
|
max-width: 100% ;
|
|
13
13
|
}
|
|
14
|
+
.textContainer {
|
|
15
|
+
gap: var(--zd_size4) ;
|
|
16
|
+
}
|
|
14
17
|
.textContainer,
|
|
15
18
|
.tabText {
|
|
16
19
|
max-width: inherit ;
|
|
@@ -91,3 +94,25 @@
|
|
|
91
94
|
composes: delta;
|
|
92
95
|
color: var(--zdt_tab_alpha_active_text);
|
|
93
96
|
}
|
|
97
|
+
|
|
98
|
+
.tabDefault {
|
|
99
|
+
transition: all var(--zd_transition2);
|
|
100
|
+
padding-inline: 0 ;
|
|
101
|
+
padding-block: 0 ;
|
|
102
|
+
font-size: var(--zd_font_size11) ;
|
|
103
|
+
line-height: 3;
|
|
104
|
+
margin-inline-end: var(--zd_size34) ;
|
|
105
|
+
color: var(--zd-text-secondary);
|
|
106
|
+
}
|
|
107
|
+
.defaultHover:hover { color: var(--zd-text-primary); }
|
|
108
|
+
.defaultActive {
|
|
109
|
+
transition: all var(--zd_transition2);
|
|
110
|
+
padding-inline: 0 ;
|
|
111
|
+
padding-block: 0 ;
|
|
112
|
+
font-size: var(--zd_font_size11) ;
|
|
113
|
+
line-height: 3;
|
|
114
|
+
margin-inline-end: var(--zd_size34) ;
|
|
115
|
+
color: var(--zd-text-primary);
|
|
116
|
+
border-bottom: 1px solid var(--zdt_tab_alpha_active_border);
|
|
117
|
+
}
|
|
118
|
+
.defaultActive_border { border-color: var(--zdt_tab_alpha_active_border); }
|
package/lib/Tab/Tabs.js
CHANGED
|
@@ -25,6 +25,8 @@ var _ResizeObserver = _interopRequireDefault(require("../Responsive/ResizeObserv
|
|
|
25
25
|
|
|
26
26
|
var _ListItem = _interopRequireDefault(require("../ListItem/ListItem"));
|
|
27
27
|
|
|
28
|
+
var _ListItemWithIcon = _interopRequireDefault(require("../ListItem/ListItemWithIcon"));
|
|
29
|
+
|
|
28
30
|
var _icons = require("@zohodesk/icons");
|
|
29
31
|
|
|
30
32
|
var _TabsModule = _interopRequireDefault(require("./Tabs.module.css"));
|
|
@@ -598,6 +600,10 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
|
|
|
598
600
|
moreTabs: moreTabs
|
|
599
601
|
});
|
|
600
602
|
var hasSearch = moreTabs.length > 4;
|
|
603
|
+
var isDefaultType = type === 'default';
|
|
604
|
+
var defaultMoreClass = isDefaultType ? _TabsModule["default"].defaultMoreButton : '';
|
|
605
|
+
var defaultMoreActiveClass = isDefaultType ? _TabsModule["default"].defaultMoreButtonActive : '';
|
|
606
|
+
var effectiveMenuItemClass = isDefaultType ? "".concat(_TabsModule["default"].defaultMenuListItem).concat(menuItemClass ? " ".concat(menuItemClass) : '') : menuItemClass;
|
|
601
607
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(mainTabs, function (child) {
|
|
602
608
|
if (!child) {
|
|
603
609
|
return null;
|
|
@@ -631,7 +637,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
|
|
|
631
637
|
className: "".concat(_TabsModule["default"].menu, " "),
|
|
632
638
|
dataSelectorId: "".concat(dataSelectorId, "_moreIcon")
|
|
633
639
|
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, _extends({
|
|
634
|
-
className: "".concat(_semanticButtonModule["default"].buttonReset, " ").concat(moreButtonClass, " ").concat(isPopupOpen ? moreButtonActiveClass : ''),
|
|
640
|
+
className: "".concat(_semanticButtonModule["default"].buttonReset, " ").concat(defaultMoreClass, " ").concat(moreButtonClass, " ").concat(isPopupOpen ? "".concat(defaultMoreActiveClass, " ").concat(moreButtonActiveClass) : ''),
|
|
635
641
|
align: "both",
|
|
636
642
|
onClick: this.togglePopup,
|
|
637
643
|
dataId: "moreTabs",
|
|
@@ -699,8 +705,33 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
|
|
|
699
705
|
isLink = data.isLink,
|
|
700
706
|
href = data.href,
|
|
701
707
|
children = data.children,
|
|
702
|
-
dataId = data.dataId
|
|
708
|
+
dataId = data.dataId,
|
|
709
|
+
variant = data.variant,
|
|
710
|
+
iconName = data.iconName,
|
|
711
|
+
iconSize = data.iconSize;
|
|
703
712
|
var value = text ? text : showTitleInMoreOptions ? title : null;
|
|
713
|
+
var showIconInDropdown = variant !== _tabConfigs.VARIANT.TEXT && iconName;
|
|
714
|
+
|
|
715
|
+
if (showIconInDropdown) {
|
|
716
|
+
return /*#__PURE__*/_react["default"].createElement(_ListItemWithIcon["default"], _extends({
|
|
717
|
+
key: id,
|
|
718
|
+
value: value,
|
|
719
|
+
onClick: _this8.moreTabSelect,
|
|
720
|
+
id: id,
|
|
721
|
+
title: title || text,
|
|
722
|
+
isLink: isLink,
|
|
723
|
+
href: href,
|
|
724
|
+
autoHover: true,
|
|
725
|
+
iconName: iconName,
|
|
726
|
+
iconSize: iconSize,
|
|
727
|
+
customClass: {
|
|
728
|
+
customListItem: effectiveMenuItemClass
|
|
729
|
+
},
|
|
730
|
+
target: "self",
|
|
731
|
+
dataId: "".concat(dataId, "_Tab")
|
|
732
|
+
}, ListItemProps));
|
|
733
|
+
}
|
|
734
|
+
|
|
704
735
|
return /*#__PURE__*/_react["default"].createElement(_ListItem["default"], _extends({
|
|
705
736
|
key: id,
|
|
706
737
|
value: value,
|
|
@@ -711,7 +742,7 @@ var Tabs = /*#__PURE__*/function (_React$Component) {
|
|
|
711
742
|
href: href,
|
|
712
743
|
autoHover: true,
|
|
713
744
|
customClass: {
|
|
714
|
-
customListItem:
|
|
745
|
+
customListItem: effectiveMenuItemClass
|
|
715
746
|
},
|
|
716
747
|
target: "self",
|
|
717
748
|
dataId: "".concat(dataId, "_Tab")
|
package/lib/Tab/Tabs.module.css
CHANGED
|
@@ -82,6 +82,51 @@
|
|
|
82
82
|
border-bottom: 1px dotted var(--zdt_tabs_alpha_border);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
.default {
|
|
86
|
+
height: var(--zd_size35) ;
|
|
87
|
+
transition: padding var(--zd_transition3);
|
|
88
|
+
z-index: 2;
|
|
89
|
+
background-color: var(--zd-bg-secondary);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.default_padding {
|
|
93
|
+
padding-inline-start: var(--zd_size10) ;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.default_border {
|
|
97
|
+
border-bottom: 1px solid var(--zd-border-primary);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.defaultMoreButton {
|
|
101
|
+
max-height: var(--zd_size28) ;
|
|
102
|
+
color: var(--zd-text-secondary);
|
|
103
|
+
padding: var(--zd_size6) ;
|
|
104
|
+
border: 1px solid var(--zd-border-transparent);
|
|
105
|
+
border-radius: 4px;
|
|
106
|
+
margin-top: var(--zd_size3) ;
|
|
107
|
+
cursor: pointer;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.defaultMoreButton:hover {
|
|
111
|
+
border-color: var(--zdt_rippleeffect_navy_border);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.defaultMoreButtonActive {
|
|
115
|
+
border-color: var(--zdt_cta_secondary_light_border);
|
|
116
|
+
background: var(--zd-bg-brandLight);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.defaultMoreButtonActive:hover {
|
|
120
|
+
border-color: var(--zdt_cta_secondary_light_border);
|
|
121
|
+
background: var(--zd-bg-brandLight);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.defaultMenuListItem {
|
|
125
|
+
font-size: var(--zd_font_size11) ;
|
|
126
|
+
text-transform: uppercase;
|
|
127
|
+
letter-spacing: 0.4px;
|
|
128
|
+
}
|
|
129
|
+
|
|
85
130
|
.delta .highlight {
|
|
86
131
|
border-color: var(--zdt_tabs_delta_border);
|
|
87
132
|
}
|
|
@@ -126,7 +171,7 @@
|
|
|
126
171
|
|
|
127
172
|
.search {
|
|
128
173
|
padding-block: var(--zd_size6) 0 ;
|
|
129
|
-
padding-inline:var(--zd_size20) ;
|
|
174
|
+
padding-inline: var(--zd_size20) ;
|
|
130
175
|
}
|
|
131
176
|
|
|
132
177
|
.emptyStateContainer {
|
|
@@ -153,5 +198,5 @@
|
|
|
153
198
|
|
|
154
199
|
.listWrapper {
|
|
155
200
|
padding-block: var(--zd_size10) ;
|
|
156
|
-
padding-inline:0 ;
|
|
157
|
-
}
|
|
201
|
+
padding-inline: 0 ;
|
|
202
|
+
}
|
|
@@ -8,6 +8,8 @@ var _Tab = _interopRequireDefault(require("../Tab"));
|
|
|
8
8
|
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
10
10
|
|
|
11
|
+
var noop = function noop() {};
|
|
12
|
+
|
|
11
13
|
describe('Tab', function () {
|
|
12
14
|
test('rendering the defult props', function () {
|
|
13
15
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], null)),
|
|
@@ -15,4 +17,117 @@ describe('Tab', function () {
|
|
|
15
17
|
|
|
16
18
|
expect(asFragment()).toMatchSnapshot();
|
|
17
19
|
});
|
|
20
|
+
describe('variant-based label rendering', function () {
|
|
21
|
+
test('variant="text" renders text only', function () {
|
|
22
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
23
|
+
id: "t1",
|
|
24
|
+
text: "Home",
|
|
25
|
+
variant: "text",
|
|
26
|
+
onSelect: noop
|
|
27
|
+
})),
|
|
28
|
+
asFragment = _render2.asFragment;
|
|
29
|
+
|
|
30
|
+
expect(asFragment()).toMatchSnapshot();
|
|
31
|
+
});
|
|
32
|
+
test('variant="icon" renders icon and suppresses text label', function () {
|
|
33
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
34
|
+
id: "t2",
|
|
35
|
+
text: "Home",
|
|
36
|
+
variant: "icon",
|
|
37
|
+
iconName: "ZD-TB-menu",
|
|
38
|
+
onSelect: noop
|
|
39
|
+
})),
|
|
40
|
+
asFragment = _render3.asFragment;
|
|
41
|
+
|
|
42
|
+
expect(asFragment()).toMatchSnapshot();
|
|
43
|
+
});
|
|
44
|
+
test('variant="iconWithText" renders icon followed by text', function () {
|
|
45
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
46
|
+
id: "t3",
|
|
47
|
+
text: "Home",
|
|
48
|
+
variant: "iconWithText",
|
|
49
|
+
iconName: "ZD-TB-menu",
|
|
50
|
+
onSelect: noop
|
|
51
|
+
})),
|
|
52
|
+
asFragment = _render4.asFragment;
|
|
53
|
+
|
|
54
|
+
expect(asFragment()).toMatchSnapshot();
|
|
55
|
+
});
|
|
56
|
+
test('renderIcon overrides iconName', function () {
|
|
57
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
58
|
+
id: "t4",
|
|
59
|
+
text: "Home",
|
|
60
|
+
variant: "iconWithText",
|
|
61
|
+
renderIcon: /*#__PURE__*/_react["default"].createElement("span", null, "\u2605"),
|
|
62
|
+
iconName: "ZD-TB-menu",
|
|
63
|
+
onSelect: noop
|
|
64
|
+
})),
|
|
65
|
+
asFragment = _render5.asFragment;
|
|
66
|
+
|
|
67
|
+
expect(asFragment()).toMatchSnapshot();
|
|
68
|
+
});
|
|
69
|
+
test('renderIcon as function receives no args and renders custom node', function () {
|
|
70
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
71
|
+
id: "t5",
|
|
72
|
+
text: "Home",
|
|
73
|
+
variant: "icon",
|
|
74
|
+
renderIcon: function renderIcon() {
|
|
75
|
+
return /*#__PURE__*/_react["default"].createElement("span", null, "\u2605");
|
|
76
|
+
},
|
|
77
|
+
onSelect: noop
|
|
78
|
+
})),
|
|
79
|
+
asFragment = _render6.asFragment;
|
|
80
|
+
|
|
81
|
+
expect(asFragment()).toMatchSnapshot();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe('renderBefore / renderAfter slots', function () {
|
|
85
|
+
test('renderBefore renders a node to the left of the label', function () {
|
|
86
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
87
|
+
id: "t6",
|
|
88
|
+
text: "Home",
|
|
89
|
+
renderBefore: /*#__PURE__*/_react["default"].createElement("span", null, "\u25C0"),
|
|
90
|
+
onSelect: noop
|
|
91
|
+
})),
|
|
92
|
+
asFragment = _render7.asFragment;
|
|
93
|
+
|
|
94
|
+
expect(asFragment()).toMatchSnapshot();
|
|
95
|
+
});
|
|
96
|
+
test('renderAfter renders a node to the right of the label', function () {
|
|
97
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
98
|
+
id: "t7",
|
|
99
|
+
text: "Home",
|
|
100
|
+
renderAfter: /*#__PURE__*/_react["default"].createElement("span", null, "3"),
|
|
101
|
+
onSelect: noop
|
|
102
|
+
})),
|
|
103
|
+
asFragment = _render8.asFragment;
|
|
104
|
+
|
|
105
|
+
expect(asFragment()).toMatchSnapshot();
|
|
106
|
+
});
|
|
107
|
+
test('renderBefore and renderAfter both render around the label', function () {
|
|
108
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
109
|
+
id: "t8",
|
|
110
|
+
text: "Home",
|
|
111
|
+
renderBefore: /*#__PURE__*/_react["default"].createElement("span", null, "\u25C0"),
|
|
112
|
+
renderAfter: /*#__PURE__*/_react["default"].createElement("span", null, "\u25B6"),
|
|
113
|
+
onSelect: noop
|
|
114
|
+
})),
|
|
115
|
+
asFragment = _render9.asFragment;
|
|
116
|
+
|
|
117
|
+
expect(asFragment()).toMatchSnapshot();
|
|
118
|
+
});
|
|
119
|
+
test('renderBefore as function renders custom node', function () {
|
|
120
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
|
|
121
|
+
id: "t9",
|
|
122
|
+
text: "Home",
|
|
123
|
+
renderBefore: function renderBefore() {
|
|
124
|
+
return /*#__PURE__*/_react["default"].createElement("span", null, "\u25C0");
|
|
125
|
+
},
|
|
126
|
+
onSelect: noop
|
|
127
|
+
})),
|
|
128
|
+
asFragment = _render10.asFragment;
|
|
129
|
+
|
|
130
|
+
expect(asFragment()).toMatchSnapshot();
|
|
131
|
+
});
|
|
132
|
+
});
|
|
18
133
|
});
|
|
@@ -1,5 +1,152 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`Tab renderBefore / renderAfter slots renderAfter renders a node to the right of the label 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<div
|
|
6
|
+
aria-controls="t7"
|
|
7
|
+
aria-label="Home"
|
|
8
|
+
aria-selected="false"
|
|
9
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
10
|
+
data-id="tabMenu_Tab"
|
|
11
|
+
data-key="t7"
|
|
12
|
+
data-selector-id="tab"
|
|
13
|
+
data-test-id="tabMenu_Tab"
|
|
14
|
+
role="link"
|
|
15
|
+
tabindex="0"
|
|
16
|
+
>
|
|
17
|
+
<div
|
|
18
|
+
class="textContainer flex cover rowdir both"
|
|
19
|
+
data-id="containerComponent"
|
|
20
|
+
data-selector-id="container"
|
|
21
|
+
data-test-id="containerComponent"
|
|
22
|
+
>
|
|
23
|
+
<div
|
|
24
|
+
class="tabText grow basisAuto shrinkOff"
|
|
25
|
+
data-id="boxComponent"
|
|
26
|
+
data-selector-id="box"
|
|
27
|
+
data-test-id="boxComponent"
|
|
28
|
+
>
|
|
29
|
+
Home
|
|
30
|
+
</div>
|
|
31
|
+
<span>
|
|
32
|
+
3
|
|
33
|
+
</span>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</DocumentFragment>
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
exports[`Tab renderBefore / renderAfter slots renderBefore and renderAfter both render around the label 1`] = `
|
|
40
|
+
<DocumentFragment>
|
|
41
|
+
<div
|
|
42
|
+
aria-controls="t8"
|
|
43
|
+
aria-label="Home"
|
|
44
|
+
aria-selected="false"
|
|
45
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
46
|
+
data-id="tabMenu_Tab"
|
|
47
|
+
data-key="t8"
|
|
48
|
+
data-selector-id="tab"
|
|
49
|
+
data-test-id="tabMenu_Tab"
|
|
50
|
+
role="link"
|
|
51
|
+
tabindex="0"
|
|
52
|
+
>
|
|
53
|
+
<div
|
|
54
|
+
class="textContainer flex cover rowdir both"
|
|
55
|
+
data-id="containerComponent"
|
|
56
|
+
data-selector-id="container"
|
|
57
|
+
data-test-id="containerComponent"
|
|
58
|
+
>
|
|
59
|
+
<span>
|
|
60
|
+
◀
|
|
61
|
+
</span>
|
|
62
|
+
<div
|
|
63
|
+
class="tabText grow basisAuto shrinkOff"
|
|
64
|
+
data-id="boxComponent"
|
|
65
|
+
data-selector-id="box"
|
|
66
|
+
data-test-id="boxComponent"
|
|
67
|
+
>
|
|
68
|
+
Home
|
|
69
|
+
</div>
|
|
70
|
+
<span>
|
|
71
|
+
▶
|
|
72
|
+
</span>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</DocumentFragment>
|
|
76
|
+
`;
|
|
77
|
+
|
|
78
|
+
exports[`Tab renderBefore / renderAfter slots renderBefore as function renders custom node 1`] = `
|
|
79
|
+
<DocumentFragment>
|
|
80
|
+
<div
|
|
81
|
+
aria-controls="t9"
|
|
82
|
+
aria-label="Home"
|
|
83
|
+
aria-selected="false"
|
|
84
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
85
|
+
data-id="tabMenu_Tab"
|
|
86
|
+
data-key="t9"
|
|
87
|
+
data-selector-id="tab"
|
|
88
|
+
data-test-id="tabMenu_Tab"
|
|
89
|
+
role="link"
|
|
90
|
+
tabindex="0"
|
|
91
|
+
>
|
|
92
|
+
<div
|
|
93
|
+
class="textContainer flex cover rowdir both"
|
|
94
|
+
data-id="containerComponent"
|
|
95
|
+
data-selector-id="container"
|
|
96
|
+
data-test-id="containerComponent"
|
|
97
|
+
>
|
|
98
|
+
<span>
|
|
99
|
+
◀
|
|
100
|
+
</span>
|
|
101
|
+
<div
|
|
102
|
+
class="tabText grow basisAuto shrinkOff"
|
|
103
|
+
data-id="boxComponent"
|
|
104
|
+
data-selector-id="box"
|
|
105
|
+
data-test-id="boxComponent"
|
|
106
|
+
>
|
|
107
|
+
Home
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</DocumentFragment>
|
|
112
|
+
`;
|
|
113
|
+
|
|
114
|
+
exports[`Tab renderBefore / renderAfter slots renderBefore renders a node to the left of the label 1`] = `
|
|
115
|
+
<DocumentFragment>
|
|
116
|
+
<div
|
|
117
|
+
aria-controls="t6"
|
|
118
|
+
aria-label="Home"
|
|
119
|
+
aria-selected="false"
|
|
120
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
121
|
+
data-id="tabMenu_Tab"
|
|
122
|
+
data-key="t6"
|
|
123
|
+
data-selector-id="tab"
|
|
124
|
+
data-test-id="tabMenu_Tab"
|
|
125
|
+
role="link"
|
|
126
|
+
tabindex="0"
|
|
127
|
+
>
|
|
128
|
+
<div
|
|
129
|
+
class="textContainer flex cover rowdir both"
|
|
130
|
+
data-id="containerComponent"
|
|
131
|
+
data-selector-id="container"
|
|
132
|
+
data-test-id="containerComponent"
|
|
133
|
+
>
|
|
134
|
+
<span>
|
|
135
|
+
◀
|
|
136
|
+
</span>
|
|
137
|
+
<div
|
|
138
|
+
class="tabText grow basisAuto shrinkOff"
|
|
139
|
+
data-id="boxComponent"
|
|
140
|
+
data-selector-id="box"
|
|
141
|
+
data-test-id="boxComponent"
|
|
142
|
+
>
|
|
143
|
+
Home
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</DocumentFragment>
|
|
148
|
+
`;
|
|
149
|
+
|
|
3
150
|
exports[`Tab rendering the defult props 1`] = `
|
|
4
151
|
<DocumentFragment>
|
|
5
152
|
<div
|
|
@@ -20,3 +167,172 @@ exports[`Tab rendering the defult props 1`] = `
|
|
|
20
167
|
</div>
|
|
21
168
|
</DocumentFragment>
|
|
22
169
|
`;
|
|
170
|
+
|
|
171
|
+
exports[`Tab variant-based label rendering renderIcon as function receives no args and renders custom node 1`] = `
|
|
172
|
+
<DocumentFragment>
|
|
173
|
+
<div
|
|
174
|
+
aria-controls="t5"
|
|
175
|
+
aria-label="Home"
|
|
176
|
+
aria-selected="false"
|
|
177
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
178
|
+
data-id="tabMenu_Tab"
|
|
179
|
+
data-key="t5"
|
|
180
|
+
data-selector-id="tab"
|
|
181
|
+
data-test-id="tabMenu_Tab"
|
|
182
|
+
role="link"
|
|
183
|
+
tabindex="0"
|
|
184
|
+
>
|
|
185
|
+
<div
|
|
186
|
+
class="textContainer flex cover rowdir both"
|
|
187
|
+
data-id="containerComponent"
|
|
188
|
+
data-selector-id="container"
|
|
189
|
+
data-test-id="containerComponent"
|
|
190
|
+
>
|
|
191
|
+
<span>
|
|
192
|
+
★
|
|
193
|
+
</span>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
</DocumentFragment>
|
|
197
|
+
`;
|
|
198
|
+
|
|
199
|
+
exports[`Tab variant-based label rendering renderIcon overrides iconName 1`] = `
|
|
200
|
+
<DocumentFragment>
|
|
201
|
+
<div
|
|
202
|
+
aria-controls="t4"
|
|
203
|
+
aria-label="Home"
|
|
204
|
+
aria-selected="false"
|
|
205
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
206
|
+
data-id="tabMenu_Tab"
|
|
207
|
+
data-key="t4"
|
|
208
|
+
data-selector-id="tab"
|
|
209
|
+
data-test-id="tabMenu_Tab"
|
|
210
|
+
role="link"
|
|
211
|
+
tabindex="0"
|
|
212
|
+
>
|
|
213
|
+
<div
|
|
214
|
+
class="textContainer flex cover rowdir both"
|
|
215
|
+
data-id="containerComponent"
|
|
216
|
+
data-selector-id="container"
|
|
217
|
+
data-test-id="containerComponent"
|
|
218
|
+
>
|
|
219
|
+
<span>
|
|
220
|
+
★
|
|
221
|
+
</span>
|
|
222
|
+
<div
|
|
223
|
+
class="tabText grow basisAuto shrinkOff"
|
|
224
|
+
data-id="boxComponent"
|
|
225
|
+
data-selector-id="box"
|
|
226
|
+
data-test-id="boxComponent"
|
|
227
|
+
>
|
|
228
|
+
Home
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
</DocumentFragment>
|
|
233
|
+
`;
|
|
234
|
+
|
|
235
|
+
exports[`Tab variant-based label rendering variant="icon" renders icon and suppresses text label 1`] = `
|
|
236
|
+
<DocumentFragment>
|
|
237
|
+
<div
|
|
238
|
+
aria-controls="t2"
|
|
239
|
+
aria-label="Home"
|
|
240
|
+
aria-selected="false"
|
|
241
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
242
|
+
data-id="tabMenu_Tab"
|
|
243
|
+
data-key="t2"
|
|
244
|
+
data-selector-id="tab"
|
|
245
|
+
data-test-id="tabMenu_Tab"
|
|
246
|
+
role="link"
|
|
247
|
+
tabindex="0"
|
|
248
|
+
>
|
|
249
|
+
<div
|
|
250
|
+
class="textContainer flex cover rowdir both"
|
|
251
|
+
data-id="containerComponent"
|
|
252
|
+
data-selector-id="container"
|
|
253
|
+
data-test-id="containerComponent"
|
|
254
|
+
>
|
|
255
|
+
<i
|
|
256
|
+
aria-hidden="true"
|
|
257
|
+
class="zd_font_icons basic icon-menu rtl "
|
|
258
|
+
data-id="fontIcon"
|
|
259
|
+
data-selector-id="fontIcon"
|
|
260
|
+
data-test-id="fontIcon"
|
|
261
|
+
/>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
</DocumentFragment>
|
|
265
|
+
`;
|
|
266
|
+
|
|
267
|
+
exports[`Tab variant-based label rendering variant="iconWithText" renders icon followed by text 1`] = `
|
|
268
|
+
<DocumentFragment>
|
|
269
|
+
<div
|
|
270
|
+
aria-controls="t3"
|
|
271
|
+
aria-label="Home"
|
|
272
|
+
aria-selected="false"
|
|
273
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
274
|
+
data-id="tabMenu_Tab"
|
|
275
|
+
data-key="t3"
|
|
276
|
+
data-selector-id="tab"
|
|
277
|
+
data-test-id="tabMenu_Tab"
|
|
278
|
+
role="link"
|
|
279
|
+
tabindex="0"
|
|
280
|
+
>
|
|
281
|
+
<div
|
|
282
|
+
class="textContainer flex cover rowdir both"
|
|
283
|
+
data-id="containerComponent"
|
|
284
|
+
data-selector-id="container"
|
|
285
|
+
data-test-id="containerComponent"
|
|
286
|
+
>
|
|
287
|
+
<i
|
|
288
|
+
aria-hidden="true"
|
|
289
|
+
class="zd_font_icons basic icon-menu rtl "
|
|
290
|
+
data-id="fontIcon"
|
|
291
|
+
data-selector-id="fontIcon"
|
|
292
|
+
data-test-id="fontIcon"
|
|
293
|
+
/>
|
|
294
|
+
<div
|
|
295
|
+
class="tabText grow basisAuto shrinkOff"
|
|
296
|
+
data-id="boxComponent"
|
|
297
|
+
data-selector-id="box"
|
|
298
|
+
data-test-id="boxComponent"
|
|
299
|
+
>
|
|
300
|
+
Home
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
</DocumentFragment>
|
|
305
|
+
`;
|
|
306
|
+
|
|
307
|
+
exports[`Tab variant-based label rendering variant="text" renders text only 1`] = `
|
|
308
|
+
<DocumentFragment>
|
|
309
|
+
<div
|
|
310
|
+
aria-controls="t1"
|
|
311
|
+
aria-label="Home"
|
|
312
|
+
aria-selected="false"
|
|
313
|
+
class="tab horizontal basisAuto shrinkOff"
|
|
314
|
+
data-id="tabMenu_Tab"
|
|
315
|
+
data-key="t1"
|
|
316
|
+
data-selector-id="tab"
|
|
317
|
+
data-test-id="tabMenu_Tab"
|
|
318
|
+
role="link"
|
|
319
|
+
tabindex="0"
|
|
320
|
+
>
|
|
321
|
+
<div
|
|
322
|
+
class="textContainer flex cover rowdir both"
|
|
323
|
+
data-id="containerComponent"
|
|
324
|
+
data-selector-id="container"
|
|
325
|
+
data-test-id="containerComponent"
|
|
326
|
+
>
|
|
327
|
+
<div
|
|
328
|
+
class="tabText grow basisAuto shrinkOff"
|
|
329
|
+
data-id="boxComponent"
|
|
330
|
+
data-selector-id="box"
|
|
331
|
+
data-test-id="boxComponent"
|
|
332
|
+
>
|
|
333
|
+
Home
|
|
334
|
+
</div>
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
</DocumentFragment>
|
|
338
|
+
`;
|
|
@@ -9,7 +9,8 @@ var Tab_defaultProps = {
|
|
|
9
9
|
contentAlign: 'both',
|
|
10
10
|
contentAlignBox: 'row',
|
|
11
11
|
customProps: {},
|
|
12
|
-
dataSelectorId: 'tab'
|
|
12
|
+
dataSelectorId: 'tab',
|
|
13
|
+
variant: 'text'
|
|
13
14
|
};
|
|
14
15
|
exports.Tab_defaultProps = Tab_defaultProps;
|
|
15
16
|
var TabContent_defaultProps = {
|
|
@@ -45,7 +46,7 @@ var Tabs_defaultProps = {
|
|
|
45
46
|
searchBoxSize: 'small',
|
|
46
47
|
searchErrorText: 'No results',
|
|
47
48
|
placeHolderText: 'Search',
|
|
48
|
-
isAbsolutePositioningNeeded:
|
|
49
|
+
isAbsolutePositioningNeeded: false,
|
|
49
50
|
isRestrictScroll: false,
|
|
50
51
|
moreContainerClass: ''
|
|
51
52
|
};
|
|
@@ -7,8 +7,12 @@ exports.Tabs_propTypes = exports.Tab_propTypes = exports.TabWrapper_propTypes =
|
|
|
7
7
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
|
|
10
|
+
var _tabConfigs = require("../utils/tabConfigs");
|
|
11
|
+
|
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
13
|
|
|
14
|
+
var renderSlotType = _propTypes["default"].oneOfType([_propTypes["default"].node, _propTypes["default"].func]);
|
|
15
|
+
|
|
12
16
|
var Tab_propTypes = {
|
|
13
17
|
activeClass: _propTypes["default"].string,
|
|
14
18
|
align: _propTypes["default"].oneOf(['vertical', 'horizontal']),
|
|
@@ -36,7 +40,14 @@ var Tab_propTypes = {
|
|
|
36
40
|
contentAlignBox: _propTypes["default"].oneOf(['row', 'column', 'row-reverse', 'column-reverse']),
|
|
37
41
|
customProps: _propTypes["default"].object,
|
|
38
42
|
isVirtual: _propTypes["default"].bool,
|
|
39
|
-
dataSelectorId: _propTypes["default"].string
|
|
43
|
+
dataSelectorId: _propTypes["default"].string,
|
|
44
|
+
variant: _propTypes["default"].oneOf(Object.values(_tabConfigs.VARIANT)),
|
|
45
|
+
iconPlacement: _propTypes["default"].string,
|
|
46
|
+
iconName: _propTypes["default"].string,
|
|
47
|
+
iconSize: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
48
|
+
renderIcon: renderSlotType,
|
|
49
|
+
renderBefore: renderSlotType,
|
|
50
|
+
renderAfter: renderSlotType
|
|
40
51
|
};
|
|
41
52
|
exports.Tab_propTypes = Tab_propTypes;
|
|
42
53
|
var TabContent_propTypes = {
|
|
@@ -95,7 +106,7 @@ var Tabs_propTypes = {
|
|
|
95
106
|
showTitleInMoreOptions: _propTypes["default"].bool,
|
|
96
107
|
style: _propTypes["default"].object,
|
|
97
108
|
togglePopup: _propTypes["default"].func,
|
|
98
|
-
type: _propTypes["default"].oneOf(['alpha', 'beta', 'delta']),
|
|
109
|
+
type: _propTypes["default"].oneOf(['alpha', 'beta', 'delta', 'default']),
|
|
99
110
|
getTargetRef: _propTypes["default"].func,
|
|
100
111
|
containerClass: _propTypes["default"].string,
|
|
101
112
|
customProps: _propTypes["default"].shape({
|
|
@@ -128,7 +139,7 @@ var TabWrapper_propTypes = {
|
|
|
128
139
|
needPadding: _propTypes["default"].bool,
|
|
129
140
|
needTabBorder: _propTypes["default"].bool,
|
|
130
141
|
onSelect: _propTypes["default"].func,
|
|
131
|
-
type: _propTypes["default"].oneOf(['alpha', 'beta', 'delta']),
|
|
142
|
+
type: _propTypes["default"].oneOf(['alpha', 'beta', 'delta', 'default']),
|
|
132
143
|
dataSelectorId: _propTypes["default"].string
|
|
133
144
|
};
|
|
134
145
|
exports.TabWrapper_propTypes = TabWrapper_propTypes;
|