@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.
Files changed (130) hide show
  1. package/cjs/DSTabs.js +29 -150
  2. package/cjs/DSTabsCTX.js +30 -0
  3. package/cjs/DSTabsDatatestid.js +18 -0
  4. package/cjs/DSTabsTypes.js +2 -0
  5. package/cjs/config/useCrossRef.js +17 -0
  6. package/cjs/config/useTabs.js +51 -0
  7. package/cjs/defaultProps.js +27 -0
  8. package/cjs/exportsRelated/DSTab.js +32 -0
  9. package/cjs/index.js +5 -35
  10. package/cjs/parts/carousel/Carousel.js +71 -0
  11. package/cjs/parts/carousel/styles.js +60 -0
  12. package/cjs/parts/carousel/useCarousel.js +78 -0
  13. package/cjs/parts/carousel/useCarouselCallbacks.js +72 -0
  14. package/cjs/parts/tabBar/TabBar.js +160 -0
  15. package/cjs/parts/tabBar/styles.js +199 -0
  16. package/cjs/parts/tabBar/useTabBar.js +98 -0
  17. package/cjs/parts/tabsContent/TabsContent.js +49 -0
  18. package/cjs/parts/tabsContent/styles.js +15 -0
  19. package/cjs/parts/tabsPanel/TabsPanels.js +77 -0
  20. package/cjs/parts/tabsPanel/styles.js +25 -0
  21. package/cjs/propTypes.js +33 -0
  22. package/cjs/utils/constants.js +29 -0
  23. package/cjs/utils/helpers.js +47 -0
  24. package/cjs/utils/hooks/useKeyboardNavigation.js +61 -0
  25. package/cjs/utils/hooks/useTabsCallbacks.js +59 -0
  26. package/esm/DSTabs.js +31 -152
  27. package/esm/DSTabsCTX.js +25 -0
  28. package/esm/DSTabsDatatestid.js +14 -0
  29. package/esm/DSTabsTypes.js +1 -0
  30. package/esm/config/useCrossRef.js +13 -0
  31. package/esm/config/useTabs.js +47 -0
  32. package/esm/defaultProps.js +23 -0
  33. package/esm/exportsRelated/DSTab.js +21 -0
  34. package/esm/index.js +4 -33
  35. package/esm/parts/carousel/Carousel.js +63 -0
  36. package/esm/parts/carousel/styles.js +49 -0
  37. package/esm/parts/carousel/useCarousel.js +70 -0
  38. package/esm/parts/carousel/useCarouselCallbacks.js +68 -0
  39. package/esm/parts/tabBar/TabBar.js +151 -0
  40. package/esm/parts/tabBar/styles.js +185 -0
  41. package/esm/parts/tabBar/useTabBar.js +90 -0
  42. package/esm/parts/tabsContent/TabsContent.js +40 -0
  43. package/esm/parts/tabsContent/styles.js +7 -0
  44. package/esm/parts/tabsPanel/TabsPanels.js +67 -0
  45. package/esm/parts/tabsPanel/styles.js +17 -0
  46. package/esm/propTypes.js +28 -0
  47. package/esm/utils/constants.js +21 -0
  48. package/esm/utils/helpers.js +37 -0
  49. package/esm/utils/hooks/useKeyboardNavigation.js +57 -0
  50. package/esm/utils/hooks/useTabsCallbacks.js +55 -0
  51. package/package.json +134 -18
  52. package/types/DSTabs.d.ts +14 -0
  53. package/types/DSTabsCTX.d.ts +4 -0
  54. package/types/DSTabsDatatestid.d.ts +12 -0
  55. package/types/DSTabsTypes.d.ts +202 -0
  56. package/types/config/useCrossRef.d.ts +2 -0
  57. package/types/config/useTabs.d.ts +2 -0
  58. package/types/defaultProps.d.ts +2 -0
  59. package/types/exportsRelated/DSTab.d.ts +14 -0
  60. package/types/index.d.ts +5 -0
  61. package/types/parts/carousel/Carousel.d.ts +3 -0
  62. package/types/parts/carousel/styles.d.ts +9 -0
  63. package/types/parts/carousel/useCarousel.d.ts +2 -0
  64. package/types/parts/carousel/useCarouselCallbacks.d.ts +2 -0
  65. package/types/parts/tabBar/TabBar.d.ts +2 -0
  66. package/types/parts/tabBar/styles.d.ts +7 -0
  67. package/types/parts/tabBar/useTabBar.d.ts +2 -0
  68. package/types/parts/tabsContent/TabsContent.d.ts +2 -0
  69. package/types/parts/tabsContent/styles.d.ts +1 -0
  70. package/types/parts/tabsPanel/TabsPanels.d.ts +2 -0
  71. package/types/parts/tabsPanel/styles.d.ts +2 -0
  72. package/types/propTypes.d.ts +54 -0
  73. package/types/tests/DSTabs.callbacks.test.d.ts +1 -0
  74. package/types/tests/DSTabs.func.test.d.ts +1 -0
  75. package/types/tests/DSTabs.keyboard.test.d.ts +1 -0
  76. package/types/tests/DSTabs.test.d.ts +1 -0
  77. package/types/utils/constants.d.ts +19 -0
  78. package/types/utils/helpers.d.ts +8 -0
  79. package/types/utils/hooks/useKeyboardNavigation.d.ts +2 -0
  80. package/types/utils/hooks/useTabsCallbacks.d.ts +2 -0
  81. package/Carousel/package.json +0 -10
  82. package/DSTab/package.json +0 -10
  83. package/DSTabs/package.json +0 -10
  84. package/PanelContainer/package.json +0 -10
  85. package/SubTabBar/package.json +0 -10
  86. package/TabBar/package.json +0 -10
  87. package/TabTypes/package.json +0 -10
  88. package/TabsImpl/package.json +0 -10
  89. package/TabsPanels/package.json +0 -10
  90. package/cjs/Carousel.js +0 -219
  91. package/cjs/Carousel.js.map +0 -1
  92. package/cjs/DSTab.js +0 -50
  93. package/cjs/DSTab.js.map +0 -1
  94. package/cjs/DSTabs.js.map +0 -1
  95. package/cjs/PanelContainer.js +0 -45
  96. package/cjs/PanelContainer.js.map +0 -1
  97. package/cjs/SubTabBar.js +0 -81
  98. package/cjs/SubTabBar.js.map +0 -1
  99. package/cjs/TabBar.js +0 -480
  100. package/cjs/TabBar.js.map +0 -1
  101. package/cjs/TabTypes.js +0 -17
  102. package/cjs/TabTypes.js.map +0 -1
  103. package/cjs/TabsImpl.js +0 -173
  104. package/cjs/TabsImpl.js.map +0 -1
  105. package/cjs/TabsPanels.js +0 -116
  106. package/cjs/TabsPanels.js.map +0 -1
  107. package/cjs/index.js.map +0 -1
  108. package/cjs/useResize.js +0 -25
  109. package/cjs/useResize.js.map +0 -1
  110. package/esm/Carousel.js +0 -209
  111. package/esm/Carousel.js.map +0 -1
  112. package/esm/DSTab.js +0 -40
  113. package/esm/DSTab.js.map +0 -1
  114. package/esm/DSTabs.js.map +0 -1
  115. package/esm/PanelContainer.js +0 -37
  116. package/esm/PanelContainer.js.map +0 -1
  117. package/esm/SubTabBar.js +0 -74
  118. package/esm/SubTabBar.js.map +0 -1
  119. package/esm/TabBar.js +0 -464
  120. package/esm/TabBar.js.map +0 -1
  121. package/esm/TabTypes.js +0 -12
  122. package/esm/TabTypes.js.map +0 -1
  123. package/esm/TabsImpl.js +0 -163
  124. package/esm/TabsImpl.js.map +0 -1
  125. package/esm/TabsPanels.js +0 -103
  126. package/esm/TabsPanels.js.map +0 -1
  127. package/esm/index.js.map +0 -1
  128. package/esm/useResize.js +0 -21
  129. package/esm/useResize.js.map +0 -1
  130. 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
@@ -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;;;;;"}