@elliemae/ds-tabs 1.60.0 → 2.0.0-alpha.12
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/cjs/DSTabs.js +29 -150
- package/cjs/DSTabsCTX.js +30 -0
- package/cjs/DSTabsDatatestid.js +18 -0
- package/cjs/DSTabsTypes.js +2 -0
- package/cjs/config/useCrossRef.js +17 -0
- package/cjs/config/useTabs.js +51 -0
- package/cjs/defaultProps.js +27 -0
- package/cjs/exportsRelated/DSTab.js +32 -0
- package/cjs/index.js +5 -35
- package/cjs/parts/carousel/Carousel.js +71 -0
- package/cjs/parts/carousel/styles.js +60 -0
- package/cjs/parts/carousel/useCarousel.js +78 -0
- package/cjs/parts/carousel/useCarouselCallbacks.js +72 -0
- package/cjs/parts/tabBar/TabBar.js +160 -0
- package/cjs/parts/tabBar/styles.js +199 -0
- package/cjs/parts/tabBar/useTabBar.js +98 -0
- package/cjs/parts/tabsContent/TabsContent.js +49 -0
- package/cjs/parts/tabsContent/styles.js +15 -0
- package/cjs/parts/tabsPanel/TabsPanels.js +77 -0
- package/cjs/parts/tabsPanel/styles.js +25 -0
- package/cjs/propTypes.js +33 -0
- package/cjs/utils/constants.js +29 -0
- package/cjs/utils/helpers.js +47 -0
- package/cjs/utils/hooks/useKeyboardNavigation.js +61 -0
- package/cjs/utils/hooks/useTabsCallbacks.js +59 -0
- package/esm/DSTabs.js +31 -152
- package/esm/DSTabsCTX.js +25 -0
- package/esm/DSTabsDatatestid.js +14 -0
- package/esm/DSTabsTypes.js +1 -0
- package/esm/config/useCrossRef.js +13 -0
- package/esm/config/useTabs.js +47 -0
- package/esm/defaultProps.js +23 -0
- package/esm/exportsRelated/DSTab.js +21 -0
- package/esm/index.js +4 -33
- package/esm/parts/carousel/Carousel.js +63 -0
- package/esm/parts/carousel/styles.js +49 -0
- package/esm/parts/carousel/useCarousel.js +70 -0
- package/esm/parts/carousel/useCarouselCallbacks.js +68 -0
- package/esm/parts/tabBar/TabBar.js +151 -0
- package/esm/parts/tabBar/styles.js +185 -0
- package/esm/parts/tabBar/useTabBar.js +90 -0
- package/esm/parts/tabsContent/TabsContent.js +40 -0
- package/esm/parts/tabsContent/styles.js +7 -0
- package/esm/parts/tabsPanel/TabsPanels.js +67 -0
- package/esm/parts/tabsPanel/styles.js +17 -0
- package/esm/propTypes.js +28 -0
- package/esm/utils/constants.js +21 -0
- package/esm/utils/helpers.js +37 -0
- package/esm/utils/hooks/useKeyboardNavigation.js +57 -0
- package/esm/utils/hooks/useTabsCallbacks.js +55 -0
- package/package.json +134 -18
- package/types/DSTabs.d.ts +14 -0
- package/types/DSTabsCTX.d.ts +4 -0
- package/types/DSTabsDatatestid.d.ts +12 -0
- package/types/DSTabsTypes.d.ts +202 -0
- package/types/config/useCrossRef.d.ts +2 -0
- package/types/config/useTabs.d.ts +2 -0
- package/types/defaultProps.d.ts +2 -0
- package/types/exportsRelated/DSTab.d.ts +14 -0
- package/types/index.d.ts +5 -0
- package/types/parts/carousel/Carousel.d.ts +3 -0
- package/types/parts/carousel/styles.d.ts +9 -0
- package/types/parts/carousel/useCarousel.d.ts +2 -0
- package/types/parts/carousel/useCarouselCallbacks.d.ts +2 -0
- package/types/parts/tabBar/TabBar.d.ts +2 -0
- package/types/parts/tabBar/styles.d.ts +7 -0
- package/types/parts/tabBar/useTabBar.d.ts +2 -0
- package/types/parts/tabsContent/TabsContent.d.ts +2 -0
- package/types/parts/tabsContent/styles.d.ts +1 -0
- package/types/parts/tabsPanel/TabsPanels.d.ts +2 -0
- package/types/parts/tabsPanel/styles.d.ts +2 -0
- package/types/propTypes.d.ts +54 -0
- package/types/tests/DSTabs.callbacks.test.d.ts +1 -0
- package/types/tests/DSTabs.func.test.d.ts +1 -0
- package/types/tests/DSTabs.keyboard.test.d.ts +1 -0
- package/types/tests/DSTabs.test.d.ts +1 -0
- package/types/utils/constants.d.ts +19 -0
- package/types/utils/helpers.d.ts +8 -0
- package/types/utils/hooks/useKeyboardNavigation.d.ts +2 -0
- package/types/utils/hooks/useTabsCallbacks.d.ts +2 -0
- package/Carousel/package.json +0 -10
- package/DSTab/package.json +0 -10
- package/DSTabs/package.json +0 -10
- package/PanelContainer/package.json +0 -10
- package/SubTabBar/package.json +0 -10
- package/TabBar/package.json +0 -10
- package/TabTypes/package.json +0 -10
- package/TabsImpl/package.json +0 -10
- package/TabsPanels/package.json +0 -10
- package/cjs/Carousel.js +0 -219
- package/cjs/Carousel.js.map +0 -1
- package/cjs/DSTab.js +0 -50
- package/cjs/DSTab.js.map +0 -1
- package/cjs/DSTabs.js.map +0 -1
- package/cjs/PanelContainer.js +0 -45
- package/cjs/PanelContainer.js.map +0 -1
- package/cjs/SubTabBar.js +0 -81
- package/cjs/SubTabBar.js.map +0 -1
- package/cjs/TabBar.js +0 -480
- package/cjs/TabBar.js.map +0 -1
- package/cjs/TabTypes.js +0 -17
- package/cjs/TabTypes.js.map +0 -1
- package/cjs/TabsImpl.js +0 -173
- package/cjs/TabsImpl.js.map +0 -1
- package/cjs/TabsPanels.js +0 -116
- package/cjs/TabsPanels.js.map +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/useResize.js +0 -25
- package/cjs/useResize.js.map +0 -1
- package/esm/Carousel.js +0 -209
- package/esm/Carousel.js.map +0 -1
- package/esm/DSTab.js +0 -40
- package/esm/DSTab.js.map +0 -1
- package/esm/DSTabs.js.map +0 -1
- package/esm/PanelContainer.js +0 -37
- package/esm/PanelContainer.js.map +0 -1
- package/esm/SubTabBar.js +0 -74
- package/esm/SubTabBar.js.map +0 -1
- package/esm/TabBar.js +0 -464
- package/esm/TabBar.js.map +0 -1
- package/esm/TabTypes.js +0 -12
- package/esm/TabTypes.js.map +0 -1
- package/esm/TabsImpl.js +0 -163
- package/esm/TabsImpl.js.map +0 -1
- package/esm/TabsPanels.js +0 -103
- package/esm/TabsPanels.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/useResize.js +0 -21
- package/esm/useResize.js.map +0 -1
- package/useResize/package.json +0 -10
package/cjs/TabBar.js
DELETED
|
@@ -1,480 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
|
-
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
|
|
6
|
-
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
7
|
-
var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
8
|
-
var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
9
|
-
var React = require('react');
|
|
10
|
-
var lodash = require('lodash');
|
|
11
|
-
var PropTypes = require('prop-types');
|
|
12
|
-
var dsClassnames = require('@elliemae/ds-classnames');
|
|
13
|
-
var RequiredMark = require('@elliemae/ds-form/RequiredMark');
|
|
14
|
-
var memoizeOne = require('memoize-one');
|
|
15
|
-
var resizeObserver = require('resize-observer');
|
|
16
|
-
var styled = require('styled-components');
|
|
17
|
-
var Carousel = require('./Carousel.js');
|
|
18
|
-
require('@babel/runtime/helpers/slicedToArray');
|
|
19
|
-
require('@elliemae/ds-icons');
|
|
20
|
-
require('@elliemae/ds-button');
|
|
21
|
-
require('./useResize.js');
|
|
22
|
-
|
|
23
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
|
-
|
|
25
|
-
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
26
|
-
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
27
|
-
var _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);
|
|
28
|
-
var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
|
|
29
|
-
var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
|
|
30
|
-
var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
|
|
31
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
32
|
-
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
33
|
-
var RequiredMark__default = /*#__PURE__*/_interopDefaultLegacy(RequiredMark);
|
|
34
|
-
var memoizeOne__default = /*#__PURE__*/_interopDefaultLegacy(memoizeOne);
|
|
35
|
-
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
36
|
-
|
|
37
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
|
|
38
|
-
|
|
39
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
40
|
-
var blockName = 'tabs-tab-bar';
|
|
41
|
-
var gradientWidth = 24;
|
|
42
|
-
var StyledTabWrapper = /*#__PURE__*/styled__default['default'].div.withConfig({
|
|
43
|
-
componentId: "sc-7sdovg-0"
|
|
44
|
-
})(["display:flex;flex:1;flex-wrap:nowrap;", ";"], function (_ref) {
|
|
45
|
-
var flexibleTabsHeaders = _ref.flexibleTabsHeaders;
|
|
46
|
-
return flexibleTabsHeaders ? '' : 'overflow-x: hidden';
|
|
47
|
-
});
|
|
48
|
-
var StyledTabList = dsClassnames.aggregatedClasses('div')(blockName, 'list', function (_ref2) {
|
|
49
|
-
var withCarousel = _ref2.withCarousel,
|
|
50
|
-
flexibleTabsHeaders = _ref2.flexibleTabsHeaders,
|
|
51
|
-
fixedTabsHeaders = _ref2.fixedTabsHeaders,
|
|
52
|
-
isDSMobile = _ref2.isDSMobile,
|
|
53
|
-
withLeftGradients = _ref2.withLeftGradients,
|
|
54
|
-
withRightGradients = _ref2.withRightGradients;
|
|
55
|
-
return {
|
|
56
|
-
carousel: withCarousel,
|
|
57
|
-
'flexible-table-headers': isDSMobile && flexibleTabsHeaders,
|
|
58
|
-
'fixed-table-headers': isDSMobile && fixedTabsHeaders,
|
|
59
|
-
'left-gradients': isDSMobile && flexibleTabsHeaders && withLeftGradients,
|
|
60
|
-
'right-gradients': isDSMobile && flexibleTabsHeaders && withRightGradients
|
|
61
|
-
};
|
|
62
|
-
}, {
|
|
63
|
-
propsToRemoveFromFinalElement: ['withCarousel', 'flexibleTabsHeaders', 'fixedTabsHeaders', 'withLeftGradients', 'withRightGradients', 'isDSMobile']
|
|
64
|
-
});
|
|
65
|
-
var TabContainer = dsClassnames.aggregatedClasses('button', {
|
|
66
|
-
role: 'tab'
|
|
67
|
-
})(blockName, 'tab', function (_ref3) {
|
|
68
|
-
var isActive = _ref3.isActive,
|
|
69
|
-
showSeparator = _ref3.showSeparator,
|
|
70
|
-
disabled = _ref3.disabled;
|
|
71
|
-
return {
|
|
72
|
-
active: isActive,
|
|
73
|
-
separator: showSeparator,
|
|
74
|
-
disabled: disabled
|
|
75
|
-
};
|
|
76
|
-
});
|
|
77
|
-
var SelectionIndicator = dsClassnames.aggregatedClasses('div')(blockName, 'selection-indicator');
|
|
78
|
-
|
|
79
|
-
var TabBar = /*#__PURE__*/function (_Component) {
|
|
80
|
-
_inherits__default['default'](TabBar, _Component);
|
|
81
|
-
|
|
82
|
-
var _super = _createSuper(TabBar);
|
|
83
|
-
|
|
84
|
-
function TabBar(_props) {
|
|
85
|
-
var _this;
|
|
86
|
-
|
|
87
|
-
_classCallCheck__default['default'](this, TabBar);
|
|
88
|
-
|
|
89
|
-
_this = _super.call(this, _props);
|
|
90
|
-
|
|
91
|
-
_this.handleTabClick = function (tabId, e) {
|
|
92
|
-
var _assertThisInitialize = _assertThisInitialized__default['default'](_this),
|
|
93
|
-
tabListRef = _assertThisInitialize.tabListRef,
|
|
94
|
-
props = _assertThisInitialize.props;
|
|
95
|
-
|
|
96
|
-
var onTabClick = props.onTabClick,
|
|
97
|
-
flexibleTabsHeaders = props.flexibleTabsHeaders,
|
|
98
|
-
isDSMobile = props.isDSMobile;
|
|
99
|
-
|
|
100
|
-
if (isDSMobile && flexibleTabsHeaders) {
|
|
101
|
-
var tabListDomEl = tabListRef.current;
|
|
102
|
-
var el = e.target;
|
|
103
|
-
var offsetLeft = el.offsetLeft;
|
|
104
|
-
|
|
105
|
-
var _el$getBoundingClient = el.getBoundingClientRect(),
|
|
106
|
-
elWidth = _el$getBoundingClient.width;
|
|
107
|
-
|
|
108
|
-
var _tabListDomEl$getBoun = tabListDomEl.getBoundingClientRect(),
|
|
109
|
-
listWidth = _tabListDomEl$getBoun.width;
|
|
110
|
-
|
|
111
|
-
var extraSideSpace = listWidth - elWidth;
|
|
112
|
-
var leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;
|
|
113
|
-
var centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;
|
|
114
|
-
tabListDomEl.scrollTo({
|
|
115
|
-
top: 0,
|
|
116
|
-
left: centeredLeftOffset,
|
|
117
|
-
behavior: 'smooth'
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
e.preventDefault();
|
|
122
|
-
onTabClick(tabId);
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
_this.handleKeyPress = function (tabId, e, index) {
|
|
126
|
-
var _this$props = _this.props,
|
|
127
|
-
tabs = _this$props.tabs,
|
|
128
|
-
handleDownArrow = _this$props.handleDownArrow,
|
|
129
|
-
handleUpArrow = _this$props.handleUpArrow;
|
|
130
|
-
|
|
131
|
-
if (e.keyCode === 39) {
|
|
132
|
-
var _this$tabsRef;
|
|
133
|
-
|
|
134
|
-
var nextTab = tabs[index + 1];
|
|
135
|
-
if (!nextTab && handleDownArrow) handleDownArrow(e);
|
|
136
|
-
if (!nextTab) return; // const { props } = nextTab
|
|
137
|
-
// onTabClick(props.tabId)
|
|
138
|
-
|
|
139
|
-
(_this$tabsRef = _this.tabsRef[index + 1]) === null || _this$tabsRef === void 0 ? void 0 : _this$tabsRef.focus();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (e.keyCode === 37) {
|
|
143
|
-
var _this$tabsRef2;
|
|
144
|
-
|
|
145
|
-
var _nextTab = tabs[index - 1];
|
|
146
|
-
if (!_nextTab && handleUpArrow) handleUpArrow(e);
|
|
147
|
-
if (!_nextTab) return; // const { props } = nextTab
|
|
148
|
-
// onTabClick(props.tabId)
|
|
149
|
-
|
|
150
|
-
(_this$tabsRef2 = _this.tabsRef[index - 1]) === null || _this$tabsRef2 === void 0 ? void 0 : _this$tabsRef2.focus();
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (e.keyCode === 40 && handleDownArrow) {
|
|
154
|
-
handleDownArrow(e);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (e.keyCode === 38 && handleUpArrow) {
|
|
158
|
-
handleUpArrow(e);
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
_this.handleTabsHeadersHorizontalScroll = lodash.debounce(function () {
|
|
163
|
-
var _assertThisInitialize2 = _assertThisInitialized__default['default'](_this),
|
|
164
|
-
tabListRef = _assertThisInitialize2.tabListRef,
|
|
165
|
-
props = _assertThisInitialize2.props;
|
|
166
|
-
|
|
167
|
-
var flexibleTabsHeaders = props.flexibleTabsHeaders,
|
|
168
|
-
isDSMobile = props.isDSMobile;
|
|
169
|
-
|
|
170
|
-
if (isDSMobile && flexibleTabsHeaders) {
|
|
171
|
-
var tabListDomEl = tabListRef.current;
|
|
172
|
-
var scrollLeft = tabListDomEl.scrollLeft,
|
|
173
|
-
scrollWidth = tabListDomEl.scrollWidth,
|
|
174
|
-
clientWidth = tabListDomEl.clientWidth;
|
|
175
|
-
|
|
176
|
-
var withLeftGradients = _this.shouldHaveLeftGradient(scrollLeft, gradientWidth);
|
|
177
|
-
|
|
178
|
-
var withRightGradients = _this.shouldHaveRightGradient(scrollLeft, gradientWidth, clientWidth, scrollWidth);
|
|
179
|
-
|
|
180
|
-
_this.setState({
|
|
181
|
-
withLeftGradients: withLeftGradients,
|
|
182
|
-
withRightGradients: withRightGradients
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
}, 50);
|
|
186
|
-
_this.renderTabs = memoizeOne__default['default'](function (activeTab, tabs) {
|
|
187
|
-
var showSeparator = _this.props.showSeparator;
|
|
188
|
-
return React__default['default'].Children.map(tabs, function (tab, index) {
|
|
189
|
-
var _tab$props = tab.props,
|
|
190
|
-
tabId = _tab$props.tabId,
|
|
191
|
-
title = _tab$props.title,
|
|
192
|
-
style = _tab$props.style,
|
|
193
|
-
required = _tab$props.required,
|
|
194
|
-
disabled = _tab$props.disabled;
|
|
195
|
-
var isActive = activeTab === tabId;
|
|
196
|
-
return [/*#__PURE__*/React__default['default'].createElement(TabContainer, {
|
|
197
|
-
key: tabId // eslint-disable-next-line no-return-assign
|
|
198
|
-
,
|
|
199
|
-
ref: function ref(t) {
|
|
200
|
-
_this.tabsRef[index] = t;
|
|
201
|
-
|
|
202
|
-
if (index === 0 && _this.props.firstSubtabRef) {
|
|
203
|
-
_this.props.firstSubtabRef.current = t;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
if (index === tabs.length - 1 && _this.props.lastTabRef) {
|
|
207
|
-
_this.props.lastTabRef.current = t;
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
"aria-controls": tabId,
|
|
211
|
-
"aria-selected": isActive,
|
|
212
|
-
"aria-disabled": !!disabled,
|
|
213
|
-
classProps: {
|
|
214
|
-
isActive: isActive,
|
|
215
|
-
showSeparator: showSeparator,
|
|
216
|
-
disabled: disabled
|
|
217
|
-
},
|
|
218
|
-
"data-tab-id": tabId,
|
|
219
|
-
id: "".concat(tabId, "-label"),
|
|
220
|
-
onClick: function onClick(e) {
|
|
221
|
-
if (!disabled) _this.handleTabClick(tabId, e, index);
|
|
222
|
-
},
|
|
223
|
-
onKeyDown: function onKeyDown(e) {
|
|
224
|
-
if (!disabled) _this.handleKeyPress(tabId, e, index);
|
|
225
|
-
},
|
|
226
|
-
style: style,
|
|
227
|
-
tabIndex: 0
|
|
228
|
-
}, title, /*#__PURE__*/React__default['default'].createElement(RequiredMark__default['default'], {
|
|
229
|
-
required: required
|
|
230
|
-
}))];
|
|
231
|
-
}, null);
|
|
232
|
-
});
|
|
233
|
-
_this.tabListRef = /*#__PURE__*/React__default['default'].createRef();
|
|
234
|
-
_this.resizeObserver = new resizeObserver.ResizeObserver(function () {
|
|
235
|
-
return _this.setIndicatorStyle();
|
|
236
|
-
});
|
|
237
|
-
_this.state = {
|
|
238
|
-
indicatorStyle: null,
|
|
239
|
-
withLeftGradients: false,
|
|
240
|
-
withRightGradients: false
|
|
241
|
-
};
|
|
242
|
-
_this.setIndicatorStyle = _this.setIndicatorStyle.bind(_assertThisInitialized__default['default'](_this));
|
|
243
|
-
_this.getIndicatorStyles = _this.getIndicatorStyles.bind(_assertThisInitialized__default['default'](_this));
|
|
244
|
-
_this.handleGradients = _this.handleGradients.bind(_assertThisInitialized__default['default'](_this));
|
|
245
|
-
_this.handleTabsHeadersHorizontalScroll = _this.handleTabsHeadersHorizontalScroll.bind(_assertThisInitialized__default['default'](_this));
|
|
246
|
-
_this.tabsRef = {};
|
|
247
|
-
_this.setIndicatorStyle = _this.setIndicatorStyle.bind(_assertThisInitialized__default['default'](_this));
|
|
248
|
-
return _this;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
_createClass__default['default'](TabBar, [{
|
|
252
|
-
key: "componentDidMount",
|
|
253
|
-
value: function componentDidMount() {
|
|
254
|
-
var showSelectionIndicator = this.props.showSelectionIndicator;
|
|
255
|
-
this.resizeObserver.observe(this.tabListRef.current);
|
|
256
|
-
|
|
257
|
-
if (showSelectionIndicator) {
|
|
258
|
-
this.setIndicatorStyle();
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
window.addEventListener('resize', this.handleGradients);
|
|
262
|
-
window.addEventListener('orientationchange', this.handleGradients);
|
|
263
|
-
this.handleGradients();
|
|
264
|
-
}
|
|
265
|
-
}, {
|
|
266
|
-
key: "componentDidUpdate",
|
|
267
|
-
value: function componentDidUpdate(prevProps) {
|
|
268
|
-
var _this$props2 = this.props,
|
|
269
|
-
activeTab = _this$props2.activeTab,
|
|
270
|
-
showSelectionIndicator = _this$props2.showSelectionIndicator;
|
|
271
|
-
|
|
272
|
-
if (showSelectionIndicator && prevProps.activeTab !== activeTab) {
|
|
273
|
-
this.setIndicatorStyle(activeTab);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}, {
|
|
277
|
-
key: "componentWillUnmount",
|
|
278
|
-
value: function componentWillUnmount() {
|
|
279
|
-
this.resizeObserver.unobserve(this.tabListRef.current);
|
|
280
|
-
window.removeEventListener('resize', this.handleGradients);
|
|
281
|
-
window.removeEventListener('orientationchange', this.handleGradients);
|
|
282
|
-
}
|
|
283
|
-
}, {
|
|
284
|
-
key: "handleGradients",
|
|
285
|
-
value: function handleGradients() {
|
|
286
|
-
var _this$tabListRef$curr = this.tabListRef.current,
|
|
287
|
-
scrollLeft = _this$tabListRef$curr.scrollLeft,
|
|
288
|
-
scrollWidth = _this$tabListRef$curr.scrollWidth,
|
|
289
|
-
clientWidth = _this$tabListRef$curr.clientWidth;
|
|
290
|
-
var withLeftGradients = this.shouldHaveLeftGradient(scrollLeft, gradientWidth);
|
|
291
|
-
var withRightGradients = this.shouldHaveRightGradient(scrollLeft, gradientWidth, clientWidth, scrollWidth);
|
|
292
|
-
this.setState({
|
|
293
|
-
withLeftGradients: withLeftGradients,
|
|
294
|
-
withRightGradients: withRightGradients
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
}, {
|
|
298
|
-
key: "shouldHaveLeftGradient",
|
|
299
|
-
value: function shouldHaveLeftGradient(scrollLeft, gWidth) {
|
|
300
|
-
return Math.abs(scrollLeft) > gWidth;
|
|
301
|
-
} // eslint-disable-next-line max-params
|
|
302
|
-
|
|
303
|
-
}, {
|
|
304
|
-
key: "shouldHaveRightGradient",
|
|
305
|
-
value: function shouldHaveRightGradient(scrollLeft, gWidth, clientWidth, scrollWidth) {
|
|
306
|
-
return Math.abs(scrollLeft) <= scrollWidth - (clientWidth + gWidth);
|
|
307
|
-
}
|
|
308
|
-
}, {
|
|
309
|
-
key: "setIndicatorStyle",
|
|
310
|
-
value: function setIndicatorStyle() {
|
|
311
|
-
var _this2 = this;
|
|
312
|
-
|
|
313
|
-
var activeTab = this.props.activeTab;
|
|
314
|
-
setTimeout(function () {
|
|
315
|
-
return _this2.setState({
|
|
316
|
-
indicatorStyle: _this2.getIndicatorStyles(activeTab)
|
|
317
|
-
});
|
|
318
|
-
}, 100);
|
|
319
|
-
}
|
|
320
|
-
}, {
|
|
321
|
-
key: "getActiveTabElement",
|
|
322
|
-
value: function getActiveTabElement(activeTab) {
|
|
323
|
-
var tabListEl = this.tabListRef.current;
|
|
324
|
-
var tabSelector = "[data-tab-id=\"".concat(activeTab, "\"]");
|
|
325
|
-
return tabListEl && tabListEl.querySelector(tabSelector);
|
|
326
|
-
}
|
|
327
|
-
}, {
|
|
328
|
-
key: "isElementVisible",
|
|
329
|
-
value: function isElementVisible(el, holder) {
|
|
330
|
-
var _el$getBoundingClient2 = el.getBoundingClientRect(),
|
|
331
|
-
left = _el$getBoundingClient2.left,
|
|
332
|
-
right = _el$getBoundingClient2.right,
|
|
333
|
-
width = _el$getBoundingClient2.width;
|
|
334
|
-
|
|
335
|
-
var holderRect = holder.getBoundingClientRect();
|
|
336
|
-
return left <= holderRect.left ? holderRect.left - left <= width : right - holderRect.right <= width;
|
|
337
|
-
}
|
|
338
|
-
}, {
|
|
339
|
-
key: "getVisibleDimensions",
|
|
340
|
-
value: function getVisibleDimensions(node, referenceNode) {
|
|
341
|
-
var pos = node.getBoundingClientRect();
|
|
342
|
-
var referencePos = referenceNode.getBoundingClientRect();
|
|
343
|
-
return {
|
|
344
|
-
width: Math.min(node.clientWidth, referencePos.left + referenceNode.clientWidth - pos.left, node.clientWidth - (referencePos.left - pos.left)),
|
|
345
|
-
height: Math.min(node.clientHeight, referencePos.top + referenceNode.clientHeight - pos.top, node.clientHeight - (referencePos.top - pos.top))
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
}, {
|
|
349
|
-
key: "getIndicatorStyles",
|
|
350
|
-
value: function getIndicatorStyles(activeTab) {
|
|
351
|
-
var tabListEl = this.tabListRef.current;
|
|
352
|
-
var withCarousel = this.props.withCarousel;
|
|
353
|
-
var activeTabEl = this.getActiveTabElement(activeTab);
|
|
354
|
-
if (!activeTabEl || !this.isElementVisible(activeTabEl, tabListEl)) return null;
|
|
355
|
-
var clientHeight = activeTabEl.clientHeight,
|
|
356
|
-
clientWidth = activeTabEl.clientWidth,
|
|
357
|
-
offsetTop = activeTabEl.offsetTop,
|
|
358
|
-
offsetLeft = activeTabEl.offsetLeft;
|
|
359
|
-
|
|
360
|
-
var _activeTabEl$getBound = activeTabEl.getBoundingClientRect(),
|
|
361
|
-
left = _activeTabEl$getBound.left;
|
|
362
|
-
|
|
363
|
-
var leftOff = withCarousel ? Math.max(0, left - tabListEl.getBoundingClientRect().left) : offsetLeft;
|
|
364
|
-
var width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width + 2 : clientWidth + 2;
|
|
365
|
-
return {
|
|
366
|
-
height: clientHeight,
|
|
367
|
-
left: "".concat(Math.floor(leftOff), "px"),
|
|
368
|
-
// using left and top for ie compatibility
|
|
369
|
-
top: "".concat(Math.floor(offsetTop), "px"),
|
|
370
|
-
width: width
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
}, {
|
|
374
|
-
key: "render",
|
|
375
|
-
value: function render() {
|
|
376
|
-
var _this$props3 = this.props,
|
|
377
|
-
id = _this$props3.id,
|
|
378
|
-
tabs = _this$props3.tabs,
|
|
379
|
-
activeTab = _this$props3.activeTab,
|
|
380
|
-
renderCustomTabBar = _this$props3.renderCustomTabBar,
|
|
381
|
-
withCarousel = _this$props3.withCarousel,
|
|
382
|
-
isDSMobile = _this$props3.isDSMobile,
|
|
383
|
-
flexibleTabsHeaders = _this$props3.flexibleTabsHeaders,
|
|
384
|
-
fixedTabsHeaders = _this$props3.fixedTabsHeaders;
|
|
385
|
-
var _this$state = this.state,
|
|
386
|
-
indicatorStyle = _this$state.indicatorStyle,
|
|
387
|
-
withLeftGradients = _this$state.withLeftGradients,
|
|
388
|
-
withRightGradients = _this$state.withRightGradients;
|
|
389
|
-
|
|
390
|
-
if (renderCustomTabBar) {
|
|
391
|
-
return renderCustomTabBar({
|
|
392
|
-
innerRef: this.tabListRef,
|
|
393
|
-
withCarousel: withCarousel,
|
|
394
|
-
tabsComponents: this.renderTabs(activeTab, tabs)
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
var shouldUseCarousel = !isDSMobile && withCarousel;
|
|
399
|
-
return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(StyledTabList, {
|
|
400
|
-
withCarousel: withCarousel,
|
|
401
|
-
"aria-label": id,
|
|
402
|
-
innerRef: this.tabListRef,
|
|
403
|
-
role: "tablist",
|
|
404
|
-
"data-testid": "tab-list",
|
|
405
|
-
isDSMobile: isDSMobile,
|
|
406
|
-
flexibleTabsHeaders: flexibleTabsHeaders,
|
|
407
|
-
withLeftGradients: withLeftGradients,
|
|
408
|
-
withRightGradients: withRightGradients,
|
|
409
|
-
fixedTabsHeaders: fixedTabsHeaders,
|
|
410
|
-
onScroll: this.handleTabsHeadersHorizontalScroll,
|
|
411
|
-
style: {
|
|
412
|
-
width: '100%'
|
|
413
|
-
}
|
|
414
|
-
}, /*#__PURE__*/React__default['default'].createElement(StyledTabWrapper, {
|
|
415
|
-
isDSMobile: isDSMobile,
|
|
416
|
-
flexibleTabsHeaders: flexibleTabsHeaders,
|
|
417
|
-
fixedTabsHeaders: fixedTabsHeaders
|
|
418
|
-
}, shouldUseCarousel ? /*#__PURE__*/React__default['default'].createElement(Carousel, {
|
|
419
|
-
onScroll: this.setIndicatorStyle
|
|
420
|
-
}, this.renderTabs(activeTab, tabs)) : null, !shouldUseCarousel ? this.renderTabs(activeTab, tabs) : null, /*#__PURE__*/React__default['default'].createElement(SelectionIndicator, {
|
|
421
|
-
style: indicatorStyle
|
|
422
|
-
}))));
|
|
423
|
-
}
|
|
424
|
-
}]);
|
|
425
|
-
|
|
426
|
-
return TabBar;
|
|
427
|
-
}(React.Component);
|
|
428
|
-
|
|
429
|
-
TabBar.defaultProps = {
|
|
430
|
-
showSelectionIndicator: true,
|
|
431
|
-
showSeparator: false,
|
|
432
|
-
isDSMobile: false
|
|
433
|
-
};
|
|
434
|
-
TabBar.propTypes = {
|
|
435
|
-
/** Separator between tabs */
|
|
436
|
-
showSeparator: PropTypes__default['default'].bool,
|
|
437
|
-
|
|
438
|
-
/** Blue border under selected tab */
|
|
439
|
-
showSelectionIndicator: PropTypes__default['default'].bool,
|
|
440
|
-
|
|
441
|
-
/** Tab list id */
|
|
442
|
-
id: PropTypes__default['default'].string,
|
|
443
|
-
|
|
444
|
-
/** Array of tabs */
|
|
445
|
-
tabs: PropTypes__default['default'].arrayOf(PropTypes__default['default'].element).isRequired,
|
|
446
|
-
|
|
447
|
-
/** Renders a custom tabbar */
|
|
448
|
-
renderCustomTabBar: PropTypes__default['default'].func,
|
|
449
|
-
|
|
450
|
-
/** tabId of active tab */
|
|
451
|
-
activeTab: PropTypes__default['default'].string,
|
|
452
|
-
|
|
453
|
-
/** on tab click callback */
|
|
454
|
-
onTabClick: PropTypes__default['default'].func,
|
|
455
|
-
|
|
456
|
-
/** carousel behavior */
|
|
457
|
-
withCarousel: PropTypes__default['default'].bool,
|
|
458
|
-
handleDownArrow: PropTypes__default['default'].func,
|
|
459
|
-
handleUpArrow: PropTypes__default['default'].func,
|
|
460
|
-
firstSubtabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
|
|
461
|
-
current: PropTypes__default['default'].any
|
|
462
|
-
})]),
|
|
463
|
-
lastTabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
|
|
464
|
-
current: PropTypes__default['default'].any
|
|
465
|
-
})]),
|
|
466
|
-
|
|
467
|
-
/** Whether or not it's a ds-tab from DSMobile tabs */
|
|
468
|
-
isDSMobile: PropTypes__default['default'].bool,
|
|
469
|
-
|
|
470
|
-
/** DSMobile only flexible tabs mode */
|
|
471
|
-
flexibleTabsHeaders: PropTypes__default['default'].bool,
|
|
472
|
-
|
|
473
|
-
/** DSMobile only fixed tabs mode */
|
|
474
|
-
fixedTabsHeaders: PropTypes__default['default'].bool
|
|
475
|
-
/** Whether we are in mobile mode or not */
|
|
476
|
-
|
|
477
|
-
};
|
|
478
|
-
|
|
479
|
-
module.exports = TabBar;
|
|
480
|
-
//# sourceMappingURL=TabBar.js.map
|
package/cjs/TabBar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.js","sources":["../../src/TabBar.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { debounce } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport RequiredMark from '@elliemae/ds-form/RequiredMark';\nimport memoizeOne from 'memoize-one';\nimport { ResizeObserver } from 'resize-observer';\nimport styled from 'styled-components';\nimport Carousel from './Carousel';\n\nconst blockName = 'tabs-tab-bar';\nconst gradientWidth = 24;\n\nconst StyledTabWrapper = styled.div`\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n ${({ flexibleTabsHeaders }) => (flexibleTabsHeaders ? '' : 'overflow-x: hidden')};\n`;\n\nconst StyledTabList = aggregatedClasses('div')(\n blockName,\n 'list',\n ({ withCarousel, flexibleTabsHeaders, fixedTabsHeaders, isDSMobile, withLeftGradients, withRightGradients }) => ({\n carousel: withCarousel,\n 'flexible-table-headers': isDSMobile && flexibleTabsHeaders,\n 'fixed-table-headers': isDSMobile && fixedTabsHeaders,\n 'left-gradients': isDSMobile && flexibleTabsHeaders && withLeftGradients,\n 'right-gradients': isDSMobile && flexibleTabsHeaders && withRightGradients,\n }),\n {\n propsToRemoveFromFinalElement: [\n 'withCarousel',\n 'flexibleTabsHeaders',\n 'fixedTabsHeaders',\n 'withLeftGradients',\n 'withRightGradients',\n 'isDSMobile',\n ],\n },\n);\nconst TabContainer = aggregatedClasses('button', {\n role: 'tab',\n})(blockName, 'tab', ({ isActive, showSeparator, disabled }) => ({\n active: isActive,\n separator: showSeparator,\n disabled,\n}));\nconst SelectionIndicator = aggregatedClasses('div')(blockName, 'selection-indicator');\n\nclass TabBar extends Component {\n constructor(props) {\n super(props);\n this.tabListRef = React.createRef();\n this.resizeObserver = new ResizeObserver(() => this.setIndicatorStyle());\n this.state = {\n indicatorStyle: null,\n withLeftGradients: false,\n withRightGradients: false,\n };\n this.setIndicatorStyle = this.setIndicatorStyle.bind(this);\n this.getIndicatorStyles = this.getIndicatorStyles.bind(this);\n this.handleGradients = this.handleGradients.bind(this);\n this.handleTabsHeadersHorizontalScroll = this.handleTabsHeadersHorizontalScroll.bind(this);\n this.tabsRef = {};\n }\n\n componentDidMount() {\n const { showSelectionIndicator } = this.props;\n this.resizeObserver.observe(this.tabListRef.current);\n if (showSelectionIndicator) {\n this.setIndicatorStyle();\n }\n\n window.addEventListener('resize', this.handleGradients);\n window.addEventListener('orientationchange', this.handleGradients);\n this.handleGradients();\n }\n\n componentDidUpdate(prevProps) {\n const { activeTab, showSelectionIndicator } = this.props;\n\n if (showSelectionIndicator && prevProps.activeTab !== activeTab) {\n this.setIndicatorStyle(activeTab);\n }\n }\n\n componentWillUnmount() {\n this.resizeObserver.unobserve(this.tabListRef.current);\n window.removeEventListener('resize', this.handleGradients);\n window.removeEventListener('orientationchange', this.handleGradients);\n }\n\n handleGradients() {\n const { scrollLeft, scrollWidth, clientWidth } = this.tabListRef.current;\n\n const withLeftGradients = this.shouldHaveLeftGradient(scrollLeft, gradientWidth);\n\n const withRightGradients = this.shouldHaveRightGradient(scrollLeft, gradientWidth, clientWidth, scrollWidth);\n this.setState({ withLeftGradients, withRightGradients });\n }\n\n shouldHaveLeftGradient(scrollLeft, gWidth) {\n return Math.abs(scrollLeft) > gWidth;\n }\n\n // eslint-disable-next-line max-params\n shouldHaveRightGradient(scrollLeft, gWidth, clientWidth, scrollWidth) {\n return Math.abs(scrollLeft) <= scrollWidth - (clientWidth + gWidth);\n }\n\n setIndicatorStyle() {\n const { activeTab } = this.props;\n setTimeout(\n () =>\n this.setState({\n indicatorStyle: this.getIndicatorStyles(activeTab),\n }),\n 100,\n );\n }\n\n getActiveTabElement(activeTab) {\n const tabListEl = this.tabListRef.current;\n\n const tabSelector = `[data-tab-id=\"${activeTab}\"]`;\n\n return tabListEl && tabListEl.querySelector(tabSelector);\n }\n\n isElementVisible(el, holder) {\n const { left, right, width } = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n\n return left <= holderRect.left ? holderRect.left - left <= width : right - holderRect.right <= width;\n }\n\n getVisibleDimensions(node, referenceNode) {\n const pos = node.getBoundingClientRect();\n const referencePos = referenceNode.getBoundingClientRect();\n\n return {\n width: Math.min(\n node.clientWidth,\n referencePos.left + referenceNode.clientWidth - pos.left,\n node.clientWidth - (referencePos.left - pos.left),\n ),\n height: Math.min(\n node.clientHeight,\n referencePos.top + referenceNode.clientHeight - pos.top,\n node.clientHeight - (referencePos.top - pos.top),\n ),\n };\n }\n\n getIndicatorStyles(activeTab) {\n const tabListEl = this.tabListRef.current;\n const { withCarousel } = this.props;\n const activeTabEl = this.getActiveTabElement(activeTab);\n\n if (!activeTabEl || !this.isElementVisible(activeTabEl, tabListEl)) return null;\n\n const { clientHeight, clientWidth, offsetTop, offsetLeft } = activeTabEl;\n const { left } = activeTabEl.getBoundingClientRect();\n const leftOff = withCarousel ? Math.max(0, left - tabListEl.getBoundingClientRect().left) : offsetLeft;\n const width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width + 2 : clientWidth + 2;\n return {\n height: clientHeight,\n left: `${Math.floor(leftOff)}px`, // using left and top for ie compatibility\n top: `${Math.floor(offsetTop)}px`,\n width,\n };\n }\n\n handleTabClick = (tabId, e) => {\n const { tabListRef, props } = this;\n const { onTabClick, flexibleTabsHeaders, isDSMobile } = props;\n if (isDSMobile && flexibleTabsHeaders) {\n const tabListDomEl = tabListRef.current;\n const el = e.target;\n const { offsetLeft } = el;\n const { width: elWidth } = el.getBoundingClientRect();\n const { width: listWidth } = tabListDomEl.getBoundingClientRect();\n const extraSideSpace = listWidth - elWidth;\n const leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;\n const centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;\n tabListDomEl.scrollTo({\n top: 0,\n left: centeredLeftOffset,\n behavior: 'smooth',\n });\n }\n e.preventDefault();\n onTabClick(tabId);\n };\n\n handleKeyPress = (tabId, e, index) => {\n const {\n tabs,\n handleDownArrow,\n handleUpArrow,\n // onTabClick,\n } = this.props;\n if (e.keyCode === 39) {\n const nextTab = tabs[index + 1];\n if (!nextTab && handleDownArrow) handleDownArrow(e);\n if (!nextTab) return;\n // const { props } = nextTab\n // onTabClick(props.tabId)\n this.tabsRef[index + 1]?.focus();\n }\n if (e.keyCode === 37) {\n const nextTab = tabs[index - 1];\n if (!nextTab && handleUpArrow) handleUpArrow(e);\n if (!nextTab) return;\n // const { props } = nextTab\n // onTabClick(props.tabId)\n this.tabsRef[index - 1]?.focus();\n }\n\n if (e.keyCode === 40 && handleDownArrow) {\n handleDownArrow(e);\n }\n\n if (e.keyCode === 38 && handleUpArrow) {\n handleUpArrow(e);\n }\n };\n\n handleTabsHeadersHorizontalScroll = debounce(() => {\n const { tabListRef, props } = this;\n const { flexibleTabsHeaders, isDSMobile } = props;\n if (isDSMobile && flexibleTabsHeaders) {\n const tabListDomEl = tabListRef.current;\n const { scrollLeft, scrollWidth, clientWidth } = tabListDomEl;\n\n const withLeftGradients = this.shouldHaveLeftGradient(scrollLeft, gradientWidth);\n\n const withRightGradients = this.shouldHaveRightGradient(scrollLeft, gradientWidth, clientWidth, scrollWidth);\n\n this.setState({\n withLeftGradients,\n withRightGradients,\n });\n }\n }, 50);\n\n renderTabs = memoizeOne((activeTab, tabs) => {\n const { showSeparator } = this.props;\n return React.Children.map(\n tabs,\n (tab, index) => {\n const { tabId, title, style, required, disabled } = tab.props;\n const isActive = activeTab === tabId;\n return [\n <TabContainer\n key={tabId}\n // eslint-disable-next-line no-return-assign\n ref={(t) => {\n this.tabsRef[index] = t;\n if (index === 0 && this.props.firstSubtabRef) {\n this.props.firstSubtabRef.current = t;\n }\n if (index === tabs.length - 1 && this.props.lastTabRef) {\n this.props.lastTabRef.current = t;\n }\n }}\n aria-controls={tabId}\n aria-selected={isActive}\n aria-disabled={!!disabled}\n classProps={{ isActive, showSeparator, disabled }}\n data-tab-id={tabId}\n id={`${tabId}-label`}\n onClick={(e) => {\n if (!disabled) this.handleTabClick(tabId, e, index);\n }}\n onKeyDown={(e) => {\n if (!disabled) this.handleKeyPress(tabId, e, index);\n }}\n style={style}\n tabIndex={0}\n >\n {title}\n <RequiredMark required={required} />\n </TabContainer>,\n ];\n },\n null,\n );\n });\n\n render() {\n const { id, tabs, activeTab, renderCustomTabBar, withCarousel, isDSMobile, flexibleTabsHeaders, fixedTabsHeaders } =\n this.props;\n const { indicatorStyle, withLeftGradients, withRightGradients } = this.state;\n\n if (renderCustomTabBar) {\n return renderCustomTabBar({\n innerRef: this.tabListRef,\n withCarousel,\n tabsComponents: this.renderTabs(activeTab, tabs),\n });\n }\n\n const shouldUseCarousel = !isDSMobile && withCarousel;\n\n return (\n <>\n <StyledTabList\n withCarousel={withCarousel}\n aria-label={id}\n innerRef={this.tabListRef}\n role=\"tablist\"\n data-testid=\"tab-list\"\n isDSMobile={isDSMobile}\n flexibleTabsHeaders={flexibleTabsHeaders}\n withLeftGradients={withLeftGradients}\n withRightGradients={withRightGradients}\n fixedTabsHeaders={fixedTabsHeaders}\n onScroll={this.handleTabsHeadersHorizontalScroll}\n style={{ width: '100%' }}\n >\n <StyledTabWrapper\n isDSMobile={isDSMobile}\n flexibleTabsHeaders={flexibleTabsHeaders}\n fixedTabsHeaders={fixedTabsHeaders}\n >\n {shouldUseCarousel ? (\n <Carousel onScroll={this.setIndicatorStyle}>{this.renderTabs(activeTab, tabs)}</Carousel>\n ) : null}\n {!shouldUseCarousel ? this.renderTabs(activeTab, tabs) : null}\n <SelectionIndicator style={indicatorStyle} />\n </StyledTabWrapper>\n </StyledTabList>\n </>\n );\n }\n}\n\nTabBar.defaultProps = {\n showSelectionIndicator: true,\n showSeparator: false,\n isDSMobile: false,\n};\n\nTabBar.propTypes = {\n /** Separator between tabs */\n showSeparator: PropTypes.bool,\n /** Blue border under selected tab */\n showSelectionIndicator: PropTypes.bool,\n /** Tab list id */\n id: PropTypes.string,\n /** Array of tabs */\n tabs: PropTypes.arrayOf(PropTypes.element).isRequired,\n /** Renders a custom tabbar */\n renderCustomTabBar: PropTypes.func,\n /** tabId of active tab */\n activeTab: PropTypes.string,\n /** on tab click callback */\n onTabClick: PropTypes.func,\n /** carousel behavior */\n withCarousel: PropTypes.bool,\n handleDownArrow: PropTypes.func,\n handleUpArrow: PropTypes.func,\n firstSubtabRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]),\n lastTabRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]),\n /** Whether or not it's a ds-tab from DSMobile tabs */\n isDSMobile: PropTypes.bool,\n /** DSMobile only flexible tabs mode */\n flexibleTabsHeaders: PropTypes.bool,\n /** DSMobile only fixed tabs mode */\n fixedTabsHeaders: PropTypes.bool,\n /** Whether we are in mobile mode or not */\n};\n\nexport default TabBar;\n"],"names":["blockName","gradientWidth","StyledTabWrapper","styled","div","flexibleTabsHeaders","StyledTabList","aggregatedClasses","withCarousel","fixedTabsHeaders","isDSMobile","withLeftGradients","withRightGradients","carousel","propsToRemoveFromFinalElement","TabContainer","role","isActive","showSeparator","disabled","active","separator","SelectionIndicator","TabBar","props","handleTabClick","tabId","e","tabListRef","onTabClick","tabListDomEl","current","el","target","offsetLeft","getBoundingClientRect","elWidth","width","listWidth","extraSideSpace","leftOffsetToCenter","centeredLeftOffset","scrollTo","top","left","behavior","preventDefault","handleKeyPress","index","tabs","handleDownArrow","handleUpArrow","keyCode","nextTab","tabsRef","focus","handleTabsHeadersHorizontalScroll","debounce","scrollLeft","scrollWidth","clientWidth","shouldHaveLeftGradient","shouldHaveRightGradient","setState","renderTabs","memoizeOne","activeTab","React","Children","map","tab","title","style","required","t","firstSubtabRef","length","lastTabRef","RequiredMark","createRef","resizeObserver","ResizeObserver","setIndicatorStyle","state","indicatorStyle","bind","getIndicatorStyles","handleGradients","showSelectionIndicator","observe","window","addEventListener","prevProps","unobserve","removeEventListener","gWidth","Math","abs","setTimeout","tabListEl","tabSelector","querySelector","holder","right","holderRect","node","referenceNode","pos","referencePos","min","height","clientHeight","activeTabEl","getActiveTabElement","isElementVisible","offsetTop","leftOff","max","getVisibleDimensions","floor","id","renderCustomTabBar","innerRef","tabsComponents","shouldUseCarousel","Component","defaultProps","propTypes","PropTypes","bool","string","arrayOf","element","isRequired","func","oneOfType","shape","any"],"mappings":"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"}
|
package/cjs/TabTypes.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var TabTypes = {
|
|
6
|
-
NORMAL: 'normal',
|
|
7
|
-
SUBTABS: 'subtabs'
|
|
8
|
-
};
|
|
9
|
-
var getTabTypes = function getTabTypes() {
|
|
10
|
-
return Object.keys(TabTypes).map(function (key) {
|
|
11
|
-
return TabTypes[key];
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
exports.TabTypes = TabTypes;
|
|
16
|
-
exports.getTabTypes = getTabTypes;
|
|
17
|
-
//# sourceMappingURL=TabTypes.js.map
|
package/cjs/TabTypes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabTypes.js","sources":["../../src/TabTypes.tsx"],"sourcesContent":["export const TabTypes = {\n NORMAL: 'normal',\n SUBTABS: 'subtabs',\n};\n\nexport const getTabTypes = () =>\n Object.keys(TabTypes).map((key) => TabTypes[key]);\n"],"names":["TabTypes","NORMAL","SUBTABS","getTabTypes","Object","keys","map","key"],"mappings":";;;;IAAaA,QAAQ,GAAG;AACtBC,EAAAA,MAAM,EAAE,QADc;AAEtBC,EAAAA,OAAO,EAAE;AAFa;IAKXC,WAAW,GAAG,SAAdA,WAAc;AAAA,SACzBC,MAAM,CAACC,IAAP,CAAYL,QAAZ,EAAsBM,GAAtB,CAA0B,UAACC,GAAD;AAAA,WAASP,QAAQ,CAACO,GAAD,CAAjB;AAAA,GAA1B,CADyB;AAAA;;;;;"}
|