react-native-auto-positioned-popup 1.2.12 → 1.2.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPositionedPopup.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAYN,MAAM,OAAO,CAAC;AAcf,OAAO,EAAC,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AA6QxF,QAAA,MAAM,mBAAmB,qFAg4BxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"AutoPositionedPopup.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAYN,MAAM,OAAO,CAAC;AAgBf,OAAO,EAAC,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AA6QxF,QAAA,MAAM,mBAAmB,qFAmmCxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React, { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState, } from 'react';
2
- import { Dimensions, Keyboard, Platform, StatusBar, Text, TextInput as RNTextInput, TouchableOpacity, View, } from 'react-native';
2
+ import { Dimensions, findNodeHandle, Keyboard, Platform, StatusBar, Text, TextInput as RNTextInput, TouchableOpacity, View, } from 'react-native';
3
3
  import { AdvancedFlatList } from 'react-native-advanced-flatlist';
4
4
  import styles from './AutoPositionedPopup.style';
5
5
  import { useRootView } from './RootViewContext';
@@ -184,7 +184,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
184
184
  return res;
185
185
  }, renderItem, onItemSelected, localSearch = false, pageSize = 20, selectedItem, useTextInput = false, btwChildren, CustomRow = ({ children }) => <View>{children}</View>, keyExtractor = (item) => String((item === null || item === void 0 ? void 0 : item.id) || ''), AutoPositionedPopupBtnDisabled = false, forceRemoveAllRootViewOnItemSelected = false, centerDisplay = false, selectedItemBackgroundColor = 'rgba(116, 116, 128, 0.08)',
186
186
  // textAlign = 'right',
187
- CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light', } = props;
187
+ CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light', parentScrollViewRef, scrollExtraHeight = 100, } = props;
188
188
  // State management similar to project implementation
189
189
  const [state, setState] = useState({
190
190
  isFocus: false,
@@ -203,6 +203,8 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
203
203
  const keyboardVisibleRef = useRef(false);
204
204
  const refAutoPositionedPopup = useRef(null);
205
205
  const ref_searchQuery = useRef('');
206
+ // Store trigger button position when clicked (before it's replaced by TextInput)
207
+ const triggerPositionRef = useRef(null);
206
208
  // Add ref to track previous keyboard state to avoid false triggers during parent component re-renders
207
209
  const prevIsKeyboardFullyShownRef = useRef(false);
208
210
  const prevPropsRef = useRef({});
@@ -222,6 +224,9 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
222
224
  // Refs for performance optimization
223
225
  const containerRef = useRef(null);
224
226
  const textInputRef = useRef(null);
227
+ // IMPORTANT: Use a separate ref for the actual trigger button to get accurate position
228
+ // The outer View with flex:1/height:100% may report incorrect positions in complex layouts
229
+ const triggerBtnRef = useRef(null);
225
230
  const debounceTimerRef = useRef(null);
226
231
  const searchQueryRef = useRef(''); // Use ref instead of state to avoid re-renders
227
232
  // Refs to store latest values for useEffect without adding to dependency array
@@ -232,6 +237,126 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
232
237
  ref_isKeyboardFullyShown.current = isKeyboardFullyShown;
233
238
  }, [isKeyboardFullyShown]);
234
239
  const theme = defaultTheme;
240
+ /**
241
+ * Scrolls the parent KeyboardAwareScrollView to make the trigger button visible
242
+ * when keyboard appears and may cover the trigger.
243
+ * Uses the triggerBtnRef to measure position and scrolls parent accordingly.
244
+ */
245
+ const scrollParentToTrigger = useCallback(() => {
246
+ if (!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current) || !triggerBtnRef.current) {
247
+ console.log('AutoPositionedPopup scrollParentToTrigger: No parentScrollViewRef or triggerBtnRef available');
248
+ return;
249
+ }
250
+ // Use scrollToFocusedInput method from KeyboardAwareScrollView
251
+ // This method scrolls the ScrollView to make the specified node visible
252
+ const scrollView = parentScrollViewRef.current;
253
+ const nodeHandle = findNodeHandle(triggerBtnRef.current);
254
+ if (nodeHandle && scrollView) {
255
+ console.log('AutoPositionedPopup scrollParentToTrigger: Scrolling to trigger button with extraHeight=', scrollExtraHeight);
256
+ // KeyboardAwareScrollView has a scrollToFocusedInput method that handles this
257
+ // However, it requires a ReactNode. We'll use scrollToPosition as an alternative.
258
+ // First, measure the trigger button position relative to the ScrollView
259
+ triggerBtnRef.current.measureInWindow((x, y, width, height) => {
260
+ if (y === undefined || height === undefined) {
261
+ console.log('AutoPositionedPopup scrollParentToTrigger: measureInWindow returned undefined');
262
+ return;
263
+ }
264
+ console.log('AutoPositionedPopup scrollParentToTrigger: trigger position=', { x, y, width, height });
265
+ // Get keyboard height from Keyboard API
266
+ // On keyboard show, scroll to position that keeps trigger above keyboard
267
+ Keyboard.addListener('keyboardDidShow', (event) => {
268
+ const keyboardHeight = event.endCoordinates.height;
269
+ const screenHeight = Dimensions.get('window').height;
270
+ // Calculate if trigger is below keyboard
271
+ const triggerBottom = y + height;
272
+ const visibleAreaBottom = screenHeight - keyboardHeight;
273
+ console.log('AutoPositionedPopup scrollParentToTrigger: keyboard data=', {
274
+ keyboardHeight,
275
+ screenHeight,
276
+ triggerBottom,
277
+ visibleAreaBottom,
278
+ needsScroll: triggerBottom > visibleAreaBottom
279
+ });
280
+ if (triggerBottom > visibleAreaBottom) {
281
+ // Calculate how much to scroll
282
+ const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
283
+ console.log('AutoPositionedPopup scrollParentToTrigger: scrolling by', scrollAmount);
284
+ // Use scrollForExtraHeightOnAndroid or scrollToPosition
285
+ if (typeof scrollView.scrollToPosition === 'function') {
286
+ // scrollToPosition(x, y, animated)
287
+ scrollView.scrollToPosition(0, scrollAmount, true);
288
+ }
289
+ else if (typeof scrollView.scrollToEnd === 'function') {
290
+ // Fallback: scroll to end might help in some cases
291
+ console.log('AutoPositionedPopup scrollParentToTrigger: using scrollToEnd fallback');
292
+ }
293
+ }
294
+ });
295
+ });
296
+ }
297
+ }, [parentScrollViewRef, scrollExtraHeight]);
298
+ /**
299
+ * Scroll parent KeyboardAwareScrollView to keep trigger visible above keyboard
300
+ * Uses stored trigger position (captured before TextInput replaces the trigger button)
301
+ */
302
+ const scrollToTriggerWithMeasure = useCallback(() => {
303
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure called, tag=', tag, {
304
+ hasParentScrollViewRef: !!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current),
305
+ hasTriggerPosition: !!triggerPositionRef.current,
306
+ triggerPosition: triggerPositionRef.current
307
+ });
308
+ if (!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current)) {
309
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: parentScrollViewRef not available, tag=', tag);
310
+ return;
311
+ }
312
+ // Use stored trigger position (captured when trigger was clicked)
313
+ const storedPosition = triggerPositionRef.current;
314
+ if (!storedPosition) {
315
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no stored trigger position, tag=', tag);
316
+ return;
317
+ }
318
+ const scrollView = parentScrollViewRef.current;
319
+ const { y: triggerY, height: triggerHeight } = storedPosition;
320
+ // Get keyboard height and screen dimensions
321
+ const screenHeight = Dimensions.get('window').height;
322
+ // Calculate keyboard height (approximate - keyboard typically takes 40-50% of screen on Android)
323
+ // We'll use the trigger position to determine if scrolling is needed
324
+ const keyboardApproxHeight = screenHeight * 0.4; // Conservative estimate
325
+ const visibleAreaBottom = screenHeight - keyboardApproxHeight;
326
+ const triggerBottom = triggerY + triggerHeight;
327
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: calculations=', {
328
+ tag,
329
+ triggerY,
330
+ triggerHeight,
331
+ triggerBottom,
332
+ screenHeight,
333
+ visibleAreaBottom,
334
+ needsScroll: triggerBottom > visibleAreaBottom
335
+ });
336
+ // Check if trigger is below the visible area (covered by keyboard)
337
+ if (triggerBottom > visibleAreaBottom) {
338
+ // Calculate scroll amount to bring trigger above keyboard
339
+ const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
340
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: scrolling, amount=', scrollAmount, 'tag=', tag);
341
+ // Use scrollForExtraHeightOnAndroid for KeyboardAwareScrollView
342
+ if (typeof scrollView.scrollForExtraHeightOnAndroid === 'function') {
343
+ scrollView.scrollForExtraHeightOnAndroid(scrollAmount);
344
+ }
345
+ else if (typeof scrollView.scrollToPosition === 'function') {
346
+ scrollView.scrollToPosition(0, scrollAmount, true);
347
+ }
348
+ else if ('scrollTo' in scrollView && typeof scrollView.scrollTo === 'function') {
349
+ // Fallback to standard ScrollView method
350
+ scrollView.scrollTo({ y: scrollAmount, animated: true });
351
+ }
352
+ else {
353
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no scroll method available on scrollView');
354
+ }
355
+ }
356
+ else {
357
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: trigger already visible, no scroll needed, tag=', tag);
358
+ }
359
+ }, [parentScrollViewRef, scrollExtraHeight, tag]);
235
360
  /**
236
361
  * componentDidMount && componentWillUnmount
237
362
  */
@@ -279,7 +404,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
279
404
  }
280
405
  }, [selectedItem, state.selectedItem, tag]);
281
406
  useEffect(() => {
282
- var _a, _b;
407
+ var _a;
283
408
  // Detect if keyboard state has actually changed to avoid false triggers during parent component re-renders
284
409
  const keyboardStateChanged = prevIsKeyboardFullyShownRef.current !== isKeyboardFullyShown;
285
410
  const propsChanged = prevPropsRef.current.CustomPopView !== CustomPopView ||
@@ -339,6 +464,16 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
339
464
  const statusBarHeight = getStatusBarHeight();
340
465
  if (useTextInput) {
341
466
  if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
467
+ // KEYBOARD AVOIDANCE FIX: Scroll parent ScrollView to keep trigger visible
468
+ // When keyboard appears, the trigger button may be covered. If parentScrollViewRef
469
+ // is provided, scroll the parent to keep the trigger visible above the keyboard.
470
+ if (parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current) {
471
+ console.log('AutoPositionedPopup: Keyboard appeared, scrolling parent to keep trigger visible');
472
+ // Use a slight delay to ensure keyboard animation has started
473
+ setTimeout(() => {
474
+ scrollToTriggerWithMeasure();
475
+ }, 100);
476
+ }
342
477
  // CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
343
478
  // Problem: When keyboard appears, the page shifts up but measureInWindow executes too early
344
479
  // Solution: Wait for keyboard animation (300ms) + use requestAnimationFrame for next render frame
@@ -353,10 +488,12 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
353
488
  // then requestAnimationFrame ensures measurement happens after next render frame
354
489
  setTimeout(() => {
355
490
  requestAnimationFrame(() => {
356
- var _a;
357
- (_a = refAutoPositionedPopup.current) === null || _a === void 0 ? void 0 : _a.measureInWindow((x, y, width, height) => {
491
+ // CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
492
+ // instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
493
+ const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
494
+ measureTarget === null || measureTarget === void 0 ? void 0 : measureTarget.measureInWindow((x, y, width, height) => {
358
495
  var _a;
359
- console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', { x, y, width, height });
496
+ console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', { x, y, width, height, usingTriggerRef: !!triggerBtnRef.current });
360
497
  // CRITICAL FIX: Handle undefined values from measureInWindow
361
498
  // This can happen during navigation transitions or when view is not yet mounted
362
499
  if (x === undefined || y === undefined || width === undefined || height === undefined) {
@@ -390,21 +527,44 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
390
527
  componentHeight: height,
391
528
  listHeight: listLayout.height
392
529
  });
393
- // CORRECT POSITIONING LOGIC (as per user requirement):
394
- // 1. ALWAYS try to show popup ABOVE the input field first
395
- // 2. Only if that goes off the top of screen, show BELOW instead
396
- // 3. Don't cover/overlap the input field
397
- let popupY = y - listLayout.height + statusBarHeight; // Default: above input field
398
- // Check if showing above would go off the top of screen
530
+ // FIXED POSITIONING LOGIC (with keyboard):
531
+ // measureInWindow returns coordinates relative to the window (screen)
532
+ // The popup uses position: 'absolute' relative to RootViewProvider
533
+ // So we should NOT add statusBarHeight to the position calculation
534
+ //
535
+ // 1. Default: show popup ABOVE the input field
536
+ // Position popup so that the trigger remains VISIBLE below the popup
537
+ // Use (y + height * 0.7) as reference to compensate for measurement offset
538
+ // while still leaving trigger visible (30% of trigger height exposed)
539
+ let popupY = y + (height * 0.7) - listLayout.height;
540
+ console.log('AutoPositionedPopup with keyboard: initial calculation for ABOVE position:', {
541
+ componentY: y,
542
+ componentHeight: height,
543
+ popupHeight: listLayout.height,
544
+ popupY,
545
+ popupBottom: popupY + listLayout.height,
546
+ triggerTop: y,
547
+ statusBarHeight
548
+ });
549
+ // 2. Check if showing above would go behind status bar
399
550
  if (popupY < statusBarHeight) {
400
- console.log('AutoPositionedPopup with keyboard: would go off screen top, showing BELOW instead');
401
- popupY = y + height + statusBarHeight; // Show below input field
402
- // Also check if showing below would go off the bottom
551
+ console.log('AutoPositionedPopup with keyboard: would go behind status bar, showing BELOW instead');
552
+ // Show BELOW the input field
553
+ // Since y + height represents the trigger's "reference bottom" (accounting for measurement offset),
554
+ // we need to add another height to position popup BELOW the actual trigger
555
+ popupY = y + height + height;
556
+ console.log('AutoPositionedPopup with keyboard: BELOW position calculated:', {
557
+ formula: 'y + 2*height',
558
+ y,
559
+ height,
560
+ popupY
561
+ });
562
+ // 3. Also check if showing below would go off the bottom
403
563
  const maxY = screenHeight - listLayout.height;
404
564
  if (popupY > maxY) {
405
565
  // If both positions are problematic, clamp to visible area
406
566
  console.log('AutoPositionedPopup with keyboard: both positions problematic, clamping to visible area');
407
- popupY = Math.min(Math.max(0, y - listLayout.height), maxY);
567
+ popupY = Math.min(Math.max(statusBarHeight, y - listLayout.height), maxY);
408
568
  }
409
569
  }
410
570
  else {
@@ -442,8 +602,12 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
442
602
  Keyboard.dismiss();
443
603
  return;
444
604
  }
445
- (_a = refAutoPositionedPopup.current) === null || _a === void 0 ? void 0 : _a.measureInWindow((x, y, width, height) => {
446
- console.log('AutoPositionedPopup !useTextInput measureInWindow=', { x, y, width, height });
605
+ // CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
606
+ // instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
607
+ // This ensures accurate position when component is inside complex layouts like KeyboardAwareScrollView
608
+ const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
609
+ measureTarget === null || measureTarget === void 0 ? void 0 : measureTarget.measureInWindow((x, y, width, height) => {
610
+ console.log('AutoPositionedPopup !useTextInput measureInWindow=', { x, y, width, height, usingTriggerRef: !!triggerBtnRef.current });
447
611
  // CRITICAL FIX: Handle undefined values from measureInWindow
448
612
  // This can happen during navigation transitions or when view is not yet mounted
449
613
  if (x === undefined || y === undefined || width === undefined || height === undefined) {
@@ -477,25 +641,53 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
477
641
  statusBarHeight,
478
642
  platform: Platform.OS
479
643
  });
480
- // CORRECT POSITIONING LOGIC (with status bar consideration):
481
- // 1. Default: above input field
482
- let popupY = componentY - popupHeight + statusBarHeight;
483
- // 2. Check if showing above would overlap with status bar
484
- // The top boundary should be statusBarHeight, not 0
644
+ // FIXED POSITIONING LOGIC:
645
+ // The popup uses position: 'absolute' relative to the RootViewProvider container
646
+ // measureInWindow returns coordinates relative to the window (screen)
647
+ // So we should NOT add statusBarHeight to the position calculation
648
+ //
649
+ // 1. Default: show popup ABOVE the trigger element
650
+ // FIX: Use (componentY + componentHeight) as the trigger's bottom edge reference point
651
+ // This compensates for measurement inaccuracies when trigger is inside complex layouts (FlatList, ScrollView)
652
+ // The popup's bottom should be at the trigger's top with minimal gap (≤5px)
653
+ // Formula: popup_top = trigger_bottom - componentHeight - popupHeight
654
+ // popup_bottom = trigger_bottom - componentHeight = trigger_top
655
+ let popupY = componentY + componentHeight - popupHeight;
656
+ console.log('AutoPositionedPopup: initial calculation for ABOVE position:', {
657
+ componentY,
658
+ componentHeight,
659
+ popupHeight,
660
+ popupY,
661
+ triggerBottom: componentY + componentHeight,
662
+ statusBarHeight
663
+ });
664
+ // 2. Check if showing above would go off the top of screen (behind status bar)
485
665
  if (popupY < statusBarHeight) {
486
- console.log('AutoPositionedPopup: would overlap status bar, showing BELOW instead');
487
- popupY = componentY + componentHeight + statusBarHeight; // Show below input field
488
- // 3. Also check if showing below would go off the bottom
666
+ console.log('AutoPositionedPopup: would go behind status bar, showing BELOW instead');
667
+ // Show BELOW the trigger element
668
+ // Since componentY + componentHeight represents the trigger's "reference bottom" (accounting for measurement offset),
669
+ // we need to add another componentHeight to position popup BELOW the actual trigger
670
+ // Formula: popup top = componentY + (2 * componentHeight)
671
+ // - (componentY + componentHeight) = trigger's actual top (compensated)
672
+ // - + componentHeight = skip past trigger height to get to trigger's actual bottom
673
+ popupY = componentY + componentHeight + componentHeight;
674
+ console.log('AutoPositionedPopup: BELOW position calculated:', {
675
+ formula: 'componentY + 2*componentHeight',
676
+ componentY,
677
+ componentHeight,
678
+ popupY
679
+ });
680
+ // 3. Also check if showing below would go off the bottom of screen
489
681
  const maxY = screenHeight - popupHeight;
490
682
  if (popupY > maxY) {
491
683
  // If both positions are problematic, clamp to visible area
492
- // But ensure it doesn't go above status bar
684
+ // Prioritize showing as close to trigger as possible
493
685
  console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
494
686
  popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
495
687
  }
496
688
  }
497
689
  else {
498
- console.log('AutoPositionedPopup: showing ABOVE input field (preferred position, below status bar)');
690
+ console.log('AutoPositionedPopup: showing ABOVE input field (preferred position)');
499
691
  }
500
692
  console.log('AutoPositionedPopup final position:', {
501
693
  popupY,
@@ -564,7 +756,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
564
756
  }
565
757
  }
566
758
  if (isKeyboardFullyShown) {
567
- ref_isFocus.current = (_b = state.isFocus) !== null && _b !== void 0 ? _b : false;
759
+ ref_isFocus.current = (_a = state.isFocus) !== null && _a !== void 0 ? _a : false;
568
760
  if (isKeyboardFullyShown !== keyboardVisibleRef.current) {
569
761
  keyboardVisibleRef.current = isKeyboardFullyShown;
570
762
  if (isKeyboardFullyShown && textInputRef.current) {
@@ -801,7 +993,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
801
993
  console.log('AutoPositionedPopup render tag=', tag); // Now safe - circular dependency fixed
802
994
  return (<CustomRow>
803
995
  <View style={[styles.contain, style]} ref={refAutoPositionedPopup}>
804
- {!state.isFocus || !useTextInput ? (<TouchableOpacity style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]} disabled={AutoPositionedPopupBtnDisabled} onPress={() => {
996
+ {!state.isFocus || !useTextInput ? (<TouchableOpacity ref={triggerBtnRef} style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]} disabled={AutoPositionedPopupBtnDisabled} onPress={() => {
805
997
  console.log('AutoPositionedPopup onPress=', {
806
998
  tag,
807
999
  'state.isFocus': state.isFocus,
@@ -812,6 +1004,14 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
812
1004
  'selectedItem': selectedItem,
813
1005
  'ref_isKeyboardFullyShown.current': ref_isKeyboardFullyShown.current
814
1006
  });
1007
+ // Capture trigger button position BEFORE switching to TextInput
1008
+ // This is critical because triggerBtnRef will become null after isFocus=true
1009
+ if (triggerBtnRef.current && (parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current)) {
1010
+ triggerBtnRef.current.measureInWindow((x, y, width, height) => {
1011
+ console.log('AutoPositionedPopup onPress: captured trigger position=', { tag, x, y, width, height });
1012
+ triggerPositionRef.current = { x, y, width, height };
1013
+ });
1014
+ }
815
1015
  if (useTextInput) {
816
1016
  const _addRootView = () => {
817
1017
  if (!hasAddedRootView.current) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPositionedPopup.js","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoPositionedPopup.js","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,UAAU,EAEV,IAAI,EAEJ,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,UAAU,EACV,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,IAAI,WAAW,EACxB,gBAAgB,EAEhB,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAA4B,MAAM,gCAAgC,CAAC;AAI3F,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAIpD,MAAM,oBAAoB,GAAoB,EAAE,CAAC;AACjD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjH,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AACF,MAAM,oBAAoB,GAAG,CAAC,QAAuB,EAAE,EAAE;IACvD,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC,CAAC;AAYF,sBAAsB;AACtB,MAAM,YAAY,GAAU;IAC1B,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,SAAS;QAC1B,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,SAAS;KAClB;CACF,CAAC;AAEF,qDAAqD;AACrD,MAAM,QAAQ,GAMT,IAAI,CACP,CAAC,EACE,WAAW,EACX,IAAI,EACJ,KAAK,EACL,YAAY,EAAE,SAAS,EAOzB,EAAqB,EAAE;IACtB,MAAM,EAAC,WAAW,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAC,GAAG,WAAW,EAAE,CAAC;IACvF,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,iFAAiF;QACjF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,MAAK,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,CAAA,IAAI,IAAI,CAAC,KAAK,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAA,CAAC;QACrF,OAAO,CACL,CAAC,gBAAgB,CACf,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,cAAc;gBACrB,EAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,aAAa,EAAC;aACpI,CAAC,CACF,OAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,oGAAoG;gBACpG,yHAAyH;gBACzH,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC,CAEF;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,iCAAK,MAAM,CAAC,YAAY,KAAE,KAAK,EAAE,MAAM,GAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAC1I;YAAA,CAAC,IAAI,CAAC,KAAK,CACb;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AACxE,CAAC,CACF,CAAC;AAyBF,MAAM,uBAAuB,GAA2C,IAAI,CAC1E,CAAC,EACE,GAAG,EACH,WAAW,EACX,SAAS,EACT,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EACxC,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EACzB,EAAqB,EAAE;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAG/B;QACD,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,EAAE;KACd,CAAC,CAAC;IACH,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,CAA0D,IAAI,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAC,GAAG,WAAW,EAAE,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,KAAK,IAAI,EAAE;QACZ,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,sBAAsB;QACtB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,cAAc,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,oBAAoB,CAAC,CAAC,QAAgB,EAAE,EAAE;YAC5D,OAAO,CAAC,GAAG,CAAC,kEAAkE,EAAE,QAAQ,CAAC,CAAC;YAC1F,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;YACnC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC/B,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,KAAmB,EAAE,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChF,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iCACnB,SAAS,KACZ,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,CAAC,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACrF,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,EACE,SAAS,EACT,QAAQ,EAAE,eAAe,GACT,EAA4B,EAAE;QACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,yBAAyB,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAC,CAAC,CAAC;QAChM,IAAI,WAAW,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAmB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE;;gBAC3E,OAAO,MAAA,GAAG,IAAI,CAAC,KAAK,EAAE,0CAAE,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,wDAAwD,EAAE,MAAM,CAAC,CAAC;YAC9E,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,CAAC;gBACZ,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAgB,MAAM,SAAS,CAAC;gBACvC,SAAS;gBACT,QAAQ,EAAE,QAAQ,IAAI,EAAE;gBACxB,WAAW,EAAE,eAAe,CAAC,OAAO;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,KAAI,WAAW,EAAE,CAAC;gBAC9B,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBACrB,uCACK,SAAS,KACZ,SAAS,EAAE,GAAG,CAAC,KAAK,IACpB;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,qCAAqC;YACrC,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,KAAK,EAAE,GAAG,CAAC,KAAc,EAAE,4BAA4B;oBACvD,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,YAAY,EAAE,GAAG,CAAC,YAAY;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,EAAC,IAAI,EAAE,KAAK,EAAwC,EAAE,EAAE;QACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAG,CAAC;IACnI,CAAC,EACD,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAChC,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAG,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,KAAK,CAAC,CAAC;QACvF,yEAAyE;QACzE,sCAAsC;QACtC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,uBAAuB,EAAE,EAAC,eAAe,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,GAAE,CAAC,CAAC,CAC9I;UAAA,CAAC,gBAAgB,CACf,KAAK,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,CAAC,EAAC,CAAC,CAAC,CAC3B,IAAI,CAAC,QAAQ,IAAI,EAAC,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC,CAClC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAoB,CAAC,CAAC,CAAC,CAAE,IAAqB,CAAC,EAAE,CAAC,CAC7G,yBAAyB,CAAC,CAAC,QAAQ,CAAC,CACpC,SAAS,CAAC,CAAC,UAAU,CAAC,CACtB,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAC,IAAI,EAAE,IAAoB,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,IAAoB,EAAE,KAAK,EAAC,CAAC,CAAC,CAClK,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAC/C,SAAS,CAAC,CAAC,SAAS,CAAC,EAEzB;QAAA,EAAE,IAAI,CAAC,CACR,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG;QACL,WAAW;QACX,SAAS;QACT,YAAY;QACZ,UAAU;QACV,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,SAAS;QACf,WAAW;QACX,WAAW;QACX,QAAQ;QACR,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS;KAC3D,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAQF,wBAAwB;AACxB,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,qCAAqC;AACrC,MAAM,mBAAmB,GAAG,IAAI,CAC9B,UAAU,CACR,CAAC,KAA+B,EAAE,SAAgC,EAAqB,EAAE;IACvF,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,EACJ,GAAG,EACH,KAAK,EACL,2BAA2B,EAC3B,WAAW,GAAG,eAAe,EAC7B,eAAe,EACf,cAAc,EAAC,sBAAsB;IACrC,UAAU,EACV,UAAU,EACV,cAAc,GAAG,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,EAC3C,SAAS,GAAG,KAAK,EAAE,EACE,SAAS,EACT,QAAQ,EACR,WAAW,GAK/B,EAAwB,EAAE;QACzB,MAAM,GAAG,GAAG;YACV,KAAK,EAAE,EAAW;YAClB,SAAS;YACT,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,IAAI,CAAC;YACH,+CAA+C;YAC/C,uCAAuC;YACvC,mBAAmB;YACnB,8CAA8C;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,UAAU,EACV,cAAc,EACd,WAAW,GAAG,KAAK,EACnB,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,YAAY,GAAG,KAAK,EACpB,WAAW,EACX,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EACnD,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,KAAI,EAAE,CAAC,EACpD,8BAA8B,GAAG,KAAK,EACtC,oCAAoC,GAAG,KAAK,EAC5C,aAAa,GAAG,KAAK,EACrB,2BAA2B,GAAG,2BAA2B;IACzD,uBAAuB;IACvB,aAAa,GAAG,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,EAC/H,mBAAmB,EAAE,iBAAiB,GAAG,GAAG,GAC7C,GAAG,KAAK,CAAC;IACV,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAa;QAC7C,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IACH,uBAAuB;IACvB,MAAM,EAAC,WAAW,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAC,GAAG,WAAW,EAAE,CAAC;IACvG,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,wEAAwE;IACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,qDAAqD;IACrD,MAAM,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,GAA0B,MAAM,CAA8B,SAAS,CAAC,CAAA;IACzF,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,sBAAsB,GAAG,MAAM,CAAO,IAAI,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;IAC3C,iFAAiF;IACjF,MAAM,kBAAkB,GAAG,MAAM,CAA+D,IAAI,CAAC,CAAC;IACtG,sGAAsG;IACtG,MAAM,2BAA2B,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAIxB,EAAE,CAAC,CAAC;IACP,qFAAqF;IACrF,MAAM,gBAAgB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;IAC3C,MAAM,yBAAyB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IACzD,iDAAiD;IACjD,+IAA+I;IAC/I,MAAM,mBAAmB,GAAG,MAAM,CAAM,UAAU,CAAC,CAAC;IACpD,MAAM,uBAAuB,GAAG,MAAM,CAAM,cAAc,CAAC,CAAC;IAC5D,0EAA0E;IAC1E,iCAAiC;IACjC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAI/C,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;IAChC,oCAAoC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAO,IAAI,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC/C,uFAAuF;IACvF,2FAA2F;IAC3F,MAAM,aAAa,GAAG,MAAM,CAA4C,IAAI,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC,CAAC,+CAA+C;IAC1F,+EAA+E;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,wBAAwB,GAAG,MAAM,CAAU,oBAAoB,CAAC,CAAC;IACvE,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,CAAC,OAAO,GAAG,oBAAoB,CAAC;IAC1D,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,YAAY,CAAC;IAE3B;;;;OAIG;IACH,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,IAAI,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;YAC5G,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,wEAAwE;QACxE,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,0FAA0F,EAAE,iBAAiB,CAAC,CAAC;YAE3H,8EAA8E;YAC9E,kFAAkF;YAClF,wEAAwE;YACxE,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC5D,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,8DAA8D,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAErG,wCAAwC;gBACxC,yEAAyE;gBACzE,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;oBACnD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;oBAErD,yCAAyC;oBACzC,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC;oBACjC,MAAM,iBAAiB,GAAG,YAAY,GAAG,cAAc,CAAC;oBAExD,OAAO,CAAC,GAAG,CAAC,2DAA2D,EAAE;wBACvE,cAAc;wBACd,YAAY;wBACZ,aAAa;wBACb,iBAAiB;wBACjB,WAAW,EAAE,aAAa,GAAG,iBAAiB;qBAC/C,CAAC,CAAC;oBAEH,IAAI,aAAa,GAAG,iBAAiB,EAAE,CAAC;wBACtC,+BAA+B;wBAC/B,MAAM,YAAY,GAAG,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;wBAC3E,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,YAAY,CAAC,CAAC;wBAErF,wDAAwD;wBACxD,IAAI,OAAO,UAAU,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;4BACtD,mCAAmC;4BACnC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;wBACrD,CAAC;6BAAM,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;4BACxD,mDAAmD;4BACnD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;wBACvF,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE7C;;;OAGG;IACH,MAAM,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;QAClD,OAAO,CAAC,GAAG,CAAC,6DAA6D,EAAE,GAAG,EAAE;YAC9E,sBAAsB,EAAE,CAAC,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAA;YACtD,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO;YAChD,eAAe,EAAE,kBAAkB,CAAC,OAAO;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAA,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,yFAAyF,EAAE,GAAG,CAAC,CAAC;YAC5G,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,kFAAkF,EAAE,GAAG,CAAC,CAAC;YACrG,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAC/C,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC;QAE9D,4CAA4C;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAErD,iGAAiG;QACjG,qEAAqE;QACrE,MAAM,oBAAoB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,wBAAwB;QACzE,MAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,CAAC;QAC9D,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,+DAA+D,EAAE;YAC3E,GAAG;YACH,QAAQ;YACR,aAAa;YACb,aAAa;YACb,YAAY;YACZ,iBAAiB;YACjB,WAAW,EAAE,aAAa,GAAG,iBAAiB;SAC/C,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,aAAa,GAAG,iBAAiB,EAAE,CAAC;YACtC,0DAA0D;YAC1D,MAAM,YAAY,GAAG,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,oEAAoE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAE7G,gEAAgE;YAChE,IAAI,OAAO,UAAU,CAAC,6BAA6B,KAAK,UAAU,EAAE,CAAC;gBACnE,UAAU,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,OAAO,UAAU,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;gBAC7D,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,UAAU,IAAI,UAAU,IAAI,OAAQ,UAAkB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1F,yCAAyC;gBACxC,UAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iGAAiG,EAAE,GAAG,CAAC,CAAC;QACtH,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;IAElD;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,KAAK,IAAI,EAAE;QACZ,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAC,GAAG,EAAE,aAAa,EAAC,CAAC,CAAC;QAC5E,sBAAsB;QACtB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;YAClE,cAAc,CAAC,GAAG,EAAE,oCAAoC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YAChF,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;gBAClC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gBACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gBACjC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAC,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC;QAChE,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;QACjC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;YACzC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YAClC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,SAAS,CAAC,GAAG,EAAE;;QACb,OAAO,CAAC,GAAG,CAAC,wEAAwE,EAAE,EAAC,GAAG,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,EAAC,CAAC,CAAC;QACrJ,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACrF,IAAI,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,EAAE,OAAK,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,CAAA,IAAI,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,MAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAA,EAAE,CAAC;YACpG,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrB,uCACK,SAAS,KACZ,YAAY,EAAE,YAAY,IAC1B;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,EAAE;;QACb,2GAA2G;QAC3G,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,OAAO,KAAK,oBAAoB,CAAC;QAC1F,MAAM,YAAY,GAChB,YAAY,CAAC,OAAO,CAAC,aAAa,KAAK,aAAa;YACpD,YAAY,CAAC,OAAO,CAAC,kBAAkB,KAAK,kBAAkB;YAC9D,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc,IAAI,YAAY,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,wDAAwD;YAClE,0BAA0B;YAC1B,yBAAyB;YACzB,0BAA0B;YAC1B,+BAA+B;YAC/B,iDAAiD;YACjD,gCAAgC;YAChC,sDAAsD;YACtD,UAAU,EAAE;YACZ,GAAG;YACH,eAAe,EAAE,KAAK,CAAC,OAAO;YAC9B,oBAAoB;YACpB,qBAAqB,EAAE,WAAW,CAAC,OAAO;YAC1C,kCAAkC,EAAE,wBAAwB,CAAC,OAAO;YACpE,YAAY,EAAE,cAAc;YAC5B,0BAA0B,EAAE,gBAAgB,CAAC,OAAO;YACpD,0BAA0B,EAAE,gBAAgB,CAAC,OAAO;YACpD,sBAAsB,EAAE,oBAAoB;YAC5C,cAAc,EAAE,YAAY;YAC5B,sDAAsD,EAAE,YAAY,CAAC,OAAO,CAAC,aAAa,KAAK,aAAa;YAC5G,gEAAgE,EAAE,YAAY,CAAC,OAAO,CAAC,kBAAkB,KAAK,kBAAkB;YAChI,wDAAwD,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc;SACjH,CAAC,CAAC;QACH,qCAAqC;QACrC,2BAA2B,CAAC,OAAO,GAAG,oBAAoB,CAAC;QAC3D,YAAY,CAAC,OAAO,GAAG;YACrB,aAAa;YACb,kBAAkB;YAClB,cAAc;SACf,CAAC;QACF,oFAAoF;QACpF,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,uHAAuH,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3J,8BAA8B;YAC9B,kCAAkC;YAClC,IAAI;YACJ,OAAO;QACT,CAAC;QACD,MAAM,kBAAkB,GAAG,GAAW,EAAE;YACtC,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC9B,2CAA2C;gBAC3C,OAAO,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,8BAA8B;YACtE,CAAC;iBAAM,CAAC;gBACN,yDAAyD;gBACzD,MAAM,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,EAAC,MAAM,EAAE,YAAY,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxD,OAAO,gBAAgB,GAAG,YAAY,CAAC,CAAC,6BAA6B;YACvE,CAAC;QACH,CAAC,CAAC;QACF,0DAA0D;QAC1D,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,oBAAoB,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnG,2EAA2E;gBAC3E,mFAAmF;gBACnF,iFAAiF;gBACjF,IAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;oBAChG,8DAA8D;oBAC9D,UAAU,CAAC,GAAG,EAAE;wBACd,0BAA0B,EAAE,CAAC;oBAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC;gBAED,iDAAiD;gBACjD,4FAA4F;gBAC5F,kGAAkG;gBAClG,EAAE;gBACF,oBAAoB;gBACpB,kDAAkD;gBAClD,6DAA6D;gBAC7D,kDAAkD;gBAClD,6CAA6C;gBAC7C,EAAE;gBACF,qEAAqE;gBACrE,iFAAiF;gBACjF,UAAU,CAAC,GAAG,EAAE;oBACd,qBAAqB,CAAC,GAAG,EAAE;wBACzB,gFAAgF;wBAChF,6EAA6E;wBAC7E,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC;wBAC9E,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,KAAyB,EAAE,MAA0B,EAAE,EAAE;;4BACrI,OAAO,CAAC,GAAG,CAAC,sFAAsF,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAC,CAAC,CAAC;4BACrK,6DAA6D;4BAC7D,gFAAgF;4BAChF,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gCACtF,OAAO,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;gCACrH,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;gCAC7D,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;gCAC3D,MAAM,SAAS,GAAG,CAAC,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCACjE,MAAM,SAAS,GAAG,mBAAmB,GAAG,IAAI,CAAC;gCAC7C,MAAM,aAAa,GAAG,mBAAmB,GAAG,GAAG,CAAC;gCAChD,CAAC,GAAG,SAAS,CAAC;gCACd,CAAC,GAAG,SAAS,CAAC;gCACd,KAAK,GAAG,aAAa,CAAC;gCACtB,MAAM,GAAG,EAAE,CAAC;4BACd,CAAC;4BACD,iDAAiD;4BACjD,qFAAqF;4BACrF,qGAAqG;4BACrG,EAAE;4BACF,yBAAyB;4BACzB,+EAA+E;4BAC/E,mEAAmE;4BACnE,+FAA+F;4BAC/F,EAAE;4BACF,iFAAiF;4BACjF,mFAAmF;4BACnF,+DAA+D;4BAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,gCAAgC;4BACtF,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE;gCAChE,YAAY;gCACZ,UAAU,EAAE,CAAC;gCACb,eAAe,EAAE,MAAM;gCACvB,UAAU,EAAE,UAAU,CAAC,MAAM;6BAC9B,CAAC,CAAC;4BACH,2CAA2C;4BAC3C,sEAAsE;4BACtE,mEAAmE;4BACnE,mEAAmE;4BACnE,EAAE;4BACF,+CAA+C;4BAC/C,qEAAqE;4BACrE,2EAA2E;4BAC3E,sEAAsE;4BACtE,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;4BAEpD,OAAO,CAAC,GAAG,CAAC,4EAA4E,EAAE;gCACxF,UAAU,EAAE,CAAC;gCACb,eAAe,EAAE,MAAM;gCACvB,WAAW,EAAE,UAAU,CAAC,MAAM;gCAC9B,MAAM;gCACN,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM;gCACvC,UAAU,EAAE,CAAC;gCACb,eAAe;6BAChB,CAAC,CAAC;4BAEH,uDAAuD;4BACvD,IAAI,MAAM,GAAG,eAAe,EAAE,CAAC;gCAC7B,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;gCACpG,6BAA6B;gCAC7B,oGAAoG;gCACpG,2EAA2E;gCAC3E,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;gCAC7B,OAAO,CAAC,GAAG,CAAC,+DAA+D,EAAE;oCAC3E,OAAO,EAAE,cAAc;oCACvB,CAAC;oCACD,MAAM;oCACN,MAAM;iCACP,CAAC,CAAC;gCAEH,yDAAyD;gCACzD,MAAM,IAAI,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;gCAC9C,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;oCAClB,2DAA2D;oCAC3D,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;oCACvG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC5E,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;4BACnG,CAAC;4BACD,WAAW,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;4BACtD,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;4BACrF,sBAAsB,CAAC,GAAG,EAAE;gCAC1B,GAAG,EAAE,MAAA,WAAW,CAAC,OAAO,0CAAE,CAAC;gCAC3B,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI;gCAC1B,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;gCAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;gCACzB,OAAO,EAAE,CAAC;6BACX,CAAC,CAAC;4BACH,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;wBAClC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,6GAA6G;YACvH,CAAC;iBAAM,IAAI,CAAC,oBAAoB,IAAI,WAAW,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC;gBAChF,mFAAmF;gBACnF,OAAO,CAAC,GAAG,CACT,6FAA6F,EAC7F,EAAC,GAAG,EAAE,oCAAoC,EAAE,oBAAoB,EAAC,CAClE,CAAC;gBACF,cAAc,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;gBAC1D,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oBACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;gBACJ,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,EAAE,CAAC,CAAC;gBACnB,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gBACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,oBAAoB,EAAE,CAAC;oBACzB,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBACD,gFAAgF;gBAChF,6EAA6E;gBAC7E,uGAAuG;gBACvG,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC;gBAC9E,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,KAAyB,EAAE,MAA0B,EAAE,EAAE;oBACrI,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAC,CAAC,CAAC;oBACnI,6DAA6D;oBAC7D,gFAAgF;oBAChF,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACtF,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;wBACxG,yCAAyC;wBACzC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;wBACrD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;wBACnD,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACzD,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,eAAe;wBACrD,MAAM,aAAa,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,YAAY;wBACrD,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;wBAC3E,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC/F,+BAA+B;wBAC/B,CAAC,GAAG,SAAS,CAAC;wBACd,CAAC,GAAG,SAAS,CAAC;wBACd,KAAK,GAAG,aAAa,CAAC;wBACtB,MAAM,GAAG,EAAE,CAAC,CAAC,yCAAyC;oBACxD,CAAC;oBACD,sDAAsD;oBACtD,4CAA4C;oBAC5C,uFAAuF;oBACvF,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAE,eAAuB,EAAE,WAAmB,EAAE,EAAE;wBACpG,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;wBACtE,4DAA4D;wBAC5D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;wBACrD,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE;4BACnD,YAAY;4BACZ,UAAU;4BACV,eAAe;4BACf,WAAW;4BACX,eAAe;4BACf,QAAQ,EAAE,QAAQ,CAAC,EAAE;yBACtB,CAAC,CAAC;wBACH,2BAA2B;wBAC3B,iFAAiF;wBACjF,sEAAsE;wBACtE,mEAAmE;wBACnE,EAAE;wBACF,mDAAmD;wBACnD,uFAAuF;wBACvF,8GAA8G;wBAC9G,4EAA4E;wBAC5E,sEAAsE;wBACtE,yEAAyE;wBACzE,IAAI,MAAM,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,CAAC;wBAExD,OAAO,CAAC,GAAG,CAAC,8DAA8D,EAAE;4BAC1E,UAAU;4BACV,eAAe;4BACf,WAAW;4BACX,MAAM;4BACN,aAAa,EAAE,UAAU,GAAG,eAAe;4BAC3C,eAAe;yBAChB,CAAC,CAAC;wBAEH,+EAA+E;wBAC/E,IAAI,MAAM,GAAG,eAAe,EAAE,CAAC;4BAC7B,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;4BACtF,iCAAiC;4BACjC,sHAAsH;4BACtH,oFAAoF;4BACpF,0DAA0D;4BAC1D,0EAA0E;4BAC1E,qFAAqF;4BACrF,MAAM,GAAG,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC;4BACxD,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE;gCAC7D,OAAO,EAAE,gCAAgC;gCACzC,UAAU;gCACV,eAAe;gCACf,MAAM;6BACP,CAAC,CAAC;4BAEH,mEAAmE;4BACnE,MAAM,IAAI,GAAG,YAAY,GAAG,WAAW,CAAC;4BACxC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;gCAClB,2DAA2D;gCAC3D,qDAAqD;gCACrD,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;gCACzF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;4BAC/E,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;wBACrF,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE;4BACjD,MAAM;4BACN,eAAe,EAAE,MAAM,GAAG,UAAU;4BACpC,kBAAkB,EAAE,MAAM,IAAI,eAAe;yBAC9C,CAAC,CAAC;wBACH,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAC,CAAC;oBAC1D,CAAC,CAAC;oBACF,uDAAuD;oBACvD,MAAM,iBAAiB,GAAG,aAAa,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ;wBAC5G,CAAC,CAAC,kBAAkB,CAAC,MAAM;wBAC3B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,iEAAiE,EAAE,EAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAC,CAAC,CAAC;oBACpI,MAAM,cAAc,GAAG,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,cAAc,CAAC,CAAC;oBAC1E,WAAW,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,wDAAwD,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC3F,IAAI,aAAa,IAAI,kBAAkB,EAAE,CAAC;wBACxC,sEAAsE;wBACtE,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;wBACzC,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,EAAC,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,EAAC,CAAC,CAAC;wBAChJ,WAAW,CAAC;4BACV,EAAE,EAAE,GAAG;4BACP,KAAK,EAAE,CAAC,aAAa;gCACnB,CAAC,iBACC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAC1B,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAC1B,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,EAC5B,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,OAAO,EAAE,CAAC,IACP,kBAAkB,EAEvB,CAAC,iBAAE,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAK,kBAAkB,CAAC;4BACpF,SAAS,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC;4BAClF,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,GAAG,EAAE;gCACjB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gCAChD,cAAc,CAAC,GAAG,EAAE,oCAAoC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gCAChF,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;gCACJ,CAAC,CAAC,CAAC;gCACH,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gCACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gCACjC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;gCAClC,cAAc,CAAC,EAAE,CAAC,CAAC;4BACrB,CAAC;4BACD,aAAa;yBACd,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;wBACvE,WAAW,CAAC;4BACV,EAAE,EAAE,GAAG;4BACP,KAAK,EAAE;gCACL,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gCAC1B,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI;gCAC1B,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;gCAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;gCACzB,OAAO,EAAE,CAAC;6BACX;4BACD,SAAS,EAAE,CACT,CAAC,uBAAuB,CACtB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,YAAY,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CACjC,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAC/C,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,SAAS,CAAC,CAAC,SAAS,CAAC,EACrB,CACH;4BACD,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,GAAG,EAAE;gCACjB,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;gCAC1D,cAAc,CAAC,GAAG,EAAE,oCAAoC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gCAChF,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrB,yBACK,SAAS,EACZ;gCACJ,CAAC,CAAC,CAAC;gCACH,cAAc,CAAC,EAAE,CAAC,CAAC;4BACrB,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,oBAAoB,EAAE,CAAC;YACzB,WAAW,CAAC,OAAO,GAAG,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC;YAC7C,IAAI,oBAAoB,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBACxD,kBAAkB,CAAC,OAAO,GAAG,oBAAoB,CAAC;gBAClD,IAAI,oBAAoB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;wBAC5B,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,eAAe,CAAC,OAAO,EAAC,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB;QACtB,KAAK,CAAC,OAAO;QACb,YAAY;QACZ,aAAa;QACb,kBAAkB;QAClB,oCAAoC;QACpC,GAAG,EAAE,cAAc;QACnB,KAAK,CAAC,YAAY,EAAE,sBAAsB,EAAE,SAAS;KACtD,CAAC,CAAC;IACH,gDAAgD;IAChD,mBAAmB,CACjB,SAAS,EACT,GAAG,EAAE,CAAC,CAAC;QACL,iBAAiB,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;YAC/D,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrB,uCACK,SAAS,KACZ,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,IACvC;YACJ,CAAC,CAAC,CAAC;YACH,eAAe,CAAC,OAAO,GAAG,EAAE,CAAC;YAC7B,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YAClC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,cAAc,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;YAC1D,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;KACF,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAmB,EAAE,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iCACnB,SAAS,KACZ,CAAC,GAAG,CAAC,EAAE,KAAK,IACZ,CAAC,CAAC;QACJ,IAAI,GAAG,KAAK,cAAc,IAAI,cAAc,EAAE,CAAC;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,sEAAsE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1G,cAAc,CAAC,GAAG,EAAE,oCAAoC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YAChF,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;YAClC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;YACJ,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,2DAA2D;IAC3D,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,IAAS,EAAW,EAAE;QACrD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEvE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEhD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,+CAA+C;IAC/C,+IAA+I;IAC/I,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;YACpF,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC;QAC3C,CAAC;QACD,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACrC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjC,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,6FAA6F,GAAG,EAAE,CAAC,CAAC;YAChH,uBAAuB,CAAC,OAAO,GAAG,cAAc,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,EAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,EAAE,uBAAuB,CAAC,OAAO,EAAC,CAAC,CAAA;QACnJ,OAAO,uBAAuB,CAAC,OAAO,CAAC;IACzC,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;IAE1B,sEAAsE;IACtE,iHAAiH;IACjH,kGAAkG;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,kBAAkB,GAAG,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAClE,OAAO,CAAC,GAAG,CACT,8BAA8B,EAC9B;YACE,GAAG;YACH,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY;YACnD,4BAA4B,EAAE,iBAAiB,CAAC,OAAO;YACvD,uBAAuB,EAAE,YAAY,CAAC,OAAO;YAC7C,0BAA0B,EAAE,eAAe,CAAC,OAAO;YACnD,oBAAoB,EAAE,kBAAkB;YACxC,sBAAsB,EAAE,oBAAoB;YAC5C,wBAAwB,EAAE,yBAAyB,CAAC,OAAO;SAC5D,CACF,CAAC;QACF,6EAA6E;QAC7E,IAAI,kBAAkB,GAAG,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,8DAA8D;QAC9D,IAAI,oBAAoB,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,gCAAgC;QAChC,IAAI,yBAAyB,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC;QACzC,gBAAgB,CAAC,OAAO,GAAG,WAAW,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAClC,eAAe,CAAC,OAAO,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACrE,CAAC;YACD,IAAI,YAAY,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBACpD,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;oBAClC,IAAI,EAAE,eAAe,CAAC,OAAO;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,uFAAuF;QACvF,UAAU,CAAC,GAAG,EAAE;YACd,yBAAyB,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5C,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAEnF,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B;YACE,GAAG;YACH,sBAAsB,EAAE,YAAY,CAAC,OAAO;YAC5C,sBAAsB,EAAE,oBAAoB;YAC5C,2BAA2B,EAAE,iBAAiB,CAAC,OAAO;SACvD,CACF,CAAC;QACF,4GAA4G;QAC5G,IAAI,oBAAoB,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,uGAAuG,CAAC,CAAC;YACrH,OAAO;QACT,CAAC;QAED,4DAA4D;QAC5D,wGAAwG;QACxG,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;QACJ,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;QAC1D,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;YAChD,eAAe,CAAC,OAAO,GAAG,EAAE,CAAC;YAC7B,oFAAoF;QACtF,CAAC;QACD,qGAAqG;IACvG,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,EAAE,oCAAoC,CAAC,CAAC,CAAC;IAEtE,iFAAiF;IACjF,wGAAwG;IACxG,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAC,CAAC,CAAC;QACjI,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,4CAA4C;gBAC5C,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,wDAAwD,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACxF,CAAC;qBAAM,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC;gBACvE,CAAC;qBAAM,IAAI,GAAG,IAAI,YAAY,CAAC,OAAO,IAAI,GAAG,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvE,OAAO,CAAC,GAAG,CAAC,iDAAiD,GAAG,WAAW,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBACrH,CAAC;gBACD,YAAY,CAAC,OAAO,GAAG,GAAG,CAAC;YAC7B,CAAC,CAAC,CACF,GAAG,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,CACxB,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,UAAU;gBACjB,gBAAgB;gBAChB,CAAC,SAAS,KAAG,MAAM,IAAI,EAAC,KAAK,EAAC,MAAM,EAAC,CAAC;aACvC,CAAC,CACF,SAAS,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,CAC/E,SAAS,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAC9E,aAAa,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAClF,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC5B,eAAe,CAAC,OAAO,GAAG,WAAW,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;wBAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC;oBACD,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;wBACzC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;wBACzC,YAAY,IAAI,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;oBACvD,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACzC,YAAY,IAAI,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC,CAAC,CACF,oBAAoB,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAC3H,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChB,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBAClC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CACF,YAAY,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,CACxF,eAAe,CAAC,eAAe,CAC/B,aAAa,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,CACvF,SAAS,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAC5E,kBAAkB,CAAC,aAAa,CAChC,UAAU,CAAC,CAAC,IAAI,CAAC,CACjB,SAAS,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAC7E,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,qBAAqB,CAAC,aAAa,CACnC,QAAQ,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAC3E,eAAe,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAC1F,YAAY,CAAC,EAAE,CACf,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,6BAA6B,CAC7B,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAC9B,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAC5B,iBAAiB,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,CAC9F,eAAe,CAAC,CAAC,CAAC,CAAwD,EAAE,EAAE;gBAC5E,OAAO,CAAC,GAAG,CACT,6DAA6D,EAC7D,CAAC,CAAC,WAAW,CAAC,IAAI,CACnB,CAAC;gBACF,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,EACF,CACH,CAAC;IACJ,CAAC,EAAE;QACD,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,oBAAoB;QAClC,KAAK,CAAC,OAAO,EAAE,kBAAkB;QACjC,oBAAoB,EAAE,wCAAwC;QAC9D,mBAAmB,EAAE,wCAAwC;QAC7D,gBAAgB,EAAE,0DAA0D;QAC5E,oBAAoB,EAAE,8DAA8D;QACpF,WAAW,EAAE,6BAA6B;QAC1C,eAAe,EAAE,iCAAiC;QAClD,sFAAsF;QACtF,4JAA4J;KAC7J,CAAC,CAAC;IAEH,wDAAwD;IACxD,OAAO,OAAO,CAAC,GAAG,EAAE;;QAClB,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC,CAAC,uCAAuC;QAC5F,OAAO,CACL,CAAC,SAAS,CACR;YAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAChE;cAAA,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACjC,CAAC,gBAAgB,CACf,GAAG,CAAC,CAAC,aAAa,CAAC,CACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC,CACpE,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CACzC,OAAO,CAAC,CAAC,GAAG,EAAE;oBACZ,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE;wBAC1C,GAAG;wBACH,eAAe,EAAE,KAAK,CAAC,OAAO;wBAC9B,YAAY;wBACZ,0BAA0B,EAAE,gBAAgB,CAAC,OAAO;wBACpD,0BAA0B,EAAE,gBAAgB,CAAC,OAAO;wBACpD,2BAA2B,EAAE,iBAAiB,CAAC,OAAO;wBACtD,cAAc,EAAE,YAAY;wBAC5B,kCAAkC,EAAE,wBAAwB,CAAC,OAAO;qBACrE,CAAC,CAAC;oBAEH,gEAAgE;oBAChE,6EAA6E;oBAC7E,IAAI,aAAa,CAAC,OAAO,KAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAA,EAAE,CAAC;wBAC1D,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;4BAC5D,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;4BACnG,kBAAkB,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;wBACrD,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,YAAY,GAAG,GAAG,EAAE;4BACxB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gCAC9B,wEAAwE;gCACxE,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;gCAChC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;gCACjC,WAAW,CAAC;oCACV,EAAE,EAAE,GAAG;oCACP,KAAK,EAAE;wCACL,GAAG,EAAE,CAAC;wCACN,IAAI,EAAE,CAAC;wCACP,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;wCAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;wCACzB,OAAO,EAAE,CAAC;qCACX;oCACD,SAAS,EAAE,CACT,CAAC,uBAAuB,CACtB,GAAG,CAAC,CAAC,GAAG,CAAC,CACT,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAC/C,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,SAAS,CAAC,CAAC,SAAS,CAAC,EACrB,CACH;oCACD,QAAQ,EAAE,KAAK;iCAChB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC,CAAA;wBACD,IAAI,wBAAwB,CAAC,OAAO,EAAE,CAAC;4BACrC,QAAQ,CAAC,OAAO,EAAE,CAAC;4BACnB,UAAU,CAAC,GAAG,EAAE;gCACd,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrB,uCACK,SAAS,KACZ,OAAO,EAAE,IAAI,IACb;gCACJ,CAAC,CAAC,CAAC;gCACH,YAAY,EAAE,CAAA;4BAChB,CAAC,EAAE,GAAG,CAAC,CAAC;wBACV,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gCACrB,uCACK,SAAS,KACZ,OAAO,EAAE,IAAI,IACb;4BACJ,CAAC,CAAC,CAAC;4BACH,YAAY,EAAE,CAAA;wBAChB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;4BACrB,uCACK,SAAS,KACZ,OAAO,EAAE,IAAI,IACb;wBACJ,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;gBACjD,CAAC,CAAC,CAEF;kBAAA,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACd,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;wBACL,MAAM,CAAC,cAAc;wBACrB,KAAK,CAAC,YAAY,IAAI,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAC;wBAChD,UAAU;qBACX,CAAC,CACF,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB,aAAa,CAAC,CAAC,MAAM,CAAC,CAEtB;sBAAA,CAAC,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,KAAI,WAAW,CAC3C;oBAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,CACF,WAAW,EAAE,CACd,CACH;gBAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC,CAAC,CAAC,CACF,iBAAiB,CAClB,CACH;YAAA,EAAE,IAAI,CACR;UAAA,EAAE,SAAS,CAAC,CACb,CAAC;IACJ,CAAC,EAAE;QACD,GAAG;QACH,sFAAsF;QACtF,sGAAsG;QACtG,4CAA4C;QAC5C,sDAAsD;QACtD,0DAA0D;QAC1D,2DAA2D;QAC3D,WAAW;QACX,yCAAyC;QACzC,uCAAuC;QACvC,QAAQ;QACR,YAAY;QACZ,qEAAqE;QACrE,YAAY;QACZ,8CAA8C;QAC9C,wDAAwD;QACxD,qEAAqE;QACrE,2CAA2C;QAC3C,gDAAgD;QAChD,oCAAoC;QACpC,KAAK,CAAC,OAAO;QACb,sBAAsB;QACtB,SAAS;QACT,gIAAgI;QAChI,qGAAqG;KACtG,CAAC,CAAC;AACL,CAAC,CACF,CACF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,7 +1,8 @@
1
- import React from 'react';
1
+ import React, { RefObject } from 'react';
2
2
  import { StyleProp, TextInputProps, TextStyle, ViewStyle } from 'react-native';
3
3
  import { TextInputSubmitEditingEventData } from 'react-native/Libraries/Components/TextInput/TextInput';
4
4
  import { NativeSyntheticEvent } from 'react-native/Libraries/Types/CoreEventTypes';
5
+ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
5
6
  export interface SelectedItem {
6
7
  id: string;
7
8
  title: string;
@@ -182,5 +183,26 @@ export interface AutoPositionedPopupProps {
182
183
  */
183
184
  onChangeText?: ((text: string) => void) | undefined;
184
185
  themeMode?: string | null | undefined;
186
+ /**
187
+ * Reference to parent KeyboardAwareScrollView for auto-scrolling when keyboard appears.
188
+ * When provided, the component will scroll the parent to keep the trigger button visible
189
+ * above the keyboard.
190
+ *
191
+ * Example usage:
192
+ * const scrollViewRef = useRef<KeyboardAwareScrollView>(null);
193
+ * <KeyboardAwareScrollView ref={scrollViewRef}>
194
+ * <RNAutoPositionedPopup
195
+ * parentScrollViewRef={scrollViewRef}
196
+ * ...
197
+ * />
198
+ * </KeyboardAwareScrollView>
199
+ */
200
+ parentScrollViewRef?: RefObject<KeyboardAwareScrollView>;
201
+ /**
202
+ * Extra height to add when scrolling to make trigger visible.
203
+ * Useful for adding padding between the trigger and keyboard.
204
+ * Default: 100
205
+ */
206
+ scrollExtraHeight?: number;
185
207
  }
186
208
  //# sourceMappingURL=AutoPositionedPopupProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPositionedPopupProps.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopupProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoPositionedPopupProps.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopupProps.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-auto-positioned-popup",
3
- "version": "1.2.12",
3
+ "version": "1.2.14",
4
4
  "description": "A highly customizable React Native auto-positioned popup component with search functionality and flexible styling options",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -77,6 +77,7 @@
77
77
  },
78
78
  "react-native": "lib/index.js",
79
79
  "dependencies": {
80
- "react-native-advanced-flatlist": "^1.1.2"
80
+ "react-native-advanced-flatlist": "^1.1.2",
81
+ "react-native-keyboard-aware-scroll-view": "^0.9.5"
81
82
  }
82
83
  }
@@ -13,12 +13,14 @@ import React, {
13
13
  } from 'react';
14
14
  import {
15
15
  Dimensions,
16
+ findNodeHandle,
16
17
  Keyboard,
17
18
  Platform,
18
19
  StatusBar,
19
20
  Text,
20
21
  TextInput as RNTextInput,
21
22
  TouchableOpacity,
23
+ UIManager,
22
24
  View,
23
25
  } from 'react-native';
24
26
  import {AdvancedFlatList, ListData, FetchDataParams} from 'react-native-advanced-flatlist';
@@ -346,6 +348,7 @@ const AutoPositionedPopup = memo(
346
348
  selectedItemBackgroundColor = 'rgba(116, 116, 128, 0.08)',
347
349
  // textAlign = 'right',
348
350
  CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light',
351
+ parentScrollViewRef, scrollExtraHeight = 100,
349
352
  } = props;
350
353
  // State management similar to project implementation
351
354
  const [state, setState] = useState<StateProps>({
@@ -365,6 +368,8 @@ const AutoPositionedPopup = memo(
365
368
  const keyboardVisibleRef = useRef(false);
366
369
  const refAutoPositionedPopup = useRef<View>(null);
367
370
  const ref_searchQuery = useRef<string>('');
371
+ // Store trigger button position when clicked (before it's replaced by TextInput)
372
+ const triggerPositionRef = useRef<{x: number; y: number; width: number; height: number} | null>(null);
368
373
  // Add ref to track previous keyboard state to avoid false triggers during parent component re-renders
369
374
  const prevIsKeyboardFullyShownRef = useRef<boolean>(false);
370
375
  const prevPropsRef = useRef<{
@@ -392,6 +397,9 @@ const AutoPositionedPopup = memo(
392
397
  // Refs for performance optimization
393
398
  const containerRef = useRef<View>(null);
394
399
  const textInputRef = useRef<RNTextInput>(null);
400
+ // IMPORTANT: Use a separate ref for the actual trigger button to get accurate position
401
+ // The outer View with flex:1/height:100% may report incorrect positions in complex layouts
402
+ const triggerBtnRef = useRef<React.ElementRef<typeof TouchableOpacity>>(null);
395
403
  const debounceTimerRef = useRef<NodeJS.Timeout | null>(null);
396
404
  const searchQueryRef = useRef<string>(''); // Use ref instead of state to avoid re-renders
397
405
  // Refs to store latest values for useEffect without adding to dependency array
@@ -402,6 +410,141 @@ const AutoPositionedPopup = memo(
402
410
  ref_isKeyboardFullyShown.current = isKeyboardFullyShown;
403
411
  }, [isKeyboardFullyShown])
404
412
  const theme = defaultTheme;
413
+
414
+ /**
415
+ * Scrolls the parent KeyboardAwareScrollView to make the trigger button visible
416
+ * when keyboard appears and may cover the trigger.
417
+ * Uses the triggerBtnRef to measure position and scrolls parent accordingly.
418
+ */
419
+ const scrollParentToTrigger = useCallback(() => {
420
+ if (!parentScrollViewRef?.current || !triggerBtnRef.current) {
421
+ console.log('AutoPositionedPopup scrollParentToTrigger: No parentScrollViewRef or triggerBtnRef available');
422
+ return;
423
+ }
424
+
425
+ // Use scrollToFocusedInput method from KeyboardAwareScrollView
426
+ // This method scrolls the ScrollView to make the specified node visible
427
+ const scrollView = parentScrollViewRef.current;
428
+ const nodeHandle = findNodeHandle(triggerBtnRef.current);
429
+
430
+ if (nodeHandle && scrollView) {
431
+ console.log('AutoPositionedPopup scrollParentToTrigger: Scrolling to trigger button with extraHeight=', scrollExtraHeight);
432
+
433
+ // KeyboardAwareScrollView has a scrollToFocusedInput method that handles this
434
+ // However, it requires a ReactNode. We'll use scrollToPosition as an alternative.
435
+ // First, measure the trigger button position relative to the ScrollView
436
+ triggerBtnRef.current.measureInWindow((x, y, width, height) => {
437
+ if (y === undefined || height === undefined) {
438
+ console.log('AutoPositionedPopup scrollParentToTrigger: measureInWindow returned undefined');
439
+ return;
440
+ }
441
+
442
+ console.log('AutoPositionedPopup scrollParentToTrigger: trigger position=', { x, y, width, height });
443
+
444
+ // Get keyboard height from Keyboard API
445
+ // On keyboard show, scroll to position that keeps trigger above keyboard
446
+ Keyboard.addListener('keyboardDidShow', (event) => {
447
+ const keyboardHeight = event.endCoordinates.height;
448
+ const screenHeight = Dimensions.get('window').height;
449
+
450
+ // Calculate if trigger is below keyboard
451
+ const triggerBottom = y + height;
452
+ const visibleAreaBottom = screenHeight - keyboardHeight;
453
+
454
+ console.log('AutoPositionedPopup scrollParentToTrigger: keyboard data=', {
455
+ keyboardHeight,
456
+ screenHeight,
457
+ triggerBottom,
458
+ visibleAreaBottom,
459
+ needsScroll: triggerBottom > visibleAreaBottom
460
+ });
461
+
462
+ if (triggerBottom > visibleAreaBottom) {
463
+ // Calculate how much to scroll
464
+ const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
465
+ console.log('AutoPositionedPopup scrollParentToTrigger: scrolling by', scrollAmount);
466
+
467
+ // Use scrollForExtraHeightOnAndroid or scrollToPosition
468
+ if (typeof scrollView.scrollToPosition === 'function') {
469
+ // scrollToPosition(x, y, animated)
470
+ scrollView.scrollToPosition(0, scrollAmount, true);
471
+ } else if (typeof scrollView.scrollToEnd === 'function') {
472
+ // Fallback: scroll to end might help in some cases
473
+ console.log('AutoPositionedPopup scrollParentToTrigger: using scrollToEnd fallback');
474
+ }
475
+ }
476
+ });
477
+ });
478
+ }
479
+ }, [parentScrollViewRef, scrollExtraHeight]);
480
+
481
+ /**
482
+ * Scroll parent KeyboardAwareScrollView to keep trigger visible above keyboard
483
+ * Uses stored trigger position (captured before TextInput replaces the trigger button)
484
+ */
485
+ const scrollToTriggerWithMeasure = useCallback(() => {
486
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure called, tag=', tag, {
487
+ hasParentScrollViewRef: !!parentScrollViewRef?.current,
488
+ hasTriggerPosition: !!triggerPositionRef.current,
489
+ triggerPosition: triggerPositionRef.current
490
+ });
491
+
492
+ if (!parentScrollViewRef?.current) {
493
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: parentScrollViewRef not available, tag=', tag);
494
+ return;
495
+ }
496
+
497
+ // Use stored trigger position (captured when trigger was clicked)
498
+ const storedPosition = triggerPositionRef.current;
499
+ if (!storedPosition) {
500
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no stored trigger position, tag=', tag);
501
+ return;
502
+ }
503
+
504
+ const scrollView = parentScrollViewRef.current;
505
+ const { y: triggerY, height: triggerHeight } = storedPosition;
506
+
507
+ // Get keyboard height and screen dimensions
508
+ const screenHeight = Dimensions.get('window').height;
509
+
510
+ // Calculate keyboard height (approximate - keyboard typically takes 40-50% of screen on Android)
511
+ // We'll use the trigger position to determine if scrolling is needed
512
+ const keyboardApproxHeight = screenHeight * 0.4; // Conservative estimate
513
+ const visibleAreaBottom = screenHeight - keyboardApproxHeight;
514
+ const triggerBottom = triggerY + triggerHeight;
515
+
516
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: calculations=', {
517
+ tag,
518
+ triggerY,
519
+ triggerHeight,
520
+ triggerBottom,
521
+ screenHeight,
522
+ visibleAreaBottom,
523
+ needsScroll: triggerBottom > visibleAreaBottom
524
+ });
525
+
526
+ // Check if trigger is below the visible area (covered by keyboard)
527
+ if (triggerBottom > visibleAreaBottom) {
528
+ // Calculate scroll amount to bring trigger above keyboard
529
+ const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
530
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: scrolling, amount=', scrollAmount, 'tag=', tag);
531
+
532
+ // Use scrollForExtraHeightOnAndroid for KeyboardAwareScrollView
533
+ if (typeof scrollView.scrollForExtraHeightOnAndroid === 'function') {
534
+ scrollView.scrollForExtraHeightOnAndroid(scrollAmount);
535
+ } else if (typeof scrollView.scrollToPosition === 'function') {
536
+ scrollView.scrollToPosition(0, scrollAmount, true);
537
+ } else if ('scrollTo' in scrollView && typeof (scrollView as any).scrollTo === 'function') {
538
+ // Fallback to standard ScrollView method
539
+ (scrollView as any).scrollTo({ y: scrollAmount, animated: true });
540
+ } else {
541
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no scroll method available on scrollView');
542
+ }
543
+ } else {
544
+ console.log('AutoPositionedPopup scrollToTriggerWithMeasure: trigger already visible, no scroll needed, tag=', tag);
545
+ }
546
+ }, [parentScrollViewRef, scrollExtraHeight, tag]);
547
+
405
548
  /**
406
549
  * componentDidMount && componentWillUnmount
407
550
  */
@@ -513,6 +656,17 @@ const AutoPositionedPopup = memo(
513
656
  const statusBarHeight = getStatusBarHeight();
514
657
  if (useTextInput) {
515
658
  if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
659
+ // KEYBOARD AVOIDANCE FIX: Scroll parent ScrollView to keep trigger visible
660
+ // When keyboard appears, the trigger button may be covered. If parentScrollViewRef
661
+ // is provided, scroll the parent to keep the trigger visible above the keyboard.
662
+ if (parentScrollViewRef?.current) {
663
+ console.log('AutoPositionedPopup: Keyboard appeared, scrolling parent to keep trigger visible');
664
+ // Use a slight delay to ensure keyboard animation has started
665
+ setTimeout(() => {
666
+ scrollToTriggerWithMeasure();
667
+ }, 100);
668
+ }
669
+
516
670
  // CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
517
671
  // Problem: When keyboard appears, the page shifts up but measureInWindow executes too early
518
672
  // Solution: Wait for keyboard animation (300ms) + use requestAnimationFrame for next render frame
@@ -527,8 +681,11 @@ const AutoPositionedPopup = memo(
527
681
  // then requestAnimationFrame ensures measurement happens after next render frame
528
682
  setTimeout(() => {
529
683
  requestAnimationFrame(() => {
530
- refAutoPositionedPopup.current?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
531
- console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', {x, y, width, height});
684
+ // CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
685
+ // instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
686
+ const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
687
+ measureTarget?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
688
+ console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', {x, y, width, height, usingTriggerRef: !!triggerBtnRef.current});
532
689
  // CRITICAL FIX: Handle undefined values from measureInWindow
533
690
  // This can happen during navigation transitions or when view is not yet mounted
534
691
  if (x === undefined || y === undefined || width === undefined || height === undefined) {
@@ -562,21 +719,47 @@ const AutoPositionedPopup = memo(
562
719
  componentHeight: height,
563
720
  listHeight: listLayout.height
564
721
  });
565
- // CORRECT POSITIONING LOGIC (as per user requirement):
566
- // 1. ALWAYS try to show popup ABOVE the input field first
567
- // 2. Only if that goes off the top of screen, show BELOW instead
568
- // 3. Don't cover/overlap the input field
569
- let popupY = y - listLayout.height + statusBarHeight; // Default: above input field
570
- // Check if showing above would go off the top of screen
722
+ // FIXED POSITIONING LOGIC (with keyboard):
723
+ // measureInWindow returns coordinates relative to the window (screen)
724
+ // The popup uses position: 'absolute' relative to RootViewProvider
725
+ // So we should NOT add statusBarHeight to the position calculation
726
+ //
727
+ // 1. Default: show popup ABOVE the input field
728
+ // Position popup so that the trigger remains VISIBLE below the popup
729
+ // Use (y + height * 0.7) as reference to compensate for measurement offset
730
+ // while still leaving trigger visible (30% of trigger height exposed)
731
+ let popupY = y + (height * 0.7) - listLayout.height;
732
+
733
+ console.log('AutoPositionedPopup with keyboard: initial calculation for ABOVE position:', {
734
+ componentY: y,
735
+ componentHeight: height,
736
+ popupHeight: listLayout.height,
737
+ popupY,
738
+ popupBottom: popupY + listLayout.height,
739
+ triggerTop: y,
740
+ statusBarHeight
741
+ });
742
+
743
+ // 2. Check if showing above would go behind status bar
571
744
  if (popupY < statusBarHeight) {
572
- console.log('AutoPositionedPopup with keyboard: would go off screen top, showing BELOW instead');
573
- popupY = y + height + statusBarHeight; // Show below input field
574
- // Also check if showing below would go off the bottom
745
+ console.log('AutoPositionedPopup with keyboard: would go behind status bar, showing BELOW instead');
746
+ // Show BELOW the input field
747
+ // Since y + height represents the trigger's "reference bottom" (accounting for measurement offset),
748
+ // we need to add another height to position popup BELOW the actual trigger
749
+ popupY = y + height + height;
750
+ console.log('AutoPositionedPopup with keyboard: BELOW position calculated:', {
751
+ formula: 'y + 2*height',
752
+ y,
753
+ height,
754
+ popupY
755
+ });
756
+
757
+ // 3. Also check if showing below would go off the bottom
575
758
  const maxY = screenHeight - listLayout.height;
576
759
  if (popupY > maxY) {
577
760
  // If both positions are problematic, clamp to visible area
578
761
  console.log('AutoPositionedPopup with keyboard: both positions problematic, clamping to visible area');
579
- popupY = Math.min(Math.max(0, y - listLayout.height), maxY);
762
+ popupY = Math.min(Math.max(statusBarHeight, y - listLayout.height), maxY);
580
763
  }
581
764
  } else {
582
765
  console.log('AutoPositionedPopup with keyboard: showing ABOVE input field (preferred position)');
@@ -617,8 +800,12 @@ const AutoPositionedPopup = memo(
617
800
  Keyboard.dismiss();
618
801
  return;
619
802
  }
620
- refAutoPositionedPopup.current?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
621
- console.log('AutoPositionedPopup !useTextInput measureInWindow=', {x, y, width, height});
803
+ // CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
804
+ // instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
805
+ // This ensures accurate position when component is inside complex layouts like KeyboardAwareScrollView
806
+ const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
807
+ measureTarget?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
808
+ console.log('AutoPositionedPopup !useTextInput measureInWindow=', {x, y, width, height, usingTriggerRef: !!triggerBtnRef.current});
622
809
  // CRITICAL FIX: Handle undefined values from measureInWindow
623
810
  // This can happen during navigation transitions or when view is not yet mounted
624
811
  if (x === undefined || y === undefined || width === undefined || height === undefined) {
@@ -652,24 +839,55 @@ const AutoPositionedPopup = memo(
652
839
  statusBarHeight,
653
840
  platform: Platform.OS
654
841
  });
655
- // CORRECT POSITIONING LOGIC (with status bar consideration):
656
- // 1. Default: above input field
657
- let popupY = componentY - popupHeight + statusBarHeight;
658
- // 2. Check if showing above would overlap with status bar
659
- // The top boundary should be statusBarHeight, not 0
842
+ // FIXED POSITIONING LOGIC:
843
+ // The popup uses position: 'absolute' relative to the RootViewProvider container
844
+ // measureInWindow returns coordinates relative to the window (screen)
845
+ // So we should NOT add statusBarHeight to the position calculation
846
+ //
847
+ // 1. Default: show popup ABOVE the trigger element
848
+ // FIX: Use (componentY + componentHeight) as the trigger's bottom edge reference point
849
+ // This compensates for measurement inaccuracies when trigger is inside complex layouts (FlatList, ScrollView)
850
+ // The popup's bottom should be at the trigger's top with minimal gap (≤5px)
851
+ // Formula: popup_top = trigger_bottom - componentHeight - popupHeight
852
+ // popup_bottom = trigger_bottom - componentHeight = trigger_top
853
+ let popupY = componentY + componentHeight - popupHeight;
854
+
855
+ console.log('AutoPositionedPopup: initial calculation for ABOVE position:', {
856
+ componentY,
857
+ componentHeight,
858
+ popupHeight,
859
+ popupY,
860
+ triggerBottom: componentY + componentHeight,
861
+ statusBarHeight
862
+ });
863
+
864
+ // 2. Check if showing above would go off the top of screen (behind status bar)
660
865
  if (popupY < statusBarHeight) {
661
- console.log('AutoPositionedPopup: would overlap status bar, showing BELOW instead');
662
- popupY = componentY + componentHeight + statusBarHeight; // Show below input field
663
- // 3. Also check if showing below would go off the bottom
866
+ console.log('AutoPositionedPopup: would go behind status bar, showing BELOW instead');
867
+ // Show BELOW the trigger element
868
+ // Since componentY + componentHeight represents the trigger's "reference bottom" (accounting for measurement offset),
869
+ // we need to add another componentHeight to position popup BELOW the actual trigger
870
+ // Formula: popup top = componentY + (2 * componentHeight)
871
+ // - (componentY + componentHeight) = trigger's actual top (compensated)
872
+ // - + componentHeight = skip past trigger height to get to trigger's actual bottom
873
+ popupY = componentY + componentHeight + componentHeight;
874
+ console.log('AutoPositionedPopup: BELOW position calculated:', {
875
+ formula: 'componentY + 2*componentHeight',
876
+ componentY,
877
+ componentHeight,
878
+ popupY
879
+ });
880
+
881
+ // 3. Also check if showing below would go off the bottom of screen
664
882
  const maxY = screenHeight - popupHeight;
665
883
  if (popupY > maxY) {
666
884
  // If both positions are problematic, clamp to visible area
667
- // But ensure it doesn't go above status bar
885
+ // Prioritize showing as close to trigger as possible
668
886
  console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
669
887
  popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
670
888
  }
671
889
  } else {
672
- console.log('AutoPositionedPopup: showing ABOVE input field (preferred position, below status bar)');
890
+ console.log('AutoPositionedPopup: showing ABOVE input field (preferred position)');
673
891
  }
674
892
  console.log('AutoPositionedPopup final position:', {
675
893
  popupY,
@@ -1061,6 +1279,7 @@ const AutoPositionedPopup = memo(
1061
1279
  <View style={[styles.contain, style]} ref={refAutoPositionedPopup}>
1062
1280
  {!state.isFocus || !useTextInput ? (
1063
1281
  <TouchableOpacity
1282
+ ref={triggerBtnRef}
1064
1283
  style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]}
1065
1284
  disabled={AutoPositionedPopupBtnDisabled}
1066
1285
  onPress={() => {
@@ -1074,6 +1293,16 @@ const AutoPositionedPopup = memo(
1074
1293
  'selectedItem': selectedItem,
1075
1294
  'ref_isKeyboardFullyShown.current': ref_isKeyboardFullyShown.current
1076
1295
  });
1296
+
1297
+ // Capture trigger button position BEFORE switching to TextInput
1298
+ // This is critical because triggerBtnRef will become null after isFocus=true
1299
+ if (triggerBtnRef.current && parentScrollViewRef?.current) {
1300
+ triggerBtnRef.current.measureInWindow((x, y, width, height) => {
1301
+ console.log('AutoPositionedPopup onPress: captured trigger position=', {tag, x, y, width, height});
1302
+ triggerPositionRef.current = {x, y, width, height};
1303
+ });
1304
+ }
1305
+
1077
1306
  if (useTextInput) {
1078
1307
  const _addRootView = () => {
1079
1308
  if (!hasAddedRootView.current) {
@@ -1,7 +1,8 @@
1
- import React from 'react';
1
+ import React, {RefObject} from 'react';
2
2
  import {StyleProp, TextInputProps, TextStyle, ViewStyle} from 'react-native';
3
3
  import {TextInputSubmitEditingEventData} from 'react-native/Libraries/Components/TextInput/TextInput';
4
4
  import {NativeSyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes';
5
+ import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
5
6
 
6
7
  export interface SelectedItem {
7
8
  id: string;
@@ -188,4 +189,25 @@ export interface AutoPositionedPopupProps {
188
189
  */
189
190
  onChangeText?: ((text: string) => void) | undefined;
190
191
  themeMode?: string | null | undefined;//light | dark
192
+ /**
193
+ * Reference to parent KeyboardAwareScrollView for auto-scrolling when keyboard appears.
194
+ * When provided, the component will scroll the parent to keep the trigger button visible
195
+ * above the keyboard.
196
+ *
197
+ * Example usage:
198
+ * const scrollViewRef = useRef<KeyboardAwareScrollView>(null);
199
+ * <KeyboardAwareScrollView ref={scrollViewRef}>
200
+ * <RNAutoPositionedPopup
201
+ * parentScrollViewRef={scrollViewRef}
202
+ * ...
203
+ * />
204
+ * </KeyboardAwareScrollView>
205
+ */
206
+ parentScrollViewRef?: RefObject<KeyboardAwareScrollView>;
207
+ /**
208
+ * Extra height to add when scrolling to make trigger visible.
209
+ * Useful for adding padding between the trigger and keyboard.
210
+ * Default: 100
211
+ */
212
+ scrollExtraHeight?: number;
191
213
  }