@elliemae/ds-tabs 1.60.0 → 2.0.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/cjs/DSTabs.js +29 -150
  2. package/cjs/DSTabsCTX.js +30 -0
  3. package/cjs/DSTabsDatatestid.js +18 -0
  4. package/cjs/DSTabsTypes.js +2 -0
  5. package/cjs/config/useCrossRef.js +17 -0
  6. package/cjs/config/useTabs.js +51 -0
  7. package/cjs/defaultProps.js +27 -0
  8. package/cjs/exportsRelated/DSTab.js +32 -0
  9. package/cjs/index.js +5 -35
  10. package/cjs/parts/carousel/Carousel.js +71 -0
  11. package/cjs/parts/carousel/styles.js +60 -0
  12. package/cjs/parts/carousel/useCarousel.js +78 -0
  13. package/cjs/parts/carousel/useCarouselCallbacks.js +72 -0
  14. package/cjs/parts/tabBar/TabBar.js +160 -0
  15. package/cjs/parts/tabBar/styles.js +199 -0
  16. package/cjs/parts/tabBar/useTabBar.js +98 -0
  17. package/cjs/parts/tabsContent/TabsContent.js +49 -0
  18. package/cjs/parts/tabsContent/styles.js +15 -0
  19. package/cjs/parts/tabsPanel/TabsPanels.js +77 -0
  20. package/cjs/parts/tabsPanel/styles.js +25 -0
  21. package/cjs/propTypes.js +33 -0
  22. package/cjs/utils/constants.js +29 -0
  23. package/cjs/utils/helpers.js +47 -0
  24. package/cjs/utils/hooks/useKeyboardNavigation.js +61 -0
  25. package/cjs/utils/hooks/useTabsCallbacks.js +59 -0
  26. package/esm/DSTabs.js +31 -152
  27. package/esm/DSTabsCTX.js +25 -0
  28. package/esm/DSTabsDatatestid.js +14 -0
  29. package/esm/DSTabsTypes.js +1 -0
  30. package/esm/config/useCrossRef.js +13 -0
  31. package/esm/config/useTabs.js +47 -0
  32. package/esm/defaultProps.js +23 -0
  33. package/esm/exportsRelated/DSTab.js +21 -0
  34. package/esm/index.js +4 -33
  35. package/esm/parts/carousel/Carousel.js +63 -0
  36. package/esm/parts/carousel/styles.js +49 -0
  37. package/esm/parts/carousel/useCarousel.js +70 -0
  38. package/esm/parts/carousel/useCarouselCallbacks.js +68 -0
  39. package/esm/parts/tabBar/TabBar.js +151 -0
  40. package/esm/parts/tabBar/styles.js +185 -0
  41. package/esm/parts/tabBar/useTabBar.js +90 -0
  42. package/esm/parts/tabsContent/TabsContent.js +40 -0
  43. package/esm/parts/tabsContent/styles.js +7 -0
  44. package/esm/parts/tabsPanel/TabsPanels.js +67 -0
  45. package/esm/parts/tabsPanel/styles.js +17 -0
  46. package/esm/propTypes.js +28 -0
  47. package/esm/utils/constants.js +21 -0
  48. package/esm/utils/helpers.js +37 -0
  49. package/esm/utils/hooks/useKeyboardNavigation.js +57 -0
  50. package/esm/utils/hooks/useTabsCallbacks.js +55 -0
  51. package/package.json +134 -18
  52. package/types/DSTabs.d.ts +14 -0
  53. package/types/DSTabsCTX.d.ts +4 -0
  54. package/types/DSTabsDatatestid.d.ts +12 -0
  55. package/types/DSTabsTypes.d.ts +202 -0
  56. package/types/config/useCrossRef.d.ts +2 -0
  57. package/types/config/useTabs.d.ts +2 -0
  58. package/types/defaultProps.d.ts +2 -0
  59. package/types/exportsRelated/DSTab.d.ts +14 -0
  60. package/types/index.d.ts +5 -0
  61. package/types/parts/carousel/Carousel.d.ts +3 -0
  62. package/types/parts/carousel/styles.d.ts +9 -0
  63. package/types/parts/carousel/useCarousel.d.ts +2 -0
  64. package/types/parts/carousel/useCarouselCallbacks.d.ts +2 -0
  65. package/types/parts/tabBar/TabBar.d.ts +2 -0
  66. package/types/parts/tabBar/styles.d.ts +7 -0
  67. package/types/parts/tabBar/useTabBar.d.ts +2 -0
  68. package/types/parts/tabsContent/TabsContent.d.ts +2 -0
  69. package/types/parts/tabsContent/styles.d.ts +1 -0
  70. package/types/parts/tabsPanel/TabsPanels.d.ts +2 -0
  71. package/types/parts/tabsPanel/styles.d.ts +2 -0
  72. package/types/propTypes.d.ts +54 -0
  73. package/types/tests/DSTabs.callbacks.test.d.ts +1 -0
  74. package/types/tests/DSTabs.func.test.d.ts +1 -0
  75. package/types/tests/DSTabs.keyboard.test.d.ts +1 -0
  76. package/types/tests/DSTabs.test.d.ts +1 -0
  77. package/types/utils/constants.d.ts +19 -0
  78. package/types/utils/helpers.d.ts +8 -0
  79. package/types/utils/hooks/useKeyboardNavigation.d.ts +2 -0
  80. package/types/utils/hooks/useTabsCallbacks.d.ts +2 -0
  81. package/Carousel/package.json +0 -10
  82. package/DSTab/package.json +0 -10
  83. package/DSTabs/package.json +0 -10
  84. package/PanelContainer/package.json +0 -10
  85. package/SubTabBar/package.json +0 -10
  86. package/TabBar/package.json +0 -10
  87. package/TabTypes/package.json +0 -10
  88. package/TabsImpl/package.json +0 -10
  89. package/TabsPanels/package.json +0 -10
  90. package/cjs/Carousel.js +0 -219
  91. package/cjs/Carousel.js.map +0 -1
  92. package/cjs/DSTab.js +0 -50
  93. package/cjs/DSTab.js.map +0 -1
  94. package/cjs/DSTabs.js.map +0 -1
  95. package/cjs/PanelContainer.js +0 -45
  96. package/cjs/PanelContainer.js.map +0 -1
  97. package/cjs/SubTabBar.js +0 -81
  98. package/cjs/SubTabBar.js.map +0 -1
  99. package/cjs/TabBar.js +0 -480
  100. package/cjs/TabBar.js.map +0 -1
  101. package/cjs/TabTypes.js +0 -17
  102. package/cjs/TabTypes.js.map +0 -1
  103. package/cjs/TabsImpl.js +0 -173
  104. package/cjs/TabsImpl.js.map +0 -1
  105. package/cjs/TabsPanels.js +0 -116
  106. package/cjs/TabsPanels.js.map +0 -1
  107. package/cjs/index.js.map +0 -1
  108. package/cjs/useResize.js +0 -25
  109. package/cjs/useResize.js.map +0 -1
  110. package/esm/Carousel.js +0 -209
  111. package/esm/Carousel.js.map +0 -1
  112. package/esm/DSTab.js +0 -40
  113. package/esm/DSTab.js.map +0 -1
  114. package/esm/DSTabs.js.map +0 -1
  115. package/esm/PanelContainer.js +0 -37
  116. package/esm/PanelContainer.js.map +0 -1
  117. package/esm/SubTabBar.js +0 -74
  118. package/esm/SubTabBar.js.map +0 -1
  119. package/esm/TabBar.js +0 -464
  120. package/esm/TabBar.js.map +0 -1
  121. package/esm/TabTypes.js +0 -12
  122. package/esm/TabTypes.js.map +0 -1
  123. package/esm/TabsImpl.js +0 -163
  124. package/esm/TabsImpl.js.map +0 -1
  125. package/esm/TabsPanels.js +0 -103
  126. package/esm/TabsPanels.js.map +0 -1
  127. package/esm/index.js.map +0 -1
  128. package/esm/useResize.js +0 -21
  129. package/esm/useResize.js.map +0 -1
  130. package/useResize/package.json +0 -10
package/cjs/Carousel.js DELETED
@@ -1,219 +0,0 @@
1
- 'use strict';
2
-
3
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
- var React = require('react');
5
- var PropTypes = require('prop-types');
6
- var dsIcons = require('@elliemae/ds-icons');
7
- var styled = require('styled-components');
8
- var DSButton = require('@elliemae/ds-button');
9
- var useResize = require('./useResize.js');
10
- require('lodash');
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
15
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
17
- var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
18
- var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
19
-
20
- var CarouselBtn = /*#__PURE__*/styled__default['default'](DSButton__default['default']).withConfig({
21
- componentId: "sc-1317h31-0"
22
- })(["position:absolute;z-index:1;margin:0;&:focus{& span{background-color:", ";background-size:90%;border-radius:2px;border-color:transparent;}}&&{width:16px;height:calc(100% - 2px);@media (min-width:", "){height:calc(100% - 4px);&:focus{& span{background-color:unset;}}}}", " && .em-ds-icon{height:16px;width:16px;}"], function (props) {
23
- return props.theme.colors.brand[200];
24
- }, function (_ref) {
25
- var theme = _ref.theme;
26
- return theme.breakpoints.medium;
27
- }, function (props) {
28
- return props.right ? 'right: 0;' : 'left: 0;';
29
- });
30
- var CarouselWrapper = /*#__PURE__*/styled__default['default'].span.withConfig({
31
- componentId: "sc-1317h31-1"
32
- })(["position:relative;padding:0 16px;width:100%;"]);
33
- var ChildrenWrap = /*#__PURE__*/styled__default['default'].div.withConfig({
34
- componentId: "sc-1317h31-2"
35
- })(["display:flex;flex-wrap:nowrap;flex:1;overflow:hidden;"]);
36
-
37
- function isVisibleElement(el, container) {
38
- var rect = el.getBoundingClientRect();
39
- var cRect = container.getBoundingClientRect();
40
- var elemLeft = rect.left + 3;
41
- var elemRight = rect.right - 3; // Only completely visible elements return true:
42
-
43
- var isVisible = elemLeft >= cRect.left && elemRight <= cRect.right;
44
- return isVisible;
45
- }
46
-
47
- var Carousel = function Carousel(_ref2) {
48
- var children = _ref2.children,
49
- onScroll = _ref2.onScroll;
50
- var itemsRef = React.useRef([]);
51
- var wrapRef = React.useRef(null);
52
- var leftRef = React.useRef(null);
53
- var rightRef = React.useRef(null);
54
-
55
- var shouldShowLeft = function shouldShowLeft() {
56
- return children && children[0] && wrapRef.current && itemsRef.current[0] && !isVisibleElement(itemsRef.current[0], wrapRef.current);
57
- };
58
-
59
- var shouldShowRight = function shouldShowRight() {
60
- return children && children[children.length - 1] && wrapRef.current && itemsRef.current[children.length - 1] && !isVisibleElement(itemsRef.current[children.length - 1], wrapRef.current);
61
- };
62
-
63
- var _useState = React.useState({
64
- right: false,
65
- left: false,
66
- CHEVRON_FOCUS_FLAG: false // flag to replace lack of callback in useState hook
67
-
68
- }),
69
- _useState2 = _slicedToArray__default['default'](_useState, 2),
70
- _useState2$ = _useState2[0],
71
- right = _useState2$.right,
72
- left = _useState2$.left,
73
- CHEVRON_FOCUS_FLAG = _useState2$.CHEVRON_FOCUS_FLAG,
74
- setShow = _useState2[1];
75
-
76
- var recalcChevrons = function recalcChevrons() {
77
- return setShow({
78
- right: shouldShowRight(),
79
- left: shouldShowLeft()
80
- });
81
- };
82
-
83
- React.useEffect(function () {
84
- recalcChevrons();
85
- }, []);
86
- React.useEffect(function () {
87
- if (CHEVRON_FOCUS_FLAG) {
88
- // focus opposite chevron when current one hides
89
- if (!left && right && rightRef.current) {
90
- rightRef.current.focus();
91
- } else if (!right && left && leftRef.current) {
92
- leftRef.current.focus();
93
- }
94
-
95
- setShow({
96
- right: right,
97
- left: left,
98
- CHEVRON_FOCUS_FLAG: false
99
- });
100
- }
101
- }, [CHEVRON_FOCUS_FLAG]);
102
- useResize.useResize(wrapRef, recalcChevrons);
103
-
104
- var getVisibleItemsOffset = function getVisibleItemsOffset() {
105
- return itemsRef.current.reduce(function (acc, c) {
106
- if (isVisibleElement(c, wrapRef.current)) {
107
- var styles = window.getComputedStyle(c);
108
- var width = c.offsetWidth;
109
- var margin = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
110
- return acc + (width + margin);
111
- }
112
-
113
- return acc;
114
- }, 0);
115
- };
116
-
117
- var rightClick = function rightClick() {
118
- wrapRef.current.scrollLeft += getVisibleItemsOffset();
119
- };
120
-
121
- var leftClick = function leftClick() {
122
- wrapRef.current.scrollLeft -= getVisibleItemsOffset();
123
- };
124
-
125
- var handleScroll = function handleScroll(e) {
126
- // forces render when element.scrollTop is changed (out of react flow)
127
- setShow({
128
- right: shouldShowRight(),
129
- left: shouldShowLeft(),
130
- // to trigger focus logic at effect above
131
- CHEVRON_FOCUS_FLAG: true
132
- });
133
- onScroll(e);
134
- };
135
-
136
- var handleClick = function handleClick(e) {
137
- var onClick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
138
- var tabListDomEl = wrapRef.current;
139
- var el = e.target;
140
- var rect = el.getBoundingClientRect();
141
- var cRect = tabListDomEl.getBoundingClientRect();
142
-
143
- if (!isVisibleElement(el, tabListDomEl)) {
144
- var containerWidth = cRect.width;
145
- var halfContainer = containerWidth / 2;
146
- var elementScrollPosition = rect.left - cRect.left;
147
- var positionInContainer = elementScrollPosition % containerWidth;
148
- var width = el.offsetWidth; // align to right
149
-
150
- if (positionInContainer > halfContainer) {
151
- wrapRef.current.scrollLeft += width + positionInContainer - containerWidth;
152
- } else {
153
- // align left
154
- wrapRef.current.scrollLeft += positionInContainer;
155
- }
156
-
157
- recalcChevrons();
158
- }
159
-
160
- onClick(e);
161
- };
162
-
163
- return /*#__PURE__*/React__default['default'].createElement(CarouselWrapper, null, left && /*#__PURE__*/React__default['default'].createElement(CarouselBtn, {
164
- "data-testid": "chevron-left",
165
- buttonType: "link",
166
- innerRef: leftRef,
167
- size: "s",
168
- icon: /*#__PURE__*/React__default['default'].createElement(dsIcons.ChevronLeft, {
169
- size: "s",
170
- color: ['brand-primary', '600']
171
- }),
172
- onClick: leftClick,
173
- tabIndex: -1
174
- }), right && /*#__PURE__*/React__default['default'].createElement(CarouselBtn, {
175
- "data-testid": "chevron-right",
176
- innerRef: rightRef,
177
- right: true,
178
- size: "s",
179
- buttonType: "link",
180
- icon: /*#__PURE__*/React__default['default'].createElement(dsIcons.ChevronRight, {
181
- size: "s",
182
- color: ['brand-primary', '600']
183
- }),
184
- onClick: rightClick,
185
- tabIndex: -1
186
- }), /*#__PURE__*/React__default['default'].createElement(ChildrenWrap, {
187
- onScroll: handleScroll,
188
- ref: wrapRef
189
- }, React__default['default'].Children.map(children, function (child, idx) {
190
- return /*#__PURE__*/React__default['default'].cloneElement(child, {
191
- onClick: function onClick(e) {
192
- var _child$props;
193
-
194
- return handleClick(e, (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.onClick);
195
- },
196
- key: 'carousel'.concat(idx),
197
- ref: function ref(el) {
198
- itemsRef.current[idx] = el; // keep old refs
199
-
200
- if (typeof child.ref === 'function') {
201
- child.ref(el);
202
- }
203
- }
204
- });
205
- })));
206
- };
207
-
208
- Carousel.defaultProps = {
209
- onScroll: function onScroll() {
210
- return null;
211
- }
212
- };
213
- Carousel.propTypes = {
214
- children: PropTypes__default['default'].arrayOf(PropTypes__default['default'].element).isRequired,
215
- onScroll: PropTypes__default['default'].func
216
- };
217
-
218
- module.exports = Carousel;
219
- //# sourceMappingURL=Carousel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../src/Carousel.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ChevronRight, ChevronLeft } from '@elliemae/ds-icons';\nimport styled from 'styled-components';\nimport DSButton from '@elliemae/ds-button';\nimport { useResize } from './useResize';\n\nconst CarouselBtn = styled(DSButton)`\n position: absolute;\n z-index: 1;\n margin: 0;\n\n &:focus {\n & span {\n background-color: ${(props) => props.theme.colors.brand[200]};\n background-size: 90%;\n border-radius: 2px;\n border-color: transparent;\n }\n }\n\n && {\n width: 16px;\n // offset needed for svg gap caused by resizing icons and to\n // avoid covering blue active underline\n height: calc(100% - 2px);\n\n @media (min-width: ${({ theme }) => theme.breakpoints.medium}) {\n height: calc(100% - 4px);\n &:focus {\n & span {\n background-color: unset;\n }\n }\n }\n }\n ${(props) => (props.right ? 'right: 0;' : 'left: 0;')}\n\n && .em-ds-icon {\n height: 16px;\n width: 16px;\n }\n`;\n\nconst CarouselWrapper = styled.span`\n position: relative;\n padding: 0 16px;\n width: 100%;\n`;\n\nconst ChildrenWrap = styled.div`\n display: flex;\n flex-wrap: nowrap;\n flex: 1;\n overflow: hidden;\n`;\n\nfunction isVisibleElement(el, container) {\n const rect = el.getBoundingClientRect();\n const cRect = container.getBoundingClientRect();\n const elemLeft = rect.left + 3;\n const elemRight = rect.right - 3;\n\n // Only completely visible elements return true:\n const isVisible = elemLeft >= cRect.left && elemRight <= cRect.right;\n return isVisible;\n}\n\nconst Carousel = ({ children, onScroll }) => {\n const itemsRef = useRef([]);\n const wrapRef = useRef(null);\n const leftRef = useRef(null);\n const rightRef = useRef(null);\n\n const shouldShowLeft = () =>\n children &&\n children[0] &&\n wrapRef.current &&\n itemsRef.current[0] &&\n !isVisibleElement(itemsRef.current[0], wrapRef.current);\n const shouldShowRight = () =>\n children &&\n children[children.length - 1] &&\n wrapRef.current &&\n itemsRef.current[children.length - 1] &&\n !isVisibleElement(itemsRef.current[children.length - 1], wrapRef.current);\n\n const [{ right, left, CHEVRON_FOCUS_FLAG }, setShow] = useState({\n right: false,\n left: false,\n CHEVRON_FOCUS_FLAG: false, // flag to replace lack of callback in useState hook\n });\n const recalcChevrons = () => setShow({ right: shouldShowRight(), left: shouldShowLeft() });\n\n useEffect(() => {\n recalcChevrons();\n }, []);\n\n useEffect(() => {\n if (CHEVRON_FOCUS_FLAG) {\n // focus opposite chevron when current one hides\n if (!left && right && rightRef.current) {\n rightRef.current.focus();\n } else if (!right && left && leftRef.current) {\n leftRef.current.focus();\n }\n setShow({ right, left, CHEVRON_FOCUS_FLAG: false });\n }\n }, [CHEVRON_FOCUS_FLAG]);\n\n useResize(wrapRef, recalcChevrons);\n\n const getVisibleItemsOffset = () =>\n itemsRef.current.reduce((acc, c) => {\n if (isVisibleElement(c, wrapRef.current)) {\n const styles = window.getComputedStyle(c);\n const width = c.offsetWidth;\n const margin = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n return acc + (width + margin);\n }\n return acc;\n }, 0);\n\n const rightClick = () => {\n wrapRef.current.scrollLeft += getVisibleItemsOffset();\n };\n\n const leftClick = () => {\n wrapRef.current.scrollLeft -= getVisibleItemsOffset();\n };\n\n const handleScroll = (e) => {\n // forces render when element.scrollTop is changed (out of react flow)\n setShow({\n right: shouldShowRight(),\n left: shouldShowLeft(),\n // to trigger focus logic at effect above\n CHEVRON_FOCUS_FLAG: true,\n });\n onScroll(e);\n };\n\n const handleClick = (e, onClick = () => {}) => {\n const tabListDomEl = wrapRef.current;\n const el = e.target;\n const rect = el.getBoundingClientRect();\n const cRect = tabListDomEl.getBoundingClientRect();\n\n if (!isVisibleElement(el, tabListDomEl)) {\n const containerWidth = cRect.width;\n const halfContainer = containerWidth / 2;\n const elementScrollPosition = rect.left - cRect.left;\n const positionInContainer = elementScrollPosition % containerWidth;\n const width = el.offsetWidth;\n\n // align to right\n if (positionInContainer > halfContainer) {\n wrapRef.current.scrollLeft += width + positionInContainer - containerWidth;\n } else {\n // align left\n wrapRef.current.scrollLeft += positionInContainer;\n }\n recalcChevrons();\n }\n onClick(e);\n };\n\n return (\n <CarouselWrapper>\n {left && (\n <CarouselBtn\n data-testid=\"chevron-left\"\n buttonType=\"link\"\n innerRef={leftRef}\n size=\"s\"\n icon={<ChevronLeft size=\"s\" color={['brand-primary', '600']} />}\n onClick={leftClick}\n tabIndex={-1}\n />\n )}\n {right && (\n <CarouselBtn\n data-testid=\"chevron-right\"\n innerRef={rightRef}\n right\n size=\"s\"\n buttonType=\"link\"\n icon={<ChevronRight size=\"s\" color={['brand-primary', '600']} />}\n onClick={rightClick}\n tabIndex={-1}\n />\n )}\n <ChildrenWrap onScroll={handleScroll} ref={wrapRef}>\n {React.Children.map(children, (child, idx) =>\n React.cloneElement(child, {\n onClick: (e) => handleClick(e, child.props?.onClick),\n key: 'carousel'.concat(idx),\n ref: (el) => {\n itemsRef.current[idx] = el;\n // keep old refs\n if (typeof child.ref === 'function') {\n child.ref(el);\n }\n },\n }),\n )}\n </ChildrenWrap>\n </CarouselWrapper>\n );\n};\n\nCarousel.defaultProps = {\n onScroll: () => null,\n};\n\nCarousel.propTypes = {\n children: PropTypes.arrayOf(PropTypes.element).isRequired,\n onScroll: PropTypes.func,\n};\n\nexport default Carousel;\n"],"names":["CarouselBtn","styled","DSButton","props","theme","colors","brand","breakpoints","medium","right","CarouselWrapper","span","ChildrenWrap","div","isVisibleElement","el","container","rect","getBoundingClientRect","cRect","elemLeft","left","elemRight","isVisible","Carousel","children","onScroll","itemsRef","useRef","wrapRef","leftRef","rightRef","shouldShowLeft","current","shouldShowRight","length","useState","CHEVRON_FOCUS_FLAG","setShow","recalcChevrons","useEffect","focus","useResize","getVisibleItemsOffset","reduce","acc","c","styles","window","getComputedStyle","width","offsetWidth","margin","parseFloat","marginLeft","marginRight","rightClick","scrollLeft","leftClick","handleScroll","e","handleClick","onClick","tabListDomEl","target","containerWidth","halfContainer","elementScrollPosition","positionInContainer","React","ChevronLeft","ChevronRight","Children","map","child","idx","cloneElement","key","concat","ref","defaultProps","propTypes","PropTypes","arrayOf","element","isRequired","func"],"mappings":"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"}
package/cjs/DSTab.js DELETED
@@ -1,50 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var reactDesc = require('react-desc');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
-
12
- /* eslint-disable react/no-unused-prop-types */
13
-
14
- var DSTab = function DSTab(_ref) {
15
- var _ref$tabId = _ref.tabId,
16
- tabId = _ref$tabId === void 0 ? '' : _ref$tabId,
17
- _ref$title = _ref.title,
18
- title = _ref$title === void 0 ? '' : _ref$title,
19
- _ref$required = _ref.required,
20
- required = _ref$required === void 0 ? false : _ref$required;
21
- return /*#__PURE__*/React__default['default'].createElement("div", {
22
- "aria-labelledby": "".concat(tabId, "-label"),
23
- tabId: tabId,
24
- title: title,
25
- required: required
26
- });
27
- };
28
-
29
- DSTab.displayName = 'DSTab';
30
- var props = {
31
- /** unique id for tab */
32
- tabId: reactDesc.PropTypes.string.description('unique id for tab'),
33
-
34
- /** tab title */
35
- title: reactDesc.PropTypes.string.description('tab title'),
36
-
37
- /** Show a required mark next to the title */
38
- required: reactDesc.PropTypes.bool.description('Show a required mark next to the title'),
39
-
40
- /** Whether or not it's a ds-tab from DSMobile tabs */
41
- isDSMobile: reactDesc.PropTypes.bool.description("Whether or not it's a ds-tab from DSMobile tabs")
42
- };
43
- DSTab.propTypes = props;
44
- var DSTabWithSchema = reactDesc.describe(DSTab);
45
- DSTabWithSchema.propTypes = props;
46
-
47
- exports.DSTab = DSTab;
48
- exports.DSTabWithSchema = DSTabWithSchema;
49
- exports['default'] = DSTab;
50
- //# sourceMappingURL=DSTab.js.map
package/cjs/DSTab.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"DSTab.js","sources":["../../src/DSTab.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\n\n// This component is for create a specific api for Tabs children\nconst DSTab = ({ tabId = '', title = '', required = false }) => (\n <div\n aria-labelledby={`${tabId}-label`}\n tabId={tabId}\n title={title}\n required={required}\n />\n);\n\nDSTab.displayName = 'DSTab';\nconst props = {\n /** unique id for tab */\n tabId: PropTypes.string.description('unique id for tab'),\n /** tab title */\n title: PropTypes.string.description('tab title'),\n /** Show a required mark next to the title */\n required: PropTypes.bool.description(\n 'Show a required mark next to the title',\n ),\n /** Whether or not it's a ds-tab from DSMobile tabs */\n isDSMobile: PropTypes.bool.description(\n \"Whether or not it's a ds-tab from DSMobile tabs\",\n ),\n};\nDSTab.propTypes = props;\nconst DSTabWithSchema = describe(DSTab);\nDSTabWithSchema.propTypes = props;\n\nexport { DSTab, DSTabWithSchema };\nexport default DSTab;\n"],"names":["DSTab","tabId","title","required","React","displayName","props","PropTypes","string","description","bool","isDSMobile","propTypes","DSTabWithSchema","describe"],"mappings":";;;;;;;;;;;AAAA;;IAKMA,KAAK,GAAG,SAARA,KAAQ;AAAA,wBAAGC,KAAH;AAAA,MAAGA,KAAH,2BAAW,EAAX;AAAA,wBAAeC,KAAf;AAAA,MAAeA,KAAf,2BAAuB,EAAvB;AAAA,2BAA2BC,QAA3B;AAAA,MAA2BA,QAA3B,8BAAsC,KAAtC;AAAA,sBACZC;AACE,iCAAoBH,KAApB,WADF;AAEE,IAAA,KAAK,EAAEA,KAFT;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,QAAQ,EAAEC;AAJZ,IADY;AAAA;;AASdH,KAAK,CAACK,WAAN,GAAoB,OAApB;AACA,IAAMC,KAAK,GAAG;AACZ;AACAL,EAAAA,KAAK,EAAEM,mBAAS,CAACC,MAAV,CAAiBC,WAAjB,CAA6B,mBAA7B,CAFK;;AAGZ;AACAP,EAAAA,KAAK,EAAEK,mBAAS,CAACC,MAAV,CAAiBC,WAAjB,CAA6B,WAA7B,CAJK;;AAKZ;AACAN,EAAAA,QAAQ,EAAEI,mBAAS,CAACG,IAAV,CAAeD,WAAf,CACR,wCADQ,CANE;;AASZ;AACAE,EAAAA,UAAU,EAAEJ,mBAAS,CAACG,IAAV,CAAeD,WAAf,CACV,iDADU;AAVA,CAAd;AAcAT,KAAK,CAACY,SAAN,GAAkBN,KAAlB;IACMO,eAAe,GAAGC,kBAAQ,CAACd,KAAD;AAChCa,eAAe,CAACD,SAAhB,GAA4BN,KAA5B;;;;;;"}
package/cjs/DSTabs.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"DSTabs.js","sources":["../../src/DSTabs.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { TabTypes } from './TabTypes';\nimport TabsImpl from './TabsImpl';\nimport DSTab from './DSTab';\n\nconst DSTabs = ({\n containerProps = {},\n innerRef,\n animated = true,\n enableMouseEvents = false,\n allowTextSelection = false,\n onTabChange = () => null,\n tabsListAriaLabel = 'Tab list',\n type = TabTypes.NORMAL,\n tabBarExtraContent = undefined,\n children: tabs,\n onlyRenderActiveTab = false,\n activeTab,\n withCarousel = false,\n firstSubtabRef,\n lastTabRef,\n flexibleTabsHeaders,\n fixedTabsHeaders,\n isDSMobile = false,\n}) => (\n <TabsImpl\n activeTab={activeTab}\n firstSubtabRef={firstSubtabRef}\n lastTabRef={lastTabRef}\n allowTextSelection={allowTextSelection}\n animated={animated}\n containerProps={containerProps}\n enableMouseEvents={enableMouseEvents}\n innerRef={innerRef}\n onlyRenderActiveTab={onlyRenderActiveTab}\n onTabChange={onTabChange}\n tabBarExtraContent={tabBarExtraContent}\n tabsListAriaLabel={tabsListAriaLabel}\n type={type}\n withCarousel={withCarousel}\n flexibleTabsHeaders={flexibleTabsHeaders}\n fixedTabsHeaders={fixedTabsHeaders}\n isDSMobile={isDSMobile}\n >\n {tabs}\n </TabsImpl>\n);\n\nconst props = {\n /** Whether the tab transition should animate or not */\n animated: PropTypes.bool.description(\n 'Whether the tab transition should animate or not',\n ),\n /** Enables tab transition with mouse drag events */\n enableMouseEvents: PropTypes.bool.description(\n 'Enables tab transition with mouse drag events',\n ),\n /** Allow text selection when mouse drag events are active */\n allowTextSelection: PropTypes.bool.description(\n 'Allow text selection when mouse drag events are active',\n ),\n /** Handler when a user clicks on a different tab */\n onTabChange: PropTypes.func.description(\n 'Handler when a user clicks on a different tab',\n ),\n /** Tab type */\n type: PropTypes.oneOf(['normal', 'subtabs']).description('Tab type'),\n /** Extra content next to the tabs pills */\n tabBarExtraContent: PropTypes.element.description(\n 'Extra content next to the tabs pills',\n ),\n /** Only renders the active tab in the DOM */\n onlyRenderActiveTab: PropTypes.bool.description(\n 'Only renders the active tab in the DOM',\n ),\n /** Mobile only flexible tabs mode */\n flexibleTabsHeaders: PropTypes.bool.description(\n 'Mobile only flexible tabs mode',\n ),\n /** Mobile only fixed tabs mode */\n fixedTabsHeaders: PropTypes.bool.description('Mobile only fixed tabs mode'),\n /** Whether or not it's a ds-tab from DSMobile tabs */\n isDSMobile: PropTypes.bool.description(\n \"Whether or not it's a ds-tab from DSMobile tabs\",\n ),\n /** Activate carousel behavior */\n withCarousel: PropTypes.bool.description('Activate carousel behavior'),\n /** The active tabId */\n activeTab: PropTypes.string.description('The active tabId'),\n /** tabs children */\n children: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.instanceOf([\n PropTypes.instanceOf(DSTab),\n PropTypes.array,\n ]),\n }),\n ).isRequired.description('tabs children'),\n /** Aria label for the list */\n tabsListAriaLabel: PropTypes.string.description('Aria label for the list'),\n /** Additional properties for the container */\n containerProps: PropTypes.object.description(\n 'Additional properties for the container',\n ),\n /** REF */\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]).description('REF'),\n /** internal ref to handle keyboard a11y behavior */\n firstSubtabRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]).description('internal ref to handle keyboard a11y behavior'),\n /** internal ref to handle keyboard a11y behavior */\n lastTabRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]).description('internal ref to handle keyboard a11y behavior'),\n};\n\nDSTabs.propTypes = props;\nconst DSTabsWithSchema = describe(DSTabs);\nDSTabsWithSchema.propTypes = props;\n\nexport { DSTabs, DSTabsWithSchema };\nexport default DSTabs;\n"],"names":["DSTabs","containerProps","innerRef","animated","enableMouseEvents","allowTextSelection","onTabChange","tabsListAriaLabel","type","TabTypes","NORMAL","tabBarExtraContent","undefined","tabs","children","onlyRenderActiveTab","activeTab","withCarousel","firstSubtabRef","lastTabRef","flexibleTabsHeaders","fixedTabsHeaders","isDSMobile","React","props","PropTypes","bool","description","func","oneOf","element","string","arrayOf","shape","instanceOf","DSTab","array","isRequired","object","oneOfType","current","any","propTypes","DSTabsWithSchema","describe"],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
4
- var React = require('react');
5
- var PropTypes = require('prop-types');
6
- var dsClassnames = require('@elliemae/ds-classnames');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
13
-
14
- var _excluded = ["children", "lastTabRef", "firstSubtabRef"];
15
- var blockName = 'tabs-panels';
16
- var PC = dsClassnames.aggregatedClasses('div')(blockName, 'panel');
17
-
18
- var PanelContainer = function PanelContainer(_ref) {
19
- var children = _ref.children,
20
- lastTabRef = _ref.lastTabRef,
21
- firstSubtabRef = _ref.firstSubtabRef,
22
- rest = _objectWithoutProperties__default['default'](_ref, _excluded);
23
-
24
- // inject ref to handle focus on first subtab child
25
- var child = React__default['default'].Children.map(children, function (c, i) {
26
- return i === 0 && c ? /*#__PURE__*/React__default['default'].cloneElement(c, {
27
- firstSubtabRef: firstSubtabRef,
28
- lastTabRef: lastTabRef
29
- }) : c;
30
- });
31
- return /*#__PURE__*/React__default['default'].createElement(PC, rest, child);
32
- };
33
-
34
- PanelContainer.propTypes = {
35
- children: PropTypes__default['default'].any,
36
- firstSubtabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
37
- current: PropTypes__default['default'].any
38
- })]),
39
- lastTabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
40
- current: PropTypes__default['default'].any
41
- })])
42
- };
43
-
44
- module.exports = PanelContainer;
45
- //# sourceMappingURL=PanelContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PanelContainer.js","sources":["../../src/PanelContainer.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nconst blockName = 'tabs-panels';\n\nconst PC = aggregatedClasses('div')(blockName, 'panel');\n\nconst PanelContainer = ({ children, lastTabRef, firstSubtabRef, ...rest }) => {\n // inject ref to handle focus on first subtab child\n const child = React.Children.map(children, (c, i) =>\n i === 0 && c ? React.cloneElement(c, { firstSubtabRef, lastTabRef }) : c,\n );\n return <PC {...rest}>{child}</PC>;\n};\n\nPanelContainer.propTypes = {\n children: PropTypes.any,\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};\n\nexport default PanelContainer;\n"],"names":["blockName","PC","aggregatedClasses","PanelContainer","children","lastTabRef","firstSubtabRef","rest","child","React","Children","map","c","i","cloneElement","propTypes","PropTypes","any","oneOfType","func","shape","current"],"mappings":";;;;;;;;;;;;;;AAGA,IAAMA,SAAS,GAAG,aAAlB;AAEA,IAAMC,EAAE,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,CAAyBF,SAAzB,EAAoC,OAApC,CAAX;;IAEMG,cAAc,GAAG,SAAjBA,cAAiB,OAAuD;AAAA,MAApDC,QAAoD,QAApDA,QAAoD;AAAA,MAA1CC,UAA0C,QAA1CA,UAA0C;AAAA,MAA9BC,cAA8B,QAA9BA,cAA8B;AAAA,MAAXC,IAAW;;AAC5E;AACA,MAAMC,KAAK,GAAGC,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBP,QAAnB,EAA6B,UAACQ,CAAD,EAAIC,CAAJ;AAAA,WACzCA,CAAC,KAAK,CAAN,IAAWD,CAAX,gBAAeH,yBAAK,CAACK,YAAN,CAAmBF,CAAnB,EAAsB;AAAEN,MAAAA,cAAc,EAAdA,cAAF;AAAkBD,MAAAA,UAAU,EAAVA;AAAlB,KAAtB,CAAf,GAAuEO,CAD9B;AAAA,GAA7B,CAAd;AAGA,sBAAOH,wCAAC,EAAD,EAAQF,IAAR,EAAeC,KAAf,CAAP;AACD;;AAEDL,cAAc,CAACY,SAAf,GAA2B;AACzBX,EAAAA,QAAQ,EAAEY,6BAAS,CAACC,GADK;AAEzBX,EAAAA,cAAc,EAAEU,6BAAS,CAACE,SAAV,CAAoB,CAClCF,6BAAS,CAACG,IADwB,EAElCH,6BAAS,CAACI,KAAV,CAAgB;AAAEC,IAAAA,OAAO,EAAEL,6BAAS,CAACC;AAArB,GAAhB,CAFkC,CAApB,CAFS;AAMzBZ,EAAAA,UAAU,EAAEW,6BAAS,CAACE,SAAV,CAAoB,CAC9BF,6BAAS,CAACG,IADoB,EAE9BH,6BAAS,CAACI,KAAV,CAAgB;AAAEC,IAAAA,OAAO,EAAEL,6BAAS,CAACC;AAArB,GAAhB,CAF8B,CAApB;AANa,CAA3B;;;;"}
package/cjs/SubTabBar.js DELETED
@@ -1,81 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var PropTypes = require('prop-types');
5
- var dsClassnames = require('@elliemae/ds-classnames');
6
- var TabBar = require('./TabBar.js');
7
- var Carousel = require('./Carousel.js');
8
- require('@babel/runtime/helpers/classCallCheck');
9
- require('@babel/runtime/helpers/createClass');
10
- require('@babel/runtime/helpers/assertThisInitialized');
11
- require('@babel/runtime/helpers/inherits');
12
- require('@babel/runtime/helpers/possibleConstructorReturn');
13
- require('@babel/runtime/helpers/getPrototypeOf');
14
- require('lodash');
15
- require('@elliemae/ds-form/RequiredMark');
16
- require('memoize-one');
17
- require('resize-observer');
18
- require('styled-components');
19
- require('@babel/runtime/helpers/slicedToArray');
20
- require('@elliemae/ds-icons');
21
- require('@elliemae/ds-button');
22
- require('./useResize.js');
23
-
24
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
-
26
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
28
-
29
- var blockName = 'tabs-tab-bar';
30
- var SubTabList = dsClassnames.aggregatedClasses('div')(blockName, 'subtabs-list', function (_ref) {
31
- var withCarousel = _ref.withCarousel;
32
- return {
33
- carousel: withCarousel
34
- };
35
- });
36
-
37
- var SubTabBar = function SubTabBar(_ref2) {
38
- var withCarousel = _ref2.withCarousel,
39
- _ref2$tabs = _ref2.tabs,
40
- tabs = _ref2$tabs === void 0 ? [] : _ref2$tabs,
41
- _ref2$activeTab = _ref2.activeTab,
42
- activeTab = _ref2$activeTab === void 0 ? '' : _ref2$activeTab,
43
- _ref2$onTabClick = _ref2.onTabClick,
44
- onTabClick = _ref2$onTabClick === void 0 ? function () {
45
- return null;
46
- } : _ref2$onTabClick,
47
- firstSubtabRef = _ref2.firstSubtabRef,
48
- handleUpArrow = _ref2.handleUpArrow;
49
- return /*#__PURE__*/React__default['default'].createElement(TabBar, {
50
- activeTab: activeTab,
51
- onTabClick: onTabClick,
52
- handleUpArrow: handleUpArrow,
53
- firstSubtabRef: firstSubtabRef,
54
- renderCustomTabBar: function renderCustomTabBar(_ref3) {
55
- var tabsComponents = _ref3.tabsComponents,
56
- innerRef = _ref3.innerRef;
57
- return /*#__PURE__*/React__default['default'].createElement(SubTabList, {
58
- withCarousel: withCarousel,
59
- innerRef: innerRef,
60
- "data-testid": "subtabs-list"
61
- }, withCarousel ? /*#__PURE__*/React__default['default'].createElement(Carousel, null, tabsComponents) : tabsComponents);
62
- },
63
- showSelectionIndicator: false,
64
- showSeparator: true,
65
- tabs: tabs
66
- });
67
- };
68
-
69
- SubTabBar.propTypes = {
70
- tabs: PropTypes__default['default'].arrayOf(PropTypes__default['default'].element).isRequired,
71
- activeTab: PropTypes__default['default'].string,
72
- onTabClick: PropTypes__default['default'].func.isRequired,
73
- withCarousel: PropTypes__default['default'].bool,
74
- handleUpArrow: PropTypes__default['default'].func,
75
- firstSubtabRef: PropTypes__default['default'].oneOfType([PropTypes__default['default'].func, PropTypes__default['default'].shape({
76
- current: PropTypes__default['default'].any
77
- })])
78
- };
79
-
80
- module.exports = SubTabBar;
81
- //# sourceMappingURL=SubTabBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubTabBar.js","sources":["../../src/SubTabBar.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport TabBar from './TabBar';\nimport Carousel from './Carousel';\n\nconst blockName = 'tabs-tab-bar';\n\nconst SubTabList = aggregatedClasses('div')(\n blockName,\n 'subtabs-list',\n ({ withCarousel }) => ({ carousel: withCarousel }),\n);\n\nconst SubTabBar = ({\n withCarousel,\n tabs = [],\n activeTab = '',\n onTabClick = () => null,\n firstSubtabRef,\n handleUpArrow,\n}) => (\n <TabBar\n activeTab={activeTab}\n onTabClick={onTabClick}\n handleUpArrow={handleUpArrow}\n firstSubtabRef={firstSubtabRef}\n renderCustomTabBar={({ tabsComponents, innerRef }) => (\n <SubTabList\n withCarousel={withCarousel}\n innerRef={innerRef}\n data-testid=\"subtabs-list\"\n >\n {withCarousel ? <Carousel>{tabsComponents}</Carousel> : tabsComponents}\n </SubTabList>\n )}\n showSelectionIndicator={false}\n showSeparator\n tabs={tabs}\n />\n);\n\nSubTabBar.propTypes = {\n tabs: PropTypes.arrayOf(PropTypes.element).isRequired,\n activeTab: PropTypes.string,\n onTabClick: PropTypes.func.isRequired,\n withCarousel: PropTypes.bool,\n handleUpArrow: PropTypes.func,\n firstSubtabRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any }),\n ]),\n};\n\nexport default SubTabBar;\n"],"names":["blockName","SubTabList","aggregatedClasses","withCarousel","carousel","SubTabBar","tabs","activeTab","onTabClick","firstSubtabRef","handleUpArrow","React","tabsComponents","innerRef","propTypes","PropTypes","arrayOf","element","isRequired","string","func","bool","oneOfType","shape","current","any"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAMA,SAAS,GAAG,cAAlB;AAEA,IAAMC,UAAU,GAAGC,8BAAiB,CAAC,KAAD,CAAjB,CACjBF,SADiB,EAEjB,cAFiB,EAGjB;AAAA,MAAGG,YAAH,QAAGA,YAAH;AAAA,SAAuB;AAAEC,IAAAA,QAAQ,EAAED;AAAZ,GAAvB;AAAA,CAHiB,CAAnB;;IAMME,SAAS,GAAG,SAAZA,SAAY;AAAA,MAChBF,YADgB,SAChBA,YADgB;AAAA,yBAEhBG,IAFgB;AAAA,MAEhBA,IAFgB,2BAET,EAFS;AAAA,8BAGhBC,SAHgB;AAAA,MAGhBA,SAHgB,gCAGJ,EAHI;AAAA,+BAIhBC,UAJgB;AAAA,MAIhBA,UAJgB,iCAIH;AAAA,WAAM,IAAN;AAAA,GAJG;AAAA,MAKhBC,cALgB,SAKhBA,cALgB;AAAA,MAMhBC,aANgB,SAMhBA,aANgB;AAAA,sBAQhBC,wCAAC,MAAD;AACE,IAAA,SAAS,EAAEJ,SADb;AAEE,IAAA,UAAU,EAAEC,UAFd;AAGE,IAAA,aAAa,EAAEE,aAHjB;AAIE,IAAA,cAAc,EAAED,cAJlB;AAKE,IAAA,kBAAkB,EAAE;AAAA,UAAGG,cAAH,SAAGA,cAAH;AAAA,UAAmBC,QAAnB,SAAmBA,QAAnB;AAAA,0BAClBF,wCAAC,UAAD;AACE,QAAA,YAAY,EAAER,YADhB;AAEE,QAAA,QAAQ,EAAEU,QAFZ;AAGE,uBAAY;AAHd,SAKGV,YAAY,gBAAGQ,wCAAC,QAAD,QAAWC,cAAX,CAAH,GAA2CA,cAL1D,CADkB;AAAA,KALtB;AAcE,IAAA,sBAAsB,EAAE,KAd1B;AAeE,IAAA,aAAa,MAff;AAgBE,IAAA,IAAI,EAAEN;AAhBR,IARgB;AAAA;;AA4BlBD,SAAS,CAACS,SAAV,GAAsB;AACpBR,EAAAA,IAAI,EAAES,6BAAS,CAACC,OAAV,CAAkBD,6BAAS,CAACE,OAA5B,EAAqCC,UADvB;AAEpBX,EAAAA,SAAS,EAAEQ,6BAAS,CAACI,MAFD;AAGpBX,EAAAA,UAAU,EAAEO,6BAAS,CAACK,IAAV,CAAeF,UAHP;AAIpBf,EAAAA,YAAY,EAAEY,6BAAS,CAACM,IAJJ;AAKpBX,EAAAA,aAAa,EAAEK,6BAAS,CAACK,IALL;AAMpBX,EAAAA,cAAc,EAAEM,6BAAS,CAACO,SAAV,CAAoB,CAClCP,6BAAS,CAACK,IADwB,EAElCL,6BAAS,CAACQ,KAAV,CAAgB;AAAEC,IAAAA,OAAO,EAAET,6BAAS,CAACU;AAArB,GAAhB,CAFkC,CAApB;AANI,CAAtB;;;;"}