react-native-auto-positioned-popup 1.0.10 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -148,12 +148,13 @@ Then use the `AutoPositionedPopup` component:
148
148
  ```tsx
149
149
  import React, { useState } from 'react';
150
150
  import { View } from 'react-native';
151
- import AutoPositionedPopup, { SelectedItem, Data } from 'react-native-auto-positioned-popup';
151
+ import RNAutoPositionedPopup from 'react-native-auto-positioned-popup';
152
+ import type {SelectedItem as RNSelectedItem, Data as AutoPositionedPopupData} from 'react-native-auto-positioned-popup';
152
153
 
153
154
  const MyComponent = () => {
154
- const [selectedItem, setSelectedItem] = useState<SelectedItem | undefined>();
155
+ const [selectedItem, setSelectedItem] = useState<RNSelectedItem | undefined>();
155
156
 
156
- const fetchData = async ({ pageIndex, pageSize, searchQuery }): Promise<Data | null> => {
157
+ const fetchData = async ({ pageIndex, pageSize, searchQuery }): Promise<AutoPositionedPopupData | null> => {
157
158
  // Your data fetching logic here
158
159
  return {
159
160
  items: [
@@ -168,7 +169,7 @@ const MyComponent = () => {
168
169
 
169
170
  return (
170
171
  <View style={{ padding: 20 }}>
171
- <AutoPositionedPopup
172
+ <RNAutoPositionedPopup
172
173
  tag="example-popup"
173
174
  placeholder="Select an option"
174
175
  selectedItem={selectedItem}
@@ -245,10 +246,11 @@ This example shows a complete implementation without search input, suitable for
245
246
  ```tsx
246
247
  import React, { useState } from 'react';
247
248
  import { View, Text, Image, StyleSheet } from 'react-native';
248
- import AutoPositionedPopup, { SelectedItem, Data, RootViewProvider } from 'react-native-auto-positioned-popup';
249
+ import RNAutoPositionedPopup, { RootViewProvider } from 'react-native-auto-positioned-popup';
250
+ import type {SelectedItem as RNSelectedItem, Data as AutoPositionedPopupData} from 'react-native-auto-positioned-popup';
249
251
 
250
252
  // Sample data type with color support
251
- interface ClinicItem extends SelectedItem {
253
+ interface ClinicItem extends RNSelectedItem {
252
254
  code: string;
253
255
  textColor: string;
254
256
  address?: string;
@@ -257,7 +259,7 @@ interface ClinicItem extends SelectedItem {
257
259
  const ClinicSelector = () => {
258
260
  const [selectedClinic, setSelectedClinic] = useState<ClinicItem | null>(null);
259
261
 
260
- const fetchClinics = async ({ pageIndex, pageSize }): Promise<Data | null> => {
262
+ const fetchClinics = async ({ pageIndex, pageSize }): Promise<AutoPositionedPopupData | null> => {
261
263
  // Simulate API call
262
264
  const mockClinics = [
263
265
  { id: '1', title: 'Main Clinic', code: 'MC001', textColor: '#4CAF50', address: '123 Main St' },
@@ -278,7 +280,7 @@ const ClinicSelector = () => {
278
280
  return (
279
281
  <RootViewProvider>
280
282
  <View style={styles.container}>
281
- <AutoPositionedPopup
283
+ <RNAutoPositionedPopup
282
284
  tag="clinic-selector"
283
285
  useTextInput={false}
284
286
  localSearch={false}
package/README_zh.md CHANGED
@@ -148,12 +148,13 @@ const App = () => {
148
148
  ```tsx
149
149
  import React, { useState } from 'react';
150
150
  import { View } from 'react-native';
151
- import AutoPositionedPopup, { SelectedItem, Data } from 'react-native-auto-positioned-popup';
151
+ import RNAutoPositionedPopup from 'react-native-auto-positioned-popup';
152
+ import type {SelectedItem as RNSelectedItem, Data as AutoPositionedPopupData} from 'react-native-auto-positioned-popup';
152
153
 
153
154
  const MyComponent = () => {
154
- const [selectedItem, setSelectedItem] = useState<SelectedItem | undefined>();
155
+ const [selectedItem, setSelectedItem] = useState<RNSelectedItem | undefined>();
155
156
 
156
- const fetchData = async ({ pageIndex, pageSize, searchQuery }): Promise<Data | null> => {
157
+ const fetchData = async ({ pageIndex, pageSize, searchQuery }): Promise<AutoPositionedPopupData | null> => {
157
158
  // 你的数据获取逻辑
158
159
  return {
159
160
  items: [
@@ -168,7 +169,7 @@ const MyComponent = () => {
168
169
 
169
170
  return (
170
171
  <View style={{ padding: 20 }}>
171
- <AutoPositionedPopup
172
+ <RNAutoPositionedPopup
172
173
  tag="example-popup"
173
174
  placeholder="请选择一个选项"
174
175
  selectedItem={selectedItem}
@@ -245,10 +246,11 @@ export default MyComponent;
245
246
  ```tsx
246
247
  import React, { useState } from 'react';
247
248
  import { View, Text, Image, StyleSheet } from 'react-native';
248
- import AutoPositionedPopup, { SelectedItem, Data, RootViewProvider } from 'react-native-auto-positioned-popup';
249
+ import RNAutoPositionedPopup from 'react-native-auto-positioned-popup';
250
+ import type {SelectedItem as RNSelectedItem, Data as AutoPositionedPopupData} from 'react-native-auto-positioned-popup';
249
251
 
250
252
  // 支持颜色的数据类型示例
251
- interface ClinicItem extends SelectedItem {
253
+ interface ClinicItem extends RNSelectedItem {
252
254
  code: string;
253
255
  textColor: string;
254
256
  address?: string;
@@ -257,7 +259,7 @@ interface ClinicItem extends SelectedItem {
257
259
  const ClinicSelector = () => {
258
260
  const [selectedClinic, setSelectedClinic] = useState<ClinicItem | null>(null);
259
261
 
260
- const fetchClinics = async ({ pageIndex, pageSize }): Promise<Data | null> => {
262
+ const fetchClinics = async ({ pageIndex, pageSize }): Promise<AutoPositionedPopupData | null> => {
261
263
  // 模拟 API 调用
262
264
  const mockClinics = [
263
265
  { id: '1', title: '主诊所', code: 'MC001', textColor: '#4CAF50', address: '主街123号' },
@@ -278,7 +280,7 @@ const ClinicSelector = () => {
278
280
  return (
279
281
  <RootViewProvider>
280
282
  <View style={styles.container}>
281
- <AutoPositionedPopup
283
+ <RNAutoPositionedPopup
282
284
  tag="clinic-selector"
283
285
  useTextInput={false}
284
286
  localSearch={false}
@@ -523,4 +525,4 @@ MIT © [Stark](https://github.com/your-username)
523
525
  - 自动定位功能
524
526
  - 搜索支持
525
527
  - TypeScript 定义
526
- - 跨平台兼容性
528
+ - 跨平台兼容性
@@ -1 +1 @@
1
- {"version":3,"file":"AutoPositionedPopup.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAYN,MAAM,OAAO,CAAC;AAYf,OAAO,EAAC,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AAuRxF,QAAA,MAAM,mBAAmB,qFAioBxB,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;AAwRxF,QAAA,MAAM,mBAAmB,qFA2vBxB,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, Text, TextInput as RNTextInput, TouchableOpacity, View, } from 'react-native';
2
+ import { Dimensions, 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';
@@ -160,7 +160,7 @@ const AutoPositionedPopupList = memo(({ tag, updateState, fetchData, keyExtracto
160
160
  // Babel configuration handles the path redirection based on global.$fake
161
161
  // No need for conditional import here
162
162
  return (<View style={[styles.baseModalView, styles.autoPositionedPopupList]}>
163
- <AdvancedFlatList style={[{ borderRadius: 0 }]} {...(ref_list && { ref: ref_list })} keyExtractor={(item, index) => keyExtractor ? keyExtractor(item) : item.id} keyboardShouldPersistTaps={'always'} fetchData={_fetchData} renderItem={renderItem ? ({ item, index }) => renderItem({ item: item, index }) : ({ item, index }) => _renderItem({ item: item, index })}/>
163
+ <AdvancedFlatList style={[{ borderRadius: 0 }]} {...(ref_list && { ref: ref_list })} keyExtractor={(item, index) => keyExtractor ? keyExtractor(item) : item.id} keyboardShouldPersistTaps={'always'} fetchData={_fetchData} renderItem={renderItem ? ({ item, index }) => renderItem({ item: item, index }) : ({ item, index }) => _renderItem({ item: item, index })} showListEmptyComponent={false}/>
164
164
  </View>);
165
165
  }, [tag,
166
166
  updateState,
@@ -336,11 +336,26 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
336
336
  if (state.isFocus) {
337
337
  (_b = refAutoPositionedPopup.current) === null || _b === void 0 ? void 0 : _b.measureInWindow((x, y, width, height) => {
338
338
  console.log('AutoPositionedPopup measureInWindow x=', x, ' y=', y, ' width=', width, ' height=', height);
339
- // INTELLIGENT POSITION CALCULATION
339
+ // INTELLIGENT POSITION CALCULATION - MODIFIED VERSION WITH STATUS BAR SAFETY
340
340
  const calculateOptimalPosition = (componentY, componentHeight, popupHeight) => {
341
+ console.log('🔥🔥🔥 NEW CALCULATE OPTIMAL POSITION FUNCTION EXECUTING 🔥🔥🔥');
341
342
  // Use window height (visible area) instead of screen height (includes status bar)
342
343
  const windowHeight = Dimensions.get('window').height;
343
344
  const visibleAreaCenter = windowHeight / 2;
345
+ // Cross-platform status bar height handling
346
+ const getStatusBarHeight = () => {
347
+ if (Platform.OS === 'android') {
348
+ return StatusBar.currentHeight || 24; // Android default
349
+ }
350
+ else {
351
+ // iOS status bar heights vary by device
352
+ const { height: screenHeight } = Dimensions.get('screen');
353
+ const { height: windowHeightLocal } = Dimensions.get('window');
354
+ return screenHeight - windowHeightLocal; // Safe area top
355
+ }
356
+ };
357
+ const statusBarHeight = getStatusBarHeight();
358
+ console.log('🔥 Cross-platform StatusBar height:', statusBarHeight, 'Platform:', Platform.OS);
344
359
  // Calculate component center point as requested
345
360
  const componentCenterY = componentY + componentHeight / 2;
346
361
  console.log('AutoPositionedPopup positioning data:', {
@@ -349,75 +364,163 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
349
364
  componentCenterY,
350
365
  componentY,
351
366
  componentHeight,
352
- popupHeight
367
+ popupHeight,
368
+ statusBarHeight
353
369
  });
354
370
  let showAbove = false;
355
- let finalY = componentY + componentHeight; // Default: show below
356
- // Primary logic: use component center point vs visible area center
357
- if (componentCenterY > visibleAreaCenter) {
358
- // Component center is in lower half, prefer showing above
359
- const spaceAbove = componentY;
360
- if (spaceAbove >= popupHeight) {
361
- showAbove = true;
362
- finalY = componentY - popupHeight;
363
- }
364
- else {
365
- // Not enough space above, check if we can fit below
366
- const spaceBelow = windowHeight - (componentY + componentHeight);
367
- if (spaceBelow >= popupHeight) {
368
- // Show below if there's space
369
- finalY = componentY + componentHeight;
370
- }
371
- else {
372
- // Force above with clipping
373
- showAbove = true;
374
- finalY = Math.max(0, componentY - popupHeight);
375
- }
376
- }
371
+ let finalY = componentY + componentHeight; // Default fallback: show below
372
+ // CORRECTED LOGIC: Calculate actual usable space considering status bar
373
+ const rawSpaceAbove = componentY;
374
+ const spaceBelow = windowHeight - (componentY + componentHeight);
375
+ // Actual usable space above must account for status bar
376
+ const usableSpaceAbove = componentY - statusBarHeight;
377
+ console.log('🔥 AutoPositionedPopup CORRECTED SPACE CALCULATION (pre-spacing):', {
378
+ rawSpaceAbove,
379
+ usableSpaceAbove,
380
+ spaceBelow,
381
+ popupHeight,
382
+ componentY,
383
+ componentHeight,
384
+ windowHeight,
385
+ statusBarHeight
386
+ });
387
+ // ULTRA-TIGHT SPACING: Minimal spacing for tight visual connection
388
+ const getOptimalSpacing = (compY, compHeight, winHeight) => {
389
+ const componentCenter = compY + compHeight / 2;
390
+ const screenCenter = winHeight / 2;
391
+ const distanceFromCenter = Math.abs(componentCenter - screenCenter) / screenCenter;
392
+ // Check if component is in bottom half for ultra-tight spacing
393
+ const isInBottomHalf = componentCenter > screenCenter;
394
+ // Base spacing: extremely small for bottom components
395
+ const baseSpacing = isInBottomHalf ? 0.5 : 3;
396
+ // Aggressive spacing reduction for edge positions - ultra tight for bottom half
397
+ const edgeProximityFactor = isInBottomHalf ?
398
+ Math.max(0.15, 1 - distanceFromCenter * 1.2) :
399
+ Math.max(0.4, 1 - distanceFromCenter * 0.7);
400
+ // Minimal component-relative spacing for bottom components
401
+ const relativeSpacingPercent = isInBottomHalf ? 0.02 : 0.12;
402
+ const relativeSpacing = Math.min(compHeight * relativeSpacingPercent, isInBottomHalf ? 3 : 10);
403
+ // Strong platform adjustment - much smaller for Android bottom components
404
+ const platformMultiplier = Platform.OS === 'ios' ? 1.0 : (isInBottomHalf ? 0.5 : 0.9);
405
+ const finalSpacing = Math.max(baseSpacing, relativeSpacing) * edgeProximityFactor * platformMultiplier;
406
+ console.log('🔥 Advanced spacing calculation:', {
407
+ componentCenter,
408
+ screenCenter,
409
+ distanceFromCenter,
410
+ isInBottomHalf,
411
+ edgeProximityFactor,
412
+ baseSpacing,
413
+ relativeSpacing,
414
+ relativeSpacingPercent,
415
+ platformMultiplier,
416
+ finalSpacing
417
+ });
418
+ return finalSpacing;
419
+ };
420
+ // const POPUP_SPACING = getOptimalSpacing(componentY, componentHeight, windowHeight);
421
+ // console.log('🔥 Optimal popup spacing calculated:', POPUP_SPACING, 'for componentHeight:', componentHeight, 'at Y:', componentY);
422
+ // console.log('🔥 AutoPositionedPopup FINAL SPACE CHECK WITH SPACING:', {
423
+ // POPUP_SPACING,
424
+ // 'usableSpaceAbove >= popupHeight + POPUP_SPACING': usableSpaceAbove >= popupHeight + POPUP_SPACING,
425
+ // 'spaceBelow >= popupHeight + POPUP_SPACING': spaceBelow >= popupHeight + POPUP_SPACING,
426
+ // 'usableSpaceAbove needed': popupHeight + POPUP_SPACING,
427
+ // 'spaceBelow needed': popupHeight + POPUP_SPACING
428
+ // });
429
+ // FORCE ABOVE PRIORITY: If component is in bottom half, always try above first
430
+ const isInBottomHalf = componentCenterY > visibleAreaCenter;
431
+ // console.log('🔥 Position decision factors:', {
432
+ // isInBottomHalf,
433
+ // componentCenterY,
434
+ // visibleAreaCenter,
435
+ // 'spaceBelow >= needed': spaceBelow >= popupHeight + POPUP_SPACING,
436
+ // 'usableSpaceAbove >= needed': usableSpaceAbove >= popupHeight + POPUP_SPACING
437
+ // });
438
+ if (isInBottomHalf && usableSpaceAbove >= popupHeight) {
439
+ // Component in bottom half + enough space above = FORCE ABOVE
440
+ showAbove = true;
441
+ finalY = componentY - popupHeight + componentHeight / 2;
442
+ console.log('🔥 AutoPositionedPopup: FORCE ABOVE - bottom half component with enough space, finalY=', finalY);
443
+ }
444
+ else if (!isInBottomHalf && spaceBelow >= popupHeight) {
445
+ // Component in top half + enough space below = show below
446
+ showAbove = false;
447
+ finalY = componentY + componentHeight * 2;
448
+ console.log('🔥 AutoPositionedPopup: Showing below - top half component with enough space, finalY=', finalY);
449
+ }
450
+ else if (usableSpaceAbove >= popupHeight) {
451
+ // Fallback: enough space above
452
+ showAbove = true;
453
+ finalY = componentY - popupHeight;
454
+ console.log('🔥 AutoPositionedPopup: Showing above - enough space available (fallback), finalY=', finalY);
455
+ }
456
+ else if (spaceBelow >= popupHeight) {
457
+ // Fallback: enough space below
458
+ showAbove = false;
459
+ finalY = componentY + componentHeight;
460
+ console.log('🔥 AutoPositionedPopup: Showing below - enough space available (fallback), finalY=', finalY);
377
461
  }
378
462
  else {
379
- // Component center is in upper half, prefer showing below
380
- const spaceBelow = windowHeight - (componentY + componentHeight);
381
- if (spaceBelow >= popupHeight) {
382
- // Show below
383
- finalY = componentY + componentHeight;
463
+ // Emergency fallback: choose larger space
464
+ if (usableSpaceAbove >= spaceBelow) {
465
+ showAbove = true;
466
+ finalY = Math.max(statusBarHeight, componentY - popupHeight);
467
+ console.log('🔥 AutoPositionedPopup: Emergency above - larger space, finalY=', finalY);
384
468
  }
385
469
  else {
386
- // Not enough space below, try above
387
- const spaceAbove = componentY;
388
- if (spaceAbove >= popupHeight) {
389
- showAbove = true;
390
- finalY = componentY - popupHeight;
391
- }
392
- else {
393
- // Force below with clipping
394
- finalY = Math.min(windowHeight - popupHeight, componentY + componentHeight);
395
- }
470
+ showAbove = false;
471
+ finalY = componentY + componentHeight;
472
+ console.log('🔥 AutoPositionedPopup: Emergency below - larger space, finalY=', finalY);
396
473
  }
397
474
  }
398
- // Final boundary check to ensure popup stays within visible area
399
- if (finalY < 0) {
400
- finalY = 0;
475
+ // Enhanced boundary check with detailed logging
476
+ console.log('🔥 Pre-boundary check:', {
477
+ originalFinalY: finalY,
478
+ showAbove,
479
+ statusBarHeight,
480
+ windowHeight,
481
+ popupHeight,
482
+ 'finalY < statusBarHeight': finalY < statusBarHeight,
483
+ 'finalY + popupHeight > windowHeight': finalY + popupHeight > windowHeight
484
+ });
485
+ if (showAbove && finalY < statusBarHeight) {
486
+ const oldFinalY = finalY;
487
+ finalY = statusBarHeight;
488
+ console.log('🔥 BOUNDARY FIX: Above display adjusted for status bar:', oldFinalY, '->', finalY);
401
489
  }
402
- if (finalY + popupHeight > windowHeight) {
490
+ if (!showAbove && finalY + popupHeight > windowHeight) {
491
+ const oldFinalY = finalY;
403
492
  finalY = windowHeight - popupHeight;
493
+ console.log('🔥 BOUNDARY FIX: Below display adjusted to fit window:', oldFinalY, '->', finalY);
494
+ }
495
+ // CRITICAL CHECK: Detect if boundary check is changing display direction
496
+ if (showAbove && finalY + popupHeight > componentY) {
497
+ console.log('🚨 WARNING: Above positioning may overlap with component!');
404
498
  }
499
+ if (!showAbove && finalY < componentY + componentHeight) {
500
+ console.log('🚨 WARNING: Below positioning may overlap with component!');
501
+ }
502
+ console.log('🔥 Post-boundary check final result:', {
503
+ finalY,
504
+ showAbove,
505
+ 'popupTop': finalY,
506
+ 'popupBottom': finalY + popupHeight,
507
+ 'componentTop': componentY,
508
+ 'componentBottom': componentY + componentHeight
509
+ });
405
510
  return { finalY, showAbove };
406
511
  };
407
- const positionResult = calculateOptimalPosition(y, height, listLayout.height);
408
- console.log('AutoPositionedPopup position result:', positionResult);
512
+ // Calculate position ONCE based on actual popup height
513
+ const actualPopupHeight = CustomPopView && CustomPopViewStyle && typeof CustomPopViewStyle.height === 'number'
514
+ ? CustomPopViewStyle.height
515
+ : listLayout.height;
516
+ console.log('🔥 Using actualPopupHeight for calculation:', actualPopupHeight, 'CustomPopView:', !!CustomPopView);
517
+ const positionResult = calculateOptimalPosition(y, height, actualPopupHeight);
518
+ console.log('AutoPositionedPopup FINAL position result:', positionResult);
409
519
  ref_listPos.current = { x: x, y: positionResult.finalY, width: width };
410
520
  console.log('AutoPositionedPopup ref_listPos.current=', ref_listPos.current);
411
521
  if (CustomPopView && CustomPopViewStyle) {
412
522
  console.log('AutoPositionedPopup CustomPopViewStyle=', CustomPopViewStyle);
413
- // Ensure CustomPopViewStyle.height is a number before using it in calculations
414
- const customHeight = typeof CustomPopViewStyle.height === 'number' ? CustomPopViewStyle.height : listLayout.height;
415
- // Apply same intelligent positioning strategy for CustomPopView
416
- console.log('AutoPositionedPopup CustomPopView using intelligent positioning, customHeight=', customHeight);
417
- // Use the same intelligent positioning function for CustomPopView
418
- const customPositionResult = calculateOptimalPosition(y, height, customHeight);
419
- console.log('AutoPositionedPopup CustomPopView position result:', customPositionResult, 'tag=', tag);
420
- ref_listPos.current = { x: x, y: customPositionResult.finalY, width: width };
523
+ // Position already calculated correctly above, no need to recalculate
421
524
  const PopViewComponent = CustomPopView();
422
525
  console.log('AutoPositionedPopup addRootView PopViewComponent=', PopViewComponent);
423
526
  console.log('AutoPositionedPopup addRootView state.selectedItem=', state.selectedItem);
@@ -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,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,iEAAiE;QACjE,+DAA+D;QAC/D,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;AAsBF,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,GACqB,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,sDAAsD;IACtD,yDAAyD;IACzD,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,+CAA+C,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,6DAA6D,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,WAAW,CAAC,CAAC;QAC5E,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,EAEtK;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;KACb,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,EAAE,EACnB,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,EAC9C,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,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,4CAA4C,EAAE,GAAG,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,sDAAsD,EAAE,aAAa,CAAC,CAAC;QACnF,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,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,YAAY,CAAC,CAAC;QACzE,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,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,oBAAoB,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CACT,iEAAiE,EACjE,wBAAwB,CAAC,OAAO,CACjC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,cAAc,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjG,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,oBAAoB,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnG,MAAA,sBAAsB,CAAC,OAAO,0CAAE,eAAe,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE;;oBACtG,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBACzG,2CAA2C;oBAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;oBACrD,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAElH,sFAAsF;oBACtF,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;wBAC7E,WAAW,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;oBACvE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;wBAC9E,WAAW,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC7E,sBAAsB,CAAC,GAAG,EAAE;wBAC1B,GAAG,EAAE,MAAA,WAAW,CAAC,OAAO,0CAAE,CAAC;wBAC3B,IAAI,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI;wBAC1B,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;wBAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,OAAO,EAAE,CAAC;qBACX,CAAC,CAAC;oBACH,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,oBAAoB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CACT,wEAAwE,EACxE,GAAG,EACH,wCAAwC,EACxC,oCAAoC,CACrC,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,wCAAwC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBAEzG,mCAAmC;oBACnC,MAAM,wBAAwB,GAAG,CAAC,UAAkB,EAAE,eAAuB,EAAE,WAAmB,EAAE,EAAE;wBACpG,kFAAkF;wBAClF,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;wBACrD,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC;wBAE3C,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;yBACZ,CAAC,CAAC;wBAEH,IAAI,SAAS,GAAG,KAAK,CAAC;wBACtB,IAAI,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC,CAAC,sBAAsB;wBAEjE,mEAAmE;wBACnE,IAAI,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;4BACzC,0DAA0D;4BAC1D,MAAM,UAAU,GAAG,UAAU,CAAC;4BAC9B,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;gCAC9B,SAAS,GAAG,IAAI,CAAC;gCACjB,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;4BACpC,CAAC;iCAAM,CAAC;gCACN,oDAAoD;gCACpD,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;gCACjE,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;oCAC9B,8BAA8B;oCAC9B,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;gCACxC,CAAC;qCAAM,CAAC;oCACN,4BAA4B;oCAC5B,SAAS,GAAG,IAAI,CAAC;oCACjB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;gCACjD,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,0DAA0D;4BAC1D,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,CAAC;4BACjE,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;gCAC9B,aAAa;gCACb,MAAM,GAAG,UAAU,GAAG,eAAe,CAAC;4BACxC,CAAC;iCAAM,CAAC;gCACN,oCAAoC;gCACpC,MAAM,UAAU,GAAG,UAAU,CAAC;gCAC9B,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;oCAC9B,SAAS,GAAG,IAAI,CAAC;oCACjB,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;gCACpC,CAAC;qCAAM,CAAC;oCACN,4BAA4B;oCAC5B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC;gCAC9E,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,iEAAiE;wBACjE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;4BACf,MAAM,GAAG,CAAC,CAAC;wBACb,CAAC;wBACD,IAAI,MAAM,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC;4BACxC,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;wBACtC,CAAC;wBAED,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC;oBAC7B,CAAC,CAAC;oBAEF,MAAM,cAAc,GAAG,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,cAAc,CAAC,CAAC;oBAEpE,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,0CAA0C,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC7E,IAAI,aAAa,IAAI,kBAAkB,EAAE,CAAC;wBACxC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,kBAAkB,CAAC,CAAC;wBAC3E,+EAA+E;wBAC/E,MAAM,YAAY,GAChB,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;wBAEhG,gEAAgE;wBAChE,OAAO,CAAC,GAAG,CAAC,gFAAgF,EAAE,YAAY,CAAC,CAAC;wBAE5G,kEAAkE;wBAClE,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;wBAC/E,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;wBAErG,WAAW,CAAC,OAAO,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;wBAC3E,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;wBACzC,OAAO,CAAC,GAAG,CAAC,mDAAmD,EAAE,gBAAgB,CAAC,CAAC;wBACnF,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;wBACvF,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,sCAAsC,EAAE,GAAG,CAAC,CAAC;wBACzD,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,EACzB,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;QACH,KAAK,CAAC,YAAY;KACnB,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,IACvB;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAmB,EAAE,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3E,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;IACF,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,kCAAkC,EAAE,GAAG,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;oBACvE,OAAO,CAAC,GAAG,CACT,uDAAuD,EACvD,gBAAgB,CAAC,OAAO,CACzB,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,uDAAuD,EACvD,gBAAgB,CAAC,OAAO,CACzB,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,wDAAwD,EACxD,iBAAiB,CAAC,OAAO,CAC1B,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBACnF,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,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,EACzB,CACH;4BACD,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,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,YAAY;gBACZ,KAAK,CAAC,OAAO,IAAI,CACf,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,YAAY,CAAC,CAClB,GAAG,CAAC,qBAAqB,CACzB,KAAK,CAAC,CAAC;oBACL,MAAM,CAAC,UAAU;oBACjB,UAAU;iBACX,CAAC,CACF,SAAS,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,CACjD,SAAS,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAChD,aAAa,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CACpD,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;oBAC5B,eAAe,CAAC,OAAO,GAAG,WAAW,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,SAAS,CAAC,CAAC;oBACtE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;4BAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBACzC,CAAC;wBACD,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;4BACzC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;wBAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC3C,CAAC;gBACH,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;oBAChB,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAClC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC,CAAC,CACF,YAAY,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,CAC1D,eAAe,CAAC,eAAe,CAC/B,aAAa,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,CACzD,SAAS,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAC9C,kBAAkB,CAAC,aAAa,CAChC,UAAU,CAAC,CAAC,IAAI,CAAC,CACjB,SAAS,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAChD,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,qBAAqB,CAAC,aAAa,CACnC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAC7C,eAAe,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAC5D,YAAY,CAAC,EAAE,CACf,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,6BAA6B,CAC7B,OAAO,CAAC,CAAC,GAAG,EAAE;oBACZ,OAAO,CAAC,GAAG,CACT,kCAAkC,EAClC,GAAG,EACH,gBAAgB,EAChB,KAAK,CAAC,YAAY,EAClB,6BAA6B,EAC7B,iBAAiB,CAAC,OAAO,EACzB,wBAAwB,EACxB,YAAY,CAAC,OAAO,EACpB,2BAA2B,EAC3B,eAAe,CAAC,OAAO,CACxB,CAAC;oBACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;wBAC/B,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;wBACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;wBAC3B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;4BACvB,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;wBACrD,CAAC;wBACD,IAAI,YAAY,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;4BACpD,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gCAClC,IAAI,EAAE,eAAe,CAAC,OAAO;6BAC9B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CACF,MAAM,CAAC,CAAC,GAAG,EAAE;oBACX,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,GAAG,EACH,uBAAuB,EACvB,YAAY,CAAC,OAAO,CACrB,CAAC;oBACF,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;oBAClC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,iBAAiB;oBACnD,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;oBACjC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC5B,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;wBACrB,uCACK,SAAS,KACZ,OAAO,EAAE,KAAK,IACd;oBACJ,CAAC,CAAC,CAAC;oBACH,cAAc,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;oBAC1D,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;wBACzB,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;wBAChD,eAAe,CAAC,OAAO,GAAG,EAAE,CAAC;wBAC7B,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC9B,CAAC;oBACD,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,CAAC,CAAC,CACF,iBAAiB,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,CAChE,eAAe,CAAC,CAAC,CAAC,CAAwD,EAAE,EAAE;oBAC5E,OAAO,CAAC,GAAG,CACT,6DAA6D,EAC7D,CAAC,CAAC,WAAW,CAAC,IAAI,CACnB,CAAC;oBACF,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC,CAAC,EACF,CACH,CACF,CACH;YAAA,EAAE,IAAI,CACR;UAAA,EAAE,SAAS,CAAC,CACb,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG;QACL,SAAS;QACT,UAAU;QACV,cAAc;QACd,eAAe;QACf,WAAW;QACX,WAAW;QACX,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,2BAA2B;QAC3B,aAAa;QACb,kBAAkB;QAClB,oCAAoC;QACpC,UAAU;QACV,cAAc;QACd,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACrB,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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-auto-positioned-popup",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
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",
@@ -14,6 +14,8 @@ import React, {
14
14
  import {
15
15
  Dimensions,
16
16
  Keyboard,
17
+ Platform,
18
+ StatusBar,
17
19
  Text,
18
20
  TextInput as RNTextInput,
19
21
  TouchableOpacity,
@@ -271,6 +273,7 @@ const AutoPositionedPopupList: React.FC<AutoPositionedPopupListProps> = memo(
271
273
  keyboardShouldPersistTaps={'always'}
272
274
  fetchData={_fetchData}
273
275
  renderItem={renderItem ? ({item, index}) => renderItem({item: item as SelectedItem, index}) : ({item, index}) => _renderItem({item: item as SelectedItem, index})}
276
+ showListEmptyComponent={false}
274
277
  />
275
278
  </View>
276
279
  );
@@ -509,12 +512,28 @@ const AutoPositionedPopup = memo(
509
512
  refAutoPositionedPopup.current?.measureInWindow((x: number, y: number, width: number, height: number) => {
510
513
  console.log('AutoPositionedPopup measureInWindow x=', x, ' y=', y, ' width=', width, ' height=', height);
511
514
 
512
- // INTELLIGENT POSITION CALCULATION
515
+ // INTELLIGENT POSITION CALCULATION - MODIFIED VERSION WITH STATUS BAR SAFETY
513
516
  const calculateOptimalPosition = (componentY: number, componentHeight: number, popupHeight: number) => {
517
+ console.log('🔥🔥🔥 NEW CALCULATE OPTIMAL POSITION FUNCTION EXECUTING 🔥🔥🔥');
518
+
514
519
  // Use window height (visible area) instead of screen height (includes status bar)
515
520
  const windowHeight = Dimensions.get('window').height;
516
521
  const visibleAreaCenter = windowHeight / 2;
517
522
 
523
+ // Cross-platform status bar height handling
524
+ const getStatusBarHeight = () => {
525
+ if (Platform.OS === 'android') {
526
+ return StatusBar.currentHeight || 24; // Android default
527
+ } else {
528
+ // iOS status bar heights vary by device
529
+ const {height: screenHeight} = Dimensions.get('screen');
530
+ const {height: windowHeightLocal} = Dimensions.get('window');
531
+ return screenHeight - windowHeightLocal; // Safe area top
532
+ }
533
+ };
534
+ const statusBarHeight = getStatusBarHeight();
535
+ console.log('🔥 Cross-platform StatusBar height:', statusBarHeight, 'Platform:', Platform.OS);
536
+
518
537
  // Calculate component center point as requested
519
538
  const componentCenterY = componentY + componentHeight / 2;
520
539
 
@@ -524,80 +543,186 @@ const AutoPositionedPopup = memo(
524
543
  componentCenterY,
525
544
  componentY,
526
545
  componentHeight,
527
- popupHeight
546
+ popupHeight,
547
+ statusBarHeight
528
548
  });
529
549
 
530
550
  let showAbove = false;
531
- let finalY = componentY + componentHeight; // Default: show below
551
+ let finalY = componentY + componentHeight; // Default fallback: show below
532
552
 
533
- // Primary logic: use component center point vs visible area center
534
- if (componentCenterY > visibleAreaCenter) {
535
- // Component center is in lower half, prefer showing above
536
- const spaceAbove = componentY;
537
- if (spaceAbove >= popupHeight) {
538
- showAbove = true;
539
- finalY = componentY - popupHeight;
540
- } else {
541
- // Not enough space above, check if we can fit below
542
- const spaceBelow = windowHeight - (componentY + componentHeight);
543
- if (spaceBelow >= popupHeight) {
544
- // Show below if there's space
545
- finalY = componentY + componentHeight;
546
- } else {
547
- // Force above with clipping
548
- showAbove = true;
549
- finalY = Math.max(0, componentY - popupHeight);
550
- }
551
- }
553
+ // CORRECTED LOGIC: Calculate actual usable space considering status bar
554
+ const rawSpaceAbove = componentY;
555
+ const spaceBelow = windowHeight - (componentY + componentHeight);
556
+ // Actual usable space above must account for status bar
557
+ const usableSpaceAbove = componentY - statusBarHeight;
558
+
559
+ console.log('🔥 AutoPositionedPopup CORRECTED SPACE CALCULATION (pre-spacing):', {
560
+ rawSpaceAbove,
561
+ usableSpaceAbove,
562
+ spaceBelow,
563
+ popupHeight,
564
+ componentY,
565
+ componentHeight,
566
+ windowHeight,
567
+ statusBarHeight
568
+ });
569
+
570
+ // ULTRA-TIGHT SPACING: Minimal spacing for tight visual connection
571
+ const getOptimalSpacing = (compY: number, compHeight: number, winHeight: number) => {
572
+ const componentCenter = compY + compHeight / 2;
573
+ const screenCenter = winHeight / 2;
574
+ const distanceFromCenter = Math.abs(componentCenter - screenCenter) / screenCenter;
575
+
576
+ // Check if component is in bottom half for ultra-tight spacing
577
+ const isInBottomHalf = componentCenter > screenCenter;
578
+
579
+ // Base spacing: extremely small for bottom components
580
+ const baseSpacing = isInBottomHalf ? 0.5 : 3;
581
+
582
+ // Aggressive spacing reduction for edge positions - ultra tight for bottom half
583
+ const edgeProximityFactor = isInBottomHalf ?
584
+ Math.max(0.15, 1 - distanceFromCenter * 1.2) :
585
+ Math.max(0.4, 1 - distanceFromCenter * 0.7);
586
+
587
+ // Minimal component-relative spacing for bottom components
588
+ const relativeSpacingPercent = isInBottomHalf ? 0.02 : 0.12;
589
+ const relativeSpacing = Math.min(compHeight * relativeSpacingPercent, isInBottomHalf ? 3 : 10);
590
+
591
+ // Strong platform adjustment - much smaller for Android bottom components
592
+ const platformMultiplier = Platform.OS === 'ios' ? 1.0 : (isInBottomHalf ? 0.5 : 0.9);
593
+
594
+ const finalSpacing = Math.max(baseSpacing, relativeSpacing) * edgeProximityFactor * platformMultiplier;
595
+
596
+ console.log('🔥 Advanced spacing calculation:', {
597
+ componentCenter,
598
+ screenCenter,
599
+ distanceFromCenter,
600
+ isInBottomHalf,
601
+ edgeProximityFactor,
602
+ baseSpacing,
603
+ relativeSpacing,
604
+ relativeSpacingPercent,
605
+ platformMultiplier,
606
+ finalSpacing
607
+ });
608
+
609
+ return finalSpacing;
610
+ };
611
+ // const POPUP_SPACING = getOptimalSpacing(componentY, componentHeight, windowHeight);
612
+ // console.log('🔥 Optimal popup spacing calculated:', POPUP_SPACING, 'for componentHeight:', componentHeight, 'at Y:', componentY);
613
+
614
+ // console.log('🔥 AutoPositionedPopup FINAL SPACE CHECK WITH SPACING:', {
615
+ // POPUP_SPACING,
616
+ // 'usableSpaceAbove >= popupHeight + POPUP_SPACING': usableSpaceAbove >= popupHeight + POPUP_SPACING,
617
+ // 'spaceBelow >= popupHeight + POPUP_SPACING': spaceBelow >= popupHeight + POPUP_SPACING,
618
+ // 'usableSpaceAbove needed': popupHeight + POPUP_SPACING,
619
+ // 'spaceBelow needed': popupHeight + POPUP_SPACING
620
+ // });
621
+
622
+ // FORCE ABOVE PRIORITY: If component is in bottom half, always try above first
623
+ const isInBottomHalf = componentCenterY > visibleAreaCenter;
624
+
625
+ // console.log('🔥 Position decision factors:', {
626
+ // isInBottomHalf,
627
+ // componentCenterY,
628
+ // visibleAreaCenter,
629
+ // 'spaceBelow >= needed': spaceBelow >= popupHeight + POPUP_SPACING,
630
+ // 'usableSpaceAbove >= needed': usableSpaceAbove >= popupHeight + POPUP_SPACING
631
+ // });
632
+
633
+ if (isInBottomHalf && usableSpaceAbove >= popupHeight ) {
634
+ // Component in bottom half + enough space above = FORCE ABOVE
635
+ showAbove = true;
636
+ finalY = componentY - popupHeight +componentHeight/2;
637
+ console.log('🔥 AutoPositionedPopup: FORCE ABOVE - bottom half component with enough space, finalY=', finalY);
638
+ } else if (!isInBottomHalf && spaceBelow >= popupHeight ) {
639
+ // Component in top half + enough space below = show below
640
+ showAbove = false;
641
+ finalY = componentY + componentHeight*2;
642
+ console.log('🔥 AutoPositionedPopup: Showing below - top half component with enough space, finalY=', finalY);
643
+ } else if (usableSpaceAbove >= popupHeight ) {
644
+ // Fallback: enough space above
645
+ showAbove = true;
646
+ finalY = componentY - popupHeight ;
647
+ console.log('🔥 AutoPositionedPopup: Showing above - enough space available (fallback), finalY=', finalY);
648
+ } else if (spaceBelow >= popupHeight ) {
649
+ // Fallback: enough space below
650
+ showAbove = false;
651
+ finalY = componentY + componentHeight ;
652
+ console.log('🔥 AutoPositionedPopup: Showing below - enough space available (fallback), finalY=', finalY);
552
653
  } else {
553
- // Component center is in upper half, prefer showing below
554
- const spaceBelow = windowHeight - (componentY + componentHeight);
555
- if (spaceBelow >= popupHeight) {
556
- // Show below
557
- finalY = componentY + componentHeight;
654
+ // Emergency fallback: choose larger space
655
+ if (usableSpaceAbove >= spaceBelow) {
656
+ showAbove = true;
657
+ finalY = Math.max(statusBarHeight, componentY - popupHeight );
658
+ console.log('🔥 AutoPositionedPopup: Emergency above - larger space, finalY=', finalY);
558
659
  } else {
559
- // Not enough space below, try above
560
- const spaceAbove = componentY;
561
- if (spaceAbove >= popupHeight) {
562
- showAbove = true;
563
- finalY = componentY - popupHeight;
564
- } else {
565
- // Force below with clipping
566
- finalY = Math.min(windowHeight - popupHeight, componentY + componentHeight);
567
- }
660
+ showAbove = false;
661
+ finalY = componentY + componentHeight ;
662
+ console.log('🔥 AutoPositionedPopup: Emergency below - larger space, finalY=', finalY);
568
663
  }
569
664
  }
570
665
 
571
- // Final boundary check to ensure popup stays within visible area
572
- if (finalY < 0) {
573
- finalY = 0;
666
+ // Enhanced boundary check with detailed logging
667
+ console.log('🔥 Pre-boundary check:', {
668
+ originalFinalY: finalY,
669
+ showAbove,
670
+ statusBarHeight,
671
+ windowHeight,
672
+ popupHeight,
673
+ 'finalY < statusBarHeight': finalY < statusBarHeight,
674
+ 'finalY + popupHeight > windowHeight': finalY + popupHeight > windowHeight
675
+ });
676
+
677
+ if (showAbove && finalY < statusBarHeight) {
678
+ const oldFinalY = finalY;
679
+ finalY = statusBarHeight;
680
+ console.log('🔥 BOUNDARY FIX: Above display adjusted for status bar:', oldFinalY, '->', finalY);
574
681
  }
575
- if (finalY + popupHeight > windowHeight) {
682
+
683
+ if (!showAbove && finalY + popupHeight > windowHeight) {
684
+ const oldFinalY = finalY;
576
685
  finalY = windowHeight - popupHeight;
686
+ console.log('🔥 BOUNDARY FIX: Below display adjusted to fit window:', oldFinalY, '->', finalY);
687
+ }
688
+
689
+ // CRITICAL CHECK: Detect if boundary check is changing display direction
690
+ if (showAbove && finalY + popupHeight > componentY ) {
691
+ console.log('🚨 WARNING: Above positioning may overlap with component!');
692
+ }
693
+
694
+ if (!showAbove && finalY < componentY + componentHeight ) {
695
+ console.log('🚨 WARNING: Below positioning may overlap with component!');
577
696
  }
578
697
 
698
+ console.log('🔥 Post-boundary check final result:', {
699
+ finalY,
700
+ showAbove,
701
+ 'popupTop': finalY,
702
+ 'popupBottom': finalY + popupHeight,
703
+ 'componentTop': componentY,
704
+ 'componentBottom': componentY + componentHeight
705
+ });
706
+
579
707
  return {finalY, showAbove};
580
708
  };
581
709
 
582
- const positionResult = calculateOptimalPosition(y, height, listLayout.height);
583
- console.log('AutoPositionedPopup position result:', positionResult);
710
+ // Calculate position ONCE based on actual popup height
711
+ const actualPopupHeight = CustomPopView && CustomPopViewStyle && typeof CustomPopViewStyle.height === 'number'
712
+ ? CustomPopViewStyle.height
713
+ : listLayout.height;
714
+
715
+ console.log('🔥 Using actualPopupHeight for calculation:', actualPopupHeight, 'CustomPopView:', !!CustomPopView);
716
+
717
+ const positionResult = calculateOptimalPosition(y, height, actualPopupHeight);
718
+ console.log('AutoPositionedPopup FINAL position result:', positionResult);
584
719
 
585
720
  ref_listPos.current = {x: x, y: positionResult.finalY, width: width};
586
721
  console.log('AutoPositionedPopup ref_listPos.current=', ref_listPos.current);
722
+
587
723
  if (CustomPopView && CustomPopViewStyle) {
588
724
  console.log('AutoPositionedPopup CustomPopViewStyle=', CustomPopViewStyle);
589
- // Ensure CustomPopViewStyle.height is a number before using it in calculations
590
- const customHeight =
591
- typeof CustomPopViewStyle.height === 'number' ? CustomPopViewStyle.height : listLayout.height;
592
-
593
- // Apply same intelligent positioning strategy for CustomPopView
594
- console.log('AutoPositionedPopup CustomPopView using intelligent positioning, customHeight=', customHeight);
595
-
596
- // Use the same intelligent positioning function for CustomPopView
597
- const customPositionResult = calculateOptimalPosition(y, height, customHeight);
598
- console.log('AutoPositionedPopup CustomPopView position result:', customPositionResult, 'tag=', tag);
599
-
600
- ref_listPos.current = {x: x, y: customPositionResult.finalY, width: width};
725
+ // Position already calculated correctly above, no need to recalculate
601
726
  const PopViewComponent = CustomPopView();
602
727
  console.log('AutoPositionedPopup addRootView PopViewComponent=', PopViewComponent);
603
728
  console.log('AutoPositionedPopup addRootView state.selectedItem=', state.selectedItem);