@elliemae/ds-tabs 1.54.0-next.8 → 1.54.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/TabBar.js +1 -1
- package/cjs/TabBar.js.map +1 -1
- package/esm/TabBar.js +1 -1
- package/esm/TabBar.js.map +1 -1
- package/package.json +5 -5
package/cjs/TabBar.js
CHANGED
|
@@ -366,7 +366,7 @@ var TabBar = /*#__PURE__*/function (_Component) {
|
|
|
366
366
|
left = _activeTabEl$getBound.left;
|
|
367
367
|
|
|
368
368
|
var leftOff = withCarousel ? Math.max(0, left - tabListEl.getBoundingClientRect().left) : offsetLeft;
|
|
369
|
-
var width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width : clientWidth + 2;
|
|
369
|
+
var width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width + 2 : clientWidth + 2;
|
|
370
370
|
return {
|
|
371
371
|
height: clientHeight,
|
|
372
372
|
left: "".concat(Math.floor(leftOff), "px"),
|
package/cjs/TabBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 }) =>\n flexibleTabsHeaders ? '' : 'overflow-x: hidden'};\n`;\n\nconst StyledTabList = aggregatedClasses('div')(\n blockName,\n 'list',\n ({\n withCarousel,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n isDSMobile,\n withLeftGradients,\n withRightGradients,\n }) => ({\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')(\n blockName,\n 'selection-indicator',\n);\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(\n this,\n );\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(\n scrollLeft,\n gradientWidth,\n );\n\n const withRightGradients = this.shouldHaveRightGradient(\n scrollLeft,\n gradientWidth,\n clientWidth,\n scrollWidth,\n );\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\n ? holderRect.left - left <= width\n : 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))\n return null;\n\n const { clientHeight, clientWidth, offsetTop, offsetLeft } = activeTabEl;\n const { left } = activeTabEl.getBoundingClientRect();\n const leftOff = withCarousel\n ? Math.max(0, left - tabListEl.getBoundingClientRect().left)\n : offsetLeft;\n const width = withCarousel\n ? this.getVisibleDimensions(activeTabEl, tabListEl).width\n : 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 =\n 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(\n scrollLeft,\n gradientWidth,\n );\n\n const withRightGradients = this.shouldHaveRightGradient(\n scrollLeft,\n gradientWidth,\n clientWidth,\n scrollWidth,\n );\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 {\n id,\n tabs,\n activeTab,\n renderCustomTabBar,\n withCarousel,\n isDSMobile,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n } = this.props;\n const {\n indicatorStyle,\n withLeftGradients,\n withRightGradients,\n } = 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}>\n {this.renderTabs(activeTab, tabs)}\n </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([\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 /** 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","tabId","e","tabListRef","onTabClick","tabListDomEl","current","el","target","offsetLeft","getBoundingClientRect","elWidth","width","listWidth","extraSideSpace","leftOffsetToCenter","centeredLeftOffset","scrollTo","top","left","behavior","preventDefault","index","tabs","handleDownArrow","handleUpArrow","keyCode","nextTab","tabsRef","focus","debounce","scrollLeft","scrollWidth","clientWidth","shouldHaveLeftGradient","shouldHaveRightGradient","setState","memoizeOne","activeTab","React","Children","map","tab","title","style","required","t","firstSubtabRef","length","lastTabRef","handleTabClick","handleKeyPress","RequiredMark","createRef","resizeObserver","ResizeObserver","setIndicatorStyle","state","indicatorStyle","bind","getIndicatorStyles","handleGradients","handleTabsHeadersHorizontalScroll","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","renderTabs","shouldUseCarousel","Component","defaultProps","propTypes","PropTypes","bool","string","arrayOf","element","isRequired","func","oneOfType","shape","any"],"mappings":"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"}
|
|
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","tabId","e","tabListRef","onTabClick","tabListDomEl","current","el","target","offsetLeft","getBoundingClientRect","elWidth","width","listWidth","extraSideSpace","leftOffsetToCenter","centeredLeftOffset","scrollTo","top","left","behavior","preventDefault","index","tabs","handleDownArrow","handleUpArrow","keyCode","nextTab","tabsRef","focus","debounce","scrollLeft","scrollWidth","clientWidth","shouldHaveLeftGradient","shouldHaveRightGradient","setState","memoizeOne","activeTab","React","Children","map","tab","title","style","required","t","firstSubtabRef","length","lastTabRef","handleTabClick","handleKeyPress","RequiredMark","createRef","resizeObserver","ResizeObserver","setIndicatorStyle","state","indicatorStyle","bind","getIndicatorStyles","handleGradients","handleTabsHeadersHorizontalScroll","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","renderTabs","shouldUseCarousel","Component","defaultProps","propTypes","PropTypes","bool","string","arrayOf","element","isRequired","func","oneOfType","shape","any"],"mappings":"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"}
|
package/esm/TabBar.js
CHANGED
|
@@ -349,7 +349,7 @@ var TabBar = /*#__PURE__*/function (_Component) {
|
|
|
349
349
|
left = _activeTabEl$getBound.left;
|
|
350
350
|
|
|
351
351
|
var leftOff = withCarousel ? Math.max(0, left - tabListEl.getBoundingClientRect().left) : offsetLeft;
|
|
352
|
-
var width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width : clientWidth + 2;
|
|
352
|
+
var width = withCarousel ? this.getVisibleDimensions(activeTabEl, tabListEl).width + 2 : clientWidth + 2;
|
|
353
353
|
return {
|
|
354
354
|
height: clientHeight,
|
|
355
355
|
left: "".concat(Math.floor(leftOff), "px"),
|
package/esm/TabBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 }) =>\n flexibleTabsHeaders ? '' : 'overflow-x: hidden'};\n`;\n\nconst StyledTabList = aggregatedClasses('div')(\n blockName,\n 'list',\n ({\n withCarousel,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n isDSMobile,\n withLeftGradients,\n withRightGradients,\n }) => ({\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')(\n blockName,\n 'selection-indicator',\n);\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(\n this,\n );\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(\n scrollLeft,\n gradientWidth,\n );\n\n const withRightGradients = this.shouldHaveRightGradient(\n scrollLeft,\n gradientWidth,\n clientWidth,\n scrollWidth,\n );\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\n ? holderRect.left - left <= width\n : 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))\n return null;\n\n const { clientHeight, clientWidth, offsetTop, offsetLeft } = activeTabEl;\n const { left } = activeTabEl.getBoundingClientRect();\n const leftOff = withCarousel\n ? Math.max(0, left - tabListEl.getBoundingClientRect().left)\n : offsetLeft;\n const width = withCarousel\n ? this.getVisibleDimensions(activeTabEl, tabListEl).width\n : 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 =\n 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(\n scrollLeft,\n gradientWidth,\n );\n\n const withRightGradients = this.shouldHaveRightGradient(\n scrollLeft,\n gradientWidth,\n clientWidth,\n scrollWidth,\n );\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 {\n id,\n tabs,\n activeTab,\n renderCustomTabBar,\n withCarousel,\n isDSMobile,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n } = this.props;\n const {\n indicatorStyle,\n withLeftGradients,\n withRightGradients,\n } = 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}>\n {this.renderTabs(activeTab, tabs)}\n </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([\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 /** 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","tabId","e","tabListRef","onTabClick","tabListDomEl","current","el","target","offsetLeft","getBoundingClientRect","elWidth","width","listWidth","extraSideSpace","leftOffsetToCenter","centeredLeftOffset","scrollTo","top","left","behavior","preventDefault","index","tabs","handleDownArrow","handleUpArrow","keyCode","nextTab","tabsRef","focus","debounce","scrollLeft","scrollWidth","clientWidth","shouldHaveLeftGradient","shouldHaveRightGradient","setState","memoizeOne","activeTab","React","Children","map","tab","title","style","required","t","firstSubtabRef","length","lastTabRef","handleTabClick","handleKeyPress","createRef","resizeObserver","ResizeObserver","setIndicatorStyle","state","indicatorStyle","bind","getIndicatorStyles","handleGradients","handleTabsHeadersHorizontalScroll","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","renderTabs","shouldUseCarousel","Component","defaultProps","propTypes","PropTypes","bool","string","arrayOf","element","isRequired","func","oneOfType","shape","any"],"mappings":"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"}
|
|
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","tabId","e","tabListRef","onTabClick","tabListDomEl","current","el","target","offsetLeft","getBoundingClientRect","elWidth","width","listWidth","extraSideSpace","leftOffsetToCenter","centeredLeftOffset","scrollTo","top","left","behavior","preventDefault","index","tabs","handleDownArrow","handleUpArrow","keyCode","nextTab","tabsRef","focus","debounce","scrollLeft","scrollWidth","clientWidth","shouldHaveLeftGradient","shouldHaveRightGradient","setState","memoizeOne","activeTab","React","Children","map","tab","title","style","required","t","firstSubtabRef","length","lastTabRef","handleTabClick","handleKeyPress","createRef","resizeObserver","ResizeObserver","setIndicatorStyle","state","indicatorStyle","bind","getIndicatorStyles","handleGradients","handleTabsHeadersHorizontalScroll","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","renderTabs","shouldUseCarousel","Component","defaultProps","propTypes","PropTypes","bool","string","arrayOf","element","isRequired","func","oneOfType","shape","any"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-tabs",
|
|
3
|
-
"version": "1.54.0-
|
|
3
|
+
"version": "1.54.0-rc.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Ellie Mae - Dim Sum - Tabs",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"build": "node ../../scripts/build/build.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@elliemae/ds-button": "1.54.0-
|
|
20
|
-
"@elliemae/ds-classnames": "1.54.0-
|
|
21
|
-
"@elliemae/ds-form": "1.54.0-
|
|
22
|
-
"@elliemae/ds-icons": "1.54.0-
|
|
19
|
+
"@elliemae/ds-button": "1.54.0-rc.4",
|
|
20
|
+
"@elliemae/ds-classnames": "1.54.0-rc.4",
|
|
21
|
+
"@elliemae/ds-form": "1.54.0-rc.4",
|
|
22
|
+
"@elliemae/ds-icons": "1.54.0-rc.4",
|
|
23
23
|
"memoize-one": "~5.1.1",
|
|
24
24
|
"prop-types": "~15.7.2",
|
|
25
25
|
"react-desc": "^4.1.2",
|