@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/TabsImpl.js DELETED
@@ -1,173 +0,0 @@
1
- 'use strict';
2
-
3
- var _extends = require('@babel/runtime/helpers/extends');
4
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var React = require('react');
7
- var PropTypes = require('prop-types');
8
- var dsClassnames = require('@elliemae/ds-classnames');
9
- var TabsPanels = require('./TabsPanels.js');
10
- var TabBar = require('./TabBar.js');
11
- var SubTabBar = require('./SubTabBar.js');
12
- var TabTypes = require('./TabTypes.js');
13
- require('@babel/runtime/helpers/classCallCheck');
14
- require('@babel/runtime/helpers/createClass');
15
- require('@babel/runtime/helpers/inherits');
16
- require('@babel/runtime/helpers/possibleConstructorReturn');
17
- require('@babel/runtime/helpers/getPrototypeOf');
18
- require('memoize-one');
19
- require('react-swipeable-views');
20
- require('./PanelContainer.js');
21
- require('@babel/runtime/helpers/objectWithoutProperties');
22
- require('@babel/runtime/helpers/assertThisInitialized');
23
- require('lodash');
24
- require('@elliemae/ds-form/RequiredMark');
25
- require('resize-observer');
26
- require('styled-components');
27
- require('./Carousel.js');
28
- require('@elliemae/ds-icons');
29
- require('@elliemae/ds-button');
30
- require('./useResize.js');
31
-
32
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
33
-
34
- var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
35
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
36
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
37
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
39
-
40
- var _TabBarComponentsByTy;
41
- var blockName = 'tabs';
42
- var StyledTabsContainer = dsClassnames.aggregatedClasses('div')(blockName);
43
- var StyledTabBarContainer = dsClassnames.aggregatedClasses('div')(blockName, 'tab-bar-container');
44
- var TabBarComponentsByType = (_TabBarComponentsByTy = {}, _defineProperty__default['default'](_TabBarComponentsByTy, TabTypes.TabTypes.NORMAL, TabBar), _defineProperty__default['default'](_TabBarComponentsByTy, TabTypes.TabTypes.SUBTABS, SubTabBar), _TabBarComponentsByTy);
45
-
46
- var TabsImpl = function TabsImpl(props) {
47
- var _tabs$, _tabs$$props;
48
-
49
- var animated = props.animated,
50
- tabs = props.children,
51
- type = props.type,
52
- tabBarExtraContent = props.tabBarExtraContent,
53
- onTabChange = props.onTabChange,
54
- enableMouseEvents = props.enableMouseEvents,
55
- innerRef = props.innerRef,
56
- onlyRenderActiveTab = props.onlyRenderActiveTab,
57
- containerProps = props.containerProps,
58
- allowTextSelection = props.allowTextSelection,
59
- tabsListAriaLabel = props.tabsListAriaLabel,
60
- activeTab = props.activeTab,
61
- firstSubtabRef = props.firstSubtabRef,
62
- lastTabRef = props.lastTabRef,
63
- withCarousel = props.withCarousel,
64
- flexibleTabsHeaders = props.flexibleTabsHeaders,
65
- fixedTabsHeaders = props.fixedTabsHeaders,
66
- isDSMobile = props.isDSMobile;
67
-
68
- var _useState = React.useState(activeTab || (tabs === null || tabs === void 0 ? void 0 : (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : (_tabs$$props = _tabs$.props) === null || _tabs$$props === void 0 ? void 0 : _tabs$$props.tabId)),
69
- _useState2 = _slicedToArray__default['default'](_useState, 2),
70
- actualActiveTab = _useState2[0],
71
- setActualActiveTab = _useState2[1];
72
-
73
- var firstTabRefByParent = React.useRef(null);
74
- var lastTabRefByParent = React.useRef(null);
75
- React.useEffect(function () {
76
- if (activeTab) {
77
- setActualActiveTab(activeTab);
78
- }
79
- }, [activeTab]);
80
- var handleTabClick = React.useCallback(function (tab) {
81
- setActualActiveTab(tab);
82
- onTabChange(tab);
83
- }, [onTabChange]);
84
- var handleDownArrow = React.useCallback(function (e) {
85
- var _firstTabRefByParent$;
86
-
87
- e.preventDefault();
88
- e.stopPropagation();
89
- if (firstTabRefByParent !== null && firstTabRefByParent !== void 0 && firstTabRefByParent.current) (_firstTabRefByParent$ = firstTabRefByParent.current) === null || _firstTabRefByParent$ === void 0 ? void 0 : _firstTabRefByParent$.focus();
90
- }, [firstTabRefByParent]);
91
- var handleUpArrow = React.useCallback(function (e) {
92
- var _lastTabRef$current;
93
-
94
- e.preventDefault();
95
- e.stopPropagation();
96
- if (lastTabRef !== null && lastTabRef !== void 0 && lastTabRef.current) (_lastTabRef$current = lastTabRef.current) === null || _lastTabRef$current === void 0 ? void 0 : _lastTabRef$current.focus();
97
- }, [lastTabRef]);
98
- var PureTabBarComponent = React.useMemo(function () {
99
- var TabBarComponent = TabBarComponentsByType[type] || TabBar;
100
- return /*#__PURE__*/React__default['default'].createElement(TabBarComponent, {
101
- withCarousel: withCarousel,
102
- activeTab: actualActiveTab,
103
- onTabClick: handleTabClick,
104
- tabs: tabs,
105
- firstSubtabRef: firstSubtabRef,
106
- lastTabRef: lastTabRefByParent,
107
- handleDownArrow: handleDownArrow,
108
- handleUpArrow: handleUpArrow,
109
- isDSMobile: isDSMobile,
110
- flexibleTabsHeaders: flexibleTabsHeaders,
111
- fixedTabsHeaders: fixedTabsHeaders
112
- });
113
- }, [type, withCarousel, actualActiveTab, handleTabClick, tabs, firstSubtabRef, lastTabRefByParent, handleDownArrow, handleUpArrow, isDSMobile]);
114
- var PureTabsPanels = React.useMemo(function () {
115
- return /*#__PURE__*/React__default['default'].createElement(TabsPanels, {
116
- activeTab: actualActiveTab,
117
- allowTextSelection: allowTextSelection,
118
- animated: animated,
119
- enableMouseEvents: enableMouseEvents,
120
- onlyRenderActiveTab: onlyRenderActiveTab,
121
- onTabChange: handleTabClick,
122
- tabsComponents: tabs,
123
- lastTabRef: lastTabRefByParent,
124
- firstTabRefByParent: firstTabRefByParent
125
- });
126
- }, [actualActiveTab, allowTextSelection, animated, enableMouseEvents, onlyRenderActiveTab, handleTabClick, tabs, lastTabRefByParent, firstTabRefByParent]);
127
- var PureTabsImpl = React.useMemo(function () {
128
- return /*#__PURE__*/React__default['default'].createElement(StyledTabsContainer, _extends__default['default']({}, containerProps, {
129
- "aria-label": tabsListAriaLabel,
130
- innerRef: innerRef,
131
- role: "tablist"
132
- }), /*#__PURE__*/React__default['default'].createElement(StyledTabBarContainer, null, PureTabBarComponent, tabBarExtraContent), PureTabsPanels);
133
- }, [containerProps, tabsListAriaLabel, innerRef, PureTabBarComponent, tabBarExtraContent, PureTabsPanels]);
134
- return PureTabsImpl;
135
- };
136
-
137
- TabsImpl.propTypes = {
138
- animated: PropTypes__default['default'].bool,
139
- enableMouseEvents: PropTypes__default['default'].bool,
140
- allowTextSelection: PropTypes__default['default'].bool,
141
- onTabChange: PropTypes__default['default'].func,
142
- type: PropTypes__default['default'].oneOf(['normal', 'subtabs']),
143
- tabBarExtraContent: PropTypes__default['default'].element,
144
- onlyRenderActiveTab: PropTypes__default['default'].bool,
145
- withCarousel: PropTypes__default['default'].bool,
146
- activeTab: PropTypes__default['default'].string,
147
- children: PropTypes__default['default'].arrayOf(PropTypes__default['default'].shape({
148
- type: PropTypes__default['default'].any
149
- })).isRequired,
150
- tabsListAriaLabel: PropTypes__default['default'].string,
151
- containerProps: PropTypes__default['default'].object,
152
- innerRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
153
- current: PropTypes__default['default'].any
154
- })]),
155
- firstSubtabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
156
- current: PropTypes__default['default'].any
157
- })]),
158
- lastTabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
159
- current: PropTypes__default['default'].any
160
- })]),
161
-
162
- /** Whether or not it's a ds-tab from DSMobile tabs */
163
- isDSMobile: PropTypes__default['default'].bool,
164
-
165
- /** DSMobile only flexible tabs mode */
166
- flexibleTabsHeaders: PropTypes__default['default'].bool,
167
-
168
- /** DSMobile only fixed tabs mode */
169
- fixedTabsHeaders: PropTypes__default['default'].bool
170
- };
171
-
172
- module.exports = TabsImpl;
173
- //# sourceMappingURL=TabsImpl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsImpl.js","sources":["../../src/TabsImpl.tsx"],"sourcesContent":["/* eslint-disable indent */\n/* eslint-disable max-lines */\nimport React, {\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport TabsPanels from './TabsPanels';\nimport TabBar from './TabBar';\nimport SubTabBar from './SubTabBar';\nimport { TabTypes } from './TabTypes';\n\nconst blockName = 'tabs';\n\nconst StyledTabsContainer = aggregatedClasses('div')(blockName);\nconst StyledTabBarContainer = aggregatedClasses('div')(\n blockName,\n 'tab-bar-container',\n);\n\nconst TabBarComponentsByType = {\n [TabTypes.NORMAL]: TabBar,\n [TabTypes.SUBTABS]: SubTabBar,\n};\n\nconst TabsImpl = (props) => {\n const {\n animated,\n children: tabs,\n type,\n tabBarExtraContent,\n onTabChange,\n enableMouseEvents,\n innerRef,\n onlyRenderActiveTab,\n containerProps,\n allowTextSelection,\n tabsListAriaLabel,\n activeTab,\n firstSubtabRef,\n lastTabRef,\n withCarousel,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n isDSMobile,\n } = props;\n const [actualActiveTab, setActualActiveTab] = useState(\n activeTab || tabs?.[0]?.props?.tabId,\n );\n const firstTabRefByParent = useRef(null);\n const lastTabRefByParent = useRef(null);\n\n useEffect(() => {\n if (activeTab) {\n setActualActiveTab(activeTab);\n }\n }, [activeTab]);\n\n const handleTabClick = useCallback(\n (tab) => {\n setActualActiveTab(tab);\n onTabChange(tab);\n },\n [onTabChange],\n );\n const handleDownArrow = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (firstTabRefByParent?.current) firstTabRefByParent.current?.focus();\n },\n [firstTabRefByParent],\n );\n const handleUpArrow = useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (lastTabRef?.current) lastTabRef.current?.focus();\n },\n [lastTabRef],\n );\n\n const PureTabBarComponent = useMemo(() => {\n const TabBarComponent = TabBarComponentsByType[type] || TabBar;\n return (\n <TabBarComponent\n withCarousel={withCarousel}\n activeTab={actualActiveTab}\n onTabClick={handleTabClick}\n tabs={tabs}\n firstSubtabRef={firstSubtabRef}\n lastTabRef={lastTabRefByParent}\n handleDownArrow={handleDownArrow}\n handleUpArrow={handleUpArrow}\n isDSMobile={isDSMobile}\n flexibleTabsHeaders={flexibleTabsHeaders}\n fixedTabsHeaders={fixedTabsHeaders}\n />\n );\n }, [\n type,\n withCarousel,\n actualActiveTab,\n handleTabClick,\n tabs,\n firstSubtabRef,\n lastTabRefByParent,\n handleDownArrow,\n handleUpArrow,\n isDSMobile,\n ]);\n const PureTabsPanels = useMemo(\n () => (\n <TabsPanels\n activeTab={actualActiveTab}\n allowTextSelection={allowTextSelection}\n animated={animated}\n enableMouseEvents={enableMouseEvents}\n onlyRenderActiveTab={onlyRenderActiveTab}\n onTabChange={handleTabClick}\n tabsComponents={tabs}\n lastTabRef={lastTabRefByParent}\n firstTabRefByParent={firstTabRefByParent}\n />\n ),\n [\n actualActiveTab,\n allowTextSelection,\n animated,\n enableMouseEvents,\n onlyRenderActiveTab,\n handleTabClick,\n tabs,\n lastTabRefByParent,\n firstTabRefByParent,\n ],\n );\n const PureTabsImpl = useMemo(\n () => (\n <StyledTabsContainer\n {...containerProps}\n aria-label={tabsListAriaLabel}\n innerRef={innerRef}\n role=\"tablist\"\n >\n <StyledTabBarContainer>\n {PureTabBarComponent}\n {tabBarExtraContent}\n </StyledTabBarContainer>\n {PureTabsPanels}\n </StyledTabsContainer>\n ),\n [\n containerProps,\n tabsListAriaLabel,\n innerRef,\n PureTabBarComponent,\n tabBarExtraContent,\n PureTabsPanels,\n ],\n );\n return PureTabsImpl;\n};\n\nTabsImpl.propTypes = {\n animated: PropTypes.bool,\n enableMouseEvents: PropTypes.bool,\n allowTextSelection: PropTypes.bool,\n onTabChange: PropTypes.func,\n type: PropTypes.oneOf(['normal', 'subtabs']),\n tabBarExtraContent: PropTypes.element,\n onlyRenderActiveTab: PropTypes.bool,\n withCarousel: PropTypes.bool,\n activeTab: PropTypes.string,\n children: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.any,\n }),\n ).isRequired,\n tabsListAriaLabel: PropTypes.string,\n containerProps: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]),\n firstSubtabRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]),\n lastTabRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]),\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};\n\nexport default TabsImpl;\n"],"names":["blockName","StyledTabsContainer","aggregatedClasses","StyledTabBarContainer","TabBarComponentsByType","TabTypes","NORMAL","TabBar","SUBTABS","SubTabBar","TabsImpl","props","animated","tabs","children","type","tabBarExtraContent","onTabChange","enableMouseEvents","innerRef","onlyRenderActiveTab","containerProps","allowTextSelection","tabsListAriaLabel","activeTab","firstSubtabRef","lastTabRef","withCarousel","flexibleTabsHeaders","fixedTabsHeaders","isDSMobile","useState","tabId","actualActiveTab","setActualActiveTab","firstTabRefByParent","useRef","lastTabRefByParent","useEffect","handleTabClick","useCallback","tab","handleDownArrow","e","preventDefault","stopPropagation","current","focus","handleUpArrow","PureTabBarComponent","useMemo","TabBarComponent","React","PureTabsPanels","PureTabsImpl","propTypes","PropTypes","bool","func","oneOf","element","string","arrayOf","shape","any","isRequired","object","oneOfType"],"mappings":"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"}
package/cjs/TabsPanels.js DELETED
@@ -1,116 +0,0 @@
1
- 'use strict';
2
-
3
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
- var _createClass = require('@babel/runtime/helpers/createClass');
5
- var _inherits = require('@babel/runtime/helpers/inherits');
6
- var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
7
- var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
8
- var React = require('react');
9
- var memoizeOne = require('memoize-one');
10
- var dsClassnames = require('@elliemae/ds-classnames');
11
- var SwipeableViews = require('react-swipeable-views');
12
- var PanelContainer = require('./PanelContainer.js');
13
- require('@babel/runtime/helpers/objectWithoutProperties');
14
- require('prop-types');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
19
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
20
- var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
21
- var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
22
- var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
23
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
- var memoizeOne__default = /*#__PURE__*/_interopDefaultLegacy(memoizeOne);
25
- var SwipeableViews__default = /*#__PURE__*/_interopDefaultLegacy(SwipeableViews);
26
-
27
- 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); }; }
28
-
29
- 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; } }
30
- var blockName = 'tabs-panels';
31
- var Panels = dsClassnames.aggregatedClasses('div')(blockName);
32
-
33
- var getIndexById = function getIndexById(children, activeId) {
34
- return children && children.findIndex(function (item) {
35
- return item.props.tabId === activeId;
36
- });
37
- };
38
-
39
- var getIdByIndex = function getIdByIndex(children, index) {
40
- return children && children[index].props.tabId;
41
- };
42
-
43
- var TabsPanels = /*#__PURE__*/function (_Component) {
44
- _inherits__default['default'](TabsPanels, _Component);
45
-
46
- var _super = _createSuper(TabsPanels);
47
-
48
- function TabsPanels() {
49
- var _this;
50
-
51
- _classCallCheck__default['default'](this, TabsPanels);
52
-
53
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
- args[_key] = arguments[_key];
55
- }
56
-
57
- _this = _super.call.apply(_super, [this].concat(args));
58
- _this.renderPanels = memoizeOne__default['default'](function (activeTab, tabsComponents) {
59
- var _this$props = _this.props,
60
- animated = _this$props.animated,
61
- onlyRenderActiveTab = _this$props.onlyRenderActiveTab,
62
- allowTextSelection = _this$props.allowTextSelection;
63
- return React__default['default'].Children.map(tabsComponents, function (tab) {
64
- var _tab$props = tab.props,
65
- panelId = _tab$props.tabId,
66
- style = _tab$props.style,
67
- content = _tab$props.children;
68
- var isActive = activeTab === panelId;
69
- var shouldRender = !onlyRenderActiveTab || isActive;
70
- return /*#__PURE__*/React__default['default'].createElement(PanelContainer, {
71
- key: panelId,
72
- "aria-labelledby": "".concat(panelId, "-label"),
73
- lastTabRef: _this.props.lastTabRef,
74
- firstSubtabRef: _this.props.firstTabRefByParent,
75
- classProps: {
76
- isActive: isActive
77
- },
78
- "data-panel-id": panelId,
79
- hidden: !animated && !isActive,
80
- onMouseDown: function onMouseDown(e) {
81
- var role = e.target.getAttribute('role');
82
- if (role !== 'tabpanel' && allowTextSelection) e.stopPropagation();
83
- },
84
- role: "tabpanel",
85
- style: style
86
- }, shouldRender && content);
87
- }, null);
88
- });
89
- return _this;
90
- }
91
-
92
- _createClass__default['default'](TabsPanels, [{
93
- key: "render",
94
- value: function render() {
95
- var _this$props2 = this.props,
96
- activeTab = _this$props2.activeTab,
97
- tabsComponents = _this$props2.tabsComponents,
98
- animated = _this$props2.animated,
99
- onTabChange = _this$props2.onTabChange,
100
- enableMouseEvents = _this$props2.enableMouseEvents;
101
- var panels = animated ? /*#__PURE__*/React__default['default'].createElement(SwipeableViews__default['default'], {
102
- enableMouseEvents: enableMouseEvents,
103
- index: getIndexById(tabsComponents, activeTab),
104
- onChangeIndex: function onChangeIndex(index) {
105
- return onTabChange(getIdByIndex(tabsComponents, index));
106
- }
107
- }, this.renderPanels(activeTab, tabsComponents)) : this.renderPanels(activeTab, tabsComponents);
108
- return /*#__PURE__*/React__default['default'].createElement(Panels, null, panels);
109
- }
110
- }]);
111
-
112
- return TabsPanels;
113
- }(React.Component);
114
-
115
- module.exports = TabsPanels;
116
- //# sourceMappingURL=TabsPanels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsPanels.js","sources":["../../src/TabsPanels.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport SwipeableViews from 'react-swipeable-views';\n// eslint-disable-next-line import/extensions\nimport PanelContainer from './PanelContainer';\n\nconst blockName = 'tabs-panels';\n\nconst Panels = aggregatedClasses('div')(blockName);\n\nconst getIndexById = (children, activeId) =>\n children && children.findIndex((item) => item.props.tabId === activeId);\nconst getIdByIndex = (children, index) =>\n children && children[index].props.tabId;\n\nexport default class TabsPanels extends Component {\n renderPanels = memoizeOne((activeTab, tabsComponents) => {\n const { animated, onlyRenderActiveTab, allowTextSelection } = this.props;\n return React.Children.map(\n tabsComponents,\n (tab) => {\n const { tabId: panelId, style, children: content } = tab.props;\n const isActive = activeTab === panelId;\n const shouldRender = !onlyRenderActiveTab || isActive;\n return (\n <PanelContainer\n key={panelId}\n aria-labelledby={`${panelId}-label`}\n lastTabRef={this.props.lastTabRef}\n firstSubtabRef={this.props.firstTabRefByParent}\n classProps={{ isActive }}\n data-panel-id={panelId}\n hidden={!animated && !isActive}\n onMouseDown={(e) => {\n const role = e.target.getAttribute('role');\n if (role !== 'tabpanel' && allowTextSelection)\n e.stopPropagation();\n }}\n role=\"tabpanel\"\n style={style}\n >\n {shouldRender && content}\n </PanelContainer>\n );\n },\n null,\n );\n });\n\n render() {\n const {\n activeTab,\n tabsComponents,\n animated,\n onTabChange,\n enableMouseEvents,\n } = this.props;\n const panels = animated ? (\n <SwipeableViews\n enableMouseEvents={enableMouseEvents}\n index={getIndexById(tabsComponents, activeTab)}\n onChangeIndex={(index) =>\n onTabChange(getIdByIndex(tabsComponents, index))\n }\n >\n {this.renderPanels(activeTab, tabsComponents)}\n </SwipeableViews>\n ) : (\n this.renderPanels(activeTab, tabsComponents)\n );\n return <Panels>{panels}</Panels>;\n }\n}\n"],"names":["blockName","Panels","aggregatedClasses","getIndexById","children","activeId","findIndex","item","props","tabId","getIdByIndex","index","TabsPanels","renderPanels","memoizeOne","activeTab","tabsComponents","animated","onlyRenderActiveTab","allowTextSelection","React","Children","map","tab","panelId","style","content","isActive","shouldRender","lastTabRef","firstTabRefByParent","e","role","target","getAttribute","stopPropagation","onTabChange","enableMouseEvents","panels","SwipeableViews","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,SAAS,GAAG,aAAlB;AAEA,IAAMC,MAAM,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,CAAf;;AAEA,IAAMG,YAAY,GAAG,SAAfA,YAAe,CAACC,QAAD,EAAWC,QAAX;AAAA,SACnBD,QAAQ,IAAIA,QAAQ,CAACE,SAAT,CAAmB,UAACC,IAAD;AAAA,WAAUA,IAAI,CAACC,KAAL,CAAWC,KAAX,KAAqBJ,QAA/B;AAAA,GAAnB,CADO;AAAA,CAArB;;AAEA,IAAMK,YAAY,GAAG,SAAfA,YAAe,CAACN,QAAD,EAAWO,KAAX;AAAA,SACnBP,QAAQ,IAAIA,QAAQ,CAACO,KAAD,CAAR,CAAgBH,KAAhB,CAAsBC,KADf;AAAA,CAArB;;IAGqBG;;;;;;;;;;;;;;;UACnBC,eAAeC,8BAAU,CAAC,UAACC,SAAD,EAAYC,cAAZ,EAA+B;AACvD,wBAA8D,MAAKR,KAAnE;AAAA,UAAQS,QAAR,eAAQA,QAAR;AAAA,UAAkBC,mBAAlB,eAAkBA,mBAAlB;AAAA,UAAuCC,kBAAvC,eAAuCA,kBAAvC;AACA,aAAOC,yBAAK,CAACC,QAAN,CAAeC,GAAf,CACLN,cADK,EAEL,UAACO,GAAD,EAAS;AACP,yBAAqDA,GAAG,CAACf,KAAzD;AAAA,YAAegB,OAAf,cAAQf,KAAR;AAAA,YAAwBgB,KAAxB,cAAwBA,KAAxB;AAAA,YAAyCC,OAAzC,cAA+BtB,QAA/B;AACA,YAAMuB,QAAQ,GAAGZ,SAAS,KAAKS,OAA/B;AACA,YAAMI,YAAY,GAAG,CAACV,mBAAD,IAAwBS,QAA7C;AACA,4BACEP,wCAAC,cAAD;AACE,UAAA,GAAG,EAAEI,OADP;AAEE,uCAAoBA,OAApB,WAFF;AAGE,UAAA,UAAU,EAAE,MAAKhB,KAAL,CAAWqB,UAHzB;AAIE,UAAA,cAAc,EAAE,MAAKrB,KAAL,CAAWsB,mBAJ7B;AAKE,UAAA,UAAU,EAAE;AAAEH,YAAAA,QAAQ,EAARA;AAAF,WALd;AAME,2BAAeH,OANjB;AAOE,UAAA,MAAM,EAAE,CAACP,QAAD,IAAa,CAACU,QAPxB;AAQE,UAAA,WAAW,EAAE,qBAACI,CAAD,EAAO;AAClB,gBAAMC,IAAI,GAAGD,CAAC,CAACE,MAAF,CAASC,YAAT,CAAsB,MAAtB,CAAb;AACA,gBAAIF,IAAI,KAAK,UAAT,IAAuBb,kBAA3B,EACEY,CAAC,CAACI,eAAF;AACH,WAZH;AAaE,UAAA,IAAI,EAAC,UAbP;AAcE,UAAA,KAAK,EAAEV;AAdT,WAgBGG,YAAY,IAAIF,OAhBnB,CADF;AAoBD,OA1BI,EA2BL,IA3BK,CAAP;AA6BD,KA/BwB;;;;;;WAiCzB,kBAAS;AACP,yBAMI,KAAKlB,KANT;AAAA,UACEO,SADF,gBACEA,SADF;AAAA,UAEEC,cAFF,gBAEEA,cAFF;AAAA,UAGEC,QAHF,gBAGEA,QAHF;AAAA,UAIEmB,WAJF,gBAIEA,WAJF;AAAA,UAKEC,iBALF,gBAKEA,iBALF;AAOA,UAAMC,MAAM,GAAGrB,QAAQ,gBACrBG,wCAACmB,kCAAD;AACE,QAAA,iBAAiB,EAAEF,iBADrB;AAEE,QAAA,KAAK,EAAElC,YAAY,CAACa,cAAD,EAAiBD,SAAjB,CAFrB;AAGE,QAAA,aAAa,EAAE,uBAACJ,KAAD;AAAA,iBACbyB,WAAW,CAAC1B,YAAY,CAACM,cAAD,EAAiBL,KAAjB,CAAb,CADE;AAAA;AAHjB,SAOG,KAAKE,YAAL,CAAkBE,SAAlB,EAA6BC,cAA7B,CAPH,CADqB,GAWrB,KAAKH,YAAL,CAAkBE,SAAlB,EAA6BC,cAA7B,CAXF;AAaA,0BAAOI,wCAAC,MAAD,QAASkB,MAAT,CAAP;AACD;;;;EAxDqCE;;;;"}
package/cjs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/cjs/useResize.js DELETED
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var lodash = require('lodash');
7
-
8
- function useResize(ref, callback) {
9
- var _ref$current;
10
-
11
- var _ref = (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getBoundingClientRect()) || {
12
- right: null,
13
- left: null
14
- },
15
- right = _ref.right,
16
- left = _ref.left;
17
-
18
- var handleResize = lodash.debounce(callback, 300);
19
- React.useLayoutEffect(function () {
20
- handleResize();
21
- }, [right, left]);
22
- }
23
-
24
- exports.useResize = useResize;
25
- //# sourceMappingURL=useResize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useResize.js","sources":["../../src/useResize.tsx"],"sourcesContent":["import { useLayoutEffect } from 'react';\nimport { debounce } from 'lodash';\n\nexport function useResize(ref, callback) {\n const { right, left } = ref?.current?.getBoundingClientRect() || {\n right: null,\n left: null,\n };\n const handleResize = debounce(callback, 300);\n\n useLayoutEffect(() => {\n handleResize();\n }, [right, left]);\n}\n"],"names":["useResize","ref","callback","current","getBoundingClientRect","right","left","handleResize","debounce","useLayoutEffect"],"mappings":";;;;;;;AAGO,SAASA,SAAT,CAAmBC,GAAnB,EAAwBC,QAAxB,EAAkC;AAAA;;AACvC,aAAwB,CAAAD,GAAG,SAAH,IAAAA,GAAG,WAAH,4BAAAA,GAAG,CAAEE,OAAL,8DAAcC,qBAAd,OAAyC;AAC/DC,IAAAA,KAAK,EAAE,IADwD;AAE/DC,IAAAA,IAAI,EAAE;AAFyD,GAAjE;AAAA,MAAQD,KAAR,QAAQA,KAAR;AAAA,MAAeC,IAAf,QAAeA,IAAf;;AAIA,MAAMC,YAAY,GAAGC,eAAQ,CAACN,QAAD,EAAW,GAAX,CAA7B;AAEAO,EAAAA,qBAAe,CAAC,YAAM;AACpBF,IAAAA,YAAY;AACb,GAFc,EAEZ,CAACF,KAAD,EAAQC,IAAR,CAFY,CAAf;AAGD;;;;"}
package/esm/Carousel.js DELETED
@@ -1,209 +0,0 @@
1
- import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
2
- import React, { useRef, useState, useEffect } from 'react';
3
- import PropTypes from 'prop-types';
4
- import { ChevronLeft, ChevronRight } from '@elliemae/ds-icons';
5
- import styled from 'styled-components';
6
- import DSButton from '@elliemae/ds-button';
7
- import { useResize } from './useResize.js';
8
- import 'lodash';
9
-
10
- var CarouselBtn = /*#__PURE__*/styled(DSButton).withConfig({
11
- componentId: "sc-1317h31-0"
12
- })(["position:absolute;z-index:1;margin:0;&:focus{& span{background-color:", ";background-size:90%;border-radius:2px;border-color:transparent;}}&&{width:16px;height:calc(100% - 2px);@media (min-width:", "){height:calc(100% - 4px);&:focus{& span{background-color:unset;}}}}", " && .em-ds-icon{height:16px;width:16px;}"], function (props) {
13
- return props.theme.colors.brand[200];
14
- }, function (_ref) {
15
- var theme = _ref.theme;
16
- return theme.breakpoints.medium;
17
- }, function (props) {
18
- return props.right ? 'right: 0;' : 'left: 0;';
19
- });
20
- var CarouselWrapper = /*#__PURE__*/styled.span.withConfig({
21
- componentId: "sc-1317h31-1"
22
- })(["position:relative;padding:0 16px;width:100%;"]);
23
- var ChildrenWrap = /*#__PURE__*/styled.div.withConfig({
24
- componentId: "sc-1317h31-2"
25
- })(["display:flex;flex-wrap:nowrap;flex:1;overflow:hidden;"]);
26
-
27
- function isVisibleElement(el, container) {
28
- var rect = el.getBoundingClientRect();
29
- var cRect = container.getBoundingClientRect();
30
- var elemLeft = rect.left + 3;
31
- var elemRight = rect.right - 3; // Only completely visible elements return true:
32
-
33
- var isVisible = elemLeft >= cRect.left && elemRight <= cRect.right;
34
- return isVisible;
35
- }
36
-
37
- var Carousel = function Carousel(_ref2) {
38
- var children = _ref2.children,
39
- onScroll = _ref2.onScroll;
40
- var itemsRef = useRef([]);
41
- var wrapRef = useRef(null);
42
- var leftRef = useRef(null);
43
- var rightRef = useRef(null);
44
-
45
- var shouldShowLeft = function shouldShowLeft() {
46
- return children && children[0] && wrapRef.current && itemsRef.current[0] && !isVisibleElement(itemsRef.current[0], wrapRef.current);
47
- };
48
-
49
- var shouldShowRight = function shouldShowRight() {
50
- return children && children[children.length - 1] && wrapRef.current && itemsRef.current[children.length - 1] && !isVisibleElement(itemsRef.current[children.length - 1], wrapRef.current);
51
- };
52
-
53
- var _useState = useState({
54
- right: false,
55
- left: false,
56
- CHEVRON_FOCUS_FLAG: false // flag to replace lack of callback in useState hook
57
-
58
- }),
59
- _useState2 = _slicedToArray(_useState, 2),
60
- _useState2$ = _useState2[0],
61
- right = _useState2$.right,
62
- left = _useState2$.left,
63
- CHEVRON_FOCUS_FLAG = _useState2$.CHEVRON_FOCUS_FLAG,
64
- setShow = _useState2[1];
65
-
66
- var recalcChevrons = function recalcChevrons() {
67
- return setShow({
68
- right: shouldShowRight(),
69
- left: shouldShowLeft()
70
- });
71
- };
72
-
73
- useEffect(function () {
74
- recalcChevrons();
75
- }, []);
76
- useEffect(function () {
77
- if (CHEVRON_FOCUS_FLAG) {
78
- // focus opposite chevron when current one hides
79
- if (!left && right && rightRef.current) {
80
- rightRef.current.focus();
81
- } else if (!right && left && leftRef.current) {
82
- leftRef.current.focus();
83
- }
84
-
85
- setShow({
86
- right: right,
87
- left: left,
88
- CHEVRON_FOCUS_FLAG: false
89
- });
90
- }
91
- }, [CHEVRON_FOCUS_FLAG]);
92
- useResize(wrapRef, recalcChevrons);
93
-
94
- var getVisibleItemsOffset = function getVisibleItemsOffset() {
95
- return itemsRef.current.reduce(function (acc, c) {
96
- if (isVisibleElement(c, wrapRef.current)) {
97
- var styles = window.getComputedStyle(c);
98
- var width = c.offsetWidth;
99
- var margin = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
100
- return acc + (width + margin);
101
- }
102
-
103
- return acc;
104
- }, 0);
105
- };
106
-
107
- var rightClick = function rightClick() {
108
- wrapRef.current.scrollLeft += getVisibleItemsOffset();
109
- };
110
-
111
- var leftClick = function leftClick() {
112
- wrapRef.current.scrollLeft -= getVisibleItemsOffset();
113
- };
114
-
115
- var handleScroll = function handleScroll(e) {
116
- // forces render when element.scrollTop is changed (out of react flow)
117
- setShow({
118
- right: shouldShowRight(),
119
- left: shouldShowLeft(),
120
- // to trigger focus logic at effect above
121
- CHEVRON_FOCUS_FLAG: true
122
- });
123
- onScroll(e);
124
- };
125
-
126
- var handleClick = function handleClick(e) {
127
- var onClick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
128
- var tabListDomEl = wrapRef.current;
129
- var el = e.target;
130
- var rect = el.getBoundingClientRect();
131
- var cRect = tabListDomEl.getBoundingClientRect();
132
-
133
- if (!isVisibleElement(el, tabListDomEl)) {
134
- var containerWidth = cRect.width;
135
- var halfContainer = containerWidth / 2;
136
- var elementScrollPosition = rect.left - cRect.left;
137
- var positionInContainer = elementScrollPosition % containerWidth;
138
- var width = el.offsetWidth; // align to right
139
-
140
- if (positionInContainer > halfContainer) {
141
- wrapRef.current.scrollLeft += width + positionInContainer - containerWidth;
142
- } else {
143
- // align left
144
- wrapRef.current.scrollLeft += positionInContainer;
145
- }
146
-
147
- recalcChevrons();
148
- }
149
-
150
- onClick(e);
151
- };
152
-
153
- return /*#__PURE__*/React.createElement(CarouselWrapper, null, left && /*#__PURE__*/React.createElement(CarouselBtn, {
154
- "data-testid": "chevron-left",
155
- buttonType: "link",
156
- innerRef: leftRef,
157
- size: "s",
158
- icon: /*#__PURE__*/React.createElement(ChevronLeft, {
159
- size: "s",
160
- color: ['brand-primary', '600']
161
- }),
162
- onClick: leftClick,
163
- tabIndex: -1
164
- }), right && /*#__PURE__*/React.createElement(CarouselBtn, {
165
- "data-testid": "chevron-right",
166
- innerRef: rightRef,
167
- right: true,
168
- size: "s",
169
- buttonType: "link",
170
- icon: /*#__PURE__*/React.createElement(ChevronRight, {
171
- size: "s",
172
- color: ['brand-primary', '600']
173
- }),
174
- onClick: rightClick,
175
- tabIndex: -1
176
- }), /*#__PURE__*/React.createElement(ChildrenWrap, {
177
- onScroll: handleScroll,
178
- ref: wrapRef
179
- }, React.Children.map(children, function (child, idx) {
180
- return /*#__PURE__*/React.cloneElement(child, {
181
- onClick: function onClick(e) {
182
- var _child$props;
183
-
184
- return handleClick(e, (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.onClick);
185
- },
186
- key: 'carousel'.concat(idx),
187
- ref: function ref(el) {
188
- itemsRef.current[idx] = el; // keep old refs
189
-
190
- if (typeof child.ref === 'function') {
191
- child.ref(el);
192
- }
193
- }
194
- });
195
- })));
196
- };
197
-
198
- Carousel.defaultProps = {
199
- onScroll: function onScroll() {
200
- return null;
201
- }
202
- };
203
- Carousel.propTypes = {
204
- children: PropTypes.arrayOf(PropTypes.element).isRequired,
205
- onScroll: PropTypes.func
206
- };
207
-
208
- export { Carousel as default };
209
- //# sourceMappingURL=Carousel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ChevronRight, ChevronLeft } from '@elliemae/ds-icons';\nimport styled from 'styled-components';\nimport DSButton from '@elliemae/ds-button';\nimport { useResize } from './useResize';\n\nconst CarouselBtn = styled(DSButton)`\n position: absolute;\n z-index: 1;\n margin: 0;\n\n &:focus {\n & span {\n background-color: ${(props) => props.theme.colors.brand[200]};\n background-size: 90%;\n border-radius: 2px;\n border-color: transparent;\n }\n }\n\n && {\n width: 16px;\n // offset needed for svg gap caused by resizing icons and to\n // avoid covering blue active underline\n height: calc(100% - 2px);\n\n @media (min-width: ${({ theme }) => theme.breakpoints.medium}) {\n height: calc(100% - 4px);\n &:focus {\n & span {\n background-color: unset;\n }\n }\n }\n }\n ${(props) => (props.right ? 'right: 0;' : 'left: 0;')}\n\n && .em-ds-icon {\n height: 16px;\n width: 16px;\n }\n`;\n\nconst CarouselWrapper = styled.span`\n position: relative;\n padding: 0 16px;\n width: 100%;\n`;\n\nconst ChildrenWrap = styled.div`\n display: flex;\n flex-wrap: nowrap;\n flex: 1;\n overflow: hidden;\n`;\n\nfunction isVisibleElement(el, container) {\n const rect = el.getBoundingClientRect();\n const cRect = container.getBoundingClientRect();\n const elemLeft = rect.left + 3;\n const elemRight = rect.right - 3;\n\n // Only completely visible elements return true:\n const isVisible = elemLeft >= cRect.left && elemRight <= cRect.right;\n return isVisible;\n}\n\nconst Carousel = ({ children, onScroll }) => {\n const itemsRef = useRef([]);\n const wrapRef = useRef(null);\n const leftRef = useRef(null);\n const rightRef = useRef(null);\n\n const shouldShowLeft = () =>\n children &&\n children[0] &&\n wrapRef.current &&\n itemsRef.current[0] &&\n !isVisibleElement(itemsRef.current[0], wrapRef.current);\n const shouldShowRight = () =>\n children &&\n children[children.length - 1] &&\n wrapRef.current &&\n itemsRef.current[children.length - 1] &&\n !isVisibleElement(itemsRef.current[children.length - 1], wrapRef.current);\n\n const [{ right, left, CHEVRON_FOCUS_FLAG }, setShow] = useState({\n right: false,\n left: false,\n CHEVRON_FOCUS_FLAG: false, // flag to replace lack of callback in useState hook\n });\n const recalcChevrons = () => setShow({ right: shouldShowRight(), left: shouldShowLeft() });\n\n useEffect(() => {\n recalcChevrons();\n }, []);\n\n useEffect(() => {\n if (CHEVRON_FOCUS_FLAG) {\n // focus opposite chevron when current one hides\n if (!left && right && rightRef.current) {\n rightRef.current.focus();\n } else if (!right && left && leftRef.current) {\n leftRef.current.focus();\n }\n setShow({ right, left, CHEVRON_FOCUS_FLAG: false });\n }\n }, [CHEVRON_FOCUS_FLAG]);\n\n useResize(wrapRef, recalcChevrons);\n\n const getVisibleItemsOffset = () =>\n itemsRef.current.reduce((acc, c) => {\n if (isVisibleElement(c, wrapRef.current)) {\n const styles = window.getComputedStyle(c);\n const width = c.offsetWidth;\n const margin = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n return acc + (width + margin);\n }\n return acc;\n }, 0);\n\n const rightClick = () => {\n wrapRef.current.scrollLeft += getVisibleItemsOffset();\n };\n\n const leftClick = () => {\n wrapRef.current.scrollLeft -= getVisibleItemsOffset();\n };\n\n const handleScroll = (e) => {\n // forces render when element.scrollTop is changed (out of react flow)\n setShow({\n right: shouldShowRight(),\n left: shouldShowLeft(),\n // to trigger focus logic at effect above\n CHEVRON_FOCUS_FLAG: true,\n });\n onScroll(e);\n };\n\n const handleClick = (e, onClick = () => {}) => {\n const tabListDomEl = wrapRef.current;\n const el = e.target;\n const rect = el.getBoundingClientRect();\n const cRect = tabListDomEl.getBoundingClientRect();\n\n if (!isVisibleElement(el, tabListDomEl)) {\n const containerWidth = cRect.width;\n const halfContainer = containerWidth / 2;\n const elementScrollPosition = rect.left - cRect.left;\n const positionInContainer = elementScrollPosition % containerWidth;\n const width = el.offsetWidth;\n\n // align to right\n if (positionInContainer > halfContainer) {\n wrapRef.current.scrollLeft += width + positionInContainer - containerWidth;\n } else {\n // align left\n wrapRef.current.scrollLeft += positionInContainer;\n }\n recalcChevrons();\n }\n onClick(e);\n };\n\n return (\n <CarouselWrapper>\n {left && (\n <CarouselBtn\n data-testid=\"chevron-left\"\n buttonType=\"link\"\n innerRef={leftRef}\n size=\"s\"\n icon={<ChevronLeft size=\"s\" color={['brand-primary', '600']} />}\n onClick={leftClick}\n tabIndex={-1}\n />\n )}\n {right && (\n <CarouselBtn\n data-testid=\"chevron-right\"\n innerRef={rightRef}\n right\n size=\"s\"\n buttonType=\"link\"\n icon={<ChevronRight size=\"s\" color={['brand-primary', '600']} />}\n onClick={rightClick}\n tabIndex={-1}\n />\n )}\n <ChildrenWrap onScroll={handleScroll} ref={wrapRef}>\n {React.Children.map(children, (child, idx) =>\n React.cloneElement(child, {\n onClick: (e) => handleClick(e, child.props?.onClick),\n key: 'carousel'.concat(idx),\n ref: (el) => {\n itemsRef.current[idx] = el;\n // keep old refs\n if (typeof child.ref === 'function') {\n child.ref(el);\n }\n },\n }),\n )}\n </ChildrenWrap>\n </CarouselWrapper>\n );\n};\n\nCarousel.defaultProps = {\n onScroll: () => null,\n};\n\nCarousel.propTypes = {\n children: PropTypes.arrayOf(PropTypes.element).isRequired,\n onScroll: PropTypes.func,\n};\n\nexport default Carousel;\n"],"names":["CarouselBtn","styled","DSButton","props","theme","colors","brand","breakpoints","medium","right","CarouselWrapper","span","ChildrenWrap","div","isVisibleElement","el","container","rect","getBoundingClientRect","cRect","elemLeft","left","elemRight","isVisible","Carousel","children","onScroll","itemsRef","useRef","wrapRef","leftRef","rightRef","shouldShowLeft","current","shouldShowRight","length","useState","CHEVRON_FOCUS_FLAG","setShow","recalcChevrons","useEffect","focus","useResize","getVisibleItemsOffset","reduce","acc","c","styles","window","getComputedStyle","width","offsetWidth","margin","parseFloat","marginLeft","marginRight","rightClick","scrollLeft","leftClick","handleScroll","e","handleClick","onClick","tabListDomEl","target","containerWidth","halfContainer","elementScrollPosition","positionInContainer","React","Children","map","child","idx","cloneElement","key","concat","ref","defaultProps","propTypes","PropTypes","arrayOf","element","isRequired","func"],"mappings":"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"}
package/esm/DSTab.js DELETED
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import { PropTypes, describe } from 'react-desc';
3
-
4
- /* eslint-disable react/no-unused-prop-types */
5
-
6
- var DSTab = function DSTab(_ref) {
7
- var _ref$tabId = _ref.tabId,
8
- tabId = _ref$tabId === void 0 ? '' : _ref$tabId,
9
- _ref$title = _ref.title,
10
- title = _ref$title === void 0 ? '' : _ref$title,
11
- _ref$required = _ref.required,
12
- required = _ref$required === void 0 ? false : _ref$required;
13
- return /*#__PURE__*/React.createElement("div", {
14
- "aria-labelledby": "".concat(tabId, "-label"),
15
- tabId: tabId,
16
- title: title,
17
- required: required
18
- });
19
- };
20
-
21
- DSTab.displayName = 'DSTab';
22
- var props = {
23
- /** unique id for tab */
24
- tabId: PropTypes.string.description('unique id for tab'),
25
-
26
- /** tab title */
27
- title: PropTypes.string.description('tab title'),
28
-
29
- /** Show a required mark next to the title */
30
- required: PropTypes.bool.description('Show a required mark next to the title'),
31
-
32
- /** Whether or not it's a ds-tab from DSMobile tabs */
33
- isDSMobile: PropTypes.bool.description("Whether or not it's a ds-tab from DSMobile tabs")
34
- };
35
- DSTab.propTypes = props;
36
- var DSTabWithSchema = describe(DSTab);
37
- DSTabWithSchema.propTypes = props;
38
-
39
- export { DSTab, DSTabWithSchema, DSTab as default };
40
- //# sourceMappingURL=DSTab.js.map
package/esm/DSTab.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"DSTab.js","sources":["../../src/DSTab.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\n\n// This component is for create a specific api for Tabs children\nconst DSTab = ({ tabId = '', title = '', required = false }) => (\n <div\n aria-labelledby={`${tabId}-label`}\n tabId={tabId}\n title={title}\n required={required}\n />\n);\n\nDSTab.displayName = 'DSTab';\nconst props = {\n /** unique id for tab */\n tabId: PropTypes.string.description('unique id for tab'),\n /** tab title */\n title: PropTypes.string.description('tab title'),\n /** Show a required mark next to the title */\n required: PropTypes.bool.description(\n 'Show a required mark next to the title',\n ),\n /** Whether or not it's a ds-tab from DSMobile tabs */\n isDSMobile: PropTypes.bool.description(\n \"Whether or not it's a ds-tab from DSMobile tabs\",\n ),\n};\nDSTab.propTypes = props;\nconst DSTabWithSchema = describe(DSTab);\nDSTabWithSchema.propTypes = props;\n\nexport { DSTab, DSTabWithSchema };\nexport default DSTab;\n"],"names":["DSTab","tabId","title","required","displayName","props","PropTypes","string","description","bool","isDSMobile","propTypes","DSTabWithSchema","describe"],"mappings":";;;AAAA;;IAKMA,KAAK,GAAG,SAARA,KAAQ;AAAA,wBAAGC,KAAH;AAAA,MAAGA,KAAH,2BAAW,EAAX;AAAA,wBAAeC,KAAf;AAAA,MAAeA,KAAf,2BAAuB,EAAvB;AAAA,2BAA2BC,QAA3B;AAAA,MAA2BA,QAA3B,8BAAsC,KAAtC;AAAA,sBACZ;AACE,iCAAoBF,KAApB,WADF;AAEE,IAAA,KAAK,EAAEA,KAFT;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,QAAQ,EAAEC;AAJZ,IADY;AAAA;;AASdH,KAAK,CAACI,WAAN,GAAoB,OAApB;AACA,IAAMC,KAAK,GAAG;AACZ;AACAJ,EAAAA,KAAK,EAAEK,SAAS,CAACC,MAAV,CAAiBC,WAAjB,CAA6B,mBAA7B,CAFK;;AAGZ;AACAN,EAAAA,KAAK,EAAEI,SAAS,CAACC,MAAV,CAAiBC,WAAjB,CAA6B,WAA7B,CAJK;;AAKZ;AACAL,EAAAA,QAAQ,EAAEG,SAAS,CAACG,IAAV,CAAeD,WAAf,CACR,wCADQ,CANE;;AASZ;AACAE,EAAAA,UAAU,EAAEJ,SAAS,CAACG,IAAV,CAAeD,WAAf,CACV,iDADU;AAVA,CAAd;AAcAR,KAAK,CAACW,SAAN,GAAkBN,KAAlB;IACMO,eAAe,GAAGC,QAAQ,CAACb,KAAD;AAChCY,eAAe,CAACD,SAAhB,GAA4BN,KAA5B;;;;"}