@wavemaker-ai/app-rn-runtime 12.0.1-rc.338 → 12.0.2-rc.344

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/components/advanced/carousel/carousel.component.js +1 -1
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  4. package/components/basic/icon/svg-url-icon.component.js +26 -1
  5. package/components/basic/icon/svg-url-icon.component.js.map +1 -1
  6. package/components/basic/label/label.component.js +11 -1
  7. package/components/basic/label/label.component.js.map +1 -1
  8. package/components/basic/label/label.props.js +1 -0
  9. package/components/basic/label/label.props.js.map +1 -1
  10. package/components/chart/area-chart/area-chart.component.js +1 -1
  11. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  12. package/components/chart/bar-chart/bar-chart.component.js +1 -1
  13. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  14. package/components/chart/bubble-chart/bubble-chart.component.js +1 -1
  15. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  16. package/components/chart/line-chart/line-chart.component.js +1 -1
  17. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  18. package/components/chart/pie-chart/pie-chart.component.js +1 -1
  19. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  20. package/components/chart/stack-chart/stack-chart.component.js +1 -1
  21. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  22. package/components/container/accordion/accordionpane/accordionpane.component.js +2 -2
  23. package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  24. package/components/container/container.component.js +1 -1
  25. package/components/container/container.component.js.map +1 -1
  26. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +7 -3
  27. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  28. package/components/container/panel/panel.component.js +1 -1
  29. package/components/container/panel/panel.component.js.map +1 -1
  30. package/components/container/tabs/tabpane/tabpane.component.js +1 -1
  31. package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  32. package/components/container/wizard/wizardstep/wizardstep.component.js +1 -1
  33. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  34. package/components/data/form/form-field/form-field.component.js +20 -3
  35. package/components/data/form/form-field/form-field.component.js.map +1 -1
  36. package/components/data/form/form-field/form-field.props.js +1 -0
  37. package/components/data/form/form-field/form-field.props.js.map +1 -1
  38. package/components/data/form/form.component.js +7 -2
  39. package/components/data/form/form.component.js.map +1 -1
  40. package/components/data/form/form.props.js +1 -0
  41. package/components/data/form/form.props.js.map +1 -1
  42. package/components/data/list/list.component.js +2 -2
  43. package/components/data/list/list.component.js.map +1 -1
  44. package/components/input/baseinput/baseinput.component.js +2 -0
  45. package/components/input/baseinput/baseinput.component.js.map +1 -1
  46. package/components/input/basenumber/basenumber.props.js +1 -0
  47. package/components/input/basenumber/basenumber.props.js.map +1 -1
  48. package/components/input/calendar/calendar.component.js +1 -1
  49. package/components/input/calendar/calendar.component.js.map +1 -1
  50. package/components/input/checkboxset/checkboxset.component.js +1 -1
  51. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  52. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +6 -1
  53. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js.map +1 -1
  54. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js +6 -1
  55. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js.map +1 -1
  56. package/components/input/radioset/radioset.component.js +2 -2
  57. package/components/input/radioset/radioset.component.js.map +1 -1
  58. package/components/input/text/text.component.js +1 -0
  59. package/components/input/text/text.component.js.map +1 -1
  60. package/components/page/left-panel/left-panel.component.js +1 -1
  61. package/components/page/left-panel/left-panel.component.js.map +1 -1
  62. package/components-prism/input/slider/slider.styles.js +1 -1
  63. package/components-prism/input/slider/slider.styles.js.map +1 -1
  64. package/core/AppConfig.js.map +1 -1
  65. package/core/base.component.js +23 -0
  66. package/core/base.component.js.map +1 -1
  67. package/core/components/textinput.component.js +2 -1
  68. package/core/components/textinput.component.js.map +1 -1
  69. package/core/environment.js +25 -0
  70. package/core/environment.js.map +1 -0
  71. package/npm-shrinkwrap.json +92 -93
  72. package/package-lock.json +92 -93
  73. package/package.json +2 -2
  74. package/runtime/App.js +1 -0
  75. package/runtime/App.js.map +1 -1
  76. package/runtime/base-fragment.component.js +28 -5
  77. package/runtime/base-fragment.component.js.map +1 -1
  78. package/runtime/base-page.component.js +2 -1
  79. package/runtime/base-page.component.js.map +1 -1
  80. package/runtime/navigator/stack.navigator.js +6 -0
  81. package/runtime/navigator/stack.navigator.js.map +1 -1
  82. package/styles/theme.js +21 -2
  83. package/styles/theme.js.map +1 -1
@@ -305,7 +305,7 @@ export default class WmCarousel extends BaseComponent {
305
305
  return /*#__PURE__*/React.createElement(View, {
306
306
  style: styles.root,
307
307
  onLayout: event => this.handleLayout(event)
308
- }, this._background, /*#__PURE__*/React.createElement(SwipeAnimation.View, {
308
+ }, this.showSpinner(), this._background, /*#__PURE__*/React.createElement(SwipeAnimation.View, {
309
309
  enableGestures: props.enablegestures && this.noOfSlides > 1,
310
310
  style: {
311
311
  flex: 1
@@ -1 +1 @@
1
- {"version":3,"names":["React","isArray","isUndefined","isObject","Animated","Easing","View","DefaultKeyExtractor","WmIcon","BaseComponent","BaseComponentState","SwipeAnimation","Tappable","WmCarouselProps","DEFAULT_CLASS","WmCarouselState","constructor","args","_defineProperty","WmCarousel","props","Value","bounds","e","_this$slidesLayout","_this$slidesLayout$ac","activeTabIndex","state","activeIndex","lower","slidesLayout","filter","l","i","reduce","s","width","center","upper","computePhase","value","_this$slidesLayout$ac2","w","Math","abs","onLower","onSlideChange","onUpper","noOfSlides","stopatlast","_this$animationView","currentSlideIndex","currentPosition","animationView","setPosition","_this$animationView2","index","prevIndex","updateState","invokeEventCallback","animatePagination","item","type","renderSlide","data","extractChildrenData","children","dataset","length","_this$animationView3","_this$animationView4","goToUpper","_this$animationView5","goToLower","Array","Object","keys","cleanup","push","stopPlay","addSlideLayout","nativeEvent","layout","forceUpdate","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","autoPlay","initialized","animation","animationinterval","intervalId","setInterval","next","clearInterval","setTimeout","_this$animationView6","stopAnimation","startAnimation","onPropertyChange","name","$new","$old","_this$keyExtractor","clear","min","_this$styles$dotStyle","_this$styles$dotStyle2","_this$styles$dotStyle3","maxNoOfDots","maxnoofdots","margin","styles","dotStyle","marginLeft","marginRight","size","multiplier","isRTL","options","useNativeDriver","duration","easing","out","linear","shouldAnimate","newTranslateX","timing","wrapperPosition","toValue","start","dotPosition","max","renderPagination","_this$styles$dotStyle4","_this$styles$dotStyle5","dotMargin","wrapperWidth","minIndex","maxIndex","dotSkeleton","root","createElement","style","justifyContent","alignItems","dotsWrapperStyle","flexDirection","transform","translateX","dotsContainerStyle","map","isActive","scale","animatedScale","ease","_extends","key","getTestPropsForAction","activeDotStyle","renderSkeleton","skeleton","renderItem","componentDidMount","renderWidget","_data","_this$styles$slide","hasNavs","controls","hasDots","slideScale","undefined","slideTranslateX","slide","_this$styles$slide2","_this$styles$slide3","find","o","onLayout","event","handleLayout","_background","enableGestures","enablegestures","flex","direction","threshold","ref","r","handlers","animationHandlers","slideMinWidth","_this$animationView7","_this$animationView8","animationPhase","interpolate","inputRange","outputRange","bind","testID","height","firstSlide","lastSlide","activeSlide","onTap","_this$animationView9","position","rippleColor","disableTouchEffect","disabletoucheffect","btnPanel","id","getTestId","iconclass","prevBtn","prev","accessibilitylabel","accessibilityrole","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isArray, isUndefined, isObject } from 'lodash-es';\nimport { Animated, Easing, View, LayoutChangeEvent, LayoutRectangle } from 'react-native';\nimport { DefaultKeyExtractor } from '@wavemaker-ai/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker-ai/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\nimport { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmCarouselState extends BaseComponentState<WmCarouselProps> {\n activeIndex = 1;\n}\n\nexport default class WmCarousel extends BaseComponent<WmCarouselProps, WmCarouselState, WmCarouselStyles> {\n\n noOfSlides: number = 0;\n private slidesLayout: LayoutRectangle[] = [];\n private keyExtractor = new DefaultKeyExtractor();\n stopPlay: Function = null as any;\n private dotPosition = new Animated.Value(0);\n private wrapperPosition = new Animated.Value(0);\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.activeIndex - 1;\n let lower = 0;\n if (activeTabIndex > 0) {\n lower = this.slidesLayout\n .filter((l , i) => i < activeTabIndex - 1)\n .reduce((s, l) => s + l.width, 0);\n }\n let center = lower + (this.slidesLayout[activeTabIndex - 1]?.width || 0);\n let upper = center + (this.slidesLayout[activeTabIndex]?.width || 0);\n return {\n lower: -1 * lower,\n center: -1 * center,\n upper: -1 * upper\n };\n },\n computePhase: (value) => {\n const activeTabIndex = this.state.activeIndex - 1;\n const w = this.slidesLayout[activeTabIndex]?.width || 0;\n return w && Math.abs(value / w);\n },\n onLower: (e) => {\n this.onSlideChange(this.state.activeIndex - 1);\n },\n onUpper: (e) => {\n if(this.noOfSlides < this.state.activeIndex + 1){\n if (this.state.props.stopatlast) {\n const currentSlideIndex = this.state.activeIndex - 1;\n const currentPosition = this.slidesLayout\n .filter((l, i) => i < currentSlideIndex)\n .reduce((s, l) => s + l.width, 0);\n this.animationView?.setPosition(-1 * currentPosition);\n return;\n } else {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }\n } else {\n this.onSlideChange(this.state.activeIndex + 1);\n }\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmCarouselProps) {\n super(props, DEFAULT_CLASS, new WmCarouselProps(), new WmCarouselState());\n this.cleanup.push(() => {\n this.stopPlay && this.stopPlay();\n })\n }\n\n addSlideLayout(index: number, nativeEvent: LayoutChangeEvent) {\n this.slidesLayout[index] = nativeEvent.nativeEvent.layout;\n if (index === this.state.activeIndex) {\n this.forceUpdate();\n }\n }\n\n private generateItemKey(item: any, index: number, props: WmCarouselProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n autoPlay() {\n if(!this.initialized){\n return;\n }\n const props = this.state.props;\n this.stopPlay && this.stopPlay();\n if (props.animation === 'auto' && props.animationinterval) {\n const intervalId = setInterval(() => {\n if (props.stopatlast && this.state.activeIndex >= this.noOfSlides) {\n return;\n }\n this.next();\n }, props.animationinterval * 1000);\n this.stopPlay = () => clearInterval(intervalId);\n } else {\n setTimeout(() => {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }, 1000);\n }\n }\n\n stopAnimation(){\n this.stopPlay();\n }\n startAnimation() {\n this.autoPlay();\n }\n\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'dataset': {\n this.keyExtractor?.clear();\n this.updateState({\n activeIndex: Math.min(this.state.activeIndex, $new?.length || 1)\n } as WmCarouselState);\n break;\n }\n case 'animation':\n case 'animationinterval' : {\n this.autoPlay();\n }\n }\n }\n\n animatePagination(index: number) {\n const prevIndex = this.state.activeIndex;\n const props = this.state.props;\n const maxNoOfDots = this.state.props.maxnoofdots;\n const margin = ((this.styles.dotStyle?.marginLeft as number)|| 0) +\n ((this.styles.dotStyle?.marginRight as number)|| 0)\n const width = (this.styles.dotStyle?.width as number)|| 2;\n const size = margin + width;\n const multiplier = this.isRTL ? -1 : 1;\n const options = {\n useNativeDriver: true,\n duration: 100,\n easing: Easing.out(Easing.linear),\n };\n let data = props.type === 'dynamic' ? props.dataset : props.children;\n const shouldAnimate = !(maxNoOfDots >= data?.length) && index > 3 && index <= data?.length - 2;\n if (shouldAnimate) {\n const newTranslateX = multiplier * -(index - 3) * (width + margin);\n Animated.timing(this.wrapperPosition, {\n toValue: newTranslateX,\n ...options,\n }).start();\n }\n if (index == 1 && prevIndex == data?.length) {\n Animated.timing(this.wrapperPosition, {\n toValue: 0,\n ...options,\n }).start();\n }\n if (prevIndex < index || prevIndex > index) {\n Animated.timing(this.dotPosition, {\n toValue: multiplier * size * Math.max(index - 1, 0),\n ...options,\n }).start();\n }\n }\n\n onSlideChange = (index: number) => {\n const prevIndex = this.state.activeIndex;\n this.updateState({\n activeIndex: index\n } as WmCarouselState,\n () => this.invokeEventCallback('onChange', [this, index, prevIndex]));\n this.animatePagination(index);\n }\n\n renderItem = (item: any, index: number) => {\n const props = this.state.props;\n if (props.type === 'dynamic') {\n return props.renderSlide ? props.renderSlide(item, index, this) : null;\n }\n const data= this.extractChildrenData(props.children)\n return data[index];\n\n }\n\n next = () => {\n const props = this.state.props;\n const data = props.type === 'dynamic' ? props.dataset : props.children;\n if (this.state.activeIndex >= data?.length || 0) {\n if (props.stopatlast) {\n return;\n } else {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }\n } else {\n this.animationView?.goToUpper();\n }\n }\n\n prev = () => {\n this.animationView?.goToLower();\n }\n\n renderPagination(data: any) {\n const maxNoOfDots = data.length > 5 ? this.state.props.maxnoofdots : data.length;\n const activeIndex = this.state.activeIndex - 1;\n const dotMargin = ((this.styles.dotStyle?.marginLeft as number)|| 0) +\n ((this.styles.dotStyle?.marginRight as number)|| 0);\n const wrapperWidth = (this.styles.dotStyle.width as any * maxNoOfDots) + (dotMargin * maxNoOfDots);\n let minIndex = Math.max(this.state.activeIndex - maxNoOfDots + 1, 0);\n let maxIndex = Math.min(minIndex + maxNoOfDots - 1, data.length);\n if (maxIndex === data.length) {\n minIndex = maxIndex - maxNoOfDots;\n }\n const dotStyle = this._showSkeleton ? {\n ...this.styles.dotStyle,\n ...this.styles.dotSkeleton.root\n } : this.styles.dotStyle\n return (<View style={{ width: '100%', justifyContent: 'center', alignItems: 'center' }}>\n <View style={[this.styles.dotsWrapperStyle, { width: wrapperWidth }]}>\n <Animated.View\n style={[{\n flexDirection: this.isRTL ? 'row-reverse' : 'row',\n transform: [{ translateX: this.wrapperPosition }],\n }, this.styles.dotsContainerStyle]}\n >\n {data.map((item: any, index: number) => {\n const isActive = index === activeIndex;\n let scale = 1;\n if (activeIndex <= 2) {\n scale = index <= 2 ? 1 : 1 - 0.1 * (index - 2);\n } else if (activeIndex >= data.length - 3) {\n scale = index >= data.length - 3 ? 1 : 1 - 0.1 * ((data.length - 3) - index);\n } else {\n scale = index === activeIndex ? 1 : (Math.abs(index - activeIndex) === 1 ? 0.9 : 0.8);\n }\n const animatedScale = new Animated.Value(scale);\n Animated.timing(animatedScale, {\n toValue: scale,\n duration: 100,\n easing: Easing.out(Easing.ease),\n useNativeDriver: true,\n }).start();\n return (\n <Animated.View\n key={'dots_' + this.generateItemKey(item, index, this.state.props)}\n {...this.getTestPropsForAction('indicator' + index)}\n style={[dotStyle,\n isActive && this.styles.activeDotStyle,\n {\n transform: [{scale: animatedScale}]\n },\n ]}\n />\n );\n })}\n </Animated.View>\n </View>\n </View>);\n }\n\n public renderSkeleton(props: WmCarouselProps): React.ReactNode | null {\n return <View style={[this.styles.root, {...this.styles.skeleton.root}]}>\n {this.renderItem({}, 0)}\n {this.renderPagination([{}, {}, {}])}\n </View>\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.autoPlay();\n }\n //Added below function to handle the case if the props.children has one object https://wavemaker.atlassian.net/browse/WMS-25986\n extractChildrenData = (data: any) => {\n if(Array.isArray(data)){\n return data;\n }\n if(data && isObject(data) && Object.keys(data).length > 0){\n return [data]\n }\n return [];\n }\n\n renderWidget(props: WmCarouselProps) {\n const hasNavs = props.controls === 'both' || props.controls ==='navs';\n const hasDots = props.controls === 'both' || props.controls ==='indicators';\n let styles = this.styles;\n let data = props.type === 'dynamic' ? props.dataset : props.children;\n data = this.extractChildrenData(data);\n this.noOfSlides = data?.length || 0;\n let slideScale = undefined as any;\n let slideTranslateX = undefined as any;\n if (isArray(this.styles.slide?.transform)) {\n slideScale = (this.styles.slide?.transform?.find(o => !isUndefined((o as any).scale)) as any)?.scale;\n slideTranslateX = (this.styles.slide?.transform?.find(o => !isUndefined((o as any).translateX)) as any)?.translateX;\n }\n // TODO: loop prop on Carousel is not working Refer: https://github.com/meliorence/react-native-snap-carousel/issues/608\n return (\n <View\n style={styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n <SwipeAnimation.View\n enableGestures={props.enablegestures && this.noOfSlides > 1}\n style={{\n flex: 1\n }}\n direction='horizontal'\n threshold={this.state.props.threshold}\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n slideMinWidth={this.styles.slide.width}\n slidesLayout={this.slidesLayout}\n activeIndex={this.state.activeIndex}\n >\n {data.map((item: any, index: number) => {\n const isActive = index === this.state.activeIndex - 1;\n let scale = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [slideScale, slideScale, 1, slideScale, slideScale]\n });\n let translateX = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [-56, -56, 0, 56, 56]\n });\n return (\n <Animated.View key={this.generateItemKey(item, index, props)}\n onLayout={this.addSlideLayout.bind(this, index)}\n testID={`carousel_item_${index}`}\n style={[\n {height: props.type === 'dynamic' ? undefined : '100%'},\n this.styles.slide,\n index === 0 ? this.styles.firstSlide : null,\n index === data.length - 1 ? this.styles.lastSlide: null,\n isActive ? this.styles.activeSlide: null,\n translateX && scale ? {\n transform: [\n {\n translateX: !isUndefined(slideTranslateX) ? slideTranslateX : translateX\n }, {\n scale: scale\n }\n ]\n } : null]}>\n <Tappable onTap={() => {\n this.onSlideChange(index + 1);\n const position = this.slidesLayout\n .filter((l , i) => i < index)\n .reduce((s, l) => s + l.width, 0);\n this.animationView?.setPosition(-1 * position);\n }} rippleColor={this.styles.root.rippleColor} styles={{height: \"100%\"}}\n disableTouchEffect={this.state.props.disabletoucheffect}>\n {this.renderItem(item, index)}\n </Tappable>\n </Animated.View>\n );\n })}\n </SwipeAnimation.View>\n {hasNavs ? (\n <View style={styles.btnPanel}>\n <WmIcon\n id={this.getTestId('prev_icon')}\n iconclass=\"wi wi-chevron-left fa-2x\"\n styles={styles.prevBtn}\n onTap={this.prev}\n accessibilitylabel='back'\n accessibilityrole='button'/>\n <WmIcon\n id={this.getTestId('next_icon')}\n iconclass=\"wi wi-chevron-right fa-2x\"\n styles={styles.nextBtn}\n onTap={this.next}\n accessibilitylabel='next'\n accessibilityrole='button'/>\n </View>): null}\n {hasDots && data ? this.renderPagination(data) : null}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isArray","isUndefined","isObject","Animated","Easing","View","DefaultKeyExtractor","WmIcon","BaseComponent","BaseComponentState","SwipeAnimation","Tappable","WmCarouselProps","DEFAULT_CLASS","WmCarouselState","constructor","args","_defineProperty","WmCarousel","props","Value","bounds","e","_this$slidesLayout","_this$slidesLayout$ac","activeTabIndex","state","activeIndex","lower","slidesLayout","filter","l","i","reduce","s","width","center","upper","computePhase","value","_this$slidesLayout$ac2","w","Math","abs","onLower","onSlideChange","onUpper","noOfSlides","stopatlast","_this$animationView","currentSlideIndex","currentPosition","animationView","setPosition","_this$animationView2","index","prevIndex","updateState","invokeEventCallback","animatePagination","item","type","renderSlide","data","extractChildrenData","children","dataset","length","_this$animationView3","_this$animationView4","goToUpper","_this$animationView5","goToLower","Array","Object","keys","cleanup","push","stopPlay","addSlideLayout","nativeEvent","layout","forceUpdate","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","autoPlay","initialized","animation","animationinterval","intervalId","setInterval","next","clearInterval","setTimeout","_this$animationView6","stopAnimation","startAnimation","onPropertyChange","name","$new","$old","_this$keyExtractor","clear","min","_this$styles$dotStyle","_this$styles$dotStyle2","_this$styles$dotStyle3","maxNoOfDots","maxnoofdots","margin","styles","dotStyle","marginLeft","marginRight","size","multiplier","isRTL","options","useNativeDriver","duration","easing","out","linear","shouldAnimate","newTranslateX","timing","wrapperPosition","toValue","start","dotPosition","max","renderPagination","_this$styles$dotStyle4","_this$styles$dotStyle5","dotMargin","wrapperWidth","minIndex","maxIndex","dotSkeleton","root","createElement","style","justifyContent","alignItems","dotsWrapperStyle","flexDirection","transform","translateX","dotsContainerStyle","map","isActive","scale","animatedScale","ease","_extends","key","getTestPropsForAction","activeDotStyle","renderSkeleton","skeleton","renderItem","componentDidMount","renderWidget","_data","_this$styles$slide","hasNavs","controls","hasDots","slideScale","undefined","slideTranslateX","slide","_this$styles$slide2","_this$styles$slide3","find","o","onLayout","event","handleLayout","showSpinner","_background","enableGestures","enablegestures","flex","direction","threshold","ref","r","handlers","animationHandlers","slideMinWidth","_this$animationView7","_this$animationView8","animationPhase","interpolate","inputRange","outputRange","bind","testID","height","firstSlide","lastSlide","activeSlide","onTap","_this$animationView9","position","rippleColor","disableTouchEffect","disabletoucheffect","btnPanel","id","getTestId","iconclass","prevBtn","prev","accessibilitylabel","accessibilityrole","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isArray, isUndefined, isObject } from 'lodash-es';\nimport { Animated, Easing, View, LayoutChangeEvent, LayoutRectangle } from 'react-native';\nimport { DefaultKeyExtractor } from '@wavemaker-ai/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker-ai/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\nimport { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmCarouselState extends BaseComponentState<WmCarouselProps> {\n activeIndex = 1;\n}\n\nexport default class WmCarousel extends BaseComponent<WmCarouselProps, WmCarouselState, WmCarouselStyles> {\n\n noOfSlides: number = 0;\n private slidesLayout: LayoutRectangle[] = [];\n private keyExtractor = new DefaultKeyExtractor();\n stopPlay: Function = null as any;\n private dotPosition = new Animated.Value(0);\n private wrapperPosition = new Animated.Value(0);\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.activeIndex - 1;\n let lower = 0;\n if (activeTabIndex > 0) {\n lower = this.slidesLayout\n .filter((l , i) => i < activeTabIndex - 1)\n .reduce((s, l) => s + l.width, 0);\n }\n let center = lower + (this.slidesLayout[activeTabIndex - 1]?.width || 0);\n let upper = center + (this.slidesLayout[activeTabIndex]?.width || 0);\n return {\n lower: -1 * lower,\n center: -1 * center,\n upper: -1 * upper\n };\n },\n computePhase: (value) => {\n const activeTabIndex = this.state.activeIndex - 1;\n const w = this.slidesLayout[activeTabIndex]?.width || 0;\n return w && Math.abs(value / w);\n },\n onLower: (e) => {\n this.onSlideChange(this.state.activeIndex - 1);\n },\n onUpper: (e) => {\n if(this.noOfSlides < this.state.activeIndex + 1){\n if (this.state.props.stopatlast) {\n const currentSlideIndex = this.state.activeIndex - 1;\n const currentPosition = this.slidesLayout\n .filter((l, i) => i < currentSlideIndex)\n .reduce((s, l) => s + l.width, 0);\n this.animationView?.setPosition(-1 * currentPosition);\n return;\n } else {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }\n } else {\n this.onSlideChange(this.state.activeIndex + 1);\n }\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmCarouselProps) {\n super(props, DEFAULT_CLASS, new WmCarouselProps(), new WmCarouselState());\n this.cleanup.push(() => {\n this.stopPlay && this.stopPlay();\n })\n }\n\n addSlideLayout(index: number, nativeEvent: LayoutChangeEvent) {\n this.slidesLayout[index] = nativeEvent.nativeEvent.layout;\n if (index === this.state.activeIndex) {\n this.forceUpdate();\n }\n }\n\n private generateItemKey(item: any, index: number, props: WmCarouselProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n autoPlay() {\n if(!this.initialized){\n return;\n }\n const props = this.state.props;\n this.stopPlay && this.stopPlay();\n if (props.animation === 'auto' && props.animationinterval) {\n const intervalId = setInterval(() => {\n if (props.stopatlast && this.state.activeIndex >= this.noOfSlides) {\n return;\n }\n this.next();\n }, props.animationinterval * 1000);\n this.stopPlay = () => clearInterval(intervalId);\n } else {\n setTimeout(() => {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }, 1000);\n }\n }\n\n stopAnimation(){\n this.stopPlay();\n }\n startAnimation() {\n this.autoPlay();\n }\n\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'dataset': {\n this.keyExtractor?.clear();\n this.updateState({\n activeIndex: Math.min(this.state.activeIndex, $new?.length || 1)\n } as WmCarouselState);\n break;\n }\n case 'animation':\n case 'animationinterval' : {\n this.autoPlay();\n }\n }\n }\n\n animatePagination(index: number) {\n const prevIndex = this.state.activeIndex;\n const props = this.state.props;\n const maxNoOfDots = this.state.props.maxnoofdots;\n const margin = ((this.styles.dotStyle?.marginLeft as number)|| 0) +\n ((this.styles.dotStyle?.marginRight as number)|| 0)\n const width = (this.styles.dotStyle?.width as number)|| 2;\n const size = margin + width;\n const multiplier = this.isRTL ? -1 : 1;\n const options = {\n useNativeDriver: true,\n duration: 100,\n easing: Easing.out(Easing.linear),\n };\n let data = props.type === 'dynamic' ? props.dataset : props.children;\n const shouldAnimate = !(maxNoOfDots >= data?.length) && index > 3 && index <= data?.length - 2;\n if (shouldAnimate) {\n const newTranslateX = multiplier * -(index - 3) * (width + margin);\n Animated.timing(this.wrapperPosition, {\n toValue: newTranslateX,\n ...options,\n }).start();\n }\n if (index == 1 && prevIndex == data?.length) {\n Animated.timing(this.wrapperPosition, {\n toValue: 0,\n ...options,\n }).start();\n }\n if (prevIndex < index || prevIndex > index) {\n Animated.timing(this.dotPosition, {\n toValue: multiplier * size * Math.max(index - 1, 0),\n ...options,\n }).start();\n }\n }\n\n onSlideChange = (index: number) => {\n const prevIndex = this.state.activeIndex;\n this.updateState({\n activeIndex: index\n } as WmCarouselState,\n () => this.invokeEventCallback('onChange', [this, index, prevIndex]));\n this.animatePagination(index);\n }\n\n renderItem = (item: any, index: number) => {\n const props = this.state.props;\n if (props.type === 'dynamic') {\n return props.renderSlide ? props.renderSlide(item, index, this) : null;\n }\n const data= this.extractChildrenData(props.children)\n return data[index];\n\n }\n\n next = () => {\n const props = this.state.props;\n const data = props.type === 'dynamic' ? props.dataset : props.children;\n if (this.state.activeIndex >= data?.length || 0) {\n if (props.stopatlast) {\n return;\n } else {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }\n } else {\n this.animationView?.goToUpper();\n }\n }\n\n prev = () => {\n this.animationView?.goToLower();\n }\n\n renderPagination(data: any) {\n const maxNoOfDots = data.length > 5 ? this.state.props.maxnoofdots : data.length;\n const activeIndex = this.state.activeIndex - 1;\n const dotMargin = ((this.styles.dotStyle?.marginLeft as number)|| 0) +\n ((this.styles.dotStyle?.marginRight as number)|| 0);\n const wrapperWidth = (this.styles.dotStyle.width as any * maxNoOfDots) + (dotMargin * maxNoOfDots);\n let minIndex = Math.max(this.state.activeIndex - maxNoOfDots + 1, 0);\n let maxIndex = Math.min(minIndex + maxNoOfDots - 1, data.length);\n if (maxIndex === data.length) {\n minIndex = maxIndex - maxNoOfDots;\n }\n const dotStyle = this._showSkeleton ? {\n ...this.styles.dotStyle,\n ...this.styles.dotSkeleton.root\n } : this.styles.dotStyle\n return (<View style={{ width: '100%', justifyContent: 'center', alignItems: 'center' }}>\n <View style={[this.styles.dotsWrapperStyle, { width: wrapperWidth }]}>\n <Animated.View\n style={[{\n flexDirection: this.isRTL ? 'row-reverse' : 'row',\n transform: [{ translateX: this.wrapperPosition }],\n }, this.styles.dotsContainerStyle]}\n >\n {data.map((item: any, index: number) => {\n const isActive = index === activeIndex;\n let scale = 1;\n if (activeIndex <= 2) {\n scale = index <= 2 ? 1 : 1 - 0.1 * (index - 2);\n } else if (activeIndex >= data.length - 3) {\n scale = index >= data.length - 3 ? 1 : 1 - 0.1 * ((data.length - 3) - index);\n } else {\n scale = index === activeIndex ? 1 : (Math.abs(index - activeIndex) === 1 ? 0.9 : 0.8);\n }\n const animatedScale = new Animated.Value(scale);\n Animated.timing(animatedScale, {\n toValue: scale,\n duration: 100,\n easing: Easing.out(Easing.ease),\n useNativeDriver: true,\n }).start();\n return (\n <Animated.View\n key={'dots_' + this.generateItemKey(item, index, this.state.props)}\n {...this.getTestPropsForAction('indicator' + index)}\n style={[dotStyle,\n isActive && this.styles.activeDotStyle,\n {\n transform: [{scale: animatedScale}]\n },\n ]}\n />\n );\n })}\n </Animated.View>\n </View>\n </View>);\n }\n\n public renderSkeleton(props: WmCarouselProps): React.ReactNode | null {\n return <View style={[this.styles.root, {...this.styles.skeleton.root}]}>\n {this.renderItem({}, 0)}\n {this.renderPagination([{}, {}, {}])}\n </View>\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.autoPlay();\n }\n //Added below function to handle the case if the props.children has one object https://wavemaker.atlassian.net/browse/WMS-25986\n extractChildrenData = (data: any) => {\n if(Array.isArray(data)){\n return data;\n }\n if(data && isObject(data) && Object.keys(data).length > 0){\n return [data]\n }\n return [];\n }\n\n renderWidget(props: WmCarouselProps) {\n const hasNavs = props.controls === 'both' || props.controls ==='navs';\n const hasDots = props.controls === 'both' || props.controls ==='indicators';\n let styles = this.styles;\n let data = props.type === 'dynamic' ? props.dataset : props.children;\n data = this.extractChildrenData(data);\n this.noOfSlides = data?.length || 0;\n let slideScale = undefined as any;\n let slideTranslateX = undefined as any;\n if (isArray(this.styles.slide?.transform)) {\n slideScale = (this.styles.slide?.transform?.find(o => !isUndefined((o as any).scale)) as any)?.scale;\n slideTranslateX = (this.styles.slide?.transform?.find(o => !isUndefined((o as any).translateX)) as any)?.translateX;\n }\n // TODO: loop prop on Carousel is not working Refer: https://github.com/meliorence/react-native-snap-carousel/issues/608\n return (\n <View\n style={styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this.showSpinner()}\n {this._background}\n <SwipeAnimation.View\n enableGestures={props.enablegestures && this.noOfSlides > 1}\n style={{\n flex: 1\n }}\n direction='horizontal'\n threshold={this.state.props.threshold}\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n slideMinWidth={this.styles.slide.width}\n slidesLayout={this.slidesLayout}\n activeIndex={this.state.activeIndex}\n >\n {data.map((item: any, index: number) => {\n const isActive = index === this.state.activeIndex - 1;\n let scale = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [slideScale, slideScale, 1, slideScale, slideScale]\n });\n let translateX = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [-56, -56, 0, 56, 56]\n });\n return (\n <Animated.View key={this.generateItemKey(item, index, props)}\n onLayout={this.addSlideLayout.bind(this, index)}\n testID={`carousel_item_${index}`}\n style={[\n {height: props.type === 'dynamic' ? undefined : '100%'},\n this.styles.slide,\n index === 0 ? this.styles.firstSlide : null,\n index === data.length - 1 ? this.styles.lastSlide: null,\n isActive ? this.styles.activeSlide: null,\n translateX && scale ? {\n transform: [\n {\n translateX: !isUndefined(slideTranslateX) ? slideTranslateX : translateX\n }, {\n scale: scale\n }\n ]\n } : null]}>\n <Tappable onTap={() => {\n this.onSlideChange(index + 1);\n const position = this.slidesLayout\n .filter((l , i) => i < index)\n .reduce((s, l) => s + l.width, 0);\n this.animationView?.setPosition(-1 * position);\n }} rippleColor={this.styles.root.rippleColor} styles={{height: \"100%\"}}\n disableTouchEffect={this.state.props.disabletoucheffect}>\n {this.renderItem(item, index)}\n </Tappable>\n </Animated.View>\n );\n })}\n </SwipeAnimation.View>\n {hasNavs ? (\n <View style={styles.btnPanel}>\n <WmIcon\n id={this.getTestId('prev_icon')}\n iconclass=\"wi wi-chevron-left fa-2x\"\n styles={styles.prevBtn}\n onTap={this.prev}\n accessibilitylabel='back'\n accessibilityrole='button'/>\n <WmIcon\n id={this.getTestId('next_icon')}\n iconclass=\"wi wi-chevron-right fa-2x\"\n styles={styles.nextBtn}\n onTap={this.next}\n accessibilitylabel='next'\n accessibilityrole='button'/>\n </View>): null}\n {hasDots && data ? this.renderPagination(data) : null}\n </View>);\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,WAAW;AAC1D,SAASC,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAA4C,cAAc;AACzF,SAASC,mBAAmB,QAAQ,iDAAiD;AACrF,OAAOC,MAAM,MAAM,mEAAmE;AACtF,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,kDAAkD;AACpG,OAAO,KAAKC,cAAc,MAAM,gEAAgE;AAChG,SAASC,QAAQ,QAAQ,sDAAsD;AAE/E,OAAOC,eAAe,MAAM,kBAAkB;AAC9C,SAASC,aAAa,QAA0B,mBAAmB;AAGnE,OAAO,MAAMC,eAAe,SAASL,kBAAkB,CAAkB;EAAAM,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,sBACzD,CAAC;EAAA;AACjB;AAEA,eAAe,MAAMC,UAAU,SAASV,aAAa,CAAqD;EAqDxGO,WAAWA,CAACI,MAAsB,EAAE;IAClC,KAAK,CAACA,MAAK,EAAEN,aAAa,EAAE,IAAID,eAAe,CAAC,CAAC,EAAE,IAAIE,eAAe,CAAC,CAAC,CAAC;IAACG,eAAA,qBApDvD,CAAC;IAAAA,eAAA,uBACoB,EAAE;IAAAA,eAAA,uBACrB,IAAIX,mBAAmB,CAAC,CAAC;IAAAW,eAAA,mBAC3B,IAAI;IAAAA,eAAA,sBACH,IAAId,QAAQ,CAACiB,KAAK,CAAC,CAAC,CAAC;IAAAH,eAAA,0BACjB,IAAId,QAAQ,CAACiB,KAAK,CAAC,CAAC,CAAC;IAAAH,eAAA,wBACK,IAAI;IAAAA,eAAA,4BAC5B;MAC1BI,MAAM,EAAGC,CAAC,IAAK;QAAA,IAAAC,kBAAA,EAAAC,qBAAA;QACb,MAAMC,cAAc,GAAG,IAAI,CAACC,KAAK,CAACC,WAAW,GAAG,CAAC;QACjD,IAAIC,KAAK,GAAG,CAAC;QACb,IAAIH,cAAc,GAAG,CAAC,EAAE;UACtBG,KAAK,GAAG,IAAI,CAACC,YAAY,CACtBC,MAAM,CAAC,CAACC,CAAC,EAAGC,CAAC,KAAKA,CAAC,GAAGP,cAAc,GAAG,CAAC,CAAC,CACzCQ,MAAM,CAAC,CAACC,CAAC,EAAEH,CAAC,KAAKG,CAAC,GAAGH,CAAC,CAACI,KAAK,EAAE,CAAC,CAAC;QACrC;QACA,IAAIC,MAAM,GAAGR,KAAK,IAAI,EAAAL,kBAAA,OAAI,CAACM,YAAY,CAACJ,cAAc,GAAG,CAAC,CAAC,cAAAF,kBAAA,uBAArCA,kBAAA,CAAuCY,KAAK,KAAI,CAAC,CAAC;QACxE,IAAIE,KAAK,GAAGD,MAAM,IAAI,EAAAZ,qBAAA,OAAI,CAACK,YAAY,CAACJ,cAAc,CAAC,cAAAD,qBAAA,uBAAjCA,qBAAA,CAAmCW,KAAK,KAAI,CAAC,CAAC;QACpE,OAAO;UACLP,KAAK,EAAE,CAAC,CAAC,GAAGA,KAAK;UACjBQ,MAAM,EAAE,CAAC,CAAC,GAAGA,MAAM;UACnBC,KAAK,EAAG,CAAC,CAAC,GAAGA;QACf,CAAC;MACH,CAAC;MACDC,YAAY,EAAGC,KAAK,IAAK;QAAA,IAAAC,sBAAA;QACvB,MAAMf,cAAc,GAAG,IAAI,CAACC,KAAK,CAACC,WAAW,GAAG,CAAC;QACjD,MAAMc,CAAC,GAAG,EAAAD,sBAAA,OAAI,CAACX,YAAY,CAACJ,cAAc,CAAC,cAAAe,sBAAA,uBAAjCA,sBAAA,CAAmCL,KAAK,KAAI,CAAC;QACvD,OAAOM,CAAC,IAAIC,IAAI,CAACC,GAAG,CAACJ,KAAK,GAAGE,CAAC,CAAC;MACjC,CAAC;MACDG,OAAO,EAAGtB,CAAC,IAAK;QACd,IAAI,CAACuB,aAAa,CAAC,IAAI,CAACnB,KAAK,CAACC,WAAW,GAAG,CAAC,CAAC;MAChD,CAAC;MACDmB,OAAO,EAAGxB,CAAC,IAAK;QACd,IAAG,IAAI,CAACyB,UAAU,GAAG,IAAI,CAACrB,KAAK,CAACC,WAAW,GAAG,CAAC,EAAC;UAC9C,IAAI,IAAI,CAACD,KAAK,CAACP,KAAK,CAAC6B,UAAU,EAAE;YAAA,IAAAC,mBAAA;YAC/B,MAAMC,iBAAiB,GAAG,IAAI,CAACxB,KAAK,CAACC,WAAW,GAAG,CAAC;YACpD,MAAMwB,eAAe,GAAG,IAAI,CAACtB,YAAY,CACtCC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,GAAGkB,iBAAiB,CAAC,CACvCjB,MAAM,CAAC,CAACC,CAAC,EAAEH,CAAC,KAAKG,CAAC,GAAGH,CAAC,CAACI,KAAK,EAAE,CAAC,CAAC;YACnC,CAAAc,mBAAA,OAAI,CAACG,aAAa,cAAAH,mBAAA,eAAlBA,mBAAA,CAAoBI,WAAW,CAAC,CAAC,CAAC,GAAGF,eAAe,CAAC;YACrD;UACF,CAAC,MAAM;YAAA,IAAAG,oBAAA;YACL,IAAI,CAACT,aAAa,CAAC,CAAC,CAAC;YACrB,CAAAS,oBAAA,OAAI,CAACF,aAAa,cAAAE,oBAAA,eAAlBA,oBAAA,CAAoBD,WAAW,CAAC,CAAC,CAAC;UACpC;QACF,CAAC,MAAM;UACL,IAAI,CAACR,aAAa,CAAC,IAAI,CAACnB,KAAK,CAACC,WAAW,GAAG,CAAC,CAAC;QAChD;MACF;IACF,CAAC;IAAAV,eAAA,wBA2GgBsC,KAAa,IAAK;MACjC,MAAMC,SAAS,GAAG,IAAI,CAAC9B,KAAK,CAACC,WAAW;MACxC,IAAI,CAAC8B,WAAW,CAAC;QACf9B,WAAW,EAAE4B;MACf,CAAC,EACD,MAAM,IAAI,CAACG,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAEH,KAAK,EAAEC,SAAS,CAAC,CAAC,CAAC;MACrE,IAAI,CAACG,iBAAiB,CAACJ,KAAK,CAAC;IAC/B,CAAC;IAAAtC,eAAA,qBAEY,CAAC2C,IAAS,EAAEL,KAAa,KAAK;MACzC,MAAMpC,KAAK,GAAG,IAAI,CAACO,KAAK,CAACP,KAAK;MAC9B,IAAIA,KAAK,CAAC0C,IAAI,KAAK,SAAS,EAAE;QAC5B,OAAO1C,KAAK,CAAC2C,WAAW,GAAG3C,KAAK,CAAC2C,WAAW,CAACF,IAAI,EAAEL,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI;MACxE;MACE,MAAMQ,IAAI,GAAE,IAAI,CAACC,mBAAmB,CAAC7C,KAAK,CAAC8C,QAAQ,CAAC;MACpD,OAAOF,IAAI,CAACR,KAAK,CAAC;IAEtB,CAAC;IAAAtC,eAAA,eAEM,MAAM;MACX,MAAME,KAAK,GAAG,IAAI,CAACO,KAAK,CAACP,KAAK;MAC9B,MAAM4C,IAAI,GAAG5C,KAAK,CAAC0C,IAAI,KAAK,SAAS,GAAG1C,KAAK,CAAC+C,OAAO,GAAG/C,KAAK,CAAC8C,QAAQ;MACtE,IAAI,IAAI,CAACvC,KAAK,CAACC,WAAW,KAAIoC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,MAAM,KAAI,CAAC,EAAE;QAC/C,IAAIhD,KAAK,CAAC6B,UAAU,EAAE;UACpB;QACF,CAAC,MAAM;UAAA,IAAAoB,oBAAA;UACL,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC;UACrB,CAAAuB,oBAAA,OAAI,CAAChB,aAAa,cAAAgB,oBAAA,eAAlBA,oBAAA,CAAoBf,WAAW,CAAC,CAAC,CAAC;QACpC;MACF,CAAC,MAAM;QAAA,IAAAgB,oBAAA;QACL,CAAAA,oBAAA,OAAI,CAACjB,aAAa,cAAAiB,oBAAA,eAAlBA,oBAAA,CAAoBC,SAAS,CAAC,CAAC;MACjC;IACF,CAAC;IAAArD,eAAA,eAEM,MAAM;MAAA,IAAAsD,oBAAA;MACX,CAAAA,oBAAA,OAAI,CAACnB,aAAa,cAAAmB,oBAAA,eAAlBA,oBAAA,CAAoBC,SAAS,CAAC,CAAC;IACjC,CAAC;IAuEC;IAAAvD,eAAA,8BACqB8C,IAAS,IAAK;MACnC,IAAGU,KAAK,CAACzE,OAAO,CAAC+D,IAAI,CAAC,EAAC;QACrB,OAAOA,IAAI;MACb;MACA,IAAGA,IAAI,IAAI7D,QAAQ,CAAC6D,IAAI,CAAC,IAAIW,MAAM,CAACC,IAAI,CAACZ,IAAI,CAAC,CAACI,MAAM,GAAG,CAAC,EAAC;QACxD,OAAO,CAACJ,IAAI,CAAC;MACf;MACA,OAAO,EAAE;IACX,CAAC;IA3NC,IAAI,CAACa,OAAO,CAACC,IAAI,CAAC,MAAM;MACtB,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;EACJ;EAEAC,cAAcA,CAACxB,KAAa,EAAEyB,WAA8B,EAAE;IAC5D,IAAI,CAACnD,YAAY,CAAC0B,KAAK,CAAC,GAAGyB,WAAW,CAACA,WAAW,CAACC,MAAM;IACzD,IAAI1B,KAAK,KAAK,IAAI,CAAC7B,KAAK,CAACC,WAAW,EAAE;MACpC,IAAI,CAACuD,WAAW,CAAC,CAAC;IACpB;EACF;EAEQC,eAAeA,CAACvB,IAAS,EAAEL,KAAa,EAAEpC,KAAsB,EAAE;IACxE,IAAIA,KAAK,CAACiE,OAAO,IAAIxB,IAAI,IAAI,CAAC,IAAI,CAACyB,aAAa,EAAE;MAChD,OAAOlE,KAAK,CAACiE,OAAO,CAACxB,IAAI,EAAEL,KAAK,CAAC;IACnC;IACA,OAAO,YAAY,GAAI,IAAI,CAAC+B,YAAY,CAACC,MAAM,CAAC3B,IAAI,EAAE,IAAI,CAAC;EAC7D;EAEA4B,QAAQA,CAAA,EAAG;IACT,IAAG,CAAC,IAAI,CAACC,WAAW,EAAC;MACnB;IACF;IACA,MAAMtE,KAAK,GAAG,IAAI,CAACO,KAAK,CAACP,KAAK;IAC9B,IAAI,CAAC2D,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC,CAAC;IAChC,IAAI3D,KAAK,CAACuE,SAAS,KAAK,MAAM,IAAIvE,KAAK,CAACwE,iBAAiB,EAAE;MACzD,MAAMC,UAAU,GAAGC,WAAW,CAAC,MAAM;QACnC,IAAI1E,KAAK,CAAC6B,UAAU,IAAI,IAAI,CAACtB,KAAK,CAACC,WAAW,IAAI,IAAI,CAACoB,UAAU,EAAE;UACjE;QACF;QACA,IAAI,CAAC+C,IAAI,CAAC,CAAC;MACb,CAAC,EAAE3E,KAAK,CAACwE,iBAAiB,GAAG,IAAI,CAAC;MAClC,IAAI,CAACb,QAAQ,GAAG,MAAMiB,aAAa,CAACH,UAAU,CAAC;IACjD,CAAC,MAAM;MACLI,UAAU,CAAC,MAAM;QAAA,IAAAC,oBAAA;QACf,IAAI,CAACpD,aAAa,CAAC,CAAC,CAAC;QACrB,CAAAoD,oBAAA,OAAI,CAAC7C,aAAa,cAAA6C,oBAAA,eAAlBA,oBAAA,CAAoB5C,WAAW,CAAC,CAAC,CAAC;MACpC,CAAC,EAAE,IAAI,CAAC;IACV;EACF;EAEA6C,aAAaA,CAAA,EAAE;IACb,IAAI,CAACpB,QAAQ,CAAC,CAAC;EACjB;EACAqB,cAAcA,CAAA,EAAG;IACb,IAAI,CAACX,QAAQ,CAAC,CAAC;EACnB;EAGAY,gBAAgBA,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAQ;IACvD,KAAK,CAACH,gBAAgB,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IACxC,QAAQF,IAAI;MACV,KAAK,SAAS;QAAE;UAAA,IAAAG,kBAAA;UACd,CAAAA,kBAAA,OAAI,CAAClB,YAAY,cAAAkB,kBAAA,eAAjBA,kBAAA,CAAmBC,KAAK,CAAC,CAAC;UAC1B,IAAI,CAAChD,WAAW,CAAC;YACf9B,WAAW,EAAEe,IAAI,CAACgE,GAAG,CAAC,IAAI,CAAChF,KAAK,CAACC,WAAW,EAAE,CAAA2E,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEnC,MAAM,KAAI,CAAC;UACjE,CAAoB,CAAC;UACrB;QACF;MACA,KAAK,WAAW;MAChB,KAAK,mBAAmB;QAAG;UACzB,IAAI,CAACqB,QAAQ,CAAC,CAAC;QACjB;IACF;EACJ;EAEA7B,iBAAiBA,CAACJ,KAAa,EAAE;IAAA,IAAAoD,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC/B,MAAMrD,SAAS,GAAG,IAAI,CAAC9B,KAAK,CAACC,WAAW;IACxC,MAAMR,KAAK,GAAG,IAAI,CAACO,KAAK,CAACP,KAAK;IAC9B,MAAM2F,WAAW,GAAG,IAAI,CAACpF,KAAK,CAACP,KAAK,CAAC4F,WAAW;IAChD,MAAMC,MAAM,GAAG,CAAC,EAAAL,qBAAA,GAAC,IAAI,CAACM,MAAM,CAACC,QAAQ,cAAAP,qBAAA,uBAApBA,qBAAA,CAAsBQ,UAAU,KAAc,CAAC,KAC/D,EAAAP,sBAAA,GAAC,IAAI,CAACK,MAAM,CAACC,QAAQ,cAAAN,sBAAA,uBAApBA,sBAAA,CAAsBQ,WAAW,KAAc,CAAC,CAAC;IACnD,MAAMjF,KAAK,GAAG,EAAA0E,sBAAA,GAAC,IAAI,CAACI,MAAM,CAACC,QAAQ,cAAAL,sBAAA,uBAApBA,sBAAA,CAAsB1E,KAAK,KAAc,CAAC;IACzD,MAAMkF,IAAI,GAAGL,MAAM,GAAG7E,KAAK;IAC3B,MAAMmF,UAAU,GAAG,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IACtC,MAAMC,OAAO,GAAG;MACdC,eAAe,EAAE,IAAI;MACrBC,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAEvH,MAAM,CAACwH,GAAG,CAACxH,MAAM,CAACyH,MAAM;IAClC,CAAC;IACD,IAAI9D,IAAI,GAAG5C,KAAK,CAAC0C,IAAI,KAAK,SAAS,GAAG1C,KAAK,CAAC+C,OAAO,GAAG/C,KAAK,CAAC8C,QAAQ;IACpE,MAAM6D,aAAa,GAAG,EAAEhB,WAAW,KAAI/C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,MAAM,EAAC,IAAIZ,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAI,CAAAQ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,MAAM,IAAG,CAAC;IAC9F,IAAI2D,aAAa,EAAE;MACjB,MAAMC,aAAa,GAAGT,UAAU,GAAG,EAAE/D,KAAK,GAAG,CAAC,CAAC,IAAIpB,KAAK,GAAG6E,MAAM,CAAC;MAClE7G,QAAQ,CAAC6H,MAAM,CAAC,IAAI,CAACC,eAAe,EAAE;QACpCC,OAAO,EAAEH,aAAa;QACtB,GAAGP;MACL,CAAC,CAAC,CAACW,KAAK,CAAC,CAAC;IACZ;IACA,IAAI5E,KAAK,IAAI,CAAC,IAAIC,SAAS,KAAIO,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,MAAM,GAAE;MAC3ChE,QAAQ,CAAC6H,MAAM,CAAC,IAAI,CAACC,eAAe,EAAE;QACpCC,OAAO,EAAE,CAAC;QACV,GAAGV;MACL,CAAC,CAAC,CAACW,KAAK,CAAC,CAAC;IACZ;IACA,IAAI3E,SAAS,GAAGD,KAAK,IAAIC,SAAS,GAAGD,KAAK,EAAE;MAC1CpD,QAAQ,CAAC6H,MAAM,CAAC,IAAI,CAACI,WAAW,EAAE;QAChCF,OAAO,EAAEZ,UAAU,GAAGD,IAAI,GAAG3E,IAAI,CAAC2F,GAAG,CAAC9E,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,GAAGiE;MACL,CAAC,CAAC,CAACW,KAAK,CAAC,CAAC;IACZ;EACF;EAwCAG,gBAAgBA,CAACvE,IAAS,EAAE;IAAA,IAAAwE,sBAAA,EAAAC,sBAAA;IAC1B,MAAM1B,WAAW,GAAG/C,IAAI,CAACI,MAAM,GAAG,CAAC,GAAG,IAAI,CAACzC,KAAK,CAACP,KAAK,CAAC4F,WAAW,GAAGhD,IAAI,CAACI,MAAM;IAChF,MAAMxC,WAAW,GAAG,IAAI,CAACD,KAAK,CAACC,WAAW,GAAG,CAAC;IAC9C,MAAM8G,SAAS,GAAG,CAAC,EAAAF,sBAAA,GAAC,IAAI,CAACtB,MAAM,CAACC,QAAQ,cAAAqB,sBAAA,uBAApBA,sBAAA,CAAsBpB,UAAU,KAAc,CAAC,KAClE,EAAAqB,sBAAA,GAAC,IAAI,CAACvB,MAAM,CAACC,QAAQ,cAAAsB,sBAAA,uBAApBA,sBAAA,CAAsBpB,WAAW,KAAc,CAAC,CAAC;IACnD,MAAMsB,YAAY,GAAI,IAAI,CAACzB,MAAM,CAACC,QAAQ,CAAC/E,KAAK,GAAU2E,WAAW,GAAK2B,SAAS,GAAG3B,WAAY;IAClG,IAAI6B,QAAQ,GAAGjG,IAAI,CAAC2F,GAAG,CAAC,IAAI,CAAC3G,KAAK,CAACC,WAAW,GAAGmF,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI8B,QAAQ,GAAGlG,IAAI,CAACgE,GAAG,CAACiC,QAAQ,GAAG7B,WAAW,GAAG,CAAC,EAAE/C,IAAI,CAACI,MAAM,CAAC;IAChE,IAAIyE,QAAQ,KAAK7E,IAAI,CAACI,MAAM,EAAE;MAC5BwE,QAAQ,GAAGC,QAAQ,GAAG9B,WAAW;IACnC;IACA,MAAMI,QAAQ,GAAG,IAAI,CAAC7B,aAAa,GAAG;MACpC,GAAG,IAAI,CAAC4B,MAAM,CAACC,QAAQ;MACvB,GAAG,IAAI,CAACD,MAAM,CAAC4B,WAAW,CAACC;IAC7B,CAAC,GAAG,IAAI,CAAC7B,MAAM,CAACC,QAAQ;IACxB,oBAAQnH,KAAA,CAAAgJ,aAAA,CAAC1I,IAAI;MAAC2I,KAAK,EAAE;QAAE7G,KAAK,EAAE,MAAM;QAAE8G,cAAc,EAAE,QAAQ;QAAEC,UAAU,EAAE;MAAS;IAAE,gBACnFnJ,KAAA,CAAAgJ,aAAA,CAAC1I,IAAI;MAAC2I,KAAK,EAAE,CAAC,IAAI,CAAC/B,MAAM,CAACkC,gBAAgB,EAAE;QAAEhH,KAAK,EAAEuG;MAAa,CAAC;IAAE,gBACnE3I,KAAA,CAAAgJ,aAAA,CAAC5I,QAAQ,CAACE,IAAI;MACZ2I,KAAK,EAAE,CAAC;QACNI,aAAa,EAAE,IAAI,CAAC7B,KAAK,GAAG,aAAa,GAAG,KAAK;QACjD8B,SAAS,EAAE,CAAC;UAAEC,UAAU,EAAE,IAAI,CAACrB;QAAgB,CAAC;MAClD,CAAC,EAAE,IAAI,CAAChB,MAAM,CAACsC,kBAAkB;IAAE,GAElCxF,IAAI,CAACyF,GAAG,CAAC,CAAC5F,IAAS,EAAEL,KAAa,KAAK;MACtC,MAAMkG,QAAQ,GAAGlG,KAAK,KAAK5B,WAAW;MACtC,IAAI+H,KAAK,GAAG,CAAC;MACb,IAAI/H,WAAW,IAAI,CAAC,EAAE;QACpB+H,KAAK,GAAGnG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAIA,KAAK,GAAG,CAAC,CAAC;MAChD,CAAC,MAAM,IAAI5B,WAAW,IAAIoC,IAAI,CAACI,MAAM,GAAG,CAAC,EAAE;QACvCuF,KAAK,GAAGnG,KAAK,IAAIQ,IAAI,CAACI,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAKJ,IAAI,CAACI,MAAM,GAAG,CAAC,GAAIZ,KAAK,CAAC;MAChF,CAAC,MAAM;QACHmG,KAAK,GAAGnG,KAAK,KAAK5B,WAAW,GAAG,CAAC,GAAIe,IAAI,CAACC,GAAG,CAACY,KAAK,GAAG5B,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAI;MACzF;MACA,MAAMgI,aAAa,GAAG,IAAIxJ,QAAQ,CAACiB,KAAK,CAACsI,KAAK,CAAC;MAC/CvJ,QAAQ,CAAC6H,MAAM,CAAC2B,aAAa,EAAE;QAC7BzB,OAAO,EAAEwB,KAAK;QACdhC,QAAQ,EAAE,GAAG;QACbC,MAAM,EAAEvH,MAAM,CAACwH,GAAG,CAACxH,MAAM,CAACwJ,IAAI,CAAC;QAC/BnC,eAAe,EAAE;MACnB,CAAC,CAAC,CAACU,KAAK,CAAC,CAAC;MACV,oBACEpI,KAAA,CAAAgJ,aAAA,CAAC5I,QAAQ,CAACE,IAAI,EAAAwJ,QAAA;QACZC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC3E,eAAe,CAACvB,IAAI,EAAEL,KAAK,EAAE,IAAI,CAAC7B,KAAK,CAACP,KAAK;MAAE,GAC/D,IAAI,CAAC4I,qBAAqB,CAAC,WAAW,GAAGxG,KAAK,CAAC;QACnDyF,KAAK,EAAE,CAAC9B,QAAQ,EACduC,QAAQ,IAAI,IAAI,CAACxC,MAAM,CAAC+C,cAAc,EACtC;UACEX,SAAS,EAAE,CAAC;YAACK,KAAK,EAAEC;UAAa,CAAC;QACpC,CAAC;MACD,EACH,CAAC;IAEN,CAAC,CACY,CACX,CACF,CAAC;EACX;EAEOM,cAAcA,CAAC9I,KAAsB,EAA0B;IACpE,oBAAOpB,KAAA,CAAAgJ,aAAA,CAAC1I,IAAI;MAAC2I,KAAK,EAAE,CAAC,IAAI,CAAC/B,MAAM,CAAC6B,IAAI,EAAE;QAAC,GAAG,IAAI,CAAC7B,MAAM,CAACiD,QAAQ,CAACpB;MAAI,CAAC;IAAE,GACnE,IAAI,CAACqB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACvB,IAAI,CAAC7B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC/B,CAAC;EACT;EAEA8B,iBAAiBA,CAAA,EAAS;IACxB,KAAK,CAACA,iBAAiB,CAAC,CAAC;IACzB,IAAI,CAAC5E,QAAQ,CAAC,CAAC;EACjB;EAYA6E,YAAYA,CAAClJ,KAAsB,EAAE;IAAA,IAAAmJ,KAAA,EAAAC,kBAAA;IACnC,MAAMC,OAAO,GAAGrJ,KAAK,CAACsJ,QAAQ,KAAK,MAAM,IAAItJ,KAAK,CAACsJ,QAAQ,KAAI,MAAM;IACrE,MAAMC,OAAO,GAAGvJ,KAAK,CAACsJ,QAAQ,KAAK,MAAM,IAAItJ,KAAK,CAACsJ,QAAQ,KAAI,YAAY;IAC3E,IAAIxD,MAAM,GAAG,IAAI,CAACA,MAAM;IACxB,IAAIlD,IAAI,GAAG5C,KAAK,CAAC0C,IAAI,KAAK,SAAS,GAAG1C,KAAK,CAAC+C,OAAO,GAAG/C,KAAK,CAAC8C,QAAQ;IACpEF,IAAI,GAAG,IAAI,CAACC,mBAAmB,CAACD,IAAI,CAAC;IACrC,IAAI,CAAChB,UAAU,GAAG,EAAAuH,KAAA,GAAAvG,IAAI,cAAAuG,KAAA,uBAAJA,KAAA,CAAMnG,MAAM,KAAI,CAAC;IACnC,IAAIwG,UAAU,GAAGC,SAAgB;IACjC,IAAIC,eAAe,GAAGD,SAAgB;IACtC,IAAI5K,OAAO,EAAAuK,kBAAA,GAAC,IAAI,CAACtD,MAAM,CAAC6D,KAAK,cAAAP,kBAAA,uBAAjBA,kBAAA,CAAmBlB,SAAS,CAAC,EAAE;MAAA,IAAA0B,mBAAA,EAAAC,mBAAA;MACzCL,UAAU,IAAAI,mBAAA,GAAI,IAAI,CAAC9D,MAAM,CAAC6D,KAAK,cAAAC,mBAAA,gBAAAA,mBAAA,GAAjBA,mBAAA,CAAmB1B,SAAS,cAAA0B,mBAAA,gBAAAA,mBAAA,GAA5BA,mBAAA,CAA8BE,IAAI,CAACC,CAAC,IAAI,CAACjL,WAAW,CAAEiL,CAAC,CAASxB,KAAK,CAAC,CAAC,cAAAqB,mBAAA,uBAAxEA,mBAAA,CAAkFrB,KAAK;MACpGmB,eAAe,IAAAG,mBAAA,GAAI,IAAI,CAAC/D,MAAM,CAAC6D,KAAK,cAAAE,mBAAA,gBAAAA,mBAAA,GAAjBA,mBAAA,CAAmB3B,SAAS,cAAA2B,mBAAA,gBAAAA,mBAAA,GAA5BA,mBAAA,CAA8BC,IAAI,CAACC,CAAC,IAAI,CAACjL,WAAW,CAAEiL,CAAC,CAAS5B,UAAU,CAAC,CAAC,cAAA0B,mBAAA,uBAA7EA,mBAAA,CAAuF1B,UAAU;IACrH;IACA;IACA,oBACEvJ,KAAA,CAAAgJ,aAAA,CAAC1I,IAAI;MACH2I,KAAK,EAAE/B,MAAM,CAAC6B,IAAK;MACnBqC,QAAQ,EAAGC,KAAK,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK;IAAE,GAE7C,IAAI,CAACE,WAAW,CAAC,CAAC,EAClB,IAAI,CAACC,WAAW,eACjBxL,KAAA,CAAAgJ,aAAA,CAACrI,cAAc,CAACL,IAAI;MAChBmL,cAAc,EAAErK,KAAK,CAACsK,cAAc,IAAI,IAAI,CAAC1I,UAAU,GAAG,CAAE;MAC5DiG,KAAK,EAAE;QACL0C,IAAI,EAAE;MACR,CAAE;MACFC,SAAS,EAAC,YAAY;MACtBC,SAAS,EAAE,IAAI,CAAClK,KAAK,CAACP,KAAK,CAACyK,SAAU;MACtCC,GAAG,EAAGC,CAAC,IAAK;QAAC,IAAI,CAAC1I,aAAa,GAAG0I,CAAC;MAAA,CAAE;MACrCC,QAAQ,EAAI,IAAI,CAACC,iBAAkB;MACnCC,aAAa,EAAE,IAAI,CAAChF,MAAM,CAAC6D,KAAK,CAAC3I,KAAM;MACvCN,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCF,WAAW,EAAE,IAAI,CAACD,KAAK,CAACC;IAAY,GAErCoC,IAAI,CAACyF,GAAG,CAAC,CAAC5F,IAAS,EAAEL,KAAa,KAAK;MAAA,IAAA2I,oBAAA,EAAAC,oBAAA;MACtC,MAAM1C,QAAQ,GAAGlG,KAAK,KAAK,IAAI,CAAC7B,KAAK,CAACC,WAAW,GAAG,CAAC;MACrD,IAAI+H,KAAK,IAAAwC,oBAAA,GAAG,IAAI,CAAC9I,aAAa,cAAA8I,oBAAA,uBAAlBA,oBAAA,CAAoBE,cAAc,CAACC,WAAW,CAAC;QACzDC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE/I,KAAK,GAAG,CAAC,EAAEA,KAAK,EAAEA,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;QACtDgJ,WAAW,EAAE,CAAC5B,UAAU,EAAEA,UAAU,EAAE,CAAC,EAAEA,UAAU,EAAEA,UAAU;MACjE,CAAC,CAAC;MACF,IAAIrB,UAAU,IAAA6C,oBAAA,GAAG,IAAI,CAAC/I,aAAa,cAAA+I,oBAAA,uBAAlBA,oBAAA,CAAoBC,cAAc,CAACC,WAAW,CAAC;QAC9DC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE/I,KAAK,GAAG,CAAC,EAAEA,KAAK,EAAEA,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;QACtDgJ,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;MACnC,CAAC,CAAC;MACF,oBACExM,KAAA,CAAAgJ,aAAA,CAAC5I,QAAQ,CAACE,IAAI;QAACyJ,GAAG,EAAE,IAAI,CAAC3E,eAAe,CAACvB,IAAI,EAAEL,KAAK,EAAEpC,KAAK,CAAE;QAC3DgK,QAAQ,EAAE,IAAI,CAACpG,cAAc,CAACyH,IAAI,CAAC,IAAI,EAAEjJ,KAAK,CAAE;QAChDkJ,MAAM,EAAE,iBAAiBlJ,KAAK,EAAG;QACjCyF,KAAK,EAAE,CACL;UAAC0D,MAAM,EAAEvL,KAAK,CAAC0C,IAAI,KAAK,SAAS,GAAG+G,SAAS,GAAG;QAAM,CAAC,EACvD,IAAI,CAAC3D,MAAM,CAAC6D,KAAK,EACjBvH,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC0D,MAAM,CAAC0F,UAAU,GAAG,IAAI,EAC3CpJ,KAAK,KAAKQ,IAAI,CAACI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC8C,MAAM,CAAC2F,SAAS,GAAE,IAAI,EACvDnD,QAAQ,GAAG,IAAI,CAACxC,MAAM,CAAC4F,WAAW,GAAE,IAAI,EACxCvD,UAAU,IAAII,KAAK,GAAG;UACpBL,SAAS,EAAE,CACT;YACEC,UAAU,EAAE,CAACrJ,WAAW,CAAC4K,eAAe,CAAC,GAAGA,eAAe,GAAGvB;UAChE,CAAC,EAAE;YACDI,KAAK,EAAEA;UACT,CAAC;QAEL,CAAC,GAAG,IAAI;MAAE,gBACZ3J,KAAA,CAAAgJ,aAAA,CAACpI,QAAQ;QAACmM,KAAK,EAAEA,CAAA,KAAM;UAAA,IAAAC,oBAAA;UACrB,IAAI,CAAClK,aAAa,CAACU,KAAK,GAAG,CAAC,CAAC;UAC7B,MAAMyJ,QAAQ,GAAG,IAAI,CAACnL,YAAY,CAC/BC,MAAM,CAAC,CAACC,CAAC,EAAGC,CAAC,KAAKA,CAAC,GAAGuB,KAAK,CAAC,CAC5BtB,MAAM,CAAC,CAACC,CAAC,EAAEH,CAAC,KAAKG,CAAC,GAAGH,CAAC,CAACI,KAAK,EAAE,CAAC,CAAC;UACnC,CAAA4K,oBAAA,OAAI,CAAC3J,aAAa,cAAA2J,oBAAA,eAAlBA,oBAAA,CAAoB1J,WAAW,CAAC,CAAC,CAAC,GAAG2J,QAAQ,CAAC;QAChD,CAAE;QAACC,WAAW,EAAE,IAAI,CAAChG,MAAM,CAAC6B,IAAI,CAACmE,WAAY;QAAChG,MAAM,EAAE;UAACyF,MAAM,EAAE;QAAM,CAAE;QACvEQ,kBAAkB,EAAE,IAAI,CAACxL,KAAK,CAACP,KAAK,CAACgM;MAAmB,GACrD,IAAI,CAAChD,UAAU,CAACvG,IAAI,EAAEL,KAAK,CACpB,CACG,CAAC;IAEpB,CAAC,CACkB,CAAC,EACrBiH,OAAO,gBACNzK,KAAA,CAAAgJ,aAAA,CAAC1I,IAAI;MAAC2I,KAAK,EAAE/B,MAAM,CAACmG;IAAS,gBAC3BrN,KAAA,CAAAgJ,aAAA,CAACxI,MAAM;MACL8M,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,WAAW,CAAE;MAChCC,SAAS,EAAC,0BAA0B;MACpCtG,MAAM,EAAEA,MAAM,CAACuG,OAAQ;MACvBV,KAAK,EAAE,IAAI,CAACW,IAAK;MACjBC,kBAAkB,EAAC,MAAM;MACzBC,iBAAiB,EAAC;IAAQ,CAAC,CAAC,eAC9B5N,KAAA,CAAAgJ,aAAA,CAACxI,MAAM;MACL8M,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,WAAW,CAAE;MAChCC,SAAS,EAAC,2BAA2B;MACrCtG,MAAM,EAAEA,MAAM,CAAC2G,OAAQ;MACvBd,KAAK,EAAE,IAAI,CAAChH,IAAK;MACjB4H,kBAAkB,EAAC,MAAM;MACzBC,iBAAiB,EAAC;IAAQ,CAAC,CACzB,CAAC,GAAG,IAAI,EACbjD,OAAO,IAAI3G,IAAI,GAAG,IAAI,CAACuE,gBAAgB,CAACvE,IAAI,CAAC,GAAG,IAC/C,CAAC;EACX;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","StatusBar","BackHandler","KeyboardAvoidingView","Keyboard","Modal","Pressable","Gesture","GestureDetector","GestureHandlerRootView","ScrollView","Animated","useAnimatedStyle","withTiming","runOnJS","Easing","makeMutable","cancelAnimation","Animatable","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","ModalProvider","SafeAreaInsetsContext","SafeAreaView","OS","RN","require","RNAnimated","__wmPatchedNoNativeDriver","wrap","name","original","value","config","patched","useNativeDriver","_","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","undefined","AnimatedBottomsheetContent","translateY","backdropOpacity","sheetHeight","lastGestureDy","styles","props","children","panHandlers","dragHandlePanHandlers","onBackdropPress","onDragHandlePress","getTestProps","enabledragsettle","scrollRef","containerScrollRef","configurePanGesture","panGesture","useMemo","pan","Pan","simultaneousWithExternalGesture","backdropAnimatedStyle","opacity","containerAnimatedStyle","transform","contentStyle","paddingBottom","createElement","Fragment","onPress","_extends","style","backdrop","BOTTOMSHEET","container","dragHandleContainer","dragIconHandle","gesture","WmBottomsheet","getAnimationDuration","distance","velocity","velocityFactor","Math","max","min","abs","calculatedDuration","calculateSheetHeight","bottomsheetheightratio","effectiveRatio","defaultHeight","maxHeightRatio","minimumHeight","maxHeight","screenHeight","calculatedHeight","defaultTopInset","statusBarHeight","open","state","isBottomsheetVisible","updateState","openSheet","close","closeSheet","animate","contentAnimationId","Date","now","contentAnimatableProps","currentHeight","isExpanded","targetHeight","expandedHeight","callback","invokeEventCallback","lastGestureDyShared","duration","animationDuration","easing","out","ease","finished","localModalsOpened","length","top","sheetModalService","hideModal","disableswipedownclose","autoclose","event","_event$endCoordinates","keyboardHeight","endCoordinates","isIosKeyboardHeightSet","_event$endCoordinates2","iosKeyboardHeight","availableHeight","bufferSpace","topInset","adjustedHeight","modal","keyboardAnimationDuration","gestureState","dy","_this$translateY","currentTranslateY","vy","_this$sheetHeight","setTimeout","_this$state$scrollVie","scrollViewRef","current","scrollTo","x","y","animated","scrollOffset","sheetMinimumHeight","bottomsheetminimumheight","enabled","onUpdate","translationY","velocityY","moveX","moveY","vx","velocityX","containerscrollYoffset","newTranslateY","isDragHandleExpanding","expand","disablescrollonrest","expandBottomSheet","onEnd","handleSwipeGesture","onFinalize","success","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate","offsetY","nativeEvent","contentOffset","isScrolling","handleClose","requestAnimationFrame","key","Consumer","insets","bottom","left","right","bottomInset","absoluteStyle","rootStyle","root","_background","panResponder","dragHandlePanResponder","handleBackdropPress","handleDragHandlePress","bind","containerscrollViewRef","issticky","enablemodalsupport","sheetContentContainer","overflow","ref","contentContainerStyle","sheetScrollContent","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","renderAnimatedSheetChildren","edges","map","o","i","onStartShouldSetResponder","onResponderEnd","isModal","modalOverlay","centered","centeredOverlay","zIndex","elevationIndex","elevation","modalStyle","e","stopPropagation","content","subscribe","forceUpdate","expandedRatio","bottomsheetexpandedheightratio","expandedDefaultHeight","effectiveExpandedRatio","minimumExpandedHeight","showonrender","refresh","showModal","options","exists","find","list","onOpen","idx","findIndex","onClose","splice","componentDidMount","backHandlerSubscription","addEventListener","handleBackPress","keyboardDidShowListener","addListener","onKeyboardShow","keyboardDidHideListener","onKeyboardHide","componentWillUnmount","remove","componentDidUpdate","prevProps","onPropertyChange","$new","$old","closeSheetImmediate","renderSkeleton","theme","skeleton","width","renderWidget","hasButtonNavigation","wrapWithSafeArea","flex","visible","transparent","animationType","onRequestClose","statusBarTranslucent","behavior","keyboardVerticalOffset","renderContent"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, PanResponderGestureState, StatusBar, BackHandler, DimensionValue, KeyboardAvoidingView, Keyboard, EmitterSubscription, Modal, NativeEventSubscription, Pressable, ViewStyle } from 'react-native';\nimport { Gesture, GestureDetector, GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';\nimport Animated, {\n useAnimatedStyle,\n withTiming,\n runOnJS,\n Easing,\n SharedValue,\n makeMutable,\n cancelAnimation\n} from 'react-native-reanimated';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport WmBottomsheetProps from './bottomsheet.props';\nimport { DEFAULT_CLASS, WmBottomsheetStyles } from './bottomsheet.styles';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport { ModalProvider, ModalService, ModalOptions } from '@wavemaker-ai/app-rn-runtime/core/modal.service';\nimport { SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';\n\n\n// Web-only: Runs all bottom sheet animations on the JS thread (sets useNativeDriver to false)\n// Prevents errors on web where native driver animations are not supported\n// Web - Animated api is used from animation\nif (Platform.OS === 'web') {\n try {\n const RN: any = require('react-native');\n const RNAnimated: any = RN && RN.Animated;\n if (RNAnimated && !RNAnimated.__wmPatchedNoNativeDriver) {\n const wrap = (name: string) => {\n const original = RNAnimated[name];\n if (typeof original === 'function') {\n RNAnimated[name] = (value: any, config: any) => {\n const patched = { ...(config || {}), useNativeDriver: false };\n return original(value, patched);\n };\n }\n };\n wrap('timing');\n wrap('spring');\n wrap('decay');\n RNAnimated.__wmPatchedNoNativeDriver = true;\n }\n } catch (_) {\n // noop\n }\n}\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n isBottomsheetVisible = false;\n keyboardHeight = 0;\n localModalsOpened: ModalOptions[] = [];\n lastGestureDy = 0;\n contentAnimationId?: number = 0;\n contentAnimatableProps?: AnimatableProps<ViewStyle> = undefined;\n}\n\n// Animated wrapper component that uses hooks\nconst AnimatedBottomsheetContent = ({\n translateY,\n backdropOpacity,\n sheetHeight,\n lastGestureDy,\n styles,\n props,\n children,\n panHandlers,\n dragHandlePanHandlers,\n onBackdropPress,\n onDragHandlePress,\n getTestProps,\n enabledragsettle,\n scrollRef,\n containerScrollRef,\n configurePanGesture\n\n}: any) => {\n\n\n // Simple RNGH GestureDetector attached to the same view as the PanResponder (panHandlers).\n // No thresholds/validation: logs translationY directly during pan.\n const panGesture = React.useMemo(() => {\n // Create base Pan gesture\n const pan = Gesture.Pan().runOnJS(true);\n\n // Add external gestures for ScrollViews (container widget scrollview)\n if (scrollRef && containerScrollRef) {\n pan.simultaneousWithExternalGesture(\n scrollRef as any,\n containerScrollRef as any\n );\n } else if (scrollRef) {\n pan.simultaneousWithExternalGesture(scrollRef as any);\n } else if (containerScrollRef) {\n pan.simultaneousWithExternalGesture(containerScrollRef as any);\n }\n\n // Apply custom logic from parent BottomSheet class\n if (configurePanGesture) {\n configurePanGesture(pan);\n }\n\n return pan;\n }, [scrollRef, containerScrollRef, configurePanGesture]);\n\n const backdropAnimatedStyle = useAnimatedStyle(() => ({\n opacity: backdropOpacity.value\n }));\n\n const containerAnimatedStyle = useAnimatedStyle(() => ({\n height: sheetHeight.value,\n transform: [{ translateY: translateY.value }]\n }));\n\n const contentStyle = useAnimatedStyle(() => {\n if (enabledragsettle && lastGestureDy.value > 0) {\n return {\n paddingBottom: lastGestureDy.value\n };\n }\n return {};\n });\n\n return (\n <>\n <TouchableWithoutFeedback onPress={onBackdropPress}>\n <Animated.View\n style={[styles.backdrop, backdropAnimatedStyle]}\n {...getTestProps('backdrop')}\n {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}\n />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[styles.container, containerAnimatedStyle]}\n // {...panHandlers}\n >\n <View style={styles.dragHandleContainer} {...dragHandlePanHandlers}>\n <Pressable onPress={onDragHandlePress}>\n <View style={styles.dragIconHandle} {...getTestProps('draghandle')} />\n </Pressable>\n </View>\n <GestureDetector gesture={panGesture}>\n {children(contentStyle)}\n </GestureDetector>\n </Animated.View>\n </>\n );\n};\n\nexport default class WmBottomsheet extends BaseComponent<WmBottomsheetProps, WmBottomsheetState, WmBottomsheetStyles> {\n private calculatedHeight: number;\n private expandedHeight: number;\n private defaultHeight: number = 0.5;\n private expandedDefaultHeight: number = 0.8;\n private minimumHeight: number = 0.01;\n private minimumExpandedHeight: number = 0.5;\n private maxHeight: number = 1.0;\n private animationDuration: number = 400;\n private keyboardAnimationDuration: number = Platform.OS === 'ios' ? 250 : 275;\n private statusBarHeight: number = StatusBar.currentHeight || 0;\n private defaultTopInset: number = 44;\n private maxHeightRatio: number = 0;\n private keyboardDidShowListener!: EmitterSubscription;\n private keyboardDidHideListener!: EmitterSubscription;\n private backHandlerSubscription: NativeEventSubscription | null = null;\n private topInset: number = 0;\n private iosKeyboardHeight: number = 0;\n private isIosKeyboardHeightSet: boolean = false;\n private sheetModalService: ModalService;\n private isDragHandleExpanding: boolean = false;\n //container widget scrollview ref and y offset value\n private containerscrollViewRef: any = null\n private containerscrollYoffset: number = 0\n\n\n // Reanimated shared values - created once and reused\n private translateY!: SharedValue<number>;\n private backdropOpacity!: SharedValue<number>;\n private sheetHeight!: SharedValue<number>;\n private lastGestureDyShared!: SharedValue<number>;\n\n // Helper method to calculate animation duration based on distance and velocity\n private getAnimationDuration(distance: number, velocity: number): number {\n // Base duration on distance, but cap it between 200-500ms\n // Higher velocity = shorter duration for snappier feel\n const velocityFactor = Math.max(0.3, Math.min(1, 1 - Math.abs(velocity) / 2));\n const calculatedDuration = Math.abs(distance) * velocityFactor;\n return Math.min(500, Math.max(200, calculatedDuration));\n }\n\n private calculateSheetHeight(bottomsheetheightratio: number): number {\n // Use default height if ratio not provided, but ensure it's not below minimum\n const effectiveRatio = bottomsheetheightratio || this.defaultHeight;\n this.maxHeightRatio = Math.max(\n this.minimumHeight,\n Math.min(effectiveRatio, this.maxHeight)\n );\n\n const screenHeight = Dimensions.get('screen').height;\n let calculatedHeight = screenHeight * this.maxHeightRatio;\n\n if (Platform.OS === 'ios') {\n // Subtract top inset bar height for ios only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.defaultTopInset;\n }\n }\n else if (Platform.OS === 'android') {\n // Subtract status bar height for Android only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.statusBarHeight;\n }\n }\n return calculatedHeight;\n }\n\n open() {\n if (!this.state.isBottomsheetVisible)\n this.updateState({\n isBottomsheetVisible: true\n } as WmBottomsheetState);\n this.openSheet();\n }\n\n close() {\n if (this.state.isBottomsheetVisible) {\n this.closeSheet();\n }\n }\n\n isSheetExpanded = () => {\n return this.state.isExpanded\n }\n\n expandBottomSheet = () => {\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n const callback = () => {\n this.updateState({\n isExpanded: true,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onExpand', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n if (this.props.enabledragsettle) {\n // Synchronize both animations to complete together\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n } else {\n // Only animate height for non-drag-settle mode\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n }\n\n collapseBottomSheet = () => {\n const callback = () => {\n this.updateState({\n isExpanded: false,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(this.calculatedHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.updateState({\n contentAnimationId: Date.now(),\n contentAnimatableProps: props\n } as WmBottomsheetState);\n }\n\n constructor(props: WmBottomsheetProps) {\n super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());\n this.calculatedHeight = this.calculateSheetHeight(props.bottomsheetheightratio);\n //container srollview ref\n this.subscribe('containerScrollViewReady', (ref: React.RefObject<any>) => {\n if (ref && ref.current && this.containerscrollViewRef !== ref) {\n this.containerscrollViewRef = ref;\n this.forceUpdate();\n }\n });\n //container scrollview y offset value\n this.subscribe('scroll', (e: any) => {\n const offsetY = e.nativeEvent.contentOffset.y;\n this.containerscrollYoffset = offsetY\n });\n // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight\n const expandedRatio = props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;\n const effectiveExpandedRatio = Math.max(\n this.minimumExpandedHeight,\n Math.min(expandedRatio, this.maxHeight)\n );\n\n this.expandedHeight = SCREEN_HEIGHT * effectiveExpandedRatio;\n\n if (Platform.OS === 'android') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.statusBarHeight;\n }\n }\n if (Platform.OS === 'ios') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.defaultTopInset;\n }\n }\n\n // Initialize shared values in constructor using makeMutable (not hooks)\n // makeMutable can be called outside of React components\n this.translateY = makeMutable(SCREEN_HEIGHT);\n this.backdropOpacity = makeMutable(0);\n this.sheetHeight = makeMutable(this.calculatedHeight);\n this.lastGestureDyShared = makeMutable(0);\n\n this.updateState({\n isBottomsheetVisible: this.props.showonrender || false\n } as WmBottomsheetState);\n\n // Initialize values immediately to prevent flicker\n if (this.props.showonrender) {\n this.translateY.value = 0;\n this.backdropOpacity.value = 1;\n }\n\n // Local ModalService for content rendered inside Bottomsheet\n this.sheetModalService = {\n refresh: () => this.forceUpdate(),\n showModal: (options: ModalOptions) => {\n const exists = this.state.localModalsOpened.find(o => o === options);\n if (!exists) {\n // ensure high z-index within sheet\n (options as any).elevationIndex = 9999 + this.state.localModalsOpened.length + 1;\n const list = [...this.state.localModalsOpened, options];\n this.updateState({ localModalsOpened: list } as WmBottomsheetState, () => {\n setTimeout(() => options.onOpen && options.onOpen(), 0);\n });\n }\n },\n hideModal: (options?: ModalOptions) => {\n const list = [...this.state.localModalsOpened];\n const idx = options ? list.findIndex(o => o === options) : (list.length - 1);\n if (idx >= 0) {\n const o = list[idx];\n o && o.onClose && o.onClose();\n list.splice(idx, 1);\n this.updateState({ localModalsOpened: list } as WmBottomsheetState);\n }\n }\n };\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n // Trigger animation after mount if showonrender is true\n if (this.state.isBottomsheetVisible) {\n // Use requestAnimationFrame to ensure animation happens after initial render\n requestAnimationFrame(() => {\n this.openSheet();\n });\n }\n\n if (Platform.OS === 'android') {\n this.backHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);\n }\n this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.onKeyboardShow);\n this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.onKeyboardHide);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this.backHandlerSubscription) {\n this.backHandlerSubscription.remove();\n this.backHandlerSubscription = null;\n }\n if (this.keyboardDidShowListener) {\n this.keyboardDidShowListener.remove();\n }\n if (this.keyboardDidHideListener) {\n this.keyboardDidHideListener.remove();\n }\n }\n\n private handleBackPress = () => {\n // Close top-most local modal first, if any\n if (this.state.localModalsOpened && this.state.localModalsOpened.length > 0) {\n const top = this.state.localModalsOpened[this.state.localModalsOpened.length - 1];\n this.sheetModalService.hideModal(top);\n return true;\n }\n if (this.state.isBottomsheetVisible) {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n return true; // Prevent default back action\n }\n return false;\n };\n\n private onKeyboardShow = (event: any) => {\n let keyboardHeight = event.endCoordinates?.height || 0;\n //only storing ios keyboard height once as first time keyboard open (to avoid scroll flickring issue in ios in text widget)\n if (!this.isIosKeyboardHeightSet) {\n this.iosKeyboardHeight = event.endCoordinates?.height + 40;\n this.isIosKeyboardHeightSet = true;\n }\n // Calculate available space after keyboard\n const availableHeight = SCREEN_HEIGHT - (Platform.OS == 'ios' ? this.iosKeyboardHeight : keyboardHeight);\n // Calculate adjusted sheet height to fit within available space\n // Leave some buffer space for the drag handle and safe area\n const bufferSpace = (Platform.OS === 'ios' ? this.topInset : this.statusBarHeight) + 20;\n const adjustedHeight = availableHeight - bufferSpace;\n\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(adjustedHeight, {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n\n this.updateState({\n keyboardHeight: keyboardHeight,\n } as WmBottomsheetState);\n };\n\n private onKeyboardHide = () => {\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(\n this.state.isExpanded ? this.expandedHeight : this.calculatedHeight,\n {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n }\n );\n }\n\n this.updateState({\n keyboardHeight: 0,\n } as WmBottomsheetState);\n };\n\n componentDidUpdate(prevProps: WmBottomsheetProps) {\n if (prevProps.bottomsheetheightratio !== this.props.bottomsheetheightratio) {\n this.calculatedHeight = this.calculateSheetHeight(this.props.bottomsheetheightratio);\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n\n // Only reset lastGestureDy for traditional behavior, not for drag and settle\n if (!this.props.enabledragsettle) {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n }\n\n if (this.props.enabledragsettle && gestureState.dy > 0) {\n const currentTranslateY = this.translateY?.value || 0;\n\n if (gestureState.vy > 0.5 && !this.props.disableswipedownclose) {\n this.closeSheet();\n return;\n }\n\n if (this.translateY && this.lastGestureDyShared) {\n this.translateY.value = currentTranslateY;\n this.lastGestureDyShared.value = currentTranslateY;\n }\n\n this.updateState({\n isExpanded: false,\n lastGestureDy: currentTranslateY\n } as WmBottomsheetState);\n return;\n }\n\n if (gestureState.dy > 0) {\n if (this.state.isExpanded || this.props.disableswipedownclose) {\n if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {\n //reseting bottom sheet scrollview offset value to fix scrollview automatic scroll issue while collpsing the bottom sheet\n setTimeout(() => {\n if (this.state.scrollViewRef?.current) {\n this.state.scrollViewRef.current.scrollTo({ x: 0, y: 0, animated: false });\n this.updateState({ scrollOffset: 0 } as WmBottomsheetState);\n }\n }, this.animationDuration);\n let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;\n const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;\n const currentHeight = this.sheetHeight?.value || this.expandedHeight;\n const distance = Math.abs(currentHeight - targetHeight);\n const duration = this.getAnimationDuration(distance, gestureState.vy);\n\n const callback = () => {\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n if (this.translateY && this.sheetHeight) {\n this.translateY.value = withTiming(0, {\n duration: duration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(\n targetHeight,\n {\n duration: duration,\n easing: Easing.out(Easing.ease)\n },\n (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n }\n );\n }\n } else if ((gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n }\n } else {\n if (this.props.disableswipedownclose) {\n this.openSheet();\n return;\n }\n if ((gestureState.dy > 100 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n } else {\n this.openSheet();\n }\n }\n }\n }\n\n private configurePanGesture = (pan: any) => {\n pan\n .enabled(true)\n .onUpdate((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded && this.props.disablescrollonrest) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n // ... rest of logic\n })\n .onEnd((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n this.handleSwipeGesture(gestureState as any);\n }\n })\n .onFinalize((event: any, success: boolean) => { // ← Add types\n if (!success) {\n this.openSheet()\n }\n });\n\n return pan;\n };\n // panResponder for bottom sheet scroll view\n panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return true\n }\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n\n },\n\n onMoveShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return Math.abs(gestureState.dy) > 2;\n }\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n\n },\n\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n },\n\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState);\n },\n\n onPanResponderTerminate: () => {\n this.openSheet();\n },\n });\n\n //pan repsoneder for bottom sheet dragable container\n dragHandlePanResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n // Reset the expand flag\n this.isDragHandleExpanding = false;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n } else if (gestureState.dy < -50 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.isDragHandleExpanding = false;\n this.handleSwipeGesture(gestureState);\n },\n });\n\n handleScroll = (event: any): any => {\n if (this.state.keyboardHeight > 0) return null;\n const offsetY = event.nativeEvent.contentOffset.y;\n this.updateState({\n isScrolling: offsetY > 0,\n scrollOffset: offsetY\n } as WmBottomsheetState);\n };\n\n openSheet = () => {\n const callback = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n this.invokeEventCallback('onOpened', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(1, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n private handleClose = () => {\n this.updateState({\n isBottomsheetVisible: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onClose', [null, this]);\n };\n\n closeSheet = () => {\n \n\n const callback = () => {\n // Reset sheet height after close\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n this.updateState({\n isExpanded: false,\n localModalsOpened: [] as ModalOptions[],\n scrollOffset: 0,\n contentAnimationId: 0, \n contentAnimatableProps: undefined \n } as WmBottomsheetState);\n this.containerscrollYoffset = 0\n this.handleClose();\n };\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(SCREEN_HEIGHT, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n closeSheetImmediate = () => {\n if (this.translateY && this.backdropOpacity && this.lastGestureDyShared) {\n this.translateY.value = SCREEN_HEIGHT;\n this.backdropOpacity.value = 0;\n this.lastGestureDyShared.value = 0;\n }\n\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false,\n isBottomsheetVisible: false,\n localModalsOpened: [] as ModalOptions[],\n contentAnimationId: 0,\n contentAnimatableProps: undefined\n } as WmBottomsheetState);\n\n requestAnimationFrame(() => {\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n });\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case \"showonrender\":\n if ($new) {\n this.updateState({\n isBottomsheetVisible: $new || false\n } as WmBottomsheetState);\n if (this.state.isBottomsheetVisible) {\n this.openSheet && this.openSheet();\n }\n } else {\n this.closeSheetImmediate && this.closeSheetImmediate();\n }\n break;\n }\n }\n\n public renderSkeleton(props: WmBottomsheetProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.styles.root.width as DimensionValue,\n height: this.styles.root.height as DimensionValue\n });\n }\n\n // Class methods to prevent recreation on every render\n private handleBackdropPress = () => {\n if (this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n };\n\n private handleDragHandlePress = () => {\n this.invokeEventCallback('onDraghandleiconclick', [null, this]);\n };\n\n private renderAnimatedSheetChildren = (children: React.ReactNode) => {\n if (!this.state.contentAnimatableProps) {\n return children;\n }\n return (\n <Animatable.View\n key={this.state.contentAnimationId}\n {...this.state.contentAnimatableProps}\n >\n {children}\n </Animatable.View>\n );\n };\n\n private renderContent = (props: WmBottomsheetProps) => {\n // Don't render if shared values aren't initialized yet\n if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {\n return null;\n }\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Store topInset for later use (avoid mutation during render)\n const topInset = insets?.top || 0;\n const bottomInset = insets?.bottom || 0;\n // Update the instance variable outside of render cycle\n if (this.topInset !== topInset) {\n requestAnimationFrame(() => {\n this.topInset = topInset;\n });\n }\n const absoluteStyle = {\n top: 0,\n left: 0,\n right: 0,\n }\n const rootStyle = props.modal\n ? [this.styles.root, absoluteStyle]\n : this.styles.root;\n return (\n <View style={rootStyle} {...this.getTestProps('keyboardview')}>\n {this._background}\n\n <AnimatedBottomsheetContent\n translateY={this.translateY}\n backdropOpacity={this.backdropOpacity}\n sheetHeight={this.sheetHeight}\n lastGestureDy={this.lastGestureDyShared}\n styles={this.styles}\n props={props}\n panHandlers={this.panResponder.panHandlers}\n dragHandlePanHandlers={this.dragHandlePanResponder.panHandlers}\n onBackdropPress={this.handleBackdropPress}\n onDragHandlePress={this.handleDragHandlePress}\n getTestProps={this.getTestProps.bind(this)}\n enabledragsettle={props.enabledragsettle}\n scrollRef={this.state.scrollViewRef}\n containerScrollRef={this.containerscrollViewRef}\n configurePanGesture={this.configurePanGesture}\n >\n {(contentStyle: any) => (\n props.issticky ? (\n props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.View>\n )\n ) : <ScrollView\n ref={this.state.scrollViewRef}\n style={this.styles.sheetContentContainer}\n contentContainerStyle={[this.styles.sheetScrollContent]}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n showsVerticalScrollIndicator={false}\n scrollEventThrottle={16}\n onScroll={this.handleScroll}\n nestedScrollEnabled={true}\n scrollEnabled={!props.issticky && (!props.disablescrollonrest || this.state.isExpanded)}\n {...this.getTestProps('scorllview')}\n >\n {props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n )}\n </ScrollView>\n )}\n </AnimatedBottomsheetContent>\n {/*Adding SafeAreaView to ensure the bottom sheet is rendered above the Android button navigation bar when modal prop is false */}\n {(Platform.OS === 'android' && !this.props.modal && bottomInset > 40) && <SafeAreaView edges={['bottom']} />}\n\n {props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => (\n <View\n key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && this.sheetModalService.hideModal(o)}\n style={[\n this.styles.modalOverlay,\n (o as any).centered ? this.styles.centeredOverlay : null,\n { zIndex: (o as any).elevationIndex || 9999, elevation: (o as any).elevationIndex || 9999 },\n (o.modalStyle || {})\n ]}\n >\n <View\n style={[(o.contentStyle || {})]}\n onStartShouldSetResponder={() => true}\n onResponderEnd={(e) => e.stopPropagation()}\n >\n {o.content}\n </View>\n </View>\n ))}\n </View>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n };\n renderWidget(props: WmBottomsheetProps) {\n if (!this.state.isBottomsheetVisible) return null;\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Use SafeAreaView on Android with button navigation to render the bottom sheet above the nav bar (when modal props is true)\n // Button navigation is identified when bottom inset >= 40\n const hasButtonNavigation = Platform.OS === 'android' && (insets?.bottom || 0) >= 40;\n\n const wrapWithSafeArea = (children: React.ReactNode) => {\n if (hasButtonNavigation) {\n return <SafeAreaView style={{ flex: 1 }}>{children}</SafeAreaView>;\n }\n return children;\n };\n\n if (props.modal) {\n return (\n <Modal\n visible={this.state.isBottomsheetVisible}\n transparent={true}\n animationType=\"none\"\n onRequestClose={() => {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n }}\n statusBarTranslucent={false}\n >\n <GestureHandlerRootView style={{ flex: 1 }}>\n {wrapWithSafeArea(\n <KeyboardAvoidingView\n style={{ flex: 1 }}\n behavior={'padding'}\n keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : undefined}\n >\n {this.renderContent(props)}\n </KeyboardAvoidingView>\n )}\n </GestureHandlerRootView>\n </Modal>\n );\n } else {\n return this.renderContent(props);\n }\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","StatusBar","BackHandler","KeyboardAvoidingView","Keyboard","Modal","Pressable","Gesture","GestureDetector","GestureHandlerRootView","ScrollView","Animated","useAnimatedStyle","withTiming","runOnJS","Easing","makeMutable","cancelAnimation","Animatable","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","ModalProvider","SafeAreaInsetsContext","SafeAreaView","OS","RN","require","RNAnimated","__wmPatchedNoNativeDriver","wrap","name","original","value","config","patched","useNativeDriver","_","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","undefined","AnimatedBottomsheetContent","translateY","backdropOpacity","sheetHeight","lastGestureDy","styles","props","children","panHandlers","dragHandlePanHandlers","onBackdropPress","onDragHandlePress","getTestProps","enabledragsettle","scrollRef","containerScrollRef","configurePanGesture","panGesture","useMemo","pan","Pan","simultaneousWithExternalGesture","backdropAnimatedStyle","opacity","containerAnimatedStyle","transform","contentStyle","paddingBottom","createElement","Fragment","onPress","_extends","style","backdrop","BOTTOMSHEET","container","dragHandleContainer","dragIconHandle","gesture","WmBottomsheet","getAnimationDuration","distance","velocity","velocityFactor","Math","max","min","abs","calculatedDuration","calculateSheetHeight","bottomsheetheightratio","effectiveRatio","defaultHeight","maxHeightRatio","minimumHeight","maxHeight","screenHeight","calculatedHeight","defaultTopInset","statusBarHeight","open","state","isBottomsheetVisible","updateState","openSheet","close","closeSheet","animate","contentAnimationId","Date","now","contentAnimatableProps","currentHeight","isExpanded","targetHeight","expandedHeight","callback","invokeEventCallback","lastGestureDyShared","duration","animationDuration","easing","out","ease","finished","localModalsOpened","length","top","sheetModalService","hideModal","disableswipedownclose","autoclose","event","_event$endCoordinates","keyboardHeight","endCoordinates","isIosKeyboardHeightSet","_event$endCoordinates2","iosKeyboardHeight","availableHeight","bufferSpace","topInset","adjustedHeight","modal","keyboardAnimationDuration","gestureState","dy","_this$translateY","currentTranslateY","vy","_this$sheetHeight","setTimeout","_this$state$scrollVie","scrollViewRef","current","scrollTo","x","y","animated","scrollOffset","sheetMinimumHeight","bottomsheetminimumheight","enabled","onUpdate","translationY","velocityY","moveX","moveY","vx","velocityX","containerscrollYoffset","newTranslateY","isDragHandleExpanding","expand","disablescrollonrest","expandBottomSheet","onEnd","handleSwipeGesture","onFinalize","success","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate","offsetY","nativeEvent","contentOffset","isScrolling","handleClose","requestAnimationFrame","key","Consumer","insets","bottom","left","right","bottomInset","absoluteStyle","rootStyle","root","_background","panResponder","dragHandlePanResponder","handleBackdropPress","handleDragHandlePress","bind","containerscrollViewRef","issticky","enablemodalsupport","sheetContentContainer","overflow","ref","contentContainerStyle","sheetScrollContent","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","renderAnimatedSheetChildren","edges","map","o","i","onStartShouldSetResponder","onResponderEnd","isModal","modalOverlay","centered","centeredOverlay","zIndex","elevationIndex","elevation","modalStyle","e","stopPropagation","content","subscribe","forceUpdate","expandedRatio","bottomsheetexpandedheightratio","expandedDefaultHeight","effectiveExpandedRatio","minimumExpandedHeight","showonrender","refresh","showModal","options","exists","find","list","onOpen","idx","findIndex","onClose","splice","componentDidMount","backHandlerSubscription","addEventListener","handleBackPress","keyboardDidShowListener","addListener","onKeyboardShow","keyboardDidHideListener","onKeyboardHide","componentWillUnmount","remove","componentDidUpdate","prevProps","onPropertyChange","$new","$old","closeSheetImmediate","renderSkeleton","theme","skeleton","width","renderWidget","hasButtonNavigation","wrapWithSafeArea","flex","visible","transparent","animationType","onRequestClose","statusBarTranslucent","behavior","keyboardVerticalOffset","renderContent"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, PanResponderGestureState, StatusBar, BackHandler, DimensionValue, KeyboardAvoidingView, Keyboard, EmitterSubscription, Modal, NativeEventSubscription, Pressable, ViewStyle } from 'react-native';\nimport { Gesture, GestureDetector, GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';\nimport Animated, {\n useAnimatedStyle,\n withTiming,\n runOnJS,\n Easing,\n SharedValue,\n makeMutable,\n cancelAnimation\n} from 'react-native-reanimated';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport WmBottomsheetProps from './bottomsheet.props';\nimport { DEFAULT_CLASS, WmBottomsheetStyles } from './bottomsheet.styles';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport { ModalProvider, ModalService, ModalOptions } from '@wavemaker-ai/app-rn-runtime/core/modal.service';\nimport { SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';\n\n\n// Web-only: Runs all bottom sheet animations on the JS thread (sets useNativeDriver to false)\n// Prevents errors on web where native driver animations are not supported\n// Web - Animated api is used from animation\nif (Platform.OS === 'web') {\n try {\n const RN: any = require('react-native');\n const RNAnimated: any = RN && RN.Animated;\n if (RNAnimated && !RNAnimated.__wmPatchedNoNativeDriver) {\n const wrap = (name: string) => {\n const original = RNAnimated[name];\n if (typeof original === 'function') {\n RNAnimated[name] = (value: any, config: any) => {\n const patched = { ...(config || {}), useNativeDriver: false };\n return original(value, patched);\n };\n }\n };\n wrap('timing');\n wrap('spring');\n wrap('decay');\n RNAnimated.__wmPatchedNoNativeDriver = true;\n }\n } catch (_) {\n // noop\n }\n}\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n isBottomsheetVisible = false;\n keyboardHeight = 0;\n localModalsOpened: ModalOptions[] = [];\n lastGestureDy = 0;\n contentAnimationId?: number = 0;\n contentAnimatableProps?: AnimatableProps<ViewStyle> = undefined;\n}\n\n// Animated wrapper component that uses hooks\nconst AnimatedBottomsheetContent = ({\n translateY,\n backdropOpacity,\n sheetHeight,\n lastGestureDy,\n styles,\n props,\n children,\n panHandlers,\n dragHandlePanHandlers,\n onBackdropPress,\n onDragHandlePress,\n getTestProps,\n enabledragsettle,\n scrollRef,\n containerScrollRef,\n configurePanGesture\n\n}: any) => {\n\n\n // Simple RNGH GestureDetector attached to the same view as the PanResponder (panHandlers).\n // No thresholds/validation: logs translationY directly during pan.\n const panGesture = React.useMemo(() => {\n // Create base Pan gesture\n const pan = Gesture.Pan().runOnJS(true);\n\n // Add external gestures for ScrollViews (container widget scrollview)\n if (scrollRef && containerScrollRef) {\n pan.simultaneousWithExternalGesture(\n scrollRef as any,\n containerScrollRef as any\n );\n } else if (scrollRef) {\n pan.simultaneousWithExternalGesture(scrollRef as any);\n } else if (containerScrollRef) {\n pan.simultaneousWithExternalGesture(containerScrollRef as any);\n }\n\n // Apply custom logic from parent BottomSheet class\n if (configurePanGesture) {\n configurePanGesture(pan);\n }\n\n return pan;\n }, [scrollRef, containerScrollRef, configurePanGesture]);\n\n const backdropAnimatedStyle = useAnimatedStyle(() => ({\n opacity: backdropOpacity.value\n }));\n\n const containerAnimatedStyle = useAnimatedStyle(() => ({\n height: sheetHeight.value,\n transform: [{ translateY: translateY.value }]\n }));\n\n const contentStyle = useAnimatedStyle(() => {\n if (enabledragsettle && lastGestureDy.value > 0) {\n return {\n paddingBottom: lastGestureDy.value\n };\n }\n return {};\n });\n\n return (\n <>\n <TouchableWithoutFeedback onPress={onBackdropPress}>\n <Animated.View\n style={[styles.backdrop, backdropAnimatedStyle]}\n {...getTestProps('backdrop')}\n {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}\n />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[styles.container, containerAnimatedStyle]}\n // {...panHandlers}\n >\n <View style={styles.dragHandleContainer} {...dragHandlePanHandlers}>\n <Pressable onPress={onDragHandlePress}>\n <View style={styles.dragIconHandle} {...getTestProps('draghandle')} />\n </Pressable>\n </View>\n <GestureDetector gesture={panGesture}>\n {children(contentStyle)}\n </GestureDetector>\n </Animated.View>\n </>\n );\n};\n\nexport default class WmBottomsheet extends BaseComponent<WmBottomsheetProps, WmBottomsheetState, WmBottomsheetStyles> {\n private calculatedHeight: number;\n private expandedHeight: number;\n private defaultHeight: number = 0.5;\n private expandedDefaultHeight: number = 0.8;\n private minimumHeight: number = 0.01;\n private minimumExpandedHeight: number = 0.5;\n private maxHeight: number = 1.0;\n private animationDuration: number = 400;\n private keyboardAnimationDuration: number = Platform.OS === 'ios' ? 250 : 275;\n private statusBarHeight: number = StatusBar.currentHeight || 0;\n private defaultTopInset: number = 44;\n private maxHeightRatio: number = 0;\n private keyboardDidShowListener!: EmitterSubscription;\n private keyboardDidHideListener!: EmitterSubscription;\n private backHandlerSubscription: NativeEventSubscription | null = null;\n private topInset: number = 0;\n private iosKeyboardHeight: number = 0;\n private isIosKeyboardHeightSet: boolean = false;\n private sheetModalService: ModalService;\n private isDragHandleExpanding: boolean = false;\n //container widget scrollview ref and y offset value\n private containerscrollViewRef: any = null\n private containerscrollYoffset: number = 0\n\n\n // Reanimated shared values - created once and reused\n private translateY!: SharedValue<number>;\n private backdropOpacity!: SharedValue<number>;\n private sheetHeight!: SharedValue<number>;\n private lastGestureDyShared!: SharedValue<number>;\n\n // Helper method to calculate animation duration based on distance and velocity\n private getAnimationDuration(distance: number, velocity: number): number {\n // Base duration on distance, but cap it between 200-500ms\n // Higher velocity = shorter duration for snappier feel\n const velocityFactor = Math.max(0.3, Math.min(1, 1 - Math.abs(velocity) / 2));\n const calculatedDuration = Math.abs(distance) * velocityFactor;\n return Math.min(500, Math.max(200, calculatedDuration));\n }\n\n private calculateSheetHeight(bottomsheetheightratio: number): number {\n // Use default height if ratio not provided, but ensure it's not below minimum\n const effectiveRatio = bottomsheetheightratio || this.defaultHeight;\n this.maxHeightRatio = Math.max(\n this.minimumHeight,\n Math.min(effectiveRatio, this.maxHeight)\n );\n\n const screenHeight = Dimensions.get('screen').height;\n let calculatedHeight = screenHeight * this.maxHeightRatio;\n\n if (Platform.OS === 'ios') {\n // Subtract top inset bar height for ios only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.defaultTopInset;\n }\n }\n else if (Platform.OS === 'android') {\n // Subtract status bar height for Android only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.statusBarHeight;\n }\n }\n return calculatedHeight;\n }\n\n open() {\n if (!this.state.isBottomsheetVisible)\n this.updateState({\n isBottomsheetVisible: true\n } as WmBottomsheetState);\n this.openSheet();\n }\n\n close() {\n if (this.state.isBottomsheetVisible) {\n this.closeSheet();\n }\n }\n\n isSheetExpanded = () => {\n return this.state.isExpanded\n }\n\n expandBottomSheet = () => {\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n const callback = () => {\n this.updateState({\n isExpanded: true,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onExpand', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n if (this.props.enabledragsettle) {\n // Synchronize both animations to complete together\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n } else {\n // Only animate height for non-drag-settle mode\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n }\n\n collapseBottomSheet = () => {\n const callback = () => {\n this.updateState({\n isExpanded: false,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(this.calculatedHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.updateState({\n contentAnimationId: Date.now(),\n contentAnimatableProps: props\n } as WmBottomsheetState);\n }\n\n constructor(props: WmBottomsheetProps) {\n super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());\n this.calculatedHeight = this.calculateSheetHeight(props.bottomsheetheightratio);\n //container srollview ref\n this.subscribe('containerScrollViewReady', (ref: React.RefObject<any>) => {\n if (ref && ref.current && this.containerscrollViewRef !== ref) {\n this.containerscrollViewRef = ref;\n this.forceUpdate();\n }\n });\n //container scrollview y offset value\n this.subscribe('scroll', (e: any) => {\n const offsetY = e.nativeEvent.contentOffset.y;\n this.containerscrollYoffset = offsetY\n });\n // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight\n const expandedRatio = props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;\n const effectiveExpandedRatio = Math.max(\n this.minimumExpandedHeight,\n Math.min(expandedRatio, this.maxHeight)\n );\n\n this.expandedHeight = SCREEN_HEIGHT * effectiveExpandedRatio;\n\n if (Platform.OS === 'android') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.statusBarHeight;\n }\n }\n if (Platform.OS === 'ios') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.defaultTopInset;\n }\n }\n\n // Initialize shared values in constructor using makeMutable (not hooks)\n // makeMutable can be called outside of React components\n this.translateY = makeMutable(SCREEN_HEIGHT);\n this.backdropOpacity = makeMutable(0);\n this.sheetHeight = makeMutable(this.calculatedHeight);\n this.lastGestureDyShared = makeMutable(0);\n\n this.updateState({\n isBottomsheetVisible: this.props.showonrender || false\n } as WmBottomsheetState);\n\n // Initialize values immediately to prevent flicker\n if (this.props.showonrender) {\n this.translateY.value = 0;\n this.backdropOpacity.value = 1;\n }\n\n // Local ModalService for content rendered inside Bottomsheet\n this.sheetModalService = {\n refresh: () => this.forceUpdate(),\n showModal: (options: ModalOptions) => {\n const exists = this.state.localModalsOpened.find(o => o === options);\n if (!exists) {\n // ensure high z-index within sheet\n (options as any).elevationIndex = 9999 + this.state.localModalsOpened.length + 1;\n const list = [...this.state.localModalsOpened, options];\n this.updateState({ localModalsOpened: list } as WmBottomsheetState, () => {\n setTimeout(() => options.onOpen && options.onOpen(), 0);\n });\n }\n },\n hideModal: (options?: ModalOptions) => {\n const list = [...this.state.localModalsOpened];\n const idx = options ? list.findIndex(o => o === options) : (list.length - 1);\n if (idx >= 0) {\n const o = list[idx];\n o && o.onClose && o.onClose();\n list.splice(idx, 1);\n this.updateState({ localModalsOpened: list } as WmBottomsheetState);\n }\n }\n };\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n // Trigger animation after mount if showonrender is true\n if (this.state.isBottomsheetVisible) {\n // Use requestAnimationFrame to ensure animation happens after initial render\n requestAnimationFrame(() => {\n this.openSheet();\n });\n }\n\n if (Platform.OS === 'android') {\n this.backHandlerSubscription = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);\n }\n this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.onKeyboardShow);\n this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.onKeyboardHide);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this.backHandlerSubscription) {\n this.backHandlerSubscription.remove();\n this.backHandlerSubscription = null;\n }\n if (this.keyboardDidShowListener) {\n this.keyboardDidShowListener.remove();\n }\n if (this.keyboardDidHideListener) {\n this.keyboardDidHideListener.remove();\n }\n }\n\n private handleBackPress = () => {\n // Close top-most local modal first, if any\n if (this.state.localModalsOpened && this.state.localModalsOpened.length > 0) {\n const top = this.state.localModalsOpened[this.state.localModalsOpened.length - 1];\n this.sheetModalService.hideModal(top);\n return true;\n }\n if (this.state.isBottomsheetVisible) {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n return true; // Prevent default back action\n }\n return false;\n };\n\n private onKeyboardShow = (event: any) => {\n let keyboardHeight = event.endCoordinates?.height || 0;\n //only storing ios keyboard height once as first time keyboard open (to avoid scroll flickring issue in ios in text widget)\n if (!this.isIosKeyboardHeightSet) {\n this.iosKeyboardHeight = event.endCoordinates?.height + 40;\n this.isIosKeyboardHeightSet = true;\n }\n // Calculate available space after keyboard\n const availableHeight = SCREEN_HEIGHT - (Platform.OS == 'ios' ? this.iosKeyboardHeight : keyboardHeight);\n // Calculate adjusted sheet height to fit within available space\n // Leave some buffer space for the drag handle and safe area\n const bufferSpace = (Platform.OS === 'ios' ? this.topInset : this.statusBarHeight) + 20;\n const adjustedHeight = availableHeight - bufferSpace;\n\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(adjustedHeight, {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n\n this.updateState({\n keyboardHeight: keyboardHeight,\n } as WmBottomsheetState);\n };\n\n private onKeyboardHide = () => {\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(\n this.state.isExpanded ? this.expandedHeight : this.calculatedHeight,\n {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n }\n );\n }\n\n this.updateState({\n keyboardHeight: 0,\n } as WmBottomsheetState);\n };\n\n componentDidUpdate(prevProps: WmBottomsheetProps) {\n if (prevProps.bottomsheetheightratio !== this.props.bottomsheetheightratio) {\n this.calculatedHeight = this.calculateSheetHeight(this.props.bottomsheetheightratio);\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n\n // Only reset lastGestureDy for traditional behavior, not for drag and settle\n if (!this.props.enabledragsettle) {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n }\n\n if (this.props.enabledragsettle && gestureState.dy > 0) {\n const currentTranslateY = this.translateY?.value || 0;\n\n if (gestureState.vy > 0.5 && !this.props.disableswipedownclose) {\n this.closeSheet();\n return;\n }\n\n if (this.translateY && this.lastGestureDyShared) {\n this.translateY.value = currentTranslateY;\n this.lastGestureDyShared.value = currentTranslateY;\n }\n\n this.updateState({\n isExpanded: false,\n lastGestureDy: currentTranslateY\n } as WmBottomsheetState);\n return;\n }\n\n if (gestureState.dy > 0) {\n if (this.state.isExpanded || this.props.disableswipedownclose) {\n if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {\n //reseting bottom sheet scrollview offset value to fix scrollview automatic scroll issue while collpsing the bottom sheet\n setTimeout(() => {\n if (this.state.scrollViewRef?.current) {\n this.state.scrollViewRef.current.scrollTo({ x: 0, y: 0, animated: false });\n this.updateState({ scrollOffset: 0 } as WmBottomsheetState);\n }\n }, this.animationDuration);\n let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;\n const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;\n const currentHeight = this.sheetHeight?.value || this.expandedHeight;\n const distance = Math.abs(currentHeight - targetHeight);\n const duration = this.getAnimationDuration(distance, gestureState.vy);\n\n const callback = () => {\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n if (this.translateY && this.sheetHeight) {\n this.translateY.value = withTiming(0, {\n duration: duration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(\n targetHeight,\n {\n duration: duration,\n easing: Easing.out(Easing.ease)\n },\n (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n }\n );\n }\n } else if ((gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n }\n } else {\n if (this.props.disableswipedownclose) {\n this.openSheet();\n return;\n }\n if ((gestureState.dy > 100 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n } else {\n this.openSheet();\n }\n }\n }\n }\n\n private configurePanGesture = (pan: any) => {\n pan\n .enabled(true)\n .onUpdate((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded && this.props.disablescrollonrest) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n // ... rest of logic\n })\n .onEnd((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n this.handleSwipeGesture(gestureState as any);\n }\n })\n .onFinalize((event: any, success: boolean) => { // ← Add types\n if (!success) {\n this.openSheet()\n }\n });\n\n return pan;\n };\n // panResponder for bottom sheet scroll view\n panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return true\n }\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n\n },\n\n onMoveShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return Math.abs(gestureState.dy) > 2;\n }\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n\n },\n\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n },\n\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState);\n },\n\n onPanResponderTerminate: () => {\n this.openSheet();\n },\n });\n\n //pan repsoneder for bottom sheet dragable container\n dragHandlePanResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n // Reset the expand flag\n this.isDragHandleExpanding = false;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n } else if (gestureState.dy < -50 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.isDragHandleExpanding = false;\n this.handleSwipeGesture(gestureState);\n },\n });\n\n handleScroll = (event: any): any => {\n if (this.state.keyboardHeight > 0) return null;\n const offsetY = event.nativeEvent.contentOffset.y;\n this.updateState({\n isScrolling: offsetY > 0,\n scrollOffset: offsetY\n } as WmBottomsheetState);\n };\n\n openSheet = () => {\n const callback = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n this.invokeEventCallback('onOpened', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(1, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n private handleClose = () => {\n this.updateState({\n isBottomsheetVisible: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onClose', [null, this]);\n };\n\n closeSheet = () => {\n \n\n \n\n const callback = () => {\n // Reset sheet height after close\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n this.updateState({\n isExpanded: false,\n localModalsOpened: [] as ModalOptions[],\n scrollOffset: 0,\n contentAnimationId: 0, \n contentAnimatableProps: undefined \n } as WmBottomsheetState);\n this.containerscrollYoffset = 0\n this.handleClose();\n };\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(SCREEN_HEIGHT, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n closeSheetImmediate = () => {\n if (this.translateY && this.backdropOpacity && this.lastGestureDyShared) {\n this.translateY.value = SCREEN_HEIGHT;\n this.backdropOpacity.value = 0;\n this.lastGestureDyShared.value = 0;\n }\n\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false,\n isBottomsheetVisible: false,\n localModalsOpened: [] as ModalOptions[],\n contentAnimationId: 0,\n contentAnimatableProps: undefined\n } as WmBottomsheetState);\n\n requestAnimationFrame(() => {\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n });\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case \"showonrender\":\n if ($new) {\n this.updateState({\n isBottomsheetVisible: $new || false\n } as WmBottomsheetState);\n if (this.state.isBottomsheetVisible) {\n this.openSheet && this.openSheet();\n }\n } else {\n this.closeSheetImmediate && this.closeSheetImmediate();\n }\n break;\n }\n }\n\n public renderSkeleton(props: WmBottomsheetProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.styles.root.width as DimensionValue,\n height: this.styles.root.height as DimensionValue\n });\n }\n\n // Class methods to prevent recreation on every render\n private handleBackdropPress = () => {\n if (this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n };\n\n private handleDragHandlePress = () => {\n this.invokeEventCallback('onDraghandleiconclick', [null, this]);\n };\n\n private renderAnimatedSheetChildren = (children: React.ReactNode) => {\n if (!this.state.contentAnimatableProps) {\n return children;\n }\n return (\n <Animatable.View\n key={this.state.contentAnimationId}\n {...this.state.contentAnimatableProps}\n >\n {children}\n </Animatable.View>\n );\n };\n\n private renderContent = (props: WmBottomsheetProps) => {\n // Don't render if shared values aren't initialized yet\n if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {\n return null;\n }\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Store topInset for later use (avoid mutation during render)\n const topInset = insets?.top || 0;\n const bottomInset = insets?.bottom || 0;\n // Update the instance variable outside of render cycle\n if (this.topInset !== topInset) {\n requestAnimationFrame(() => {\n this.topInset = topInset;\n });\n }\n const absoluteStyle = {\n top: 0,\n left: 0,\n right: 0,\n }\n const rootStyle = props.modal\n ? [this.styles.root, absoluteStyle]\n : this.styles.root;\n return (\n <View style={rootStyle} {...this.getTestProps('keyboardview')}>\n {this._background}\n\n <AnimatedBottomsheetContent\n translateY={this.translateY}\n backdropOpacity={this.backdropOpacity}\n sheetHeight={this.sheetHeight}\n lastGestureDy={this.lastGestureDyShared}\n styles={this.styles}\n props={props}\n panHandlers={this.panResponder.panHandlers}\n dragHandlePanHandlers={this.dragHandlePanResponder.panHandlers}\n onBackdropPress={this.handleBackdropPress}\n onDragHandlePress={this.handleDragHandlePress}\n getTestProps={this.getTestProps.bind(this)}\n enabledragsettle={props.enabledragsettle}\n scrollRef={this.state.scrollViewRef}\n containerScrollRef={this.containerscrollViewRef}\n configurePanGesture={this.configurePanGesture}\n >\n {(contentStyle: any) => (\n props.issticky ? (\n props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.View>\n )\n ) : <ScrollView\n ref={this.state.scrollViewRef}\n style={this.styles.sheetContentContainer}\n contentContainerStyle={[this.styles.sheetScrollContent]}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n showsVerticalScrollIndicator={false}\n scrollEventThrottle={16}\n onScroll={this.handleScroll}\n nestedScrollEnabled={true}\n scrollEnabled={!props.issticky && (!props.disablescrollonrest || this.state.isExpanded)}\n {...this.getTestProps('scorllview')}\n >\n {props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n )}\n </ScrollView>\n )}\n </AnimatedBottomsheetContent>\n {/*Adding SafeAreaView to ensure the bottom sheet is rendered above the Android button navigation bar when modal prop is false */}\n {(Platform.OS === 'android' && !this.props.modal && bottomInset > 40) && <SafeAreaView edges={['bottom']} />}\n\n {props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => (\n <View\n key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && this.sheetModalService.hideModal(o)}\n style={[\n this.styles.modalOverlay,\n (o as any).centered ? this.styles.centeredOverlay : null,\n { zIndex: (o as any).elevationIndex || 9999, elevation: (o as any).elevationIndex || 9999 },\n (o.modalStyle || {})\n ]}\n >\n <View\n style={[(o.contentStyle || {})]}\n onStartShouldSetResponder={() => true}\n onResponderEnd={(e) => e.stopPropagation()}\n >\n {o.content}\n </View>\n </View>\n ))}\n </View>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n };\n renderWidget(props: WmBottomsheetProps) {\n if (!this.state.isBottomsheetVisible) return null;\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Use SafeAreaView on Android with button navigation to render the bottom sheet above the nav bar (when modal props is true)\n // Button navigation is identified when bottom inset >= 40\n const hasButtonNavigation = Platform.OS === 'android' && (insets?.bottom || 0) >= 40;\n\n const wrapWithSafeArea = (children: React.ReactNode) => {\n if (hasButtonNavigation) {\n return <SafeAreaView style={{ flex: 1 }}>{children}</SafeAreaView>;\n }\n return children;\n };\n\n if (props.modal) {\n return (\n <Modal\n visible={this.state.isBottomsheetVisible}\n transparent={true}\n animationType=\"none\"\n onRequestClose={() => {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n }}\n statusBarTranslucent={false}\n >\n <GestureHandlerRootView style={{ flex: 1 }}>\n {wrapWithSafeArea(\n <KeyboardAvoidingView\n style={{ flex: 1 }}\n behavior={'padding'}\n keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : undefined}\n >\n {this.renderContent(props)}\n </KeyboardAvoidingView>\n )}\n </GestureHandlerRootView>\n </Modal>\n );\n } else {\n return this.renderContent(props);\n }\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,12 +13,37 @@ const svgCache = new Map();
13
13
  */
14
14
  const inFlightRequests = new Map();
15
15
 
16
+ /**
17
+ * Collects the distinct fill/stroke color values used in an SVG string,
18
+ * ignoring `none`. Used to tell a monochrome icon (safe to recolor via
19
+ * `currentColor`) apart from an intentionally multi-color icon.
20
+ */
21
+ function getDistinctSvgColors(svg) {
22
+ const colors = new Set();
23
+ const patterns = [/fill\s*=\s*"(?!\s*none\s*")([^"]*)"/gi, /fill\s*=\s*'(?!\s*none\s*')([^']*)'/gi, /stroke\s*=\s*"(?!\s*none\s*")([^"]*)"/gi, /stroke\s*=\s*'(?!\s*none\s*')([^']*)'/gi, /(?:fill|stroke)\s*:\s*(?!\s*none\b)([^;"']+)/gi];
24
+ patterns.forEach(pattern => {
25
+ let match;
26
+ while ((match = pattern.exec(svg)) !== null) {
27
+ const value = match[1].trim().toLowerCase();
28
+ if (value) {
29
+ colors.add(value);
30
+ }
31
+ }
32
+ });
33
+ return colors;
34
+ }
35
+
16
36
  /**
17
37
  * Replaces hardcoded fill/stroke color values with `currentColor` so the
18
38
  * icon color can be controlled via the `color` prop in react-native-svg.
19
- * Values of `none` are preserved as-is.
39
+ * Values of `none` are preserved as-is. Left unchanged if the SVG uses more
40
+ * than one distinct color, since forcing every color to the same value
41
+ * would destroy an intentionally multi-color icon.
20
42
  */
21
43
  function normalizeSvg(svg) {
44
+ if (getDistinctSvgColors(svg).size > 1) {
45
+ return svg;
46
+ }
22
47
  return svg.replace(/fill\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'fill="currentColor"').replace(/fill\s*=\s*'(?!\s*none\s*')[^']*'/gi, "fill='currentColor'").replace(/stroke\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'stroke="currentColor"').replace(/stroke\s*=\s*'(?!\s*none\s*')[^']*'/gi, "stroke='currentColor'").replace(/(fill|stroke)\s*:\s*(?!\s*none\b)[^;"']+/gi, '$1: currentColor');
23
48
  }
24
49
  /**