@elliemae/ds-tabs 2.3.0-alpha.9 → 2.3.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/DSTabs.js +45 -0
- package/cjs/DSTabsCTX.js +30 -0
- package/cjs/DSTabsDatatestid.js +18 -0
- package/cjs/DSTabsTypes.js +2 -0
- package/cjs/config/useCrossRef.js +17 -0
- package/cjs/config/useTabs.js +51 -0
- package/cjs/defaultProps.js +27 -0
- package/cjs/exportsRelated/DSTab.js +32 -0
- package/cjs/index.js +17 -0
- package/cjs/parts/carousel/Carousel.js +69 -0
- package/cjs/parts/carousel/styles.js +65 -0
- package/cjs/parts/carousel/useCarousel.js +78 -0
- package/cjs/parts/carousel/useCarouselCallbacks.js +72 -0
- package/cjs/parts/tabBar/TabBar.js +168 -0
- package/cjs/parts/tabBar/styles.js +200 -0
- package/cjs/parts/tabBar/useTabBar.js +87 -0
- package/cjs/parts/tabsContent/TabsContent.js +49 -0
- package/cjs/parts/tabsContent/styles.js +15 -0
- package/cjs/parts/tabsPanel/TabsPanels.js +77 -0
- package/cjs/parts/tabsPanel/styles.js +25 -0
- package/cjs/propTypes.js +33 -0
- package/cjs/utils/constants.js +28 -0
- package/cjs/utils/helpers.js +75 -0
- package/cjs/utils/hooks/useKeyboardNavigation.js +61 -0
- package/cjs/utils/hooks/useTabsCallbacks.js +41 -0
- package/esm/DSTabs.js +35 -0
- package/esm/DSTabsCTX.js +25 -0
- package/esm/DSTabsDatatestid.js +14 -0
- package/esm/DSTabsTypes.js +1 -0
- package/{dist/esm → esm}/config/useCrossRef.js +4 -6
- package/esm/config/useTabs.js +47 -0
- package/{dist/esm → esm}/defaultProps.js +8 -9
- package/esm/exportsRelated/DSTab.js +21 -0
- package/esm/index.js +4 -0
- package/esm/parts/carousel/Carousel.js +61 -0
- package/esm/parts/carousel/styles.js +54 -0
- package/{dist/esm → esm}/parts/carousel/useCarousel.js +34 -15
- package/{dist/esm → esm}/parts/carousel/useCarouselCallbacks.js +28 -20
- package/esm/parts/tabBar/TabBar.js +159 -0
- package/esm/parts/tabBar/styles.js +186 -0
- package/{dist/esm → esm}/parts/tabBar/useTabBar.js +35 -27
- package/esm/parts/tabsContent/TabsContent.js +40 -0
- package/esm/parts/tabsContent/styles.js +7 -0
- package/esm/parts/tabsPanel/TabsPanels.js +67 -0
- package/esm/parts/tabsPanel/styles.js +17 -0
- package/esm/propTypes.js +28 -0
- package/esm/utils/constants.js +20 -0
- package/{dist/esm → esm}/utils/helpers.js +28 -23
- package/esm/utils/hooks/useKeyboardNavigation.js +57 -0
- package/esm/utils/hooks/useTabsCallbacks.js +37 -0
- package/package.json +70 -72
- package/{dist/types → types}/DSTabs.d.ts +2 -2
- package/{dist/types → types}/DSTabsCTX.d.ts +0 -0
- package/{dist/types → types}/DSTabsDatatestid.d.ts +0 -0
- package/{dist/types → types}/DSTabsTypes.d.ts +0 -0
- package/{dist/types → types}/config/useCrossRef.d.ts +0 -0
- package/{dist/types → types}/config/useTabs.d.ts +0 -0
- package/{dist/types → types}/defaultProps.d.ts +0 -0
- package/{dist/types → types}/exportsRelated/DSTab.d.ts +0 -0
- package/{dist/types → types}/index.d.ts +0 -0
- package/{dist/types → types}/parts/carousel/Carousel.d.ts +0 -0
- package/{dist/types → types}/parts/carousel/styles.d.ts +1 -1
- package/{dist/types → types}/parts/carousel/useCarousel.d.ts +0 -0
- package/{dist/types → types}/parts/carousel/useCarouselCallbacks.d.ts +0 -0
- package/{dist/types → types}/parts/tabBar/TabBar.d.ts +0 -0
- package/{dist/types → types}/parts/tabBar/styles.d.ts +0 -0
- package/{dist/types → types}/parts/tabBar/useTabBar.d.ts +0 -0
- package/{dist/types → types}/parts/tabsContent/TabsContent.d.ts +0 -0
- package/{dist/types → types}/parts/tabsContent/styles.d.ts +0 -0
- package/{dist/types → types}/parts/tabsPanel/TabsPanels.d.ts +0 -0
- package/{dist/types → types}/parts/tabsPanel/styles.d.ts +0 -0
- package/{dist/types → types}/propTypes.d.ts +0 -0
- package/{dist/types → types}/tests/DSTabs.callbacks.test.d.ts +0 -0
- package/{dist/types → types}/tests/DSTabs.func.test.d.ts +0 -0
- package/{dist/types → types}/tests/DSTabs.keyboard.test.d.ts +0 -0
- package/{dist/types → types}/tests/DSTabs.test.d.ts +0 -0
- package/{dist/types → types}/utils/constants.d.ts +0 -0
- package/{dist/types → types}/utils/helpers.d.ts +0 -0
- package/{dist/types → types}/utils/hooks/useKeyboardNavigation.d.ts +0 -0
- package/{dist/types → types}/utils/hooks/useTabsCallbacks.d.ts +0 -0
- package/dist/cjs/DSTabs.js +0 -63
- package/dist/cjs/DSTabs.js.map +0 -7
- package/dist/cjs/DSTabsCTX.js +0 -56
- package/dist/cjs/DSTabsCTX.js.map +0 -7
- package/dist/cjs/DSTabsDatatestid.js +0 -46
- package/dist/cjs/DSTabsDatatestid.js.map +0 -7
- package/dist/cjs/DSTabsTypes.js +0 -27
- package/dist/cjs/DSTabsTypes.js.map +0 -7
- package/dist/cjs/config/useCrossRef.js +0 -44
- package/dist/cjs/config/useCrossRef.js.map +0 -7
- package/dist/cjs/config/useTabs.js +0 -68
- package/dist/cjs/config/useTabs.js.map +0 -7
- package/dist/cjs/defaultProps.js +0 -53
- package/dist/cjs/defaultProps.js.map +0 -7
- package/dist/cjs/exportsRelated/DSTab.js +0 -46
- package/dist/cjs/exportsRelated/DSTab.js.map +0 -7
- package/dist/cjs/index.js +0 -38
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/parts/carousel/Carousel.js +0 -77
- package/dist/cjs/parts/carousel/Carousel.js.map +0 -7
- package/dist/cjs/parts/carousel/styles.js +0 -79
- package/dist/cjs/parts/carousel/styles.js.map +0 -7
- package/dist/cjs/parts/carousel/useCarousel.js +0 -80
- package/dist/cjs/parts/carousel/useCarousel.js.map +0 -7
- package/dist/cjs/parts/carousel/useCarouselCallbacks.js +0 -89
- package/dist/cjs/parts/carousel/useCarouselCallbacks.js.map +0 -7
- package/dist/cjs/parts/tabBar/TabBar.js +0 -171
- package/dist/cjs/parts/tabBar/TabBar.js.map +0 -7
- package/dist/cjs/parts/tabBar/styles.js +0 -294
- package/dist/cjs/parts/tabBar/styles.js.map +0 -7
- package/dist/cjs/parts/tabBar/useTabBar.js +0 -100
- package/dist/cjs/parts/tabBar/useTabBar.js.map +0 -7
- package/dist/cjs/parts/tabsContent/TabsContent.js +0 -53
- package/dist/cjs/parts/tabsContent/TabsContent.js.map +0 -7
- package/dist/cjs/parts/tabsContent/styles.js +0 -39
- package/dist/cjs/parts/tabsContent/styles.js.map +0 -7
- package/dist/cjs/parts/tabsPanel/TabsPanels.js +0 -79
- package/dist/cjs/parts/tabsPanel/TabsPanels.js.map +0 -7
- package/dist/cjs/parts/tabsPanel/styles.js +0 -45
- package/dist/cjs/parts/tabsPanel/styles.js.map +0 -7
- package/dist/cjs/propTypes.js +0 -58
- package/dist/cjs/propTypes.js.map +0 -7
- package/dist/cjs/utils/constants.js +0 -56
- package/dist/cjs/utils/constants.js.map +0 -7
- package/dist/cjs/utils/helpers.js +0 -88
- package/dist/cjs/utils/helpers.js.map +0 -7
- package/dist/cjs/utils/hooks/useKeyboardNavigation.js +0 -77
- package/dist/cjs/utils/hooks/useKeyboardNavigation.js.map +0 -7
- package/dist/cjs/utils/hooks/useTabsCallbacks.js +0 -60
- package/dist/cjs/utils/hooks/useTabsCallbacks.js.map +0 -7
- package/dist/esm/DSTabs.js +0 -34
- package/dist/esm/DSTabs.js.map +0 -7
- package/dist/esm/DSTabsCTX.js +0 -27
- package/dist/esm/DSTabsCTX.js.map +0 -7
- package/dist/esm/DSTabsDatatestid.js +0 -17
- package/dist/esm/DSTabsDatatestid.js.map +0 -7
- package/dist/esm/DSTabsTypes.js +0 -2
- package/dist/esm/DSTabsTypes.js.map +0 -7
- package/dist/esm/config/useCrossRef.js.map +0 -7
- package/dist/esm/config/useTabs.js +0 -39
- package/dist/esm/config/useTabs.js.map +0 -7
- package/dist/esm/defaultProps.js.map +0 -7
- package/dist/esm/exportsRelated/DSTab.js +0 -17
- package/dist/esm/exportsRelated/DSTab.js.map +0 -7
- package/dist/esm/index.js +0 -9
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/parts/carousel/Carousel.js +0 -48
- package/dist/esm/parts/carousel/Carousel.js.map +0 -7
- package/dist/esm/parts/carousel/styles.js +0 -50
- package/dist/esm/parts/carousel/styles.js.map +0 -7
- package/dist/esm/parts/carousel/useCarousel.js.map +0 -7
- package/dist/esm/parts/carousel/useCarouselCallbacks.js.map +0 -7
- package/dist/esm/parts/tabBar/TabBar.js +0 -149
- package/dist/esm/parts/tabBar/TabBar.js.map +0 -7
- package/dist/esm/parts/tabBar/styles.js +0 -265
- package/dist/esm/parts/tabBar/styles.js.map +0 -7
- package/dist/esm/parts/tabBar/useTabBar.js.map +0 -7
- package/dist/esm/parts/tabsContent/TabsContent.js +0 -24
- package/dist/esm/parts/tabsContent/TabsContent.js.map +0 -7
- package/dist/esm/parts/tabsContent/styles.js +0 -10
- package/dist/esm/parts/tabsContent/styles.js.map +0 -7
- package/dist/esm/parts/tabsPanel/TabsPanels.js +0 -50
- package/dist/esm/parts/tabsPanel/TabsPanels.js.map +0 -7
- package/dist/esm/parts/tabsPanel/styles.js +0 -16
- package/dist/esm/parts/tabsPanel/styles.js.map +0 -7
- package/dist/esm/propTypes.js +0 -29
- package/dist/esm/propTypes.js.map +0 -7
- package/dist/esm/utils/constants.js +0 -27
- package/dist/esm/utils/constants.js.map +0 -7
- package/dist/esm/utils/helpers.js.map +0 -7
- package/dist/esm/utils/hooks/useKeyboardNavigation.js +0 -48
- package/dist/esm/utils/hooks/useKeyboardNavigation.js.map +0 -7
- package/dist/esm/utils/hooks/useTabsCallbacks.js +0 -31
- package/dist/esm/utils/hooks/useTabsCallbacks.js.map +0 -7
package/esm/propTypes.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PropTypes } from 'react-desc';
|
|
2
|
+
import { TabTypesValuesAsArray } from './utils/constants.js';
|
|
3
|
+
|
|
4
|
+
const tabPropTypes = {
|
|
5
|
+
tabId: PropTypes.string.description('Unique Tab id.').defaultValue(''),
|
|
6
|
+
title: PropTypes.string.description('Tab title.').defaultValue(''),
|
|
7
|
+
required: PropTypes.bool.description('Show a required mark next to the title.').defaultValue(false),
|
|
8
|
+
disabled: PropTypes.bool.description('Disables Tab.').defaultValue(false)
|
|
9
|
+
};
|
|
10
|
+
const tabsPropTypes = {
|
|
11
|
+
animated: PropTypes.bool.description('Whether the Tab transition should animate or not.').defaultValue(true),
|
|
12
|
+
enableMouseEvents: PropTypes.bool.description('Enables Tab transition with mouse drag events.').defaultValue(false),
|
|
13
|
+
allowTextSelection: PropTypes.bool.description('Allows text selection when mouse drag events are active.').defaultValue(false),
|
|
14
|
+
onTabChange: PropTypes.func.description('Handler when a user clicks on a different Tab.').defaultValue('() => {}'),
|
|
15
|
+
type: PropTypes.oneOf(TabTypesValuesAsArray).description('Tab type.').defaultValue(TabTypesValuesAsArray[0]),
|
|
16
|
+
tabBarExtraContent: PropTypes.element.description('Extra content next to the Tab Bar.').defaultValue(undefined),
|
|
17
|
+
onlyRenderActiveTab: PropTypes.bool.description('Only renders the active Tab in the DOM.').defaultValue(false),
|
|
18
|
+
withCarousel: PropTypes.bool.description('Activate carousel behavior.').defaultValue(false),
|
|
19
|
+
activeTab: PropTypes.string.description('Passing a value makes DSTabs a controlled component.').defaultValue('First DSTab children.'),
|
|
20
|
+
children: PropTypes.node.description('Use DSTab component as children.').isRequired,
|
|
21
|
+
tabsListAriaLabel: PropTypes.string.description('Aria label for the list.').defaultValue('Tab list.'),
|
|
22
|
+
containerProps: PropTypes.object.description('Additional properties for the container.').defaultValue({}),
|
|
23
|
+
innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
24
|
+
current: PropTypes.any
|
|
25
|
+
})]).description('Ref to the container.').defaultValue(undefined)
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { tabPropTypes, tabsPropTypes };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const TabTypes = {
|
|
2
|
+
NORMAL: 'normal',
|
|
3
|
+
NORMAL_SMALL: 'normal_small',
|
|
4
|
+
SUBTABS: 'subtabs'
|
|
5
|
+
};
|
|
6
|
+
const TabTypesValuesAsArray = Object.values(TabTypes);
|
|
7
|
+
const MOBILE_GRADIENT_WIDTH = 24;
|
|
8
|
+
const defaultIndicatorStyles = {
|
|
9
|
+
left: '0px',
|
|
10
|
+
width: '0px',
|
|
11
|
+
backgroundWithTransparent: ''
|
|
12
|
+
};
|
|
13
|
+
const gradientOffsetsAccordingType = {
|
|
14
|
+
normal_small: 14,
|
|
15
|
+
normal: 16,
|
|
16
|
+
subtabs: 16,
|
|
17
|
+
fixedTabsHeaders: 0
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { MOBILE_GRADIENT_WIDTH, TabTypes, TabTypesValuesAsArray, defaultIndicatorStyles, gradientOffsetsAccordingType };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { MOBILE_GRADIENT_WIDTH } from './constants.js';
|
|
2
|
+
|
|
3
3
|
const isElementVisible = (tab, tabList) => {
|
|
4
4
|
const tabDimensions = tab.getBoundingClientRect();
|
|
5
5
|
const tabListDimensions = tabList.getBoundingClientRect();
|
|
6
6
|
return tabDimensions.left <= tabListDimensions.left ? tabListDimensions.left - tabDimensions.left <= tabDimensions.width : tabDimensions.right - tabListDimensions.right <= tabDimensions.width;
|
|
7
7
|
};
|
|
8
|
-
const isElementVisibleCarousel = (tab, tabContainer
|
|
8
|
+
const isElementVisibleCarousel = function (tab, tabContainer) {
|
|
9
|
+
let firstOrLastItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
10
|
+
|
|
9
11
|
if (tab && tabContainer) {
|
|
10
12
|
const tabDimensions = tab.getBoundingClientRect();
|
|
11
13
|
const tabContainerDimensions = tabContainer.getBoundingClientRect();
|
|
@@ -16,22 +18,34 @@ const isElementVisibleCarousel = (tab, tabContainer, firstOrLastItem = true) =>
|
|
|
16
18
|
const tabContainerDimensionsRight = Math.floor(tabContainerDimensions.right);
|
|
17
19
|
return tabDimensionsLeft >= tabContainerDimensionsLeft && tabDimensionsRight <= tabContainerDimensionsRight;
|
|
18
20
|
}
|
|
21
|
+
|
|
19
22
|
return false;
|
|
20
23
|
};
|
|
21
|
-
const centerTab =
|
|
24
|
+
const centerTab = _ref => {
|
|
25
|
+
let {
|
|
26
|
+
e,
|
|
27
|
+
listRef
|
|
28
|
+
} = _ref;
|
|
29
|
+
|
|
22
30
|
if (listRef.current) {
|
|
23
|
-
const {
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
const {
|
|
32
|
+
offsetLeft
|
|
33
|
+
} = e === null || e === void 0 ? void 0 : e.target;
|
|
34
|
+
const {
|
|
35
|
+
width: tabWidth
|
|
36
|
+
} = (e === null || e === void 0 ? void 0 : e.target).getBoundingClientRect();
|
|
37
|
+
const {
|
|
38
|
+
width: listWidth
|
|
39
|
+
} = listRef.current.getBoundingClientRect();
|
|
26
40
|
const extraSideSpace = listWidth - tabWidth;
|
|
27
41
|
const leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;
|
|
28
42
|
const centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;
|
|
29
43
|
listRef.current.scrollTo({
|
|
30
44
|
top: 0,
|
|
31
45
|
left: centeredLeftOffset,
|
|
32
|
-
behavior:
|
|
46
|
+
behavior: 'smooth'
|
|
33
47
|
});
|
|
34
|
-
e
|
|
48
|
+
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
35
49
|
}
|
|
36
50
|
};
|
|
37
51
|
const getVisibleDimensions = (node, referenceNode) => {
|
|
@@ -42,18 +56,9 @@ const getVisibleDimensions = (node, referenceNode) => {
|
|
|
42
56
|
height: Math.min(node.clientHeight, referenceNodeDimensions.top + referenceNode.clientHeight - nodeDimensions.top, node.clientHeight - (referenceNodeDimensions.top - nodeDimensions.top))
|
|
43
57
|
};
|
|
44
58
|
};
|
|
45
|
-
const getIndexById = (children, activeId) => children && children.findIndex(
|
|
46
|
-
const getIdByIndex = (children, index) => children && children[index].props.tabId ||
|
|
47
|
-
const shouldHaveLeftGradient =
|
|
59
|
+
const getIndexById = (children, activeId) => children && children.findIndex(item => item.props.tabId === activeId);
|
|
60
|
+
const getIdByIndex = (children, index) => children && children[index].props.tabId || '';
|
|
61
|
+
const shouldHaveLeftGradient = scrollLeft => Math.abs(scrollLeft) > MOBILE_GRADIENT_WIDTH;
|
|
48
62
|
const shouldHaveRightGradient = (scrollLeft, clientWidth, scrollWidth) => Math.abs(scrollLeft) <= scrollWidth - (clientWidth + MOBILE_GRADIENT_WIDTH);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
getIdByIndex,
|
|
52
|
-
getIndexById,
|
|
53
|
-
getVisibleDimensions,
|
|
54
|
-
isElementVisible,
|
|
55
|
-
isElementVisibleCarousel,
|
|
56
|
-
shouldHaveLeftGradient,
|
|
57
|
-
shouldHaveRightGradient
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=helpers.js.map
|
|
63
|
+
|
|
64
|
+
export { centerTab, getIdByIndex, getIndexById, getVisibleDimensions, isElementVisible, isElementVisibleCarousel, shouldHaveLeftGradient, shouldHaveRightGradient };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useContext, useCallback } from 'react';
|
|
2
|
+
import { DSTabsContext, DSTabsCrossRefContext } from '../../DSTabsCTX.js';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable max-statements */
|
|
5
|
+
const useKeyboardNavigation = () => {
|
|
6
|
+
const {
|
|
7
|
+
focusableTabsRef
|
|
8
|
+
} = useContext(DSTabsContext);
|
|
9
|
+
const {
|
|
10
|
+
firstSubtabInternalRef,
|
|
11
|
+
lastTabInternalRef
|
|
12
|
+
} = useContext(DSTabsCrossRefContext);
|
|
13
|
+
const handleOnKeyDown = useCallback(e => {
|
|
14
|
+
if (e.key === 'ArrowRight' && focusableTabsRef.current) {
|
|
15
|
+
var _focusableTabsRef$cur, _focusableTabsRef$cur2;
|
|
16
|
+
|
|
17
|
+
e.preventDefault();
|
|
18
|
+
e.stopPropagation();
|
|
19
|
+
const nextTab = focusableTabsRef.current[(focusableTabsRef === null || focusableTabsRef === void 0 ? void 0 : (_focusableTabsRef$cur = focusableTabsRef.current) === null || _focusableTabsRef$cur === void 0 ? void 0 : (_focusableTabsRef$cur2 = _focusableTabsRef$cur.indexOf) === null || _focusableTabsRef$cur2 === void 0 ? void 0 : _focusableTabsRef$cur2.call(_focusableTabsRef$cur, e.target)) + 1];
|
|
20
|
+
if (nextTab) nextTab.focus();
|
|
21
|
+
if (!nextTab) return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (e.key === 'ArrowLeft' && focusableTabsRef.current) {
|
|
25
|
+
var _focusableTabsRef$cur3, _focusableTabsRef$cur4;
|
|
26
|
+
|
|
27
|
+
e.preventDefault();
|
|
28
|
+
e.stopPropagation();
|
|
29
|
+
const prevTab = focusableTabsRef.current[(focusableTabsRef === null || focusableTabsRef === void 0 ? void 0 : (_focusableTabsRef$cur3 = focusableTabsRef.current) === null || _focusableTabsRef$cur3 === void 0 ? void 0 : (_focusableTabsRef$cur4 = _focusableTabsRef$cur3.indexOf) === null || _focusableTabsRef$cur4 === void 0 ? void 0 : _focusableTabsRef$cur4.call(_focusableTabsRef$cur3, e.target)) - 1];
|
|
30
|
+
if (prevTab) prevTab.focus();
|
|
31
|
+
if (!prevTab) return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (e.key === 'ArrowDown') {
|
|
35
|
+
var _firstSubtabInternalR;
|
|
36
|
+
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
const canFocusCrossTabs = (firstSubtabInternalRef === null || firstSubtabInternalRef === void 0 ? void 0 : firstSubtabInternalRef.current) && (lastTabInternalRef === null || lastTabInternalRef === void 0 ? void 0 : lastTabInternalRef.current);
|
|
40
|
+
if (canFocusCrossTabs) (_firstSubtabInternalR = firstSubtabInternalRef.current) === null || _firstSubtabInternalR === void 0 ? void 0 : _firstSubtabInternalR.focus();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (e.key === 'ArrowUp') {
|
|
44
|
+
var _lastTabInternalRef$c;
|
|
45
|
+
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
e.stopPropagation();
|
|
48
|
+
const canFocusCrossTabs = (firstSubtabInternalRef === null || firstSubtabInternalRef === void 0 ? void 0 : firstSubtabInternalRef.current) && (lastTabInternalRef === null || lastTabInternalRef === void 0 ? void 0 : lastTabInternalRef.current);
|
|
49
|
+
if (canFocusCrossTabs) (_lastTabInternalRef$c = lastTabInternalRef.current) === null || _lastTabInternalRef$c === void 0 ? void 0 : _lastTabInternalRef$c.focus();
|
|
50
|
+
}
|
|
51
|
+
}, [firstSubtabInternalRef, lastTabInternalRef, focusableTabsRef]);
|
|
52
|
+
return {
|
|
53
|
+
handleOnKeyDown
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export { useKeyboardNavigation };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useContext, useCallback } from 'react';
|
|
2
|
+
import { centerTab } from '../helpers.js';
|
|
3
|
+
import { DSTabsContext } from '../../DSTabsCTX.js';
|
|
4
|
+
|
|
5
|
+
const useTabsCallbacks = () => {
|
|
6
|
+
const {
|
|
7
|
+
setInternalActiveTab,
|
|
8
|
+
tabsListRef,
|
|
9
|
+
props: {
|
|
10
|
+
onTabChange,
|
|
11
|
+
isDSMobile,
|
|
12
|
+
allowTextSelection,
|
|
13
|
+
fixedTabsHeaders
|
|
14
|
+
}
|
|
15
|
+
} = useContext(DSTabsContext);
|
|
16
|
+
const handleOnTabChange = useCallback((tabId, e) => {
|
|
17
|
+
setInternalActiveTab(tabId);
|
|
18
|
+
onTabChange(tabId, e);
|
|
19
|
+
|
|
20
|
+
if (isDSMobile && !fixedTabsHeaders && e) {
|
|
21
|
+
centerTab({
|
|
22
|
+
e,
|
|
23
|
+
listRef: tabsListRef
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}, [fixedTabsHeaders, isDSMobile, onTabChange, setInternalActiveTab, tabsListRef]);
|
|
27
|
+
const handleOnMouseDown = useCallback(e => {
|
|
28
|
+
const role = e.target.getAttribute('role');
|
|
29
|
+
if (role !== 'tabpanel' && allowTextSelection) e.stopPropagation();
|
|
30
|
+
}, [allowTextSelection]);
|
|
31
|
+
return {
|
|
32
|
+
handleOnTabChange,
|
|
33
|
+
handleOnMouseDown
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { useTabsCallbacks };
|
package/package.json
CHANGED
|
@@ -1,114 +1,111 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-tabs",
|
|
3
|
-
"version": "2.3.0-
|
|
3
|
+
"version": "2.3.0-next.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Tabs",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"module": "./dist/esm/index.js",
|
|
10
|
-
"main": "./dist/cjs/index.js",
|
|
11
|
-
"types": "./dist/types/index.d.ts",
|
|
6
|
+
"module": "./esm/index.js",
|
|
7
|
+
"main": "./cjs/index.js",
|
|
8
|
+
"types": "./types/index.d.ts",
|
|
12
9
|
"exports": {
|
|
13
10
|
".": {
|
|
14
|
-
"import": "./
|
|
15
|
-
"require": "./
|
|
11
|
+
"import": "./esm/index.js",
|
|
12
|
+
"require": "./cjs/index.js"
|
|
16
13
|
},
|
|
17
14
|
"./utils/hooks/useTabsCallbacks": {
|
|
18
|
-
"import": "./
|
|
19
|
-
"require": "./
|
|
15
|
+
"import": "./esm/utils/hooks/useTabsCallbacks.js",
|
|
16
|
+
"require": "./cjs/utils/hooks/useTabsCallbacks.js"
|
|
20
17
|
},
|
|
21
18
|
"./utils/hooks/useKeyboardNavigation": {
|
|
22
|
-
"import": "./
|
|
23
|
-
"require": "./
|
|
19
|
+
"import": "./esm/utils/hooks/useKeyboardNavigation.js",
|
|
20
|
+
"require": "./cjs/utils/hooks/useKeyboardNavigation.js"
|
|
24
21
|
},
|
|
25
22
|
"./utils/helpers": {
|
|
26
|
-
"import": "./
|
|
27
|
-
"require": "./
|
|
23
|
+
"import": "./esm/utils/helpers.js",
|
|
24
|
+
"require": "./cjs/utils/helpers.js"
|
|
28
25
|
},
|
|
29
26
|
"./utils/constants": {
|
|
30
|
-
"import": "./
|
|
31
|
-
"require": "./
|
|
27
|
+
"import": "./esm/utils/constants.js",
|
|
28
|
+
"require": "./cjs/utils/constants.js"
|
|
32
29
|
},
|
|
33
30
|
"./propTypes": {
|
|
34
|
-
"import": "./
|
|
35
|
-
"require": "./
|
|
31
|
+
"import": "./esm/propTypes.js",
|
|
32
|
+
"require": "./cjs/propTypes.js"
|
|
36
33
|
},
|
|
37
34
|
"./parts/tabsPanel/TabsPanels": {
|
|
38
|
-
"import": "./
|
|
39
|
-
"require": "./
|
|
35
|
+
"import": "./esm/parts/tabsPanel/TabsPanels.js",
|
|
36
|
+
"require": "./cjs/parts/tabsPanel/TabsPanels.js"
|
|
40
37
|
},
|
|
41
38
|
"./parts/tabsPanel/styles": {
|
|
42
|
-
"import": "./
|
|
43
|
-
"require": "./
|
|
39
|
+
"import": "./esm/parts/tabsPanel/styles.js",
|
|
40
|
+
"require": "./cjs/parts/tabsPanel/styles.js"
|
|
44
41
|
},
|
|
45
42
|
"./parts/tabsContent/TabsContent": {
|
|
46
|
-
"import": "./
|
|
47
|
-
"require": "./
|
|
43
|
+
"import": "./esm/parts/tabsContent/TabsContent.js",
|
|
44
|
+
"require": "./cjs/parts/tabsContent/TabsContent.js"
|
|
48
45
|
},
|
|
49
46
|
"./parts/tabsContent/styles": {
|
|
50
|
-
"import": "./
|
|
51
|
-
"require": "./
|
|
47
|
+
"import": "./esm/parts/tabsContent/styles.js",
|
|
48
|
+
"require": "./cjs/parts/tabsContent/styles.js"
|
|
52
49
|
},
|
|
53
50
|
"./parts/tabBar/useTabBar": {
|
|
54
|
-
"import": "./
|
|
55
|
-
"require": "./
|
|
51
|
+
"import": "./esm/parts/tabBar/useTabBar.js",
|
|
52
|
+
"require": "./cjs/parts/tabBar/useTabBar.js"
|
|
56
53
|
},
|
|
57
54
|
"./parts/tabBar/TabBar": {
|
|
58
|
-
"import": "./
|
|
59
|
-
"require": "./
|
|
55
|
+
"import": "./esm/parts/tabBar/TabBar.js",
|
|
56
|
+
"require": "./cjs/parts/tabBar/TabBar.js"
|
|
60
57
|
},
|
|
61
58
|
"./parts/tabBar/styles": {
|
|
62
|
-
"import": "./
|
|
63
|
-
"require": "./
|
|
59
|
+
"import": "./esm/parts/tabBar/styles.js",
|
|
60
|
+
"require": "./cjs/parts/tabBar/styles.js"
|
|
64
61
|
},
|
|
65
62
|
"./parts/carousel/useCarouselCallbacks": {
|
|
66
|
-
"import": "./
|
|
67
|
-
"require": "./
|
|
63
|
+
"import": "./esm/parts/carousel/useCarouselCallbacks.js",
|
|
64
|
+
"require": "./cjs/parts/carousel/useCarouselCallbacks.js"
|
|
68
65
|
},
|
|
69
66
|
"./parts/carousel/useCarousel": {
|
|
70
|
-
"import": "./
|
|
71
|
-
"require": "./
|
|
67
|
+
"import": "./esm/parts/carousel/useCarousel.js",
|
|
68
|
+
"require": "./cjs/parts/carousel/useCarousel.js"
|
|
72
69
|
},
|
|
73
70
|
"./parts/carousel/styles": {
|
|
74
|
-
"import": "./
|
|
75
|
-
"require": "./
|
|
71
|
+
"import": "./esm/parts/carousel/styles.js",
|
|
72
|
+
"require": "./cjs/parts/carousel/styles.js"
|
|
76
73
|
},
|
|
77
74
|
"./parts/carousel/Carousel": {
|
|
78
|
-
"import": "./
|
|
79
|
-
"require": "./
|
|
75
|
+
"import": "./esm/parts/carousel/Carousel.js",
|
|
76
|
+
"require": "./cjs/parts/carousel/Carousel.js"
|
|
80
77
|
},
|
|
81
78
|
"./exportsRelated/DSTab": {
|
|
82
|
-
"import": "./
|
|
83
|
-
"require": "./
|
|
79
|
+
"import": "./esm/exportsRelated/DSTab.js",
|
|
80
|
+
"require": "./cjs/exportsRelated/DSTab.js"
|
|
84
81
|
},
|
|
85
82
|
"./DSTabsTypes": {
|
|
86
|
-
"import": "./
|
|
87
|
-
"require": "./
|
|
83
|
+
"import": "./esm/DSTabsTypes.js",
|
|
84
|
+
"require": "./cjs/DSTabsTypes.js"
|
|
88
85
|
},
|
|
89
86
|
"./DSTabsDatatestid": {
|
|
90
|
-
"import": "./
|
|
91
|
-
"require": "./
|
|
87
|
+
"import": "./esm/DSTabsDatatestid.js",
|
|
88
|
+
"require": "./cjs/DSTabsDatatestid.js"
|
|
92
89
|
},
|
|
93
90
|
"./DSTabsCTX": {
|
|
94
|
-
"import": "./
|
|
95
|
-
"require": "./
|
|
91
|
+
"import": "./esm/DSTabsCTX.js",
|
|
92
|
+
"require": "./cjs/DSTabsCTX.js"
|
|
96
93
|
},
|
|
97
94
|
"./DSTabs": {
|
|
98
|
-
"import": "./
|
|
99
|
-
"require": "./
|
|
95
|
+
"import": "./esm/DSTabs.js",
|
|
96
|
+
"require": "./cjs/DSTabs.js"
|
|
100
97
|
},
|
|
101
98
|
"./defaultProps": {
|
|
102
|
-
"import": "./
|
|
103
|
-
"require": "./
|
|
99
|
+
"import": "./esm/defaultProps.js",
|
|
100
|
+
"require": "./cjs/defaultProps.js"
|
|
104
101
|
},
|
|
105
102
|
"./config/useTabs": {
|
|
106
|
-
"import": "./
|
|
107
|
-
"require": "./
|
|
103
|
+
"import": "./esm/config/useTabs.js",
|
|
104
|
+
"require": "./cjs/config/useTabs.js"
|
|
108
105
|
},
|
|
109
106
|
"./config/useCrossRef": {
|
|
110
|
-
"import": "./
|
|
111
|
-
"require": "./
|
|
107
|
+
"import": "./esm/config/useCrossRef.js",
|
|
108
|
+
"require": "./cjs/config/useCrossRef.js"
|
|
112
109
|
}
|
|
113
110
|
},
|
|
114
111
|
"sideEffects": [
|
|
@@ -120,23 +117,29 @@
|
|
|
120
117
|
"url": "https://git.elliemae.io/platform-ui/dimsum.git"
|
|
121
118
|
},
|
|
122
119
|
"engines": {
|
|
123
|
-
"
|
|
124
|
-
"node": ">=
|
|
120
|
+
"npm": ">=7",
|
|
121
|
+
"node": ">=14"
|
|
125
122
|
},
|
|
126
123
|
"author": "ICE MT",
|
|
124
|
+
"scripts": {
|
|
125
|
+
"dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
|
|
126
|
+
"prebuild": "exit 0",
|
|
127
|
+
"predev": "exit 0",
|
|
128
|
+
"build": "node ../../scripts/build/build.js"
|
|
129
|
+
},
|
|
127
130
|
"dependencies": {
|
|
128
|
-
"@elliemae/ds-button": "2.3.0-
|
|
129
|
-
"@elliemae/ds-icon": "2.3.0-
|
|
130
|
-
"@elliemae/ds-icons": "2.3.0-
|
|
131
|
-
"@elliemae/ds-props-helpers": "2.3.0-
|
|
132
|
-
"@elliemae/ds-system": "2.3.0-
|
|
131
|
+
"@elliemae/ds-button": "2.3.0-next.0",
|
|
132
|
+
"@elliemae/ds-icon": "2.3.0-next.0",
|
|
133
|
+
"@elliemae/ds-icons": "2.3.0-next.0",
|
|
134
|
+
"@elliemae/ds-props-helpers": "2.3.0-next.0",
|
|
135
|
+
"@elliemae/ds-system": "2.3.0-next.0",
|
|
133
136
|
"@react-hook/resize-observer": "~1.2.5",
|
|
134
137
|
"prop-types": "~15.7.2",
|
|
135
138
|
"react-desc": "~4.1.3",
|
|
136
139
|
"react-swipeable-views": "~0.13.9"
|
|
137
140
|
},
|
|
138
141
|
"devDependencies": {
|
|
139
|
-
"@testing-library/jest-dom": "~5.15.
|
|
142
|
+
"@testing-library/jest-dom": "~5.15.0",
|
|
140
143
|
"@testing-library/react": "~12.1.2",
|
|
141
144
|
"@testing-library/user-event": "~13.5.0",
|
|
142
145
|
"styled-components": "~5.3.3"
|
|
@@ -149,12 +152,7 @@
|
|
|
149
152
|
},
|
|
150
153
|
"publishConfig": {
|
|
151
154
|
"access": "public",
|
|
152
|
-
"
|
|
153
|
-
|
|
154
|
-
"scripts": {
|
|
155
|
-
"dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
|
|
156
|
-
"prebuild": "exit 0",
|
|
157
|
-
"predev": "exit 0",
|
|
158
|
-
"build": "node ../../scripts/build/build.js"
|
|
155
|
+
"directory": "dist",
|
|
156
|
+
"generateSubmodules": true
|
|
159
157
|
}
|
|
160
158
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference path="../../../../shared/typings/react-desc.d.ts" />
|
|
2
|
-
import
|
|
2
|
+
import type { WeakValidationMap } from 'react';
|
|
3
3
|
import type { DSTabsPropsT } from './DSTabsTypes';
|
|
4
4
|
declare const DSTabs: {
|
|
5
5
|
(props: DSTabsPropsT): JSX.Element;
|
|
6
|
-
propTypes:
|
|
6
|
+
propTypes: WeakValidationMap<unknown>;
|
|
7
7
|
};
|
|
8
8
|
declare const DSTabsWithSchema: {
|
|
9
9
|
(props?: DSTabsPropsT | undefined): JSX.Element;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { StyledCarouselButtonWrapperPropsT } from '../../DSTabsTypes';
|
|
3
3
|
export declare const StyledCarouselBtn: import("styled-components").StyledComponent<{
|
|
4
|
-
(props: import("@elliemae/ds-button/
|
|
4
|
+
(props: import("@elliemae/ds-button/types/v2/propTypes").DSButtonPropsT): JSX.Element;
|
|
5
5
|
propTypes: import("react").WeakValidationMap<unknown>;
|
|
6
6
|
}, import("styled-components").DefaultTheme, {}, never>;
|
|
7
7
|
export declare const StyledCarouselWrapper: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/cjs/DSTabs.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(module2))
|
|
15
|
-
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return target;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (module2, isNodeMode) => {
|
|
21
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
-
};
|
|
23
|
-
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
-
return (module2, temp) => {
|
|
25
|
-
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
-
};
|
|
27
|
-
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
-
var DSTabs_exports = {};
|
|
29
|
-
__export(DSTabs_exports, {
|
|
30
|
-
DSTabs: () => DSTabs,
|
|
31
|
-
DSTabsWithSchema: () => DSTabsWithSchema,
|
|
32
|
-
default: () => DSTabs_default
|
|
33
|
-
});
|
|
34
|
-
var React = __toESM(require("react"));
|
|
35
|
-
var import_react = __toESM(require("react"));
|
|
36
|
-
var import_react_desc = require("react-desc");
|
|
37
|
-
var import_propTypes = require("./propTypes");
|
|
38
|
-
var import_DSTabsCTX = require("./DSTabsCTX");
|
|
39
|
-
var import_TabsContent = require("./parts/tabsContent/TabsContent");
|
|
40
|
-
var import_useTabs = require("./config/useTabs");
|
|
41
|
-
var import_useCrossRef = require("./config/useCrossRef");
|
|
42
|
-
var import_constants = require("./utils/constants");
|
|
43
|
-
const DSTabs = (props) => {
|
|
44
|
-
const ctx = (0, import_useTabs.useTabs)(props);
|
|
45
|
-
const crossRefsCtx = (0, import_useCrossRef.useCrossRef)();
|
|
46
|
-
const { type } = props;
|
|
47
|
-
if (type === import_constants.TabTypes.SUBTABS) {
|
|
48
|
-
return /* @__PURE__ */ import_react.default.createElement(import_DSTabsCTX.DSTabsContext.Provider, {
|
|
49
|
-
value: ctx
|
|
50
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_TabsContent.TabsContent, null));
|
|
51
|
-
}
|
|
52
|
-
return /* @__PURE__ */ import_react.default.createElement(import_DSTabsCTX.DSTabsCrossRefContext.Provider, {
|
|
53
|
-
value: crossRefsCtx
|
|
54
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_DSTabsCTX.DSTabsContext.Provider, {
|
|
55
|
-
value: ctx
|
|
56
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_TabsContent.TabsContent, null)));
|
|
57
|
-
};
|
|
58
|
-
DSTabs.propTypes = import_propTypes.tabsPropTypes;
|
|
59
|
-
const DSTabsWithSchema = (0, import_react_desc.describe)(DSTabs);
|
|
60
|
-
DSTabsWithSchema.propTypes = import_propTypes.tabsPropTypes;
|
|
61
|
-
var DSTabs_default = DSTabs;
|
|
62
|
-
module.exports = __toCommonJS(DSTabs_exports);
|
|
63
|
-
//# sourceMappingURL=DSTabs.js.map
|
package/dist/cjs/DSTabs.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/DSTabs.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport type { WeakValidationMap } from 'react';\nimport { describe } from 'react-desc';\nimport { tabsPropTypes } from './propTypes';\nimport { DSTabsContext, DSTabsCrossRefContext } from './DSTabsCTX';\nimport { TabsContent } from './parts/tabsContent/TabsContent';\nimport { useTabs } from './config/useTabs';\nimport { useCrossRef } from './config/useCrossRef';\nimport { TabTypes } from './utils/constants';\nimport type { DSTabsPropsT } from './DSTabsTypes';\n\nconst DSTabs = (props: DSTabsPropsT): JSX.Element => {\n const ctx = useTabs(props);\n const crossRefsCtx = useCrossRef();\n\n const { type } = props;\n\n if (type === TabTypes.SUBTABS) {\n return (\n <DSTabsContext.Provider value={ctx}>\n <TabsContent />\n </DSTabsContext.Provider>\n );\n }\n\n return (\n <DSTabsCrossRefContext.Provider value={crossRefsCtx}>\n <DSTabsContext.Provider value={ctx}>\n <TabsContent />\n </DSTabsContext.Provider>\n </DSTabsCrossRefContext.Provider>\n );\n};\n\nDSTabs.propTypes = tabsPropTypes as WeakValidationMap<unknown>;\nconst DSTabsWithSchema = describe<DSTabsPropsT>(DSTabs);\nDSTabsWithSchema.propTypes = tabsPropTypes;\n\nexport { DSTabs, DSTabsWithSchema };\nexport default DSTabs;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,wBAAyB;AACzB,uBAA8B;AAC9B,uBAAqD;AACrD,yBAA4B;AAC5B,qBAAwB;AACxB,yBAA4B;AAC5B,uBAAyB;AAGzB,MAAM,SAAS,CAAC,UAAqC;AACnD,QAAM,MAAM,4BAAQ;AACpB,QAAM,eAAe;AAErB,QAAM,EAAE,SAAS;AAEjB,MAAI,SAAS,0BAAS,SAAS;AAC7B,WACE,mDAAC,+BAAc,UAAf;AAAA,MAAwB,OAAO;AAAA,OAC7B,mDAAC,gCAAD;AAAA;AAKN,SACE,mDAAC,uCAAsB,UAAvB;AAAA,IAAgC,OAAO;AAAA,KACrC,mDAAC,+BAAc,UAAf;AAAA,IAAwB,OAAO;AAAA,KAC7B,mDAAC,gCAAD;AAAA;AAMR,OAAO,YAAY;AACnB,MAAM,mBAAmB,gCAAuB;AAChD,iBAAiB,YAAY;AAG7B,IAAO,iBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|