react-native-auto-positioned-popup 1.0.17 → 1.1.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.
@@ -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;AAuRxF,QAAA,MAAM,mBAAmB,qFAq8BxB,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;AAcf,OAAO,EAAC,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AAuRxF,QAAA,MAAM,mBAAmB,qFAk0BxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -178,7 +178,8 @@ const listLayout = {
178
178
  // Main AutoPositionedPopup component
179
179
  const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
180
180
  console.log('AutoPositionedPopup props=', props);
181
- const { tag, style, AutoPositionedPopupBtnStyle, placeholder = 'Please Select', onSubmitEditing, TextInputProps = { autoFocus: true }, inputStyle, labelStyle, popUpViewStyle = { left: '5%', width: '90%' }, fetchData = async ({ pageIndex, pageSize, searchQuery, }) => {
181
+ const { tag, style, AutoPositionedPopupBtnStyle, placeholder = 'Please Select', onSubmitEditing, TextInputProps, //= {autoFocus: true},
182
+ inputStyle, labelStyle, popUpViewStyle = { left: '5%', width: '90%' }, fetchData = async ({ pageIndex, pageSize, searchQuery, }) => {
182
183
  const res = {
183
184
  items: [],
184
185
  pageIndex,
@@ -291,7 +292,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
291
292
  const keyboardStateChanged = prevIsKeyboardFullyShownRef.current !== isKeyboardFullyShown;
292
293
  const propsChanged = prevPropsRef.current.CustomPopView !== CustomPopView ||
293
294
  prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle ||
294
- prevPropsRef.current.TextInputProps !== TextInputProps;
295
+ (prevPropsRef.current.TextInputProps !== TextInputProps && useTextInput);
295
296
  console.log('AutoPositionedPopup useEffect [isKeyboardFullyShown,\n' +
296
297
  ' state.isFocus,\n' +
297
298
  ' useTextInput,\n' +
@@ -310,7 +311,10 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
310
311
  'hasAddedRootView.current': hasAddedRootView.current,
311
312
  'hasShownRootView.current': hasShownRootView.current,
312
313
  'keyboardStateChanged': keyboardStateChanged,
313
- 'propsChanged': propsChanged
314
+ 'propsChanged': propsChanged,
315
+ 'prevPropsRef.current.CustomPopView !== CustomPopView': prevPropsRef.current.CustomPopView !== CustomPopView,
316
+ 'prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle': prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle,
317
+ 'prevPropsRef.current.TextInputProps !== TextInputProps': prevPropsRef.current.TextInputProps !== TextInputProps
314
318
  });
315
319
  // Update ref to record current state
316
320
  prevIsKeyboardFullyShownRef.current = isKeyboardFullyShown;
@@ -327,6 +331,20 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
327
331
  // }
328
332
  return;
329
333
  }
334
+ const getStatusBarHeight = () => {
335
+ if (Platform.OS === 'android') {
336
+ // Android: Use StatusBar.currentHeight API
337
+ return StatusBar.currentHeight || 24; // Fallback to 24 if undefined
338
+ }
339
+ else {
340
+ // iOS: Calculate from screen vs window height difference
341
+ const { height: screenHeightFull } = Dimensions.get('screen');
342
+ const { height: windowHeight } = Dimensions.get('window');
343
+ return screenHeightFull - windowHeight; // Safe area top (status bar)
344
+ }
345
+ };
346
+ // Get accurate status bar height for both iOS and Android
347
+ const statusBarHeight = getStatusBarHeight();
330
348
  if (useTextInput) {
331
349
  if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
332
350
  // CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
@@ -370,11 +388,11 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
370
388
  // 1. ALWAYS try to show popup ABOVE the input field first
371
389
  // 2. Only if that goes off the top of screen, show BELOW instead
372
390
  // 3. Don't cover/overlap the input field
373
- let popupY = y - listLayout.height; // Default: above input field
391
+ let popupY = y - listLayout.height + statusBarHeight; // Default: above input field
374
392
  // Check if showing above would go off the top of screen
375
- if (popupY < 0) {
393
+ if (popupY < statusBarHeight) {
376
394
  console.log('AutoPositionedPopup with keyboard: would go off screen top, showing BELOW instead');
377
- popupY = y + height; // Show below input field
395
+ popupY = y + height + statusBarHeight; // Show below input field
378
396
  // Also check if showing below would go off the bottom
379
397
  const maxY = screenHeight - listLayout.height;
380
398
  if (popupY > maxY) {
@@ -414,180 +432,53 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
414
432
  }
415
433
  else {
416
434
  if (state.isFocus) {
435
+ if (isKeyboardFullyShown) {
436
+ Keyboard.dismiss();
437
+ return;
438
+ }
417
439
  (_a = refAutoPositionedPopup.current) === null || _a === void 0 ? void 0 : _a.measureInWindow((x, y, width, height) => {
418
440
  console.log('AutoPositionedPopup !useTextInput measureInWindow=', { x, y, width, height });
419
- // INTELLIGENT POSITION CALCULATION - MODIFIED VERSION WITH STATUS BAR SAFETY
441
+ // CORRECT POSITIONING LOGIC (as per user requirement)
442
+ // Default: show popup ABOVE the input field
443
+ // Only if that goes off the top of screen (considering status bar), show BELOW instead
420
444
  const calculateOptimalPosition = (componentY, componentHeight, popupHeight) => {
421
- console.log('AutoPositionedPopup 🔥🔥🔥 NEW CALCULATE OPTIMAL POSITION FUNCTION EXECUTING 🔥🔥🔥');
422
- // Use window height (visible area) instead of screen height (includes status bar)
423
- const windowHeight = Dimensions.get('window').height;
424
- const visibleAreaCenter = windowHeight / 2;
425
- // Cross-platform status bar height handling
426
- const getStatusBarHeight = () => {
427
- if (Platform.OS === 'android') {
428
- return StatusBar.currentHeight || 24; // Android default
429
- }
430
- else {
431
- // iOS status bar heights vary by device
432
- const { height: screenHeight } = Dimensions.get('screen');
433
- const { height: windowHeightLocal } = Dimensions.get('window');
434
- return screenHeight - windowHeightLocal; // Safe area top
435
- }
436
- };
437
- const statusBarHeight = getStatusBarHeight();
438
- console.log('AutoPositionedPopup 🔥 Cross-platform StatusBar height:', statusBarHeight, 'Platform:', Platform.OS);
439
- // Calculate component center point as requested
440
- const componentCenterY = componentY + componentHeight / 2;
445
+ console.log('AutoPositionedPopup calculateOptimalPosition executing');
446
+ // Use window height (visible area) instead of screen height
447
+ const screenHeight = Dimensions.get('window').height;
441
448
  console.log('AutoPositionedPopup positioning data:', {
442
- windowHeight,
443
- visibleAreaCenter,
444
- componentCenterY,
449
+ screenHeight,
445
450
  componentY,
446
451
  componentHeight,
447
452
  popupHeight,
448
- statusBarHeight
449
- });
450
- let showAbove = false;
451
- let finalY = componentY + componentHeight; // Default fallback: show below
452
- // CORRECTED LOGIC: Calculate actual usable space considering status bar
453
- const rawSpaceAbove = componentY;
454
- const spaceBelow = windowHeight - (componentY + componentHeight);
455
- // Actual usable space above must account for status bar
456
- const usableSpaceAbove = componentY - statusBarHeight;
457
- console.log('🔥 AutoPositionedPopup CORRECTED SPACE CALCULATION (pre-spacing):', {
458
- rawSpaceAbove,
459
- usableSpaceAbove,
460
- spaceBelow,
461
- popupHeight,
462
- componentY,
463
- componentHeight,
464
- windowHeight,
465
- statusBarHeight
466
- });
467
- // ULTRA-TIGHT SPACING: Minimal spacing for tight visual connection
468
- const getOptimalSpacing = (compY, compHeight, winHeight) => {
469
- const componentCenter = compY + compHeight / 2;
470
- const screenCenter = winHeight / 2;
471
- const distanceFromCenter = Math.abs(componentCenter - screenCenter) / screenCenter;
472
- // Check if component is in bottom half for ultra-tight spacing
473
- const isInBottomHalf = componentCenter > screenCenter;
474
- // Base spacing: extremely small for bottom components
475
- const baseSpacing = isInBottomHalf ? 0.5 : 3;
476
- // Aggressive spacing reduction for edge positions - ultra tight for bottom half
477
- const edgeProximityFactor = isInBottomHalf ?
478
- Math.max(0.15, 1 - distanceFromCenter * 1.2) :
479
- Math.max(0.4, 1 - distanceFromCenter * 0.7);
480
- // Minimal component-relative spacing for bottom components
481
- const relativeSpacingPercent = isInBottomHalf ? 0.02 : 0.12;
482
- const relativeSpacing = Math.min(compHeight * relativeSpacingPercent, isInBottomHalf ? 3 : 10);
483
- // Strong platform adjustment - much smaller for Android bottom components
484
- const platformMultiplier = Platform.OS === 'ios' ? 1.0 : (isInBottomHalf ? 0.5 : 0.9);
485
- const finalSpacing = Math.max(baseSpacing, relativeSpacing) * edgeProximityFactor * platformMultiplier;
486
- console.log('AutoPositionedPopup 🔥 Advanced spacing calculation:', {
487
- componentCenter,
488
- screenCenter,
489
- distanceFromCenter,
490
- isInBottomHalf,
491
- edgeProximityFactor,
492
- baseSpacing,
493
- relativeSpacing,
494
- relativeSpacingPercent,
495
- platformMultiplier,
496
- finalSpacing
497
- });
498
- return finalSpacing;
499
- };
500
- // const POPUP_SPACING = getOptimalSpacing(componentY, componentHeight, windowHeight);
501
- // console.log('🔥 Optimal popup spacing calculated:', POPUP_SPACING, 'for componentHeight:', componentHeight, 'at Y:', componentY);
502
- // console.log('🔥 AutoPositionedPopup FINAL SPACE CHECK WITH SPACING:', {
503
- // POPUP_SPACING,
504
- // 'usableSpaceAbove >= popupHeight + POPUP_SPACING': usableSpaceAbove >= popupHeight + POPUP_SPACING,
505
- // 'spaceBelow >= popupHeight + POPUP_SPACING': spaceBelow >= popupHeight + POPUP_SPACING,
506
- // 'usableSpaceAbove needed': popupHeight + POPUP_SPACING,
507
- // 'spaceBelow needed': popupHeight + POPUP_SPACING
508
- // });
509
- // FORCE ABOVE PRIORITY: If component is in bottom half, always try above first
510
- const isInBottomHalf = componentCenterY > visibleAreaCenter;
511
- // console.log('🔥 Position decision factors:', {
512
- // isInBottomHalf,
513
- // componentCenterY,
514
- // visibleAreaCenter,
515
- // 'spaceBelow >= needed': spaceBelow >= popupHeight + POPUP_SPACING,
516
- // 'usableSpaceAbove >= needed': usableSpaceAbove >= popupHeight + POPUP_SPACING
517
- // });
518
- if (isInBottomHalf && usableSpaceAbove >= popupHeight) {
519
- // Component in bottom half + enough space above = FORCE ABOVE
520
- showAbove = true;
521
- finalY = componentY - popupHeight + componentHeight / 2;
522
- console.log('AutoPositionedPopup 🔥 AutoPositionedPopup: FORCE ABOVE - bottom half component with enough space, finalY=', finalY);
523
- }
524
- else if (!isInBottomHalf && spaceBelow >= popupHeight) {
525
- // Component in top half + enough space below = show below
526
- showAbove = false;
527
- finalY = componentY + componentHeight * 2;
528
- console.log('🔥 AutoPositionedPopup: Showing below - top half component with enough space, finalY=', finalY);
529
- }
530
- else if (usableSpaceAbove >= popupHeight) {
531
- // Fallback: enough space above
532
- showAbove = true;
533
- finalY = componentY - popupHeight;
534
- console.log('🔥 AutoPositionedPopup: Showing above - enough space available (fallback), finalY=', finalY);
535
- }
536
- else if (spaceBelow >= popupHeight) {
537
- // Fallback: enough space below
538
- showAbove = false;
539
- finalY = componentY + componentHeight;
540
- console.log('🔥 AutoPositionedPopup: Showing below - enough space available (fallback), finalY=', finalY);
541
- }
542
- else {
543
- // Emergency fallback: choose larger space
544
- if (usableSpaceAbove >= spaceBelow) {
545
- showAbove = true;
546
- finalY = Math.max(statusBarHeight, componentY - popupHeight);
547
- console.log('🔥 AutoPositionedPopup: Emergency above - larger space, finalY=', finalY);
548
- }
549
- else {
550
- showAbove = false;
551
- finalY = componentY + componentHeight;
552
- console.log('🔥 AutoPositionedPopup: Emergency below - larger space, finalY=', finalY);
553
- }
554
- }
555
- // Enhanced boundary check with detailed logging
556
- console.log('AutoPositionedPopup 🔥 Pre-boundary check:', {
557
- originalFinalY: finalY,
558
- showAbove,
559
453
  statusBarHeight,
560
- windowHeight,
561
- popupHeight,
562
- 'finalY < statusBarHeight': finalY < statusBarHeight,
563
- 'finalY + popupHeight > windowHeight': finalY + popupHeight > windowHeight
454
+ platform: Platform.OS
564
455
  });
565
- if (showAbove && finalY < statusBarHeight) {
566
- const oldFinalY = finalY;
567
- finalY = statusBarHeight;
568
- console.log('AutoPositionedPopup 🔥 BOUNDARY : Above display adjusted for status bar:', oldFinalY, '->', finalY);
569
- }
570
- if (!showAbove && finalY + popupHeight > windowHeight) {
571
- const oldFinalY = finalY;
572
- finalY = windowHeight - popupHeight;
573
- console.log('AutoPositionedPopup 🔥 BOUNDARY : Below display adjusted to fit window:', oldFinalY, '->', finalY);
574
- }
575
- // CRITICAL CHECK: Detect if boundary check is changing display direction
576
- if (showAbove && finalY + popupHeight > componentY) {
577
- console.log('AutoPositionedPopup 🚨 WARNING: Above positioning may overlap with component!');
456
+ // CORRECT POSITIONING LOGIC (with status bar consideration):
457
+ // 1. Default: above input field
458
+ let popupY = componentY - popupHeight + statusBarHeight;
459
+ // 2. Check if showing above would overlap with status bar
460
+ // The top boundary should be statusBarHeight, not 0
461
+ if (popupY < statusBarHeight) {
462
+ console.log('AutoPositionedPopup: would overlap status bar, showing BELOW instead');
463
+ popupY = componentY + componentHeight + statusBarHeight; // Show below input field
464
+ // 3. Also check if showing below would go off the bottom
465
+ const maxY = screenHeight - popupHeight;
466
+ if (popupY > maxY) {
467
+ // If both positions are problematic, clamp to visible area
468
+ // But ensure it doesn't go above status bar
469
+ console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
470
+ popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
471
+ }
578
472
  }
579
- if (!showAbove && finalY < componentY + componentHeight) {
580
- console.log('AutoPositionedPopup 🚨 WARNING: Below positioning may overlap with component!');
473
+ else {
474
+ console.log('AutoPositionedPopup: showing ABOVE input field (preferred position, below status bar)');
581
475
  }
582
- console.log('AutoPositionedPopup 🔥 Post-boundary check final result:', {
583
- finalY,
584
- showAbove,
585
- 'popupTop': finalY,
586
- 'popupBottom': finalY + popupHeight,
587
- 'componentTop': componentY,
588
- 'componentBottom': componentY + componentHeight
476
+ console.log('AutoPositionedPopup final position:', {
477
+ popupY,
478
+ 'showing above': popupY < componentY,
479
+ 'below status bar': popupY >= statusBarHeight
589
480
  });
590
- return { finalY, showAbove };
481
+ return { finalY: popupY, showAbove: popupY < componentY };
591
482
  };
592
483
  // Calculate position ONCE based on actual popup height
593
484
  const actualPopupHeight = CustomPopView && CustomPopViewStyle && typeof CustomPopViewStyle.height === 'number'
@@ -735,6 +626,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
735
626
  console.log(`AutoPositionedPopup TextInputProps deep change detected, updating stable reference - tag: ${tag}`);
736
627
  stableTextInputPropsRef.current = TextInputProps;
737
628
  }
629
+ console.log('AutoPositionedPopup stableTextInputProps=', { tag, TextInputProps, 'stableTextInputPropsRef.current': stableTextInputPropsRef.current });
738
630
  return stableTextInputPropsRef.current;
739
631
  }, [TextInputProps, tag]);
740
632
  // Use useCallback to stabilize onFocus and onBlur callback references
@@ -822,7 +714,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
822
714
  // Wrap TextInput independently in useMemo to recreate only when key props change
823
715
  // This avoids repeated ref callback triggers due to other props changes during parent component redraws
824
716
  const memoizedTextInput = useMemo(() => {
825
- console.log(`AutoPositionedPopup useMemo creating TextInput - tag: ${tag}, isFocus: ${state.isFocus}`);
717
+ console.log('AutoPositionedPopup memoizedTextInput=', { tag, useTextInput, 'state.isFocus': state.isFocus, stableTextInputProps });
826
718
  if (!useTextInput || !state.isFocus) {
827
719
  return null;
828
720
  }
@@ -841,7 +733,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
841
733
  }} key={`textinput-${tag}`} style={[
842
734
  styles.inputStyle,
843
735
  stableInputStyle,
844
- ]} textAlign={stableTextInputProps['textAlign'] || 'left'} multiline={stableTextInputProps['multiline'] || false} numberOfLines={stableTextInputProps['numberOfLines'] || 1} onChangeText={(searchQuery) => {
736
+ ]} textAlign={stableTextInputProps && stableTextInputProps['textAlign'] || 'left'} multiline={stableTextInputProps && stableTextInputProps['multiline'] || false} numberOfLines={stableTextInputProps && stableTextInputProps['numberOfLines'] || 1} onChangeText={(searchQuery) => {
845
737
  ref_searchQuery.current = searchQuery;
846
738
  console.log('AutoPositionedPopup onChangeText rootViews=', rootViews);
847
739
  if (!localSearch) {
@@ -861,7 +753,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
861
753
  if (e.nativeEvent.key === 'Enter') {
862
754
  Keyboard.dismiss();
863
755
  }
864
- }} keyboardType={stableTextInputProps['keyboardType'] || 'default'} clearButtonMode="while-editing" returnKeyType={stableTextInputProps['returnKeyType'] || 'done'} maxLength={stableTextInputProps['maxLength'] || 100} accessibilityLabel="selectInput" accessible={true} autoFocus={stableTextInputProps['autoFocus'] || false} autoCorrect={false} underlineColorAndroid="transparent" editable={stableTextInputProps['editable'] || true} secureTextEntry={stableTextInputProps['secureTextEntry'] || false} defaultValue="" caretHidden={false} enablesReturnKeyAutomatically onFocus={handleTextInputFocus} onBlur={handleTextInputBlur} selectTextOnFocus={stableTextInputProps['selectTextOnFocus'] || false} onSubmitEditing={(e) => {
756
+ }} keyboardType={stableTextInputProps && stableTextInputProps['keyboardType'] || 'default'} clearButtonMode="while-editing" returnKeyType={stableTextInputProps && stableTextInputProps['returnKeyType'] || 'done'} maxLength={stableTextInputProps && stableTextInputProps['maxLength'] || 100} accessibilityLabel="selectInput" accessible={true} autoFocus={stableTextInputProps && stableTextInputProps['autoFocus'] || true} autoCorrect={false} underlineColorAndroid="transparent" editable={stableTextInputProps && stableTextInputProps['editable'] || true} secureTextEntry={stableTextInputProps && stableTextInputProps['secureTextEntry'] || false} defaultValue="" caretHidden={false} enablesReturnKeyAutomatically onFocus={handleTextInputFocus} onBlur={handleTextInputBlur} selectTextOnFocus={stableTextInputProps && stableTextInputProps['selectTextOnFocus'] || false} onSubmitEditing={(e) => {
865
757
  console.log('AutoPositionedPopup.tsx onSubmitEditing e.nativeEvent.text=', e.nativeEvent.text);
866
758
  onSubmitEditing && onSubmitEditing(e);
867
759
  }}/>);
@@ -894,9 +786,11 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
894
786
  'hasTriggeredFocus.current': hasTriggeredFocus.current,
895
787
  'state.selectedItem': state.selectedItem
896
788
  });
897
- setState((prevState) => {
898
- return Object.assign(Object.assign({}, prevState), { isFocus: true });
899
- });
789
+ {
790
+ setState((prevState) => {
791
+ return Object.assign(Object.assign({}, prevState), { isFocus: true });
792
+ });
793
+ }
900
794
  if (!hasAddedRootView.current && useTextInput) {
901
795
  // TextInput version: hide first, show after keyboard is fully displayed
902
796
  hasAddedRootView.current = true;
@@ -1 +1 @@
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,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,SAAS,IAAI,WAAW,EACxB,gBAAgB,EAChB,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,GAKT,IAAI,CACP,CAAC,EACE,WAAW,EACX,IAAI,EACJ,KAAK,EACL,YAAY,GAMd,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,CAAC;QAChD,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,2BAA2B,CAAC,CAAC,CAAC,aAAa,EAAC;aAC5E,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,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CACtE;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,CAAC,CAAC,CAAC;AAC7D,CAAC,CACF,CAAC;AAwBF,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,EACd,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,oBAAoB;IACpB,mGAAmG;IACnG,8EAA8E;IAC9E,2CAA2C;IAC3C,gFAAgF;IAChF,wFAAwF;IACxF,0FAA0F;IAC1F,gFAAgF;IAChF,2FAA2F;IAC3F,sCAAsC;IACtC,kCAAkC;IAClC,MAAM;IACN,mDAAmD;IACnD,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,IAAI,CAAC,KAAK,0CAAE,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,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,EAAG,CAAC;IAC7G,CAAC,EACD,CAAC,KAAK,CAAC,YAAY,CAAC,CACrB,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,CAAC,CAAC,CAClE;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;KAChD,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,GAAG,EAAC,SAAS,EAAE,IAAI,EAAC,EAClC,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,EACzD,SAAS,GAAG,OAAO,EACnB,aAAa,GAAG,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAC,YAAY,EAC1G,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,wBAAwB,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IACxD,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,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,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,KAAK,GAAG,YAAY,CAAC;IAC3B;;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,SAAS,CAAC,CAAC;QACzD,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,OAAK,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAA,EAAE,CAAC;YACrG,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,YAAY,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc,CAAC;QACzD,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;SAC7B,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,IAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,uHAAuH,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1J,8BAA8B;YAC9B,kCAAkC;YAClC,IAAI;YACJ,OAAO;QACT,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,oBAAoB,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnG,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,MAAA,sBAAsB,CAAC,OAAO,0CAAE,eAAe,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE;;4BACtG,OAAO,CAAC,GAAG,CAAC,sFAAsF,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;4BAC3H,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,uDAAuD;4BACvD,0DAA0D;4BAC1D,iEAAiE;4BACjE,yCAAyC;4BACzC,IAAI,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,6BAA6B;4BACjE,wDAAwD;4BACxD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gCACf,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;gCACjG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,yBAAyB;gCAC9C,sDAAsD;gCACtD,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,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC9D,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,MAAA,sBAAsB,CAAC,OAAO,0CAAE,eAAe,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE;oBACtG,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;oBACzF,6EAA6E;oBAC7E,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAE,eAAuB,EAAE,WAAmB,EAAE,EAAE;wBACpG,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;wBAEnG,kFAAkF;wBAClF,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;wBACrD,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC;wBAE3C,4CAA4C;wBAC5C,MAAM,kBAAkB,GAAG,GAAG,EAAE;4BAC9B,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gCAC9B,OAAO,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,kBAAkB;4BAC1D,CAAC;iCAAM,CAAC;gCACN,wCAAwC;gCACxC,MAAM,EAAC,MAAM,EAAE,YAAY,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gCACxD,MAAM,EAAC,MAAM,EAAE,iBAAiB,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gCAC7D,OAAO,YAAY,GAAG,iBAAiB,CAAC,CAAC,gBAAgB;4BAC3D,CAAC;wBACH,CAAC,CAAC;wBACF,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAElH,gDAAgD;wBAChD,MAAM,gBAAgB,GAAG,UAAU,GAAG,eAAe,GAAG,CAAC,CAAC;wBAE1D,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE;4BACnD,YAAY;4BACZ,iBAAiB;4BACjB,gBAAgB;4BAChB,UAAU;4BACV,eAAe;4BACf,WAAW;4BACX,eAAe;yBAChB,CAAC,CAAC;wBAEH,IAAI,SAAS,GAAG,KAAK,CAAC;wBACtB,IAAI,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC,+BAA+B;wBAE1E,wEAAwE;wBACxE,MAAM,aAAa,GAAG,UAAU,CAAC;wBACjC,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;wBACjE,wDAAwD;wBACxD,MAAM,gBAAgB,GAAG,UAAU,GAAG,eAAe,CAAC;wBAEtD,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE;4BAC/E,aAAa;4BACb,gBAAgB;4BAChB,UAAU;4BACV,WAAW;4BACX,UAAU;4BACV,eAAe;4BACf,YAAY;4BACZ,eAAe;yBAChB,CAAC,CAAC;wBAEH,mEAAmE;wBACnE,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB,EAAE,EAAE;4BACjF,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;4BAC/C,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;4BACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;4BAEnF,+DAA+D;4BAC/D,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;4BAEtD,sDAAsD;4BACtD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAE7C,gFAAgF;4BAChF,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC;gCAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC;gCAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,kBAAkB,GAAG,GAAG,CAAC,CAAC;4BAE9C,2DAA2D;4BAC3D,MAAM,sBAAsB,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,sBAAsB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAE/F,0EAA0E;4BAC1E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAEtF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;4BAEvG,OAAO,CAAC,GAAG,CAAC,sDAAsD,EAAE;gCAClE,eAAe;gCACf,YAAY;gCACZ,kBAAkB;gCAClB,cAAc;gCACd,mBAAmB;gCACnB,WAAW;gCACX,eAAe;gCACf,sBAAsB;gCACtB,kBAAkB;gCAClB,YAAY;6BACb,CAAC,CAAC;4BAEH,OAAO,YAAY,CAAC;wBACtB,CAAC,CAAC;wBACF,sFAAsF;wBACtF,oIAAoI;wBAEpI,0EAA0E;wBAC1E,mBAAmB;wBACnB,wGAAwG;wBACxG,4FAA4F;wBAC5F,4DAA4D;wBAC5D,qDAAqD;wBACrD,MAAM;wBAEN,+EAA+E;wBAC/E,MAAM,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;wBAE5D,iDAAiD;wBACjD,oBAAoB;wBACpB,sBAAsB;wBACtB,uBAAuB;wBACvB,uEAAuE;wBACvE,kFAAkF;wBAClF,MAAM;wBAEN,IAAI,cAAc,IAAI,gBAAgB,IAAI,WAAW,EAAE,CAAC;4BACtD,8DAA8D;4BAC9D,SAAS,GAAG,IAAI,CAAC;4BACjB,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC;4BACxD,OAAO,CAAC,GAAG,CAAC,4GAA4G,EAAE,MAAM,CAAC,CAAC;wBACpI,CAAC;6BAAM,IAAI,CAAC,cAAc,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;4BACxD,0DAA0D;4BAC1D,SAAS,GAAG,KAAK,CAAC;4BAClB,MAAM,GAAG,UAAU,GAAG,eAAe,GAAG,CAAC,CAAC;4BAC1C,OAAO,CAAC,GAAG,CAAC,uFAAuF,EAAE,MAAM,CAAC,CAAC;wBAC/G,CAAC;6BAAM,IAAI,gBAAgB,IAAI,WAAW,EAAE,CAAC;4BAC3C,+BAA+B;4BAC/B,SAAS,GAAG,IAAI,CAAC;4BACjB,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;4BAClC,OAAO,CAAC,GAAG,CAAC,oFAAoF,EAAE,MAAM,CAAC,CAAC;wBAC5G,CAAC;6BAAM,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;4BACrC,+BAA+B;4BAC/B,SAAS,GAAG,KAAK,CAAC;4BAClB,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;4BACtC,OAAO,CAAC,GAAG,CAAC,oFAAoF,EAAE,MAAM,CAAC,CAAC;wBAC5G,CAAC;6BAAM,CAAC;4BACN,0CAA0C;4BAC1C,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAAC;gCACnC,SAAS,GAAG,IAAI,CAAC;gCACjB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;gCAC7D,OAAO,CAAC,GAAG,CAAC,iEAAiE,EAAE,MAAM,CAAC,CAAC;4BACzF,CAAC;iCAAM,CAAC;gCACN,SAAS,GAAG,KAAK,CAAC;gCAClB,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;gCACtC,OAAO,CAAC,GAAG,CAAC,iEAAiE,EAAE,MAAM,CAAC,CAAC;4BACzF,CAAC;wBACH,CAAC;wBAED,gDAAgD;wBAChD,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE;4BACxD,cAAc,EAAE,MAAM;4BACtB,SAAS;4BACT,eAAe;4BACf,YAAY;4BACZ,WAAW;4BACX,0BAA0B,EAAE,MAAM,GAAG,eAAe;4BACpD,qCAAqC,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY;yBAC3E,CAAC,CAAC;wBAEH,IAAI,SAAS,IAAI,MAAM,GAAG,eAAe,EAAE,CAAC;4BAC1C,MAAM,SAAS,GAAG,MAAM,CAAC;4BACzB,MAAM,GAAG,eAAe,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,0EAA0E,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;wBACnH,CAAC;wBAED,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC;4BACtD,MAAM,SAAS,GAAG,MAAM,CAAC;4BACzB,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,yEAAyE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;wBAClH,CAAC;wBAED,yEAAyE;wBACzE,IAAI,SAAS,IAAI,MAAM,GAAG,WAAW,GAAG,UAAU,EAAE,CAAC;4BACnD,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;wBAC/F,CAAC;wBAED,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,UAAU,GAAG,eAAe,EAAE,CAAC;4BACxD,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;wBAC/F,CAAC;wBAED,OAAO,CAAC,GAAG,CAAC,0DAA0D,EAAE;4BACtE,MAAM;4BACN,SAAS;4BACT,UAAU,EAAE,MAAM;4BAClB,aAAa,EAAE,MAAM,GAAG,WAAW;4BACnC,cAAc,EAAE,UAAU;4BAC1B,iBAAiB,EAAE,UAAU,GAAG,eAAe;yBAChD,CAAC,CAAC;wBAEH,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC;oBAC7B,CAAC,CAAC;oBAEF,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,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;KAC3C,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,EAAC,OAAO,EAAE,KAAK,IACtC;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,yFAAyF,GAAG,EAAE,CAAC,CAAC;YAC5G,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC;QAC3C,CAAC;QACD,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACrC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtB,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,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,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;YAChE,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,yDAAyD,GAAG,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,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;aACjB,CAAC,CACF,SAAS,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,CACvD,SAAS,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CACtD,aAAa,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAC1D,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,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CACnD,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,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,CAChE,eAAe,CAAC,eAAe,CAC/B,aAAa,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,CAC/D,SAAS,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CACpD,kBAAkB,CAAC,aAAa,CAChC,UAAU,CAAC,CAAC,IAAI,CAAC,CACjB,SAAS,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CACtD,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,qBAAqB,CAAC,aAAa,CACnC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CACnD,eAAe,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAClE,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,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,CACtE,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,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,oBAAoB,EAAE,KAAK,CAAC,YAAY;qBACzC,CAAC,CAAC;oBACH,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;wBACrB,uCACK,SAAS,KACZ,OAAO,EAAE,IAAI,IACb;oBACJ,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;wBAC9C,wEAAwE;wBACxE,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;wBAChC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;wBACjC,WAAW,CAAC;4BACV,EAAE,EAAE,GAAG;4BACP,KAAK,EAAE;gCACL,GAAG,EAAE,CAAC;gCACN,IAAI,EAAE,CAAC;gCACP,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,EACrB,CACH;4BACD,QAAQ,EAAE,KAAK;yBAChB,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
+ {"version":3,"file":"AutoPositionedPopup.js","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"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"}
@@ -35,9 +35,30 @@ export interface AutoPositionedPopupProps {
35
35
  textAlign?: 'left' | 'center' | 'right' | undefined;
36
36
  pageSize?: number;
37
37
  selectedItem?: SelectedItem | any;
38
+ /**
39
+ * CustomRow={
40
+ * ({children}: ViewStyle & { children?: React.ReactNode }) => {
41
+ * return (
42
+ * <View style={}>
43
+ * {children}
44
+ * </View>
45
+ * );
46
+ * }
47
+ * }
48
+ */
38
49
  CustomRow?: React.ComponentType<ViewStyle & {
39
50
  children?: React.ReactNode;
40
51
  }>;
52
+ /**
53
+ * btwChildren={
54
+ * () => {
55
+ * return (
56
+ * <>
57
+ * </>
58
+ * );
59
+ * }
60
+ * }
61
+ */
41
62
  btwChildren?: () => React.ReactNode;
42
63
  useTextInput?: boolean;
43
64
  keyExtractor?: (item: SelectedItem) => string;
@@ -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.0.17",
3
+ "version": "1.1.0",
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",
@@ -313,7 +313,7 @@ const AutoPositionedPopup = memo(
313
313
  AutoPositionedPopupBtnStyle,
314
314
  placeholder = 'Please Select',
315
315
  onSubmitEditing,
316
- TextInputProps = {autoFocus: true},
316
+ TextInputProps,//= {autoFocus: true},
317
317
  inputStyle,
318
318
  labelStyle,
319
319
  popUpViewStyle = {left: '5%', width: '90%'},
@@ -355,7 +355,7 @@ const AutoPositionedPopup = memo(
355
355
  centerDisplay = false,
356
356
  selectedItemBackgroundColor = 'rgba(116, 116, 128, 0.08)',
357
357
  textAlign = 'right',
358
- CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '',onChangeText
358
+ CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText
359
359
  } = props;
360
360
  // State management similar to project implementation
361
361
  const [state, setState] = useState<StateProps>({
@@ -466,7 +466,7 @@ const AutoPositionedPopup = memo(
466
466
  const propsChanged =
467
467
  prevPropsRef.current.CustomPopView !== CustomPopView ||
468
468
  prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle ||
469
- prevPropsRef.current.TextInputProps !== TextInputProps;
469
+ (prevPropsRef.current.TextInputProps !== TextInputProps && useTextInput);
470
470
  console.log('AutoPositionedPopup useEffect [isKeyboardFullyShown,\n' +
471
471
  ' state.isFocus,\n' +
472
472
  ' useTextInput,\n' +
@@ -485,7 +485,10 @@ const AutoPositionedPopup = memo(
485
485
  'hasAddedRootView.current': hasAddedRootView.current,
486
486
  'hasShownRootView.current': hasShownRootView.current,
487
487
  'keyboardStateChanged': keyboardStateChanged,
488
- 'propsChanged': propsChanged
488
+ 'propsChanged': propsChanged,
489
+ 'prevPropsRef.current.CustomPopView !== CustomPopView': prevPropsRef.current.CustomPopView !== CustomPopView,
490
+ 'prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle': prevPropsRef.current.CustomPopViewStyle !== CustomPopViewStyle,
491
+ 'prevPropsRef.current.TextInputProps !== TextInputProps': prevPropsRef.current.TextInputProps !== TextInputProps
489
492
  });
490
493
  // Update ref to record current state
491
494
  prevIsKeyboardFullyShownRef.current = isKeyboardFullyShown;
@@ -495,13 +498,26 @@ const AutoPositionedPopup = memo(
495
498
  TextInputProps
496
499
  };
497
500
  // Only execute logic when keyboard state actually changes or user actively operates
498
- if (!keyboardStateChanged && hasAddedRootView.current) {
499
- console.log('AutoPositionedPopup: Skip execution - parent component re-rendered but keyboard state unchanged textInputRef.current=',textInputRef.current);
501
+ if (!keyboardStateChanged && hasAddedRootView.current) {
502
+ console.log('AutoPositionedPopup: Skip execution - parent component re-rendered but keyboard state unchanged textInputRef.current=', textInputRef.current);
500
503
  // if (!ref_isFocus.current) {
501
504
  // textInputRef.current?.focus()
502
505
  // }
503
506
  return;
504
507
  }
508
+ const getStatusBarHeight = (): number => {
509
+ if (Platform.OS === 'android') {
510
+ // Android: Use StatusBar.currentHeight API
511
+ return StatusBar.currentHeight || 24; // Fallback to 24 if undefined
512
+ } else {
513
+ // iOS: Calculate from screen vs window height difference
514
+ const {height: screenHeightFull} = Dimensions.get('screen');
515
+ const {height: windowHeight} = Dimensions.get('window');
516
+ return screenHeightFull - windowHeight; // Safe area top (status bar)
517
+ }
518
+ };
519
+ // Get accurate status bar height for both iOS and Android
520
+ const statusBarHeight = getStatusBarHeight();
505
521
  if (useTextInput) {
506
522
  if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
507
523
  // CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
@@ -543,11 +559,11 @@ const AutoPositionedPopup = memo(
543
559
  // 1. ALWAYS try to show popup ABOVE the input field first
544
560
  // 2. Only if that goes off the top of screen, show BELOW instead
545
561
  // 3. Don't cover/overlap the input field
546
- let popupY = y - listLayout.height; // Default: above input field
562
+ let popupY = y - listLayout.height+statusBarHeight; // Default: above input field
547
563
  // Check if showing above would go off the top of screen
548
- if (popupY < 0) {
564
+ if (popupY < statusBarHeight) {
549
565
  console.log('AutoPositionedPopup with keyboard: would go off screen top, showing BELOW instead');
550
- popupY = y + height; // Show below input field
566
+ popupY = y + height+statusBarHeight; // Show below input field
551
567
  // Also check if showing below would go off the bottom
552
568
  const maxY = screenHeight - listLayout.height;
553
569
  if (popupY > maxY) {
@@ -590,203 +606,53 @@ const AutoPositionedPopup = memo(
590
606
  }
591
607
  } else {
592
608
  if (state.isFocus) {
609
+ if (isKeyboardFullyShown) {
610
+ Keyboard.dismiss();
611
+ return;
612
+ }
593
613
  refAutoPositionedPopup.current?.measureInWindow((x: number, y: number, width: number, height: number) => {
594
614
  console.log('AutoPositionedPopup !useTextInput measureInWindow=', {x, y, width, height});
595
- // INTELLIGENT POSITION CALCULATION - MODIFIED VERSION WITH STATUS BAR SAFETY
615
+ // CORRECT POSITIONING LOGIC (as per user requirement)
616
+ // Default: show popup ABOVE the input field
617
+ // Only if that goes off the top of screen (considering status bar), show BELOW instead
596
618
  const calculateOptimalPosition = (componentY: number, componentHeight: number, popupHeight: number) => {
597
- console.log('AutoPositionedPopup 🔥🔥🔥 NEW CALCULATE OPTIMAL POSITION FUNCTION EXECUTING 🔥🔥🔥');
598
-
599
- // Use window height (visible area) instead of screen height (includes status bar)
600
- const windowHeight = Dimensions.get('window').height;
601
- const visibleAreaCenter = windowHeight / 2;
602
-
603
- // Cross-platform status bar height handling
604
- const getStatusBarHeight = () => {
605
- if (Platform.OS === 'android') {
606
- return StatusBar.currentHeight || 24; // Android default
607
- } else {
608
- // iOS status bar heights vary by device
609
- const {height: screenHeight} = Dimensions.get('screen');
610
- const {height: windowHeightLocal} = Dimensions.get('window');
611
- return screenHeight - windowHeightLocal; // Safe area top
612
- }
613
- };
614
- const statusBarHeight = getStatusBarHeight();
615
- console.log('AutoPositionedPopup 🔥 Cross-platform StatusBar height:', statusBarHeight, 'Platform:', Platform.OS);
616
-
617
- // Calculate component center point as requested
618
- const componentCenterY = componentY + componentHeight / 2;
619
-
619
+ console.log('AutoPositionedPopup calculateOptimalPosition executing');
620
+ // Use window height (visible area) instead of screen height
621
+ const screenHeight = Dimensions.get('window').height;
620
622
  console.log('AutoPositionedPopup positioning data:', {
621
- windowHeight,
622
- visibleAreaCenter,
623
- componentCenterY,
623
+ screenHeight,
624
624
  componentY,
625
625
  componentHeight,
626
626
  popupHeight,
627
- statusBarHeight
628
- });
629
-
630
- let showAbove = false;
631
- let finalY = componentY + componentHeight; // Default fallback: show below
632
-
633
- // CORRECTED LOGIC: Calculate actual usable space considering status bar
634
- const rawSpaceAbove = componentY;
635
- const spaceBelow = windowHeight - (componentY + componentHeight);
636
- // Actual usable space above must account for status bar
637
- const usableSpaceAbove = componentY - statusBarHeight;
638
-
639
- console.log('🔥 AutoPositionedPopup CORRECTED SPACE CALCULATION (pre-spacing):', {
640
- rawSpaceAbove,
641
- usableSpaceAbove,
642
- spaceBelow,
643
- popupHeight,
644
- componentY,
645
- componentHeight,
646
- windowHeight,
647
- statusBarHeight
648
- });
649
-
650
- // ULTRA-TIGHT SPACING: Minimal spacing for tight visual connection
651
- const getOptimalSpacing = (compY: number, compHeight: number, winHeight: number) => {
652
- const componentCenter = compY + compHeight / 2;
653
- const screenCenter = winHeight / 2;
654
- const distanceFromCenter = Math.abs(componentCenter - screenCenter) / screenCenter;
655
-
656
- // Check if component is in bottom half for ultra-tight spacing
657
- const isInBottomHalf = componentCenter > screenCenter;
658
-
659
- // Base spacing: extremely small for bottom components
660
- const baseSpacing = isInBottomHalf ? 0.5 : 3;
661
-
662
- // Aggressive spacing reduction for edge positions - ultra tight for bottom half
663
- const edgeProximityFactor = isInBottomHalf ?
664
- Math.max(0.15, 1 - distanceFromCenter * 1.2) :
665
- Math.max(0.4, 1 - distanceFromCenter * 0.7);
666
-
667
- // Minimal component-relative spacing for bottom components
668
- const relativeSpacingPercent = isInBottomHalf ? 0.02 : 0.12;
669
- const relativeSpacing = Math.min(compHeight * relativeSpacingPercent, isInBottomHalf ? 3 : 10);
670
-
671
- // Strong platform adjustment - much smaller for Android bottom components
672
- const platformMultiplier = Platform.OS === 'ios' ? 1.0 : (isInBottomHalf ? 0.5 : 0.9);
673
-
674
- const finalSpacing = Math.max(baseSpacing, relativeSpacing) * edgeProximityFactor * platformMultiplier;
675
-
676
- console.log('AutoPositionedPopup 🔥 Advanced spacing calculation:', {
677
- componentCenter,
678
- screenCenter,
679
- distanceFromCenter,
680
- isInBottomHalf,
681
- edgeProximityFactor,
682
- baseSpacing,
683
- relativeSpacing,
684
- relativeSpacingPercent,
685
- platformMultiplier,
686
- finalSpacing
687
- });
688
-
689
- return finalSpacing;
690
- };
691
- // const POPUP_SPACING = getOptimalSpacing(componentY, componentHeight, windowHeight);
692
- // console.log('🔥 Optimal popup spacing calculated:', POPUP_SPACING, 'for componentHeight:', componentHeight, 'at Y:', componentY);
693
-
694
- // console.log('🔥 AutoPositionedPopup FINAL SPACE CHECK WITH SPACING:', {
695
- // POPUP_SPACING,
696
- // 'usableSpaceAbove >= popupHeight + POPUP_SPACING': usableSpaceAbove >= popupHeight + POPUP_SPACING,
697
- // 'spaceBelow >= popupHeight + POPUP_SPACING': spaceBelow >= popupHeight + POPUP_SPACING,
698
- // 'usableSpaceAbove needed': popupHeight + POPUP_SPACING,
699
- // 'spaceBelow needed': popupHeight + POPUP_SPACING
700
- // });
701
-
702
- // FORCE ABOVE PRIORITY: If component is in bottom half, always try above first
703
- const isInBottomHalf = componentCenterY > visibleAreaCenter;
704
-
705
- // console.log('🔥 Position decision factors:', {
706
- // isInBottomHalf,
707
- // componentCenterY,
708
- // visibleAreaCenter,
709
- // 'spaceBelow >= needed': spaceBelow >= popupHeight + POPUP_SPACING,
710
- // 'usableSpaceAbove >= needed': usableSpaceAbove >= popupHeight + POPUP_SPACING
711
- // });
712
-
713
- if (isInBottomHalf && usableSpaceAbove >= popupHeight) {
714
- // Component in bottom half + enough space above = FORCE ABOVE
715
- showAbove = true;
716
- finalY = componentY - popupHeight + componentHeight / 2;
717
- console.log('AutoPositionedPopup 🔥 AutoPositionedPopup: FORCE ABOVE - bottom half component with enough space, finalY=', finalY);
718
- } else if (!isInBottomHalf && spaceBelow >= popupHeight) {
719
- // Component in top half + enough space below = show below
720
- showAbove = false;
721
- finalY = componentY + componentHeight * 2;
722
- console.log('🔥 AutoPositionedPopup: Showing below - top half component with enough space, finalY=', finalY);
723
- } else if (usableSpaceAbove >= popupHeight) {
724
- // Fallback: enough space above
725
- showAbove = true;
726
- finalY = componentY - popupHeight;
727
- console.log('🔥 AutoPositionedPopup: Showing above - enough space available (fallback), finalY=', finalY);
728
- } else if (spaceBelow >= popupHeight) {
729
- // Fallback: enough space below
730
- showAbove = false;
731
- finalY = componentY + componentHeight;
732
- console.log('🔥 AutoPositionedPopup: Showing below - enough space available (fallback), finalY=', finalY);
733
- } else {
734
- // Emergency fallback: choose larger space
735
- if (usableSpaceAbove >= spaceBelow) {
736
- showAbove = true;
737
- finalY = Math.max(statusBarHeight, componentY - popupHeight);
738
- console.log('🔥 AutoPositionedPopup: Emergency above - larger space, finalY=', finalY);
739
- } else {
740
- showAbove = false;
741
- finalY = componentY + componentHeight;
742
- console.log('🔥 AutoPositionedPopup: Emergency below - larger space, finalY=', finalY);
743
- }
744
- }
745
-
746
- // Enhanced boundary check with detailed logging
747
- console.log('AutoPositionedPopup 🔥 Pre-boundary check:', {
748
- originalFinalY: finalY,
749
- showAbove,
750
627
  statusBarHeight,
751
- windowHeight,
752
- popupHeight,
753
- 'finalY < statusBarHeight': finalY < statusBarHeight,
754
- 'finalY + popupHeight > windowHeight': finalY + popupHeight > windowHeight
628
+ platform: Platform.OS
755
629
  });
756
-
757
- if (showAbove && finalY < statusBarHeight) {
758
- const oldFinalY = finalY;
759
- finalY = statusBarHeight;
760
- console.log('AutoPositionedPopup 🔥 BOUNDARY : Above display adjusted for status bar:', oldFinalY, '->', finalY);
761
- }
762
-
763
- if (!showAbove && finalY + popupHeight > windowHeight) {
764
- const oldFinalY = finalY;
765
- finalY = windowHeight - popupHeight;
766
- console.log('AutoPositionedPopup 🔥 BOUNDARY : Below display adjusted to fit window:', oldFinalY, '->', finalY);
767
- }
768
-
769
- // CRITICAL CHECK: Detect if boundary check is changing display direction
770
- if (showAbove && finalY + popupHeight > componentY) {
771
- console.log('AutoPositionedPopup 🚨 WARNING: Above positioning may overlap with component!');
772
- }
773
-
774
- if (!showAbove && finalY < componentY + componentHeight) {
775
- console.log('AutoPositionedPopup 🚨 WARNING: Below positioning may overlap with component!');
630
+ // CORRECT POSITIONING LOGIC (with status bar consideration):
631
+ // 1. Default: above input field
632
+ let popupY = componentY - popupHeight+statusBarHeight;
633
+ // 2. Check if showing above would overlap with status bar
634
+ // The top boundary should be statusBarHeight, not 0
635
+ if (popupY < statusBarHeight) {
636
+ console.log('AutoPositionedPopup: would overlap status bar, showing BELOW instead');
637
+ popupY = componentY + componentHeight+statusBarHeight; // Show below input field
638
+ // 3. Also check if showing below would go off the bottom
639
+ const maxY = screenHeight - popupHeight;
640
+ if (popupY > maxY) {
641
+ // If both positions are problematic, clamp to visible area
642
+ // But ensure it doesn't go above status bar
643
+ console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
644
+ popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
645
+ }
646
+ } else {
647
+ console.log('AutoPositionedPopup: showing ABOVE input field (preferred position, below status bar)');
776
648
  }
777
-
778
- console.log('AutoPositionedPopup 🔥 Post-boundary check final result:', {
779
- finalY,
780
- showAbove,
781
- 'popupTop': finalY,
782
- 'popupBottom': finalY + popupHeight,
783
- 'componentTop': componentY,
784
- 'componentBottom': componentY + componentHeight
649
+ console.log('AutoPositionedPopup final position:', {
650
+ popupY,
651
+ 'showing above': popupY < componentY,
652
+ 'below status bar': popupY >= statusBarHeight
785
653
  });
786
-
787
- return {finalY, showAbove};
654
+ return {finalY: popupY, showAbove: popupY < componentY};
788
655
  };
789
-
790
656
  // Calculate position ONCE based on actual popup height
791
657
  const actualPopupHeight = CustomPopView && CustomPopViewStyle && typeof CustomPopViewStyle.height === 'number'
792
658
  ? CustomPopViewStyle.height
@@ -899,7 +765,7 @@ const AutoPositionedPopup = memo(
899
765
  setState((prevState) => {
900
766
  return {
901
767
  ...prevState,
902
- selectedItem: undefined,isFocus: false,
768
+ selectedItem: undefined, isFocus: false,
903
769
  };
904
770
  });
905
771
  ref_searchQuery.current = '';
@@ -970,6 +836,7 @@ const AutoPositionedPopup = memo(
970
836
  console.log(`AutoPositionedPopup TextInputProps deep change detected, updating stable reference - tag: ${tag}`);
971
837
  stableTextInputPropsRef.current = TextInputProps;
972
838
  }
839
+ console.log('AutoPositionedPopup stableTextInputProps=', {tag, TextInputProps, 'stableTextInputPropsRef.current': stableTextInputPropsRef.current})
973
840
  return stableTextInputPropsRef.current;
974
841
  }, [TextInputProps, tag]);
975
842
 
@@ -1071,7 +938,7 @@ const AutoPositionedPopup = memo(
1071
938
  // Wrap TextInput independently in useMemo to recreate only when key props change
1072
939
  // This avoids repeated ref callback triggers due to other props changes during parent component redraws
1073
940
  const memoizedTextInput = useMemo(() => {
1074
- console.log(`AutoPositionedPopup useMemo creating TextInput - tag: ${tag}, isFocus: ${state.isFocus}`);
941
+ console.log('AutoPositionedPopup memoizedTextInput=', {tag, useTextInput, 'state.isFocus': state.isFocus, stableTextInputProps});
1075
942
  if (!useTextInput || !state.isFocus) {
1076
943
  return null;
1077
944
  }
@@ -1093,9 +960,9 @@ const AutoPositionedPopup = memo(
1093
960
  styles.inputStyle,
1094
961
  stableInputStyle,
1095
962
  ]}
1096
- textAlign={stableTextInputProps['textAlign'] || 'left'}
1097
- multiline={stableTextInputProps['multiline'] || false}
1098
- numberOfLines={stableTextInputProps['numberOfLines'] || 1}
963
+ textAlign={stableTextInputProps && stableTextInputProps['textAlign'] || 'left'}
964
+ multiline={stableTextInputProps && stableTextInputProps['multiline'] || false}
965
+ numberOfLines={stableTextInputProps && stableTextInputProps['numberOfLines'] || 1}
1099
966
  onChangeText={(searchQuery) => {
1100
967
  ref_searchQuery.current = searchQuery;
1101
968
  console.log('AutoPositionedPopup onChangeText rootViews=', rootViews);
@@ -1119,23 +986,23 @@ const AutoPositionedPopup = memo(
1119
986
  Keyboard.dismiss();
1120
987
  }
1121
988
  }}
1122
- keyboardType={stableTextInputProps['keyboardType'] || 'default'}
989
+ keyboardType={stableTextInputProps && stableTextInputProps['keyboardType'] || 'default'}
1123
990
  clearButtonMode="while-editing"
1124
- returnKeyType={stableTextInputProps['returnKeyType'] || 'done'}
1125
- maxLength={stableTextInputProps['maxLength'] || 100}
991
+ returnKeyType={stableTextInputProps && stableTextInputProps['returnKeyType'] || 'done'}
992
+ maxLength={stableTextInputProps && stableTextInputProps['maxLength'] || 100}
1126
993
  accessibilityLabel="selectInput"
1127
994
  accessible={true}
1128
- autoFocus={stableTextInputProps['autoFocus'] || false}
995
+ autoFocus={stableTextInputProps && stableTextInputProps['autoFocus'] || true}
1129
996
  autoCorrect={false}
1130
997
  underlineColorAndroid="transparent"
1131
- editable={stableTextInputProps['editable'] || true}
1132
- secureTextEntry={stableTextInputProps['secureTextEntry'] || false}
998
+ editable={stableTextInputProps && stableTextInputProps['editable'] || true}
999
+ secureTextEntry={stableTextInputProps && stableTextInputProps['secureTextEntry'] || false}
1133
1000
  defaultValue=""
1134
1001
  caretHidden={false}
1135
1002
  enablesReturnKeyAutomatically
1136
1003
  onFocus={handleTextInputFocus}
1137
1004
  onBlur={handleTextInputBlur}
1138
- selectTextOnFocus={stableTextInputProps['selectTextOnFocus'] || false}
1005
+ selectTextOnFocus={stableTextInputProps && stableTextInputProps['selectTextOnFocus'] || false}
1139
1006
  onSubmitEditing={(e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => {
1140
1007
  console.log(
1141
1008
  'AutoPositionedPopup.tsx onSubmitEditing e.nativeEvent.text=',
@@ -1179,12 +1046,14 @@ const AutoPositionedPopup = memo(
1179
1046
  'hasTriggeredFocus.current': hasTriggeredFocus.current,
1180
1047
  'state.selectedItem': state.selectedItem
1181
1048
  });
1182
- setState((prevState) => {
1183
- return {
1184
- ...prevState,
1185
- isFocus: true,
1186
- };
1187
- });
1049
+ {
1050
+ setState((prevState) => {
1051
+ return {
1052
+ ...prevState,
1053
+ isFocus: true,
1054
+ };
1055
+ });
1056
+ }
1188
1057
  if (!hasAddedRootView.current && useTextInput) {
1189
1058
  // TextInput version: hide first, show after keyboard is fully displayed
1190
1059
  hasAddedRootView.current = true;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { StyleProp, TextInputProps, TextStyle, ViewStyle } from 'react-native';
3
- import { TextInputSubmitEditingEventData } from 'react-native/Libraries/Components/TextInput/TextInput';
4
- import { NativeSyntheticEvent } from 'react-native/Libraries/Types/CoreEventTypes';
2
+ import {StyleProp, TextInputProps, TextStyle, ViewStyle} from 'react-native';
3
+ import {TextInputSubmitEditingEventData} from 'react-native/Libraries/Components/TextInput/TextInput';
4
+ import {NativeSyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes';
5
5
 
6
6
  export interface Data {
7
7
  items: any[];
@@ -31,7 +31,7 @@ export interface AutoPositionedPopupProps {
31
31
  pageSize: number;
32
32
  searchQuery?: string;
33
33
  }) => Promise<Data | null>;
34
- renderItem?: ({ item, index }: { item: SelectedItem; index: number }) => React.ReactElement;
34
+ renderItem?: ({item, index}: { item: SelectedItem; index: number }) => React.ReactElement;
35
35
  onItemSelected?: (item: SelectedItem) => void;
36
36
  onSubmitEditing?: (e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void;
37
37
  localSearch?: boolean;
@@ -39,7 +39,28 @@ export interface AutoPositionedPopupProps {
39
39
  textAlign?: 'left' | 'center' | 'right' | undefined;
40
40
  pageSize?: number;
41
41
  selectedItem?: SelectedItem | any;
42
+ /**
43
+ * CustomRow={
44
+ * ({children}: ViewStyle & { children?: React.ReactNode }) => {
45
+ * return (
46
+ * <View style={}>
47
+ * {children}
48
+ * </View>
49
+ * );
50
+ * }
51
+ * }
52
+ */
42
53
  CustomRow?: React.ComponentType<ViewStyle & { children?: React.ReactNode }>;
54
+ /**
55
+ * btwChildren={
56
+ * () => {
57
+ * return (
58
+ * <>
59
+ * </>
60
+ * );
61
+ * }
62
+ * }
63
+ */
43
64
  btwChildren?: () => React.ReactNode;
44
65
  useTextInput?: boolean;
45
66
  keyExtractor?: (item: SelectedItem) => string;
@@ -64,7 +85,7 @@ export interface AutoPositionedPopupProps {
64
85
  AutoPositionedPopupBtnDisabled?: boolean;
65
86
  centerDisplay?: boolean;
66
87
  selectedItemBackgroundColor?: string;
67
- showListEmptyComponent?:boolean;
68
- emptyText?:string;
88
+ showListEmptyComponent?: boolean;
89
+ emptyText?: string;
69
90
  onChangeText?: ((text: string) => void) | undefined;
70
91
  }