@r0b0t3d/react-native-collapsible 1.5.3 → 1.6.0-alpha.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/lib/commonjs/components/CollapsibleContainer.js +19 -21
- package/lib/commonjs/components/CollapsibleContainer.js.map +1 -1
- package/lib/commonjs/components/CollapsibleView.js +38 -30
- package/lib/commonjs/components/CollapsibleView.js.map +1 -1
- package/lib/commonjs/components/header/AnimatedTopView.js +5 -7
- package/lib/commonjs/components/header/AnimatedTopView.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +10 -13
- package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +22 -17
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js +12 -15
- package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
- package/lib/commonjs/components/header/StickyView.js +18 -25
- package/lib/commonjs/components/header/StickyView.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +27 -41
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +12 -15
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleSectionList.js +22 -36
- package/lib/commonjs/components/scrollable/CollapsibleSectionList.js.map +1 -1
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js +44 -24
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/commonjs/hooks/useCollapsibleContext.js +1 -2
- package/lib/commonjs/hooks/useCollapsibleContext.js.map +1 -1
- package/lib/commonjs/hooks/useCollapsibleHeaderConsumerContext.js +1 -2
- package/lib/commonjs/hooks/useCollapsibleHeaderConsumerContext.js.map +1 -1
- package/lib/commonjs/hooks/useCollapsibleHeaderContext.js +1 -2
- package/lib/commonjs/hooks/useCollapsibleHeaderContext.js.map +1 -1
- package/lib/commonjs/hooks/useInternalCollapsibleContext.js +1 -2
- package/lib/commonjs/hooks/useInternalCollapsibleContext.js.map +1 -1
- package/lib/commonjs/hooks/useKeyboardShowEvent.js.map +1 -1
- package/lib/commonjs/index.js +3 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/plugins/CollapsibleFlashList.js +14 -17
- package/lib/commonjs/plugins/CollapsibleFlashList.js.map +1 -1
- package/lib/commonjs/plugins/CollapsibleLegendList.js +15 -15
- package/lib/commonjs/plugins/CollapsibleLegendList.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/debounce.js +2 -6
- package/lib/commonjs/utils/debounce.js.map +1 -1
- package/lib/commonjs/utils/useSharedValueRef.js +33 -3
- package/lib/commonjs/utils/useSharedValueRef.js.map +1 -1
- package/lib/commonjs/withCollapsibleContext.js +3 -4
- package/lib/commonjs/withCollapsibleContext.js.map +1 -1
- package/lib/module/components/CollapsibleContainer.js +18 -19
- package/lib/module/components/CollapsibleContainer.js.map +1 -1
- package/lib/module/components/CollapsibleView.js +38 -29
- package/lib/module/components/CollapsibleView.js.map +1 -1
- package/lib/module/components/header/AnimatedTopView.js +3 -4
- package/lib/module/components/header/AnimatedTopView.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderConsumer.js +8 -10
- package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainer.js +21 -15
- package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainerProvider.js +10 -12
- package/lib/module/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
- package/lib/module/components/header/StickyView.js +18 -23
- package/lib/module/components/header/StickyView.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleFlatList.js +27 -41
- package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleScrollView.js +10 -12
- package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleSectionList.js +22 -35
- package/lib/module/components/scrollable/CollapsibleSectionList.js.map +1 -1
- package/lib/module/components/scrollable/useAnimatedScroll.js +44 -23
- package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/module/hooks/useCollapsibleContext.js.map +1 -1
- package/lib/module/hooks/useCollapsibleHeaderConsumerContext.js.map +1 -1
- package/lib/module/hooks/useCollapsibleHeaderContext.js.map +1 -1
- package/lib/module/hooks/useInternalCollapsibleContext.js.map +1 -1
- package/lib/module/hooks/useKeyboardShowEvent.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/plugins/CollapsibleFlashList.js +12 -14
- package/lib/module/plugins/CollapsibleFlashList.js.map +1 -1
- package/lib/module/plugins/CollapsibleLegendList.js +13 -12
- package/lib/module/plugins/CollapsibleLegendList.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/debounce.js +2 -6
- package/lib/module/utils/debounce.js.map +1 -1
- package/lib/module/utils/useSharedValueRef.js +33 -3
- package/lib/module/utils/useSharedValueRef.js.map +1 -1
- package/lib/module/withCollapsibleContext.js +2 -2
- package/lib/module/withCollapsibleContext.js.map +1 -1
- package/lib/typescript/components/CollapsibleContainer.d.ts.map +1 -1
- package/lib/typescript/components/CollapsibleView.d.ts +4 -4
- package/lib/typescript/components/CollapsibleView.d.ts.map +1 -1
- package/lib/typescript/components/header/AnimatedTopView.d.ts +2 -2
- package/lib/typescript/components/header/AnimatedTopView.d.ts.map +1 -1
- package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -1
- package/lib/typescript/components/header/StickyView.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/CollapsibleSectionList.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +2 -2
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -1
- package/lib/typescript/hooks/useCollapsibleContext.d.ts +0 -1
- package/lib/typescript/hooks/useCollapsibleContext.d.ts.map +1 -1
- package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts +2 -3
- package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts.map +1 -1
- package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts +0 -1
- package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +0 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/plugins/CollapsibleFlashList.d.ts.map +1 -1
- package/lib/typescript/plugins/CollapsibleLegendList.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +12 -12
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/debounce.d.ts.map +1 -1
- package/lib/typescript/utils/useSharedValueRef.d.ts +2 -2
- package/lib/typescript/utils/useSharedValueRef.d.ts.map +1 -1
- package/lib/typescript/withCollapsibleContext.d.ts.map +1 -1
- package/package.json +54 -18
- package/src/components/CollapsibleContainer.tsx +12 -3
- package/src/components/CollapsibleView.tsx +31 -10
- package/src/components/header/AnimatedTopView.tsx +5 -2
- package/src/components/header/CollapsibleHeaderContainer.tsx +18 -13
- package/src/components/header/StickyView.tsx +8 -15
- package/src/components/scrollable/CollapsibleFlatList.tsx +27 -46
- package/src/components/scrollable/CollapsibleSectionList.tsx +21 -41
- package/src/components/scrollable/useAnimatedScroll.ts +36 -22
- package/src/hooks/useCollapsibleHeaderContext.ts +2 -2
- package/src/index.tsx +0 -2
- package/src/plugins/CollapsibleFlashList.tsx +9 -9
- package/src/plugins/CollapsibleLegendList.tsx +8 -2
- package/src/types.ts +12 -12
- package/src/utils/useSharedValueRef.ts +37 -6
- package/src/withCollapsibleContext.tsx +7 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","useSharedValueRef","defaultValue","sharedValue","useSharedValue","savedValue","useRef","appendValue","useCallback","value","current"],"sourceRoot":"../../../src","sources":["utils/useSharedValueRef.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","shallowEqualKeys","a","b","k","useSharedValueRef","defaultValue","sharedValue","useSharedValue","savedValue","useRef","appendValue","useCallback","value","current","next","merged","undefined"],"sourceRoot":"../../../src","sources":["utils/useSharedValueRef.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,SAASE,gBAAgBA,CACvBC,CAA0B,EAC1BC,CAA0B,EACjB;EACT,KAAK,MAAMC,CAAC,IAAIF,CAAC,EAAE;IACjB,IAAIA,CAAC,CAACE,CAAC,CAAC,KAAKD,CAAC,CAACC,CAAC,CAAC,EAAE,OAAO,KAAK;EACjC;EACA,KAAK,MAAMA,CAAC,IAAID,CAAC,EAAE;IACjB,IAAI,EAAEC,CAAC,IAAIF,CAAC,CAAC,EAAE,OAAO,KAAK;EAC7B;EACA,OAAO,IAAI;AACb;AAEe,SAASG,iBAAiBA,CACvCC,YAAe,EACuB;EACtC,MAAMC,WAAW,GAAG,IAAAC,qCAAc,EAAIF,YAAY,CAAC;EACnD,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAAIJ,YAAY,CAAC;EAE1C,MAAMK,WAAW,GAAG,IAAAC,kBAAW,EAC5BC,KAAQ,IAAK;IACZ,MAAMC,OAAO,GAAGL,UAAU,CAACK,OAAkC;IAC7D,MAAMC,IAAI,GAAGF,KAAgC;IAC7C;IACA,IAAIC,OAAO,KAAKC,IAAI,EAAE;MACpB;IACF;IACA;IACA;IACA;IACA,MAAMC,MAA+B,GAAG;MAAE,GAAGF,OAAO;MAAE,GAAGC;IAAK,CAAC;IAC/D,KAAK,MAAMX,CAAC,IAAIY,MAAM,EAAE;MACtB,IAAIA,MAAM,CAACZ,CAAC,CAAC,KAAKa,SAAS,EAAE;QAC3B,OAAOD,MAAM,CAACZ,CAAC,CAAC;MAClB;IACF;IACA;IACA;IACA;IACA,IAAIH,gBAAgB,CAACe,MAAM,EAAEF,OAAO,CAAC,EAAE;MACrC;IACF;IACAL,UAAU,CAACK,OAAO,GAAGE,MAAW;IAChCT,WAAW,CAACM,KAAK,GAAGJ,UAAU,CAACK,OAAO;EACxC,CAAC,EACD,CAACP,WAAW,CACd,CAAC;EAED,OAAO,CAACA,WAAW,EAAEI,WAAW,CAAC;AACnC","ignoreList":[]}
|
|
@@ -8,13 +8,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _useCollapsibleContext = require("./hooks/useCollapsibleContext");
|
|
9
9
|
var _useInternalCollapsibleContext = require("./hooks/useInternalCollapsibleContext");
|
|
10
10
|
var _reactNativeReanimated = require("react-native-reanimated");
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
12
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
14
13
|
|
|
15
14
|
function withCollapsibleContext(Component) {
|
|
16
15
|
return props => {
|
|
17
|
-
const collapsibleHandlers = (0, _react.useRef)();
|
|
16
|
+
const collapsibleHandlers = (0, _react.useRef)(null);
|
|
18
17
|
const headerHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
19
18
|
const scrollY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
20
19
|
const fixedHeaderHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
@@ -76,7 +75,7 @@ function withCollapsibleContext(Component) {
|
|
|
76
75
|
acc += (layout === null || layout === void 0 ? void 0 : layout.stickyHeight) ?? 0;
|
|
77
76
|
return acc;
|
|
78
77
|
}, 0);
|
|
79
|
-
(_collapsibleHandlers$ = collapsibleHandlers.current) === null || _collapsibleHandlers$ === void 0
|
|
78
|
+
(_collapsibleHandlers$ = collapsibleHandlers.current) === null || _collapsibleHandlers$ === void 0 || _collapsibleHandlers$.scrollTo(top - stickyHeightAbove, animated);
|
|
80
79
|
}, () => {});
|
|
81
80
|
}, []);
|
|
82
81
|
const context = (0, _react.useMemo)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useCollapsibleContext","_useInternalCollapsibleContext","_reactNativeReanimated","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useCollapsibleContext","_useInternalCollapsibleContext","_reactNativeReanimated","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withCollapsibleContext","Component","props","collapsibleHandlers","useRef","headerHeight","useSharedValue","scrollY","fixedHeaderHeight","containerHeight","scrollViewRef","containerRef","headerContainerLayouts","headerViewPositions","setCollapsibleHandlers","useCallback","handlers","current","headerCollapsed","useDerivedValue","maxY","value","contentMinHeight","handleHeaderContainerLayout","key","layout","stickyHeight","undefined","headerContainers","keys","filter","k","sortedHeaders","sort","a","b","_headerContainerLayou","_headerContainerLayou2","y","values","aStickyHeight","index","length","_headerContainerLayou3","headerKey","sHeight","top","handleScrollToView","ref","animated","measureLayout","_left","_width","_height","_collapsibleHandlers$","height","stickyHeightAbove","reduce","acc","scrollTo","context","useMemo","collapse","_collapsibleHandlers$2","expand","_collapsibleHandlers$3","offset","animate","_collapsibleHandlers$4","scrollToIndex","params","_collapsibleHandlers$5","scrollToLocation","_collapsibleHandlers$6","scrollToView","internalContext","createElement","CollapsibleContext","Provider","InternalCollapsibleContext"],"sourceRoot":"../../src","sources":["withCollapsibleContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
3
|
-
import React, { useLayoutEffect } from 'react';
|
|
3
|
+
import React, { useCallback, useLayoutEffect } from 'react';
|
|
4
4
|
import { KeyboardAvoidingView, StyleSheet, View } from 'react-native';
|
|
5
5
|
import useKeyboardShowEvent from '../hooks/useKeyboardShowEvent';
|
|
6
6
|
import useInternalCollapsibleContext from '../hooks/useInternalCollapsibleContext';
|
|
7
7
|
import useCollapsibleContext from '../hooks/useCollapsibleContext';
|
|
8
8
|
import CollapsibleHeaderConsumer from './header/CollapsibleHeaderConsumer';
|
|
9
|
-
function CollapsibleContainer(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} = _ref;
|
|
9
|
+
function CollapsibleContainer({
|
|
10
|
+
children,
|
|
11
|
+
KeyboardAvoidingViewComponent = KeyboardAvoidingView,
|
|
12
|
+
keyboardAvoidingViewProps,
|
|
13
|
+
textInputRefs = []
|
|
14
|
+
}) {
|
|
16
15
|
const {
|
|
17
16
|
containerHeight,
|
|
18
17
|
containerRef
|
|
@@ -21,7 +20,7 @@ function CollapsibleContainer(_ref) {
|
|
|
21
20
|
scrollY,
|
|
22
21
|
scrollTo
|
|
23
22
|
} = useCollapsibleContext();
|
|
24
|
-
|
|
23
|
+
const handleKeyboardShow = useCallback(() => {
|
|
25
24
|
textInputRefs.some(ref => {
|
|
26
25
|
const isFocusedFunc = ref.current.isFocused;
|
|
27
26
|
const isFocused = isFocusedFunc && typeof isFocusedFunc === 'function' ? isFocusedFunc() : isFocusedFunc;
|
|
@@ -37,20 +36,20 @@ function CollapsibleContainer(_ref) {
|
|
|
37
36
|
}
|
|
38
37
|
return isFocused;
|
|
39
38
|
});
|
|
40
|
-
});
|
|
39
|
+
}, [textInputRefs, containerRef, containerHeight, scrollY, scrollTo, keyboardAvoidingViewProps === null || keyboardAvoidingViewProps === void 0 ? void 0 : keyboardAvoidingViewProps.keyboardVerticalOffset]);
|
|
40
|
+
useKeyboardShowEvent(handleKeyboardShow);
|
|
41
41
|
return /*#__PURE__*/React.createElement(KeyboardAvoidingViewComponent, _extends({
|
|
42
42
|
style: styles.container,
|
|
43
43
|
behavior: "padding"
|
|
44
44
|
}, keyboardAvoidingViewProps), children);
|
|
45
45
|
}
|
|
46
|
-
export default function CollapsibleContainerWrapper(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
} = _ref2;
|
|
46
|
+
export default function CollapsibleContainerWrapper({
|
|
47
|
+
children,
|
|
48
|
+
textInputRefs,
|
|
49
|
+
keyboardAvoidingViewProps,
|
|
50
|
+
KeyboardAvoidingViewComponent,
|
|
51
|
+
...props
|
|
52
|
+
}) {
|
|
54
53
|
const {
|
|
55
54
|
containerHeight,
|
|
56
55
|
containerRef
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLayoutEffect","KeyboardAvoidingView","StyleSheet","View","useKeyboardShowEvent","useInternalCollapsibleContext","useCollapsibleContext","CollapsibleHeaderConsumer","CollapsibleContainer","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useLayoutEffect","KeyboardAvoidingView","StyleSheet","View","useKeyboardShowEvent","useInternalCollapsibleContext","useCollapsibleContext","CollapsibleHeaderConsumer","CollapsibleContainer","children","KeyboardAvoidingViewComponent","keyboardAvoidingViewProps","textInputRefs","containerHeight","containerRef","scrollY","scrollTo","handleKeyboardShow","some","ref","isFocusedFunc","current","isFocused","measureLayout","_left","top","_width","height","value","extraOffset","keyboardVerticalOffset","createElement","_extends","style","styles","container","behavior","CollapsibleContainerWrapper","props","getBoundingClientRect","renderContent","collapsable","length","create","flex","overflow"],"sourceRoot":"../../../src","sources":["components/CollapsibleContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
|
-
|
|
3
|
-
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useId, useMemo } from 'react';
|
|
4
3
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
5
4
|
import Animated, { useAnimatedStyle, useSharedValue, withSpring, interpolateColor, interpolate, useAnimatedReaction, runOnJS } from 'react-native-reanimated';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
export default function CollapsibleView({
|
|
6
|
+
initialState = 'collapsed',
|
|
7
|
+
collapseState: collapseStateProp,
|
|
8
|
+
renderHeader,
|
|
9
|
+
children,
|
|
10
|
+
containerStyle,
|
|
11
|
+
collapsedBackgroundColor,
|
|
12
|
+
expandedBackgroundColor,
|
|
13
|
+
onToggle
|
|
14
|
+
}) {
|
|
15
|
+
// Shared value is always allocated; unused when caller provides one.
|
|
16
|
+
// The allocation cost is negligible and this keeps hook order stable
|
|
17
|
+
// across renders and React StrictMode double-invocation.
|
|
18
|
+
const collapseStateInternal = useSharedValue(0);
|
|
19
|
+
const collapseState = collapseStateProp ?? collapseStateInternal;
|
|
18
20
|
const actualHeight = useSharedValue(11110);
|
|
19
|
-
const
|
|
21
|
+
const instanceId = useId();
|
|
22
|
+
const contentKey = useMemo(() => `collapsible-view-${instanceId}`, [instanceId]);
|
|
20
23
|
useEffect(() => {
|
|
24
|
+
// `initialState` is only honored when the caller does not pass a
|
|
25
|
+
// `collapseState` of their own. When a caller-controlled SV is
|
|
26
|
+
// provided, mutating it from here would silently clobber whatever
|
|
27
|
+
// value the caller is driving from gesture state or animations.
|
|
28
|
+
if (collapseStateProp) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
21
31
|
const newValue = initialState === 'collapsed' ? 0 : 1;
|
|
22
32
|
if (newValue === collapseState.value) {
|
|
23
33
|
return;
|
|
24
34
|
}
|
|
25
35
|
collapseState.value = newValue;
|
|
26
|
-
}, [initialState]);
|
|
36
|
+
}, [initialState, collapseStateProp]);
|
|
27
37
|
const handleToggle = useCallback(() => {
|
|
28
38
|
collapseState.value = withSpring(collapseState.value === 0 ? 1 : 0, {
|
|
29
39
|
overshootClamping: true
|
|
@@ -40,7 +50,7 @@ export default function CollapsibleView(_ref) {
|
|
|
40
50
|
stiffness: 130,
|
|
41
51
|
overshootClamping: true
|
|
42
52
|
})
|
|
43
|
-
}), [actualHeight, contentKey]);
|
|
53
|
+
}), [actualHeight, contentKey, collapseState]);
|
|
44
54
|
const contentHeight = useAnimatedStyle(() => ({
|
|
45
55
|
height: actualHeight.value > 0 ? actualHeight.value : undefined
|
|
46
56
|
}), [actualHeight, contentKey]);
|
|
@@ -61,7 +71,7 @@ export default function CollapsibleView(_ref) {
|
|
|
61
71
|
};
|
|
62
72
|
}
|
|
63
73
|
return {};
|
|
64
|
-
}, []);
|
|
74
|
+
}, [collapseState, collapsedBackgroundColor, expandedBackgroundColor]);
|
|
65
75
|
const headerProps = useMemo(() => ({
|
|
66
76
|
onToggle: handleToggle,
|
|
67
77
|
collapsed: collapseState
|
|
@@ -83,17 +93,16 @@ export default function CollapsibleView(_ref) {
|
|
|
83
93
|
pointerEvents: "box-none"
|
|
84
94
|
}, children))));
|
|
85
95
|
}
|
|
86
|
-
export function CollapsibleHeaderText(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
} = _ref2;
|
|
96
|
+
export function CollapsibleHeaderText({
|
|
97
|
+
title,
|
|
98
|
+
collapsed,
|
|
99
|
+
onToggle,
|
|
100
|
+
style,
|
|
101
|
+
titleStyle,
|
|
102
|
+
icon,
|
|
103
|
+
iconInitialAngle = 0,
|
|
104
|
+
children
|
|
105
|
+
}) {
|
|
97
106
|
const iconStyle = useAnimatedStyle(() => {
|
|
98
107
|
const rotate = interpolate(collapsed.value, [0, 1], [iconInitialAngle, 180]);
|
|
99
108
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","Pressable","StyleSheet","Text","View","Animated","useAnimatedStyle","useSharedValue","withSpring","interpolateColor","interpolate","useAnimatedReaction","runOnJS","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useId","useMemo","Pressable","StyleSheet","Text","View","Animated","useAnimatedStyle","useSharedValue","withSpring","interpolateColor","interpolate","useAnimatedReaction","runOnJS","CollapsibleView","initialState","collapseState","collapseStateProp","renderHeader","children","containerStyle","collapsedBackgroundColor","expandedBackgroundColor","onToggle","collapseStateInternal","actualHeight","instanceId","contentKey","newValue","value","handleToggle","overshootClamping","handleLayout","event","nativeEvent","layout","height","wrapperStyle","damping","stiffness","contentHeight","undefined","result","prev","containerAnimatedStyle","backgroundColor","headerProps","collapsed","createElement","style","pointerEvents","styles","wrapper","content","key","onLayout","CollapsibleHeaderText","title","titleStyle","icon","iconInitialAngle","iconStyle","rotate","transform","headerContainer","onPress","headerTitle","create","overflow","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../src","sources":["components/CollapsibleView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Animated, { useAnimatedStyle } from 'react-native-reanimated';
|
|
3
|
-
export default function AnimatedTopView(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} = _ref;
|
|
3
|
+
export default function AnimatedTopView({
|
|
4
|
+
height
|
|
5
|
+
}) {
|
|
7
6
|
const contentStyle = useAnimatedStyle(() => ({
|
|
8
7
|
height: height.value
|
|
9
8
|
}), []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","useAnimatedStyle","AnimatedTopView","
|
|
1
|
+
{"version":3,"names":["React","Animated","useAnimatedStyle","AnimatedTopView","height","contentStyle","value","createElement","View","style"],"sourceRoot":"../../../../src","sources":["components/header/AnimatedTopView.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,IAEbC,gBAAgB,QACX,yBAAyB;AAMhC,eAAe,SAASC,eAAeA,CAAC;EAAEC;AAAc,CAAC,EAAE;EACzD,MAAMC,YAAY,GAAGH,gBAAgB,CACnC,OAAO;IACLE,MAAM,EAAEA,MAAM,CAACE;EACjB,CAAC,CAAC,EACF,EACF,CAAC;EAED,oBAAON,KAAA,CAAAO,aAAA,CAACN,QAAQ,CAACO,IAAI;IAACC,KAAK,EAAEJ;EAAa,CAAE,CAAC;AAC/C","ignoreList":[]}
|
|
@@ -3,10 +3,9 @@ import { StyleSheet, View } from 'react-native';
|
|
|
3
3
|
import { CollapsibleHeaderConsumerContext } from '../../hooks/useCollapsibleHeaderConsumerContext';
|
|
4
4
|
import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
|
|
5
5
|
import { withTiming } from 'react-native-reanimated';
|
|
6
|
-
export default function CollapsibleHeaderConsumer(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} = _ref;
|
|
6
|
+
export default function CollapsibleHeaderConsumer({
|
|
7
|
+
children
|
|
8
|
+
}) {
|
|
10
9
|
const [headers, setHeaders] = useState([]);
|
|
11
10
|
const mounted = useRef(false);
|
|
12
11
|
const {
|
|
@@ -48,12 +47,11 @@ export default function CollapsibleHeaderConsumer(_ref) {
|
|
|
48
47
|
unmount,
|
|
49
48
|
update
|
|
50
49
|
}), [headers, mount, unmount, update]);
|
|
51
|
-
const handleLayout = useCallback(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
} = _ref2;
|
|
50
|
+
const handleLayout = useCallback(({
|
|
51
|
+
nativeEvent: {
|
|
52
|
+
layout
|
|
53
|
+
}
|
|
54
|
+
}) => {
|
|
57
55
|
const {
|
|
58
56
|
height
|
|
59
57
|
} = layout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","StyleSheet","View","CollapsibleHeaderConsumerContext","useInternalCollapsibleContext","withTiming","CollapsibleHeaderConsumer","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","StyleSheet","View","CollapsibleHeaderConsumerContext","useInternalCollapsibleContext","withTiming","CollapsibleHeaderConsumer","children","headers","setHeaders","mounted","fixedHeaderHeight","headerHeight","current","mount","key","prev","unmount","filter","h","update","map","item","context","handleLayout","nativeEvent","layout","height","value","duration","createElement","Provider","style","styles","container","pointerEvents","onLayout","create","zIndex"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderConsumer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
import React, { useEffect, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useId, useMemo, useRef } from 'react';
|
|
2
2
|
import useCollapsibleHeaderConsumerContext from '../../hooks/useCollapsibleHeaderConsumerContext';
|
|
3
3
|
import CollapsibleHeaderContainerProvider from './CollapsibleHeaderContainerProvider';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
// Module-scoped monotonic counter used only to assign zIndex to *new* instances
|
|
5
|
+
// (see useInstanceZIndex below). Bounded by app lifetime; wraparound after ~100k
|
|
6
|
+
// instances may cause one frame of incorrect layering.
|
|
7
|
+
let nextZIndex = 0;
|
|
8
|
+
function useInstanceZIndex() {
|
|
9
|
+
const ref = useRef(null);
|
|
10
|
+
if (ref.current === null) {
|
|
11
|
+
ref.current = nextZIndex++;
|
|
12
|
+
}
|
|
13
|
+
return ref.current;
|
|
14
|
+
}
|
|
15
|
+
export default function CollapsibleHeaderContainer({
|
|
16
|
+
children,
|
|
17
|
+
containerStyle
|
|
18
|
+
}) {
|
|
19
|
+
const contentKey = `collapsible-header-${useId()}`;
|
|
20
|
+
const instanceZIndex = useInstanceZIndex();
|
|
12
21
|
const {
|
|
13
22
|
mount,
|
|
14
23
|
unmount,
|
|
15
24
|
update
|
|
16
25
|
} = useCollapsibleHeaderConsumerContext();
|
|
17
|
-
const internalStyle = useMemo(() => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
|
-
}, [key, originalKey]);
|
|
26
|
+
const internalStyle = useMemo(() => ({
|
|
27
|
+
zIndex: 100000 - instanceZIndex
|
|
28
|
+
}), [instanceZIndex]);
|
|
23
29
|
const content = useMemo(() => {
|
|
24
30
|
return /*#__PURE__*/React.createElement(CollapsibleHeaderContainerProvider, {
|
|
25
31
|
containerStyle: [internalStyle, containerStyle],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useCollapsibleHeaderConsumerContext","CollapsibleHeaderContainerProvider","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useId","useMemo","useRef","useCollapsibleHeaderConsumerContext","CollapsibleHeaderContainerProvider","nextZIndex","useInstanceZIndex","ref","current","CollapsibleHeaderContainer","children","containerStyle","contentKey","instanceZIndex","mount","unmount","update","internalStyle","zIndex","content","createElement","key"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderContainer.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAeC,SAAS,EAAEC,KAAK,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAE3E,OAAOC,mCAAmC,MAAM,iDAAiD;AACjG,OAAOC,kCAAkC,MAAM,sCAAsC;AAOrF;AACA;AACA;AACA,IAAIC,UAAU,GAAG,CAAC;AAClB,SAASC,iBAAiBA,CAAA,EAAW;EACnC,MAAMC,GAAG,GAAGL,MAAM,CAAgB,IAAI,CAAC;EACvC,IAAIK,GAAG,CAACC,OAAO,KAAK,IAAI,EAAE;IACxBD,GAAG,CAACC,OAAO,GAAGH,UAAU,EAAE;EAC5B;EACA,OAAOE,GAAG,CAACC,OAAO;AACpB;AAEA,eAAe,SAASC,0BAA0BA,CAAC;EACjDC,QAAQ;EACRC;AACK,CAAC,EAAE;EACR,MAAMC,UAAU,GAAG,sBAAsBZ,KAAK,CAAC,CAAC,EAAE;EAClD,MAAMa,cAAc,GAAGP,iBAAiB,CAAC,CAAC;EAC1C,MAAM;IAAEQ,KAAK;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGb,mCAAmC,CAAC,CAAC;EAExE,MAAMc,aAAa,GAAGhB,OAAO,CAC3B,OAAO;IAAEiB,MAAM,EAAE,MAAM,GAAGL;EAAe,CAAC,CAAC,EAC3C,CAACA,cAAc,CACjB,CAAC;EAED,MAAMM,OAAO,GAAGlB,OAAO,CAAC,MAAM;IAC5B,oBACEH,KAAA,CAAAsB,aAAA,CAAChB,kCAAkC;MACjCO,cAAc,EAAE,CAACM,aAAa,EAAEN,cAAc,CAAE;MAChDC,UAAU,EAAEA,UAAW;MACvBS,GAAG,EAAET;IAAW,GAEfF,QACiC,CAAC;EAEzC,CAAC,EAAE,CAACA,QAAQ,EAAEC,cAAc,EAAEC,UAAU,EAAEK,aAAa,CAAC,CAAC;EAEzDlB,SAAS,CAAC,MAAM;IACde,KAAK,CAACF,UAAU,EAAEO,OAAO,CAAC;IAE1B,OAAO,MAAM;MACXJ,OAAO,CAACH,UAAU,CAAC;IACrB,CAAC;IACD;EACF,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhBb,SAAS,CAAC,MAAM;IACdiB,MAAM,CAACJ,UAAU,EAAEO,OAAO,CAAC;IAC3B;EACF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAO,IAAI;AACb","ignoreList":[]}
|
|
@@ -5,12 +5,11 @@ import useCollapsibleContext from '../../hooks/useCollapsibleContext';
|
|
|
5
5
|
import Animated, { Extrapolate, interpolate, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
6
6
|
import { CollapsibleHeaderContext } from '../../hooks/useCollapsibleHeaderContext';
|
|
7
7
|
import useSharedValueRef from '../../utils/useSharedValueRef';
|
|
8
|
-
export default function CollapsibleHeaderContainerProvider(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} = _ref;
|
|
8
|
+
export default function CollapsibleHeaderContainerProvider({
|
|
9
|
+
children,
|
|
10
|
+
containerStyle,
|
|
11
|
+
contentKey
|
|
12
|
+
}) {
|
|
14
13
|
const {
|
|
15
14
|
handleHeaderContainerLayout,
|
|
16
15
|
headerViewPositions
|
|
@@ -37,12 +36,11 @@ export default function CollapsibleHeaderContainerProvider(_ref) {
|
|
|
37
36
|
runOnJS(handleHeaderContainerLayout)(contentKey, currentLayout.value, stickyHeight.value);
|
|
38
37
|
}
|
|
39
38
|
});
|
|
40
|
-
const handleLayout = useCallback(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
} = _ref2;
|
|
39
|
+
const handleLayout = useCallback(({
|
|
40
|
+
nativeEvent: {
|
|
41
|
+
layout
|
|
42
|
+
}
|
|
43
|
+
}) => {
|
|
46
44
|
currentLayout.value = layout;
|
|
47
45
|
}, [currentLayout]);
|
|
48
46
|
const handleStickyViewLayout = useCallback((stickyKey, layout) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","StyleSheet","useInternalCollapsibleContext","useCollapsibleContext","Animated","Extrapolate","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","CollapsibleHeaderContext","useSharedValueRef","CollapsibleHeaderContainerProvider","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","StyleSheet","useInternalCollapsibleContext","useCollapsibleContext","Animated","Extrapolate","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","CollapsibleHeaderContext","useSharedValueRef","CollapsibleHeaderContainerProvider","children","containerStyle","contentKey","handleHeaderContainerLayout","headerViewPositions","scrollY","currentLayout","undefined","stickyLayouts","setStickyLayouts","stickyHeight","Object","values","value","reduce","acc","height","y","result","previous","handleLayout","nativeEvent","layout","handleStickyViewLayout","stickyKey","translateY","position","topPosition","top","CLAMP","animatedStyle","transform","animatedY","maxV","Math","max","min","createElement","Provider","View","key","style","styles","container","pointerEvents","onLayout","create","overflow","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderContainerProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useId } from 'react';
|
|
3
2
|
import { StyleSheet } from 'react-native';
|
|
4
|
-
import Animated, {
|
|
3
|
+
import Animated, { interpolate, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
5
4
|
import useCollapsibleHeaderContext from '../../hooks/useCollapsibleHeaderContext';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
} = _ref;
|
|
13
|
-
const key = useMemo(() => `sticky_${stickyKey++}`, []);
|
|
5
|
+
export default function StickyView({
|
|
6
|
+
children,
|
|
7
|
+
style,
|
|
8
|
+
stickyRef
|
|
9
|
+
}) {
|
|
10
|
+
const key = `sticky_${useId()}`;
|
|
14
11
|
const {
|
|
15
12
|
handleStickyViewLayout,
|
|
16
13
|
animatedY
|
|
@@ -18,16 +15,16 @@ export default function StickyView(_ref) {
|
|
|
18
15
|
const currentLayout = useSharedValue(undefined);
|
|
19
16
|
useEffect(() => {
|
|
20
17
|
return () => handleStickyViewLayout(key, undefined);
|
|
18
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21
19
|
}, [key]);
|
|
22
|
-
const handleLayout =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
currentLayout.value = layout;
|
|
20
|
+
const handleLayout = ({
|
|
21
|
+
nativeEvent: {
|
|
22
|
+
layout
|
|
23
|
+
}
|
|
24
|
+
}) => {
|
|
25
|
+
currentLayout.set(layout);
|
|
29
26
|
handleStickyViewLayout(key, layout);
|
|
30
|
-
}
|
|
27
|
+
};
|
|
31
28
|
const translateY = useDerivedValue(() => {
|
|
32
29
|
if (!currentLayout.value) {
|
|
33
30
|
return 0;
|
|
@@ -37,7 +34,7 @@ export default function StickyView(_ref) {
|
|
|
37
34
|
y: top
|
|
38
35
|
} = currentLayout.value;
|
|
39
36
|
const topValue = top;
|
|
40
|
-
return interpolate(animatedY.value, [0, topValue, topValue + stickyHeight + 100000], [0, 0, stickyHeight + 100000],
|
|
37
|
+
return interpolate(animatedY.value, [0, topValue, topValue + stickyHeight + 100000], [0, 0, stickyHeight + 100000], 'clamp');
|
|
41
38
|
}, []);
|
|
42
39
|
const animatedStyle = useAnimatedStyle(() => {
|
|
43
40
|
return {
|
|
@@ -47,9 +44,7 @@ export default function StickyView(_ref) {
|
|
|
47
44
|
};
|
|
48
45
|
}, []);
|
|
49
46
|
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
50
|
-
key: key
|
|
51
|
-
// @ts-ignore
|
|
52
|
-
,
|
|
47
|
+
key: key,
|
|
53
48
|
ref: stickyRef,
|
|
54
49
|
onLayout: handleLayout,
|
|
55
50
|
style: [styles.container, style, animatedStyle],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useId","StyleSheet","Animated","interpolate","useAnimatedStyle","useDerivedValue","useSharedValue","useCollapsibleHeaderContext","StickyView","children","style","stickyRef","key","handleStickyViewLayout","animatedY","currentLayout","undefined","handleLayout","nativeEvent","layout","set","translateY","value","height","stickyHeight","y","top","topValue","animatedStyle","transform","createElement","View","ref","onLayout","styles","container","pointerEvents","create","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/header/StickyView.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,KAAK,QAAQ,OAAO;AAC/C,SAIEC,UAAU,QAEL,cAAc;AACrB,OAAOC,QAAQ,IACbC,WAAW,EACXC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,yBAAyB;AAChC,OAAOC,2BAA2B,MAAM,yCAAyC;AAQjF,eAAe,SAASC,UAAUA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAiB,CAAC,EAAE;EACxE,MAAMC,GAAG,GAAG,UAAUZ,KAAK,CAAC,CAAC,EAAE;EAC/B,MAAM;IAAEa,sBAAsB;IAAEC;EAAU,CAAC,GAAGP,2BAA2B,CAAC,CAAC;EAC3E,MAAMQ,aAAa,GAAGT,cAAc,CAA8BU,SAAS,CAAC;EAE5EjB,SAAS,CAAC,MAAM;IACd,OAAO,MAAMc,sBAAsB,CAACD,GAAG,EAAEI,SAAS,CAAC;IACnD;EACF,CAAC,EAAE,CAACJ,GAAG,CAAC,CAAC;EAET,MAAMK,YAAY,GAAGA,CAAC;IAAEC,WAAW,EAAE;MAAEC;IAAO;EAAqB,CAAC,KAAK;IACvEJ,aAAa,CAACK,GAAG,CAACD,MAAM,CAAC;IACzBN,sBAAsB,CAACD,GAAG,EAAEO,MAAM,CAAC;EACrC,CAAC;EAED,MAAME,UAAU,GAAGhB,eAAe,CAAC,MAAM;IACvC,IAAI,CAACU,aAAa,CAACO,KAAK,EAAE;MACxB,OAAO,CAAC;IACV;IACA,MAAM;MAAEC,MAAM,EAAEC,YAAY;MAAEC,CAAC,EAAEC;IAAI,CAAC,GAAGX,aAAa,CAACO,KAAK;IAC5D,MAAMK,QAAQ,GAAGD,GAAG;IAEpB,OAAOvB,WAAW,CAChBW,SAAS,CAACQ,KAAK,EACf,CAAC,CAAC,EAAEK,QAAQ,EAAEA,QAAQ,GAAGH,YAAY,GAAG,MAAM,CAAC,EAC/C,CAAC,CAAC,EAAE,CAAC,EAAEA,YAAY,GAAG,MAAM,CAAC,EAC7B,OACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,aAAa,GAAGxB,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACLyB,SAAS,EAAE,CACT;QACER,UAAU,EAAEA,UAAU,CAACC;MACzB,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,oBACExB,KAAA,CAAAgC,aAAA,CAAC5B,QAAQ,CAAC6B,IAAI;IACZnB,GAAG,EAAEA,GAAI;IACToB,GAAG,EAAErB,SAAU;IACfsB,QAAQ,EAAEhB,YAAa;IACvBP,KAAK,EAAE,CAACwB,MAAM,CAACC,SAAS,EAAEzB,KAAK,EAAEkB,aAAa,CAAE;IAChDQ,aAAa,EAAC;EAAU,GAEvB3B,QACY,CAAC;AAEpB;AAEA,MAAMyB,MAAM,GAAGjC,UAAU,CAACoC,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|