@wavemaker/app-rn-runtime 11.14.1-23.647643 → 11.14.1-26.647686

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 (150) 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 +240 -33
  4. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  5. package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
  6. package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
  7. package/components/basic/label/label.component.js +11 -22
  8. package/components/basic/label/label.component.js.map +1 -1
  9. package/components/basic/label/label.props.js +1 -0
  10. package/components/basic/label/label.props.js.map +1 -1
  11. package/components/basic/progress-circle/progress-circle.component.js +3 -3
  12. package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
  13. package/components/chart/area-chart/area-chart.component.js +27 -10
  14. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  15. package/components/chart/bar-chart/bar-chart.component.js +39 -7
  16. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  17. package/components/chart/bar-chart/bar-chart.props.js +1 -0
  18. package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
  19. package/components/chart/basechart.component.js +8 -15
  20. package/components/chart/basechart.component.js.map +1 -1
  21. package/components/chart/basechart.props.js +1 -0
  22. package/components/chart/basechart.props.js.map +1 -1
  23. package/components/chart/bubble-chart/bubble-chart.component.js +23 -6
  24. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  25. package/components/chart/line-chart/line-chart.component.js +22 -5
  26. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  27. package/components/chart/pie-chart/pie-chart.component.js +15 -4
  28. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  29. package/components/chart/stack-chart/stack-chart.component.js +1 -1
  30. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  31. package/components/container/accordion/accordionpane/accordionpane.component.js +6 -4
  32. package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  33. package/components/container/container.component.js +207 -14
  34. package/components/container/container.component.js.map +1 -1
  35. package/components/container/container.props.js +6 -0
  36. package/components/container/container.props.js.map +1 -1
  37. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +32 -4
  38. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  39. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
  40. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
  41. package/components/container/panel/panel.component.js +1 -1
  42. package/components/container/panel/panel.component.js.map +1 -1
  43. package/components/container/tabs/tabpane/tabpane.component.js +1 -1
  44. package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  45. package/components/container/tabs/tabs.component.js +62 -29
  46. package/components/container/tabs/tabs.component.js.map +1 -1
  47. package/components/container/tabs/tabs.props.js +1 -0
  48. package/components/container/tabs/tabs.props.js.map +1 -1
  49. package/components/container/wizard/wizard.component.js +3 -5
  50. package/components/container/wizard/wizard.component.js.map +1 -1
  51. package/components/container/wizard/wizard.props.js +0 -1
  52. package/components/container/wizard/wizard.props.js.map +1 -1
  53. package/components/container/wizard/wizard.styles.js +3 -1
  54. package/components/container/wizard/wizard.styles.js.map +1 -1
  55. package/components/container/wizard/wizardstep/wizardstep.component.js +4 -23
  56. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  57. package/components/container/wizard/wizardstep/wizardstep.props.js +0 -2
  58. package/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
  59. package/components/data/form/form-field/form-field.component.js +20 -0
  60. package/components/data/form/form-field/form-field.component.js.map +1 -1
  61. package/components/data/form/form-field/form-field.props.js +3 -0
  62. package/components/data/form/form-field/form-field.props.js.map +1 -1
  63. package/components/data/form/form.component.js +11 -3
  64. package/components/data/form/form.component.js.map +1 -1
  65. package/components/data/form/form.props.js +1 -0
  66. package/components/data/form/form.props.js.map +1 -1
  67. package/components/data/list/list.component.js +1 -1
  68. package/components/data/list/list.component.js.map +1 -1
  69. package/components/dialogs/dialogcontent/dialogcontent.component.js +1 -2
  70. package/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
  71. package/components/input/baseinput/baseinput.component.js +30 -3
  72. package/components/input/baseinput/baseinput.component.js.map +1 -1
  73. package/components/input/baseinput/baseinput.props.js +1 -0
  74. package/components/input/baseinput/baseinput.props.js.map +1 -1
  75. package/components/input/basenumber/basenumber.component.js +18 -3
  76. package/components/input/basenumber/basenumber.component.js.map +1 -1
  77. package/components/input/basenumber/basenumber.props.js +2 -0
  78. package/components/input/basenumber/basenumber.props.js.map +1 -1
  79. package/components/input/calendar/calendar.component.js +5 -1
  80. package/components/input/calendar/calendar.component.js.map +1 -1
  81. package/components/input/calendar/views/month-view.js +8 -1
  82. package/components/input/calendar/views/month-view.js.map +1 -1
  83. package/components/input/checkboxset/checkboxset.component.js +2 -2
  84. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  85. package/components/input/currency/currency.component.js +2 -0
  86. package/components/input/currency/currency.component.js.map +1 -1
  87. package/components/input/currency/currency.styles.js +10 -1
  88. package/components/input/currency/currency.styles.js.map +1 -1
  89. package/components/input/number/number.component.js +2 -0
  90. package/components/input/number/number.component.js.map +1 -1
  91. package/components/input/number/number.styles.js +4 -0
  92. package/components/input/number/number.styles.js.map +1 -1
  93. package/components/input/radioset/radioset.component.js +4 -6
  94. package/components/input/radioset/radioset.component.js.map +1 -1
  95. package/components/input/text/text.component.js +13 -2
  96. package/components/input/text/text.component.js.map +1 -1
  97. package/components/input/text/text.props.js +1 -1
  98. package/components/input/text/text.props.js.map +1 -1
  99. package/components/input/text/text.styles.js +17 -0
  100. package/components/input/text/text.styles.js.map +1 -1
  101. package/components/input/textarea/textarea.component.js +3 -2
  102. package/components/input/textarea/textarea.component.js.map +1 -1
  103. package/components/input/textarea/textarea.styles.js +4 -0
  104. package/components/input/textarea/textarea.styles.js.map +1 -1
  105. package/components/page/left-panel/left-panel.component.js +1 -1
  106. package/components/page/left-panel/left-panel.component.js.map +1 -1
  107. package/core/AppConfig.js.map +1 -1
  108. package/core/base.component.js +23 -5
  109. package/core/base.component.js.map +1 -1
  110. package/core/components/error-fallback/error-fallback.component.js +18 -50
  111. package/core/components/error-fallback/error-fallback.component.js.map +1 -1
  112. package/core/components/error-fallback/error-fallback.styles.js +1 -4
  113. package/core/components/error-fallback/error-fallback.styles.js.map +1 -1
  114. package/core/components/textinput.component.js +27 -8
  115. package/core/components/textinput.component.js.map +1 -1
  116. package/core/environment.js +25 -0
  117. package/core/environment.js.map +1 -0
  118. package/core/error-boundary.component.js +2 -46
  119. package/core/error-boundary.component.js.map +1 -1
  120. package/core/fixed-view.component.js +19 -2
  121. package/core/fixed-view.component.js.map +1 -1
  122. package/core/tappable.component.js +110 -16
  123. package/core/tappable.component.js.map +1 -1
  124. package/core/viewport.js +13 -8
  125. package/core/viewport.js.map +1 -1
  126. package/gestures/carousel-swipe.animation.js +0 -1
  127. package/gestures/carousel-swipe.animation.js.map +1 -1
  128. package/npm-shrinkwrap.json +564 -556
  129. package/package-lock.json +564 -556
  130. package/package.json +2 -2
  131. package/runtime/App.js +13 -174
  132. package/runtime/App.js.map +1 -1
  133. package/runtime/base-fragment.component.js +28 -5
  134. package/runtime/base-fragment.component.js.map +1 -1
  135. package/runtime/base-page.component.js +4 -12
  136. package/runtime/base-page.component.js.map +1 -1
  137. package/runtime/navigator/drawer.navigator.js +2 -0
  138. package/runtime/navigator/drawer.navigator.js.map +1 -1
  139. package/runtime/navigator/stack.navigator.js +13 -4
  140. package/runtime/navigator/stack.navigator.js.map +1 -1
  141. package/runtime/services/device/scan-service.js +12 -34
  142. package/runtime/services/device/scan-service.js.map +1 -1
  143. package/styles/theme.js +27 -2
  144. package/styles/theme.js.map +1 -1
  145. package/styles/theme.variables.js +2 -0
  146. package/styles/theme.variables.js.map +1 -1
  147. package/core/advanced-promise-rejection-tracker.js +0 -207
  148. package/core/advanced-promise-rejection-tracker.js.map +0 -1
  149. package/core/global-error-handler.service.js +0 -177
  150. package/core/global-error-handler.service.js.map +0 -1
@@ -306,7 +306,7 @@ export default class WmCarousel extends BaseComponent {
306
306
  return /*#__PURE__*/React.createElement(View, {
307
307
  style: styles.root,
308
308
  onLayout: event => this.handleLayout(event)
309
- }, this._background, /*#__PURE__*/React.createElement(SwipeAnimation.View, {
309
+ }, this.showSpinner(), this._background, /*#__PURE__*/React.createElement(SwipeAnimation.View, {
310
310
  enableGestures: props.enablegestures && this.noOfSlides > 1,
311
311
  style: {
312
312
  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","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/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\nimport { createSkeleton } from '@wavemaker/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 alignItems: 'center',\n transform: [{ translateX: this.wrapperPosition }],\n }}\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","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/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\nimport { createSkeleton } from '@wavemaker/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 alignItems: 'center',\n transform: [{ translateX: this.wrapperPosition }],\n }}\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":"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","ignoreList":[]}
@@ -5,14 +5,45 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5
5
  import React, { createRef } from 'react';
6
6
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
7
7
  import { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, StatusBar, BackHandler, KeyboardAvoidingView, Keyboard, Modal, Pressable } from 'react-native';
8
- import { ScrollView } from 'react-native-gesture-handler';
8
+ import { Gesture, GestureDetector, GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';
9
9
  import Animated, { useAnimatedStyle, withTiming, runOnJS, Easing, makeMutable, cancelAnimation } from 'react-native-reanimated';
10
+ import * as Animatable from 'react-native-animatable';
10
11
  import WmBottomsheetProps from './bottomsheet.props';
11
12
  import { DEFAULT_CLASS } from './bottomsheet.styles';
12
13
  import { createSkeleton } from '../skeleton/skeleton.component';
13
14
  import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';
14
15
  import { ModalProvider } from '@wavemaker/app-rn-runtime/core/modal.service';
15
- import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
16
+ import { SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';
17
+
18
+ // Web-only: Runs all bottom sheet animations on the JS thread (sets useNativeDriver to false)
19
+ // Prevents errors on web where native driver animations are not supported
20
+ // Web - Animated api is used from animation
21
+ if (Platform.OS === 'web') {
22
+ try {
23
+ const RN = require('react-native');
24
+ const RNAnimated = RN && RN.Animated;
25
+ if (RNAnimated && !RNAnimated.__wmPatchedNoNativeDriver) {
26
+ const wrap = name => {
27
+ const original = RNAnimated[name];
28
+ if (typeof original === 'function') {
29
+ RNAnimated[name] = (value, config) => {
30
+ const patched = {
31
+ ...(config || {}),
32
+ useNativeDriver: false
33
+ };
34
+ return original(value, patched);
35
+ };
36
+ }
37
+ };
38
+ wrap('timing');
39
+ wrap('spring');
40
+ wrap('decay');
41
+ RNAnimated.__wmPatchedNoNativeDriver = true;
42
+ }
43
+ } catch (_) {
44
+ // noop
45
+ }
46
+ }
16
47
  const {
17
48
  height: SCREEN_HEIGHT
18
49
  } = Dimensions.get('screen');
@@ -27,6 +58,8 @@ export class WmBottomsheetState extends BaseComponentState {
27
58
  _defineProperty(this, "keyboardHeight", 0);
28
59
  _defineProperty(this, "localModalsOpened", []);
29
60
  _defineProperty(this, "lastGestureDy", 0);
61
+ _defineProperty(this, "contentAnimationId", 0);
62
+ _defineProperty(this, "contentAnimatableProps", undefined);
30
63
  }
31
64
  }
32
65
 
@@ -44,8 +77,32 @@ const AnimatedBottomsheetContent = ({
44
77
  onBackdropPress,
45
78
  onDragHandlePress,
46
79
  getTestProps,
47
- enabledragsettle
80
+ enabledragsettle,
81
+ scrollRef,
82
+ containerScrollRef,
83
+ configurePanGesture
48
84
  }) => {
85
+ // Simple RNGH GestureDetector attached to the same view as the PanResponder (panHandlers).
86
+ // No thresholds/validation: logs translationY directly during pan.
87
+ const panGesture = React.useMemo(() => {
88
+ // Create base Pan gesture
89
+ const pan = Gesture.Pan().runOnJS(true);
90
+
91
+ // Add external gestures for ScrollViews (container widget scrollview)
92
+ if (scrollRef && containerScrollRef) {
93
+ pan.simultaneousWithExternalGesture(scrollRef, containerScrollRef);
94
+ } else if (scrollRef) {
95
+ pan.simultaneousWithExternalGesture(scrollRef);
96
+ } else if (containerScrollRef) {
97
+ pan.simultaneousWithExternalGesture(containerScrollRef);
98
+ }
99
+
100
+ // Apply custom logic from parent BottomSheet class
101
+ if (configurePanGesture) {
102
+ configurePanGesture(pan);
103
+ }
104
+ return pan;
105
+ }, [scrollRef, containerScrollRef, configurePanGesture]);
49
106
  const backdropAnimatedStyle = useAnimatedStyle(() => ({
50
107
  opacity: backdropOpacity.value
51
108
  }));
@@ -67,15 +124,18 @@ const AnimatedBottomsheetContent = ({
67
124
  onPress: onBackdropPress
68
125
  }, /*#__PURE__*/React.createElement(Animated.View, _extends({
69
126
  style: [styles.backdrop, backdropAnimatedStyle]
70
- }, getTestProps('backdrop'), getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)))), /*#__PURE__*/React.createElement(Animated.View, _extends({
127
+ }, getTestProps('backdrop'), getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)))), /*#__PURE__*/React.createElement(Animated.View, {
71
128
  style: [styles.container, containerAnimatedStyle]
72
- }, panHandlers), /*#__PURE__*/React.createElement(View, _extends({
129
+ // {...panHandlers}
130
+ }, /*#__PURE__*/React.createElement(View, _extends({
73
131
  style: styles.dragHandleContainer
74
132
  }, dragHandlePanHandlers), /*#__PURE__*/React.createElement(Pressable, {
75
133
  onPress: onDragHandlePress
76
134
  }, /*#__PURE__*/React.createElement(View, _extends({
77
135
  style: styles.dragIconHandle
78
- }, getTestProps('draghandle'))))), children(contentStyle)));
136
+ }, getTestProps('draghandle'))))), /*#__PURE__*/React.createElement(GestureDetector, {
137
+ gesture: panGesture
138
+ }, children(contentStyle))));
79
139
  };
80
140
  export default class WmBottomsheet extends BaseComponent {
81
141
  // Helper method to calculate animation duration based on distance and velocity
@@ -116,6 +176,12 @@ export default class WmBottomsheet extends BaseComponent {
116
176
  this.closeSheet();
117
177
  }
118
178
  }
179
+ animate(props) {
180
+ this.updateState({
181
+ contentAnimationId: Date.now(),
182
+ contentAnimatableProps: props
183
+ });
184
+ }
119
185
  constructor(_props) {
120
186
  super(_props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());
121
187
  _defineProperty(this, "calculatedHeight", void 0);
@@ -138,6 +204,9 @@ export default class WmBottomsheet extends BaseComponent {
138
204
  _defineProperty(this, "isIosKeyboardHeightSet", false);
139
205
  _defineProperty(this, "sheetModalService", void 0);
140
206
  _defineProperty(this, "isDragHandleExpanding", false);
207
+ //container widget scrollview ref and y offset value
208
+ _defineProperty(this, "containerscrollViewRef", null);
209
+ _defineProperty(this, "containerscrollYoffset", 0);
141
210
  // Reanimated shared values - created once and reused
142
211
  _defineProperty(this, "translateY", void 0);
143
212
  _defineProperty(this, "backdropOpacity", void 0);
@@ -292,6 +361,20 @@ export default class WmBottomsheet extends BaseComponent {
292
361
  if (this.state.isExpanded || this.props.disableswipedownclose) {
293
362
  if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {
294
363
  var _this$sheetHeight;
364
+ //reseting bottom sheet scrollview offset value to fix scrollview automatic scroll issue while collpsing the bottom sheet
365
+ setTimeout(() => {
366
+ var _this$state$scrollVie;
367
+ if ((_this$state$scrollVie = this.state.scrollViewRef) !== null && _this$state$scrollVie !== void 0 && _this$state$scrollVie.current) {
368
+ this.state.scrollViewRef.current.scrollTo({
369
+ x: 0,
370
+ y: 0,
371
+ animated: false
372
+ });
373
+ this.updateState({
374
+ scrollOffset: 0
375
+ });
376
+ }
377
+ }, this.animationDuration);
295
378
  let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;
296
379
  const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;
297
380
  const currentHeight = ((_this$sheetHeight = this.sheetHeight) === null || _this$sheetHeight === void 0 ? void 0 : _this$sheetHeight.value) || this.expandedHeight;
@@ -333,13 +416,60 @@ export default class WmBottomsheet extends BaseComponent {
333
416
  }
334
417
  }
335
418
  });
419
+ _defineProperty(this, "configurePanGesture", pan => {
420
+ pan.enabled(true).onUpdate(event => {
421
+ // ← Add : any
422
+ const gestureState = {
423
+ dy: event.translationY,
424
+ vy: event.velocityY,
425
+ moveX: event.x,
426
+ moveY: event.y,
427
+ vx: event.velocityX
428
+ };
429
+ if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {
430
+ const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);
431
+ this.translateY.value = newTranslateY;
432
+ // Reset expand flag if dragging down
433
+ this.isDragHandleExpanding = false;
434
+ } else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded && this.props.disablescrollonrest) {
435
+ // Only trigger expand once with threshold of -50px upward drag
436
+ this.isDragHandleExpanding = true;
437
+ this.expandBottomSheet();
438
+ }
439
+ // ... rest of logic
440
+ }).onEnd(event => {
441
+ // ← Add : any
442
+ const gestureState = {
443
+ dy: event.translationY,
444
+ vy: event.velocityY,
445
+ moveX: event.x,
446
+ moveY: event.y,
447
+ vx: event.velocityX
448
+ };
449
+ if (gestureState.dy > 0 && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {
450
+ this.handleSwipeGesture(gestureState);
451
+ }
452
+ }).onFinalize((event, success) => {
453
+ // ← Add types
454
+ if (!success) {
455
+ this.openSheet();
456
+ }
457
+ });
458
+ return pan;
459
+ });
336
460
  // panResponder for bottom sheet scroll view
337
461
  _defineProperty(this, "panResponder", PanResponder.create({
338
462
  onStartShouldSetPanResponder: (_, gestureState) => {
463
+ if (this.props.disablescrollonrest && !this.state.isExpanded) {
464
+ return true;
465
+ }
339
466
  // Only handle the gesture if we're at the top and swiping down
340
467
  return gestureState.dy > 0 && this.state.scrollOffset <= 0;
341
468
  },
342
469
  onMoveShouldSetPanResponder: (_, gestureState) => {
470
+ if (this.props.disablescrollonrest && !this.state.isExpanded) {
471
+ return Math.abs(gestureState.dy) > 2;
472
+ }
343
473
  // Only handle the gesture if we're at the top and swiping down
344
474
  return gestureState.dy > 0 && this.state.scrollOffset <= 0;
345
475
  },
@@ -353,6 +483,12 @@ export default class WmBottomsheet extends BaseComponent {
353
483
  if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {
354
484
  const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);
355
485
  this.translateY.value = newTranslateY;
486
+ // Reset expand flag if dragging down
487
+ this.isDragHandleExpanding = false;
488
+ } else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {
489
+ // Only trigger expand once with threshold of -50px upward drag
490
+ this.isDragHandleExpanding = true;
491
+ this.expandBottomSheet();
356
492
  }
357
493
  },
358
494
  onPanResponderRelease: (_, gestureState) => {
@@ -441,8 +577,12 @@ export default class WmBottomsheet extends BaseComponent {
441
577
  }
442
578
  this.updateState({
443
579
  isExpanded: false,
444
- localModalsOpened: []
580
+ localModalsOpened: [],
581
+ scrollOffset: 0,
582
+ contentAnimationId: 0,
583
+ contentAnimatableProps: undefined
445
584
  });
585
+ this.containerscrollYoffset = 0;
446
586
  this.handleClose();
447
587
  };
448
588
  if (this.translateY && this.backdropOpacity) {
@@ -471,7 +611,9 @@ export default class WmBottomsheet extends BaseComponent {
471
611
  lastGestureDy: 0,
472
612
  isExpanded: false,
473
613
  isBottomsheetVisible: false,
474
- localModalsOpened: []
614
+ localModalsOpened: [],
615
+ contentAnimationId: 0,
616
+ contentAnimatableProps: undefined
475
617
  });
476
618
  requestAnimationFrame(() => {
477
619
  if (this.sheetHeight) {
@@ -488,6 +630,14 @@ export default class WmBottomsheet extends BaseComponent {
488
630
  _defineProperty(this, "handleDragHandlePress", () => {
489
631
  this.invokeEventCallback('onDraghandleiconclick', [null, this]);
490
632
  });
633
+ _defineProperty(this, "renderAnimatedSheetChildren", children => {
634
+ if (!this.state.contentAnimatableProps) {
635
+ return children;
636
+ }
637
+ return /*#__PURE__*/React.createElement(Animatable.View, _extends({
638
+ key: this.state.contentAnimationId
639
+ }, this.state.contentAnimatableProps), children);
640
+ });
491
641
  _defineProperty(this, "renderContent", props => {
492
642
  // Don't render if shared values aren't initialized yet
493
643
  if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {
@@ -501,14 +651,21 @@ export default class WmBottomsheet extends BaseComponent {
501
651
  }) => {
502
652
  // Store topInset for later use (avoid mutation during render)
503
653
  const topInset = (insets === null || insets === void 0 ? void 0 : insets.top) || 0;
654
+ const bottomInset = (insets === null || insets === void 0 ? void 0 : insets.bottom) || 0;
504
655
  // Update the instance variable outside of render cycle
505
656
  if (this.topInset !== topInset) {
506
657
  requestAnimationFrame(() => {
507
658
  this.topInset = topInset;
508
659
  });
509
660
  }
661
+ const absoluteStyle = {
662
+ top: 0,
663
+ left: 0,
664
+ right: 0
665
+ };
666
+ const rootStyle = props.modal ? [this.styles.root, absoluteStyle] : this.styles.root;
510
667
  return /*#__PURE__*/React.createElement(View, _extends({
511
- style: this.styles.root
668
+ style: rootStyle
512
669
  }, this.getTestProps('keyboardview')), this._background, /*#__PURE__*/React.createElement(AnimatedBottomsheetContent, {
513
670
  translateY: this.translateY,
514
671
  backdropOpacity: this.backdropOpacity,
@@ -521,8 +678,21 @@ export default class WmBottomsheet extends BaseComponent {
521
678
  onBackdropPress: this.handleBackdropPress,
522
679
  onDragHandlePress: this.handleDragHandlePress,
523
680
  getTestProps: this.getTestProps.bind(this),
524
- enabledragsettle: props.enabledragsettle
525
- }, contentStyle => /*#__PURE__*/React.createElement(ScrollView, _extends({
681
+ enabledragsettle: props.enabledragsettle,
682
+ scrollRef: this.state.scrollViewRef,
683
+ containerScrollRef: this.containerscrollViewRef,
684
+ configurePanGesture: this.configurePanGesture
685
+ }, contentStyle => props.issticky ? props.enablemodalsupport ? /*#__PURE__*/React.createElement(ModalProvider, {
686
+ value: this.sheetModalService
687
+ }, /*#__PURE__*/React.createElement(Animated.View, {
688
+ style: [contentStyle, this.styles.sheetContentContainer, {
689
+ overflow: 'hidden'
690
+ }]
691
+ }, props.children)) : /*#__PURE__*/React.createElement(Animated.View, {
692
+ style: [contentStyle, this.styles.sheetContentContainer, {
693
+ overflow: 'hidden'
694
+ }]
695
+ }, props.children) : /*#__PURE__*/React.createElement(ScrollView, _extends({
526
696
  ref: this.state.scrollViewRef,
527
697
  style: this.styles.sheetContentContainer,
528
698
  contentContainerStyle: [this.styles.sheetScrollContent],
@@ -540,7 +710,9 @@ export default class WmBottomsheet extends BaseComponent {
540
710
  style: contentStyle
541
711
  }, props.children)) : /*#__PURE__*/React.createElement(Animated.View, {
542
712
  style: contentStyle
543
- }, props.children))), props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => /*#__PURE__*/React.createElement(View, {
713
+ }, props.children))), Platform.OS === 'android' && !this.props.modal && bottomInset > 40 && /*#__PURE__*/React.createElement(SafeAreaView, {
714
+ edges: ['bottom']
715
+ }), props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => /*#__PURE__*/React.createElement(View, {
544
716
  key: (o.name || '') + i,
545
717
  onStartShouldSetResponder: () => true,
546
718
  onResponderEnd: () => o.isModal && this.sheetModalService.hideModal(o),
@@ -556,7 +728,18 @@ export default class WmBottomsheet extends BaseComponent {
556
728
  });
557
729
  });
558
730
  this.calculatedHeight = this.calculateSheetHeight(_props.bottomsheetheightratio);
559
-
731
+ //container srollview ref
732
+ this.subscribe('containerScrollViewReady', ref => {
733
+ if (ref && ref.current && this.containerscrollViewRef !== ref) {
734
+ this.containerscrollViewRef = ref;
735
+ this.forceUpdate();
736
+ }
737
+ });
738
+ //container scrollview y offset value
739
+ this.subscribe('scroll', e => {
740
+ const offsetY = e.nativeEvent.contentOffset.y;
741
+ this.containerscrollYoffset = offsetY;
742
+ });
560
743
  // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight
561
744
  const expandedRatio = _props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;
562
745
  const effectiveExpandedRatio = Math.max(this.minimumExpandedHeight, Math.min(expandedRatio, this.maxHeight));
@@ -681,27 +864,51 @@ export default class WmBottomsheet extends BaseComponent {
681
864
  }
682
865
  renderWidget(props) {
683
866
  if (!this.state.isBottomsheetVisible) return null;
684
- if (props.modal) {
685
- return /*#__PURE__*/React.createElement(Modal, {
686
- visible: this.state.isBottomsheetVisible,
687
- transparent: true,
688
- animationType: "none",
689
- onRequestClose: () => {
690
- if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {
691
- this.closeSheet();
867
+ return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
868
+ top: 0,
869
+ bottom: 0,
870
+ left: 0,
871
+ right: 0
872
+ }) => {
873
+ // Use SafeAreaView on Android with button navigation to render the bottom sheet above the nav bar (when modal props is true)
874
+ // Button navigation is identified when bottom inset >= 40
875
+ const hasButtonNavigation = Platform.OS === 'android' && ((insets === null || insets === void 0 ? void 0 : insets.bottom) || 0) >= 40;
876
+ const wrapWithSafeArea = children => {
877
+ if (hasButtonNavigation) {
878
+ return /*#__PURE__*/React.createElement(SafeAreaView, {
879
+ style: {
880
+ flex: 1
881
+ }
882
+ }, children);
883
+ }
884
+ return children;
885
+ };
886
+ if (props.modal) {
887
+ return /*#__PURE__*/React.createElement(Modal, {
888
+ visible: this.state.isBottomsheetVisible,
889
+ transparent: true,
890
+ animationType: "none",
891
+ onRequestClose: () => {
892
+ if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {
893
+ this.closeSheet();
894
+ }
895
+ },
896
+ statusBarTranslucent: false
897
+ }, /*#__PURE__*/React.createElement(GestureHandlerRootView, {
898
+ style: {
899
+ flex: 1
692
900
  }
693
- },
694
- statusBarTranslucent: false
695
- }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
696
- style: {
697
- flex: 1
698
- },
699
- behavior: 'padding',
700
- keyboardVerticalOffset: Platform.OS === 'ios' ? 0 : undefined
701
- }, this.renderContent(props)));
702
- } else {
703
- return this.renderContent(props);
704
- }
901
+ }, wrapWithSafeArea(/*#__PURE__*/React.createElement(KeyboardAvoidingView, {
902
+ style: {
903
+ flex: 1
904
+ },
905
+ behavior: 'padding',
906
+ keyboardVerticalOffset: Platform.OS === 'ios' ? 0 : undefined
907
+ }, this.renderContent(props)))));
908
+ } else {
909
+ return this.renderContent(props);
910
+ }
911
+ });
705
912
  }
706
913
  }
707
914
  //# sourceMappingURL=bottomsheet.component.js.map